@namzu/sdk 45.0.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 (281) hide show
  1. package/CHANGELOG.md +166 -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 +35 -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 +56 -6
  8. package/dist/authorization/rules.js.map +1 -1
  9. package/dist/authorization/shell-lexer.d.ts +38 -0
  10. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  11. package/dist/authorization/shell-lexer.js +88 -57
  12. package/dist/authorization/shell-lexer.js.map +1 -1
  13. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  14. package/dist/bridge/a2a/mapper.js +2 -0
  15. package/dist/bridge/a2a/mapper.js.map +1 -1
  16. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  17. package/dist/bridge/sse/mapper.js +1 -0
  18. package/dist/bridge/sse/mapper.js.map +1 -1
  19. package/dist/directory/types.d.ts +2 -0
  20. package/dist/directory/types.d.ts.map +1 -1
  21. package/dist/directory/types.js.map +1 -1
  22. package/dist/manager/resident/outbox.d.ts +4 -4
  23. package/dist/pricing/catalogue.generated.d.ts.map +1 -1
  24. package/dist/pricing/catalogue.generated.js +28 -4
  25. package/dist/pricing/catalogue.generated.js.map +1 -1
  26. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  27. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  28. package/dist/prompt/coding-agent-doctrine.js +1 -0
  29. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  30. package/dist/public-runtime.d.ts +6 -3
  31. package/dist/public-runtime.d.ts.map +1 -1
  32. package/dist/public-runtime.js +14 -2
  33. package/dist/public-runtime.js.map +1 -1
  34. package/dist/public-tools.d.ts +7 -2
  35. package/dist/public-tools.d.ts.map +1 -1
  36. package/dist/public-tools.js +15 -2
  37. package/dist/public-tools.js.map +1 -1
  38. package/dist/public-types.d.ts +8 -2
  39. package/dist/public-types.d.ts.map +1 -1
  40. package/dist/registry/tool/callable.d.ts +22 -0
  41. package/dist/registry/tool/callable.d.ts.map +1 -0
  42. package/dist/registry/tool/callable.js +29 -0
  43. package/dist/registry/tool/callable.js.map +1 -0
  44. package/dist/registry/tool/execute.d.ts.map +1 -1
  45. package/dist/registry/tool/execute.js +8 -1
  46. package/dist/registry/tool/execute.js.map +1 -1
  47. package/dist/runtime/query/declined.d.ts +12 -0
  48. package/dist/runtime/query/declined.d.ts.map +1 -0
  49. package/dist/runtime/query/declined.js +12 -0
  50. package/dist/runtime/query/declined.js.map +1 -0
  51. package/dist/runtime/query/executor/tool-call-admission.d.ts +37 -11
  52. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  53. package/dist/runtime/query/executor/tool-call-admission.js +38 -12
  54. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  55. package/dist/runtime/query/executor.d.ts +7 -3
  56. package/dist/runtime/query/executor.d.ts.map +1 -1
  57. package/dist/runtime/query/executor.js +32 -7
  58. package/dist/runtime/query/executor.js.map +1 -1
  59. package/dist/runtime/query/index.d.ts.map +1 -1
  60. package/dist/runtime/query/index.js +1 -0
  61. package/dist/runtime/query/index.js.map +1 -1
  62. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  63. package/dist/runtime/query/iteration/index.js +7 -0
  64. package/dist/runtime/query/iteration/index.js.map +1 -1
  65. package/dist/runtime/query/iteration/phases/context.d.ts +6 -0
  66. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  67. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  68. package/dist/runtime/query/iteration/phases/handoff.d.ts +22 -0
  69. package/dist/runtime/query/iteration/phases/handoff.d.ts.map +1 -0
  70. package/dist/runtime/query/iteration/phases/handoff.js +65 -0
  71. package/dist/runtime/query/iteration/phases/handoff.js.map +1 -0
  72. package/dist/runtime/query/iteration/phases/index.d.ts +1 -0
  73. package/dist/runtime/query/iteration/phases/index.d.ts.map +1 -1
  74. package/dist/runtime/query/iteration/phases/index.js +1 -0
  75. package/dist/runtime/query/iteration/phases/index.js.map +1 -1
  76. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  77. package/dist/runtime/query/iteration/phases/tool-review.js +8 -3
  78. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  79. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  80. package/dist/runtime/query/resume-pending.js +3 -2
  81. package/dist/runtime/query/resume-pending.js.map +1 -1
  82. package/dist/runtime/query/review-policy.d.ts +43 -0
  83. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  84. package/dist/runtime/query/review-policy.js +63 -19
  85. package/dist/runtime/query/review-policy.js.map +1 -1
  86. package/dist/schedules/cron.d.ts +21 -0
  87. package/dist/schedules/cron.d.ts.map +1 -0
  88. package/dist/schedules/cron.js +167 -0
  89. package/dist/schedules/cron.js.map +1 -0
  90. package/dist/schedules/describe.d.ts +14 -0
  91. package/dist/schedules/describe.d.ts.map +1 -0
  92. package/dist/schedules/describe.js +133 -0
  93. package/dist/schedules/describe.js.map +1 -0
  94. package/dist/schedules/errors.d.ts +11 -0
  95. package/dist/schedules/errors.d.ts.map +1 -0
  96. package/dist/schedules/errors.js +15 -0
  97. package/dist/schedules/errors.js.map +1 -0
  98. package/dist/schedules/evaluate.d.ts +35 -0
  99. package/dist/schedules/evaluate.d.ts.map +1 -0
  100. package/dist/schedules/evaluate.js +158 -0
  101. package/dist/schedules/evaluate.js.map +1 -0
  102. package/dist/schedules/index.d.ts +11 -0
  103. package/dist/schedules/index.d.ts.map +1 -0
  104. package/dist/schedules/index.js +8 -0
  105. package/dist/schedules/index.js.map +1 -0
  106. package/dist/schedules/next-fire.d.ts +50 -0
  107. package/dist/schedules/next-fire.d.ts.map +1 -0
  108. package/dist/schedules/next-fire.js +250 -0
  109. package/dist/schedules/next-fire.js.map +1 -0
  110. package/dist/schedules/spec.d.ts +30 -0
  111. package/dist/schedules/spec.d.ts.map +1 -0
  112. package/dist/schedules/spec.js +169 -0
  113. package/dist/schedules/spec.js.map +1 -0
  114. package/dist/schedules/types.d.ts +144 -0
  115. package/dist/schedules/types.d.ts.map +1 -0
  116. package/dist/schedules/types.js +11 -0
  117. package/dist/schedules/types.js.map +1 -0
  118. package/dist/schedules/tz.d.ts +44 -0
  119. package/dist/schedules/tz.d.ts.map +1 -0
  120. package/dist/schedules/tz.js +141 -0
  121. package/dist/schedules/tz.js.map +1 -0
  122. package/dist/skills/index.d.ts +1 -1
  123. package/dist/skills/index.d.ts.map +1 -1
  124. package/dist/skills/index.js +1 -1
  125. package/dist/skills/index.js.map +1 -1
  126. package/dist/skills/loader.d.ts +16 -3
  127. package/dist/skills/loader.d.ts.map +1 -1
  128. package/dist/skills/loader.js +48 -4
  129. package/dist/skills/loader.js.map +1 -1
  130. package/dist/skills/registry.d.ts +6 -0
  131. package/dist/skills/registry.d.ts.map +1 -1
  132. package/dist/skills/registry.js +1 -0
  133. package/dist/skills/registry.js.map +1 -1
  134. package/dist/tools/builtins/browser-url.d.ts +83 -0
  135. package/dist/tools/builtins/browser-url.d.ts.map +1 -0
  136. package/dist/tools/builtins/browser-url.js +240 -0
  137. package/dist/tools/builtins/browser-url.js.map +1 -0
  138. package/dist/tools/builtins/browser.d.ts +367 -0
  139. package/dist/tools/builtins/browser.d.ts.map +1 -0
  140. package/dist/tools/builtins/browser.js +704 -0
  141. package/dist/tools/builtins/browser.js.map +1 -0
  142. package/dist/tools/builtins/computer-use-coordinates.d.ts +65 -0
  143. package/dist/tools/builtins/computer-use-coordinates.d.ts.map +1 -0
  144. package/dist/tools/builtins/computer-use-coordinates.js +123 -0
  145. package/dist/tools/builtins/computer-use-coordinates.js.map +1 -0
  146. package/dist/tools/builtins/computer-use-image.d.ts +77 -0
  147. package/dist/tools/builtins/computer-use-image.d.ts.map +1 -0
  148. package/dist/tools/builtins/computer-use-image.js +223 -0
  149. package/dist/tools/builtins/computer-use-image.js.map +1 -0
  150. package/dist/tools/builtins/computer-use.d.ts +519 -14
  151. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  152. package/dist/tools/builtins/computer-use.js +1188 -183
  153. package/dist/tools/builtins/computer-use.js.map +1 -1
  154. package/dist/tools/builtins/index.d.ts +2 -1
  155. package/dist/tools/builtins/index.d.ts.map +1 -1
  156. package/dist/tools/builtins/index.js +1 -1
  157. package/dist/tools/builtins/index.js.map +1 -1
  158. package/dist/tools/builtins/skill.d.ts +74 -0
  159. package/dist/tools/builtins/skill.d.ts.map +1 -1
  160. package/dist/tools/builtins/skill.js +214 -159
  161. package/dist/tools/builtins/skill.js.map +1 -1
  162. package/dist/tools/defineTool.d.ts +4 -0
  163. package/dist/tools/defineTool.d.ts.map +1 -1
  164. package/dist/tools/defineTool.js +8 -0
  165. package/dist/tools/defineTool.js.map +1 -1
  166. package/dist/tools/schedules/index.d.ts +5 -0
  167. package/dist/tools/schedules/index.d.ts.map +1 -0
  168. package/dist/tools/schedules/index.js +4 -0
  169. package/dist/tools/schedules/index.js.map +1 -0
  170. package/dist/tools/schedules/loop-tool.d.ts +14 -0
  171. package/dist/tools/schedules/loop-tool.d.ts.map +1 -0
  172. package/dist/tools/schedules/loop-tool.js +81 -0
  173. package/dist/tools/schedules/loop-tool.js.map +1 -0
  174. package/dist/tools/schedules/present.d.ts +16 -0
  175. package/dist/tools/schedules/present.d.ts.map +1 -0
  176. package/dist/tools/schedules/present.js +71 -0
  177. package/dist/tools/schedules/present.js.map +1 -0
  178. package/dist/tools/schedules/prompt-scan.d.ts +17 -0
  179. package/dist/tools/schedules/prompt-scan.d.ts.map +1 -0
  180. package/dist/tools/schedules/prompt-scan.js +92 -0
  181. package/dist/tools/schedules/prompt-scan.js.map +1 -0
  182. package/dist/tools/schedules/schedule-tool.d.ts +17 -0
  183. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -0
  184. package/dist/tools/schedules/schedule-tool.js +418 -0
  185. package/dist/tools/schedules/schedule-tool.js.map +1 -0
  186. package/dist/tools/schedules/types.d.ts +252 -0
  187. package/dist/tools/schedules/types.d.ts.map +1 -0
  188. package/dist/tools/schedules/types.js +11 -0
  189. package/dist/tools/schedules/types.js.map +1 -0
  190. package/dist/types/authorization/index.d.ts +107 -9
  191. package/dist/types/authorization/index.d.ts.map +1 -1
  192. package/dist/types/authorization/index.js +16 -1
  193. package/dist/types/authorization/index.js.map +1 -1
  194. package/dist/types/browser/index.d.ts +280 -0
  195. package/dist/types/browser/index.d.ts.map +1 -0
  196. package/dist/types/browser/index.js +12 -0
  197. package/dist/types/browser/index.js.map +1 -0
  198. package/dist/types/computer-use/index.d.ts +176 -0
  199. package/dist/types/computer-use/index.d.ts.map +1 -1
  200. package/dist/types/computer-use/index.js.map +1 -1
  201. package/dist/types/session/events.d.ts +6 -0
  202. package/dist/types/session/events.d.ts.map +1 -1
  203. package/dist/types/session/events.js.map +1 -1
  204. package/dist/types/session/records.d.ts +23 -0
  205. package/dist/types/session/records.d.ts.map +1 -1
  206. package/dist/types/session/records.js +9 -0
  207. package/dist/types/session/records.js.map +1 -1
  208. package/dist/types/tool/index.d.ts +60 -0
  209. package/dist/types/tool/index.d.ts.map +1 -1
  210. package/dist/types/tool/index.js.map +1 -1
  211. package/dist/types/tool/presentation.d.ts +7 -0
  212. package/dist/types/tool/presentation.d.ts.map +1 -1
  213. package/dist/utils/frontmatter.d.ts +18 -2
  214. package/dist/utils/frontmatter.d.ts.map +1 -1
  215. package/dist/utils/frontmatter.js +13 -3
  216. package/dist/utils/frontmatter.js.map +1 -1
  217. package/dist/utils/id.d.ts +8 -0
  218. package/dist/utils/id.d.ts.map +1 -1
  219. package/dist/utils/id.js +12 -0
  220. package/dist/utils/id.js.map +1 -1
  221. package/package.json +3 -1
  222. package/src/authorization/gate.ts +37 -4
  223. package/src/authorization/rules.ts +55 -7
  224. package/src/authorization/shell-lexer.ts +109 -51
  225. package/src/bridge/a2a/mapper.ts +2 -0
  226. package/src/bridge/sse/mapper.ts +1 -0
  227. package/src/directory/types.ts +2 -0
  228. package/src/pricing/catalogue.generated.ts +28 -4
  229. package/src/pricing/rates.source.json +27 -6
  230. package/src/prompt/coding-agent-doctrine.ts +1 -0
  231. package/src/public-runtime.ts +43 -1
  232. package/src/public-tools.ts +54 -1
  233. package/src/public-types.ts +55 -0
  234. package/src/registry/tool/callable.ts +37 -0
  235. package/src/registry/tool/execute.ts +8 -1
  236. package/src/runtime/query/declined.ts +12 -0
  237. package/src/runtime/query/executor/tool-call-admission.ts +60 -16
  238. package/src/runtime/query/executor.ts +36 -5
  239. package/src/runtime/query/index.ts +1 -0
  240. package/src/runtime/query/iteration/index.ts +8 -0
  241. package/src/runtime/query/iteration/phases/context.ts +6 -0
  242. package/src/runtime/query/iteration/phases/handoff.ts +74 -0
  243. package/src/runtime/query/iteration/phases/index.ts +1 -0
  244. package/src/runtime/query/iteration/phases/tool-review.ts +11 -4
  245. package/src/runtime/query/resume-pending.ts +3 -2
  246. package/src/runtime/query/review-policy.ts +107 -18
  247. package/src/schedules/cron.ts +202 -0
  248. package/src/schedules/describe.ts +138 -0
  249. package/src/schedules/errors.ts +15 -0
  250. package/src/schedules/evaluate.ts +178 -0
  251. package/src/schedules/index.ts +18 -0
  252. package/src/schedules/next-fire.ts +257 -0
  253. package/src/schedules/spec.ts +210 -0
  254. package/src/schedules/types.ts +163 -0
  255. package/src/schedules/tz.ts +155 -0
  256. package/src/skills/index.ts +1 -1
  257. package/src/skills/loader.ts +55 -4
  258. package/src/skills/registry.ts +8 -0
  259. package/src/tools/builtins/browser-url.ts +251 -0
  260. package/src/tools/builtins/browser.ts +817 -0
  261. package/src/tools/builtins/computer-use-coordinates.ts +144 -0
  262. package/src/tools/builtins/computer-use-image.ts +278 -0
  263. package/src/tools/builtins/computer-use.ts +1485 -191
  264. package/src/tools/builtins/index.ts +7 -1
  265. package/src/tools/builtins/skill.ts +304 -156
  266. package/src/tools/defineTool.ts +13 -0
  267. package/src/tools/schedules/index.ts +4 -0
  268. package/src/tools/schedules/loop-tool.ts +85 -0
  269. package/src/tools/schedules/present.ts +88 -0
  270. package/src/tools/schedules/prompt-scan.ts +96 -0
  271. package/src/tools/schedules/schedule-tool.ts +482 -0
  272. package/src/tools/schedules/types.ts +265 -0
  273. package/src/types/authorization/index.ts +81 -2
  274. package/src/types/browser/index.ts +341 -0
  275. package/src/types/computer-use/index.ts +202 -0
  276. package/src/types/session/events.ts +6 -0
  277. package/src/types/session/records.ts +10 -0
  278. package/src/types/tool/index.ts +61 -0
  279. package/src/types/tool/presentation.ts +7 -0
  280. package/src/utils/frontmatter.ts +29 -3
  281. package/src/utils/id.ts +14 -0
@@ -4,22 +4,6 @@ import { parseAllowedTools } from '../../authorization/skill-grant.js';
4
4
  import { isInvocableBy, skillInvocation } from '../../types/skills/index.js';
5
5
  import { defineTool } from '../defineTool.js';
6
6
  export { parseAllowedTools };
7
- /**
8
- * Load a skill's instructions, and apply what its `allowed-tools` grants.
9
- *
10
- * The manifest in the system prompt told the model that a SKILL.md exists
11
- * and to "read the SKILL.md at its <location> before writing code" — which
12
- * is a filesystem instruction, so a turn with no filesystem tools could see
13
- * every skill it had and open none of them. There was no skill-loading tool.
14
- *
15
- * `allowed-tools` is a PRE-APPROVAL, as the Agent Skills format defines it:
16
- * the listed tools skip the approval prompt for the rest of this turn, and
17
- * every other tool stays callable under the turn's ordinary review. It was
18
- * read here for a while as a restriction — the listed tools and nothing
19
- * else, from the next batch — which inverted what skill authors mean by it
20
- * and left a model that loaded `allowed-tools: Read Grep` without `bash`.
21
- * See `authorization/skill-grant.ts` for what a grant can and cannot do.
22
- */
23
7
  const inputSchema = z.object({
24
8
  name: z
25
9
  .string()
@@ -46,6 +30,7 @@ function snapshotDigest(snapshot) {
46
30
  ...(snapshot.skillDirectory === undefined
47
31
  ? {}
48
32
  : { skillDirectory: snapshot.skillDirectory }),
33
+ ...(snapshot.header === '' ? {} : { header: snapshot.header }),
49
34
  invocation: snapshot.invocation,
50
35
  }))
51
36
  .digest('base64url');
@@ -155,7 +140,9 @@ function continuationNotice(name, cursor) {
155
140
  }
156
141
  function pageSkillBody(input) {
157
142
  const { snapshot, digest, start, notice, maxChars } = input;
158
- const remaining = `${snapshot.body.slice(start)}${notice}`;
143
+ // The first page only: a continuation is read after it, in the same history.
144
+ const header = start === 0 ? snapshot.header : '';
145
+ const remaining = `${header}${snapshot.body.slice(start)}${notice}`;
159
146
  if (maxChars === undefined || maxChars <= 0 || remaining.length <= maxChars) {
160
147
  return { output: remaining };
161
148
  }
@@ -165,7 +152,7 @@ function pageSkillBody(input) {
165
152
  let end = boundaryAtOrBefore(snapshot.body, Math.min(snapshot.body.length - 1, start + maxChars));
166
153
  while (end > start) {
167
154
  const nextCursor = cursorFor(end, digest);
168
- const output = `${snapshot.body.slice(start, end)}${continuationNotice(snapshot.name, nextCursor)}${notice}`;
155
+ const output = `${header}${snapshot.body.slice(start, end)}${continuationNotice(snapshot.name, nextCursor)}${notice}`;
169
156
  if (output.length <= maxChars)
170
157
  return { output, nextCursor };
171
158
  end = boundaryAtOrBefore(snapshot.body, end - Math.max(1, output.length - maxChars));
@@ -173,177 +160,245 @@ function pageSkillBody(input) {
173
160
  return undefined;
174
161
  }
175
162
  export const SKILL_TOOL_NAME = 'skill';
176
- export const SkillTool = defineTool({
177
- name: SKILL_TOOL_NAME,
178
- description: 'Lists model-invocable skills when called without a name, or loads one skill by its exact listed name. Long lists and bodies return an opaque continuation cursor; keep calling in the same mode with that cursor until no continuation remains. The manifest carries only names and descriptions.',
179
- inputSchema,
180
- category: 'analysis',
181
- permissions: [],
182
- // Reads instructions and changes nothing on disk. What it does change is
183
- // the turn's approvals, through `grantSkillTools`, and only ever towards
184
- // fewer prompts for calls the operator's policy already leaves to review.
185
- readOnly: true,
186
- destructive: false,
187
- concurrencySafe: true,
188
- async execute(input, context) {
189
- if (!context.skills) {
163
+ /**
164
+ * Build the `skill` tool, with what the host knows about where its model's
165
+ * tools run. {@link SkillTool} is this with no options.
166
+ */
167
+ export function createSkillTool(options = {}) {
168
+ const resolveModelDirectory = options.resolveModelDirectory;
169
+ return defineTool({
170
+ name: SKILL_TOOL_NAME,
171
+ description: 'Lists model-invocable skills when called without a name, or loads one skill by its exact listed name. Long lists and bodies return an opaque continuation cursor; keep calling in the same mode with that cursor until no continuation remains. The manifest carries only names and descriptions.',
172
+ inputSchema,
173
+ category: 'analysis',
174
+ permissions: [],
175
+ // Reads instructions and changes nothing on disk. What it does change is
176
+ // the turn's approvals, through `grantSkillTools`, and only ever towards
177
+ // fewer prompts for calls the operator's policy already leaves to review.
178
+ readOnly: true,
179
+ destructive: false,
180
+ concurrencySafe: true,
181
+ // The body is instructions for the model, often a hundred lines; the
182
+ // person needs the row that says which skill was read, not the text.
183
+ presentCall(input) {
184
+ const name = typeof input?.name === 'string' ? input.name : undefined;
190
185
  return {
191
- success: false,
192
- output: '',
193
- error: 'This turn has no skills registry, so there is nothing to load. Proceed without the skill.',
186
+ kind: 'generic',
187
+ presentation: 'activity',
188
+ label: name === undefined
189
+ ? input?.cursor === undefined
190
+ ? 'List skills'
191
+ : 'List more skills'
192
+ : `Read skill ${name}${input.cursor === undefined ? '' : ' (continued)'}`,
194
193
  };
195
- }
196
- if (input.name === undefined) {
197
- if (!context.skills.catalog) {
194
+ },
195
+ presentResult: (_input, result) => result.success ? { kind: 'generic', label: 'read', visibility: 'hidden' } : undefined,
196
+ async execute(input, context) {
197
+ if (!context.skills) {
198
+ return {
199
+ success: false,
200
+ output: '',
201
+ error: 'This turn has no skills registry, so there is nothing to load. Proceed without the skill.',
202
+ };
203
+ }
204
+ if (input.name === undefined) {
205
+ if (!context.skills.catalog) {
206
+ return {
207
+ success: false,
208
+ output: '',
209
+ error: 'This skills registry cannot enumerate model-safe metadata. Use a skill name from the available-skills manifest.',
210
+ };
211
+ }
212
+ const directoryContext = directoryContextOf(context.sandbox);
213
+ const skills = await Promise.all((await context.skills.catalog())
214
+ .filter((entry) => entry.invocation === undefined ||
215
+ entry.invocation === 'model' ||
216
+ entry.invocation === 'both')
217
+ .map(async (entry) => {
218
+ // With a resolver the registry's `location` is left out, not
219
+ // shown beside the directory: it is the host's path, the one
220
+ // a sandboxed model cannot open.
221
+ let where;
222
+ if (resolveModelDirectory) {
223
+ const directory = nonEmpty(await resolveModelDirectory({ name: entry.registeredName, directory: entry.directory }, directoryContext));
224
+ where = directory === undefined ? {} : { directory };
225
+ }
226
+ else {
227
+ where = { location: entry.location };
228
+ }
229
+ return {
230
+ name: entry.registeredName,
231
+ description: entry.description,
232
+ ...where,
233
+ ...(entry.allowedTools === undefined ? {} : { allowedTools: entry.allowedTools }),
234
+ };
235
+ }));
236
+ const maxChars = activeOutputCap(context.maxToolOutputChars);
237
+ const digest = listDigest(skills, maxChars);
238
+ let start = 0;
239
+ let warningAlreadyShown = false;
240
+ if (input.cursor !== undefined) {
241
+ const parsed = parseListCursor(input.cursor);
242
+ if (!parsed || parsed.digest !== digest || parsed.offset >= skills.length) {
243
+ return {
244
+ success: false,
245
+ output: '',
246
+ error: 'The skill-list continuation cursor is stale or invalid. Call skill again without a cursor to read the current catalog.',
247
+ };
248
+ }
249
+ start = parsed.offset;
250
+ warningAlreadyShown = parsed.warned;
251
+ }
252
+ const page = pageSkillCatalog({
253
+ skills,
254
+ digest,
255
+ start,
256
+ warningAlreadyShown,
257
+ maxChars,
258
+ });
259
+ if (!page) {
260
+ return {
261
+ success: false,
262
+ output: '',
263
+ error: 'The model-visible tool-output budget is too small to list skill metadata safely. Increase maxToolOutputChars and retry.',
264
+ };
265
+ }
266
+ return {
267
+ success: true,
268
+ output: serializeListPage(page),
269
+ data: {
270
+ kind: 'list',
271
+ count: page.skills.length,
272
+ ...(page.nextCursor === null ? {} : { nextCursor: page.nextCursor }),
273
+ },
274
+ };
275
+ }
276
+ // The registry answers with a load RESULT, not a skill — the shape
277
+ // mirrors the implementation rather than an adapter, so there is
278
+ // nothing between them to drift.
279
+ const loaded = await context.skills.load(input.name);
280
+ if (!loaded) {
281
+ // Named, with what IS available. A bare "not found" sends the model
282
+ // guessing at spellings, and the manifest it is guessing from is
283
+ // right there in its own prompt.
284
+ const available = context.skills.names();
285
+ return {
286
+ success: false,
287
+ output: '',
288
+ error: `No skill named "${input.name}". Available: ${available.length > 0 ? available.join(', ') : '(none)'}`,
289
+ };
290
+ }
291
+ const skill = loaded.skill;
292
+ const invocation = skillInvocation(skill);
293
+ if (!isInvocableBy(skill, 'model')) {
294
+ // Reachable even though the manifest omits it: the model can name
295
+ // anything, and a check that only filtered the listing would be a
296
+ // menu restriction rather than a kitchen one — the exact defect
297
+ // `allowedTools` had before it was enforced at dispatch.
198
298
  return {
199
299
  success: false,
200
300
  output: '',
201
- error: 'This skills registry cannot enumerate model-safe metadata. Use a skill name from the available-skills manifest.',
301
+ error: `The skill "${input.name}" is ${skillInvocation(skill)}-invocable; it is not for you to run.`,
202
302
  };
203
303
  }
204
- const skills = (await context.skills.catalog())
205
- .filter((entry) => entry.invocation === undefined ||
206
- entry.invocation === 'model' ||
207
- entry.invocation === 'both')
208
- .map((entry) => ({
209
- name: entry.registeredName,
210
- description: entry.description,
211
- location: entry.location,
212
- ...(entry.allowedTools === undefined ? {} : { allowedTools: entry.allowedTools }),
213
- }));
214
- const maxChars = activeOutputCap(context.maxToolOutputChars);
215
- const digest = listDigest(skills, maxChars);
304
+ const allowed = parseAllowedTools(skill.metadata.allowedTools);
305
+ // Asked on every call, first page or continuation: the digest binds
306
+ // the answer, so a mount that changed between pages is a stale cursor
307
+ // rather than a second half written for a different directory.
308
+ const modelDirectory = resolveModelDirectory
309
+ ? nonEmpty(await resolveModelDirectory({ name: input.name, directory: skill.dirPath }, directoryContextOf(context.sandbox)))
310
+ : undefined;
311
+ const snapshot = {
312
+ name: input.name,
313
+ body: skill.body ?? '(this skill has no body)',
314
+ allowedTools: allowed,
315
+ // The model's path when the host gave one: `${CLAUDE_SKILL_DIR}` in a
316
+ // pattern is matched against a command line the model writes, and it
317
+ // writes the path it was told.
318
+ skillDirectory: resolveModelDirectory ? modelDirectory : skill.dirPath,
319
+ header: resolveModelDirectory ? directoryHeader(modelDirectory) : '',
320
+ invocation,
321
+ };
322
+ const digest = snapshotDigest(snapshot);
216
323
  let start = 0;
217
- let warningAlreadyShown = false;
218
324
  if (input.cursor !== undefined) {
219
- const parsed = parseListCursor(input.cursor);
220
- if (!parsed || parsed.digest !== digest || parsed.offset >= skills.length) {
325
+ const parsed = parseCursor(input.cursor);
326
+ if (!parsed ||
327
+ parsed.digest !== digest ||
328
+ parsed.offset >= snapshot.body.length ||
329
+ !isCodePointBoundary(snapshot.body, parsed.offset)) {
221
330
  return {
222
331
  success: false,
223
332
  output: '',
224
- error: 'The skill-list continuation cursor is stale or invalid. Call skill again without a cursor to read the current catalog.',
333
+ error: `The continuation cursor for "${input.name}" is stale or invalid. Call skill again without a cursor to read the current instructions.`,
225
334
  };
226
335
  }
227
336
  start = parsed.offset;
228
- warningAlreadyShown = parsed.warned;
229
337
  }
230
- const page = pageSkillCatalog({
231
- skills,
338
+ // Compiled before paging so the notice can say what the grant is, and
339
+ // committed only after paging succeeded: a load that fails here gave
340
+ // the model no instructions, so it must not have approved anything.
341
+ // Idempotent: a continuation call grants the same entries again, and
342
+ // the turn's set keeps one copy.
343
+ let grant;
344
+ if (allowed !== undefined && allowed.length > 0 && context.grantSkillTools) {
345
+ grant = context.grantSkillTools({
346
+ skill: skill.metadata.name,
347
+ allowedTools: allowed,
348
+ ...(snapshot.skillDirectory ? { skillDirectory: snapshot.skillDirectory } : {}),
349
+ });
350
+ }
351
+ const notice = grantNotice(allowed, grant, context.grantSkillTools !== undefined);
352
+ const page = pageSkillBody({
353
+ snapshot,
232
354
  digest,
233
355
  start,
234
- warningAlreadyShown,
235
- maxChars,
356
+ notice,
357
+ maxChars: context.maxToolOutputChars,
236
358
  });
237
359
  if (!page) {
238
360
  return {
239
361
  success: false,
240
362
  output: '',
241
- error: 'The model-visible tool-output budget is too small to list skill metadata safely. Increase maxToolOutputChars and retry.',
363
+ error: `The model-visible tool-output budget is too small to read "${input.name}" safely. Increase maxToolOutputChars and retry.`,
242
364
  };
243
365
  }
366
+ grant?.commit();
244
367
  return {
245
368
  success: true,
246
- output: serializeListPage(page),
369
+ output: page.output,
247
370
  data: {
248
- kind: 'list',
249
- count: page.skills.length,
250
- ...(page.nextCursor === null ? {} : { nextCursor: page.nextCursor }),
371
+ skill: skill.metadata.name,
372
+ ...(modelDirectory === undefined ? {} : { directory: modelDirectory }),
373
+ ...(allowed === undefined ? {} : { allowedTools: allowed }),
374
+ ...(grant ? { granted: grant.granted, ignored: grant.ignored } : {}),
375
+ ...(page.nextCursor === undefined ? {} : { nextCursor: page.nextCursor }),
251
376
  },
252
377
  };
253
- }
254
- // The registry answers with a load RESULT, not a skill — the shape
255
- // mirrors the implementation rather than an adapter, so there is
256
- // nothing between them to drift.
257
- const loaded = await context.skills.load(input.name);
258
- if (!loaded) {
259
- // Named, with what IS available. A bare "not found" sends the model
260
- // guessing at spellings, and the manifest it is guessing from is
261
- // right there in its own prompt.
262
- const available = context.skills.names();
263
- return {
264
- success: false,
265
- output: '',
266
- error: `No skill named "${input.name}". Available: ${available.length > 0 ? available.join(', ') : '(none)'}`,
267
- };
268
- }
269
- const skill = loaded.skill;
270
- const invocation = skillInvocation(skill);
271
- if (!isInvocableBy(skill, 'model')) {
272
- // Reachable even though the manifest omits it: the model can name
273
- // anything, and a check that only filtered the listing would be a
274
- // menu restriction rather than a kitchen one — the exact defect
275
- // `allowedTools` had before it was enforced at dispatch.
276
- return {
277
- success: false,
278
- output: '',
279
- error: `The skill "${input.name}" is ${skillInvocation(skill)}-invocable; it is not for you to run.`,
280
- };
281
- }
282
- const allowed = parseAllowedTools(skill.metadata.allowedTools);
283
- const snapshot = {
284
- name: input.name,
285
- body: skill.body ?? '(this skill has no body)',
286
- allowedTools: allowed,
287
- skillDirectory: skill.dirPath,
288
- invocation,
289
- };
290
- const digest = snapshotDigest(snapshot);
291
- let start = 0;
292
- if (input.cursor !== undefined) {
293
- const parsed = parseCursor(input.cursor);
294
- if (!parsed ||
295
- parsed.digest !== digest ||
296
- parsed.offset >= snapshot.body.length ||
297
- !isCodePointBoundary(snapshot.body, parsed.offset)) {
298
- return {
299
- success: false,
300
- output: '',
301
- error: `The continuation cursor for "${input.name}" is stale or invalid. Call skill again without a cursor to read the current instructions.`,
302
- };
303
- }
304
- start = parsed.offset;
305
- }
306
- // Compiled before paging so the notice can say what the grant is, and
307
- // committed only after paging succeeded: a load that fails here gave
308
- // the model no instructions, so it must not have approved anything.
309
- // Idempotent: a continuation call grants the same entries again, and
310
- // the turn's set keeps one copy.
311
- let grant;
312
- if (allowed !== undefined && allowed.length > 0 && context.grantSkillTools) {
313
- grant = context.grantSkillTools({
314
- skill: skill.metadata.name,
315
- allowedTools: allowed,
316
- ...(snapshot.skillDirectory ? { skillDirectory: snapshot.skillDirectory } : {}),
317
- });
318
- }
319
- const notice = grantNotice(allowed, grant, context.grantSkillTools !== undefined);
320
- const page = pageSkillBody({
321
- snapshot,
322
- digest,
323
- start,
324
- notice,
325
- maxChars: context.maxToolOutputChars,
326
- });
327
- if (!page) {
328
- return {
329
- success: false,
330
- output: '',
331
- error: `The model-visible tool-output budget is too small to read "${input.name}" safely. Increase maxToolOutputChars and retry.`,
332
- };
333
- }
334
- grant?.commit();
335
- return {
336
- success: true,
337
- output: page.output,
338
- data: {
339
- skill: skill.metadata.name,
340
- ...(allowed === undefined ? {} : { allowedTools: allowed }),
341
- ...(grant ? { granted: grant.granted, ignored: grant.ignored } : {}),
342
- ...(page.nextCursor === undefined ? {} : { nextCursor: page.nextCursor }),
343
- },
344
- };
345
- },
346
- });
378
+ },
379
+ });
380
+ }
381
+ /** The `skill` tool with no host options: the listing carries the registry's `location`. */
382
+ export const SkillTool = createSkillTool();
383
+ function directoryContextOf(sandbox) {
384
+ return sandbox ? { sandbox } : {};
385
+ }
386
+ /** An empty string names no directory; treated as the resolver saying none. */
387
+ function nonEmpty(directory) {
388
+ return directory === undefined || directory === '' ? undefined : directory;
389
+ }
390
+ /**
391
+ * The line a load opens with once a host has said where the skill's files are.
392
+ *
393
+ * The unreachable case is said out loud rather than left blank. A model given
394
+ * no directory for a skill that says "run scripts/render.sh" goes looking for
395
+ * it, and on a sandboxed turn that search can only fail.
396
+ */
397
+ function directoryHeader(directory) {
398
+ return directory === undefined
399
+ ? "[This skill's directory is not reachable from your tools in this session, so a file these instructions name by a relative path (scripts/, references/, assets/) cannot be opened here. Do not search the filesystem for it; if the task needs one, say so.]\n\n"
400
+ : `[Skill directory: ${directory}. Relative paths in these instructions, such as scripts/, references/ or assets/, are inside it.]\n\n`;
401
+ }
347
402
  /**
348
403
  * What the model is told about `allowed-tools`.
349
404
  *
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/tools/builtins/skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/tools/builtins/skill.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export interface DefineToolOptions<S extends z.ZodType> {
14
14
  readOnly: boolean | ((input: z.infer<S>) => boolean);
15
15
  destructive: boolean | ((input: z.infer<S>) => boolean);
16
16
  concurrencySafe: boolean;
17
+ /** Whether this exact call sends the screen to the provider; see {@link ToolDefinition.capturesScreen}. */
18
+ capturesScreen?: boolean | ((input: z.infer<S>) => boolean);
17
19
  /** Batch ordering boundary; see {@link ToolDefinition.executionBarrier}. */
18
20
  executionBarrier?: boolean;
19
21
  tier?: string;
@@ -58,6 +60,8 @@ export interface DefineToolOptions<S extends z.ZodType> {
58
60
  commandDialect?: ToolDefinition['commandDialect'];
59
61
  /** The argument holding a filesystem path; see {@link ToolDefinition.pathArgument}. */
60
62
  pathArgument?: string;
63
+ /** The argument holding a canonical URL; see {@link ToolDefinition.urlArgument}. */
64
+ urlArgument?: string;
61
65
  /** The argument asking to leave the sandbox; see {@link ToolDefinition.sandboxEscapeArgument}. */
62
66
  sandboxEscapeArgument?: string;
63
67
  execute(input: z.infer<S>, context: ToolContext): Promise<ToolResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"defineTool.d.ts","sourceRoot":"","sources":["../../src/tools/defineTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,UAAU,EACV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAGrE,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,CAAC,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACpC,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,oFAAoF;IACpF,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;IACpD,WAAW,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;IACvD,eAAe,EAAE,OAAO,CAAA;IACxB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IACzD,aAAa,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IAC7D,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,yFAAyF;IACzF,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACjD,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kGAAkG;IAClG,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACrE;AAaD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,OAAO,CAExF;AAQD,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAC7C,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAiD5B"}
1
+ {"version":3,"file":"defineTool.d.ts","sourceRoot":"","sources":["../../src/tools/defineTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,UAAU,EACV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAGrE,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,CAAC,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACpC,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,oFAAoF;IACpF,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;IACpD,WAAW,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;IACvD,eAAe,EAAE,OAAO,CAAA;IACxB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;IAC3D,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IACzD,aAAa,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IAC7D,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,yFAAyF;IACzF,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACjD,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kGAAkG;IAClG,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACrE;AAaD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,OAAO,CAExF;AAQD,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAC7C,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CA0D5B"}
@@ -40,6 +40,7 @@ export function defineTool(options) {
40
40
  ...(options.commandArgument !== undefined ? { commandArgument: options.commandArgument } : {}),
41
41
  ...(options.commandDialect !== undefined ? { commandDialect: options.commandDialect } : {}),
42
42
  ...(options.pathArgument !== undefined ? { pathArgument: options.pathArgument } : {}),
43
+ ...(options.urlArgument !== undefined ? { urlArgument: options.urlArgument } : {}),
43
44
  ...(options.sandboxEscapeArgument !== undefined
44
45
  ? { sandboxEscapeArgument: options.sandboxEscapeArgument }
45
46
  : {}),
@@ -57,6 +58,13 @@ export function defineTool(options) {
57
58
  ? options.destructive
58
59
  : constantDestructive(options.destructive),
59
60
  isConcurrencySafe: () => options.concurrencySafe,
61
+ ...(options.capturesScreen !== undefined
62
+ ? {
63
+ capturesScreen: typeof options.capturesScreen === 'function'
64
+ ? options.capturesScreen
65
+ : () => options.capturesScreen,
66
+ }
67
+ : {}),
60
68
  async execute(input, context) {
61
69
  try {
62
70
  return await options.execute(input, context);
@@ -1 +1 @@
1
- {"version":3,"file":"defineTool.js","sourceRoot":"","sources":["../../src/tools/defineTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defineTool.js","sourceRoot":"","sources":["../../src/tools/defineTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { buildScheduleTools, SCHEDULE_TOOL_NAME } from './schedule-tool.js';
2
+ export { buildSessionLoopTools, SESSION_LOOP_TOOL_NAME } from './loop-tool.js';
3
+ export { revealHiddenCharacters, scanSchedulePrompt } from './prompt-scan.js';
4
+ export type * from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,mBAAmB,YAAY,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { buildScheduleTools, SCHEDULE_TOOL_NAME } from './schedule-tool.js';
2
+ export { buildSessionLoopTools, SESSION_LOOP_TOOL_NAME } from './loop-tool.js';
3
+ export { revealHiddenCharacters, scanSchedulePrompt } from './prompt-scan.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/schedules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { ToolDefinition } from '../../types/tool/index.js';
2
+ import type { SessionLoopHost } from './types.js';
3
+ export declare const SESSION_LOOP_TOOL_NAME = "session_loop";
4
+ /**
5
+ * The `session_loop` tool: re-send a prompt to THIS conversation on an
6
+ * interval, between turns, while the session is open.
7
+ *
8
+ * `create` is an ordinary reviewed call — not exempt from review — so in
9
+ * `prompt` mode the operator sees it before a loop exists; a loop a model
10
+ * created is labelled as such wherever it is shown. `list` and `delete` only
11
+ * read or remove loops.
12
+ */
13
+ export declare function buildSessionLoopTools(host: SessionLoopHost): ToolDefinition[];
14
+ //# sourceMappingURL=loop-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/loop-tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,sBAAsB,iBAAiB,CAAA;AAYpD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,EAAE,CAyD7E"}