@once-agent/sdk 0.1.4 → 0.1.6

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 (89) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +62 -3
  3. package/dist/benchmark.d.ts +40 -0
  4. package/dist/benchmark.d.ts.map +1 -0
  5. package/dist/benchmark.js +169 -0
  6. package/dist/benchmark.js.map +1 -0
  7. package/dist/cli.js +52 -12
  8. package/dist/cli.js.map +1 -1
  9. package/dist/connect/binding.d.ts +17 -0
  10. package/dist/connect/binding.d.ts.map +1 -0
  11. package/dist/connect/binding.js +91 -0
  12. package/dist/connect/binding.js.map +1 -0
  13. package/dist/connect/classifier.d.ts +18 -0
  14. package/dist/connect/classifier.d.ts.map +1 -0
  15. package/dist/connect/classifier.js +49 -0
  16. package/dist/connect/classifier.js.map +1 -0
  17. package/dist/connect/execute.d.ts +30 -0
  18. package/dist/connect/execute.d.ts.map +1 -0
  19. package/dist/connect/execute.js +47 -0
  20. package/dist/connect/execute.js.map +1 -0
  21. package/dist/connect/kernel.d.ts +33 -0
  22. package/dist/connect/kernel.d.ts.map +1 -0
  23. package/dist/connect/kernel.js +46 -0
  24. package/dist/connect/kernel.js.map +1 -0
  25. package/dist/connect/openai-agents.d.ts +31 -0
  26. package/dist/connect/openai-agents.d.ts.map +1 -0
  27. package/dist/connect/openai-agents.js +42 -0
  28. package/dist/connect/openai-agents.js.map +1 -0
  29. package/dist/dataset-cli.d.ts +3 -0
  30. package/dist/dataset-cli.d.ts.map +1 -0
  31. package/dist/dataset-cli.js +49 -0
  32. package/dist/dataset-cli.js.map +1 -0
  33. package/dist/dataset-progress.d.ts +16 -0
  34. package/dist/dataset-progress.d.ts.map +1 -0
  35. package/dist/dataset-progress.js +130 -0
  36. package/dist/dataset-progress.js.map +1 -0
  37. package/dist/dataset.d.ts +35 -0
  38. package/dist/dataset.d.ts.map +1 -0
  39. package/dist/dataset.js +133 -0
  40. package/dist/dataset.js.map +1 -0
  41. package/dist/index.d.ts +39 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +259 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/runtime/decision.d.ts +39 -0
  46. package/dist/runtime/decision.d.ts.map +1 -0
  47. package/dist/runtime/decision.js +102 -0
  48. package/dist/runtime/decision.js.map +1 -0
  49. package/dist/runtime/fetch-interceptor.d.ts +74 -0
  50. package/dist/runtime/fetch-interceptor.d.ts.map +1 -0
  51. package/dist/runtime/fetch-interceptor.js +156 -0
  52. package/dist/runtime/fetch-interceptor.js.map +1 -0
  53. package/dist/runtime/identity.d.ts +23 -0
  54. package/dist/runtime/identity.d.ts.map +1 -0
  55. package/dist/runtime/identity.js +191 -0
  56. package/dist/runtime/identity.js.map +1 -0
  57. package/dist/runtime/pipeline.d.ts +25 -0
  58. package/dist/runtime/pipeline.d.ts.map +1 -0
  59. package/dist/runtime/pipeline.js +121 -0
  60. package/dist/runtime/pipeline.js.map +1 -0
  61. package/dist/setup.d.ts +2 -0
  62. package/dist/setup.d.ts.map +1 -1
  63. package/dist/setup.js +126 -33
  64. package/dist/setup.js.map +1 -1
  65. package/dist/trace.d.ts +13 -0
  66. package/dist/trace.d.ts.map +1 -0
  67. package/dist/trace.js +60 -0
  68. package/dist/trace.js.map +1 -0
  69. package/dist-cjs/connect/binding.js +99 -0
  70. package/dist-cjs/connect/binding.js.map +1 -0
  71. package/dist-cjs/connect/classifier.js +53 -0
  72. package/dist-cjs/connect/classifier.js.map +1 -0
  73. package/dist-cjs/connect/execute.js +52 -0
  74. package/dist-cjs/connect/execute.js.map +1 -0
  75. package/dist-cjs/connect/kernel.js +51 -0
  76. package/dist-cjs/connect/kernel.js.map +1 -0
  77. package/dist-cjs/connect/openai-agents.js +47 -0
  78. package/dist-cjs/connect/openai-agents.js.map +1 -0
  79. package/dist-cjs/index.js +282 -3
  80. package/dist-cjs/index.js.map +1 -1
  81. package/dist-cjs/runtime/decision.js +105 -0
  82. package/dist-cjs/runtime/decision.js.map +1 -0
  83. package/dist-cjs/runtime/fetch-interceptor.js +162 -0
  84. package/dist-cjs/runtime/fetch-interceptor.js.map +1 -0
  85. package/dist-cjs/runtime/identity.js +194 -0
  86. package/dist-cjs/runtime/identity.js.map +1 -0
  87. package/dist-cjs/runtime/pipeline.js +124 -0
  88. package/dist-cjs/runtime/pipeline.js.map +1 -0
  89. package/package.json +91 -69
@@ -0,0 +1,133 @@
1
+ import { createHash } from "node:crypto";
2
+ import { mkdir, readFile, writeFile, access } from "node:fs/promises";
3
+ import { basename, resolve } from "node:path";
4
+ import { readBenchmarkTrace } from "./benchmark.js";
5
+ function assertDatasetId(value) {
6
+ if (!/^\d{3,}$/u.test(value)) {
7
+ throw new Error("dataset id must contain at least three digits, for example 001.");
8
+ }
9
+ }
10
+ function assertCollectorCommit(value) {
11
+ if (!/^[0-9a-f]{7,40}$/u.test(value)) {
12
+ throw new Error("collector git commit must be an explicit 7-40 character hexadecimal git commit.");
13
+ }
14
+ }
15
+ async function assertAbsent(path) {
16
+ try {
17
+ await access(path);
18
+ }
19
+ catch (error) {
20
+ const code = error.code;
21
+ if (code === "ENOENT") {
22
+ return;
23
+ }
24
+ throw error;
25
+ }
26
+ throw new Error(`Refusing to overwrite sealed dataset artifact: ${path}`);
27
+ }
28
+ function observationTime(observation, index) {
29
+ const value = Date.parse(observation.timestamp);
30
+ if (!Number.isFinite(value)) {
31
+ throw new Error(`Invalid timestamp on observation ${index + 1}: ${observation.timestamp}`);
32
+ }
33
+ return value;
34
+ }
35
+ function collectorNames(observations) {
36
+ const values = new Set();
37
+ for (const observation of observations) {
38
+ const collector = observation.metadata?.collector;
39
+ if (typeof collector === "string" && collector.length > 0) {
40
+ values.add(collector);
41
+ }
42
+ }
43
+ return [...values].sort();
44
+ }
45
+ export async function sealDataset(tracePath, options) {
46
+ const datasetId = options.datasetId ?? "001";
47
+ const outputDirectory = resolve(options.outputDirectory ?? ".once/datasets");
48
+ const collectorGitCommit = options.collectorGitCommit.toLowerCase();
49
+ assertDatasetId(datasetId);
50
+ assertCollectorCommit(collectorGitCommit);
51
+ const rawTrace = await readFile(resolve(tracePath));
52
+ const observations = await readBenchmarkTrace(tracePath);
53
+ if (observations.length === 0) {
54
+ throw new Error("Cannot seal an empty dataset.");
55
+ }
56
+ const onceDecisionCount = observations.filter(observation => observation.once_decision !== undefined).length;
57
+ if (onceDecisionCount > 0) {
58
+ throw new Error(`Refusing to seal raw holdout: found ${onceDecisionCount} observation(s) containing once_decision.`);
59
+ }
60
+ const times = observations.map(observationTime);
61
+ const collectionStartedAt = new Date(Math.min(...times)).toISOString();
62
+ const collectionEndedAt = new Date(Math.max(...times)).toISOString();
63
+ const uniqueResources = new Set(observations.map(observation => observation.resource)).size;
64
+ const sha256 = createHash("sha256")
65
+ .update(rawTrace)
66
+ .digest("hex");
67
+ const stem = `once-dataset-${datasetId}`;
68
+ const datasetFilename = `${stem}.jsonl`;
69
+ const sha256Filename = `${stem}.sha256`;
70
+ const manifestFilename = `${stem}-manifest.json`;
71
+ const datasetPath = resolve(outputDirectory, datasetFilename);
72
+ const sha256Path = resolve(outputDirectory, sha256Filename);
73
+ const manifestPath = resolve(outputDirectory, manifestFilename);
74
+ await mkdir(outputDirectory, { recursive: true });
75
+ await Promise.all([
76
+ assertAbsent(datasetPath),
77
+ assertAbsent(sha256Path),
78
+ assertAbsent(manifestPath)
79
+ ]);
80
+ const sealedAt = options.sealedAt ?? new Date().toISOString();
81
+ if (!Number.isFinite(Date.parse(sealedAt))) {
82
+ throw new Error(`Invalid sealed_at timestamp: ${sealedAt}`);
83
+ }
84
+ const manifest = {
85
+ schema_version: "once-dataset-manifest-v1",
86
+ observation_schema: "once-benchmark-observation-v1",
87
+ trace_format: "jsonl",
88
+ dataset_id: datasetId,
89
+ sealed_at: new Date(sealedAt).toISOString(),
90
+ dataset_filename: datasetFilename,
91
+ sha256_filename: sha256Filename,
92
+ manifest_filename: manifestFilename,
93
+ source_trace_filename: basename(tracePath),
94
+ sha256,
95
+ raw_bytes: rawTrace.byteLength,
96
+ observations: observations.length,
97
+ unique_resources: uniqueResources,
98
+ collection_started_at: collectionStartedAt,
99
+ collection_ended_at: collectionEndedAt,
100
+ collectors: collectorNames(observations),
101
+ collector_git_commit: collectorGitCommit,
102
+ once_decision_count: 0
103
+ };
104
+ // The dataset bytes are written exactly as collected. No reserialization.
105
+ await writeFile(datasetPath, rawTrace, { flag: "wx" });
106
+ await writeFile(sha256Path, `${sha256} ${datasetFilename}\n`, { encoding: "utf8", flag: "wx" });
107
+ await writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, { encoding: "utf8", flag: "wx" });
108
+ return {
109
+ datasetPath,
110
+ sha256Path,
111
+ manifestPath,
112
+ manifest
113
+ };
114
+ }
115
+ export async function runDatasetSeal(tracePath, options) {
116
+ const result = await sealDataset(tracePath, options);
117
+ console.log("");
118
+ console.log("Once Dataset Seal");
119
+ console.log("-----------------");
120
+ console.log(`Dataset: ${result.datasetPath}`);
121
+ console.log(`SHA-256: ${result.manifest.sha256}`);
122
+ console.log(`Hash file: ${result.sha256Path}`);
123
+ console.log(`Manifest: ${result.manifestPath}`);
124
+ console.log(`Observations: ${result.manifest.observations}`);
125
+ console.log(`Unique resources: ${result.manifest.unique_resources}`);
126
+ console.log(`Collection start: ${result.manifest.collection_started_at}`);
127
+ console.log(`Collection end: ${result.manifest.collection_ended_at}`);
128
+ console.log(`Collector commit: ${result.manifest.collector_git_commit}`);
129
+ console.log("Policy decisions present: 0");
130
+ console.log("Status: SEALED RAW HOLDOUT");
131
+ return result;
132
+ }
133
+ //# sourceMappingURL=dataset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../src/dataset.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,31 @@ 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;
105
+ export { CONNECT_DECISION, classifyConnectOperation } from "./connect/classifier.js";
106
+ export type { ConnectDecision, ConnectSafetyDeclaration, ConnectClassification } from "./connect/classifier.js";
107
+ export { ConnectBindingError, canonicalizeConnectPayload, fingerprintConnectPayload, bindConnectOperation, assertConnectBindingMatch } from "./connect/binding.js";
108
+ export type { ConnectPayload, ConnectBinding } from "./connect/binding.js";
109
+ export { ConnectExecutionError, executeConnectOperation } from "./connect/execute.js";
110
+ export type { ConnectProtectedContext, ConnectExecutionInput } from "./connect/execute.js";
111
+ export { ConnectKernelError, executeConnectWithOnce } from "./connect/kernel.js";
112
+ export type { ConnectKernelInput } from "./connect/kernel.js";
113
+ export { OpenAIAgentsConnectError, executeOpenAIAgentsConnectTool } from "./connect/openai-agents.js";
114
+ export type { OpenAIAgentsToolInput, OpenAIAgentsAction, OpenAIAgentsConnectToolInput } from "./connect/openai-agents.js";
76
115
  //# 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,8 +178,9 @@ 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,
183
+ redirect: "error",
169
184
  signal: controller.signal,
170
185
  headers: {
171
186
  authorization: `Bearer ${this.apiKey}`,
@@ -173,8 +188,8 @@ export class Once {
173
188
  ...init.headers
174
189
  }
175
190
  });
176
- clearTimeout(timeout);
177
191
  const raw = await response.text();
192
+ clearTimeout(timeout);
178
193
  let body = null;
179
194
  if (raw) {
180
195
  try {
@@ -233,8 +248,250 @@ export class Once {
233
248
  throw new OnceNetworkError("Could not reach Once", lastError);
234
249
  }
235
250
  }
251
+ function runtimeJsonContentType(request) {
252
+ const contentType = request.headers
253
+ .get("content-type")
254
+ ?.toLowerCase() ??
255
+ "";
256
+ return contentType.includes("application/json");
257
+ }
258
+ function assertRuntimeHeaderShape(request) {
259
+ const allowed = new Set([
260
+ "content-type",
261
+ "idempotency-key",
262
+ "x-idempotency-key"
263
+ ]);
264
+ for (const [name] of request.headers) {
265
+ if (!allowed.has(name.toLowerCase())) {
266
+ throw new OnceRuntimeHttpShapeError(`Once Runtime HTTP v0.1 cannot safely preserve target header "${name}".`);
267
+ }
268
+ }
269
+ }
270
+ function parseRuntimeReplay(value) {
271
+ if (value === null ||
272
+ typeof value !== "object" ||
273
+ Array.isArray(value)) {
274
+ throw new OnceError("Once confirmed the operation but did not return a replayable HTTP response.", {
275
+ code: "runtime_http_response_missing",
276
+ body: value
277
+ });
278
+ }
279
+ const candidate = value;
280
+ const status = Number(candidate.status);
281
+ /*
282
+ * Fetch Response constructors cannot represent
283
+ * informational 1xx responses.
284
+ */
285
+ if (!Number.isInteger(status) ||
286
+ status < 200 ||
287
+ status > 599) {
288
+ throw new OnceError("Once returned an HTTP replay with an unsupported status.", {
289
+ code: "runtime_http_response_invalid_status",
290
+ body: value
291
+ });
292
+ }
293
+ if (typeof candidate.body_text !==
294
+ "string") {
295
+ throw new OnceError("Once returned an HTTP replay without a valid text body.", {
296
+ code: "runtime_http_response_invalid_body",
297
+ body: value
298
+ });
299
+ }
300
+ if (candidate.headers === null ||
301
+ typeof candidate.headers !==
302
+ "object" ||
303
+ Array.isArray(candidate.headers)) {
304
+ throw new OnceError("Once returned an HTTP replay without valid headers.", {
305
+ code: "runtime_http_response_invalid_headers",
306
+ body: value
307
+ });
308
+ }
309
+ const headers = {};
310
+ for (const [name, headerValue] of Object.entries(candidate.headers)) {
311
+ if (typeof headerValue !==
312
+ "string") {
313
+ throw new OnceError("Once returned a non-string HTTP replay header.", {
314
+ code: "runtime_http_response_invalid_headers",
315
+ body: value
316
+ });
317
+ }
318
+ headers[name] =
319
+ headerValue;
320
+ }
321
+ const nullBody = status === 204 ||
322
+ status === 205 ||
323
+ status === 304;
324
+ if (nullBody &&
325
+ candidate.body_text.length > 0) {
326
+ throw new OnceError("Once returned a body for an HTTP status that cannot carry one.", {
327
+ code: "runtime_http_response_invalid_body",
328
+ body: value
329
+ });
330
+ }
331
+ return {
332
+ status,
333
+ body_text: candidate.body_text,
334
+ headers,
335
+ ...(typeof candidate.recorded_at ===
336
+ "string"
337
+ ? {
338
+ recorded_at: candidate.recorded_at
339
+ }
340
+ : {})
341
+ };
342
+ }
343
+ function createRuntimeCloudProtector(once) {
344
+ return async ({ request, decision, provider }) => {
345
+ if (decision.decision !==
346
+ "PROTECT") {
347
+ throw new OnceError("Runtime protector received a non-protected operation.", {
348
+ code: "runtime_invalid_protect_state"
349
+ });
350
+ }
351
+ if (!decision.operationId) {
352
+ throw new OnceError("Runtime protected operation is missing its resolved operation ID.", {
353
+ code: "runtime_operation_id_missing"
354
+ });
355
+ }
356
+ if (typeof provider !==
357
+ "string" ||
358
+ provider.trim().length ===
359
+ 0) {
360
+ throw new OnceError("Runtime protected operation is missing its resolved provider.", {
361
+ code: "runtime_provider_missing"
362
+ });
363
+ }
364
+ const method = request.method
365
+ .trim()
366
+ .toUpperCase();
367
+ /*
368
+ * Classification recognizes POST/PUT/PATCH/DELETE as
369
+ * consequential. Execution v0.1 intentionally proves
370
+ * only POST + JSON.
371
+ */
372
+ if (method !== "POST") {
373
+ throw new OnceRuntimeHttpShapeError(`Once Runtime HTTP v0.1 only has a proven protected execution contract for POST, not ${method || "(empty)"}.`);
374
+ }
375
+ if (!runtimeJsonContentType(request)) {
376
+ throw new OnceRuntimeHttpShapeError("Once Runtime HTTP v0.1 only protects application/json POST bodies.");
377
+ }
378
+ assertRuntimeHeaderShape(request);
379
+ const bodyText = await request
380
+ .clone()
381
+ .text();
382
+ if (bodyText.trim().length ===
383
+ 0) {
384
+ throw new OnceRuntimeHttpShapeError("Once Runtime HTTP v0.1 requires a non-empty JSON body.");
385
+ }
386
+ try {
387
+ JSON.parse(bodyText);
388
+ }
389
+ catch {
390
+ throw new OnceRuntimeHttpShapeError("Once Runtime HTTP v0.1 requires a valid JSON body.");
391
+ }
392
+ const result = await once.execute({
393
+ operationId: decision.operationId,
394
+ provider: provider.trim(),
395
+ action: {
396
+ type: "http_write_v1",
397
+ method: "POST",
398
+ url: request.url,
399
+ body_json: bodyText
400
+ }
401
+ });
402
+ const replay = parseRuntimeReplay(result.http_response);
403
+ const nullBody = replay.status === 204 ||
404
+ replay.status === 205 ||
405
+ replay.status === 304;
406
+ return new Response(nullBody
407
+ ? null
408
+ : replay.body_text, {
409
+ status: replay.status,
410
+ headers: replay.headers
411
+ });
412
+ };
413
+ }
414
+ /**
415
+ * Create a fetch-compatible Once Runtime.
416
+ *
417
+ * v0.1 proven protected execution shape:
418
+ * POST + application/json + stable identity.
419
+ */
420
+ export function createOnceRuntimeFetch(options = {}) {
421
+ const originalFetch = options.fetchImpl ??
422
+ globalThis.fetch;
423
+ if (typeof originalFetch !==
424
+ "function") {
425
+ throw new OnceError("Once Runtime requires a native fetch implementation.", {
426
+ code: "runtime_fetch_missing"
427
+ });
428
+ }
429
+ /*
430
+ * Once Cloud requests use the captured native fetch.
431
+ * They cannot recursively enter this interceptor.
432
+ */
433
+ const once = new Once({
434
+ apiKey: options.apiKey,
435
+ baseUrl: options.baseUrl,
436
+ timeoutMs: options.timeoutMs,
437
+ networkRetries: options.networkRetries,
438
+ fetchImpl: originalFetch
439
+ });
440
+ return createOnceFetchInterceptor({
441
+ provider: options.provider,
442
+ shouldProtect: options.shouldProtect,
443
+ resolveProvider: options.resolveProvider,
444
+ resolveOperationId: options.resolveOperationId,
445
+ fetchImpl: originalFetch,
446
+ protect: createRuntimeCloudProtector(once)
447
+ });
448
+ }
449
+ /**
450
+ * Explicit reversible global fetch installation.
451
+ */
452
+ export function installOnceRuntimeFetch(options = {}) {
453
+ const previous = globalThis.fetch;
454
+ const intercepted = createOnceRuntimeFetch({
455
+ ...options,
456
+ fetchImpl: options.fetchImpl ??
457
+ previous
458
+ });
459
+ globalThis.fetch =
460
+ intercepted;
461
+ let restored = false;
462
+ return {
463
+ fetch: intercepted,
464
+ restore: () => {
465
+ if (restored) {
466
+ return;
467
+ }
468
+ if (globalThis.fetch ===
469
+ intercepted) {
470
+ globalThis.fetch =
471
+ previous;
472
+ }
473
+ restored =
474
+ true;
475
+ }
476
+ };
477
+ }
236
478
  function sleep(ms) {
237
479
  return new Promise(resolve => setTimeout(resolve, ms));
238
480
  }
481
+ export { createOnceFetchInterceptor, installOnceFetchInterceptor, OnceRuntimeBlockedError } from "./runtime/fetch-interceptor.js";
482
+ export { prepareHttpExecution } from "./runtime/pipeline.js";
483
+ export { decideHttpExecution } from "./runtime/decision.js";
484
+ export { resolveHttpOperationIdentity } from "./runtime/identity.js";
239
485
  export default Once;
486
+ /*
487
+ * Once Connect
488
+ *
489
+ * Framework-neutral execution-safety boundary for agent/tool integrations.
490
+ * Protected execution delegates to the existing Once kernel.
491
+ */
492
+ export { CONNECT_DECISION, classifyConnectOperation } from "./connect/classifier.js";
493
+ export { ConnectBindingError, canonicalizeConnectPayload, fingerprintConnectPayload, bindConnectOperation, assertConnectBindingMatch } from "./connect/binding.js";
494
+ export { ConnectExecutionError, executeConnectOperation } from "./connect/execute.js";
495
+ export { ConnectKernelError, executeConnectWithOnce } from "./connect/kernel.js";
496
+ export { OpenAIAgentsConnectError, executeOpenAIAgentsConnectTool } from "./connect/openai-agents.js";
240
497
  //# 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"}