stitchkit 0.104.2 → 0.105.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/CHANGELOG.md +401 -13
  2. package/darwin-native.cjs +4 -2
  3. package/dist/agent-runtime/browser-control-contract.d.ts +32 -2
  4. package/dist/agent-runtime/browser-control-contract.d.ts.map +1 -1
  5. package/dist/agent-runtime/browser-controller.d.ts +21 -3
  6. package/dist/agent-runtime/browser-controller.d.ts.map +1 -1
  7. package/dist/agent-runtime/coding-shell-process.d.ts.map +1 -1
  8. package/dist/agent-runtime/coding-tool-refusals.d.ts +1 -0
  9. package/dist/agent-runtime/coding-tool-refusals.d.ts.map +1 -1
  10. package/dist/agent-runtime/coding-tool-shell.d.ts.map +1 -1
  11. package/dist/agent-runtime/compaction.d.ts.map +1 -1
  12. package/dist/agent-runtime/contained-write.d.ts.map +1 -1
  13. package/dist/agent-runtime/control-schema.d.ts +48 -1
  14. package/dist/agent-runtime/control-schema.d.ts.map +1 -1
  15. package/dist/agent-runtime/deferred-tool-search.d.ts +3 -2
  16. package/dist/agent-runtime/deferred-tool-search.d.ts.map +1 -1
  17. package/dist/agent-runtime/harness-control.d.ts.map +1 -1
  18. package/dist/agent-runtime/harness-realtime.d.ts +34 -4
  19. package/dist/agent-runtime/harness-realtime.d.ts.map +1 -1
  20. package/dist/agent-runtime/runtime-recovery.d.ts.map +1 -1
  21. package/dist/agent-runtime/runtime-state.d.ts.map +1 -1
  22. package/dist/agent-runtime/sandbox-contract.d.ts.map +1 -1
  23. package/dist/agent-runtime/sandbox-process-owner.d.ts +9 -1
  24. package/dist/agent-runtime/sandbox-process-owner.d.ts.map +1 -1
  25. package/dist/agent-runtime/sandbox.d.ts +32 -1
  26. package/dist/agent-runtime/sandbox.d.ts.map +1 -1
  27. package/dist/agent-runtime/schedule-records.d.ts.map +1 -1
  28. package/dist/agent-runtime/schedules.d.ts.map +1 -1
  29. package/dist/agent-runtime/store-events.d.ts +9 -4
  30. package/dist/agent-runtime/store-events.d.ts.map +1 -1
  31. package/dist/agent-runtime/testing.d.ts.map +1 -1
  32. package/dist/application/diagnostic-journal-contract.d.ts +50 -0
  33. package/dist/application/diagnostic-journal-contract.d.ts.map +1 -1
  34. package/dist/application/diagnostic-journal-generations.d.ts +24 -0
  35. package/dist/application/diagnostic-journal-generations.d.ts.map +1 -0
  36. package/dist/application/diagnostic-journal-manager.d.ts.map +1 -1
  37. package/dist/application/diagnostic-journal-open.d.ts +10 -0
  38. package/dist/application/diagnostic-journal-open.d.ts.map +1 -0
  39. package/dist/application/diagnostic-journal-quarantine.d.ts +28 -0
  40. package/dist/application/diagnostic-journal-quarantine.d.ts.map +1 -0
  41. package/dist/application/diagnostic-journal-read-contract.d.ts +73 -3
  42. package/dist/application/diagnostic-journal-read-contract.d.ts.map +1 -1
  43. package/dist/application/diagnostic-journal-reader.d.ts +17 -2
  44. package/dist/application/diagnostic-journal-reader.d.ts.map +1 -1
  45. package/dist/application/diagnostic-journal-recovery.d.ts +18 -2
  46. package/dist/application/diagnostic-journal-recovery.d.ts.map +1 -1
  47. package/dist/application/diagnostic-journal-storage.d.ts +6 -2
  48. package/dist/application/diagnostic-journal-storage.d.ts.map +1 -1
  49. package/dist/application/diagnostic-journal-tail.d.ts +12 -0
  50. package/dist/application/diagnostic-journal-tail.d.ts.map +1 -0
  51. package/dist/application/diagnostic-journal.d.ts +3 -0
  52. package/dist/application/diagnostic-journal.d.ts.map +1 -1
  53. package/dist/application/directory-inbox-accept.d.ts +3 -3
  54. package/dist/application/directory-inbox-accept.d.ts.map +1 -1
  55. package/dist/application/directory-inbox-contract.d.ts +38 -10
  56. package/dist/application/directory-inbox-contract.d.ts.map +1 -1
  57. package/dist/application/directory-inbox-delivery.d.ts +3 -3
  58. package/dist/application/directory-inbox-delivery.d.ts.map +1 -1
  59. package/dist/application/directory-inbox-files.d.ts +17 -2
  60. package/dist/application/directory-inbox-files.d.ts.map +1 -1
  61. package/dist/application/directory-inbox-state.d.ts +1 -1
  62. package/dist/application/directory-inbox-state.d.ts.map +1 -1
  63. package/dist/application/directory-inbox.d.ts +1 -1
  64. package/dist/application/directory-inbox.d.ts.map +1 -1
  65. package/dist/application/file-state-store.d.ts +21 -1
  66. package/dist/application/file-state-store.d.ts.map +1 -1
  67. package/dist/application/grammy.d.ts.map +1 -1
  68. package/dist/application/kernel-contract.d.ts.map +1 -1
  69. package/dist/application/revision-signal.d.ts.map +1 -1
  70. package/dist/application/state-store.d.ts +3 -0
  71. package/dist/application/state-store.d.ts.map +1 -1
  72. package/dist/browser/api-error.d.ts +38 -0
  73. package/dist/browser/api-error.d.ts.map +1 -0
  74. package/dist/browser/chunked-upload.d.ts.map +1 -1
  75. package/dist/browser/client-executors.d.ts.map +1 -1
  76. package/dist/browser/client-url.d.ts.map +1 -1
  77. package/dist/browser/contract-stream.d.ts.map +1 -1
  78. package/dist/browser/http.d.ts +0 -25
  79. package/dist/browser/http.d.ts.map +1 -1
  80. package/dist/browser/resumable.d.ts.map +1 -1
  81. package/dist/contract/define-validation.d.ts +0 -1
  82. package/dist/contract/define-validation.d.ts.map +1 -1
  83. package/dist/contract/define.d.ts.map +1 -1
  84. package/dist/contract/errors-factory.d.ts.map +1 -1
  85. package/dist/contract/errors.d.ts +15 -18
  86. package/dist/contract/errors.d.ts.map +1 -1
  87. package/dist/contract/normalize.d.ts.map +1 -1
  88. package/dist/durability/effect.d.ts.map +1 -1
  89. package/dist/durability/scheduler.d.ts.map +1 -1
  90. package/dist/entrypoints/agent-runtime/browser.js +29 -18
  91. package/dist/entrypoints/agent-runtime/coding-tools.js +8 -7
  92. package/dist/entrypoints/agent-runtime/harness.js +15 -14
  93. package/dist/entrypoints/agent-runtime/realtime.d.ts +1 -1
  94. package/dist/entrypoints/agent-runtime/realtime.d.ts.map +1 -1
  95. package/dist/entrypoints/agent-runtime/realtime.js +119 -54
  96. package/dist/entrypoints/agent-runtime/sandbox.js +23 -17
  97. package/dist/entrypoints/agent-runtime/sqlite/bun.js +4 -3
  98. package/dist/entrypoints/agent-runtime/sqlite/node.js +4 -3
  99. package/dist/entrypoints/agent-runtime/testing.js +8 -6
  100. package/dist/entrypoints/agent-runtime.js +37 -38
  101. package/dist/entrypoints/application/diagnostic-journal.js +305 -111
  102. package/dist/entrypoints/application/directory-inbox.js +174 -77
  103. package/dist/entrypoints/application/grammy.js +5 -2
  104. package/dist/entrypoints/application/opentelemetry.js +2 -2
  105. package/dist/entrypoints/application.d.ts +2 -2
  106. package/dist/entrypoints/application.d.ts.map +1 -1
  107. package/dist/entrypoints/application.js +17 -8
  108. package/dist/entrypoints/cli/publish.d.ts +16 -0
  109. package/dist/entrypoints/cli/publish.d.ts.map +1 -0
  110. package/dist/entrypoints/cli/publish.js +527 -0
  111. package/dist/entrypoints/cli.d.ts +1 -2
  112. package/dist/entrypoints/cli.d.ts.map +1 -1
  113. package/dist/entrypoints/cli.js +59 -966
  114. package/dist/entrypoints/contract.js +3 -3
  115. package/dist/entrypoints/files/packaging.js +161 -66
  116. package/dist/entrypoints/files.d.ts +1 -0
  117. package/dist/entrypoints/files.d.ts.map +1 -1
  118. package/dist/entrypoints/files.js +17 -10
  119. package/dist/entrypoints/index.d.ts +2 -1
  120. package/dist/entrypoints/index.d.ts.map +1 -1
  121. package/dist/entrypoints/index.js +31 -60
  122. package/dist/entrypoints/node.js +8 -8
  123. package/dist/entrypoints/observability.js +3 -3
  124. package/dist/entrypoints/primitives.js +67 -83
  125. package/dist/entrypoints/process.d.ts +1 -1
  126. package/dist/entrypoints/process.d.ts.map +1 -1
  127. package/dist/entrypoints/process.js +2 -2
  128. package/dist/entrypoints/react.js +4 -2
  129. package/dist/entrypoints/remote.js +37 -13
  130. package/dist/entrypoints/server.js +18 -16
  131. package/dist/entrypoints/telegram/screens.js +5 -3
  132. package/dist/entrypoints/telegram.js +31 -46
  133. package/dist/entrypoints/testing.d.ts +1 -1
  134. package/dist/entrypoints/testing.d.ts.map +1 -1
  135. package/dist/entrypoints/testing.js +444 -448
  136. package/dist/entrypoints/tools/connections.js +268 -105
  137. package/dist/entrypoints/tools/contract.js +2 -2
  138. package/dist/entrypoints/tools/invoker.js +8 -7
  139. package/dist/entrypoints/tools/mcp.d.ts +2 -2
  140. package/dist/entrypoints/tools/mcp.d.ts.map +1 -1
  141. package/dist/entrypoints/tools/mcp.js +10 -9
  142. package/dist/entrypoints/tools.d.ts +0 -1
  143. package/dist/entrypoints/tools.d.ts.map +1 -1
  144. package/dist/entrypoints/tools.js +118 -53
  145. package/dist/entrypoints/tracking.js +2 -3
  146. package/dist/files/boundary.d.ts +2 -2
  147. package/dist/files/boundary.d.ts.map +1 -1
  148. package/dist/files/chunk-spool.d.ts.map +1 -1
  149. package/dist/files/file-io.d.ts +2 -2
  150. package/dist/files/file-io.d.ts.map +1 -1
  151. package/dist/files/native-packaging-layout.d.ts +50 -4
  152. package/dist/files/native-packaging-layout.d.ts.map +1 -1
  153. package/dist/files/native-packaging.d.ts +78 -17
  154. package/dist/files/native-packaging.d.ts.map +1 -1
  155. package/dist/{index-r5hsgkz5.js → index-0gs4ymfj.js} +6 -3
  156. package/dist/{index-zax7resm.js → index-0gxvns6s.js} +1 -13
  157. package/dist/index-0s4xebbg.js +8 -0
  158. package/dist/{index-r4r70zmh.js → index-12zsej7b.js} +5 -2
  159. package/dist/{index-269zqj8m.js → index-1ptj98e0.js} +28 -12
  160. package/dist/{index-kemm0ej5.js → index-1pwwan01.js} +65 -22
  161. package/dist/{index-vgkbcnkc.js → index-299sm5tr.js} +1 -1
  162. package/dist/{index-2vnh05w4.js → index-2k91mewf.js} +31 -74
  163. package/dist/{index-wh0ecvyk.js → index-37asdw3a.js} +1 -1
  164. package/dist/index-3h0ztg0z.js +285 -0
  165. package/dist/{index-g95fk660.js → index-4vsby8n8.js} +8 -15
  166. package/dist/index-556g5hsh.js +17 -0
  167. package/dist/{index-f330qqyg.js → index-5c26631f.js} +244 -67
  168. package/dist/{index-adhgd4pe.js → index-5p55xreg.js} +2 -2
  169. package/dist/index-5w6t91ze.js +47 -0
  170. package/dist/{index-9pw0a51a.js → index-6yxhe58g.js} +40 -7
  171. package/dist/{index-6d9xaxw1.js → index-8ks9b85e.js} +33 -5
  172. package/dist/{index-bhb950qs.js → index-916yh4e2.js} +25 -12
  173. package/dist/index-9tqbxv5p.js +44 -0
  174. package/dist/{index-5csmzesf.js → index-azx12jgv.js} +4 -3
  175. package/dist/{index-mbnnw3f2.js → index-b0kddvzw.js} +15 -5
  176. package/dist/{index-n5yqxd3d.js → index-b0w7rbpt.js} +23 -2
  177. package/dist/index-b56nnscm.js +132 -0
  178. package/dist/{index-0ndk4555.js → index-c0hffcmj.js} +2 -2
  179. package/dist/{index-pptyv13k.js → index-c17xcx4k.js} +42 -6
  180. package/dist/index-cazts87s.js +105 -0
  181. package/dist/{index-g2j7pnak.js → index-cmzvhhtd.js} +5 -2
  182. package/dist/{index-ssmd41kh.js → index-d2h99n7d.js} +1 -1
  183. package/dist/{index-z94wht4y.js → index-dky0dcmf.js} +34 -5
  184. package/dist/index-drs41arz.js +455 -0
  185. package/dist/{index-za6j7nwy.js → index-dsnjzb62.js} +104 -51
  186. package/dist/index-eemvahkc.js +21 -0
  187. package/dist/{index-fa4wg312.js → index-f199nfq5.js} +10 -6
  188. package/dist/{index-ck71tbcf.js → index-fsw1ybf3.js} +11 -15
  189. package/dist/{index-fk18k56k.js → index-gr5g3xfw.js} +11 -18
  190. package/dist/{index-jn9g8xdt.js → index-hjvje0pf.js} +6 -4
  191. package/dist/index-j4zh647a.js +59 -0
  192. package/dist/{index-x928baz2.js → index-j9gxbztg.js} +18 -14
  193. package/dist/index-kfjkb396.js +37 -0
  194. package/dist/{index-6drst9sg.js → index-ksfagmyz.js} +45 -345
  195. package/dist/index-m616f0yz.js +120 -0
  196. package/dist/{index-fm1c1a08.js → index-m6w6jtda.js} +40 -21
  197. package/dist/{index-bakgedh8.js → index-msfpyy2f.js} +2 -4
  198. package/dist/{index-ywppsaby.js → index-n1nszyk0.js} +23 -34
  199. package/dist/{index-v14qqmys.js → index-n4689krb.js} +1 -1
  200. package/dist/{index-a0zzh8ak.js → index-pz3y6b6g.js} +3 -3
  201. package/dist/{index-43p08g7t.js → index-pzb63z66.js} +12 -8
  202. package/dist/{index-h97tqqp1.js → index-qaet40b2.js} +5 -3
  203. package/dist/{index-t1sr4aks.js → index-qaqbdm7s.js} +52 -6
  204. package/dist/{index-77nxk6ay.js → index-r393tnfp.js} +16 -10
  205. package/dist/{index-kb8styz3.js → index-rpzewktb.js} +15 -5
  206. package/dist/{index-27a2pj09.js → index-sj28htvf.js} +1 -1
  207. package/dist/{index-hbd32c6a.js → index-w8etpm8j.js} +38 -89
  208. package/dist/{index-2hyavjjj.js → index-wbhdzxar.js} +3 -3
  209. package/dist/{index-4e0ah203.js → index-wdy68sh6.js} +47 -24
  210. package/dist/{index-hp9d77wk.js → index-x7w1z6pf.js} +15 -4
  211. package/dist/{index-ptn0g0gj.js → index-y7k2cdgv.js} +21 -20
  212. package/dist/{index-20yvtn9a.js → index-yt7gyg5x.js} +1 -1
  213. package/dist/{index-cvda079a.js → index-yvfk3y36.js} +12 -2
  214. package/dist/{index-5z6jn897.js → index-z23rfxhj.js} +1 -1
  215. package/dist/internal/abort-race.d.ts +8 -2
  216. package/dist/internal/abort-race.d.ts.map +1 -1
  217. package/dist/internal/atomic-file.d.ts +55 -9
  218. package/dist/internal/atomic-file.d.ts.map +1 -1
  219. package/dist/internal/atomic-publication.d.ts +39 -4
  220. package/dist/internal/atomic-publication.d.ts.map +1 -1
  221. package/dist/internal/atomic-staging.d.ts +47 -0
  222. package/dist/internal/atomic-staging.d.ts.map +1 -0
  223. package/dist/internal/bounded-file-read.d.ts +19 -11
  224. package/dist/internal/bounded-file-read.d.ts.map +1 -1
  225. package/dist/internal/bounded-lines.d.ts.map +1 -1
  226. package/dist/internal/close-after.d.ts +11 -0
  227. package/dist/internal/close-after.d.ts.map +1 -0
  228. package/dist/internal/deadline.d.ts +10 -0
  229. package/dist/internal/deadline.d.ts.map +1 -1
  230. package/dist/internal/exclusive-lock-read.d.ts +10 -12
  231. package/dist/internal/exclusive-lock-read.d.ts.map +1 -1
  232. package/dist/internal/exclusive-lock.d.ts +2 -2
  233. package/dist/internal/exclusive-lock.d.ts.map +1 -1
  234. package/dist/internal/file-observation.d.ts +14 -0
  235. package/dist/internal/file-observation.d.ts.map +1 -0
  236. package/dist/internal/json-data.d.ts +22 -5
  237. package/dist/internal/json-data.d.ts.map +1 -1
  238. package/dist/internal/positive-integer.d.ts +9 -0
  239. package/dist/internal/positive-integer.d.ts.map +1 -0
  240. package/dist/internal/process-instance.d.ts +35 -5
  241. package/dist/internal/process-instance.d.ts.map +1 -1
  242. package/dist/internal/secure-fetch.d.ts.map +1 -1
  243. package/dist/internal/timers.d.ts +11 -0
  244. package/dist/internal/timers.d.ts.map +1 -0
  245. package/dist/internal/with-exclusive-lock.d.ts +5 -4
  246. package/dist/internal/with-exclusive-lock.d.ts.map +1 -1
  247. package/dist/observability/bounded-sink.d.ts.map +1 -1
  248. package/dist/primitives/canonical-json.d.ts +23 -2
  249. package/dist/primitives/canonical-json.d.ts.map +1 -1
  250. package/dist/primitives/delivery.d.ts.map +1 -1
  251. package/dist/primitives/index.d.ts +1 -1
  252. package/dist/primitives/index.d.ts.map +1 -1
  253. package/dist/primitives/money.d.ts.map +1 -1
  254. package/dist/process/cleanup.d.ts +7 -2
  255. package/dist/process/cleanup.d.ts.map +1 -1
  256. package/dist/process/command-lifetime.d.ts +6 -1
  257. package/dist/process/command-lifetime.d.ts.map +1 -1
  258. package/dist/process/command-owner.d.ts +1 -0
  259. package/dist/process/command-owner.d.ts.map +1 -1
  260. package/dist/process/command.d.ts +4 -0
  261. package/dist/process/command.d.ts.map +1 -1
  262. package/dist/process/contract.d.ts +68 -2
  263. package/dist/process/contract.d.ts.map +1 -1
  264. package/dist/process/group.d.ts +42 -3
  265. package/dist/process/group.d.ts.map +1 -1
  266. package/dist/process/launch.d.ts +12 -1
  267. package/dist/process/launch.d.ts.map +1 -1
  268. package/dist/process/terminate.d.ts +40 -0
  269. package/dist/process/terminate.d.ts.map +1 -0
  270. package/dist/react/query-client.d.ts.map +1 -1
  271. package/dist/realtime/rejection.d.ts.map +1 -1
  272. package/dist/server/contract-stream.d.ts.map +1 -1
  273. package/dist/server/handler-state.d.ts.map +1 -1
  274. package/dist/server/implement.d.ts.map +1 -1
  275. package/dist/server/request-body.d.ts +0 -1
  276. package/dist/server/request-body.d.ts.map +1 -1
  277. package/dist/server/unix-client.d.ts.map +1 -1
  278. package/dist/telegram/broadcast-delivery.d.ts.map +1 -1
  279. package/dist/telegram/broadcast-failure.d.ts +10 -2
  280. package/dist/telegram/broadcast-failure.d.ts.map +1 -1
  281. package/dist/telegram/operator-channel.d.ts.map +1 -1
  282. package/dist/telegram/screens/outcome.d.ts.map +1 -1
  283. package/dist/testing/surface-conformance.d.ts +1 -1
  284. package/dist/testing/surface-conformance.d.ts.map +1 -1
  285. package/dist/testing/surface-manifest.d.ts +0 -6
  286. package/dist/testing/surface-manifest.d.ts.map +1 -1
  287. package/dist/tools/agent.d.ts +1 -1
  288. package/dist/tools/agent.d.ts.map +1 -1
  289. package/dist/tools/cli/args.d.ts +1 -1
  290. package/dist/tools/cli/args.d.ts.map +1 -1
  291. package/dist/tools/cli/help.d.ts.map +1 -1
  292. package/dist/tools/cli/invoke.d.ts +2 -2
  293. package/dist/tools/cli/invoke.d.ts.map +1 -1
  294. package/dist/tools/cli/profile.d.ts.map +1 -1
  295. package/dist/tools/cli/publication-assets.d.ts.map +1 -1
  296. package/dist/tools/cli/publication-contract.d.ts +8 -0
  297. package/dist/tools/cli/publication-contract.d.ts.map +1 -1
  298. package/dist/tools/cli/publication-control.d.ts.map +1 -1
  299. package/dist/tools/cli/publication-storage.d.ts +23 -2
  300. package/dist/tools/cli/publication-storage.d.ts.map +1 -1
  301. package/dist/tools/cli/publication.d.ts +8 -1
  302. package/dist/tools/cli/publication.d.ts.map +1 -1
  303. package/dist/tools/connections/errors.d.ts +18 -6
  304. package/dist/tools/connections/errors.d.ts.map +1 -1
  305. package/dist/tools/connections/limits.d.ts +8 -2
  306. package/dist/tools/connections/limits.d.ts.map +1 -1
  307. package/dist/tools/connections/mcp-client.d.ts.map +1 -1
  308. package/dist/tools/connections/mcp-envelope.d.ts.map +1 -1
  309. package/dist/tools/connections/openapi.d.ts.map +1 -1
  310. package/dist/tools/connections/schema-budget.d.ts +1 -1
  311. package/dist/tools/connections/schema-budget.d.ts.map +1 -1
  312. package/dist/tools/connections/sse-session.d.ts.map +1 -1
  313. package/dist/tools/execute-args.d.ts.map +1 -1
  314. package/dist/tools/execute-result.d.ts.map +1 -1
  315. package/dist/tools/internal/surface-projector.d.ts +17 -3
  316. package/dist/tools/internal/surface-projector.d.ts.map +1 -1
  317. package/dist/tools/internal/tool-error-projection.d.ts +16 -0
  318. package/dist/tools/internal/tool-error-projection.d.ts.map +1 -0
  319. package/dist/tools/internal/tool-view.d.ts.map +1 -1
  320. package/dist/tools/invoker.d.ts.map +1 -1
  321. package/dist/tools/list-names.d.ts +3 -2
  322. package/dist/tools/list-names.d.ts.map +1 -1
  323. package/dist/tools/manifest.d.ts +3 -2
  324. package/dist/tools/manifest.d.ts.map +1 -1
  325. package/dist/tools/mcp/handler.d.ts +7 -0
  326. package/dist/tools/mcp/handler.d.ts.map +1 -1
  327. package/dist/tools/mcp/mount.d.ts +18 -2
  328. package/dist/tools/mcp/mount.d.ts.map +1 -1
  329. package/dist/tools/mcp/prepare.d.ts +3 -3
  330. package/dist/tools/mcp/prepare.d.ts.map +1 -1
  331. package/dist/tools/mcp/register.d.ts.map +1 -1
  332. package/dist/tools/mcp/runtime-tools.d.ts.map +1 -1
  333. package/dist/tools/mcp/stdio-signals.d.ts +14 -0
  334. package/dist/tools/mcp/stdio-signals.d.ts.map +1 -1
  335. package/dist/tools/mcp/stdio.d.ts +7 -0
  336. package/dist/tools/mcp/stdio.d.ts.map +1 -1
  337. package/dist/tools/operations/async-operation-runtime-tools.d.ts.map +1 -1
  338. package/dist/tools/operations/async-operation-runtime-types.d.ts +3 -3
  339. package/dist/tools/operations/async-operation-runtime-types.d.ts.map +1 -1
  340. package/dist/tools/operations/define-wait-tool.d.ts +1 -1
  341. package/dist/tools/operations/define-wait-tool.d.ts.map +1 -1
  342. package/dist/tools/operations/wait-core.d.ts +0 -6
  343. package/dist/tools/operations/wait-core.d.ts.map +1 -1
  344. package/dist/tools/registry.d.ts +1 -1
  345. package/dist/tools/registry.d.ts.map +1 -1
  346. package/dist/tools/remote.d.ts +1 -1
  347. package/dist/tools/remote.d.ts.map +1 -1
  348. package/dist/tools/{runtime-tool-execution.d.ts → runtime-tool-declaration.d.ts} +32 -9
  349. package/dist/tools/runtime-tool-declaration.d.ts.map +1 -0
  350. package/dist/tools/runtime-tool-mcp.d.ts +6 -15
  351. package/dist/tools/runtime-tool-mcp.d.ts.map +1 -1
  352. package/dist/tools/runtime-tool.d.ts +14 -12
  353. package/dist/tools/runtime-tool.d.ts.map +1 -1
  354. package/dist/tools/schema/coerce.d.ts +4 -0
  355. package/dist/tools/schema/coerce.d.ts.map +1 -1
  356. package/dist/tools/schema/flatten-join.d.ts.map +1 -1
  357. package/dist/tools/surface.d.ts +7 -11
  358. package/dist/tools/surface.d.ts.map +1 -1
  359. package/dist/tools/transfer/define-download-tool.d.ts +1 -1
  360. package/dist/tools/transfer/define-download-tool.d.ts.map +1 -1
  361. package/dist/tools/transfer/define-upload-tool.d.ts +1 -1
  362. package/dist/tools/transfer/define-upload-tool.d.ts.map +1 -1
  363. package/dist/tools/transfer/define-view-file-tool.d.ts +1 -1
  364. package/dist/tools/transfer/define-view-file-tool.d.ts.map +1 -1
  365. package/dist/tools/transfer/managed-file-error.d.ts.map +1 -1
  366. package/dist/tools/transfer/view-file-contract.d.ts.map +1 -1
  367. package/dist/tools/transfer/view-file.d.ts +1 -1
  368. package/dist/tools/transfer/view-file.d.ts.map +1 -1
  369. package/dist/tools/transports.d.ts +3 -2
  370. package/dist/tools/transports.d.ts.map +1 -1
  371. package/llms/agent-runtime-browser.txt +10 -4
  372. package/llms/agent-runtime-harness.txt +32 -31
  373. package/llms/agent-runtime-react.txt +1 -1
  374. package/llms/agent-runtime-realtime.txt +14 -5
  375. package/llms/agent-runtime-sandbox.txt +3 -11
  376. package/llms/agent-runtime.3.txt +2 -2
  377. package/llms/agent-runtime.txt +0 -9
  378. package/llms/application.2.txt +3 -12
  379. package/llms/application.3.txt +7 -4
  380. package/llms/application.txt +44 -15
  381. package/llms/cli-publish.txt +29 -0
  382. package/llms/cli.2.txt +9 -11
  383. package/llms/cli.txt +26 -14
  384. package/llms/declaration.txt +0 -9
  385. package/llms/files-packaging.txt +18 -8
  386. package/llms/files.txt +4 -2
  387. package/llms/geo.txt +0 -9
  388. package/llms/live.txt +4 -13
  389. package/llms/observability.txt +31 -5
  390. package/llms/primitives.txt +38 -20
  391. package/llms/process.txt +324 -160
  392. package/llms/react-keyboard.txt +0 -9
  393. package/llms/react.txt +0 -18
  394. package/llms/server.4.txt +1 -1
  395. package/llms/server.5.txt +1 -1
  396. package/llms/server.txt +1 -1
  397. package/llms/stitchkit.txt +6 -7
  398. package/llms/telegram-screens.txt +2 -2
  399. package/llms/testing.txt +0 -1
  400. package/llms/tools-mcp.txt +2 -3
  401. package/llms/tools.2.txt +12 -0
  402. package/llms/tools.3.txt +5 -6
  403. package/llms/tools.txt +6 -4
  404. package/llms/upgrading-0.37.0-0.50.0.txt +947 -0
  405. package/llms/{upgrading-0.44.0-0.61.0.txt → upgrading-0.53.0-0.67.0.txt} +576 -506
  406. package/llms/{upgrading-0.62.0-0.80.0.txt → upgrading-0.68.0-0.94.0.txt} +562 -576
  407. package/llms/{upgrading-0.81.0-0.104.0.txt → upgrading-0.95.0-0.105.0.txt} +452 -567
  408. package/llms/upgrading.txt +4 -4
  409. package/llms-full.txt +1068 -412
  410. package/llms.txt +24 -24
  411. package/native-assets.json +11 -3
  412. package/package.json +6 -6
  413. package/dist/agent-runtime/harness-tools.d.ts +0 -11
  414. package/dist/agent-runtime/harness-tools.d.ts.map +0 -1
  415. package/dist/entrypoints/agent-runtime/harness-tools.d.ts +0 -2
  416. package/dist/entrypoints/agent-runtime/harness-tools.d.ts.map +0 -1
  417. package/dist/entrypoints/agent-runtime/harness-tools.js +0 -32
  418. package/dist/index-1a6jtnd9.js +0 -88
  419. package/dist/index-8a9ksm91.js +0 -95
  420. package/dist/index-a3wma1hk.js +0 -48
  421. package/dist/index-jd470k6q.js +0 -109
  422. package/dist/index-n1dqr7gf.js +0 -20
  423. package/dist/index-nggfa2yn.js +0 -34
  424. package/dist/index-s4evrmp5.js +0 -98
  425. package/dist/index-ze1eph1k.js +0 -20
  426. package/dist/tools/connections/error-projection.d.ts +0 -4
  427. package/dist/tools/connections/error-projection.d.ts.map +0 -1
  428. package/dist/tools/runtime-tool-execution.d.ts.map +0 -1
  429. package/llms/agent-runtime-harness-tools.txt +0 -25
  430. package/llms/upgrading-0.37.0-0.44.0.txt +0 -444
@@ -0,0 +1,285 @@
1
+ import {
2
+ raceAbort
3
+ } from "./index-b0kddvzw.js";
4
+
5
+ // src/internal/secure-fetch.ts
6
+ import { lookup } from "node:dns/promises";
7
+ import { request as httpRequest } from "node:http";
8
+ import { request as httpsRequest } from "node:https";
9
+ import { isIP } from "node:net";
10
+ var NUMERIC_HOST = /^(0x[0-9a-f]+|[0-9.]+)$/i;
11
+ var MAX_REDIRECTS = 5;
12
+ function assertHttpUrl(url) {
13
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
14
+ throw new Error(`refusing to fetch a non-http(s) URL (${url.protocol})`);
15
+ }
16
+ }
17
+ function mappedIpv4FromIpv6(ip) {
18
+ const rest = ip.startsWith("::ffff:") ? ip.slice("::ffff:".length) : ip.startsWith("0:0:0:0:0:ffff:") ? ip.slice("0:0:0:0:0:ffff:".length) : null;
19
+ if (rest === null)
20
+ return null;
21
+ if (isIP(rest) === 4)
22
+ return rest;
23
+ const [hiRaw, loRaw, extra] = rest.split(":");
24
+ if (hiRaw === undefined || loRaw === undefined || extra !== undefined)
25
+ return null;
26
+ if (!/^[0-9a-f]{1,4}$/i.test(hiRaw) || !/^[0-9a-f]{1,4}$/i.test(loRaw))
27
+ return null;
28
+ const hi = Number.parseInt(hiRaw, 16);
29
+ const lo = Number.parseInt(loRaw, 16);
30
+ return [hi >> 8, hi & 255, lo >> 8, lo & 255].join(".");
31
+ }
32
+ function ipv6Words(ip) {
33
+ const halves = ip.toLowerCase().split("::");
34
+ if (halves.length > 2)
35
+ return null;
36
+ const head = halves[0] ? halves[0].split(":") : [];
37
+ const tail = halves[1] ? halves[1].split(":") : [];
38
+ const missing = 8 - head.length - tail.length;
39
+ if (halves.length === 1 && missing !== 0 || missing < 0)
40
+ return null;
41
+ const parts = halves.length === 2 ? [...head, ...Array(missing).fill("0"), ...tail] : head;
42
+ if (parts.length !== 8)
43
+ return null;
44
+ const words = [];
45
+ for (const part of parts) {
46
+ if (!/^[0-9a-f]{1,4}$/i.test(part))
47
+ return null;
48
+ words.push(Number.parseInt(part, 16));
49
+ }
50
+ return words;
51
+ }
52
+ function isPrivateIp(ip) {
53
+ const normalized = ip.replace(/^\[|\]$/g, "");
54
+ const family = isIP(normalized);
55
+ if (family === 4) {
56
+ const [a, b] = normalized.split(".").map(Number);
57
+ if (a === undefined || b === undefined)
58
+ return true;
59
+ const value = normalized.split(".").map(Number).reduce((total, octet) => total * 256 + octet, 0);
60
+ const inCidr = (base, prefix) => {
61
+ const baseValue = base.split(".").map(Number).reduce((total, octet) => total * 256 + octet, 0);
62
+ const size = 2 ** (32 - prefix);
63
+ return value >= baseValue && value < baseValue + size;
64
+ };
65
+ const blockedRanges = [
66
+ ["0.0.0.0", 8],
67
+ ["10.0.0.0", 8],
68
+ ["100.64.0.0", 10],
69
+ ["127.0.0.0", 8],
70
+ ["169.254.0.0", 16],
71
+ ["172.16.0.0", 12],
72
+ ["192.0.0.0", 24],
73
+ ["192.0.2.0", 24],
74
+ ["192.31.196.0", 24],
75
+ ["192.52.193.0", 24],
76
+ ["192.88.99.0", 24],
77
+ ["192.168.0.0", 16],
78
+ ["192.175.48.0", 24],
79
+ ["198.18.0.0", 15],
80
+ ["198.51.100.0", 24],
81
+ ["203.0.113.0", 24],
82
+ ["224.0.0.0", 4],
83
+ ["240.0.0.0", 4]
84
+ ];
85
+ return blockedRanges.some(([base, prefix]) => inCidr(base, prefix));
86
+ }
87
+ if (family === 6) {
88
+ const lower = normalized.toLowerCase();
89
+ const mapped = mappedIpv4FromIpv6(lower);
90
+ if (mapped)
91
+ return isPrivateIp(mapped);
92
+ const words = ipv6Words(lower);
93
+ if (!words)
94
+ return true;
95
+ const [first, second, third] = words;
96
+ if (first === undefined || second === undefined || third === undefined)
97
+ return true;
98
+ return first === 0 || first === 100 && second === 65435 && third === 1 || first === 256 && second === 0 || first === 8193 && (second <= 511 || second === 3512) || first === 8194 || first === 16383 || first === 24320 || (first & 65024) === 64512 || (first & 65472) === 65152 || (first & 65280) === 65280;
99
+ }
100
+ return false;
101
+ }
102
+ async function assertPublicUrl(url, signal) {
103
+ await resolvePublicAddress(url, signal);
104
+ }
105
+ async function fetchGuarded(start, allowPrivate, options = {}) {
106
+ const timeoutMs = options.timeoutMs ?? 15000;
107
+ const bodyTimeoutMs = options.bodyTimeoutMs ?? 120000;
108
+ if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
109
+ throw new Error("timeoutMs must be positive");
110
+ }
111
+ if (!Number.isFinite(bodyTimeoutMs) || bodyTimeoutMs <= 0) {
112
+ throw new Error("bodyTimeoutMs must be positive");
113
+ }
114
+ const controller = new AbortController;
115
+ const signal = options.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal;
116
+ const headerTimer = setTimeout(() => {
117
+ controller.abort(new Error(`fetch did not produce response headers within ${timeoutMs}ms`));
118
+ }, timeoutMs);
119
+ headerTimer.unref?.();
120
+ let settled = false;
121
+ try {
122
+ let url = start;
123
+ for (let hop = 0;hop <= MAX_REDIRECTS; hop++) {
124
+ if (allowPrivate)
125
+ assertHttpUrl(url);
126
+ else
127
+ await assertPublicUrl(url, signal);
128
+ const res = await fetch(url, { redirect: "manual", signal });
129
+ const location = res.status >= 300 && res.status < 400 ? res.headers.get("location") : null;
130
+ if (location === null) {
131
+ settled = true;
132
+ clearTimeout(headerTimer);
133
+ const bodyTimer = setTimeout(() => {
134
+ controller.abort(new Error(`fetch body was not consumed within ${bodyTimeoutMs}ms`));
135
+ }, bodyTimeoutMs);
136
+ bodyTimer.unref?.();
137
+ return res;
138
+ }
139
+ await res.body?.cancel();
140
+ url = new URL(location, url);
141
+ }
142
+ throw new Error("too many redirects");
143
+ } finally {
144
+ if (!settled)
145
+ clearTimeout(headerTimer);
146
+ }
147
+ }
148
+
149
+ class PrivateAddressRefusal extends Error {
150
+ name = "PrivateAddressRefusal";
151
+ }
152
+ async function resolvePublicAddress(url, signal) {
153
+ assertHttpUrl(url);
154
+ const host = url.hostname.replace(/^\[|\]$/g, "");
155
+ if (!host)
156
+ throw new Error("refusing to fetch a URL with no host");
157
+ const ipFamily = isIP(host);
158
+ if (ipFamily) {
159
+ if (isPrivateIp(host))
160
+ throw new PrivateAddressRefusal("refusing to fetch a private address");
161
+ return { address: host, family: ipFamily === 6 ? 6 : 4 };
162
+ }
163
+ if (NUMERIC_HOST.test(host)) {
164
+ throw new PrivateAddressRefusal("refusing to fetch a non-canonical numeric host");
165
+ }
166
+ if (host === "localhost" || host.endsWith(".local") || host.endsWith(".internal")) {
167
+ throw new PrivateAddressRefusal("refusing to fetch an internal host");
168
+ }
169
+ const pending = lookup(host, { all: true });
170
+ const records = signal ? await raceAbort(pending, signal) : await pending;
171
+ for (const record of records) {
172
+ if (isPrivateIp(record.address)) {
173
+ throw new PrivateAddressRefusal("refusing to fetch a host that resolves to a private address");
174
+ }
175
+ }
176
+ const record = records[0];
177
+ if (!record)
178
+ throw new Error("public hostname resolved to no addresses");
179
+ return { address: record.address, family: record.family === 6 ? 6 : 4 };
180
+ }
181
+ async function fetchPinnedDocument(start, options) {
182
+ if (!Number.isInteger(options.maxBytes) || options.maxBytes < 1) {
183
+ throw new Error("maxBytes must be a positive integer");
184
+ }
185
+ if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0) {
186
+ throw new Error("timeoutMs must be positive");
187
+ }
188
+ let url = start;
189
+ const maxRedirects = options.maxRedirects ?? MAX_REDIRECTS;
190
+ if (!Number.isInteger(maxRedirects) || maxRedirects < 0) {
191
+ throw new Error("maxRedirects must be a non-negative integer");
192
+ }
193
+ const signal = AbortSignal.timeout(options.timeoutMs);
194
+ for (let hop = 0;hop <= maxRedirects; hop++) {
195
+ if (options.requireHttps && url.protocol !== "https:") {
196
+ throw new Error("document URL and every redirect must use https");
197
+ }
198
+ if (url.username || url.password) {
199
+ throw new Error("document URL cannot contain credentials");
200
+ }
201
+ const resolved = await resolvePublicAddress(url, signal);
202
+ const transport = url.protocol === "https:" ? httpsRequest : httpRequest;
203
+ const response = await new Promise((resolve, reject) => {
204
+ const request = transport({
205
+ protocol: url.protocol,
206
+ hostname: resolved.address,
207
+ family: resolved.family,
208
+ port: url.port || undefined,
209
+ path: `${url.pathname}${url.search}`,
210
+ method: "GET",
211
+ signal,
212
+ servername: url.hostname,
213
+ headers: {
214
+ host: url.host,
215
+ accept: "application/json",
216
+ ...options.headers
217
+ }
218
+ }, (incoming) => {
219
+ const headers = new Headers;
220
+ for (const [name, value] of Object.entries(incoming.headers)) {
221
+ if (Array.isArray(value)) {
222
+ for (const item of value)
223
+ headers.append(name, item);
224
+ } else if (value !== undefined) {
225
+ headers.set(name, value);
226
+ }
227
+ }
228
+ const chunks = [];
229
+ let total = 0;
230
+ incoming.on("data", (chunk) => {
231
+ total += chunk.byteLength;
232
+ if (total > options.maxBytes) {
233
+ incoming.destroy(new Error("response body exceeds configured byte limit"));
234
+ return;
235
+ }
236
+ chunks.push(chunk);
237
+ });
238
+ incoming.once("error", reject);
239
+ incoming.once("end", () => {
240
+ const body = new Uint8Array(total);
241
+ let offset = 0;
242
+ for (const chunk of chunks) {
243
+ body.set(chunk, offset);
244
+ offset += chunk.byteLength;
245
+ }
246
+ resolve({ status: incoming.statusCode ?? 0, headers, body, url });
247
+ });
248
+ });
249
+ request.once("error", reject);
250
+ request.end();
251
+ });
252
+ if (response.status < 300 || response.status >= 400)
253
+ return response;
254
+ const location = response.headers.get("location");
255
+ if (!location)
256
+ return response;
257
+ url = new URL(location, url);
258
+ }
259
+ throw new Error("too many redirects");
260
+ }
261
+ async function readCapped(res, max) {
262
+ const reader = res.body?.getReader();
263
+ if (!reader)
264
+ return Buffer.alloc(0);
265
+ const chunks = [];
266
+ let total = 0;
267
+ try {
268
+ while (true) {
269
+ const { done, value } = await reader.read();
270
+ if (done)
271
+ break;
272
+ total += value.length;
273
+ if (total > max) {
274
+ await reader.cancel();
275
+ return null;
276
+ }
277
+ chunks.push(value);
278
+ }
279
+ } finally {
280
+ reader.releaseLock();
281
+ }
282
+ return Buffer.concat(chunks);
283
+ }
284
+
285
+ export { fetchGuarded, PrivateAddressRefusal, fetchPinnedDocument, readCapped };
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  attemptExclusiveLock
3
- } from "./index-za6j7nwy.js";
3
+ } from "./index-dsnjzb62.js";
4
+ import {
5
+ sleep
6
+ } from "./index-eemvahkc.js";
4
7
 
5
8
  // src/internal/with-exclusive-lock.ts
6
9
  class ExclusiveLockError2 extends Error {
@@ -16,7 +19,6 @@ class ExclusiveLockError2 extends Error {
16
19
  }
17
20
  }
18
21
  var DEFAULT_TIMEOUT_MS = 1e4;
19
- var DEFAULT_OWNERLESS_GRACE_MS = 5000;
20
22
  var FIRST_RETRY_MS = 10;
21
23
  var MAX_RETRY_MS = 100;
22
24
  function nonNegative(name, value, fallback) {
@@ -39,21 +41,10 @@ function describeEvidence(diagnosis) {
39
41
  const identity = diagnosis.identity === undefined ? "" : `, identity ${diagnosis.identity}`;
40
42
  return ` (${diagnosis.attribution}, liveness ${diagnosis.liveness}${identity})`;
41
43
  }
42
- function pause(ms, signal) {
43
- return new Promise((resolve) => {
44
- const done = () => {
45
- clearTimeout(timer);
46
- signal?.removeEventListener("abort", done);
47
- resolve();
48
- };
49
- const timer = setTimeout(done, ms);
50
- signal?.addEventListener("abort", done, { once: true });
51
- });
52
- }
53
44
  async function withExclusiveLock2(path, run, options = {}) {
54
45
  const label = options.label ?? path;
55
46
  const timeoutMs = nonNegative("timeoutMs", options.timeoutMs, DEFAULT_TIMEOUT_MS);
56
- const ownerlessGraceMs = options.ownerlessGraceMs === null ? null : nonNegative("ownerlessGraceMs", options.ownerlessGraceMs, DEFAULT_OWNERLESS_GRACE_MS);
47
+ const ownerlessGraceMs = options.ownerlessGraceMs === undefined || options.ownerlessGraceMs === null ? options.ownerlessGraceMs : nonNegative("ownerlessGraceMs", options.ownerlessGraceMs, 0);
57
48
  const mode = options.mode ?? 384;
58
49
  if (!Number.isInteger(mode) || mode < 0 || mode > 511)
59
50
  throw new RangeError("[stitchkit] withExclusiveLock: mode must be permission bits from 0000 to 0777");
@@ -108,7 +99,9 @@ async function withExclusiveLock2(path, run, options = {}) {
108
99
  const holder = attempt.diagnosis?.owner ?? null;
109
100
  throw new ExclusiveLockError2("LOCK_TIMEOUT", label, holder, `[stitchkit] the lock on "${label}" is held by ${describeHolder(holder)}${describeEvidence(attempt.diagnosis)}; gave up after ${timeoutMs} ms`, { cause: attempt.diagnosis?.cause ?? attempt.error });
110
101
  }
111
- await pause(Math.min(delay * (0.5 + Math.random() / 2), remaining), signal);
102
+ await sleep(Math.min(delay * (0.5 + Math.random() / 2), remaining), signal).catch(() => {
103
+ return;
104
+ });
112
105
  delay = Math.min(delay * 2, MAX_RETRY_MS);
113
106
  }
114
107
  }
@@ -0,0 +1,17 @@
1
+ import {
2
+ AppError2
3
+ } from "./index-j9gxbztg.js";
4
+
5
+ // src/tools/internal/tool-error-projection.ts
6
+ var TOOL_ERROR_PROJECTION = Symbol.for("stitchkit.toolErrorProjection");
7
+ function projectedToolError(error) {
8
+ if (typeof error !== "object" || error === null)
9
+ return;
10
+ const project = Reflect.get(error, TOOL_ERROR_PROJECTION);
11
+ if (typeof project !== "function")
12
+ return;
13
+ const projected = Reflect.apply(project, error, []);
14
+ return AppError2.is(projected) ? projected : undefined;
15
+ }
16
+
17
+ export { TOOL_ERROR_PROJECTION, projectedToolError };