@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,184 @@
1
+ import { normalizeAgentRunState } from "../agent-state.js";
2
+ import { ConflictError, ValidationError } from "../errors.js";
3
+ import { createMergedAbortSignal } from "../runtime.js";
4
+ import { randomId } from "./common.js";
5
+ const DEFAULT_AGENT_LEASE_TTL_MS = 30_000;
6
+ const DEFAULT_AGENT_CANCELLATION_POLL_MS = 1_000;
7
+ const DEFAULT_AGENT_MONITOR_SHUTDOWN_TIMEOUT_MS = 1_000;
8
+ export class AgentPolicyTimeoutError extends Error {
9
+ constructor(timeoutMs) {
10
+ super(`Agent run timed out after ${timeoutMs}ms.`);
11
+ this.name = "AgentPolicyTimeoutError";
12
+ }
13
+ }
14
+ export const resolveRunPolicy = (agent, input) => {
15
+ const policy = {
16
+ ...(agent.policy ?? {}),
17
+ ...(input.policy ?? {})
18
+ };
19
+ return Object.keys(policy).length ? policy : undefined;
20
+ };
21
+ export const withAgentPolicyTimeout = async (operation, timeout) => {
22
+ try {
23
+ return timeout.timeoutPromise
24
+ ? await Promise.race([operation, timeout.timeoutPromise])
25
+ : await operation;
26
+ }
27
+ finally {
28
+ timeout.cleanup();
29
+ }
30
+ };
31
+ export const createAgentAbortContext = (inputAbortSignal, policy, ...additionalSignals) => {
32
+ if (!policy?.timeoutMs) {
33
+ const merged = createMergedAbortSignal(inputAbortSignal, ...additionalSignals);
34
+ return {
35
+ signal: merged.signal,
36
+ timeoutPromise: undefined,
37
+ cleanup: merged.cleanup,
38
+ isTimedOut: () => false
39
+ };
40
+ }
41
+ const controller = new AbortController();
42
+ let timedOut = false;
43
+ let timeout;
44
+ const timeoutPromise = new Promise((_, reject) => {
45
+ timeout = setTimeout(() => {
46
+ timedOut = true;
47
+ controller.abort();
48
+ reject(new AgentPolicyTimeoutError(policy.timeoutMs));
49
+ }, policy.timeoutMs);
50
+ });
51
+ const merged = createMergedAbortSignal(inputAbortSignal, ...additionalSignals, controller.signal);
52
+ return {
53
+ signal: merged.signal,
54
+ timeoutPromise,
55
+ cleanup: () => {
56
+ merged.cleanup();
57
+ if (timeout) {
58
+ clearTimeout(timeout);
59
+ }
60
+ },
61
+ isTimedOut: () => timedOut
62
+ };
63
+ };
64
+ const waitForAgentMonitorShutdown = async (monitor, timeoutMs) => {
65
+ let timeout;
66
+ const deadline = new Promise((resolve) => {
67
+ timeout = setTimeout(resolve, timeoutMs);
68
+ });
69
+ try {
70
+ await Promise.race([monitor, deadline]);
71
+ }
72
+ finally {
73
+ if (timeout)
74
+ clearTimeout(timeout);
75
+ }
76
+ };
77
+ export const acquireAgentExecutionLease = async (agent, state, policy) => {
78
+ const store = agent.store;
79
+ if (policy?.leaseMode === "disabled" || !store?.acquireLease || !store.renewLease || !store.releaseLease) {
80
+ return {
81
+ supported: false,
82
+ cancelledState: () => undefined,
83
+ leaseLost: () => false,
84
+ release: async () => undefined
85
+ };
86
+ }
87
+ const ttlMs = policy?.leaseTtlMs ?? DEFAULT_AGENT_LEASE_TTL_MS;
88
+ const heartbeatMs = policy?.heartbeatMs ?? Math.max(250, Math.floor(ttlMs / 3));
89
+ const cancellationPollMs = policy?.cancellationPollMs ?? DEFAULT_AGENT_CANCELLATION_POLL_MS;
90
+ for (const [name, value] of [
91
+ ["leaseTtlMs", ttlMs],
92
+ ["heartbeatMs", heartbeatMs],
93
+ ["cancellationPollMs", cancellationPollMs]
94
+ ]) {
95
+ if (!Number.isSafeInteger(value) || value < 1) {
96
+ throw new ValidationError(`Agent policy "${name}" must be a positive integer.`);
97
+ }
98
+ }
99
+ if (heartbeatMs >= ttlMs) {
100
+ throw new ValidationError('Agent policy "heartbeatMs" must be less than "leaseTtlMs".');
101
+ }
102
+ const ownerId = randomId("worker");
103
+ const lease = await store.acquireLease(state.runId, { ownerId, ttlMs }, state.scope);
104
+ if (!lease) {
105
+ return undefined;
106
+ }
107
+ const controller = new AbortController();
108
+ let cancelled;
109
+ let lost = false;
110
+ let stopped = false;
111
+ let activeMonitor;
112
+ let lastHeartbeat = Date.now();
113
+ let lastCancellationPoll = 0;
114
+ const intervalMs = Math.max(25, Math.min(heartbeatMs, cancellationPollMs));
115
+ const monitorShutdownTimeoutMs = Math.min(ttlMs, DEFAULT_AGENT_MONITOR_SHUTDOWN_TIMEOUT_MS);
116
+ const cleanupStoppedMonitorLease = async () => {
117
+ try {
118
+ await store.releaseLease?.(state.runId, ownerId, state.scope);
119
+ }
120
+ catch {
121
+ // The foreground release remains authoritative; late monitor cleanup is best effort.
122
+ }
123
+ };
124
+ const monitorLease = async () => {
125
+ const now = Date.now();
126
+ try {
127
+ if (now - lastHeartbeat >= heartbeatMs) {
128
+ const renewed = await store.renewLease?.(state.runId, { ownerId, ttlMs }, state.scope);
129
+ if (stopped) {
130
+ await cleanupStoppedMonitorLease();
131
+ return;
132
+ }
133
+ if (!renewed) {
134
+ lost = true;
135
+ controller.abort(new ConflictError(`Agent run "${state.runId}" lost its worker lease.`));
136
+ return;
137
+ }
138
+ lastHeartbeat = now;
139
+ }
140
+ if (now - lastCancellationPoll >= cancellationPollMs) {
141
+ const latest = await store.load(state.runId, state.scope);
142
+ if (stopped)
143
+ return;
144
+ lastCancellationPoll = now;
145
+ if (latest?.status === "cancel_requested" || latest?.status === "cancelled") {
146
+ cancelled = normalizeAgentRunState(latest);
147
+ controller.abort(new Error(latest.cancellationReason ?? "Agent run was cancelled."));
148
+ }
149
+ }
150
+ }
151
+ catch (error) {
152
+ if (stopped) {
153
+ await cleanupStoppedMonitorLease();
154
+ return;
155
+ }
156
+ lost = true;
157
+ controller.abort(error);
158
+ }
159
+ };
160
+ const timer = setInterval(() => {
161
+ if (stopped || activeMonitor)
162
+ return;
163
+ activeMonitor = monitorLease().finally(() => {
164
+ activeMonitor = undefined;
165
+ });
166
+ }, intervalMs);
167
+ timer.unref?.();
168
+ return {
169
+ supported: true,
170
+ signal: controller.signal,
171
+ cancelledState: () => cancelled,
172
+ leaseLost: () => lost,
173
+ release: async () => {
174
+ stopped = true;
175
+ clearInterval(timer);
176
+ const monitor = activeMonitor;
177
+ if (monitor) {
178
+ await waitForAgentMonitorShutdown(monitor, monitorShutdownTimeoutMs);
179
+ }
180
+ await store.releaseLease?.(state.runId, ownerId, state.scope);
181
+ }
182
+ };
183
+ };
184
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/agent/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,uBAAuB,EACxB,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,QAAQ,EACT,MAAM,aAAa,CAAC;AAErB,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C,MAAM,kCAAkC,GAAG,KAAK,CAAC;AAEjD,MAAM,yCAAyC,GAAG,KAAK,CAAC;AAExD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,SAAiB;QAC3B,KAAK,CAAC,6BAA6B,SAAS,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAA8B,EAC9B,KAA4B,EACA,EAAE;IAC9B,MAAM,MAAM,GAAG;QACb,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;KACxB,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,SAAqB,EACrB,OAKC,EACW,EAAE;IACd,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,cAAc;YAC3B,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YACzD,CAAC,CAAC,MAAM,SAAS,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,gBAAyC,EACzC,MAAkC,EAClC,GAAG,iBAAiD,EACpD,EAAE;IACF,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,CAAC;QAC/E,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,SAAS;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAkD,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACtD,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC;QACzD,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAClG,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc;QACd,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,2BAA2B,GAAG,KAAK,EAAE,OAAsB,EAAE,SAAiB,EAAE,EAAE;IACtF,IAAI,OAAkD,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC7C,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,KAA8B,EAC9B,KAAoB,EACpB,MAAkC,EACe,EAAE;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,MAAM,EAAE,SAAS,KAAK,UAAU,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACzG,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;YAC/B,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;YACtB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,UAAU,IAAI,0BAA0B,CAAC;IAC/D,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,kBAAkB,GAAG,MAAM,EAAE,kBAAkB,IAAI,kCAAkC,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;QAC1B,CAAC,YAAY,EAAE,KAAK,CAAC;QACrB,CAAC,aAAa,EAAE,WAAW,CAAC;QAC5B,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;KAClC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,eAAe,CAAC,iBAAiB,IAAI,+BAA+B,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,4DAA4D,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,SAAoC,CAAC;IACzC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,aAAwC,CAAC;IAC7C,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3E,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,yCAAyC,CAAC,CAAC;IAC5F,MAAM,0BAA0B,GAAG,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;QACvF,CAAC;IACH,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,GAAG,GAAG,aAAa,IAAI,WAAW,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,0BAA0B,EAAE,CAAC;oBACnC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,GAAG,IAAI,CAAC;oBACZ,UAAU,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,cAAc,KAAK,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC;oBACzF,OAAO;gBACT,CAAC;gBACD,aAAa,GAAG,GAAG,CAAC;YACtB,CAAC;YACD,IAAI,GAAG,GAAG,oBAAoB,IAAI,kBAAkB,EAAE,CAAC;gBACrD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1D,IAAI,OAAO;oBAAE,OAAO;gBACpB,oBAAoB,GAAG,GAAG,CAAC;gBAC3B,IAAI,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC5E,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;oBAC3C,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,kBAAkB,IAAI,0BAA0B,CAAC,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,0BAA0B,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,OAAO,IAAI,aAAa;YAAE,OAAO;QACrC,aAAa,GAAG,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1C,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,UAAU,CAAC,CAAC;IACf,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhB,OAAO;QACL,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;QAC/B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;QACrB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,GAAG,IAAI,CAAC;YACf,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,aAAa,CAAC;YAC9B,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,2BAA2B,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { AgentDefinition, AgentRunOutput, AgentRunState, AgentRunPolicy, AgentRunStore, AgentStep, GenerateTextOutput, LanguageModel, ToolExecutionResult } from "../types.js";
2
+ export declare const finalizeState: <TOutput>(agent: AgentDefinition<LanguageModel, any, TOutput>, state: AgentRunState, result: GenerateTextOutput, newSteps: AgentStep[], newToolResults: ToolExecutionResult[]) => AgentRunOutput<TOutput>;
3
+ export declare const saveStateWithRevision: (store: AgentRunStore, state: AgentRunState, serializedNextState?: string) => Promise<void>;
4
+ export declare const claimAgentExecution: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState) => Promise<void>;
5
+ export declare const persistState: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState, policy?: AgentRunPolicy) => Promise<void>;
6
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/agent/state.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAarB,eAAO,MAAM,aAAa,GAAI,OAAO,SAC5B,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,SAC5C,aAAa,UACZ,kBAAkB,YAChB,SAAS,EAAE,kBACL,mBAAmB,EAAE,KACpC,cAAc,CAAC,OAAO,CA0DxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAiB,aAAa,SAAS,aAAa,wBAAwB,MAAM,kBAMnH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,MAAM,SAAS,aAAa,SAC7D,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,kBAQrB,CAAC;AAqBF,eAAO,MAAM,YAAY,GAAU,MAAM,SAAS,aAAa,SACtD,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,WACX,cAAc,kBA8BxB,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { refreshAgentTaskOutcome } from "../agent-reconciliation.js";
2
+ import { getAgentApprovalRequests } from "../agent-approval.js";
3
+ import { normalizeAgentRunState } from "../agent-state.js";
4
+ import { ValidationError } from "../errors.js";
5
+ import { aggregateTokenUsage } from "../generate-text.js";
6
+ import { serializeJsonValue } from "../messages.js";
7
+ import { cloneState, hasToolCalls, toOutput } from "./common.js";
8
+ import { emitTelemetryEvent, invokeOperationalHook } from "./telemetry.js";
9
+ const DEFAULT_AGENT_MAX_STATE_BYTES = 4 * 1024 * 1024;
10
+ export const finalizeState = (agent, state, result, newSteps, newToolResults) => {
11
+ const nextCurrentStep = state.currentStep + newSteps.length;
12
+ const exhausted = nextCurrentStep >= state.maxSteps;
13
+ const lastStep = newSteps.at(-1);
14
+ const unresolvedToolCalls = lastStep?.response ? hasToolCalls(lastStep.response.messages) : false;
15
+ const pendingApprovals = [
16
+ ...(result.approvalRequests ?? []),
17
+ ...getAgentApprovalRequests(newSteps.flatMap((step) => step.response?.messages ?? []))
18
+ ];
19
+ if (pendingApprovals.length) {
20
+ state.status = "waiting_approval";
21
+ state.error = undefined;
22
+ if (lastStep) {
23
+ lastStep.status = "waiting_approval";
24
+ }
25
+ }
26
+ else if (exhausted && unresolvedToolCalls) {
27
+ state.status = "failed";
28
+ state.error = {
29
+ message: "Agent exhausted maxSteps before reaching a terminal response."
30
+ };
31
+ if (lastStep) {
32
+ lastStep.status = "failed";
33
+ lastStep.error = state.error;
34
+ }
35
+ }
36
+ else {
37
+ state.status = "completed";
38
+ state.error = undefined;
39
+ }
40
+ state.messages = result.messages;
41
+ state.steps = [...state.steps, ...newSteps];
42
+ state.toolResults = [...state.toolResults, ...newToolResults];
43
+ state.currentStep = nextCurrentStep;
44
+ state.outputText = result.text;
45
+ if (state.status === "completed") {
46
+ const terminalText = result.steps.at(-1)?.response.text ?? result.text;
47
+ if (agent.outputSchema) {
48
+ let parsedJson;
49
+ try {
50
+ parsedJson = JSON.parse(terminalText);
51
+ }
52
+ catch (error) {
53
+ throw new ValidationError("Agent final output is not valid JSON.", { cause: error });
54
+ }
55
+ const parsedOutput = agent.outputSchema.safeParse(parsedJson);
56
+ if (!parsedOutput.success) {
57
+ throw new ValidationError(`Agent final output validation failed: ${parsedOutput.error.message}`);
58
+ }
59
+ state.finalOutput = serializeJsonValue(parsedOutput.data);
60
+ }
61
+ }
62
+ state.finishReason = result.finishReason;
63
+ state.providerFinishReason = result.providerFinishReason;
64
+ state.usage = aggregateTokenUsage([state.usage, result.usage]);
65
+ state.pendingApprovals = pendingApprovals;
66
+ state.updatedAt = Date.now();
67
+ return toOutput(state);
68
+ };
69
+ export const saveStateWithRevision = async (store, state, serializedNextState) => {
70
+ const expectedRevision = state.revision ?? 0;
71
+ const nextRevision = expectedRevision + 1;
72
+ const nextState = { ...state, revision: nextRevision };
73
+ await store.save(serializedNextState === undefined ? cloneState(nextState) : JSON.parse(serializedNextState), { expectedRevision });
74
+ state.revision = nextRevision;
75
+ };
76
+ export const claimAgentExecution = async (agent, state) => {
77
+ state.status = "running";
78
+ state.updatedAt = Date.now();
79
+ const serialized = assertStateSize(agent, agent.store ? normalizeAgentRunState({ ...state, revision: (state.revision ?? 0) + 1 }) : state);
80
+ if (agent.store) {
81
+ await saveStateWithRevision(agent.store, state, serialized);
82
+ }
83
+ };
84
+ const assertStateSize = (agent, state, policy) => {
85
+ const limit = policy?.maxStateBytes ?? agent.policy?.maxStateBytes ?? DEFAULT_AGENT_MAX_STATE_BYTES;
86
+ if (!Number.isSafeInteger(limit) || limit < 1) {
87
+ throw new ValidationError('Agent policy "maxStateBytes" must be a positive integer.');
88
+ }
89
+ const serialized = JSON.stringify(state);
90
+ const bytes = new TextEncoder().encode(serialized).byteLength;
91
+ if (bytes > limit) {
92
+ throw new ValidationError(`Agent run state is ${bytes} bytes and exceeds maxStateBytes=${limit}. Offload large tool outputs to artifacts or raise the explicit limit.`);
93
+ }
94
+ return serialized;
95
+ };
96
+ export const persistState = async (agent, state, policy) => {
97
+ state.updatedAt = Date.now();
98
+ await refreshAgentTaskOutcome(state, agent.store);
99
+ const serialized = assertStateSize(agent, agent.store ? normalizeAgentRunState({ ...state, revision: (state.revision ?? 0) + 1 }) : state, policy);
100
+ if (agent.store) {
101
+ await saveStateWithRevision(agent.store, state, serialized);
102
+ }
103
+ await emitTelemetryEvent(agent, {
104
+ type: "state-saved",
105
+ runId: state.runId,
106
+ agentId: state.agentId,
107
+ status: state.status
108
+ });
109
+ await invokeOperationalHook(agent, "memory", "save", state.runId, agent.memory?.save
110
+ ? () => agent.memory.save({
111
+ runId: state.runId,
112
+ agentId: state.agentId,
113
+ scope: state.scope,
114
+ state: cloneState(state),
115
+ metadata: state.metadata
116
+ })
117
+ : undefined, undefined);
118
+ };
119
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/agent/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AgentApprovalRequest, AgentApprovalResponse, AgentDefinition, AgentRunState, AgentStep, AgentStatus, AgentTelemetryEvent, LanguageModel, ModelMessage, ToolApprovalEvent } from "../types.js";
2
+ export declare const invokeOperationalHook: <TModel extends LanguageModel, TResult>(agent: AgentDefinition<TModel>, source: "telemetry" | "memory", operation: string, runId: string | undefined, callback: (() => TResult | Promise<TResult>) | undefined, fallback: TResult) => Promise<TResult>;
3
+ export declare const emitTelemetryEvent: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, event: AgentTelemetryEvent) => Promise<void>;
4
+ export declare const emitInvocationStartTelemetry: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, runId: string, startedAt: number, maxSteps: number) => Promise<void>;
5
+ export declare const emitInvocationFinishTelemetry: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, runId: string, status: AgentStatus, error: Error | undefined) => Promise<void>;
6
+ export declare const withAgentTelemetryRunContext: <TModel extends LanguageModel, TResult>(agent: AgentDefinition<TModel>, runId: string, callback: () => TResult | Promise<TResult>) => Promise<TResult>;
7
+ export declare const emitFinalizedStepTelemetry: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState, steps: AgentStep[]) => Promise<void>;
8
+ export declare const emitApprovalTelemetry: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState, approvals: AgentApprovalRequest[]) => Promise<void>;
9
+ export declare const emitToolApprovalTelemetry: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState, event: ToolApprovalEvent) => Promise<void>;
10
+ export declare const emitRunStartTelemetry: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState, memoryMessages: ModelMessage[], approvals: AgentApprovalResponse[] | undefined, invocationStartedAt: number) => Promise<void>;
11
+ export declare const emitRunFinishTelemetry: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState) => Promise<void>;
12
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/agent/telemetry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAKrB,eAAO,MAAM,qBAAqB,GAAU,MAAM,SAAS,aAAa,EAAE,OAAO,SACxE,eAAe,CAAC,MAAM,CAAC,UACtB,WAAW,GAAG,QAAQ,aACnB,MAAM,SACV,MAAM,GAAG,SAAS,YACf,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,YAC9C,OAAO,KAChB,OAAO,CAAC,OAAO,CAwBjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,MAAM,SAAS,aAAa,SAC5D,eAAe,CAAC,MAAM,CAAC,SACvB,mBAAmB,kBAW3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAU,MAAM,SAAS,aAAa,SACtE,eAAe,CAAC,MAAM,CAAC,SACvB,MAAM,aACF,MAAM,YACP,MAAM,kBAejB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAU,MAAM,SAAS,aAAa,SACvE,eAAe,CAAC,MAAM,CAAC,SACvB,MAAM,UACL,WAAW,SACZ,KAAK,GAAG,SAAS,kBAczB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,MAAM,SAAS,aAAa,EAAE,OAAO,SACzE,eAAe,CAAC,MAAM,CAAC,SACvB,MAAM,YACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KACzC,OAAO,CAAC,OAAO,CAgCjB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAU,MAAM,SAAS,aAAa,SACpE,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,SACb,SAAS,EAAE,kBAUnB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,MAAM,SAAS,aAAa,SAC/D,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,aACT,oBAAoB,EAAE,kBAUlC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAU,MAAM,SAAS,aAAa,SACnE,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,SACb,iBAAiB,kBAWzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,MAAM,SAAS,aAAa,SAC/D,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,kBACJ,YAAY,EAAE,aACnB,qBAAqB,EAAE,GAAG,SAAS,uBACzB,MAAM,kBAuC5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,MAAM,SAAS,aAAa,SAChE,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,kBAWrB,CAAC"}
@@ -0,0 +1,176 @@
1
+ import { runViewSink } from "../agent-run-view.js";
2
+ import { cloneState } from "./common.js";
3
+ export const invokeOperationalHook = async (agent, source, operation, runId, callback, fallback) => {
4
+ if (!callback) {
5
+ return fallback;
6
+ }
7
+ try {
8
+ return await callback();
9
+ }
10
+ catch (error) {
11
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
12
+ try {
13
+ await agent.hookFailurePolicy?.onError?.({
14
+ source,
15
+ operation,
16
+ runId,
17
+ error: normalizedError
18
+ });
19
+ }
20
+ catch {
21
+ // Reporting an observer failure must never recursively fail the run.
22
+ }
23
+ if (agent.hookFailurePolicy?.[source] === "fail") {
24
+ throw normalizedError;
25
+ }
26
+ return fallback;
27
+ }
28
+ };
29
+ export const emitTelemetryEvent = async (agent, event) => {
30
+ await agent[runViewSink]?.(event, agent);
31
+ await invokeOperationalHook(agent, "telemetry", event.type, event.runId, agent.onTelemetryEvent ? () => agent.onTelemetryEvent(event) : undefined, undefined);
32
+ };
33
+ export const emitInvocationStartTelemetry = async (agent, runId, startedAt, maxSteps) => {
34
+ try {
35
+ await agent.onTelemetryEvent?.startInvocation?.({
36
+ runId,
37
+ agentId: agent.id,
38
+ agentName: agent.name,
39
+ provider: agent.model.provider,
40
+ modelId: agent.model.modelId,
41
+ maxSteps,
42
+ startedAt
43
+ });
44
+ }
45
+ catch {
46
+ // Invocation telemetry is best-effort and cannot replace setup/business errors.
47
+ }
48
+ };
49
+ export const emitInvocationFinishTelemetry = async (agent, runId, status, error) => {
50
+ try {
51
+ await agent.onTelemetryEvent?.finishInvocation?.({
52
+ runId,
53
+ agentId: agent.id,
54
+ agentName: agent.name,
55
+ status,
56
+ error,
57
+ finishedAt: Date.now()
58
+ });
59
+ }
60
+ catch {
61
+ // Invocation telemetry is best-effort and cannot replace setup/business errors.
62
+ }
63
+ };
64
+ export const withAgentTelemetryRunContext = (agent, runId, callback) => {
65
+ const telemetryObserver = agent.onTelemetryEvent;
66
+ const wrapper = telemetryObserver?.withRunContext;
67
+ if (!wrapper)
68
+ return Promise.resolve().then(callback);
69
+ let execution;
70
+ let callbackError;
71
+ let callbackFailed = false;
72
+ const executeOnce = () => {
73
+ execution ??= Promise.resolve()
74
+ .then(callback)
75
+ .catch((error) => {
76
+ callbackFailed = true;
77
+ callbackError = error;
78
+ throw error;
79
+ });
80
+ return execution;
81
+ };
82
+ return Promise.resolve()
83
+ .then(async () => {
84
+ await wrapper.call(telemetryObserver, runId, executeOnce);
85
+ return executeOnce();
86
+ })
87
+ .catch(async (wrapperError) => {
88
+ if (callbackFailed)
89
+ throw callbackError;
90
+ try {
91
+ return await executeOnce();
92
+ }
93
+ catch (executionError) {
94
+ throw callbackFailed ? callbackError : executionError ?? wrapperError;
95
+ }
96
+ });
97
+ };
98
+ export const emitFinalizedStepTelemetry = async (agent, state, steps) => {
99
+ for (const step of steps) {
100
+ await emitTelemetryEvent(agent, {
101
+ type: "step-finish",
102
+ runId: state.runId,
103
+ agentId: state.agentId,
104
+ step
105
+ });
106
+ }
107
+ };
108
+ export const emitApprovalTelemetry = async (agent, state, approvals) => {
109
+ for (const approval of approvals) {
110
+ await emitTelemetryEvent(agent, {
111
+ type: "approval-request",
112
+ runId: state.runId,
113
+ agentId: state.agentId,
114
+ approval
115
+ });
116
+ }
117
+ };
118
+ export const emitToolApprovalTelemetry = async (agent, state, event) => {
119
+ await emitTelemetryEvent(agent, {
120
+ type: "tool-approval",
121
+ runId: state.runId,
122
+ agentId: state.agentId,
123
+ toolCall: event.request.toolCall,
124
+ approved: event.decision.approved,
125
+ reason: event.decision.reason,
126
+ metadata: event.decision.metadata
127
+ });
128
+ };
129
+ export const emitRunStartTelemetry = async (agent, state, memoryMessages, approvals, invocationStartedAt) => {
130
+ await emitTelemetryEvent(agent, {
131
+ type: "run-start",
132
+ runId: state.runId,
133
+ agentId: state.agentId,
134
+ agentName: agent.name,
135
+ provider: state.provider,
136
+ modelId: state.modelId,
137
+ maxSteps: state.maxSteps,
138
+ startedAt: invocationStartedAt
139
+ });
140
+ if (state.handoff) {
141
+ await emitTelemetryEvent(agent, {
142
+ type: "handoff",
143
+ runId: state.runId,
144
+ agentId: state.agentId,
145
+ handoff: state.handoff
146
+ });
147
+ }
148
+ if (memoryMessages.length) {
149
+ await emitTelemetryEvent(agent, {
150
+ type: "memory-loaded",
151
+ runId: state.runId,
152
+ agentId: state.agentId,
153
+ messageCount: memoryMessages.length
154
+ });
155
+ }
156
+ for (const approval of approvals ?? []) {
157
+ await emitTelemetryEvent(agent, {
158
+ type: "approval-resolved",
159
+ runId: state.runId,
160
+ agentId: state.agentId,
161
+ approval
162
+ });
163
+ }
164
+ };
165
+ export const emitRunFinishTelemetry = async (agent, state) => {
166
+ await emitTelemetryEvent(agent, {
167
+ type: "run-finish",
168
+ runId: state.runId,
169
+ agentId: state.agentId,
170
+ agentName: agent.name,
171
+ status: state.status,
172
+ state: cloneState(state),
173
+ finishedAt: Date.now()
174
+ });
175
+ };
176
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/agent/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { AgentDefinition, AgentExecutionEnvironment, AgentExecutionEnvironmentSession, AgentRunState, JsonValue, LanguageModel, ToolDefinition } from "../types.js";
2
+ export declare const durableToolCallId: (runId: string, step: number, providerToolCallId: string, toolName: string, input: JsonValue) => string;
3
+ export declare const wrapToolWithExecutionEnvironment: (tool: ToolDefinition, session: AgentExecutionEnvironmentSession) => ToolDefinition;
4
+ export declare const wrapToolWithJournal: <TModel extends LanguageModel>(agent: AgentDefinition<TModel>, state: AgentRunState, tool: ToolDefinition) => ToolDefinition;
5
+ export declare const acquireExecutionEnvironment: <TContext>(environment: AgentExecutionEnvironment<TContext> | undefined, state: AgentRunState, context: TContext | undefined, abortSignal: AbortSignal | undefined) => Promise<AgentExecutionEnvironmentSession<TContext> | undefined>;
6
+ //# sourceMappingURL=tool-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-execution.d.ts","sourceRoot":"","sources":["../../src/agent/tool-execution.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,gCAAgC,EAChC,aAAa,EAEb,SAAS,EACT,aAAa,EACb,cAAc,EAGf,MAAM,aAAa,CAAC;AAerB,eAAO,MAAM,iBAAiB,UACrB,MAAM,QACP,MAAM,sBACQ,MAAM,YAChB,MAAM,SACT,SAAS,KACf,MAGiB,CAAC;AAErB,eAAO,MAAM,gCAAgC,SACrC,cAAc,WACX,gCAAgC,KACxC,cA2DF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,MAAM,SAAS,aAAa,SACvD,eAAe,CAAC,MAAM,CAAC,SACvB,aAAa,QACd,cAAc,KACnB,cAoFF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAU,QAAQ,eAC3C,yBAAyB,CAAC,QAAQ,CAAC,GAAG,SAAS,SACrD,aAAa,WACX,QAAQ,GAAG,SAAS,eAChB,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,gCAAgC,CAAC,QAAQ,CAAC,GAAG,SAAS,CA+BhE,CAAC"}