@dsh-cc/tools 0.5.0
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/LICENSE +201 -0
- package/README.i18n.yaml +6 -0
- package/README.md +209 -0
- package/README.zh.md +200 -0
- package/lib/abort-utils.d.ts +80 -0
- package/lib/abort-utils.d.ts.map +1 -0
- package/lib/abort-utils.js +186 -0
- package/lib/abort-utils.js.map +1 -0
- package/lib/cc-names.d.ts +100 -0
- package/lib/cc-names.d.ts.map +1 -0
- package/lib/cc-names.js +197 -0
- package/lib/cc-names.js.map +1 -0
- package/lib/code-mode.d.ts +46 -0
- package/lib/code-mode.d.ts.map +1 -0
- package/lib/code-mode.js +380 -0
- package/lib/code-mode.js.map +1 -0
- package/lib/define-tool.d.ts +103 -0
- package/lib/define-tool.d.ts.map +1 -0
- package/lib/define-tool.js +354 -0
- package/lib/define-tool.js.map +1 -0
- package/lib/index.d.ts +348 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +289 -0
- package/lib/index.js.map +1 -0
- package/lib/invariant.d.ts +13 -0
- package/lib/invariant.d.ts.map +1 -0
- package/lib/invariant.js +123 -0
- package/lib/invariant.js.map +1 -0
- package/lib/json-render.d.ts +18 -0
- package/lib/json-render.d.ts.map +1 -0
- package/lib/json-render.js +111 -0
- package/lib/json-render.js.map +1 -0
- package/lib/json-schema-value.d.ts +18 -0
- package/lib/json-schema-value.d.ts.map +1 -0
- package/lib/json-schema-value.js +238 -0
- package/lib/json-schema-value.js.map +1 -0
- package/lib/json-schema.d.ts +101 -0
- package/lib/json-schema.d.ts.map +1 -0
- package/lib/json-schema.js +351 -0
- package/lib/json-schema.js.map +1 -0
- package/lib/presentation.d.ts +367 -0
- package/lib/presentation.d.ts.map +1 -0
- package/lib/presentation.js +8 -0
- package/lib/presentation.js.map +1 -0
- package/lib/py-names.d.ts +163 -0
- package/lib/py-names.d.ts.map +1 -0
- package/lib/py-names.js +236 -0
- package/lib/py-names.js.map +1 -0
- package/lib/py-render.d.ts +23 -0
- package/lib/py-render.d.ts.map +1 -0
- package/lib/py-render.js +434 -0
- package/lib/py-render.js.map +1 -0
- package/lib/py-sdk-doc.d.ts +29 -0
- package/lib/py-sdk-doc.d.ts.map +1 -0
- package/lib/py-sdk-doc.js +114 -0
- package/lib/py-sdk-doc.js.map +1 -0
- package/lib/py-types.d.ts +34 -0
- package/lib/py-types.d.ts.map +1 -0
- package/lib/py-types.js +40 -0
- package/lib/py-types.js.map +1 -0
- package/lib/run-code-defs.d.ts +77 -0
- package/lib/run-code-defs.d.ts.map +1 -0
- package/lib/run-code-defs.js +98 -0
- package/lib/run-code-defs.js.map +1 -0
- package/lib/runtime-code.d.ts +65 -0
- package/lib/runtime-code.d.ts.map +1 -0
- package/lib/runtime-code.js +129 -0
- package/lib/runtime-code.js.map +1 -0
- package/lib/runtime-core.d.ts +130 -0
- package/lib/runtime-core.d.ts.map +1 -0
- package/lib/runtime-core.js +33 -0
- package/lib/runtime-core.js.map +1 -0
- package/lib/runtime-execute.d.ts +82 -0
- package/lib/runtime-execute.d.ts.map +1 -0
- package/lib/runtime-execute.js +333 -0
- package/lib/runtime-execute.js.map +1 -0
- package/lib/runtime-registry.d.ts +131 -0
- package/lib/runtime-registry.d.ts.map +1 -0
- package/lib/runtime-registry.js +269 -0
- package/lib/runtime-registry.js.map +1 -0
- package/lib/runtime-results.d.ts +32 -0
- package/lib/runtime-results.d.ts.map +1 -0
- package/lib/runtime-results.js +163 -0
- package/lib/runtime-results.js.map +1 -0
- package/lib/runtime-schemas.d.ts +112 -0
- package/lib/runtime-schemas.d.ts.map +1 -0
- package/lib/runtime-schemas.js +222 -0
- package/lib/runtime-schemas.js.map +1 -0
- package/lib/scheduler.d.ts +22 -0
- package/lib/scheduler.d.ts.map +1 -0
- package/lib/scheduler.js +21 -0
- package/lib/scheduler.js.map +1 -0
- package/lib/schema-spec.d.ts +154 -0
- package/lib/schema-spec.d.ts.map +1 -0
- package/lib/schema-spec.js +9 -0
- package/lib/schema-spec.js.map +1 -0
- package/lib/schema.d.ts +5 -0
- package/lib/schema.d.ts.map +1 -0
- package/lib/schema.js +3 -0
- package/lib/schema.js.map +1 -0
- package/lib/testing.d.ts +25 -0
- package/lib/testing.d.ts.map +1 -0
- package/lib/testing.js +25 -0
- package/lib/testing.js.map +1 -0
- package/lib/tool-layer.d.ts +49 -0
- package/lib/tool-layer.d.ts.map +1 -0
- package/lib/tool-layer.js +57 -0
- package/lib/tool-layer.js.map +1 -0
- package/lib/tool-types.d.ts +385 -0
- package/lib/tool-types.d.ts.map +1 -0
- package/lib/tool-types.js +11 -0
- package/lib/tool-types.js.map +1 -0
- package/lib/ts-types.d.ts +37 -0
- package/lib/ts-types.d.ts.map +1 -0
- package/lib/ts-types.js +265 -0
- package/lib/ts-types.js.map +1 -0
- package/lib/types.d.ts +55 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +7 -0
- package/lib/types.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-mode.js","sourceRoot":"","sources":["../src/code-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compilation of the author-facing value-schema DSL to the enforced raw JSON
|
|
3
|
+
* Schema subset, plus the typed {@link defineTool} helper and its argument
|
|
4
|
+
* validation. DSL types live in {@link ./schema-spec.ts}.
|
|
5
|
+
* @module dsh-tools/define-tool
|
|
6
|
+
*/
|
|
7
|
+
import { HarnessError } from '@deepseek-ai/dsh-llm';
|
|
8
|
+
import type { ContentBlock } from '@deepseek-ai/dsh-llm';
|
|
9
|
+
import type { JsonValue } from '@deepseek-ai/dsh-session';
|
|
10
|
+
import type { ToolDefinition, ToolExecution, ToolExecutionResult, ToolRunContext, ToolResult } from './index.ts';
|
|
11
|
+
import type { JsonSchemaNode } from './json-schema.ts';
|
|
12
|
+
import type { InferArgs, InferValue, ParameterJsonSchema, ParameterSchemaSpec, ValueSchemaSpec } from './schema-spec.ts';
|
|
13
|
+
import type { ToolCallView, ToolResultView } from './presentation.ts';
|
|
14
|
+
/**
|
|
15
|
+
* Compile one author-facing value schema to the enforced raw JSON Schema
|
|
16
|
+
* subset. The author-only `json` node becomes an annotation-only schema.
|
|
17
|
+
* @param spec - schema for any JSON-value root.
|
|
18
|
+
* @returns The asserted raw schema projection.
|
|
19
|
+
*/
|
|
20
|
+
export declare function valueSchemaSpecToJsonSchema(spec: ValueSchemaSpec): JsonSchemaNode;
|
|
21
|
+
/**
|
|
22
|
+
* Compile the implicit open parameter object into raw JSON Schema.
|
|
23
|
+
* @param spec - per-property parameter definitions.
|
|
24
|
+
* @returns An object-rooted raw schema with no implicit-root openness override.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parameterSchemaSpecToJsonSchema(spec: ParameterSchemaSpec): ParameterJsonSchema;
|
|
27
|
+
/** Invalid model-generated arguments for a typed tool. */
|
|
28
|
+
export declare class ToolArgsError extends HarnessError {
|
|
29
|
+
/** Individual violations in schema-walk order. */
|
|
30
|
+
readonly violations: string[];
|
|
31
|
+
constructor(violations: string[]);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Validate model-generated arguments against an implicit parameter schema.
|
|
35
|
+
* @param spec - declared parameter schema.
|
|
36
|
+
* @param args - candidate arguments, however malformed.
|
|
37
|
+
* @returns Path-qualified violations; empty means valid.
|
|
38
|
+
*/
|
|
39
|
+
export declare function validateArgs(spec: ParameterSchemaSpec, args: unknown): string[];
|
|
40
|
+
/** Options for {@link defineTool}. */
|
|
41
|
+
export interface DefineToolOptions<S extends ParameterSchemaSpec, O extends ValueSchemaSpec> {
|
|
42
|
+
/** Tool name (must be unique). */
|
|
43
|
+
readonly name: string;
|
|
44
|
+
/** Human-readable description sent to the model. */
|
|
45
|
+
readonly description: string;
|
|
46
|
+
/** Per-property parameter schema compiled to an implicit open object root. */
|
|
47
|
+
readonly parameters: S;
|
|
48
|
+
/** Canonical output schema plus pure Native and presentation projections. */
|
|
49
|
+
readonly output: {
|
|
50
|
+
/** Schema enforced against every successful body or policy-replaced value. */
|
|
51
|
+
readonly schema: O;
|
|
52
|
+
/** Pure Native/model rendering of one validated canonical value. */
|
|
53
|
+
render(args: InferArgs<S>, value: InferValue<NoInfer<O>>): ContentBlock[];
|
|
54
|
+
/** Pure replayable presentation metadata for direct top-level calls. */
|
|
55
|
+
presentationMeta?(args: InferArgs<S>, value: InferValue<NoInfer<O>>): JsonValue;
|
|
56
|
+
};
|
|
57
|
+
/** Optional positive cooperative timeout budget in milliseconds. */
|
|
58
|
+
readonly timeoutMs?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Pure classifier for sibling overlap.
|
|
61
|
+
* @param args - typed validated arguments.
|
|
62
|
+
* @returns Whether the call may join a parallel group.
|
|
63
|
+
*/
|
|
64
|
+
isConcurrencySafe?(args: InferArgs<S>): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Execute the tool after argument validation.
|
|
67
|
+
* @param args - typed validated arguments.
|
|
68
|
+
* @param exec - execution identity, caller, cancellation, and nesting data.
|
|
69
|
+
* @returns The canonical value declared by `output.schema`.
|
|
70
|
+
*/
|
|
71
|
+
execute(args: InferArgs<S>, exec: ToolRunContext): Promise<InferValue<NoInfer<O>>>;
|
|
72
|
+
/**
|
|
73
|
+
* Optional last-mile content transform for every normalized outcome. Unlike
|
|
74
|
+
* `execute`, arguments remain `unknown` because invalid-input failures also
|
|
75
|
+
* reach this callback. See {@link ToolDefinition.finalizeContent}.
|
|
76
|
+
* @param exec - immutable execution identity and arguments.
|
|
77
|
+
* @param result - complete normalized outcome before materialization.
|
|
78
|
+
* @returns replacement content, or `undefined` to preserve it.
|
|
79
|
+
*/
|
|
80
|
+
finalizeContent?(exec: Readonly<ToolExecution>, result: Readonly<ToolExecutionResult>): ContentBlock[] | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Pure pending-state presenter.
|
|
83
|
+
* @param args - typed validated arguments.
|
|
84
|
+
* @returns Tool-owned render intent, or `undefined` for the generic card.
|
|
85
|
+
*/
|
|
86
|
+
presentCall?(args: InferArgs<S>): ToolCallView | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* Pure completed-state presenter.
|
|
89
|
+
* @param args - typed validated arguments.
|
|
90
|
+
* @param result - final model-facing tool result.
|
|
91
|
+
* @returns Tool-owned render intent, or `undefined` for the generic card.
|
|
92
|
+
*/
|
|
93
|
+
presentResult?(args: InferArgs<S>, result: ToolResult): ToolResultView | undefined;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Define a first-party tool with inferred arguments and strict execution
|
|
97
|
+
* validation. Replay-only presenters validate softly and fall back to generic
|
|
98
|
+
* rendering for obsolete logged arguments.
|
|
99
|
+
* @param options - typed definition and optional finalizer and presenters.
|
|
100
|
+
* @returns A registry-ready definition.
|
|
101
|
+
*/
|
|
102
|
+
export declare function defineTool<const S extends ParameterSchemaSpec, const O extends ValueSchemaSpec>(options: DefineToolOptions<S, O>): ToolDefinition;
|
|
103
|
+
//# sourceMappingURL=define-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-tool.d.ts","sourceRoot":"","sources":["../src/define-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compilation of the author-facing value-schema DSL to the enforced raw JSON
|
|
3
|
+
* Schema subset, plus the typed {@link defineTool} helper and its argument
|
|
4
|
+
* validation. DSL types live in {@link ./schema-spec.ts}.
|
|
5
|
+
* @module dsh-tools/define-tool
|
|
6
|
+
*/
|
|
7
|
+
import { HarnessError } from '@deepseek-ai/dsh-llm';
|
|
8
|
+
import { assertSupportedJsonSchema, isJsonSchemaRecord, isPlainJsonArray, JsonSchemaError, validateJsonSchemaValue } from "./json-schema.js";
|
|
9
|
+
const ANNOTATION_KEYS = ['description', 'title', 'default', 'examples'];
|
|
10
|
+
/** Throw one author-schema violation through the shared schema error type. */
|
|
11
|
+
function authorError(message) {
|
|
12
|
+
throw new JsonSchemaError([message]);
|
|
13
|
+
}
|
|
14
|
+
/** Copy own annotation fields for validation by the raw-schema boundary. */
|
|
15
|
+
function copyAnnotations(source, target) {
|
|
16
|
+
if (Object.hasOwn(source, 'description'))
|
|
17
|
+
target.description = source.description;
|
|
18
|
+
if (Object.hasOwn(source, 'title'))
|
|
19
|
+
target.title = source.title;
|
|
20
|
+
if (Object.hasOwn(source, 'default'))
|
|
21
|
+
target.default = source.default;
|
|
22
|
+
if (Object.hasOwn(source, 'examples'))
|
|
23
|
+
target.examples = source.examples;
|
|
24
|
+
}
|
|
25
|
+
/** Reject author-only keys outside one node's declared vocabulary. */
|
|
26
|
+
function assertAuthorKeys(source, path, allowed) {
|
|
27
|
+
for (const key of Object.keys(source)) {
|
|
28
|
+
if (!allowed.includes(key))
|
|
29
|
+
authorError(`${path}.${key} is not supported by the value schema DSL`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Install a compiled node without giving `__proto__` assignment semantics. */
|
|
33
|
+
function assignCompiledNode(destination, node) {
|
|
34
|
+
switch (destination.kind) {
|
|
35
|
+
case 'root':
|
|
36
|
+
destination.holder.value = node;
|
|
37
|
+
break;
|
|
38
|
+
case 'property':
|
|
39
|
+
Object.defineProperty(destination.target, destination.key, {
|
|
40
|
+
value: node,
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
});
|
|
45
|
+
break;
|
|
46
|
+
case 'item':
|
|
47
|
+
destination.target.items = node;
|
|
48
|
+
break;
|
|
49
|
+
case 'one-of':
|
|
50
|
+
destination.target[destination.index] = node;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Install a compiled property map at its root or containing object node. */
|
|
55
|
+
function assignCompiledPropertyMap(destination, compiled) {
|
|
56
|
+
if (destination.kind === 'root') {
|
|
57
|
+
destination.holder.value = compiled;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
destination.target.properties = compiled.properties;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** Execute an author-schema compilation task graph without recursive descent. */
|
|
64
|
+
function runSchemaCompiler(initial) {
|
|
65
|
+
const seen = new Set();
|
|
66
|
+
const tasks = [initial];
|
|
67
|
+
for (let task = tasks.pop(); task !== undefined; task = tasks.pop()) {
|
|
68
|
+
if (task.kind === 'leave') {
|
|
69
|
+
seen.delete(task.input);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (task.kind === 'property-map-tail') {
|
|
73
|
+
if (task.required.length > 0) {
|
|
74
|
+
task.compiled.required = task.required;
|
|
75
|
+
if (task.destination.kind === 'object')
|
|
76
|
+
task.destination.target.required = task.required;
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (task.kind === 'property') {
|
|
81
|
+
if (!isJsonSchemaRecord(task.property))
|
|
82
|
+
authorError(`${task.path} must be a value schema object`);
|
|
83
|
+
if (Object.hasOwn(task.property, 'required') && task.property.required !== true) {
|
|
84
|
+
authorError(`${task.path}.required must be true when present`);
|
|
85
|
+
}
|
|
86
|
+
if (Object.hasOwn(task.property, 'required') && task.property.required === true)
|
|
87
|
+
task.required.push(task.key);
|
|
88
|
+
tasks.push({
|
|
89
|
+
kind: 'value',
|
|
90
|
+
input: task.property,
|
|
91
|
+
path: task.path,
|
|
92
|
+
allowRequired: true,
|
|
93
|
+
destination: { kind: 'property', target: task.properties, key: task.key },
|
|
94
|
+
});
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (task.kind === 'property-map') {
|
|
98
|
+
if (!isJsonSchemaRecord(task.input))
|
|
99
|
+
authorError(`${task.path} must be an object of value schemas`);
|
|
100
|
+
if (seen.has(task.input))
|
|
101
|
+
authorError(`${task.path} is circular`);
|
|
102
|
+
seen.add(task.input);
|
|
103
|
+
const compiled = { properties: {} };
|
|
104
|
+
const required = [];
|
|
105
|
+
assignCompiledPropertyMap(task.destination, compiled);
|
|
106
|
+
tasks.push({ kind: 'leave', input: task.input });
|
|
107
|
+
tasks.push({ kind: 'property-map-tail', compiled, required, destination: task.destination });
|
|
108
|
+
const entries = Object.entries(task.input);
|
|
109
|
+
for (let index = entries.length - 1; index >= 0; index--) {
|
|
110
|
+
const entry = entries[index];
|
|
111
|
+
/* v8 ignore next -- the loop is bounded by the captured entry count. */
|
|
112
|
+
if (entry === undefined)
|
|
113
|
+
continue;
|
|
114
|
+
tasks.push({
|
|
115
|
+
kind: 'property',
|
|
116
|
+
property: entry[1],
|
|
117
|
+
path: `${task.path}.${entry[0]}`,
|
|
118
|
+
key: entry[0],
|
|
119
|
+
properties: compiled.properties,
|
|
120
|
+
required,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const { input, path } = task;
|
|
126
|
+
if (!isJsonSchemaRecord(input))
|
|
127
|
+
authorError(`${path} must be a value schema object`);
|
|
128
|
+
if (seen.has(input))
|
|
129
|
+
authorError(`${path} is circular`);
|
|
130
|
+
seen.add(input);
|
|
131
|
+
const authorKeys = [...ANNOTATION_KEYS, ...(task.allowRequired ? ['required'] : [])];
|
|
132
|
+
const node = {};
|
|
133
|
+
assignCompiledNode(task.destination, node);
|
|
134
|
+
tasks.push({ kind: 'leave', input });
|
|
135
|
+
if (Object.hasOwn(input, 'oneOf')) {
|
|
136
|
+
assertAuthorKeys(input, path, [...authorKeys, 'oneOf', 'type']);
|
|
137
|
+
if (Object.hasOwn(input, 'type'))
|
|
138
|
+
authorError(`${path} cannot declare both type and oneOf`);
|
|
139
|
+
if (!isPlainJsonArray(input.oneOf))
|
|
140
|
+
authorError(`${path}.oneOf must be an array of at least two value schemas`);
|
|
141
|
+
const branches = [];
|
|
142
|
+
node.oneOf = branches;
|
|
143
|
+
copyAnnotations(input, node);
|
|
144
|
+
for (let index = input.oneOf.length - 1; index >= 0; index--) {
|
|
145
|
+
tasks.push({
|
|
146
|
+
kind: 'value',
|
|
147
|
+
input: input.oneOf[index],
|
|
148
|
+
path: `${path}.oneOf[${index}]`,
|
|
149
|
+
allowRequired: false,
|
|
150
|
+
destination: { kind: 'one-of', target: branches, index },
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const inputType = Object.hasOwn(input, 'type') ? input.type : undefined;
|
|
156
|
+
switch (inputType) {
|
|
157
|
+
case 'json':
|
|
158
|
+
assertAuthorKeys(input, path, [...authorKeys, 'type']);
|
|
159
|
+
copyAnnotations(input, node);
|
|
160
|
+
break;
|
|
161
|
+
case 'object':
|
|
162
|
+
assertAuthorKeys(input, path, [...authorKeys, 'type', 'properties', 'additionalProperties']);
|
|
163
|
+
if (!Object.hasOwn(input, 'additionalProperties') || typeof input.additionalProperties !== 'boolean') {
|
|
164
|
+
authorError(`${path}.additionalProperties must be explicitly true or false`);
|
|
165
|
+
}
|
|
166
|
+
node.type = 'object';
|
|
167
|
+
copyAnnotations(input, node);
|
|
168
|
+
node.additionalProperties = input.additionalProperties;
|
|
169
|
+
if (Object.hasOwn(input, 'properties')) {
|
|
170
|
+
tasks.push({
|
|
171
|
+
kind: 'property-map',
|
|
172
|
+
input: input.properties,
|
|
173
|
+
path: `${path}.properties`,
|
|
174
|
+
destination: { kind: 'object', target: node },
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
case 'array':
|
|
179
|
+
assertAuthorKeys(input, path, [...authorKeys, 'type', 'items']);
|
|
180
|
+
node.type = 'array';
|
|
181
|
+
copyAnnotations(input, node);
|
|
182
|
+
if (Object.hasOwn(input, 'items')) {
|
|
183
|
+
tasks.push({
|
|
184
|
+
kind: 'value',
|
|
185
|
+
input: input.items,
|
|
186
|
+
path: `${path}.items`,
|
|
187
|
+
allowRequired: false,
|
|
188
|
+
destination: { kind: 'item', target: node },
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
break;
|
|
192
|
+
case 'string':
|
|
193
|
+
case 'number':
|
|
194
|
+
case 'integer':
|
|
195
|
+
case 'boolean':
|
|
196
|
+
case 'null':
|
|
197
|
+
assertAuthorKeys(input, path, [...authorKeys, 'type', 'enum', 'const']);
|
|
198
|
+
node.type = inputType;
|
|
199
|
+
copyAnnotations(input, node);
|
|
200
|
+
if (Object.hasOwn(input, 'enum')) {
|
|
201
|
+
if (!isPlainJsonArray(input.enum))
|
|
202
|
+
authorError(`${path}.enum must be a non-empty array of scalar values`);
|
|
203
|
+
node.enum = Array.from(input.enum, entry => entry);
|
|
204
|
+
}
|
|
205
|
+
if (Object.hasOwn(input, 'const'))
|
|
206
|
+
node.const = input.const;
|
|
207
|
+
break;
|
|
208
|
+
default:
|
|
209
|
+
authorError(`${path}.type must be string/number/integer/boolean/null/array/object/json, or use oneOf`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/** Compile one implicit property map, collecting per-property requiredness. */
|
|
214
|
+
function compilePropertyMap(input, path) {
|
|
215
|
+
const holder = {};
|
|
216
|
+
runSchemaCompiler({ kind: 'property-map', input, path, destination: { kind: 'root', holder } });
|
|
217
|
+
/* v8 ignore next -- the root task assigns before scheduling any descendants. */
|
|
218
|
+
return holder.value ?? authorError(`${path} did not compile`);
|
|
219
|
+
}
|
|
220
|
+
/** Compile one author node without applying any consumer root restriction. */
|
|
221
|
+
function compileValueSchema(input, path) {
|
|
222
|
+
const holder = {};
|
|
223
|
+
runSchemaCompiler({ kind: 'value', input, path, allowRequired: false, destination: { kind: 'root', holder } });
|
|
224
|
+
/* v8 ignore next -- the root task assigns before scheduling any descendants. */
|
|
225
|
+
return holder.value ?? authorError(`${path} did not compile`);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Compile one author-facing value schema to the enforced raw JSON Schema
|
|
229
|
+
* subset. The author-only `json` node becomes an annotation-only schema.
|
|
230
|
+
* @param spec - schema for any JSON-value root.
|
|
231
|
+
* @returns The asserted raw schema projection.
|
|
232
|
+
*/
|
|
233
|
+
export function valueSchemaSpecToJsonSchema(spec) {
|
|
234
|
+
const schema = compileValueSchema(spec, 'schema');
|
|
235
|
+
assertSupportedJsonSchema(schema);
|
|
236
|
+
return schema;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Compile the implicit open parameter object into raw JSON Schema.
|
|
240
|
+
* @param spec - per-property parameter definitions.
|
|
241
|
+
* @returns An object-rooted raw schema with no implicit-root openness override.
|
|
242
|
+
*/
|
|
243
|
+
export function parameterSchemaSpecToJsonSchema(spec) {
|
|
244
|
+
const compiled = compilePropertyMap(spec, 'parameters');
|
|
245
|
+
const schema = {
|
|
246
|
+
type: 'object',
|
|
247
|
+
properties: compiled.properties,
|
|
248
|
+
...(compiled.required === undefined ? {} : { required: compiled.required }),
|
|
249
|
+
};
|
|
250
|
+
assertSupportedJsonSchema(schema);
|
|
251
|
+
return schema;
|
|
252
|
+
}
|
|
253
|
+
/** Invalid model-generated arguments for a typed tool. */
|
|
254
|
+
export class ToolArgsError extends HarnessError {
|
|
255
|
+
/** Individual violations in schema-walk order. */
|
|
256
|
+
violations;
|
|
257
|
+
constructor(violations) {
|
|
258
|
+
super(`invalid arguments: ${violations.join('; ')}`, 'INVALID_ARGS');
|
|
259
|
+
this.name = 'ToolArgsError';
|
|
260
|
+
this.violations = violations;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Validate model-generated arguments against an implicit parameter schema.
|
|
265
|
+
* @param spec - declared parameter schema.
|
|
266
|
+
* @param args - candidate arguments, however malformed.
|
|
267
|
+
* @returns Path-qualified violations; empty means valid.
|
|
268
|
+
*/
|
|
269
|
+
export function validateArgs(spec, args) {
|
|
270
|
+
return validateJsonSchemaValue(parameterSchemaSpecToJsonSchema(spec), args, '');
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Define a first-party tool with inferred arguments and strict execution
|
|
274
|
+
* validation. Replay-only presenters validate softly and fall back to generic
|
|
275
|
+
* rendering for obsolete logged arguments.
|
|
276
|
+
* @param options - typed definition and optional finalizer and presenters.
|
|
277
|
+
* @returns A registry-ready definition.
|
|
278
|
+
*/
|
|
279
|
+
export function defineTool(options) {
|
|
280
|
+
// Object-literal methods do not use `this`; retaining references is safe.
|
|
281
|
+
// oxlint-disable-next-line typescript/unbound-method
|
|
282
|
+
const userExecute = options.execute;
|
|
283
|
+
// oxlint-disable-next-line typescript/unbound-method
|
|
284
|
+
const userFinalizeContent = options.finalizeContent;
|
|
285
|
+
// oxlint-disable-next-line typescript/unbound-method
|
|
286
|
+
const userRender = options.output.render;
|
|
287
|
+
// oxlint-disable-next-line typescript/unbound-method
|
|
288
|
+
const userPresentationMeta = options.output.presentationMeta;
|
|
289
|
+
// oxlint-disable-next-line typescript/unbound-method
|
|
290
|
+
const userPresentCall = options.presentCall;
|
|
291
|
+
// oxlint-disable-next-line typescript/unbound-method
|
|
292
|
+
const userPresentResult = options.presentResult;
|
|
293
|
+
// oxlint-disable-next-line typescript/unbound-method
|
|
294
|
+
const userIsConcurrencySafe = options.isConcurrencySafe;
|
|
295
|
+
if (options.timeoutMs !== undefined && (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0)) {
|
|
296
|
+
throw new Error(`defineTool(${options.name}): timeoutMs must be a positive finite number`);
|
|
297
|
+
}
|
|
298
|
+
const parameters = parameterSchemaSpecToJsonSchema(options.parameters);
|
|
299
|
+
const outputSchema = valueSchemaSpecToJsonSchema(options.output.schema);
|
|
300
|
+
const validate = (args) => validateJsonSchemaValue(parameters, args, '');
|
|
301
|
+
const tool = {
|
|
302
|
+
name: options.name,
|
|
303
|
+
description: options.description,
|
|
304
|
+
parameters: parameters,
|
|
305
|
+
output: {
|
|
306
|
+
schema: outputSchema,
|
|
307
|
+
render(args, value) {
|
|
308
|
+
return userRender(args, value);
|
|
309
|
+
},
|
|
310
|
+
...userPresentationMeta !== undefined ? {
|
|
311
|
+
presentationMeta(args, value) {
|
|
312
|
+
return userPresentationMeta(args, value);
|
|
313
|
+
},
|
|
314
|
+
} : {},
|
|
315
|
+
},
|
|
316
|
+
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
|
|
317
|
+
async execute(args, exec) {
|
|
318
|
+
const violations = validate(args);
|
|
319
|
+
if (violations.length > 0)
|
|
320
|
+
throw new ToolArgsError(violations);
|
|
321
|
+
return userExecute(args, exec);
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
if (userFinalizeContent) {
|
|
325
|
+
tool.finalizeContent = (exec, result) => userFinalizeContent(exec, result);
|
|
326
|
+
}
|
|
327
|
+
// Presentation is display-only and may run on REPLAY of arbitrary logged args
|
|
328
|
+
// (possibly from an older schema), so it must never throw: validate softly and
|
|
329
|
+
// fall back to `undefined` (a generic UI presentation) on any mismatch, rather
|
|
330
|
+
// than the hard `ToolArgsError` the execute path raises.
|
|
331
|
+
if (userPresentCall) {
|
|
332
|
+
tool.presentCall = (args) => {
|
|
333
|
+
if (validate(args).length > 0)
|
|
334
|
+
return undefined;
|
|
335
|
+
return userPresentCall(args);
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
if (userPresentResult) {
|
|
339
|
+
tool.presentResult = (args, result) => {
|
|
340
|
+
if (validate(args).length > 0)
|
|
341
|
+
return undefined;
|
|
342
|
+
return userPresentResult(args, result);
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
if (userIsConcurrencySafe) {
|
|
346
|
+
tool.isConcurrencySafe = (args) => {
|
|
347
|
+
if (validate(args).length > 0)
|
|
348
|
+
return false;
|
|
349
|
+
return userIsConcurrencySafe(args);
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
return tool;
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=define-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../src/define-tool.ts"],"names":[],"mappings":"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"}
|