@iicp/client 0.7.92 → 0.7.94
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/README.md +2 -2
- package/dist/backends/base.d.ts +10 -0
- package/dist/backends/base.d.ts.map +1 -1
- package/dist/backends/base.js +61 -28
- package/dist/backends/base.js.map +1 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -1
- package/dist/client.js.map +1 -1
- package/dist/dispatch_ticket.d.ts +2 -0
- package/dist/dispatch_ticket.d.ts.map +1 -1
- package/dist/dispatch_ticket.js +16 -0
- package/dist/dispatch_ticket.js.map +1 -1
- package/dist/dispatch_ticket_trust.d.ts +42 -0
- package/dist/dispatch_ticket_trust.d.ts.map +1 -1
- package/dist/dispatch_ticket_trust.js +214 -1
- package/dist/dispatch_ticket_trust.js.map +1 -1
- package/dist/identity.d.ts +2 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +16 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/jcs.d.ts +4 -0
- package/dist/jcs.d.ts.map +1 -0
- package/dist/jcs.js +44 -0
- package/dist/jcs.js.map +1 -0
- package/dist/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +4 -0
- package/dist/node.js.map +1 -1
- package/dist/policy_data_handling.d.ts +8 -0
- package/dist/policy_data_handling.d.ts.map +1 -0
- package/dist/policy_data_handling.js +49 -0
- package/dist/policy_data_handling.js.map +1 -0
- package/dist/policy_detail_disclosure.d.ts +16 -0
- package/dist/policy_detail_disclosure.d.ts.map +1 -0
- package/dist/policy_detail_disclosure.js +80 -0
- package/dist/policy_detail_disclosure.js.map +1 -0
- package/dist/policy_operational_evidence.d.ts +8 -0
- package/dist/policy_operational_evidence.d.ts.map +1 -0
- package/dist/policy_operational_evidence.js +30 -0
- package/dist/policy_operational_evidence.js.map +1 -0
- package/dist/service_lifecycle.d.ts +41 -0
- package/dist/service_lifecycle.d.ts.map +1 -1
- package/dist/service_lifecycle.js +111 -1
- package/dist/service_lifecycle.js.map +1 -1
- package/dist/service_lifecycle_accounting.d.ts +10 -0
- package/dist/service_lifecycle_accounting.d.ts.map +1 -0
- package/dist/service_lifecycle_accounting.js +67 -0
- package/dist/service_lifecycle_accounting.js.map +1 -0
- package/dist/service_lifecycle_distributed.d.ts +2 -0
- package/dist/service_lifecycle_distributed.d.ts.map +1 -0
- package/dist/service_lifecycle_distributed.js +30 -0
- package/dist/service_lifecycle_distributed.js.map +1 -0
- package/dist/service_lifecycle_identity.d.ts +2 -0
- package/dist/service_lifecycle_identity.d.ts.map +1 -0
- package/dist/service_lifecycle_identity.js +30 -0
- package/dist/service_lifecycle_identity.js.map +1 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ What good looks like:
|
|
|
39
39
|
```bash
|
|
40
40
|
iicp-node --help # shows query, serve, proxy, mcp-gateway, credits, ...
|
|
41
41
|
which iicp-node # points to your Node/npm environment
|
|
42
|
-
iicp-node --version # prints iicp-node 0.7.
|
|
42
|
+
iicp-node --version # prints iicp-node 0.7.94 or newer
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
The query command contacts the public directory, discovers a matching live node,
|
|
@@ -148,7 +148,7 @@ base URL. Full guide: <https://iicp.network/docs/proxy>
|
|
|
148
148
|
|
|
149
149
|
## Keep provider nodes current
|
|
150
150
|
|
|
151
|
-
The current public release line is **0.7.
|
|
151
|
+
The current public release line is **0.7.94**. Upgrade through your package
|
|
152
152
|
manager before troubleshooting an older installation. Routing profiles can
|
|
153
153
|
refuse remote dispatch before a prompt leaves the client; use `sensitive` for
|
|
154
154
|
local-only work, `eu-restricted` for EU/EEA routing, or `strict-policy` when a
|
package/dist/backends/base.d.ts
CHANGED
|
@@ -32,12 +32,22 @@ export type TaskHandlerInput = {
|
|
|
32
32
|
task_id?: string;
|
|
33
33
|
intent?: string;
|
|
34
34
|
payload?: Record<string, unknown>;
|
|
35
|
+
/** Local-only cancellation signal; never serialized into an IICP task. */
|
|
36
|
+
abortSignal?: AbortSignal;
|
|
35
37
|
};
|
|
36
38
|
export type TaskHandlerOutput = Record<string, unknown>;
|
|
37
39
|
export type BackendHandler = (task: TaskHandlerInput) => Promise<TaskHandlerOutput>;
|
|
40
|
+
type CancellationRegistry = {
|
|
41
|
+
register(taskId: string, handler: () => boolean | void): void;
|
|
42
|
+
report?(taskId: string, outcome: "transport_aborted"): unknown;
|
|
43
|
+
complete(taskId: string): unknown;
|
|
44
|
+
};
|
|
45
|
+
/** Bind one backend invocation to the opt-in lifecycle cancellation registry. */
|
|
46
|
+
export declare function withBackendCancellation(handler: BackendHandler, registry: CancellationRegistry): BackendHandler;
|
|
38
47
|
/**
|
|
39
48
|
* Build a TaskHandler that proxies CALLs to an OpenAI-dialect server. `engine` is the
|
|
40
49
|
* label used in error messages (e.g. "vllm"); all engines share this body.
|
|
41
50
|
*/
|
|
42
51
|
export declare function buildOpenAiDialectHandler(engine: string, baseUrlRaw: string, model: string | undefined, apiKey: string, timeoutMs: number): BackendHandler;
|
|
52
|
+
export {};
|
|
43
53
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/backends/base.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,wCAAwC,CAAC;AAC7E,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,oCAAoC,CAAC;AACrE,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,uCAAuC,CAAC;AAE3E,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,aAA4C,CAAC;AAEhF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOjD,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/backends/base.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,wCAAwC,CAAC;AAC7E,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,oCAAoC,CAAC;AACrE,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,uCAAuC,CAAC;AAE3E,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,aAA4C,CAAC;AAEhF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOjD,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,0EAA0E;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpF,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAI,OAAO,GAAC,IAAI,GAAE,IAAI,CAAC;IACtD,MAAM,CAAC,CAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,mBAAmB,GAAE,OAAO,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAC,MAAM,GAAE,OAAO,CAAC;CACjC,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,OAAO,EAAC,cAAc,EAAC,QAAQ,EAAC,oBAAoB,GAAE,cAAc,CAY3G;AAuBD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,cAAc,CA8LhB"}
|
package/dist/backends/base.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.INTENT_TO_PATH = exports.MODEL_OPTIONAL_INTENTS = exports.SAFETY_MODERATE_INTENT = exports.AUDIO_SPEECH_INTENT = exports.AUDIO_TRANSCRIBE_INTENT = void 0;
|
|
16
|
+
exports.withBackendCancellation = withBackendCancellation;
|
|
16
17
|
exports.buildOpenAiDialectHandler = buildOpenAiDialectHandler;
|
|
17
18
|
/** #414 — speech-to-text. Multipart file upload (distinct path below), not JSON. */
|
|
18
19
|
exports.AUDIO_TRANSCRIBE_INTENT = "urn:iicp:intent:audio:transcribe:v1";
|
|
@@ -30,6 +31,48 @@ exports.INTENT_TO_PATH = {
|
|
|
30
31
|
[exports.AUDIO_SPEECH_INTENT]: "/audio/speech",
|
|
31
32
|
[exports.SAFETY_MODERATE_INTENT]: "/moderations",
|
|
32
33
|
};
|
|
34
|
+
/** Bind one backend invocation to the opt-in lifecycle cancellation registry. */
|
|
35
|
+
function withBackendCancellation(handler, registry) {
|
|
36
|
+
return async (task) => {
|
|
37
|
+
if (!task.task_id)
|
|
38
|
+
return handler(task);
|
|
39
|
+
const controller = new AbortController();
|
|
40
|
+
registry.register(task.task_id, () => { controller.abort(); return true; });
|
|
41
|
+
try {
|
|
42
|
+
const result = await handler({ ...task, abortSignal: controller.signal });
|
|
43
|
+
if (result.error_code === 499)
|
|
44
|
+
registry.report?.(task.task_id, "transport_aborted");
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
registry.complete(task.task_id);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function requestController(timeoutMs, external) {
|
|
53
|
+
const controller = new AbortController();
|
|
54
|
+
let timedOut = false;
|
|
55
|
+
const externalAbort = () => controller.abort(external?.reason);
|
|
56
|
+
if (external?.aborted)
|
|
57
|
+
externalAbort();
|
|
58
|
+
else
|
|
59
|
+
external?.addEventListener("abort", externalAbort, { once: true });
|
|
60
|
+
const timer = setTimeout(() => { timedOut = true; controller.abort(); }, timeoutMs);
|
|
61
|
+
return {
|
|
62
|
+
signal: controller.signal,
|
|
63
|
+
timedOut: () => timedOut,
|
|
64
|
+
externallyCancelled: () => external?.aborted === true,
|
|
65
|
+
cleanup: () => { clearTimeout(timer); external?.removeEventListener("abort", externalAbort); },
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function transportFailure(engine, exc, control) {
|
|
69
|
+
const msg = exc instanceof Error ? exc.message : String(exc);
|
|
70
|
+
if (control.externallyCancelled())
|
|
71
|
+
return { error_code: 499, error_message: `${engine}: backend request cancelled` };
|
|
72
|
+
if (control.timedOut())
|
|
73
|
+
return { error_code: 408, error_message: `${engine}: backend timed out` };
|
|
74
|
+
return { error_code: 502, error_message: `${engine}: HTTP transport error: ${msg}` };
|
|
75
|
+
}
|
|
33
76
|
/**
|
|
34
77
|
* Build a TaskHandler that proxies CALLs to an OpenAI-dialect server. `engine` is the
|
|
35
78
|
* label used in error messages (e.g. "vllm"); all engines share this body.
|
|
@@ -91,25 +134,22 @@ function buildOpenAiDialectHandler(engine, baseUrlRaw, model, apiKey, timeoutMs)
|
|
|
91
134
|
const mpHeaders = {};
|
|
92
135
|
if (apiKey)
|
|
93
136
|
mpHeaders["Authorization"] = `Bearer ${apiKey}`;
|
|
94
|
-
const
|
|
95
|
-
const tA = setTimeout(() => ctrlA.abort(), timeoutMs);
|
|
137
|
+
const control = requestController(timeoutMs, task.abortSignal);
|
|
96
138
|
let respA;
|
|
97
139
|
try {
|
|
98
140
|
respA = await fetch(`${baseUrl}${path}`, {
|
|
99
141
|
method: "POST",
|
|
100
142
|
headers: mpHeaders,
|
|
101
143
|
body: form,
|
|
102
|
-
signal:
|
|
144
|
+
signal: control.signal,
|
|
103
145
|
});
|
|
104
146
|
}
|
|
105
147
|
catch (exc) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return { error_code: 502, error_message: `${engine}: HTTP transport error: ${msg}` };
|
|
148
|
+
return transportFailure(engine, exc, control);
|
|
149
|
+
}
|
|
150
|
+
finally {
|
|
151
|
+
control.cleanup();
|
|
111
152
|
}
|
|
112
|
-
clearTimeout(tA);
|
|
113
153
|
if (!respA.ok) {
|
|
114
154
|
const text = await respA.text().catch(() => "");
|
|
115
155
|
return {
|
|
@@ -149,25 +189,22 @@ function buildOpenAiDialectHandler(engine, baseUrlRaw, model, apiKey, timeoutMs)
|
|
|
149
189
|
const headersS = { "Content-Type": "application/json" };
|
|
150
190
|
if (apiKey)
|
|
151
191
|
headersS["Authorization"] = `Bearer ${apiKey}`;
|
|
152
|
-
const
|
|
153
|
-
const tS = setTimeout(() => ctrlS.abort(), timeoutMs);
|
|
192
|
+
const control = requestController(timeoutMs, task.abortSignal);
|
|
154
193
|
let respS;
|
|
155
194
|
try {
|
|
156
195
|
respS = await fetch(`${baseUrl}${path}`, {
|
|
157
196
|
method: "POST",
|
|
158
197
|
headers: headersS,
|
|
159
198
|
body: JSON.stringify(speechBody),
|
|
160
|
-
signal:
|
|
199
|
+
signal: control.signal,
|
|
161
200
|
});
|
|
162
201
|
}
|
|
163
202
|
catch (exc) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
return { error_code: 502, error_message: `${engine}: HTTP transport error: ${msg}` };
|
|
203
|
+
return transportFailure(engine, exc, control);
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
control.cleanup();
|
|
169
207
|
}
|
|
170
|
-
clearTimeout(tS);
|
|
171
208
|
if (!respS.ok) {
|
|
172
209
|
const errText = await respS.text().catch(() => "");
|
|
173
210
|
return {
|
|
@@ -198,26 +235,22 @@ function buildOpenAiDialectHandler(engine, baseUrlRaw, model, apiKey, timeoutMs)
|
|
|
198
235
|
const headers = { "Content-Type": "application/json" };
|
|
199
236
|
if (apiKey)
|
|
200
237
|
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
201
|
-
const
|
|
202
|
-
const t = setTimeout(() => ctrl.abort(), timeoutMs);
|
|
238
|
+
const control = requestController(timeoutMs, task.abortSignal);
|
|
203
239
|
let resp;
|
|
204
240
|
try {
|
|
205
241
|
resp = await fetch(`${baseUrl}${path}`, {
|
|
206
242
|
method: "POST",
|
|
207
243
|
headers,
|
|
208
244
|
body: JSON.stringify(body),
|
|
209
|
-
signal:
|
|
245
|
+
signal: control.signal,
|
|
210
246
|
});
|
|
211
247
|
}
|
|
212
248
|
catch (exc) {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
return { error_code: 502, error_message: `${engine}: HTTP transport error: ${msg}` };
|
|
249
|
+
return transportFailure(engine, exc, control);
|
|
250
|
+
}
|
|
251
|
+
finally {
|
|
252
|
+
control.cleanup();
|
|
219
253
|
}
|
|
220
|
-
clearTimeout(t);
|
|
221
254
|
if (!resp.ok) {
|
|
222
255
|
const text = await resp.text().catch(() => "");
|
|
223
256
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/backends/base.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/backends/base.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC;;;;;;;;;;GAUG;;;AAmDH,0DAYC;AA2BD,8DAoMC;AA5RD,oFAAoF;AACvE,QAAA,uBAAuB,GAAG,qCAAqC,CAAC;AAC7E,yFAAyF;AAC5E,QAAA,mBAAmB,GAAG,iCAAiC,CAAC;AACrE,sFAAsF;AACzE,QAAA,sBAAsB,GAAG,oCAAoC,CAAC;AAE3E,qFAAqF;AACxE,QAAA,sBAAsB,GAAG,IAAI,GAAG,CAAS,CAAC,8BAAsB,CAAC,CAAC,CAAC;AAEnE,QAAA,cAAc,GAA2B;IACpD,6BAA6B,EAAE,mBAAmB;IAClD,mCAAmC,EAAE,cAAc;IACnD,kCAAkC,EAAE,aAAa;IACjD,CAAC,+BAAuB,CAAC,EAAE,uBAAuB;IAClD,CAAC,2BAAmB,CAAC,EAAE,eAAe;IACtC,CAAC,8BAAsB,CAAC,EAAE,cAAc;CACzC,CAAC;AA+BF,iFAAiF;AACjF,SAAgB,uBAAuB,CAAC,OAAsB,EAAC,QAA6B;IAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,IAAG,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,UAAU,GAAC,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAC,GAAE,EAAE,GAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA,OAAO,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,MAAM,GAAC,MAAM,OAAO,CAAC,EAAC,GAAG,IAAI,EAAC,WAAW,EAAC,UAAU,CAAC,MAAM,EAAC,CAAC,CAAC;YACpE,IAAG,MAAM,CAAC,UAAU,KAAG,GAAG;gBAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAC,mBAAmB,CAAC,CAAC;YAChF,OAAO,MAAM,CAAC;QAChB,CAAC;gBACO,CAAC;YAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAgB,EAAC,QAAqB;IAC/D,MAAM,UAAU,GAAC,IAAI,eAAe,EAAE,CAAC;IAAC,IAAI,QAAQ,GAAC,KAAK,CAAC;IAC3D,MAAM,aAAa,GAAC,GAAE,EAAE,CAAA,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAG,QAAQ,EAAE,OAAO;QAAE,aAAa,EAAE,CAAC;;QACjC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAC,aAAa,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAC,UAAU,CAAC,GAAE,EAAE,GAAC,QAAQ,GAAC,IAAI,CAAC,CAAA,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC,EAAC,SAAS,CAAC,CAAC;IAC1E,OAAO;QACL,MAAM,EAAC,UAAU,CAAC,MAAM;QACxB,QAAQ,EAAC,GAAE,EAAE,CAAA,QAAQ;QACrB,mBAAmB,EAAC,GAAE,EAAE,CAAA,QAAQ,EAAE,OAAO,KAAG,IAAI;QAChD,OAAO,EAAC,GAAE,EAAE,GAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA,QAAQ,EAAE,mBAAmB,CAAC,OAAO,EAAC,aAAa,CAAC,CAAC,CAAA,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAa,EAAC,GAAW,EAAC,OAA4C;IAC9F,MAAM,GAAG,GAAC,GAAG,YAAY,KAAK,CAAA,CAAC,CAAA,GAAG,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,GAAG,CAAC,CAAC;IACvD,IAAG,OAAO,CAAC,mBAAmB,EAAE;QAAE,OAAO,EAAC,UAAU,EAAC,GAAG,EAAC,aAAa,EAAC,GAAG,MAAM,6BAA6B,EAAC,CAAC;IAC/G,IAAG,OAAO,CAAC,QAAQ,EAAE;QAAE,OAAO,EAAC,UAAU,EAAC,GAAG,EAAC,aAAa,EAAC,GAAG,MAAM,qBAAqB,EAAC,CAAC;IAC5F,OAAO,EAAC,UAAU,EAAC,GAAG,EAAC,aAAa,EAAC,GAAG,MAAM,2BAA2B,GAAG,EAAE,EAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CACvC,MAAc,EACd,UAAkB,EAClB,KAAyB,EACzB,MAAc,EACd,SAAiB;IAEjB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE9C,OAAO,KAAK,UAAU,OAAO,CAAC,IAAsB;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IACE,OAAO,KAAK,SAAS;YACrB,OAAO,KAAK,IAAI;YAChB,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EACvD,CAAC;YACD,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,aAAa,EAAE,GAAG,MAAM,sCAAsC,OAAO,OAAO,EAAE;aAC/E,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,sBAAc,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,aAAa,EAAE,GAAG,MAAM,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAClG,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAC,CAAC,IAAI,EAAE,CACnC,EAAE;aACJ,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,8EAA8E;QAC9E,gFAAgF;QAChF,qBAAqB;QACrB,IAAI,MAAM,KAAK,+BAAuB,EAAE,CAAC;YACvC,MAAM,CAAC,GAAI,OAAmC,IAAI,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAY,CAAC;YACrD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9C,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,GAAG,MAAM,wEAAwE;iBACjG,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,qCAAqC,EAAE,CAAC;YAC5F,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;YAC9E,IAAI,QAAQ;gBAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxC,IAAI,CAAC,KAAK,iBAAiB;wBAAE,MAAM,GAAG,IAAI,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAEpD,MAAM,SAAS,GAA2B,EAAE,CAAC;YAC7C,IAAI,MAAM;gBAAE,SAAS,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9D,IAAI,KAAe,CAAC;YACpB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;oBACvC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,gBAAgB,CAAC,MAAM,EAAC,GAAG,EAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChD,OAAO;oBACL,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,aAAa,EAAE,GAAG,MAAM,cAAc,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;iBAC5E,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,oCAAoC;YACnE,CAAC;QACH,CAAC;QAED,gFAAgF;QAChF,4EAA4E;QAC5E,IAAI,MAAM,KAAK,2BAAmB,EAAE,CAAC;YACnC,MAAM,CAAC,GAAI,OAAmC,IAAI,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACrB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtC,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,GAAG,MAAM,4DAA4D;iBACrF,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;YAC9E,IAAI,QAAQ;gBAAE,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;gBAAE,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;YAE/D,MAAM,QAAQ,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;YAChF,IAAI,MAAM;gBAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9D,IAAI,KAAe,CAAC;YACpB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;oBACvC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,QAAQ;oBACjB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,gBAAgB,CAAC,MAAM,EAAC,GAAG,EAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,OAAO;oBACL,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,aAAa,EAAE,GAAG,MAAM,cAAc,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;iBAC/E,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC;YACtE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,OAAO;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC7B,YAAY,EAAE,WAAW;oBACzB,MAAM,EAAG,UAAU,CAAC,eAAsC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;iBAC3F;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAA4B,EAAE,GAAG,CAAE,OAAmC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1F,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,8BAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,aAAa,EACX,GAAG,MAAM,4DAA4D;oBACrE,wCAAwC;aAC3C,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,MAAM;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,EAAE,CAAC;QAE1D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,IAAc,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,MAAM,EAAC,GAAG,EAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/C,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,aAAa,EAAE,GAAG,MAAM,cAAc,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,iCAAiC,GAAG,EAAE,EAAE,CAAC;QAC7F,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export declare function startProviderAutoUpdate(options?: ProviderAutoUpdateOpti
|
|
|
18
18
|
export interface ServeOpts {
|
|
19
19
|
backendUrl: string;
|
|
20
20
|
policyManifest?: string;
|
|
21
|
+
/** Explicit operator receipt-profile opt-in; undefined allows saved-node fallback. */
|
|
22
|
+
receiptProfiles?: string[];
|
|
21
23
|
backendType: string;
|
|
22
24
|
experimental?: boolean;
|
|
23
25
|
/** #5 — Bearer key for an auth-requiring OpenAI-compat backend (LM Studio, hosted). Empty = none. */
|
|
@@ -46,6 +48,7 @@ export interface ServeOpts {
|
|
|
46
48
|
/** TC-9c — pre-loaded from saved node config; passed to IicpNode so receipts work on restart. */
|
|
47
49
|
nodeHmacKey?: string;
|
|
48
50
|
}
|
|
51
|
+
export declare function resolveReceiptProfiles(cliValues: string[] | undefined, envValue: string | undefined, savedValues?: string[]): string[];
|
|
49
52
|
export declare const TUNNEL_DEAD_EXIT_CODE = 75;
|
|
50
53
|
export type TunnelDeadPolicy = "auto" | "retry" | "exit" | "log-only";
|
|
51
54
|
export type TunnelDeadBehavior = "exit" | "retry" | "log-only";
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAiDA,OAAO,EAeL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAIvB,KAAK,aAAa,GAAG,cAAc,cAAc,CAAC,CAAC;AAEnD,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,yBAA8B,GAAG,MAAM,IAAI,CA+C3F;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qGAAqG;IACrG,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAoBD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAE/D,wBAAgB,uBAAuB,IAAI,gBAAgB,CAM1D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,GAAG,kBAAkB,CAGpG;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAKrF;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.TUNNEL_DEAD_EXIT_CODE = void 0;
|
|
5
5
|
exports.startProviderAutoUpdate = startProviderAutoUpdate;
|
|
6
|
+
exports.resolveReceiptProfiles = resolveReceiptProfiles;
|
|
6
7
|
exports.tunnelDeadPolicyFromEnv = tunnelDeadPolicyFromEnv;
|
|
7
8
|
exports.tunnelDeadBehavior = tunnelDeadBehavior;
|
|
8
9
|
exports.relayWorkerFallbackAllowed = relayWorkerFallbackAllowed;
|
|
@@ -105,6 +106,15 @@ function startProviderAutoUpdate(options = {}) {
|
|
|
105
106
|
clearInterval(intervalTimer);
|
|
106
107
|
};
|
|
107
108
|
}
|
|
109
|
+
function resolveReceiptProfiles(cliValues, envValue, savedValues) {
|
|
110
|
+
const raw = cliValues ?? (envValue !== undefined ? envValue.split(",") : (savedValues ?? []));
|
|
111
|
+
const profiles = [...new Set(raw.map((value) => value.trim()).filter(Boolean))];
|
|
112
|
+
const unsupported = profiles.filter((value) => value !== "consumer_cosignature_v1");
|
|
113
|
+
if (unsupported.length > 0) {
|
|
114
|
+
throw new CliError(`unsupported receipt profile(s): ${unsupported.join(", ")}. Supported: consumer_cosignature_v1.`);
|
|
115
|
+
}
|
|
116
|
+
return profiles;
|
|
117
|
+
}
|
|
108
118
|
function envOr(name, fallback) {
|
|
109
119
|
const v = process.env[name];
|
|
110
120
|
return v ?? fallback;
|
|
@@ -179,6 +189,7 @@ function printHelp() {
|
|
|
179
189
|
` --backend-api-key KEY IICP_BACKEND_API_KEY — Bearer key for an auth'd backend (LM Studio, hosted); anthropic uses it as x-api-key\n` +
|
|
180
190
|
` --experimental IICP_EXPERIMENTAL — enable an explicitly selected preview backend feature\n` +
|
|
181
191
|
` --policy-manifest FILE IICP_POLICY_MANIFEST_FILE — sign and advertise a public node-policy JSON document\n` +
|
|
192
|
+
` --receipt-profile PROFILE IICP_SUPPORTED_RECEIPT_PROFILES — repeatable; supported: consumer_cosignature_v1\n` +
|
|
182
193
|
` --public-endpoint URL IICP_PUBLIC_ENDPOINT — externally reachable URL of this node\n` +
|
|
183
194
|
` --directory-url URL IICP_DIRECTORY_URL (default https://iicp.network/api)\n` +
|
|
184
195
|
` --region REGION IICP_REGION (e.g. us-east; unknown if unset)\n` +
|
|
@@ -247,6 +258,7 @@ function printServeHelp() {
|
|
|
247
258
|
` --backend-api-key KEY IICP_BACKEND_API_KEY — Bearer key for auth'd backends\n` +
|
|
248
259
|
` --experimental IICP_EXPERIMENTAL — enable an explicitly selected preview backend feature\n` +
|
|
249
260
|
` --policy-manifest FILE IICP_POLICY_MANIFEST_FILE — sign and advertise a public node-policy JSON document\n` +
|
|
261
|
+
` --receipt-profile PROFILE IICP_SUPPORTED_RECEIPT_PROFILES — repeatable; supported: consumer_cosignature_v1\n` +
|
|
250
262
|
` --public-endpoint URL IICP_PUBLIC_ENDPOINT — externally reachable URL of this node\n` +
|
|
251
263
|
` --directory-url URL IICP_DIRECTORY_URL (default https://iicp.network/api)\n` +
|
|
252
264
|
` --region REGION IICP_REGION (e.g. eu-central)\n` +
|
|
@@ -667,6 +679,7 @@ function applySavedNode(opts, saved) {
|
|
|
667
679
|
autoDetectNat: opts.autoDetectNat || saved.auto_detect_nat,
|
|
668
680
|
externalIpProbeUrl: opts.externalIpProbeUrl || saved.external_ip_probe_url,
|
|
669
681
|
nodeHmacKey: opts.nodeHmacKey || saved.node_hmac_key || undefined,
|
|
682
|
+
receiptProfiles: opts.receiptProfiles ?? resolveReceiptProfiles(undefined, undefined, saved.supported_receipt_profiles),
|
|
670
683
|
};
|
|
671
684
|
}
|
|
672
685
|
async function runServe(opts) {
|
|
@@ -1012,6 +1025,7 @@ async function runServe(opts) {
|
|
|
1012
1025
|
operatorCreatedAt: _opCreatedAt,
|
|
1013
1026
|
operatorIntegrityHash: _opIntegrityHash,
|
|
1014
1027
|
policyManifest,
|
|
1028
|
+
supportedReceiptProfiles: opts.receiptProfiles ?? [],
|
|
1015
1029
|
// #494 — wire backend URL for live health_models probing in heartbeats.
|
|
1016
1030
|
backendUrl: opts.backendUrl || undefined,
|
|
1017
1031
|
backendApiKey: opts.backendApiKey || undefined,
|
|
@@ -2889,6 +2903,7 @@ async function dispatch(argv) {
|
|
|
2889
2903
|
node: { type: "string" },
|
|
2890
2904
|
"backend-url": { type: "string" },
|
|
2891
2905
|
"policy-manifest": { type: "string" },
|
|
2906
|
+
"receipt-profile": { type: "string", multiple: true },
|
|
2892
2907
|
"backend-type": { type: "string" },
|
|
2893
2908
|
"backend-api-key": { type: "string" },
|
|
2894
2909
|
experimental: { type: "boolean" },
|
|
@@ -2927,6 +2942,9 @@ async function dispatch(argv) {
|
|
|
2927
2942
|
node: values.node ?? envOr("IICP_NODE_NAME") ?? "",
|
|
2928
2943
|
backendUrl: values["backend-url"] ?? envOr("IICP_BACKEND_URL") ?? "",
|
|
2929
2944
|
policyManifest: values["policy-manifest"] ?? envOr("IICP_POLICY_MANIFEST_FILE") ?? "",
|
|
2945
|
+
receiptProfiles: values["receipt-profile"] !== undefined || process.env.IICP_SUPPORTED_RECEIPT_PROFILES !== undefined
|
|
2946
|
+
? resolveReceiptProfiles(values["receipt-profile"], envOr("IICP_SUPPORTED_RECEIPT_PROFILES"))
|
|
2947
|
+
: undefined,
|
|
2930
2948
|
backendType: values["backend-type"] ??
|
|
2931
2949
|
envOr("IICP_BACKEND_TYPE", "openai_compat"),
|
|
2932
2950
|
backendApiKey: values["backend-api-key"] ?? envOr("IICP_BACKEND_API_KEY") ?? "",
|