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.
- package/dist/lib/agents/agency-agent/agent.agency +169 -28
- package/dist/lib/agents/agency-agent/agent.js +579 -152
- package/dist/lib/agents/agency-agent/lib/attachments.js +2 -2
- package/dist/lib/agents/agency-agent/lib/config.agency +5 -0
- package/dist/lib/agents/agency-agent/lib/config.js +11 -0
- package/dist/lib/agents/agency-agent/lib/defaultPolicy.agency +106 -0
- package/dist/lib/agents/agency-agent/lib/defaultPolicy.js +764 -3
- package/dist/lib/agents/agency-agent/lib/modelFilters.js +1 -1
- package/dist/lib/agents/agency-agent/lib/resolution.js +4 -4
- package/dist/lib/agents/agency-agent/lib/search.js +3 -3
- package/dist/lib/agents/agency-agent/lib/settings.js +1 -1
- package/dist/lib/agents/agency-agent/lib/utils.js +1 -1
- package/dist/lib/agents/agency-agent/shared.agency +22 -0
- package/dist/lib/agents/agency-agent/shared.js +160 -3
- package/dist/lib/agents/agency-agent/subagents/code.js +1 -1
- package/dist/lib/agents/agency-agent/subagents/explorer.js +1 -1
- package/dist/lib/agents/agency-agent/subagents/oracle.js +1 -1
- package/dist/lib/agents/agency-agent/subagents/research.js +1 -1
- package/dist/lib/agents/agency-agent/subagents/review.js +4 -4
- package/dist/lib/agents/agency-agent/tests/agentTurn.js +1 -1
- package/dist/lib/agents/agency-agent/tests/attachments.js +1 -1
- package/dist/lib/agents/agency-agent/tests/attachmentsTurn.js +2 -2
- package/dist/lib/agents/agency-agent/tests/gitPolicy.js +3 -3
- package/dist/lib/agents/agency-agent/tests/oneShotRounds.agency +20 -0
- package/dist/lib/agents/agency-agent/tests/oneShotRounds.js +555 -0
- package/dist/lib/agents/agency-agent/tests/oneShotRounds.test.json +9 -0
- package/dist/lib/agents/review/agent.js +3 -3
- package/dist/lib/cli/doctor.d.ts +8 -0
- package/dist/lib/cli/doctor.js +21 -13
- package/dist/lib/cli/doctor.test.js +34 -0
- package/dist/lib/cli/help.js +1 -5
- package/dist/lib/cli/runBundledAgent.d.ts +17 -1
- package/dist/lib/cli/runBundledAgent.js +73 -2
- package/dist/lib/cli/runBundledAgent.test.d.ts +1 -0
- package/dist/lib/cli/runBundledAgent.test.js +96 -0
- package/dist/lib/config.d.ts +42 -33
- package/dist/lib/config.js +108 -6
- package/dist/lib/config.test.js +121 -2
- package/dist/lib/ir/prettyPrint.js +25 -4
- package/dist/lib/parseCache.js +8 -13
- package/dist/lib/parseCache.test.js +5 -8
- package/dist/lib/parser.js +5 -12
- package/dist/lib/preprocessors/typescriptPreprocessor.d.ts +0 -28
- package/dist/lib/preprocessors/typescriptPreprocessor.js +0 -245
- package/dist/lib/runtime/configOverrides.d.ts +17 -16
- package/dist/lib/runtime/configOverrides.js +27 -16
- package/dist/lib/runtime/configOverrides.test.js +116 -2
- package/dist/lib/runtime/prompt.js +7 -3
- package/dist/lib/runtime/runner.d.ts +2 -2
- package/dist/lib/runtime/runner.js +26 -7
- package/dist/lib/runtime/state/context.js +9 -2
- package/dist/lib/stdlib/llm.d.ts +1 -0
- package/dist/lib/stdlib/version.d.ts +1 -1
- package/dist/lib/stdlib/version.js +1 -1
- package/dist/scripts/agency.d.ts +2 -0
- package/dist/scripts/agency.js +55 -12
- package/dist/scripts/agency.test.js +73 -1
- package/package.json +1 -1
- package/stdlib/agency/eval.js +1 -1
- package/stdlib/agency.js +1 -1
- package/stdlib/agent.agency +9 -9
- package/stdlib/agent.js +5 -5
- package/stdlib/data/tech/hackernews.js +1 -1
- package/stdlib/index.js +15 -15
- package/stdlib/llm.agency +2 -1
- package/stdlib/llm.js +3 -3
- package/stdlib/markdown.js +1 -1
- package/stdlib/memory.js +2 -2
- package/stdlib/object.js +5 -5
- package/stdlib/policy.agency +21 -7
- package/stdlib/policy.js +45 -16
- package/stdlib/skills.js +1 -1
- package/stdlib/strategy.js +3 -3
- package/stdlib/thread.js +3 -3
- package/stdlib/ui/chart.js +2 -2
- package/stdlib/ui/cli.agency +1 -1
- package/stdlib/ui/cli.js +1 -1
- package/stdlib/ui/layout.js +3 -3
- package/stdlib/ui/table.js +2 -2
- package/stdlib/ui.js +3 -3
- package/dist/lib/agents/docs/cli/cli/agent.md +0 -16
- package/dist/lib/agents/docs/cli/cli/compile.md +0 -21
- package/dist/lib/agents/docs/cli/cli/coverage.md +0 -112
- package/dist/lib/agents/docs/cli/cli/debug.md +0 -41
- package/dist/lib/agents/docs/cli/cli/doc.md +0 -98
- package/dist/lib/agents/docs/cli/cli/editor-integration.md +0 -44
- package/dist/lib/agents/docs/cli/cli/eval-judge.md +0 -72
- package/dist/lib/agents/docs/cli/cli/eval.md +0 -194
- package/dist/lib/agents/docs/cli/cli/format.md +0 -23
- package/dist/lib/agents/docs/cli/cli/index.md +0 -7
- package/dist/lib/agents/docs/cli/cli/local.md +0 -92
- package/dist/lib/agents/docs/cli/cli/models.md +0 -63
- package/dist/lib/agents/docs/cli/cli/optimize.md +0 -338
- package/dist/lib/agents/docs/cli/cli/pack.md +0 -56
- package/dist/lib/agents/docs/cli/cli/policy.md +0 -23
- package/dist/lib/agents/docs/cli/cli/preprocess-and-ast.md +0 -21
- package/dist/lib/agents/docs/cli/cli/review.md +0 -16
- package/dist/lib/agents/docs/cli/cli/run.md +0 -79
- package/dist/lib/agents/docs/cli/cli/schedule.md +0 -89
- package/dist/lib/agents/docs/cli/cli/serve.md +0 -52
- package/dist/lib/agents/docs/cli/cli/test.md +0 -44
- package/dist/lib/agents/docs/cli/cli/trace-and-bundle.md +0 -75
- package/dist/lib/agents/docs/cli/cli/typecheck.md +0 -19
- package/dist/lib/agents/docs/guide/guide/advanced-types.md +0 -26
- package/dist/lib/agents/docs/guide/guide/agency-config-file.md +0 -212
- package/dist/lib/agents/docs/guide/guide/agency-packages.md +0 -54
- package/dist/lib/agents/docs/guide/guide/agency-stdlib.md +0 -14
- package/dist/lib/agents/docs/guide/guide/agency-vs-typescript.md +0 -33
- package/dist/lib/agents/docs/guide/guide/attachments.md +0 -56
- package/dist/lib/agents/docs/guide/guide/basic-syntax.md +0 -350
- package/dist/lib/agents/docs/guide/guide/blocks.md +0 -134
- package/dist/lib/agents/docs/guide/guide/build-integration.md +0 -99
- package/dist/lib/agents/docs/guide/guide/builtins.md +0 -84
- package/dist/lib/agents/docs/guide/guide/callbacks.md +0 -169
- package/dist/lib/agents/docs/guide/guide/checkpointing.md +0 -101
- package/dist/lib/agents/docs/guide/guide/cli-args.md +0 -190
- package/dist/lib/agents/docs/guide/guide/common-functions.md +0 -36
- package/dist/lib/agents/docs/guide/guide/compiling-and-running.md +0 -62
- package/dist/lib/agents/docs/guide/guide/concurrency.md +0 -108
- package/dist/lib/agents/docs/guide/guide/cross-thread-context.md +0 -226
- package/dist/lib/agents/docs/guide/guide/custom-providers.md +0 -195
- package/dist/lib/agents/docs/guide/guide/debugging.md +0 -67
- package/dist/lib/agents/docs/guide/guide/developer-tools.md +0 -90
- package/dist/lib/agents/docs/guide/guide/effects-and-raises.md +0 -137
- package/dist/lib/agents/docs/guide/guide/effects.md +0 -100
- package/dist/lib/agents/docs/guide/guide/error-handling.md +0 -161
- package/dist/lib/agents/docs/guide/guide/exercise-1.md +0 -32
- package/dist/lib/agents/docs/guide/guide/functions.md +0 -94
- package/dist/lib/agents/docs/guide/guide/getting-started.md +0 -35
- package/dist/lib/agents/docs/guide/guide/global-var-initialization.md +0 -70
- package/dist/lib/agents/docs/guide/guide/global-vs-static.md +0 -76
- package/dist/lib/agents/docs/guide/guide/guards.md +0 -134
- package/dist/lib/agents/docs/guide/guide/handlers.md +0 -196
- package/dist/lib/agents/docs/guide/guide/image-generation.md +0 -113
- package/dist/lib/agents/docs/guide/guide/imports-and-packages.md +0 -100
- package/dist/lib/agents/docs/guide/guide/interrupts-from-typescript.md +0 -84
- package/dist/lib/agents/docs/guide/guide/interrupts-part-2.md +0 -54
- package/dist/lib/agents/docs/guide/guide/interrupts.md +0 -139
- package/dist/lib/agents/docs/guide/guide/llm-part-2.md +0 -111
- package/dist/lib/agents/docs/guide/guide/llm.md +0 -109
- package/dist/lib/agents/docs/guide/guide/mcp.md +0 -295
- package/dist/lib/agents/docs/guide/guide/memory.md +0 -401
- package/dist/lib/agents/docs/guide/guide/message-threads.md +0 -111
- package/dist/lib/agents/docs/guide/guide/nodes.md +0 -50
- package/dist/lib/agents/docs/guide/guide/observability.md +0 -99
- package/dist/lib/agents/docs/guide/guide/partial-application.md +0 -96
- package/dist/lib/agents/docs/guide/guide/pattern-matching.md +0 -366
- package/dist/lib/agents/docs/guide/guide/policies.md +0 -67
- package/dist/lib/agents/docs/guide/guide/schema-parameter-injection.md +0 -101
- package/dist/lib/agents/docs/guide/guide/schemas.md +0 -99
- package/dist/lib/agents/docs/guide/guide/serving.md +0 -165
- package/dist/lib/agents/docs/guide/guide/state-isolation.md +0 -139
- package/dist/lib/agents/docs/guide/guide/streaming.md +0 -28
- package/dist/lib/agents/docs/guide/guide/tags.md +0 -72
- package/dist/lib/agents/docs/guide/guide/testing.md +0 -187
- package/dist/lib/agents/docs/guide/guide/troubleshooting.md +0 -86
- package/dist/lib/agents/docs/guide/guide/ts-helpers.md +0 -559
- package/dist/lib/agents/docs/guide/guide/ts-interop.md +0 -72
- package/dist/lib/agents/docs/guide/guide/type-validation.md +0 -187
- package/dist/lib/agents/docs/guide/guide/types.md +0 -181
- package/dist/lib/agents/docs/guide/guide/unused.md +0 -178
- package/dist/lib/agents/docs/guide/guide/unused2.md +0 -258
- package/dist/lib/agents/docs/guide/guide/value-parameterized-types.md +0 -186
- package/dist/lib/agents/docs/guide/guide/vscode-extension.md +0 -33
- package/dist/lib/agents/docs/guide/guide/why-agency.md +0 -323
- package/dist/lib/preprocessors/typescriptPreprocessor.config.test.js +0 -327
- package/stdlib/browser.js +0 -421
- package/stdlib/chart.js +0 -983
- package/stdlib/cli.js +0 -1116
- package/stdlib/email.js +0 -1104
- package/stdlib/imessage.js +0 -377
- package/stdlib/keyring.js +0 -803
- package/stdlib/layout.js +0 -3657
- package/stdlib/oauth.js +0 -862
- package/stdlib/schemas.js +0 -223
- package/stdlib/search.js +0 -629
- package/stdlib/sms.js +0 -419
- package/stdlib/table.js +0 -1419
- package/stdlib/threads.js +0 -1041
- package/stdlib/types.js +0 -222
- package/stdlib/validators.js +0 -1606
- /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
|
-
};
|