stitchkit 0.110.5 → 0.111.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 (100) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/agent-runtime/branch-observations.d.ts +16 -16
  3. package/dist/agent-runtime/sandbox-broker.d.ts.map +1 -1
  4. package/dist/browser/stream.d.ts +3 -2
  5. package/dist/browser/stream.d.ts.map +1 -1
  6. package/dist/contract/runtime-context.d.ts +3 -1
  7. package/dist/contract/runtime-context.d.ts.map +1 -1
  8. package/dist/entrypoints/agent-runtime/coding-tools.js +2 -2
  9. package/dist/entrypoints/agent-runtime/sandbox.js +15 -29
  10. package/dist/entrypoints/agent-runtime/sqlite/bun.js +4 -4
  11. package/dist/entrypoints/agent-runtime/sqlite/node.js +4 -4
  12. package/dist/entrypoints/agent-runtime/testing.js +4 -4
  13. package/dist/entrypoints/agent-runtime.js +4 -4
  14. package/dist/entrypoints/bin/upgrade-cli.d.ts.map +1 -1
  15. package/dist/entrypoints/bin/upgrade-cli.js +123 -29
  16. package/dist/entrypoints/cli/publish.js +1 -1
  17. package/dist/entrypoints/cli.js +2 -2
  18. package/dist/entrypoints/http.d.ts +2 -0
  19. package/dist/entrypoints/http.d.ts.map +1 -1
  20. package/dist/entrypoints/http.js +5 -1
  21. package/dist/entrypoints/index.d.ts +1 -0
  22. package/dist/entrypoints/index.d.ts.map +1 -1
  23. package/dist/entrypoints/index.js +5 -1
  24. package/dist/entrypoints/node.d.ts +1 -0
  25. package/dist/entrypoints/node.d.ts.map +1 -1
  26. package/dist/entrypoints/node.js +3 -1
  27. package/dist/entrypoints/observability.js +24 -9
  28. package/dist/entrypoints/process.js +1 -1
  29. package/dist/entrypoints/remote.js +1 -1
  30. package/dist/entrypoints/server.d.ts +2 -0
  31. package/dist/entrypoints/server.d.ts.map +1 -1
  32. package/dist/entrypoints/server.js +79 -6
  33. package/dist/entrypoints/telegram.js +3 -3
  34. package/dist/entrypoints/testing.js +1 -1
  35. package/dist/entrypoints/tools/connections.js +16 -31
  36. package/dist/entrypoints/tools.js +39 -7
  37. package/dist/{index-mpg1t7nv.js → index-0z3kfphz.js} +1 -1
  38. package/dist/{index-jk44mbqb.js → index-1y0arq4z.js} +3 -57
  39. package/dist/{index-5pbtbce0.js → index-7c957abz.js} +1 -1
  40. package/dist/{index-e1sjcjfy.js → index-7r4knwf8.js} +94 -23
  41. package/dist/index-cjbn98zt.js +68 -0
  42. package/dist/{index-bm180f2d.js → index-ey15wx6j.js} +1 -1
  43. package/dist/{index-s0xbnpfh.js → index-kdnfe0sr.js} +1 -1
  44. package/dist/{index-s6d8zsha.js → index-krng2a5j.js} +64 -110
  45. package/dist/{index-9ket8wzx.js → index-mnk5vgdr.js} +1 -1
  46. package/dist/index-qndsr7f0.js +55 -0
  47. package/dist/{index-n7hrpngg.js → index-syzngt7v.js} +1 -1
  48. package/dist/{index-3h0ztg0z.js → index-t65erk4z.js} +5 -21
  49. package/dist/internal/bounded-body.d.ts +44 -0
  50. package/dist/internal/bounded-body.d.ts.map +1 -0
  51. package/dist/internal/bounded-lines.d.ts +1 -2
  52. package/dist/internal/bounded-lines.d.ts.map +1 -1
  53. package/dist/internal/secure-fetch.d.ts.map +1 -1
  54. package/dist/internal/stream-chunks.d.ts +13 -0
  55. package/dist/internal/stream-chunks.d.ts.map +1 -0
  56. package/dist/internal/upgrade-affects.d.ts +5 -0
  57. package/dist/internal/upgrade-affects.d.ts.map +1 -1
  58. package/dist/internal/upgrade-plan.d.ts +18 -3
  59. package/dist/internal/upgrade-plan.d.ts.map +1 -1
  60. package/dist/internal/upgrade-usage.d.ts +21 -5
  61. package/dist/internal/upgrade-usage.d.ts.map +1 -1
  62. package/dist/observability/audit.d.ts +10 -0
  63. package/dist/observability/audit.d.ts.map +1 -1
  64. package/dist/observability/event.d.ts +5 -0
  65. package/dist/observability/event.d.ts.map +1 -1
  66. package/dist/process/group-diagnostics.d.ts +20 -0
  67. package/dist/process/group-diagnostics.d.ts.map +1 -0
  68. package/dist/process/group-settlement.d.ts +1 -1
  69. package/dist/process/group-settlement.d.ts.map +1 -1
  70. package/dist/process/group.d.ts.map +1 -1
  71. package/dist/server/bun.d.ts +9 -0
  72. package/dist/server/bun.d.ts.map +1 -1
  73. package/dist/server/multipart.d.ts.map +1 -1
  74. package/dist/server/oauth/endpoints.d.ts.map +1 -1
  75. package/dist/server/oauth/provider.d.ts +5 -0
  76. package/dist/server/oauth/provider.d.ts.map +1 -1
  77. package/dist/server/proxy-origin.d.ts +12 -0
  78. package/dist/server/proxy-origin.d.ts.map +1 -0
  79. package/dist/server/raw.d.ts +6 -3
  80. package/dist/server/raw.d.ts.map +1 -1
  81. package/dist/server/request-body.d.ts.map +1 -1
  82. package/dist/server/request-completion.d.ts.map +1 -1
  83. package/dist/server/request-ingress.d.ts +31 -0
  84. package/dist/server/request-ingress.d.ts.map +1 -0
  85. package/dist/server/unix-client-body.d.ts.map +1 -1
  86. package/dist/tools/connections/limits.d.ts.map +1 -1
  87. package/llms/http.txt +3 -0
  88. package/llms/observability.txt +19 -2
  89. package/llms/server.2.txt +135 -0
  90. package/llms/server.5.txt +3 -1
  91. package/llms/server.txt +97 -131
  92. package/llms/stitchkit.2.txt +28 -0
  93. package/llms/stitchkit.txt +3 -3
  94. package/llms/tools.3.txt +1 -1
  95. package/llms/tools.txt +4 -0
  96. package/llms/{upgrading-0.101.0-0.110.0.txt → upgrading-0.101.0-0.111.0.txt} +29 -3
  97. package/llms/upgrading.txt +8 -2
  98. package/llms-full.txt +192 -8
  99. package/llms.txt +6 -6
  100. package/package.json +1 -1
@@ -15,7 +15,7 @@ import {
15
15
  gzipCliAsset,
16
16
  decodeCliAsset,
17
17
  compareCliVersions2
18
- } from "../../index-s0xbnpfh.js";
18
+ } from "../../index-kdnfe0sr.js";
19
19
  import {
20
20
  withExclusiveLock2
21
21
  } from "../../index-w9mqgnz9.js";
@@ -16,7 +16,7 @@ import {
16
16
  renderCliView2,
17
17
  pollUntilDone2,
18
18
  createCli2
19
- } from "../index-n7hrpngg.js";
19
+ } from "../index-syzngt7v.js";
20
20
  import"../index-fynr93w4.js";
21
21
  import"../index-ct75c3at.js";
22
22
  import"../index-q6crhe1n.js";
@@ -40,7 +40,7 @@ import {
40
40
  checkCliUpdate2,
41
41
  applyCliUpdate2,
42
42
  rollbackCliUpdate2
43
- } from "../index-s0xbnpfh.js";
43
+ } from "../index-kdnfe0sr.js";
44
44
  import {
45
45
  writeFileAtomicSync2
46
46
  } from "../index-07dcf2yn.js";
@@ -3,4 +3,6 @@ export { ApiError } from '../browser/api-error.js';
3
3
  export { type ChunkedUploadConfig, type ChunkedUploadPart, type ChunkedUploadProgress, type ChunkedUploadStart, type ChunkSource, uploadInChunks, } from '../browser/chunked-upload.js';
4
4
  export { type ClientConfig, type ClientContract, type ClientFetch, type ClientRegistryValue, type ContractClientConfig, contractEndpointMatchers, createClient, createClients, createScopedClients, createScopedUrlBuilders, createUrlBuilder, createUrlBuilders, type PathPrefixArgs, type RegistryScope, type ScopeClientConfigs, type ScopedClientRegistry, type ScopedUrlBuilderRegistry, type UrlBuilderConfig, } from '../browser/client.js';
5
5
  export { type ApiEvent, type ApiEventListener, type ConfiguredHttpClient, createHttpClient, type HeaderProvider, type HttpClient, type HttpClientConfig, type RequestOptions, type UnauthorizedMatcher, } from '../browser/http.js';
6
+ export { type BoundedBodyOptions, readBoundedBody } from '../internal/bounded-body.js';
7
+ export type { StreamByteSource } from '../internal/stream-chunks.js';
6
8
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/entrypoints/http.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/entrypoints/http.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -14,10 +14,13 @@ import {
14
14
  createUrlBuilder2,
15
15
  createUrlBuilders2,
16
16
  createScopedUrlBuilders2
17
- } from "../index-jk44mbqb.js";
17
+ } from "../index-1y0arq4z.js";
18
18
  import {
19
19
  ApiError2
20
20
  } from "../index-kfjkb396.js";
21
+ import {
22
+ readBoundedBody2
23
+ } from "../index-qndsr7f0.js";
21
24
  export {
22
25
  ApiError2 as ApiError,
23
26
  contractEndpointMatchers2 as contractEndpointMatchers,
@@ -28,5 +31,6 @@ export {
28
31
  createScopedUrlBuilders2 as createScopedUrlBuilders,
29
32
  createUrlBuilder2 as createUrlBuilder,
30
33
  createUrlBuilders2 as createUrlBuilders,
34
+ readBoundedBody2 as readBoundedBody,
31
35
  uploadInChunks2 as uploadInChunks
32
36
  };
@@ -13,6 +13,7 @@ export type { RealtimeClient, RealtimeClientOptions, SocketEventMap, SocketIOCli
13
13
  export { createRealtimeClient, createSocketIOClient } from '../browser/socket-io.js';
14
14
  export { createNDJSONDecoder, type NDJSONDecoder, type ParseNDJSONOptions, type ParseSSEOptions, parseNDJSON, parseSSE, type StreamByteSource, StreamLineLimitError, StreamTruncatedLineError, } from '../browser/stream.js';
15
15
  export { type Backoff, type BackoffPolicy, BackoffPolicySchema, createBackoff, } from '../internal/backoff.js';
16
+ export { type BoundedBodyOptions, readBoundedBody } from '../internal/bounded-body.js';
16
17
  export type { StitchLogger } from '../internal/logger.js';
17
18
  export { formatZodError, type ZodIssueSummary, zodIssues } from '../internal/zod-issues.js';
18
19
  export { childSpan, createTraceContext, formatTraceparent, parseTraceparent, type TraceContext, } from '../observability/trace.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entrypoints/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entrypoints/index.ts"],"names":[],"mappings":"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"}
@@ -71,7 +71,7 @@ import {
71
71
  createUrlBuilder2,
72
72
  createUrlBuilders2,
73
73
  createScopedUrlBuilders2
74
- } from "../index-jk44mbqb.js";
74
+ } from "../index-1y0arq4z.js";
75
75
  import {
76
76
  createRetainedTopics2,
77
77
  createRealtimeClientWithPeer,
@@ -83,6 +83,9 @@ import {
83
83
  import {
84
84
  ApiError2
85
85
  } from "../index-kfjkb396.js";
86
+ import {
87
+ readBoundedBody2
88
+ } from "../index-qndsr7f0.js";
86
89
  import {
87
90
  sleep
88
91
  } from "../index-eemvahkc.js";
@@ -419,6 +422,7 @@ export {
419
422
  parseSSE2 as parseSSE,
420
423
  parseTraceparent2 as parseTraceparent,
421
424
  rateLimited2 as rateLimited,
425
+ readBoundedBody2 as readBoundedBody,
422
426
  resumableIterator,
423
427
  unauthorized2 as unauthorized,
424
428
  uploadInChunks2 as uploadInChunks,
@@ -11,6 +11,7 @@ export type { LogFormat } from '../server/logger.js';
11
11
  export { type NodeRuntimeServer, type NodeServerConfig, type NodeServerHandle, type NodeSocketLifecycle, serveNode, } from '../server/node.js';
12
12
  export { bindProcessSignals, type ProcessSignalName, type ProcessSignalsBinding, type ProcessSignalsErrorPhase, type ProcessSignalsOptions, type ShutdownTarget, type SignalSource, } from '../server/process-signals.js';
13
13
  export { bindRealtimeServer, type RealtimeServer, type RealtimeServerConnection, type RealtimeServerHandle, } from '../server/realtime.js';
14
+ export { defineRequestIngress, type RequestIngress, type RequestIngressSource, } from '../server/request-ingress.js';
14
15
  export { type ManagedServerHandle, type ShutdownOptions, ShutdownOptionsSchema, type ShutdownResult, ShutdownResultSchema, type ShutdownState, ShutdownStateSchema, type ShutdownStatus, ShutdownStatusSchema, } from '../server/shutdown.js';
15
16
  export { createNodeSocketIOServer as createSocketIOServer, type NodeSocketIOServerHandle as SocketIOServerHandle, type SocketIOHandshakeConfig, type SocketIOPeerLoaders, type SocketIORequestPolicy, type SocketIOServerConfig, } from '../server/socket-io-node.js';
16
17
  export type { EffectiveScope, FetchComposition, FetchHandler, HandlerConfig, LoggingConfig, LogOutcome, RawRoute, RawRouteContext, ScopeContexts, ScopedHandlers, ServiceDef, } from '../server/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/entrypoints/node.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,cAAc,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,IAAI,oBAAoB,EAChD,KAAK,wBAAwB,IAAI,oBAAoB,EACrD,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,wBAAwB,EACxB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/entrypoints/node.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,cAAc,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,IAAI,oBAAoB,EAChD,KAAK,wBAAwB,IAAI,oBAAoB,EACrD,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,wBAAwB,EACxB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAC"}
@@ -19,10 +19,11 @@ import {
19
19
  implementRegistry2,
20
20
  createImplementRegistry2,
21
21
  bindProcessSignals2,
22
+ defineRequestIngress2,
22
23
  createSocketIOServer2,
23
24
  UnixClientTransportError2,
24
25
  createUnixClientTransport2
25
- } from "../index-s6d8zsha.js";
26
+ } from "../index-krng2a5j.js";
26
27
  import {
27
28
  bindRealtimeServer2
28
29
  } from "../index-xmgjtkvr.js";
@@ -292,6 +293,7 @@ export {
292
293
  createScopedImplementRegistry2 as createScopedImplementRegistry,
293
294
  createNodeSocketIOServer as createSocketIOServer,
294
295
  createUnixClientTransport2 as createUnixClientTransport,
296
+ defineRequestIngress2 as defineRequestIngress,
295
297
  forbidden2 as forbidden,
296
298
  implement2 as implement,
297
299
  implementRegistry2 as implementRegistry,
@@ -10,6 +10,9 @@ import {
10
10
  withinBound,
11
11
  createBoundedSinkManager
12
12
  } from "../index-qaet40b2.js";
13
+ import {
14
+ assertPositiveSafeInteger
15
+ } from "../index-0s4xebbg.js";
13
16
  import {
14
17
  redact2,
15
18
  truncatePreview2,
@@ -108,7 +111,17 @@ function readMcpContext(value) {
108
111
  function createSinkManager(config) {
109
112
  return createBoundedSinkManager(config);
110
113
  }
114
+ async function settlePayload(payload, payloadTruncated) {
115
+ if (!payload)
116
+ return { body: undefined, truncated: false };
117
+ try {
118
+ return { body: await payload, truncated: await payloadTruncated ?? false };
119
+ } catch {
120
+ return { body: undefined, truncated: false };
121
+ }
122
+ }
111
123
  function createObservability(config) {
124
+ assertPositiveSafeInteger("request.payloadMaxBytes", config.request?.payloadMaxBytes);
112
125
  const requestManager = config.request ? createSinkManager(config.request) : undefined;
113
126
  const toolManager = config.tools ? createSinkManager(config.tools) : undefined;
114
127
  let closed = false;
@@ -117,7 +130,15 @@ function createObservability(config) {
117
130
  let unbounded;
118
131
  const request = config.request ? {
119
132
  includePayload: config.request.includePayload ?? false,
120
- complete: ({ context, statusCode, durationMs, payload, outcome }) => {
133
+ payloadMaxBytes: config.request.payloadMaxBytes,
134
+ complete: ({
135
+ context,
136
+ statusCode,
137
+ durationMs,
138
+ payload,
139
+ payloadTruncated,
140
+ outcome
141
+ }) => {
121
142
  const requestConfig = config.request;
122
143
  if (!requestConfig)
123
144
  return;
@@ -125,14 +146,7 @@ function createObservability(config) {
125
146
  if (cancelled && !requestConfig.includeCancelled)
126
147
  return;
127
148
  requestManager?.submit(async () => {
128
- let body;
129
- if (!cancelled && payload) {
130
- try {
131
- body = await payload;
132
- } catch {
133
- body = undefined;
134
- }
135
- }
149
+ const { body, truncated } = cancelled ? { body: undefined, truncated: false } : await settlePayload(payload, payloadTruncated);
136
150
  return {
137
151
  source: context.source,
138
152
  kind: context.kind ?? "request",
@@ -161,6 +175,7 @@ function createObservability(config) {
161
175
  }
162
176
  },
163
177
  payload: cancelled ? null : sanitizePayload2(body, requestConfig.sanitize),
178
+ ...truncated && { payloadTruncated: true },
164
179
  resultSize: null,
165
180
  responseBytes: 0,
166
181
  userId: context.userId,
@@ -9,7 +9,7 @@ import {
9
9
  } from "../index-84bf5spd.js";
10
10
  import {
11
11
  startNativeCommand
12
- } from "../index-e1sjcjfy.js";
12
+ } from "../index-7r4knwf8.js";
13
13
  // src/process/command.ts
14
14
  function runNativeCommand(input) {
15
15
  return startNativeCommand(input).result;
@@ -4,7 +4,7 @@ import"../index-p6apg0jg.js";
4
4
  import {
5
5
  endpointHasArguments,
6
6
  createClient2
7
- } from "../index-jk44mbqb.js";
7
+ } from "../index-1y0arq4z.js";
8
8
  import {
9
9
  ApiError2
10
10
  } from "../index-kfjkb396.js";
@@ -23,10 +23,12 @@ export { createTrustFence, isLoopbackAddress, type TrustFence, type TrustFenceCo
23
23
  export { type MultipartLifecycle, type MultipartResult, parseMultipart, } from '../server/multipart.js';
24
24
  export { generateOpenApiDocument, type OpenApiConfig, type OpenApiDocument, type OpenApiInfo, type OpenApiServer, openApiRoute, } from '../server/openapi.js';
25
25
  export { bindProcessSignals, type ProcessSignalName, type ProcessSignalsBinding, type ProcessSignalsErrorPhase, type ProcessSignalsOptions, type ShutdownTarget, type SignalSource, } from '../server/process-signals.js';
26
+ export type { ProxyOriginConfig } from '../server/proxy-origin.js';
26
27
  export { createRateLimiter, type RateLimitConfig } from '../server/rate-limit.js';
27
28
  export { errorResponse, parseBody, respondJson } from '../server/raw.js';
28
29
  export { bindRealtimeServer, type RealtimeServer, type RealtimeServerConnection, type RealtimeServerHandle, } from '../server/realtime.js';
29
30
  export { bindReleaseRefreshSignal, type ReleaseRefreshSignal, type ReleaseRefreshSignalOptions, } from '../server/release-signal.js';
31
+ export { defineRequestIngress, type RequestIngress, type RequestIngressSource, } from '../server/request-ingress.js';
30
32
  export { type ManagedServerHandle, type ShutdownOptions, ShutdownOptionsSchema, type ShutdownResult, ShutdownResultSchema, type ShutdownState, ShutdownStateSchema, type ShutdownStatus, ShutdownStatusSchema, } from '../server/shutdown.js';
31
33
  export type { SocketIOHandshakeConfig, SocketIOPeerLoaders, SocketIORequestPolicy, SocketIOServerConfig, SocketIOServerHandle, SocketIOServerLifecycle, } from '../server/socket-io.js';
32
34
  export { createSocketIOServer, socketIoLane } from '../server/socket-io.js';
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/entrypoints/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/entrypoints/server.ts"],"names":[],"mappings":"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"}
@@ -42,13 +42,14 @@ import {
42
42
  implementRegistry2,
43
43
  createImplementRegistry2,
44
44
  bindProcessSignals2,
45
+ defineRequestIngress2,
45
46
  webSocketLane2,
46
47
  composeWebSocketHandlers2,
47
48
  createSocketIOServer2,
48
49
  socketIoLane2,
49
50
  UnixClientTransportError2,
50
51
  createUnixClientTransport2
51
- } from "../index-s6d8zsha.js";
52
+ } from "../index-krng2a5j.js";
52
53
  import {
53
54
  createFileStateStore2
54
55
  } from "../index-nx49x0tw.js";
@@ -82,6 +83,13 @@ import {
82
83
  realPathWithinDir
83
84
  } from "../index-5cc6r990.js";
84
85
  import"../index-1bx1xv1k.js";
86
+ import {
87
+ readBoundedChunks,
88
+ concatChunks
89
+ } from "../index-qndsr7f0.js";
90
+ import {
91
+ assertPositiveSafeInteger
92
+ } from "../index-0s4xebbg.js";
85
93
  import {
86
94
  DEFAULT_CORS_ALLOW_HEADERS2,
87
95
  DEFAULT_CORS_EXPOSE_HEADERS2,
@@ -335,6 +343,53 @@ function bindSocketRegistry(server, options) {
335
343
  }
336
344
  // src/server/bun.ts
337
345
  import { chmodSync, statSync, unlinkSync } from "node:fs";
346
+
347
+ // src/server/proxy-origin.ts
348
+ import { z } from "zod";
349
+ var ProtocolSchema = z.enum(["http", "https"]);
350
+ var AuthoritySchema = z.string().min(1).max(1024).regex(/^[^\s/\\?#@,;]+$/);
351
+ var conflictingHeaders = ["forwarded", "x-forwarded-host", "x-forwarded-port"];
352
+ function createProxyOrigin(policy) {
353
+ const originals = new WeakMap;
354
+ const original = (request) => originals.get(request) ?? request;
355
+ return {
356
+ bind(server) {
357
+ const requestIP = server.requestIP.bind(server);
358
+ const timeout = server.timeout.bind(server);
359
+ const upgrade = server.upgrade.bind(server);
360
+ server.requestIP = (request) => requestIP(original(request));
361
+ server.timeout = (request, seconds) => timeout(original(request), seconds);
362
+ server.upgrade = (request, options) => upgrade(original(request), options);
363
+ },
364
+ normalize(request, server) {
365
+ const peer = server.requestIP(request)?.address;
366
+ if (!peer || !policy.trustedPeer(peer))
367
+ return request;
368
+ const protocol = ProtocolSchema.safeParse(request.headers.get("x-forwarded-proto"));
369
+ const authority = AuthoritySchema.safeParse(request.headers.get("host"));
370
+ if (!protocol.success || !authority.success || conflictingHeaders.some((name) => request.headers.has(name))) {
371
+ return new Response("Invalid proxy origin", { status: 400 });
372
+ }
373
+ let origin;
374
+ try {
375
+ origin = new URL(`${protocol.data}://${authority.data}`);
376
+ } catch {
377
+ return new Response("Invalid proxy origin", { status: 400 });
378
+ }
379
+ const url = new URL(request.url);
380
+ url.protocol = origin.protocol;
381
+ url.host = origin.host;
382
+ url.port = origin.port;
383
+ if (url.href === request.url)
384
+ return request;
385
+ const normalized = new Request(url, request);
386
+ originals.set(normalized, request);
387
+ return normalized;
388
+ }
389
+ };
390
+ }
391
+
392
+ // src/server/bun.ts
338
393
  function reclaimStaleUnixSocket(path) {
339
394
  const stats = statSync(path, { throwIfNoEntry: false });
340
395
  if (stats === undefined)
@@ -492,17 +547,21 @@ function createServer(config) {
492
547
  const handler = createHandler2(config);
493
548
  const consumerFetch = config.wrapFetch ? config.wrapFetch(handler) : handler;
494
549
  const admittedFetch = lifecycle.wrapFetch(consumerFetch);
550
+ const proxyOrigin = config.proxyOrigin && createProxyOrigin(config.proxyOrigin);
495
551
  const fetch = async (request, server) => {
552
+ const normalized = proxyOrigin && server ? proxyOrigin.normalize(request, server) : request;
553
+ if (normalized instanceof Response)
554
+ return normalized;
496
555
  if (socket && socketRoutePrefix) {
497
- const pathname = new URL(request.url).pathname;
556
+ const pathname = new URL(normalized.url).pathname;
498
557
  if (pathname.startsWith(socketRoutePrefix)) {
499
- return await socket.route.handler(request, {
558
+ return await socket.route.handler(normalized, {
500
559
  params: { socketPath: pathname.slice(socketRoutePrefix.length) },
501
560
  server
502
561
  });
503
562
  }
504
563
  }
505
- return admittedFetch(request, server);
564
+ return admittedFetch(normalized, server);
506
565
  };
507
566
  if (unixPath !== undefined) {
508
567
  reclaimStaleUnixSocket(unixPath);
@@ -538,6 +597,7 @@ function createServer(config) {
538
597
  });
539
598
  }
540
599
  const server = runtime;
600
+ proxyOrigin?.bind(server);
541
601
  return {
542
602
  url: server.url.toString().replace(/\/$/, ""),
543
603
  port: server.port ?? (unixPath !== undefined ? 0 : port),
@@ -1643,13 +1703,25 @@ function errorResponse2(error) {
1643
1703
  res.headers.set("x-request-id", traceId);
1644
1704
  return res;
1645
1705
  }
1646
- async function parseBody(req, schema) {
1647
- const raw = await req.json().catch(() => null);
1706
+ async function parseBody(req, schema, options = {}) {
1707
+ assertPositiveSafeInteger("maxBytes", options.maxBytes);
1708
+ const raw = await readJson(req, options.maxBytes ?? DEFAULT_PARSE_BODY_BYTES);
1648
1709
  if (raw === null)
1649
1710
  return null;
1650
1711
  const parsed = schema.safeParse(raw);
1651
1712
  return parsed.success ? parsed.data : null;
1652
1713
  }
1714
+ var DEFAULT_PARSE_BODY_BYTES = 1024 * 1024;
1715
+ async function readJson(req, maxBytes) {
1716
+ try {
1717
+ const result = await readBoundedChunks(req.body, { maxBytes, signal: req.signal });
1718
+ if (result.kind === "over-limit")
1719
+ return null;
1720
+ return JSON.parse(new TextDecoder().decode(concatChunks(result.chunks, result.total)));
1721
+ } catch {
1722
+ return null;
1723
+ }
1724
+ }
1653
1725
  // src/server/release-signal.ts
1654
1726
  function bindReleaseRefreshSignal(marker, options = {}) {
1655
1727
  const signal = options.signal ?? "SIGUSR2";
@@ -1755,6 +1827,7 @@ export {
1755
1827
  createUnixClientTransport2 as createUnixClientTransport,
1756
1828
  defineCookie,
1757
1829
  defineMultipartStream2 as defineMultipartStream,
1830
+ defineRequestIngress2 as defineRequestIngress,
1758
1831
  deriveCodeChallenge2 as deriveCodeChallenge,
1759
1832
  errorCode2 as errorCode,
1760
1833
  errorResponse2 as errorResponse,
@@ -16,9 +16,6 @@ import {
16
16
  TELEGRAM_TEXT_LIMIT2,
17
17
  truncateTelegramHtml2
18
18
  } from "../index-nmaqxdx7.js";
19
- import {
20
- untilAborted
21
- } from "../index-a5qr2rj6.js";
22
19
  import {
23
20
  writeFileAtomic2
24
21
  } from "../index-07dcf2yn.js";
@@ -29,6 +26,9 @@ import {
29
26
  MAX_TIMER_MS,
30
27
  sleep
31
28
  } from "../index-eemvahkc.js";
29
+ import {
30
+ untilAborted
31
+ } from "../index-a5qr2rj6.js";
32
32
  import {
33
33
  assertPositiveSafeInteger
34
34
  } from "../index-0s4xebbg.js";
@@ -35,7 +35,7 @@ import"../index-fynr93w4.js";
35
35
  import {
36
36
  createClient2,
37
37
  createClients2
38
- } from "../index-jk44mbqb.js";
38
+ } from "../index-1y0arq4z.js";
39
39
  import {
40
40
  assertPositiveSafeInteger
41
41
  } from "../index-0s4xebbg.js";
@@ -13,6 +13,10 @@ import {
13
13
  import {
14
14
  raceAbort
15
15
  } from "../../index-b0kddvzw.js";
16
+ import {
17
+ readBoundedChunks,
18
+ concatChunks
19
+ } from "../../index-qndsr7f0.js";
16
20
  import {
17
21
  MAX_TIMER_MS
18
22
  } from "../../index-eemvahkc.js";
@@ -243,40 +247,21 @@ function withConnectionDeadline(connectionName, context, callerSignal, body) {
243
247
  });
244
248
  }
245
249
  async function readBoundedText(response, maxBytes, connectionName, context) {
246
- context?.signal?.throwIfAborted();
247
- if (!response.body)
248
- return "";
249
- const reader = response.body.getReader();
250
- const decoder = new TextDecoder;
251
- let total = 0;
252
- let text = "";
253
- const cancel = () => void reader.cancel(context?.signal?.reason).catch(() => {
254
- return;
255
- });
256
- context?.signal?.addEventListener("abort", cancel, { once: true });
257
- try {
258
- for (;; ) {
259
- const { done, value } = await awaitConnection(reader.read(), context?.signal);
260
- if (done)
261
- break;
262
- total += value.byteLength;
250
+ const result = await readBoundedChunks(response.body, {
251
+ maxBytes,
252
+ ...context?.signal && { signal: context.signal },
253
+ onChunk: (chunk) => {
263
254
  if (context)
264
- context.observedReadBytes += value.byteLength;
265
- if (total > maxBytes) {
266
- throw new ConnectionResponseTooLargeError(connectionName, maxBytes, {
267
- ...context,
268
- observedReadBytes: total
269
- });
270
- }
271
- text += decoder.decode(value, { stream: true });
255
+ context.observedReadBytes += chunk.byteLength;
272
256
  }
273
- text += decoder.decode();
274
- return text;
275
- } finally {
276
- context?.signal?.removeEventListener("abort", cancel);
277
- cancel();
278
- reader.releaseLock();
257
+ });
258
+ if (result.kind === "over-limit") {
259
+ throw new ConnectionResponseTooLargeError(connectionName, maxBytes, {
260
+ ...context,
261
+ observedReadBytes: result.total
262
+ });
279
263
  }
264
+ return new TextDecoder().decode(concatChunks(result.chunks, result.total));
280
265
  }
281
266
  async function readBoundedJson(response, maxBytes, connectionName, context) {
282
267
  return JSON.parse(await readBoundedText(response, maxBytes, connectionName, context));
@@ -74,7 +74,7 @@ import {
74
74
  WaitTimeoutError,
75
75
  runWaitOperation,
76
76
  createCli2
77
- } from "../index-n7hrpngg.js";
77
+ } from "../index-syzngt7v.js";
78
78
  import {
79
79
  ManagedFilePathSchema2,
80
80
  ManagedFileRefSchema2
@@ -97,8 +97,15 @@ import {
97
97
  fetchGuarded,
98
98
  fetchPinnedDocument,
99
99
  readCapped
100
- } from "../index-3h0ztg0z.js";
100
+ } from "../index-t65erk4z.js";
101
101
  import"../index-1bx1xv1k.js";
102
+ import {
103
+ readBoundedChunks,
104
+ concatChunks
105
+ } from "../index-qndsr7f0.js";
106
+ import {
107
+ assertPositiveSafeInteger
108
+ } from "../index-0s4xebbg.js";
102
109
  import {
103
110
  DEFAULT_CORS_ALLOW_HEADERS2
104
111
  } from "../index-yk4g8805.js";
@@ -468,10 +475,29 @@ function redirectWith(uri, params) {
468
475
  url.searchParams.set(key, value);
469
476
  return new Response(null, { status: 302, headers: { Location: url.toString() } });
470
477
  }
471
- async function readForm(req) {
478
+ var DEFAULT_OAUTH_BODY_BYTES = 64 * 1024;
479
+ var tooLarge = () => oauthError("invalid_request", "Request body is too large", 413);
480
+ async function readBodyText(req, config) {
481
+ const result = await readBoundedChunks(req.body, {
482
+ maxBytes: config.maxRequestBodyBytes ?? DEFAULT_OAUTH_BODY_BYTES,
483
+ signal: req.signal
484
+ });
485
+ return result.kind === "over-limit" ? undefined : new TextDecoder().decode(concatChunks(result.chunks, result.total));
486
+ }
487
+ function parseJson(text) {
488
+ try {
489
+ return JSON.parse(text);
490
+ } catch {
491
+ return null;
492
+ }
493
+ }
494
+ async function readForm(req, config) {
495
+ const text = await readBodyText(req, config);
496
+ if (text === undefined)
497
+ return;
472
498
  const contentType = req.headers.get("content-type") ?? "";
473
499
  if (contentType.includes("application/json")) {
474
- const body = await req.json().catch(() => null);
500
+ const body = parseJson(text);
475
501
  const params = new URLSearchParams;
476
502
  if (isRecord(body)) {
477
503
  for (const [key, value] of Object.entries(body)) {
@@ -481,7 +507,7 @@ async function readForm(req) {
481
507
  }
482
508
  return params;
483
509
  }
484
- return new URLSearchParams(await req.text());
510
+ return new URLSearchParams(text);
485
511
  }
486
512
  function metadataRoute(ctx) {
487
513
  const { config } = ctx;
@@ -519,7 +545,10 @@ function registerRoute(ctx) {
519
545
  return new Response(null, { status: 204, headers: PUBLIC_CORS });
520
546
  if (req.method !== "POST")
521
547
  return oauthError("invalid_request", "POST required", 405);
522
- const meta = await req.json().catch(() => null);
548
+ const text = await readBodyText(req, config);
549
+ if (text === undefined)
550
+ return tooLarge();
551
+ const meta = parseJson(text);
523
552
  if (!isRecord(meta)) {
524
553
  return oauthError("invalid_client_metadata", "Body must be a JSON object");
525
554
  }
@@ -673,7 +702,9 @@ function tokenRoute(ctx) {
673
702
  return new Response(null, { status: 204, headers: PUBLIC_CORS });
674
703
  if (req.method !== "POST")
675
704
  return oauthError("invalid_request", "POST required", 405);
676
- const form = await readForm(req);
705
+ const form = await readForm(req, config);
706
+ if (!form)
707
+ return tooLarge();
677
708
  const grantType = form.get("grant_type");
678
709
  if (grantType === "authorization_code") {
679
710
  const code = form.get("code");
@@ -745,6 +776,7 @@ function tokenRoute(ctx) {
745
776
 
746
777
  // src/server/oauth/provider.ts
747
778
  function mountOAuthProvider(config) {
779
+ assertPositiveSafeInteger("maxRequestBodyBytes", config.maxRequestBodyBytes);
748
780
  const base = config.basePath ?? "/oauth";
749
781
  const ttl = config.accessTokenTtlSec ?? 3600;
750
782
  const registerPath = `${base}/register`;
@@ -4,7 +4,7 @@ import {
4
4
  AgentSandboxRestrictionSchema2,
5
5
  AgentSandboxGradeSchema2,
6
6
  AGENT_CODING_TOOL_NAMES
7
- } from "./index-bm180f2d.js";
7
+ } from "./index-ey15wx6j.js";
8
8
  import {
9
9
  AgentRecordIdSchema2,
10
10
  AgentRecordVersionSchema2,