bkper 5.3.3 → 5.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/lib/agent/extensions/builtins.d.ts +2 -1
  2. package/lib/agent/extensions/builtins.d.ts.map +1 -1
  3. package/lib/agent/extensions/builtins.js +2 -6
  4. package/lib/agent/extensions/builtins.js.map +1 -1
  5. package/lib/agent/extensions/handoff-goal-editor.d.ts +18 -28
  6. package/lib/agent/extensions/handoff-goal-editor.d.ts.map +1 -1
  7. package/lib/agent/extensions/handoff-goal-editor.js +27 -36
  8. package/lib/agent/extensions/handoff-goal-editor.js.map +1 -1
  9. package/lib/agent/extensions/handoff.d.ts +3 -1
  10. package/lib/agent/extensions/handoff.d.ts.map +1 -1
  11. package/lib/agent/extensions/handoff.js +47 -24
  12. package/lib/agent/extensions/handoff.js.map +1 -1
  13. package/lib/agent/interactive/interactive-mode.d.ts +0 -1
  14. package/lib/agent/interactive/interactive-mode.d.ts.map +1 -1
  15. package/lib/agent/interactive/interactive-mode.js +2 -22
  16. package/lib/agent/interactive/interactive-mode.js.map +1 -1
  17. package/lib/agent/interactive/run-agent-mode.d.ts.map +1 -1
  18. package/lib/agent/interactive/run-agent-mode.js +8 -1
  19. package/lib/agent/interactive/run-agent-mode.js.map +1 -1
  20. package/lib/agent/pi-shared-modules.d.ts +2 -1
  21. package/lib/agent/pi-shared-modules.d.ts.map +1 -1
  22. package/lib/agent/pi-shared-modules.js +1 -1
  23. package/lib/agent/pi-shared-modules.js.map +1 -1
  24. package/lib/agent/system-prompt.d.ts.map +1 -1
  25. package/lib/agent/system-prompt.js +1 -8
  26. package/lib/agent/system-prompt.js.map +1 -1
  27. package/lib/docs/index.md +0 -3
  28. package/package.json +1 -2
  29. package/lib/agent/core-concepts-routing.d.ts +0 -9
  30. package/lib/agent/core-concepts-routing.d.ts.map +0 -1
  31. package/lib/agent/core-concepts-routing.js +0 -34
  32. package/lib/agent/core-concepts-routing.js.map +0 -1
  33. package/lib/agent/extensions/core-concepts-preload.d.ts +0 -27
  34. package/lib/agent/extensions/core-concepts-preload.d.ts.map +0 -1
  35. package/lib/agent/extensions/core-concepts-preload.js +0 -122
  36. package/lib/agent/extensions/core-concepts-preload.js.map +0 -1
  37. package/lib/agent/extensions/prompt-routing.d.ts +0 -12
  38. package/lib/agent/extensions/prompt-routing.d.ts.map +0 -1
  39. package/lib/agent/extensions/prompt-routing.js +0 -38
  40. package/lib/agent/extensions/prompt-routing.js.map +0 -1
  41. package/lib/agent/interactive/pending-user-message.d.ts +0 -24
  42. package/lib/agent/interactive/pending-user-message.d.ts.map +0 -1
  43. package/lib/agent/interactive/pending-user-message.js +0 -82
  44. package/lib/agent/interactive/pending-user-message.js.map +0 -1
  45. package/lib/agent/prompt-routing.d.ts +0 -33
  46. package/lib/agent/prompt-routing.d.ts.map +0 -1
  47. package/lib/agent/prompt-routing.js +0 -106
  48. package/lib/agent/prompt-routing.js.map +0 -1
@@ -2,6 +2,7 @@ import { type ExtensionAPI, type LoadExtensionsResult, type QuietStartup } from
2
2
  import { runStartupMaintenance } from '../startup-maintenance.js';
3
3
  import { type ProviderCredentialManager } from './auth-commands.js';
4
4
  import { type HandoffCommandDispatcher } from './handoff.js';
5
+ import type { HandoffGoalEditor } from './handoff-goal-editor.js';
5
6
  type ExtensionLoadError = {
6
7
  path: string;
7
8
  error: string;
@@ -19,6 +20,6 @@ export declare function normalizeBkperAgentExtensionErrors(errors: ExtensionLoad
19
20
  export declare function normalizeBkperAgentExtensions(base: LoadExtensionsResult, options: {
20
21
  verbose: boolean;
21
22
  }): LoadExtensionsResult;
22
- export declare function registerBkperAgentBuiltins(pi: ExtensionAPI, startupMaintenance?: typeof runStartupMaintenance, settingsManager?: BuiltinsSettings, env?: Record<string, string | undefined>, credentialManager?: ProviderCredentialManager, dispatchHandoffCommand?: HandoffCommandDispatcher): void;
23
+ export declare function registerBkperAgentBuiltins(pi: ExtensionAPI, startupMaintenance?: typeof runStartupMaintenance, settingsManager?: BuiltinsSettings, env?: Record<string, string | undefined>, credentialManager?: ProviderCredentialManager, dispatchHandoffCommand?: HandoffCommandDispatcher, editGoal?: HandoffGoalEditor): void;
23
24
  export {};
24
25
  //# sourceMappingURL=builtins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAEH,KAAK,yBAAyB,EACjC,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAGH,KAAK,wBAAwB,EAChC,MAAM,cAAc,CAAC;AAGtB,KAAK,kBAAkB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,eAAe,IAAI,YAAY,CAAC;IAChC,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAKF,eAAO,MAAM,mCAAmC,0BAA0B,CAAC;AAC3E,eAAO,MAAM,mCAAmC,kCAAkC,CAAC;AAGnF,wBAAgB,qCAAqC,CACjD,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,OAAO,CAET;AAyBD,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,EAAE;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAC5B,kBAAkB,EAAE,CAatB;AAED,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAC5B,oBAAoB,CAMtB;AAED,wBAAgB,0BAA0B,CACtC,EAAE,EAAE,YAAY,EAChB,kBAAkB,GAAE,OAAO,qBAA6C,EACxE,eAAe,CAAC,EAAE,gBAAgB,EAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,iBAAiB,CAAC,EAAE,yBAAyB,EAC7C,sBAAsB,CAAC,EAAE,wBAAwB,GAClD,IAAI,CAwBN"}
1
+ {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAEH,KAAK,yBAAyB,EACjC,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAGH,KAAK,wBAAwB,EAChC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAGhE,KAAK,kBAAkB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,eAAe,IAAI,YAAY,CAAC;IAChC,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAKF,eAAO,MAAM,mCAAmC,0BAA0B,CAAC;AAC3E,eAAO,MAAM,mCAAmC,kCAAkC,CAAC;AAGnF,wBAAgB,qCAAqC,CACjD,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,OAAO,CAET;AAyBD,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,EAAE;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAC5B,kBAAkB,EAAE,CAatB;AAED,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAC5B,oBAAoB,CAMtB;AAED,wBAAgB,0BAA0B,CACtC,EAAE,EAAE,YAAY,EAChB,kBAAkB,GAAE,OAAO,qBAA6C,EACxE,eAAe,CAAC,EAAE,gBAAgB,EAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,iBAAiB,CAAC,EAAE,yBAAyB,EAC7C,sBAAsB,CAAC,EAAE,wBAAwB,EACjD,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,IAAI,CAuBN"}
@@ -2,8 +2,6 @@ import { createCodemodeExtension, createMcpExtension, createToolSearchExtension,
2
2
  import { runStartupMaintenance } from '../startup-maintenance.js';
3
3
  import { registerBkperAgentAuthExtension, } from './auth-commands.js';
4
4
  import { getBkperAiBaseUrlOverride, registerBkperAiProvider, } from './bkper-ai-provider.js';
5
- import { registerBkperCoreConceptsPreloadExtension } from './core-concepts-preload.js';
6
- import { registerPromptRoutingExtension } from './prompt-routing.js';
7
5
  import { getBkperHandoffShortcutFromFile, registerBkperHandoffExtension, } from './handoff.js';
8
6
  import { registerBkperAgentStartupExtension } from './startup.js';
9
7
  // Pi currently labels inline extension factories as <inline:N>.
@@ -42,14 +40,12 @@ export function normalizeBkperAgentExtensionErrors(errors, options) {
42
40
  export function normalizeBkperAgentExtensions(base, options) {
43
41
  return Object.assign(Object.assign({}, base), { extensions: base.extensions.map(normalizeBkperAgentExtension), errors: normalizeBkperAgentExtensionErrors(base.errors, options) });
44
42
  }
45
- export function registerBkperAgentBuiltins(pi, startupMaintenance = runStartupMaintenance, settingsManager, env = process.env, credentialManager, dispatchHandoffCommand) {
43
+ export function registerBkperAgentBuiltins(pi, startupMaintenance = runStartupMaintenance, settingsManager, env = process.env, credentialManager, dispatchHandoffCommand, editGoal) {
46
44
  const bkperAiBaseUrlOverride = getBkperAiBaseUrlOverride(env);
47
- const promptRouter = registerPromptRoutingExtension(pi);
48
- registerBkperCoreConceptsPreloadExtension(pi, undefined, promptRouter);
49
45
  registerBkperAgentStartupExtension(pi, startupMaintenance, settingsManager, bkperAiBaseUrlOverride);
50
46
  registerBkperAgentAuthExtension(pi, undefined, credentialManager);
51
47
  registerBkperAiProvider(pi, env);
52
- registerBkperHandoffExtension(pi, dispatchHandoffCommand, getBkperHandoffShortcutFromFile(getAgentDir()));
48
+ registerBkperHandoffExtension(pi, dispatchHandoffCommand, getBkperHandoffShortcutFromFile(getAgentDir()), { editGoal });
53
49
  // Registered inactive; the Bkper default tool selection activates it.
54
50
  createCodemodeExtension()(pi);
55
51
  // Connects servers the user configures in mcp.json; none are configured by default.
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { AutocompleteProvider } from '@earendil-works/pi-tui';
2
- import type { PromptHistoryRepository } from '../interactive/prompt-history-store.js';
1
+ import { type ExtensionContext } from '@earendil-works/pi-coding-agent';
2
+ import { type PromptHistoryRepository } from '../interactive/prompt-history-store.js';
3
3
  export declare const HANDOFF_GOAL_EDITOR_TITLE = "Next session goal";
4
4
  export interface HandoffPromptTemplate {
5
5
  name: string;
@@ -7,32 +7,22 @@ export interface HandoffPromptTemplate {
7
7
  argumentHint?: string;
8
8
  content: string;
9
9
  }
10
- interface HandoffGoalEditor {
11
- autocompleteProvider?: AutocompleteProvider;
12
- setAutocompleteProvider(provider: AutocompleteProvider): void;
13
- requestAutocomplete?(options: {
14
- force: boolean;
15
- explicitTab: boolean;
16
- }): void;
17
- isShowingAutocomplete?(): boolean;
18
- getText?(): string;
19
- setText?(text: string): void;
20
- handleInput?(data: string): void;
21
- }
22
- export interface HandoffGoalEditorHost {
23
- showExtensionEditor(title: string, prefill?: string): Promise<string | undefined>;
24
- extensionEditor?: {
25
- editor?: HandoffGoalEditor;
26
- };
27
- session?: {
28
- promptTemplates: ReadonlyArray<HandoffPromptTemplate>;
29
- };
30
- sessionManager?: {
31
- getCwd(): string;
32
- };
10
+ export type HandoffGoalEditorResult = {
11
+ status: 'submitted';
12
+ text: string;
13
+ } | {
14
+ status: 'cancelled';
15
+ text: string;
16
+ };
17
+ export type HandoffGoalEditor = (prefill: string, context: ExtensionContext) => Promise<HandoffGoalEditorResult>;
18
+ export interface HandoffGoalEditorOptions {
19
+ templates?: ReadonlyArray<HandoffPromptTemplate>;
20
+ history?: PromptHistoryRepository;
21
+ externalEditorCommand?: string;
33
22
  }
34
23
  export declare function expandHandoffGoalTemplate(goal: string, templates: ReadonlyArray<HandoffPromptTemplate>): string;
35
- export declare function installHandoffGoalEditorPromptHistory(host: HandoffGoalEditorHost, history: PromptHistoryRepository): void;
36
- export declare function installHandoffGoalEditorAutocomplete(host: HandoffGoalEditorHost): void;
37
- export {};
24
+ export declare function editHandoffGoal(prefill: string, context: {
25
+ ui: Pick<ExtensionContext['ui'], 'custom'>;
26
+ cwd: string;
27
+ }, options?: HandoffGoalEditorOptions): Promise<HandoffGoalEditorResult>;
38
28
  //# sourceMappingURL=handoff-goal-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handoff-goal-editor.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/handoff-goal-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAMjE,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAEpF,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACvB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,CAAC,OAAO,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC;IAC5E,qBAAqB,CAAC,IAAI,OAAO,CAAC;IAClC,OAAO,CAAC,IAAI,MAAM,CAAC;IACnB,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IAClC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClF,eAAe,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,iBAAiB,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,eAAe,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;KACzD,CAAC;IACF,cAAc,CAAC,EAAE;QACb,MAAM,IAAI,MAAM,CAAC;KACpB,CAAC;CACL;AA+DD,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAChD,MAAM,CAYR;AA8CD,wBAAgB,qCAAqC,CACjD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,uBAAuB,GACjC,IAAI,CAsBN;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAuBtF"}
1
+ {"version":3,"file":"handoff-goal-editor.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/handoff-goal-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,gBAAgB,EACxB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAGH,KAAK,uBAAuB,EAC/B,MAAM,wCAAwC,CAAC;AAEhD,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,uBAAuB,GAC7B;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GACnC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,KACxB,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEtC,MAAM,WAAW,wBAAwB;IACrC,SAAS,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC;AA+DD,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAChD,MAAM,CAYR;AAuDD,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,EAClE,OAAO,GAAE,wBAA6B,GACvC,OAAO,CAAC,uBAAuB,CAAC,CA8BlC"}
@@ -7,8 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { CombinedAutocompleteProvider } from '../pi-shared-modules.js';
11
- import { installPromptHistorySearch, } from '../interactive/prompt-history-search.js';
10
+ import { ExtensionEditorComponent, getAgentDir, } from '@earendil-works/pi-coding-agent';
11
+ import { CombinedAutocompleteProvider, Editor } from '../pi-shared-modules.js';
12
+ import { installPromptHistorySearch } from '../interactive/prompt-history-search.js';
13
+ import { FilePromptHistory, getPromptHistoryPath, } from '../interactive/prompt-history-store.js';
12
14
  export const HANDOFF_GOAL_EDITOR_TITLE = 'Next session goal';
13
15
  function parseCommandArgs(argsString) {
14
16
  const args = [];
@@ -108,42 +110,31 @@ function createPromptTemplateAutocompleteProvider(templates, cwd) {
108
110
  shouldTriggerFileCompletion: () => false,
109
111
  };
110
112
  }
111
- export function installHandoffGoalEditorPromptHistory(host, history) {
112
- const showExtensionEditor = host.showExtensionEditor.bind(host);
113
- host.showExtensionEditor = (title, prefill) => __awaiter(this, void 0, void 0, function* () {
114
- if (title !== HANDOFF_GOAL_EDITOR_TITLE) {
115
- return showExtensionEditor(title, prefill);
116
- }
117
- const result = showExtensionEditor(title, prefill);
118
- queueMicrotask(() => {
119
- var _a;
120
- const editor = (_a = host.extensionEditor) === null || _a === void 0 ? void 0 : _a.editor;
121
- if ((editor === null || editor === void 0 ? void 0 : editor.getText) && editor.setText && editor.handleInput) {
122
- installPromptHistorySearch(editor, history, false);
123
- }
124
- });
125
- const goal = yield result;
126
- if (goal === null || goal === void 0 ? void 0 : goal.trim()) {
127
- history.record(goal, 'handoff');
128
- }
129
- return goal;
130
- });
113
+ function getDialogEditor(component) {
114
+ // Use the public component tree rather than Pi's private editor field.
115
+ const editor = component.children.find((child) => child instanceof Editor);
116
+ if (!editor)
117
+ throw new Error('Pi handoff dialog does not contain an editor.');
118
+ return editor;
131
119
  }
132
- export function installHandoffGoalEditorAutocomplete(host) {
133
- const showExtensionEditor = host.showExtensionEditor.bind(host);
134
- host.showExtensionEditor = (title, prefill) => __awaiter(this, void 0, void 0, function* () {
135
- var _a, _b, _c, _d, _e;
136
- if (title !== HANDOFF_GOAL_EDITOR_TITLE) {
137
- return showExtensionEditor(title, prefill);
138
- }
139
- const templates = [...((_b = (_a = host.session) === null || _a === void 0 ? void 0 : _a.promptTemplates) !== null && _b !== void 0 ? _b : [])];
140
- const result = showExtensionEditor(title, prefill);
141
- const editor = (_c = host.extensionEditor) === null || _c === void 0 ? void 0 : _c.editor;
142
- if (editor) {
143
- editor.setAutocompleteProvider(createPromptTemplateAutocompleteProvider(templates, (_e = (_d = host.sessionManager) === null || _d === void 0 ? void 0 : _d.getCwd()) !== null && _e !== void 0 ? _e : process.cwd()));
120
+ export function editHandoffGoal(prefill_1, context_1) {
121
+ return __awaiter(this, arguments, void 0, function* (prefill, context, options = {}) {
122
+ var _a, _b;
123
+ const templates = [...((_a = options.templates) !== null && _a !== void 0 ? _a : [])];
124
+ const history = (_b = options.history) !== null && _b !== void 0 ? _b : new FilePromptHistory(getPromptHistoryPath(getAgentDir()));
125
+ const result = yield context.ui.custom((tui, _theme, keybindings, done) => {
126
+ const component = new ExtensionEditorComponent(tui, keybindings, HANDOFF_GOAL_EDITOR_TITLE, prefill, text => done({ status: 'submitted', text }), () => done({ status: 'cancelled', text: editor.getText() }), undefined, options.externalEditorCommand);
127
+ const editor = getDialogEditor(component);
128
+ editor.setAutocompleteProvider(createPromptTemplateAutocompleteProvider(templates, context.cwd));
129
+ installPromptHistorySearch(editor, history, false);
130
+ return component;
131
+ });
132
+ if (result.status === 'submitted') {
133
+ if (result.text.trim())
134
+ history.record(result.text, 'handoff');
135
+ return Object.assign(Object.assign({}, result), { text: expandHandoffGoalTemplate(result.text, templates) });
144
136
  }
145
- const goal = yield result;
146
- return goal === undefined ? undefined : expandHandoffGoalTemplate(goal, templates);
137
+ return result;
147
138
  });
148
139
  }
149
140
  //# sourceMappingURL=handoff-goal-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handoff-goal-editor.js","sourceRoot":"","sources":["../../../src/agent/extensions/handoff-goal-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff-goal-editor.js","sourceRoot":"","sources":["../../../src/agent/extensions/handoff-goal-editor.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,19 @@
1
1
  import { type ExtensionAPI, type ExtensionContext } from '@earendil-works/pi-coding-agent';
2
2
  import type { KeyId } from '@earendil-works/pi-tui';
3
+ import { type HandoffGoalEditor } from './handoff-goal-editor.js';
3
4
  export interface HandoffGenerationRequest {
4
5
  conversation: string;
5
6
  goal?: string;
6
7
  }
7
8
  export interface HandoffDependencies {
8
9
  generatePrompt(request: HandoffGenerationRequest, context: ExtensionContext): Promise<string>;
10
+ editGoal: HandoffGoalEditor;
9
11
  }
10
12
  export type HandoffCommandDispatcher = (command: string) => Promise<void>;
11
13
  type KeybindingsConfigValue = string | string[] | undefined;
12
14
  type KeybindingsConfig = Record<string, KeybindingsConfigValue>;
13
15
  export declare function getBkperHandoffShortcut(bindings: KeybindingsConfig): KeyId | undefined;
14
16
  export declare function getBkperHandoffShortcutFromFile(agentDir: string): KeyId | undefined;
15
- export declare function registerBkperHandoffExtension(pi: Pick<ExtensionAPI, 'registerCommand' | 'registerShortcut'>, dispatchCommand?: HandoffCommandDispatcher, handoffShortcut?: KeyId, dependencies?: HandoffDependencies): void;
17
+ export declare function registerBkperHandoffExtension(pi: Pick<ExtensionAPI, 'registerCommand' | 'registerShortcut'>, dispatchCommand?: HandoffCommandDispatcher, handoffShortcut?: KeyId, dependencies?: Partial<HandoffDependencies>): void;
16
18
  export {};
17
19
  //# sourceMappingURL=handoff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"AAGA,OAAO,EAIH,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AA6BpD,MAAM,WAAW,wBAAwB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,cAAc,CAAC,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjG;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1E,KAAK,sBAAsB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAC5D,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAqChE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,GAAG,SAAS,CAItF;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAwBnF;AA2ID,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,kBAAkB,CAAC,EAC9D,eAAe,CAAC,EAAE,wBAAwB,EAC1C,eAAe,CAAC,EAAE,KAAK,EACvB,YAAY,GAAE,mBAAyC,GACxD,IAAI,CAwDN"}
1
+ {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"AAGA,OAAO,EAIH,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAkB,KAAK,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AA4BjF,MAAM,WAAW,wBAAwB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,cAAc,CAAC,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9F,QAAQ,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1E,KAAK,sBAAsB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAC5D,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAqChE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,GAAG,SAAS,CAItF;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAwBnF;AA6ID,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,kBAAkB,CAAC,EAC9D,eAAe,CAAC,EAAE,wBAAwB,EAC1C,eAAe,CAAC,EAAE,KAAK,EACvB,YAAY,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAChD,IAAI,CA2EN"}
@@ -11,7 +11,7 @@ import { randomUUID } from 'node:crypto';
11
11
  import { readFileSync } from 'node:fs';
12
12
  import path from 'node:path';
13
13
  import { BorderedLoader, convertToLlm, serializeConversation, } from '@earendil-works/pi-coding-agent';
14
- import { HANDOFF_GOAL_EDITOR_TITLE } from './handoff-goal-editor.js';
14
+ import { editHandoffGoal } from './handoff-goal-editor.js';
15
15
  const BKPER_HANDOFF_SHORTCUT = 'ctrl+h';
16
16
  const MAX_SESSION_NAME_LENGTH = 80;
17
17
  const HANDOFF_SYSTEM_PROMPT = `You are a context transfer assistant. Given a conversation history and the user's goal for a new thread, generate a focused prompt that:
@@ -145,6 +145,7 @@ function generateWithCurrentModel(context, systemPrompt, prompt, loadingMessage)
145
145
  });
146
146
  }
147
147
  const defaultDependencies = {
148
+ editGoal: editHandoffGoal,
148
149
  generatePrompt: (request, context) => {
149
150
  var _a;
150
151
  return generateWithCurrentModel(context, HANDOFF_SYSTEM_PROMPT, `## Conversation History\n\n${request.conversation}\n\n## Goal for New Session\n\n${(_a = request.goal) !== null && _a !== void 0 ? _a : ''}`, 'Preparing handoff...');
@@ -162,7 +163,7 @@ function performHandoff(goal, context, dependencies) {
162
163
  const conversation = serializeCurrentConversation(context);
163
164
  if (!conversation) {
164
165
  context.ui.notify('No conversation to hand off.', 'warning');
165
- return;
166
+ return false;
166
167
  }
167
168
  let prompt;
168
169
  try {
@@ -171,10 +172,10 @@ function performHandoff(goal, context, dependencies) {
171
172
  catch (error) {
172
173
  if (error instanceof HandoffCancelledError) {
173
174
  context.ui.notify('Handoff cancelled.', 'info');
174
- return;
175
+ return false;
175
176
  }
176
177
  context.ui.notify(`Handoff failed: ${normalizeError(error).message}`, 'error');
177
- return;
178
+ return false;
178
179
  }
179
180
  const parentSession = context.sessionManager.getSessionFile();
180
181
  const result = yield context.newSession({
@@ -190,9 +191,15 @@ function performHandoff(goal, context, dependencies) {
190
191
  if (result.cancelled) {
191
192
  context.ui.notify('Handoff cancelled.', 'info');
192
193
  }
194
+ return !result.cancelled;
193
195
  });
194
196
  }
195
- export function registerBkperHandoffExtension(pi, dispatchCommand, handoffShortcut, dependencies = defaultDependencies) {
197
+ export function registerBkperHandoffExtension(pi, dispatchCommand, handoffShortcut, dependencies = {}) {
198
+ var _a, _b;
199
+ const resolvedDependencies = {
200
+ generatePrompt: (_a = dependencies.generatePrompt) !== null && _a !== void 0 ? _a : defaultDependencies.generatePrompt,
201
+ editGoal: (_b = dependencies.editGoal) !== null && _b !== void 0 ? _b : defaultDependencies.editGoal,
202
+ };
196
203
  let pendingGoalPrefill;
197
204
  if (handoffShortcut) {
198
205
  pi.registerShortcut(handoffShortcut, {
@@ -207,7 +214,11 @@ export function registerBkperHandoffExtension(pi, dispatchCommand, handoffShortc
207
214
  yield dispatchCommand('/handoff');
208
215
  }
209
216
  catch (error) {
210
- pendingGoalPrefill = undefined;
217
+ // The command restores its draft once it has consumed the prefill.
218
+ if (pendingGoalPrefill !== undefined) {
219
+ context.ui.setEditorText(pendingGoalPrefill);
220
+ pendingGoalPrefill = undefined;
221
+ }
211
222
  context.ui.notify(`Handoff shortcut failed: ${normalizeError(error).message}`, 'error');
212
223
  }
213
224
  }),
@@ -216,27 +227,39 @@ export function registerBkperHandoffExtension(pi, dispatchCommand, handoffShortc
216
227
  pi.registerCommand('handoff', {
217
228
  description: 'Continue the current work in a focused new session',
218
229
  handler: (args, context) => __awaiter(this, void 0, void 0, function* () {
219
- if (context.mode !== 'tui') {
220
- context.ui.notify('Handoff requires interactive mode.', 'error');
221
- return;
222
- }
223
- if (!context.model) {
224
- context.ui.notify('No model selected.', 'error');
225
- return;
226
- }
227
- let goal = args.trim();
228
- if (!goal) {
229
- const goalPrefill = pendingGoalPrefill !== null && pendingGoalPrefill !== void 0 ? pendingGoalPrefill : '';
230
- pendingGoalPrefill = undefined;
231
- const editedGoal = yield context.ui.editor(HANDOFF_GOAL_EDITOR_TITLE, goalPrefill);
232
- if (editedGoal === undefined || !editedGoal.trim()) {
233
- context.ui.notify('Handoff cancelled.', 'info');
230
+ let draftToRestore = pendingGoalPrefill;
231
+ pendingGoalPrefill = undefined;
232
+ let completed = false;
233
+ try {
234
+ if (context.mode !== 'tui') {
235
+ context.ui.notify('Handoff requires interactive mode.', 'error');
236
+ return;
237
+ }
238
+ if (!context.model) {
239
+ context.ui.notify('No model selected.', 'error');
234
240
  return;
235
241
  }
236
- goal = editedGoal.trim();
242
+ let goal = args.trim();
243
+ if (!goal) {
244
+ const result = yield resolvedDependencies.editGoal(draftToRestore !== null && draftToRestore !== void 0 ? draftToRestore : '', context);
245
+ if (result.status === 'cancelled') {
246
+ draftToRestore = result.text;
247
+ }
248
+ if (result.status === 'cancelled' || !result.text.trim()) {
249
+ context.ui.notify('Handoff cancelled.', 'info');
250
+ return;
251
+ }
252
+ goal = result.text.trim();
253
+ }
254
+ yield context.waitForIdle();
255
+ completed = yield performHandoff(goal, context, resolvedDependencies);
256
+ }
257
+ finally {
258
+ // A successful replacement invalidates this context and owns a new draft.
259
+ if (!completed && context.mode === 'tui' && draftToRestore !== undefined) {
260
+ context.ui.setEditorText(draftToRestore);
261
+ }
237
262
  }
238
- yield context.waitForIdle();
239
- yield performHandoff(goal, context, dependencies);
240
263
  }),
241
264
  });
242
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import { InteractiveMode } from '@earendil-works/pi-coding-agent';
2
2
  export type InteractiveRuntimeHost = ConstructorParameters<typeof InteractiveMode>[0];
3
3
  export declare function suppressPiResumeHintOutput(): () => void;
4
4
  export declare class BkperInteractiveMode extends InteractiveMode {
5
- private restorePendingUserMessage?;
6
5
  init(): Promise<void>;
7
6
  run(): Promise<void>;
8
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAyBzC,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAStF,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAmBvD;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IACrD,OAAO,CAAC,yBAAyB,CAAC,CAAa;IAEzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkFrB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAgBzC,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAStF,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAmBvD;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IAC/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6DrB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B"}
@@ -9,10 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { getAgentDir, InteractiveMode, } from '@earendil-works/pi-coding-agent';
11
11
  import { installBkperAuthCommandRouting } from '../extensions/auth-commands.js';
12
- import { installHandoffGoalEditorAutocomplete, installHandoffGoalEditorPromptHistory, } from '../extensions/handoff-goal-editor.js';
13
12
  import { installPromptHistoryEditor, } from './prompt-history-search.js';
14
13
  import { installPromptHistoryShortcut } from './prompt-history-shortcut.js';
15
- import { installPendingUserMessage, } from './pending-user-message.js';
16
14
  import { FilePromptHistory, getPromptHistoryPath, } from './prompt-history-store.js';
17
15
  import { installBkperSessionKeybindings, } from './session-keybindings.js';
18
16
  const PI_RESUME_HINT_TEXT = 'To resume this session:';
@@ -38,31 +36,16 @@ export class BkperInteractiveMode extends InteractiveMode {
38
36
  init: { get: () => super.init }
39
37
  });
40
38
  return __awaiter(this, void 0, void 0, function* () {
41
- var _a, _b;
39
+ var _a;
42
40
  const interactiveMode = this;
43
41
  interactiveMode.getChangelogForDisplay = () => undefined;
44
42
  if (interactiveMode.keybindings) {
45
43
  installBkperSessionKeybindings(interactiveMode.keybindings);
46
44
  }
47
45
  yield _super.init.call(this);
48
- (_a = this.restorePendingUserMessage) === null || _a === void 0 ? void 0 : _a.call(this);
49
- const pendingMessageHost = this;
50
- if (pendingMessageHost.session &&
51
- pendingMessageHost.chatContainer &&
52
- pendingMessageHost.ui &&
53
- pendingMessageHost.addMessageToChat &&
54
- pendingMessageHost.handleEvent) {
55
- this.restorePendingUserMessage = installPendingUserMessage(pendingMessageHost);
56
- }
57
46
  const authRoutingMode = this;
58
47
  const promptHistory = new FilePromptHistory(getPromptHistoryPath(getAgentDir()));
59
- const handoffGoalMode = this;
60
- if (handoffGoalMode.showExtensionEditor) {
61
- const handoffGoalHost = handoffGoalMode;
62
- installHandoffGoalEditorPromptHistory(handoffGoalHost, promptHistory);
63
- installHandoffGoalEditorAutocomplete(handoffGoalHost);
64
- }
65
- const providerRegistry = (_b = authRoutingMode.session) === null || _b === void 0 ? void 0 : _b.modelRuntime;
48
+ const providerRegistry = (_a = authRoutingMode.session) === null || _a === void 0 ? void 0 : _a.modelRuntime;
66
49
  if (providerRegistry) {
67
50
  const editors = new Set([authRoutingMode.defaultEditor, authRoutingMode.editor].filter(editor => editor !== undefined));
68
51
  for (const editor of editors) {
@@ -83,14 +66,11 @@ export class BkperInteractiveMode extends InteractiveMode {
83
66
  run: { get: () => super.run }
84
67
  });
85
68
  return __awaiter(this, void 0, void 0, function* () {
86
- var _a;
87
69
  const restoreResumeHintOutput = suppressPiResumeHintOutput();
88
70
  try {
89
71
  yield _super.run.call(this);
90
72
  }
91
73
  finally {
92
- (_a = this.restorePendingUserMessage) === null || _a === void 0 ? void 0 : _a.call(this);
93
- this.restorePendingUserMessage = undefined;
94
74
  restoreResumeHintOutput();
95
75
  }
96
76
  });
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-agent-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/run-agent-mode.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,KAAK,6BAA6B,EAGrC,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,uBAAuB,CAAC;AAW/B,MAAM,WAAW,qBAAqB;IAClC,aAAa,EAAE,MAAM,OAAO,CAAC;QACzB,OAAO,EAAE,sBAAsB,CAAC;QAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,WAAW,CAAC,EAAE,6BAA6B,EAAE,CAAC;KACjD,CAAC,CAAC;IACH,qBAAqB,EAAE,CACnB,OAAO,EAAE,sBAAsB,EAC/B,oBAAoB,CAAC,EAAE,MAAM,KAC5B;QACD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KACxB,CAAC;CACL;AAcD,MAAM,WAAW,cAAc;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,2BAA2B,CACvC,cAAc,GAAE,cAAmB,GACpC,qBAAqB,CAiIvB;AAED,wBAAsB,YAAY,CAC9B,YAAY,GAAE,qBAAqD,GACpE,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"run-agent-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/run-agent-mode.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,KAAK,6BAA6B,EAGrC,MAAM,iCAAiC,CAAC;AAWzC,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,uBAAuB,CAAC;AAW/B,MAAM,WAAW,qBAAqB;IAClC,aAAa,EAAE,MAAM,OAAO,CAAC;QACzB,OAAO,EAAE,sBAAsB,CAAC;QAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,WAAW,CAAC,EAAE,6BAA6B,EAAE,CAAC;KACjD,CAAC,CAAC;IACH,qBAAqB,EAAE,CACnB,OAAO,EAAE,sBAAsB,EAC/B,oBAAoB,CAAC,EAAE,MAAM,KAC5B;QACD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KACxB,CAAC;CACL;AAcD,MAAM,WAAW,cAAc;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,2BAA2B,CACvC,cAAc,GAAE,cAAmB,GACpC,qBAAqB,CAyIvB;AAED,wBAAsB,YAAY,CAC9B,YAAY,GAAE,qBAAqD,GACpE,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -11,8 +11,10 @@ import { join } from 'node:path';
11
11
  import { createAgentSessionFromServices, createAgentSessionRuntime, createAgentSessionServices, getAgentDir, ModelRuntime, SessionManager, SettingsManager, } from '@earendil-works/pi-coding-agent';
12
12
  import { isBkperAgentVerboseDiagnosticsEnabled, normalizeBkperAgentExtensions, registerBkperAgentBuiltins, } from '../extensions/builtins.js';
13
13
  import { getBkperAiBaseUrlOverride } from '../extensions/bkper-ai-provider.js';
14
+ import { editHandoffGoal } from '../extensions/handoff-goal-editor.js';
14
15
  import { runStartupMaintenance } from '../startup-maintenance.js';
15
16
  import { getBkperAgentSystemPrompt } from '../system-prompt.js';
17
+ import { FilePromptHistory, getPromptHistoryPath } from './prompt-history-store.js';
16
18
  import { BkperInteractiveMode, } from './interactive-mode.js';
17
19
  import { restorePersistedSessionOptions } from './session-restore.js';
18
20
  import { applyBkperAgentSettingsDefaults, applyBkperAgentToolSelection, collectSettingsDiagnostics, createStartupSessionManager, overrideDefaultTools, } from './settings.js';
@@ -51,6 +53,7 @@ export function createAgentModeDependencies(sessionOptions = {}) {
51
53
  }
52
54
  yield promptHandoffCommand(command);
53
55
  });
56
+ const promptHistory = new FilePromptHistory(getPromptHistoryPath(agentDir));
54
57
  const services = yield createAgentSessionServices({
55
58
  cwd,
56
59
  agentDir,
@@ -61,7 +64,11 @@ export function createAgentModeDependencies(sessionOptions = {}) {
61
64
  systemPromptOverride: () => getBkperAgentSystemPrompt(selectedTools),
62
65
  extensionFactories: [
63
66
  (pi) => {
64
- registerBkperAgentBuiltins(pi, runStartupMaintenance, settingsManager, process.env, modelRuntime, dispatchHandoffCommand);
67
+ registerBkperAgentBuiltins(pi, runStartupMaintenance, settingsManager, process.env, modelRuntime, dispatchHandoffCommand, (prefill, context) => editHandoffGoal(prefill, context, {
68
+ history: promptHistory,
69
+ templates: services.resourceLoader.getPrompts().prompts,
70
+ externalEditorCommand: settingsManager.getExternalEditorCommand(),
71
+ }));
65
72
  },
66
73
  ],
67
74
  extensionsOverride: base => normalizeBkperAgentExtensions(base, {