@corenel/harness 0.19.0 → 0.21.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 (163) hide show
  1. package/dist/chat/engine.d.ts +47 -0
  2. package/dist/chat/engine.d.ts.map +1 -0
  3. package/dist/chat/engine.js +803 -0
  4. package/dist/chat/engine.js.map +1 -0
  5. package/dist/chat/events.d.ts +5 -0
  6. package/dist/chat/events.d.ts.map +1 -0
  7. package/dist/chat/events.js +100 -0
  8. package/dist/chat/events.js.map +1 -0
  9. package/dist/chat/index.d.ts +9 -0
  10. package/dist/chat/index.d.ts.map +1 -0
  11. package/dist/chat/index.js +9 -0
  12. package/dist/chat/index.js.map +1 -0
  13. package/dist/chat/liveFold.d.ts +10 -0
  14. package/dist/chat/liveFold.d.ts.map +1 -0
  15. package/dist/chat/liveFold.js +31 -0
  16. package/dist/chat/liveFold.js.map +1 -0
  17. package/dist/chat/messages.d.ts +20 -0
  18. package/dist/chat/messages.d.ts.map +1 -0
  19. package/dist/chat/messages.js +56 -0
  20. package/dist/chat/messages.js.map +1 -0
  21. package/dist/chat/persist.d.ts +39 -0
  22. package/dist/chat/persist.d.ts.map +1 -0
  23. package/dist/chat/persist.js +107 -0
  24. package/dist/chat/persist.js.map +1 -0
  25. package/dist/chat/runWatchdog.d.ts +21 -0
  26. package/dist/chat/runWatchdog.d.ts.map +1 -0
  27. package/dist/chat/runWatchdog.js +92 -0
  28. package/dist/chat/runWatchdog.js.map +1 -0
  29. package/dist/chat/stitch.d.ts +26 -0
  30. package/dist/chat/stitch.d.ts.map +1 -0
  31. package/dist/chat/stitch.js +40 -0
  32. package/dist/chat/stitch.js.map +1 -0
  33. package/dist/chat/types.d.ts +163 -0
  34. package/dist/chat/types.d.ts.map +1 -0
  35. package/dist/chat/types.js +2 -0
  36. package/dist/chat/types.js.map +1 -0
  37. package/dist/core/loop.d.ts.map +1 -1
  38. package/dist/core/loop.js +50 -15
  39. package/dist/core/loop.js.map +1 -1
  40. package/dist/core/spawn.d.ts +17 -0
  41. package/dist/core/spawn.d.ts.map +1 -1
  42. package/dist/core/spawn.js +48 -14
  43. package/dist/core/spawn.js.map +1 -1
  44. package/dist/fileSchema.js +1 -1
  45. package/dist/guardrail/builtins.d.ts.map +1 -1
  46. package/dist/guardrail/builtins.js +11 -6
  47. package/dist/guardrail/builtins.js.map +1 -1
  48. package/dist/guardrail/glob.d.ts +1 -2
  49. package/dist/guardrail/glob.d.ts.map +1 -1
  50. package/dist/guardrail/glob.js +4 -29
  51. package/dist/guardrail/glob.js.map +1 -1
  52. package/dist/guardrail/guardrail.d.ts +8 -0
  53. package/dist/guardrail/guardrail.d.ts.map +1 -1
  54. package/dist/guardrail/guardrail.js +12 -0
  55. package/dist/guardrail/guardrail.js.map +1 -1
  56. package/dist/guardrail/index.d.ts +1 -1
  57. package/dist/guardrail/index.d.ts.map +1 -1
  58. package/dist/guardrail/index.js +1 -1
  59. package/dist/guardrail/index.js.map +1 -1
  60. package/dist/guardrail/serialize.d.ts.map +1 -1
  61. package/dist/guardrail/serialize.js +3 -0
  62. package/dist/guardrail/serialize.js.map +1 -1
  63. package/dist/guardrail/validate.d.ts.map +1 -1
  64. package/dist/guardrail/validate.js +4 -0
  65. package/dist/guardrail/validate.js.map +1 -1
  66. package/dist/install/lockfile.d.ts +25 -5
  67. package/dist/install/lockfile.d.ts.map +1 -1
  68. package/dist/install/lockfile.js +60 -4
  69. package/dist/install/lockfile.js.map +1 -1
  70. package/dist/install/nameEntries.d.ts +28 -0
  71. package/dist/install/nameEntries.d.ts.map +1 -0
  72. package/dist/install/nameEntries.js +198 -0
  73. package/dist/install/nameEntries.js.map +1 -0
  74. package/dist/install/pinRefusal.d.ts +4 -0
  75. package/dist/install/pinRefusal.d.ts.map +1 -0
  76. package/dist/install/pinRefusal.js +19 -0
  77. package/dist/install/pinRefusal.js.map +1 -0
  78. package/dist/install/requirements.d.ts +7 -0
  79. package/dist/install/requirements.d.ts.map +1 -0
  80. package/dist/install/requirements.js +23 -0
  81. package/dist/install/requirements.js.map +1 -0
  82. package/dist/orchestrator/sidecarTools.d.ts.map +1 -1
  83. package/dist/orchestrator/sidecarTools.js +8 -4
  84. package/dist/orchestrator/sidecarTools.js.map +1 -1
  85. package/dist/prompts/fitProject.d.ts +6 -0
  86. package/dist/prompts/fitProject.d.ts.map +1 -0
  87. package/dist/prompts/fitProject.js +6 -0
  88. package/dist/prompts/fitProject.js.map +1 -0
  89. package/dist/prompts/library/defaults.generated.js +7 -7
  90. package/dist/prompts/library/defaults.generated.js.map +1 -1
  91. package/dist/prompts/library/index.d.ts +2 -1
  92. package/dist/prompts/library/index.d.ts.map +1 -1
  93. package/dist/prompts/library/index.js +11 -16
  94. package/dist/prompts/library/index.js.map +1 -1
  95. package/dist/providers/egressGuard.d.ts +17 -0
  96. package/dist/providers/egressGuard.d.ts.map +1 -0
  97. package/dist/providers/egressGuard.js +26 -0
  98. package/dist/providers/egressGuard.js.map +1 -0
  99. package/dist/providers/gateway.d.ts +34 -0
  100. package/dist/providers/gateway.d.ts.map +1 -1
  101. package/dist/providers/gateway.js +43 -2
  102. package/dist/providers/gateway.js.map +1 -1
  103. package/dist/sidecar/askUserBroker.d.ts +40 -0
  104. package/dist/sidecar/askUserBroker.d.ts.map +1 -0
  105. package/dist/sidecar/askUserBroker.js +103 -0
  106. package/dist/sidecar/askUserBroker.js.map +1 -0
  107. package/dist/sidecar/fleetJwe.d.ts +25 -0
  108. package/dist/sidecar/fleetJwe.d.ts.map +1 -0
  109. package/dist/sidecar/fleetJwe.js +115 -0
  110. package/dist/sidecar/fleetJwe.js.map +1 -0
  111. package/dist/sidecar/fleetJws.d.ts +15 -0
  112. package/dist/sidecar/fleetJws.d.ts.map +1 -0
  113. package/dist/sidecar/fleetJws.js +47 -0
  114. package/dist/sidecar/fleetJws.js.map +1 -0
  115. package/dist/sidecar/host.d.ts +81 -1
  116. package/dist/sidecar/host.d.ts.map +1 -1
  117. package/dist/sidecar/host.js +227 -6
  118. package/dist/sidecar/host.js.map +1 -1
  119. package/dist/sidecar/identity.d.ts +9 -0
  120. package/dist/sidecar/identity.d.ts.map +1 -1
  121. package/dist/sidecar/memberGate.d.ts.map +1 -1
  122. package/dist/sidecar/memberGate.js +5 -0
  123. package/dist/sidecar/memberGate.js.map +1 -1
  124. package/dist/sidecar/server.d.ts +61 -10
  125. package/dist/sidecar/server.d.ts.map +1 -1
  126. package/dist/sidecar/server.js +592 -15
  127. package/dist/sidecar/server.js.map +1 -1
  128. package/dist/skills.d.ts +18 -0
  129. package/dist/skills.d.ts.map +1 -1
  130. package/dist/skills.js +93 -12
  131. package/dist/skills.js.map +1 -1
  132. package/dist/systemParts.d.ts +0 -1
  133. package/dist/systemParts.d.ts.map +1 -1
  134. package/dist/systemParts.js +6 -2
  135. package/dist/systemParts.js.map +1 -1
  136. package/dist/todos.d.ts +8 -0
  137. package/dist/todos.d.ts.map +1 -1
  138. package/dist/todos.js +21 -17
  139. package/dist/todos.js.map +1 -1
  140. package/dist/tools/builtins.d.ts +8 -0
  141. package/dist/tools/builtins.d.ts.map +1 -1
  142. package/dist/tools/builtins.js +21 -1
  143. package/dist/tools/builtins.js.map +1 -1
  144. package/dist/tools/namespaces.d.ts +8 -0
  145. package/dist/tools/namespaces.d.ts.map +1 -1
  146. package/dist/tools/namespaces.js +18 -0
  147. package/dist/tools/namespaces.js.map +1 -1
  148. package/dist/tools/skillTool.d.ts.map +1 -1
  149. package/dist/tools/skillTool.js +22 -1
  150. package/dist/tools/skillTool.js.map +1 -1
  151. package/dist/tools/toolFacts.d.ts +9 -0
  152. package/dist/tools/toolFacts.d.ts.map +1 -0
  153. package/dist/tools/toolFacts.js +19 -0
  154. package/dist/tools/toolFacts.js.map +1 -0
  155. package/dist/tools/toolSearch.d.ts +25 -6
  156. package/dist/tools/toolSearch.d.ts.map +1 -1
  157. package/dist/tools/toolSearch.js +62 -14
  158. package/dist/tools/toolSearch.js.map +1 -1
  159. package/dist/tools/workflowTool.d.ts +34 -0
  160. package/dist/tools/workflowTool.d.ts.map +1 -0
  161. package/dist/tools/workflowTool.js +122 -0
  162. package/dist/tools/workflowTool.js.map +1 -0
  163. package/package.json +8 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../chat/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AgentEvent } from '@corenel/protocol';
2
+ import type { ChatEventContext, ChatEventHandlers } from './types';
3
+ /** Routes an event to the one handler named for its type. Exhaustive: a new AgentEvent member fails to compile here until it has a case. */
4
+ export declare function dispatchChatEvent(e: AgentEvent, h: ChatEventHandlers, ctx: ChatEventContext): void;
5
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../chat/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEnE,4IAA4I;AAC5I,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAqClG"}
@@ -0,0 +1,100 @@
1
+ /** Routes an event to the one handler named for its type. Exhaustive: a new AgentEvent member fails to compile here until it has a case. */
2
+ export function dispatchChatEvent(e, h, ctx) {
3
+ switch (e.type) {
4
+ case 'turn':
5
+ h.onTurn(e, ctx);
6
+ return;
7
+ case 'assistant-delta':
8
+ h.onAssistantDelta(e, ctx);
9
+ return;
10
+ case 'assistant':
11
+ h.onAssistant(e, ctx);
12
+ return;
13
+ case 'injected':
14
+ h.onInjected(e, ctx);
15
+ return;
16
+ case 'turn-interrupted':
17
+ h.onTurnInterrupted(e, ctx);
18
+ return;
19
+ case 'tool-call':
20
+ h.onToolCall(e, ctx);
21
+ return;
22
+ case 'tool-delta':
23
+ h.onToolDelta(e, ctx);
24
+ return;
25
+ case 'tool-result':
26
+ h.onToolResult(e, ctx);
27
+ return;
28
+ case 'offload':
29
+ h.onOffload(e, ctx);
30
+ return;
31
+ case 'tool-check':
32
+ h.onToolCheck(e, ctx);
33
+ return;
34
+ case 'tool-hooks':
35
+ h.onToolHooks(e, ctx);
36
+ return;
37
+ case 'checkpoint':
38
+ h.onCheckpoint(e, ctx);
39
+ return;
40
+ case 'tools-loaded':
41
+ h.onToolsLoaded(e, ctx);
42
+ return;
43
+ case 'context-pressure':
44
+ h.onContextPressure(e, ctx);
45
+ return;
46
+ case 'permission':
47
+ h.onPermission(e, ctx);
48
+ return;
49
+ case 'permission-audit':
50
+ h.onPermissionAudit(e, ctx);
51
+ return;
52
+ case 'policy-violation':
53
+ h.onPolicyViolation(e, ctx);
54
+ return;
55
+ case 'heal':
56
+ h.onHeal(e, ctx);
57
+ return;
58
+ case 'usage':
59
+ h.onUsage(e, ctx);
60
+ return;
61
+ case 'turn-verified':
62
+ h.onTurnVerified(e, ctx);
63
+ return;
64
+ case 'done':
65
+ h.onDone(e, ctx);
66
+ return;
67
+ case 'artifact':
68
+ h.onArtifact(e, ctx);
69
+ return;
70
+ case 'error':
71
+ h.onError(e, ctx);
72
+ return;
73
+ case 'budget-stop':
74
+ h.onBudgetStop(e, ctx);
75
+ return;
76
+ case 'budget-warn':
77
+ h.onBudgetWarn(e, ctx);
78
+ return;
79
+ case 'audit-incomplete':
80
+ h.onAuditIncomplete(e, ctx);
81
+ return;
82
+ case 'mcp-unavailable':
83
+ h.onMcpUnavailable(e, ctx);
84
+ return;
85
+ case 'awaiting-owner':
86
+ h.onAwaitingOwner(e, ctx);
87
+ return;
88
+ case 'donts-checking':
89
+ h.onDontsChecking(e, ctx);
90
+ return;
91
+ case 'owner-decided':
92
+ h.onOwnerDecided(e, ctx);
93
+ return;
94
+ default: {
95
+ const unreachable = e;
96
+ void unreachable;
97
+ }
98
+ }
99
+ }
100
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../chat/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from './types';
2
+ export { dispatchChatEvent } from './events';
3
+ export { buildUserMessage, userText, userImages, outgoingMessages, stampFoldedView } from './messages';
4
+ export { foldLive, PARTIAL_MAX, type LiveSlice } from './liveFold';
5
+ export { createRunWatchdog, type RunWatchdog } from './runWatchdog';
6
+ export { mergeTurns, ConversationWriter, flagIfUnsaved } from './persist';
7
+ export { stitchTurn } from './stitch';
8
+ export { createChat, type Chat } from './engine';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './types.js';
2
+ export { dispatchChatEvent } from './events.js';
3
+ export { buildUserMessage, userText, userImages, outgoingMessages, stampFoldedView } from './messages.js';
4
+ export { foldLive, PARTIAL_MAX } from './liveFold.js';
5
+ export { createRunWatchdog } from './runWatchdog.js';
6
+ export { mergeTurns, ConversationWriter, flagIfUnsaved } from './persist.js';
7
+ export { stitchTurn } from './stitch.js';
8
+ export { createChat } from './engine.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAa,MAAM,UAAU,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AgentEvent } from '@corenel/protocol';
2
+ import type { LiveState, LiveTool } from './types';
3
+ export type { LiveTool };
4
+ export type LiveSlice = LiveState;
5
+ /** How much of a running tool's streamed output the live slice keeps: the tail. */
6
+ export declare const PARTIAL_MAX = 4000;
7
+ /** The in-flight view of a run after one event. Returns the SAME object when
8
+ * the event does not touch the live slice, so callers can skip a notify. */
9
+ export declare function foldLive(live: LiveSlice, e: AgentEvent): LiveSlice;
10
+ //# sourceMappingURL=liveFold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveFold.d.ts","sourceRoot":"","sources":["../../chat/liveFold.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,mFAAmF;AACnF,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC;4EAC4E;AAC5E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,GAAG,SAAS,CAuBlE"}
@@ -0,0 +1,31 @@
1
+ /** How much of a running tool's streamed output the live slice keeps: the tail. */
2
+ export const PARTIAL_MAX = 4000;
3
+ /** The in-flight view of a run after one event. Returns the SAME object when
4
+ * the event does not touch the live slice, so callers can skip a notify. */
5
+ export function foldLive(live, e) {
6
+ switch (e.type) {
7
+ case 'assistant-delta': return { ...live, text: live.text + e.delta };
8
+ case 'assistant': return { ...live, text: '' };
9
+ case 'tool-call': return { ...live, tools: [...live.tools, { id: e.id, name: e.name, args: e.args }] };
10
+ case 'tool-result': return {
11
+ ...live,
12
+ tools: live.tools.map((t) => (t.id === e.id ? { ...t, result: e.result, isError: e.isError, done: true, ms: e.durationMs } : t)),
13
+ };
14
+ case 'tool-delta': {
15
+ if (!live.tools.some((t) => t.id === e.id))
16
+ return live;
17
+ return {
18
+ ...live,
19
+ tools: live.tools.map((t) => {
20
+ if (t.id !== e.id)
21
+ return t;
22
+ const out = (t.partial ?? '') + e.delta;
23
+ return { ...t, partial: out.length > PARTIAL_MAX ? out.slice(out.length - PARTIAL_MAX) : out };
24
+ }),
25
+ };
26
+ }
27
+ case 'turn-interrupted': return { text: '', tools: [] };
28
+ default: return live;
29
+ }
30
+ }
31
+ //# sourceMappingURL=liveFold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveFold.js","sourceRoot":"","sources":["../../chat/liveFold.ts"],"names":[],"mappings":"AAWA,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC;AAEhC;4EAC4E;AAC5E,MAAM,UAAU,QAAQ,CAAC,IAAe,EAAE,CAAa;IACrD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,iBAAiB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/C,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAA+B,EAAE,CAAC,EAAE,CAAC;QAClI,KAAK,aAAa,CAAC,CAAC,OAAO;YACzB,GAAG,IAAI;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjI,CAAC;QACF,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxD,OAAO;gBACL,GAAG,IAAI;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC1B,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;wBAAE,OAAO,CAAC,CAAC;oBAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBACxC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjG,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACxD,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ChatCompletionMessageParam } from 'openai/resources/chat/completions';
2
+ import { type ConversationTurn } from '../conversation';
3
+ /** Build the user message — a plain string, or multimodal parts when images are attached. */
4
+ export declare function buildUserMessage(text: string, images: string[]): ChatCompletionMessageParam;
5
+ export declare function userText(m: ChatCompletionMessageParam): string;
6
+ export declare function userImages(m: ChatCompletionMessageParam): string[];
7
+ /** What a send hands the run: the raw included transcript, or -- once a run
8
+ * has folded -- the newest LIVE seam's folded view plus the included turns
9
+ * after the user turn that produced it. Turns at or before that turn are
10
+ * already in the view; sending them raw again re-folded the whole history
11
+ * every send. A view whose user turn is gone is skipped for the one before it,
12
+ * and with no live view at all the transcript goes raw (the next run re-folds). */
13
+ export declare function outgoingMessages(turns: ConversationTurn[]): ChatCompletionMessageParam[];
14
+ /** Stamp a run's folded view on its newest seam, and keep exactly ONE older
15
+ * view: each is a full copy of the context and persist rewrites every turn on
16
+ * every send, so views left on every seam grow without bound in a chat that
17
+ * never ends. The one kept is what `retry` of the folding turn falls back to
18
+ * (retry removes the newest seam with its user turn). */
19
+ export declare function stampFoldedView(turns: ConversationTurn[], seamId: string, view: ChatCompletionMessageParam[], through: string): ConversationTurn[];
20
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../chat/messages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA6B,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/G,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAM3F;AACD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM,CAI9D;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM,EAAE,CAGlE;AAED;;;;;mFAKmF;AACnF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,0BAA0B,EAAE,CAIxF;AAED;;;;yDAIyD;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CASlJ"}
@@ -0,0 +1,56 @@
1
+ import { foldPoint } from '../conversation.js';
2
+ /** Build the user message — a plain string, or multimodal parts when images are attached. */
3
+ export function buildUserMessage(text, images) {
4
+ if (!images.length)
5
+ return { role: 'user', content: text };
6
+ const parts = [];
7
+ if (text)
8
+ parts.push({ type: 'text', text });
9
+ for (const url of images)
10
+ parts.push({ type: 'image_url', image_url: { url } });
11
+ return { role: 'user', content: parts };
12
+ }
13
+ export function userText(m) {
14
+ if (typeof m.content === 'string')
15
+ return m.content;
16
+ if (Array.isArray(m.content)) {
17
+ const t = m.content.find((p) => p.type === 'text');
18
+ return t && 'text' in t ? t.text : '';
19
+ }
20
+ return '';
21
+ }
22
+ export function userImages(m) {
23
+ if (!Array.isArray(m.content))
24
+ return [];
25
+ return m.content.filter((p) => p.type === 'image_url').map((p) => ('image_url' in p ? p.image_url.url : '')).filter(Boolean);
26
+ }
27
+ /** What a send hands the run: the raw included transcript, or -- once a run
28
+ * has folded -- the newest LIVE seam's folded view plus the included turns
29
+ * after the user turn that produced it. Turns at or before that turn are
30
+ * already in the view; sending them raw again re-folded the whole history
31
+ * every send. A view whose user turn is gone is skipped for the one before it,
32
+ * and with no live view at all the transcript goes raw (the next run re-folds). */
33
+ export function outgoingMessages(turns) {
34
+ const fp = foldPoint(turns);
35
+ if (fp)
36
+ return [...fp.view, ...turns.slice(fp.throughIndex + 1).filter((t) => t.included).flatMap((t) => t.messages)];
37
+ return turns.filter((t) => t.included).flatMap((t) => t.messages);
38
+ }
39
+ /** Stamp a run's folded view on its newest seam, and keep exactly ONE older
40
+ * view: each is a full copy of the context and persist rewrites every turn on
41
+ * every send, so views left on every seam grow without bound in a chat that
42
+ * never ends. The one kept is what `retry` of the folding turn falls back to
43
+ * (retry removes the newest seam with its user turn). */
44
+ export function stampFoldedView(turns, seamId, view, through) {
45
+ const older = turns.filter((t) => t.foldedView && t.id !== seamId).map((t) => t.id);
46
+ const keep = older[older.length - 1];
47
+ return turns.map((t) => {
48
+ if (t.id === seamId)
49
+ return { ...t, foldedView: view, foldedThrough: through };
50
+ if (!t.foldedView || t.id === keep)
51
+ return t;
52
+ const { foldedView: _view, foldedThrough: _through, ...rest } = t;
53
+ return rest;
54
+ });
55
+ }
56
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../chat/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type ConversationTurn } from '../conversation';
2
+ import type { ChatHost, ChatState } from './types';
3
+ /** Raises saveBlocked 'load-failed' when a load was tried and missed and there
4
+ * are turns this side would lose: what is on screen is not being kept. True
5
+ * when it changed the state. */
6
+ export declare function flagIfUnsaved(state: ChatState): boolean;
7
+ /** Stored order first, this side's version of any turn both hold (last writer
8
+ * wins per turn), then this side's turns the store does not have, in this
9
+ * side's order. Only the FIRST stored turn with an id takes this side's
10
+ * version: a second one with the same id is another turn that collided (ids
11
+ * are meant to be unique; turnsFromSessionMessages keeps its synthetic ones
12
+ * so), and replacing it too would write one turn twice and lose the other. */
13
+ export declare function mergeTurns(stored: ConversationTurn[], mine: ConversationTurn[]): ConversationTurn[];
14
+ export declare class ConversationWriter {
15
+ private readonly io;
16
+ private writing;
17
+ constructor(io: Pick<ChatHost<unknown>, 'loadConversation' | 'writeConversation'>);
18
+ /** One store write at a time per conversation: every read-modify-write of the
19
+ * stored chat goes through here. Two overlapping would let one read the
20
+ * other's write before persistedLen caught up and take it for another
21
+ * writer, or write back a list the other had just shortened (R37). A failed
22
+ * write does not stop the ones queued behind it. */
23
+ queue(id: string, write: () => Promise<void>): Promise<void>;
24
+ /** Saves `state.turns`. Call it inside queue(id, ...), never on its own.
25
+ * Never before the stored transcript has loaded (R34); a load that missed
26
+ * raises saveBlocked instead (flagIfUnsaved).
27
+ * Shortens the stored chat only when it is the length this side last saw
28
+ * (R36); otherwise merges by turn id over what was just read, and then
29
+ * rewriting is safe because the merge holds every stored turn. Mutates
30
+ * state.turns and state.mergeTick on a merge, state.persistedLen and
31
+ * state.saveBlocked on a successful write. A read that throws is a save that
32
+ * did not happen and changes nothing. A write that throws after a merge leaves
33
+ * the merged turns and the bumped mergeTick in place, but not persistedLen,
34
+ * so the next save reads and merges again. */
35
+ persist(id: string, state: ChatState, model: string | null, system?: string | null): Promise<{
36
+ merged: boolean;
37
+ }>;
38
+ }
39
+ //# sourceMappingURL=persist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../chat/persist.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAsB,MAAM,SAAS,CAAC;AAEvE;;gCAEgC;AAChC,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAIvD;AAED;;;;;8EAK8E;AAC9E,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAWnG;AAED,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAF/B,OAAO,CAAC,OAAO,CAAoC;gBAEtB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;IAElG;;;;wDAIoD;IACpD,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D;;;;;;;;;;kDAU8C;IACxC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAqB9H"}
@@ -0,0 +1,107 @@
1
+ /* Saving a conversation without losing another writer's turns. The stored chat
2
+ * is read before every write; when it is not the length this side last saw,
3
+ * the two are merged by turn id instead of one overwriting the other by
4
+ * position. Pure over a host's load/write -- no browser, no transport. */
5
+ import { turnsFromSessionMessages } from '../conversation.js';
6
+ /** Raises saveBlocked 'load-failed' when a load was tried and missed and there
7
+ * are turns this side would lose: what is on screen is not being kept. True
8
+ * when it changed the state. */
9
+ export function flagIfUnsaved(state) {
10
+ if (state.loaded || !state.loadMissed || !state.turns.length || state.saveBlocked === 'load-failed')
11
+ return false;
12
+ state.saveBlocked = 'load-failed';
13
+ return true;
14
+ }
15
+ /** Stored order first, this side's version of any turn both hold (last writer
16
+ * wins per turn), then this side's turns the store does not have, in this
17
+ * side's order. Only the FIRST stored turn with an id takes this side's
18
+ * version: a second one with the same id is another turn that collided (ids
19
+ * are meant to be unique; turnsFromSessionMessages keeps its synthetic ones
20
+ * so), and replacing it too would write one turn twice and lose the other. */
21
+ export function mergeTurns(stored, mine) {
22
+ const own = new Map(mine.map((t) => [t.id, t]));
23
+ const storedIds = new Set(stored.map((t) => t.id));
24
+ const used = new Set();
25
+ const merged = stored.map((t) => {
26
+ const theirs = own.get(t.id);
27
+ if (!theirs || used.has(t.id))
28
+ return t;
29
+ used.add(t.id);
30
+ return theirs;
31
+ });
32
+ return [...merged, ...mine.filter((t) => !storedIds.has(t.id))];
33
+ }
34
+ export class ConversationWriter {
35
+ constructor(io) {
36
+ Object.defineProperty(this, "io", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: io
41
+ });
42
+ Object.defineProperty(this, "writing", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: new Map()
47
+ });
48
+ }
49
+ /** One store write at a time per conversation: every read-modify-write of the
50
+ * stored chat goes through here. Two overlapping would let one read the
51
+ * other's write before persistedLen caught up and take it for another
52
+ * writer, or write back a list the other had just shortened (R37). A failed
53
+ * write does not stop the ones queued behind it. */
54
+ queue(id, write) {
55
+ const prev = this.writing.get(id);
56
+ const next = prev ? prev.catch(() => { }).then(write) : write();
57
+ this.writing.set(id, next);
58
+ next.finally(() => { if (this.writing.get(id) === next)
59
+ this.writing.delete(id); }).catch(() => { });
60
+ return next;
61
+ }
62
+ /** Saves `state.turns`. Call it inside queue(id, ...), never on its own.
63
+ * Never before the stored transcript has loaded (R34); a load that missed
64
+ * raises saveBlocked instead (flagIfUnsaved).
65
+ * Shortens the stored chat only when it is the length this side last saw
66
+ * (R36); otherwise merges by turn id over what was just read, and then
67
+ * rewriting is safe because the merge holds every stored turn. Mutates
68
+ * state.turns and state.mergeTick on a merge, state.persistedLen and
69
+ * state.saveBlocked on a successful write. A read that throws is a save that
70
+ * did not happen and changes nothing. A write that throws after a merge leaves
71
+ * the merged turns and the bumped mergeTick in place, but not persistedLen,
72
+ * so the next save reads and merges again. */
73
+ async persist(id, state, model, system = null) {
74
+ if (!state.loaded) {
75
+ flagIfUnsaved(state);
76
+ return { merged: false };
77
+ }
78
+ let stored;
79
+ try {
80
+ stored = await this.io.loadConversation(id);
81
+ }
82
+ catch {
83
+ return { merged: false };
84
+ }
85
+ if (!stored)
86
+ return { merged: false };
87
+ const merged = stored.messages.length !== state.persistedLen;
88
+ const turns = merged ? mergeTurns(turnsFromSessionMessages(stored.messages), state.turns) : state.turns;
89
+ if (merged) {
90
+ state.turns = turns;
91
+ state.mergeTick += 1;
92
+ }
93
+ /* The stored system mirrors the frozen one (R4): written when held, dropped
94
+ * when not, so a reset system is not read back by the next load. */
95
+ const { system: _storedSystem, ...rest } = stored;
96
+ try {
97
+ await this.io.writeConversation({ ...rest, messages: turns, ...(model ? { model } : {}), ...(system !== null ? { system } : {}) }, { allowTruncate: true });
98
+ }
99
+ catch {
100
+ return { merged };
101
+ }
102
+ state.persistedLen = turns.length;
103
+ state.saveBlocked = null;
104
+ return { merged };
105
+ }
106
+ }
107
+ //# sourceMappingURL=persist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persist.js","sourceRoot":"","sources":["../../chat/persist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface RunWatchdog {
2
+ /** Feed every AgentEvent through this — tracks tool in-flight and re-arms. */
3
+ onEvent(e: {
4
+ type: string;
5
+ id?: string;
6
+ }): void;
7
+ /** Pause while a blocking UI (ask form / edit review) waits on the user. */
8
+ pause(): void;
9
+ /** (Re)arm — call after the blocking UI resolves, and once at run start.
10
+ * After a pause, ends that pause; the timers resume when none is left. */
11
+ bump(): void;
12
+ /** Stop all timers (run settled). */
13
+ clear(): void;
14
+ }
15
+ export declare const WATCHDOG_SOFT_MS = 45000;
16
+ export declare const WATCHDOG_TOOL_HARD_MS: number;
17
+ export declare function createRunWatchdog(onTimeout: (reason: 'silent' | 'tool-hard-cap') => void, opts?: {
18
+ softMs?: number;
19
+ hardMs?: number;
20
+ }): RunWatchdog;
21
+ //# sourceMappingURL=runWatchdog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runWatchdog.d.ts","sourceRoot":"","sources":["../../chat/runWatchdog.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,OAAO,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,4EAA4E;IAC5E,KAAK,IAAI,IAAI,CAAC;IACd;8EAC0E;IAC1E,IAAI,IAAI,IAAI,CAAC;IACb,qCAAqC;IACrC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,KAAK,IAAI,EACvD,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,WAAW,CAyEb"}