@procedures/client 0.28.0 → 0.28.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.
- package/CHANGELOG.md +32 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -1
- package/dist/adapters/websocket/shared/rpc.js +5 -2
- package/dist/adapters/websocket/shared/rpc.js.map +1 -1
- package/dist/client/batch-executor.d.ts.map +1 -1
- package/dist/client/batch-executor.js +25 -14
- package/dist/client/batch-executor.js.map +1 -1
- package/dist/client/middleware/cache.d.ts.map +1 -1
- package/dist/client/middleware/cache.js +27 -1
- package/dist/client/middleware/cache.js.map +1 -1
- package/dist/procedures/collection/regex-guard.d.ts.map +1 -1
- package/dist/procedures/collection/regex-guard.js +7 -2
- package/dist/procedures/collection/regex-guard.js.map +1 -1
- package/dist/procedures/core/math.d.ts.map +1 -1
- package/dist/procedures/core/math.js +9 -2
- package/dist/procedures/core/math.js.map +1 -1
- package/dist/procedures/define-procedure.d.ts +3 -1
- package/dist/procedures/define-procedure.d.ts.map +1 -1
- package/dist/procedures/define-procedure.js +12 -1
- package/dist/procedures/define-procedure.js.map +1 -1
- package/package.json +1 -1
- package/src/adapters/websocket/shared/rpc.ts +4 -2
- package/src/client/batch-executor.ts +24 -14
- package/src/client/middleware/cache.ts +30 -1
- package/src/procedures/collection/regex-guard.ts +7 -2
- package/src/procedures/core/math.ts +7 -2
- package/src/procedures/define-procedure.ts +16 -1
|
@@ -34,6 +34,7 @@ import { hydrateInput, runProgram } from "./program.js";
|
|
|
34
34
|
import { INFERRED_EFFECTS_METADATA_KEY, PURE_EFFECTS, REGISTRY_READ_EFFECTS, effectsValue, withEffects } from "./effects.js";
|
|
35
35
|
import { MANIFEST_FORMAT, describeProcedure as describeEntry, describeRegistry } from "./manifest.js";
|
|
36
36
|
import { isRuntimeDefined, markRuntimeProgram, runtimeProgramOfHandler } from "./runtime-programs.js";
|
|
37
|
+
import { InvocationError } from "./invoke.js";
|
|
37
38
|
// Input schemas of procedure.define and procedure.delete (roadmap 2.1)
|
|
38
39
|
const procedurePathField = z.array(z.string().min(1)).min(1);
|
|
39
40
|
const defineInputSchema = z.object({
|
|
@@ -183,6 +184,7 @@ export function clearRuntimeProcedures(registry = PROCEDURE_REGISTRY) {
|
|
|
183
184
|
* stays: an MCP client cannot replace a tool or an internal procedure.
|
|
184
185
|
* - The registry gets the procedure first. A define that fails leaves nothing.
|
|
185
186
|
* - The new procedure is data-driven: with a server's `expose` rule, it calls only exposed paths.
|
|
187
|
+
* - With a server's `expose` rule, a caller cannot replace a hidden procedure (`NOT_EXPOSED`).
|
|
186
188
|
* - Its input is raw (the `runs-refs` tag): `exec()` does not run the body at definition time.
|
|
187
189
|
*/
|
|
188
190
|
export const defineProcedureProcedure = defineProcedure({
|
|
@@ -203,6 +205,10 @@ export const defineProcedureProcedure = defineProcedure({
|
|
|
203
205
|
}
|
|
204
206
|
const pathKey = path.join(".");
|
|
205
207
|
const existing = registry.get(path);
|
|
208
|
+
// A procedure outside the expose rule of the host is not the caller's to replace (R17)
|
|
209
|
+
if (existing && ctx?.expose && !ctx.expose(path)) {
|
|
210
|
+
throw new InvocationError("NOT_EXPOSED", `Procedure not exposed: ${pathKey}. procedure.define can replace only a procedure that this host exposes.`, ctx.path ?? ["procedure", "define"]);
|
|
211
|
+
}
|
|
206
212
|
if (existing && !isRuntimeDefined(existing)) {
|
|
207
213
|
throw new Error(`A code procedure exists at path: ${pathKey}. procedure.define can replace only a procedure that procedure.define made.`);
|
|
208
214
|
}
|
|
@@ -360,7 +366,8 @@ export const manifestProcedure = defineProcedure({
|
|
|
360
366
|
}),
|
|
361
367
|
});
|
|
362
368
|
/**
|
|
363
|
-
* Delete a runtime-defined procedure.
|
|
369
|
+
* Delete a runtime-defined procedure. A procedure outside the expose rule of the host is not
|
|
370
|
+
* found (R17), so a caller cannot delete a hidden procedure.
|
|
364
371
|
*/
|
|
365
372
|
export const deleteProcedureProcedure = defineProcedure({
|
|
366
373
|
path: ["procedure", "delete"],
|
|
@@ -372,6 +379,10 @@ export const deleteProcedureProcedure = defineProcedure({
|
|
|
372
379
|
},
|
|
373
380
|
handler: async (input, ctx) => {
|
|
374
381
|
const registry = ctx?.registry ?? PROCEDURE_REGISTRY;
|
|
382
|
+
// A procedure outside the expose rule of the host is not found (R17)
|
|
383
|
+
if (ctx?.expose && !ctx.expose(input.path)) {
|
|
384
|
+
return { deleted: false };
|
|
385
|
+
}
|
|
375
386
|
const existing = registry.get(input.path);
|
|
376
387
|
if (!existing) {
|
|
377
388
|
return { deleted: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-procedure.js","sourceRoot":"","sources":["../../src/procedures/define-procedure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"define-procedure.js","sourceRoot":"","sources":["../../src/procedures/define-procedure.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@procedures/client",
|
|
4
|
-
"version": "0.28.
|
|
4
|
+
"version": "0.28.1",
|
|
5
5
|
"description": "Procedures as data for TypeScript: define typed procedures once and call them in process, over HTTP, WebSocket, the CLI or MCP. Streaming, middleware, retries, caching and a JSON program format.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"rpc",
|
|
@@ -381,10 +381,11 @@ export class IncomingCalls {
|
|
|
381
381
|
private async serve(frame: WebSocketMessage): Promise<void> {
|
|
382
382
|
const controller = new AbortController();
|
|
383
383
|
this.inflight.set(frame.id, controller);
|
|
384
|
+
let credit: StreamCredit | undefined;
|
|
384
385
|
try {
|
|
385
386
|
const response = await this.options.handler.handle(this.options.requestOf(frame, controller.signal));
|
|
386
387
|
if (response.stream) {
|
|
387
|
-
|
|
388
|
+
credit = typeof frame.credit === "number" && frame.credit > 0 ? new StreamCredit(frame.credit) : undefined;
|
|
388
389
|
if (credit) this.credits.set(frame.id, credit);
|
|
389
390
|
await this.sendStream(frame.id, response.stream, controller.signal, credit);
|
|
390
391
|
} else {
|
|
@@ -408,7 +409,8 @@ export class IncomingCalls {
|
|
|
408
409
|
this.inflight.delete(frame.id);
|
|
409
410
|
this.options.onSettled?.();
|
|
410
411
|
}
|
|
411
|
-
|
|
412
|
+
// A newer request with the same id keeps its credit (audit pass 2)
|
|
413
|
+
if (credit !== undefined && this.credits.get(frame.id) === credit) this.credits.delete(frame.id);
|
|
412
414
|
}
|
|
413
415
|
}
|
|
414
416
|
|
|
@@ -68,17 +68,21 @@ export interface BatchExecutionResult<TRoute extends Route = Route> {
|
|
|
68
68
|
results: BatchItem[];
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
/**
|
|
72
|
-
|
|
71
|
+
/**
|
|
72
|
+
* An abort controller whose signal also aborts when the parent signal aborts. `release` removes
|
|
73
|
+
* the listener from the parent when the call ends. (Before, each call left its listener on the
|
|
74
|
+
* parent, so a long-lived signal kept every controller: audit pass 2.)
|
|
75
|
+
*/
|
|
76
|
+
function linkedController(parent: AbortSignal | undefined): { controller: AbortController; release: () => void } {
|
|
73
77
|
const controller = new AbortController();
|
|
74
|
-
if (parent) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
parent.addEventListener("abort", () => controller.abort(parent.reason), { once: true });
|
|
79
|
-
}
|
|
78
|
+
if (!parent) return { controller, release: () => undefined };
|
|
79
|
+
if (parent.aborted) {
|
|
80
|
+
controller.abort(parent.reason);
|
|
81
|
+
return { controller, release: () => undefined };
|
|
80
82
|
}
|
|
81
|
-
|
|
83
|
+
const onAbort = (): void => controller.abort(parent.reason);
|
|
84
|
+
parent.addEventListener("abort", onAbort, { once: true });
|
|
85
|
+
return { controller, release: () => parent.removeEventListener("abort", onAbort) };
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
function cancelledResult(path: ProcedurePath, message: string): ProcedureCallResult {
|
|
@@ -162,13 +166,18 @@ export class BatchExecutor {
|
|
|
162
166
|
context: ExecutionContext
|
|
163
167
|
): Promise<BatchExecutionResult<TRoute>> {
|
|
164
168
|
const startTime = Date.now();
|
|
165
|
-
const
|
|
169
|
+
const links = resolved.map(() => linkedController(context.signal));
|
|
166
170
|
const calls = resolved.map((route, index) =>
|
|
167
|
-
this.runOne(route, { ...context, signal:
|
|
171
|
+
this.runOne(route, { ...context, signal: links[index]!.controller.signal }).then((item) => ({ item, index }))
|
|
168
172
|
);
|
|
169
173
|
|
|
170
|
-
|
|
171
|
-
|
|
174
|
+
let winner: { item: BatchItem; index: number };
|
|
175
|
+
try {
|
|
176
|
+
winner = await Promise.race(calls);
|
|
177
|
+
} finally {
|
|
178
|
+
links.forEach((link) => link.release());
|
|
179
|
+
}
|
|
180
|
+
links.forEach(({ controller }, index) => {
|
|
172
181
|
if (index !== winner.index) controller.abort();
|
|
173
182
|
});
|
|
174
183
|
|
|
@@ -238,9 +247,10 @@ export class BatchExecutor {
|
|
|
238
247
|
(bufferSize <= 0 || done.length < bufferSize)
|
|
239
248
|
) {
|
|
240
249
|
const { route, index } = pending.shift()!;
|
|
241
|
-
const controller = linkedController(context.signal);
|
|
250
|
+
const { controller, release } = linkedController(context.signal);
|
|
242
251
|
running.set(index, { path: route.path, controller });
|
|
243
252
|
void this.runOne(route, { ...context, signal: controller.signal }).then((item) => {
|
|
253
|
+
release();
|
|
244
254
|
// A cancelled call has its result already
|
|
245
255
|
if (!running.delete(index)) return;
|
|
246
256
|
done.push({ ...item, index });
|
|
@@ -12,6 +12,7 @@ import { isDuration, optionalMs, type Duration } from "../../duration.js";
|
|
|
12
12
|
import type { Effects } from "../../procedures/types.js";
|
|
13
13
|
import { TIMER_DEFAULTS } from "../../timers.js";
|
|
14
14
|
import { methodName } from "../../server/method.js";
|
|
15
|
+
import { abortedItem } from "./items.js";
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Cache middleware options.
|
|
@@ -207,6 +208,29 @@ function cacheOverrides(value: unknown): { ttl?: number; bypass?: boolean; refre
|
|
|
207
208
|
/**
|
|
208
209
|
* Default should cache predicate - only cache successful responses.
|
|
209
210
|
*/
|
|
211
|
+
/** The value of `untilAbort` when the signal aborts first. */
|
|
212
|
+
const ABORTED: unique symbol = Symbol("aborted");
|
|
213
|
+
|
|
214
|
+
/** The value of a promise, or `ABORTED` when the signal aborts first. Without a signal, the promise. */
|
|
215
|
+
function untilAbort<T>(promise: Promise<T>, signal: AbortSignal | undefined): Promise<T | typeof ABORTED> {
|
|
216
|
+
if (signal === undefined) return promise;
|
|
217
|
+
if (signal.aborted) return Promise.resolve(ABORTED);
|
|
218
|
+
return new Promise((resolve, reject) => {
|
|
219
|
+
const onAbort = (): void => resolve(ABORTED);
|
|
220
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
221
|
+
promise.then(
|
|
222
|
+
(value) => {
|
|
223
|
+
signal.removeEventListener("abort", onAbort);
|
|
224
|
+
resolve(value);
|
|
225
|
+
},
|
|
226
|
+
(error: unknown) => {
|
|
227
|
+
signal.removeEventListener("abort", onAbort);
|
|
228
|
+
reject(error);
|
|
229
|
+
},
|
|
230
|
+
);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
|
|
210
234
|
function defaultShouldCache(item: ResponseItem<unknown>): boolean {
|
|
211
235
|
return item.status.type === "success";
|
|
212
236
|
}
|
|
@@ -354,7 +378,12 @@ export function createCacheMiddleware(options: CacheOptions): TypedClientMiddlew
|
|
|
354
378
|
// The same call is in flight: wait for it and give a copy of its response (R13)
|
|
355
379
|
const pending = overrides.refresh ? undefined : inFlight.get(cacheKey);
|
|
356
380
|
if (pending) {
|
|
357
|
-
|
|
381
|
+
// The wait follows the signal of this call: an abort ends it, also while the first call runs
|
|
382
|
+
const shared = await untilAbort(pending, context.message.signal);
|
|
383
|
+
if (shared === ABORTED) {
|
|
384
|
+
yield abortedItem<TRes>(context.message.id);
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
358
387
|
if (shared) {
|
|
359
388
|
stats.hits++;
|
|
360
389
|
setState(true);
|
|
@@ -284,9 +284,14 @@ function collect(nodes: readonly RegexNode[], ways: Ways): void {
|
|
|
284
284
|
if (node.min !== node.max) {
|
|
285
285
|
ways.variable = true;
|
|
286
286
|
if (node.max === Infinity) ways.unbounded = true;
|
|
287
|
-
ways.count *= node.max - node.min + 1;
|
|
288
287
|
}
|
|
289
|
-
|
|
288
|
+
// Each repetition multiplies the ways of the part inside it: ((a|a){9}){9} has 2^81 ways, not 2^9
|
|
289
|
+
const inner: Ways = { unbounded: false, variable: false, overlap: false, count: 1 };
|
|
290
|
+
collect([node.node], inner);
|
|
291
|
+
ways.unbounded ||= inner.unbounded;
|
|
292
|
+
ways.variable ||= inner.variable;
|
|
293
|
+
ways.overlap ||= inner.overlap;
|
|
294
|
+
ways.count *= node.max === Infinity ? Infinity : (node.max - node.min + 1) * inner.count ** node.max;
|
|
290
295
|
} else if (node.kind === "group") {
|
|
291
296
|
if (node.branches.length > 1) {
|
|
292
297
|
ways.count *= node.branches.length;
|
|
@@ -216,7 +216,10 @@ const minProcedure: MinProcedure = defineProcedure({
|
|
|
216
216
|
if (input.values.length === 0) {
|
|
217
217
|
return Infinity;
|
|
218
218
|
}
|
|
219
|
-
|
|
219
|
+
// A loop, not a spread: a long array as arguments overflows the stack (audit pass 2)
|
|
220
|
+
let min = Infinity;
|
|
221
|
+
for (const value of input.values) min = Math.min(min, value);
|
|
222
|
+
return min;
|
|
220
223
|
},
|
|
221
224
|
});
|
|
222
225
|
|
|
@@ -246,7 +249,9 @@ const maxProcedure: MaxProcedure = defineProcedure({
|
|
|
246
249
|
if (input.values.length === 0) {
|
|
247
250
|
return -Infinity;
|
|
248
251
|
}
|
|
249
|
-
|
|
252
|
+
let max = -Infinity;
|
|
253
|
+
for (const value of input.values) max = Math.max(max, value);
|
|
254
|
+
return max;
|
|
250
255
|
},
|
|
251
256
|
});
|
|
252
257
|
|
|
@@ -51,6 +51,7 @@ import { INFERRED_EFFECTS_METADATA_KEY, PURE_EFFECTS, REGISTRY_READ_EFFECTS, eff
|
|
|
51
51
|
import { MANIFEST_FORMAT, describeProcedure as describeEntry, describeRegistry, type ProcedureManifest } from "./manifest.js";
|
|
52
52
|
import type { JsonSchema } from "./schema.js";
|
|
53
53
|
import { isRuntimeDefined, markRuntimeProgram, runtimeProgramOfHandler } from "./runtime-programs.js";
|
|
54
|
+
import { InvocationError } from "./invoke.js";
|
|
54
55
|
|
|
55
56
|
// Input schemas of procedure.define and procedure.delete (roadmap 2.1)
|
|
56
57
|
const procedurePathField = z.array(z.string().min(1)).min(1);
|
|
@@ -297,6 +298,7 @@ interface DefineMetadata extends ProcedureMetadata {
|
|
|
297
298
|
* stays: an MCP client cannot replace a tool or an internal procedure.
|
|
298
299
|
* - The registry gets the procedure first. A define that fails leaves nothing.
|
|
299
300
|
* - The new procedure is data-driven: with a server's `expose` rule, it calls only exposed paths.
|
|
301
|
+
* - With a server's `expose` rule, a caller cannot replace a hidden procedure (`NOT_EXPOSED`).
|
|
300
302
|
* - Its input is raw (the `runs-refs` tag): `exec()` does not run the body at definition time.
|
|
301
303
|
*/
|
|
302
304
|
export const defineProcedureProcedure: Procedure<
|
|
@@ -326,6 +328,14 @@ export const defineProcedureProcedure: Procedure<
|
|
|
326
328
|
|
|
327
329
|
const pathKey = path.join(".");
|
|
328
330
|
const existing = registry.get(path);
|
|
331
|
+
// A procedure outside the expose rule of the host is not the caller's to replace (R17)
|
|
332
|
+
if (existing && ctx?.expose && !ctx.expose(path)) {
|
|
333
|
+
throw new InvocationError(
|
|
334
|
+
"NOT_EXPOSED",
|
|
335
|
+
`Procedure not exposed: ${pathKey}. procedure.define can replace only a procedure that this host exposes.`,
|
|
336
|
+
ctx.path ?? ["procedure", "define"]
|
|
337
|
+
);
|
|
338
|
+
}
|
|
329
339
|
if (existing && !isRuntimeDefined(existing)) {
|
|
330
340
|
throw new Error(
|
|
331
341
|
`A code procedure exists at path: ${pathKey}. procedure.define can replace only a procedure that procedure.define made.`
|
|
@@ -539,7 +549,8 @@ export const manifestProcedure: Procedure<{ namespace?: string | undefined }, Pr
|
|
|
539
549
|
});
|
|
540
550
|
|
|
541
551
|
/**
|
|
542
|
-
* Delete a runtime-defined procedure.
|
|
552
|
+
* Delete a runtime-defined procedure. A procedure outside the expose rule of the host is not
|
|
553
|
+
* found (R17), so a caller cannot delete a hidden procedure.
|
|
543
554
|
*/
|
|
544
555
|
export const deleteProcedureProcedure: Procedure<
|
|
545
556
|
{ path: ProcedurePath },
|
|
@@ -555,6 +566,10 @@ export const deleteProcedureProcedure: Procedure<
|
|
|
555
566
|
},
|
|
556
567
|
handler: async (input: { path: ProcedurePath }, ctx?: ProcedureContext): Promise<{ deleted: boolean }> => {
|
|
557
568
|
const registry = ctx?.registry ?? PROCEDURE_REGISTRY;
|
|
569
|
+
// A procedure outside the expose rule of the host is not found (R17)
|
|
570
|
+
if (ctx?.expose && !ctx.expose(input.path)) {
|
|
571
|
+
return { deleted: false };
|
|
572
|
+
}
|
|
558
573
|
const existing = registry.get(input.path);
|
|
559
574
|
if (!existing) {
|
|
560
575
|
return { deleted: false };
|