experimental-ash 0.2.0-alpha.21 → 0.2.0-alpha.22
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/src/channel/slack-channel.d.ts +14 -7
- package/dist/src/channel/slack-channel.d.ts.map +1 -1
- package/dist/src/channel/slack-channel.js +21 -11
- package/dist/src/channel/slack-channel.js.map +1 -1
- package/dist/src/channel/types.d.ts +14 -14
- package/dist/src/channel/types.d.ts.map +1 -1
- package/dist/src/channel/types.js +6 -0
- package/dist/src/channel/types.js.map +1 -1
- package/dist/src/context/accessors.d.ts +24 -10
- package/dist/src/context/accessors.d.ts.map +1 -1
- package/dist/src/context/accessors.js +34 -16
- package/dist/src/context/accessors.js.map +1 -1
- package/dist/src/context/container.d.ts +43 -20
- package/dist/src/context/container.d.ts.map +1 -1
- package/dist/src/context/container.js +54 -22
- package/dist/src/context/container.js.map +1 -1
- package/dist/src/context/key.d.ts +68 -39
- package/dist/src/context/key.d.ts.map +1 -1
- package/dist/src/context/key.js +49 -62
- package/dist/src/context/key.js.map +1 -1
- package/dist/src/context/keys.d.ts +6 -6
- package/dist/src/context/keys.d.ts.map +1 -1
- package/dist/src/context/keys.js +7 -9
- package/dist/src/context/keys.js.map +1 -1
- package/dist/src/context/node.d.ts +2 -2
- package/dist/src/context/node.d.ts.map +1 -1
- package/dist/src/context/node.js +1 -1
- package/dist/src/context/node.js.map +1 -1
- package/dist/src/context/provider.d.ts +24 -11
- package/dist/src/context/provider.d.ts.map +1 -1
- package/dist/src/context/providers/connection.d.ts +2 -2
- package/dist/src/context/providers/connection.d.ts.map +1 -1
- package/dist/src/context/providers/connection.js +1 -1
- package/dist/src/context/providers/connection.js.map +1 -1
- package/dist/src/context/providers/sandbox.d.ts +2 -2
- package/dist/src/context/providers/sandbox.d.ts.map +1 -1
- package/dist/src/context/providers/sandbox.js +2 -2
- package/dist/src/context/providers/sandbox.js.map +1 -1
- package/dist/src/context/providers/session.d.ts +2 -2
- package/dist/src/context/providers/session.d.ts.map +1 -1
- package/dist/src/context/providers/session.js +4 -4
- package/dist/src/context/providers/session.js.map +1 -1
- package/dist/src/context/providers/skill.d.ts +2 -2
- package/dist/src/context/providers/skill.d.ts.map +1 -1
- package/dist/src/context/providers/skill.js +2 -2
- package/dist/src/context/providers/skill.js.map +1 -1
- package/dist/src/context/run-step.d.ts +9 -8
- package/dist/src/context/run-step.d.ts.map +1 -1
- package/dist/src/context/run-step.js +32 -22
- package/dist/src/context/run-step.js.map +1 -1
- package/dist/src/context/seed-keys.d.ts +7 -7
- package/dist/src/context/seed-keys.d.ts.map +1 -1
- package/dist/src/context/seed-keys.js +7 -19
- package/dist/src/context/seed-keys.js.map +1 -1
- package/dist/src/context/serialize.d.ts +10 -9
- package/dist/src/context/serialize.d.ts.map +1 -1
- package/dist/src/context/serialize.js +18 -30
- package/dist/src/context/serialize.js.map +1 -1
- package/dist/src/execution/continuous-entry.d.ts +8 -6
- package/dist/src/execution/continuous-entry.d.ts.map +1 -1
- package/dist/src/execution/continuous-entry.js +27 -25
- package/dist/src/execution/continuous-entry.js.map +1 -1
- package/dist/src/execution/continuous-runtime.d.ts.map +1 -1
- package/dist/src/execution/continuous-runtime.js +1 -4
- package/dist/src/execution/continuous-runtime.js.map +1 -1
- package/dist/src/execution/node-step.js +1 -0
- package/dist/src/execution/node-step.js.map +1 -1
- package/dist/src/execution/runtime-context.d.ts +3 -3
- package/dist/src/execution/runtime-context.d.ts.map +1 -1
- package/dist/src/execution/runtime-context.js +3 -3
- package/dist/src/execution/runtime-context.js.map +1 -1
- package/dist/src/execution/sandboxes/read-file-tool.js +2 -2
- package/dist/src/execution/sandboxes/read-file-tool.js.map +1 -1
- package/dist/src/execution/sandboxes/require-sandbox.js +2 -2
- package/dist/src/execution/sandboxes/require-sandbox.js.map +1 -1
- package/dist/src/execution/sandboxes/write-file-tool.d.ts.map +1 -1
- package/dist/src/execution/sandboxes/write-file-tool.js +3 -3
- package/dist/src/execution/sandboxes/write-file-tool.js.map +1 -1
- package/dist/src/execution/subagent-tool.js +6 -6
- package/dist/src/execution/subagent-tool.js.map +1 -1
- package/dist/src/execution/tool-compaction.d.ts +3 -1
- package/dist/src/execution/tool-compaction.d.ts.map +1 -1
- package/dist/src/execution/tool-compaction.js +19 -8
- package/dist/src/execution/tool-compaction.js.map +1 -1
- package/dist/src/execution/types.d.ts +1 -0
- package/dist/src/execution/types.d.ts.map +1 -1
- package/dist/src/execution/workflow-entry.d.ts +5 -4
- package/dist/src/execution/workflow-entry.d.ts.map +1 -1
- package/dist/src/execution/workflow-entry.js +8 -3
- package/dist/src/execution/workflow-entry.js.map +1 -1
- package/dist/src/execution/workflow-runtime.d.ts.map +1 -1
- package/dist/src/execution/workflow-runtime.js +2 -3
- package/dist/src/execution/workflow-runtime.js.map +1 -1
- package/dist/src/execution/workflow-steps.d.ts +2 -2
- package/dist/src/execution/workflow-steps.d.ts.map +1 -1
- package/dist/src/execution/workflow-steps.js +42 -17
- package/dist/src/execution/workflow-steps.js.map +1 -1
- package/dist/src/harness/emission.d.ts +1 -1
- package/dist/src/harness/emission.js +3 -3
- package/dist/src/harness/emission.js.map +1 -1
- package/dist/src/harness/execute-tool.d.ts +1 -0
- package/dist/src/harness/execute-tool.d.ts.map +1 -1
- package/dist/src/harness/execute-tool.js.map +1 -1
- package/dist/src/harness/input-requests.d.ts +2 -22
- package/dist/src/harness/input-requests.d.ts.map +1 -1
- package/dist/src/harness/input-requests.js +47 -41
- package/dist/src/harness/input-requests.js.map +1 -1
- package/dist/src/harness/tool-loop.d.ts.map +1 -1
- package/dist/src/harness/tool-loop.js +19 -1
- package/dist/src/harness/tool-loop.js.map +1 -1
- package/dist/src/harness/tools.js +5 -1
- package/dist/src/harness/tools.js.map +1 -1
- package/dist/src/harness/types.d.ts +3 -15
- package/dist/src/harness/types.d.ts.map +1 -1
- package/dist/src/harness/types.js +1 -6
- package/dist/src/harness/types.js.map +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/connection.d.ts.map +1 -1
- package/dist/src/internal/authored-definition/connection.js +14 -1
- package/dist/src/internal/authored-definition/connection.js.map +1 -1
- package/dist/src/internal/nitro/routes/runtime-stack.d.ts +3 -3
- package/dist/src/internal/nitro/routes/runtime-stack.js +3 -3
- package/dist/src/public/channels/slack/index.d.ts +0 -5
- package/dist/src/public/channels/slack/index.d.ts.map +1 -1
- package/dist/src/public/channels/slack/index.js.map +1 -1
- package/dist/src/public/definitions/connections/mcp.d.ts +13 -0
- package/dist/src/public/definitions/connections/mcp.d.ts.map +1 -1
- package/dist/src/public/definitions/connections/mcp.js.map +1 -1
- package/dist/src/public/definitions/tool.d.ts +10 -6
- package/dist/src/public/definitions/tool.d.ts.map +1 -1
- package/dist/src/public/definitions/tool.js.map +1 -1
- package/dist/src/public/index.d.ts +2 -1
- package/dist/src/public/index.d.ts.map +1 -1
- package/dist/src/public/index.js +1 -1
- package/dist/src/public/index.js.map +1 -1
- package/dist/src/public/tools/defaults.d.ts +4 -4
- package/dist/src/public/tools/defaults.js +4 -4
- package/dist/src/runtime/connections/registry.d.ts +6 -0
- package/dist/src/runtime/connections/registry.d.ts.map +1 -1
- package/dist/src/runtime/connections/registry.js +8 -0
- package/dist/src/runtime/connections/registry.js.map +1 -1
- package/dist/src/runtime/connections/types.d.ts +2 -0
- package/dist/src/runtime/connections/types.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/connection-execute.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/connection-execute.js +17 -6
- package/dist/src/runtime/framework-tools/connection-execute.js.map +1 -1
- package/dist/src/runtime/framework-tools/connection-search.d.ts +2 -2
- package/dist/src/runtime/framework-tools/connection-search.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/connection-search.js +4 -4
- package/dist/src/runtime/framework-tools/connection-search.js.map +1 -1
- package/dist/src/runtime/framework-tools/file-state.d.ts +5 -7
- package/dist/src/runtime/framework-tools/file-state.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/file-state.js +4 -6
- package/dist/src/runtime/framework-tools/file-state.js.map +1 -1
- package/dist/src/runtime/framework-tools/skill.js +3 -3
- package/dist/src/runtime/framework-tools/skill.js.map +1 -1
- package/dist/src/runtime/framework-tools/todo.js +3 -3
- package/dist/src/runtime/framework-tools/todo.js.map +1 -1
- package/dist/src/runtime/prompt/connections.d.ts.map +1 -1
- package/dist/src/runtime/prompt/connections.js +3 -2
- package/dist/src/runtime/prompt/connections.js.map +1 -1
- package/dist/src/runtime/resolve-agent-graph.js +3 -2
- package/dist/src/runtime/resolve-agent-graph.js.map +1 -1
- package/dist/src/runtime/resolve-connection.d.ts.map +1 -1
- package/dist/src/runtime/resolve-connection.js +3 -0
- package/dist/src/runtime/resolve-connection.js.map +1 -1
- package/dist/src/runtime/sessions/auth.d.ts +1 -1
- package/dist/src/runtime/types.d.ts +13 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/docs/internals/context.md +257 -81
- package/docs/public/README.md +17 -19
- package/docs/public/channels/README.md +9 -3
- package/docs/public/session-context.md +95 -49
- package/docs/public/tools.md +25 -17
- package/docs/public/typescript-api.md +2 -6
- package/package.json +1 -1
- package/dist/src/context/durable-context.d.ts +0 -18
- package/dist/src/context/durable-context.d.ts.map +0 -1
- package/dist/src/context/durable-context.js +0 -49
- package/dist/src/context/durable-context.js.map +0 -1
- package/dist/src/execution/step-context.d.ts +0 -27
- package/dist/src/execution/step-context.d.ts.map +0 -1
- package/dist/src/execution/step-context.js +0 -54
- package/dist/src/execution/step-context.js.map +0 -1
- package/docs/public/migration-guide.md +0 -71
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { getWritable } from "workflow";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { toContextAccessor } from "../context/container.js";
|
|
3
|
+
import { AuthKey, BundleKey, ChannelKey, ModeKey } from "../context/keys.js";
|
|
4
|
+
import { runStep } from "../context/run-step.js";
|
|
5
|
+
import { deserializeContext, serializeContext } from "../context/serialize.js";
|
|
4
6
|
import { encodeMessageStreamEvent } from "../protocol/message.js";
|
|
5
7
|
import { getCompiledRuntimeAgentBundle } from "../runtime/sessions/compiled-agent-cache.js";
|
|
6
8
|
import { createExecutionNodeStep } from "./node-step.js";
|
|
7
9
|
import { createSession, refreshSessionFromTurnAgent } from "./session.js";
|
|
8
|
-
import { prepareStepContext, runStepWithChannelGuard } from "./step-context.js";
|
|
9
10
|
import { createWorkflowRuntime } from "./workflow-runtime.js";
|
|
10
11
|
/**
|
|
11
12
|
* Runs one atomic harness step inside a durable `"use step"` boundary.
|
|
@@ -22,21 +23,29 @@ import { createWorkflowRuntime } from "./workflow-runtime.js";
|
|
|
22
23
|
*/
|
|
23
24
|
export async function durableRunStep(serializedContext, session, input) {
|
|
24
25
|
"use step";
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
const ctx = await deserializeContext(serializedContext);
|
|
27
|
+
const channel = ctx.require(ChannelKey);
|
|
28
|
+
// Apply deliver-time auth if present. The auth traveled through
|
|
29
|
+
// resumeHook as JSON on the HookPayload. On the first turn (from
|
|
30
|
+
// run()), input carries no auth because it was already seeded by
|
|
31
|
+
// buildRunContext.
|
|
32
|
+
if (input?.auth !== undefined) {
|
|
33
|
+
ctx.set(AuthKey, input.auth ?? null);
|
|
34
|
+
}
|
|
35
|
+
// Run the channel's onDeliver hook — sets custom context keys and
|
|
36
|
+
// transforms the payload. Runs on both the initial run and delivers.
|
|
37
|
+
const resolved = input !== undefined
|
|
38
|
+
? await channel.onDeliver(toContextAccessor(ctx), input.payload)
|
|
39
|
+
: undefined;
|
|
31
40
|
const writable = getWritable();
|
|
32
41
|
const writer = writable.getWriter();
|
|
33
42
|
const emit = async (event) => {
|
|
34
43
|
const toEmit = await channel.onEvent(event);
|
|
35
44
|
await writer.write(encodeMessageStreamEvent(toEmit));
|
|
36
45
|
};
|
|
37
|
-
const stepResult = await
|
|
38
|
-
const bundle = ctx.
|
|
39
|
-
const mode = ctx.
|
|
46
|
+
const stepResult = await runStep(ctx, session, async (enrichedSession) => {
|
|
47
|
+
const bundle = ctx.require(BundleKey);
|
|
48
|
+
const mode = ctx.require(ModeKey);
|
|
40
49
|
const refreshedSession = refreshSessionFromTurnAgent({
|
|
41
50
|
compactionOverrides: {
|
|
42
51
|
thresholdPercent: bundle.resolvedAgent.config.compaction?.thresholdPercent,
|
|
@@ -53,19 +62,35 @@ export async function durableRunStep(serializedContext, session, input) {
|
|
|
53
62
|
});
|
|
54
63
|
return await step(refreshedSession, resolved);
|
|
55
64
|
});
|
|
56
|
-
|
|
65
|
+
const nextSerializedContext = serializeContext(ctx);
|
|
66
|
+
if (stepResult.next !== null &&
|
|
67
|
+
typeof stepResult.next === "object" &&
|
|
68
|
+
"done" in stepResult.next) {
|
|
57
69
|
await writer.close();
|
|
58
|
-
return {
|
|
70
|
+
return {
|
|
71
|
+
action: "done",
|
|
72
|
+
output: stepResult.next.output,
|
|
73
|
+
serializedContext: nextSerializedContext,
|
|
74
|
+
session: stepResult.session,
|
|
75
|
+
};
|
|
59
76
|
}
|
|
60
77
|
if (stepResult.next === null) {
|
|
61
78
|
writer.releaseLock();
|
|
62
|
-
return {
|
|
79
|
+
return {
|
|
80
|
+
action: "park",
|
|
81
|
+
serializedContext: nextSerializedContext,
|
|
82
|
+
session: stepResult.session,
|
|
83
|
+
};
|
|
63
84
|
}
|
|
64
85
|
writer.releaseLock();
|
|
65
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
action: "continue",
|
|
88
|
+
serializedContext: nextSerializedContext,
|
|
89
|
+
session: stepResult.session,
|
|
90
|
+
};
|
|
66
91
|
}
|
|
67
92
|
/**
|
|
68
|
-
* Creates the durable
|
|
93
|
+
* Creates the durable session state inside a step boundary before the
|
|
69
94
|
* workflow enters its long-lived turn loop.
|
|
70
95
|
*
|
|
71
96
|
* The optional `nodeSelector` targets a specific node in the compiled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-steps.js","sourceRoot":"","sources":["../../../src/execution/workflow-steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-steps.js","sourceRoot":"","sources":["../../../src/execution/workflow-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import type { HarnessEmitFn, HarnessSession, StepInput } from "./types.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* Tracks emission lifecycle state across harness step invocations.
|
|
8
8
|
*
|
|
9
|
-
* Persisted on `session.
|
|
9
|
+
* Persisted on `session.state` so the state survives when the durable
|
|
10
10
|
* workflow runtime recreates the harness at each `"use step"` boundary.
|
|
11
11
|
*/
|
|
12
12
|
export interface HarnessEmissionState {
|
|
@@ -10,7 +10,7 @@ const DEFAULT_EMISSION_STATE = {
|
|
|
10
10
|
* Reads the emission state from the session, returning defaults when absent.
|
|
11
11
|
*/
|
|
12
12
|
export function getHarnessEmissionState(session) {
|
|
13
|
-
const emissionState = session.
|
|
13
|
+
const emissionState = session.state?.[HARNESS_EMISSION_STATE_KEY];
|
|
14
14
|
return emissionState ?? DEFAULT_EMISSION_STATE;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
@@ -19,8 +19,8 @@ export function getHarnessEmissionState(session) {
|
|
|
19
19
|
export function setHarnessEmissionState(session, state) {
|
|
20
20
|
return {
|
|
21
21
|
...session,
|
|
22
|
-
|
|
23
|
-
...session.
|
|
22
|
+
state: {
|
|
23
|
+
...session.state,
|
|
24
24
|
[HARNESS_EMISSION_STATE_KEY]: state,
|
|
25
25
|
},
|
|
26
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emission.js","sourceRoot":"","sources":["../../../src/harness/emission.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAsBhC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,MAAM,sBAAsB,GAAyB;IACnD,cAAc,EAAE,KAAK;IACrB,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,EAAE;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAuB;IAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"emission.js","sourceRoot":"","sources":["../../../src/harness/emission.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import type { StandardSchemaValidator } from "../runtime/standard-schema.js";
|
|
|
17
17
|
* harness surfaces them to the model but does not execute them locally.
|
|
18
18
|
*/
|
|
19
19
|
export interface HarnessToolDefinition {
|
|
20
|
+
readonly approvalKey?: (toolInput: Readonly<Record<string, unknown>>) => string;
|
|
20
21
|
readonly description: string;
|
|
21
22
|
readonly execute?: (input: unknown) => Promise<unknown> | unknown;
|
|
22
23
|
readonly inputSchema: JsonValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-tool.d.ts","sourceRoot":"","sources":["../../../src/harness/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAM7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;CACjE,EACD,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC,CA8C9B"}
|
|
1
|
+
{"version":3,"file":"execute-tool.d.ts","sourceRoot":"","sources":["../../../src/harness/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAM7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC;IAChF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;CACjE,EACD,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC,CA8C9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-tool.js","sourceRoot":"","sources":["../../../src/harness/execute-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"execute-tool.js","sourceRoot":"","sources":["../../../src/harness/execute-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAkCvC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAEC,EACD,KAAc;IAEd,IAAI,WAAW,GAAY,KAAK,CAAC;IAEjC,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,gBAAyE,CAAC;QAE9E,IAAI,CAAC;YACH,gBAAgB,GAAG,MAAM,2BAA2B,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC;gBAClC,EAAE,EAAE,KAAK;aACV,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,SAAS,UAAU,CAAC,IAAI,6BAA6B,0BAA0B,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG;gBACpH,EAAE,EAAE,KAAK;aACV,CAAC;QACJ,CAAC;QAED,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAErD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE,SAAS,UAAU,CAAC,IAAI,2CAA2C;gBAC5E,EAAE,EAAE,KAAK;aACV,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC;YAClC,EAAE,EAAE,KAAK;SACV,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,34 +1,14 @@
|
|
|
1
1
|
import type { ModelMessage, ToolSet, TypedToolCall } from "ai";
|
|
2
|
-
import type { AshContext } from "../context/container.js";
|
|
3
|
-
import { RuntimeContextKey } from "../context/key.js";
|
|
4
2
|
import type { RuntimeToolCallActionRequest } from "../runtime/actions/types.js";
|
|
5
3
|
import type { InputRequest } from "../runtime/input/types.js";
|
|
6
4
|
import type { HarnessSession, StepInput } from "./types.js";
|
|
7
|
-
export declare const PendingInputRequestsKey: RuntimeContextKey<readonly {
|
|
8
|
-
action: {
|
|
9
|
-
callId: string;
|
|
10
|
-
input: import("../runtime/json.js").JsonObject;
|
|
11
|
-
kind: "tool-call";
|
|
12
|
-
toolName: string;
|
|
13
|
-
};
|
|
14
|
-
prompt: string;
|
|
15
|
-
requestId: string;
|
|
16
|
-
allowFreeform?: boolean | undefined;
|
|
17
|
-
display?: "confirmation" | "select" | "text" | undefined;
|
|
18
|
-
options?: readonly {
|
|
19
|
-
id: string;
|
|
20
|
-
label: string;
|
|
21
|
-
description?: string | undefined;
|
|
22
|
-
style?: "default" | "primary" | "danger" | undefined;
|
|
23
|
-
}[] | undefined;
|
|
24
|
-
}[]>;
|
|
25
5
|
/**
|
|
26
6
|
* Returns true when the step input carries user-facing turn input.
|
|
27
7
|
*/
|
|
28
8
|
export declare function hasStepInput(input?: StepInput): boolean;
|
|
29
9
|
/**
|
|
30
10
|
* Merges any queued follow-up input into the current step input and clears it
|
|
31
|
-
* from
|
|
11
|
+
* from session state.
|
|
32
12
|
*
|
|
33
13
|
* Used when the harness has to process a pending tool-approval response first
|
|
34
14
|
* and defer the user's new message to the next internal model step.
|
|
@@ -68,6 +48,7 @@ export declare function hasDeferredStepInput(session: HarnessSession): boolean;
|
|
|
68
48
|
* {@link consumeDeferredStepInput}.
|
|
69
49
|
*/
|
|
70
50
|
export declare function resolvePendingInput(input: {
|
|
51
|
+
readonly resolveApprovalKey?: (request: InputRequest) => string | undefined;
|
|
71
52
|
readonly session: HarnessSession;
|
|
72
53
|
readonly stepInput?: StepInput;
|
|
73
54
|
}): ResolvePendingInputResult;
|
|
@@ -77,7 +58,6 @@ export type ResolvePendingInputResult = {
|
|
|
77
58
|
readonly messages: ModelMessage[];
|
|
78
59
|
readonly session: HarnessSession;
|
|
79
60
|
};
|
|
80
|
-
export declare function seedPendingInputRequestsContext(ctx: AshContext, session: HarnessSession): void;
|
|
81
61
|
/**
|
|
82
62
|
* Stores one pending HITL batch on the session until the user responds.
|
|
83
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-requests.d.ts","sourceRoot":"","sources":["../../../src/harness/input-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"input-requests.d.ts","sourceRoot":"","sources":["../../../src/harness/input-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAE/D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AAG7E,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkB5D;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAMvD;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,GAAG;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAoBA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAErE;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC,GAAG,yBAAyB,CAyE5B;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AAsBF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,YAAY,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,GAAG,cAAc,CAQjB;AAmDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAQ7E;AAyFD;;GAEG;AACH,wBAAgB,uCAAuC,CAAC,KAAK,EAAE;IAC7D,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC3C,GAAG,4BAA4B,CAO/B"}
|
|
@@ -1,28 +1,9 @@
|
|
|
1
|
-
import { RuntimeContextKey } from "../context/key.js";
|
|
2
1
|
import { jsonObjectSchema } from "../runtime/json.js";
|
|
3
2
|
import { coalesceTurnInputs } from "./messages.js";
|
|
4
3
|
const PENDING_INPUT_BATCH_KEY = "ash.runtime.pendingInputBatch";
|
|
5
4
|
const APPROVED_TOOLS_KEY = "ash.runtime.hitl.approvedTools";
|
|
6
5
|
const DEFERRED_STEP_INPUT_KEY = "ash.runtime.deferredStepInput";
|
|
7
6
|
const IGNORED_INPUT_REASON = "Ignored because the user continued without responding.";
|
|
8
|
-
// ---------------------------------------------------------------------------
|
|
9
|
-
// Internal session slot helpers — avoid repeating the clone-and-update pattern
|
|
10
|
-
// ---------------------------------------------------------------------------
|
|
11
|
-
function setInternalSlot(session, key, value) {
|
|
12
|
-
return { ...session, internal: { ...session.internal, [key]: value } };
|
|
13
|
-
}
|
|
14
|
-
function clearInternalSlot(session, key) {
|
|
15
|
-
if (session.internal?.[key] === undefined) {
|
|
16
|
-
return session;
|
|
17
|
-
}
|
|
18
|
-
const internal = { ...session.internal };
|
|
19
|
-
delete internal[key];
|
|
20
|
-
return {
|
|
21
|
-
...session,
|
|
22
|
-
internal: Object.keys(internal).length > 0 ? internal : undefined,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export const PendingInputRequestsKey = new RuntimeContextKey("ash.runtime.pendingInputRequests");
|
|
26
7
|
/**
|
|
27
8
|
* Returns true when the step input carries user-facing turn input.
|
|
28
9
|
*/
|
|
@@ -37,7 +18,7 @@ export function hasStepInput(input) {
|
|
|
37
18
|
// ---------------------------------------------------------------------------
|
|
38
19
|
/**
|
|
39
20
|
* Merges any queued follow-up input into the current step input and clears it
|
|
40
|
-
* from
|
|
21
|
+
* from session state.
|
|
41
22
|
*
|
|
42
23
|
* Used when the harness has to process a pending tool-approval response first
|
|
43
24
|
* and defer the user's new message to the next internal model step.
|
|
@@ -123,7 +104,12 @@ export function resolvePendingInput(input) {
|
|
|
123
104
|
return { outcome: "resolved", messages, session };
|
|
124
105
|
}
|
|
125
106
|
// Record approved tools before clearing the batch.
|
|
126
|
-
session = recordApprovedTools({
|
|
107
|
+
session = recordApprovedTools({
|
|
108
|
+
pendingBatch,
|
|
109
|
+
resolveApprovalKey: input.resolveApprovalKey,
|
|
110
|
+
responses,
|
|
111
|
+
session,
|
|
112
|
+
});
|
|
127
113
|
// Build tool result messages from responses.
|
|
128
114
|
const toolParts = buildToolResponseParts(pendingBatch, responses);
|
|
129
115
|
const messages = [...session.history, ...pendingBatch.responseMessages];
|
|
@@ -147,7 +133,7 @@ export function resolvePendingInput(input) {
|
|
|
147
133
|
// Pending batch management
|
|
148
134
|
// ---------------------------------------------------------------------------
|
|
149
135
|
function getPendingInputBatch(session) {
|
|
150
|
-
const value = session.
|
|
136
|
+
const value = session.state?.[PENDING_INPUT_BATCH_KEY];
|
|
151
137
|
if (typeof value !== "object" || value === null) {
|
|
152
138
|
return undefined;
|
|
153
139
|
}
|
|
@@ -157,38 +143,51 @@ function getPendingInputBatch(session) {
|
|
|
157
143
|
}
|
|
158
144
|
return batch;
|
|
159
145
|
}
|
|
160
|
-
export function seedPendingInputRequestsContext(ctx, session) {
|
|
161
|
-
const pendingBatch = getPendingInputBatch(session);
|
|
162
|
-
if (pendingBatch === undefined) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
ctx.set(PendingInputRequestsKey, pendingBatch.requests);
|
|
166
|
-
}
|
|
167
146
|
/**
|
|
168
147
|
* Stores one pending HITL batch on the session until the user responds.
|
|
169
148
|
*/
|
|
170
149
|
export function setPendingInputBatch(input) {
|
|
171
|
-
|
|
150
|
+
const state = { ...(input.session.state ?? {}) };
|
|
151
|
+
state[PENDING_INPUT_BATCH_KEY] = {
|
|
172
152
|
requests: [...input.requests],
|
|
173
153
|
responseMessages: [...input.responseMessages],
|
|
174
|
-
}
|
|
154
|
+
};
|
|
155
|
+
return { ...input.session, state };
|
|
175
156
|
}
|
|
176
157
|
function clearPendingInputBatch(session) {
|
|
177
|
-
|
|
158
|
+
if (session.state?.[PENDING_INPUT_BATCH_KEY] === undefined) {
|
|
159
|
+
return session;
|
|
160
|
+
}
|
|
161
|
+
const state = { ...(session.state ?? {}) };
|
|
162
|
+
delete state[PENDING_INPUT_BATCH_KEY];
|
|
163
|
+
return { ...session, state: Object.keys(state).length > 0 ? state : undefined };
|
|
178
164
|
}
|
|
179
165
|
// ---------------------------------------------------------------------------
|
|
180
166
|
// Deferred step input state
|
|
181
167
|
// ---------------------------------------------------------------------------
|
|
182
168
|
function getDeferredStepInput(session) {
|
|
183
|
-
return session.
|
|
169
|
+
return session.state?.[DEFERRED_STEP_INPUT_KEY];
|
|
184
170
|
}
|
|
185
171
|
function queueDeferredStepInput(session, input) {
|
|
186
172
|
const existing = getDeferredStepInput(session);
|
|
187
173
|
const deferredInput = existing === undefined ? input : coalesceTurnInputs(existing, input);
|
|
188
|
-
|
|
174
|
+
const state = { ...(session.state ?? {}) };
|
|
175
|
+
state[DEFERRED_STEP_INPUT_KEY] = deferredInput;
|
|
176
|
+
return {
|
|
177
|
+
...session,
|
|
178
|
+
state,
|
|
179
|
+
};
|
|
189
180
|
}
|
|
190
181
|
function clearDeferredStepInput(session) {
|
|
191
|
-
|
|
182
|
+
if (session.state?.[DEFERRED_STEP_INPUT_KEY] === undefined) {
|
|
183
|
+
return session;
|
|
184
|
+
}
|
|
185
|
+
const state = { ...(session.state ?? {}) };
|
|
186
|
+
delete state[DEFERRED_STEP_INPUT_KEY];
|
|
187
|
+
return {
|
|
188
|
+
...session,
|
|
189
|
+
state: Object.keys(state).length > 0 ? state : undefined,
|
|
190
|
+
};
|
|
192
191
|
}
|
|
193
192
|
// ---------------------------------------------------------------------------
|
|
194
193
|
// Approval tracking
|
|
@@ -198,23 +197,30 @@ function clearDeferredStepInput(session) {
|
|
|
198
197
|
* during this session.
|
|
199
198
|
*/
|
|
200
199
|
export function getApprovedTools(session) {
|
|
201
|
-
const value = session.
|
|
200
|
+
const value = session.state?.[APPROVED_TOOLS_KEY];
|
|
202
201
|
if (!Array.isArray(value)) {
|
|
203
202
|
return new Set();
|
|
204
203
|
}
|
|
205
204
|
return new Set(value);
|
|
206
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Resolves the approval key for a request. When a `resolveApprovalKey`
|
|
208
|
+
* function is provided and returns a string, that compound key is recorded
|
|
209
|
+
* instead of the bare tool name.
|
|
210
|
+
*/
|
|
207
211
|
function recordApprovedTools(input) {
|
|
208
212
|
const approvedIds = new Set(input.responses.filter((r) => r.optionId === "approve").map((r) => r.requestId));
|
|
209
|
-
const
|
|
213
|
+
const newKeys = input.pendingBatch.requests
|
|
210
214
|
.filter((r) => approvedIds.has(r.requestId))
|
|
211
|
-
.map((r) => r.action.toolName);
|
|
212
|
-
if (
|
|
215
|
+
.map((r) => input.resolveApprovalKey?.(r) ?? r.action.toolName);
|
|
216
|
+
if (newKeys.length === 0) {
|
|
213
217
|
return input.session;
|
|
214
218
|
}
|
|
215
219
|
const existing = getApprovedTools(input.session);
|
|
216
|
-
const combined = [...new Set([...existing, ...
|
|
217
|
-
|
|
220
|
+
const combined = [...new Set([...existing, ...newKeys])];
|
|
221
|
+
const state = { ...(input.session.state ?? {}) };
|
|
222
|
+
state[APPROVED_TOOLS_KEY] = combined;
|
|
223
|
+
return { ...input.session, state };
|
|
218
224
|
}
|
|
219
225
|
// ---------------------------------------------------------------------------
|
|
220
226
|
// Tool response building
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-requests.js","sourceRoot":"","sources":["../../../src/harness/input-requests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-requests.js","sourceRoot":"","sources":["../../../src/harness/input-requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAGV,MAAM,EAGN,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAyH3E"}
|
|
@@ -30,7 +30,11 @@ export function createToolLoopHarness(config) {
|
|
|
30
30
|
// --- Input resolution ---------------------------------------------------
|
|
31
31
|
const stepInput = consumeDeferredStepInput({ input, session });
|
|
32
32
|
session = stepInput.session;
|
|
33
|
-
const pending = resolvePendingInput({
|
|
33
|
+
const pending = resolvePendingInput({
|
|
34
|
+
resolveApprovalKey: resolveApprovalKeyFromTools(config.tools),
|
|
35
|
+
session,
|
|
36
|
+
stepInput: stepInput.input,
|
|
37
|
+
});
|
|
34
38
|
if (pending.outcome === "unresolved") {
|
|
35
39
|
return { next: null, session: pending.session };
|
|
36
40
|
}
|
|
@@ -182,4 +186,18 @@ async function handleStepResult(input) {
|
|
|
182
186
|
session: nextSession,
|
|
183
187
|
};
|
|
184
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Creates an approval-key resolver from the tool map. The resolver computes
|
|
191
|
+
* compound keys at recording time instead of pre-computing and persisting
|
|
192
|
+
* them on the pending batch.
|
|
193
|
+
*/
|
|
194
|
+
function resolveApprovalKeyFromTools(tools) {
|
|
195
|
+
return (request) => {
|
|
196
|
+
const toolDef = tools.get(request.action.toolName);
|
|
197
|
+
if (toolDef?.approvalKey === undefined) {
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
return toolDef.approvalKey(request.action.input);
|
|
201
|
+
};
|
|
202
|
+
}
|
|
185
203
|
//# sourceMappingURL=tool-loop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,WAAW,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,eAAe,EAA0B,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,11 +68,15 @@ export async function buildToolSetWithProviderTools(input) {
|
|
|
68
68
|
return tools;
|
|
69
69
|
}
|
|
70
70
|
function buildNeedsApprovalFn(definition, input) {
|
|
71
|
-
return async () => {
|
|
71
|
+
return async (toolInput) => {
|
|
72
72
|
if (definition.needsApproval === undefined)
|
|
73
73
|
return false;
|
|
74
|
+
const toolInputRecord = typeof toolInput === "object" && toolInput !== null
|
|
75
|
+
? toolInput
|
|
76
|
+
: undefined;
|
|
74
77
|
const required = definition.needsApproval({
|
|
75
78
|
approvedTools: input.approvedTools ?? new Set(),
|
|
79
|
+
toolInput: toolInputRecord,
|
|
76
80
|
toolName: definition.name,
|
|
77
81
|
});
|
|
78
82
|
if (required && input.isRoot === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/harness/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,IAAI,EAAE,MAAM,IAAI,CAAC;AAEpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAA8B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAI5B;IACC,MAAM,KAAK,GAAoC,EAAE,CAAC;IAElD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAG;YACzB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,WAAW,EAAE,UAAU,CACrB,wBAAwB,CAAC,UAAU,CAAC,WAAW,CAAqC,CACrF;YACD,aAAa,EAAE,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC;SACvD,CAAC;QAEF,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,oBAAoB,GAAG,UAE5B,CAAC;YACF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC5B,GAAG,kBAAkB;gBACrB,OAAO,EAAE,KAAK,EAAE,QAAiB,EAAE,EAAE;oBACnC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;oBAEzE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;wBACf,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxD,CAAC;oBAED,OAAO,MAAM,CAAC,MAAM,CAAC;gBACvB,CAAC;aACF,CAAoB,CAAC;YACtB,SAAS;QACX,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAoB,CAAC;IACvE,CAAC;IAED,OAAO,KAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,KAKnD;IACC,MAAM,KAAK,GAAY;QACrB,GAAG,YAAY,CAAC;YACd,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;KACH,CAAC;IAEF,uEAAuE;IACvE,+EAA+E;IAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAiC,EACjC,KAAkF;IAElF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/harness/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ export interface SessionAgent {
|
|
|
41
41
|
readonly tools: readonly SessionToolDefinition[];
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Serializable session
|
|
44
|
+
* Serializable session state passed between harness and runtime.
|
|
45
45
|
*
|
|
46
46
|
* Only contains plain data -- no resolved model instances or tool execute
|
|
47
47
|
* functions. The harness resolves those at step time via injected config.
|
|
@@ -50,23 +50,15 @@ export interface HarnessSession {
|
|
|
50
50
|
readonly agent: SessionAgent;
|
|
51
51
|
readonly compaction: CompactionConfig;
|
|
52
52
|
readonly continuationToken: string;
|
|
53
|
-
/**
|
|
54
|
-
* Durable authored context keyed by public `ContextKey.name`.
|
|
55
|
-
*/
|
|
56
|
-
readonly context?: Readonly<Record<string, unknown>>;
|
|
57
53
|
readonly history: ModelMessage[];
|
|
58
|
-
/**
|
|
59
|
-
* Internal framework bookkeeping that must survive durable steps but is not
|
|
60
|
-
* part of the authored durable context API.
|
|
61
|
-
*/
|
|
62
|
-
readonly internal?: Readonly<Record<string, unknown>>;
|
|
63
54
|
readonly sessionId: string;
|
|
64
55
|
readonly sandboxState?: SandboxState;
|
|
56
|
+
readonly state?: Readonly<Record<string, unknown>>;
|
|
65
57
|
}
|
|
66
58
|
/**
|
|
67
59
|
* Result returned by the compaction callback.
|
|
68
60
|
*
|
|
69
|
-
* `session` carries any
|
|
61
|
+
* `session` carries any state resets (e.g. clearing active skills).
|
|
70
62
|
* `messages` carries context to inject after compaction (e.g. the current
|
|
71
63
|
* todo list as a user message).
|
|
72
64
|
*/
|
|
@@ -100,10 +92,6 @@ export interface StepDone {
|
|
|
100
92
|
* - `StepDone` means "the conversation is finished."
|
|
101
93
|
*/
|
|
102
94
|
export type StepNext = StepDone | StepFn | null;
|
|
103
|
-
/**
|
|
104
|
-
* Type guard for the terminal done signal in a step result.
|
|
105
|
-
*/
|
|
106
|
-
export declare function isStepDone(next: StepNext): next is StepDone;
|
|
107
95
|
/**
|
|
108
96
|
* Result returned by one harness step invocation.
|
|
109
97
|
*/
|