experimental-ash 0.2.0-alpha.6 → 0.2.0-alpha.8
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/execution/node-step.d.ts.map +1 -1
- package/dist/src/execution/node-step.js +27 -36
- package/dist/src/execution/node-step.js.map +1 -1
- package/dist/src/harness/execute-tool.d.ts +38 -0
- package/dist/src/harness/execute-tool.d.ts.map +1 -0
- package/dist/src/harness/execute-tool.js +59 -0
- package/dist/src/harness/execute-tool.js.map +1 -0
- package/dist/src/harness/provider-tools.d.ts +2 -2
- package/dist/src/harness/provider-tools.js +2 -2
- package/dist/src/harness/tool-loop.d.ts.map +1 -1
- package/dist/src/harness/tool-loop.js +13 -3
- package/dist/src/harness/tool-loop.js.map +1 -1
- package/dist/src/harness/tools.d.ts +3 -3
- package/dist/src/harness/tools.d.ts.map +1 -1
- package/dist/src/harness/tools.js +11 -6
- package/dist/src/harness/tools.js.map +1 -1
- package/dist/src/harness/types.d.ts +8 -3
- package/dist/src/harness/types.d.ts.map +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/nitro/routes/index.d.ts +1 -0
- package/dist/src/internal/nitro/routes/index.d.ts.map +1 -1
- package/dist/src/internal/nitro/routes/index.js +21 -1
- package/dist/src/internal/nitro/routes/index.js.map +1 -1
- package/dist/src/internal/nitro/routes/web-ui/assets/index.js +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.map +1 -1
- package/package.json +1 -1
- package/dist/src/runtime/tools/execute-tool.d.ts +0 -20
- package/dist/src/runtime/tools/execute-tool.d.ts.map +0 -1
- package/dist/src/runtime/tools/execute-tool.js +0 -90
- package/dist/src/runtime/tools/execute-tool.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-step.d.ts","sourceRoot":"","sources":["../../../src/execution/node-step.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-step.d.ts","sourceRoot":"","sources":["../../../src/execution/node-step.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAOpE;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE;IACnC,QAAQ,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,KAAK,OAAO,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;IACjE;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;CACzC;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,CAoBnF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createToolLoopHarness } from "../harness/tool-loop.js";
|
|
2
2
|
import { resolveInstalledPackageInfo } from "../internal/application/package.js";
|
|
3
3
|
import { resolveRuntimeModelReference } from "../runtime/agent/resolve-model.js";
|
|
4
|
-
import { executeRuntimeToolCall } from "../runtime/tools/execute-tool.js";
|
|
5
4
|
import { findRegisteredRuntimeTool } from "../runtime/tools/registry.js";
|
|
6
5
|
import { createSubagentToolExecutor } from "./subagent-tool.js";
|
|
7
6
|
import { createToolCompactionHandler } from "./tool-compaction.js";
|
|
@@ -13,7 +12,7 @@ const NOOP_EMIT = async () => { };
|
|
|
13
12
|
export function createExecutionNodeStep(input) {
|
|
14
13
|
const parentEmit = input.emit ?? NOOP_EMIT;
|
|
15
14
|
const resolveModel = createRuntimeModelResolver(input.compiledArtifactsSource);
|
|
16
|
-
const
|
|
15
|
+
const executableTools = createNodeExecutableTools({
|
|
17
16
|
createRuntime: input.createRuntime,
|
|
18
17
|
node: input.node,
|
|
19
18
|
parentEmit,
|
|
@@ -26,7 +25,7 @@ export function createExecutionNodeStep(input) {
|
|
|
26
25
|
onCompaction,
|
|
27
26
|
resolveModel,
|
|
28
27
|
runtimeIdentity: buildRuntimeIdentity(input.node),
|
|
29
|
-
|
|
28
|
+
executableTools,
|
|
30
29
|
toolNeedsApprovalFns,
|
|
31
30
|
});
|
|
32
31
|
}
|
|
@@ -79,52 +78,44 @@ function createRuntimeModelResolver(compiledArtifactsSource) {
|
|
|
79
78
|
compiledArtifactsSource,
|
|
80
79
|
});
|
|
81
80
|
}
|
|
82
|
-
function
|
|
83
|
-
const
|
|
81
|
+
function createNodeExecutableTools(input) {
|
|
82
|
+
const tools = new Map();
|
|
84
83
|
for (const tool of input.node.turnAgent.tools) {
|
|
85
|
-
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
executors.set(tool.name, createToolExecutor({
|
|
84
|
+
const definition = resolveExecutableToolDefinition({
|
|
89
85
|
createRuntime: input.createRuntime,
|
|
90
86
|
node: input.node,
|
|
91
87
|
parentEmit: input.parentEmit,
|
|
92
88
|
tool,
|
|
93
|
-
})
|
|
89
|
+
});
|
|
90
|
+
if (definition !== null) {
|
|
91
|
+
tools.set(tool.name, definition);
|
|
92
|
+
}
|
|
94
93
|
}
|
|
95
|
-
return
|
|
94
|
+
return tools;
|
|
96
95
|
}
|
|
97
|
-
function
|
|
96
|
+
function resolveExecutableToolDefinition(input) {
|
|
98
97
|
if (input.tool.kind === "subagent") {
|
|
99
|
-
return
|
|
98
|
+
return {
|
|
99
|
+
execute: createSubagentToolExecutor({
|
|
100
|
+
createRuntime: input.createRuntime,
|
|
101
|
+
parentEmit: input.parentEmit,
|
|
102
|
+
subagentTool: input.tool,
|
|
103
|
+
}),
|
|
104
|
+
name: input.tool.name,
|
|
105
|
+
};
|
|
100
106
|
}
|
|
101
107
|
const registeredTool = findRegisteredRuntimeTool(input.node.toolRegistry, input.tool.name);
|
|
102
108
|
if (registeredTool === null) {
|
|
103
|
-
return
|
|
109
|
+
return null;
|
|
104
110
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (input.tool.kind === "subagent") {
|
|
109
|
-
return createSubagentToolExecutor({
|
|
110
|
-
createRuntime: input.createRuntime,
|
|
111
|
-
parentEmit: input.parentEmit,
|
|
112
|
-
subagentTool: input.tool,
|
|
113
|
-
});
|
|
111
|
+
const execute = registeredTool.definition.execute;
|
|
112
|
+
if (execute === undefined) {
|
|
113
|
+
return null;
|
|
114
114
|
}
|
|
115
|
-
return
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
callId,
|
|
120
|
-
input: (args ?? {}),
|
|
121
|
-
kind: "tool-call",
|
|
122
|
-
toolName: input.tool.name,
|
|
123
|
-
},
|
|
124
|
-
registry: input.node.toolRegistry,
|
|
125
|
-
visibleTools: input.node.toolRegistry.preparedTools,
|
|
126
|
-
});
|
|
127
|
-
return toolResult.output;
|
|
115
|
+
return {
|
|
116
|
+
execute,
|
|
117
|
+
inputValidator: registeredTool.definition.inputValidator,
|
|
118
|
+
name: input.tool.name,
|
|
128
119
|
};
|
|
129
120
|
}
|
|
130
121
|
//# sourceMappingURL=node-step.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-step.js","sourceRoot":"","sources":["../../../src/execution/node-step.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-step.js","sourceRoot":"","sources":["../../../src/execution/node-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type JsonValue } from "../runtime/json.js";
|
|
2
|
+
import type { StandardSchemaValidator } from "../runtime/standard-schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Harness-owned definition of an authored tool ready for execution.
|
|
5
|
+
*
|
|
6
|
+
* Carries just the pieces the harness needs — no registry metadata, no
|
|
7
|
+
* serializable descriptors. The execution layer resolves a
|
|
8
|
+
* {@link ResolvedToolDefinition} into this shape before handing it off.
|
|
9
|
+
*/
|
|
10
|
+
export interface ExecutableToolDefinition {
|
|
11
|
+
readonly execute: (input: unknown) => Promise<unknown> | unknown;
|
|
12
|
+
readonly inputValidator?: StandardSchemaValidator;
|
|
13
|
+
readonly name: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Result of executing one authored tool through the harness.
|
|
17
|
+
*/
|
|
18
|
+
export type ToolExecutionResult = {
|
|
19
|
+
readonly ok: false;
|
|
20
|
+
readonly code: string;
|
|
21
|
+
readonly message: string;
|
|
22
|
+
} | {
|
|
23
|
+
readonly ok: true;
|
|
24
|
+
readonly output: JsonValue;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Executes one authored tool call through the harness-owned pipeline.
|
|
28
|
+
*
|
|
29
|
+
* Validates input (when an {@link ExecutableToolDefinition.inputValidator} is
|
|
30
|
+
* present), invokes the authored `execute` function, and validates that the
|
|
31
|
+
* returned value is JSON-serializable.
|
|
32
|
+
*
|
|
33
|
+
* The unified Ash context is already active when this function is called
|
|
34
|
+
* (the caller runs inside the execution layer's ALS scope), so authored code
|
|
35
|
+
* can access `getSession()`, `getSandbox()`, etc. directly.
|
|
36
|
+
*/
|
|
37
|
+
export declare function executeAuthoredTool(definition: ExecutableToolDefinition, input: unknown): Promise<ToolExecutionResult>;
|
|
38
|
+
//# sourceMappingURL=execute-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-tool.d.ts","sourceRoot":"","sources":["../../../src/harness/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAM7E;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;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,wBAAwB,EACpC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC,CA8C9B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { isJsonValue } from "../runtime/json.js";
|
|
2
|
+
import { formatStandardSchemaIssues, validateStandardSchemaValue, } from "../runtime/standard-schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Executes one authored tool call through the harness-owned pipeline.
|
|
5
|
+
*
|
|
6
|
+
* Validates input (when an {@link ExecutableToolDefinition.inputValidator} is
|
|
7
|
+
* present), invokes the authored `execute` function, and validates that the
|
|
8
|
+
* returned value is JSON-serializable.
|
|
9
|
+
*
|
|
10
|
+
* The unified Ash context is already active when this function is called
|
|
11
|
+
* (the caller runs inside the execution layer's ALS scope), so authored code
|
|
12
|
+
* can access `getSession()`, `getSandbox()`, etc. directly.
|
|
13
|
+
*/
|
|
14
|
+
export async function executeAuthoredTool(definition, input) {
|
|
15
|
+
let parsedInput = input;
|
|
16
|
+
if (definition.inputValidator !== undefined) {
|
|
17
|
+
let validationResult;
|
|
18
|
+
try {
|
|
19
|
+
validationResult = await validateStandardSchemaValue(definition.inputValidator, parsedInput);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return {
|
|
23
|
+
code: "TOOL_INPUT_VALIDATION_FAILED",
|
|
24
|
+
message: formatErrorMessage(error),
|
|
25
|
+
ok: false,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (!validationResult.ok) {
|
|
29
|
+
return {
|
|
30
|
+
code: "TOOL_INPUT_INVALID",
|
|
31
|
+
message: `Tool "${definition.name}" received invalid input: ${formatStandardSchemaIssues(validationResult.issues)}.`,
|
|
32
|
+
ok: false,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
parsedInput = validationResult.value;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const output = await definition.execute(parsedInput);
|
|
39
|
+
if (!isJsonValue(output)) {
|
|
40
|
+
return {
|
|
41
|
+
code: "TOOL_OUTPUT_NOT_SERIALIZABLE",
|
|
42
|
+
message: `Tool "${definition.name}" returned a non-JSON-serializable value.`,
|
|
43
|
+
ok: false,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return { ok: true, output };
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
return {
|
|
50
|
+
code: "TOOL_EXECUTION_FAILED",
|
|
51
|
+
message: formatErrorMessage(error),
|
|
52
|
+
ok: false,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function formatErrorMessage(error) {
|
|
57
|
+
return error instanceof Error ? error.message : String(error);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=execute-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-tool.js","sourceRoot":"","sources":["../../../src/harness/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAsBvC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAoC,EACpC,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"}
|
|
@@ -9,8 +9,8 @@ type WebSearchBackend = "anthropic" | "gateway" | "google" | "openai";
|
|
|
9
9
|
*
|
|
10
10
|
* - OpenAI models (gateway or BYO): native OpenAI search
|
|
11
11
|
* - Anthropic models (gateway or BYO): native Anthropic search
|
|
12
|
-
* - Google models
|
|
13
|
-
* - Other models on AI Gateway: Perplexity search via gateway
|
|
12
|
+
* - Direct/BYO Google models: native Google search grounding
|
|
13
|
+
* - Other models on AI Gateway (including `google/...`): Perplexity search via gateway
|
|
14
14
|
* - Other BYO models: not available (returns `null`)
|
|
15
15
|
*/
|
|
16
16
|
export declare function resolveWebSearchBackend(modelRef: RuntimeModelReference): WebSearchBackend | null;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - OpenAI models (gateway or BYO): native OpenAI search
|
|
5
5
|
* - Anthropic models (gateway or BYO): native Anthropic search
|
|
6
|
-
* - Google models
|
|
7
|
-
* - Other models on AI Gateway: Perplexity search via gateway
|
|
6
|
+
* - Direct/BYO Google models: native Google search grounding
|
|
7
|
+
* - Other models on AI Gateway (including `google/...`): Perplexity search via gateway
|
|
8
8
|
* - Other BYO models: not available (returns `null`)
|
|
9
9
|
*/
|
|
10
10
|
export function resolveWebSearchBackend(modelRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAEV,MAAM,EAGN,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAEV,MAAM,EAGN,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAuQ3E"}
|
|
@@ -93,7 +93,7 @@ export function createToolLoopHarness(config) {
|
|
|
93
93
|
const tools = await buildToolSetWithProviderTools({
|
|
94
94
|
approvedTools: getApprovedTools(session),
|
|
95
95
|
definitions: session.agent.tools,
|
|
96
|
-
|
|
96
|
+
executableTools: config.executableTools,
|
|
97
97
|
isRoot: session.agent.isRoot,
|
|
98
98
|
modelReference: session.agent.modelReference,
|
|
99
99
|
needsApprovalFns: config.toolNeedsApprovalFns,
|
|
@@ -145,8 +145,9 @@ export function createToolLoopHarness(config) {
|
|
|
145
145
|
lastKnownInputTokens: result.usage?.inputTokens,
|
|
146
146
|
},
|
|
147
147
|
};
|
|
148
|
+
const finishReason = normalizeAssistantStepFinishReason(result.finishReason);
|
|
148
149
|
const completedStepOutput = {
|
|
149
|
-
finishReason
|
|
150
|
+
finishReason,
|
|
150
151
|
message: stepOutput,
|
|
151
152
|
reasoning: result.reasoningText,
|
|
152
153
|
};
|
|
@@ -187,7 +188,16 @@ export function createToolLoopHarness(config) {
|
|
|
187
188
|
...baseSession,
|
|
188
189
|
history: updatedHistory,
|
|
189
190
|
};
|
|
190
|
-
|
|
191
|
+
// Continue the tool loop when:
|
|
192
|
+
// 1. The model explicitly requested tool calls (finish reason is "tool-calls"),
|
|
193
|
+
// meaning it expects to process the results before producing a final response.
|
|
194
|
+
// 2. The last response message is a "tool" role message, indicating tool execution
|
|
195
|
+
// occurred and the model needs another step to incorporate those results.
|
|
196
|
+
// 3. There is deferred step input (e.g. a user message that was parked while
|
|
197
|
+
// waiting for tool approval) that still needs to be fed into the next step.
|
|
198
|
+
const continueLoop = finishReason === "tool-calls" ||
|
|
199
|
+
responseMessages.at(-1)?.role === "tool" ||
|
|
200
|
+
hasDeferredStepInput(nextSession);
|
|
191
201
|
if (emit) {
|
|
192
202
|
if (runtimeActionToolCalls.length > 0) {
|
|
193
203
|
await emitToolCallActionsAndResults(emit, emissionState, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../../src/harness/tool-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ToolSet } from "ai";
|
|
2
2
|
import type { NeedsApprovalContext } from "../public/definitions/tool.js";
|
|
3
3
|
import type { RuntimeModelReference } from "../runtime/agent/bootstrap.js";
|
|
4
|
-
import type {
|
|
4
|
+
import type { ExecutableToolMap, SessionToolDefinition } from "./types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Builds an AI SDK `ToolSet` from serializable session definitions and an
|
|
7
7
|
* executor map that provides the actual execute functions.
|
|
@@ -9,7 +9,7 @@ import type { SessionToolDefinition, ToolExecutorMap } from "./types.js";
|
|
|
9
9
|
export declare function buildToolSet(input: {
|
|
10
10
|
readonly approvedTools?: ReadonlySet<string>;
|
|
11
11
|
readonly definitions: readonly SessionToolDefinition[];
|
|
12
|
-
readonly
|
|
12
|
+
readonly executableTools: ExecutableToolMap;
|
|
13
13
|
readonly isRoot?: boolean;
|
|
14
14
|
readonly needsApprovalFns?: ReadonlyMap<string, (ctx: NeedsApprovalContext) => boolean>;
|
|
15
15
|
}): ToolSet;
|
|
@@ -30,7 +30,7 @@ export declare function buildToolSet(input: {
|
|
|
30
30
|
export declare function buildToolSetWithProviderTools(input: {
|
|
31
31
|
readonly approvedTools?: ReadonlySet<string>;
|
|
32
32
|
readonly definitions: readonly SessionToolDefinition[];
|
|
33
|
-
readonly
|
|
33
|
+
readonly executableTools: ExecutableToolMap;
|
|
34
34
|
readonly isRoot?: boolean;
|
|
35
35
|
readonly modelReference: RuntimeModelReference;
|
|
36
36
|
readonly needsApprovalFns?: ReadonlyMap<string, (ctx: NeedsApprovalContext) => boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/harness/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAQ,MAAM,IAAI,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/harness/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAQ,MAAM,IAAI,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAK3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,CAAC;CACzF,GAAG,OAAO,CAmDV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,6BAA6B,CAAC,KAAK,EAAE;IACzD,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,CAAC;CACzF,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBnB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsonSchema, tool } from "ai";
|
|
2
2
|
import { WEB_SEARCH_TOOL_DEFINITION } from "../runtime/framework-tools/web-search.js";
|
|
3
|
+
import { executeAuthoredTool } from "./execute-tool.js";
|
|
3
4
|
import { resolveWebSearchBackend, resolveWebSearchProviderTool } from "./provider-tools.js";
|
|
4
5
|
import { normalizeToolInputSchema } from "./tool-schema.js";
|
|
5
6
|
/**
|
|
@@ -26,12 +27,16 @@ export function buildToolSet(input) {
|
|
|
26
27
|
return required;
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
|
-
const
|
|
30
|
-
if (
|
|
30
|
+
const executableTool = input.executableTools.get(definition.name);
|
|
31
|
+
if (executableTool !== undefined) {
|
|
31
32
|
tools[definition.name] = tool({
|
|
32
33
|
...baseToolDefinition,
|
|
33
34
|
execute: async (rawInput) => {
|
|
34
|
-
|
|
35
|
+
const result = await executeAuthoredTool(executableTool, rawInput);
|
|
36
|
+
if (!result.ok) {
|
|
37
|
+
return { code: result.code, message: result.message };
|
|
38
|
+
}
|
|
39
|
+
return result.output;
|
|
35
40
|
},
|
|
36
41
|
});
|
|
37
42
|
continue;
|
|
@@ -59,15 +64,15 @@ export async function buildToolSetWithProviderTools(input) {
|
|
|
59
64
|
...buildToolSet({
|
|
60
65
|
approvedTools: input.approvedTools,
|
|
61
66
|
definitions: input.definitions,
|
|
62
|
-
|
|
67
|
+
executableTools: input.executableTools,
|
|
63
68
|
isRoot: input.isRoot,
|
|
64
69
|
needsApprovalFns: input.needsApprovalFns,
|
|
65
70
|
}),
|
|
66
71
|
};
|
|
67
72
|
// Inject the real provider tool for web_search when the execution layer
|
|
68
|
-
// skipped its
|
|
73
|
+
// skipped its executable definition (i.e. the framework definition uses the sentinel).
|
|
69
74
|
const hasWebSearchInSession = input.definitions.some((t) => t.name === WEB_SEARCH_TOOL_DEFINITION.name);
|
|
70
|
-
if (hasWebSearchInSession && !input.
|
|
75
|
+
if (hasWebSearchInSession && !input.executableTools.has(WEB_SEARCH_TOOL_DEFINITION.name)) {
|
|
71
76
|
const backend = resolveWebSearchBackend(input.modelReference);
|
|
72
77
|
if (backend !== null) {
|
|
73
78
|
tools[WEB_SEARCH_TOOL_DEFINITION.name] = await resolveWebSearchProviderTool(backend);
|
|
@@ -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;AAGpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAM5B;IACC,MAAM,KAAK,GAAoC,EAAE,CAAC;IAElD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,kBAAkB,GAAG;YACzB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,WAAW,EAAE,UAAU,CACrB,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAqC,CACpF;YACD,aAAa,EAAE,KAAK,IAAI,EAAE;gBACxB,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GACZ,MAAM,KAAK,SAAS;oBAClB,CAAC,CAAC,MAAM,CAAC;wBACL,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE;wBAC/C,QAAQ,EAAE,UAAU,CAAC,IAAI;qBAC1B,CAAC;oBACJ,CAAC,CAAC,KAAK,CAAC;gBAEZ,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CACb,qGAAqG,UAAU,CAAC,IAAI,oCAAoC,CACzJ,CAAC;gBACJ,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC;QAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/harness/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import type { RunMode } from "../run-mode.js";
|
|
|
6
6
|
import type { RuntimeModelReference } from "../runtime/agent/bootstrap.js";
|
|
7
7
|
import type { InputResponse } from "../runtime/input/types.js";
|
|
8
8
|
import type { JsonValue } from "../runtime/json.js";
|
|
9
|
+
import type { ExecutableToolDefinition } from "./execute-tool.js";
|
|
9
10
|
/**
|
|
10
11
|
* Serializable tool definition stored on the session.
|
|
11
12
|
*
|
|
@@ -104,9 +105,13 @@ export interface StepResult {
|
|
|
104
105
|
*/
|
|
105
106
|
export type StepFn = (session: HarnessSession, input?: StepInput) => Promise<StepResult>;
|
|
106
107
|
/**
|
|
107
|
-
* Map from tool name to its
|
|
108
|
+
* Map from tool name to its executable definition.
|
|
109
|
+
*
|
|
110
|
+
* The harness runs each definition through {@link executeAuthoredTool} at call
|
|
111
|
+
* time, which handles input validation, output serialization checks, and error
|
|
112
|
+
* wrapping.
|
|
108
113
|
*/
|
|
109
|
-
export type
|
|
114
|
+
export type ExecutableToolMap = ReadonlyMap<string, ExecutableToolDefinition>;
|
|
110
115
|
/**
|
|
111
116
|
* Callback that writes one event to the event stream.
|
|
112
117
|
*
|
|
@@ -145,7 +150,7 @@ export interface ToolLoopHarnessConfig {
|
|
|
145
150
|
* authoritative server-side metadata.
|
|
146
151
|
*/
|
|
147
152
|
readonly runtimeIdentity?: RuntimeIdentity;
|
|
148
|
-
readonly
|
|
153
|
+
readonly executableTools: ExecutableToolMap;
|
|
149
154
|
readonly toolNeedsApprovalFns?: ReadonlyMap<string, (ctx: NeedsApprovalContext) => boolean>;
|
|
150
155
|
}
|
|
151
156
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/harness/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/harness/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { ASH_PACKAGE_NAME } from "../../package-name.js";
|
|
|
6
6
|
let cachedPackageInfo;
|
|
7
7
|
// The package build stamps the published version into `dist` so bundled
|
|
8
8
|
// deployments can still report package metadata without resolving package.json.
|
|
9
|
-
const BUNDLED_FALLBACK_PACKAGE_VERSION = "0.2.0-alpha.
|
|
9
|
+
const BUNDLED_FALLBACK_PACKAGE_VERSION = "0.2.0-alpha.8";
|
|
10
10
|
const BUNDLED_FALLBACK_PACKAGE_VERSION_PLACEHOLDER = "__ASH_PACKAGE_VERSION_PLACEHOLDER__";
|
|
11
11
|
function resolveFallbackPackageVersion() {
|
|
12
12
|
return BUNDLED_FALLBACK_PACKAGE_VERSION === BUNDLED_FALLBACK_PACKAGE_VERSION_PLACEHOLDER
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/nitro/routes/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/nitro/routes/index.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,OAAO,CAAC,QAAQ,CAAC,CAYnB;AAED;;GAEG;8BACsB,OAAO,CAAC,QAAQ,CAAC;AAA1C,wBAEE"}
|
|
@@ -9,11 +9,31 @@ function resolveConfiguredHomePageHtml(configuredHomePageHtml) {
|
|
|
9
9
|
}
|
|
10
10
|
return runtimeConfiguration.homePageHtml;
|
|
11
11
|
}
|
|
12
|
+
function resolveAgentInfoOnlyMode(configuredAgentInfoOnlyMode) {
|
|
13
|
+
if (typeof configuredAgentInfoOnlyMode === "boolean") {
|
|
14
|
+
return configuredAgentInfoOnlyMode;
|
|
15
|
+
}
|
|
16
|
+
return process.env.VERCEL === "1";
|
|
17
|
+
}
|
|
18
|
+
function injectHomePageRuntimeFlags(input) {
|
|
19
|
+
const runtimeFlagsScript = `<script>globalThis.__ASH_UI_AGENT_INFO_ONLY_MODE__=${input.agentInfoOnlyMode ? "true" : "false"};</script>`;
|
|
20
|
+
if (input.homePageHtml.includes("</head>")) {
|
|
21
|
+
return input.homePageHtml.replace("</head>", `${runtimeFlagsScript}</head>`);
|
|
22
|
+
}
|
|
23
|
+
if (input.homePageHtml.includes("</body>")) {
|
|
24
|
+
return input.homePageHtml.replace("</body>", `${runtimeFlagsScript}</body>`);
|
|
25
|
+
}
|
|
26
|
+
return `${runtimeFlagsScript}${input.homePageHtml}`;
|
|
27
|
+
}
|
|
12
28
|
/**
|
|
13
29
|
* Builds the package-owned home page response for one resolved application.
|
|
14
30
|
*/
|
|
15
31
|
export async function handleHomePageRequest(input = {}) {
|
|
16
|
-
|
|
32
|
+
const homePageHtml = injectHomePageRuntimeFlags({
|
|
33
|
+
agentInfoOnlyMode: resolveAgentInfoOnlyMode(input.agentInfoOnlyMode),
|
|
34
|
+
homePageHtml: resolveConfiguredHomePageHtml(input.homePageHtml),
|
|
35
|
+
});
|
|
36
|
+
return new Response(homePageHtml, {
|
|
17
37
|
headers: {
|
|
18
38
|
"cache-control": "no-store",
|
|
19
39
|
"content-type": "text/html; charset=utf-8",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/nitro/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAE/E,SAAS,6BAA6B,CAAC,sBAA+B;IACpE,IAAI,OAAO,sBAAsB,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,MAAM,oBAAoB,GAAG,gCAAgC,EAAE,CAAC;IAEhE,IAAI,OAAO,oBAAoB,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,oBAAoB,CAAC,YAAY,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/nitro/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAE/E,SAAS,6BAA6B,CAAC,sBAA+B;IACpE,IAAI,OAAO,sBAAsB,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,MAAM,oBAAoB,GAAG,gCAAgC,EAAE,CAAC;IAEhE,IAAI,OAAO,oBAAoB,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,oBAAoB,CAAC,YAAY,CAAC;AAC3C,CAAC;AAED,SAAS,wBAAwB,CAAC,2BAAqC;IACrE,IAAI,OAAO,2BAA2B,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,0BAA0B,CAAC,KAGnC;IACC,MAAM,kBAAkB,GAAG,sDAAsD,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC;IAExI,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,kBAAkB,SAAS,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,kBAAkB,SAAS,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,GAAG,kBAAkB,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgE,EAAE;IAElE,MAAM,YAAY,GAAG,0BAA0B,CAAC;QAC9C,iBAAiB,EAAE,wBAAwB,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACpE,YAAY,EAAE,6BAA6B,CAAC,KAAK,CAAC,YAAY,CAAC;KAChE,CAAC,CAAC;IAEH,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE;QAChC,OAAO,EAAE;YACP,eAAe,EAAE,UAAU;YAC3B,cAAc,EAAE,0BAA0B;SAC3C;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,eAAe,KAAK,IAAuB,EAAE;IAC3C,OAAO,MAAM,qBAAqB,EAAE,CAAC;AACvC,CAAC,CAAC"}
|