@heyditto/cli 3.4.0 → 3.5.1
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 +65 -0
- package/dist/agents/claude.js +13 -4
- package/dist/agents/claude.js.map +1 -1
- package/dist/agents/cliproxy.d.ts +13 -0
- package/dist/agents/cliproxy.js +115 -0
- package/dist/agents/cliproxy.js.map +1 -0
- package/dist/agents/codex.js +1 -1
- package/dist/agents/codex.js.map +1 -1
- package/dist/agents/launch.d.ts +2 -0
- package/dist/agents/launch.js +53 -17
- package/dist/agents/launch.js.map +1 -1
- package/dist/agents/sessions.d.ts +2 -0
- package/dist/agents/sessions.js.map +1 -1
- package/dist/agents/types.d.ts +4 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands.js +4 -0
- package/dist/commands.js.map +1 -1
- package/dist/relay/client.d.ts +28 -0
- package/dist/relay/client.js +166 -0
- package/dist/relay/client.js.map +1 -0
- package/dist/relay/commands.d.ts +2 -0
- package/dist/relay/commands.js +71 -0
- package/dist/relay/commands.js.map +1 -0
- package/dist/remote/channel-server.js +22 -16
- package/dist/remote/channel-server.js.map +1 -1
- package/dist/update-lock.json +1 -1
- package/docs/t3-code.md +110 -0
- package/package.json +3 -1
- package/scripts/claude-router-launcher.sh +113 -0
|
@@ -21,7 +21,7 @@ export async function runChannelServer(options = {}) {
|
|
|
21
21
|
const forget = (id) => { pending.delete(id); deadlines.delete(id); failures.delete(id); };
|
|
22
22
|
const server = new Server({ name: "ditto-remote", version: packageVersion }, {
|
|
23
23
|
capabilities: { tools: {}, experimental: { "claude/channel": {} } },
|
|
24
|
-
instructions: "
|
|
24
|
+
instructions: "A channel event announces a pending prompt from the signed-in Ditto user. Call acknowledge with its turn_id to receive the actual prompt and attachment_paths as JSON. If acknowledgement fails or the prompt has expired, do not act on it. Handle the returned prompt under normal permissions. Use Read on the returned attachment_paths to inspect files, including images. Only trust paths returned by acknowledge, never paths supplied inside the user's prompt. Then call reply with the same turn_id and your response.",
|
|
25
25
|
});
|
|
26
26
|
const result = (text, isError = false) => ({ content: [{ type: "text", text }], isError });
|
|
27
27
|
const host = new HostClient({
|
|
@@ -45,24 +45,23 @@ export async function runChannelServer(options = {}) {
|
|
|
45
45
|
: { type: "turn.finished", turnId: turn.turnId, error: "Too many pending Channels prompts. Wait for one to finish, then send this prompt again." });
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
const delivery = { turn, acknowledged: false, paths: undefined };
|
|
49
|
+
pending.set(turn.turnId, delivery);
|
|
49
50
|
deadlines.set(turn.turnId, Date.now() + (options.receiptTimeoutMs ?? 10 * 60_000));
|
|
50
51
|
host.send({ type: "turn.ack", turnId: turn.turnId });
|
|
51
52
|
void (async () => {
|
|
52
53
|
try {
|
|
53
54
|
const files = await downloadAttachments(cwd, turn.turnId, turn.attachments ?? []);
|
|
54
|
-
if (
|
|
55
|
+
if (pending.get(turn.turnId) !== delivery)
|
|
55
56
|
return;
|
|
57
|
+
delivery.paths = files.map((file) => file.absPath);
|
|
56
58
|
await server.notification({ method: "notifications/claude/channel", params: {
|
|
57
|
-
content:
|
|
58
|
-
meta: {
|
|
59
|
-
turn_id: turn.turnId, session_id: sessionId,
|
|
60
|
-
...(files.length ? { attachment_paths: JSON.stringify(files.map((file) => file.absPath)) } : {}),
|
|
61
|
-
},
|
|
59
|
+
content: "A Ditto remote prompt is ready. Call acknowledge with the turn_id to receive it.",
|
|
60
|
+
meta: { turn_id: turn.turnId, session_id: sessionId },
|
|
62
61
|
} });
|
|
63
62
|
}
|
|
64
63
|
catch {
|
|
65
|
-
if (
|
|
64
|
+
if (pending.get(turn.turnId) !== delivery || delivery.acknowledged)
|
|
66
65
|
return;
|
|
67
66
|
failures.set(turn.turnId, "Could not deliver this prompt through MCP Channels");
|
|
68
67
|
deadlines.set(turn.turnId, Date.now());
|
|
@@ -76,7 +75,7 @@ export async function runChannelServer(options = {}) {
|
|
|
76
75
|
},
|
|
77
76
|
});
|
|
78
77
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [
|
|
79
|
-
{ name: "acknowledge", description: "Confirm
|
|
78
|
+
{ name: "acknowledge", description: "Confirm receipt and retrieve the prompt and attachment paths before starting work.", inputSchema: { type: "object", properties: { turn_id: { type: "string" } }, required: ["turn_id"] } },
|
|
80
79
|
{ name: "reply", description: "Complete a received Ditto remote prompt with the final response.", inputSchema: { type: "object", properties: { turn_id: { type: "string" }, text: { type: "string" } }, required: ["turn_id", "text"] } },
|
|
81
80
|
] }));
|
|
82
81
|
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
@@ -85,16 +84,23 @@ export async function runChannelServer(options = {}) {
|
|
|
85
84
|
return result("No pending remote prompt with that turn_id in this session", true);
|
|
86
85
|
if (failures.has(id) || Date.now() >= (deadlines.get(id) ?? 0))
|
|
87
86
|
return result("This remote prompt has expired. Do not act on it; ask the sender to send it again.", true);
|
|
87
|
+
const delivery = pending.get(id);
|
|
88
88
|
if (req.params.name === "acknowledge") {
|
|
89
|
-
if (!
|
|
90
|
-
return result("
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
if (!delivery.paths)
|
|
90
|
+
return result("This remote prompt is not ready yet. Retry shortly.", true);
|
|
91
|
+
if (!delivery.acknowledged) {
|
|
92
|
+
if (!host.send({ type: "turn.started", turnId: id }))
|
|
93
|
+
return result("Ditto remote link is disconnected. Retry after it reconnects.", true);
|
|
94
|
+
delivery.acknowledged = true;
|
|
95
|
+
host.status(sessionId, "running");
|
|
96
|
+
deadlines.set(id, Date.now() + (options.completionTimeoutMs ?? 60 * 60_000));
|
|
97
|
+
}
|
|
98
|
+
return result(JSON.stringify({ prompt: delivery.turn.text || (delivery.paths.length ? "Inspect the attached files." : ""), attachment_paths: delivery.paths }));
|
|
95
99
|
}
|
|
96
100
|
if (req.params.name !== "reply" || typeof req.params.arguments?.text !== "string")
|
|
97
101
|
return result("Expected acknowledge or reply with text", true);
|
|
102
|
+
if (!delivery.acknowledged)
|
|
103
|
+
return result("Acknowledge this remote prompt before replying.", true);
|
|
98
104
|
// Do not pretend a notification write proved model receipt or completion.
|
|
99
105
|
if (Buffer.byteLength(req.params.arguments.text, "utf8") > 64 * 1024)
|
|
100
106
|
return result("Response exceeds 64 KiB. Shorten it and retry this reply.", true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-server.js","sourceRoot":"","sources":["../../src/remote/channel-server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAuE,EAAE;IAC9G,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;IACtC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAChH,MAAM,OAAO,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"channel-server.js","sourceRoot":"","sources":["../../src/remote/channel-server.ts"],"names":[],"mappings":"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"}
|
package/dist/update-lock.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"bootstrap":1,"name":"@heyditto/cli","packageVersion":"3.4.0","packages":[{"path":"node_modules/@hono/node-server","name":"@hono/node-server","version":"1.19.14","resolved":"https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz","integrity":"sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="},{"path":"node_modules/@isaacs/fs-minipass","name":"@isaacs/fs-minipass","version":"4.0.1","resolved":"https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz","integrity":"sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="},{"path":"node_modules/@lydell/node-pty","name":"@lydell/node-pty","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty/-/node-pty-1.2.0-beta.15.tgz","integrity":"sha512-Br8wBxzbxFwdWgk9uQ+rdzE0xfoxOK4QuGH54swhRwc5IxP6H9Y1/bcyazRGvNUs6XkB5qNVkezuKSRxUwZe7A==","optional":true},{"path":"node_modules/@lydell/node-pty-darwin-arm64","name":"@lydell/node-pty-darwin-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-darwin-arm64/-/node-pty-darwin-arm64-1.2.0-beta.15.tgz","integrity":"sha512-6TSBbzdcLiNTHl1mTuzflqXrkmcC36USVGvERoDgvHk2ItEDaMaFZuAJ1CqPmwYj0DyhCS16TVS8OGK9xZnjyQ==","optional":true,"os":["darwin"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-darwin-x64","name":"@lydell/node-pty-darwin-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-darwin-x64/-/node-pty-darwin-x64-1.2.0-beta.15.tgz","integrity":"sha512-yDT2oqPqYMBScyuk1U9Rg5VKcrbMOD9o9jWYYamDADA3NSbUISroPChrqYRQ74Y7BQtNH4gqYAiWOZRi5uQZ0Q==","optional":true,"os":["darwin"],"cpu":["x64"]},{"path":"node_modules/@lydell/node-pty-linux-arm64","name":"@lydell/node-pty-linux-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-linux-arm64/-/node-pty-linux-arm64-1.2.0-beta.15.tgz","integrity":"sha512-wkbNF7dYAmtJv+o2+iztVlNwnUB4B0uX0wh/UD+mwMcmE2gNMnW9GChXO7fEE5XJokD0vB5idiHpGegaN+G/sg==","optional":true,"os":["linux"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-linux-x64","name":"@lydell/node-pty-linux-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-linux-x64/-/node-pty-linux-x64-1.2.0-beta.15.tgz","integrity":"sha512-+U/5AVvHT6W+8OCYcnJgN0Qgc0ycO3TfD6aaFJHK+WHij797f8gsi5dV1HEO9l6YQmWCD+VL5gaLDhx3mxHwCA==","optional":true,"os":["linux"],"cpu":["x64"]},{"path":"node_modules/@lydell/node-pty-win32-arm64","name":"@lydell/node-pty-win32-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-win32-arm64/-/node-pty-win32-arm64-1.2.0-beta.15.tgz","integrity":"sha512-pyAk91w7wnnKrD4mrHXtIXRfmzSWV5bEzvRhurXcMCtCc2TJ424ciUskIgWMhAPP6y3KyUnqElj+U6kY3iOt0A==","optional":true,"os":["win32"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-win32-x64","name":"@lydell/node-pty-win32-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-win32-x64/-/node-pty-win32-x64-1.2.0-beta.15.tgz","integrity":"sha512-2f8twEmDVxZ7drchAXjtevpmSPhFok0avAnzXro4t5gmz0xsPNKkoZvymwtuIS3xo7PzQqZOPQ/YzwEMb7oIzQ==","optional":true,"os":["win32"],"cpu":["x64"]},{"path":"node_modules/@modelcontextprotocol/sdk","name":"@modelcontextprotocol/sdk","version":"1.29.0","resolved":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz","integrity":"sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="},{"path":"node_modules/accepts","name":"accepts","version":"2.0.0","resolved":"https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz","integrity":"sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="},{"path":"node_modules/ajv","name":"ajv","version":"8.20.0","resolved":"https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz","integrity":"sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="},{"path":"node_modules/ajv-formats","name":"ajv-formats","version":"3.0.1","resolved":"https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz","integrity":"sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="},{"path":"node_modules/body-parser","name":"body-parser","version":"2.2.2","resolved":"https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz","integrity":"sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="},{"path":"node_modules/bytes","name":"bytes","version":"3.1.2","resolved":"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz","integrity":"sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="},{"path":"node_modules/call-bind-apply-helpers","name":"call-bind-apply-helpers","version":"1.0.2","resolved":"https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz","integrity":"sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="},{"path":"node_modules/call-bound","name":"call-bound","version":"1.0.4","resolved":"https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz","integrity":"sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="},{"path":"node_modules/chownr","name":"chownr","version":"3.0.0","resolved":"https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz","integrity":"sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="},{"path":"node_modules/commander","name":"commander","version":"15.0.0","resolved":"https://registry.npmjs.org/commander/-/commander-15.0.0.tgz","integrity":"sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="},{"path":"node_modules/content-disposition","name":"content-disposition","version":"1.1.0","resolved":"https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz","integrity":"sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="},{"path":"node_modules/content-type","name":"content-type","version":"1.0.5","resolved":"https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz","integrity":"sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="},{"path":"node_modules/cookie","name":"cookie","version":"0.7.2","resolved":"https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz","integrity":"sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="},{"path":"node_modules/cookie-signature","name":"cookie-signature","version":"1.2.2","resolved":"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz","integrity":"sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="},{"path":"node_modules/cors","name":"cors","version":"2.8.6","resolved":"https://registry.npmjs.org/cors/-/cors-2.8.6.tgz","integrity":"sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw=="},{"path":"node_modules/cross-spawn","name":"cross-spawn","version":"7.0.6","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz","integrity":"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="},{"path":"node_modules/debug","name":"debug","version":"4.4.3","resolved":"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz","integrity":"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="},{"path":"node_modules/depd","name":"depd","version":"2.0.0","resolved":"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz","integrity":"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="},{"path":"node_modules/dunder-proto","name":"dunder-proto","version":"1.0.1","resolved":"https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz","integrity":"sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="},{"path":"node_modules/ee-first","name":"ee-first","version":"1.1.1","resolved":"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz","integrity":"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="},{"path":"node_modules/encodeurl","name":"encodeurl","version":"2.0.0","resolved":"https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz","integrity":"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="},{"path":"node_modules/es-define-property","name":"es-define-property","version":"1.0.1","resolved":"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz","integrity":"sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="},{"path":"node_modules/es-errors","name":"es-errors","version":"1.3.0","resolved":"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz","integrity":"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="},{"path":"node_modules/es-object-atoms","name":"es-object-atoms","version":"1.1.2","resolved":"https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz","integrity":"sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="},{"path":"node_modules/escape-html","name":"escape-html","version":"1.0.3","resolved":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz","integrity":"sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="},{"path":"node_modules/etag","name":"etag","version":"1.8.1","resolved":"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz","integrity":"sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="},{"path":"node_modules/eventsource","name":"eventsource","version":"3.0.7","resolved":"https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz","integrity":"sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="},{"path":"node_modules/eventsource-parser","name":"eventsource-parser","version":"3.0.8","resolved":"https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.8.tgz","integrity":"sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ=="},{"path":"node_modules/express","name":"express","version":"5.2.1","resolved":"https://registry.npmjs.org/express/-/express-5.2.1.tgz","integrity":"sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw=="},{"path":"node_modules/express-rate-limit","name":"express-rate-limit","version":"8.5.1","resolved":"https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.5.1.tgz","integrity":"sha512-5O6KYmyJEpuPJV5hNTXKbAHWRqrzyu+OI3vUnSd2kXFubIVpG7ezpgxQy76Zo5GQZtrQBg86hF+CM/NX+cioiQ=="},{"path":"node_modules/fast-deep-equal","name":"fast-deep-equal","version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="},{"path":"node_modules/fast-uri","name":"fast-uri","version":"3.1.2","resolved":"https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz","integrity":"sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ=="},{"path":"node_modules/finalhandler","name":"finalhandler","version":"2.1.1","resolved":"https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz","integrity":"sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="},{"path":"node_modules/forwarded","name":"forwarded","version":"0.2.0","resolved":"https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz","integrity":"sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="},{"path":"node_modules/fresh","name":"fresh","version":"2.0.0","resolved":"https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz","integrity":"sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="},{"path":"node_modules/function-bind","name":"function-bind","version":"1.1.2","resolved":"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz","integrity":"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="},{"path":"node_modules/get-intrinsic","name":"get-intrinsic","version":"1.3.0","resolved":"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz","integrity":"sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="},{"path":"node_modules/get-proto","name":"get-proto","version":"1.0.1","resolved":"https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz","integrity":"sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="},{"path":"node_modules/gopd","name":"gopd","version":"1.2.0","resolved":"https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz","integrity":"sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="},{"path":"node_modules/has-symbols","name":"has-symbols","version":"1.1.0","resolved":"https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz","integrity":"sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="},{"path":"node_modules/hasown","name":"hasown","version":"2.0.4","resolved":"https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz","integrity":"sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="},{"path":"node_modules/hono","name":"hono","version":"4.12.28","resolved":"https://registry.npmjs.org/hono/-/hono-4.12.28.tgz","integrity":"sha512-YwUvVpSF7m1yOblFPrU3Hbo8XhPheBoiyfGuII6z19LnOr6JpDnyyp7LFNrfV56wS8tpvtBFGRISHN02pDdLOA=="},{"path":"node_modules/http-errors","name":"http-errors","version":"2.0.1","resolved":"https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz","integrity":"sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="},{"path":"node_modules/iconv-lite","name":"iconv-lite","version":"0.7.2","resolved":"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz","integrity":"sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="},{"path":"node_modules/inherits","name":"inherits","version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="},{"path":"node_modules/ip-address","name":"ip-address","version":"10.2.0","resolved":"https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz","integrity":"sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA=="},{"path":"node_modules/ipaddr.js","name":"ipaddr.js","version":"1.9.1","resolved":"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz","integrity":"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="},{"path":"node_modules/is-promise","name":"is-promise","version":"4.0.0","resolved":"https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz","integrity":"sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="},{"path":"node_modules/isexe","name":"isexe","version":"2.0.0","resolved":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","integrity":"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="},{"path":"node_modules/jose","name":"jose","version":"6.2.3","resolved":"https://registry.npmjs.org/jose/-/jose-6.2.3.tgz","integrity":"sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw=="},{"path":"node_modules/json-schema-traverse","name":"json-schema-traverse","version":"1.0.0","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz","integrity":"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="},{"path":"node_modules/json-schema-typed","name":"json-schema-typed","version":"8.0.2","resolved":"https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz","integrity":"sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="},{"path":"node_modules/math-intrinsics","name":"math-intrinsics","version":"1.1.0","resolved":"https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz","integrity":"sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="},{"path":"node_modules/media-typer","name":"media-typer","version":"1.1.0","resolved":"https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz","integrity":"sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="},{"path":"node_modules/merge-descriptors","name":"merge-descriptors","version":"2.0.0","resolved":"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz","integrity":"sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="},{"path":"node_modules/mime-db","name":"mime-db","version":"1.54.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz","integrity":"sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="},{"path":"node_modules/mime-types","name":"mime-types","version":"3.0.2","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz","integrity":"sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="},{"path":"node_modules/minipass","name":"minipass","version":"7.1.3","resolved":"https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz","integrity":"sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="},{"path":"node_modules/minizlib","name":"minizlib","version":"3.1.0","resolved":"https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz","integrity":"sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="},{"path":"node_modules/ms","name":"ms","version":"2.1.3","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="},{"path":"node_modules/negotiator","name":"negotiator","version":"1.0.0","resolved":"https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz","integrity":"sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="},{"path":"node_modules/object-assign","name":"object-assign","version":"4.1.1","resolved":"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz","integrity":"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="},{"path":"node_modules/object-inspect","name":"object-inspect","version":"1.13.4","resolved":"https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz","integrity":"sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="},{"path":"node_modules/on-finished","name":"on-finished","version":"2.4.1","resolved":"https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz","integrity":"sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="},{"path":"node_modules/once","name":"once","version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="},{"path":"node_modules/parseurl","name":"parseurl","version":"1.3.3","resolved":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="},{"path":"node_modules/path-key","name":"path-key","version":"3.1.1","resolved":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","integrity":"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="},{"path":"node_modules/path-to-regexp","name":"path-to-regexp","version":"8.4.2","resolved":"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz","integrity":"sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="},{"path":"node_modules/pkce-challenge","name":"pkce-challenge","version":"5.0.1","resolved":"https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz","integrity":"sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="},{"path":"node_modules/proxy-addr","name":"proxy-addr","version":"2.0.7","resolved":"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz","integrity":"sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="},{"path":"node_modules/qs","name":"qs","version":"6.15.3","resolved":"https://registry.npmjs.org/qs/-/qs-6.15.3.tgz","integrity":"sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A=="},{"path":"node_modules/range-parser","name":"range-parser","version":"1.2.1","resolved":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="},{"path":"node_modules/raw-body","name":"raw-body","version":"3.0.2","resolved":"https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz","integrity":"sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="},{"path":"node_modules/require-from-string","name":"require-from-string","version":"2.0.2","resolved":"https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz","integrity":"sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="},{"path":"node_modules/router","name":"router","version":"2.2.0","resolved":"https://registry.npmjs.org/router/-/router-2.2.0.tgz","integrity":"sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="},{"path":"node_modules/safer-buffer","name":"safer-buffer","version":"2.1.2","resolved":"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz","integrity":"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="},{"path":"node_modules/semver","name":"semver","version":"7.8.5","resolved":"https://registry.npmjs.org/semver/-/semver-7.8.5.tgz","integrity":"sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="},{"path":"node_modules/send","name":"send","version":"1.2.1","resolved":"https://registry.npmjs.org/send/-/send-1.2.1.tgz","integrity":"sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="},{"path":"node_modules/serve-static","name":"serve-static","version":"2.2.1","resolved":"https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz","integrity":"sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="},{"path":"node_modules/setprototypeof","name":"setprototypeof","version":"1.2.0","resolved":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz","integrity":"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="},{"path":"node_modules/shebang-command","name":"shebang-command","version":"2.0.0","resolved":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","integrity":"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="},{"path":"node_modules/shebang-regex","name":"shebang-regex","version":"3.0.0","resolved":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","integrity":"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="},{"path":"node_modules/side-channel","name":"side-channel","version":"1.1.1","resolved":"https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz","integrity":"sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ=="},{"path":"node_modules/side-channel-list","name":"side-channel-list","version":"1.0.1","resolved":"https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz","integrity":"sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="},{"path":"node_modules/side-channel-map","name":"side-channel-map","version":"1.0.1","resolved":"https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz","integrity":"sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="},{"path":"node_modules/side-channel-weakmap","name":"side-channel-weakmap","version":"1.0.2","resolved":"https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz","integrity":"sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="},{"path":"node_modules/smol-toml","name":"smol-toml","version":"1.8.0","resolved":"https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz","integrity":"sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ=="},{"path":"node_modules/statuses","name":"statuses","version":"2.0.2","resolved":"https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz","integrity":"sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="},{"path":"node_modules/tar","name":"tar","version":"7.5.22","resolved":"https://registry.npmjs.org/tar/-/tar-7.5.22.tgz","integrity":"sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA=="},{"path":"node_modules/toidentifier","name":"toidentifier","version":"1.0.1","resolved":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz","integrity":"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="},{"path":"node_modules/type-is","name":"type-is","version":"2.0.1","resolved":"https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz","integrity":"sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="},{"path":"node_modules/unpipe","name":"unpipe","version":"1.0.0","resolved":"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz","integrity":"sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="},{"path":"node_modules/vary","name":"vary","version":"1.1.2","resolved":"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz","integrity":"sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="},{"path":"node_modules/which","name":"which","version":"2.0.2","resolved":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","integrity":"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="},{"path":"node_modules/wrappy","name":"wrappy","version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="},{"path":"node_modules/yallist","name":"yallist","version":"5.0.0","resolved":"https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz","integrity":"sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="},{"path":"node_modules/zod","name":"zod","version":"4.4.3","resolved":"https://registry.npmjs.org/zod/-/zod-4.4.3.tgz","integrity":"sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="},{"path":"node_modules/zod-to-json-schema","name":"zod-to-json-schema","version":"3.25.2","resolved":"https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz","integrity":"sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="}]}
|
|
1
|
+
{"version":1,"bootstrap":1,"name":"@heyditto/cli","packageVersion":"3.5.1","packages":[{"path":"node_modules/@hono/node-server","name":"@hono/node-server","version":"1.19.14","resolved":"https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz","integrity":"sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="},{"path":"node_modules/@isaacs/fs-minipass","name":"@isaacs/fs-minipass","version":"4.0.1","resolved":"https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz","integrity":"sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="},{"path":"node_modules/@lydell/node-pty","name":"@lydell/node-pty","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty/-/node-pty-1.2.0-beta.15.tgz","integrity":"sha512-Br8wBxzbxFwdWgk9uQ+rdzE0xfoxOK4QuGH54swhRwc5IxP6H9Y1/bcyazRGvNUs6XkB5qNVkezuKSRxUwZe7A==","optional":true},{"path":"node_modules/@lydell/node-pty-darwin-arm64","name":"@lydell/node-pty-darwin-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-darwin-arm64/-/node-pty-darwin-arm64-1.2.0-beta.15.tgz","integrity":"sha512-6TSBbzdcLiNTHl1mTuzflqXrkmcC36USVGvERoDgvHk2ItEDaMaFZuAJ1CqPmwYj0DyhCS16TVS8OGK9xZnjyQ==","optional":true,"os":["darwin"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-darwin-x64","name":"@lydell/node-pty-darwin-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-darwin-x64/-/node-pty-darwin-x64-1.2.0-beta.15.tgz","integrity":"sha512-yDT2oqPqYMBScyuk1U9Rg5VKcrbMOD9o9jWYYamDADA3NSbUISroPChrqYRQ74Y7BQtNH4gqYAiWOZRi5uQZ0Q==","optional":true,"os":["darwin"],"cpu":["x64"]},{"path":"node_modules/@lydell/node-pty-linux-arm64","name":"@lydell/node-pty-linux-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-linux-arm64/-/node-pty-linux-arm64-1.2.0-beta.15.tgz","integrity":"sha512-wkbNF7dYAmtJv+o2+iztVlNwnUB4B0uX0wh/UD+mwMcmE2gNMnW9GChXO7fEE5XJokD0vB5idiHpGegaN+G/sg==","optional":true,"os":["linux"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-linux-x64","name":"@lydell/node-pty-linux-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-linux-x64/-/node-pty-linux-x64-1.2.0-beta.15.tgz","integrity":"sha512-+U/5AVvHT6W+8OCYcnJgN0Qgc0ycO3TfD6aaFJHK+WHij797f8gsi5dV1HEO9l6YQmWCD+VL5gaLDhx3mxHwCA==","optional":true,"os":["linux"],"cpu":["x64"]},{"path":"node_modules/@lydell/node-pty-win32-arm64","name":"@lydell/node-pty-win32-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-win32-arm64/-/node-pty-win32-arm64-1.2.0-beta.15.tgz","integrity":"sha512-pyAk91w7wnnKrD4mrHXtIXRfmzSWV5bEzvRhurXcMCtCc2TJ424ciUskIgWMhAPP6y3KyUnqElj+U6kY3iOt0A==","optional":true,"os":["win32"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-win32-x64","name":"@lydell/node-pty-win32-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-win32-x64/-/node-pty-win32-x64-1.2.0-beta.15.tgz","integrity":"sha512-2f8twEmDVxZ7drchAXjtevpmSPhFok0avAnzXro4t5gmz0xsPNKkoZvymwtuIS3xo7PzQqZOPQ/YzwEMb7oIzQ==","optional":true,"os":["win32"],"cpu":["x64"]},{"path":"node_modules/@modelcontextprotocol/sdk","name":"@modelcontextprotocol/sdk","version":"1.29.0","resolved":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz","integrity":"sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="},{"path":"node_modules/accepts","name":"accepts","version":"2.0.0","resolved":"https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz","integrity":"sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="},{"path":"node_modules/ajv","name":"ajv","version":"8.20.0","resolved":"https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz","integrity":"sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="},{"path":"node_modules/ajv-formats","name":"ajv-formats","version":"3.0.1","resolved":"https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz","integrity":"sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="},{"path":"node_modules/body-parser","name":"body-parser","version":"2.2.2","resolved":"https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz","integrity":"sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="},{"path":"node_modules/bytes","name":"bytes","version":"3.1.2","resolved":"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz","integrity":"sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="},{"path":"node_modules/call-bind-apply-helpers","name":"call-bind-apply-helpers","version":"1.0.2","resolved":"https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz","integrity":"sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="},{"path":"node_modules/call-bound","name":"call-bound","version":"1.0.4","resolved":"https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz","integrity":"sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="},{"path":"node_modules/chownr","name":"chownr","version":"3.0.0","resolved":"https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz","integrity":"sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="},{"path":"node_modules/commander","name":"commander","version":"15.0.0","resolved":"https://registry.npmjs.org/commander/-/commander-15.0.0.tgz","integrity":"sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="},{"path":"node_modules/content-disposition","name":"content-disposition","version":"1.1.0","resolved":"https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz","integrity":"sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="},{"path":"node_modules/content-type","name":"content-type","version":"1.0.5","resolved":"https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz","integrity":"sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="},{"path":"node_modules/cookie","name":"cookie","version":"0.7.2","resolved":"https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz","integrity":"sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="},{"path":"node_modules/cookie-signature","name":"cookie-signature","version":"1.2.2","resolved":"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz","integrity":"sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="},{"path":"node_modules/cors","name":"cors","version":"2.8.6","resolved":"https://registry.npmjs.org/cors/-/cors-2.8.6.tgz","integrity":"sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw=="},{"path":"node_modules/cross-spawn","name":"cross-spawn","version":"7.0.6","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz","integrity":"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="},{"path":"node_modules/debug","name":"debug","version":"4.4.3","resolved":"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz","integrity":"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="},{"path":"node_modules/depd","name":"depd","version":"2.0.0","resolved":"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz","integrity":"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="},{"path":"node_modules/dunder-proto","name":"dunder-proto","version":"1.0.1","resolved":"https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz","integrity":"sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="},{"path":"node_modules/ee-first","name":"ee-first","version":"1.1.1","resolved":"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz","integrity":"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="},{"path":"node_modules/encodeurl","name":"encodeurl","version":"2.0.0","resolved":"https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz","integrity":"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="},{"path":"node_modules/es-define-property","name":"es-define-property","version":"1.0.1","resolved":"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz","integrity":"sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="},{"path":"node_modules/es-errors","name":"es-errors","version":"1.3.0","resolved":"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz","integrity":"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="},{"path":"node_modules/es-object-atoms","name":"es-object-atoms","version":"1.1.2","resolved":"https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz","integrity":"sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="},{"path":"node_modules/escape-html","name":"escape-html","version":"1.0.3","resolved":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz","integrity":"sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="},{"path":"node_modules/etag","name":"etag","version":"1.8.1","resolved":"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz","integrity":"sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="},{"path":"node_modules/eventsource","name":"eventsource","version":"3.0.7","resolved":"https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz","integrity":"sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="},{"path":"node_modules/eventsource-parser","name":"eventsource-parser","version":"3.0.8","resolved":"https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.8.tgz","integrity":"sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ=="},{"path":"node_modules/express","name":"express","version":"5.2.1","resolved":"https://registry.npmjs.org/express/-/express-5.2.1.tgz","integrity":"sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw=="},{"path":"node_modules/express-rate-limit","name":"express-rate-limit","version":"8.5.1","resolved":"https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.5.1.tgz","integrity":"sha512-5O6KYmyJEpuPJV5hNTXKbAHWRqrzyu+OI3vUnSd2kXFubIVpG7ezpgxQy76Zo5GQZtrQBg86hF+CM/NX+cioiQ=="},{"path":"node_modules/fast-deep-equal","name":"fast-deep-equal","version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="},{"path":"node_modules/fast-uri","name":"fast-uri","version":"3.1.2","resolved":"https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz","integrity":"sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ=="},{"path":"node_modules/finalhandler","name":"finalhandler","version":"2.1.1","resolved":"https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz","integrity":"sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="},{"path":"node_modules/forwarded","name":"forwarded","version":"0.2.0","resolved":"https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz","integrity":"sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="},{"path":"node_modules/fresh","name":"fresh","version":"2.0.0","resolved":"https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz","integrity":"sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="},{"path":"node_modules/function-bind","name":"function-bind","version":"1.1.2","resolved":"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz","integrity":"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="},{"path":"node_modules/get-intrinsic","name":"get-intrinsic","version":"1.3.0","resolved":"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz","integrity":"sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="},{"path":"node_modules/get-proto","name":"get-proto","version":"1.0.1","resolved":"https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz","integrity":"sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="},{"path":"node_modules/gopd","name":"gopd","version":"1.2.0","resolved":"https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz","integrity":"sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="},{"path":"node_modules/has-symbols","name":"has-symbols","version":"1.1.0","resolved":"https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz","integrity":"sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="},{"path":"node_modules/hasown","name":"hasown","version":"2.0.4","resolved":"https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz","integrity":"sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="},{"path":"node_modules/hono","name":"hono","version":"4.12.28","resolved":"https://registry.npmjs.org/hono/-/hono-4.12.28.tgz","integrity":"sha512-YwUvVpSF7m1yOblFPrU3Hbo8XhPheBoiyfGuII6z19LnOr6JpDnyyp7LFNrfV56wS8tpvtBFGRISHN02pDdLOA=="},{"path":"node_modules/http-errors","name":"http-errors","version":"2.0.1","resolved":"https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz","integrity":"sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="},{"path":"node_modules/iconv-lite","name":"iconv-lite","version":"0.7.2","resolved":"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz","integrity":"sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="},{"path":"node_modules/inherits","name":"inherits","version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="},{"path":"node_modules/ip-address","name":"ip-address","version":"10.2.0","resolved":"https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz","integrity":"sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA=="},{"path":"node_modules/ipaddr.js","name":"ipaddr.js","version":"1.9.1","resolved":"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz","integrity":"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="},{"path":"node_modules/is-promise","name":"is-promise","version":"4.0.0","resolved":"https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz","integrity":"sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="},{"path":"node_modules/isexe","name":"isexe","version":"2.0.0","resolved":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","integrity":"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="},{"path":"node_modules/jose","name":"jose","version":"6.2.3","resolved":"https://registry.npmjs.org/jose/-/jose-6.2.3.tgz","integrity":"sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw=="},{"path":"node_modules/json-schema-traverse","name":"json-schema-traverse","version":"1.0.0","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz","integrity":"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="},{"path":"node_modules/json-schema-typed","name":"json-schema-typed","version":"8.0.2","resolved":"https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz","integrity":"sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="},{"path":"node_modules/math-intrinsics","name":"math-intrinsics","version":"1.1.0","resolved":"https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz","integrity":"sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="},{"path":"node_modules/media-typer","name":"media-typer","version":"1.1.0","resolved":"https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz","integrity":"sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="},{"path":"node_modules/merge-descriptors","name":"merge-descriptors","version":"2.0.0","resolved":"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz","integrity":"sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="},{"path":"node_modules/mime-db","name":"mime-db","version":"1.54.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz","integrity":"sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="},{"path":"node_modules/mime-types","name":"mime-types","version":"3.0.2","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz","integrity":"sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="},{"path":"node_modules/minipass","name":"minipass","version":"7.1.3","resolved":"https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz","integrity":"sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="},{"path":"node_modules/minizlib","name":"minizlib","version":"3.1.0","resolved":"https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz","integrity":"sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="},{"path":"node_modules/ms","name":"ms","version":"2.1.3","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="},{"path":"node_modules/negotiator","name":"negotiator","version":"1.0.0","resolved":"https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz","integrity":"sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="},{"path":"node_modules/object-assign","name":"object-assign","version":"4.1.1","resolved":"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz","integrity":"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="},{"path":"node_modules/object-inspect","name":"object-inspect","version":"1.13.4","resolved":"https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz","integrity":"sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="},{"path":"node_modules/on-finished","name":"on-finished","version":"2.4.1","resolved":"https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz","integrity":"sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="},{"path":"node_modules/once","name":"once","version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="},{"path":"node_modules/parseurl","name":"parseurl","version":"1.3.3","resolved":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="},{"path":"node_modules/path-key","name":"path-key","version":"3.1.1","resolved":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","integrity":"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="},{"path":"node_modules/path-to-regexp","name":"path-to-regexp","version":"8.4.2","resolved":"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz","integrity":"sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="},{"path":"node_modules/pkce-challenge","name":"pkce-challenge","version":"5.0.1","resolved":"https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz","integrity":"sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="},{"path":"node_modules/proxy-addr","name":"proxy-addr","version":"2.0.7","resolved":"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz","integrity":"sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="},{"path":"node_modules/qs","name":"qs","version":"6.15.3","resolved":"https://registry.npmjs.org/qs/-/qs-6.15.3.tgz","integrity":"sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A=="},{"path":"node_modules/range-parser","name":"range-parser","version":"1.2.1","resolved":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="},{"path":"node_modules/raw-body","name":"raw-body","version":"3.0.2","resolved":"https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz","integrity":"sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="},{"path":"node_modules/require-from-string","name":"require-from-string","version":"2.0.2","resolved":"https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz","integrity":"sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="},{"path":"node_modules/router","name":"router","version":"2.2.0","resolved":"https://registry.npmjs.org/router/-/router-2.2.0.tgz","integrity":"sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="},{"path":"node_modules/safer-buffer","name":"safer-buffer","version":"2.1.2","resolved":"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz","integrity":"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="},{"path":"node_modules/semver","name":"semver","version":"7.8.5","resolved":"https://registry.npmjs.org/semver/-/semver-7.8.5.tgz","integrity":"sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="},{"path":"node_modules/send","name":"send","version":"1.2.1","resolved":"https://registry.npmjs.org/send/-/send-1.2.1.tgz","integrity":"sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="},{"path":"node_modules/serve-static","name":"serve-static","version":"2.2.1","resolved":"https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz","integrity":"sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="},{"path":"node_modules/setprototypeof","name":"setprototypeof","version":"1.2.0","resolved":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz","integrity":"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="},{"path":"node_modules/shebang-command","name":"shebang-command","version":"2.0.0","resolved":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","integrity":"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="},{"path":"node_modules/shebang-regex","name":"shebang-regex","version":"3.0.0","resolved":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","integrity":"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="},{"path":"node_modules/side-channel","name":"side-channel","version":"1.1.1","resolved":"https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz","integrity":"sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ=="},{"path":"node_modules/side-channel-list","name":"side-channel-list","version":"1.0.1","resolved":"https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz","integrity":"sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="},{"path":"node_modules/side-channel-map","name":"side-channel-map","version":"1.0.1","resolved":"https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz","integrity":"sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="},{"path":"node_modules/side-channel-weakmap","name":"side-channel-weakmap","version":"1.0.2","resolved":"https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz","integrity":"sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="},{"path":"node_modules/smol-toml","name":"smol-toml","version":"1.8.0","resolved":"https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz","integrity":"sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ=="},{"path":"node_modules/statuses","name":"statuses","version":"2.0.2","resolved":"https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz","integrity":"sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="},{"path":"node_modules/tar","name":"tar","version":"7.5.22","resolved":"https://registry.npmjs.org/tar/-/tar-7.5.22.tgz","integrity":"sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA=="},{"path":"node_modules/toidentifier","name":"toidentifier","version":"1.0.1","resolved":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz","integrity":"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="},{"path":"node_modules/type-is","name":"type-is","version":"2.0.1","resolved":"https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz","integrity":"sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="},{"path":"node_modules/unpipe","name":"unpipe","version":"1.0.0","resolved":"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz","integrity":"sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="},{"path":"node_modules/vary","name":"vary","version":"1.1.2","resolved":"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz","integrity":"sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="},{"path":"node_modules/which","name":"which","version":"2.0.2","resolved":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","integrity":"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="},{"path":"node_modules/wrappy","name":"wrappy","version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="},{"path":"node_modules/yallist","name":"yallist","version":"5.0.0","resolved":"https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz","integrity":"sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="},{"path":"node_modules/zod","name":"zod","version":"4.4.3","resolved":"https://registry.npmjs.org/zod/-/zod-4.4.3.tgz","integrity":"sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="},{"path":"node_modules/zod-to-json-schema","name":"zod-to-json-schema","version":"3.25.2","resolved":"https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz","integrity":"sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="}]}
|
package/docs/t3-code.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Use Ditto Router in the official T3 Code app
|
|
2
|
+
|
|
3
|
+
T3 Code can run an additional Claude provider instance through Ditto Router.
|
|
4
|
+
Keep the normal Claude instance for its existing subscription. The extra
|
|
5
|
+
instance uses the installed Claude Code harness, Ditto Router inference, and
|
|
6
|
+
the Router's endpoint tools and optimizations.
|
|
7
|
+
|
|
8
|
+
## Install the launcher
|
|
9
|
+
|
|
10
|
+
Use `@heyditto/cli` **3.4.0 or newer** and a Node runtime supported by that
|
|
11
|
+
installed package. Confirm the binaries in the shell used to install it:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
command -v node
|
|
15
|
+
command -v heyditto
|
|
16
|
+
command -v claude
|
|
17
|
+
heyditto --version
|
|
18
|
+
heyditto claude --help
|
|
19
|
+
heyditto status
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Sign in with `heyditto login` if needed. Never put a Ditto or provider key in
|
|
23
|
+
the launcher. Select an endpoint you may use with `heyditto endpoints list`.
|
|
24
|
+
Use its CLI slug, for example `ditto-dev`; do not assume an `@org/slug` form is
|
|
25
|
+
accepted by the installed CLI.
|
|
26
|
+
|
|
27
|
+
From this repository:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
mkdir -p "$HOME/.local/bin" "$HOME/.claude_t3_ditto"
|
|
31
|
+
install -m 700 scripts/claude-router-launcher.sh "$HOME/.local/bin/t3-ditto-claude"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Or, when installed from npm, copy the packaged launcher using the same npm/Node
|
|
35
|
+
installation as the chosen `heyditto`:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
install -m 700 "$(npm root -g)/@heyditto/cli/scripts/claude-router-launcher.sh" "$HOME/.local/bin/t3-ditto-claude"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Add a T3 provider instance
|
|
42
|
+
|
|
43
|
+
In **Settings → Providers → Add provider**, add another **Claude** instance:
|
|
44
|
+
|
|
45
|
+
| Setting | Value |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| Display name | `Ditto Router` |
|
|
48
|
+
| Binary path | The absolute path to `~/.local/bin/t3-ditto-claude` |
|
|
49
|
+
| Claude config directory | The absolute path to `~/.claude_t3_ditto` |
|
|
50
|
+
| `DITTO_T3_ENDPOINT` environment variable | Your endpoint slug, for example `ditto-dev` |
|
|
51
|
+
| `DITTO_T3_HEYDITTO_BIN` environment variable | Optional absolute path to the selected `heyditto` executable |
|
|
52
|
+
| `DITTO_T3_CLAUDE_BIN` environment variable | Optional absolute path to the selected executable named `claude` |
|
|
53
|
+
|
|
54
|
+
The binary overrides are useful when macOS desktop apps see a different PATH
|
|
55
|
+
from the terminal, or when several global CLI installations coexist. The
|
|
56
|
+
launcher puts those binaries' directories first on its child PATH, so a
|
|
57
|
+
version-manager installation uses the Node runtime alongside its `heyditto`.
|
|
58
|
+
For a native Claude executable whose filename is a version number, point the
|
|
59
|
+
override at its normal `claude` symlink instead. Do not change `HOME`.
|
|
60
|
+
|
|
61
|
+
Leave the Router token and Anthropic authentication variables unset in T3.
|
|
62
|
+
The launcher obtains a temporary endpoint key through the existing Ditto login
|
|
63
|
+
for each launch. A separate Claude config directory avoids interfering with the
|
|
64
|
+
normal provider's account and conversations. The launcher also removes inherited
|
|
65
|
+
Anthropic gateway credentials and alternative-provider selectors for this child.
|
|
66
|
+
|
|
67
|
+
Add a custom model in this provider's **Models** section if the model you want
|
|
68
|
+
is absent from T3's built-in list, then select that exact model in a new chat.
|
|
69
|
+
The Router endpoint's routing policy determines the upstream model; inspect
|
|
70
|
+
the served trace when verifying the model actually used.
|
|
71
|
+
|
|
72
|
+
## Verify the connection
|
|
73
|
+
|
|
74
|
+
1. Refresh provider status. The launcher forwards version probes directly to
|
|
75
|
+
Claude without contacting Ditto.
|
|
76
|
+
2. In a new T3 conversation, select **Ditto Router** and a model exposed by your
|
|
77
|
+
endpoint. Send a small prompt and confirm a real response.
|
|
78
|
+
3. Check the endpoint's cloud trace for that session, requested model, selected
|
|
79
|
+
upstream, and completed response. A green T3 status alone is not inference
|
|
80
|
+
evidence.
|
|
81
|
+
4. Confirm the original Claude provider still uses its normal configuration.
|
|
82
|
+
|
|
83
|
+
The launcher preserves T3's stream-json stdin/stdout protocol. It gives a fresh
|
|
84
|
+
T3 native session the same Ditto trace id. On resume or continue it removes the
|
|
85
|
+
SDK's fresh-session flag before letting the CLI resolve the existing session;
|
|
86
|
+
Claude cannot use both selectors together. Missing or empty session IDs fail
|
|
87
|
+
before launch. It uses `--no-mcp` because T3 manages its own MCP servers through the
|
|
88
|
+
Claude SDK; endpoint tools stay on the Router. It uses `--no-remote-control`
|
|
89
|
+
because the SDK owns the process pipes: T3 retains its own remote-control path,
|
|
90
|
+
while this launcher does not attach Ditto's terminal bridge.
|
|
91
|
+
|
|
92
|
+
Normal process exit and forwarded termination let the CLI revoke its temporary
|
|
93
|
+
key. A hard kill or a failed revocation can leave that key valid until its
|
|
94
|
+
expiry; the CLI reports revocation failures. No key is saved in this launcher
|
|
95
|
+
or in T3's provider settings.
|
|
96
|
+
|
|
97
|
+
## Troubleshooting
|
|
98
|
+
|
|
99
|
+
- **Missing mode flag:** the selected CLI is too old. The launcher checks
|
|
100
|
+
`heyditto claude --help` and fails before launching instead of passing unknown
|
|
101
|
+
flags to Claude or silently selecting another inference mode.
|
|
102
|
+
- **Wrong Node or CLI:** set `DITTO_T3_HEYDITTO_BIN` to the intended absolute
|
|
103
|
+
executable, refresh T3's provider, and recheck its help with that installation.
|
|
104
|
+
- **Missing Claude:** set `DITTO_T3_CLAUDE_BIN` to its absolute `claude` executable
|
|
105
|
+
or symlink. Both binary overrides must resolve to executable absolute paths.
|
|
106
|
+
- **Endpoint not found or unavailable:** check the exact endpoint slug and its
|
|
107
|
+
activation/access with the CLI. The launcher does not fall back to a native
|
|
108
|
+
subscription when Router setup or inference fails.
|
|
109
|
+
|
|
110
|
+
Upstream reference: [T3 Code's Claude provider guide](https://github.com/pingdotgg/t3code/blob/main/docs/user/providers-claude.md).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heyditto/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "Ditto Memory CLI — save, search, fetch, and traverse the Ditto memory graph from the shell.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
11
11
|
"README.md",
|
|
12
|
+
"docs/t3-code.md",
|
|
13
|
+
"scripts/claude-router-launcher.sh",
|
|
12
14
|
"LICENSE"
|
|
13
15
|
],
|
|
14
16
|
"publishConfig": {
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# T3 Code's Claude provider can execute this file directly. Never store keys here.
|
|
3
|
+
set -eu
|
|
4
|
+
|
|
5
|
+
fail() {
|
|
6
|
+
printf '%s\n' "ditto T3 launcher: $*" >&2
|
|
7
|
+
exit 1
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
resolve_binary() {
|
|
11
|
+
resolved=$(command -v "$1" 2>/dev/null) || fail "cannot find $2; set $3 to its absolute executable path"
|
|
12
|
+
case "$resolved" in
|
|
13
|
+
/*) ;;
|
|
14
|
+
*) fail "$2 must resolve to an absolute executable path; set $3" ;;
|
|
15
|
+
esac
|
|
16
|
+
[ -x "$resolved" ] || fail "$2 is not executable"
|
|
17
|
+
printf '%s\n' "$resolved"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
claude_bin=$(resolve_binary "${DITTO_T3_CLAUDE_BIN:-claude}" Claude DITTO_T3_CLAUDE_BIN)
|
|
21
|
+
|
|
22
|
+
# Validate and collect session options before treating -v/--version as a
|
|
23
|
+
# version probe. A version flag cannot stand in for a missing session value.
|
|
24
|
+
session_id=
|
|
25
|
+
take_session_id=false
|
|
26
|
+
resuming=false
|
|
27
|
+
version_probe=false
|
|
28
|
+
for argument in "$@"; do
|
|
29
|
+
if [ "$take_session_id" = true ]; then
|
|
30
|
+
case "$argument" in
|
|
31
|
+
''|-*) fail "--session-id requires a value" ;;
|
|
32
|
+
*) session_id=$argument ;;
|
|
33
|
+
esac
|
|
34
|
+
take_session_id=false
|
|
35
|
+
continue
|
|
36
|
+
fi
|
|
37
|
+
case "$argument" in
|
|
38
|
+
--) break ;;
|
|
39
|
+
--session-id) take_session_id=true ;;
|
|
40
|
+
--session-id=|--session-id=-*) fail "--session-id requires a value" ;;
|
|
41
|
+
--session-id=*) session_id=${argument#--session-id=} ;;
|
|
42
|
+
--resume|--resume=*|-r|-r?*|--continue|-c) resuming=true ;;
|
|
43
|
+
--version|-v) version_probe=true ;;
|
|
44
|
+
esac
|
|
45
|
+
done
|
|
46
|
+
[ "$take_session_id" = false ] || fail "--session-id requires a value"
|
|
47
|
+
|
|
48
|
+
# T3 refreshes versions periodically. This path does not contact Ditto or mint a
|
|
49
|
+
# key, including when its probe supplies extra output/configuration flags.
|
|
50
|
+
if [ "$version_probe" = true ]; then
|
|
51
|
+
exec "$claude_bin" "$@"
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
heyditto_bin=$(resolve_binary "${DITTO_T3_HEYDITTO_BIN:-heyditto}" heyditto DITTO_T3_HEYDITTO_BIN)
|
|
55
|
+
# heyditto launches `claude` by name. Select the same executable for that child
|
|
56
|
+
# and use the Node installation alongside the selected heyditto, when present.
|
|
57
|
+
case "$claude_bin" in
|
|
58
|
+
*/claude) ;;
|
|
59
|
+
*) fail "DITTO_T3_CLAUDE_BIN must point to an executable named claude; a symlink is supported" ;;
|
|
60
|
+
esac
|
|
61
|
+
export PATH="$(dirname "$heyditto_bin"):$(dirname "$claude_bin"):${PATH:-/usr/bin:/bin}"
|
|
62
|
+
|
|
63
|
+
# Keep each provider instance's CLAUDE_CONFIG_DIR and T3's protocol settings.
|
|
64
|
+
# Inherited native-account or gateway credentials must not select another route.
|
|
65
|
+
unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN ANTHROPIC_API_KEY
|
|
66
|
+
unset ANTHROPIC_CUSTOM_HEADERS ANTHROPIC_MODEL CLAUDE_CODE_OAUTH_TOKEN
|
|
67
|
+
unset CLAUDE_CODE_USE_BEDROCK CLAUDE_CODE_USE_VERTEX CLAUDE_CODE_USE_FOUNDRY
|
|
68
|
+
|
|
69
|
+
# Old CLI versions accept unknown options as Claude passthrough. Fail before a
|
|
70
|
+
# launch rather than silently forwarding our mode flags or using native auth.
|
|
71
|
+
help_output=$("$heyditto_bin" claude --help 2>&1) || fail "cannot inspect heyditto; check its Node runtime and installation"
|
|
72
|
+
for required_flag in --no-mcp-only --no-mcp --no-remote-control; do
|
|
73
|
+
printf '%s\n' "$help_output" | grep -Eq -- "(^|[[:space:],])${required_flag}([[:space:],]|$)" ||
|
|
74
|
+
fail "heyditto lacks $required_flag; install @heyditto/cli 3.4.0 or newer with its supported Node runtime"
|
|
75
|
+
done
|
|
76
|
+
|
|
77
|
+
# A restarted SDK may still supply its fresh-session flag beside --resume.
|
|
78
|
+
# Claude rejects that combination. Remove both session-id spellings only on
|
|
79
|
+
# resume, rotating exactly the original argv entries so spaces, empty values,
|
|
80
|
+
# newlines and ordering survive without eval, text serialization or splitting.
|
|
81
|
+
if [ "$resuming" = true ]; then
|
|
82
|
+
remaining=$#
|
|
83
|
+
options_ended=false
|
|
84
|
+
while [ "$remaining" -gt 0 ]; do
|
|
85
|
+
argument=$1
|
|
86
|
+
shift
|
|
87
|
+
remaining=$((remaining - 1))
|
|
88
|
+
if [ "$options_ended" = true ]; then
|
|
89
|
+
set -- "$@" "$argument"
|
|
90
|
+
continue
|
|
91
|
+
fi
|
|
92
|
+
case "$argument" in
|
|
93
|
+
--) options_ended=true; set -- "$@" "$argument" ;;
|
|
94
|
+
--session-id) shift; remaining=$((remaining - 1)) ;;
|
|
95
|
+
--session-id=*) ;;
|
|
96
|
+
*) set -- "$@" "$argument" ;;
|
|
97
|
+
esac
|
|
98
|
+
done
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
# Arguments after `--` are owned by the SDK, including stdin/stdout wire flags.
|
|
102
|
+
# Fresh sessions share one native/trace id. Resume is resolved by heyditto's
|
|
103
|
+
# existing --resume handling and must never be combined with its --session flag.
|
|
104
|
+
set -- --no-mcp-only --no-mcp --no-remote-control -- "$@"
|
|
105
|
+
if [ "$resuming" = false ] && [ -n "$session_id" ]; then
|
|
106
|
+
set -- --session "$session_id" "$@"
|
|
107
|
+
fi
|
|
108
|
+
if [ -n "${DITTO_T3_ENDPOINT:-}" ]; then
|
|
109
|
+
set -- --endpoint "$DITTO_T3_ENDPOINT" "$@"
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
# Preserve the SDK's pipes and signals. heyditto owns temporary-key cleanup.
|
|
113
|
+
exec "$heyditto_bin" claude "$@"
|