@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/tools/builtins/browser.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"}
@@ -0,0 +1,223 @@
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
+ /** Patch edge of the vision encoder: an image costs ⌈w/28⌉ × ⌈h/28⌉ visual tokens. */
21
+ const PATCH_PX = 28;
22
+ /**
23
+ * Every current vision model takes this without resizing it: the standard
24
+ * tier's limits exactly, and well inside the `detail: "high"` budget of the
25
+ * Responses wire (2048 px, 2 500 32-pixel patches). The default.
26
+ */
27
+ export const STANDARD_SCREENSHOT_LIMITS = Object.freeze({
28
+ maxLongEdge: 1568,
29
+ maxTiles: 1568,
30
+ });
31
+ /**
32
+ * The high-resolution tier some newer models accept. Use it only when every
33
+ * model the session can reach is on that tier: a standard-tier model rejects
34
+ * such a screenshot in a tool result, the Responses wire's `high` detail
35
+ * shrinks anything over 2048 px, and a request carrying more than 20 images
36
+ * caps every image at 2000 px.
37
+ */
38
+ export const HIGH_RES_SCREENSHOT_LIMITS = Object.freeze({
39
+ maxLongEdge: 2576,
40
+ maxTiles: 4784,
41
+ });
42
+ function tiles(width, height) {
43
+ return Math.ceil(width / PATCH_PX) * Math.ceil(height / PATCH_PX);
44
+ }
45
+ /** Python's `round()`: exact .5 ties go to the even neighbour, as the live API does. */
46
+ function roundTiesToEven(value) {
47
+ const floor = Math.floor(value);
48
+ if (value - floor !== 0.5)
49
+ return Math.round(value);
50
+ return floor % 2 === 0 ? floor : floor + 1;
51
+ }
52
+ /**
53
+ * The largest aspect-preserving size within `limits`; the input unchanged
54
+ * when it already fits. Never larger than the input.
55
+ */
56
+ export function screenshotTargetSize(width, height, limits = STANDARD_SCREENSHOT_LIMITS) {
57
+ if (!Number.isSafeInteger(width) || !Number.isSafeInteger(height) || width < 1 || height < 1)
58
+ throw new RangeError(`screenshot size must be positive integers, got ${width}x${height}`);
59
+ const fits = (w, h) => Math.ceil(w / PATCH_PX) * PATCH_PX <= limits.maxLongEdge &&
60
+ Math.ceil(h / PATCH_PX) * PATCH_PX <= limits.maxLongEdge &&
61
+ tiles(w, h) <= limits.maxTiles;
62
+ if (fits(width, height))
63
+ return { width, height };
64
+ if (height > width) {
65
+ const transposed = screenshotTargetSize(height, width, limits);
66
+ return { width: transposed.height, height: transposed.width };
67
+ }
68
+ const aspect = width / height;
69
+ let lo = 1; // always fits
70
+ let hi = width; // never fits
71
+ while (lo + 1 < hi) {
72
+ const mid = Math.floor((lo + hi) / 2);
73
+ if (fits(mid, Math.max(roundTiesToEven(mid / aspect), 1)))
74
+ lo = mid;
75
+ else
76
+ hi = mid;
77
+ }
78
+ return { width: lo, height: Math.max(roundTiesToEven(lo / aspect), 1) };
79
+ }
80
+ /** Width and height from a PNG's IHDR chunk, without decoding it. */
81
+ export function pngSize(data) {
82
+ const signature = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
83
+ if (data.length < 24 || signature.some((byte, index) => data[index] !== byte))
84
+ throw new Error('computer_use: the host returned a screenshot that is not a PNG');
85
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
86
+ return { width: view.getUint32(16), height: view.getUint32(20) };
87
+ }
88
+ let codec;
89
+ function loadCodec() {
90
+ codec ??= Promise.all([import('fast-png'), import('pica')]).then(([png, picaModule]) => ({
91
+ png,
92
+ // No `ww`/`cib`: those are browser features (Web Workers,
93
+ // createImageBitmap). In Node pica resizes on the calling thread.
94
+ resizer: new picaModule.Pica({ features: ['js', 'wasm'] }),
95
+ }));
96
+ return codec;
97
+ }
98
+ /** For each PNG channel count: where red, green, blue and alpha come from (-1: opaque). */
99
+ const CHANNEL_SOURCES = {
100
+ 1: [0, 0, 0, -1],
101
+ 2: [0, 0, 0, 1],
102
+ 3: [0, 1, 2, -1],
103
+ 4: [0, 1, 2, 3],
104
+ };
105
+ async function decodeRgba(data) {
106
+ const { png } = await loadCodec();
107
+ const decoded = png.decode(data);
108
+ const { width, height } = decoded;
109
+ let source = decoded.data;
110
+ let channels = decoded.channels;
111
+ let depth = decoded.depth;
112
+ if (decoded.palette) {
113
+ source = png.convertIndexedToRgb(decoded);
114
+ channels = decoded.palette[0]?.length ?? 3;
115
+ depth = 8;
116
+ }
117
+ const sources = CHANNEL_SOURCES[channels];
118
+ if ((depth !== 8 && depth !== 16) || !sources)
119
+ throw new Error(`computer_use: cannot read a ${depth}-bit, ${channels}-channel PNG screenshot; hosts should capture 8-bit RGB or RGBA`);
120
+ // The common capture — 8-bit RGBA — is already the layout the resampler takes.
121
+ if (depth === 8 && channels === 4 && !decoded.palette) {
122
+ const bytes = decoded.data;
123
+ return { width, height, data: new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength) };
124
+ }
125
+ // Everything else becomes 8-bit RGBA; 16-bit samples keep their high byte.
126
+ // No per-pixel branches: this runs once per pixel of a whole display.
127
+ const shift = depth === 16 ? 8 : 0;
128
+ const [r, g, b, a] = sources;
129
+ const pixels = width * height;
130
+ const rgba = new Uint8Array(pixels * 4);
131
+ if (a < 0)
132
+ rgba.fill(255);
133
+ for (let i = 0, s = 0, d = 0; i < pixels; i += 1, s += channels, d += 4) {
134
+ rgba[d] = source[s + r] >> shift;
135
+ rgba[d + 1] = source[s + g] >> shift;
136
+ rgba[d + 2] = source[s + b] >> shift;
137
+ }
138
+ if (a >= 0)
139
+ for (let i = 0, s = a, d = 3; i < pixels; i += 1, s += channels, d += 4)
140
+ rgba[d] = source[s] >> shift;
141
+ return { width, height, data: rgba };
142
+ }
143
+ async function encodePng(image) {
144
+ const { png } = await loadCodec();
145
+ const { width, height, data } = image;
146
+ // An opaque capture (every desktop screenshot) is sent as RGB: a quarter
147
+ // fewer bytes in every request that carries it.
148
+ let opaque = true;
149
+ for (let i = 3; i < data.length; i += 4) {
150
+ if (data[i] !== 255) {
151
+ opaque = false;
152
+ break;
153
+ }
154
+ }
155
+ if (!opaque)
156
+ return Buffer.from(png.encode({ width, height, data, channels: 4, depth: 8 }));
157
+ const rgb = new Uint8Array(width * height * 3);
158
+ for (let s = 0, d = 0; s < data.length; s += 4, d += 3) {
159
+ rgb[d] = data[s];
160
+ rgb[d + 1] = data[s + 1];
161
+ rgb[d + 2] = data[s + 2];
162
+ }
163
+ return Buffer.from(png.encode({ width, height, data: rgb, channels: 3, depth: 8 }));
164
+ }
165
+ async function resizeRgba(image, target) {
166
+ if (target.width === image.width && target.height === image.height)
167
+ return image;
168
+ const { resizer } = await loadCodec();
169
+ const data = await resizer.resizeBuffer({
170
+ src: image.data,
171
+ width: image.width,
172
+ height: image.height,
173
+ toWidth: target.width,
174
+ toHeight: target.height,
175
+ filter: 'lanczos3',
176
+ });
177
+ return { width: target.width, height: target.height, data };
178
+ }
179
+ function cropRgba(image, rect) {
180
+ const data = new Uint8Array(rect.width * rect.height * 4);
181
+ for (let row = 0; row < rect.height; row += 1) {
182
+ const from = ((rect.y + row) * image.width + rect.x) * 4;
183
+ data.set(image.data.subarray(from, from + rect.width * 4), row * rect.width * 4);
184
+ }
185
+ return { width: rect.width, height: rect.height, data };
186
+ }
187
+ /**
188
+ * Fit a PNG capture to `limits`. A capture that already fits is returned
189
+ * byte for byte, without being decoded.
190
+ */
191
+ export async function fitPng(data, limits) {
192
+ const source = pngSize(data);
193
+ const target = screenshotTargetSize(source.width, source.height, limits);
194
+ if (target.width === source.width && target.height === source.height)
195
+ return { data, ...target, sourceWidth: source.width, sourceHeight: source.height };
196
+ const resized = await resizeRgba(await decodeRgba(data), target);
197
+ return {
198
+ data: await encodePng(resized),
199
+ width: resized.width,
200
+ height: resized.height,
201
+ sourceWidth: source.width,
202
+ sourceHeight: source.height,
203
+ };
204
+ }
205
+ /**
206
+ * Cut `rect` (pixels of `data`, already clamped to it) out of a PNG and fit
207
+ * the piece to `limits`. Never enlarges: a small region stays at its native
208
+ * size, which is still more detail than the downscaled screenshot showed.
209
+ */
210
+ export async function cropAndFitPng(data, rect, limits) {
211
+ const decoded = await decodeRgba(data);
212
+ const piece = cropRgba(decoded, rect);
213
+ const target = screenshotTargetSize(piece.width, piece.height, limits);
214
+ const resized = await resizeRgba(piece, target);
215
+ return {
216
+ data: await encodePng(resized),
217
+ width: resized.width,
218
+ height: resized.height,
219
+ sourceWidth: piece.width,
220
+ sourceHeight: piece.height,
221
+ };
222
+ }
223
+ //# sourceMappingURL=computer-use-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-use-image.js","sourceRoot":"","sources":["../../../src/tools/builtins/computer-use-image.ts"],"names":[],"mappings":"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"}