stitchkit 0.103.12 → 0.104.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 (225) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/darwin-native.cjs +12 -0
  3. package/darwin-native.d.cts +2 -0
  4. package/dist/agent-runtime/store-conformance-lifecycle.d.ts +10 -10
  5. package/dist/application/directory-inbox-accept.d.ts +13 -0
  6. package/dist/application/directory-inbox-accept.d.ts.map +1 -0
  7. package/dist/application/directory-inbox-contract.d.ts +42 -5
  8. package/dist/application/directory-inbox-contract.d.ts.map +1 -1
  9. package/dist/application/directory-inbox-delivery.d.ts +14 -0
  10. package/dist/application/directory-inbox-delivery.d.ts.map +1 -0
  11. package/dist/application/directory-inbox-files.d.ts +28 -0
  12. package/dist/application/directory-inbox-files.d.ts.map +1 -0
  13. package/dist/application/directory-inbox-state.d.ts +14 -0
  14. package/dist/application/directory-inbox-state.d.ts.map +1 -0
  15. package/dist/application/directory-inbox.d.ts +2 -1
  16. package/dist/application/directory-inbox.d.ts.map +1 -1
  17. package/dist/application/file-state-store.d.ts +2 -8
  18. package/dist/application/file-state-store.d.ts.map +1 -1
  19. package/dist/application/state-store.d.ts +6 -1
  20. package/dist/application/state-store.d.ts.map +1 -1
  21. package/dist/browser/client-arguments.d.ts +4 -0
  22. package/dist/browser/client-arguments.d.ts.map +1 -0
  23. package/dist/browser/client-executors.d.ts.map +1 -1
  24. package/dist/browser/client.d.ts.map +1 -1
  25. package/dist/browser/contract-stream.d.ts.map +1 -1
  26. package/dist/browser/http.d.ts +2 -1
  27. package/dist/browser/http.d.ts.map +1 -1
  28. package/dist/browser/native-fetch.d.ts +8 -0
  29. package/dist/browser/native-fetch.d.ts.map +1 -0
  30. package/dist/contract/errors.d.ts +16 -12
  31. package/dist/contract/errors.d.ts.map +1 -1
  32. package/dist/contract/normalize.d.ts +5 -1
  33. package/dist/contract/normalize.d.ts.map +1 -1
  34. package/dist/contract/stream.d.ts +1 -0
  35. package/dist/contract/stream.d.ts.map +1 -1
  36. package/dist/entrypoints/agent-runtime/browser.js +3 -3
  37. package/dist/entrypoints/agent-runtime/coding-tools.js +8 -6
  38. package/dist/entrypoints/agent-runtime/harness-tools.js +8 -8
  39. package/dist/entrypoints/agent-runtime/harness.js +12 -11
  40. package/dist/entrypoints/agent-runtime/realtime.js +3 -3
  41. package/dist/entrypoints/agent-runtime/sandbox.js +8 -6
  42. package/dist/entrypoints/agent-runtime.js +13 -13
  43. package/dist/entrypoints/application/diagnostic-journal.js +3 -2
  44. package/dist/entrypoints/application/directory-inbox.js +424 -119
  45. package/dist/entrypoints/application/grammy.js +1 -1
  46. package/dist/entrypoints/application.d.ts +2 -2
  47. package/dist/entrypoints/application.d.ts.map +1 -1
  48. package/dist/entrypoints/application.js +7 -3
  49. package/dist/entrypoints/cli.d.ts +2 -0
  50. package/dist/entrypoints/cli.d.ts.map +1 -1
  51. package/dist/entrypoints/cli.js +757 -136
  52. package/dist/entrypoints/contract.js +3 -3
  53. package/dist/entrypoints/files.js +11 -107
  54. package/dist/entrypoints/index.js +7 -7
  55. package/dist/entrypoints/node.js +8 -8
  56. package/dist/entrypoints/observability.js +2 -2
  57. package/dist/entrypoints/process.js +2 -1
  58. package/dist/entrypoints/react.js +1 -1
  59. package/dist/entrypoints/remote.js +19 -6
  60. package/dist/entrypoints/server.d.ts +1 -1
  61. package/dist/entrypoints/server.d.ts.map +1 -1
  62. package/dist/entrypoints/server.js +20 -14
  63. package/dist/entrypoints/telegram.d.ts +1 -0
  64. package/dist/entrypoints/telegram.d.ts.map +1 -1
  65. package/dist/entrypoints/telegram.js +214 -98
  66. package/dist/entrypoints/testing.js +7 -7
  67. package/dist/entrypoints/tools/connections.d.ts +2 -2
  68. package/dist/entrypoints/tools/connections.d.ts.map +1 -1
  69. package/dist/entrypoints/tools/connections.js +427 -294
  70. package/dist/entrypoints/tools/invoker.js +6 -6
  71. package/dist/entrypoints/tools/mcp.d.ts +12 -0
  72. package/dist/entrypoints/tools/mcp.d.ts.map +1 -0
  73. package/dist/entrypoints/tools/mcp.js +45 -0
  74. package/dist/entrypoints/tools.d.ts +1 -0
  75. package/dist/entrypoints/tools.d.ts.map +1 -1
  76. package/dist/entrypoints/tools.js +82 -1147
  77. package/dist/entrypoints/tracking.js +1 -1
  78. package/dist/files/boundary.d.ts +2 -8
  79. package/dist/files/boundary.d.ts.map +1 -1
  80. package/dist/files/file-io.d.ts +0 -5
  81. package/dist/files/file-io.d.ts.map +1 -1
  82. package/dist/files/read.d.ts +2 -2
  83. package/dist/files/read.d.ts.map +1 -1
  84. package/dist/index-1a6jtnd9.js +88 -0
  85. package/dist/{index-fyphpknh.js → index-22rhg58f.js} +1 -1
  86. package/dist/index-269zqj8m.js +77 -0
  87. package/dist/{index-r34mvse1.js → index-27a2pj09.js} +1 -1
  88. package/dist/{index-r956rndn.js → index-2hyavjjj.js} +3 -3
  89. package/dist/{index-m2xqkv55.js → index-2vnh05w4.js} +83 -14
  90. package/dist/{index-pw99k9h5.js → index-43p08g7t.js} +1 -1
  91. package/dist/{index-xwq9j1sf.js → index-4e0ah203.js} +9 -7
  92. package/dist/{index-nybn2err.js → index-5csmzesf.js} +1 -1
  93. package/dist/{index-qapzv4p5.js → index-5z6jn897.js} +1 -1
  94. package/dist/{index-ahvsksw5.js → index-6d9xaxw1.js} +1 -1
  95. package/dist/{index-ahtnte39.js → index-6drst9sg.js} +46 -35
  96. package/dist/{index-x87j7csh.js → index-77nxk6ay.js} +2 -2
  97. package/dist/{index-dnn9z96q.js → index-a0zzh8ak.js} +3 -3
  98. package/dist/{index-kmpzj1cq.js → index-a3wma1hk.js} +1 -1
  99. package/dist/{index-j8aw2c0e.js → index-bakgedh8.js} +35 -7
  100. package/dist/index-bhb950qs.js +1145 -0
  101. package/dist/{index-tgzhq07n.js → index-cvda079a.js} +1 -1
  102. package/dist/{index-n2gre124.js → index-fa4wg312.js} +4 -4
  103. package/dist/{index-zp4jpkp0.js → index-fk18k56k.js} +2 -2
  104. package/dist/{index-afjvjyck.js → index-g2j7pnak.js} +2 -134
  105. package/dist/index-g95fk660.js +116 -0
  106. package/dist/{index-ej331hah.js → index-gxm9rc97.js} +1 -1
  107. package/dist/{index-r5c4fedv.js → index-h2fhjqy7.js} +2 -1
  108. package/dist/{index-sybedc8b.js → index-hbd32c6a.js} +23 -94
  109. package/dist/index-jd470k6q.js +109 -0
  110. package/dist/{index-b2bz0kdm.js → index-kb8styz3.js} +4 -3
  111. package/dist/{index-0c419yx7.js → index-kemm0ej5.js} +12 -9
  112. package/dist/{index-806d5phm.js → index-ptn0g0gj.js} +7 -7
  113. package/dist/{index-w575evhq.js → index-r4r70zmh.js} +1 -1
  114. package/dist/{index-12m2v2a9.js → index-s4evrmp5.js} +1 -1
  115. package/dist/{index-1khy8y7n.js → index-t1sr4aks.js} +3 -3
  116. package/dist/index-v5ee8ath.js +88 -0
  117. package/dist/{index-45tdvqa3.js → index-wh0ecvyk.js} +1 -1
  118. package/dist/{index-n53mswt3.js → index-x928baz2.js} +8 -1
  119. package/dist/index-yk4g8805.js +133 -0
  120. package/dist/{index-ygkka6zn.js → index-ywppsaby.js} +28 -5
  121. package/dist/{index-xvdd2rbb.js → index-za6j7nwy.js} +19 -5
  122. package/dist/internal/bounded-file-read.d.ts +41 -0
  123. package/dist/internal/bounded-file-read.d.ts.map +1 -0
  124. package/dist/internal/darwin-binding-error.d.ts +24 -0
  125. package/dist/internal/darwin-binding-error.d.ts.map +1 -0
  126. package/dist/internal/darwin-binding.d.ts.map +1 -1
  127. package/dist/internal/exclusive-lock.d.ts +2 -0
  128. package/dist/internal/exclusive-lock.d.ts.map +1 -1
  129. package/dist/internal/with-exclusive-lock.d.ts +4 -2
  130. package/dist/internal/with-exclusive-lock.d.ts.map +1 -1
  131. package/dist/telegram/broadcast-delivery.d.ts +23 -0
  132. package/dist/telegram/broadcast-delivery.d.ts.map +1 -0
  133. package/dist/telegram/broadcast-failure.d.ts +22 -0
  134. package/dist/telegram/broadcast-failure.d.ts.map +1 -0
  135. package/dist/telegram/broadcast-state.d.ts +6 -3
  136. package/dist/telegram/broadcast-state.d.ts.map +1 -1
  137. package/dist/telegram/broadcast.d.ts +10 -5
  138. package/dist/telegram/broadcast.d.ts.map +1 -1
  139. package/dist/tools/cli/args-fields.d.ts +2 -0
  140. package/dist/tools/cli/args-fields.d.ts.map +1 -1
  141. package/dist/tools/cli/args.d.ts.map +1 -1
  142. package/dist/tools/cli/format.d.ts.map +1 -1
  143. package/dist/tools/cli/invoke.d.ts +2 -2
  144. package/dist/tools/cli/invoke.d.ts.map +1 -1
  145. package/dist/tools/cli/publication-assets.d.ts +10 -0
  146. package/dist/tools/cli/publication-assets.d.ts.map +1 -0
  147. package/dist/tools/cli/publication-contract.d.ts +75 -0
  148. package/dist/tools/cli/publication-contract.d.ts.map +1 -0
  149. package/dist/tools/cli/publication-control.d.ts +4 -0
  150. package/dist/tools/cli/publication-control.d.ts.map +1 -0
  151. package/dist/tools/cli/publication-storage.d.ts +32 -0
  152. package/dist/tools/cli/publication-storage.d.ts.map +1 -0
  153. package/dist/tools/cli/publication.d.ts +35 -0
  154. package/dist/tools/cli/publication.d.ts.map +1 -0
  155. package/dist/tools/cli/update.d.ts.map +1 -1
  156. package/dist/tools/connections/define.d.ts.map +1 -1
  157. package/dist/tools/connections/error-projection.d.ts +4 -0
  158. package/dist/tools/connections/error-projection.d.ts.map +1 -0
  159. package/dist/tools/connections/errors.d.ts +24 -8
  160. package/dist/tools/connections/errors.d.ts.map +1 -1
  161. package/dist/tools/connections/limits.d.ts +11 -31
  162. package/dist/tools/connections/limits.d.ts.map +1 -1
  163. package/dist/tools/connections/mcp-client.d.ts +6 -4
  164. package/dist/tools/connections/mcp-client.d.ts.map +1 -1
  165. package/dist/tools/connections/mcp.d.ts.map +1 -1
  166. package/dist/tools/connections/openapi.d.ts.map +1 -1
  167. package/dist/tools/connections/operation-limits.d.ts +25 -0
  168. package/dist/tools/connections/operation-limits.d.ts.map +1 -0
  169. package/dist/tools/connections/sse-frames.d.ts +11 -2
  170. package/dist/tools/connections/sse-frames.d.ts.map +1 -1
  171. package/dist/tools/connections/sse-session.d.ts +15 -2
  172. package/dist/tools/connections/sse-session.d.ts.map +1 -1
  173. package/dist/tools/connections/types.d.ts +19 -1
  174. package/dist/tools/connections/types.d.ts.map +1 -1
  175. package/dist/tools/execute-result.d.ts.map +1 -1
  176. package/dist/tools/execute.d.ts.map +1 -1
  177. package/dist/tools/internal/observe-hook.d.ts +3 -0
  178. package/dist/tools/internal/observe-hook.d.ts.map +1 -0
  179. package/dist/tools/internal/surface-projector.d.ts +2 -1
  180. package/dist/tools/internal/surface-projector.d.ts.map +1 -1
  181. package/dist/tools/mcp/mount.d.ts +2 -2
  182. package/dist/tools/mcp/mount.d.ts.map +1 -1
  183. package/dist/tools/mcp/prepare.d.ts +4 -5
  184. package/dist/tools/mcp/prepare.d.ts.map +1 -1
  185. package/dist/tools/mcp/register.d.ts +4 -1
  186. package/dist/tools/mcp/register.d.ts.map +1 -1
  187. package/dist/tools/mcp/runtime-tools.d.ts.map +1 -1
  188. package/dist/tools/remote.d.ts.map +1 -1
  189. package/dist/tools/runtime-tool-execution.d.ts +65 -0
  190. package/dist/tools/runtime-tool-execution.d.ts.map +1 -0
  191. package/dist/tools/runtime-tool-mcp.d.ts +27 -0
  192. package/dist/tools/runtime-tool-mcp.d.ts.map +1 -0
  193. package/dist/tools/runtime-tool.d.ts +9 -60
  194. package/dist/tools/runtime-tool.d.ts.map +1 -1
  195. package/dist/tools/surface.d.ts +12 -14
  196. package/dist/tools/surface.d.ts.map +1 -1
  197. package/llms/application.2.txt +221 -44
  198. package/llms/application.3.txt +3 -1
  199. package/llms/application.txt +1 -1
  200. package/llms/cli.2.txt +144 -1
  201. package/llms/cli.txt +133 -104
  202. package/llms/contract.txt +1 -1
  203. package/llms/process.txt +34 -5
  204. package/llms/server.4.txt +4 -1
  205. package/llms/server.5.txt +1 -0
  206. package/llms/stitchkit.2.txt +14 -0
  207. package/llms/stitchkit.txt +5 -4
  208. package/llms/telegram.txt +64 -2
  209. package/llms/tools-connections.txt +3 -0
  210. package/llms/tools-mcp.txt +29 -0
  211. package/llms/tools.2.txt +59 -0
  212. package/llms/tools.3.txt +1 -0
  213. package/llms/tools.txt +11 -52
  214. package/llms/upgrading-0.37.0-0.44.0.txt +444 -0
  215. package/llms/{upgrading-0.44.0-0.60.0.txt → upgrading-0.44.0-0.61.0.txt} +140 -271
  216. package/llms/{upgrading-0.61.0-0.74.0.txt → upgrading-0.62.0-0.79.0.txt} +171 -140
  217. package/llms/{upgrading-0.75.0-0.103.0.txt → upgrading-0.80.0-0.104.0.txt} +120 -171
  218. package/llms/upgrading.txt +4 -4
  219. package/llms-full.txt +677 -64
  220. package/llms.txt +13 -12
  221. package/package.json +10 -1
  222. package/dist/index-d4pa2bgs.js +0 -42
  223. package/dist/index-wykebpn9.js +0 -221
  224. package/llms/upgrading-0.37.0.txt +0 -176
  225. package/dist/{index-69nvze1q.js → index-pptyv13k.js} +3 -3
@@ -1,7 +1,7 @@
1
1
  import"../index-yex7eg1v.js";
2
2
  import {
3
3
  ApiError2
4
- } from "../index-ygkka6zn.js";
4
+ } from "../index-ywppsaby.js";
5
5
  import"../index-m38ej7e5.js";
6
6
  import {
7
7
  defineContract2
@@ -1,4 +1,6 @@
1
1
  import { type ManagedFileRef } from '../contract/file-ref.js';
2
+ import type { FileObservation } from '../internal/bounded-file-read.js';
3
+ export type { FileObservation } from '../internal/bounded-file-read.js';
2
4
  export type ManagedFileErrorCode = 'FILE_INVALID_PATH' | 'FILE_NOT_FOUND' | 'FILE_NOT_REGULAR' | 'FILE_OUTSIDE_ROOT' | 'FILE_TOO_LARGE' | 'FILE_EXISTS' | 'FILE_INSPECTION_REJECTED' | 'FILE_UNSAFE_LINK' | 'FILE_CHANGED' | 'FILE_UNSUPPORTED' | 'FILE_IO_ERROR';
3
5
  export declare class ManagedFileError extends Error {
4
6
  readonly code: ManagedFileErrorCode;
@@ -46,14 +48,6 @@ export interface ManagedFileWriteOptions {
46
48
  name?: string;
47
49
  signal?: AbortSignal;
48
50
  }
49
- export interface FileObservation {
50
- dev: number;
51
- ino: number;
52
- size: number;
53
- nlink: number;
54
- mtimeMs: number;
55
- ctimeMs: number;
56
- }
57
51
  export interface ManagedFileSource {
58
52
  ref: ManagedFileRef;
59
53
  bytes: Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../src/files/boundary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../src/files/boundary.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGrE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAoBrE,MAAM,MAAM,oBAAoB,GAC5B,mBAAmB,GACnB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,GACb,0BAA0B,GAC1B,kBAAkB,GAClB,cAAc,GACd,kBAAkB,GAClB,eAAe,CAAC;AAEpB,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,IAAI,EAAE,oBAAoB;IAD5C,YACkB,IAAI,EAAE,oBAAoB,EAC1C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;AAE/E,MAAM,MAAM,oBAAoB,GAAG,CACjC,KAAK,EAAE,0BAA0B,KAC9B,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,kGAAkG;IAClG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjF,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,EAC/C,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AA2GD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAsJ9B"}
@@ -6,11 +6,6 @@ export declare function inspectedRef(path: string, size: number, inspection: Man
6
6
  mediaType?: string;
7
7
  name?: string;
8
8
  }): ManagedFileRef;
9
- export declare function readHandle(handle: {
10
- read(buffer: Uint8Array, offset: number, length: number): Promise<{
11
- bytesRead: number;
12
- }>;
13
- }, maxBytes: number, signal?: AbortSignal): Promise<Uint8Array>;
14
9
  export declare function writeSource(handle: Awaited<ReturnType<typeof open>>, source: Uint8Array | ReadableStream<Uint8Array>, maxBytes: number, inspectionBytes: number, signal?: AbortSignal): Promise<{
15
10
  size: number;
16
11
  prefix: Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"file-io.d.ts","sourceRoot":"","sources":["../../src/files/file-io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AA+BpB,wBAAsB,WAAW,CAC/B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,EACjD,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAmBhC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,qBAAqB,EACjC,QAAQ,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,cAAc,CAiBhB;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE;IACN,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F,EACD,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAkCrB;AAcD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,EACxC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,EAC/C,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,CA2C/C"}
1
+ {"version":3,"file":"file-io.d.ts","sourceRoot":"","sources":["../../src/files/file-io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AA+BpB,wBAAsB,WAAW,CAC/B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,EACjD,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAmBhC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,qBAAqB,EACjC,QAAQ,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,cAAc,CAiBhB;AAcD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,EACxC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,EAC/C,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,CA2C/C"}
@@ -1,8 +1,8 @@
1
- import { type Stats } from 'node:fs';
1
+ import type { Stats } from 'node:fs';
2
2
  import { type FileHandle } from 'node:fs/promises';
3
3
  import type { ManagedFileInspector } from './boundary.js';
4
4
  import { type ManagedFileReadOptions, type ManagedFileSource } from './boundary.js';
5
- /** The descriptor, rather than a preceding path stat, decides kind/link/stability. */
5
+ /** The neutral descriptor owner proves bytes; this adapter adds managed-file metadata. */
6
6
  export declare function readManagedDescriptor(target: string, path: string, maxBytes: number, options: ManagedFileReadOptions, inspection: {
7
7
  inspect?: ManagedFileInspector;
8
8
  bytes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/files/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAGpB,sFAAsF;AACtF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAChF,cAAc,GAAE,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;CAAE,CAAQ,GACnF,OAAO,CAAC,iBAAiB,CAAC,CAyE5B"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/files/read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAGzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAGpB,0FAA0F;AAC1F,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAChF,cAAc,GAAE,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;CAAE,CAAQ,GACnF,OAAO,CAAC,iBAAiB,CAAC,CAuB5B"}
@@ -0,0 +1,88 @@
1
+ // src/tools/connections/errors.ts
2
+ class ConnectionAuthorizationRequiredError2 extends Error {
3
+ connectionName;
4
+ instanceId;
5
+ operation;
6
+ phase;
7
+ constructor(connectionName, instanceId, context = {}) {
8
+ super(`Connection "${connectionName}" requires authorization`);
9
+ this.name = "ConnectionAuthorizationRequiredError";
10
+ this.connectionName = connectionName;
11
+ this.instanceId = instanceId;
12
+ this.operation = context.operation ?? "request";
13
+ this.phase = context.phase ?? "call";
14
+ }
15
+ }
16
+
17
+ class ConnectionRequestError2 extends Error {
18
+ connectionName;
19
+ status;
20
+ body;
21
+ operation;
22
+ phase;
23
+ constructor(connectionName, status, body, context = {}) {
24
+ super(`Connection "${connectionName}" request failed with status ${status}`);
25
+ this.name = "ConnectionRequestError";
26
+ this.connectionName = connectionName;
27
+ this.status = status;
28
+ this.body = body;
29
+ this.operation = context.operation ?? "request";
30
+ this.phase = context.phase ?? "call";
31
+ }
32
+ }
33
+
34
+ class ConnectionUrlError2 extends Error {
35
+ url;
36
+ constructor(message, url) {
37
+ super(message);
38
+ this.name = "ConnectionUrlError";
39
+ this.url = url;
40
+ }
41
+ }
42
+
43
+ class ConnectionBudgetExceededError2 extends Error {
44
+ limit;
45
+ actual;
46
+ constructor(limit, actual, unit = "tools") {
47
+ super(`Connection surface exposes ${actual} ${unit}, above the budget of ${limit}`);
48
+ this.name = "ConnectionBudgetExceededError";
49
+ this.limit = limit;
50
+ this.actual = actual;
51
+ }
52
+ }
53
+
54
+ class ConnectionTimeoutError2 extends Error {
55
+ connectionName;
56
+ timeoutMs;
57
+ operation;
58
+ phase;
59
+ observedReadBytes;
60
+ constructor(connectionName, timeoutMs, context = {}) {
61
+ super(`Connection "${connectionName}" timed out after ${timeoutMs} ms`);
62
+ this.name = "ConnectionTimeoutError";
63
+ this.connectionName = connectionName;
64
+ this.timeoutMs = timeoutMs;
65
+ this.operation = context.operation ?? "request";
66
+ this.phase = context.phase ?? "call";
67
+ this.observedReadBytes = context.observedReadBytes ?? 0;
68
+ }
69
+ }
70
+
71
+ class ConnectionResponseTooLargeError2 extends Error {
72
+ connectionName;
73
+ maxBytes;
74
+ operation;
75
+ phase;
76
+ observedReadBytes;
77
+ constructor(connectionName, maxBytes, context = {}) {
78
+ super(`Connection "${connectionName}" response exceeded the ${maxBytes} byte limit`);
79
+ this.name = "ConnectionResponseTooLargeError";
80
+ this.connectionName = connectionName;
81
+ this.maxBytes = maxBytes;
82
+ this.operation = context.operation ?? "request";
83
+ this.phase = context.phase ?? "call";
84
+ this.observedReadBytes = context.observedReadBytes ?? 0;
85
+ }
86
+ }
87
+
88
+ export { ConnectionAuthorizationRequiredError2, ConnectionRequestError2, ConnectionUrlError2, ConnectionBudgetExceededError2, ConnectionTimeoutError2, ConnectionResponseTooLargeError2 };
@@ -5,7 +5,7 @@ import {
5
5
  AppError2,
6
6
  STITCH_ERROR_STATUS2,
7
7
  isStitchErrorCode2
8
- } from "./index-n53mswt3.js";
8
+ } from "./index-x928baz2.js";
9
9
  import {
10
10
  bytesToBase64Url,
11
11
  base64UrlToBytes
@@ -0,0 +1,77 @@
1
+ import {
2
+ withExclusiveLock2
3
+ } from "./index-g95fk660.js";
4
+ import {
5
+ writeAtomicFileData
6
+ } from "./index-s4evrmp5.js";
7
+ import {
8
+ publishAtomicFile
9
+ } from "./index-8a9ksm91.js";
10
+
11
+ // src/application/file-state-store.ts
12
+ import { mkdir, open, readFile, unlink } from "node:fs/promises";
13
+ import { dirname } from "node:path";
14
+ var missing = (error) => error instanceof Error && ("code" in error) && error.code === "ENOENT";
15
+ function createFileStateStore2(path, options) {
16
+ if ("staleLockMs" in options || "retryMs" in options)
17
+ throw new TypeError("File state store lock age/retry options are unsupported");
18
+ const lockTimeoutMs = options.lockTimeoutMs ?? 1e4;
19
+ if (!Number.isSafeInteger(lockTimeoutMs) || lockTimeoutMs < 0)
20
+ throw new TypeError("lockTimeoutMs must be a nonnegative safe integer");
21
+ const parseFile = async () => {
22
+ let source;
23
+ try {
24
+ source = await readFile(path, "utf8");
25
+ } catch (error) {
26
+ if (missing(error))
27
+ return null;
28
+ throw error;
29
+ }
30
+ try {
31
+ return options.schema.parse(JSON.parse(source));
32
+ } catch (error) {
33
+ await options.onCorrupt?.({ path, error });
34
+ if (options.corrupt === "empty")
35
+ return null;
36
+ throw error;
37
+ }
38
+ };
39
+ return {
40
+ read: parseFile,
41
+ async update(transition) {
42
+ await mkdir(dirname(path), { recursive: true });
43
+ return withExclusiveLock2(`${path}.lock`, async (lock) => {
44
+ let active = true;
45
+ const context = {
46
+ async assertHeld() {
47
+ if (!active)
48
+ throw new Error("State store transaction is no longer active");
49
+ await lock.assertHeld();
50
+ }
51
+ };
52
+ try {
53
+ await context.assertHeld();
54
+ const current = await parseFile();
55
+ await context.assertHeld();
56
+ const next = await transition(current, context);
57
+ await context.assertHeld();
58
+ const state = options.schema.parse(next.state);
59
+ await writeAtomicFileData(path, `${JSON.stringify(state)}
60
+ `, { durability: "directory" }, {
61
+ open,
62
+ unlink,
63
+ async publish(staged, target, replace, directorySync) {
64
+ await context.assertHeld();
65
+ await publishAtomicFile(staged, target, replace, directorySync);
66
+ }
67
+ });
68
+ return next.result;
69
+ } finally {
70
+ active = false;
71
+ }
72
+ }, { label: `state store ${path}`, timeoutMs: lockTimeoutMs });
73
+ }
74
+ };
75
+ }
76
+
77
+ export { createFileStateStore2 };
@@ -2,7 +2,7 @@ import {
2
2
  parseRealtimeRequestArguments,
3
3
  parseRealtimeRequestAcknowledgement,
4
4
  createValidatedRealtimeSocket
5
- } from "./index-pw99k9h5.js";
5
+ } from "./index-43p08g7t.js";
6
6
  import {
7
7
  randomHex
8
8
  } from "./index-c9d05kvt.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  isRetryableStatus2
3
- } from "./index-n53mswt3.js";
3
+ } from "./index-x928baz2.js";
4
4
  import {
5
5
  rebuildObject,
6
6
  mergeSchemas,
7
7
  assertToolExtensionCompatible,
8
8
  projectToolSurface
9
- } from "./index-x87j7csh.js";
9
+ } from "./index-77nxk6ay.js";
10
10
  import {
11
11
  toolErrorFromResult,
12
12
  executeToolMethod
13
- } from "./index-m2xqkv55.js";
13
+ } from "./index-2vnh05w4.js";
14
14
 
15
15
  // src/tools/mount.ts
16
16
  import { z } from "zod";
@@ -3,11 +3,11 @@ import {
3
3
  STITCH_ERROR_STATUS2,
4
4
  isRetryableStatus2,
5
5
  isStitchErrorCode2
6
- } from "./index-n53mswt3.js";
6
+ } from "./index-x928baz2.js";
7
7
  import {
8
8
  normalizeError2,
9
9
  validateDeclaredOutput
10
- } from "./index-b2bz0kdm.js";
10
+ } from "./index-kb8styz3.js";
11
11
  import {
12
12
  coerceJsonArgs2
13
13
  } from "./index-9pw0a51a.js";
@@ -15,7 +15,15 @@ import {
15
15
  applyToolViewDefaults,
16
16
  projectToolView,
17
17
  objectShapeKeys
18
- } from "./index-x87j7csh.js";
18
+ } from "./index-77nxk6ay.js";
19
+ import {
20
+ ConnectionAuthorizationRequiredError2,
21
+ ConnectionRequestError2,
22
+ ConnectionUrlError2,
23
+ ConnectionBudgetExceededError2,
24
+ ConnectionTimeoutError2,
25
+ ConnectionResponseTooLargeError2
26
+ } from "./index-1a6jtnd9.js";
19
27
  import {
20
28
  runWithRequestContext2,
21
29
  getRequestContext2
@@ -81,10 +89,69 @@ function parseToolCallArguments(method, callArgs, {
81
89
  return { ok: true, params, input };
82
90
  }
83
91
 
92
+ // src/tools/connections/error-projection.ts
93
+ function connectionToolError(error) {
94
+ if (error instanceof ConnectionTimeoutError2) {
95
+ const message = "Connection deadline exceeded";
96
+ return new AppError2("CONNECTION_TIMEOUT", message, STITCH_ERROR_STATUS2.CONNECTION_TIMEOUT, {
97
+ message,
98
+ reason: "deadline-exceeded",
99
+ operation: error.operation,
100
+ phase: error.phase,
101
+ timeoutMs: error.timeoutMs,
102
+ observedReadBytes: error.observedReadBytes
103
+ }, "Check the connection deadline and verify any write outcome before retrying.", undefined, false);
104
+ }
105
+ if (error instanceof ConnectionResponseTooLargeError2) {
106
+ const message = "Connection response exceeds the byte limit";
107
+ return new AppError2("CONNECTION_RESPONSE_TOO_LARGE", message, STITCH_ERROR_STATUS2.CONNECTION_RESPONSE_TOO_LARGE, {
108
+ message,
109
+ reason: "response-too-large",
110
+ operation: error.operation,
111
+ phase: error.phase,
112
+ maxResponseBytes: error.maxBytes,
113
+ observedReadBytes: error.observedReadBytes
114
+ }, "Narrow the response or increase the limit for this operation phase.", undefined, false);
115
+ }
116
+ if (error instanceof ConnectionAuthorizationRequiredError2) {
117
+ const message = "Authorization required";
118
+ return new AppError2("UNAUTHORIZED", message, STITCH_ERROR_STATUS2.UNAUTHORIZED, {
119
+ message,
120
+ reason: "authorization-required",
121
+ operation: error.operation,
122
+ phase: error.phase
123
+ }, "Obtain a new credential before retrying.", undefined, false);
124
+ }
125
+ if (error instanceof ConnectionRequestError2) {
126
+ const forbidden = error.status === 403;
127
+ const code = forbidden ? "FORBIDDEN" : "CONNECTION_REQUEST_FAILED";
128
+ const message = forbidden ? "Connection access denied" : "Connection request failed";
129
+ return new AppError2(code, message, STITCH_ERROR_STATUS2[code], {
130
+ message,
131
+ reason: forbidden ? "permission-denied" : "upstream-request-failed",
132
+ operation: error.operation,
133
+ phase: error.phase,
134
+ upstreamStatus: error.status
135
+ }, forbidden ? "Check the credential permissions." : "Check the upstream service and verify any write outcome before retrying.", undefined, !forbidden && isRetryableStatus2(error.status));
136
+ }
137
+ if (error instanceof ConnectionUrlError2) {
138
+ return new AppError2("BAD_REQUEST", "Connection URL refused", STITCH_ERROR_STATUS2.BAD_REQUEST, { message: "Connection URL refused", reason: "url-rejected" }, "Check the connection URL and its allowed hosts.", undefined, false);
139
+ }
140
+ if (error instanceof ConnectionBudgetExceededError2) {
141
+ return new AppError2("BAD_REQUEST", "Connection mount budget exceeded", STITCH_ERROR_STATUS2.BAD_REQUEST, {
142
+ message: "Connection mount budget exceeded",
143
+ reason: "mount-budget-exceeded",
144
+ limit: error.limit,
145
+ actual: error.actual
146
+ }, "Narrow the mounted tool surface or increase its mount budget.", undefined, false);
147
+ }
148
+ return;
149
+ }
150
+
84
151
  // src/tools/execute-result.ts
85
152
  var normalizedToolErrors = new WeakMap;
86
153
  function toolResultFromError(err) {
87
- const appErr = normalizeError2(err);
154
+ const appErr = normalizeError2(connectionToolError(err) ?? err, { logUnexpected: false });
88
155
  const result = {
89
156
  ok: false,
90
157
  code: appErr.code,
@@ -108,6 +175,17 @@ function toolCauseFromResult(result) {
108
175
  return normalizedToolErrors.get(result)?.cause;
109
176
  }
110
177
 
178
+ // src/tools/internal/observe-hook.ts
179
+ async function observed(hook, call) {
180
+ try {
181
+ await call();
182
+ } catch (hookError) {
183
+ try {
184
+ console.error(`[stitchkit] ${hook} hook failed:`, hookError);
185
+ } catch {}
186
+ }
187
+ }
188
+
111
189
  // src/tools/execute.ts
112
190
  class ToolExecutionControlError2 extends Error {
113
191
  reason;
@@ -222,15 +300,6 @@ async function resolveToolExtension(extension, keys, rawArgs, context) {
222
300
  return { thrown: err };
223
301
  }
224
302
  }
225
- async function observed(hook, call) {
226
- try {
227
- await call();
228
- } catch (hookError) {
229
- try {
230
- console.error(`[stitchkit] ${hook} hook failed:`, hookError);
231
- } catch {}
232
- }
233
- }
234
303
  async function runToolMethod(method, { toolName, rawArgs, context }, {
235
304
  hooks,
236
305
  lifecycle,
@@ -340,4 +409,4 @@ async function runToolMethod(method, { toolName, rawArgs, context }, {
340
409
  }
341
410
  }
342
411
 
343
- export { parseToolCallArguments, toolResultFromError, toolErrorFromResult, toolCauseFromResult, ToolExecutionControlError2, isToolExecutionControlError2, executeToolMethod };
412
+ export { parseToolCallArguments, toolResultFromError, toolErrorFromResult, toolCauseFromResult, observed, ToolExecutionControlError2, isToolExecutionControlError2, executeToolMethod };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AppError2
3
- } from "./index-n53mswt3.js";
3
+ } from "./index-x928baz2.js";
4
4
  import {
5
5
  RealtimeRequestInvalidAcknowledgementError2,
6
6
  RealtimeRequestRejectedError2
@@ -2,7 +2,7 @@ import {
2
2
  AppError2,
3
3
  badRequest2,
4
4
  forbidden2
5
- } from "./index-n53mswt3.js";
5
+ } from "./index-x928baz2.js";
6
6
  import {
7
7
  isStreamCancellation,
8
8
  ownHttpStream,
@@ -14,13 +14,13 @@ import {
14
14
  recordedErrorMessage,
15
15
  normalizeError2,
16
16
  validateDeclaredOutput
17
- } from "./index-b2bz0kdm.js";
17
+ } from "./index-kb8styz3.js";
18
18
  import {
19
19
  resolveTraceContext2
20
20
  } from "./index-yex7eg1v.js";
21
21
  import {
22
22
  DEFAULT_CONTRACT_STREAM_FRAME_BYTES2
23
- } from "./index-r5c4fedv.js";
23
+ } from "./index-h2fhjqy7.js";
24
24
  import {
25
25
  joinRoutePath,
26
26
  parseTrailingWildcard
@@ -31,19 +31,21 @@ import {
31
31
  import {
32
32
  isModuleNotFound
33
33
  } from "./index-srs8hj9c.js";
34
+ import {
35
+ bindContract,
36
+ mediaTypeEssence
37
+ } from "./index-g2j7pnak.js";
34
38
  import {
35
39
  assertCorsConfig,
36
40
  isOriginAllowed,
37
41
  corsPreflightResponse2,
38
42
  requestCorsHeaders,
39
43
  applyCors,
40
- bindContract,
41
44
  DEFAULT_PROCESS_SIGNALS,
42
45
  defaultSignalSource,
43
46
  reportSignalError,
44
- guardSignalCallback,
45
- mediaTypeEssence
46
- } from "./index-afjvjyck.js";
47
+ guardSignalCallback
48
+ } from "./index-yk4g8805.js";
47
49
  import {
48
50
  runWithRequestContext2,
49
51
  getRequestContext2,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadDarwinBinding
3
- } from "./index-d4pa2bgs.js";
3
+ } from "./index-v5ee8ath.js";
4
4
  import {
5
5
  isRecord
6
6
  } from "./index-9jfdm5tg.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createValidatedRealtimeSocket
3
- } from "./index-pw99k9h5.js";
3
+ } from "./index-43p08g7t.js";
4
4
 
5
5
  // src/server/realtime.ts
6
6
  function bindRealtimeServer2(contract, handle, options = {}) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AppError2,
3
3
  STITCH_ERROR_STATUS2
4
- } from "./index-n53mswt3.js";
4
+ } from "./index-x928baz2.js";
5
5
 
6
6
  // src/agent-runtime/sandbox.ts
7
7
  import { z } from "zod";