@zhivex-ai/core 1.18.0 → 1.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/README.md +4 -0
  2. package/dist/agent/approvals.d.ts +7 -0
  3. package/dist/agent/approvals.d.ts.map +1 -0
  4. package/dist/agent/approvals.js +97 -0
  5. package/dist/agent/approvals.js.map +1 -0
  6. package/dist/agent/cancellation.d.ts +4 -0
  7. package/dist/agent/cancellation.d.ts.map +1 -0
  8. package/dist/agent/cancellation.js +69 -0
  9. package/dist/agent/cancellation.js.map +1 -0
  10. package/dist/agent/common.d.ts +20 -0
  11. package/dist/agent/common.d.ts.map +1 -0
  12. package/dist/agent/common.js +150 -0
  13. package/dist/agent/common.js.map +1 -0
  14. package/dist/agent/compaction.d.ts +6 -0
  15. package/dist/agent/compaction.d.ts.map +1 -0
  16. package/dist/agent/compaction.js +156 -0
  17. package/dist/agent/compaction.js.map +1 -0
  18. package/dist/agent/context.d.ts +58 -0
  19. package/dist/agent/context.d.ts.map +1 -0
  20. package/dist/agent/context.js +267 -0
  21. package/dist/agent/context.js.map +1 -0
  22. package/dist/agent/definition.d.ts +4 -0
  23. package/dist/agent/definition.d.ts.map +1 -0
  24. package/dist/agent/definition.js +35 -0
  25. package/dist/agent/definition.js.map +1 -0
  26. package/dist/agent/execution.d.ts +14 -0
  27. package/dist/agent/execution.d.ts.map +1 -0
  28. package/dist/agent/execution.js +1062 -0
  29. package/dist/agent/execution.js.map +1 -0
  30. package/dist/agent/groups.d.ts +3 -0
  31. package/dist/agent/groups.d.ts.map +1 -0
  32. package/dist/agent/groups.js +130 -0
  33. package/dist/agent/groups.js.map +1 -0
  34. package/dist/agent/guardrails.d.ts +4 -0
  35. package/dist/agent/guardrails.d.ts.map +1 -0
  36. package/dist/agent/guardrails.js +29 -0
  37. package/dist/agent/guardrails.js.map +1 -0
  38. package/dist/agent/instance.d.ts +42 -0
  39. package/dist/agent/instance.d.ts.map +1 -0
  40. package/dist/agent/instance.js +82 -0
  41. package/dist/agent/instance.js.map +1 -0
  42. package/dist/agent/lifecycle.d.ts +31 -0
  43. package/dist/agent/lifecycle.d.ts.map +1 -0
  44. package/dist/agent/lifecycle.js +184 -0
  45. package/dist/agent/lifecycle.js.map +1 -0
  46. package/dist/agent/state.d.ts +6 -0
  47. package/dist/agent/state.d.ts.map +1 -0
  48. package/dist/agent/state.js +119 -0
  49. package/dist/agent/state.js.map +1 -0
  50. package/dist/agent/telemetry.d.ts +12 -0
  51. package/dist/agent/telemetry.d.ts.map +1 -0
  52. package/dist/agent/telemetry.js +176 -0
  53. package/dist/agent/telemetry.js.map +1 -0
  54. package/dist/agent/tool-execution.d.ts +6 -0
  55. package/dist/agent/tool-execution.d.ts.map +1 -0
  56. package/dist/agent/tool-execution.js +176 -0
  57. package/dist/agent/tool-execution.js.map +1 -0
  58. package/dist/agent-run-view.d.ts +9 -0
  59. package/dist/agent-run-view.d.ts.map +1 -0
  60. package/dist/agent-run-view.js +42 -0
  61. package/dist/agent-run-view.js.map +1 -0
  62. package/dist/agent-store/file.d.ts +11 -0
  63. package/dist/agent-store/file.d.ts.map +1 -0
  64. package/dist/agent-store/file.js +534 -0
  65. package/dist/agent-store/file.js.map +1 -0
  66. package/dist/agent-store/memory.d.ts +9 -0
  67. package/dist/agent-store/memory.d.ts.map +1 -0
  68. package/dist/agent-store/memory.js +198 -0
  69. package/dist/agent-store/memory.js.map +1 -0
  70. package/dist/agent-store/postgres.d.ts +4 -0
  71. package/dist/agent-store/postgres.d.ts.map +1 -0
  72. package/dist/agent-store/postgres.js +374 -0
  73. package/dist/agent-store/postgres.js.map +1 -0
  74. package/dist/agent-store/shared.d.ts +19 -0
  75. package/dist/agent-store/shared.d.ts.map +1 -0
  76. package/dist/agent-store/shared.js +137 -0
  77. package/dist/agent-store/shared.js.map +1 -0
  78. package/dist/agent-store/sqlite.d.ts +4 -0
  79. package/dist/agent-store/sqlite.d.ts.map +1 -0
  80. package/dist/agent-store/sqlite.js +362 -0
  81. package/dist/agent-store/sqlite.js.map +1 -0
  82. package/dist/agent-store.d.ts +5 -21
  83. package/dist/agent-store.d.ts.map +1 -1
  84. package/dist/agent-store.js +5 -1588
  85. package/dist/agent-store.js.map +1 -1
  86. package/dist/agent.d.ts +6 -57
  87. package/dist/agent.d.ts.map +1 -1
  88. package/dist/agent.js +6 -2631
  89. package/dist/agent.js.map +1 -1
  90. package/dist/agents-entry.d.ts +19 -0
  91. package/dist/agents-entry.d.ts.map +1 -0
  92. package/dist/agents-entry.js +14 -0
  93. package/dist/agents-entry.js.map +1 -0
  94. package/dist/artifact/file.d.ts +6 -0
  95. package/dist/artifact/file.d.ts.map +1 -0
  96. package/dist/artifact/file.js +380 -0
  97. package/dist/artifact/file.js.map +1 -0
  98. package/dist/artifact/memory.d.ts +3 -0
  99. package/dist/artifact/memory.d.ts.map +1 -0
  100. package/dist/artifact/memory.js +80 -0
  101. package/dist/artifact/memory.js.map +1 -0
  102. package/dist/artifact/postgres.d.ts +3 -0
  103. package/dist/artifact/postgres.d.ts.map +1 -0
  104. package/dist/artifact/postgres.js +283 -0
  105. package/dist/artifact/postgres.js.map +1 -0
  106. package/dist/artifact/shared.d.ts +208 -0
  107. package/dist/artifact/shared.d.ts.map +1 -0
  108. package/dist/artifact/shared.js +523 -0
  109. package/dist/artifact/shared.js.map +1 -0
  110. package/dist/artifact/sqlite.d.ts +3 -0
  111. package/dist/artifact/sqlite.d.ts.map +1 -0
  112. package/dist/artifact/sqlite.js +283 -0
  113. package/dist/artifact/sqlite.js.map +1 -0
  114. package/dist/artifact.d.ts +6 -186
  115. package/dist/artifact.d.ts.map +1 -1
  116. package/dist/artifact.js +6 -1536
  117. package/dist/artifact.js.map +1 -1
  118. package/dist/catalog-contracts.d.ts +52 -0
  119. package/dist/catalog-contracts.d.ts.map +1 -0
  120. package/dist/catalog-contracts.js +250 -0
  121. package/dist/catalog-contracts.js.map +1 -0
  122. package/dist/catalog.d.ts +3 -52
  123. package/dist/catalog.d.ts.map +1 -1
  124. package/dist/catalog.js +3 -249
  125. package/dist/catalog.js.map +1 -1
  126. package/dist/generate-cache-file.d.ts +11 -0
  127. package/dist/generate-cache-file.d.ts.map +1 -0
  128. package/dist/generate-cache-file.js +124 -0
  129. package/dist/generate-cache-file.js.map +1 -0
  130. package/dist/generate-text.d.ts +2 -5
  131. package/dist/generate-text.d.ts.map +1 -1
  132. package/dist/generate-text.js +3 -18
  133. package/dist/generate-text.js.map +1 -1
  134. package/dist/generation-entry.d.ts +6 -0
  135. package/dist/generation-entry.d.ts.map +1 -0
  136. package/dist/generation-entry.js +6 -0
  137. package/dist/generation-entry.js.map +1 -0
  138. package/dist/middleware-runtime.d.ts +35 -0
  139. package/dist/middleware-runtime.d.ts.map +1 -0
  140. package/dist/middleware-runtime.js +532 -0
  141. package/dist/middleware-runtime.js.map +1 -0
  142. package/dist/middleware.d.ts +3 -43
  143. package/dist/middleware.d.ts.map +1 -1
  144. package/dist/middleware.js +3 -653
  145. package/dist/middleware.js.map +1 -1
  146. package/dist/normalize-messages.d.ts +3 -0
  147. package/dist/normalize-messages.d.ts.map +1 -0
  148. package/dist/normalize-messages.js +16 -0
  149. package/dist/normalize-messages.js.map +1 -0
  150. package/dist/provider-entry.d.ts +17 -0
  151. package/dist/provider-entry.d.ts.map +1 -0
  152. package/dist/provider-entry.js +13 -0
  153. package/dist/provider-entry.js.map +1 -0
  154. package/dist/realtime.d.ts +2 -0
  155. package/dist/realtime.d.ts.map +1 -1
  156. package/dist/realtime.js +6 -0
  157. package/dist/realtime.js.map +1 -1
  158. package/dist/store-key.d.ts +3 -0
  159. package/dist/store-key.d.ts.map +1 -0
  160. package/dist/store-key.js +5 -0
  161. package/dist/store-key.js.map +1 -0
  162. package/dist/store-security.d.ts +1 -2
  163. package/dist/store-security.d.ts.map +1 -1
  164. package/dist/store-security.js +2 -4
  165. package/dist/store-security.js.map +1 -1
  166. package/dist/types/agent-state.d.ts +236 -0
  167. package/dist/types/agent-state.d.ts.map +1 -0
  168. package/dist/types/agent-state.js +2 -0
  169. package/dist/types/agent-state.js.map +1 -0
  170. package/dist/types/agents.d.ts +429 -0
  171. package/dist/types/agents.d.ts.map +1 -0
  172. package/dist/types/agents.js +2 -0
  173. package/dist/types/agents.js.map +1 -0
  174. package/dist/types/common.d.ts +179 -0
  175. package/dist/types/common.d.ts.map +1 -0
  176. package/dist/types/common.js +2 -0
  177. package/dist/types/common.js.map +1 -0
  178. package/dist/types/generation.d.ts +109 -0
  179. package/dist/types/generation.d.ts.map +1 -0
  180. package/dist/types/generation.js +2 -0
  181. package/dist/types/generation.js.map +1 -0
  182. package/dist/types/media-data.d.ts +65 -0
  183. package/dist/types/media-data.d.ts.map +1 -0
  184. package/dist/types/media-data.js +2 -0
  185. package/dist/types/media-data.js.map +1 -0
  186. package/dist/types/media.d.ts +141 -0
  187. package/dist/types/media.d.ts.map +1 -0
  188. package/dist/types/media.js +2 -0
  189. package/dist/types/media.js.map +1 -0
  190. package/dist/types/messages.d.ts +82 -0
  191. package/dist/types/messages.d.ts.map +1 -0
  192. package/dist/types/messages.js +2 -0
  193. package/dist/types/messages.js.map +1 -0
  194. package/dist/types/middleware.d.ts +130 -0
  195. package/dist/types/middleware.d.ts.map +1 -0
  196. package/dist/types/middleware.js +2 -0
  197. package/dist/types/middleware.js.map +1 -0
  198. package/dist/types/model-tools.d.ts +409 -0
  199. package/dist/types/model-tools.d.ts.map +1 -0
  200. package/dist/types/model-tools.js +2 -0
  201. package/dist/types/model-tools.js.map +1 -0
  202. package/dist/types/persistence.d.ts +168 -0
  203. package/dist/types/persistence.d.ts.map +1 -0
  204. package/dist/types/persistence.js +2 -0
  205. package/dist/types/persistence.js.map +1 -0
  206. package/dist/types/provider-resources.d.ts +336 -0
  207. package/dist/types/provider-resources.d.ts.map +1 -0
  208. package/dist/types/provider-resources.js +2 -0
  209. package/dist/types/provider-resources.js.map +1 -0
  210. package/dist/types/provider.d.ts +23 -0
  211. package/dist/types/provider.d.ts.map +1 -0
  212. package/dist/types/provider.js +2 -0
  213. package/dist/types/provider.js.map +1 -0
  214. package/dist/types/resource-options.d.ts +88 -0
  215. package/dist/types/resource-options.d.ts.map +1 -0
  216. package/dist/types/resource-options.js +2 -0
  217. package/dist/types/resource-options.js.map +1 -0
  218. package/dist/types/stream.d.ts +70 -0
  219. package/dist/types/stream.d.ts.map +1 -0
  220. package/dist/types/stream.js +2 -0
  221. package/dist/types/stream.js.map +1 -0
  222. package/dist/types/ui.d.ts +110 -0
  223. package/dist/types/ui.d.ts.map +1 -0
  224. package/dist/types/ui.js +2 -0
  225. package/dist/types/ui.js.map +1 -0
  226. package/dist/types.d.ts +16 -2480
  227. package/dist/types.d.ts.map +1 -1
  228. package/dist/ui.d.ts.map +1 -1
  229. package/dist/ui.js +2 -0
  230. package/dist/ui.js.map +1 -1
  231. package/dist/workflow-state-service/file.d.ts +5 -0
  232. package/dist/workflow-state-service/file.d.ts.map +1 -0
  233. package/dist/workflow-state-service/file.js +142 -0
  234. package/dist/workflow-state-service/file.js.map +1 -0
  235. package/dist/workflow-state-service/memory.d.ts +3 -0
  236. package/dist/workflow-state-service/memory.d.ts.map +1 -0
  237. package/dist/workflow-state-service/memory.js +27 -0
  238. package/dist/workflow-state-service/memory.js.map +1 -0
  239. package/dist/workflow-state-service/postgres.d.ts +4 -0
  240. package/dist/workflow-state-service/postgres.d.ts.map +1 -0
  241. package/dist/workflow-state-service/postgres.js +179 -0
  242. package/dist/workflow-state-service/postgres.js.map +1 -0
  243. package/dist/workflow-state-service/shared.d.ts +43 -0
  244. package/dist/workflow-state-service/shared.d.ts.map +1 -0
  245. package/dist/workflow-state-service/shared.js +107 -0
  246. package/dist/workflow-state-service/shared.js.map +1 -0
  247. package/dist/workflow-state-service/sqlite.d.ts +4 -0
  248. package/dist/workflow-state-service/sqlite.d.ts.map +1 -0
  249. package/dist/workflow-state-service/sqlite.js +183 -0
  250. package/dist/workflow-state-service/sqlite.js.map +1 -0
  251. package/dist/workflow-state-service.d.ts +6 -33
  252. package/dist/workflow-state-service.d.ts.map +1 -1
  253. package/dist/workflow-state-service.js +6 -626
  254. package/dist/workflow-state-service.js.map +1 -1
  255. package/package.json +17 -1
@@ -0,0 +1,176 @@
1
+ import { createHash } from "node:crypto";
2
+ import { createAgentExecutionEnvironmentBinding } from "../agent-harness.js";
3
+ import { ConflictError, GuardrailTriggeredError, ValidationError } from "../errors.js";
4
+ import { serializeJsonValue } from "../messages.js";
5
+ const canonicalJson = (value) => {
6
+ if (value === null || typeof value !== "object") {
7
+ return JSON.stringify(value);
8
+ }
9
+ if (Array.isArray(value)) {
10
+ return `[${value.map(canonicalJson).join(",")}]`;
11
+ }
12
+ return `{${Object.keys(value)
13
+ .sort()
14
+ .map((key) => `${JSON.stringify(key)}:${canonicalJson(value[key])}`)
15
+ .join(",")}}`;
16
+ };
17
+ export const durableToolCallId = (runId, step, providerToolCallId, toolName, input) => `tool_${createHash("sha256")
18
+ .update(`${runId}\0${step}\0${providerToolCallId}\0${toolName}\0${canonicalJson(input)}`)
19
+ .digest("hex")}`;
20
+ export const wrapToolWithExecutionEnvironment = (tool, session) => {
21
+ const authorize = async (input, context, phase) => session.authorize({
22
+ manifest: session.manifest,
23
+ binding: session.binding,
24
+ tool,
25
+ toolCall: context.toolCall,
26
+ input,
27
+ context,
28
+ phase
29
+ });
30
+ const environmentGuardrail = async ({ input, context }) => {
31
+ const decision = await authorize(input, context, "preflight");
32
+ return decision.decision === "deny"
33
+ ? {
34
+ triggered: true,
35
+ reason: decision.reason,
36
+ metadata: decision.metadata
37
+ }
38
+ : undefined;
39
+ };
40
+ return {
41
+ ...tool,
42
+ approvalVersion: [
43
+ tool.approvalVersion,
44
+ `environment:${session.binding.fingerprint}`
45
+ ].filter(Boolean).join("|"),
46
+ inputGuardrails: [
47
+ environmentGuardrail,
48
+ ...(tool.inputGuardrails ?? [])
49
+ ],
50
+ execute: async (input, context) => {
51
+ if (!context) {
52
+ throw new ValidationError(`Tool "${tool.name}" requires an execution environment context.`);
53
+ }
54
+ const decision = await authorize(input, context, "execute");
55
+ if (decision.decision === "deny") {
56
+ throw new GuardrailTriggeredError("tool-input", decision.reason, { metadata: decision.metadata });
57
+ }
58
+ const request = {
59
+ manifest: session.manifest,
60
+ binding: session.binding,
61
+ tool,
62
+ toolCall: context.toolCall,
63
+ input,
64
+ context,
65
+ phase: "execute"
66
+ };
67
+ return session.execute(request, () => tool.execute(input, context));
68
+ }
69
+ };
70
+ };
71
+ export const wrapToolWithJournal = (agent, state, tool) => {
72
+ const store = agent.store;
73
+ if (!store?.claimToolExecution || !store.loadToolExecution || !store.completeToolExecution) {
74
+ return tool;
75
+ }
76
+ return {
77
+ ...tool,
78
+ execute: async (input, context) => {
79
+ if (!context) {
80
+ throw new ValidationError(`Durable tool "${tool.name}" requires an execution context.`);
81
+ }
82
+ const serializedInput = serializeJsonValue(input);
83
+ const confirmed = state.reconciliations?.find(record => record.evidence.toolName === tool.name && canonicalJson(record.evidence.input) === canonicalJson(serializedInput));
84
+ if (confirmed)
85
+ return confirmed.evidence.output;
86
+ const step = context.step;
87
+ const toolCallId = durableToolCallId(state.runId, step, context.toolCall.id, tool.name, serializedInput);
88
+ const idempotencyKey = `${state.runId}:${toolCallId}`;
89
+ const now = Date.now();
90
+ const candidate = {
91
+ runId: state.runId,
92
+ scope: state.scope,
93
+ toolCallId,
94
+ providerToolCallId: context.toolCall.id,
95
+ toolName: tool.name,
96
+ status: "pending",
97
+ idempotencyKey,
98
+ revision: 0,
99
+ input: serializedInput,
100
+ updatedAt: now
101
+ };
102
+ const claim = await store.claimToolExecution(candidate);
103
+ if (!claim.claimed) {
104
+ if (claim.entry.status === "completed") {
105
+ return claim.entry.output ?? null;
106
+ }
107
+ if (claim.entry.status === "failed") {
108
+ throw new Error(claim.entry.error?.message ?? `Tool "${tool.name}" previously failed.`);
109
+ }
110
+ throw new ConflictError(`Tool "${tool.name}" has an indeterminate durable execution. Reconcile idempotency key "${claim.entry.idempotencyKey}" before retrying.`);
111
+ }
112
+ try {
113
+ const output = serializeJsonValue(await tool.execute(input, {
114
+ ...context,
115
+ runId: state.runId,
116
+ idempotencyKey
117
+ }));
118
+ await store.completeToolExecution({
119
+ ...claim.entry,
120
+ status: "completed",
121
+ output,
122
+ completedAt: Date.now(),
123
+ updatedAt: Date.now()
124
+ }, { expectedRevision: claim.entry.revision });
125
+ return output;
126
+ }
127
+ catch (error) {
128
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
129
+ try {
130
+ await store.completeToolExecution({
131
+ ...claim.entry,
132
+ status: "failed",
133
+ error: { message: normalizedError.message },
134
+ completedAt: Date.now(),
135
+ updatedAt: Date.now()
136
+ }, { expectedRevision: claim.entry.revision });
137
+ }
138
+ catch {
139
+ // The original error is more useful; a running journal row blocks unsafe replay.
140
+ }
141
+ throw normalizedError;
142
+ }
143
+ }
144
+ };
145
+ };
146
+ export const acquireExecutionEnvironment = async (environment, state, context, abortSignal) => {
147
+ if (!environment) {
148
+ return undefined;
149
+ }
150
+ const expected = state.executionEnvironment;
151
+ if (!expected) {
152
+ throw new ConflictError(`Agent run "${state.runId}" has no durable execution-environment binding.`);
153
+ }
154
+ const session = await environment.acquire({
155
+ runId: state.runId,
156
+ agentId: state.agentId,
157
+ scope: state.scope,
158
+ context,
159
+ metadata: state.metadata,
160
+ abortSignal
161
+ });
162
+ const manifestBinding = createAgentExecutionEnvironmentBinding(session.manifest);
163
+ if (session.binding.environmentId !== expected.environmentId ||
164
+ session.binding.environmentVersion !== expected.environmentVersion ||
165
+ session.binding.fingerprint !== expected.fingerprint ||
166
+ session.binding.workspaceId !== expected.workspaceId ||
167
+ manifestBinding.fingerprint !== expected.fingerprint) {
168
+ await session.release?.({
169
+ status: "failed",
170
+ error: { message: "Execution environment returned a binding that differs from the durable run." }
171
+ });
172
+ throw new ConflictError(`Execution environment binding changed for agent run "${state.runId}".`);
173
+ }
174
+ return session;
175
+ };
176
+ //# sourceMappingURL=tool-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-execution.js","sourceRoot":"","sources":["../../src/agent/tool-execution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { AgentDefinition, AgentRunView, AgentTelemetryEvent } from "./types.js";
2
+ export declare const runViewSink: unique symbol;
3
+ export declare const runViewParent: unique symbol;
4
+ export type ObservedAgent = AgentDefinition & {
5
+ [runViewSink]?: (event: AgentTelemetryEvent, agent: ObservedAgent) => Promise<void>;
6
+ [runViewParent]?: string;
7
+ };
8
+ export declare function createRunViewSink(publish: (run: AgentRunView) => Promise<void>): (event: AgentTelemetryEvent, agent: ObservedAgent) => Promise<void>;
9
+ //# sourceMappingURL=agent-run-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-view.d.ts","sourceRoot":"","sources":["../src/agent-run-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGrF,eAAO,MAAM,WAAW,eAAwB,CAAC;AACjD,eAAO,MAAM,aAAa,eAA0B,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,WAExD,mBAAmB,SAAS,aAAa,mBA2B/D"}
@@ -0,0 +1,42 @@
1
+ // Internal per-invocation sink; independent of application telemetry failure policy.
2
+ export const runViewSink = Symbol("runViewSink");
3
+ export const runViewParent = Symbol("runViewParent");
4
+ export function createRunViewSink(publish) {
5
+ const runs = new Map();
6
+ return async (event, agent) => {
7
+ if (!["run-start", "step-start", "step-finish", "state-saved", "approval-request", "run-finish", "handoff"].includes(event.type))
8
+ return;
9
+ const previous = runs.get(event.runId);
10
+ // Bound retained projection state independently from durable runtime state.
11
+ if (!previous && runs.size >= 512)
12
+ runs.delete(runs.keys().next().value);
13
+ const run = { runId: event.runId, agentId: event.agentId,
14
+ parentRunId: agent[runViewParent], name: agent.name,
15
+ status: "running", currentStep: 0, maxSteps: agent.maxSteps ?? 10,
16
+ ...previous, updatedAt: Date.now() };
17
+ if (event.type === "run-start")
18
+ Object.assign(run, { status: "running", provider: event.provider, modelId: event.modelId, maxSteps: event.maxSteps, startedAt: event.startedAt });
19
+ if (event.type === "step-start")
20
+ run.currentStep = event.stepIndex;
21
+ if (event.type === "approval-request")
22
+ run.status = "waiting_approval";
23
+ if (event.type === "state-saved")
24
+ run.status = event.status;
25
+ if (event.type === "run-finish") {
26
+ run.status = event.status;
27
+ run.currentStep = event.state.currentStep;
28
+ run.maxSteps = event.state.maxSteps;
29
+ run.usage = event.state.usage;
30
+ run.toolCalls = event.state.toolResults.length;
31
+ run.parentRunId = event.state.parentRunId ?? run.parentRunId;
32
+ }
33
+ if (event.type === "handoff")
34
+ run.handoffToAgentId = event.handoff.toAgentId;
35
+ const budget = agent.policy?.budget;
36
+ if (budget)
37
+ run.budget = { maxTotalTokens: budget.maxTotalTokens, maxToolCalls: budget.maxToolCalls };
38
+ runs.set(run.runId, run);
39
+ await publish(run);
40
+ };
41
+ }
42
+ //# sourceMappingURL=agent-run-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-view.js","sourceRoot":"","sources":["../src/agent-run-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AgentMemoryContext, AgentMemoryStore, AgentRunState, AgentRunStore, AgentRunStoreScopeOptions, AgentStoreScope, ModelMessage } from "../types.js";
2
+ export declare const createFileAgentRunStore: (options: AgentRunStoreScopeOptions & {
3
+ directory: string;
4
+ }) => AgentRunStore;
5
+ export declare const createFileAgentMemoryStore: (options: {
6
+ directory: string;
7
+ key?: (context: AgentMemoryContext) => string;
8
+ selectMessages?: (state: AgentRunState) => ModelMessage[];
9
+ scope?: AgentStoreScope;
10
+ }) => AgentMemoryStore;
11
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/agent-store/file.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAGhB,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,eAAe,EAEf,YAAY,EACb,MAAM,aAAa,CAAC;AAwLrB,eAAO,MAAM,uBAAuB,YAAa,yBAAyB,GAAG;IAC3E,SAAS,EAAE,MAAM,CAAC;CACnB,KAAG,aAoUH,CAAC;AAEF,eAAO,MAAM,0BAA0B,YAAa;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,YAAY,EAAE,CAAC;IAC1D,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB,KAAG,gBAwBH,CAAC"}