feat(prompt): implement prompt injection slice 1
This commit is contained in:
+30
-1
@@ -8,7 +8,11 @@ import {
|
||||
validateMaps,
|
||||
reinitPath,
|
||||
retrieveContext,
|
||||
buildPreInitHint,
|
||||
modeAllowsPreInitHint,
|
||||
modeAllowsInjection,
|
||||
} from "./src/index.js";
|
||||
import { loadConfig } from "./src/config.js";
|
||||
import { createLLMClient } from "./src/llm/llm-client.js";
|
||||
import { LLMError } from "./src/llm/llm-error.js";
|
||||
|
||||
@@ -340,8 +344,33 @@ export default function (pi: ExtensionAPI) {
|
||||
|
||||
// Inject maintenance instructions before agent starts
|
||||
pi.on("before_agent_start", async (_event, _ctx) => {
|
||||
const config = loadConfig(_ctx.cwd);
|
||||
const mapFiles = findPiMapFiles(_ctx.cwd);
|
||||
if (mapFiles.length === 0) return {};
|
||||
|
||||
// Mode is off: no injection at all
|
||||
if (config.promptInjectionMode === "off") {
|
||||
return {};
|
||||
}
|
||||
|
||||
// No maps exist yet: show visible pre-init hint, but only if mode allows it
|
||||
if (mapFiles.length === 0) {
|
||||
if (!modeAllowsPreInitHint(config.promptInjectionMode)) {
|
||||
return {};
|
||||
}
|
||||
return {
|
||||
message: {
|
||||
customType: "pi-project-map-hint",
|
||||
content: buildPreInitHint(),
|
||||
display: true,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// Maps exist but advisory mode does not permit automatic artifact injection yet.
|
||||
// Full root-pair injection with canonical markers comes in later slices.
|
||||
if (!modeAllowsInjection(config.promptInjectionMode)) {
|
||||
return {};
|
||||
}
|
||||
|
||||
return {
|
||||
message: {
|
||||
|
||||
Reference in New Issue
Block a user