@pellux/goodvibes-sdk 0.34.2 → 0.36.0

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 (156) hide show
  1. package/README.md +11 -1
  2. package/dist/contracts/artifacts/operator-contract.json +4 -1
  3. package/dist/events/agents.d.ts +14 -0
  4. package/dist/events/agents.d.ts.map +1 -1
  5. package/dist/events/index.d.ts +1 -1
  6. package/dist/events/index.d.ts.map +1 -1
  7. package/dist/events/turn.d.ts +17 -0
  8. package/dist/events/turn.d.ts.map +1 -1
  9. package/dist/events/workflows.d.ts +8 -0
  10. package/dist/events/workflows.d.ts.map +1 -1
  11. package/dist/platform/acp/connection.d.ts +16 -0
  12. package/dist/platform/acp/connection.d.ts.map +1 -1
  13. package/dist/platform/acp/connection.js +17 -0
  14. package/dist/platform/agents/orchestrator-runner.d.ts +1 -1
  15. package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
  16. package/dist/platform/agents/orchestrator-runner.js +20 -24
  17. package/dist/platform/agents/orchestrator.d.ts.map +1 -1
  18. package/dist/platform/agents/orchestrator.js +3 -2
  19. package/dist/platform/agents/worktree.d.ts +11 -1
  20. package/dist/platform/agents/worktree.d.ts.map +1 -1
  21. package/dist/platform/agents/worktree.js +48 -14
  22. package/dist/platform/agents/wrfc-config.d.ts +23 -0
  23. package/dist/platform/agents/wrfc-config.d.ts.map +1 -1
  24. package/dist/platform/agents/wrfc-config.js +24 -0
  25. package/dist/platform/agents/wrfc-controller.d.ts +49 -1
  26. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  27. package/dist/platform/agents/wrfc-controller.js +271 -16
  28. package/dist/platform/agents/wrfc-types.d.ts +48 -1
  29. package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
  30. package/dist/platform/automation/manager-runtime-delivery.d.ts +1 -1
  31. package/dist/platform/automation/manager-runtime-delivery.d.ts.map +1 -1
  32. package/dist/platform/automation/manager-runtime-delivery.js +4 -3
  33. package/dist/platform/channels/policy-manager.d.ts +8 -0
  34. package/dist/platform/channels/policy-manager.d.ts.map +1 -1
  35. package/dist/platform/channels/policy-manager.js +43 -1
  36. package/dist/platform/companion/companion-chat-manager.d.ts +1 -0
  37. package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
  38. package/dist/platform/companion/companion-chat-manager.js +10 -0
  39. package/dist/platform/companion/companion-chat-routes.js +1 -0
  40. package/dist/platform/companion/companion-chat-types.d.ts +1 -0
  41. package/dist/platform/companion/companion-chat-types.d.ts.map +1 -1
  42. package/dist/platform/config/schema-domain-core.d.ts +3 -0
  43. package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
  44. package/dist/platform/config/schema-domain-core.js +24 -0
  45. package/dist/platform/config/schema-types.d.ts +6 -2
  46. package/dist/platform/config/schema-types.d.ts.map +1 -1
  47. package/dist/platform/control-plane/approval-broker.d.ts +7 -0
  48. package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
  49. package/dist/platform/control-plane/approval-broker.js +30 -0
  50. package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
  51. package/dist/platform/control-plane/method-catalog-channels.js +2 -0
  52. package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -1
  53. package/dist/platform/control-plane/method-catalog-email.js +1 -0
  54. package/dist/platform/core/compaction-sections.d.ts.map +1 -1
  55. package/dist/platform/core/compaction-sections.js +16 -5
  56. package/dist/platform/core/compaction-types.d.ts +7 -1
  57. package/dist/platform/core/compaction-types.d.ts.map +1 -1
  58. package/dist/platform/core/compaction-types.js +6 -0
  59. package/dist/platform/core/context-compaction.d.ts +20 -4
  60. package/dist/platform/core/context-compaction.d.ts.map +1 -1
  61. package/dist/platform/core/context-compaction.js +34 -7
  62. package/dist/platform/core/conversation-utils.js +1 -1
  63. package/dist/platform/core/conversation.d.ts.map +1 -1
  64. package/dist/platform/core/conversation.js +9 -4
  65. package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
  66. package/dist/platform/core/orchestrator-turn-loop.js +22 -3
  67. package/dist/platform/core/orchestrator.d.ts +12 -0
  68. package/dist/platform/core/orchestrator.d.ts.map +1 -1
  69. package/dist/platform/core/orchestrator.js +36 -8
  70. package/dist/platform/daemon/http/home-graph-routes.d.ts.map +1 -1
  71. package/dist/platform/daemon/http/home-graph-routes.js +2 -1
  72. package/dist/platform/daemon/http/project-planning-routes.d.ts.map +1 -1
  73. package/dist/platform/daemon/http/project-planning-routes.js +2 -1
  74. package/dist/platform/hooks/dispatcher.d.ts.map +1 -1
  75. package/dist/platform/hooks/dispatcher.js +4 -0
  76. package/dist/platform/hooks/runners/command.d.ts.map +1 -1
  77. package/dist/platform/hooks/runners/command.js +11 -2
  78. package/dist/platform/integrations/delivery.d.ts.map +1 -1
  79. package/dist/platform/integrations/delivery.js +0 -2
  80. package/dist/platform/intelligence/import-graph.d.ts.map +1 -1
  81. package/dist/platform/intelligence/import-graph.js +8 -0
  82. package/dist/platform/knowledge/extractors.d.ts.map +1 -1
  83. package/dist/platform/knowledge/extractors.js +30 -4
  84. package/dist/platform/mcp/client.d.ts +2 -0
  85. package/dist/platform/mcp/client.d.ts.map +1 -1
  86. package/dist/platform/mcp/client.js +17 -3
  87. package/dist/platform/mcp/registry.d.ts.map +1 -1
  88. package/dist/platform/mcp/registry.js +4 -0
  89. package/dist/platform/media/builtin-generation-providers.d.ts.map +1 -1
  90. package/dist/platform/media/builtin-generation-providers.js +2 -3
  91. package/dist/platform/media/provider-registry.d.ts.map +1 -1
  92. package/dist/platform/media/provider-registry.js +3 -1
  93. package/dist/platform/multimodal/service.d.ts.map +1 -1
  94. package/dist/platform/multimodal/service.js +18 -3
  95. package/dist/platform/providers/anthropic-compat.js +2 -2
  96. package/dist/platform/providers/anthropic-sdk-provider.js +1 -1
  97. package/dist/platform/providers/anthropic-sse-assembler.d.ts.map +1 -1
  98. package/dist/platform/providers/anthropic-sse-assembler.js +24 -0
  99. package/dist/platform/providers/anthropic.js +2 -2
  100. package/dist/platform/providers/capabilities.d.ts +6 -0
  101. package/dist/platform/providers/capabilities.d.ts.map +1 -1
  102. package/dist/platform/providers/capabilities.js +20 -1
  103. package/dist/platform/providers/gemini.d.ts.map +1 -1
  104. package/dist/platform/providers/gemini.js +57 -48
  105. package/dist/platform/providers/index.d.ts +1 -0
  106. package/dist/platform/providers/index.d.ts.map +1 -1
  107. package/dist/platform/providers/index.js +1 -0
  108. package/dist/platform/providers/interface.d.ts +9 -1
  109. package/dist/platform/providers/interface.d.ts.map +1 -1
  110. package/dist/platform/providers/llama-cpp.js +1 -1
  111. package/dist/platform/providers/lm-studio.js +1 -1
  112. package/dist/platform/providers/model-limits.d.ts.map +1 -1
  113. package/dist/platform/providers/model-limits.js +14 -2
  114. package/dist/platform/providers/ollama.js +1 -1
  115. package/dist/platform/providers/openai-codex.js +1 -1
  116. package/dist/platform/providers/openai-compat.d.ts.map +1 -1
  117. package/dist/platform/providers/openai-compat.js +2 -2
  118. package/dist/platform/providers/openai.js +2 -2
  119. package/dist/platform/runtime/emitters/agents.d.ts +2 -0
  120. package/dist/platform/runtime/emitters/agents.d.ts.map +1 -1
  121. package/dist/platform/runtime/emitters/turn.d.ts +9 -0
  122. package/dist/platform/runtime/emitters/turn.d.ts.map +1 -1
  123. package/dist/platform/runtime/emitters/turn.js +4 -0
  124. package/dist/platform/runtime/emitters/workflows.d.ts +1 -0
  125. package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
  126. package/dist/platform/runtime/store/domains/agents.d.ts +7 -0
  127. package/dist/platform/runtime/store/domains/agents.d.ts.map +1 -1
  128. package/dist/platform/runtime/store/domains/conversation.d.ts +0 -2
  129. package/dist/platform/runtime/store/domains/conversation.d.ts.map +1 -1
  130. package/dist/platform/runtime/store/domains/conversation.js +0 -1
  131. package/dist/platform/runtime/store/helpers/reducers/conversation.d.ts.map +1 -1
  132. package/dist/platform/runtime/store/helpers/reducers/conversation.js +20 -2
  133. package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
  134. package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +6 -0
  135. package/dist/platform/runtime/store/helpers/reducers/sync.d.ts.map +1 -1
  136. package/dist/platform/runtime/store/helpers/reducers/sync.js +7 -1
  137. package/dist/platform/runtime/tools/phases/execute.d.ts.map +1 -1
  138. package/dist/platform/runtime/tools/phases/execute.js +11 -1
  139. package/dist/platform/runtime/ui-read-models-core.d.ts.map +1 -1
  140. package/dist/platform/runtime/ui-read-models-core.js +4 -1
  141. package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
  142. package/dist/platform/tools/exec/runtime.js +9 -0
  143. package/dist/platform/tools/shared/overflow.d.ts.map +1 -1
  144. package/dist/platform/tools/shared/overflow.js +21 -2
  145. package/dist/platform/types/errors.d.ts +26 -0
  146. package/dist/platform/types/errors.d.ts.map +1 -1
  147. package/dist/platform/types/errors.js +63 -1
  148. package/dist/platform/utils/error-display.d.ts.map +1 -1
  149. package/dist/platform/utils/error-display.js +14 -6
  150. package/dist/platform/utils/retry.d.ts +4 -2
  151. package/dist/platform/utils/retry.d.ts.map +1 -1
  152. package/dist/platform/utils/retry.js +4 -2
  153. package/dist/platform/version.js +1 -1
  154. package/dist/platform/voice/providers/shared.d.ts.map +1 -1
  155. package/dist/platform/voice/providers/shared.js +2 -3
  156. package/package.json +9 -9
@@ -76,6 +76,13 @@ export declare class ApprovalBroker {
76
76
  }): Promise<SharedApprovalRecord | null>;
77
77
  cancelApproval(approvalId: string, actor: string, actorSurface?: string, note?: string): Promise<SharedApprovalRecord | null>;
78
78
  private expireApproval;
79
+ /**
80
+ * Drop the oldest terminal (approved/denied/cancelled/expired) approvals once
81
+ * they exceed MAX_APPROVAL_RECORDS, bounding both the in-memory Map and the
82
+ * persisted snapshot. Pending/claimed approvals are excluded and never evicted,
83
+ * so their awaiting callers and pendingResolvers are never orphaned.
84
+ */
85
+ private pruneTerminalApprovals;
79
86
  private persist;
80
87
  private publish;
81
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approval-broker.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/approval-broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-broker.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/approval-broker.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,15 @@ import { isRecord } from '../utils/record-coerce.js';
5
5
  function sortApprovals(records) {
6
6
  return [...records].sort((a, b) => b.updatedAt - a.updatedAt || a.id.localeCompare(b.id));
7
7
  }
8
+ /**
9
+ * Maximum number of terminal (resolved) approval records retained in memory and
10
+ * on disk. Mirrors ChannelPolicyManager's MAX_AUDIT_RECORDS so a long-running
11
+ * control-plane daemon does not grow the snapshot without bound. Pending and
12
+ * claimed approvals are never counted or evicted — they have a live awaited
13
+ * promise + resolver and must survive until resolved.
14
+ */
15
+ const MAX_APPROVAL_RECORDS = 500;
16
+ const TERMINAL_APPROVAL_STATUSES = new Set(['approved', 'denied', 'cancelled', 'expired']);
8
17
  const APPROVAL_STATUSES = new Set(['pending', 'claimed', 'approved', 'denied', 'cancelled', 'expired']);
9
18
  const APPROVAL_AUDIT_ACTIONS = new Set([
10
19
  'created',
@@ -153,6 +162,7 @@ export class ApprovalBroker {
153
162
  for (const approval of snapshot?.approvals ?? []) {
154
163
  this.approvals.set(approval.id, approval);
155
164
  }
165
+ this.pruneTerminalApprovals();
156
166
  this.loaded = true;
157
167
  }
158
168
  listApprovals(limit = 100) {
@@ -349,7 +359,27 @@ export class ApprovalBroker {
349
359
  this.pendingResolvers.delete(approvalId);
350
360
  }
351
361
  }
362
+ /**
363
+ * Drop the oldest terminal (approved/denied/cancelled/expired) approvals once
364
+ * they exceed MAX_APPROVAL_RECORDS, bounding both the in-memory Map and the
365
+ * persisted snapshot. Pending/claimed approvals are excluded and never evicted,
366
+ * so their awaiting callers and pendingResolvers are never orphaned.
367
+ */
368
+ pruneTerminalApprovals() {
369
+ const terminal = [];
370
+ for (const record of this.approvals.values()) {
371
+ if (TERMINAL_APPROVAL_STATUSES.has(record.status))
372
+ terminal.push(record);
373
+ }
374
+ if (terminal.length <= MAX_APPROVAL_RECORDS)
375
+ return;
376
+ terminal.sort((a, b) => b.updatedAt - a.updatedAt || a.id.localeCompare(b.id));
377
+ for (const record of terminal.slice(MAX_APPROVAL_RECORDS)) {
378
+ this.approvals.delete(record.id);
379
+ }
380
+ }
352
381
  async persist() {
382
+ this.pruneTerminalApprovals();
353
383
  await this.store.persist({
354
384
  approvals: sortApprovals(this.approvals.values()),
355
385
  });
@@ -1 +1 @@
1
- {"version":3,"file":"method-catalog-channels.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAuF1E,eAAO,MAAM,sCAAsC,EAAE,SAAS,uBAAuB,EAkqBpF,CAAC"}
1
+ {"version":3,"file":"method-catalog-channels.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAuF1E,eAAO,MAAM,sCAAsC,EAAE,SAAS,uBAAuB,EAoqBpF,CAAC"}
@@ -645,6 +645,7 @@ export const builtinGatewayChannelMethodDescriptors = [
645
645
  createdAt: STRING_SCHEMA,
646
646
  updatedAt: STRING_SCHEMA,
647
647
  }, ['assignmentId', 'surfaceKind', 'profileId', 'createdAt', 'updatedAt']),
648
+ dangerous: true,
648
649
  }),
649
650
  methodDescriptor({
650
651
  id: 'channels.routing.delete',
@@ -700,6 +701,7 @@ export const builtinGatewayChannelMethodDescriptors = [
700
701
  draft: CHANNEL_DRAFT_SCHEMA,
701
702
  created: BOOLEAN_SCHEMA,
702
703
  }, ['draft', 'created']),
704
+ dangerous: true,
703
705
  }),
704
706
  methodDescriptor({
705
707
  id: 'channels.drafts.delete',
@@ -1 +1 @@
1
- {"version":3,"file":"method-catalog-email.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-email.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAsC1E;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,SAAS,uBAAuB,EAyElF,CAAC"}
1
+ {"version":3,"file":"method-catalog-email.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-email.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAsC1E;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,SAAS,uBAAuB,EA0ElF,CAAC"}
@@ -76,6 +76,7 @@ export const builtinGatewayEmailMethodDescriptors = [
76
76
  uid: NUMBER_SCHEMA,
77
77
  draftId: STRING_SCHEMA,
78
78
  }, ['uid', 'draftId']),
79
+ dangerous: true,
79
80
  }),
80
81
  methodDescriptor({
81
82
  id: 'email.send',
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-sections.d.ts","sourceRoot":"","sources":["../../../src/platform/core/compaction-sections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAoB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGhG,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,CAMnE;AAuBD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,CAStD;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EAAE,GACxB,iBAAiB,GAAG,IAAI,CAQ1B;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,GAC7B,iBAAiB,GAAG,IAAI,CAM1B;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,SAAS,EAAE,GAClB,iBAAiB,GAAG,IAAI,CAmB1B;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,SAAO,GACf,eAAe,EAAE,CAkBnB;AAqCD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,CAgB9E;AAMD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,eAAe,EAAE,GAClC,MAAM,CAkBR;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EAAE,EACnB,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,SAAS,EAAE,CAAA;CAAE,CA8CrE;AAsBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CA2B7E;AAMD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,eAAe,EAAE,GAC1B,MAAM,CAgBR;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,GAAG,IAAI,GACzB,iBAAiB,GAAG,IAAI,CAuC1B;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI,CAa1B"}
1
+ {"version":3,"file":"compaction-sections.d.ts","sourceRoot":"","sources":["../../../src/platform/core/compaction-sections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAoB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGhG,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,CAMnE;AA6BD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,CAStD;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EAAE,GACxB,iBAAiB,GAAG,IAAI,CAQ1B;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,GAC7B,iBAAiB,GAAG,IAAI,CAM1B;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,SAAS,EAAE,GAClB,iBAAiB,GAAG,IAAI,CAmB1B;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,SAAO,GACf,eAAe,EAAE,CAsBnB;AAqCD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,CAgB9E;AAMD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,eAAe,EAAE,GAClC,MAAM,CAkBR;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EAAE,EACnB,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,SAAS,EAAE,CAAA;CAAE,CA8CrE;AAsBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CA2B7E;AAMD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,eAAe,EAAE,GAC1B,MAAM,CAgBR;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,GAAG,IAAI,GACzB,iBAAiB,GAAG,IAAI,CAuC1B;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI,CAgB1B"}
@@ -10,7 +10,7 @@
10
10
  * Empty sections return null — the orchestrator omits them entirely (no header).
11
11
  */
12
12
  import { isActiveAgent } from '../tools/agent/predicates.js';
13
- import { estimateTokens } from './compaction-types.js';
13
+ import { estimateTokens, IMAGE_TOKEN_ESTIMATE } from './compaction-types.js';
14
14
  /** Extract plain text from a ProviderMessage content field. */
15
15
  export function extractText(content) {
16
16
  if (typeof content === 'string')
@@ -20,6 +20,12 @@ export function extractText(content) {
20
20
  .map((p) => p.text)
21
21
  .join('');
22
22
  }
23
+ /** Count image content parts in a ProviderMessage content field. */
24
+ function countImageParts(content) {
25
+ if (typeof content === 'string')
26
+ return 0;
27
+ return content.filter((p) => p.type === 'image').length;
28
+ }
23
29
  /** Build a CompactionSection. Returns null if content is empty. */
24
30
  function makeSection(id, header, content) {
25
31
  const trimmed = content.trim();
@@ -119,7 +125,10 @@ export function gatherRecentConversation(messages, maxTokens = 3000) {
119
125
  // Work backward from most recent
120
126
  for (let i = eligible.length - 1; i >= 0; i--) {
121
127
  const msg = eligible[i];
122
- const msgTokens = estimateTokens(extractText(msg.content));
128
+ // Account for image parts separately: extractText drops them, but they carry
129
+ // real provider token cost (mirror IMAGE_TOKEN_ESTIMATE in estimateConversationTokens).
130
+ const msgTokens = estimateTokens(extractText(msg.content)) +
131
+ countImageParts(msg.content) * IMAGE_TOKEN_ESTIMATE;
123
132
  if (tokenCount + msgTokens > maxTokens)
124
133
  break;
125
134
  gathered.unshift(msg);
@@ -381,15 +390,17 @@ export function buildPlanProgress(plan) {
381
390
  * Each compaction adds one entry; prior entries are never modified.
382
391
  */
383
392
  export function buildSessionLineage(originalTask, lineageEntries, compactionCount) {
393
+ // Omit the section entirely when there is no original task and no recorded
394
+ // compaction entries, matching the documented omit-on-empty contract.
395
+ if (!originalTask && lineageEntries.length === 0)
396
+ return null;
384
397
  const lines = [];
385
398
  if (originalTask) {
386
399
  lines.push(`Original task: "${originalTask}"`);
387
400
  }
388
- lines.push(`Compactions: ${compactionCount}`);
401
+ lines.push(`Prior compactions: ${compactionCount}`);
389
402
  for (const entry of lineageEntries) {
390
403
  lines.push(entry);
391
404
  }
392
- if (lines.length === 0)
393
- return null;
394
405
  return makeSection('session-lineage', '## Session Lineage', lines.join('\n'));
395
406
  }
@@ -39,6 +39,12 @@ export declare const DEFAULT_COMPACTION_CONFIG: CompactionConfig;
39
39
  export type { SessionMemory };
40
40
  /** Rough token estimate for a string: 4 chars ≈ 1 token. */
41
41
  export declare function estimateTokens(text: string): number;
42
+ /**
43
+ * Rough token cost for a single image content part. Image parts carry real provider
44
+ * token cost (Anthropic bills up to ~1600 tokens per image) but contribute no text,
45
+ * so threshold and overflow estimates must not treat them as free.
46
+ */
47
+ export declare const IMAGE_TOKEN_ESTIMATE = 1600;
42
48
  /** All data sources needed for compaction. Accept as plain data; do not import singletons. */
43
49
  export interface CompactionContext {
44
50
  /** Current conversation messages (as sent to LLM — no system messages). */
@@ -55,7 +61,7 @@ export interface CompactionContext {
55
61
  lineageEntries: string[];
56
62
  /** Original task description for lineage. Set on first compaction. */
57
63
  originalTask?: string | undefined;
58
- /** Number of compactions performed so far (including this one). */
64
+ /** Number of compactions already recorded before this one (excludes the in-flight compaction). */
59
65
  compactionCount: number;
60
66
  /** Context window size for the current model (used for threshold scaling). */
61
67
  contextWindow: number;
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-types.d.ts","sourceRoot":"","sources":["../../../src/platform/core/compaction-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction-types.d.ts","sourceRoot":"","sources":["../../../src/platform/core/compaction-types.ts"],"names":[],"mappings":"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"}
@@ -19,3 +19,9 @@ export const DEFAULT_COMPACTION_CONFIG = {
19
19
  export function estimateTokens(text) {
20
20
  return Math.ceil(text.length / 4);
21
21
  }
22
+ /**
23
+ * Rough token cost for a single image content part. Image parts carry real provider
24
+ * token cost (Anthropic bills up to ~1600 tokens per image) but contribute no text,
25
+ * so threshold and overflow estimates must not treat them as free.
26
+ */
27
+ export const IMAGE_TOKEN_ESTIMATE = 1600;
@@ -33,7 +33,10 @@ export interface AutoCompactOptions {
33
33
  contextWindow: number;
34
34
  /** Whether auto-compact is already in progress (prevent re-entry). */
35
35
  isCompacting: boolean;
36
- /** Usage percentage that triggers compaction. Defaults to 80. */
36
+ /**
37
+ * Usage percentage that triggers compaction. Defaults to 80. Set to 0 to disable
38
+ * the percentage trigger; the safety buffer still applies as an independent backstop.
39
+ */
37
40
  thresholdPercent?: number | undefined;
38
41
  /** Remaining-token safety buffer that also triggers compaction. Defaults to 15000. */
39
42
  minRemainingTokens?: number | undefined;
@@ -50,11 +53,24 @@ export interface AutoCompactDecision {
50
53
  readonly safetyBufferTokens: number;
51
54
  }
52
55
  /**
53
- * Tokens remaining in the context window at which auto-compaction triggers.
54
- * Compact when contextWindow - currentTokens <= COMPACTION_BUFFER_TOKENS.
55
- * 15k gives room for the ~6.5k compaction output + LLM extraction calls.
56
+ * Default remaining-token safety buffer for auto-compaction. Acts as a backstop:
57
+ * compaction triggers when the remaining context drops below this buffer. 15k gives
58
+ * room for the ~6.5k compaction output + LLM extraction calls on large windows.
59
+ * The effective buffer is capped at SAFETY_BUFFER_MAX_WINDOW_FRACTION of the context
60
+ * window (see getAutoCompactDecision) so it scales down on small/medium windows instead
61
+ * of forcing near-constant compaction, while remaining an independent backstop on large windows.
56
62
  */
57
63
  export declare const COMPACTION_BUFFER_TOKENS = 15000;
64
+ /**
65
+ * The remaining-token safety buffer is capped at this fraction of the context
66
+ * window. A fixed token buffer (COMPACTION_BUFFER_TOKENS) must not reserve an
67
+ * outsized share of small/medium windows, so the effective buffer is the lesser
68
+ * of the configured buffer and this fraction of the window. On a 128k window the
69
+ * full buffer applies (128k * 0.125 = 16k >= 15k); on smaller windows it scales
70
+ * down so the backstop fires near the window edge rather than on near-empty
71
+ * conversations, while still firing independently of high percentage thresholds.
72
+ */
73
+ export declare const SAFETY_BUFFER_MAX_WINDOW_FRACTION = 0.125;
58
74
  export declare const DEFAULT_AUTO_COMPACT_THRESHOLD_PERCENT = 80;
59
75
  /**
60
76
  * Context windows smaller than this use simplified compaction (summarize last N messages)
@@ -1 +1 @@
1
- {"version":3,"file":"context-compaction.d.ts","sourceRoot":"","sources":["../../../src/platform/core/context-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,uBAAuB,CAAC;AAoB/B,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAElG,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAMD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,sCAAsC,KAAK,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAQ7C,wBAAgB,mBAAmB,IAAI,SAAS,eAAe,EAAE,CAEhE;AAED,wBAAgB,sBAAsB,IAAI,eAAe,GAAG,IAAI,CAI/D;AAMD,0EAA0E;AAC1E,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,CAc9E;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAYvD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,CA6BpF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAEnE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EAAE,EAC3B,UAAU,SAAK,GACd,eAAe,EAAE,CAanB;AAqHD;;GAEG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AA0OD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAOlC"}
1
+ {"version":3,"file":"context-compaction.d.ts","sourceRoot":"","sources":["../../../src/platform/core/context-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,uBAAuB,CAAC;AAoB/B,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAElG,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AACvD,eAAO,MAAM,sCAAsC,KAAK,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAQ7C,wBAAgB,mBAAmB,IAAI,SAAS,eAAe,EAAE,CAEhE;AAED,wBAAgB,sBAAsB,IAAI,eAAe,GAAG,IAAI,CAI/D;AAMD,0EAA0E;AAC1E,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,CAgB9E;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAYvD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,CA2CpF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAEnE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EAAE,EAC3B,UAAU,SAAK,GACd,eAAe,EAAE,CAanB;AAqHD;;GAEG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AA0OD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAOlC"}
@@ -23,7 +23,7 @@
23
23
  * getLastCompactionEvent() — return most recent compaction event
24
24
  */
25
25
  import { logger } from '../utils/logger.js';
26
- import { DEFAULT_COMPACTION_CONFIG, estimateTokens } from './compaction-types.js';
26
+ import { DEFAULT_COMPACTION_CONFIG, IMAGE_TOKEN_ESTIMATE, estimateTokens } from './compaction-types.js';
27
27
  import { summarizeError } from '../utils/error-display.js';
28
28
  import { buildHandoffHeader, buildSessionMemories, buildCurrentTask, buildRunningAgents, gatherRecentConversation, buildConversationFilterPrompt, buildToolResultsPrompt, buildAgentActivityTable, buildOlderAgentSummaryPrompt, buildResolvedProblemsPrompt, buildPlanProgress, buildSessionLineage, extractText, } from './compaction-sections.js';
29
29
  import { isActiveAgent } from '../tools/agent/predicates.js';
@@ -31,11 +31,24 @@ import { isActiveAgent } from '../tools/agent/predicates.js';
31
31
  // Compaction trigger constants
32
32
  // ---------------------------------------------------------------------------
33
33
  /**
34
- * Tokens remaining in the context window at which auto-compaction triggers.
35
- * Compact when contextWindow - currentTokens <= COMPACTION_BUFFER_TOKENS.
36
- * 15k gives room for the ~6.5k compaction output + LLM extraction calls.
34
+ * Default remaining-token safety buffer for auto-compaction. Acts as a backstop:
35
+ * compaction triggers when the remaining context drops below this buffer. 15k gives
36
+ * room for the ~6.5k compaction output + LLM extraction calls on large windows.
37
+ * The effective buffer is capped at SAFETY_BUFFER_MAX_WINDOW_FRACTION of the context
38
+ * window (see getAutoCompactDecision) so it scales down on small/medium windows instead
39
+ * of forcing near-constant compaction, while remaining an independent backstop on large windows.
37
40
  */
38
41
  export const COMPACTION_BUFFER_TOKENS = 15_000;
42
+ /**
43
+ * The remaining-token safety buffer is capped at this fraction of the context
44
+ * window. A fixed token buffer (COMPACTION_BUFFER_TOKENS) must not reserve an
45
+ * outsized share of small/medium windows, so the effective buffer is the lesser
46
+ * of the configured buffer and this fraction of the window. On a 128k window the
47
+ * full buffer applies (128k * 0.125 = 16k >= 15k); on smaller windows it scales
48
+ * down so the backstop fires near the window edge rather than on near-empty
49
+ * conversations, while still firing independently of high percentage thresholds.
50
+ */
51
+ export const SAFETY_BUFFER_MAX_WINDOW_FRACTION = 0.125;
39
52
  export const DEFAULT_AUTO_COMPACT_THRESHOLD_PERCENT = 80;
40
53
  /**
41
54
  * Context windows smaller than this use simplified compaction (summarize last N messages)
@@ -69,6 +82,9 @@ export function estimateConversationTokens(messages) {
69
82
  if (part.type === 'text') {
70
83
  total += estimateTokens(part.text);
71
84
  }
85
+ else if (part.type === 'image') {
86
+ total += IMAGE_TOKEN_ESTIMATE;
87
+ }
72
88
  }
73
89
  }
74
90
  }
@@ -93,12 +109,23 @@ export function getAutoCompactDecision(opts) {
93
109
  const usagePct = contextWindow > 0 ? (currentTokens / contextWindow) * 100 : 0;
94
110
  const thresholdTokens = contextWindow > 0 ? Math.floor((contextWindow * thresholdPercent) / 100) : 0;
95
111
  const remainingTokens = Math.max(0, contextWindow - currentTokens);
112
+ // Scale the flat safety buffer to the window so a fixed token buffer never
113
+ // reserves an outsized share of small/medium windows. A flat 15k buffer would
114
+ // trip a 20k window at ~25% usage, and would fire on every request — even an
115
+ // empty conversation — for any window at or below the buffer size. Capping the
116
+ // buffer at a fraction of the window keeps the full configured buffer on large
117
+ // windows (e.g. 128k) while scaling it down on small ones, WITHOUT collapsing
118
+ // the backstop for high (or disabled) percentage thresholds, where the buffer
119
+ // is the only thing standing between usage and the window edge. (Clamping to
120
+ // the threshold headroom instead would make the buffer fire no earlier than the
121
+ // threshold itself, nullifying it as an independent backstop.)
122
+ const effectiveBuffer = Math.min(safetyBufferTokens, Math.floor(contextWindow * SAFETY_BUFFER_MAX_WINDOW_FRACTION));
96
123
  let reason = null;
97
- if (!opts.isCompacting && contextWindow > 0 && thresholdPercent > 0) {
98
- if (currentTokens >= thresholdTokens) {
124
+ if (!opts.isCompacting && contextWindow > 0) {
125
+ if (thresholdPercent > 0 && currentTokens >= thresholdTokens) {
99
126
  reason = 'threshold';
100
127
  }
101
- else if (remainingTokens <= safetyBufferTokens) {
128
+ else if (currentTokens > 0 && effectiveBuffer > 0 && remainingTokens <= effectiveBuffer) {
102
129
  reason = 'safety-buffer';
103
130
  }
104
131
  }
@@ -44,7 +44,7 @@ export function restoreBranchMap(branches) {
44
44
  if (!branches)
45
45
  return restored;
46
46
  for (const [name, msgs] of Object.entries(branches)) {
47
- restored.set(name, msgs);
47
+ restored.set(name, cloneMessages(msgs));
48
48
  }
49
49
  return restored;
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/platform/core/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/platform/core/conversation.ts"],"names":[],"mappings":"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"}
@@ -135,9 +135,14 @@ export class ConversationManager {
135
135
  }
136
136
  addToolResults(results) {
137
137
  for (const result of results) {
138
- const content = result.success
139
- ? (result.output ?? 'Tool completed successfully.')
140
- : `Error: ${result.error ?? 'Unknown error'}`;
138
+ // `output` must never be silently dropped on failure — many tools (e.g. exec)
139
+ // put the full diagnostic payload (exit code, stdout, stderr) in `output` even
140
+ // when `success` is false, and leave `error` unset for that failure shape.
141
+ const content = result.output !== undefined
142
+ ? (result.success ? result.output : `Error: ${result.error ? result.error + '\n' : ''}${result.output}`)
143
+ : result.success
144
+ ? 'Tool completed successfully.'
145
+ : `Error: ${result.error ?? 'Unknown error'}`;
141
146
  const toolName = this.findToolName(result.callId);
142
147
  this.messages.push({
143
148
  role: 'tool',
@@ -298,7 +303,7 @@ export class ConversationManager {
298
303
  };
299
304
  }
300
305
  fromJSON(data) {
301
- this.messages = data.messages ?? [];
306
+ this.messages = cloneMessages(data.messages ?? []);
302
307
  this._title = typeof data.title === 'string' ? data.title : '';
303
308
  this._titleSource = data.titleSource === 'user' || data.titleSource === 'system'
304
309
  ? data.titleSource
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-turn-loop.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator-turn-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator-turn-loop.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator-turn-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAe,MAAM,2BAA2B,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAc/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAYhE,UAAU,kBAAkB;IAC1B,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC7C;AAED,KAAK,cAAc,GAAG,OAAO,8BAA8B,EAAE,cAAc,CAAC;AAE5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAC5D,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC;IAC5H,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAC9D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,IAAI,CACxB,oBAAoB,EACpB,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,mBAAmB,GAAG,cAAc,GAAG,MAAM,GAAG,YAAY,CAC9I,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,CAAC;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACxF,QAAQ,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC;IACxH,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzI,QAAQ,CAAC,4BAA4B,EAAE,CACrC,sBAAsB,EAAE,MAAM,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EAAE,KACpB,MAAM,CAAC;IACZ,QAAQ,CAAC,qBAAqB,EAAE,MAAM,MAAM,CAAC;IAC7C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,OAAO,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC1D,QAAQ,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACtF,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,QAAQ,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4XrG"}
@@ -2,7 +2,7 @@ import { ConsecutiveErrorBreaker } from './circuit-breaker.js';
2
2
  import { estimateConversationTokens, estimateTokens } from './context-compaction.js';
3
3
  import { ProviderError, isNonTransientProviderFailure } from '../types/errors.js';
4
4
  import { formatProviderError } from '../utils/error-display.js';
5
- import { emitOpsCacheMetrics, emitOpsHelperUsage, emitLlmRequestStarted, emitLlmResponseReceived, emitPreflightFail, emitPreflightOk, emitStreamDelta, emitStreamEnd, emitStreamStart, emitTurnError, } from '../runtime/emitters/index.js';
5
+ import { emitOpsCacheMetrics, emitOpsHelperUsage, emitLlmRequestStarted, emitLlmResponseReceived, emitPreflightFail, emitPreflightOk, emitStreamDelta, emitStreamEnd, emitStreamRetry, emitStreamStart, emitTurnError, } from '../runtime/emitters/index.js';
6
6
  import { HelperModel } from '../config/helper-model.js';
7
7
  import { logger } from '../utils/logger.js';
8
8
  import { emitMalformedToolUseWarning, handleFinalResponseOutcome, handleToolResponseOutcome, } from './orchestrator-turn-helpers.js';
@@ -108,6 +108,8 @@ export async function executeOrchestratorTurnLoop(context) {
108
108
  promptSummary: '<redacted-length-unknown>',
109
109
  });
110
110
  }
111
+ const chatStartedAt = Date.now();
112
+ let chatRetries = 0;
111
113
  try {
112
114
  const baseSystemPrompt = appendGoodVibesRuntimeAwarenessPrompt(context.getSystemPrompt());
113
115
  const wrfcRoutingPrompt = buildWrfcWorkflowRoutingPrompt(context.text);
@@ -125,6 +127,19 @@ export async function executeOrchestratorTurnLoop(context) {
125
127
  })(),
126
128
  signal: context.getAbortSignal(),
127
129
  onDelta,
130
+ onRetry: (attempt, maxAttempts, delayMs, error) => {
131
+ chatRetries = attempt;
132
+ if (context.runtimeBus) {
133
+ emitStreamRetry(context.runtimeBus, context.emitterContext(context.turnId), {
134
+ turnId: context.turnId,
135
+ provider: model.provider,
136
+ attempt,
137
+ maxAttempts,
138
+ delayMs,
139
+ reason: error.message,
140
+ });
141
+ }
142
+ },
128
143
  });
129
144
  }
130
145
  catch (chatErr) {
@@ -179,7 +194,9 @@ export async function executeOrchestratorTurnLoop(context) {
179
194
  ...response,
180
195
  usage: context.normalizeUsage(response.usage),
181
196
  };
182
- void context.favoritesStore?.recordUsage(model.registryKey);
197
+ void context.favoritesStore?.recordUsage(model.registryKey).catch((err) => logger.warn('favoritesStore.recordUsage failed', {
198
+ error: err instanceof Error ? err.message : String(err),
199
+ }));
183
200
  context.usage.input += response.usage.inputTokens;
184
201
  context.usage.output += response.usage.outputTokens;
185
202
  context.usage.cacheRead += response.usage.cacheReadTokens ?? 0;
@@ -223,6 +240,8 @@ export async function executeOrchestratorTurnLoop(context) {
223
240
  outputTokens: response.usage.outputTokens,
224
241
  cacheReadTokens: response.usage.cacheReadTokens,
225
242
  cacheWriteTokens: response.usage.cacheWriteTokens,
243
+ durationMs: Date.now() - chatStartedAt,
244
+ retries: chatRetries,
226
245
  });
227
246
  }
228
247
  if (context.hookDispatcher) {
@@ -297,7 +316,7 @@ export async function executeOrchestratorTurnLoop(context) {
297
316
  });
298
317
  }
299
318
  context.markTurnFailed();
300
- continueLoop = false;
319
+ break;
301
320
  }
302
321
  else if (breakerResult === 'warn') {
303
322
  context.conversation.addSystemMessage(`WARNING: You have made ${circuitBreaker.consecutiveErrors} consecutive tool calls that ALL failed. `
@@ -216,6 +216,18 @@ export declare class Orchestrator {
216
216
  * @param options - Optional origin metadata for external surfaces.
217
217
  */
218
218
  handleUserInput(text: string, content?: ContentPart[], options?: OrchestratorUserInputOptions | undefined): Promise<void>;
219
+ /**
220
+ * Drain queued user messages sequentially. Skips draining while a turn is in
221
+ * flight or a background auto-compaction is running; in the latter case
222
+ * setCompacting() re-triggers the drain once compaction settles, so no queued
223
+ * message is lost.
224
+ */
225
+ private drainMessageQueue;
226
+ /**
227
+ * Single funnel for mutating the compaction flag. On the true->false edge it
228
+ * resumes draining any messages that were queued while compaction was in flight.
229
+ */
230
+ private setCompacting;
219
231
  private startThinking;
220
232
  private stopThinking;
221
233
  private runTurn;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator.ts"],"names":[],"mappings":"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"}