@arden-hq/loop 0.0.0-stage → 0.1.2

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 (223) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +121 -2
  3. package/dist/abort.d.ts +9 -0
  4. package/dist/abort.d.ts.map +1 -0
  5. package/dist/abort.js +31 -0
  6. package/dist/abort.js.map +1 -0
  7. package/dist/agent/agent.d.ts +48 -0
  8. package/dist/agent/agent.d.ts.map +1 -0
  9. package/dist/agent/agent.js +146 -0
  10. package/dist/agent/agent.js.map +1 -0
  11. package/dist/agent/background-tools.d.ts +51 -0
  12. package/dist/agent/background-tools.d.ts.map +1 -0
  13. package/dist/agent/background-tools.js +257 -0
  14. package/dist/agent/background-tools.js.map +1 -0
  15. package/dist/agent/budget.d.ts +5 -0
  16. package/dist/agent/budget.d.ts.map +1 -0
  17. package/dist/agent/budget.js +48 -0
  18. package/dist/agent/budget.js.map +1 -0
  19. package/dist/agent/config.d.ts +61 -0
  20. package/dist/agent/config.d.ts.map +1 -0
  21. package/dist/agent/config.js +99 -0
  22. package/dist/agent/config.js.map +1 -0
  23. package/dist/agent/guards.d.ts +10 -0
  24. package/dist/agent/guards.d.ts.map +1 -0
  25. package/dist/agent/guards.js +136 -0
  26. package/dist/agent/guards.js.map +1 -0
  27. package/dist/agent/history-journal.d.ts +18 -0
  28. package/dist/agent/history-journal.d.ts.map +1 -0
  29. package/dist/agent/history-journal.js +87 -0
  30. package/dist/agent/history-journal.js.map +1 -0
  31. package/dist/agent/history-projection.d.ts +6 -0
  32. package/dist/agent/history-projection.d.ts.map +1 -0
  33. package/dist/agent/history-projection.js +62 -0
  34. package/dist/agent/history-projection.js.map +1 -0
  35. package/dist/agent/interactions.d.ts +14 -0
  36. package/dist/agent/interactions.d.ts.map +1 -0
  37. package/dist/agent/interactions.js +85 -0
  38. package/dist/agent/interactions.js.map +1 -0
  39. package/dist/agent/middleware.d.ts +5 -0
  40. package/dist/agent/middleware.d.ts.map +1 -0
  41. package/dist/agent/middleware.js +55 -0
  42. package/dist/agent/middleware.js.map +1 -0
  43. package/dist/agent/model-output-projection.d.ts +27 -0
  44. package/dist/agent/model-output-projection.d.ts.map +1 -0
  45. package/dist/agent/model-output-projection.js +138 -0
  46. package/dist/agent/model-output-projection.js.map +1 -0
  47. package/dist/agent/model-output.d.ts +19 -0
  48. package/dist/agent/model-output.d.ts.map +1 -0
  49. package/dist/agent/model-output.js +172 -0
  50. package/dist/agent/model-output.js.map +1 -0
  51. package/dist/agent/model-turn.d.ts +29 -0
  52. package/dist/agent/model-turn.d.ts.map +1 -0
  53. package/dist/agent/model-turn.js +401 -0
  54. package/dist/agent/model-turn.js.map +1 -0
  55. package/dist/agent/policy.d.ts +28 -0
  56. package/dist/agent/policy.d.ts.map +1 -0
  57. package/dist/agent/policy.js +109 -0
  58. package/dist/agent/policy.js.map +1 -0
  59. package/dist/agent/provider-capabilities.d.ts +12 -0
  60. package/dist/agent/provider-capabilities.d.ts.map +1 -0
  61. package/dist/agent/provider-capabilities.js +76 -0
  62. package/dist/agent/provider-capabilities.js.map +1 -0
  63. package/dist/agent/recovery.d.ts +8 -0
  64. package/dist/agent/recovery.d.ts.map +1 -0
  65. package/dist/agent/recovery.js +21 -0
  66. package/dist/agent/recovery.js.map +1 -0
  67. package/dist/agent/replies.d.ts +3 -0
  68. package/dist/agent/replies.d.ts.map +1 -0
  69. package/dist/agent/replies.js +24 -0
  70. package/dist/agent/replies.js.map +1 -0
  71. package/dist/agent/run-state.d.ts +98 -0
  72. package/dist/agent/run-state.d.ts.map +1 -0
  73. package/dist/agent/run-state.js +454 -0
  74. package/dist/agent/run-state.js.map +1 -0
  75. package/dist/agent/run.d.ts +6 -0
  76. package/dist/agent/run.d.ts.map +1 -0
  77. package/dist/agent/run.js +462 -0
  78. package/dist/agent/run.js.map +1 -0
  79. package/dist/agent/streamed-call-history.d.ts +20 -0
  80. package/dist/agent/streamed-call-history.d.ts.map +1 -0
  81. package/dist/agent/streamed-call-history.js +71 -0
  82. package/dist/agent/streamed-call-history.js.map +1 -0
  83. package/dist/agent/streaming-tools.d.ts +23 -0
  84. package/dist/agent/streaming-tools.d.ts.map +1 -0
  85. package/dist/agent/streaming-tools.js +67 -0
  86. package/dist/agent/streaming-tools.js.map +1 -0
  87. package/dist/agent/structured-output.d.ts +27 -0
  88. package/dist/agent/structured-output.d.ts.map +1 -0
  89. package/dist/agent/structured-output.js +26 -0
  90. package/dist/agent/structured-output.js.map +1 -0
  91. package/dist/agent/tool-admission.d.ts +18 -0
  92. package/dist/agent/tool-admission.d.ts.map +1 -0
  93. package/dist/agent/tool-admission.js +22 -0
  94. package/dist/agent/tool-admission.js.map +1 -0
  95. package/dist/contracts/events.d.ts +236 -0
  96. package/dist/contracts/events.d.ts.map +1 -0
  97. package/dist/contracts/events.js +13 -0
  98. package/dist/contracts/events.js.map +1 -0
  99. package/dist/contracts/messages.d.ts +234 -0
  100. package/dist/contracts/messages.d.ts.map +1 -0
  101. package/dist/contracts/messages.js +11 -0
  102. package/dist/contracts/messages.js.map +1 -0
  103. package/dist/contracts/provider.d.ts +177 -0
  104. package/dist/contracts/provider.d.ts.map +1 -0
  105. package/dist/contracts/provider.js +26 -0
  106. package/dist/contracts/provider.js.map +1 -0
  107. package/dist/contracts/tools.d.ts +217 -0
  108. package/dist/contracts/tools.d.ts.map +1 -0
  109. package/dist/contracts/tools.js +16 -0
  110. package/dist/contracts/tools.js.map +1 -0
  111. package/dist/errors.d.ts +112 -0
  112. package/dist/errors.d.ts.map +1 -0
  113. package/dist/errors.js +190 -0
  114. package/dist/errors.js.map +1 -0
  115. package/dist/index.d.ts +34 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +20 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/internal/concurrency.d.ts +11 -0
  120. package/dist/internal/concurrency.d.ts.map +1 -0
  121. package/dist/internal/concurrency.js +86 -0
  122. package/dist/internal/concurrency.js.map +1 -0
  123. package/dist/internal/stream.d.ts +25 -0
  124. package/dist/internal/stream.d.ts.map +1 -0
  125. package/dist/internal/stream.js +97 -0
  126. package/dist/internal/stream.js.map +1 -0
  127. package/dist/internal/validate.d.ts +30 -0
  128. package/dist/internal/validate.d.ts.map +1 -0
  129. package/dist/internal/validate.js +480 -0
  130. package/dist/internal/validate.js.map +1 -0
  131. package/dist/providers/kit/errors.d.ts +40 -0
  132. package/dist/providers/kit/errors.d.ts.map +1 -0
  133. package/dist/providers/kit/errors.js +48 -0
  134. package/dist/providers/kit/errors.js.map +1 -0
  135. package/dist/providers/kit/index.d.ts +10 -0
  136. package/dist/providers/kit/index.d.ts.map +1 -0
  137. package/dist/providers/kit/index.js +10 -0
  138. package/dist/providers/kit/index.js.map +1 -0
  139. package/dist/providers/kit/retry.d.ts +43 -0
  140. package/dist/providers/kit/retry.d.ts.map +1 -0
  141. package/dist/providers/kit/retry.js +118 -0
  142. package/dist/providers/kit/retry.js.map +1 -0
  143. package/dist/providers/kit/sse.d.ts +22 -0
  144. package/dist/providers/kit/sse.d.ts.map +1 -0
  145. package/dist/providers/kit/sse.js +70 -0
  146. package/dist/providers/kit/sse.js.map +1 -0
  147. package/dist/providers/openai-responses/citations.d.ts +21 -0
  148. package/dist/providers/openai-responses/citations.d.ts.map +1 -0
  149. package/dist/providers/openai-responses/citations.js +65 -0
  150. package/dist/providers/openai-responses/citations.js.map +1 -0
  151. package/dist/providers/openai-responses/continuation.d.ts +19 -0
  152. package/dist/providers/openai-responses/continuation.d.ts.map +1 -0
  153. package/dist/providers/openai-responses/continuation.js +28 -0
  154. package/dist/providers/openai-responses/continuation.js.map +1 -0
  155. package/dist/providers/openai-responses/errors.d.ts +28 -0
  156. package/dist/providers/openai-responses/errors.d.ts.map +1 -0
  157. package/dist/providers/openai-responses/errors.js +103 -0
  158. package/dist/providers/openai-responses/errors.js.map +1 -0
  159. package/dist/providers/openai-responses/history.d.ts +8 -0
  160. package/dist/providers/openai-responses/history.d.ts.map +1 -0
  161. package/dist/providers/openai-responses/history.js +93 -0
  162. package/dist/providers/openai-responses/history.js.map +1 -0
  163. package/dist/providers/openai-responses/items.d.ts +106 -0
  164. package/dist/providers/openai-responses/items.d.ts.map +1 -0
  165. package/dist/providers/openai-responses/items.js +124 -0
  166. package/dist/providers/openai-responses/items.js.map +1 -0
  167. package/dist/providers/openai-responses/parameter-schema.d.ts +11 -0
  168. package/dist/providers/openai-responses/parameter-schema.d.ts.map +1 -0
  169. package/dist/providers/openai-responses/parameter-schema.js +186 -0
  170. package/dist/providers/openai-responses/parameter-schema.js.map +1 -0
  171. package/dist/providers/openai-responses/provider.d.ts +54 -0
  172. package/dist/providers/openai-responses/provider.d.ts.map +1 -0
  173. package/dist/providers/openai-responses/provider.js +270 -0
  174. package/dist/providers/openai-responses/provider.js.map +1 -0
  175. package/dist/providers/openai-responses/request.d.ts +41 -0
  176. package/dist/providers/openai-responses/request.d.ts.map +1 -0
  177. package/dist/providers/openai-responses/request.js +276 -0
  178. package/dist/providers/openai-responses/request.js.map +1 -0
  179. package/dist/providers/openai-responses/response.d.ts +7 -0
  180. package/dist/providers/openai-responses/response.d.ts.map +1 -0
  181. package/dist/providers/openai-responses/response.js +354 -0
  182. package/dist/providers/openai-responses/response.js.map +1 -0
  183. package/dist/providers/openai-responses/stored-items.d.ts +9 -0
  184. package/dist/providers/openai-responses/stored-items.d.ts.map +1 -0
  185. package/dist/providers/openai-responses/stored-items.js +133 -0
  186. package/dist/providers/openai-responses/stored-items.js.map +1 -0
  187. package/dist/providers/openai-responses/tool-search.d.ts +12 -0
  188. package/dist/providers/openai-responses/tool-search.d.ts.map +1 -0
  189. package/dist/providers/openai-responses/tool-search.js +68 -0
  190. package/dist/providers/openai-responses/tool-search.js.map +1 -0
  191. package/dist/providers/openai-responses/tools.d.ts +33 -0
  192. package/dist/providers/openai-responses/tools.d.ts.map +1 -0
  193. package/dist/providers/openai-responses/tools.js +53 -0
  194. package/dist/providers/openai-responses/tools.js.map +1 -0
  195. package/dist/providers/openai-responses/web-search.d.ts +5 -0
  196. package/dist/providers/openai-responses/web-search.d.ts.map +1 -0
  197. package/dist/providers/openai-responses/web-search.js +114 -0
  198. package/dist/providers/openai-responses/web-search.js.map +1 -0
  199. package/dist/providers/openai-responses/websocket.d.ts +29 -0
  200. package/dist/providers/openai-responses/websocket.d.ts.map +1 -0
  201. package/dist/providers/openai-responses/websocket.js +400 -0
  202. package/dist/providers/openai-responses/websocket.js.map +1 -0
  203. package/dist/tools/dispatch.d.ts +65 -0
  204. package/dist/tools/dispatch.d.ts.map +1 -0
  205. package/dist/tools/dispatch.js +536 -0
  206. package/dist/tools/dispatch.js.map +1 -0
  207. package/dist/tools/display-title.d.ts +18 -0
  208. package/dist/tools/display-title.d.ts.map +1 -0
  209. package/dist/tools/display-title.js +50 -0
  210. package/dist/tools/display-title.js.map +1 -0
  211. package/dist/tools/search.d.ts +36 -0
  212. package/dist/tools/search.d.ts.map +1 -0
  213. package/dist/tools/search.js +224 -0
  214. package/dist/tools/search.js.map +1 -0
  215. package/dist/tools/tool.d.ts +200 -0
  216. package/dist/tools/tool.d.ts.map +1 -0
  217. package/dist/tools/tool.js +275 -0
  218. package/dist/tools/tool.js.map +1 -0
  219. package/dist/tools/truncate.d.ts +18 -0
  220. package/dist/tools/truncate.d.ts.map +1 -0
  221. package/dist/tools/truncate.js +76 -0
  222. package/dist/tools/truncate.js.map +1 -0
  223. package/package.json +67 -4
@@ -0,0 +1,454 @@
1
+ import { StreamingTools } from "./streaming-tools.js";
2
+ import { BackgroundTools } from "./background-tools.js";
3
+ import { makeRunBudget } from "./budget.js";
4
+ import { makeSemaphore } from "../internal/concurrency.js";
5
+ import { dispatchToolCalls } from "../tools/dispatch.js";
6
+ import { AgentCallbackError } from "../errors.js";
7
+ import { applyJsonSchemaConverter } from "../tools/tool.js";
8
+ import { isConversationalInput, isHumanMessage, renderInteraction } from "./interactions.js";
9
+ import { makeToolSearch } from "../tools/search.js";
10
+ import { applyModelRequestMiddlewares } from "./middleware.js";
11
+ import { prepareProviderRequest, resolveModelCapabilities } from "./provider-capabilities.js";
12
+ import { runModelTurn } from "./model-turn.js";
13
+ import { messageId } from "../contracts/messages.js";
14
+ import { addUsage, usageInputTokens, zeroUsage } from "../contracts/provider.js";
15
+ import { StopReason } from "../contracts/events.js";
16
+ import { budgetStopReason, loadedInHistory, withBudgetReminder } from "./policy.js";
17
+ import { callbackFailure, hookCall, invoke } from "./guards.js";
18
+ import { decodeMessages } from "../internal/validate.js";
19
+ import { makeHistoryJournal } from "./history-journal.js";
20
+ export const makeRun = (input) => {
21
+ const { wiring, signal, output } = input;
22
+ const history = makeHistoryJournal(decodeMessages(input.sourceMessages));
23
+ const { messages } = history;
24
+ const state = {
25
+ inputAdmission: { pending: false },
26
+ startedAtMs: invoke("clock", wiring.clock),
27
+ step: 0,
28
+ resultText: "",
29
+ noProgressSteps: 0,
30
+ usage: zeroUsage(),
31
+ localCost: 0,
32
+ toolTimeMs: 0,
33
+ lastResponse: null,
34
+ modelTurnCount: 0,
35
+ streamedTools: { ids: new Set(), output: { completions: [], paused: [] } },
36
+ structuredObject: null,
37
+ outputCorrectionUsed: false,
38
+ finalTextChecked: false,
39
+ deferredNames: undefined
40
+ };
41
+ const responseFormat = output === undefined
42
+ ? null
43
+ : {
44
+ name: output.name ?? "output",
45
+ schema: invoke("output.toJsonSchema", () => applyJsonSchemaConverter(output.toJsonSchema, output.schema))
46
+ };
47
+ const toolsController = new AbortController();
48
+ const backgroundController = new AbortController();
49
+ const stopBackground = () => backgroundController.abort();
50
+ if (signal.aborted)
51
+ stopBackground();
52
+ signal.addEventListener("abort", stopBackground, { once: true });
53
+ toolsController.signal.addEventListener("abort", stopBackground, { once: true });
54
+ const background = new BackgroundTools({
55
+ messages,
56
+ signal,
57
+ clock: () => invoke("clock", wiring.clock),
58
+ graceMs: wiring.config.backgroundGraceMs,
59
+ capacity: wiring.config.maxToolConcurrency,
60
+ checkpoint: () => history.checkpoint((current, change) => hookCall("onCheckpoint", () => wiring.hooks.onCheckpoint?.(current, change))),
61
+ stop: stopBackground,
62
+ execute: ({ call, messages: isolated, metas, recovered, rejection }) => runTools(run, recovered === undefined ? [call] : [], [call.toolCall], metas, {
63
+ messages: isolated,
64
+ signal: run.backgroundSignal,
65
+ ...(rejection === undefined ? {} : { rejection }),
66
+ ...(recovered === undefined
67
+ ? {}
68
+ : { recoveredResults: new Map([[call.toolCall.id, recovered]]) })
69
+ })
70
+ });
71
+ const run = {
72
+ wiring,
73
+ messages,
74
+ history,
75
+ state,
76
+ budget: wiring.budget ?? makeRunBudget(),
77
+ signal,
78
+ emit: input.emit,
79
+ ...(input.tryEmit === undefined ? {} : { tryEmit: input.tryEmit }),
80
+ ...(output === undefined ? {} : { output }),
81
+ responseFormat,
82
+ semaphore: makeSemaphore(wiring.config.maxToolConcurrency),
83
+ groups: new Map(),
84
+ stateChanges: makeSemaphore(1),
85
+ toolsController,
86
+ toolSignal: AbortSignal.any([signal, toolsController.signal]),
87
+ backgroundSignal: backgroundController.signal,
88
+ detachBackground: () => {
89
+ signal.removeEventListener("abort", stopBackground);
90
+ toolsController.signal.removeEventListener("abort", stopBackground);
91
+ },
92
+ background
93
+ };
94
+ return run;
95
+ };
96
+ const currentCost = async (run) => {
97
+ const getter = run.wiring.costGetter;
98
+ if (getter === undefined)
99
+ return run.state.localCost;
100
+ let cost;
101
+ try {
102
+ cost = await (typeof getter === "function" ? getter() : getter);
103
+ }
104
+ catch (cause) {
105
+ throw callbackFailure("costGetter", cause);
106
+ }
107
+ if (!Number.isFinite(cost) || cost < 0) {
108
+ throw callbackFailure("costGetter", new RangeError("cost must be finite and non-negative"));
109
+ }
110
+ return cost;
111
+ };
112
+ export const stopForBudget = async (run) => {
113
+ const snapshot = await run.budget.snapshot();
114
+ const nowMs = invoke("clock", run.wiring.clock);
115
+ const cost = await currentCost(run);
116
+ return budgetStopReason({
117
+ config: run.wiring.config,
118
+ budget: snapshot,
119
+ startedAtMs: run.state.startedAtMs,
120
+ nowMs,
121
+ cost
122
+ });
123
+ };
124
+ const result = async (run, text, reason, steps, pausedTools) => {
125
+ const { wiring, state, messages } = run;
126
+ const fallback = wiring.config.policy.fallbackResultText;
127
+ const finalText = reason !== StopReason.END_TURN &&
128
+ reason !== StopReason.PAUSED &&
129
+ text.trim().length === 0 &&
130
+ fallback !== undefined
131
+ ? invoke("policy.fallbackResultText", () => fallback(messages, reason) || text)
132
+ : text;
133
+ const nowMs = invoke("clock", wiring.clock);
134
+ const cost = await currentCost(run);
135
+ state.resultText = finalText;
136
+ return {
137
+ text: finalText,
138
+ ...(state.structuredObject === null ? {} : { object: state.structuredObject.value }),
139
+ stop_reason: reason,
140
+ steps,
141
+ usage: state.usage,
142
+ last_input_tokens: state.lastResponse === null ? null : usageInputTokens(state.lastResponse.usage),
143
+ cost,
144
+ duration_ms: Math.max(0, Math.trunc(nowMs - state.startedAtMs)),
145
+ tool_time_ms: state.toolTimeMs,
146
+ paused_tools: [...pausedTools],
147
+ messages: messages.map((message) => structuredClone(message))
148
+ };
149
+ };
150
+ export const finalize = async (run, text, reason, steps, pausedTools = []) => {
151
+ run.toolsController.abort();
152
+ await run.emit(await result(run, text, reason, steps, pausedTools));
153
+ };
154
+ export const pauseResult = (paused) => paused.map((event) => ({
155
+ tool_call_id: event.tool_id,
156
+ name: event.name,
157
+ args: { ...event.args },
158
+ reason: event.reason,
159
+ detail: event.detail
160
+ }));
161
+ export const stepFinished = (run) => run.history.checkpoint((messages, change) => hookCall("onStepFinish", () => run.wiring.hooks.onStepFinish?.(run.state.step, run.state.lastResponse, messages, change)));
162
+ export const drainPending = async (run) => {
163
+ const pending = await hookCall("getPendingMessages", () => run.wiring.hooks.getPendingMessages?.() ?? []);
164
+ if (pending.length === 0)
165
+ return 0;
166
+ const valid = decodeMessages(pending);
167
+ if (valid.some(isConversationalInput))
168
+ run.state.inputAdmission.pending = true;
169
+ run.messages.push(...valid);
170
+ if (valid.some((message) => isOwnerMessage(run, message)))
171
+ await announceInputTaken(run);
172
+ return valid.length;
173
+ };
174
+ export const isOwnerMessage = (run, message) => (run.wiring.hooks.isOwnerMessage ?? isHumanMessage)(message);
175
+ export const announceInputTaken = (run) => run.emit({ _tag: "InputTaken", depth: 0, parent_id: null });
176
+ export const prepare = async (run) => {
177
+ const { wiring, state, messages } = run;
178
+ const entries = await wiring.toolset.entries();
179
+ const loaded = new Set([...(await wiring.toolset.loadedNames()), ...loadedInHistory(messages)]);
180
+ const visible = [];
181
+ const deferred = [];
182
+ for (const entry of entries) {
183
+ const declaration = {
184
+ name: entry.meta.name,
185
+ description: entry.description,
186
+ parameters: entry.parameters,
187
+ ...(entry.meta.hosted === true ? { hosted: true } : {}),
188
+ ...(entry.meta.group === undefined ? {} : { group: entry.meta.group })
189
+ };
190
+ if (entry.meta.deferred === true)
191
+ deferred.push(declaration);
192
+ else
193
+ visible.push(declaration);
194
+ }
195
+ const searches = (await resolveModelCapabilities({ provider: wiring.provider, model: wiring.config.model }))
196
+ .toolSearch === "client";
197
+ const changed = searches ? toolsChangedRecord(state.deferredNames, deferred) : undefined;
198
+ state.deferredNames = new Set(deferred.map((tool) => tool.name));
199
+ if (changed !== undefined) {
200
+ messages.push(changed);
201
+ for (const name of changed.removed_tools ?? [])
202
+ loaded.delete(name);
203
+ }
204
+ const preload = searches && wiring.preloadTools !== undefined
205
+ ? preloadRecord(wiring.preloadTools, deferred, loaded)
206
+ : undefined;
207
+ if (preload !== undefined) {
208
+ messages.push(preload);
209
+ for (const name of preload.loaded_tools ?? [])
210
+ loaded.add(name);
211
+ }
212
+ const request = {
213
+ step: state.step,
214
+ messages,
215
+ model: wiring.config.model,
216
+ ...(wiring.config.maxOutputTokens === undefined
217
+ ? {}
218
+ : { maxOutputTokens: wiring.config.maxOutputTokens }),
219
+ tools: visible,
220
+ deferredTools: deferred,
221
+ toolChoice: wiring.config.toolChoice,
222
+ ...(wiring.config.reasoningEffort === undefined
223
+ ? {}
224
+ : { reasoningEffort: wiring.config.reasoningEffort }),
225
+ ...(wiring.config.cacheScope === undefined ? {} : { cacheScope: wiring.config.cacheScope }),
226
+ ...(run.responseFormat === null ? {} : { responseFormat: run.responseFormat }),
227
+ previousResponse: state.lastResponse
228
+ };
229
+ const prepared = await prepareProviderRequest({
230
+ provider: wiring.provider,
231
+ request: await applyModelRequestMiddlewares(request, wiring.config.modelRequestMiddlewares),
232
+ entries
233
+ });
234
+ const carried = prepared.compactionReplacement !== undefined && prepared.compactionReplacement !== messages
235
+ ? carryLoadedTools(decodeMessages(prepared.compactionReplacement), loaded, prepared)
236
+ : undefined;
237
+ if (carried !== undefined)
238
+ messages.splice(0, messages.length, ...carried.history);
239
+ const metas = new Map(entries.map((entry) => [entry.meta.name, entry.meta]));
240
+ return {
241
+ ...(prepared.deferredTools.length === 0
242
+ ? {}
243
+ : {
244
+ toolSearch: makeToolSearch({
245
+ catalog: prepared.deferredTools.map((declaration) => ({
246
+ declaration,
247
+ meta: metas.get(declaration.name) ?? { name: declaration.name }
248
+ })),
249
+ loaded,
250
+ ...(wiring.toolSearchStrategy === undefined
251
+ ? {}
252
+ : { strategy: wiring.toolSearchStrategy })
253
+ })
254
+ }),
255
+ messages: carried?.record === undefined ? prepared.messages : [...prepared.messages, carried.record],
256
+ model: prepared.model,
257
+ ...(prepared.maxOutputTokens === undefined
258
+ ? {}
259
+ : { maxOutputTokens: prepared.maxOutputTokens }),
260
+ tools: prepared.tools,
261
+ deferredTools: prepared.deferredTools,
262
+ toolChoice: prepared.toolChoice,
263
+ ...(prepared.reasoningEffort === undefined
264
+ ? {}
265
+ : { reasoningEffort: prepared.reasoningEffort }),
266
+ ...(prepared.cacheScope === undefined ? {} : { cacheScope: prepared.cacheScope }),
267
+ ...(prepared.responseFormat === undefined ? {} : { responseFormat: prepared.responseFormat }),
268
+ asyncMode: (await resolveModelCapabilities({ provider: wiring.provider, model: prepared.model }))
269
+ .asyncTools ?? "message",
270
+ metas
271
+ };
272
+ };
273
+ const appendOnlyToolRecord = (kind, content, tools = undefined) => ({
274
+ message_id: messageId(kind),
275
+ role: "developer",
276
+ is_meta: true,
277
+ content,
278
+ ...tools
279
+ });
280
+ const toolsChangedRecord = (previous, deferred) => {
281
+ if (previous === undefined)
282
+ return undefined;
283
+ const current = new Set(deferred.map((tool) => tool.name));
284
+ const added = [...current].filter((name) => !previous.has(name)).sort();
285
+ const removed = [...previous].filter((name) => !current.has(name)).sort();
286
+ if (added.length === 0 && removed.length === 0)
287
+ return undefined;
288
+ return appendOnlyToolRecord("tool-change", [
289
+ "Tools changed in this conversation.",
290
+ ...(added.length === 0 ? [] : [`Now found by tool search: ${added.join(", ")}.`]),
291
+ ...(removed.length === 0 ? [] : [`No longer available: ${removed.join(", ")}.`])
292
+ ].join(" "), removed.length === 0 ? undefined : { removed_tools: removed });
293
+ };
294
+ const preloadRecord = (names, deferred, loaded) => {
295
+ const catalog = new Set(deferred.map((tool) => tool.name));
296
+ const missing = [...new Set(names)]
297
+ .filter((name) => catalog.has(name) && !loaded.has(name))
298
+ .sort();
299
+ if (missing.length === 0)
300
+ return undefined;
301
+ return appendOnlyToolRecord("tool-load", `Tools loaded for this conversation: ${missing.join(", ")}.`, { loaded_tools: missing });
302
+ };
303
+ const carryLoadedTools = (replacement, loaded, prepared) => {
304
+ const deferred = new Set(prepared.deferredTools.map((tool) => tool.name));
305
+ const kept = loadedInHistory(replacement);
306
+ const names = [...loaded].filter((name) => deferred.has(name) && !kept.has(name)).sort();
307
+ if (names.length === 0)
308
+ return { history: replacement };
309
+ const record = appendOnlyToolRecord("tool-load", `Tools still loaded from earlier in this conversation: ${names.join(", ")}.`, { loaded_tools: names });
310
+ return { history: [...replacement, record], record };
311
+ };
312
+ export const callModel = async (run, view, instruction = null) => {
313
+ const { wiring, state, messages } = run;
314
+ const requestSnapshot = [...view.messages];
315
+ const requestMessages = instruction === null ? requestSnapshot : withBudgetReminder(requestSnapshot, instruction);
316
+ const steeringInput = [];
317
+ const historyGate = makeSemaphore(1);
318
+ const withHistory = async (operation) => {
319
+ const release = await historyGate.acquire();
320
+ try {
321
+ return await operation();
322
+ }
323
+ finally {
324
+ release();
325
+ }
326
+ };
327
+ const request = {
328
+ steering: {
329
+ take: () => withHistory(async () => {
330
+ const pending = decodeMessages(await hookCall("getPendingMessages", () => wiring.hooks.getPendingMessages?.() ?? []));
331
+ steeringInput.push(...pending);
332
+ messages.push(...pending);
333
+ if (pending.length > 0)
334
+ await run.history.checkpoint((current, change) => hookCall("onCheckpoint", () => wiring.hooks.onCheckpoint?.(current, change)));
335
+ return pending.filter((message) => message.role === "user" && message.is_meta !== true);
336
+ })
337
+ },
338
+ messages: requestMessages,
339
+ renderInteraction,
340
+ model: view.model,
341
+ ...(view.maxOutputTokens === undefined ? {} : { maxOutputTokens: view.maxOutputTokens }),
342
+ tools: view.tools,
343
+ deferredTools: view.deferredTools,
344
+ ...(view.toolSearch === undefined ? {} : { toolSearch: view.toolSearch }),
345
+ toolChoice: view.toolChoice,
346
+ ...(view.reasoningEffort === undefined ? {} : { reasoningEffort: view.reasoningEffort }),
347
+ ...(view.cacheScope === undefined ? {} : { cacheScope: view.cacheScope }),
348
+ ...(view.responseFormat === undefined ? {} : { responseFormat: view.responseFormat }),
349
+ signal: run.signal
350
+ };
351
+ const minter = wiring.config.mintMessageId;
352
+ const turnIndex = state.modelTurnCount;
353
+ state.modelTurnCount += 1;
354
+ const streaming = new StreamingTools({
355
+ run,
356
+ view,
357
+ canStart: async () => (await stopForBudget(run)) === null,
358
+ execute: (call, isolated) => runTools(run, [call], [call.toolCall], view.metas, {
359
+ messages: isolated,
360
+ foreground: true
361
+ })
362
+ });
363
+ const turn = await runModelTurn({
364
+ commitOutput: withHistory,
365
+ onToolCallReady: (call, checkpoint) => streaming.start(call, checkpoint),
366
+ checkpoint: () => run.history.checkpoint((current, change) => hookCall("onCheckpoint", () => wiring.hooks.onCheckpoint?.(current, change))),
367
+ provider: wiring.provider,
368
+ request,
369
+ history: messages,
370
+ metas: view.metas,
371
+ emit: (event) => run.emit(event),
372
+ ...(wiring.toolset.displayTitle === undefined
373
+ ? {}
374
+ : { displayTitle: wiring.toolset.displayTitle }),
375
+ ...(wiring.persistHost === undefined ? {} : { persistHost: wiring.persistHost }),
376
+ ...(minter === undefined
377
+ ? {}
378
+ : {
379
+ mintMessageId: (kind, position) => minter(kind, { turn: turnIndex, ...position })
380
+ })
381
+ });
382
+ state.lastResponse = turn.response;
383
+ state.usage = addUsage(state.usage, turn.response.usage);
384
+ await run.budget.addOutputTokens(turn.response.usage.completion_tokens);
385
+ const costCalculator = wiring.costCalculator;
386
+ if (costCalculator !== undefined) {
387
+ const added = invoke("costCalculator", () => costCalculator(turn.response));
388
+ if (!Number.isFinite(added) || added < 0) {
389
+ throw new AgentCallbackError("costCalculator", "costCalculator returned a non-finite or negative cost");
390
+ }
391
+ state.localCost += added;
392
+ }
393
+ await run.history.checkpoint((current, change) => hookCall("onResponse", () => wiring.hooks.onResponse?.(turn.response, current, change)));
394
+ state.streamedTools = await streaming.settle();
395
+ return steeringInput.length === 0
396
+ ? turn
397
+ : { ...turn, response: { ...turn.response, continuation: true } };
398
+ };
399
+ export const runTools = async (run, calls, rawCalls, metas, options = {}) => {
400
+ const { wiring, toolSignal } = run;
401
+ const admission = run.state.inputAdmission;
402
+ const adopt = (backgrounded) => {
403
+ run.background.adopt(backgrounded);
404
+ void backgrounded.settled.then((settled) => {
405
+ for (const completion of settled.output.completions)
406
+ run.state.toolTimeMs += completion.duration_ms;
407
+ }, () => undefined);
408
+ };
409
+ const output = await dispatchToolCalls({
410
+ messages: options.messages ?? run.messages,
411
+ calls,
412
+ rawCalls,
413
+ metas,
414
+ toolset: wiring.toolset,
415
+ middleware: wiring.config.toolCallMiddlewares,
416
+ beforeExecute: async () => {
417
+ if (!admission.pending &&
418
+ (await hookCall("hasPendingInput", () => wiring.hooks.hasPendingInput?.() ?? false)))
419
+ admission.pending = true;
420
+ return admission.pending
421
+ ? {
422
+ content: "This call was not started because new input is waiting. Read that input before deciding the next action.",
423
+ preview: "Not started: new input",
424
+ is_error: true,
425
+ retryable: true
426
+ }
427
+ : undefined;
428
+ },
429
+ semaphore: run.semaphore,
430
+ groups: run.groups,
431
+ stateChanges: run.stateChanges,
432
+ clock: wiring.clock,
433
+ signal: options.signal ?? toolSignal,
434
+ emit: (event) => (toolSignal.aborted ? Promise.resolve() : run.emit(event)),
435
+ ...(run.tryEmit === undefined ? {} : { tryEmit: run.tryEmit }),
436
+ ...(options.recoveredResults === undefined
437
+ ? {}
438
+ : { recoveredResults: options.recoveredResults }),
439
+ ...(options.rejection === undefined ? {} : { rejection: options.rejection }),
440
+ ...(options.foreground === true
441
+ ? {
442
+ background: {
443
+ afterMs: wiring.config.foregroundBudgetMs,
444
+ signal: run.backgroundSignal,
445
+ adopt
446
+ }
447
+ }
448
+ : {})
449
+ });
450
+ for (const completion of output.completions)
451
+ run.state.toolTimeMs += completion.duration_ms;
452
+ return output;
453
+ };
454
+ //# sourceMappingURL=run-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../src/agent/run-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type ChatMessage } from "../contracts/messages.js";
2
+ import { type AgentEvent } from "../contracts/events.js";
3
+ import { type AgentWiring, type Emit } from "./run-state.js";
4
+ import { type AgentOutputOptions } from "./structured-output.js";
5
+ export declare const runLoop: (wiring: AgentWiring, sourceMessages: ReadonlyArray<ChatMessage>, emit: Emit, signal: AbortSignal, output?: AgentOutputOptions, tryEmit?: (event: AgentEvent) => boolean) => Promise<void>;
6
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/agent/run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtE,OAAO,EAAc,KAAK,UAAU,EAAmB,MAAM,wBAAwB,CAAA;AAarF,OAAO,EAYL,KAAK,WAAW,EAChB,KAAK,IAAI,EAGV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAA;AAI/B,eAAO,MAAM,OAAO,WACV,WAAW,kBACH,aAAa,CAAC,WAAW,CAAC,QACpC,IAAI,UACF,WAAW,WACV,kBAAkB,YACjB,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,KACvC,OAAO,CAAC,IAAI,CA4Bd,CAAA"}