@itaila/archetype 0.3.30

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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +475 -0
  3. package/dist/audit/audit-persona.d.ts +163 -0
  4. package/dist/audit/audit-persona.d.ts.map +1 -0
  5. package/dist/audit/audit-persona.js +415 -0
  6. package/dist/audit/audit-persona.js.map +1 -0
  7. package/dist/audit/brain-reflection.d.ts +33 -0
  8. package/dist/audit/brain-reflection.d.ts.map +1 -0
  9. package/dist/audit/brain-reflection.js +148 -0
  10. package/dist/audit/brain-reflection.js.map +1 -0
  11. package/dist/audit/conversation-audit.d.ts +12 -0
  12. package/dist/audit/conversation-audit.d.ts.map +1 -0
  13. package/dist/audit/conversation-audit.js +76 -0
  14. package/dist/audit/conversation-audit.js.map +1 -0
  15. package/dist/audit/prompt-audit.d.ts +10 -0
  16. package/dist/audit/prompt-audit.d.ts.map +1 -0
  17. package/dist/audit/prompt-audit.js +153 -0
  18. package/dist/audit/prompt-audit.js.map +1 -0
  19. package/dist/audit/prompt-dump.d.ts +137 -0
  20. package/dist/audit/prompt-dump.d.ts.map +1 -0
  21. package/dist/audit/prompt-dump.js +269 -0
  22. package/dist/audit/prompt-dump.js.map +1 -0
  23. package/dist/audit/trace-integrity.d.ts +33 -0
  24. package/dist/audit/trace-integrity.d.ts.map +1 -0
  25. package/dist/audit/trace-integrity.js +109 -0
  26. package/dist/audit/trace-integrity.js.map +1 -0
  27. package/dist/audit/types.d.ts +92 -0
  28. package/dist/audit/types.d.ts.map +1 -0
  29. package/dist/audit/types.js +2 -0
  30. package/dist/audit/types.js.map +1 -0
  31. package/dist/audit/version.d.ts +14 -0
  32. package/dist/audit/version.d.ts.map +1 -0
  33. package/dist/audit/version.js +65 -0
  34. package/dist/audit/version.js.map +1 -0
  35. package/dist/brain.d.ts +7 -0
  36. package/dist/brain.d.ts.map +1 -0
  37. package/dist/brain.js +83 -0
  38. package/dist/brain.js.map +1 -0
  39. package/dist/builder/actions.d.ts +60 -0
  40. package/dist/builder/actions.d.ts.map +1 -0
  41. package/dist/builder/actions.js +257 -0
  42. package/dist/builder/actions.js.map +1 -0
  43. package/dist/builder/browser.d.ts +140 -0
  44. package/dist/builder/browser.d.ts.map +1 -0
  45. package/dist/builder/browser.js +232 -0
  46. package/dist/builder/browser.js.map +1 -0
  47. package/dist/builder/executor.d.ts +228 -0
  48. package/dist/builder/executor.d.ts.map +1 -0
  49. package/dist/builder/executor.js +1548 -0
  50. package/dist/builder/executor.js.map +1 -0
  51. package/dist/builder/index.d.ts +24 -0
  52. package/dist/builder/index.d.ts.map +1 -0
  53. package/dist/builder/index.js +24 -0
  54. package/dist/builder/index.js.map +1 -0
  55. package/dist/builder/node-test-discovery.d.ts +13 -0
  56. package/dist/builder/node-test-discovery.d.ts.map +1 -0
  57. package/dist/builder/node-test-discovery.js +45 -0
  58. package/dist/builder/node-test-discovery.js.map +1 -0
  59. package/dist/builder/sandbox.d.ts +172 -0
  60. package/dist/builder/sandbox.d.ts.map +1 -0
  61. package/dist/builder/sandbox.js +294 -0
  62. package/dist/builder/sandbox.js.map +1 -0
  63. package/dist/builder/workspace-files.d.ts +63 -0
  64. package/dist/builder/workspace-files.d.ts.map +1 -0
  65. package/dist/builder/workspace-files.js +190 -0
  66. package/dist/builder/workspace-files.js.map +1 -0
  67. package/dist/core/actions.d.ts +55 -0
  68. package/dist/core/actions.d.ts.map +1 -0
  69. package/dist/core/actions.js +311 -0
  70. package/dist/core/actions.js.map +1 -0
  71. package/dist/core/attachment-notes.d.ts +7 -0
  72. package/dist/core/attachment-notes.d.ts.map +1 -0
  73. package/dist/core/attachment-notes.js +38 -0
  74. package/dist/core/attachment-notes.js.map +1 -0
  75. package/dist/core/context.d.ts +10 -0
  76. package/dist/core/context.d.ts.map +1 -0
  77. package/dist/core/context.js +108 -0
  78. package/dist/core/context.js.map +1 -0
  79. package/dist/core/crud-prompt.d.ts +16 -0
  80. package/dist/core/crud-prompt.d.ts.map +1 -0
  81. package/dist/core/crud-prompt.js +268 -0
  82. package/dist/core/crud-prompt.js.map +1 -0
  83. package/dist/core/crud-schema.d.ts +12 -0
  84. package/dist/core/crud-schema.d.ts.map +1 -0
  85. package/dist/core/crud-schema.js +42 -0
  86. package/dist/core/crud-schema.js.map +1 -0
  87. package/dist/core/effective-config.d.ts +13 -0
  88. package/dist/core/effective-config.d.ts.map +1 -0
  89. package/dist/core/effective-config.js +33 -0
  90. package/dist/core/effective-config.js.map +1 -0
  91. package/dist/core/entities.d.ts +82 -0
  92. package/dist/core/entities.d.ts.map +1 -0
  93. package/dist/core/entities.js +116 -0
  94. package/dist/core/entities.js.map +1 -0
  95. package/dist/core/entity-helpers.d.ts +47 -0
  96. package/dist/core/entity-helpers.d.ts.map +1 -0
  97. package/dist/core/entity-helpers.js +122 -0
  98. package/dist/core/entity-helpers.js.map +1 -0
  99. package/dist/core/entity-registry.d.ts +47 -0
  100. package/dist/core/entity-registry.d.ts.map +1 -0
  101. package/dist/core/entity-registry.js +54 -0
  102. package/dist/core/entity-registry.js.map +1 -0
  103. package/dist/core/eq.d.ts +13 -0
  104. package/dist/core/eq.d.ts.map +1 -0
  105. package/dist/core/eq.js +41 -0
  106. package/dist/core/eq.js.map +1 -0
  107. package/dist/core/focus-context.d.ts +19 -0
  108. package/dist/core/focus-context.d.ts.map +1 -0
  109. package/dist/core/focus-context.js +46 -0
  110. package/dist/core/focus-context.js.map +1 -0
  111. package/dist/core/focus-mode-actions.d.ts +23 -0
  112. package/dist/core/focus-mode-actions.d.ts.map +1 -0
  113. package/dist/core/focus-mode-actions.js +74 -0
  114. package/dist/core/focus-mode-actions.js.map +1 -0
  115. package/dist/core/greeting.d.ts +10 -0
  116. package/dist/core/greeting.d.ts.map +1 -0
  117. package/dist/core/greeting.js +41 -0
  118. package/dist/core/greeting.js.map +1 -0
  119. package/dist/core/identity.d.ts +13 -0
  120. package/dist/core/identity.d.ts.map +1 -0
  121. package/dist/core/identity.js +54 -0
  122. package/dist/core/identity.js.map +1 -0
  123. package/dist/core/knowledge.d.ts +10 -0
  124. package/dist/core/knowledge.d.ts.map +1 -0
  125. package/dist/core/knowledge.js +40 -0
  126. package/dist/core/knowledge.js.map +1 -0
  127. package/dist/core/memory-actions.d.ts +38 -0
  128. package/dist/core/memory-actions.d.ts.map +1 -0
  129. package/dist/core/memory-actions.js +181 -0
  130. package/dist/core/memory-actions.js.map +1 -0
  131. package/dist/core/memory.d.ts +35 -0
  132. package/dist/core/memory.d.ts.map +1 -0
  133. package/dist/core/memory.js +168 -0
  134. package/dist/core/memory.js.map +1 -0
  135. package/dist/core/peer-actions.d.ts +15 -0
  136. package/dist/core/peer-actions.d.ts.map +1 -0
  137. package/dist/core/peer-actions.js +33 -0
  138. package/dist/core/peer-actions.js.map +1 -0
  139. package/dist/core/prompt-builder.d.ts +46 -0
  140. package/dist/core/prompt-builder.d.ts.map +1 -0
  141. package/dist/core/prompt-builder.js +543 -0
  142. package/dist/core/prompt-builder.js.map +1 -0
  143. package/dist/core/prompt-mode.d.ts +3 -0
  144. package/dist/core/prompt-mode.d.ts.map +1 -0
  145. package/dist/core/prompt-mode.js +6 -0
  146. package/dist/core/prompt-mode.js.map +1 -0
  147. package/dist/core/prompted-turn.d.ts +6 -0
  148. package/dist/core/prompted-turn.d.ts.map +1 -0
  149. package/dist/core/prompted-turn.js +48 -0
  150. package/dist/core/prompted-turn.js.map +1 -0
  151. package/dist/core/request-builder.d.ts +14 -0
  152. package/dist/core/request-builder.d.ts.map +1 -0
  153. package/dist/core/request-builder.js +64 -0
  154. package/dist/core/request-builder.js.map +1 -0
  155. package/dist/core/session-routing.d.ts +23 -0
  156. package/dist/core/session-routing.d.ts.map +1 -0
  157. package/dist/core/session-routing.js +59 -0
  158. package/dist/core/session-routing.js.map +1 -0
  159. package/dist/core/voice.d.ts +6 -0
  160. package/dist/core/voice.d.ts.map +1 -0
  161. package/dist/core/voice.js +30 -0
  162. package/dist/core/voice.js.map +1 -0
  163. package/dist/engine/chat.d.ts +45 -0
  164. package/dist/engine/chat.d.ts.map +1 -0
  165. package/dist/engine/chat.js +308 -0
  166. package/dist/engine/chat.js.map +1 -0
  167. package/dist/engine/continuity.d.ts +107 -0
  168. package/dist/engine/continuity.d.ts.map +1 -0
  169. package/dist/engine/continuity.js +320 -0
  170. package/dist/engine/continuity.js.map +1 -0
  171. package/dist/engine/crud.d.ts +62 -0
  172. package/dist/engine/crud.d.ts.map +1 -0
  173. package/dist/engine/crud.js +260 -0
  174. package/dist/engine/crud.js.map +1 -0
  175. package/dist/engine/side-effects.d.ts +93 -0
  176. package/dist/engine/side-effects.d.ts.map +1 -0
  177. package/dist/engine/side-effects.js +271 -0
  178. package/dist/engine/side-effects.js.map +1 -0
  179. package/dist/engine/staging.d.ts +29 -0
  180. package/dist/engine/staging.d.ts.map +1 -0
  181. package/dist/engine/staging.js +159 -0
  182. package/dist/engine/staging.js.map +1 -0
  183. package/dist/engine/working-set.d.ts +18 -0
  184. package/dist/engine/working-set.d.ts.map +1 -0
  185. package/dist/engine/working-set.js +246 -0
  186. package/dist/engine/working-set.js.map +1 -0
  187. package/dist/evals/action-contracts.d.ts +40 -0
  188. package/dist/evals/action-contracts.d.ts.map +1 -0
  189. package/dist/evals/action-contracts.js +208 -0
  190. package/dist/evals/action-contracts.js.map +1 -0
  191. package/dist/evals/brain-bloat.d.ts +39 -0
  192. package/dist/evals/brain-bloat.d.ts.map +1 -0
  193. package/dist/evals/brain-bloat.js +167 -0
  194. package/dist/evals/brain-bloat.js.map +1 -0
  195. package/dist/evals/brain-prescriptions.d.ts +30 -0
  196. package/dist/evals/brain-prescriptions.d.ts.map +1 -0
  197. package/dist/evals/brain-prescriptions.js +148 -0
  198. package/dist/evals/brain-prescriptions.js.map +1 -0
  199. package/dist/evals/cross-layer-duplicates.d.ts +49 -0
  200. package/dist/evals/cross-layer-duplicates.d.ts.map +1 -0
  201. package/dist/evals/cross-layer-duplicates.js +289 -0
  202. package/dist/evals/cross-layer-duplicates.js.map +1 -0
  203. package/dist/evals/entity-visibility.d.ts +28 -0
  204. package/dist/evals/entity-visibility.d.ts.map +1 -0
  205. package/dist/evals/entity-visibility.js +216 -0
  206. package/dist/evals/entity-visibility.js.map +1 -0
  207. package/dist/evals/index.d.ts +19 -0
  208. package/dist/evals/index.d.ts.map +1 -0
  209. package/dist/evals/index.js +11 -0
  210. package/dist/evals/index.js.map +1 -0
  211. package/dist/evals/judge.d.ts +22 -0
  212. package/dist/evals/judge.d.ts.map +1 -0
  213. package/dist/evals/judge.js +337 -0
  214. package/dist/evals/judge.js.map +1 -0
  215. package/dist/evals/operational-contract.d.ts +40 -0
  216. package/dist/evals/operational-contract.d.ts.map +1 -0
  217. package/dist/evals/operational-contract.js +115 -0
  218. package/dist/evals/operational-contract.js.map +1 -0
  219. package/dist/evals/prompt-content.d.ts +14 -0
  220. package/dist/evals/prompt-content.d.ts.map +1 -0
  221. package/dist/evals/prompt-content.js +104 -0
  222. package/dist/evals/prompt-content.js.map +1 -0
  223. package/dist/evals/runtime.d.ts +4 -0
  224. package/dist/evals/runtime.d.ts.map +1 -0
  225. package/dist/evals/runtime.js +197 -0
  226. package/dist/evals/runtime.js.map +1 -0
  227. package/dist/evals/sample-projects.d.ts +143 -0
  228. package/dist/evals/sample-projects.d.ts.map +1 -0
  229. package/dist/evals/sample-projects.js +644 -0
  230. package/dist/evals/sample-projects.js.map +1 -0
  231. package/dist/evals/types.d.ts +88 -0
  232. package/dist/evals/types.d.ts.map +1 -0
  233. package/dist/evals/types.js +2 -0
  234. package/dist/evals/types.js.map +1 -0
  235. package/dist/foundation/index.d.ts +158 -0
  236. package/dist/foundation/index.d.ts.map +1 -0
  237. package/dist/foundation/index.js +256 -0
  238. package/dist/foundation/index.js.map +1 -0
  239. package/dist/index.d.ts +223 -0
  240. package/dist/index.d.ts.map +1 -0
  241. package/dist/index.js +998 -0
  242. package/dist/index.js.map +1 -0
  243. package/dist/managed/autonomous-loop.d.ts +199 -0
  244. package/dist/managed/autonomous-loop.d.ts.map +1 -0
  245. package/dist/managed/autonomous-loop.js +451 -0
  246. package/dist/managed/autonomous-loop.js.map +1 -0
  247. package/dist/managed/conversation.d.ts +20 -0
  248. package/dist/managed/conversation.d.ts.map +1 -0
  249. package/dist/managed/conversation.js +40 -0
  250. package/dist/managed/conversation.js.map +1 -0
  251. package/dist/managed/knowledge.d.ts +7 -0
  252. package/dist/managed/knowledge.d.ts.map +1 -0
  253. package/dist/managed/knowledge.js +174 -0
  254. package/dist/managed/knowledge.js.map +1 -0
  255. package/dist/managed/memory-manager.d.ts +7 -0
  256. package/dist/managed/memory-manager.d.ts.map +1 -0
  257. package/dist/managed/memory-manager.js +18 -0
  258. package/dist/managed/memory-manager.js.map +1 -0
  259. package/dist/managed/memory-review.d.ts +45 -0
  260. package/dist/managed/memory-review.d.ts.map +1 -0
  261. package/dist/managed/memory-review.js +130 -0
  262. package/dist/managed/memory-review.js.map +1 -0
  263. package/dist/managed/storage.d.ts +2 -0
  264. package/dist/managed/storage.d.ts.map +1 -0
  265. package/dist/managed/storage.js +2 -0
  266. package/dist/managed/storage.js.map +1 -0
  267. package/dist/managed/work-history.d.ts +23 -0
  268. package/dist/managed/work-history.d.ts.map +1 -0
  269. package/dist/managed/work-history.js +31 -0
  270. package/dist/managed/work-history.js.map +1 -0
  271. package/dist/observability/index.d.ts +15 -0
  272. package/dist/observability/index.d.ts.map +1 -0
  273. package/dist/observability/index.js +15 -0
  274. package/dist/observability/index.js.map +1 -0
  275. package/dist/observability/render-run-markdown.d.ts +90 -0
  276. package/dist/observability/render-run-markdown.d.ts.map +1 -0
  277. package/dist/observability/render-run-markdown.js +231 -0
  278. package/dist/observability/render-run-markdown.js.map +1 -0
  279. package/dist/observability/turn-reporter.d.ts +20 -0
  280. package/dist/observability/turn-reporter.d.ts.map +1 -0
  281. package/dist/observability/turn-reporter.js +106 -0
  282. package/dist/observability/turn-reporter.js.map +1 -0
  283. package/dist/persona.d.ts +49 -0
  284. package/dist/persona.d.ts.map +1 -0
  285. package/dist/persona.js +287 -0
  286. package/dist/persona.js.map +1 -0
  287. package/dist/playbook/defaults.d.ts +25 -0
  288. package/dist/playbook/defaults.d.ts.map +1 -0
  289. package/dist/playbook/defaults.js +108 -0
  290. package/dist/playbook/defaults.js.map +1 -0
  291. package/dist/playbook/invariants.d.ts +244 -0
  292. package/dist/playbook/invariants.d.ts.map +1 -0
  293. package/dist/playbook/invariants.js +259 -0
  294. package/dist/playbook/invariants.js.map +1 -0
  295. package/dist/playbook/templates.d.ts +7 -0
  296. package/dist/playbook/templates.d.ts.map +1 -0
  297. package/dist/playbook/templates.js +437 -0
  298. package/dist/playbook/templates.js.map +1 -0
  299. package/dist/providers/gemini.d.ts +73 -0
  300. package/dist/providers/gemini.d.ts.map +1 -0
  301. package/dist/providers/gemini.js +536 -0
  302. package/dist/providers/gemini.js.map +1 -0
  303. package/dist/providers/types.d.ts +2 -0
  304. package/dist/providers/types.d.ts.map +1 -0
  305. package/dist/providers/types.js +2 -0
  306. package/dist/providers/types.js.map +1 -0
  307. package/dist/providers/zod-to-gemini.d.ts +8 -0
  308. package/dist/providers/zod-to-gemini.d.ts.map +1 -0
  309. package/dist/providers/zod-to-gemini.js +148 -0
  310. package/dist/providers/zod-to-gemini.js.map +1 -0
  311. package/dist/samples/pm-spec-agent.d.ts +22 -0
  312. package/dist/samples/pm-spec-agent.d.ts.map +1 -0
  313. package/dist/samples/pm-spec-agent.js +53 -0
  314. package/dist/samples/pm-spec-agent.js.map +1 -0
  315. package/dist/types.d.ts +920 -0
  316. package/dist/types.d.ts.map +1 -0
  317. package/dist/types.js +2 -0
  318. package/dist/types.js.map +1 -0
  319. package/package.json +68 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/engine/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import type { ChatParticipant, LLMProvider, ParsedAction, TurnLedgerActionOutcome, TurnLedgerEntry } from '../types.js';
2
+ export type ContinuityActionOutcome = TurnLedgerActionOutcome;
3
+ export interface BuildAssistantContinuityMessageInput {
4
+ /** The assistant's narrative message. */
5
+ message: string;
6
+ /** AI-written outcome notes from the model response. */
7
+ modelOutcomeNotes?: readonly string[];
8
+ /** Executor/action outcomes. These become durable natural-language notes. */
9
+ actionOutcomes?: readonly ContinuityActionOutcome[];
10
+ /** Debug/UI action annotations. Stripped before future model turns. */
11
+ actionAnnotations?: readonly string[];
12
+ /** Provider-specific history transport. */
13
+ historyTransport?: LLMProvider['historyTransport'];
14
+ /** Actions to preserve as compact function-call references for native FC history. */
15
+ actionsForHistory?: readonly Pick<ParsedAction, 'name' | 'params'>[];
16
+ /** Extra model-visible history sections, e.g. peer consultation summaries. */
17
+ extraHistorySections?: readonly string[];
18
+ /** Turn the message belongs to, used to age action outcomes. */
19
+ entryTurn?: number;
20
+ /** Current turn receiving this continuity message. */
21
+ currentTurn?: number;
22
+ }
23
+ /**
24
+ * Build the assistant message stored in history.
25
+ *
26
+ * This is the continuity invariant:
27
+ * - future turns see narrative + outcome notes, not raw action payloads
28
+ * - attempted actions are represented by compact natural-language action
29
+ * narration/outcome notes, not by dumping raw params back into the feed
30
+ * - raw/debug action annotations are optional and stripped from LLM history
31
+ * - function-calling providers receive compact action references with large
32
+ * params omitted
33
+ */
34
+ export declare function buildAssistantContinuityMessage(input: BuildAssistantContinuityMessageInput): string;
35
+ export interface RenderTurnLedgerOptions {
36
+ /** Actor id/name for the persona receiving the rendered history. */
37
+ perspectiveActorId?: string;
38
+ /** Participant labels used to make peer turns legible despite binary provider roles. */
39
+ participants?: readonly ChatParticipant[];
40
+ /** Whether model-facing content should include a speaker label. Defaults to true. */
41
+ speakerLabels?: boolean;
42
+ /** Provider-specific history transport. */
43
+ historyTransport?: LLMProvider['historyTransport'];
44
+ /**
45
+ * When the receiving persona already has private work history for this
46
+ * actor, omit the same actor's action outcomes from visible chat history.
47
+ * Peer outcomes are still rendered because they are shared-world facts.
48
+ */
49
+ omitActionOutcomesForActorId?: string;
50
+ /** Current turn number for time-decaying action outcome continuity. */
51
+ currentTurn?: number;
52
+ }
53
+ export interface PrepareTurnLedgerChatTurnOptions extends RenderTurnLedgerOptions {
54
+ /** Message to use when there is no fresh peer turn to receive. */
55
+ fallbackMessage: string;
56
+ }
57
+ export interface PreparedTurnLedgerChatTurn {
58
+ /** Current model-visible message for this actor. */
59
+ message: string;
60
+ /** Remaining ledger entries to render as chat history. */
61
+ turnLedger: TurnLedgerEntry[];
62
+ /** Why this message is being presented as the current turn. */
63
+ source: 'fresh-peer-turn' | 'own-action-outcome' | 'fallback';
64
+ }
65
+ /**
66
+ * Prepare a multi-persona chat turn from a turn ledger.
67
+ *
68
+ * When the latest ledger entry came from another participant, that entry is
69
+ * the current message for this actor, not another history item plus a fake
70
+ * "Continue." prompt. Its action outcomes stay attached so the receiving
71
+ * persona sees the teammate's visible message and the factual world changes
72
+ * caused by that turn in one place.
73
+ *
74
+ * The same rule applies when the latest entry is this actor's own turn with
75
+ * action outcomes. The next model call is responding to those outcomes, not
76
+ * to a fresh user request to "continue", so the result stays in the current
77
+ * event instead of being buried in assistant history.
78
+ */
79
+ export declare function prepareTurnLedgerChatTurn(entries: readonly TurnLedgerEntry[] | undefined, options: PrepareTurnLedgerChatTurnOptions): PreparedTurnLedgerChatTurn;
80
+ /**
81
+ * Render a turn ledger into model-facing chat history.
82
+ *
83
+ * This is the locked continuity path for multi-agent/custom-loop apps:
84
+ * visible chat and action outcomes travel together, raw action payloads do
85
+ * not, and actor ids are mapped into user/assistant roles per recipient.
86
+ */
87
+ export declare function renderTurnLedgerForModel(entries: readonly TurnLedgerEntry[] | undefined, options?: RenderTurnLedgerOptions): Array<{
88
+ role: 'user' | 'assistant';
89
+ content: string;
90
+ }>;
91
+ export declare function renderTurnLedgerEntryForModel(entry: TurnLedgerEntry, options?: RenderTurnLedgerOptions): {
92
+ role: 'user' | 'assistant';
93
+ content: string;
94
+ } | null;
95
+ export declare function renderTurnLedgerForDisplay(entries: readonly TurnLedgerEntry[] | undefined, options?: Pick<RenderTurnLedgerOptions, 'perspectiveActorId'>): Array<{
96
+ role: 'user' | 'assistant';
97
+ content: string;
98
+ }>;
99
+ export declare function collectOutcomeNotes(input: Pick<BuildAssistantContinuityMessageInput, 'modelOutcomeNotes' | 'actionOutcomes' | 'entryTurn' | 'currentTurn'>): string[];
100
+ export declare function buildOutcomeNoteFromActionOutcome(outcome: ContinuityActionOutcome, options?: Pick<BuildAssistantContinuityMessageInput, 'entryTurn' | 'currentTurn'>): string | null;
101
+ export declare function compactActionForHistory(action: Pick<ParsedAction, 'name' | 'params'>): {
102
+ name: string;
103
+ params: Record<string, unknown>;
104
+ };
105
+ export declare function compactValueForHistory(value: unknown, key?: string): unknown;
106
+ export declare function compactActionSummary(action: Pick<ParsedAction, 'name' | 'params'>): string;
107
+ //# sourceMappingURL=continuity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuity.d.ts","sourceRoot":"","sources":["../../src/engine/continuity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,320 @@
1
+ import { annotateMessage, stripAnnotationsForDisplay } from '../core/actions.js';
2
+ /**
3
+ * Build the assistant message stored in history.
4
+ *
5
+ * This is the continuity invariant:
6
+ * - future turns see narrative + outcome notes, not raw action payloads
7
+ * - attempted actions are represented by compact natural-language action
8
+ * narration/outcome notes, not by dumping raw params back into the feed
9
+ * - raw/debug action annotations are optional and stripped from LLM history
10
+ * - function-calling providers receive compact action references with large
11
+ * params omitted
12
+ */
13
+ export function buildAssistantContinuityMessage(input) {
14
+ const outcomeNotes = collectOutcomeNotes(input);
15
+ const narrative = [input.message, ...(input.extraHistorySections ?? [])]
16
+ .map(part => part.trim())
17
+ .filter(Boolean)
18
+ .join('\n');
19
+ if (input.historyTransport === 'compact-function-calls') {
20
+ return JSON.stringify({
21
+ message: annotateMessage(narrative, [], outcomeNotes),
22
+ actions: (input.actionsForHistory ?? []).map(action => compactActionForHistory(action)),
23
+ });
24
+ }
25
+ return annotateMessage(narrative, [...(input.actionAnnotations ?? [])], outcomeNotes);
26
+ }
27
+ /**
28
+ * Prepare a multi-persona chat turn from a turn ledger.
29
+ *
30
+ * When the latest ledger entry came from another participant, that entry is
31
+ * the current message for this actor, not another history item plus a fake
32
+ * "Continue." prompt. Its action outcomes stay attached so the receiving
33
+ * persona sees the teammate's visible message and the factual world changes
34
+ * caused by that turn in one place.
35
+ *
36
+ * The same rule applies when the latest entry is this actor's own turn with
37
+ * action outcomes. The next model call is responding to those outcomes, not
38
+ * to a fresh user request to "continue", so the result stays in the current
39
+ * event instead of being buried in assistant history.
40
+ */
41
+ export function prepareTurnLedgerChatTurn(entries, options) {
42
+ const ledger = [...(entries ?? [])];
43
+ const latest = ledger.at(-1);
44
+ if (!latest) {
45
+ return { message: options.fallbackMessage, turnLedger: ledger, source: 'fallback' };
46
+ }
47
+ const latestIsFreshPeerTurn = Boolean(latest.actorId
48
+ && options.perspectiveActorId
49
+ && latest.actorId !== options.perspectiveActorId);
50
+ const latestIsOwnActionOutcome = Boolean(latest.actorId
51
+ && options.perspectiveActorId
52
+ && latest.actorId === options.perspectiveActorId
53
+ && latest.actionOutcomes?.length);
54
+ if (!latestIsFreshPeerTurn) {
55
+ if (latestIsOwnActionOutcome) {
56
+ return {
57
+ message: buildOwnActionOutcomeCurrentMessage(latest, options),
58
+ turnLedger: ledger.slice(0, -1),
59
+ source: 'own-action-outcome',
60
+ };
61
+ }
62
+ return { message: options.fallbackMessage, turnLedger: ledger, source: 'fallback' };
63
+ }
64
+ return {
65
+ message: buildTurnLedgerCurrentMessage(latest, options),
66
+ turnLedger: ledger.slice(0, -1),
67
+ source: 'fresh-peer-turn',
68
+ };
69
+ }
70
+ function buildOwnActionOutcomeCurrentMessage(entry, options) {
71
+ return [
72
+ [
73
+ 'Current work stream from your previous turn.',
74
+ 'Read the block below as one chronological event: your narration/inner voice, then compact action narration, then factual outcomes.',
75
+ 'The action narration is not a raw action dump; raw parameters are omitted because they can bloat or contaminate the feed and may describe action APIs no longer available.',
76
+ 'Successful outcomes already changed the world; failed outcomes did not. Use the stream as current world state.',
77
+ ].join('\n'),
78
+ buildAssistantContinuityMessage({
79
+ message: labelTurnLedgerMessage(entry.message, entry, { ...options, speakerLabels: false }),
80
+ modelOutcomeNotes: entry.outcomeNotes,
81
+ actionOutcomes: entry.actionOutcomes,
82
+ actionsForHistory: entry.actionsForHistory,
83
+ historyTransport: options.historyTransport,
84
+ entryTurn: entry.turn,
85
+ currentTurn: options.currentTurn,
86
+ }),
87
+ ].filter(Boolean).join('\n\n');
88
+ }
89
+ /**
90
+ * Render a turn ledger into model-facing chat history.
91
+ *
92
+ * This is the locked continuity path for multi-agent/custom-loop apps:
93
+ * visible chat and action outcomes travel together, raw action payloads do
94
+ * not, and actor ids are mapped into user/assistant roles per recipient.
95
+ */
96
+ export function renderTurnLedgerForModel(entries, options = {}) {
97
+ return (entries ?? [])
98
+ .map(entry => renderTurnLedgerEntryForModel(entry, options))
99
+ .filter((entry) => Boolean(entry?.content.trim()));
100
+ }
101
+ export function renderTurnLedgerEntryForModel(entry, options = {}) {
102
+ const message = entry.message.trim();
103
+ if (!message)
104
+ return null;
105
+ const role = resolveLedgerRole(entry, options.perspectiveActorId);
106
+ const historyTransport = role === 'assistant' ? options.historyTransport : undefined;
107
+ const labeledMessage = labelTurnLedgerMessage(message, entry, options);
108
+ const actionOutcomes = entry.actorId && entry.actorId === options.omitActionOutcomesForActorId
109
+ ? compactOwnActionOutcomes(entry.actionOutcomes)
110
+ : entry.actionOutcomes;
111
+ return {
112
+ role,
113
+ content: buildAssistantContinuityMessage({
114
+ message: labeledMessage,
115
+ modelOutcomeNotes: entry.outcomeNotes,
116
+ actionOutcomes,
117
+ actionAnnotations: entry.actionAnnotations,
118
+ actionsForHistory: entry.actionsForHistory,
119
+ historyTransport,
120
+ entryTurn: entry.turn,
121
+ currentTurn: options.currentTurn,
122
+ }),
123
+ };
124
+ }
125
+ function compactOwnActionOutcomes(outcomes) {
126
+ if (!outcomes?.length)
127
+ return undefined;
128
+ return outcomes.map(outcome => ({
129
+ ...outcome,
130
+ outcomeNote: outcome.resultText
131
+ ? compactOwnActionOutcomeNote(outcome)
132
+ : outcome.outcomeNote,
133
+ resultText: undefined,
134
+ resultTurns: undefined,
135
+ }));
136
+ }
137
+ function compactOwnActionOutcomeNote(outcome) {
138
+ const summary = outcome.action ? compactActionSummary(outcome.action) : 'action';
139
+ const error = outcome.error?.trim();
140
+ if (outcome.status === 'failed' || outcome.success === false) {
141
+ return error ? `${summary} failed: ${error}` : `${summary} failed.`;
142
+ }
143
+ if (outcome.status === 'no_op') {
144
+ return error ? `${summary} made no state change: ${error}` : `${summary} made no state change.`;
145
+ }
146
+ if (outcome.status === 'proposed') {
147
+ return `${summary} was proposed but not executed yet.`;
148
+ }
149
+ if (outcome.status === 'executed' || outcome.success === true) {
150
+ return `${summary} executed.`;
151
+ }
152
+ return `${summary} completed.`;
153
+ }
154
+ function buildTurnLedgerCurrentMessage(entry, options) {
155
+ return buildAssistantContinuityMessage({
156
+ message: labelTurnLedgerMessage(entry.message, entry, options),
157
+ modelOutcomeNotes: entry.outcomeNotes,
158
+ actionOutcomes: entry.actionOutcomes,
159
+ actionsForHistory: entry.actionsForHistory,
160
+ historyTransport: options.historyTransport,
161
+ entryTurn: entry.turn,
162
+ currentTurn: options.currentTurn,
163
+ });
164
+ }
165
+ export function renderTurnLedgerForDisplay(entries, options = {}) {
166
+ return renderTurnLedgerForModel(entries, { ...options, speakerLabels: false })
167
+ .map(entry => ({
168
+ ...entry,
169
+ content: stripAnnotationsForDisplay(entry.content),
170
+ }));
171
+ }
172
+ function labelTurnLedgerMessage(message, entry, options = {}) {
173
+ const trimmed = message.trim();
174
+ if (options.speakerLabels === false)
175
+ return trimmed;
176
+ if (!entry.actorId)
177
+ return trimmed;
178
+ const label = resolveParticipantLabel(entry.actorId, options.participants);
179
+ return `${label}:\n${trimmed}`;
180
+ }
181
+ function resolveParticipantLabel(actorId, participants) {
182
+ return participants?.find(participant => participant.id === actorId)?.label
183
+ ?? humanizeActorId(actorId);
184
+ }
185
+ function humanizeActorId(actorId) {
186
+ return actorId
187
+ .split(/[-_\s]+/u)
188
+ .filter(Boolean)
189
+ .map(part => part.charAt(0).toUpperCase() + part.slice(1))
190
+ .join(' ')
191
+ || actorId;
192
+ }
193
+ export function collectOutcomeNotes(input) {
194
+ const notes = [
195
+ ...(input.modelOutcomeNotes ?? []),
196
+ ...(input.actionOutcomes ?? []).map(outcome => buildOutcomeNoteFromActionOutcome(outcome, input)),
197
+ ];
198
+ return [...new Set(notes.map(note => note?.trim()).filter((note) => Boolean(note)))];
199
+ }
200
+ export function buildOutcomeNoteFromActionOutcome(outcome, options = {}) {
201
+ const liveResult = resolveLiveOutcomeResult(outcome, options);
202
+ if (liveResult)
203
+ return liveResult;
204
+ const explicit = outcome.outcomeNote?.trim();
205
+ if (explicit)
206
+ return explicit;
207
+ const summary = outcome.action ? compactActionSummary(outcome.action) : 'action';
208
+ const error = outcome.error?.trim();
209
+ const status = outcome.status;
210
+ if (status === 'failed' || outcome.success === false) {
211
+ return error ? `${summary} failed: ${error}` : `${summary} failed.`;
212
+ }
213
+ if (status === 'no_op') {
214
+ return error ? `${summary} made no state change: ${error}` : `${summary} made no state change.`;
215
+ }
216
+ if (status === 'proposed') {
217
+ return `${summary} was proposed but not executed yet.`;
218
+ }
219
+ if (typeof outcome.text === 'string') {
220
+ const squashed = squashWhitespace(outcome.text);
221
+ if (squashed.length > 0 && squashed.length <= 140 && !outcome.text.includes('\n')) {
222
+ return squashed;
223
+ }
224
+ }
225
+ if (status === 'executed' || outcome.success === true) {
226
+ return `${summary} executed.`;
227
+ }
228
+ return outcome.action ? `${summary} completed.` : null;
229
+ }
230
+ function resolveLiveOutcomeResult(outcome, options) {
231
+ const resultText = outcome.resultText?.trim();
232
+ if (!resultText)
233
+ return null;
234
+ const resultTurns = outcome.resultTurns ?? 0;
235
+ if (resultTurns <= 0)
236
+ return outcome.staleText?.trim() || null;
237
+ if (typeof options.entryTurn !== 'number' || typeof options.currentTurn !== 'number')
238
+ return null;
239
+ const age = options.currentTurn - options.entryTurn;
240
+ if (age >= 1 && age <= resultTurns)
241
+ return resultText;
242
+ if (age > resultTurns)
243
+ return outcome.staleText?.trim() || null;
244
+ return resultText;
245
+ }
246
+ export function compactActionForHistory(action) {
247
+ return {
248
+ name: action.name,
249
+ params: compactValueForHistory(action.params),
250
+ };
251
+ }
252
+ export function compactValueForHistory(value, key) {
253
+ if (typeof value === 'string') {
254
+ const bytes = Buffer.byteLength(value, 'utf8');
255
+ const looksLargeBody = bytes > 160
256
+ || key === 'content'
257
+ || key === 'stdout'
258
+ || key === 'stderr'
259
+ || key === 'text'
260
+ || key === 'oldText'
261
+ || key === 'newText'
262
+ || key === 'patch';
263
+ if (looksLargeBody)
264
+ return `<omitted ${bytes} bytes>`;
265
+ return value;
266
+ }
267
+ if (Array.isArray(value)) {
268
+ if (key === 'command') {
269
+ return value.slice(0, 8).map(item => compactValueForHistory(item));
270
+ }
271
+ if (key === 'edits') {
272
+ return `<omitted ${value.length} edit${value.length === 1 ? '' : 's'}>`;
273
+ }
274
+ return value.slice(0, 8).map(item => compactValueForHistory(item));
275
+ }
276
+ if (value && typeof value === 'object') {
277
+ const compacted = {};
278
+ for (const [childKey, childValue] of Object.entries(value)) {
279
+ compacted[childKey] = compactValueForHistory(childValue, childKey);
280
+ }
281
+ return compacted;
282
+ }
283
+ return value;
284
+ }
285
+ export function compactActionSummary(action) {
286
+ const keep = {};
287
+ for (const refKey of ['path', 'pattern', 'pathGlob', 'id', 'entity', 'name', 'outcome', 'summary', 'label']) {
288
+ if (refKey in action.params && action.params[refKey] !== undefined) {
289
+ keep[refKey] = action.params[refKey];
290
+ }
291
+ }
292
+ if (action.name === 'editFile') {
293
+ const edits = action.params.edits;
294
+ keep.editCount = Array.isArray(edits) ? edits.length : (action.params.oldText !== undefined ? 1 : 0);
295
+ }
296
+ if (action.name === 'writeFile') {
297
+ const content = action.params.content;
298
+ if (typeof content === 'string')
299
+ keep.bytes = Buffer.byteLength(content, 'utf8');
300
+ }
301
+ if (action.name === 'applyPatch') {
302
+ const patch = action.params.patch;
303
+ if (typeof patch === 'string')
304
+ keep.bytes = Buffer.byteLength(patch, 'utf8');
305
+ }
306
+ const kvs = Object.entries(keep)
307
+ .map(([key, value]) => `${key}=${JSON.stringify(value)}`)
308
+ .join(', ');
309
+ return kvs ? `${action.name} {${kvs}}` : action.name;
310
+ }
311
+ function squashWhitespace(text) {
312
+ return text.replace(/\s+/gu, ' ').trim();
313
+ }
314
+ function resolveLedgerRole(entry, perspectiveActorId) {
315
+ if (perspectiveActorId && entry.actorId) {
316
+ return entry.actorId === perspectiveActorId ? 'assistant' : 'user';
317
+ }
318
+ return entry.role ?? 'assistant';
319
+ }
320
+ //# sourceMappingURL=continuity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuity.js","sourceRoot":"","sources":["../../src/engine/continuity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { CrudAction, EntityConfig, ParsedAction, TurnTrace } from '../types.js';
2
+ /**
3
+ * Validate raw CRUD actions against registered entity schemas.
4
+ * Returns valid + invalid lists.
5
+ */
6
+ export declare function validateCrudActions(raw: CrudAction[], entities: Record<string, EntityConfig>): {
7
+ valid: CrudAction[];
8
+ invalid: Array<{
9
+ action: CrudAction;
10
+ error: string;
11
+ }>;
12
+ };
13
+ /**
14
+ * Generate an action annotation string for a CRUD action.
15
+ * Uses the entity's displayField to create human-readable annotations like:
16
+ * created thread: "Roadmap prioritization"
17
+ */
18
+ export declare function crudActionToAnnotation(action: CrudAction, entities: Record<string, EntityConfig>): string;
19
+ /**
20
+ * Separate CRUD actions from regular actions in a validated action list.
21
+ * Handles stringified params (Gemini quirk) and legacy top-level crudActions.
22
+ */
23
+ export declare function separateCrudActions(actions: ParsedAction[], legacyCrud?: CrudAction[]): {
24
+ crudActions: CrudAction[];
25
+ nonCrudActions: ParsedAction[];
26
+ };
27
+ /**
28
+ * Validate CRUD actions against entity schemas and populate the trace.
29
+ * Returns the valid subset; invalid actions are logged to trace.errors.
30
+ */
31
+ export declare function validateAndTraceCrud(crudActions: CrudAction[], entities: Record<string, EntityConfig>, trace: TurnTrace): CrudAction[] | undefined;
32
+ /**
33
+ * Resolve temp IDs (prefixed with `_`) to real UUIDs.
34
+ * The AI generates `_w1`, `_ex1` etc. as cross-reference handles within a single response.
35
+ * This replaces them with permanent UUIDs before handlers see them.
36
+ *
37
+ * Resolves both `action.id` on creates and any string param values that match a temp ID.
38
+ */
39
+ export declare function resolveTempIds(actions: CrudAction[]): CrudAction[];
40
+ export interface CrudEntityHandler {
41
+ create?: (id: string, params: Record<string, unknown>) => Promise<CrudCommitResult>;
42
+ update?: (id: string, params: Record<string, unknown>) => Promise<CrudCommitResult>;
43
+ delete?: (id: string) => Promise<CrudCommitResult>;
44
+ }
45
+ export interface CrudCommitResult {
46
+ success: boolean;
47
+ error?: string;
48
+ data?: unknown;
49
+ }
50
+ /**
51
+ * Execute validated CRUD actions through entity-keyed handlers.
52
+ * This is the commit gate — the app calls this when ready to persist.
53
+ *
54
+ * Actions should be pre-validated (validateCrudActions) and temp-ID-resolved
55
+ * (resolveTempIds) before calling commitCrud.
56
+ *
57
+ * If a trace is provided, populates trace.domainActions with timing and status.
58
+ */
59
+ export declare function commitCrud(actions: CrudAction[], handlers: Record<string, CrudEntityHandler>, options?: {
60
+ trace?: TurnTrace;
61
+ }): Promise<CrudCommitResult[]>;
62
+ //# sourceMappingURL=crud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/engine/crud.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAA;AAEtG;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,EAAE,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAuEhF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,MAAM,CAgBR;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,CAAC,EAAE,UAAU,EAAE,GACxB;IAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAAC,cAAc,EAAE,YAAY,EAAE,CAAA;CAAE,CAwB/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,UAAU,EAAE,EACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACtC,KAAK,EAAE,SAAS,GACf,UAAU,EAAE,GAAG,SAAS,CAuC1B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAkBlE;AAgBD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnF,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnF,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,UAAU,EAAE,EACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3C,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoD7B"}