stitchkit 0.94.0 → 0.94.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 (346) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/agent-runtime/coding-shell-process.d.ts.map +1 -1
  3. package/dist/agent-runtime/coding-tool-listing.d.ts.map +1 -1
  4. package/dist/agent-runtime/coding-tool-search-patch.d.ts.map +1 -1
  5. package/dist/agent-runtime/contained-darwin.d.ts +38 -0
  6. package/dist/agent-runtime/contained-darwin.d.ts.map +1 -0
  7. package/dist/agent-runtime/contained-files.d.ts +11 -26
  8. package/dist/agent-runtime/contained-files.d.ts.map +1 -1
  9. package/dist/agent-runtime/contained-scan.d.ts +21 -0
  10. package/dist/agent-runtime/contained-scan.d.ts.map +1 -0
  11. package/dist/agent-runtime/contained-write.d.ts +9 -0
  12. package/dist/agent-runtime/contained-write.d.ts.map +1 -0
  13. package/dist/agent-runtime/deferred-tool-types.d.ts +3 -2
  14. package/dist/agent-runtime/deferred-tool-types.d.ts.map +1 -1
  15. package/dist/agent-runtime/harness-control.d.ts +0 -1
  16. package/dist/agent-runtime/harness-control.d.ts.map +1 -1
  17. package/dist/agent-runtime/harness.d.ts +0 -5
  18. package/dist/agent-runtime/harness.d.ts.map +1 -1
  19. package/dist/agent-runtime/managed-tools.d.ts +3 -2
  20. package/dist/agent-runtime/managed-tools.d.ts.map +1 -1
  21. package/dist/agent-runtime/runtime.d.ts +1 -1
  22. package/dist/agent-runtime/runtime.d.ts.map +1 -1
  23. package/dist/agent-runtime/schedule-records.d.ts +34 -0
  24. package/dist/agent-runtime/schedule-records.d.ts.map +1 -0
  25. package/dist/agent-runtime/schedules.d.ts +34 -0
  26. package/dist/agent-runtime/schedules.d.ts.map +1 -1
  27. package/dist/agent-runtime/store-conformance-lifecycle.d.ts +434 -0
  28. package/dist/agent-runtime/store-conformance-lifecycle.d.ts.map +1 -0
  29. package/dist/agent-runtime/store-conformance-ordering.d.ts +18 -0
  30. package/dist/agent-runtime/store-conformance-ordering.d.ts.map +1 -0
  31. package/dist/agent-runtime/store-conformance-support.d.ts +130 -0
  32. package/dist/agent-runtime/store-conformance-support.d.ts.map +1 -0
  33. package/dist/agent-runtime/store-conformance-terminal.d.ts +12 -0
  34. package/dist/agent-runtime/store-conformance-terminal.d.ts.map +1 -0
  35. package/dist/agent-runtime/store-conformance.d.ts.map +1 -1
  36. package/dist/application/admission-rate.d.ts +21 -0
  37. package/dist/application/admission-rate.d.ts.map +1 -0
  38. package/dist/application/admission-run.d.ts +8 -0
  39. package/dist/application/admission-run.d.ts.map +1 -0
  40. package/dist/application/admission.d.ts.map +1 -1
  41. package/dist/application/diagnostic-journal-lock.d.ts +9 -34
  42. package/dist/application/diagnostic-journal-lock.d.ts.map +1 -1
  43. package/dist/application/diagnostic-journal-manager.d.ts.map +1 -1
  44. package/dist/application/diagnostic-journal-storage.d.ts.map +1 -1
  45. package/dist/application/kernel-resource-context.d.ts.map +1 -1
  46. package/dist/application/notification-outbox.d.ts.map +1 -1
  47. package/dist/application/schedule.d.ts +0 -1
  48. package/dist/application/schedule.d.ts.map +1 -1
  49. package/dist/application/watch-hub-core.d.ts +122 -0
  50. package/dist/application/watch-hub-core.d.ts.map +1 -0
  51. package/dist/application/watch-hub.d.ts +2 -2
  52. package/dist/application/watch-hub.d.ts.map +1 -1
  53. package/dist/browser/client-executors.d.ts +14 -0
  54. package/dist/browser/client-executors.d.ts.map +1 -0
  55. package/dist/browser/client-multipart.d.ts +1 -1
  56. package/dist/browser/client-multipart.d.ts.map +1 -1
  57. package/dist/browser/client.d.ts +3 -2
  58. package/dist/browser/client.d.ts.map +1 -1
  59. package/dist/browser/http-fetch.d.ts +22 -0
  60. package/dist/browser/http-fetch.d.ts.map +1 -0
  61. package/dist/browser/http.d.ts +1 -3
  62. package/dist/browser/http.d.ts.map +1 -1
  63. package/dist/browser/live-state-core.d.ts +63 -0
  64. package/dist/browser/live-state-core.d.ts.map +1 -0
  65. package/dist/browser/live-state.d.ts.map +1 -1
  66. package/dist/browser/realtime-client.d.ts +26 -0
  67. package/dist/browser/realtime-client.d.ts.map +1 -0
  68. package/dist/browser/socket-io-connection.d.ts +82 -0
  69. package/dist/browser/socket-io-connection.d.ts.map +1 -0
  70. package/dist/browser/socket-io-peer.d.ts +20 -0
  71. package/dist/browser/socket-io-peer.d.ts.map +1 -0
  72. package/dist/browser/socket-io-trace.d.ts +31 -0
  73. package/dist/browser/socket-io-trace.d.ts.map +1 -0
  74. package/dist/browser/socket-io.d.ts +2 -18
  75. package/dist/browser/socket-io.d.ts.map +1 -1
  76. package/dist/contract/client-types.d.ts +134 -0
  77. package/dist/contract/client-types.d.ts.map +1 -0
  78. package/dist/contract/define-validation.d.ts +30 -0
  79. package/dist/contract/define-validation.d.ts.map +1 -0
  80. package/dist/contract/define.d.ts +3 -357
  81. package/dist/contract/define.d.ts.map +1 -1
  82. package/dist/contract/runtime-context.d.ts +131 -0
  83. package/dist/contract/runtime-context.d.ts.map +1 -0
  84. package/dist/contract/tool-options.d.ts +105 -0
  85. package/dist/contract/tool-options.d.ts.map +1 -0
  86. package/dist/contract/tool-view.d.ts +15 -2
  87. package/dist/contract/tool-view.d.ts.map +1 -1
  88. package/dist/durability/contract.d.ts +83 -0
  89. package/dist/durability/contract.d.ts.map +1 -1
  90. package/dist/durability/effect.d.ts +24 -0
  91. package/dist/durability/effect.d.ts.map +1 -0
  92. package/dist/durability/engine.d.ts +2 -2
  93. package/dist/durability/engine.d.ts.map +1 -1
  94. package/dist/durability/events.d.ts +2 -0
  95. package/dist/durability/events.d.ts.map +1 -1
  96. package/dist/durability/ledger.d.ts +11 -0
  97. package/dist/durability/ledger.d.ts.map +1 -1
  98. package/dist/durability/parks.d.ts +22 -0
  99. package/dist/durability/parks.d.ts.map +1 -0
  100. package/dist/durability/scheduler.d.ts +1 -0
  101. package/dist/durability/scheduler.d.ts.map +1 -1
  102. package/dist/entrypoints/agent-runtime/coding-tools.js +4 -4
  103. package/dist/entrypoints/agent-runtime/harness.js +127 -116
  104. package/dist/entrypoints/agent-runtime/sandbox.js +4 -4
  105. package/dist/entrypoints/agent-runtime/sqlite/bun.js +3 -3
  106. package/dist/entrypoints/agent-runtime/sqlite/node.js +3 -3
  107. package/dist/entrypoints/agent-runtime/testing.js +246 -214
  108. package/dist/entrypoints/agent-runtime.js +224 -203
  109. package/dist/entrypoints/application/diagnostic-journal.js +63 -203
  110. package/dist/entrypoints/application/opentelemetry.js +1 -1
  111. package/dist/entrypoints/application.js +361 -324
  112. package/dist/entrypoints/cli.d.ts +4 -1
  113. package/dist/entrypoints/cli.d.ts.map +1 -1
  114. package/dist/entrypoints/cli.js +57 -35
  115. package/dist/entrypoints/contract.d.ts +5 -2
  116. package/dist/entrypoints/contract.d.ts.map +1 -1
  117. package/dist/entrypoints/contract.js +3 -2
  118. package/dist/entrypoints/files.d.ts +2 -0
  119. package/dist/entrypoints/files.d.ts.map +1 -1
  120. package/dist/entrypoints/files.js +98 -2
  121. package/dist/entrypoints/index.d.ts +4 -2
  122. package/dist/entrypoints/index.d.ts.map +1 -1
  123. package/dist/entrypoints/index.js +348 -282
  124. package/dist/entrypoints/live.js +89 -71
  125. package/dist/entrypoints/node.d.ts +2 -1
  126. package/dist/entrypoints/node.d.ts.map +1 -1
  127. package/dist/entrypoints/node.js +13 -12
  128. package/dist/entrypoints/react.js +1 -1
  129. package/dist/entrypoints/remote.js +4 -4
  130. package/dist/entrypoints/server.d.ts +4 -2
  131. package/dist/entrypoints/server.d.ts.map +1 -1
  132. package/dist/entrypoints/server.js +293 -79
  133. package/dist/entrypoints/testing.d.ts +2 -1
  134. package/dist/entrypoints/testing.d.ts.map +1 -1
  135. package/dist/entrypoints/testing.js +288 -281
  136. package/dist/entrypoints/tools/connections.js +2 -2
  137. package/dist/entrypoints/tools/invoker.js +4 -4
  138. package/dist/entrypoints/tools.d.ts +6 -3
  139. package/dist/entrypoints/tools.d.ts.map +1 -1
  140. package/dist/entrypoints/tools.js +245 -202
  141. package/dist/entrypoints/tracking.js +325 -274
  142. package/dist/files/boundary.d.ts.map +1 -1
  143. package/dist/files/file-io.d.ts +14 -0
  144. package/dist/files/file-io.d.ts.map +1 -0
  145. package/dist/index-1j8pm5t0.js +412 -0
  146. package/dist/{index-kvj7f4hq.js → index-2bxbyab0.js} +10 -2
  147. package/dist/{index-xnj9bgxe.js → index-2gxzjvyr.js} +2 -162
  148. package/dist/index-4gcnakhx.js +82 -0
  149. package/dist/{index-j05z5gn4.js → index-55hkhm67.js} +136 -119
  150. package/dist/{index-cq4qfycf.js → index-79z7m7dt.js} +227 -59
  151. package/dist/{index-97ac4gph.js → index-7f68ghdn.js} +3 -3
  152. package/dist/{index-r7nmqpsg.js → index-7p1f0vp2.js} +1 -1
  153. package/dist/{index-dcpdvjsc.js → index-863ea9jb.js} +4 -4
  154. package/dist/index-8p52kd5p.js +242 -0
  155. package/dist/{index-2qzskm8h.js → index-dce5wxcq.js} +1 -1
  156. package/dist/index-e01r054k.js +105 -0
  157. package/dist/{index-sees8yf8.js → index-ensd0r74.js} +118 -111
  158. package/dist/{index-1nd48tm9.js → index-gxrt5h6v.js} +2 -1
  159. package/dist/{index-e87kakm4.js → index-ham5sz8m.js} +112 -110
  160. package/dist/{index-kj2wbeta.js → index-het2he5g.js} +280 -196
  161. package/dist/{index-vcvkq30w.js → index-hmp4800j.js} +3 -3
  162. package/dist/{index-gyr48nzg.js → index-k30h66yd.js} +71 -151
  163. package/dist/{index-2cr1cqhn.js → index-khtgb21r.js} +2 -2
  164. package/dist/{index-x4799c19.js → index-ndddxtyx.js} +11 -11
  165. package/dist/{index-dydjcp8z.js → index-np4m8hd3.js} +38 -36
  166. package/dist/{index-p81267c2.js → index-p3vsv1fb.js} +621 -357
  167. package/dist/{index-mp5sn43f.js → index-p9e0w8hs.js} +2 -2
  168. package/dist/{index-rewkc2hj.js → index-p9sh0xx4.js} +3 -3
  169. package/dist/{index-70yj2ebz.js → index-paz6sgdp.js} +107 -103
  170. package/dist/{index-bn2cjajt.js → index-px2gm2jp.js} +26 -102
  171. package/dist/index-s812ycat.js +65 -0
  172. package/dist/{index-xsqjkha9.js → index-sp1tzwnb.js} +2 -2
  173. package/dist/{index-n6hxg8as.js → index-t9rhjr9f.js} +615 -566
  174. package/dist/{index-zeemqhqx.js → index-v260df89.js} +88 -80
  175. package/dist/{index-fdp6hdxn.js → index-w906953s.js} +5 -1
  176. package/dist/{index-mdzh02yc.js → index-wdkt63w3.js} +1 -1
  177. package/dist/{index-58k4fp34.js → index-wsm5w4ee.js} +1 -1
  178. package/dist/{index-v38qyerb.js → index-xw3s75nj.js} +1 -1
  179. package/dist/internal/atomic-file.d.ts +23 -2
  180. package/dist/internal/atomic-file.d.ts.map +1 -1
  181. package/dist/internal/exclusive-lock.d.ts +51 -0
  182. package/dist/internal/exclusive-lock.d.ts.map +1 -0
  183. package/dist/internal/process-identity.d.ts +47 -0
  184. package/dist/internal/process-identity.d.ts.map +1 -0
  185. package/dist/internal/with-exclusive-lock.d.ts +67 -0
  186. package/dist/internal/with-exclusive-lock.d.ts.map +1 -0
  187. package/dist/live/watch-client.d.ts.map +1 -1
  188. package/dist/observability/audit.d.ts +2 -2
  189. package/dist/observability/audit.d.ts.map +1 -1
  190. package/dist/observability/event.d.ts +2 -1
  191. package/dist/observability/event.d.ts.map +1 -1
  192. package/dist/primitives/export-operation.d.ts +1 -1
  193. package/dist/primitives/export-operation.d.ts.map +1 -1
  194. package/dist/realtime/registry.d.ts +0 -5
  195. package/dist/realtime/registry.d.ts.map +1 -1
  196. package/dist/server/bun.d.ts +0 -1
  197. package/dist/server/bun.d.ts.map +1 -1
  198. package/dist/server/context-contribution.d.ts +1 -1
  199. package/dist/server/context-contribution.d.ts.map +1 -1
  200. package/dist/server/context.d.ts +1 -1
  201. package/dist/server/context.d.ts.map +1 -1
  202. package/dist/server/endpoint-response.d.ts +2 -1
  203. package/dist/server/endpoint-response.d.ts.map +1 -1
  204. package/dist/server/error-dispatch.d.ts +1 -1
  205. package/dist/server/error-dispatch.d.ts.map +1 -1
  206. package/dist/server/error-hook.d.ts +1 -1
  207. package/dist/server/error-hook.d.ts.map +1 -1
  208. package/dist/server/handler-state.d.ts +1 -1
  209. package/dist/server/handler-state.d.ts.map +1 -1
  210. package/dist/server/implement-registry.d.ts +54 -0
  211. package/dist/server/implement-registry.d.ts.map +1 -0
  212. package/dist/server/implement.d.ts +9 -55
  213. package/dist/server/implement.d.ts.map +1 -1
  214. package/dist/server/middleware/auth.d.ts +1 -31
  215. package/dist/server/middleware/auth.d.ts.map +1 -1
  216. package/dist/server/middleware/jwt.d.ts +31 -0
  217. package/dist/server/middleware/jwt.d.ts.map +1 -0
  218. package/dist/server/multipart-reader.d.ts +22 -0
  219. package/dist/server/multipart-reader.d.ts.map +1 -0
  220. package/dist/server/multipart.d.ts +1 -1
  221. package/dist/server/multipart.d.ts.map +1 -1
  222. package/dist/server/oauth/cimd.d.ts +88 -0
  223. package/dist/server/oauth/cimd.d.ts.map +1 -0
  224. package/dist/server/oauth/endpoints.d.ts +39 -0
  225. package/dist/server/oauth/endpoints.d.ts.map +1 -0
  226. package/dist/server/oauth/provider.d.ts +1 -68
  227. package/dist/server/oauth/provider.d.ts.map +1 -1
  228. package/dist/server/streaming-pump.d.ts +66 -0
  229. package/dist/server/streaming-pump.d.ts.map +1 -0
  230. package/dist/server/streaming-route.d.ts +12 -5
  231. package/dist/server/streaming-route.d.ts.map +1 -1
  232. package/dist/server/types.d.ts +4 -1
  233. package/dist/server/types.d.ts.map +1 -1
  234. package/dist/server/unix-client-bun.d.ts.map +1 -1
  235. package/dist/server/unix-client-http1.d.ts +76 -0
  236. package/dist/server/unix-client-http1.d.ts.map +1 -0
  237. package/dist/server/unix-client.d.ts.map +1 -1
  238. package/dist/testing/handler-clients.d.ts +2 -1
  239. package/dist/testing/handler-clients.d.ts.map +1 -1
  240. package/dist/testing/realtime-probe.d.ts +33 -0
  241. package/dist/testing/realtime-probe.d.ts.map +1 -0
  242. package/dist/testing/surface-conformance.d.ts +0 -31
  243. package/dist/testing/surface-conformance.d.ts.map +1 -1
  244. package/dist/testing/surface-manifest-digest.d.ts +44 -0
  245. package/dist/testing/surface-manifest-digest.d.ts.map +1 -0
  246. package/dist/testing/surface-manifest.d.ts.map +1 -1
  247. package/dist/tools/agent.d.ts +1 -1
  248. package/dist/tools/agent.d.ts.map +1 -1
  249. package/dist/tools/cli/args-fields.d.ts +31 -0
  250. package/dist/tools/cli/args-fields.d.ts.map +1 -0
  251. package/dist/tools/cli/args-route.d.ts +42 -0
  252. package/dist/tools/cli/args-route.d.ts.map +1 -0
  253. package/dist/tools/cli/args-view.d.ts +32 -0
  254. package/dist/tools/cli/args-view.d.ts.map +1 -0
  255. package/dist/tools/cli/args.d.ts +2 -65
  256. package/dist/tools/cli/args.d.ts.map +1 -1
  257. package/dist/tools/cli/argument-error.d.ts +5 -0
  258. package/dist/tools/cli/argument-error.d.ts.map +1 -0
  259. package/dist/tools/cli/checkpoint.d.ts.map +1 -1
  260. package/dist/tools/cli/command.d.ts +1 -1
  261. package/dist/tools/cli/command.d.ts.map +1 -1
  262. package/dist/tools/cli/config.d.ts +1 -1
  263. package/dist/tools/cli/config.d.ts.map +1 -1
  264. package/dist/tools/cli/format.d.ts +2 -1
  265. package/dist/tools/cli/format.d.ts.map +1 -1
  266. package/dist/tools/cli/invoke.d.ts +2 -1
  267. package/dist/tools/cli/invoke.d.ts.map +1 -1
  268. package/dist/tools/cli/managed-surface.d.ts +1 -1
  269. package/dist/tools/cli/managed-surface.d.ts.map +1 -1
  270. package/dist/tools/cli/policy.d.ts +1 -1
  271. package/dist/tools/cli/policy.d.ts.map +1 -1
  272. package/dist/tools/cli/prepare.d.ts.map +1 -1
  273. package/dist/tools/cli/run-managed.d.ts.map +1 -1
  274. package/dist/tools/cli/session.d.ts +1 -1
  275. package/dist/tools/cli/session.d.ts.map +1 -1
  276. package/dist/tools/cli/update.d.ts +19 -0
  277. package/dist/tools/cli/update.d.ts.map +1 -1
  278. package/dist/tools/cli/view.d.ts +1 -1
  279. package/dist/tools/cli/view.d.ts.map +1 -1
  280. package/dist/tools/cli/wait.d.ts +1 -1
  281. package/dist/tools/cli/wait.d.ts.map +1 -1
  282. package/dist/tools/connections/runtime.d.ts +1 -1
  283. package/dist/tools/connections/runtime.d.ts.map +1 -1
  284. package/dist/tools/execute-args.d.ts +23 -0
  285. package/dist/tools/execute-args.d.ts.map +1 -0
  286. package/dist/tools/execute-hooks.d.ts +146 -0
  287. package/dist/tools/execute-hooks.d.ts.map +1 -0
  288. package/dist/tools/execute-result.d.ts +40 -0
  289. package/dist/tools/execute-result.d.ts.map +1 -0
  290. package/dist/tools/execute.d.ts +4 -193
  291. package/dist/tools/execute.d.ts.map +1 -1
  292. package/dist/tools/internal/surface-projector.d.ts +2 -1
  293. package/dist/tools/internal/surface-projector.d.ts.map +1 -1
  294. package/dist/tools/invoker.d.ts +2 -1
  295. package/dist/tools/invoker.d.ts.map +1 -1
  296. package/dist/tools/lifecycle.d.ts +1 -1
  297. package/dist/tools/lifecycle.d.ts.map +1 -1
  298. package/dist/tools/mcp/mount.d.ts +1 -1
  299. package/dist/tools/mcp/mount.d.ts.map +1 -1
  300. package/dist/tools/mcp/prepare.d.ts +2 -1
  301. package/dist/tools/mcp/prepare.d.ts.map +1 -1
  302. package/dist/tools/mcp/progress.d.ts +1 -1
  303. package/dist/tools/mcp/progress.d.ts.map +1 -1
  304. package/dist/tools/mcp/register.d.ts +3 -2
  305. package/dist/tools/mcp/register.d.ts.map +1 -1
  306. package/dist/tools/mcp/round-context.d.ts +38 -0
  307. package/dist/tools/mcp/round-context.d.ts.map +1 -0
  308. package/dist/tools/mcp/round-policy.d.ts +1 -1
  309. package/dist/tools/mcp/round-policy.d.ts.map +1 -1
  310. package/dist/tools/mcp/round.d.ts +3 -11
  311. package/dist/tools/mcp/round.d.ts.map +1 -1
  312. package/dist/tools/mcp/runtime-tools.d.ts +2 -1
  313. package/dist/tools/mcp/runtime-tools.d.ts.map +1 -1
  314. package/dist/tools/mount.d.ts +3 -1
  315. package/dist/tools/mount.d.ts.map +1 -1
  316. package/dist/tools/native-definition.d.ts +2 -1
  317. package/dist/tools/native-definition.d.ts.map +1 -1
  318. package/dist/tools/operations/async-operation-runtime-tools.d.ts +2 -1
  319. package/dist/tools/operations/async-operation-runtime-tools.d.ts.map +1 -1
  320. package/dist/tools/operations/async-operation-runtime-types.d.ts +2 -1
  321. package/dist/tools/operations/async-operation-runtime-types.d.ts.map +1 -1
  322. package/dist/tools/remote.d.ts.map +1 -1
  323. package/dist/tools/runtime-tool.d.ts +3 -1
  324. package/dist/tools/runtime-tool.d.ts.map +1 -1
  325. package/dist/tools/tool-logger.d.ts +1 -1
  326. package/dist/tools/tool-logger.d.ts.map +1 -1
  327. package/dist/tracking/client-listeners.d.ts +30 -0
  328. package/dist/tracking/client-listeners.d.ts.map +1 -0
  329. package/dist/tracking/client-visit.d.ts +61 -0
  330. package/dist/tracking/client-visit.d.ts.map +1 -0
  331. package/dist/tracking/client.d.ts +3 -2
  332. package/dist/tracking/client.d.ts.map +1 -1
  333. package/llms/application.2.txt +266 -2
  334. package/llms/application.txt +8 -266
  335. package/llms/cli.2.txt +80 -0
  336. package/llms/cli.txt +45 -74
  337. package/llms/contract.txt +3 -3
  338. package/llms/files.txt +3 -0
  339. package/llms/tools.2.txt +88 -279
  340. package/llms/tools.3.txt +288 -0
  341. package/llms/tools.txt +27 -65
  342. package/llms-full.txt +108 -12
  343. package/llms.txt +5 -5
  344. package/package.json +1 -1
  345. package/dist/index-e2z3ahw9.js +0 -325
  346. package/dist/index-mkm15s49.js +0 -394
package/llms.txt CHANGED
@@ -12,13 +12,13 @@ Load the slice for each entrypoint your code imports — `import … from 'stitc
12
12
  - **stitchkit**: [llms/stitchkit.txt](llms/stitchkit.txt) 15.1 KB → [llms/stitchkit.2.txt](llms/stitchkit.2.txt) 35.0 KB → [llms/stitchkit.3.txt](llms/stitchkit.3.txt) 14.2 KB
13
13
  - **stitchkit/live**: [llms/live.txt](llms/live.txt) 21.2 KB
14
14
  - **stitchkit/react**: [llms/react.txt](llms/react.txt) 8.6 KB
15
- - **stitchkit/tools**: [llms/tools.txt](llms/tools.txt) 47.2 KB → [llms/tools.2.txt](llms/tools.2.txt) 46.2 KB
15
+ - **stitchkit/tools**: [llms/tools.txt](llms/tools.txt) 44.9 KB → [llms/tools.2.txt](llms/tools.2.txt) 26.3 KB → [llms/tools.3.txt](llms/tools.3.txt) 25.4 KB
16
16
  - **stitchkit/tools/contract**: [llms/tools-contract.txt](llms/tools-contract.txt) 0.2 KB
17
17
  - **stitchkit/tools/invoker**: [llms/tools-invoker.txt](llms/tools-invoker.txt) 0.2 KB
18
18
  - **stitchkit/tools/connections**: [llms/tools-connections.txt](llms/tools-connections.txt) 3.1 KB
19
- - **stitchkit/cli**: [llms/cli.txt](llms/cli.txt) 46.9 KB
19
+ - **stitchkit/cli**: [llms/cli.txt](llms/cli.txt) 41.3 KB → [llms/cli.2.txt](llms/cli.2.txt) 8.1 KB
20
20
  - **stitchkit/remote**: [llms/remote.txt](llms/remote.txt) 1.0 KB
21
- - **stitchkit/contract**: [llms/contract.txt](llms/contract.txt) 31.8 KB
21
+ - **stitchkit/contract**: [llms/contract.txt](llms/contract.txt) 31.9 KB
22
22
  - **stitchkit/primitives**: [llms/primitives.txt](llms/primitives.txt) 9.3 KB
23
23
  - **stitchkit/server**: [llms/server.txt](llms/server.txt) 45.3 KB → [llms/server.2.txt](llms/server.2.txt) 14.6 KB → [llms/server.3.txt](llms/server.3.txt) 42.7 KB → [llms/server.4.txt](llms/server.4.txt) 37.3 KB → [llms/server.5.txt](llms/server.5.txt) 21.8 KB
24
24
  - **stitchkit/observability**: [llms/observability.txt](llms/observability.txt) 42.8 KB
@@ -30,14 +30,14 @@ Load the slice for each entrypoint your code imports — `import … from 'stitc
30
30
  - **stitchkit/agent-runtime/openrouter**: [llms/agent-runtime-openrouter.txt](llms/agent-runtime-openrouter.txt) 1.1 KB
31
31
  - **stitchkit/agent-runtime/sqlite/bun**: [llms/agent-runtime-sqlite-bun.txt](llms/agent-runtime-sqlite-bun.txt) 1.8 KB
32
32
  - **stitchkit/agent-runtime/sqlite/node**: [llms/agent-runtime-sqlite-node.txt](llms/agent-runtime-sqlite-node.txt) 1.7 KB
33
- - **stitchkit/application**: [llms/application.txt](llms/application.txt) 47.3 KB → [llms/application.2.txt](llms/application.2.txt) 22.0 KB
33
+ - **stitchkit/application**: [llms/application.txt](llms/application.txt) 38.0 KB → [llms/application.2.txt](llms/application.2.txt) 31.6 KB
34
34
  - **stitchkit/application/grammy**: [llms/application-grammy.txt](llms/application-grammy.txt) 1.5 KB
35
35
  - **stitchkit/application/opentelemetry**: [llms/application-opentelemetry.txt](llms/application-opentelemetry.txt) 1.6 KB
36
36
  - **stitchkit/application/diagnostic-journal**: [llms/application-diagnostic-journal.txt](llms/application-diagnostic-journal.txt) 1.4 KB
37
37
  - **stitchkit/application/schemas**: [llms/application-schemas.txt](llms/application-schemas.txt) 1.8 KB
38
38
  - **stitchkit/testing**: [llms/testing.txt](llms/testing.txt) 30.8 KB
39
39
  - **stitchkit/agent-runtime/sandbox**: [llms/agent-runtime-sandbox.txt](llms/agent-runtime-sandbox.txt) 8.1 KB
40
- - **stitchkit/files**: [llms/files.txt](llms/files.txt) 2.0 KB
40
+ - **stitchkit/files**: [llms/files.txt](llms/files.txt) 2.9 KB
41
41
  - **stitchkit/telegram**: [llms/telegram.txt](llms/telegram.txt) 2.0 KB
42
42
  - **stitchkit/tracking**: [llms/tracking.txt](llms/tracking.txt) 16.8 KB
43
43
  - **stitchkit/release**: [llms/release.txt](llms/release.txt) 8.9 KB
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stitchkit",
3
- "version": "0.94.0",
3
+ "version": "0.94.1",
4
4
  "description": "Contract-first backend framework — one defineContract() into an HTTP API, MCP tools, AI-agent tools and a typed client. Bun and Node.",
5
5
  "keywords": [
6
6
  "bun",
@@ -1,325 +0,0 @@
1
- import {
2
- deriveCodeChallenge
3
- } from "./index-hr4tzbwq.js";
4
- import {
5
- contextContributionDelta,
6
- mergeContextContribution,
7
- prepareContextContribution
8
- } from "./index-xnj9bgxe.js";
9
- import {
10
- base64UrlToBytes,
11
- bytesToBase64Url
12
- } from "./index-rxfy4cq7.js";
13
- import {
14
- forbidden,
15
- unauthorized
16
- } from "./index-2vtcmrj9.js";
17
- import {
18
- isUnsafeKey,
19
- safeJsonParse
20
- } from "./index-kzfs85xp.js";
21
- import {
22
- isRecord
23
- } from "./index-hffjpmq9.js";
24
-
25
- // src/server/middleware/cookies.ts
26
- function parseCookieHeader(header) {
27
- if (!header)
28
- return [];
29
- const pairs = [];
30
- for (const pair of header.split(";")) {
31
- const eq = pair.indexOf("=");
32
- if (eq === -1)
33
- continue;
34
- const key = pair.slice(0, eq).trim();
35
- if (!key)
36
- continue;
37
- const raw = pair.slice(eq + 1).trim();
38
- let value = raw;
39
- try {
40
- value = decodeURIComponent(raw);
41
- } catch {}
42
- pairs.push([key, value]);
43
- }
44
- return pairs;
45
- }
46
- function parseCookies(header) {
47
- const cookies = {};
48
- for (const [key, value] of parseCookieHeader(header)) {
49
- if (isUnsafeKey(key))
50
- continue;
51
- cookies[key] = value;
52
- }
53
- return cookies;
54
- }
55
- function serializeCookie(name, value, opts = {}) {
56
- let cookie = `${name}=${encodeURIComponent(value)}`;
57
- if (opts.maxAge !== undefined)
58
- cookie += `; Max-Age=${opts.maxAge}`;
59
- if (opts.path)
60
- cookie += `; Path=${opts.path}`;
61
- if (opts.domain)
62
- cookie += `; Domain=${opts.domain}`;
63
- if (opts.secure)
64
- cookie += "; Secure";
65
- if (opts.httpOnly)
66
- cookie += "; HttpOnly";
67
- if (opts.sameSite)
68
- cookie += `; SameSite=${opts.sameSite}`;
69
- return cookie;
70
- }
71
- function defineCookie(config) {
72
- const { name, duplicates = "last", ...options } = config;
73
- const getAll = (req) => parseCookieHeader(req.headers.get("cookie")).flatMap(([key, value]) => key === name ? [value] : []);
74
- return {
75
- get(req) {
76
- const values = getAll(req);
77
- if (values.length === 0)
78
- return;
79
- if (duplicates === "first")
80
- return values[0];
81
- if (duplicates === "reject") {
82
- return new Set(values).size === 1 ? values[0] : undefined;
83
- }
84
- return values[values.length - 1];
85
- },
86
- getAll,
87
- set(value) {
88
- return serializeCookie(name, value, options);
89
- },
90
- clear() {
91
- return serializeCookie(name, "", { ...options, maxAge: 0 });
92
- }
93
- };
94
- }
95
-
96
- // src/server/middleware/auth.ts
97
- var MAX_TOKEN_BYTES = 8192;
98
- async function verifyJwt(token, secret, options = {}) {
99
- if (!secret)
100
- throw new Error("verifyJwt: a non-empty secret is required");
101
- if (token.length > MAX_TOKEN_BYTES)
102
- throw unauthorized("Token too large");
103
- const [headerB64, payloadB64, signatureB64] = token.split(".");
104
- if (!headerB64 || !payloadB64 || !signatureB64)
105
- throw unauthorized("Invalid token format");
106
- let header;
107
- let payloadRaw;
108
- let signature;
109
- try {
110
- const decoder = new TextDecoder;
111
- header = JSON.parse(decoder.decode(base64UrlToBytes(headerB64)));
112
- payloadRaw = safeJsonParse(decoder.decode(base64UrlToBytes(payloadB64)));
113
- signature = base64UrlToBytes(signatureB64);
114
- } catch {
115
- throw unauthorized("Malformed token");
116
- }
117
- if (!isRecord(payloadRaw))
118
- throw unauthorized("Malformed token");
119
- const payload = payloadRaw;
120
- if (header.alg !== "HS256")
121
- throw unauthorized("Unsupported token algorithm");
122
- const encoder = new TextEncoder;
123
- const key = await crypto.subtle.importKey("raw", encoder.encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["verify"]);
124
- const data = encoder.encode(`${headerB64}.${payloadB64}`);
125
- const valid = await crypto.subtle.verify("HMAC", key, signature, data);
126
- if (!valid)
127
- throw unauthorized("Invalid token signature");
128
- const leeway = options.leewaySeconds ?? 60;
129
- const now = Date.now() / 1000;
130
- if ("exp" in payload) {
131
- if (typeof payload.exp !== "number")
132
- throw unauthorized("Malformed token");
133
- if (payload.exp < now - leeway)
134
- throw unauthorized("Token expired");
135
- }
136
- if ("nbf" in payload) {
137
- if (typeof payload.nbf !== "number")
138
- throw unauthorized("Malformed token");
139
- if (payload.nbf > now + leeway)
140
- throw unauthorized("Token not yet valid");
141
- }
142
- if (options.issuer !== undefined && payload.iss !== options.issuer) {
143
- throw unauthorized("Token issuer mismatch");
144
- }
145
- if (options.audience !== undefined) {
146
- const aud = payload.aud;
147
- const ok = Array.isArray(aud) ? aud.includes(options.audience) : aud === options.audience;
148
- if (!ok)
149
- throw unauthorized("Token audience mismatch");
150
- }
151
- return payload;
152
- }
153
- async function signJwt(payload, secret, options = {}) {
154
- if (!secret)
155
- throw new Error("signJwt: a non-empty secret is required");
156
- const now = Math.floor(Date.now() / 1000);
157
- const claims = {
158
- ...payload,
159
- iat: now,
160
- ...options.expiresInSec !== undefined && { exp: now + options.expiresInSec },
161
- ...options.issuer !== undefined && { iss: options.issuer },
162
- ...options.audience !== undefined && { aud: options.audience },
163
- ...options.subject !== undefined && { sub: options.subject }
164
- };
165
- const encoder = new TextEncoder;
166
- const headerB64 = bytesToBase64Url(encoder.encode(JSON.stringify({ alg: "HS256", typ: "JWT" })));
167
- const payloadB64 = bytesToBase64Url(encoder.encode(JSON.stringify(claims)));
168
- const signingInput = `${headerB64}.${payloadB64}`;
169
- const key = await crypto.subtle.importKey("raw", encoder.encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
170
- const signature = await crypto.subtle.sign("HMAC", key, encoder.encode(signingInput));
171
- const signatureB64 = bytesToBase64Url(new Uint8Array(signature));
172
- return `${signingInput}.${signatureB64}`;
173
- }
174
- function extractToken(req, cookieName) {
175
- const authHeader = req.headers.get("authorization");
176
- if (authHeader?.startsWith("Bearer "))
177
- return authHeader.slice(7);
178
- if (cookieName) {
179
- const cookies = parseCookies(req.headers.get("cookie"));
180
- return cookies[cookieName] ?? null;
181
- }
182
- return null;
183
- }
184
- function isThenable(value) {
185
- try {
186
- return "then" in value && typeof value.then === "function";
187
- } catch {
188
- return false;
189
- }
190
- }
191
- var scopedAuthHookBrand = Symbol("stitchkit.scoped-auth-hook");
192
- var authOwnershipPlans = new WeakMap;
193
- function createShadowContext(ctx) {
194
- const shadow = {
195
- params: ctx.params,
196
- input: ctx.input,
197
- source: ctx.source
198
- };
199
- Object.defineProperties(shadow, Object.getOwnPropertyDescriptors(ctx));
200
- return shadow;
201
- }
202
- function createAuthHook(config) {
203
- const onAnonymous = config.onAnonymous ?? (() => unauthorized());
204
- const onForbidden = config.onForbidden ?? (() => forbidden());
205
- async function auth(ctx, endpoint) {
206
- const identity = ctx.source === "http" ? await config.resolve(ctx) : await config.resolveFromContext?.(ctx) ?? null;
207
- config.inject?.(ctx, identity);
208
- const scope = endpoint.scope ?? config.defaultScope;
209
- if (!scope)
210
- return;
211
- const entry = Object.hasOwn(config.rules, scope) ? config.rules[scope] : undefined;
212
- if (!entry) {
213
- throw new Error(`[stitchkit] auth: no rule for scope "${scope}"`);
214
- }
215
- const rule = typeof entry === "object" ? entry.rule : entry;
216
- if (typeof entry === "object" && entry.inject && identity !== null) {
217
- const fields = entry.inject(identity, ctx);
218
- if (typeof fields === "object" && fields !== null && isThenable(fields)) {
219
- throw new Error(`[stitchkit] auth: the inject of scope "${scope}" must be synchronous — an async inject merges a Promise, not fields`);
220
- }
221
- mergeContextContribution(ctx, fields, scope);
222
- }
223
- if (rule === "public")
224
- return;
225
- if (!identity) {
226
- onAnonymous();
227
- return;
228
- }
229
- if (rule === "authenticated")
230
- return;
231
- const result = await rule(identity, ctx);
232
- if (result === false) {
233
- onForbidden();
234
- return;
235
- }
236
- if (result === true)
237
- return;
238
- mergeContextContribution(ctx, result, scope);
239
- }
240
- auth[scopedAuthHookBrand] = () => {
241
- return;
242
- };
243
- authOwnershipPlans.set(auth, {
244
- defaultScope: config.defaultScope,
245
- hook: auth,
246
- scopes: new Set(Object.keys(config.rules))
247
- });
248
- return auth;
249
- }
250
- function composeAuthHooks(config) {
251
- const plans = [];
252
- for (const hook of config.hooks) {
253
- const plan = authOwnershipPlans.get(hook);
254
- if (!plan) {
255
- throw new TypeError("[stitchkit] auth: composeAuthHooks accepts only hooks created by createAuthHook or composeAuthHooks");
256
- }
257
- if (plan.defaultScope !== undefined && plan.defaultScope !== config.defaultScope) {
258
- throw new TypeError(`[stitchkit] auth: child default scope ${JSON.stringify(plan.defaultScope)} must match the composite default scope`);
259
- }
260
- plans.push(plan);
261
- }
262
- const defaultScope = config.defaultScope;
263
- if (defaultScope !== undefined && !plans.some((plan) => plan.scopes.has(defaultScope))) {
264
- throw new TypeError(`[stitchkit] auth: composite default scope ${JSON.stringify(defaultScope)} has no owner`);
265
- }
266
- const ownedScopes = new Set;
267
- for (const plan of plans) {
268
- for (const scope of plan.scopes)
269
- ownedScopes.add(scope);
270
- }
271
- async function composed(ctx, endpoint) {
272
- const scope = endpoint.scope ?? config.defaultScope;
273
- if (!scope)
274
- return;
275
- const owners = plans.filter((plan) => plan.scopes.has(scope));
276
- if (owners.length === 0) {
277
- throw new Error(`[stitchkit] auth: no rule for scope "${scope}"`);
278
- }
279
- const scopedEndpoint = { ...endpoint, scope };
280
- const contribution = Object.create(null);
281
- const contributionOwners = new Set;
282
- for (const owner of owners) {
283
- ctx.signal?.throwIfAborted();
284
- const shadow = createShadowContext(ctx);
285
- await owner.hook(shadow, scopedEndpoint);
286
- const ownerContribution = prepareContextContribution(contextContributionDelta(ctx, shadow, scope), scope);
287
- for (const key of Object.keys(ownerContribution)) {
288
- if (contributionOwners.has(key)) {
289
- throw new TypeError(`[stitchkit] auth: multiple owners contributed context key ${JSON.stringify(key)} for scope ${JSON.stringify(scope)}`);
290
- }
291
- contributionOwners.add(key);
292
- }
293
- Object.assign(contribution, ownerContribution);
294
- }
295
- ctx.signal?.throwIfAborted();
296
- mergeContextContribution(ctx, contribution, scope);
297
- }
298
- composed[scopedAuthHookBrand] = () => {
299
- return;
300
- };
301
- authOwnershipPlans.set(composed, {
302
- defaultScope: config.defaultScope,
303
- hook: composed,
304
- scopes: ownedScopes
305
- });
306
- return composed;
307
- }
308
- function createBearerResolver(config) {
309
- return async (req) => {
310
- const token = extractToken(req);
311
- if (!token)
312
- return null;
313
- return config.lookup(token, req);
314
- };
315
- }
316
-
317
- // src/server/middleware/pkce.ts
318
- async function verifyPkce(verifier, challenge) {
319
- if (!verifier || !challenge)
320
- return false;
321
- const derived = await deriveCodeChallenge(verifier);
322
- return derived === challenge;
323
- }
324
-
325
- export { parseCookieHeader, parseCookies, serializeCookie, defineCookie, verifyJwt, signJwt, extractToken, createAuthHook, composeAuthHooks, createBearerResolver, verifyPkce };