@once-agent/sdk 0.1.4 → 0.1.5

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 (38) hide show
  1. package/README.md +62 -3
  2. package/dist/cli.js +13 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +29 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +245 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/runtime/decision.d.ts +39 -0
  9. package/dist/runtime/decision.d.ts.map +1 -0
  10. package/dist/runtime/decision.js +102 -0
  11. package/dist/runtime/decision.js.map +1 -0
  12. package/dist/runtime/fetch-interceptor.d.ts +66 -0
  13. package/dist/runtime/fetch-interceptor.d.ts.map +1 -0
  14. package/dist/runtime/fetch-interceptor.js +151 -0
  15. package/dist/runtime/fetch-interceptor.js.map +1 -0
  16. package/dist/runtime/identity.d.ts +23 -0
  17. package/dist/runtime/identity.d.ts.map +1 -0
  18. package/dist/runtime/identity.js +191 -0
  19. package/dist/runtime/identity.js.map +1 -0
  20. package/dist/runtime/pipeline.d.ts +25 -0
  21. package/dist/runtime/pipeline.d.ts.map +1 -0
  22. package/dist/runtime/pipeline.js +121 -0
  23. package/dist/runtime/pipeline.js.map +1 -0
  24. package/dist/setup.d.ts +2 -0
  25. package/dist/setup.d.ts.map +1 -1
  26. package/dist/setup.js +101 -8
  27. package/dist/setup.js.map +1 -1
  28. package/dist-cjs/index.js +255 -2
  29. package/dist-cjs/index.js.map +1 -1
  30. package/dist-cjs/runtime/decision.js +105 -0
  31. package/dist-cjs/runtime/decision.js.map +1 -0
  32. package/dist-cjs/runtime/fetch-interceptor.js +157 -0
  33. package/dist-cjs/runtime/fetch-interceptor.js.map +1 -0
  34. package/dist-cjs/runtime/identity.js +194 -0
  35. package/dist-cjs/runtime/identity.js.map +1 -0
  36. package/dist-cjs/runtime/pipeline.js +124 -0
  37. package/dist-cjs/runtime/pipeline.js.map +1 -0
  38. package/package.json +3 -2
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @once-agent/sdk
1
+ # @once-agent/sdk
2
2
 
3
3
 
4
4
  <!-- ONCE_STRIPE_SANDBOX_NOTICE -->
@@ -62,6 +62,49 @@ Do not commit API keys to source control.
62
62
 
63
63
  ## 60-second quick start
64
64
 
65
+ ### Runtime HTTP protection
66
+
67
+ For supported POST + JSON HTTP writes, configure the exact protected HTTPS target:
68
+
69
+ ```bash
70
+ npx once setup . --runtime-http=https://api.example.com/v1/action
71
+ ```
72
+
73
+ This setup pins that exact target in the provider allowlist and opts the immutable provider version into durable HTTP response replay.
74
+
75
+ ```ts
76
+ import { createOnceRuntimeFetch } from "@once-agent/sdk";
77
+
78
+ const onceFetch = createOnceRuntimeFetch({
79
+ provider: "my-provider"
80
+ });
81
+
82
+ async function main() {
83
+ const response = await onceFetch(
84
+ "https://api.example.com/v1/action",
85
+ {
86
+ method: "POST",
87
+ headers: {
88
+ "content-type": "application/json",
89
+ "idempotency-key": "order_123"
90
+ },
91
+ body: JSON.stringify({ example: true })
92
+ }
93
+ );
94
+
95
+ console.log(response.status);
96
+ console.log(await response.text());
97
+ }
98
+
99
+ main().catch(console.error);
100
+ ```
101
+
102
+ Retry the same logical real-world action with the same stable identity. In this Runtime HTTP example, that identity is carried by the `idempotency-key`.
103
+
104
+ The Runtime fails closed rather than silently falling back to a direct target write when an operation cannot be safely protected.
105
+
106
+ ### Direct SDK execution
107
+
65
108
  First configure a provider with `once setup .`, or use a provider alias already registered with your Once account.
66
109
 
67
110
  ```ts
@@ -235,6 +278,18 @@ npx once setup .
235
278
 
236
279
  Setup can install/configure the SDK, verify your API key, register a supported provider, and prepare local Once configuration.
237
280
 
281
+ For Runtime HTTP protection, provide the exact target URL:
282
+
283
+ ```bash
284
+ npx once setup . --runtime-http=https://api.example.com/v1/action
285
+ ```
286
+
287
+ Runtime HTTP setup registers that exact URL in `allowed_urls` and requests `response_replay="required"` for that immutable provider version.
288
+
289
+ Only non-secret provider metadata is written to `.once/config.json`; the provider bearer token is not stored there.
290
+
291
+ Plain `npx once setup .` preserves the existing provider-registration behavior and does not opt that provider version into HTTP response replay.
292
+
238
293
  Preview setup without making changes:
239
294
 
240
295
  ```bash
@@ -335,12 +390,16 @@ Its safety properties depend on:
335
390
  - sufficiently authoritative provider truth
336
391
  - the failure mode being within that provider integration's supported model
337
392
 
338
- For supported provider integrations, Once is designed to prevent duplicate side effects across retries and ambiguous transport failures by reconciling provider truth before permitting re-execution.
393
+ For supported provider integrations, Once is designed to suppress duplicate execution across retries and ambiguous transport failures by reconciling provider truth before permitting re-execution.
394
+
395
+ For Runtime HTTP providers registered with `response_replay="required"`, Once also requires a durable, sanitized application-visible HTTP response replay before the local operation can become `CONFIRMED`. Confirmed retries can return that stored response without executing the provider again.
339
396
 
340
- When Once cannot determine whether an external side effect occurred, it may preserve the operation as uncertain rather than assume another execution is safe.
397
+ When Once cannot determine whether an external side effect occurred, or when required replay evidence is missing after an effect may have happened, it preserves the operation as uncertain rather than assume another execution is safe.
341
398
 
342
399
  This means Once may sacrifice availability temporarily in order to avoid an unsafe duplicate side effect.
343
400
 
401
+ The external effect itself is not atomically committed with Once's local ledger. The supported claim is duplicate suppression on confirmed/replay paths plus fail-closed handling of ambiguous outcomes, not generic exactly-once execution.
402
+
344
403
  ## Provider truth
345
404
 
346
405
  Once is strongest when the external system can answer a question equivalent to:
package/dist/cli.js CHANGED
@@ -66,9 +66,9 @@ function printHelp() {
66
66
  console.log(" Use --snippets to generate per-callsite integration guidance.");
67
67
  console.log(" Use --apply to transactionally apply exactly one PATCHABLE candidate.");
68
68
  console.log("");
69
- console.log(" once setup [directory]");
69
+ console.log(" once setup [directory] [--runtime-http=<target-url>]");
70
70
  console.log(" Detect, configure and install Once.");
71
- console.log(" Use --plan to preview without changes.");
71
+ console.log(" Use --plan to preview; --runtime-http=<https-url> enables Runtime HTTP replay protection.");
72
72
  console.log("");
73
73
  console.log(" once scan [directory]");
74
74
  console.log(" Find likely consequential operations locally.");
@@ -155,11 +155,21 @@ async function main() {
155
155
  const autoConfirm = args.includes("--yes");
156
156
  const planOnly = args.includes("--plan");
157
157
  const skipInstall = args.includes("--skip-install");
158
+ const runtimeHttpArgument = args.find(value => value.startsWith("--runtime-http="));
159
+ const runtimeHttp = args.includes("--runtime-http") ||
160
+ Boolean(runtimeHttpArgument);
161
+ const runtimeHttpTargetUrl = runtimeHttpArgument
162
+ ? runtimeHttpArgument
163
+ .substring("--runtime-http=".length)
164
+ .trim()
165
+ : undefined;
158
166
  const requestedPath = args.find(value => !value.startsWith("--")) ?? ".";
159
167
  await runSetup(requestedPath, {
160
168
  autoConfirm,
161
169
  planOnly,
162
- skipInstall
170
+ skipInstall,
171
+ runtimeHttp,
172
+ runtimeHttpTargetUrl
163
173
  });
164
174
  return;
165
175
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
+ import { type OnceFetchInstallation, type OnceFetchInterceptorOptions } from "./runtime/fetch-interceptor.js";
1
2
  export type OnceProvider = "blind_test" | "http_v1" | "stripe_v1" | (string & {});
2
3
  export interface OnceOptions {
3
4
  apiKey?: string;
4
5
  baseUrl?: string;
5
6
  timeoutMs?: number;
6
7
  networkRetries?: number;
8
+ fetchImpl?: typeof fetch;
7
9
  }
8
10
  export interface ExecuteInput {
9
11
  operationId: string;
@@ -21,6 +23,13 @@ export interface ExecuteResponse {
21
23
  provider_executed_at?: string | null;
22
24
  [key: string]: unknown;
23
25
  }
26
+ export interface OnceRuntimeHttpReplay {
27
+ status: number;
28
+ body_text: string;
29
+ headers: Record<string, string>;
30
+ recorded_at?: string;
31
+ }
32
+ export type OnceRuntimeFetchOptions = Omit<OnceFetchInterceptorOptions, "protect" | "fetchImpl"> & OnceOptions;
24
33
  export interface TruthResponse {
25
34
  operation_id: string;
26
35
  attempts?: number;
@@ -46,6 +55,9 @@ export declare class OnceError extends Error {
46
55
  cause?: unknown;
47
56
  });
48
57
  }
58
+ export declare class OnceRuntimeHttpShapeError extends OnceError {
59
+ constructor(message: string, code?: string);
60
+ }
49
61
  export declare class OnceTimeoutError extends OnceError {
50
62
  constructor(message?: string, cause?: unknown);
51
63
  }
@@ -57,6 +69,7 @@ export declare class Once {
57
69
  readonly baseUrl: string;
58
70
  readonly timeoutMs: number;
59
71
  readonly networkRetries: number;
72
+ readonly fetchImpl: typeof fetch;
60
73
  constructor(options?: OnceOptions);
61
74
  /**
62
75
  * Generate a deterministic Once operation ID.
@@ -72,5 +85,21 @@ export declare class Once {
72
85
  truth(operationId: string): Promise<TruthResponse>;
73
86
  private request;
74
87
  }
88
+ /**
89
+ * Create a fetch-compatible Once Runtime.
90
+ *
91
+ * v0.1 proven protected execution shape:
92
+ * POST + application/json + stable identity.
93
+ */
94
+ export declare function createOnceRuntimeFetch(options?: OnceRuntimeFetchOptions): typeof fetch;
95
+ /**
96
+ * Explicit reversible global fetch installation.
97
+ */
98
+ export declare function installOnceRuntimeFetch(options?: OnceRuntimeFetchOptions): OnceFetchInstallation;
99
+ export { createOnceFetchInterceptor, installOnceFetchInterceptor, OnceRuntimeBlockedError } from "./runtime/fetch-interceptor.js";
100
+ export type { OnceFetchInstallation, OnceFetchInterceptorOptions, OnceProtectedFetchContext, OnceProtectedFetchHandler } from "./runtime/fetch-interceptor.js";
101
+ export { prepareHttpExecution } from "./runtime/pipeline.js";
102
+ export { decideHttpExecution } from "./runtime/decision.js";
103
+ export { resolveHttpOperationIdentity } from "./runtime/identity.js";
75
104
  export default Once;
76
105
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { createHash } from "node:crypto";
3
+ import { createOnceFetchInterceptor } from "./runtime/fetch-interceptor.js";
3
4
  const DEFAULT_BASE_URL = "https://once-q18-cloud.pennywatch.workers.dev";
4
5
  export class OnceError extends Error {
5
6
  status;
@@ -17,6 +18,15 @@ export class OnceError extends Error {
17
18
  this.retryAfter = options.retryAfter;
18
19
  }
19
20
  }
21
+ export class OnceRuntimeHttpShapeError extends OnceError {
22
+ constructor(message, code = "unsupported_runtime_http_shape") {
23
+ super(message, {
24
+ code
25
+ });
26
+ this.name =
27
+ "OnceRuntimeHttpShapeError";
28
+ }
29
+ }
20
30
  export class OnceTimeoutError extends OnceError {
21
31
  constructor(message = "Once request timed out", cause) {
22
32
  super(message, {
@@ -40,6 +50,7 @@ export class Once {
40
50
  baseUrl;
41
51
  timeoutMs;
42
52
  networkRetries;
53
+ fetchImpl;
43
54
  constructor(options = {}) {
44
55
  const apiKey = options.apiKey ??
45
56
  process.env.ONCE_API_KEY;
@@ -56,6 +67,9 @@ export class Once {
56
67
  options.timeoutMs ?? 10_000;
57
68
  this.networkRetries =
58
69
  options.networkRetries ?? 2;
70
+ this.fetchImpl =
71
+ options.fetchImpl ??
72
+ globalThis.fetch;
59
73
  }
60
74
  /**
61
75
  * Generate a deterministic Once operation ID.
@@ -164,7 +178,7 @@ export class Once {
164
178
  const controller = new AbortController();
165
179
  const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
166
180
  try {
167
- const response = await fetch(`${this.baseUrl}${path}`, {
181
+ const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
168
182
  ...init,
169
183
  signal: controller.signal,
170
184
  headers: {
@@ -233,8 +247,238 @@ export class Once {
233
247
  throw new OnceNetworkError("Could not reach Once", lastError);
234
248
  }
235
249
  }
250
+ function runtimeJsonContentType(request) {
251
+ const contentType = request.headers
252
+ .get("content-type")
253
+ ?.toLowerCase() ??
254
+ "";
255
+ return contentType.includes("application/json");
256
+ }
257
+ function assertRuntimeHeaderShape(request) {
258
+ const allowed = new Set([
259
+ "content-type",
260
+ "idempotency-key",
261
+ "x-idempotency-key"
262
+ ]);
263
+ for (const [name] of request.headers) {
264
+ if (!allowed.has(name.toLowerCase())) {
265
+ throw new OnceRuntimeHttpShapeError(`Once Runtime HTTP v0.1 cannot safely preserve target header "${name}".`);
266
+ }
267
+ }
268
+ }
269
+ function parseRuntimeReplay(value) {
270
+ if (value === null ||
271
+ typeof value !== "object" ||
272
+ Array.isArray(value)) {
273
+ throw new OnceError("Once confirmed the operation but did not return a replayable HTTP response.", {
274
+ code: "runtime_http_response_missing",
275
+ body: value
276
+ });
277
+ }
278
+ const candidate = value;
279
+ const status = Number(candidate.status);
280
+ /*
281
+ * Fetch Response constructors cannot represent
282
+ * informational 1xx responses.
283
+ */
284
+ if (!Number.isInteger(status) ||
285
+ status < 200 ||
286
+ status > 599) {
287
+ throw new OnceError("Once returned an HTTP replay with an unsupported status.", {
288
+ code: "runtime_http_response_invalid_status",
289
+ body: value
290
+ });
291
+ }
292
+ if (typeof candidate.body_text !==
293
+ "string") {
294
+ throw new OnceError("Once returned an HTTP replay without a valid text body.", {
295
+ code: "runtime_http_response_invalid_body",
296
+ body: value
297
+ });
298
+ }
299
+ if (candidate.headers === null ||
300
+ typeof candidate.headers !==
301
+ "object" ||
302
+ Array.isArray(candidate.headers)) {
303
+ throw new OnceError("Once returned an HTTP replay without valid headers.", {
304
+ code: "runtime_http_response_invalid_headers",
305
+ body: value
306
+ });
307
+ }
308
+ const headers = {};
309
+ for (const [name, headerValue] of Object.entries(candidate.headers)) {
310
+ if (typeof headerValue !==
311
+ "string") {
312
+ throw new OnceError("Once returned a non-string HTTP replay header.", {
313
+ code: "runtime_http_response_invalid_headers",
314
+ body: value
315
+ });
316
+ }
317
+ headers[name] =
318
+ headerValue;
319
+ }
320
+ const nullBody = status === 204 ||
321
+ status === 205 ||
322
+ status === 304;
323
+ if (nullBody &&
324
+ candidate.body_text.length > 0) {
325
+ throw new OnceError("Once returned a body for an HTTP status that cannot carry one.", {
326
+ code: "runtime_http_response_invalid_body",
327
+ body: value
328
+ });
329
+ }
330
+ return {
331
+ status,
332
+ body_text: candidate.body_text,
333
+ headers,
334
+ ...(typeof candidate.recorded_at ===
335
+ "string"
336
+ ? {
337
+ recorded_at: candidate.recorded_at
338
+ }
339
+ : {})
340
+ };
341
+ }
342
+ function createRuntimeCloudProtector(once) {
343
+ return async ({ request, decision, provider }) => {
344
+ if (decision.decision !==
345
+ "PROTECT") {
346
+ throw new OnceError("Runtime protector received a non-protected operation.", {
347
+ code: "runtime_invalid_protect_state"
348
+ });
349
+ }
350
+ if (!decision.operationId) {
351
+ throw new OnceError("Runtime protected operation is missing its resolved operation ID.", {
352
+ code: "runtime_operation_id_missing"
353
+ });
354
+ }
355
+ if (typeof provider !==
356
+ "string" ||
357
+ provider.trim().length ===
358
+ 0) {
359
+ throw new OnceError("Runtime protected operation is missing its resolved provider.", {
360
+ code: "runtime_provider_missing"
361
+ });
362
+ }
363
+ const method = request.method
364
+ .trim()
365
+ .toUpperCase();
366
+ /*
367
+ * Classification recognizes POST/PUT/PATCH/DELETE as
368
+ * consequential. Execution v0.1 intentionally proves
369
+ * only POST + JSON.
370
+ */
371
+ if (method !== "POST") {
372
+ throw new OnceRuntimeHttpShapeError(`Once Runtime HTTP v0.1 only has a proven protected execution contract for POST, not ${method || "(empty)"}.`);
373
+ }
374
+ if (!runtimeJsonContentType(request)) {
375
+ throw new OnceRuntimeHttpShapeError("Once Runtime HTTP v0.1 only protects application/json POST bodies.");
376
+ }
377
+ assertRuntimeHeaderShape(request);
378
+ const bodyText = await request
379
+ .clone()
380
+ .text();
381
+ if (bodyText.trim().length ===
382
+ 0) {
383
+ throw new OnceRuntimeHttpShapeError("Once Runtime HTTP v0.1 requires a non-empty JSON body.");
384
+ }
385
+ try {
386
+ JSON.parse(bodyText);
387
+ }
388
+ catch {
389
+ throw new OnceRuntimeHttpShapeError("Once Runtime HTTP v0.1 requires a valid JSON body.");
390
+ }
391
+ const result = await once.execute({
392
+ operationId: decision.operationId,
393
+ provider: provider.trim(),
394
+ action: {
395
+ type: "http_write_v1",
396
+ method: "POST",
397
+ url: request.url,
398
+ body_json: bodyText
399
+ }
400
+ });
401
+ const replay = parseRuntimeReplay(result.http_response);
402
+ const nullBody = replay.status === 204 ||
403
+ replay.status === 205 ||
404
+ replay.status === 304;
405
+ return new Response(nullBody
406
+ ? null
407
+ : replay.body_text, {
408
+ status: replay.status,
409
+ headers: replay.headers
410
+ });
411
+ };
412
+ }
413
+ /**
414
+ * Create a fetch-compatible Once Runtime.
415
+ *
416
+ * v0.1 proven protected execution shape:
417
+ * POST + application/json + stable identity.
418
+ */
419
+ export function createOnceRuntimeFetch(options = {}) {
420
+ const originalFetch = options.fetchImpl ??
421
+ globalThis.fetch;
422
+ if (typeof originalFetch !==
423
+ "function") {
424
+ throw new OnceError("Once Runtime requires a native fetch implementation.", {
425
+ code: "runtime_fetch_missing"
426
+ });
427
+ }
428
+ /*
429
+ * Once Cloud requests use the captured native fetch.
430
+ * They cannot recursively enter this interceptor.
431
+ */
432
+ const once = new Once({
433
+ apiKey: options.apiKey,
434
+ baseUrl: options.baseUrl,
435
+ timeoutMs: options.timeoutMs,
436
+ networkRetries: options.networkRetries,
437
+ fetchImpl: originalFetch
438
+ });
439
+ return createOnceFetchInterceptor({
440
+ provider: options.provider,
441
+ resolveProvider: options.resolveProvider,
442
+ resolveOperationId: options.resolveOperationId,
443
+ fetchImpl: originalFetch,
444
+ protect: createRuntimeCloudProtector(once)
445
+ });
446
+ }
447
+ /**
448
+ * Explicit reversible global fetch installation.
449
+ */
450
+ export function installOnceRuntimeFetch(options = {}) {
451
+ const previous = globalThis.fetch;
452
+ const intercepted = createOnceRuntimeFetch({
453
+ ...options,
454
+ fetchImpl: options.fetchImpl ??
455
+ previous
456
+ });
457
+ globalThis.fetch =
458
+ intercepted;
459
+ let restored = false;
460
+ return {
461
+ fetch: intercepted,
462
+ restore: () => {
463
+ if (restored) {
464
+ return;
465
+ }
466
+ if (globalThis.fetch ===
467
+ intercepted) {
468
+ globalThis.fetch =
469
+ previous;
470
+ }
471
+ restored =
472
+ true;
473
+ }
474
+ };
475
+ }
236
476
  function sleep(ms) {
237
477
  return new Promise(resolve => setTimeout(resolve, ms));
238
478
  }
479
+ export { createOnceFetchInterceptor, installOnceFetchInterceptor, OnceRuntimeBlockedError } from "./runtime/fetch-interceptor.js";
480
+ export { prepareHttpExecution } from "./runtime/pipeline.js";
481
+ export { decideHttpExecution } from "./runtime/decision.js";
482
+ export { resolveHttpOperationIdentity } from "./runtime/identity.js";
239
483
  export default Once;
240
484
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export type OnceRuntimeDecision = "PASS" | "PROTECT" | "BLOCK";
2
+ export type OnceRuntimeDecisionCode = "SAFE_HTTP_METHOD" | "CONSEQUENTIAL_HTTP_WRITE" | "INVALID_URL" | "UNSUPPORTED_PROTOCOL" | "UNSUPPORTED_HTTP_METHOD" | "MISSING_PROVIDER" | "MISSING_OPERATION_ID";
3
+ export type OnceRuntimeHttpCall = {
4
+ surface: "http";
5
+ method: string;
6
+ url: string;
7
+ /**
8
+ * Stable identity for one real-world action.
9
+ *
10
+ * Retries of that same action MUST reuse
11
+ * the same value.
12
+ */
13
+ operationId?: string;
14
+ /**
15
+ * Once provider configured to perform /
16
+ * reconcile this external side effect.
17
+ */
18
+ provider?: string;
19
+ };
20
+ export type OnceRuntimeDecisionResult = {
21
+ decision: OnceRuntimeDecision;
22
+ code: OnceRuntimeDecisionCode;
23
+ consequential: boolean;
24
+ method: string;
25
+ reason: string;
26
+ };
27
+ /**
28
+ * Decide whether an outbound HTTP operation may
29
+ * pass normally, must be protected by Once, or
30
+ * must fail closed.
31
+ *
32
+ * v0.1 intentionally does NOT guess identity.
33
+ *
34
+ * A consequential operation without a stable
35
+ * operationId is blocked rather than executed
36
+ * unsafely.
37
+ */
38
+ export declare function decideHttpExecution(call: OnceRuntimeHttpCall): OnceRuntimeDecisionResult;
39
+ //# sourceMappingURL=decision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/runtime/decision.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,0BAA0B,GAC1B,aAAa,GACb,sBAAsB,GACtB,yBAAyB,GACzB,kBAAkB,GAClB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAsCF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,mBAAmB,GACxB,yBAAyB,CAoK3B"}