agency-lang 0.7.0 → 0.7.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 (182) hide show
  1. package/dist/lib/agents/agency-agent/agent.agency +169 -28
  2. package/dist/lib/agents/agency-agent/agent.js +579 -152
  3. package/dist/lib/agents/agency-agent/lib/attachments.js +2 -2
  4. package/dist/lib/agents/agency-agent/lib/config.agency +5 -0
  5. package/dist/lib/agents/agency-agent/lib/config.js +11 -0
  6. package/dist/lib/agents/agency-agent/lib/defaultPolicy.agency +106 -0
  7. package/dist/lib/agents/agency-agent/lib/defaultPolicy.js +764 -3
  8. package/dist/lib/agents/agency-agent/lib/modelFilters.js +1 -1
  9. package/dist/lib/agents/agency-agent/lib/resolution.js +4 -4
  10. package/dist/lib/agents/agency-agent/lib/search.js +3 -3
  11. package/dist/lib/agents/agency-agent/lib/settings.js +1 -1
  12. package/dist/lib/agents/agency-agent/lib/utils.js +1 -1
  13. package/dist/lib/agents/agency-agent/shared.agency +22 -0
  14. package/dist/lib/agents/agency-agent/shared.js +160 -3
  15. package/dist/lib/agents/agency-agent/subagents/code.js +1 -1
  16. package/dist/lib/agents/agency-agent/subagents/explorer.js +1 -1
  17. package/dist/lib/agents/agency-agent/subagents/oracle.js +1 -1
  18. package/dist/lib/agents/agency-agent/subagents/research.js +1 -1
  19. package/dist/lib/agents/agency-agent/subagents/review.js +4 -4
  20. package/dist/lib/agents/agency-agent/tests/agentTurn.js +1 -1
  21. package/dist/lib/agents/agency-agent/tests/attachments.js +1 -1
  22. package/dist/lib/agents/agency-agent/tests/attachmentsTurn.js +2 -2
  23. package/dist/lib/agents/agency-agent/tests/gitPolicy.js +3 -3
  24. package/dist/lib/agents/agency-agent/tests/oneShotRounds.agency +20 -0
  25. package/dist/lib/agents/agency-agent/tests/oneShotRounds.js +555 -0
  26. package/dist/lib/agents/agency-agent/tests/oneShotRounds.test.json +9 -0
  27. package/dist/lib/agents/review/agent.js +3 -3
  28. package/dist/lib/cli/doctor.d.ts +8 -0
  29. package/dist/lib/cli/doctor.js +21 -13
  30. package/dist/lib/cli/doctor.test.js +34 -0
  31. package/dist/lib/cli/help.js +1 -5
  32. package/dist/lib/cli/runBundledAgent.d.ts +17 -1
  33. package/dist/lib/cli/runBundledAgent.js +73 -2
  34. package/dist/lib/cli/runBundledAgent.test.d.ts +1 -0
  35. package/dist/lib/cli/runBundledAgent.test.js +96 -0
  36. package/dist/lib/config.d.ts +42 -33
  37. package/dist/lib/config.js +108 -6
  38. package/dist/lib/config.test.js +121 -2
  39. package/dist/lib/ir/prettyPrint.js +25 -4
  40. package/dist/lib/parseCache.js +8 -13
  41. package/dist/lib/parseCache.test.js +5 -8
  42. package/dist/lib/parser.js +5 -12
  43. package/dist/lib/preprocessors/typescriptPreprocessor.d.ts +0 -28
  44. package/dist/lib/preprocessors/typescriptPreprocessor.js +0 -245
  45. package/dist/lib/runtime/configOverrides.d.ts +17 -16
  46. package/dist/lib/runtime/configOverrides.js +27 -16
  47. package/dist/lib/runtime/configOverrides.test.js +116 -2
  48. package/dist/lib/runtime/prompt.js +7 -3
  49. package/dist/lib/runtime/runner.d.ts +2 -2
  50. package/dist/lib/runtime/runner.js +26 -7
  51. package/dist/lib/runtime/state/context.js +9 -2
  52. package/dist/lib/stdlib/llm.d.ts +1 -0
  53. package/dist/lib/stdlib/version.d.ts +1 -1
  54. package/dist/lib/stdlib/version.js +1 -1
  55. package/dist/scripts/agency.d.ts +2 -0
  56. package/dist/scripts/agency.js +55 -12
  57. package/dist/scripts/agency.test.js +73 -1
  58. package/package.json +1 -1
  59. package/stdlib/agency/eval.js +1 -1
  60. package/stdlib/agency.js +1 -1
  61. package/stdlib/agent.agency +9 -9
  62. package/stdlib/agent.js +5 -5
  63. package/stdlib/data/tech/hackernews.js +1 -1
  64. package/stdlib/index.js +15 -15
  65. package/stdlib/llm.agency +2 -1
  66. package/stdlib/llm.js +3 -3
  67. package/stdlib/markdown.js +1 -1
  68. package/stdlib/memory.js +2 -2
  69. package/stdlib/object.js +5 -5
  70. package/stdlib/policy.agency +21 -7
  71. package/stdlib/policy.js +45 -16
  72. package/stdlib/skills.js +1 -1
  73. package/stdlib/strategy.js +3 -3
  74. package/stdlib/thread.js +3 -3
  75. package/stdlib/ui/chart.js +2 -2
  76. package/stdlib/ui/cli.agency +1 -1
  77. package/stdlib/ui/cli.js +1 -1
  78. package/stdlib/ui/layout.js +3 -3
  79. package/stdlib/ui/table.js +2 -2
  80. package/stdlib/ui.js +3 -3
  81. package/dist/lib/agents/docs/cli/cli/agent.md +0 -16
  82. package/dist/lib/agents/docs/cli/cli/compile.md +0 -21
  83. package/dist/lib/agents/docs/cli/cli/coverage.md +0 -112
  84. package/dist/lib/agents/docs/cli/cli/debug.md +0 -41
  85. package/dist/lib/agents/docs/cli/cli/doc.md +0 -98
  86. package/dist/lib/agents/docs/cli/cli/editor-integration.md +0 -44
  87. package/dist/lib/agents/docs/cli/cli/eval-judge.md +0 -72
  88. package/dist/lib/agents/docs/cli/cli/eval.md +0 -194
  89. package/dist/lib/agents/docs/cli/cli/format.md +0 -23
  90. package/dist/lib/agents/docs/cli/cli/index.md +0 -7
  91. package/dist/lib/agents/docs/cli/cli/local.md +0 -92
  92. package/dist/lib/agents/docs/cli/cli/models.md +0 -63
  93. package/dist/lib/agents/docs/cli/cli/optimize.md +0 -338
  94. package/dist/lib/agents/docs/cli/cli/pack.md +0 -56
  95. package/dist/lib/agents/docs/cli/cli/policy.md +0 -23
  96. package/dist/lib/agents/docs/cli/cli/preprocess-and-ast.md +0 -21
  97. package/dist/lib/agents/docs/cli/cli/review.md +0 -16
  98. package/dist/lib/agents/docs/cli/cli/run.md +0 -79
  99. package/dist/lib/agents/docs/cli/cli/schedule.md +0 -89
  100. package/dist/lib/agents/docs/cli/cli/serve.md +0 -52
  101. package/dist/lib/agents/docs/cli/cli/test.md +0 -44
  102. package/dist/lib/agents/docs/cli/cli/trace-and-bundle.md +0 -75
  103. package/dist/lib/agents/docs/cli/cli/typecheck.md +0 -19
  104. package/dist/lib/agents/docs/guide/guide/advanced-types.md +0 -26
  105. package/dist/lib/agents/docs/guide/guide/agency-config-file.md +0 -212
  106. package/dist/lib/agents/docs/guide/guide/agency-packages.md +0 -54
  107. package/dist/lib/agents/docs/guide/guide/agency-stdlib.md +0 -14
  108. package/dist/lib/agents/docs/guide/guide/agency-vs-typescript.md +0 -33
  109. package/dist/lib/agents/docs/guide/guide/attachments.md +0 -56
  110. package/dist/lib/agents/docs/guide/guide/basic-syntax.md +0 -350
  111. package/dist/lib/agents/docs/guide/guide/blocks.md +0 -134
  112. package/dist/lib/agents/docs/guide/guide/build-integration.md +0 -99
  113. package/dist/lib/agents/docs/guide/guide/builtins.md +0 -84
  114. package/dist/lib/agents/docs/guide/guide/callbacks.md +0 -169
  115. package/dist/lib/agents/docs/guide/guide/checkpointing.md +0 -101
  116. package/dist/lib/agents/docs/guide/guide/cli-args.md +0 -190
  117. package/dist/lib/agents/docs/guide/guide/common-functions.md +0 -36
  118. package/dist/lib/agents/docs/guide/guide/compiling-and-running.md +0 -62
  119. package/dist/lib/agents/docs/guide/guide/concurrency.md +0 -108
  120. package/dist/lib/agents/docs/guide/guide/cross-thread-context.md +0 -226
  121. package/dist/lib/agents/docs/guide/guide/custom-providers.md +0 -195
  122. package/dist/lib/agents/docs/guide/guide/debugging.md +0 -67
  123. package/dist/lib/agents/docs/guide/guide/developer-tools.md +0 -90
  124. package/dist/lib/agents/docs/guide/guide/effects-and-raises.md +0 -137
  125. package/dist/lib/agents/docs/guide/guide/effects.md +0 -100
  126. package/dist/lib/agents/docs/guide/guide/error-handling.md +0 -161
  127. package/dist/lib/agents/docs/guide/guide/exercise-1.md +0 -32
  128. package/dist/lib/agents/docs/guide/guide/functions.md +0 -94
  129. package/dist/lib/agents/docs/guide/guide/getting-started.md +0 -35
  130. package/dist/lib/agents/docs/guide/guide/global-var-initialization.md +0 -70
  131. package/dist/lib/agents/docs/guide/guide/global-vs-static.md +0 -76
  132. package/dist/lib/agents/docs/guide/guide/guards.md +0 -134
  133. package/dist/lib/agents/docs/guide/guide/handlers.md +0 -196
  134. package/dist/lib/agents/docs/guide/guide/image-generation.md +0 -113
  135. package/dist/lib/agents/docs/guide/guide/imports-and-packages.md +0 -100
  136. package/dist/lib/agents/docs/guide/guide/interrupts-from-typescript.md +0 -84
  137. package/dist/lib/agents/docs/guide/guide/interrupts-part-2.md +0 -54
  138. package/dist/lib/agents/docs/guide/guide/interrupts.md +0 -139
  139. package/dist/lib/agents/docs/guide/guide/llm-part-2.md +0 -111
  140. package/dist/lib/agents/docs/guide/guide/llm.md +0 -109
  141. package/dist/lib/agents/docs/guide/guide/mcp.md +0 -295
  142. package/dist/lib/agents/docs/guide/guide/memory.md +0 -401
  143. package/dist/lib/agents/docs/guide/guide/message-threads.md +0 -111
  144. package/dist/lib/agents/docs/guide/guide/nodes.md +0 -50
  145. package/dist/lib/agents/docs/guide/guide/observability.md +0 -99
  146. package/dist/lib/agents/docs/guide/guide/partial-application.md +0 -96
  147. package/dist/lib/agents/docs/guide/guide/pattern-matching.md +0 -366
  148. package/dist/lib/agents/docs/guide/guide/policies.md +0 -67
  149. package/dist/lib/agents/docs/guide/guide/schema-parameter-injection.md +0 -101
  150. package/dist/lib/agents/docs/guide/guide/schemas.md +0 -99
  151. package/dist/lib/agents/docs/guide/guide/serving.md +0 -165
  152. package/dist/lib/agents/docs/guide/guide/state-isolation.md +0 -139
  153. package/dist/lib/agents/docs/guide/guide/streaming.md +0 -28
  154. package/dist/lib/agents/docs/guide/guide/tags.md +0 -72
  155. package/dist/lib/agents/docs/guide/guide/testing.md +0 -187
  156. package/dist/lib/agents/docs/guide/guide/troubleshooting.md +0 -86
  157. package/dist/lib/agents/docs/guide/guide/ts-helpers.md +0 -559
  158. package/dist/lib/agents/docs/guide/guide/ts-interop.md +0 -72
  159. package/dist/lib/agents/docs/guide/guide/type-validation.md +0 -187
  160. package/dist/lib/agents/docs/guide/guide/types.md +0 -181
  161. package/dist/lib/agents/docs/guide/guide/unused.md +0 -178
  162. package/dist/lib/agents/docs/guide/guide/unused2.md +0 -258
  163. package/dist/lib/agents/docs/guide/guide/value-parameterized-types.md +0 -186
  164. package/dist/lib/agents/docs/guide/guide/vscode-extension.md +0 -33
  165. package/dist/lib/agents/docs/guide/guide/why-agency.md +0 -323
  166. package/dist/lib/preprocessors/typescriptPreprocessor.config.test.js +0 -327
  167. package/stdlib/browser.js +0 -421
  168. package/stdlib/chart.js +0 -983
  169. package/stdlib/cli.js +0 -1116
  170. package/stdlib/email.js +0 -1104
  171. package/stdlib/imessage.js +0 -377
  172. package/stdlib/keyring.js +0 -803
  173. package/stdlib/layout.js +0 -3657
  174. package/stdlib/oauth.js +0 -862
  175. package/stdlib/schemas.js +0 -223
  176. package/stdlib/search.js +0 -629
  177. package/stdlib/sms.js +0 -419
  178. package/stdlib/table.js +0 -1419
  179. package/stdlib/threads.js +0 -1041
  180. package/stdlib/types.js +0 -222
  181. package/stdlib/validators.js +0 -1606
  182. /package/dist/lib/{preprocessors/typescriptPreprocessor.config.test.d.ts → cli/doctor.test.d.ts} +0 -0
package/stdlib/threads.js DELETED
@@ -1,1041 +0,0 @@
1
- import { print, printJSON, parseJSON, input, sleep, round, read, write, readImage, notify, range, mostCommon, keys, values, entries, emit, callback } from "agency-lang/stdlib/index.js";
2
- import { _listThreadsRaw, _getThread, _setThreadSummary, _currentThreadId } from "agency-lang/stdlib-lib/threads.js";
3
- import { fileURLToPath } from "url";
4
- import __process from "process";
5
- import { z } from "agency-lang/zod";
6
- import { nanoid } from "agency-lang";
7
- import path from "path";
8
- import {
9
- RuntimeContext,
10
- Runner,
11
- setupFunction,
12
- runPrompt,
13
- callHook,
14
- checkpoint as __checkpoint_impl,
15
- getCheckpoint as __getCheckpoint_impl,
16
- restore as __restore_impl,
17
- _run as __runtime_run_impl,
18
- interrupt,
19
- isInterrupt,
20
- hasInterrupts,
21
- isDebugger,
22
- respondToInterrupts as _respondToInterrupts,
23
- rewindFrom as _rewindFrom,
24
- runExportedFunction as _runExportedFunction,
25
- RestoreSignal,
26
- AgencyAbort,
27
- __registerGlobalsInit,
28
- success,
29
- failure,
30
- isFailure,
31
- __tryCall,
32
- __eq,
33
- AgencyFunction as __AgencyFunction,
34
- UNSET as __UNSET,
35
- __call,
36
- __callMethod,
37
- __threads,
38
- __stateStack,
39
- __globals,
40
- getRuntimeContext,
41
- agencyStore,
42
- functionRefReviver as __functionRefReviver,
43
- DeterministicClient as __DeterministicClient,
44
- createLogger as __createLogger
45
- } from "agency-lang/runtime";
46
- const __filename = fileURLToPath(import.meta.url);
47
- const __dirname = path.dirname(__filename);
48
- const __cwd = __process.cwd();
49
- const getDirname = () => __dirname;
50
- const __globalCtx = new RuntimeContext({
51
- statelogConfig: {
52
- host: "https://statelog.adit.io",
53
- apiKey: __process.env["STATELOG_API_KEY"] || "",
54
- projectId: "agency-lang",
55
- debugMode: false,
56
- observability: true,
57
- logFile: "log.jsonl"
58
- },
59
- smoltalkDefaults: {
60
- apiKey: {
61
- openAi: __process.env["OPENAI_API_KEY"] || "",
62
- google: __process.env["GEMINI_API_KEY"] || "",
63
- anthropic: __process.env["ANTHROPIC_API_KEY"] || "",
64
- openRouter: __process.env["OPENROUTER_API_KEY"] || "",
65
- deepInfra: __process.env["DEEPINFRA_API_KEY"] || "",
66
- liteLlm: __process.env["LITELLM_API_KEY"] || "",
67
- openAiCompat: __process.env["OPENAI_COMPAT_API_KEY"] || ""
68
- },
69
- baseUrl: {
70
- liteLlm: __process.env["LITELLM_BASE_URL"] || "",
71
- openAiCompat: __process.env["OPENAI_COMPAT_BASE_URL"] || ""
72
- },
73
- model: "gpt-4o-mini",
74
- logLevel: "warn",
75
- statelog: {
76
- host: "https://statelog.adit.io",
77
- projectId: "smoltalk",
78
- apiKey: __process.env["STATELOG_SMOLTALK_API_KEY"] || "",
79
- traceId: nanoid()
80
- }
81
- },
82
- dirname: __dirname,
83
- logLevel: "info",
84
- traceConfig: {
85
- program: "stdlib/threads.agency"
86
- }
87
- });
88
- const graph = __globalCtx.graph;
89
- function approve(value) {
90
- return { type: "approve", value };
91
- }
92
- function reject(value) {
93
- return { type: "reject", value };
94
- }
95
- function propagate() {
96
- return { type: "propagate" };
97
- }
98
- const respondToInterrupts = (interrupts, responses, opts) => _respondToInterrupts({ ctx: __globalCtx, interrupts, responses, overrides: opts?.overrides, metadata: opts?.metadata, registerTopLevelCallbacks: __registerTopLevelCallbacks, moduleDir: __dirname });
99
- const rewindFrom = (checkpoint2, overrides, opts) => _rewindFrom({ ctx: __globalCtx, checkpoint: checkpoint2, overrides, metadata: opts?.metadata, registerTopLevelCallbacks: __registerTopLevelCallbacks, moduleDir: __dirname });
100
- const __invokeFunction = (fn, namedArgs) => _runExportedFunction({ ctx: __globalCtx, fn, namedArgs, initializeGlobals: __initializeGlobals, registerTopLevelCallbacks: __registerTopLevelCallbacks, moduleDir: __dirname });
101
- const __setDebugger = (dbg) => {
102
- __globalCtx.debuggerState = dbg;
103
- };
104
- const __setTraceFile = (filePath) => {
105
- __globalCtx.traceConfig.traceFile = filePath;
106
- };
107
- const __setLLMClient = (client) => {
108
- __globalCtx.setLLMClient(client);
109
- };
110
- const __getCheckpoints = () => __globalCtx.checkpoints;
111
- if (__process.env.AGENCY_LLM_MOCKS) {
112
- __globalCtx.setLLMClient(
113
- new __DeterministicClient(JSON.parse(__process.env.AGENCY_LLM_MOCKS))
114
- );
115
- }
116
- const __toolRegistry = __functionRefReviver.registry ??= {};
117
- function __registerTool(value, _aliasName) {
118
- if (__AgencyFunction.isAgencyFunction(value)) {
119
- __toolRegistry[`${value.module}:${value.name}`] = value;
120
- }
121
- }
122
- const checkpoint = __AgencyFunction.create({ name: "checkpoint", module: "__runtime", fn: __checkpoint_impl, params: [], toolDefinition: null }, __toolRegistry);
123
- const getCheckpoint = __AgencyFunction.create({ name: "getCheckpoint", module: "__runtime", fn: __getCheckpoint_impl, params: [{ name: "checkpointId", hasDefault: false, defaultValue: void 0, variadic: false }], toolDefinition: null }, __toolRegistry);
124
- const restore = __AgencyFunction.create({ name: "restore", module: "__runtime", fn: __restore_impl, params: [{ name: "checkpointIdOrCheckpoint", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "options", hasDefault: false, defaultValue: void 0, variadic: false }], toolDefinition: null }, __toolRegistry);
125
- const _run = __AgencyFunction.create({ name: "_run", module: "__runtime", fn: __runtime_run_impl, params: [{ name: "compiled", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "node", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "args", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "wallClock", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "memory", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "ipcPayload", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "stdout", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "configOverrides", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "cwd", hasDefault: false, defaultValue: void 0, variadic: false }], toolDefinition: null }, __toolRegistry);
126
- function setLLMClient(client) {
127
- __globalCtx.setLLMClient(client);
128
- }
129
- function registerTools(tools) {
130
- for (const tool of tools) {
131
- if (__AgencyFunction.isAgencyFunction(tool)) {
132
- __toolRegistry[`${tool.module}:${tool.name}`] = tool;
133
- }
134
- }
135
- }
136
- __registerTool(print);
137
- __registerTool(printJSON);
138
- __registerTool(parseJSON);
139
- __registerTool(input);
140
- __registerTool(sleep);
141
- __registerTool(round);
142
- __registerTool(read);
143
- __registerTool(write);
144
- __registerTool(readImage);
145
- __registerTool(notify);
146
- __registerTool(range);
147
- __registerTool(mostCommon);
148
- __registerTool(keys);
149
- __registerTool(values);
150
- __registerTool(entries);
151
- __registerTool(emit);
152
- __registerTool(callback);
153
- async function __initializeGlobals(__ctx) {
154
- if (__ctx.globals.isInitialized("stdlib/threads.agency")) {
155
- return;
156
- }
157
- __ctx.globals.markInitialized("stdlib/threads.agency");
158
- }
159
- __registerGlobalsInit("stdlib/threads.agency", __initializeGlobals);
160
- async function __registerTopLevelCallbacks(__ctx) {
161
- __ctx.topLevelCallbacks = [];
162
- }
163
- __functionRefReviver.registry = __toolRegistry;
164
- const ThreadMessage = z.object({ "role": z.string(), "content": z.string() });
165
- const ThreadInfo = z.object({ "id": z.string(), "label": z.union([z.string(), z.null()]).optional().default(null), "summary": z.union([z.string(), z.null()]).optional().default(null), "parentId": z.union([z.string(), z.null()]).optional().default(null), "threadType": z.string(), "messageCount": z.number(), "isActive": z.boolean() });
166
- const SummaryResult = z.object({ "summary": z.string() });
167
- async function __summarize_impl(messages) {
168
- const __setupData = setupFunction();
169
- const __stack = __setupData.stack;
170
- const __step = __setupData.step;
171
- const __self = __setupData.self;
172
- const __ctx = getRuntimeContext().ctx;
173
- let __forked;
174
- let __functionCompleted = false;
175
- if (!__globals().isInitialized("stdlib/threads.agency")) {
176
- await __initializeGlobals(__ctx);
177
- }
178
- let __funcStartTime = performance.now();
179
- __stack.args["messages"] = messages;
180
- __self.__retryable = __self.__retryable ?? true;
181
- const runner = new Runner(__ctx, __stack, { state: __stack, moduleId: "stdlib/threads.agency", scopeName: "summarize", threads: __setupData.threads });
182
- let __resultCheckpointId = -1;
183
- if (__ctx._pendingArgOverrides) {
184
- const __overrides = __ctx._pendingArgOverrides;
185
- __ctx._pendingArgOverrides = void 0;
186
- if ("messages" in __overrides) {
187
- messages = __overrides["messages"];
188
- __stack.args["messages"] = messages;
189
- }
190
- }
191
- try {
192
- await agencyStore.run({
193
- ...getRuntimeContext(),
194
- ctx: __ctx,
195
- stack: __setupData.stateStack,
196
- threads: __setupData.threads
197
- }, async () => {
198
- await runner.hook(0, async () => {
199
- await callHook({
200
- name: "onFunctionStart",
201
- data: {
202
- functionName: "summarize",
203
- args: {
204
- messages
205
- },
206
- isBuiltin: false,
207
- moduleId: "stdlib/threads.agency"
208
- }
209
- });
210
- });
211
- await runner.step(1, async (runner2) => {
212
- __stack.locals.transcript = ``;
213
- });
214
- await runner.loop(2, __stack.args.messages, async (m, _, runner2) => {
215
- await runner2.step(0, async (runner3) => {
216
- __stack.locals.transcript = __stack.locals.transcript + `[${m.role}] ${m.content}
217
- `;
218
- });
219
- });
220
- await runner.step(3, async (runner2) => {
221
- __stack.locals.summary = ``;
222
- });
223
- await runner.thread(4, "create", { hidden: true }, async (runner2) => {
224
- await runner2.step(0, async (runner3) => {
225
- __self.__removedTools = __self.__removedTools || [];
226
- __stack.locals.r = await runPrompt({
227
- prompt: `Summarize this conversation in 1-2 sentences:
228
- ${__stack.locals.transcript}`,
229
- messages: __threads().getOrCreateActive(),
230
- responseFormat: z.object({
231
- response: SummaryResult
232
- }),
233
- clientConfig: {},
234
- maxToolCallRounds: 10,
235
- removedTools: __self.__removedTools,
236
- checkpointInfo: runner3.getCheckpointInfo()
237
- });
238
- if (hasInterrupts(__stack.locals.r)) {
239
- await getRuntimeContext().ctx.pendingPromises.awaitAll();
240
- runner3.halt(__stack.locals.r);
241
- return;
242
- }
243
- });
244
- await runner2.step(1, async (runner3) => {
245
- __stack.locals.summary = __stack.locals.r.summary;
246
- });
247
- });
248
- await runner.step(5, async (runner2) => {
249
- __functionCompleted = true;
250
- runner2.halt(__stack.locals.summary);
251
- return;
252
- });
253
- });
254
- if (runner.halted) {
255
- if (isFailure(runner.haltResult)) {
256
- runner.haltResult.retryable = runner.haltResult.retryable && __self.__retryable;
257
- }
258
- return runner.haltResult;
259
- }
260
- } catch (__error) {
261
- if (__error instanceof RestoreSignal) {
262
- throw __error;
263
- }
264
- if (__error instanceof AgencyAbort) {
265
- throw __error;
266
- }
267
- {
268
- const __errMsg = __error instanceof Error ? __error.message : String(__error);
269
- const __errStack = __error instanceof Error && __error.stack ? __error.stack : "";
270
- const __log = __createLogger(__ctx.logLevel);
271
- __log.error("Function summarize threw an exception (converted to Failure): " + __errMsg);
272
- if (__errStack) __log.error(__errStack);
273
- __ctx.statelogClient?.error?.({
274
- errorType: "runtimeError",
275
- message: __errMsg,
276
- functionName: "summarize",
277
- retryable: __self.__retryable
278
- });
279
- }
280
- return failure(
281
- __error instanceof Error ? __error.message : String(__error),
282
- {
283
- checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
284
- retryable: __self.__retryable,
285
- functionName: "summarize",
286
- args: __stack.args
287
- }
288
- );
289
- } finally {
290
- __stateStack()?.pop();
291
- if (__functionCompleted) {
292
- await callHook({
293
- name: "onFunctionEnd",
294
- data: {
295
- functionName: "summarize",
296
- timeTaken: performance.now() - __funcStartTime
297
- }
298
- });
299
- }
300
- }
301
- }
302
- const summarize = __AgencyFunction.create({
303
- name: "summarize",
304
- module: "stdlib/threads.agency",
305
- fn: __summarize_impl,
306
- params: [{
307
- name: "messages",
308
- hasDefault: false,
309
- defaultValue: void 0,
310
- variadic: false,
311
- isFunctionTyped: false
312
- }],
313
- toolDefinition: {
314
- name: "summarize",
315
- description: `One-shot LLM summarization used by the lazy summarize path.
316
- Wrapped in a \`thread {}\` block so the summarizer prompt runs on
317
- an isolated message history and doesn't pollute the agent's main
318
- conversation. Uses structured output so the returned text comes
319
- back on a known field instead of free-form completion text.
320
-
321
- @param messages - The thread's messages to summarize`,
322
- schema: z.object({ "messages": z.array(ThreadMessage) })
323
- },
324
- safe: false,
325
- exported: false
326
- }, __toolRegistry);
327
- async function __summaryFor_impl(id, existing, messages) {
328
- const __setupData = setupFunction();
329
- const __stack = __setupData.stack;
330
- const __step = __setupData.step;
331
- const __self = __setupData.self;
332
- const __ctx = getRuntimeContext().ctx;
333
- let __forked;
334
- let __functionCompleted = false;
335
- if (!__globals().isInitialized("stdlib/threads.agency")) {
336
- await __initializeGlobals(__ctx);
337
- }
338
- let __funcStartTime = performance.now();
339
- __stack.args["id"] = id;
340
- __stack.args["existing"] = existing;
341
- __stack.args["messages"] = messages;
342
- __self.__retryable = __self.__retryable ?? true;
343
- const runner = new Runner(__ctx, __stack, { state: __stack, moduleId: "stdlib/threads.agency", scopeName: "summaryFor", threads: __setupData.threads });
344
- let __resultCheckpointId = -1;
345
- if (__ctx._pendingArgOverrides) {
346
- const __overrides = __ctx._pendingArgOverrides;
347
- __ctx._pendingArgOverrides = void 0;
348
- if ("id" in __overrides) {
349
- id = __overrides["id"];
350
- __stack.args["id"] = id;
351
- }
352
- if ("existing" in __overrides) {
353
- existing = __overrides["existing"];
354
- __stack.args["existing"] = existing;
355
- }
356
- if ("messages" in __overrides) {
357
- messages = __overrides["messages"];
358
- __stack.args["messages"] = messages;
359
- }
360
- }
361
- try {
362
- await agencyStore.run({
363
- ...getRuntimeContext(),
364
- ctx: __ctx,
365
- stack: __setupData.stateStack,
366
- threads: __setupData.threads
367
- }, async () => {
368
- await runner.hook(0, async () => {
369
- await callHook({
370
- name: "onFunctionStart",
371
- data: {
372
- functionName: "summaryFor",
373
- args: {
374
- id,
375
- existing,
376
- messages
377
- },
378
- isBuiltin: false,
379
- moduleId: "stdlib/threads.agency"
380
- }
381
- });
382
- });
383
- await runner.ifElse(1, [
384
- {
385
- condition: async () => !__eq(__stack.args.existing, null),
386
- body: async (runner2) => {
387
- await runner2.step(0, async (runner3) => {
388
- __functionCompleted = true;
389
- runner3.halt(__stack.args.existing);
390
- return;
391
- });
392
- }
393
- }
394
- ]);
395
- await runner.step(2, async (runner2) => {
396
- __stack.locals.s = await __call(summarize, {
397
- type: "positional",
398
- args: [__stack.args.messages]
399
- });
400
- if (hasInterrupts(__stack.locals.s)) {
401
- await getRuntimeContext().ctx.pendingPromises.awaitAll();
402
- runner2.halt(__stack.locals.s);
403
- return;
404
- }
405
- });
406
- await runner.step(3, async (runner2) => {
407
- __self.__retryable = false;
408
- const __funcResult = await __call(_setThreadSummary, {
409
- type: "positional",
410
- args: [__stack.args.id, __stack.locals.s]
411
- });
412
- if (hasInterrupts(__funcResult)) {
413
- await getRuntimeContext().ctx.pendingPromises.awaitAll();
414
- runner2.halt(__funcResult);
415
- return;
416
- }
417
- });
418
- await runner.step(4, async (runner2) => {
419
- __functionCompleted = true;
420
- runner2.halt(__stack.locals.s);
421
- return;
422
- });
423
- });
424
- if (runner.halted) {
425
- if (isFailure(runner.haltResult)) {
426
- runner.haltResult.retryable = runner.haltResult.retryable && __self.__retryable;
427
- }
428
- return runner.haltResult;
429
- }
430
- } catch (__error) {
431
- if (__error instanceof RestoreSignal) {
432
- throw __error;
433
- }
434
- if (__error instanceof AgencyAbort) {
435
- throw __error;
436
- }
437
- {
438
- const __errMsg = __error instanceof Error ? __error.message : String(__error);
439
- const __errStack = __error instanceof Error && __error.stack ? __error.stack : "";
440
- const __log = __createLogger(__ctx.logLevel);
441
- __log.error("Function summaryFor threw an exception (converted to Failure): " + __errMsg);
442
- if (__errStack) __log.error(__errStack);
443
- __ctx.statelogClient?.error?.({
444
- errorType: "runtimeError",
445
- message: __errMsg,
446
- functionName: "summaryFor",
447
- retryable: __self.__retryable
448
- });
449
- }
450
- return failure(
451
- __error instanceof Error ? __error.message : String(__error),
452
- {
453
- checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
454
- retryable: __self.__retryable,
455
- functionName: "summaryFor",
456
- args: __stack.args
457
- }
458
- );
459
- } finally {
460
- __stateStack()?.pop();
461
- if (__functionCompleted) {
462
- await callHook({
463
- name: "onFunctionEnd",
464
- data: {
465
- functionName: "summaryFor",
466
- timeTaken: performance.now() - __funcStartTime
467
- }
468
- });
469
- }
470
- }
471
- }
472
- const summaryFor = __AgencyFunction.create({
473
- name: "summaryFor",
474
- module: "stdlib/threads.agency",
475
- fn: __summaryFor_impl,
476
- params: [{
477
- name: "id",
478
- hasDefault: false,
479
- defaultValue: void 0,
480
- variadic: false,
481
- isFunctionTyped: false
482
- }, {
483
- name: "existing",
484
- hasDefault: false,
485
- defaultValue: void 0,
486
- variadic: false,
487
- isFunctionTyped: false
488
- }, {
489
- name: "messages",
490
- hasDefault: false,
491
- defaultValue: void 0,
492
- variadic: false,
493
- isFunctionTyped: false
494
- }],
495
- toolDefinition: {
496
- name: "summaryFor",
497
- description: "No description provided.",
498
- schema: z.object({ "id": z.string(), "existing": z.union([z.string(), z.null()]), "messages": z.array(ThreadMessage) })
499
- },
500
- safe: false,
501
- exported: false
502
- }, __toolRegistry);
503
- async function __listThreads_impl(lazySummarize = __UNSET) {
504
- const __setupData = setupFunction();
505
- const __stack = __setupData.stack;
506
- const __step = __setupData.step;
507
- const __self = __setupData.self;
508
- const __ctx = getRuntimeContext().ctx;
509
- let __forked;
510
- let __functionCompleted = false;
511
- if (!__globals().isInitialized("stdlib/threads.agency")) {
512
- await __initializeGlobals(__ctx);
513
- }
514
- let __funcStartTime = performance.now();
515
- __stack.args["lazySummarize"] = lazySummarize === __UNSET ? true : lazySummarize;
516
- __self.__retryable = __self.__retryable ?? true;
517
- const runner = new Runner(__ctx, __stack, { state: __stack, moduleId: "stdlib/threads.agency", scopeName: "listThreads", threads: __setupData.threads });
518
- let __resultCheckpointId = -1;
519
- if (__ctx._pendingArgOverrides) {
520
- const __overrides = __ctx._pendingArgOverrides;
521
- __ctx._pendingArgOverrides = void 0;
522
- if ("lazySummarize" in __overrides) {
523
- lazySummarize = __overrides["lazySummarize"];
524
- __stack.args["lazySummarize"] = lazySummarize;
525
- }
526
- }
527
- try {
528
- await agencyStore.run({
529
- ...getRuntimeContext(),
530
- ctx: __ctx,
531
- stack: __setupData.stateStack,
532
- threads: __setupData.threads
533
- }, async () => {
534
- await runner.hook(0, async () => {
535
- await callHook({
536
- name: "onFunctionStart",
537
- data: {
538
- functionName: "listThreads",
539
- args: {
540
- lazySummarize
541
- },
542
- isBuiltin: false,
543
- moduleId: "stdlib/threads.agency"
544
- }
545
- });
546
- });
547
- await runner.step(1, async (runner2) => {
548
- __stack.locals.raw = await __tryCall(async () => await __call(_listThreadsRaw, {
549
- type: "positional",
550
- args: []
551
- }), {
552
- checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
553
- functionName: "listThreads",
554
- args: __stack.args
555
- });
556
- });
557
- await runner.ifElse(2, [
558
- {
559
- condition: async () => await isFailure(__stack.locals.raw),
560
- body: async (runner2) => {
561
- await runner2.step(0, async (runner3) => {
562
- __functionCompleted = true;
563
- runner3.halt(__stack.locals.raw);
564
- return;
565
- });
566
- }
567
- }
568
- ]);
569
- await runner.step(3, async (runner2) => {
570
- __stack.locals.out = [];
571
- });
572
- await runner.loop(4, __stack.locals.raw.value, async (t, _, runner2) => {
573
- await runner2.step(0, async (runner3) => {
574
- __stack.locals.summary = null;
575
- });
576
- await runner2.ifElse(1, [
577
- {
578
- condition: async () => __stack.args.lazySummarize,
579
- body: async (runner3) => {
580
- await runner3.step(0, async (runner4) => {
581
- });
582
- await runner3.ifElse(1, [
583
- {
584
- condition: async () => t.isActive,
585
- body: async (runner4) => {
586
- await runner4.step(0, async (runner5) => {
587
- __stack.locals.summary = t.summary;
588
- });
589
- }
590
- }
591
- ], async (runner4) => {
592
- await runner4.step(1, async (runner5) => {
593
- __stack.locals.summary = await __call(summaryFor, {
594
- type: "positional",
595
- args: [t.id, t.summary, t.messages]
596
- });
597
- if (hasInterrupts(__stack.locals.summary)) {
598
- await getRuntimeContext().ctx.pendingPromises.awaitAll();
599
- runner5.halt(__stack.locals.summary);
600
- return;
601
- }
602
- });
603
- });
604
- }
605
- }
606
- ], async (runner3) => {
607
- await runner3.step(2, async (runner4) => {
608
- });
609
- await runner3.ifElse(3, [
610
- {
611
- condition: async () => !__eq(t.summary, null),
612
- body: async (runner4) => {
613
- await runner4.step(0, async (runner5) => {
614
- __stack.locals.summary = t.summary;
615
- });
616
- }
617
- },
618
- {
619
- condition: async () => !__eq(t.label, null),
620
- body: async (runner4) => {
621
- await runner4.step(1, async (runner5) => {
622
- __stack.locals.summary = t.label;
623
- });
624
- }
625
- }
626
- ], async (runner4) => {
627
- await runner4.step(2, async (runner5) => {
628
- __stack.locals.summary = ``;
629
- });
630
- });
631
- });
632
- await runner2.step(2, async (runner3) => {
633
- await __callMethod(__stack.locals.out, "push", {
634
- type: "positional",
635
- args: [{
636
- "id": t.id,
637
- "label": t.label,
638
- "summary": __stack.locals.summary,
639
- "parentId": t.parentId,
640
- "threadType": t.threadType,
641
- "messageCount": t.messageCount,
642
- "isActive": t.isActive
643
- }]
644
- });
645
- });
646
- });
647
- await runner.step(5, async (runner2) => {
648
- __functionCompleted = true;
649
- runner2.halt(await success(__stack.locals.out));
650
- return;
651
- });
652
- });
653
- if (runner.halted) {
654
- if (isFailure(runner.haltResult)) {
655
- runner.haltResult.retryable = runner.haltResult.retryable && __self.__retryable;
656
- }
657
- return runner.haltResult;
658
- }
659
- } catch (__error) {
660
- if (__error instanceof RestoreSignal) {
661
- throw __error;
662
- }
663
- if (__error instanceof AgencyAbort) {
664
- throw __error;
665
- }
666
- {
667
- const __errMsg = __error instanceof Error ? __error.message : String(__error);
668
- const __errStack = __error instanceof Error && __error.stack ? __error.stack : "";
669
- const __log = __createLogger(__ctx.logLevel);
670
- __log.error("Function listThreads threw an exception (converted to Failure): " + __errMsg);
671
- if (__errStack) __log.error(__errStack);
672
- __ctx.statelogClient?.error?.({
673
- errorType: "runtimeError",
674
- message: __errMsg,
675
- functionName: "listThreads",
676
- retryable: __self.__retryable
677
- });
678
- }
679
- return failure(
680
- __error instanceof Error ? __error.message : String(__error),
681
- {
682
- checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
683
- retryable: __self.__retryable,
684
- functionName: "listThreads",
685
- args: __stack.args
686
- }
687
- );
688
- } finally {
689
- __stateStack()?.pop();
690
- if (__functionCompleted) {
691
- await callHook({
692
- name: "onFunctionEnd",
693
- data: {
694
- functionName: "listThreads",
695
- timeTaken: performance.now() - __funcStartTime
696
- }
697
- });
698
- }
699
- }
700
- }
701
- const listThreads = __AgencyFunction.create({
702
- name: "listThreads",
703
- module: "stdlib/threads.agency",
704
- fn: __listThreads_impl,
705
- params: [{
706
- name: "lazySummarize",
707
- hasDefault: true,
708
- defaultValue: void 0,
709
- variadic: false,
710
- isFunctionTyped: false
711
- }],
712
- toolDefinition: {
713
- name: "listThreads",
714
- description: `Return every thread in the current run, including the active one.
715
-
716
- Summary generation: threads opened with \`thread(summarize: true)\`
717
- are summarized eagerly when they close (see the global onThreadEnd
718
- hook in \`lib/stdlib/threads.ts\`), so their summary is already
719
- cached by the time \`listThreads()\` runs. Threads that did NOT opt
720
- in eagerly trigger exactly one LLM round-trip the first time
721
- \`listThreads()\` is called on them (the "lazy" path). Active
722
- threads are skipped on both paths so the in-flight conversation
723
- is not summarized mid-stream. The computed summary is stashed on
724
- the underlying \`MessageThread\` so subsequent calls read it back
725
- without re-prompting.
726
-
727
- Pass \`lazySummarize: false\` to skip the on-demand LLM round-trip
728
- entirely. Threads without a cached summary fall back to their
729
- label (or \`""\` if no label is set), so the call stays free even
730
- when no eager summary is available. Useful in tests and in
731
- performance-sensitive surfaces where you'd rather see "no summary
732
- yet" than pay for one synchronously.
733
-
734
- Returns a \`Result\` \u2014 success holds \`ThreadInfo[]\`, failure holds
735
- the error (e.g. called outside an Agency frame). See
736
- [error handling](https://agency-lang.com/guide/error-handling).
737
-
738
- @param lazySummarize - When true (default), generate summaries
739
- on-demand for any thread that doesn't have
740
- one cached. When false, fall back to the
741
- label (or \`""\`).`,
742
- schema: z.object({ "lazySummarize": z.boolean().nullable().describe("Default: true") })
743
- },
744
- safe: false,
745
- exported: true
746
- }, __toolRegistry);
747
- async function __currentThreadId_impl() {
748
- const __setupData = setupFunction();
749
- const __stack = __setupData.stack;
750
- const __step = __setupData.step;
751
- const __self = __setupData.self;
752
- const __ctx = getRuntimeContext().ctx;
753
- let __forked;
754
- let __functionCompleted = false;
755
- if (!__globals().isInitialized("stdlib/threads.agency")) {
756
- await __initializeGlobals(__ctx);
757
- }
758
- let __funcStartTime = performance.now();
759
- __self.__retryable = __self.__retryable ?? true;
760
- const runner = new Runner(__ctx, __stack, { state: __stack, moduleId: "stdlib/threads.agency", scopeName: "currentThreadId", threads: __setupData.threads });
761
- let __resultCheckpointId = -1;
762
- if (__ctx._pendingArgOverrides) {
763
- const __overrides = __ctx._pendingArgOverrides;
764
- __ctx._pendingArgOverrides = void 0;
765
- }
766
- try {
767
- await agencyStore.run({
768
- ...getRuntimeContext(),
769
- ctx: __ctx,
770
- stack: __setupData.stateStack,
771
- threads: __setupData.threads
772
- }, async () => {
773
- await runner.hook(0, async () => {
774
- await callHook({
775
- name: "onFunctionStart",
776
- data: {
777
- functionName: "currentThreadId",
778
- args: {},
779
- isBuiltin: false,
780
- moduleId: "stdlib/threads.agency"
781
- }
782
- });
783
- });
784
- await runner.step(1, async (runner2) => {
785
- __functionCompleted = true;
786
- runner2.halt(await __call(_currentThreadId, {
787
- type: "positional",
788
- args: []
789
- }));
790
- return;
791
- });
792
- });
793
- if (runner.halted) {
794
- if (isFailure(runner.haltResult)) {
795
- runner.haltResult.retryable = runner.haltResult.retryable && __self.__retryable;
796
- }
797
- return runner.haltResult;
798
- }
799
- } catch (__error) {
800
- if (__error instanceof RestoreSignal) {
801
- throw __error;
802
- }
803
- if (__error instanceof AgencyAbort) {
804
- throw __error;
805
- }
806
- {
807
- const __errMsg = __error instanceof Error ? __error.message : String(__error);
808
- const __errStack = __error instanceof Error && __error.stack ? __error.stack : "";
809
- const __log = __createLogger(__ctx.logLevel);
810
- __log.error("Function currentThreadId threw an exception (converted to Failure): " + __errMsg);
811
- if (__errStack) __log.error(__errStack);
812
- __ctx.statelogClient?.error?.({
813
- errorType: "runtimeError",
814
- message: __errMsg,
815
- functionName: "currentThreadId",
816
- retryable: __self.__retryable
817
- });
818
- }
819
- return failure(
820
- __error instanceof Error ? __error.message : String(__error),
821
- {
822
- checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
823
- retryable: __self.__retryable,
824
- functionName: "currentThreadId",
825
- args: __stack.args
826
- }
827
- );
828
- } finally {
829
- __stateStack()?.pop();
830
- if (__functionCompleted) {
831
- await callHook({
832
- name: "onFunctionEnd",
833
- data: {
834
- functionName: "currentThreadId",
835
- timeTaken: performance.now() - __funcStartTime
836
- }
837
- });
838
- }
839
- }
840
- }
841
- const currentThreadId = __AgencyFunction.create({
842
- name: "currentThreadId",
843
- module: "stdlib/threads.agency",
844
- fn: __currentThreadId_impl,
845
- params: [],
846
- toolDefinition: {
847
- name: "currentThreadId",
848
- description: `Slug-form id of the active thread (e.g. "t3"), or \`""\` outside any
849
- runtime frame. Useful with \`thread(continue: id)\` when you want to
850
- capture a thread's id at the moment it was active so you can
851
- resume it later.`,
852
- schema: z.object({})
853
- },
854
- safe: true,
855
- exported: true
856
- }, __toolRegistry);
857
- async function __getThread_impl(id, offset = __UNSET, limit = __UNSET) {
858
- const __setupData = setupFunction();
859
- const __stack = __setupData.stack;
860
- const __step = __setupData.step;
861
- const __self = __setupData.self;
862
- const __ctx = getRuntimeContext().ctx;
863
- let __forked;
864
- let __functionCompleted = false;
865
- if (!__globals().isInitialized("stdlib/threads.agency")) {
866
- await __initializeGlobals(__ctx);
867
- }
868
- let __funcStartTime = performance.now();
869
- __stack.args["id"] = id;
870
- __stack.args["offset"] = offset === __UNSET ? 0 : offset;
871
- __stack.args["limit"] = limit === __UNSET ? 50 : limit;
872
- __self.__retryable = __self.__retryable ?? true;
873
- const runner = new Runner(__ctx, __stack, { state: __stack, moduleId: "stdlib/threads.agency", scopeName: "getThread", threads: __setupData.threads });
874
- let __resultCheckpointId = -1;
875
- if (__ctx._pendingArgOverrides) {
876
- const __overrides = __ctx._pendingArgOverrides;
877
- __ctx._pendingArgOverrides = void 0;
878
- if ("id" in __overrides) {
879
- id = __overrides["id"];
880
- __stack.args["id"] = id;
881
- }
882
- if ("offset" in __overrides) {
883
- offset = __overrides["offset"];
884
- __stack.args["offset"] = offset;
885
- }
886
- if ("limit" in __overrides) {
887
- limit = __overrides["limit"];
888
- __stack.args["limit"] = limit;
889
- }
890
- }
891
- try {
892
- await agencyStore.run({
893
- ...getRuntimeContext(),
894
- ctx: __ctx,
895
- stack: __setupData.stateStack,
896
- threads: __setupData.threads
897
- }, async () => {
898
- await runner.hook(0, async () => {
899
- await callHook({
900
- name: "onFunctionStart",
901
- data: {
902
- functionName: "getThread",
903
- args: {
904
- id,
905
- offset,
906
- limit
907
- },
908
- isBuiltin: false,
909
- moduleId: "stdlib/threads.agency"
910
- }
911
- });
912
- });
913
- await runner.step(1, async (runner2) => {
914
- __functionCompleted = true;
915
- runner2.halt(await __tryCall(async () => await __call(_getThread, {
916
- type: "positional",
917
- args: [__stack.args.id, __stack.args.offset, __stack.args.limit]
918
- }), {
919
- checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
920
- functionName: "getThread",
921
- args: __stack.args
922
- }));
923
- return;
924
- });
925
- });
926
- if (runner.halted) {
927
- if (isFailure(runner.haltResult)) {
928
- runner.haltResult.retryable = runner.haltResult.retryable && __self.__retryable;
929
- }
930
- return runner.haltResult;
931
- }
932
- } catch (__error) {
933
- if (__error instanceof RestoreSignal) {
934
- throw __error;
935
- }
936
- if (__error instanceof AgencyAbort) {
937
- throw __error;
938
- }
939
- {
940
- const __errMsg = __error instanceof Error ? __error.message : String(__error);
941
- const __errStack = __error instanceof Error && __error.stack ? __error.stack : "";
942
- const __log = __createLogger(__ctx.logLevel);
943
- __log.error("Function getThread threw an exception (converted to Failure): " + __errMsg);
944
- if (__errStack) __log.error(__errStack);
945
- __ctx.statelogClient?.error?.({
946
- errorType: "runtimeError",
947
- message: __errMsg,
948
- functionName: "getThread",
949
- retryable: __self.__retryable
950
- });
951
- }
952
- return failure(
953
- __error instanceof Error ? __error.message : String(__error),
954
- {
955
- checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
956
- retryable: __self.__retryable,
957
- functionName: "getThread",
958
- args: __stack.args
959
- }
960
- );
961
- } finally {
962
- __stateStack()?.pop();
963
- if (__functionCompleted) {
964
- await callHook({
965
- name: "onFunctionEnd",
966
- data: {
967
- functionName: "getThread",
968
- timeTaken: performance.now() - __funcStartTime
969
- }
970
- });
971
- }
972
- }
973
- }
974
- const getThread = __AgencyFunction.create({
975
- name: "getThread",
976
- module: "stdlib/threads.agency",
977
- fn: __getThread_impl,
978
- params: [{
979
- name: "id",
980
- hasDefault: false,
981
- defaultValue: void 0,
982
- variadic: false,
983
- isFunctionTyped: false
984
- }, {
985
- name: "offset",
986
- hasDefault: true,
987
- defaultValue: void 0,
988
- variadic: false,
989
- isFunctionTyped: false
990
- }, {
991
- name: "limit",
992
- hasDefault: true,
993
- defaultValue: void 0,
994
- variadic: false,
995
- isFunctionTyped: false
996
- }],
997
- toolDefinition: {
998
- name: "getThread",
999
- description: `Read a slice of a thread's messages. Returns success holding \`[]\`
1000
- for an unknown id; returns failure when called outside an Agency
1001
- frame.
1002
-
1003
- Pagination: \`offset\` is 0-indexed; \`limit\` defaults to 50. Pass
1004
- larger explicit values for full-thread reads.
1005
-
1006
- Returns a \`Result\` \u2014 success holds \`ThreadMessage[]\`. See
1007
- [error handling](https://agency-lang.com/guide/error-handling).
1008
-
1009
- @param id - Thread slug (e.g. "t1") from \`listThreads()\`
1010
- @param offset - 0-indexed start of the message slice
1011
- @param limit - Maximum number of messages to return`,
1012
- schema: z.object({ "id": z.string(), "offset": z.number().nullable().describe("Default: 0"), "limit": z.number().nullable().describe("Default: 50") })
1013
- },
1014
- safe: true,
1015
- exported: true
1016
- }, __toolRegistry);
1017
- var stdin_default = graph;
1018
- const __sourceMap = { "stdlib/threads.agency:summarize": { "1": { "line": 71, "col": 2 }, "2": { "line": 72, "col": 2 }, "3": { "line": 75, "col": 2 }, "4": { "line": 76, "col": 2 }, "5": { "line": 80, "col": 2 }, "2.0": { "line": 73, "col": 4 }, "4.0": { "line": 77, "col": 4 }, "4.1": { "line": 78, "col": 4 } }, "stdlib/threads.agency:summaryFor": { "1": { "line": 90, "col": 2 }, "2": { "line": 93, "col": 2 }, "3": { "line": 94, "col": 2 }, "4": { "line": 95, "col": 2 }, "1.0": { "line": 91, "col": 4 } }, "stdlib/threads.agency:listThreads": { "1": { "line": 129, "col": 2 }, "2": { "line": 130, "col": 2 }, "3": { "line": 133, "col": 2 }, "4": { "line": 134, "col": 2 }, "5": { "line": 167, "col": 2 }, "2.0": { "line": 131, "col": 4 }, "4.0": { "line": 135, "col": 4 }, "4.1.1.0": { "line": 141, "col": 8 }, "4.1.1.1": { "line": 143, "col": 8 }, "4.1.1": { "line": 140, "col": 6 }, "4.1.3.0": { "line": 150, "col": 8 }, "4.1.3.1": { "line": 152, "col": 8 }, "4.1.3.2": { "line": 154, "col": 8 }, "4.1.3": { "line": 149, "col": 6 }, "4.1": { "line": 136, "col": 4 }, "4.2": { "line": 157, "col": 4 } }, "stdlib/threads.agency:currentThreadId": { "1": { "line": 177, "col": 2 } }, "stdlib/threads.agency:getThread": { "1": { "line": 196, "col": 2 } } };
1019
- export {
1020
- ThreadInfo,
1021
- ThreadMessage,
1022
- __getCheckpoints,
1023
- __invokeFunction,
1024
- __setDebugger,
1025
- __setLLMClient,
1026
- __setTraceFile,
1027
- __sourceMap,
1028
- __toolRegistry,
1029
- approve,
1030
- currentThreadId,
1031
- stdin_default as default,
1032
- getThread,
1033
- hasInterrupts,
1034
- interrupt,
1035
- isDebugger,
1036
- isInterrupt,
1037
- listThreads,
1038
- reject,
1039
- respondToInterrupts,
1040
- rewindFrom
1041
- };