@pandi-coding-agent/pi-cante 0.80.2 → 0.80.3-cante.1

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 (58) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/dist/core/agent-session.d.ts +2 -0
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +30 -3
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/compaction/compaction.d.ts +0 -2
  7. package/dist/core/compaction/compaction.d.ts.map +1 -1
  8. package/dist/core/compaction/compaction.js +1 -9
  9. package/dist/core/compaction/compaction.js.map +1 -1
  10. package/dist/core/extensions/index.d.ts +1 -1
  11. package/dist/core/extensions/index.d.ts.map +1 -1
  12. package/dist/core/extensions/index.js.map +1 -1
  13. package/dist/core/extensions/types.d.ts +8 -1
  14. package/dist/core/extensions/types.d.ts.map +1 -1
  15. package/dist/core/extensions/types.js.map +1 -1
  16. package/dist/core/http-dispatcher.d.ts.map +1 -1
  17. package/dist/core/http-dispatcher.js +28 -1
  18. package/dist/core/http-dispatcher.js.map +1 -1
  19. package/dist/core/settings-manager.d.ts +3 -3
  20. package/dist/core/settings-manager.d.ts.map +1 -1
  21. package/dist/core/settings-manager.js +8 -8
  22. package/dist/core/settings-manager.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/modes/interactive/components/assistant-message.d.ts +3 -1
  27. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  28. package/dist/modes/interactive/components/assistant-message.js +15 -7
  29. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  30. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  31. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  32. package/dist/modes/interactive/components/settings-selector.js +13 -1
  33. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  34. package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  35. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  36. package/dist/modes/interactive/components/status-indicator.js +60 -0
  37. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  38. package/dist/modes/interactive/components/user-message.d.ts +6 -2
  39. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  40. package/dist/modes/interactive/components/user-message.js +18 -5
  41. package/dist/modes/interactive/components/user-message.js.map +1 -1
  42. package/dist/modes/interactive/interactive-mode.d.ts +5 -7
  43. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  44. package/dist/modes/interactive/interactive-mode.js +88 -116
  45. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  46. package/docs/extensions.md +14 -0
  47. package/docs/settings.md +1 -0
  48. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  49. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  50. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  51. package/examples/extensions/gondolin/package-lock.json +2 -2
  52. package/examples/extensions/gondolin/package.json +1 -1
  53. package/examples/extensions/sandbox/package-lock.json +2 -2
  54. package/examples/extensions/sandbox/package.json +1 -1
  55. package/examples/extensions/with-deps/package-lock.json +2 -2
  56. package/examples/extensions/with-deps/package.json +1 -1
  57. package/npm-shrinkwrap.json +40 -40
  58. package/package.json +13 -13
@@ -120,6 +120,7 @@ export class AgentSession {
120
120
  // Base system prompt (without extension appends) - used to apply fresh appends each turn
121
121
  _baseSystemPrompt = "";
122
122
  _baseSystemPromptOptions;
123
+ _systemPromptOverride;
123
124
  constructor(config) {
124
125
  this.agent = config.agent;
125
126
  this.sessionManager = config.sessionManager;
@@ -139,6 +140,7 @@ export class AgentSession {
139
140
  // (session persistence, extensions, auto-compaction, retry logic)
140
141
  this._unsubscribeAgent = this.agent.subscribe(this._handleAgentEvent);
141
142
  this._installAgentToolHooks();
143
+ this._installAgentNextTurnRefresh();
142
144
  this._buildRuntime({
143
145
  activeToolNames: this._initialActiveToolNames,
144
146
  includeAllExtensionTools: true,
@@ -227,6 +229,26 @@ export class AgentSession {
227
229
  };
228
230
  };
229
231
  }
232
+ _installAgentNextTurnRefresh() {
233
+ const previousPrepareNextTurnWithContext = this.agent.prepareNextTurnWithContext ??
234
+ (this.agent.prepareNextTurn
235
+ ? async (_turn, signal) => await this.agent.prepareNextTurn?.(signal)
236
+ : undefined);
237
+ this.agent.prepareNextTurnWithContext = async (turn, signal) => {
238
+ const previousSnapshot = await previousPrepareNextTurnWithContext?.(turn, signal);
239
+ const previousContext = previousSnapshot?.context ?? turn.context;
240
+ return {
241
+ ...previousSnapshot,
242
+ context: {
243
+ ...previousContext,
244
+ systemPrompt: this._systemPromptOverride ?? this._baseSystemPrompt,
245
+ tools: this.agent.state.tools.slice(),
246
+ },
247
+ model: this.agent.state.model,
248
+ thinkingLevel: this.agent.state.thinkingLevel,
249
+ };
250
+ };
251
+ }
230
252
  // =========================================================================
231
253
  // Event Subscription
232
254
  // =========================================================================
@@ -560,7 +582,7 @@ export class AgentSession {
560
582
  this.agent.state.tools = tools;
561
583
  // Rebuild base system prompt with new tool set
562
584
  this._baseSystemPrompt = this._rebuildSystemPrompt(validToolNames);
563
- this.agent.state.systemPrompt = this._baseSystemPrompt;
585
+ this.agent.state.systemPrompt = this._systemPromptOverride ?? this._baseSystemPrompt;
564
586
  }
565
587
  /** Whether compaction or branch summarization is currently running */
566
588
  get isCompacting() {
@@ -668,6 +690,7 @@ export class AgentSession {
668
690
  }
669
691
  }
670
692
  finally {
693
+ this._systemPromptOverride = undefined;
671
694
  this._flushPendingBashMessages();
672
695
  }
673
696
  }
@@ -808,11 +831,13 @@ export class AgentSession {
808
831
  }
809
832
  }
810
833
  // Apply extension-modified system prompt, or reset to base
811
- if (result?.systemPrompt) {
834
+ if (result?.systemPrompt !== undefined) {
835
+ this._systemPromptOverride = result.systemPrompt;
812
836
  this.agent.state.systemPrompt = result.systemPrompt;
813
837
  }
814
838
  else {
815
839
  // Ensure we're using the base prompt (in case previous turn had modifications)
840
+ this._systemPromptOverride = undefined;
816
841
  this.agent.state.systemPrompt = this._baseSystemPrompt;
817
842
  }
818
843
  }
@@ -2137,7 +2162,9 @@ export class AgentSession {
2137
2162
  */
2138
2163
  setSessionName(name) {
2139
2164
  this.sessionManager.appendSessionInfo(name);
2140
- this._emit({ type: "session_info_changed", name: this.sessionManager.getSessionName() });
2165
+ const event = { type: "session_info_changed", name: this.sessionManager.getSessionName() };
2166
+ this._emit(event);
2167
+ void this._extensionRunner.emit(event);
2141
2168
  }
2142
2169
  // =========================================================================
2143
2170
  // Tree Navigation