stitchkit 0.67.0 → 0.68.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 (226) hide show
  1. package/dist/agent-runtime/admission-lanes.d.ts +1 -1
  2. package/dist/agent-runtime/compaction.d.ts +2 -2
  3. package/dist/agent-runtime/events.d.ts +1 -1
  4. package/dist/agent-runtime/history.d.ts +1 -1
  5. package/dist/agent-runtime/history.d.ts.map +1 -1
  6. package/dist/agent-runtime/injection.d.ts +1 -1
  7. package/dist/agent-runtime/managed-tools.d.ts +3 -3
  8. package/dist/agent-runtime/models.d.ts +1 -1
  9. package/dist/agent-runtime/observability.d.ts +1 -1
  10. package/dist/agent-runtime/prompt.d.ts +1 -1
  11. package/dist/agent-runtime/prompt.d.ts.map +1 -1
  12. package/dist/agent-runtime/protocol.d.ts +19 -1
  13. package/dist/agent-runtime/protocol.d.ts.map +1 -1
  14. package/dist/agent-runtime/run-execution.d.ts +5 -5
  15. package/dist/agent-runtime/run-execution.d.ts.map +1 -1
  16. package/dist/agent-runtime/runtime-internals.d.ts +1 -1
  17. package/dist/agent-runtime/runtime-result.d.ts +1 -1
  18. package/dist/agent-runtime/runtime.d.ts +14 -12
  19. package/dist/agent-runtime/runtime.d.ts.map +1 -1
  20. package/dist/agent-runtime/store-driver.d.ts +2 -2
  21. package/dist/agent-runtime/store.d.ts +2 -2
  22. package/dist/agent-runtime/terminal-commit.d.ts +2 -2
  23. package/dist/agent-runtime/terminal-status.d.ts +1 -1
  24. package/dist/agent-runtime-openrouter.d.ts +1 -1
  25. package/dist/agent-runtime.d.ts +15 -15
  26. package/dist/agent-runtime.d.ts.map +1 -1
  27. package/dist/agent-runtime.js +90 -30
  28. package/dist/application/admission.d.ts +131 -0
  29. package/dist/application/admission.d.ts.map +1 -0
  30. package/dist/application/channel.d.ts +106 -0
  31. package/dist/application/channel.d.ts.map +1 -0
  32. package/dist/application/events.d.ts +2 -2
  33. package/dist/application/grammy.d.ts +2 -2
  34. package/dist/application/graph.d.ts +1 -1
  35. package/dist/application/health.d.ts +1 -1
  36. package/dist/application/kernel.d.ts +3 -3
  37. package/dist/application/latest-sink.d.ts.map +1 -1
  38. package/dist/application/opentelemetry.d.ts +3 -3
  39. package/dist/application/resource.d.ts +1 -1
  40. package/dist/application/schedule.d.ts +1 -1
  41. package/dist/application/server-resource.d.ts +7 -9
  42. package/dist/application/server-resource.d.ts.map +1 -1
  43. package/dist/application-grammy.d.ts +1 -1
  44. package/dist/application-grammy.js +1 -1
  45. package/dist/application-opentelemetry.d.ts +1 -1
  46. package/dist/application-opentelemetry.js +1 -1
  47. package/dist/application.d.ts +11 -9
  48. package/dist/application.d.ts.map +1 -1
  49. package/dist/application.js +393 -24
  50. package/dist/browser/client-multipart.d.ts +1 -1
  51. package/dist/browser/client-url.d.ts +2 -2
  52. package/dist/browser/client.d.ts +4 -5
  53. package/dist/browser/client.d.ts.map +1 -1
  54. package/dist/browser/contract-stream.d.ts +5 -0
  55. package/dist/browser/contract-stream.d.ts.map +1 -0
  56. package/dist/browser/http.d.ts +9 -6
  57. package/dist/browser/http.d.ts.map +1 -1
  58. package/dist/browser/socket-io.d.ts +12 -31
  59. package/dist/browser/socket-io.d.ts.map +1 -1
  60. package/dist/browser/stream.d.ts +5 -2
  61. package/dist/browser/stream.d.ts.map +1 -1
  62. package/dist/browser/transport.d.ts +3 -0
  63. package/dist/browser/transport.d.ts.map +1 -0
  64. package/dist/cli.d.ts +6 -6
  65. package/dist/cli.js +7 -7
  66. package/dist/contract/define.d.ts +34 -2
  67. package/dist/contract/define.d.ts.map +1 -1
  68. package/dist/contract/errors-factory.d.ts +1 -1
  69. package/dist/contract/errors.d.ts +4 -0
  70. package/dist/contract/errors.d.ts.map +1 -1
  71. package/dist/contract/factory.d.ts +1 -1
  72. package/dist/contract/index.d.ts +7 -6
  73. package/dist/contract/index.d.ts.map +1 -1
  74. package/dist/contract/index.js +5 -1
  75. package/dist/contract/stream.d.ts +19 -0
  76. package/dist/contract/stream.d.ts.map +1 -0
  77. package/dist/files/boundary.d.ts +1 -1
  78. package/dist/files.d.ts +2 -2
  79. package/dist/{index-xxye8j3k.js → index-0w9abg87.js} +4 -0
  80. package/dist/{index-svqhcrrj.js → index-2ve29dzn.js} +159 -13
  81. package/dist/index-69m2278y.js +115 -0
  82. package/dist/{index-physbf4z.js → index-6wzr93cg.js} +1 -1
  83. package/dist/index-7etq650s.js +75 -0
  84. package/dist/index-9ky9hhg3.js +484 -0
  85. package/dist/{index-413xk7ga.js → index-cq9q73nf.js} +50 -1
  86. package/dist/{index-1pgeyyee.js → index-cszjsxy5.js} +25 -88
  87. package/dist/{index-wrhf06ak.js → index-cz32amcb.js} +8 -8
  88. package/dist/{index-6taryy00.js → index-dafax5md.js} +1 -1
  89. package/dist/index-g2j2m6vv.js +63 -0
  90. package/dist/{index-8mxadm34.js → index-nck3yx3y.js} +1102 -22
  91. package/dist/{index-y91zd0ch.js → index-pr0qsmjy.js} +3 -2
  92. package/dist/index-v5bayx1z.js +138 -0
  93. package/dist/{index-mfw1pec7.js → index-wqyrvhzz.js} +3 -3
  94. package/dist/{index-x8v8b7rc.js → index-zpyj7hsv.js} +330 -58
  95. package/dist/index.d.ts +10 -10
  96. package/dist/index.js +274 -109
  97. package/dist/internal/bounded-lines.d.ts +4 -0
  98. package/dist/internal/bounded-lines.d.ts.map +1 -0
  99. package/dist/internal/errors.d.ts +1 -1
  100. package/dist/internal/observability-sink.d.ts +1 -1
  101. package/dist/node.d.ts +11 -10
  102. package/dist/node.d.ts.map +1 -1
  103. package/dist/node.js +11 -8
  104. package/dist/observability/audit.d.ts +5 -5
  105. package/dist/observability/context.d.ts +2 -2
  106. package/dist/observability/event.d.ts +2 -2
  107. package/dist/observability/index.d.ts +6 -6
  108. package/dist/observability/index.js +6 -7
  109. package/dist/react/entity-cache.d.ts +26 -1
  110. package/dist/react/entity-cache.d.ts.map +1 -1
  111. package/dist/react.d.ts +3 -3
  112. package/dist/react.d.ts.map +1 -1
  113. package/dist/react.js +136 -38
  114. package/dist/realtime/contract.d.ts +1 -1
  115. package/dist/realtime/index.d.ts +4 -4
  116. package/dist/realtime/rejection.d.ts +1 -1
  117. package/dist/realtime/request.d.ts +1 -1
  118. package/dist/realtime/socket.d.ts +2 -2
  119. package/dist/remote.d.ts +1 -1
  120. package/dist/remote.js +5 -6
  121. package/dist/server/bun.d.ts +3 -3
  122. package/dist/server/context-contribution.d.ts +1 -1
  123. package/dist/server/context.d.ts +4 -4
  124. package/dist/server/contract-stream.d.ts +5 -0
  125. package/dist/server/contract-stream.d.ts.map +1 -0
  126. package/dist/server/create.d.ts +1 -1
  127. package/dist/server/create.d.ts.map +1 -1
  128. package/dist/server/error-hook.d.ts +3 -3
  129. package/dist/server/file.d.ts +1 -1
  130. package/dist/server/implement.d.ts +2 -2
  131. package/dist/server/implement.d.ts.map +1 -1
  132. package/dist/server/index.d.ts +31 -30
  133. package/dist/server/index.d.ts.map +1 -1
  134. package/dist/server/index.js +44 -286
  135. package/dist/server/lifecycle.d.ts +1 -1
  136. package/dist/server/logging.d.ts +1 -1
  137. package/dist/server/middleware/auth.d.ts +2 -2
  138. package/dist/server/multipart.d.ts +2 -2
  139. package/dist/server/node.d.ts +2 -2
  140. package/dist/server/openapi.d.ts +1 -1
  141. package/dist/server/openapi.d.ts.map +1 -1
  142. package/dist/server/process-signal-common.d.ts +1 -1
  143. package/dist/server/process-signals.d.ts +1 -1
  144. package/dist/server/realtime.d.ts +4 -4
  145. package/dist/server/response-metadata.d.ts +1 -1
  146. package/dist/server/router.d.ts +1 -1
  147. package/dist/server/shutdown.d.ts +1 -1
  148. package/dist/server/socket-io-node.d.ts +3 -3
  149. package/dist/server/socket-io.d.ts +6 -6
  150. package/dist/server/stream.d.ts +3 -1
  151. package/dist/server/stream.d.ts.map +1 -1
  152. package/dist/server/streaming-route.d.ts +4 -2
  153. package/dist/server/streaming-route.d.ts.map +1 -1
  154. package/dist/server/types.d.ts +18 -8
  155. package/dist/server/types.d.ts.map +1 -1
  156. package/dist/server/unix-client-body.d.ts +4 -0
  157. package/dist/server/unix-client-body.d.ts.map +1 -0
  158. package/dist/server/unix-client-bun.d.ts +13 -0
  159. package/dist/server/unix-client-bun.d.ts.map +1 -0
  160. package/dist/server/unix-client-error.d.ts +9 -0
  161. package/dist/server/unix-client-error.d.ts.map +1 -0
  162. package/dist/server/unix-client.d.ts +25 -0
  163. package/dist/server/unix-client.d.ts.map +1 -0
  164. package/dist/testing/agent-store-conformance.d.ts +1 -1
  165. package/dist/testing/managed-resource-conformance-contract.d.ts +1 -1
  166. package/dist/testing/managed-resource-conformance-driver.d.ts +2 -2
  167. package/dist/testing/managed-resource-conformance-scenarios.d.ts +2 -2
  168. package/dist/testing/managed-resource-conformance.d.ts +2 -2
  169. package/dist/testing/surface-conformance.d.ts +3 -3
  170. package/dist/testing/surface-manifest.d.ts +5 -5
  171. package/dist/testing.d.ts +8 -8
  172. package/dist/testing.js +6 -5
  173. package/dist/tool-invoker.d.ts +9 -0
  174. package/dist/tool-invoker.d.ts.map +1 -0
  175. package/dist/tool-invoker.js +16 -0
  176. package/dist/tools/agent.d.ts +4 -4
  177. package/dist/tools/async-operation.d.ts +3 -3
  178. package/dist/tools/cli-command.d.ts +3 -3
  179. package/dist/tools/cli-format.d.ts +1 -1
  180. package/dist/tools/cli-policy.d.ts +1 -1
  181. package/dist/tools/cli-wait.d.ts +1 -1
  182. package/dist/tools/cli.d.ts +7 -7
  183. package/dist/tools/define-download-tool.d.ts +4 -4
  184. package/dist/tools/define-upload-tool.d.ts +3 -3
  185. package/dist/tools/define-view-file-tool.d.ts +3 -3
  186. package/dist/tools/define-wait-tool.d.ts +2 -2
  187. package/dist/tools/download-core.d.ts +2 -2
  188. package/dist/tools/execute.d.ts +2 -2
  189. package/dist/tools/flatten-join.d.ts +1 -1
  190. package/dist/tools/internal/surface-projector.d.ts +3 -3
  191. package/dist/tools/invoker.d.ts +4 -4
  192. package/dist/tools/lifecycle.d.ts +1 -1
  193. package/dist/tools/list-names.d.ts +2 -2
  194. package/dist/tools/managed-file-error.d.ts +1 -1
  195. package/dist/tools/manifest.d.ts +3 -3
  196. package/dist/tools/mcp-handler.d.ts +4 -4
  197. package/dist/tools/mcp-prepare.d.ts +8 -8
  198. package/dist/tools/mcp-round-policy.d.ts +1 -1
  199. package/dist/tools/mcp-round.d.ts +3 -3
  200. package/dist/tools/mcp-stdio-signals.d.ts +2 -2
  201. package/dist/tools/mcp-stdio.d.ts +3 -3
  202. package/dist/tools/mcp.d.ts +7 -7
  203. package/dist/tools/mount-download.d.ts +1 -1
  204. package/dist/tools/mount-upload.d.ts +1 -1
  205. package/dist/tools/mount.d.ts +5 -5
  206. package/dist/tools/native-definition.d.ts +2 -2
  207. package/dist/tools/native-mcp.d.ts +3 -3
  208. package/dist/tools/oauth-metadata.d.ts +1 -1
  209. package/dist/tools/oauth-provider.d.ts +1 -1
  210. package/dist/tools/presentation.d.ts +1 -1
  211. package/dist/tools/remote.d.ts +3 -3
  212. package/dist/tools/runtime-tool.d.ts +2 -2
  213. package/dist/tools/surface.d.ts +5 -5
  214. package/dist/tools/tool-logger.d.ts +1 -1
  215. package/dist/tools/toolkit.d.ts +7 -7
  216. package/dist/tools/transports.d.ts +2 -2
  217. package/dist/tools/upload-core.d.ts +1 -1
  218. package/dist/tools/view-file.d.ts +1 -1
  219. package/dist/tools.d.ts +42 -42
  220. package/dist/tools.js +27 -72
  221. package/llms-full.txt +506 -35
  222. package/package.json +8 -4
  223. package/dist/index-48ffdxgk.js +0 -6
  224. package/dist/index-pzyt11ch.js +0 -127
  225. package/dist/index-tvwcrx2d.js +0 -224
  226. package/dist/index-wd8g8z6e.js +0 -206
@@ -1,3 +1,6 @@
1
+ import {
2
+ createBoundedSinkManager
3
+ } from "./index-a59da114.js";
1
4
  import {
2
5
  ActivityIdSchema,
3
6
  ActivityLiveStateSchema,
@@ -6,20 +9,27 @@ import {
6
9
  ActivityStageSnapshotSchema,
7
10
  ActivityTokenBrand,
8
11
  ApplicationSnapshotSinkStatusSchema,
12
+ BoundedChannelPolicySchema,
13
+ BoundedChannelReaderError,
14
+ BoundedChannelSnapshotSchema,
15
+ BoundedChannelStateSchema,
16
+ CreditWindowSnapshotSchema,
9
17
  ManagedScheduleDescriptorSchema,
10
18
  ManagedScheduleErrorPolicySchema,
11
19
  ManagedScheduleOverlapSchema,
12
20
  ManagedScheduleStatusSchema,
13
21
  createActivityProjection,
14
22
  createApplicationSnapshotSink,
23
+ createBoundedChannel,
24
+ createCreditWindow,
15
25
  createManagedSchedule
16
- } from "./index-x8v8b7rc.js";
26
+ } from "./index-zpyj7hsv.js";
17
27
  import {
18
28
  ApplicationAdmissionError,
19
29
  ApplicationShutdownBudgetSchema,
20
30
  ApplicationShutdownOptionsSchema,
21
31
  createApplication
22
- } from "./index-physbf4z.js";
32
+ } from "./index-6wzr93cg.js";
23
33
  import {
24
34
  defineManagedResource,
25
35
  managedResourceDependencyId
@@ -38,22 +48,366 @@ import {
38
48
  projectApplicationStatus
39
49
  } from "./index-8eywc9zv.js";
40
50
  import"./index-dk6e56g0.js";
41
- import {
42
- createBoundedSinkManager
43
- } from "./index-a59da114.js";
44
- import"./index-xxye8j3k.js";
45
- // src/application/events.ts
51
+ import"./index-0w9abg87.js";
52
+ // src/application/admission.ts
46
53
  import { z } from "zod";
47
- var ApplicationLifecycleEventSchema = z.object({
48
- type: z.literal("application-state"),
54
+ var PositiveSafeIntegerSchema = z.number().int().positive().safe();
55
+ var BoundedRateBudgetSchema = z.object({
56
+ limit: PositiveSafeIntegerSchema,
57
+ intervalMs: PositiveSafeIntegerSchema
58
+ }).strict().readonly();
59
+ var BoundedAdmissionPolicySchema = z.object({
60
+ global: z.object({
61
+ maxConcurrent: PositiveSafeIntegerSchema,
62
+ rate: BoundedRateBudgetSchema.optional()
63
+ }).strict(),
64
+ perKey: z.object({
65
+ maxConcurrent: PositiveSafeIntegerSchema,
66
+ maxKeys: PositiveSafeIntegerSchema,
67
+ rate: BoundedRateBudgetSchema.optional()
68
+ }).strict().optional()
69
+ }).strict().readonly();
70
+ var BoundedAdmissionStateSchema = z.enum(["accepting", "draining", "closed"]);
71
+ var BoundedAdmissionRefusalReasonSchema = z.enum([
72
+ "not-accepting",
73
+ "global-concurrency",
74
+ "key-required",
75
+ "key-capacity",
76
+ "key-concurrency",
77
+ "global-rate",
78
+ "key-rate",
79
+ "upstream"
80
+ ]);
81
+ var RefusalCountersSchema = z.object({
82
+ "not-accepting": z.number().int().nonnegative(),
83
+ "global-concurrency": z.number().int().nonnegative(),
84
+ "key-required": z.number().int().nonnegative(),
85
+ "key-capacity": z.number().int().nonnegative(),
86
+ "key-concurrency": z.number().int().nonnegative(),
87
+ "global-rate": z.number().int().nonnegative(),
88
+ "key-rate": z.number().int().nonnegative(),
89
+ upstream: z.number().int().nonnegative()
90
+ }).strict().readonly();
91
+ var BoundedAdmissionSnapshotSchema = z.object({
92
+ state: BoundedAdmissionStateSchema,
93
+ active: z.number().int().nonnegative(),
94
+ accepted: z.number().int().nonnegative(),
95
+ released: z.number().int().nonnegative(),
96
+ refused: z.number().int().nonnegative(),
97
+ keys: z.number().int().nonnegative(),
98
+ globalRateSamples: z.number().int().nonnegative(),
99
+ keyRateSamples: z.number().int().nonnegative(),
100
+ refusals: RefusalCountersSchema
101
+ }).strict().readonly();
102
+
103
+ class BoundedAdmissionRefusalError extends Error {
104
+ reason;
105
+ retryAfterMs;
106
+ constructor(reason, retryAfterMs) {
107
+ super(`Bounded admission refused: ${reason}`);
108
+ this.reason = reason;
109
+ this.retryAfterMs = retryAfterMs;
110
+ this.name = "BoundedAdmissionRefusalError";
111
+ }
112
+ }
113
+
114
+ class BoundedOperationWaitError extends Error {
115
+ reason;
116
+ constructor(reason) {
117
+ super(reason === "cancelled" ? "Operation wait was cancelled" : "Operation wait timed out");
118
+ this.reason = reason;
119
+ this.name = "BoundedOperationWaitError";
120
+ }
121
+ }
122
+ function createBoundedAdmission(config) {
123
+ const policy = BoundedAdmissionPolicySchema.parse(config.policy);
124
+ const clock = config.clock ?? { now: () => performance.now() };
125
+ const keys = new Map;
126
+ const globalRate = [];
127
+ const drainWaiters = new Set;
128
+ const refusals = {
129
+ "not-accepting": 0,
130
+ "global-concurrency": 0,
131
+ "key-required": 0,
132
+ "key-capacity": 0,
133
+ "key-concurrency": 0,
134
+ "global-rate": 0,
135
+ "key-rate": 0,
136
+ upstream: 0
137
+ };
138
+ let state = "accepting";
139
+ let active = 0;
140
+ let accepted = 0;
141
+ let released = 0;
142
+ let refused = 0;
143
+ let lastNow = Number.NEGATIVE_INFINITY;
144
+ const now = () => {
145
+ const value = clock.now();
146
+ if (!Number.isFinite(value))
147
+ throw new TypeError("Bounded admission clock must be finite");
148
+ if (value < lastNow)
149
+ throw new Error("Bounded admission clock moved backwards");
150
+ lastNow = value;
151
+ return value;
152
+ };
153
+ const pruneRate = (samples, intervalMs, at) => {
154
+ let expired = 0;
155
+ while (expired < samples.length && at - (samples[expired]?.at ?? at) >= intervalMs) {
156
+ expired += 1;
157
+ }
158
+ if (expired > 0)
159
+ samples.splice(0, expired);
160
+ };
161
+ const prune = (at) => {
162
+ if (policy.global.rate)
163
+ pruneRate(globalRate, policy.global.rate.intervalMs, at);
164
+ for (const [key, record] of keys) {
165
+ if (policy.perKey?.rate) {
166
+ pruneRate(record.rate, policy.perKey.rate.intervalMs, at);
167
+ }
168
+ if (record.active === 0 && record.rate.length === 0)
169
+ keys.delete(key);
170
+ }
171
+ };
172
+ const retryAfter = (samples, budget, at) => Math.max(1, Math.ceil(budget.intervalMs - (at - (samples[0]?.at ?? at))));
173
+ const refuse = (reason, retryAfterMs) => {
174
+ refused += 1;
175
+ refusals[reason] += 1;
176
+ return {
177
+ outcome: "refused",
178
+ reason,
179
+ ...retryAfterMs !== undefined && { retryAfterMs }
180
+ };
181
+ };
182
+ const closeIfDrained = () => {
183
+ if (state !== "draining" || active !== 0)
184
+ return;
185
+ state = "closed";
186
+ for (const resolve of drainWaiters)
187
+ resolve();
188
+ drainWaiters.clear();
189
+ };
190
+ const rollbackReservation = (key, keyRecord, globalSample, keySample) => {
191
+ active -= 1;
192
+ if (keyRecord)
193
+ keyRecord.active -= 1;
194
+ if (globalSample) {
195
+ const index = globalRate.indexOf(globalSample);
196
+ if (index >= 0)
197
+ globalRate.splice(index, 1);
198
+ }
199
+ if (keySample && keyRecord) {
200
+ const index = keyRecord.rate.indexOf(keySample);
201
+ if (index >= 0)
202
+ keyRecord.rate.splice(index, 1);
203
+ }
204
+ if (key !== undefined && keyRecord?.active === 0 && keyRecord.rate.length === 0) {
205
+ keys.delete(key);
206
+ }
207
+ };
208
+ const acquire = (key) => {
209
+ const at = now();
210
+ prune(at);
211
+ if (state !== "accepting")
212
+ return refuse("not-accepting");
213
+ if (active >= policy.global.maxConcurrent)
214
+ return refuse("global-concurrency");
215
+ if (policy.perKey && key === undefined)
216
+ return refuse("key-required");
217
+ let keyRecord = key === undefined ? undefined : keys.get(key);
218
+ if (policy.perKey && key !== undefined) {
219
+ if (!keyRecord && keys.size >= policy.perKey.maxKeys)
220
+ return refuse("key-capacity");
221
+ if (keyRecord && keyRecord.active >= policy.perKey.maxConcurrent) {
222
+ return refuse("key-concurrency");
223
+ }
224
+ }
225
+ if (policy.global.rate && globalRate.length >= policy.global.rate.limit) {
226
+ return refuse("global-rate", retryAfter(globalRate, policy.global.rate, at));
227
+ }
228
+ if (policy.perKey?.rate && keyRecord && keyRecord.rate.length >= policy.perKey.rate.limit) {
229
+ return refuse("key-rate", retryAfter(keyRecord.rate, policy.perKey.rate, at));
230
+ }
231
+ if (key !== undefined && !keyRecord) {
232
+ keyRecord = { active: 0, rate: [] };
233
+ keys.set(key, keyRecord);
234
+ }
235
+ const globalSample = policy.global.rate ? { at } : undefined;
236
+ const keySample = policy.perKey?.rate && keyRecord ? { at } : undefined;
237
+ active += 1;
238
+ if (keyRecord)
239
+ keyRecord.active += 1;
240
+ if (globalSample)
241
+ globalRate.push(globalSample);
242
+ if (keySample && keyRecord)
243
+ keyRecord.rate.push(keySample);
244
+ const upstreamLease = config.upstream?.acquire();
245
+ if (config.upstream && !upstreamLease) {
246
+ rollbackReservation(key, keyRecord, globalSample, keySample);
247
+ return refuse("upstream");
248
+ }
249
+ accepted += 1;
250
+ let leaseReleased = false;
251
+ const lease = {
252
+ ...key !== undefined && { key },
253
+ get released() {
254
+ return leaseReleased;
255
+ },
256
+ release() {
257
+ if (leaseReleased)
258
+ return;
259
+ leaseReleased = true;
260
+ active -= 1;
261
+ if (keyRecord)
262
+ keyRecord.active -= 1;
263
+ released += 1;
264
+ if (key !== undefined && keyRecord?.active === 0 && keyRecord.rate.length === 0) {
265
+ keys.delete(key);
266
+ }
267
+ upstreamLease?.release();
268
+ closeIfDrained();
269
+ }
270
+ };
271
+ return { outcome: "leased", lease };
272
+ };
273
+ const getSnapshot = () => {
274
+ const at = now();
275
+ prune(at);
276
+ let keyRateSamples = 0;
277
+ for (const record of keys.values())
278
+ keyRateSamples += record.rate.length;
279
+ return BoundedAdmissionSnapshotSchema.parse({
280
+ state,
281
+ active,
282
+ accepted,
283
+ released,
284
+ refused,
285
+ keys: keys.size,
286
+ globalRateSamples: globalRate.length,
287
+ keyRateSamples,
288
+ refusals
289
+ });
290
+ };
291
+ const stopAdmission = () => {
292
+ if (state === "accepting")
293
+ state = "draining";
294
+ closeIfDrained();
295
+ return getSnapshot();
296
+ };
297
+ const drain = async (options = {}) => {
298
+ stopAdmission();
299
+ if (active === 0)
300
+ return { drained: true, remaining: 0 };
301
+ const controller = new AbortController;
302
+ let timer;
303
+ const abort = () => controller.abort();
304
+ if (options.signal?.aborted)
305
+ abort();
306
+ else
307
+ options.signal?.addEventListener("abort", abort, { once: true });
308
+ if (options.timeoutMs !== undefined) {
309
+ if (!Number.isSafeInteger(options.timeoutMs) || options.timeoutMs < 0) {
310
+ throw new TypeError("drain timeoutMs must be a non-negative safe integer");
311
+ }
312
+ timer = setTimeout(abort, options.timeoutMs);
313
+ }
314
+ let resolveDrained;
315
+ try {
316
+ await Promise.race([
317
+ new Promise((resolve) => {
318
+ resolveDrained = resolve;
319
+ drainWaiters.add(resolve);
320
+ }),
321
+ new Promise((resolve) => {
322
+ if (controller.signal.aborted)
323
+ resolve();
324
+ else
325
+ controller.signal.addEventListener("abort", () => resolve(), { once: true });
326
+ })
327
+ ]);
328
+ } finally {
329
+ if (timer !== undefined)
330
+ clearTimeout(timer);
331
+ options.signal?.removeEventListener("abort", abort);
332
+ if (resolveDrained)
333
+ drainWaiters.delete(resolveDrained);
334
+ }
335
+ return { drained: active === 0, remaining: active };
336
+ };
337
+ const run = async (key, work, options = {}) => {
338
+ if (options.timeoutMs !== undefined) {
339
+ if (!Number.isSafeInteger(options.timeoutMs) || options.timeoutMs < 0) {
340
+ throw new TypeError("run timeoutMs must be a non-negative safe integer");
341
+ }
342
+ }
343
+ if (options.signal?.aborted)
344
+ throw new BoundedOperationWaitError("cancelled");
345
+ const admission = acquire(key);
346
+ if (admission.outcome === "refused") {
347
+ throw new BoundedAdmissionRefusalError(admission.reason, admission.retryAfterMs);
348
+ }
349
+ const workAbort = new AbortController;
350
+ const abortWork = () => workAbort.abort(options.signal?.reason);
351
+ options.signal?.addEventListener("abort", abortWork, { once: true });
352
+ let timer;
353
+ let timedOut = false;
354
+ if (options.timeoutMs !== undefined) {
355
+ timer = setTimeout(() => {
356
+ timedOut = true;
357
+ workAbort.abort(new DOMException("Operation wait timed out", "TimeoutError"));
358
+ }, options.timeoutMs);
359
+ }
360
+ const outcome = Promise.resolve().then(() => work({ signal: workAbort.signal })).then((value) => ({ kind: "value", value }), (error) => ({ kind: "error", error })).finally(() => admission.lease.release());
361
+ const callerDone = new Promise((resolve) => {
362
+ const settle = () => resolve({ kind: "caller" });
363
+ if (workAbort.signal.aborted)
364
+ settle();
365
+ else
366
+ workAbort.signal.addEventListener("abort", settle, { once: true });
367
+ });
368
+ try {
369
+ const settled = await Promise.race([outcome, callerDone]);
370
+ if (settled.kind === "caller") {
371
+ throw new BoundedOperationWaitError(timedOut ? "timed-out" : "cancelled");
372
+ }
373
+ if (settled.kind === "error")
374
+ throw settled.error;
375
+ return settled.value;
376
+ } finally {
377
+ if (timer !== undefined)
378
+ clearTimeout(timer);
379
+ options.signal?.removeEventListener("abort", abortWork);
380
+ }
381
+ };
382
+ return {
383
+ acquire,
384
+ run,
385
+ stopAdmission,
386
+ drain,
387
+ force() {
388
+ if (state === "accepting")
389
+ state = "draining";
390
+ state = "closed";
391
+ for (const resolve of drainWaiters)
392
+ resolve();
393
+ drainWaiters.clear();
394
+ return { remaining: active };
395
+ },
396
+ getSnapshot
397
+ };
398
+ }
399
+ // src/application/events.ts
400
+ import { z as z2 } from "zod";
401
+ var ApplicationLifecycleEventSchema = z2.object({
402
+ type: z2.literal("application-state"),
49
403
  applicationId: ApplicationIdSchema,
50
- epoch: z.string().uuid(),
51
- revision: z.number().int().nonnegative(),
404
+ epoch: z2.string().uuid(),
405
+ revision: z2.number().int().nonnegative(),
52
406
  lifecycle: ApplicationLifecycleSchema,
53
407
  health: ApplicationHealthSchema,
54
- ready: z.boolean(),
55
- capturedAt: z.string().datetime({ offset: true }),
56
- resources: z.array(ManagedResourceSnapshotSchema).readonly()
408
+ ready: z2.boolean(),
409
+ capturedAt: z2.string().datetime({ offset: true }),
410
+ resources: z2.array(ManagedResourceSnapshotSchema).readonly()
57
411
  }).strict().readonly();
58
412
  function applicationLifecycleEvent(snapshot) {
59
413
  return ApplicationLifecycleEventSchema.parse({
@@ -84,13 +438,13 @@ function createApplicationEventSink(config) {
84
438
  };
85
439
  }
86
440
  // src/application/health.ts
87
- import { z as z2 } from "zod";
88
- var ApplicationHealthHandlerOptionsSchema = z2.object({
89
- kind: z2.enum(["liveness", "readiness"]),
90
- retryAfterSeconds: z2.number().int().nonnegative().default(5)
441
+ import { z as z3 } from "zod";
442
+ var ApplicationHealthHandlerOptionsSchema = z3.object({
443
+ kind: z3.enum(["liveness", "readiness"]),
444
+ retryAfterSeconds: z3.number().int().nonnegative().default(5)
91
445
  });
92
- var ApplicationOperationalHandlersOptionsSchema = z2.object({
93
- retryAfterSeconds: z2.number().int().nonnegative().default(5)
446
+ var ApplicationOperationalHandlersOptionsSchema = z3.object({
447
+ retryAfterSeconds: z3.number().int().nonnegative().default(5)
94
448
  });
95
449
  function createApplicationHealthHandler(application, options) {
96
450
  const parsed = ApplicationHealthHandlerOptionsSchema.parse(options);
@@ -122,7 +476,7 @@ function managedServerResource(config) {
122
476
  let shutdownPromise;
123
477
  let started;
124
478
  let startAttempted = false;
125
- const resolveServer = () => typeof config.server === "function" ? config.server() : config.server;
479
+ const resolveServer = (context) => typeof config.server === "function" ? config.server(context) : config.server;
126
480
  const isHandle = (value) => ("shutdown" in value);
127
481
  const whole = (milliseconds, round) => Number.isFinite(milliseconds) ? Math.max(0, round(milliseconds)) : milliseconds;
128
482
  const grace = (milliseconds) => whole(milliseconds, Math.floor);
@@ -133,7 +487,7 @@ function managedServerResource(config) {
133
487
  const now = context.now();
134
488
  const gracePeriodMs = phase === "force" ? 0 : context.deadlineAt === undefined ? undefined : grace(context.deadlineAt - now);
135
489
  const forceTimeoutMs = context.forceDeadlineAt === undefined ? undefined : phase === "force" ? force(context.forceDeadlineAt - now) : force(context.forceDeadlineAt - (context.deadlineAt ?? now));
136
- const server = started ?? (startAttempted ? undefined : resolveServer());
490
+ const server = started ?? (startAttempted ? undefined : resolveServer(context));
137
491
  if (server === undefined) {
138
492
  shutdownPromise = Promise.resolve(undefined);
139
493
  return shutdownPromise;
@@ -154,9 +508,9 @@ function managedServerResource(config) {
154
508
  id: config.id,
155
509
  ...config.dependsOn && { dependsOn: config.dependsOn },
156
510
  ...config.required !== undefined && { required: config.required },
157
- async start() {
511
+ async start(context) {
158
512
  startAttempted = true;
159
- started = await resolveServer();
513
+ started = await resolveServer(context);
160
514
  return { value: started };
161
515
  },
162
516
  stopAdmission(context) {
@@ -195,6 +549,18 @@ export {
195
549
  ApplicationSnapshotSchema,
196
550
  ApplicationSnapshotSinkStatusSchema,
197
551
  ApplicationStatusProjectionSchema,
552
+ BoundedAdmissionPolicySchema,
553
+ BoundedAdmissionRefusalError,
554
+ BoundedAdmissionRefusalReasonSchema,
555
+ BoundedAdmissionSnapshotSchema,
556
+ BoundedAdmissionStateSchema,
557
+ BoundedChannelPolicySchema,
558
+ BoundedChannelReaderError,
559
+ BoundedChannelSnapshotSchema,
560
+ BoundedChannelStateSchema,
561
+ BoundedOperationWaitError,
562
+ BoundedRateBudgetSchema,
563
+ CreditWindowSnapshotSchema,
198
564
  ManagedResourceSnapshotSchema,
199
565
  ManagedResourceStateSchema,
200
566
  ManagedScheduleDescriptorSchema,
@@ -208,6 +574,9 @@ export {
208
574
  createApplicationHealthHandler,
209
575
  createApplicationOperationalHandlers,
210
576
  createApplicationSnapshotSink,
577
+ createBoundedAdmission,
578
+ createBoundedChannel,
579
+ createCreditWindow,
211
580
  createManagedSchedule,
212
581
  defineManagedResource,
213
582
  managedResourceDependencyId,
@@ -6,7 +6,7 @@
6
6
  * the only genuinely subtle part, and keeping it together with its two guards
7
7
  * makes that subtlety readable in one screen.
8
8
  */
9
- import type { MultipartDescriptor, MultipartFile } from '../contract';
9
+ import type { MultipartDescriptor, MultipartFile } from '../contract/index.js';
10
10
  /** A multipart file field — a `Blob` (web / Bun) or a platform descriptor (RN). */
11
11
  export declare function isMultipartFile(value: unknown): value is MultipartFile;
12
12
  /**
@@ -1,5 +1,5 @@
1
- import type { EndpointDef } from '../contract';
2
- import type { ContractClientConfig } from './client';
1
+ import type { EndpointDef } from '../contract/index.js';
2
+ import type { ContractClientConfig } from './client.js';
3
3
  export interface ClientRequestPlan {
4
4
  relativeUrl: string;
5
5
  remainingArgs: Record<string, unknown>;
@@ -1,7 +1,7 @@
1
- import type { ContractDef, EndpointDef, ScopedHttpClient, ScopedUrlBuilder } from '../contract';
2
- import { type HttpClient as HttpAdapter, type UnauthorizedMatcher } from './http';
3
- /** Config for the built-in fetch client — used when no `HttpClient` is passed. */
4
- export type ClientFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
1
+ import type { ContractDef, EndpointDef, ScopedHttpClient, ScopedUrlBuilder } from '../contract/index.js';
2
+ import { type HttpClient as HttpAdapter, type UnauthorizedMatcher } from './http.js';
3
+ import type { ClientFetch } from './transport.js';
4
+ export type { ClientFetch } from './transport.js';
5
5
  export interface ClientConfig {
6
6
  baseUrl: string;
7
7
  /** Override Web Fetch delivery while preserving the complete client pipeline. */
@@ -85,5 +85,4 @@ export declare function createUrlBuilders<T extends Record<string, ContractDef<R
85
85
  };
86
86
  /** Build one URL registry routed by contract scope; arrays compose a namespace. */
87
87
  export declare function createScopedUrlBuilders<const T extends Record<string, ClientRegistryValue>, const Configs extends ScopeClientConfigs<RegistryScope<T[keyof T]>>>(contracts: T, source: UrlBuilderConfig, scopeConfigs: Configs): ScopedUrlBuilderRegistry<T, Configs>;
88
- export {};
89
88
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ZodType } from 'zod';
2
+ import { type EndpointStreamDescriptor } from '../contract/index.js';
3
+ /** Convert protocol frames into an immediately-owned schema-derived iterator. */
4
+ export declare function parseContractStream<T>(response: Response, descriptor: EndpointStreamDescriptor<ZodType<T>>, abort: () => void): AsyncIterableIterator<T>;
5
+ //# sourceMappingURL=contract-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-stream.d.ts","sourceRoot":"","sources":["../../src/browser/contract-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;AAkHrB,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,KAAK,EAAE,MAAM,IAAI,GAChB,qBAAqB,CAAC,CAAC,CAAC,CAE1B"}
@@ -1,4 +1,5 @@
1
- import type { ErrorEnvelope } from '../contract';
1
+ import type { ErrorEnvelope } from '../contract/index.js';
2
+ import type { ClientFetch } from './transport.js';
2
3
  export type ApiEvent = {
3
4
  type: 'unauthorized';
4
5
  } | {
@@ -15,7 +16,7 @@ export declare class ApiError extends Error {
15
16
  readonly details?: unknown;
16
17
  readonly hint?: string | undefined;
17
18
  readonly traceId?: string | undefined;
18
- constructor(code: string, status?: number, details?: unknown, message?: string, hint?: string | undefined, traceId?: string | undefined);
19
+ constructor(code: string, status?: number, details?: unknown, message?: string, hint?: string | undefined, traceId?: string | undefined, options?: ErrorOptions);
19
20
  static is(error: unknown): error is ApiError;
20
21
  }
21
22
  /** @internal Narrow adapter for a Bun fetch error Ky does not classify. */
@@ -61,11 +62,13 @@ export interface HttpClientConfig {
61
62
  * Default `false`.
62
63
  */
63
64
  trace?: boolean;
65
+ /** Explicit Fetch-compatible transport, for example `createUnixClientTransport().fetch`. */
66
+ fetch?: ClientFetch;
64
67
  /**
65
- * Dial a unix domain socket instead of TCP (Bun runtime only other
66
- * runtimes ignore the option and dial `baseUrl` over TCP). `baseUrl` stays
67
- * required as the path/prefix source; its host is ignored by the socket
68
- * transport, so `baseUrl: 'http://localhost'` is the idiomatic pairing.
68
+ * Dial a unix domain socket instead of TCP (Bun runtime only). Other runtimes
69
+ * fail before dispatch; use `createUnixClientTransport().fetch` for the
70
+ * portable Bun/Node path. `baseUrl` stays required as the path/prefix source;
71
+ * its host is ignored by Bun's socket transport.
69
72
  */
70
73
  unix?: string;
71
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/browser/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/browser/http.ts"],"names":[],"mappings":"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"}