@namzu/sdk 45.1.0 → 46.0.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/dist/authorization/gate.d.ts +5 -2
  3. package/dist/authorization/gate.d.ts.map +1 -1
  4. package/dist/authorization/gate.js +25 -4
  5. package/dist/authorization/gate.js.map +1 -1
  6. package/dist/authorization/rules.d.ts.map +1 -1
  7. package/dist/authorization/rules.js +19 -0
  8. package/dist/authorization/rules.js.map +1 -1
  9. package/dist/authorization/shell-lexer.d.ts +24 -0
  10. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  11. package/dist/authorization/shell-lexer.js +69 -51
  12. package/dist/authorization/shell-lexer.js.map +1 -1
  13. package/dist/pricing/catalogue.generated.d.ts.map +1 -1
  14. package/dist/pricing/catalogue.generated.js +28 -4
  15. package/dist/pricing/catalogue.generated.js.map +1 -1
  16. package/dist/public-runtime.d.ts +3 -3
  17. package/dist/public-runtime.d.ts.map +1 -1
  18. package/dist/public-runtime.js +4 -2
  19. package/dist/public-runtime.js.map +1 -1
  20. package/dist/public-tools.d.ts +3 -2
  21. package/dist/public-tools.d.ts.map +1 -1
  22. package/dist/public-tools.js +5 -2
  23. package/dist/public-tools.js.map +1 -1
  24. package/dist/public-types.d.ts +3 -3
  25. package/dist/public-types.d.ts.map +1 -1
  26. package/dist/registry/tool/callable.d.ts +22 -0
  27. package/dist/registry/tool/callable.d.ts.map +1 -0
  28. package/dist/registry/tool/callable.js +29 -0
  29. package/dist/registry/tool/callable.js.map +1 -0
  30. package/dist/registry/tool/execute.d.ts.map +1 -1
  31. package/dist/registry/tool/execute.js +8 -1
  32. package/dist/registry/tool/execute.js.map +1 -1
  33. package/dist/runtime/query/executor/tool-call-admission.d.ts +37 -11
  34. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  35. package/dist/runtime/query/executor/tool-call-admission.js +38 -12
  36. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  37. package/dist/runtime/query/executor.d.ts +4 -2
  38. package/dist/runtime/query/executor.d.ts.map +1 -1
  39. package/dist/runtime/query/executor.js +18 -5
  40. package/dist/runtime/query/executor.js.map +1 -1
  41. package/dist/runtime/query/review-policy.d.ts +43 -0
  42. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  43. package/dist/runtime/query/review-policy.js +59 -16
  44. package/dist/runtime/query/review-policy.js.map +1 -1
  45. package/dist/skills/registry.d.ts +6 -0
  46. package/dist/skills/registry.d.ts.map +1 -1
  47. package/dist/skills/registry.js +1 -0
  48. package/dist/skills/registry.js.map +1 -1
  49. package/dist/tools/builtins/computer-use-coordinates.d.ts +65 -0
  50. package/dist/tools/builtins/computer-use-coordinates.d.ts.map +1 -0
  51. package/dist/tools/builtins/computer-use-coordinates.js +123 -0
  52. package/dist/tools/builtins/computer-use-coordinates.js.map +1 -0
  53. package/dist/tools/builtins/computer-use-image.d.ts +77 -0
  54. package/dist/tools/builtins/computer-use-image.d.ts.map +1 -0
  55. package/dist/tools/builtins/computer-use-image.js +223 -0
  56. package/dist/tools/builtins/computer-use-image.js.map +1 -0
  57. package/dist/tools/builtins/computer-use.d.ts +519 -14
  58. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  59. package/dist/tools/builtins/computer-use.js +1188 -183
  60. package/dist/tools/builtins/computer-use.js.map +1 -1
  61. package/dist/tools/builtins/index.d.ts +2 -1
  62. package/dist/tools/builtins/index.d.ts.map +1 -1
  63. package/dist/tools/builtins/index.js +1 -1
  64. package/dist/tools/builtins/index.js.map +1 -1
  65. package/dist/tools/builtins/skill.d.ts +74 -0
  66. package/dist/tools/builtins/skill.d.ts.map +1 -1
  67. package/dist/tools/builtins/skill.js +214 -174
  68. package/dist/tools/builtins/skill.js.map +1 -1
  69. package/dist/tools/defineTool.d.ts +2 -0
  70. package/dist/tools/defineTool.d.ts.map +1 -1
  71. package/dist/tools/defineTool.js +7 -0
  72. package/dist/tools/defineTool.js.map +1 -1
  73. package/dist/tools/schedules/present.d.ts.map +1 -1
  74. package/dist/tools/schedules/present.js +2 -0
  75. package/dist/tools/schedules/present.js.map +1 -1
  76. package/dist/tools/schedules/schedule-tool.d.ts +6 -5
  77. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  78. package/dist/tools/schedules/schedule-tool.js +121 -30
  79. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  80. package/dist/tools/schedules/types.d.ts +69 -1
  81. package/dist/tools/schedules/types.d.ts.map +1 -1
  82. package/dist/types/authorization/index.d.ts +21 -0
  83. package/dist/types/authorization/index.d.ts.map +1 -1
  84. package/dist/types/authorization/index.js +5 -0
  85. package/dist/types/authorization/index.js.map +1 -1
  86. package/dist/types/computer-use/index.d.ts +176 -0
  87. package/dist/types/computer-use/index.d.ts.map +1 -1
  88. package/dist/types/computer-use/index.js.map +1 -1
  89. package/dist/types/tool/index.d.ts +19 -0
  90. package/dist/types/tool/index.d.ts.map +1 -1
  91. package/dist/types/tool/index.js.map +1 -1
  92. package/package.json +3 -1
  93. package/src/authorization/gate.ts +25 -4
  94. package/src/authorization/rules.ts +18 -0
  95. package/src/authorization/shell-lexer.ts +73 -45
  96. package/src/pricing/catalogue.generated.ts +28 -4
  97. package/src/pricing/rates.source.json +27 -6
  98. package/src/public-runtime.ts +16 -2
  99. package/src/public-tools.ts +19 -1
  100. package/src/public-types.ts +5 -0
  101. package/src/registry/tool/callable.ts +37 -0
  102. package/src/registry/tool/execute.ts +8 -1
  103. package/src/runtime/query/executor/tool-call-admission.ts +60 -16
  104. package/src/runtime/query/executor.ts +19 -4
  105. package/src/runtime/query/review-policy.ts +103 -15
  106. package/src/skills/registry.ts +8 -0
  107. package/src/tools/builtins/computer-use-coordinates.ts +144 -0
  108. package/src/tools/builtins/computer-use-image.ts +278 -0
  109. package/src/tools/builtins/computer-use.ts +1485 -191
  110. package/src/tools/builtins/index.ts +7 -1
  111. package/src/tools/builtins/skill.ts +304 -174
  112. package/src/tools/defineTool.ts +10 -0
  113. package/src/tools/schedules/present.ts +2 -0
  114. package/src/tools/schedules/schedule-tool.ts +139 -33
  115. package/src/tools/schedules/types.ts +69 -1
  116. package/src/types/authorization/index.ts +21 -0
  117. package/src/types/computer-use/index.ts +202 -0
  118. package/src/types/tool/index.ts +19 -0
@@ -128,6 +128,23 @@ export declare const SANDBOX_ESCAPE_UNATTENDED_REFUSAL = "Refused: a call in thi
128
128
  * the CLI's `--add-dir`), where an operator wrote the directory down.
129
129
  */
130
130
  export declare const OUTSIDE_ROOTS_UNATTENDED_REFUSAL = "Refused: a call in this batch reaches a path outside the working directory and the added directories, which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Stay inside the working directory, or tell the user which directory you need so they can add it to the session (the CLI's --add-dir).";
131
+ /**
132
+ * What the model is told when a batch would show it the operator's screen for
133
+ * the first time in a session and nobody can be asked.
134
+ */
135
+ export declare const SCREEN_CONSENT_UNATTENDED_REFUSAL = "Refused: this call would send what is on the user's screen to the model provider, which a person agrees to once per session, and nobody can be asked in this session. Nothing in this batch ran. Tell the user computer use needs their consent in an interactive session.";
136
+ /** What the model is told when the operator declines to share the screen. */
137
+ export declare const SCREEN_CONSENT_DECLINED_FEEDBACK = "The user declined to share their screen in this session. Nothing in this batch ran. Do not take screenshots or read windows again; ask the user how they want to proceed.";
138
+ /**
139
+ * The sessions whose operator agreed to let the model see the screen.
140
+ *
141
+ * A host keeps one for as long as its sessions live and hands the same box to
142
+ * every policy it builds, so a mode switch keeps the answer and a new session
143
+ * (a different id) is asked again. The policy only adds to it.
144
+ */
145
+ export interface ScreenConsentRecord {
146
+ readonly sessions: Set<string>;
147
+ }
131
148
  /** The batch a person is asked about. */
132
149
  export interface ToolReviewRequest {
133
150
  /** Originating session, preserved by createReviewHandler for host attribution. */
@@ -135,6 +152,14 @@ export interface ToolReviewRequest {
135
152
  /** Originating turn, preserved by createReviewHandler for host attribution. */
136
153
  readonly turnId?: TurnId;
137
154
  readonly toolCalls: readonly ToolCallSummary[];
155
+ /**
156
+ * This batch would send the screen to the model provider for the first
157
+ * time in the session (see {@link ReviewPolicyOptions.screenConsent}).
158
+ * The question is whether the model may see the screen for the rest of
159
+ * the session; a yes also approves this batch, and later screen captures
160
+ * in the session run without asking.
161
+ */
162
+ readonly screenConsent?: true;
138
163
  }
139
164
  export type ToolReviewAnswer = {
140
165
  readonly kind: 'approve';
@@ -185,6 +210,24 @@ export interface ReviewPolicyOptions {
185
210
  * either way.
186
211
  */
187
212
  readonly skillGrants?: 'honour' | 'ignore';
213
+ /**
214
+ * Ask once per session before the model first sees the screen.
215
+ *
216
+ * With a record, a batch holding a call that captures the screen
217
+ * ({@link capturesScreen}) in a session not yet in `sessions` is put to
218
+ * a person first, as a {@link ToolReviewRequest.screenConsent} request,
219
+ * even when every call in it only reads: in `prompt`, `accept-edits` and
220
+ * `plan`. A yes adds the session; a no refuses the batch. `strict`
221
+ * refuses such a call unless a rule allowed it, `auto` never asks, and a
222
+ * policy without a `prompt` refuses. A call a rule allowed is never
223
+ * asked about. Omitted, the screen is treated like any other read.
224
+ */
225
+ readonly screenConsent?: ScreenConsentRecord;
226
+ /**
227
+ * Which calls capture the screen. Default: the tool's own
228
+ * `capturesScreen` declaration, read from `registry`; nothing without one.
229
+ */
230
+ readonly capturesScreen?: (name: string, input: unknown) => boolean;
188
231
  }
189
232
  /** The handler behind `createReviewPolicy`, for a host that wants only the function. */
190
233
  export declare function createReviewHandler(options?: ReviewPolicyOptions): ResumeHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"review-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
@@ -126,6 +126,13 @@ export const SANDBOX_ESCAPE_UNATTENDED_REFUSAL = 'Refused: a call in this batch
126
126
  * the CLI's `--add-dir`), where an operator wrote the directory down.
127
127
  */
128
128
  export const OUTSIDE_ROOTS_UNATTENDED_REFUSAL = "Refused: a call in this batch reaches a path outside the working directory and the added directories, which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Stay inside the working directory, or tell the user which directory you need so they can add it to the session (the CLI's --add-dir).";
129
+ /**
130
+ * What the model is told when a batch would show it the operator's screen for
131
+ * the first time in a session and nobody can be asked.
132
+ */
133
+ export const SCREEN_CONSENT_UNATTENDED_REFUSAL = "Refused: this call would send what is on the user's screen to the model provider, which a person agrees to once per session, and nobody can be asked in this session. Nothing in this batch ran. Tell the user computer use needs their consent in an interactive session.";
134
+ /** What the model is told when the operator declines to share the screen. */
135
+ export const SCREEN_CONSENT_DECLINED_FEEDBACK = 'The user declined to share their screen in this session. Nothing in this batch ran. Do not take screenshots or read windows again; ask the user how they want to proceed.';
129
136
  /**
130
137
  * Whether a skill's `allowed-tools` grant may stand in for a person on this
131
138
  * call: the kernel marked it, and nothing that outranks a skill is present.
@@ -146,10 +153,57 @@ export function createReviewHandler(options = {}) {
146
153
  const exempt = options.exempt ??
147
154
  (registry ? (name, input) => isReviewExempt(registry, name, input) : () => false);
148
155
  const remembered = options.remembered ?? { all: false };
156
+ const capturesScreen = options.capturesScreen ??
157
+ (registry
158
+ ? (name, input) => {
159
+ const tool = registry.get(name) ?? registry.get(name.toLowerCase());
160
+ return tool?.capturesScreen?.(input) === true;
161
+ }
162
+ : () => false);
149
163
  return async (request) => {
150
164
  if (request.type !== 'tool_review') {
151
165
  return request.type === 'plan_approval' ? { action: 'approve_plan' } : { action: 'continue' };
152
166
  }
167
+ // The one answer a person gives for this batch. The screen question
168
+ // below shows the whole batch, so its yes also answers any question
169
+ // the rest of this function would ask; nobody is asked twice.
170
+ let answered;
171
+ const ask = async (screenConsent) => answered ??
172
+ prompt({
173
+ sessionId: request.sessionId,
174
+ turnId: request.turnId,
175
+ toolCalls: request.toolCalls,
176
+ ...(screenConsent ? { screenConsent } : {}),
177
+ });
178
+ // The first look at the screen in a session is the operator's to allow:
179
+ // what is on it goes to the model provider, and a screenshot reads as
180
+ // harmlessly as a file read to every rule below. Asked once, in the
181
+ // modes where a person decides; a rule that allowed the call already
182
+ // said yes, and a call a rule denied will not run.
183
+ const consent = options.screenConsent;
184
+ const sessionKey = String(request.sessionId ?? '');
185
+ if (consent &&
186
+ mode !== 'auto' &&
187
+ !consent.sessions.has(sessionKey) &&
188
+ request.toolCalls.some((tc) => tc.authorization?.decision !== 'allow' &&
189
+ tc.authorization?.decision !== 'deny' &&
190
+ capturesScreen(tc.name, tc.input))) {
191
+ if (mode === 'strict')
192
+ return { action: 'reject_tools', feedback: STRICT_MODE_REFUSAL };
193
+ if (!prompt)
194
+ return { action: 'reject_tools', feedback: SCREEN_CONSENT_UNATTENDED_REFUSAL };
195
+ const answer = await ask(true);
196
+ if (answer.kind === 'reject') {
197
+ return {
198
+ action: 'reject_tools',
199
+ feedback: answer.feedback ?? SCREEN_CONSENT_DECLINED_FEEDBACK,
200
+ };
201
+ }
202
+ consent.sessions.add(sessionKey);
203
+ if (answer.kind === 'approve-all')
204
+ remembered.all = true;
205
+ answered = answer;
206
+ }
153
207
  if (!batchNeedsReview(request.toolCalls, exempt)) {
154
208
  return { action: 'approve_tools' };
155
209
  }
@@ -192,11 +246,7 @@ export function createReviewHandler(options = {}) {
192
246
  ? { action: 'approve_tools', confirmedEscalations: escapes }
193
247
  : { action: 'reject_tools', feedback: SANDBOX_ESCAPE_UNATTENDED_REFUSAL };
194
248
  }
195
- const answer = await prompt({
196
- sessionId: request.sessionId,
197
- turnId: request.turnId,
198
- toolCalls: request.toolCalls,
199
- });
249
+ const answer = await ask();
200
250
  if (answer.kind === 'reject') {
201
251
  return {
202
252
  action: 'reject_tools',
@@ -216,11 +266,7 @@ export function createReviewHandler(options = {}) {
216
266
  if (request.toolCalls.some((tc) => (tc.escalation?.outsidePaths?.length ?? 0) > 0)) {
217
267
  if (!prompt)
218
268
  return { action: 'reject_tools', feedback: OUTSIDE_ROOTS_UNATTENDED_REFUSAL };
219
- const answer = await prompt({
220
- sessionId: request.sessionId,
221
- turnId: request.turnId,
222
- toolCalls: request.toolCalls,
223
- });
269
+ const answer = await ask();
224
270
  if (answer.kind === 'reject') {
225
271
  return {
226
272
  action: 'reject_tools',
@@ -246,7 +292,8 @@ export function createReviewHandler(options = {}) {
246
292
  tc.escalation !== undefined ||
247
293
  !(exempt(tc.name, tc.input) ||
248
294
  (mode === 'accept-edits' && ACCEPT_EDITS_TOOLS.has(tc.name))));
249
- if (options.skillGrants !== 'ignore' &&
295
+ if (answered === undefined &&
296
+ options.skillGrants !== 'ignore' &&
250
297
  needsPerson.length > 0 &&
251
298
  needsPerson.every(isSkillGranted)) {
252
299
  return {
@@ -254,11 +301,7 @@ export function createReviewHandler(options = {}) {
254
301
  skillGranted: needsPerson.map((tc) => tc.id),
255
302
  };
256
303
  }
257
- const answer = await prompt({
258
- sessionId: request.sessionId,
259
- turnId: request.turnId,
260
- toolCalls: request.toolCalls,
261
- });
304
+ const answer = await ask();
262
305
  switch (answer.kind) {
263
306
  case 'approve':
264
307
  return { action: 'approve_tools' };
@@ -1 +1 @@
1
- {"version":3,"file":"review-policy.js","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-policy.js","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,12 @@ export declare class SkillRegistry {
68
68
  registeredName: string;
69
69
  description: string;
70
70
  location: string;
71
+ /**
72
+ * The skill's directory (`Skill.dirPath`); `location` is its SKILL.md.
73
+ * Always set here. Declared optional so a subclass that overrides
74
+ * `catalog()` without it still compiles.
75
+ */
76
+ directory?: string;
71
77
  allowedTools?: string;
72
78
  invocation?: 'model' | 'operator' | 'both';
73
79
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAA;AAsB/D,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B;;;;;;;OAOG;gBACS,GAAG,CAAC,EAAE,MAAM;IAIlB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,oBAAiC,GAAG,OAAO,CAAC,KAAK,CAAC;IAOzF,6EAA6E;YAC/D,KAAK;IAeb,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,oBAAiC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBhG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;;;;;;OAOG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAUrC;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKjC;;;;;;;;;;;;;;OAcG;IACG,IAAI,CACT,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,oBAA6B,GAClC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IA4CvC,oCAAoC;YACtB,UAAU;IAiBxB,IAAI,IAAI,KAAK,EAAE;IAIf;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CACvB,SAAS;QACR,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;KAC1C,EAAE,CACH;IA+BD;;;;;;OAMG;IACH,KAAK,IAAI,SAAS,MAAM,EAAE;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG1B;AAED,wBAAsB,iBAAiB,CACtC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,KAAK,GAAE,oBAAiC,EACxC,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC,CA8BrB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAA;AAsB/D,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B;;;;;;;OAOG;gBACS,GAAG,CAAC,EAAE,MAAM;IAIlB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,oBAAiC,GAAG,OAAO,CAAC,KAAK,CAAC;IAOzF,6EAA6E;YAC/D,KAAK;IAeb,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,oBAAiC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBhG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;;;;;;OAOG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAUrC;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKjC;;;;;;;;;;;;;;OAcG;IACG,IAAI,CACT,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,oBAA6B,GAClC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IA4CvC,oCAAoC;YACtB,UAAU;IAiBxB,IAAI,IAAI,KAAK,EAAE;IAIf;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CACvB,SAAS;QACR,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB;;;;WAIG;QACH,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;KAC1C,EAAE,CACH;IAiCD;;;;;;OAMG;IACH,KAAK,IAAI,SAAS,MAAM,EAAE;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG1B;AAED,wBAAsB,iBAAiB,CACtC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,KAAK,GAAE,oBAAiC,EACxC,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC,CA8BrB"}
@@ -188,6 +188,7 @@ export class SkillRegistry {
188
188
  registeredName,
189
189
  description: skill.metadata.description,
190
190
  location: join(skill.dirPath, SKILL_FILENAME),
191
+ directory: skill.dirPath,
191
192
  ...(skill.metadata.allowedTools === undefined
192
193
  ? {}
193
194
  : { allowedTools: skill.metadata.allowedTools }),
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { DisplayInfo, Point, Rect } from '../../types/computer-use/index.js';
2
+ /**
3
+ * One screenshot the model was shown: its id, the size of the image it saw,
4
+ * and the display that image was made from. Every coordinate the model sends
5
+ * is read against one of these.
6
+ */
7
+ export interface ScreenshotFrame {
8
+ /** `s1`, `s2`, … in the order the tool returned them. */
9
+ readonly id: string;
10
+ readonly imageWidth: number;
11
+ readonly imageHeight: number;
12
+ /** Physical size and virtual-desktop origin of what the image shows. */
13
+ readonly display: DisplayInfo;
14
+ }
15
+ /**
16
+ * The frames this tool instance has returned, newest last. A model reads a
17
+ * coordinate off the screenshot in front of it, which is almost always the
18
+ * latest; `get(id)` covers the one that names an earlier screenshot, and a
19
+ * display whose resolution changed in between is mapped through the frame
20
+ * the model actually looked at.
21
+ */
22
+ export declare class ScreenshotFrames {
23
+ private readonly capacity;
24
+ private readonly frames;
25
+ private counter;
26
+ private newest;
27
+ constructor(capacity?: number);
28
+ record(image: {
29
+ width: number;
30
+ height: number;
31
+ }, display: DisplayInfo): ScreenshotFrame;
32
+ latest(): ScreenshotFrame | undefined;
33
+ get(id: string): ScreenshotFrame | undefined;
34
+ }
35
+ /** A display for a capture from a host that does not report one. */
36
+ export declare function assumedDisplay(width: number, height: number): DisplayInfo;
37
+ /**
38
+ * Whether `point` lies on the frame's image. The far edge is admitted — a
39
+ * model aiming at the last column sometimes says `width` — and is clamped in
40
+ * {@link toDisplayPoint}; anything further out is a coordinate read off some
41
+ * other image, and acting on it would click somewhere the model never saw.
42
+ */
43
+ export declare function pointOnImage(frame: ScreenshotFrame, point: Point): boolean;
44
+ /**
45
+ * A model coordinate (pixels of the frame's image) as the display-relative
46
+ * physical pixel the host acts on. Every image pixel maps to the display
47
+ * pixel at its centre, and {@link toImagePoint} maps that pixel straight
48
+ * back, so a round trip is exact whenever the image is no larger than the
49
+ * display.
50
+ */
51
+ export declare function toDisplayPoint(frame: ScreenshotFrame, point: Point): Point;
52
+ /** A display-relative physical pixel as the image pixel of `frame` that shows it. */
53
+ export declare function toImagePoint(frame: ScreenshotFrame, point: Point): Point;
54
+ /**
55
+ * An image-space rectangle as the display-relative physical rectangle that
56
+ * covers it completely (outward rounding), clamped to the display. Null when
57
+ * nothing of it is on the display.
58
+ */
59
+ export declare function toDisplayRect(frame: ScreenshotFrame, rect: Rect): Rect | null;
60
+ /**
61
+ * Virtual-desktop bounds (a window's) as the part of them visible in
62
+ * `frame`'s image, in its pixels; null when none of it is on that display.
63
+ */
64
+ export declare function desktopRectOnImage(frame: ScreenshotFrame, bounds: Rect): Rect | null;
65
+ //# sourceMappingURL=computer-use-coordinates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-use-coordinates.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use-coordinates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAA;AAEjF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAKhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,MAAM,CAA6B;gBAEd,QAAQ,SAAK;IAE1C,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,WAAW,GAAG,eAAe;IAkBvF,MAAM,IAAI,eAAe,GAAG,SAAS;IAIrC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;CAG5C;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAE1E;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAK1E;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAS7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAiBpF"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * The frames this tool instance has returned, newest last. A model reads a
3
+ * coordinate off the screenshot in front of it, which is almost always the
4
+ * latest; `get(id)` covers the one that names an earlier screenshot, and a
5
+ * display whose resolution changed in between is mapped through the frame
6
+ * the model actually looked at.
7
+ */
8
+ export class ScreenshotFrames {
9
+ capacity;
10
+ frames = new Map();
11
+ counter = 0;
12
+ newest;
13
+ constructor(capacity = 32) {
14
+ this.capacity = capacity;
15
+ }
16
+ record(image, display) {
17
+ this.counter += 1;
18
+ const frame = {
19
+ id: `s${this.counter}`,
20
+ imageWidth: image.width,
21
+ imageHeight: image.height,
22
+ display,
23
+ };
24
+ this.frames.set(frame.id, frame);
25
+ this.newest = frame;
26
+ while (this.frames.size > this.capacity) {
27
+ const oldest = this.frames.keys().next().value;
28
+ if (oldest === undefined)
29
+ break;
30
+ this.frames.delete(oldest);
31
+ }
32
+ return frame;
33
+ }
34
+ latest() {
35
+ return this.newest;
36
+ }
37
+ get(id) {
38
+ return this.frames.get(id);
39
+ }
40
+ }
41
+ /** A display for a capture from a host that does not report one. */
42
+ export function assumedDisplay(width, height) {
43
+ return { id: 'default', x: 0, y: 0, width, height, scaleFactor: 1, primary: true };
44
+ }
45
+ /**
46
+ * Whether `point` lies on the frame's image. The far edge is admitted — a
47
+ * model aiming at the last column sometimes says `width` — and is clamped in
48
+ * {@link toDisplayPoint}; anything further out is a coordinate read off some
49
+ * other image, and acting on it would click somewhere the model never saw.
50
+ */
51
+ export function pointOnImage(frame, point) {
52
+ return point.x >= 0 && point.y >= 0 && point.x <= frame.imageWidth && point.y <= frame.imageHeight;
53
+ }
54
+ function axisToDisplay(value, image, display) {
55
+ // The centre of image pixel `value`, in display pixels: unbiased, where
56
+ // `value * scale` would lean every click half an image pixel up and left.
57
+ const mapped = Math.floor(((value + 0.5) * display) / image);
58
+ return Math.min(Math.max(mapped, 0), display - 1);
59
+ }
60
+ function axisToImage(value, display, image) {
61
+ const mapped = Math.floor(((value + 0.5) * image) / display);
62
+ return Math.min(Math.max(mapped, 0), image - 1);
63
+ }
64
+ /**
65
+ * A model coordinate (pixels of the frame's image) as the display-relative
66
+ * physical pixel the host acts on. Every image pixel maps to the display
67
+ * pixel at its centre, and {@link toImagePoint} maps that pixel straight
68
+ * back, so a round trip is exact whenever the image is no larger than the
69
+ * display.
70
+ */
71
+ export function toDisplayPoint(frame, point) {
72
+ return {
73
+ x: axisToDisplay(point.x, frame.imageWidth, frame.display.width),
74
+ y: axisToDisplay(point.y, frame.imageHeight, frame.display.height),
75
+ };
76
+ }
77
+ /** A display-relative physical pixel as the image pixel of `frame` that shows it. */
78
+ export function toImagePoint(frame, point) {
79
+ return {
80
+ x: axisToImage(point.x, frame.display.width, frame.imageWidth),
81
+ y: axisToImage(point.y, frame.display.height, frame.imageHeight),
82
+ };
83
+ }
84
+ /**
85
+ * An image-space rectangle as the display-relative physical rectangle that
86
+ * covers it completely (outward rounding), clamped to the display. Null when
87
+ * nothing of it is on the display.
88
+ */
89
+ export function toDisplayRect(frame, rect) {
90
+ const sx = frame.display.width / frame.imageWidth;
91
+ const sy = frame.display.height / frame.imageHeight;
92
+ const left = Math.max(0, Math.floor(rect.x * sx));
93
+ const top = Math.max(0, Math.floor(rect.y * sy));
94
+ const right = Math.min(frame.display.width, Math.ceil((rect.x + rect.width) * sx));
95
+ const bottom = Math.min(frame.display.height, Math.ceil((rect.y + rect.height) * sy));
96
+ if (right <= left || bottom <= top)
97
+ return null;
98
+ return { x: left, y: top, width: right - left, height: bottom - top };
99
+ }
100
+ /**
101
+ * Virtual-desktop bounds (a window's) as the part of them visible in
102
+ * `frame`'s image, in its pixels; null when none of it is on that display.
103
+ */
104
+ export function desktopRectOnImage(frame, bounds) {
105
+ const { display } = frame;
106
+ const left = Math.max(bounds.x - display.x, 0);
107
+ const top = Math.max(bounds.y - display.y, 0);
108
+ const right = Math.min(bounds.x + bounds.width - display.x, display.width);
109
+ const bottom = Math.min(bounds.y + bounds.height - display.y, display.height);
110
+ if (right <= left || bottom <= top)
111
+ return null;
112
+ const sx = frame.imageWidth / display.width;
113
+ const sy = frame.imageHeight / display.height;
114
+ const x = Math.floor(left * sx);
115
+ const y = Math.floor(top * sy);
116
+ return {
117
+ x,
118
+ y,
119
+ width: Math.max(1, Math.ceil(right * sx) - x),
120
+ height: Math.max(1, Math.ceil(bottom * sy) - y),
121
+ };
122
+ }
123
+ //# sourceMappingURL=computer-use-coordinates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-use-coordinates.js","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use-coordinates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Screenshot sizing for `computer_use`.
3
+ *
4
+ * A model sees a screenshot at some size and answers with coordinates in that
5
+ * size. If the host sends a native 3440x1440 capture, the provider shrinks it
6
+ * before the model looks (or, for some computer-use tool results, rejects
7
+ * it), and every coordinate the model returns is in a space the host never
8
+ * observed: clicks land systematically off target. So the tool shrinks each
9
+ * capture itself, to the largest size the model takes without a further
10
+ * resize, remembers that size, and maps coordinates back.
11
+ *
12
+ * The size rule is the vision encoder's published reference implementation
13
+ * (`resizedSize`), ported line for line — it is a policy, not an image
14
+ * operation. The pixels are
15
+ * decoded, resampled and encoded by maintained packages: `fast-png` (PNG
16
+ * codec) and `pica` (Lanczos-3 resampling, pure JS with a bundled WASM
17
+ * kernel). Neither needs a native build, and both load only when a capture
18
+ * actually has to change size.
19
+ */
20
+ /**
21
+ * The limits a screenshot is fitted to: neither padded edge above
22
+ * `maxLongEdge`, and no more than `maxTiles` 28-pixel patches.
23
+ */
24
+ export interface ScreenshotLimits {
25
+ readonly maxLongEdge: number;
26
+ readonly maxTiles: number;
27
+ }
28
+ /**
29
+ * Every current vision model takes this without resizing it: the standard
30
+ * tier's limits exactly, and well inside the `detail: "high"` budget of the
31
+ * Responses wire (2048 px, 2 500 32-pixel patches). The default.
32
+ */
33
+ export declare const STANDARD_SCREENSHOT_LIMITS: ScreenshotLimits;
34
+ /**
35
+ * The high-resolution tier some newer models accept. Use it only when every
36
+ * model the session can reach is on that tier: a standard-tier model rejects
37
+ * such a screenshot in a tool result, the Responses wire's `high` detail
38
+ * shrinks anything over 2048 px, and a request carrying more than 20 images
39
+ * caps every image at 2000 px.
40
+ */
41
+ export declare const HIGH_RES_SCREENSHOT_LIMITS: ScreenshotLimits;
42
+ export interface ImageSize {
43
+ readonly width: number;
44
+ readonly height: number;
45
+ }
46
+ /**
47
+ * The largest aspect-preserving size within `limits`; the input unchanged
48
+ * when it already fits. Never larger than the input.
49
+ */
50
+ export declare function screenshotTargetSize(width: number, height: number, limits?: ScreenshotLimits): ImageSize;
51
+ /** Width and height from a PNG's IHDR chunk, without decoding it. */
52
+ export declare function pngSize(data: Uint8Array): ImageSize;
53
+ /** A PNG ready for the model, and the size it was made from. */
54
+ export interface FittedImage {
55
+ readonly data: Buffer;
56
+ readonly width: number;
57
+ readonly height: number;
58
+ readonly sourceWidth: number;
59
+ readonly sourceHeight: number;
60
+ }
61
+ /**
62
+ * Fit a PNG capture to `limits`. A capture that already fits is returned
63
+ * byte for byte, without being decoded.
64
+ */
65
+ export declare function fitPng(data: Buffer, limits: ScreenshotLimits): Promise<FittedImage>;
66
+ /**
67
+ * Cut `rect` (pixels of `data`, already clamped to it) out of a PNG and fit
68
+ * the piece to `limits`. Never enlarges: a small region stays at its native
69
+ * size, which is still more detail than the downscaled screenshot showed.
70
+ */
71
+ export declare function cropAndFitPng(data: Buffer, rect: {
72
+ x: number;
73
+ y: number;
74
+ width: number;
75
+ height: number;
76
+ }, limits: ScreenshotLimits): Promise<FittedImage>;
77
+ //# sourceMappingURL=computer-use-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-use-image.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use-image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAGvC,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAGvC,CAAA;AAEF,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACvB;AAaD;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAA6C,GACnD,SAAS,CAqBX;AAED,qEAAqE;AACrE,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAMnD;AAwHD,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAazF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC7D,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,WAAW,CAAC,CAYtB"}