@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.
- package/LICENSE +20 -20
- package/README.md +62 -3
- package/dist/benchmark.d.ts +40 -0
- package/dist/benchmark.d.ts.map +1 -0
- package/dist/benchmark.js +169 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/cli.js +52 -12
- package/dist/cli.js.map +1 -1
- package/dist/connect/binding.d.ts +17 -0
- package/dist/connect/binding.d.ts.map +1 -0
- package/dist/connect/binding.js +91 -0
- package/dist/connect/binding.js.map +1 -0
- package/dist/connect/classifier.d.ts +18 -0
- package/dist/connect/classifier.d.ts.map +1 -0
- package/dist/connect/classifier.js +49 -0
- package/dist/connect/classifier.js.map +1 -0
- package/dist/connect/execute.d.ts +30 -0
- package/dist/connect/execute.d.ts.map +1 -0
- package/dist/connect/execute.js +47 -0
- package/dist/connect/execute.js.map +1 -0
- package/dist/connect/kernel.d.ts +33 -0
- package/dist/connect/kernel.d.ts.map +1 -0
- package/dist/connect/kernel.js +46 -0
- package/dist/connect/kernel.js.map +1 -0
- package/dist/connect/openai-agents.d.ts +31 -0
- package/dist/connect/openai-agents.d.ts.map +1 -0
- package/dist/connect/openai-agents.js +42 -0
- package/dist/connect/openai-agents.js.map +1 -0
- package/dist/dataset-cli.d.ts +3 -0
- package/dist/dataset-cli.d.ts.map +1 -0
- package/dist/dataset-cli.js +49 -0
- package/dist/dataset-cli.js.map +1 -0
- package/dist/dataset-progress.d.ts +16 -0
- package/dist/dataset-progress.d.ts.map +1 -0
- package/dist/dataset-progress.js +130 -0
- package/dist/dataset-progress.js.map +1 -0
- package/dist/dataset.d.ts +35 -0
- package/dist/dataset.d.ts.map +1 -0
- package/dist/dataset.js +133 -0
- package/dist/dataset.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +259 -2
- package/dist/index.js.map +1 -1
- package/dist/runtime/decision.d.ts +39 -0
- package/dist/runtime/decision.d.ts.map +1 -0
- package/dist/runtime/decision.js +102 -0
- package/dist/runtime/decision.js.map +1 -0
- package/dist/runtime/fetch-interceptor.d.ts +74 -0
- package/dist/runtime/fetch-interceptor.d.ts.map +1 -0
- package/dist/runtime/fetch-interceptor.js +156 -0
- package/dist/runtime/fetch-interceptor.js.map +1 -0
- package/dist/runtime/identity.d.ts +23 -0
- package/dist/runtime/identity.d.ts.map +1 -0
- package/dist/runtime/identity.js +191 -0
- package/dist/runtime/identity.js.map +1 -0
- package/dist/runtime/pipeline.d.ts +25 -0
- package/dist/runtime/pipeline.d.ts.map +1 -0
- package/dist/runtime/pipeline.js +121 -0
- package/dist/runtime/pipeline.js.map +1 -0
- package/dist/setup.d.ts +2 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +126 -33
- package/dist/setup.js.map +1 -1
- package/dist/trace.d.ts +13 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +60 -0
- package/dist/trace.js.map +1 -0
- package/dist-cjs/connect/binding.js +99 -0
- package/dist-cjs/connect/binding.js.map +1 -0
- package/dist-cjs/connect/classifier.js +53 -0
- package/dist-cjs/connect/classifier.js.map +1 -0
- package/dist-cjs/connect/execute.js +52 -0
- package/dist-cjs/connect/execute.js.map +1 -0
- package/dist-cjs/connect/kernel.js +51 -0
- package/dist-cjs/connect/kernel.js.map +1 -0
- package/dist-cjs/connect/openai-agents.js +47 -0
- package/dist-cjs/connect/openai-agents.js.map +1 -0
- package/dist-cjs/index.js +282 -3
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/runtime/decision.js +105 -0
- package/dist-cjs/runtime/decision.js.map +1 -0
- package/dist-cjs/runtime/fetch-interceptor.js +162 -0
- package/dist-cjs/runtime/fetch-interceptor.js.map +1 -0
- package/dist-cjs/runtime/identity.js +194 -0
- package/dist-cjs/runtime/identity.js.map +1 -0
- package/dist-cjs/runtime/pipeline.js +124 -0
- package/dist-cjs/runtime/pipeline.js.map +1 -0
- package/package.json +91 -69
package/dist-cjs/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,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decideHttpExecution = decideHttpExecution;
|
|
4
|
+
const SAFE_HTTP_METHODS = new Set([
|
|
5
|
+
"GET",
|
|
6
|
+
"HEAD",
|
|
7
|
+
"OPTIONS"
|
|
8
|
+
]);
|
|
9
|
+
const CONSEQUENTIAL_HTTP_METHODS = new Set([
|
|
10
|
+
"POST",
|
|
11
|
+
"PUT",
|
|
12
|
+
"PATCH",
|
|
13
|
+
"DELETE"
|
|
14
|
+
]);
|
|
15
|
+
function normalizeMethod(method) {
|
|
16
|
+
return String(method || "")
|
|
17
|
+
.trim()
|
|
18
|
+
.toUpperCase();
|
|
19
|
+
}
|
|
20
|
+
function nonEmpty(value) {
|
|
21
|
+
return (typeof value === "string" &&
|
|
22
|
+
value.trim().length > 0);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Decide whether an outbound HTTP operation may
|
|
26
|
+
* pass normally, must be protected by Once, or
|
|
27
|
+
* must fail closed.
|
|
28
|
+
*
|
|
29
|
+
* v0.1 intentionally does NOT guess identity.
|
|
30
|
+
*
|
|
31
|
+
* A consequential operation without a stable
|
|
32
|
+
* operationId is blocked rather than executed
|
|
33
|
+
* unsafely.
|
|
34
|
+
*/
|
|
35
|
+
function decideHttpExecution(call) {
|
|
36
|
+
const method = normalizeMethod(call.method);
|
|
37
|
+
let parsedUrl;
|
|
38
|
+
try {
|
|
39
|
+
parsedUrl =
|
|
40
|
+
new URL(call.url);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return {
|
|
44
|
+
decision: "BLOCK",
|
|
45
|
+
code: "INVALID_URL",
|
|
46
|
+
consequential: true,
|
|
47
|
+
method,
|
|
48
|
+
reason: "Runtime could not safely determine the destination URL."
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (parsedUrl.protocol !== "https:" &&
|
|
52
|
+
parsedUrl.protocol !== "http:") {
|
|
53
|
+
return {
|
|
54
|
+
decision: "BLOCK",
|
|
55
|
+
code: "UNSUPPORTED_PROTOCOL",
|
|
56
|
+
consequential: true,
|
|
57
|
+
method,
|
|
58
|
+
reason: `Runtime does not support protocol ${parsedUrl.protocol}`
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (SAFE_HTTP_METHODS.has(method)) {
|
|
62
|
+
return {
|
|
63
|
+
decision: "PASS",
|
|
64
|
+
code: "SAFE_HTTP_METHOD",
|
|
65
|
+
consequential: false,
|
|
66
|
+
method,
|
|
67
|
+
reason: `${method} is treated as a non-consequential HTTP read in Runtime v0.1.`
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (!CONSEQUENTIAL_HTTP_METHODS.has(method)) {
|
|
71
|
+
return {
|
|
72
|
+
decision: "BLOCK",
|
|
73
|
+
code: "UNSUPPORTED_HTTP_METHOD",
|
|
74
|
+
consequential: true,
|
|
75
|
+
method,
|
|
76
|
+
reason: `Runtime does not yet have a proven execution policy for HTTP method ${method || "(empty)"}.`
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (!nonEmpty(call.provider)) {
|
|
80
|
+
return {
|
|
81
|
+
decision: "BLOCK",
|
|
82
|
+
code: "MISSING_PROVIDER",
|
|
83
|
+
consequential: true,
|
|
84
|
+
method,
|
|
85
|
+
reason: "Consequential operation has no configured Once provider."
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (!nonEmpty(call.operationId)) {
|
|
89
|
+
return {
|
|
90
|
+
decision: "BLOCK",
|
|
91
|
+
code: "MISSING_OPERATION_ID",
|
|
92
|
+
consequential: true,
|
|
93
|
+
method,
|
|
94
|
+
reason: "Consequential operation has no stable operation identity. Once refuses unsafe execution."
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
decision: "PROTECT",
|
|
99
|
+
code: "CONSEQUENTIAL_HTTP_WRITE",
|
|
100
|
+
consequential: true,
|
|
101
|
+
method,
|
|
102
|
+
reason: "Consequential HTTP operation has a provider and stable identity and must execute through Once."
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=decision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../../src/runtime/decision.ts"],"names":[],"mappings":";;AAyFA,kDAsKC;AArND,MAAM,iBAAiB,GACrB,IAAI,GAAG,CAAC;IACN,KAAK;IACL,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEL,MAAM,0BAA0B,GAC9B,IAAI,GAAG,CAAC;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;CACT,CAAC,CAAC;AAEL,SAAS,eAAe,CACtB,MAAc;IAGd,OAAO,MAAM,CACX,MAAM,IAAI,EAAE,CACb;SACE,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CACf,KAAyB;IAGzB,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,IAAyB;IAGzB,MAAM,MAAM,GACV,eAAe,CACb,IAAI,CAAC,MAAM,CACZ,CAAC;IAEJ,IAAI,SAAc,CAAC;IAEnB,IAAI,CAAC;QAEH,SAAS;YACP,IAAI,GAAG,CACL,IAAI,CAAC,GAAG,CACT,CAAC;IAEN,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO;YACL,QAAQ,EACN,OAAO;YAET,IAAI,EACF,aAAa;YAEf,aAAa,EACX,IAAI;YAEN,MAAM;YAEN,MAAM,EACJ,yDAAyD;SAC5D,CAAC;IACJ,CAAC;IAED,IACE,SAAS,CAAC,QAAQ,KAAK,QAAQ;QAC/B,SAAS,CAAC,QAAQ,KAAK,OAAO,EAC9B,CAAC;QAED,OAAO;YACL,QAAQ,EACN,OAAO;YAET,IAAI,EACF,sBAAsB;YAExB,aAAa,EACX,IAAI;YAEN,MAAM;YAEN,MAAM,EACJ,qCAAqC,SAAS,CAAC,QAAQ,EAAE;SAC5D,CAAC;IACJ,CAAC;IAED,IACE,iBAAiB,CAAC,GAAG,CACnB,MAAM,CACP,EACD,CAAC;QAED,OAAO;YACL,QAAQ,EACN,MAAM;YAER,IAAI,EACF,kBAAkB;YAEpB,aAAa,EACX,KAAK;YAEP,MAAM;YAEN,MAAM,EACJ,GAAG,MAAM,+DAA+D;SAC3E,CAAC;IACJ,CAAC;IAED,IACE,CAAC,0BAA0B,CAAC,GAAG,CAC7B,MAAM,CACP,EACD,CAAC;QAED,OAAO;YACL,QAAQ,EACN,OAAO;YAET,IAAI,EACF,yBAAyB;YAE3B,aAAa,EACX,IAAI;YAEN,MAAM;YAEN,MAAM,EACJ,uEAAuE,MAAM,IAAI,SAAS,GAAG;SAChG,CAAC;IACJ,CAAC;IAED,IACE,CAAC,QAAQ,CACP,IAAI,CAAC,QAAQ,CACd,EACD,CAAC;QAED,OAAO;YACL,QAAQ,EACN,OAAO;YAET,IAAI,EACF,kBAAkB;YAEpB,aAAa,EACX,IAAI;YAEN,MAAM;YAEN,MAAM,EACJ,0DAA0D;SAC7D,CAAC;IACJ,CAAC;IAED,IACE,CAAC,QAAQ,CACP,IAAI,CAAC,WAAW,CACjB,EACD,CAAC;QAED,OAAO;YACL,QAAQ,EACN,OAAO;YAET,IAAI,EACF,sBAAsB;YAExB,aAAa,EACX,IAAI;YAEN,MAAM;YAEN,MAAM,EACJ,0FAA0F;SAC7F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EACN,SAAS;QAEX,IAAI,EACF,0BAA0B;QAE5B,aAAa,EACX,IAAI;QAEN,MAAM;QAEN,MAAM,EACJ,gGAAgG;KACnG,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnceRuntimeBlockedError = void 0;
|
|
4
|
+
exports.createOnceFetchInterceptor = createOnceFetchInterceptor;
|
|
5
|
+
exports.installOnceFetchInterceptor = installOnceFetchInterceptor;
|
|
6
|
+
const pipeline_js_1 = require("./pipeline.js");
|
|
7
|
+
class OnceRuntimeBlockedError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
decision;
|
|
10
|
+
constructor(decision) {
|
|
11
|
+
super(`Once blocked outbound HTTP execution: ${decision.code}. ${decision.reason}`);
|
|
12
|
+
this.name =
|
|
13
|
+
"OnceRuntimeBlockedError";
|
|
14
|
+
this.code =
|
|
15
|
+
decision.code;
|
|
16
|
+
this.decision =
|
|
17
|
+
decision;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.OnceRuntimeBlockedError = OnceRuntimeBlockedError;
|
|
21
|
+
function headersToObject(headers) {
|
|
22
|
+
const result = {};
|
|
23
|
+
headers.forEach((value, key) => {
|
|
24
|
+
result[key] =
|
|
25
|
+
value;
|
|
26
|
+
});
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
async function inspectBody(request) {
|
|
30
|
+
const method = request.method
|
|
31
|
+
.trim()
|
|
32
|
+
.toUpperCase();
|
|
33
|
+
if (method === "GET" ||
|
|
34
|
+
method === "HEAD" ||
|
|
35
|
+
method === "OPTIONS") {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
/*
|
|
39
|
+
* Identity v0.1 currently recognizes JSON-style
|
|
40
|
+
* body identity fields.
|
|
41
|
+
*
|
|
42
|
+
* Clone first so inspection never consumes the
|
|
43
|
+
* actual request body.
|
|
44
|
+
*/
|
|
45
|
+
let clone;
|
|
46
|
+
try {
|
|
47
|
+
clone =
|
|
48
|
+
request.clone();
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
const contentType = clone.headers
|
|
54
|
+
.get("content-type")
|
|
55
|
+
?.toLowerCase() ??
|
|
56
|
+
"";
|
|
57
|
+
if (!contentType.includes("application/json")) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const text = await clone.text();
|
|
62
|
+
return (text.length > 0
|
|
63
|
+
? text
|
|
64
|
+
: undefined);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create a fetch-compatible Once interception
|
|
72
|
+
* function without mutating global state.
|
|
73
|
+
*/
|
|
74
|
+
function createOnceFetchInterceptor(options) {
|
|
75
|
+
const originalFetch = options.fetchImpl ??
|
|
76
|
+
globalThis.fetch;
|
|
77
|
+
if (typeof originalFetch !==
|
|
78
|
+
"function") {
|
|
79
|
+
throw new Error("Once Runtime requires a native fetch implementation.");
|
|
80
|
+
}
|
|
81
|
+
const intercepted = async (input, init) => {
|
|
82
|
+
/*
|
|
83
|
+
* Constructing a Request gives us one
|
|
84
|
+
* normalized view of URL, method, headers
|
|
85
|
+
* and body while preserving native fetch
|
|
86
|
+
* semantics for the final call.
|
|
87
|
+
*/
|
|
88
|
+
const request = new Request(input, init);
|
|
89
|
+
// Reads bypass policy/provider/identity hooks as well as the ledger.
|
|
90
|
+
if (["GET", "HEAD", "OPTIONS"].includes(request.method) ||
|
|
91
|
+
(options.shouldProtect && await options.shouldProtect(request.clone()) === false)) {
|
|
92
|
+
return await originalFetch(request);
|
|
93
|
+
}
|
|
94
|
+
const provider = options.resolveProvider
|
|
95
|
+
? await options.resolveProvider(request)
|
|
96
|
+
: options.provider;
|
|
97
|
+
const explicitOperationId = options.resolveOperationId
|
|
98
|
+
? await options.resolveOperationId(request)
|
|
99
|
+
: undefined;
|
|
100
|
+
const body = await inspectBody(request);
|
|
101
|
+
const decision = (0, pipeline_js_1.prepareHttpExecution)({
|
|
102
|
+
method: request.method,
|
|
103
|
+
url: request.url,
|
|
104
|
+
provider,
|
|
105
|
+
operationId: explicitOperationId,
|
|
106
|
+
headers: headersToObject(request.headers),
|
|
107
|
+
body
|
|
108
|
+
});
|
|
109
|
+
if (decision.decision ===
|
|
110
|
+
"PASS") {
|
|
111
|
+
return await originalFetch(request);
|
|
112
|
+
}
|
|
113
|
+
if (decision.decision ===
|
|
114
|
+
"BLOCK") {
|
|
115
|
+
throw new OnceRuntimeBlockedError(decision);
|
|
116
|
+
}
|
|
117
|
+
return await options.protect({
|
|
118
|
+
request,
|
|
119
|
+
decision,
|
|
120
|
+
provider,
|
|
121
|
+
originalFetch
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
return intercepted;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Install Once at the process-wide fetch boundary.
|
|
128
|
+
*
|
|
129
|
+
* Installation is explicit and reversible.
|
|
130
|
+
*/
|
|
131
|
+
function installOnceFetchInterceptor(options) {
|
|
132
|
+
const previous = globalThis.fetch;
|
|
133
|
+
const intercepted = createOnceFetchInterceptor({
|
|
134
|
+
...options,
|
|
135
|
+
fetchImpl: options.fetchImpl ??
|
|
136
|
+
previous
|
|
137
|
+
});
|
|
138
|
+
globalThis.fetch =
|
|
139
|
+
intercepted;
|
|
140
|
+
let restored = false;
|
|
141
|
+
return {
|
|
142
|
+
fetch: intercepted,
|
|
143
|
+
restore: () => {
|
|
144
|
+
if (restored) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
/*
|
|
148
|
+
* Restore only if our interceptor still
|
|
149
|
+
* owns global fetch. Do not overwrite a
|
|
150
|
+
* later runtime/framework replacement.
|
|
151
|
+
*/
|
|
152
|
+
if (globalThis.fetch ===
|
|
153
|
+
intercepted) {
|
|
154
|
+
globalThis.fetch =
|
|
155
|
+
previous;
|
|
156
|
+
}
|
|
157
|
+
restored =
|
|
158
|
+
true;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=fetch-interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-interceptor.js","sourceRoot":"","sources":["../../src/runtime/fetch-interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveHttpOperationIdentity = resolveHttpOperationIdentity;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const BODY_FIELDS = [
|
|
6
|
+
{
|
|
7
|
+
key: "once_operation_id",
|
|
8
|
+
source: "body:once_operation_id"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
key: "onceOperationId",
|
|
12
|
+
source: "body:onceOperationId"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
key: "operation_id",
|
|
16
|
+
source: "body:operation_id"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
key: "operationId",
|
|
20
|
+
source: "body:operationId"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
key: "idempotency_key",
|
|
24
|
+
source: "body:idempotency_key"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: "idempotencyKey",
|
|
28
|
+
source: "body:idempotencyKey"
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
function clean(value) {
|
|
32
|
+
if (typeof value !== "string") {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const result = value.trim();
|
|
36
|
+
return result.length > 0
|
|
37
|
+
? result
|
|
38
|
+
: null;
|
|
39
|
+
}
|
|
40
|
+
function normalizeMethod(value) {
|
|
41
|
+
return String(value || "")
|
|
42
|
+
.trim()
|
|
43
|
+
.toUpperCase();
|
|
44
|
+
}
|
|
45
|
+
function normalizeUrl(value) {
|
|
46
|
+
try {
|
|
47
|
+
const url = new URL(value);
|
|
48
|
+
if (url.protocol !== "https:" &&
|
|
49
|
+
url.protocol !== "http:") {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
url.hash = "";
|
|
53
|
+
const params = Array.from(url.searchParams.entries()).sort(([ak, av], [bk, bv]) => ak.localeCompare(bk) ||
|
|
54
|
+
av.localeCompare(bv));
|
|
55
|
+
url.search = "";
|
|
56
|
+
for (const [key, item] of params) {
|
|
57
|
+
url.searchParams.append(key, item);
|
|
58
|
+
}
|
|
59
|
+
return url.toString();
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function headerValue(headers, wanted) {
|
|
66
|
+
if (!headers) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
70
|
+
if (key.toLowerCase() !==
|
|
71
|
+
wanted.toLowerCase()) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (Array.isArray(value)) {
|
|
75
|
+
const valid = value
|
|
76
|
+
.map(clean)
|
|
77
|
+
.filter((item) => item !== null);
|
|
78
|
+
return valid.length === 1
|
|
79
|
+
? valid[0]
|
|
80
|
+
: null;
|
|
81
|
+
}
|
|
82
|
+
return clean(value);
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
function bodyObject(body) {
|
|
87
|
+
if (body === null ||
|
|
88
|
+
body === undefined) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
if (typeof body === "string") {
|
|
92
|
+
try {
|
|
93
|
+
const parsed = JSON.parse(body);
|
|
94
|
+
if (parsed &&
|
|
95
|
+
typeof parsed === "object" &&
|
|
96
|
+
!Array.isArray(parsed)) {
|
|
97
|
+
return parsed;
|
|
98
|
+
}
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (typeof body === "object" &&
|
|
106
|
+
!Array.isArray(body)) {
|
|
107
|
+
return body;
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
function candidates(input) {
|
|
112
|
+
const result = [];
|
|
113
|
+
const explicit = clean(input.operationId);
|
|
114
|
+
if (explicit) {
|
|
115
|
+
result.push({
|
|
116
|
+
source: "explicit",
|
|
117
|
+
value: explicit
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
const normalHeader = headerValue(input.headers, "idempotency-key");
|
|
121
|
+
if (normalHeader) {
|
|
122
|
+
result.push({
|
|
123
|
+
source: "header:idempotency-key",
|
|
124
|
+
value: normalHeader
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
const alternateHeader = headerValue(input.headers, "x-idempotency-key");
|
|
128
|
+
if (alternateHeader) {
|
|
129
|
+
result.push({
|
|
130
|
+
source: "header:x-idempotency-key",
|
|
131
|
+
value: alternateHeader
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const body = bodyObject(input.body);
|
|
135
|
+
if (body) {
|
|
136
|
+
for (const field of BODY_FIELDS) {
|
|
137
|
+
const value = clean(body[field.key]);
|
|
138
|
+
if (value) {
|
|
139
|
+
result.push({
|
|
140
|
+
source: field.source,
|
|
141
|
+
value
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return result;
|
|
147
|
+
}
|
|
148
|
+
function buildOperationId(method, url, identity) {
|
|
149
|
+
const hash = (0, node_crypto_1.createHash)("sha256");
|
|
150
|
+
hash.update("once-runtime-http-id-v1\u0000", "utf8");
|
|
151
|
+
for (const value of [method, url, identity]) {
|
|
152
|
+
const bytes = Buffer.from(value, "utf8");
|
|
153
|
+
const length = Buffer.allocUnsafe(4);
|
|
154
|
+
length.writeUInt32BE(bytes.length, 0);
|
|
155
|
+
hash.update(length);
|
|
156
|
+
hash.update(bytes);
|
|
157
|
+
}
|
|
158
|
+
return ("http:" +
|
|
159
|
+
hash
|
|
160
|
+
.digest("hex")
|
|
161
|
+
.slice(0, 32));
|
|
162
|
+
}
|
|
163
|
+
function resolveHttpOperationIdentity(input) {
|
|
164
|
+
const method = normalizeMethod(input.method);
|
|
165
|
+
const url = normalizeUrl(input.url);
|
|
166
|
+
if (!url) {
|
|
167
|
+
return {
|
|
168
|
+
status: "REQUIRED",
|
|
169
|
+
reason: "A valid HTTP(S) destination is required."
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
const found = candidates(input);
|
|
173
|
+
if (found.length === 0) {
|
|
174
|
+
return {
|
|
175
|
+
status: "REQUIRED",
|
|
176
|
+
reason: "No trustworthy stable identity carrier was found. Runtime refuses to guess."
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
const values = Array.from(new Set(found.map(item => item.value)));
|
|
180
|
+
if (values.length !== 1) {
|
|
181
|
+
return {
|
|
182
|
+
status: "CONFLICT",
|
|
183
|
+
sources: found.map(item => item.source),
|
|
184
|
+
reason: "Stable identity carriers disagree. Runtime refuses ambiguous identity."
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
status: "FOUND",
|
|
189
|
+
operationId: buildOperationId(method, url, values[0]),
|
|
190
|
+
source: found[0].source,
|
|
191
|
+
reason: "Stable identity found and deterministically bound to this HTTP operation."
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/runtime/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prepareHttpExecution = prepareHttpExecution;
|
|
4
|
+
const decision_js_1 = require("./decision.js");
|
|
5
|
+
const identity_js_1 = require("./identity.js");
|
|
6
|
+
function prepareHttpExecution(request) {
|
|
7
|
+
const identity = (0, identity_js_1.resolveHttpOperationIdentity)({
|
|
8
|
+
method: request.method,
|
|
9
|
+
url: request.url,
|
|
10
|
+
operationId: request.operationId,
|
|
11
|
+
headers: request.headers,
|
|
12
|
+
body: request.body
|
|
13
|
+
});
|
|
14
|
+
const resolvedOperationId = identity.status === "FOUND"
|
|
15
|
+
? identity.operationId
|
|
16
|
+
: undefined;
|
|
17
|
+
const gate = (0, decision_js_1.decideHttpExecution)({
|
|
18
|
+
surface: "http",
|
|
19
|
+
method: request.method,
|
|
20
|
+
url: request.url,
|
|
21
|
+
provider: request.provider,
|
|
22
|
+
operationId: resolvedOperationId
|
|
23
|
+
});
|
|
24
|
+
/*
|
|
25
|
+
* Safe reads pass normally and do not require
|
|
26
|
+
* stable operation identity.
|
|
27
|
+
*/
|
|
28
|
+
if (gate.decision === "PASS") {
|
|
29
|
+
return {
|
|
30
|
+
decision: gate.decision,
|
|
31
|
+
code: gate.code,
|
|
32
|
+
consequential: gate.consequential,
|
|
33
|
+
method: gate.method,
|
|
34
|
+
reason: gate.reason,
|
|
35
|
+
identityStatus: identity.status
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/*
|
|
39
|
+
* Structural failures take precedence.
|
|
40
|
+
*/
|
|
41
|
+
if (gate.code === "INVALID_URL" ||
|
|
42
|
+
gate.code === "UNSUPPORTED_PROTOCOL" ||
|
|
43
|
+
gate.code === "UNSUPPORTED_HTTP_METHOD") {
|
|
44
|
+
return {
|
|
45
|
+
decision: gate.decision,
|
|
46
|
+
code: gate.code,
|
|
47
|
+
consequential: gate.consequential,
|
|
48
|
+
method: gate.method,
|
|
49
|
+
reason: gate.reason,
|
|
50
|
+
identityStatus: identity.status
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/*
|
|
54
|
+
* Never choose between conflicting identities.
|
|
55
|
+
*/
|
|
56
|
+
if (identity.status === "CONFLICT") {
|
|
57
|
+
return {
|
|
58
|
+
decision: "BLOCK",
|
|
59
|
+
code: "IDENTITY_CONFLICT",
|
|
60
|
+
consequential: true,
|
|
61
|
+
method: gate.method,
|
|
62
|
+
reason: identity.reason,
|
|
63
|
+
identityStatus: identity.status
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/*
|
|
67
|
+
* Provider is required for protected execution.
|
|
68
|
+
*/
|
|
69
|
+
if (gate.code === "MISSING_PROVIDER") {
|
|
70
|
+
return {
|
|
71
|
+
decision: "BLOCK",
|
|
72
|
+
code: "MISSING_PROVIDER",
|
|
73
|
+
consequential: true,
|
|
74
|
+
method: gate.method,
|
|
75
|
+
reason: gate.reason,
|
|
76
|
+
identityStatus: identity.status,
|
|
77
|
+
...(identity.status === "FOUND"
|
|
78
|
+
? {
|
|
79
|
+
operationId: identity.operationId,
|
|
80
|
+
identitySource: identity.source
|
|
81
|
+
}
|
|
82
|
+
: {})
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/*
|
|
86
|
+
* Consequential writes without trustworthy
|
|
87
|
+
* stable identity fail closed.
|
|
88
|
+
*/
|
|
89
|
+
if (identity.status === "REQUIRED") {
|
|
90
|
+
return {
|
|
91
|
+
decision: "BLOCK",
|
|
92
|
+
code: "IDENTITY_REQUIRED",
|
|
93
|
+
consequential: true,
|
|
94
|
+
method: gate.method,
|
|
95
|
+
reason: identity.reason,
|
|
96
|
+
identityStatus: identity.status
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/*
|
|
100
|
+
* FOUND identity + provider must result in
|
|
101
|
+
* protected execution.
|
|
102
|
+
*/
|
|
103
|
+
if (gate.decision !== "PROTECT") {
|
|
104
|
+
return {
|
|
105
|
+
decision: "BLOCK",
|
|
106
|
+
code: gate.code,
|
|
107
|
+
consequential: true,
|
|
108
|
+
method: gate.method,
|
|
109
|
+
reason: "Runtime reached an unexpected execution state and failed closed.",
|
|
110
|
+
identityStatus: identity.status
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
decision: "PROTECT",
|
|
115
|
+
code: gate.code,
|
|
116
|
+
consequential: true,
|
|
117
|
+
method: gate.method,
|
|
118
|
+
reason: gate.reason,
|
|
119
|
+
operationId: identity.operationId,
|
|
120
|
+
identitySource: identity.source,
|
|
121
|
+
identityStatus: identity.status
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/runtime/pipeline.ts"],"names":[],"mappings":"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"}
|