@iicp/client 0.7.38 → 0.7.40

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAmBlC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IAC7E,oFAAoF;IACpF,QAAQ,CAAC,CACP,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACtG;AAmND,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CA6BjE;AAED,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB1D"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createProxyServer = createProxyServer;
4
+ exports.runProxy = runProxy;
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ /**
7
+ * iicp-node proxy (ADR-050) — local OpenAI/Ollama/Anthropic-compat gateway.
8
+ *
9
+ * A loopback HTTP server that translates external chat-API requests into IICP mesh
10
+ * calls via {@link IicpClient} and translates responses back. It does NOT register
11
+ * with the directory (consumer gateway). Mirrors the Python `iicp_client.proxy`
12
+ * behaviour per project/proxy-unification-contract.md; verified against
13
+ * tests/conformance/proxy_fixtures.json.
14
+ *
15
+ * v1 covers the non-CIP fixtures (success / upstream-502 / no-nodes-502 / 500 /
16
+ * static endpoints / streaming). The CIP affordability + no-eligible-workers gates
17
+ * (402 IICP-E036 / 503 IICP-E022) require porting the proxy CIP dispatch to TS and
18
+ * are tracked under the conformance issue (#482).
19
+ */
20
+ const http = require("node:http");
21
+ const client_js_1 = require("../client.js");
22
+ const errors_js_1 = require("../errors.js");
23
+ const cip_js_1 = require("./cip.js");
24
+ const INTENT = "urn:iicp:intent:llm:chat:v1";
25
+ /** CIP consumer config (env IICP_PROXY_CIP_*); enabled defaults OFF (§2.2 ¶1). */
26
+ const CIP_CONFIG = (0, cip_js_1.cipConfigFromEnv)();
27
+ const OLLAMA_VERSION = "0.1.0";
28
+ /** The proxy self-identifies as `iicp-proxy` on every response (Server header). */
29
+ const SERVER_ID = "iicp-proxy";
30
+ // ── translators (mirror iicp_client.proxy.*_compat.translator) ───────────────
31
+ function firstMessage(resp) {
32
+ const result = (resp.result ?? {});
33
+ const choices = result.choices ?? [{}];
34
+ const msg = choices[0]?.message ?? {};
35
+ return { role: msg.role ?? "assistant", content: msg.content ?? "" };
36
+ }
37
+ function usageOf(resp) {
38
+ const result = (resp.result ?? {});
39
+ return result.usage ?? {};
40
+ }
41
+ function nowIso() {
42
+ return new Date().toISOString().replace(/\.\d+Z$/, "Z");
43
+ }
44
+ function toOpenAI(resp, model) {
45
+ const m = firstMessage(resp);
46
+ return {
47
+ id: `chatcmpl-iicp`,
48
+ object: "chat.completion",
49
+ created: Math.floor(Date.now() / 1000),
50
+ model,
51
+ choices: [{ index: 0, message: { role: m.role, content: m.content }, finish_reason: "stop" }],
52
+ usage: usageOf(resp),
53
+ };
54
+ }
55
+ function toOllama(resp, model) {
56
+ const m = firstMessage(resp);
57
+ return {
58
+ model,
59
+ created_at: nowIso(),
60
+ message: { role: m.role, content: m.content },
61
+ done: true,
62
+ done_reason: "stop",
63
+ };
64
+ }
65
+ function toOllamaGenerate(resp, model) {
66
+ const m = firstMessage(resp);
67
+ return { model, created_at: nowIso(), response: m.content, done: true, done_reason: "stop" };
68
+ }
69
+ function toAnthropic(resp, model, taskId) {
70
+ const m = firstMessage(resp);
71
+ return {
72
+ id: `msg_${taskId || "iicp"}`,
73
+ type: "message",
74
+ role: "assistant",
75
+ model,
76
+ content: [{ type: "text", text: m.content }],
77
+ stop_reason: "end_turn",
78
+ usage: usageOf(resp),
79
+ };
80
+ }
81
+ // ── error bodies (per-surface, per the contract error map) ───────────────────
82
+ function openaiErr(code, message) {
83
+ return { error: { code, message } };
84
+ }
85
+ function ollamaErr(code, message) {
86
+ return { error: `${code}: ${message}` };
87
+ }
88
+ function anthropicErr(code, message) {
89
+ return { type: "error", error: { type: "api_error", message: `${code}: ${message}` } };
90
+ }
91
+ async function runChatTask(client, messages, model, extra, body) {
92
+ try {
93
+ let payloadExtra = extra;
94
+ // CIP consumer gating (§2.2) — only when enabled; throws CIPInsufficientCredits
95
+ // (E036→402) / CIPNoEligibleWorkers (E022→503), else returns an envelope to attach.
96
+ if (CIP_CONFIG.enabled && client.discover) {
97
+ const taskId = `cip-${Date.now()}`;
98
+ const nodes = await client.discover(INTENT);
99
+ const balance = body.billing?.consumer_balance ?? null;
100
+ const envelope = (0, cip_js_1.computeCipEnvelope)(nodes, body, CIP_CONFIG, taskId, body.qos, balance);
101
+ if (envelope) {
102
+ payloadExtra = { ...extra, cip: { ...(extra.cip ?? {}), ...envelope } };
103
+ }
104
+ }
105
+ const resp = await client.submit({
106
+ intent: INTENT,
107
+ payload: { messages, model, ...payloadExtra },
108
+ constraints: { timeout_ms: 30000 },
109
+ });
110
+ if (resp.status !== "success" && resp.status !== "completed") {
111
+ return { kind: "error", status: 502, code: resp.error?.code ?? "proxy_error" };
112
+ }
113
+ return { kind: "ok", resp };
114
+ }
115
+ catch (err) {
116
+ // CIP gating errors map to dedicated statuses (S.12 §2.2 / §10.1).
117
+ if (err instanceof cip_js_1.CIPInsufficientCredits)
118
+ return { kind: "error", status: 402, code: err.code };
119
+ if (err instanceof cip_js_1.CIPNoEligibleWorkers)
120
+ return { kind: "error", status: 503, code: err.code };
121
+ if (err instanceof errors_js_1.IicpError) {
122
+ // No nodes from discover → IICP-E033 (parity with the Python empty-discover path).
123
+ if (err.code === "SDK-03")
124
+ return { kind: "error", status: 502, code: "IICP-E033" };
125
+ return { kind: "error", status: 502, code: err.code };
126
+ }
127
+ return { kind: "error", status: 500, code: "proxy_error" };
128
+ }
129
+ }
130
+ // ── HTTP plumbing ────────────────────────────────────────────────────────────
131
+ async function readJson(req) {
132
+ const chunks = [];
133
+ for await (const c of req)
134
+ chunks.push(c);
135
+ const raw = Buffer.concat(chunks).toString("utf8");
136
+ return raw ? JSON.parse(raw) : {};
137
+ }
138
+ function sendJson(res, status, body) {
139
+ const data = JSON.stringify(body);
140
+ res.writeHead(status, { "Content-Type": "application/json", "Server": SERVER_ID });
141
+ res.end(data);
142
+ }
143
+ function messagesOf(body) {
144
+ return body.messages ?? [];
145
+ }
146
+ function extraOf(body) {
147
+ const e = {};
148
+ for (const k of ["temperature", "max_tokens", "cip", "billing", "qos"]) {
149
+ if (body[k] !== undefined)
150
+ e[k] = body[k];
151
+ }
152
+ return e;
153
+ }
154
+ function errMsg(status) {
155
+ if (status === 402)
156
+ return "Insufficient credits";
157
+ if (status === 503)
158
+ return "No eligible workers";
159
+ if (status === 502)
160
+ return "Upstream error";
161
+ return "Internal proxy error";
162
+ }
163
+ // ── per-surface handlers ─────────────────────────────────────────────────────
164
+ async function handleOpenAIChat(client, req, res) {
165
+ const body = await readJson(req);
166
+ const model = body.model ?? "iicp";
167
+ const out = await runChatTask(client, messagesOf(body), model, extraOf(body), body);
168
+ if (out.kind === "error")
169
+ return sendJson(res, out.status, openaiErr(out.code, errMsg(out.status)));
170
+ return sendJson(res, 200, toOpenAI(out.resp, model));
171
+ }
172
+ async function handleOllamaChat(client, req, res, generate) {
173
+ const body = await readJson(req);
174
+ const model = body.model ?? "iicp";
175
+ const stream = body.stream === undefined ? true : Boolean(body.stream); // Ollama default true
176
+ const messages = generate
177
+ ? [{ role: "user", content: String(body.prompt ?? "") }]
178
+ : messagesOf(body);
179
+ const out = await runChatTask(client, messages, model, extraOf(body), body);
180
+ if (out.kind === "error")
181
+ return sendJson(res, out.status, ollamaErr(out.code, errMsg(out.status)));
182
+ const payload = generate ? toOllamaGenerate(out.resp, model) : toOllama(out.resp, model);
183
+ if (stream) {
184
+ res.writeHead(200, { "Content-Type": "application/x-ndjson", "Server": SERVER_ID });
185
+ res.end(JSON.stringify(payload) + "\n"); // one terminal NDJSON line (done=true)
186
+ return;
187
+ }
188
+ return sendJson(res, 200, payload);
189
+ }
190
+ async function handleAnthropicMessages(client, req, res) {
191
+ const body = await readJson(req);
192
+ const model = body.model ?? "iicp";
193
+ const stream = Boolean(body.stream); // Anthropic default false
194
+ const out = await runChatTask(client, messagesOf(body), model, extraOf(body), body);
195
+ if (out.kind === "error")
196
+ return sendJson(res, out.status, anthropicErr(out.code, errMsg(out.status)));
197
+ const msg = toAnthropic(out.resp, model, "iicp");
198
+ if (stream) {
199
+ const text = firstMessage(out.resp).content;
200
+ res.writeHead(200, { "Content-Type": "text/event-stream", "Server": SERVER_ID });
201
+ const ev = (type, data) => res.write(`event: ${type}\ndata: ${JSON.stringify({ type, ...data })}\n\n`);
202
+ ev("message_start", { message: msg });
203
+ ev("content_block_start", { index: 0, content_block: { type: "text", text: "" } });
204
+ ev("content_block_delta", { index: 0, delta: { type: "text_delta", text } });
205
+ ev("content_block_stop", { index: 0 });
206
+ ev("message_delta", { delta: { stop_reason: "end_turn" } });
207
+ ev("message_stop", {});
208
+ res.end();
209
+ return;
210
+ }
211
+ return sendJson(res, 200, msg);
212
+ }
213
+ // ── server ───────────────────────────────────────────────────────────────────
214
+ const MODELS_LIST = { object: "list", data: [{ id: "iicp", object: "model", created: 1700000000, owned_by: "iicp" }] };
215
+ const OLLAMA_TAGS = { models: [{ name: "iicp", model: "iicp", modified_at: "", size: 0, digest: "" }] };
216
+ /** Build the gateway HTTP server. `client` is injectable for tests. */
217
+ function createProxyServer(client) {
218
+ return http.createServer((req, res) => {
219
+ const method = req.method ?? "GET";
220
+ const path = (req.url ?? "/").split("?")[0];
221
+ const route = `${method} ${path}`;
222
+ (async () => {
223
+ try {
224
+ switch (route) {
225
+ case "POST /v1/chat/completions": return await handleOpenAIChat(client, req, res);
226
+ case "POST /api/chat": return await handleOllamaChat(client, req, res, false);
227
+ case "POST /api/generate": return await handleOllamaChat(client, req, res, true);
228
+ case "GET /api/tags": return sendJson(res, 200, OLLAMA_TAGS);
229
+ case "GET /api/version": return sendJson(res, 200, { version: OLLAMA_VERSION });
230
+ case "POST /v1/messages": return await handleAnthropicMessages(client, req, res);
231
+ case "GET /v1/models": return sendJson(res, 200, MODELS_LIST);
232
+ case "GET /status": return sendJson(res, 200, { status: "ok", role: "proxy" });
233
+ case "GET /metrics": {
234
+ res.writeHead(200, { "Content-Type": "text/plain; version=0.0.4", "Server": SERVER_ID });
235
+ res.end("# iicp-proxy metrics\n");
236
+ return;
237
+ }
238
+ default:
239
+ return sendJson(res, 404, openaiErr("not_found", `no route for ${route}`));
240
+ }
241
+ }
242
+ catch {
243
+ return sendJson(res, 500, openaiErr("proxy_error", "Internal proxy error"));
244
+ }
245
+ })();
246
+ });
247
+ }
248
+ /** CLI entry: build a real IicpClient gateway and listen (loopback by default). */
249
+ function runProxy(cfg) {
250
+ const client = new client_js_1.IicpClient({
251
+ directory_url: cfg.directoryUrl,
252
+ region: cfg.region,
253
+ api_token: cfg.token,
254
+ });
255
+ const server = createProxyServer(client);
256
+ return new Promise((resolve) => {
257
+ server.listen(cfg.port, cfg.host, () => {
258
+ process.stdout.write(`iicp-node proxy → http://${cfg.host}:${cfg.port} (OpenAI/Ollama/Anthropic compat; no directory registration)\n`);
259
+ });
260
+ server.on("error", (e) => {
261
+ process.stderr.write(`proxy error: ${String(e)}\n`);
262
+ resolve(1);
263
+ });
264
+ });
265
+ }
266
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iicp/client",
3
- "version": "0.7.38",
3
+ "version": "0.7.40",
4
4
  "description": "Official TypeScript/JavaScript SDK for the IICP protocol (ADR-016)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",