@astralyn/pi 0.85.1 → 0.85.3
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/CHANGELOG.md +43 -0
- package/dist/bundle/chunks/anthropic-messages-IHRRITCV.js +6 -0
- package/dist/bundle/chunks/anthropic.js +75 -0
- package/dist/bundle/chunks/azure-openai-responses-QXBIDYXO.js +2 -0
- package/dist/bundle/chunks/bedrock-converse-stream.js +78 -0
- package/dist/bundle/chunks/chunk-37ATLPRE.js +2 -0
- package/dist/bundle/chunks/chunk-4L3WN2XY.js +2 -0
- package/dist/bundle/chunks/chunk-5B3S5DVL.js +4 -0
- package/dist/bundle/chunks/chunk-5FDOJRDS.js +2 -0
- package/dist/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
- package/dist/bundle/chunks/chunk-7LO5Z4WE.js +2 -0
- package/dist/bundle/chunks/chunk-APKJ4JGA.js +2 -0
- package/dist/bundle/chunks/chunk-EDBLK2JQ.js +2 -0
- package/dist/bundle/chunks/chunk-FEZ5RM2B.js +2 -0
- package/dist/bundle/chunks/chunk-JEIV47WR.js +2 -0
- package/dist/bundle/chunks/chunk-JSJPY26N.js +2 -0
- package/dist/bundle/chunks/chunk-KI6LC764.js +42 -0
- package/dist/bundle/chunks/chunk-LB4P77SH.js +1688 -0
- package/dist/bundle/chunks/chunk-NUHFSC37.js +25 -0
- package/dist/bundle/chunks/chunk-O36ZMA3U.js +2 -0
- package/dist/bundle/chunks/chunk-OWESLY5T.js +11 -0
- package/dist/bundle/chunks/chunk-RRBI7OUG.js +50 -0
- package/dist/bundle/chunks/chunk-S2DJQQI2.js +2 -0
- package/dist/bundle/chunks/chunk-UP6RLTHQ.js +2 -0
- package/dist/bundle/chunks/chunk-UUSTLCVC.js +2 -0
- package/dist/bundle/chunks/chunk-WWBSZG5V.js +2 -0
- package/dist/bundle/chunks/chunk-YZJWMPUI.js +2 -0
- package/dist/bundle/chunks/github-copilot.js +2 -0
- package/dist/bundle/chunks/google-generative-ai-NBOR3IQR.js +2 -0
- package/dist/bundle/chunks/google-vertex-VTHX3SUB.js +2 -0
- package/dist/bundle/chunks/https-proxy-agent-2VXB7436.js +13 -0
- package/dist/bundle/chunks/image-resize-worker.js +2 -0
- package/dist/bundle/chunks/kimi-coding.js +2 -0
- package/dist/bundle/chunks/mistral-conversations-NO4ANAA5.js +5 -0
- package/dist/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
- package/dist/bundle/chunks/node-7L5OTM6S.js +2 -0
- package/dist/bundle/chunks/node-G4XOIDPH.js +16 -0
- package/dist/bundle/chunks/openai-codex-responses-5S3T3HMA.js +10 -0
- package/dist/bundle/chunks/openai-codex.js +75 -0
- package/dist/bundle/chunks/openai-completions-CXRRTRWE.js +7 -0
- package/dist/bundle/chunks/openai-responses-CV3MH6VP.js +2 -0
- package/dist/bundle/chunks/openrouter-images-6XDE2CEW.js +2 -0
- package/dist/bundle/chunks/openrouter.js +75 -0
- package/dist/bundle/chunks/pi-messages-PE6B42TG.js +8 -0
- package/dist/bundle/chunks/radius.js +75 -0
- package/dist/bundle/chunks/src-UK77SYZE.js +4 -0
- package/dist/bundle/chunks/xai.js +2 -0
- package/dist/bundle/cli.js +3 -0
- package/dist/bundle/index.js +2 -0
- package/dist/bundle/rpc-entry.js +3 -0
- package/dist/cli.js +5 -2469
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -6
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/background/history.d.ts.map +1 -1
- package/dist/core/background/history.js +6 -0
- package/dist/core/background/history.js.map +1 -1
- package/dist/core/background/presentation.d.ts.map +1 -1
- package/dist/core/background/presentation.js +41 -4
- package/dist/core/background/presentation.js.map +1 -1
- package/dist/core/background/service.d.ts +2 -2
- package/dist/core/background/service.d.ts.map +1 -1
- package/dist/core/background/service.js +38 -15
- package/dist/core/background/service.js.map +1 -1
- package/dist/core/background/types.d.ts +9 -0
- package/dist/core/background/types.d.ts.map +1 -1
- package/dist/core/background/types.js +4 -0
- package/dist/core/background/types.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +5 -12
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +11 -19
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/settings.d.ts +27 -0
- package/dist/core/compaction/settings.d.ts.map +1 -0
- package/dist/core/compaction/settings.js +40 -0
- package/dist/core/compaction/settings.js.map +1 -0
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +0 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +0 -6
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +0 -11
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/keybindings.d.ts +15 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +12 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-config.d.ts +32 -10
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +38 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-runtime.d.ts +2 -0
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +4 -0
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/settings-manager.d.ts +4 -7
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +7 -6
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/bash.d.ts +3 -9
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +3 -8
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/shell-execution.d.ts.map +1 -1
- package/dist/core/tools/shell-execution.js +3 -1
- package/dist/core/tools/shell-execution.js.map +1 -1
- package/dist/extensions/background/manager.d.ts +8 -5
- package/dist/extensions/background/manager.d.ts.map +1 -1
- package/dist/extensions/background/manager.js +115 -39
- package/dist/extensions/background/manager.js.map +1 -1
- package/dist/extensions/background/task-view.d.ts +5 -0
- package/dist/extensions/background/task-view.d.ts.map +1 -1
- package/dist/extensions/background/task-view.js +4 -0
- package/dist/extensions/background/task-view.js.map +1 -1
- package/dist/extensions/btw/controller.d.ts +1 -1
- package/dist/extensions/btw/controller.d.ts.map +1 -1
- package/dist/extensions/btw/controller.js +4 -4
- package/dist/extensions/btw/controller.js.map +1 -1
- package/dist/extensions/btw/index.js +3 -3
- package/dist/extensions/btw/index.js.map +1 -1
- package/dist/extensions/index.js +2 -2
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/provider/catalog.d.ts +57 -0
- package/dist/extensions/provider/catalog.d.ts.map +1 -0
- package/dist/extensions/provider/catalog.js +181 -0
- package/dist/extensions/provider/catalog.js.map +1 -0
- package/dist/extensions/provider/compat-fields.d.ts +25 -0
- package/dist/extensions/provider/compat-fields.d.ts.map +1 -0
- package/dist/extensions/provider/compat-fields.js +148 -0
- package/dist/extensions/provider/compat-fields.js.map +1 -0
- package/dist/extensions/provider/configuration.d.ts +8 -0
- package/dist/extensions/provider/configuration.d.ts.map +1 -0
- package/dist/extensions/provider/configuration.js +21 -0
- package/dist/extensions/provider/configuration.js.map +1 -0
- package/dist/extensions/provider/connection.d.ts +14 -0
- package/dist/extensions/provider/connection.d.ts.map +1 -0
- package/dist/extensions/provider/connection.js +86 -0
- package/dist/extensions/provider/connection.js.map +1 -0
- package/dist/extensions/provider/constants.d.ts +38 -0
- package/dist/extensions/provider/constants.d.ts.map +1 -0
- package/dist/extensions/provider/constants.js +75 -0
- package/dist/extensions/provider/constants.js.map +1 -0
- package/dist/extensions/provider/index.d.ts +4 -0
- package/dist/extensions/provider/index.d.ts.map +1 -0
- package/dist/extensions/provider/index.js +65 -0
- package/dist/extensions/provider/index.js.map +1 -0
- package/dist/extensions/provider/probe.d.ts +34 -0
- package/dist/extensions/provider/probe.d.ts.map +1 -0
- package/dist/extensions/provider/probe.js +178 -0
- package/dist/extensions/provider/probe.js.map +1 -0
- package/dist/extensions/provider/refresh.d.ts +30 -0
- package/dist/extensions/provider/refresh.d.ts.map +1 -0
- package/dist/extensions/provider/refresh.js +66 -0
- package/dist/extensions/provider/refresh.js.map +1 -0
- package/dist/extensions/provider/store.d.ts +131 -0
- package/dist/extensions/provider/store.d.ts.map +1 -0
- package/dist/extensions/provider/store.js +503 -0
- package/dist/extensions/provider/store.js.map +1 -0
- package/dist/extensions/provider/ui/app.d.ts +25 -0
- package/dist/extensions/provider/ui/app.d.ts.map +1 -0
- package/dist/extensions/provider/ui/app.js +153 -0
- package/dist/extensions/provider/ui/app.js.map +1 -0
- package/dist/extensions/provider/ui/builtin-data.d.ts +53 -0
- package/dist/extensions/provider/ui/builtin-data.d.ts.map +1 -0
- package/dist/extensions/provider/ui/builtin-data.js +315 -0
- package/dist/extensions/provider/ui/builtin-data.js.map +1 -0
- package/dist/extensions/provider/ui/compat.d.ts +57 -0
- package/dist/extensions/provider/ui/compat.d.ts.map +1 -0
- package/dist/extensions/provider/ui/compat.js +427 -0
- package/dist/extensions/provider/ui/compat.js.map +1 -0
- package/dist/extensions/provider/ui/dialogs.d.ts +30 -0
- package/dist/extensions/provider/ui/dialogs.d.ts.map +1 -0
- package/dist/extensions/provider/ui/dialogs.js +89 -0
- package/dist/extensions/provider/ui/dialogs.js.map +1 -0
- package/dist/extensions/provider/ui/dictionary.d.ts +29 -0
- package/dist/extensions/provider/ui/dictionary.d.ts.map +1 -0
- package/dist/extensions/provider/ui/dictionary.js +385 -0
- package/dist/extensions/provider/ui/dictionary.js.map +1 -0
- package/dist/extensions/provider/ui/editor.d.ts +91 -0
- package/dist/extensions/provider/ui/editor.d.ts.map +1 -0
- package/dist/extensions/provider/ui/editor.js +667 -0
- package/dist/extensions/provider/ui/editor.js.map +1 -0
- package/dist/extensions/provider/ui/fetch-models.d.ts +39 -0
- package/dist/extensions/provider/ui/fetch-models.d.ts.map +1 -0
- package/dist/extensions/provider/ui/fetch-models.js +320 -0
- package/dist/extensions/provider/ui/fetch-models.js.map +1 -0
- package/dist/extensions/provider/ui/model-fields.d.ts +43 -0
- package/dist/extensions/provider/ui/model-fields.d.ts.map +1 -0
- package/dist/extensions/provider/ui/model-fields.js +441 -0
- package/dist/extensions/provider/ui/model-fields.js.map +1 -0
- package/dist/extensions/provider/ui/model-options.d.ts +93 -0
- package/dist/extensions/provider/ui/model-options.d.ts.map +1 -0
- package/dist/extensions/provider/ui/model-options.js +529 -0
- package/dist/extensions/provider/ui/model-options.js.map +1 -0
- package/dist/extensions/provider/ui/pane.d.ts +81 -0
- package/dist/extensions/provider/ui/pane.d.ts.map +1 -0
- package/dist/extensions/provider/ui/pane.js +3 -0
- package/dist/extensions/provider/ui/pane.js.map +1 -0
- package/dist/extensions/provider/ui/provider-fields.d.ts +60 -0
- package/dist/extensions/provider/ui/provider-fields.d.ts.map +1 -0
- package/dist/extensions/provider/ui/provider-fields.js +326 -0
- package/dist/extensions/provider/ui/provider-fields.js.map +1 -0
- package/dist/extensions/provider/ui/provider-list.d.ts +34 -0
- package/dist/extensions/provider/ui/provider-list.d.ts.map +1 -0
- package/dist/extensions/provider/ui/provider-list.js +162 -0
- package/dist/extensions/provider/ui/provider-list.js.map +1 -0
- package/dist/extensions/provider/ui/session.d.ts +20 -0
- package/dist/extensions/provider/ui/session.d.ts.map +1 -0
- package/dist/extensions/provider/ui/session.js +52 -0
- package/dist/extensions/provider/ui/session.js.map +1 -0
- package/dist/extensions/provider/ui/thinking-map.d.ts +20 -0
- package/dist/extensions/provider/ui/thinking-map.d.ts.map +1 -0
- package/dist/extensions/provider/ui/thinking-map.js +166 -0
- package/dist/extensions/provider/ui/thinking-map.js.map +1 -0
- package/dist/extensions/provider/ui/value-row.d.ts +88 -0
- package/dist/extensions/provider/ui/value-row.d.ts.map +1 -0
- package/dist/extensions/provider/ui/value-row.js +158 -0
- package/dist/extensions/provider/ui/value-row.js.map +1 -0
- package/dist/extensions/statusline/index.js +2 -2
- package/dist/extensions/statusline/index.js.map +1 -1
- package/dist/extensions/subagent/index.d.ts.map +1 -1
- package/dist/extensions/subagent/index.js +4 -2
- package/dist/extensions/subagent/index.js.map +1 -1
- package/dist/extensions/subagent/resolve.d.ts +5 -0
- package/dist/extensions/subagent/resolve.d.ts.map +1 -1
- package/dist/extensions/subagent/resolve.js +15 -7
- package/dist/extensions/subagent/resolve.js.map +1 -1
- package/dist/extensions/subagent/schema.d.ts +2 -0
- package/dist/extensions/subagent/schema.d.ts.map +1 -1
- package/dist/extensions/subagent/schema.js +1 -0
- package/dist/extensions/subagent/schema.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +10 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +20 -2
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +6 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/rpc-entry.js +10 -2469
- package/docs/bundled/README.md +1 -1
- package/docs/bundled/extensions/background.md +5 -5
- package/docs/bundled/extensions/provider.md +117 -0
- package/docs/bundled/extensions/statusline.md +1 -1
- package/docs/bundled/extensions/subagent.md +7 -3
- package/docs/compaction.md +16 -6
- package/docs/development.md +1 -1
- package/docs/docs.json +2 -2
- package/docs/extensions.md +0 -13
- package/docs/keybindings.md +3 -0
- package/docs/settings.md +11 -7
- package/npm-shrinkwrap.json +4 -4
- package/package.json +6 -5
- package/dist/extensions/router/constants.d.ts +0 -23
- package/dist/extensions/router/constants.d.ts.map +0 -1
- package/dist/extensions/router/constants.js +0 -30
- package/dist/extensions/router/constants.js.map +0 -1
- package/dist/extensions/router/dialog-host.d.ts +0 -60
- package/dist/extensions/router/dialog-host.d.ts.map +0 -1
- package/dist/extensions/router/dialog-host.js +0 -196
- package/dist/extensions/router/dialog-host.js.map +0 -1
- package/dist/extensions/router/dialog.d.ts +0 -45
- package/dist/extensions/router/dialog.d.ts.map +0 -1
- package/dist/extensions/router/dialog.js +0 -378
- package/dist/extensions/router/dialog.js.map +0 -1
- package/dist/extensions/router/identity.d.ts +0 -15
- package/dist/extensions/router/identity.d.ts.map +0 -1
- package/dist/extensions/router/identity.js +0 -173
- package/dist/extensions/router/identity.js.map +0 -1
- package/dist/extensions/router/index.d.ts +0 -15
- package/dist/extensions/router/index.d.ts.map +0 -1
- package/dist/extensions/router/index.js +0 -70
- package/dist/extensions/router/index.js.map +0 -1
- package/dist/extensions/router/presets.d.ts +0 -51
- package/dist/extensions/router/presets.d.ts.map +0 -1
- package/dist/extensions/router/presets.js +0 -108
- package/dist/extensions/router/presets.js.map +0 -1
- package/dist/extensions/router/probe.d.ts +0 -26
- package/dist/extensions/router/probe.d.ts.map +0 -1
- package/dist/extensions/router/probe.js +0 -216
- package/dist/extensions/router/probe.js.map +0 -1
- package/dist/extensions/router/register.d.ts +0 -12
- package/dist/extensions/router/register.d.ts.map +0 -1
- package/dist/extensions/router/register.js +0 -90
- package/dist/extensions/router/register.js.map +0 -1
- package/dist/extensions/router/state.d.ts +0 -20
- package/dist/extensions/router/state.d.ts.map +0 -1
- package/dist/extensions/router/state.js +0 -169
- package/dist/extensions/router/state.js.map +0 -1
- package/dist/extensions/router/store.d.ts +0 -12
- package/dist/extensions/router/store.d.ts.map +0 -1
- package/dist/extensions/router/store.js +0 -266
- package/dist/extensions/router/store.js.map +0 -1
- package/dist/extensions/router/stream.d.ts +0 -12
- package/dist/extensions/router/stream.d.ts.map +0 -1
- package/dist/extensions/router/stream.js +0 -233
- package/dist/extensions/router/stream.js.map +0 -1
- package/dist/extensions/router/transport.d.ts +0 -9
- package/dist/extensions/router/transport.d.ts.map +0 -1
- package/dist/extensions/router/transport.js +0 -81
- package/dist/extensions/router/transport.js.map +0 -1
- package/dist/extensions/router/types.d.ts +0 -39
- package/dist/extensions/router/types.d.ts.map +0 -1
- package/dist/extensions/router/types.js +0 -2
- package/dist/extensions/router/types.js.map +0 -1
- package/dist/extensions/router/ui.d.ts +0 -26
- package/dist/extensions/router/ui.d.ts.map +0 -1
- package/dist/extensions/router/ui.js +0 -897
- package/dist/extensions/router/ui.js.map +0 -1
- package/dist/image-resize-worker.js +0 -2
- package/docs/bundled/extensions/router.md +0 -197
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
function wait(delay, signal) {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
signal?.throwIfAborted();
|
|
4
|
-
const finish = () => {
|
|
5
|
-
signal?.removeEventListener("abort", abort);
|
|
6
|
-
resolve();
|
|
7
|
-
};
|
|
8
|
-
const timer = setTimeout(finish, delay);
|
|
9
|
-
const abort = () => {
|
|
10
|
-
clearTimeout(timer);
|
|
11
|
-
signal?.removeEventListener("abort", abort);
|
|
12
|
-
reject(signal?.reason);
|
|
13
|
-
};
|
|
14
|
-
signal?.addEventListener("abort", abort, { once: true });
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
function isNetworkError(error) {
|
|
18
|
-
if (!(error instanceof Error) || error.name === "AbortError")
|
|
19
|
-
return false;
|
|
20
|
-
if (error instanceof TypeError || error.name === "NetworkError" || error.name === "TimeoutError")
|
|
21
|
-
return true;
|
|
22
|
-
return ("code" in error &&
|
|
23
|
-
typeof error.code === "string" &&
|
|
24
|
-
/^(ECONNRESET|ECONNREFUSED|ECONNABORTED|ENOTFOUND|EAI_AGAIN|ETIMEDOUT|EPIPE|ENETUNREACH|EHOSTUNREACH|UND_ERR_CONNECT_TIMEOUT|UND_ERR_SOCKET)$/.test(error.code));
|
|
25
|
-
}
|
|
26
|
-
function discard(response) {
|
|
27
|
-
// Do not await cancellation: a custom stream's cancellation can remain pending forever.
|
|
28
|
-
void response.body?.cancel().catch(() => { });
|
|
29
|
-
}
|
|
30
|
-
/** Codex 0.153.4 HTTP policy only; pi-ai owns successful Responses bodies and all SSE handling. */
|
|
31
|
-
export function createCodexTransport(fetch, options = {}) {
|
|
32
|
-
// codex-client/src/retry.rs and model-provider-info/src/lib.rs: 4 retries, 200ms, 0.9..1.1 jitter.
|
|
33
|
-
const retries = Math.min(100, Math.max(0, Math.floor(Number.isNaN(options.maxRetries) ? 4 : (options.maxRetries ?? 4))));
|
|
34
|
-
// Node timers overflow above this limit; never turn a large backoff into a tight retry loop.
|
|
35
|
-
const maxDelay = Math.min(2_147_483_647, Math.max(0, Number.isNaN(options.maxRetryDelayMs) ? 2_147_483_647 : (options.maxRetryDelayMs ?? 2_147_483_647)));
|
|
36
|
-
return async (input, init) => {
|
|
37
|
-
const request = input instanceof Request ? input : undefined;
|
|
38
|
-
const signals = [options.signal, request?.signal, init?.signal].filter((signal) => signal != null);
|
|
39
|
-
const signal = signals.length > 1 ? AbortSignal.any(signals) : signals[0];
|
|
40
|
-
const forwarded = signal ? { ...init, signal } : init;
|
|
41
|
-
const body = init?.body ?? request?.body;
|
|
42
|
-
// Never clone/tee or buffer a private prompt. Request bodies and streaming init bodies are single-use.
|
|
43
|
-
const replayable = (!request?.bodyUsed || init?.body != null) &&
|
|
44
|
-
(body == null ||
|
|
45
|
-
typeof body === "string" ||
|
|
46
|
-
body instanceof Blob ||
|
|
47
|
-
body instanceof FormData ||
|
|
48
|
-
body instanceof URLSearchParams ||
|
|
49
|
-
body instanceof ArrayBuffer ||
|
|
50
|
-
ArrayBuffer.isView(body));
|
|
51
|
-
for (let attempt = 0;; attempt++) {
|
|
52
|
-
signal?.throwIfAborted();
|
|
53
|
-
let response;
|
|
54
|
-
try {
|
|
55
|
-
response = await fetch(input, forwarded);
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
signal?.throwIfAborted();
|
|
59
|
-
if (!replayable || attempt >= retries || !isNetworkError(error))
|
|
60
|
-
throw error;
|
|
61
|
-
await wait(Math.min(maxDelay, Math.floor(200 * 2 ** attempt * (0.9 + Math.random() * 0.2))), signal);
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
if (response.ok)
|
|
65
|
-
return response;
|
|
66
|
-
// Deliberately outside the fetch catch: callback failures must never cause another request.
|
|
67
|
-
try {
|
|
68
|
-
await options.onErrorResponse?.(response);
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
discard(response);
|
|
72
|
-
throw error;
|
|
73
|
-
}
|
|
74
|
-
if (!replayable || attempt >= retries || response.status < 500 || response.status > 599)
|
|
75
|
-
return response;
|
|
76
|
-
discard(response);
|
|
77
|
-
await wait(Math.min(maxDelay, Math.floor(200 * 2 ** attempt * (0.9 + Math.random() * 0.2))), signal);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=transport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/extensions/router/transport.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FetchFunction } from \"@earendil-works/pi-ai\";\n\nfunction wait(delay: number, signal?: AbortSignal): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tsignal?.throwIfAborted();\n\t\tconst finish = () => {\n\t\t\tsignal?.removeEventListener(\"abort\", abort);\n\t\t\tresolve();\n\t\t};\n\t\tconst timer = setTimeout(finish, delay);\n\t\tconst abort = () => {\n\t\t\tclearTimeout(timer);\n\t\t\tsignal?.removeEventListener(\"abort\", abort);\n\t\t\treject(signal?.reason);\n\t\t};\n\t\tsignal?.addEventListener(\"abort\", abort, { once: true });\n\t});\n}\n\nfunction isNetworkError(error: unknown): boolean {\n\tif (!(error instanceof Error) || error.name === \"AbortError\") return false;\n\tif (error instanceof TypeError || error.name === \"NetworkError\" || error.name === \"TimeoutError\") return true;\n\treturn (\n\t\t\"code\" in error &&\n\t\ttypeof error.code === \"string\" &&\n\t\t/^(ECONNRESET|ECONNREFUSED|ECONNABORTED|ENOTFOUND|EAI_AGAIN|ETIMEDOUT|EPIPE|ENETUNREACH|EHOSTUNREACH|UND_ERR_CONNECT_TIMEOUT|UND_ERR_SOCKET)$/.test(\n\t\t\terror.code,\n\t\t)\n\t);\n}\n\nfunction discard(response: Response): void {\n\t// Do not await cancellation: a custom stream's cancellation can remain pending forever.\n\tvoid response.body?.cancel().catch(() => {});\n}\n\n/** Codex 0.153.4 HTTP policy only; pi-ai owns successful Responses bodies and all SSE handling. */\nexport function createCodexTransport(\n\tfetch: FetchFunction,\n\toptions: {\n\t\tmaxRetries?: number;\n\t\tmaxRetryDelayMs?: number;\n\t\tsignal?: AbortSignal;\n\t\tonErrorResponse?: (response: Response) => void | Promise<void>;\n\t} = {},\n): FetchFunction {\n\t// codex-client/src/retry.rs and model-provider-info/src/lib.rs: 4 retries, 200ms, 0.9..1.1 jitter.\n\tconst retries = Math.min(\n\t\t100,\n\t\tMath.max(0, Math.floor(Number.isNaN(options.maxRetries) ? 4 : (options.maxRetries ?? 4))),\n\t);\n\t// Node timers overflow above this limit; never turn a large backoff into a tight retry loop.\n\tconst maxDelay = Math.min(\n\t\t2_147_483_647,\n\t\tMath.max(0, Number.isNaN(options.maxRetryDelayMs) ? 2_147_483_647 : (options.maxRetryDelayMs ?? 2_147_483_647)),\n\t);\n\treturn async (input, init) => {\n\t\tconst request = input instanceof Request ? input : undefined;\n\t\tconst signals = [options.signal, request?.signal, init?.signal].filter(\n\t\t\t(signal): signal is AbortSignal => signal != null,\n\t\t);\n\t\tconst signal = signals.length > 1 ? AbortSignal.any(signals) : signals[0];\n\t\tconst forwarded = signal ? { ...init, signal } : init;\n\t\tconst body = init?.body ?? request?.body;\n\t\t// Never clone/tee or buffer a private prompt. Request bodies and streaming init bodies are single-use.\n\t\tconst replayable =\n\t\t\t(!request?.bodyUsed || init?.body != null) &&\n\t\t\t(body == null ||\n\t\t\t\ttypeof body === \"string\" ||\n\t\t\t\tbody instanceof Blob ||\n\t\t\t\tbody instanceof FormData ||\n\t\t\t\tbody instanceof URLSearchParams ||\n\t\t\t\tbody instanceof ArrayBuffer ||\n\t\t\t\tArrayBuffer.isView(body));\n\t\tfor (let attempt = 0; ; attempt++) {\n\t\t\tsignal?.throwIfAborted();\n\t\t\tlet response: Response;\n\t\t\ttry {\n\t\t\t\tresponse = await fetch(input, forwarded);\n\t\t\t} catch (error) {\n\t\t\t\tsignal?.throwIfAborted();\n\t\t\t\tif (!replayable || attempt >= retries || !isNetworkError(error)) throw error;\n\t\t\t\tawait wait(Math.min(maxDelay, Math.floor(200 * 2 ** attempt * (0.9 + Math.random() * 0.2))), signal);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (response.ok) return response;\n\t\t\t// Deliberately outside the fetch catch: callback failures must never cause another request.\n\t\t\ttry {\n\t\t\t\tawait options.onErrorResponse?.(response);\n\t\t\t} catch (error) {\n\t\t\t\tdiscard(response);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (!replayable || attempt >= retries || response.status < 500 || response.status > 599) return response;\n\t\t\tdiscard(response);\n\t\t\tawait wait(Math.min(maxDelay, Math.floor(200 * 2 ** attempt * (0.9 + Math.random() * 0.2))), signal);\n\t\t}\n\t};\n}\n"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { ThinkingLevel } from "./constants.ts";
|
|
2
|
-
export type ThinkingLevelMap = Partial<Record<ThinkingLevel, string | null>>;
|
|
3
|
-
export interface CodexModelConfig {
|
|
4
|
-
reasoningSummary?: "auto" | "concise" | "detailed" | null;
|
|
5
|
-
verbosity?: "low" | "medium" | "high" | null;
|
|
6
|
-
parallelToolCalls?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export interface RelayModelConfig {
|
|
9
|
-
id: string;
|
|
10
|
-
name?: string;
|
|
11
|
-
reasoning?: boolean;
|
|
12
|
-
input?: Array<"text" | "image">;
|
|
13
|
-
contextWindow?: number;
|
|
14
|
-
maxTokens?: number;
|
|
15
|
-
thinkingLevelMap?: ThinkingLevelMap;
|
|
16
|
-
codex?: CodexModelConfig;
|
|
17
|
-
headers?: Record<string, string>;
|
|
18
|
-
cost?: {
|
|
19
|
-
input: number;
|
|
20
|
-
output: number;
|
|
21
|
-
cacheRead: number;
|
|
22
|
-
cacheWrite: number;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export interface RelayConfig {
|
|
26
|
-
/** Provider id shown as provider/model (no slashes). */
|
|
27
|
-
id: string;
|
|
28
|
-
name?: string;
|
|
29
|
-
headers?: Record<string, string>;
|
|
30
|
-
catalog?: "openai" | "codex";
|
|
31
|
-
baseUrl: string;
|
|
32
|
-
apiKey: string;
|
|
33
|
-
models: RelayModelConfig[];
|
|
34
|
-
}
|
|
35
|
-
export interface RouterFile {
|
|
36
|
-
version: number;
|
|
37
|
-
relays: RelayConfig[];
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extensions/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;IAC1D,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,WAAW;IAC3B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/extensions/router/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ThinkingLevel } from \"./constants.ts\";\n\nexport type ThinkingLevelMap = Partial<Record<ThinkingLevel, string | null>>;\n\nexport interface CodexModelConfig {\n\treasoningSummary?: \"auto\" | \"concise\" | \"detailed\" | null;\n\tverbosity?: \"low\" | \"medium\" | \"high\" | null;\n\tparallelToolCalls?: boolean;\n}\n\nexport interface RelayModelConfig {\n\tid: string;\n\tname?: string;\n\treasoning?: boolean;\n\tinput?: Array<\"text\" | \"image\">;\n\tcontextWindow?: number;\n\tmaxTokens?: number;\n\tthinkingLevelMap?: ThinkingLevelMap;\n\tcodex?: CodexModelConfig;\n\theaders?: Record<string, string>;\n\tcost?: { input: number; output: number; cacheRead: number; cacheWrite: number };\n}\n\nexport interface RelayConfig {\n\t/** Provider id shown as provider/model (no slashes). */\n\tid: string;\n\tname?: string;\n\theaders?: Record<string, string>;\n\tcatalog?: \"openai\" | \"codex\";\n\tbaseUrl: string;\n\tapiKey: string;\n\tmodels: RelayModelConfig[];\n}\n\nexport interface RouterFile {\n\tversion: number;\n\trelays: RelayConfig[];\n}\n"]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* /router interactive flows: list, add, edit, fetch, thinking map.
|
|
3
|
-
*
|
|
4
|
-
* Relay edits are live: confirmed inputs and every toggle persist immediately.
|
|
5
|
-
* Searchable pickers follow Pi's native /model interaction pattern.
|
|
6
|
-
*/
|
|
7
|
-
import type { ExtensionAPI, ExtensionCommandContext } from "../../core/extensions/types.ts";
|
|
8
|
-
import { type ModelChecklistItem } from "./dialog.ts";
|
|
9
|
-
import { type ProbeModel } from "./probe.ts";
|
|
10
|
-
import type { RelayModelConfig } from "./types.ts";
|
|
11
|
-
export declare function isCurrentRouterModel(current: {
|
|
12
|
-
provider: string;
|
|
13
|
-
id: string;
|
|
14
|
-
} | undefined, relayId: string, modelId: string): boolean;
|
|
15
|
-
export declare function runRouterCommand(args: string, ctx: ExtensionCommandContext, pi: ExtensionAPI): Promise<void>;
|
|
16
|
-
export declare function modelFromCatalog(entry: ProbeModel): RelayModelConfig;
|
|
17
|
-
export declare function mergeCatalogWithConfigured(configured: ReadonlyArray<RelayModelConfig>, catalog: ReadonlyArray<{
|
|
18
|
-
id: string;
|
|
19
|
-
name?: string;
|
|
20
|
-
}>, activeModelId?: string): ModelChecklistItem[];
|
|
21
|
-
/** Resolve only keys that can be safely used by the catalog probe. */
|
|
22
|
-
export declare function resolveProbeApiKey(apiKey: string): {
|
|
23
|
-
value?: string;
|
|
24
|
-
error?: string;
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/extensions/router/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAK5F,OAAO,EAIN,KAAK,kBAAkB,EACvB,MAAM,aAAa,CAAC;AAcrB,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,YAAY,CAAC;AAG/D,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkEhE,wBAAgB,oBAAoB,CACnC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACrD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,OAAO,CAET;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBlH;AA8sBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAIpE;AA0ED,wBAAgB,0BAA0B,CACzC,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAC3C,OAAO,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACrD,aAAa,CAAC,EAAE,MAAM,GACpB,kBAAkB,EAAE,CAuBtB;AAmED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBrF"}
|