@namzu/sdk 33.1.0 → 33.1.1
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 33.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- adebe83: Publish `computer_use` through a flat provider-safe model schema while retaining its discriminated runtime validation. Anthropic now rejects root `anyOf`, `oneOf`, and `allOf` tool schemas locally with the offending tool name instead of sending a request that fails with HTTP 400. The CLI receives both fixes and keeps provider-chain diagnostics scoped to their requested home instead of leaking credentials from the process user's home.
|
|
8
|
+
|
|
3
9
|
## 33.1.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer-use.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAGX,eAAe,EAGf,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,2BAA2B,CAAA;AAG3E,eAAO,MAAM,sBAAsB,EAAG,cAAuB,CAAA;AAa7D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBhB,CAAA;
|
|
1
|
+
{"version":3,"file":"computer-use.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAGX,eAAe,EAGf,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,2BAA2B,CAAA;AAG3E,eAAO,MAAM,sBAAsB,EAAG,cAAuB,CAAA;AAa7D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBhB,CAAA;AAwDF;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAqJtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,CA2CxF"}
|
|
@@ -29,6 +29,57 @@ const actionSchema = z.discriminatedUnion('type', [
|
|
|
29
29
|
z.object({ type: z.literal('type_text'), text: z.string() }),
|
|
30
30
|
z.object({ type: z.literal('key'), keys: z.string() }),
|
|
31
31
|
]);
|
|
32
|
+
/**
|
|
33
|
+
* The provider-facing shape is deliberately flat.
|
|
34
|
+
*
|
|
35
|
+
* The runtime schema above is the authoritative contract: it knows which
|
|
36
|
+
* fields each action requires. Rendering that discriminated union produces a
|
|
37
|
+
* root `anyOf`, however, and some custom-tool wires reject root combinators
|
|
38
|
+
* even when every branch is an object. A model can still see every field and
|
|
39
|
+
* every action here; incomplete combinations are rejected by `actionSchema`
|
|
40
|
+
* before the host is called, with the recovery hint below.
|
|
41
|
+
*/
|
|
42
|
+
const pointModelInputSchema = {
|
|
43
|
+
type: 'object',
|
|
44
|
+
properties: {
|
|
45
|
+
x: { type: 'integer' },
|
|
46
|
+
y: { type: 'integer' },
|
|
47
|
+
},
|
|
48
|
+
required: ['x', 'y'],
|
|
49
|
+
additionalProperties: false,
|
|
50
|
+
};
|
|
51
|
+
const modelInputSchema = {
|
|
52
|
+
type: 'object',
|
|
53
|
+
properties: {
|
|
54
|
+
type: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
enum: [
|
|
57
|
+
'screenshot',
|
|
58
|
+
'cursor_position',
|
|
59
|
+
'mouse_move',
|
|
60
|
+
'mouse_click',
|
|
61
|
+
'mouse_drag',
|
|
62
|
+
'scroll',
|
|
63
|
+
'type_text',
|
|
64
|
+
'key',
|
|
65
|
+
],
|
|
66
|
+
description: 'Desktop action. screenshot and cursor_position need no other fields; mouse_move needs to; mouse_click needs at and button; mouse_drag needs from, to, and button; scroll needs at, direction, and amount; type_text needs text; key needs keys.',
|
|
67
|
+
},
|
|
68
|
+
to: pointModelInputSchema,
|
|
69
|
+
at: pointModelInputSchema,
|
|
70
|
+
from: pointModelInputSchema,
|
|
71
|
+
button: { type: 'string', enum: ['left', 'right', 'middle'] },
|
|
72
|
+
direction: { type: 'string', enum: ['up', 'down', 'left', 'right'] },
|
|
73
|
+
amount: { type: 'integer', description: 'Positive integer scroll distance.' },
|
|
74
|
+
text: { type: 'string', description: 'Literal text to type.' },
|
|
75
|
+
keys: {
|
|
76
|
+
type: 'string',
|
|
77
|
+
description: 'Key or key chord to press, for example ENTER or CTRL+R.',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
required: ['type'],
|
|
81
|
+
additionalProperties: false,
|
|
82
|
+
};
|
|
32
83
|
const DESTRUCTIVE_ACTION_TYPES = new Set([
|
|
33
84
|
'mouse_click',
|
|
34
85
|
'mouse_drag',
|
|
@@ -193,6 +244,8 @@ export function createComputerUseTool(host) {
|
|
|
193
244
|
name: COMPUTER_USE_TOOL_NAME,
|
|
194
245
|
description: buildDescription(host),
|
|
195
246
|
inputSchema: actionSchema,
|
|
247
|
+
modelInputSchema: structuredClone(modelInputSchema),
|
|
248
|
+
validationErrorHint: 'Action requirements: mouse_move needs "to"; mouse_click needs "at" and "button"; mouse_drag needs "from", "to", and "button"; scroll needs "at", "direction", and positive "amount"; type_text needs "text"; key needs "keys".',
|
|
196
249
|
category: 'custom',
|
|
197
250
|
permissions: [],
|
|
198
251
|
readOnly: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer-use.js","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AASvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAuB,CAAA;AAE7D,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACnB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACnB,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE7D,MAAM,YAAY,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACjD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;IAC3C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAChD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;IAC5D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACxF,CAAC,CAAC,MAAM,CAAC;QACR,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,iBAAiB;KACzB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACR,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACtD,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"computer-use.js","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -43,6 +43,60 @@ const actionSchema = z.discriminatedUnion('type', [
|
|
|
43
43
|
z.object({ type: z.literal('key'), keys: z.string() }),
|
|
44
44
|
])
|
|
45
45
|
|
|
46
|
+
/**
|
|
47
|
+
* The provider-facing shape is deliberately flat.
|
|
48
|
+
*
|
|
49
|
+
* The runtime schema above is the authoritative contract: it knows which
|
|
50
|
+
* fields each action requires. Rendering that discriminated union produces a
|
|
51
|
+
* root `anyOf`, however, and some custom-tool wires reject root combinators
|
|
52
|
+
* even when every branch is an object. A model can still see every field and
|
|
53
|
+
* every action here; incomplete combinations are rejected by `actionSchema`
|
|
54
|
+
* before the host is called, with the recovery hint below.
|
|
55
|
+
*/
|
|
56
|
+
const pointModelInputSchema = {
|
|
57
|
+
type: 'object',
|
|
58
|
+
properties: {
|
|
59
|
+
x: { type: 'integer' },
|
|
60
|
+
y: { type: 'integer' },
|
|
61
|
+
},
|
|
62
|
+
required: ['x', 'y'],
|
|
63
|
+
additionalProperties: false,
|
|
64
|
+
} as const
|
|
65
|
+
|
|
66
|
+
const modelInputSchema: Record<string, unknown> = {
|
|
67
|
+
type: 'object',
|
|
68
|
+
properties: {
|
|
69
|
+
type: {
|
|
70
|
+
type: 'string',
|
|
71
|
+
enum: [
|
|
72
|
+
'screenshot',
|
|
73
|
+
'cursor_position',
|
|
74
|
+
'mouse_move',
|
|
75
|
+
'mouse_click',
|
|
76
|
+
'mouse_drag',
|
|
77
|
+
'scroll',
|
|
78
|
+
'type_text',
|
|
79
|
+
'key',
|
|
80
|
+
],
|
|
81
|
+
description:
|
|
82
|
+
'Desktop action. screenshot and cursor_position need no other fields; mouse_move needs to; mouse_click needs at and button; mouse_drag needs from, to, and button; scroll needs at, direction, and amount; type_text needs text; key needs keys.',
|
|
83
|
+
},
|
|
84
|
+
to: pointModelInputSchema,
|
|
85
|
+
at: pointModelInputSchema,
|
|
86
|
+
from: pointModelInputSchema,
|
|
87
|
+
button: { type: 'string', enum: ['left', 'right', 'middle'] },
|
|
88
|
+
direction: { type: 'string', enum: ['up', 'down', 'left', 'right'] },
|
|
89
|
+
amount: { type: 'integer', description: 'Positive integer scroll distance.' },
|
|
90
|
+
text: { type: 'string', description: 'Literal text to type.' },
|
|
91
|
+
keys: {
|
|
92
|
+
type: 'string',
|
|
93
|
+
description: 'Key or key chord to press, for example ENTER or CTRL+R.',
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
required: ['type'],
|
|
97
|
+
additionalProperties: false,
|
|
98
|
+
}
|
|
99
|
+
|
|
46
100
|
/**
|
|
47
101
|
* The tool's input, inferred from its schema.
|
|
48
102
|
*
|
|
@@ -225,6 +279,9 @@ export function createComputerUseTool(host: ComputerUseHost): ToolDefinition<Act
|
|
|
225
279
|
name: COMPUTER_USE_TOOL_NAME,
|
|
226
280
|
description: buildDescription(host),
|
|
227
281
|
inputSchema: actionSchema,
|
|
282
|
+
modelInputSchema: structuredClone(modelInputSchema),
|
|
283
|
+
validationErrorHint:
|
|
284
|
+
'Action requirements: mouse_move needs "to"; mouse_click needs "at" and "button"; mouse_drag needs "from", "to", and "button"; scroll needs "at", "direction", and positive "amount"; type_text needs "text"; key needs "keys".',
|
|
228
285
|
category: 'custom',
|
|
229
286
|
permissions: [],
|
|
230
287
|
readOnly: false,
|