@spinabot/brigade 1.2.1 → 1.3.0
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 +18 -4
- package/convex/schema.d.ts +6 -6
- package/convex/sessions.d.ts +4 -4
- package/convex/subagents.d.ts +4 -4
- package/dist/agents/agent-loop.d.ts +1 -1
- package/dist/agents/agent-loop.d.ts.map +1 -1
- package/dist/agents/agent-loop.js +72 -12
- package/dist/agents/agent-loop.js.map +1 -1
- package/dist/agents/carrow.d.ts +3 -3
- package/dist/agents/carrow.d.ts.map +1 -1
- package/dist/agents/content-quality-retry.d.ts +1 -1
- package/dist/agents/content-quality-retry.d.ts.map +1 -1
- package/dist/agents/extensions/registry.d.ts +1 -1
- package/dist/agents/extensions/registry.d.ts.map +1 -1
- package/dist/agents/memory/extract.js +1 -1
- package/dist/agents/memory/extract.js.map +1 -1
- package/dist/agents/mid-turn-switch.d.ts +3 -3
- package/dist/agents/mid-turn-switch.d.ts.map +1 -1
- package/dist/agents/payload-mutators.d.ts +3 -3
- package/dist/agents/payload-mutators.d.ts.map +1 -1
- package/dist/agents/provider-attribution.d.ts +1 -1
- package/dist/agents/provider-attribution.d.ts.map +1 -1
- package/dist/agents/sanitize-surrogates.d.ts +1 -1
- package/dist/agents/sanitize-surrogates.d.ts.map +1 -1
- package/dist/agents/skills/discovery.js +1 -1
- package/dist/agents/skills/discovery.js.map +1 -1
- package/dist/agents/skills/status.js +1 -1
- package/dist/agents/skills/status.js.map +1 -1
- package/dist/agents/smart-compaction.d.ts +1 -1
- package/dist/agents/smart-compaction.d.ts.map +1 -1
- package/dist/agents/thinking-fallback.d.ts +1 -1
- package/dist/agents/thinking-fallback.d.ts.map +1 -1
- package/dist/agents/tool-guard.d.ts +1 -1
- package/dist/agents/tool-guard.d.ts.map +1 -1
- package/dist/agents/tools/common.d.ts +1 -1
- package/dist/agents/tools/common.d.ts.map +1 -1
- package/dist/agents/tools/manage-agent-tool.d.ts.map +1 -1
- package/dist/agents/tools/manage-agent-tool.js +2 -1
- package/dist/agents/tools/manage-agent-tool.js.map +1 -1
- package/dist/agents/tools/manage-provider-tool.d.ts.map +1 -1
- package/dist/agents/tools/manage-provider-tool.js +2 -1
- package/dist/agents/tools/manage-provider-tool.js.map +1 -1
- package/dist/agents/tools/org-tool.d.ts +15 -0
- package/dist/agents/tools/org-tool.d.ts.map +1 -1
- package/dist/agents/tools/org-tool.js +53 -6
- package/dist/agents/tools/org-tool.js.map +1 -1
- package/dist/agents/tools/registry.d.ts.map +1 -1
- package/dist/agents/tools/registry.js +3 -0
- package/dist/agents/tools/registry.js.map +1 -1
- package/dist/agents/tools/sessions/spawn.d.ts +1 -1
- package/dist/agents/tools/sessions/spawn.js +1 -1
- package/dist/agents/tools/types.d.ts +2 -2
- package/dist/agents/tools/types.d.ts.map +1 -1
- package/dist/buildstamp.json +1 -1
- package/dist/cli/commands/connect.d.ts +1 -1
- package/dist/cli/commands/connect.d.ts.map +1 -1
- package/dist/cli/commands/connect.js +1 -1
- package/dist/cli/commands/connect.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +25 -6
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/login.d.ts +27 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +142 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/onboard.js +2 -2
- package/dist/cli/commands/onboard.js.map +1 -1
- package/dist/cli/flows/web-setup.d.ts +3 -3
- package/dist/cli/flows/web-setup.d.ts.map +1 -1
- package/dist/cli/flows/web-setup.js +4 -4
- package/dist/cli/flows/web-setup.js.map +1 -1
- package/dist/cli/program/build-program.d.ts.map +1 -1
- package/dist/cli/program/build-program.js +8 -0
- package/dist/cli/program/build-program.js.map +1 -1
- package/dist/cli/run-main.js +16 -1
- package/dist/cli/run-main.js.map +1 -1
- package/dist/core/auth-bridge.d.ts.map +1 -1
- package/dist/core/auth-bridge.js +76 -26
- package/dist/core/auth-bridge.js.map +1 -1
- package/dist/core/auth-error.d.ts +1 -1
- package/dist/core/auth-error.js +1 -1
- package/dist/core/console-stream.d.ts +1 -1
- package/dist/core/console-stream.d.ts.map +1 -1
- package/dist/core/event-logger.d.ts +1 -1
- package/dist/core/event-logger.d.ts.map +1 -1
- package/dist/core/model-caps.d.ts +2 -2
- package/dist/core/model-caps.d.ts.map +1 -1
- package/dist/core/server.js +1 -1
- package/dist/core/server.js.map +1 -1
- package/dist/core/system-prompt.d.ts +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/integrations/cli-login.d.ts +50 -0
- package/dist/integrations/cli-login.d.ts.map +1 -0
- package/dist/integrations/cli-login.js +114 -0
- package/dist/integrations/cli-login.js.map +1 -0
- package/dist/integrations/custom-provider.d.ts +21 -0
- package/dist/integrations/custom-provider.d.ts.map +1 -0
- package/dist/integrations/custom-provider.js +65 -0
- package/dist/integrations/custom-provider.js.map +1 -0
- package/dist/integrations/provider-discovery.d.ts +30 -0
- package/dist/integrations/provider-discovery.d.ts.map +1 -1
- package/dist/integrations/provider-discovery.js +155 -0
- package/dist/integrations/provider-discovery.js.map +1 -1
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/providers/catalog.d.ts +33 -0
- package/dist/providers/catalog.d.ts.map +1 -1
- package/dist/providers/catalog.js +91 -5
- package/dist/providers/catalog.js.map +1 -1
- package/dist/providers/validate-key.d.ts.map +1 -1
- package/dist/providers/validate-key.js +20 -6
- package/dist/providers/validate-key.js.map +1 -1
- package/dist/sessions/bootstrap-marker.d.ts +1 -1
- package/dist/sessions/bootstrap-marker.d.ts.map +1 -1
- package/dist/sessions/session-manager-factory.d.ts +1 -1
- package/dist/sessions/session-manager-factory.d.ts.map +1 -1
- package/dist/sessions/session-manager-factory.js +1 -1
- package/dist/sessions/session-manager-factory.js.map +1 -1
- package/dist/storage/local/message-store.js +1 -1
- package/dist/storage/local/message-store.js.map +1 -1
- package/dist/system-prompt/org/render-org-block.js +2 -2
- package/dist/system-prompt/org/render-org-block.js.map +1 -1
- package/dist/system-prompt/pi-injection.d.ts +1 -1
- package/dist/system-prompt/pi-injection.d.ts.map +1 -1
- package/dist/tui/approval-prompt.d.ts +1 -1
- package/dist/tui/approval-prompt.d.ts.map +1 -1
- package/dist/tui/approval-prompt.js +1 -1
- package/dist/tui/approval-prompt.js.map +1 -1
- package/dist/ui/brand.d.ts +1 -1
- package/dist/ui/brand.d.ts.map +1 -1
- package/dist/ui/brand.js +5 -5
- package/dist/ui/brand.js.map +1 -1
- package/dist/ui/editor.d.ts +1 -1
- package/dist/ui/editor.d.ts.map +1 -1
- package/dist/ui/editor.js +1 -1
- package/dist/ui/editor.js.map +1 -1
- package/dist/ui/markdown.d.ts +2 -2
- package/dist/ui/markdown.d.ts.map +1 -1
- package/dist/ui/markdown.js +1 -1
- package/dist/ui/markdown.js.map +1 -1
- package/dist/ui/onboard-storage-mode.d.ts +1 -1
- package/dist/ui/onboard-storage-mode.d.ts.map +1 -1
- package/dist/ui/onboard-storage-mode.js +25 -22
- package/dist/ui/onboard-storage-mode.js.map +1 -1
- package/dist/ui/onboarding.d.ts +20 -2
- package/dist/ui/onboarding.d.ts.map +1 -1
- package/dist/ui/onboarding.js +578 -45
- package/dist/ui/onboarding.js.map +1 -1
- package/dist/ui/searchable-select.d.ts +1 -1
- package/dist/ui/searchable-select.d.ts.map +1 -1
- package/dist/ui/searchable-select.js +1 -1
- package/dist/ui/searchable-select.js.map +1 -1
- package/dist/ui/theme.d.ts +1 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/package.json +10 -4
- package/scripts/assets/brigade-favicon.ico +0 -0
- package/scripts/assets/brigade-logo.webp +0 -0
- package/scripts/brand-oauth-page.mjs +92 -0
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - `extractIdentityName` — parse Name from IDENTITY.md
|
|
16
16
|
* - `isIdentityNameUnset` — placeholder-Name detector
|
|
17
17
|
*/
|
|
18
|
-
import type { AgentSession } from "@
|
|
18
|
+
import type { AgentSession } from "@earendil-works/pi-coding-agent";
|
|
19
19
|
export declare const BRIGADE_CACHE_BOUNDARY = "\n<!-- BRIGADE_CACHE_BOUNDARY -->\n";
|
|
20
20
|
/**
|
|
21
21
|
* Idempotently scaffold the 7 workspace persona files (AGENTS.md, SOUL.md,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAoBpE,eAAO,MAAM,sBAAsB,wCAAwB,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;AAED;;;;;GAKG;AACH,MAAM,WAAW,iCAAiC;IAChD,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,MAAM,GAAG,iCAAiC,GACrD,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAmCjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgC5E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reuse an already-logged-in CLI's stored credential.
|
|
3
|
+
*
|
|
4
|
+
* Brigade can adopt the token that a vendor's own CLI already minted on this
|
|
5
|
+
* machine — so an operator who has logged into Claude Code or Codex can connect
|
|
6
|
+
* Brigade with no browser flow and no API key. We read the CLI's on-disk
|
|
7
|
+
* credential file directly (file-based only for v1) and hand it back in a normalized
|
|
8
|
+
* shape the onboarding flow persists via the standard profile helpers.
|
|
9
|
+
*
|
|
10
|
+
* Everything here is DEFENSIVE: any missing file, parse failure, or malformed
|
|
11
|
+
* shape returns `null`. We never throw — a failed read just means "no CLI login
|
|
12
|
+
* present" and onboarding falls through to the key / fresh-login path.
|
|
13
|
+
*
|
|
14
|
+
* // TODO: macOS keychain (Claude Code-credentials / Codex Auth) — file-based only for v1.
|
|
15
|
+
*/
|
|
16
|
+
/** Normalized credential returned by a CLI-login reader. */
|
|
17
|
+
export type CliLogin = {
|
|
18
|
+
provider: string;
|
|
19
|
+
type: "oauth";
|
|
20
|
+
access: string;
|
|
21
|
+
refresh: string;
|
|
22
|
+
expires?: number;
|
|
23
|
+
accountId?: string;
|
|
24
|
+
} | {
|
|
25
|
+
provider: string;
|
|
26
|
+
type: "token";
|
|
27
|
+
token: string;
|
|
28
|
+
expires?: number;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Read Claude Code's stored login from `~/.claude/.credentials.json`.
|
|
32
|
+
*
|
|
33
|
+
* Shape: `{ claudeAiOauth: { accessToken, refreshToken, expiresAt } }`.
|
|
34
|
+
* When a refresh token is present we return an `oauth` credential (Pi can
|
|
35
|
+
* refresh it); otherwise a `token` credential carrying just the access token.
|
|
36
|
+
* Returns `null` on any missing file / parse error / absent access token.
|
|
37
|
+
*/
|
|
38
|
+
export declare function readClaudeCliLogin(): CliLogin | null;
|
|
39
|
+
/**
|
|
40
|
+
* Read Codex's stored login from `${CODEX_HOME || ~/.codex}/auth.json`.
|
|
41
|
+
*
|
|
42
|
+
* Shape: `{ tokens: { access_token, refresh_token, account_id } }`. Codex
|
|
43
|
+
* doesn't store an explicit expiry, so we decode the `exp` claim from the
|
|
44
|
+
* access token JWT (×1000 → epoch-ms). If decoding fails we fall back to the
|
|
45
|
+
* file's mtime + 1 hour — a conservative TTL that triggers a refresh sooner
|
|
46
|
+
* rather than later. Returns `null` on any missing file / parse error / absent
|
|
47
|
+
* access token.
|
|
48
|
+
*/
|
|
49
|
+
export declare function readCodexCliLogin(): CliLogin | null;
|
|
50
|
+
//# sourceMappingURL=cli-login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-login.d.ts","sourceRoot":"","sources":["../../src/integrations/cli-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,4DAA4D;AAC5D,MAAM,MAAM,QAAQ,GACjB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1G;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,GAAG,IAAI,CAmBpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,QAAQ,GAAG,IAAI,CAkCnD"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reuse an already-logged-in CLI's stored credential.
|
|
3
|
+
*
|
|
4
|
+
* Brigade can adopt the token that a vendor's own CLI already minted on this
|
|
5
|
+
* machine — so an operator who has logged into Claude Code or Codex can connect
|
|
6
|
+
* Brigade with no browser flow and no API key. We read the CLI's on-disk
|
|
7
|
+
* credential file directly (file-based only for v1) and hand it back in a normalized
|
|
8
|
+
* shape the onboarding flow persists via the standard profile helpers.
|
|
9
|
+
*
|
|
10
|
+
* Everything here is DEFENSIVE: any missing file, parse failure, or malformed
|
|
11
|
+
* shape returns `null`. We never throw — a failed read just means "no CLI login
|
|
12
|
+
* present" and onboarding falls through to the key / fresh-login path.
|
|
13
|
+
*
|
|
14
|
+
* // TODO: macOS keychain (Claude Code-credentials / Codex Auth) — file-based only for v1.
|
|
15
|
+
*/
|
|
16
|
+
import * as fs from "node:fs";
|
|
17
|
+
import { homedir } from "node:os";
|
|
18
|
+
import * as path from "node:path";
|
|
19
|
+
/**
|
|
20
|
+
* Read Claude Code's stored login from `~/.claude/.credentials.json`.
|
|
21
|
+
*
|
|
22
|
+
* Shape: `{ claudeAiOauth: { accessToken, refreshToken, expiresAt } }`.
|
|
23
|
+
* When a refresh token is present we return an `oauth` credential (Pi can
|
|
24
|
+
* refresh it); otherwise a `token` credential carrying just the access token.
|
|
25
|
+
* Returns `null` on any missing file / parse error / absent access token.
|
|
26
|
+
*/
|
|
27
|
+
export function readClaudeCliLogin() {
|
|
28
|
+
try {
|
|
29
|
+
const credPath = path.join(homedir(), ".claude", ".credentials.json");
|
|
30
|
+
if (!fs.existsSync(credPath))
|
|
31
|
+
return null;
|
|
32
|
+
const parsed = JSON.parse(fs.readFileSync(credPath, "utf8"));
|
|
33
|
+
const oauth = parsed.claudeAiOauth;
|
|
34
|
+
const access = oauth?.accessToken;
|
|
35
|
+
if (!access)
|
|
36
|
+
return null;
|
|
37
|
+
const refresh = oauth?.refreshToken;
|
|
38
|
+
const expires = oauth?.expiresAt;
|
|
39
|
+
if (refresh) {
|
|
40
|
+
return { provider: "anthropic", type: "oauth", access, refresh, expires };
|
|
41
|
+
}
|
|
42
|
+
return { provider: "anthropic", type: "token", token: access, expires };
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Read Codex's stored login from `${CODEX_HOME || ~/.codex}/auth.json`.
|
|
50
|
+
*
|
|
51
|
+
* Shape: `{ tokens: { access_token, refresh_token, account_id } }`. Codex
|
|
52
|
+
* doesn't store an explicit expiry, so we decode the `exp` claim from the
|
|
53
|
+
* access token JWT (×1000 → epoch-ms). If decoding fails we fall back to the
|
|
54
|
+
* file's mtime + 1 hour — a conservative TTL that triggers a refresh sooner
|
|
55
|
+
* rather than later. Returns `null` on any missing file / parse error / absent
|
|
56
|
+
* access token.
|
|
57
|
+
*/
|
|
58
|
+
export function readCodexCliLogin() {
|
|
59
|
+
try {
|
|
60
|
+
const codexHome = process.env.CODEX_HOME || path.join(homedir(), ".codex");
|
|
61
|
+
const authPath = path.join(codexHome, "auth.json");
|
|
62
|
+
if (!fs.existsSync(authPath))
|
|
63
|
+
return null;
|
|
64
|
+
const parsed = JSON.parse(fs.readFileSync(authPath, "utf8"));
|
|
65
|
+
const tokens = parsed.tokens;
|
|
66
|
+
const access = tokens?.access_token;
|
|
67
|
+
const refresh = tokens?.refresh_token;
|
|
68
|
+
if (!access || !refresh)
|
|
69
|
+
return null;
|
|
70
|
+
let expires = decodeJwtExp(access);
|
|
71
|
+
if (expires === undefined) {
|
|
72
|
+
try {
|
|
73
|
+
expires = fs.statSync(authPath).mtimeMs + 3600_000;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
/* mtime unavailable — leave expires undefined */
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const accountId = tokens?.account_id;
|
|
80
|
+
return {
|
|
81
|
+
provider: "openai-codex",
|
|
82
|
+
type: "oauth",
|
|
83
|
+
access,
|
|
84
|
+
refresh,
|
|
85
|
+
expires,
|
|
86
|
+
...(accountId ? { accountId } : {}),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Decode the `exp` claim (seconds) of a JWT and return it as epoch-ms, or
|
|
95
|
+
* `undefined` if the token isn't a parseable three-part JWT with a numeric
|
|
96
|
+
* `exp`. Base64url-decodes the middle (payload) segment.
|
|
97
|
+
*/
|
|
98
|
+
function decodeJwtExp(jwt) {
|
|
99
|
+
try {
|
|
100
|
+
const parts = jwt.split(".");
|
|
101
|
+
if (parts.length !== 3)
|
|
102
|
+
return undefined;
|
|
103
|
+
const payloadJson = Buffer.from(parts[1], "base64url").toString("utf8");
|
|
104
|
+
const payload = JSON.parse(payloadJson);
|
|
105
|
+
if (typeof payload.exp === "number" && Number.isFinite(payload.exp)) {
|
|
106
|
+
return payload.exp * 1000;
|
|
107
|
+
}
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=cli-login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-login.js","sourceRoot":"","sources":["../../src/integrations/cli-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAOlC;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB;IACjC,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAE1D,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,EAAE,WAAW,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,EAAE,YAAY,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,EAAE,SAAS,CAAC;QACjC,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAChC,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAE1D,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,EAAE,aAAa,CAAC;QACtC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAErC,IAAI,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACJ,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACR,iDAAiD;YAClD,CAAC;QACF,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,CAAC;QACrC,OAAO;YACN,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,OAAO;YACb,MAAM;YACN,OAAO;YACP,OAAO;YACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAW;IAChC,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAqB,CAAC;QAC5D,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom (catalog-defined) provider registration.
|
|
3
|
+
*
|
|
4
|
+
* Some providers ship a key + a known Anthropic-compatible (or OpenAI-
|
|
5
|
+
* compatible) endpoint we already know from the catalog — GLM, Kimi, Qwen,
|
|
6
|
+
* MiniMax, DeepSeek. Pi-AI doesn't bundle these as built-in providers, so we
|
|
7
|
+
* register them dynamically via the `~/.brigade/models.json` mechanism, the
|
|
8
|
+
* same way Ollama is registered. Each catalog model id becomes a Pi model
|
|
9
|
+
* routed through the provider's `baseUrl` + `api`.
|
|
10
|
+
*
|
|
11
|
+
* We MERGE rather than overwrite — the user (or other providers) may have
|
|
12
|
+
* existing entries in the file we shouldn't clobber.
|
|
13
|
+
*/
|
|
14
|
+
export declare function writeCustomProviderToModelsJson(modelsJsonPath: string, p: {
|
|
15
|
+
id: string;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
api: "openai-completions" | "anthropic-messages";
|
|
18
|
+
apiKey: string;
|
|
19
|
+
models: string[];
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=custom-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-provider.d.ts","sourceRoot":"","sources":["../../src/integrations/custom-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,wBAAsB,+BAA+B,CACpD,cAAc,EAAE,MAAM,EACtB,CAAC,EAAE;IACF,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB,GACC,OAAO,CAAC,IAAI,CAAC,CAgDf"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom (catalog-defined) provider registration.
|
|
3
|
+
*
|
|
4
|
+
* Some providers ship a key + a known Anthropic-compatible (or OpenAI-
|
|
5
|
+
* compatible) endpoint we already know from the catalog — GLM, Kimi, Qwen,
|
|
6
|
+
* MiniMax, DeepSeek. Pi-AI doesn't bundle these as built-in providers, so we
|
|
7
|
+
* register them dynamically via the `~/.brigade/models.json` mechanism, the
|
|
8
|
+
* same way Ollama is registered. Each catalog model id becomes a Pi model
|
|
9
|
+
* routed through the provider's `baseUrl` + `api`.
|
|
10
|
+
*
|
|
11
|
+
* We MERGE rather than overwrite — the user (or other providers) may have
|
|
12
|
+
* existing entries in the file we shouldn't clobber.
|
|
13
|
+
*/
|
|
14
|
+
import * as fs from "node:fs/promises";
|
|
15
|
+
import path from "node:path";
|
|
16
|
+
import { tryGetRuntimeContext } from "../storage/runtime-context.js";
|
|
17
|
+
export async function writeCustomProviderToModelsJson(modelsJsonPath, p) {
|
|
18
|
+
let existing = { providers: {} };
|
|
19
|
+
try {
|
|
20
|
+
const raw = await fs.readFile(modelsJsonPath, "utf8");
|
|
21
|
+
existing = JSON.parse(raw);
|
|
22
|
+
if (!existing.providers)
|
|
23
|
+
existing.providers = {};
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// File missing or unparseable — start fresh. Pi treats an absent file as no config.
|
|
27
|
+
}
|
|
28
|
+
existing.providers[p.id] = {
|
|
29
|
+
baseUrl: p.baseUrl,
|
|
30
|
+
api: p.api,
|
|
31
|
+
apiKey: p.apiKey,
|
|
32
|
+
models: p.models.map((id) => ({ id, name: id })),
|
|
33
|
+
};
|
|
34
|
+
// In convex mode resolveModelsPath routes to the OS cache dir, which may
|
|
35
|
+
// not exist yet on a fresh machine — a bare write would ENOENT. Filesystem
|
|
36
|
+
// mode: ~/.brigade always exists by this point, so the mkdir is a no-op.
|
|
37
|
+
await fs.mkdir(path.dirname(modelsJsonPath), { recursive: true });
|
|
38
|
+
await fs.writeFile(modelsJsonPath, JSON.stringify(existing, null, 2), "utf8");
|
|
39
|
+
// The coding-plan apiKey is written PLAINTEXT into models.json. Lock the
|
|
40
|
+
// file down to owner-only on POSIX so a shared-host neighbour can't read the
|
|
41
|
+
// key (mirrors the `chmodIfPosix` pattern in src/auth/profiles.ts). No-op on
|
|
42
|
+
// Windows (NTFS perms model differs) and best-effort on filesystems that
|
|
43
|
+
// don't support chmod (e.g. mounted FAT32).
|
|
44
|
+
if (process.platform !== "win32") {
|
|
45
|
+
try {
|
|
46
|
+
await fs.chmod(modelsJsonPath, 0o600);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Filesystem may not support chmod — non-fatal.
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Convex mode — the file just written lives in the OS cache (resolveModelsPath
|
|
53
|
+
// routed it there) and is a regenerable mirror; the durable copy is the
|
|
54
|
+
// sealed "models" blob. Push it so a fresh machine re-materialises the
|
|
55
|
+
// catalog at boot.
|
|
56
|
+
const rctx = tryGetRuntimeContext();
|
|
57
|
+
if (rctx?.mode === "convex") {
|
|
58
|
+
await rctx.store.auth
|
|
59
|
+
.writeAuthFileBlob("main", "models", existing)
|
|
60
|
+
.catch((err) => {
|
|
61
|
+
console.error(`brigade: models catalog write to convex failed — ${err.message}`);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=custom-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-provider.js","sourceRoot":"","sources":["../../src/integrations/custom-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACpD,cAAsB,EACtB,CAMC;IAED,IAAI,QAAQ,GAAwC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACtE,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACtD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACR,oFAAoF;IACrF,CAAC;IAED,QAAQ,CAAC,SAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;QAC3B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;KAChD,CAAC;IAEF,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAE9E,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,yEAAyE;IACzE,4CAA4C;IAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC;YACJ,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACR,gDAAgD;QACjD,CAAC;IACF,CAAC;IAED,+EAA+E;IAC/E,wEAAwE;IACxE,uEAAuE;IACvE,mBAAmB;IACnB,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;aACnB,iBAAiB,CAAC,MAAM,EAAE,QAAiB,EAAE,QAAmC,CAAC;aACjF,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,oDAAoD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;AACF,CAAC"}
|
|
@@ -63,4 +63,34 @@ export interface LiveCloudModel {
|
|
|
63
63
|
* never throws. Pricing → `cost.input` is per-Mtok (OpenRouter quotes per-token).
|
|
64
64
|
*/
|
|
65
65
|
export declare function listOpenRouterModels(): Promise<LiveCloudModel[]>;
|
|
66
|
+
/** Last-fetched live models for a subscription provider, or `undefined` if never fetched. */
|
|
67
|
+
export declare function getCachedSubscriptionModels(providerId: string): LiveCloudModel[] | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* GitHub Copilot's per-account model catalog. The token embeds the proxy host
|
|
70
|
+
* (`proxy-ep=…`) which `getGitHubCopilotBaseUrl` rewrites to the api host; we GET
|
|
71
|
+
* `${baseUrl}/models` with Copilot's required editor headers (a plain
|
|
72
|
+
* Authorization isn't enough — the endpoint 400s without the editor/integration
|
|
73
|
+
* headers). Keeps only models the account can actually pick (model_picker_enabled,
|
|
74
|
+
* policy not disabled, tool_calls not explicitly off). Never throws — returns the
|
|
75
|
+
* last good cache or `[]` so the caller falls back to Pi's bundled catalog.
|
|
76
|
+
*/
|
|
77
|
+
export declare function fetchGitHubCopilotModels(copilotToken: string): Promise<LiveCloudModel[]>;
|
|
78
|
+
/**
|
|
79
|
+
* Models a Claude Pro/Max SUBSCRIPTION can use. There is NO live per-account
|
|
80
|
+
* models endpoint for a subscription OAuth token: Anthropic scopes that token to
|
|
81
|
+
* inference only, so `GET /v1/models` returns 401/403 (verified). Instead we
|
|
82
|
+
* surface Pi's bundled Anthropic catalog — it IS the current Claude model family
|
|
83
|
+
* and updates as Pi ships new models — so the picker is always populated and
|
|
84
|
+
* current with ZERO network round-trip (no guaranteed-fail request, no timeout)
|
|
85
|
+
* on every sign-in. (GitHub Copilot DOES expose a live per-account list, so that
|
|
86
|
+
* path stays a real fetch; Anthropic subscriptions simply don't have one.)
|
|
87
|
+
*/
|
|
88
|
+
export declare function fetchAnthropicSubscriptionModels(): LiveCloudModel[];
|
|
89
|
+
/**
|
|
90
|
+
* Warm the live cache for a subscription provider right after OAuth login so the
|
|
91
|
+
* model picker has the account's CURRENT models ready. Best-effort: any failure is
|
|
92
|
+
* swallowed (login must never block on this). `codex` has no live list endpoint —
|
|
93
|
+
* it falls through to Pi's bundled catalog, so this is a no-op for it.
|
|
94
|
+
*/
|
|
95
|
+
export declare function prefetchSubscriptionModels(providerId: string, oauthAccessToken: string): Promise<void>;
|
|
66
96
|
//# sourceMappingURL=provider-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-discovery.d.ts","sourceRoot":"","sources":["../../src/integrations/provider-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"provider-discovery.d.ts","sourceRoot":"","sources":["../../src/integrations/provider-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,WAAW,mBAAmB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC/B,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,IAAI,EAAE,mBAAmB,CAAC;CAC1B;AAyED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,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;AAKD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAsDtE;AAeD,6FAA6F;AAC7F,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,SAAS,CAG5F;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAiE9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,IAAI,cAAc,EAAE,CA4BnE;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5G"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* `integrations/ollama.ts` (native /api/tags); this module is for cloud +
|
|
15
15
|
* OpenAI-compatible HTTP endpoints.
|
|
16
16
|
*/
|
|
17
|
+
import { getModels } from "@earendil-works/pi-ai";
|
|
17
18
|
const TIMEOUT_MS = 5000;
|
|
18
19
|
const EMPTY = { exists: false, meta: {} };
|
|
19
20
|
/** OpenRouter's public model list — no key needed, rich metadata. */
|
|
@@ -163,4 +164,158 @@ export async function listOpenRouterModels() {
|
|
|
163
164
|
return openRouterListCache?.models ?? [];
|
|
164
165
|
}
|
|
165
166
|
}
|
|
167
|
+
/* ──────────────────────── subscription live catalogs ──────────────────────── */
|
|
168
|
+
/**
|
|
169
|
+
* Live model catalogs for OAuth subscription providers (GitHub Copilot,
|
|
170
|
+
* Anthropic Claude Pro/Max). Same shape + degrade-to-cache contract as
|
|
171
|
+
* `listOpenRouterModels`, but keyed by providerId because there are several
|
|
172
|
+
* subscription providers (OpenRouter is a singleton). The onboarding picker
|
|
173
|
+
* reads the cache after login via `getCachedSubscriptionModels` and joins the
|
|
174
|
+
* static Pi catalog by id for richer metadata.
|
|
175
|
+
*/
|
|
176
|
+
const SUBSCRIPTION_MODELS_TTL_MS = 5 * 60_000;
|
|
177
|
+
const subscriptionModelsCache = new Map();
|
|
178
|
+
/** Last-fetched live models for a subscription provider, or `undefined` if never fetched. */
|
|
179
|
+
export function getCachedSubscriptionModels(providerId) {
|
|
180
|
+
const e = subscriptionModelsCache.get(providerId);
|
|
181
|
+
return e ? e.models : undefined;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* GitHub Copilot's per-account model catalog. The token embeds the proxy host
|
|
185
|
+
* (`proxy-ep=…`) which `getGitHubCopilotBaseUrl` rewrites to the api host; we GET
|
|
186
|
+
* `${baseUrl}/models` with Copilot's required editor headers (a plain
|
|
187
|
+
* Authorization isn't enough — the endpoint 400s without the editor/integration
|
|
188
|
+
* headers). Keeps only models the account can actually pick (model_picker_enabled,
|
|
189
|
+
* policy not disabled, tool_calls not explicitly off). Never throws — returns the
|
|
190
|
+
* last good cache or `[]` so the caller falls back to Pi's bundled catalog.
|
|
191
|
+
*/
|
|
192
|
+
export async function fetchGitHubCopilotModels(copilotToken) {
|
|
193
|
+
const now = Date.now();
|
|
194
|
+
const cached = subscriptionModelsCache.get("github-copilot");
|
|
195
|
+
if (cached && now - cached.at < SUBSCRIPTION_MODELS_TTL_MS) {
|
|
196
|
+
return cached.models;
|
|
197
|
+
}
|
|
198
|
+
const controller = new AbortController();
|
|
199
|
+
const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
200
|
+
try {
|
|
201
|
+
const { getGitHubCopilotBaseUrl } = await import("@earendil-works/pi-ai/oauth");
|
|
202
|
+
const baseUrl = getGitHubCopilotBaseUrl(copilotToken);
|
|
203
|
+
const res = await fetch(`${baseUrl}/models`, {
|
|
204
|
+
signal: controller.signal,
|
|
205
|
+
headers: {
|
|
206
|
+
Accept: "application/json",
|
|
207
|
+
Authorization: `Bearer ${copilotToken}`,
|
|
208
|
+
"User-Agent": "GitHubCopilotChat/0.35.0",
|
|
209
|
+
"Editor-Version": "vscode/1.107.0",
|
|
210
|
+
"Editor-Plugin-Version": "copilot-chat/0.35.0",
|
|
211
|
+
"Copilot-Integration-Id": "vscode-chat",
|
|
212
|
+
"X-GitHub-Api-Version": "2026-06-01",
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
if (!res.ok)
|
|
216
|
+
return cached?.models ?? [];
|
|
217
|
+
const body = (await res.json());
|
|
218
|
+
const list = body?.data;
|
|
219
|
+
if (!Array.isArray(list))
|
|
220
|
+
return cached?.models ?? [];
|
|
221
|
+
const out = [];
|
|
222
|
+
for (const raw of list) {
|
|
223
|
+
const item = raw;
|
|
224
|
+
const id = typeof item.id === "string" ? item.id : undefined;
|
|
225
|
+
if (!id)
|
|
226
|
+
continue;
|
|
227
|
+
// Selectability gate (mirrors Pi's own `isSelectableCopilotModel`): only
|
|
228
|
+
// surface models the account is allowed to pick. Every access is guarded —
|
|
229
|
+
// the response is untyped.
|
|
230
|
+
const policy = item.policy;
|
|
231
|
+
const capabilities = item.capabilities;
|
|
232
|
+
const supports = capabilities?.supports;
|
|
233
|
+
if (item.model_picker_enabled !== true)
|
|
234
|
+
continue;
|
|
235
|
+
if (policy?.state === "disabled")
|
|
236
|
+
continue;
|
|
237
|
+
if (supports?.tool_calls === false)
|
|
238
|
+
continue;
|
|
239
|
+
const maxCtx = capabilities?.limits?.max_context_window_tokens;
|
|
240
|
+
const contextWindow = typeof maxCtx === "number" && maxCtx > 0 ? maxCtx : undefined;
|
|
241
|
+
const name = typeof item.name === "string" && item.name.length > 0 ? item.name : id;
|
|
242
|
+
const input = supports?.vision ? ["text", "image"] : ["text"];
|
|
243
|
+
out.push({
|
|
244
|
+
provider: "github-copilot",
|
|
245
|
+
id,
|
|
246
|
+
name,
|
|
247
|
+
...(contextWindow !== undefined ? { contextWindow } : {}),
|
|
248
|
+
// Copilot's list doesn't flag reasoning here — leave false; the static
|
|
249
|
+
// catalog join in onboarding fills the richer fields when Pi knows it.
|
|
250
|
+
reasoning: false,
|
|
251
|
+
input,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
subscriptionModelsCache.set("github-copilot", { at: now, models: out });
|
|
255
|
+
return out;
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
return cached?.models ?? [];
|
|
259
|
+
}
|
|
260
|
+
finally {
|
|
261
|
+
clearTimeout(timer);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Models a Claude Pro/Max SUBSCRIPTION can use. There is NO live per-account
|
|
266
|
+
* models endpoint for a subscription OAuth token: Anthropic scopes that token to
|
|
267
|
+
* inference only, so `GET /v1/models` returns 401/403 (verified). Instead we
|
|
268
|
+
* surface Pi's bundled Anthropic catalog — it IS the current Claude model family
|
|
269
|
+
* and updates as Pi ships new models — so the picker is always populated and
|
|
270
|
+
* current with ZERO network round-trip (no guaranteed-fail request, no timeout)
|
|
271
|
+
* on every sign-in. (GitHub Copilot DOES expose a live per-account list, so that
|
|
272
|
+
* path stays a real fetch; Anthropic subscriptions simply don't have one.)
|
|
273
|
+
*/
|
|
274
|
+
export function fetchAnthropicSubscriptionModels() {
|
|
275
|
+
const now = Date.now();
|
|
276
|
+
const cached = subscriptionModelsCache.get("anthropic");
|
|
277
|
+
if (cached && now - cached.at < SUBSCRIPTION_MODELS_TTL_MS) {
|
|
278
|
+
return cached.models;
|
|
279
|
+
}
|
|
280
|
+
let out = [];
|
|
281
|
+
try {
|
|
282
|
+
const catalog = getModels("anthropic");
|
|
283
|
+
out = catalog.map((m) => ({
|
|
284
|
+
provider: "anthropic",
|
|
285
|
+
id: m.id,
|
|
286
|
+
name: m.name ?? m.id,
|
|
287
|
+
contextWindow: m.contextWindow,
|
|
288
|
+
reasoning: m.reasoning ?? false,
|
|
289
|
+
input: m.input ?? ["text"],
|
|
290
|
+
}));
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
out = [];
|
|
294
|
+
}
|
|
295
|
+
subscriptionModelsCache.set("anthropic", { at: now, models: out });
|
|
296
|
+
return out;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Warm the live cache for a subscription provider right after OAuth login so the
|
|
300
|
+
* model picker has the account's CURRENT models ready. Best-effort: any failure is
|
|
301
|
+
* swallowed (login must never block on this). `codex` has no live list endpoint —
|
|
302
|
+
* it falls through to Pi's bundled catalog, so this is a no-op for it.
|
|
303
|
+
*/
|
|
304
|
+
export async function prefetchSubscriptionModels(providerId, oauthAccessToken) {
|
|
305
|
+
try {
|
|
306
|
+
if (providerId === "github-copilot") {
|
|
307
|
+
await fetchGitHubCopilotModels(oauthAccessToken);
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
if (providerId === "anthropic") {
|
|
311
|
+
// No network — populates the cache from Pi's current Anthropic catalog.
|
|
312
|
+
fetchAnthropicSubscriptionModels();
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
// Other subscription providers (codex) have no live endpoint — no-op.
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// Best-effort warm-up — never blocks login; picker falls back to the catalog.
|
|
319
|
+
}
|
|
320
|
+
}
|
|
166
321
|
//# sourceMappingURL=provider-discovery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-discovery.js","sourceRoot":"","sources":["../../src/integrations/provider-discovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider-discovery.js","sourceRoot":"","sources":["../../src/integrations/provider-discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Compatible with: any WebSocket client speaking this JSON shape.
|
|
20
20
|
*/
|
|
21
|
-
import type { Model } from "@
|
|
21
|
+
import type { Model } from "@earendil-works/pi-ai";
|
|
22
22
|
import type { CronAddParamsV2, CronAddResultV2, CronListParamsV2, CronListResultV2, CronRemoveParamsV2, CronRemoveResultV2, CronRunParamsV2, CronRunResultV2, CronRunsParamsV2, CronRunsResultV2, CronStatusParamsV2, CronStatusResultV2, CronUpdateParamsV2, CronUpdateResultV2, CronWakeParams } from "./core/server-methods/cron.js";
|
|
23
23
|
import type { OrgSnapshotResult } from "./protocol/methods.js";
|
|
24
24
|
import type { MemoryGraphExport } from "./agents/memory/graph-export.js";
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,15 @@
|
|
|
14
14
|
export interface ProviderInfo {
|
|
15
15
|
/** Pi-AI provider id (KnownProvider) — or a custom id we register at runtime (e.g. "ollama"). */
|
|
16
16
|
id: string;
|
|
17
|
+
/**
|
|
18
|
+
* Real Pi provider id this picker entry resolves to for credential storage +
|
|
19
|
+
* model routing, when it differs from `id`. Lets ONE Pi provider surface as
|
|
20
|
+
* TWO picker choices with different auth models — e.g. "Anthropic" (API key,
|
|
21
|
+
* id "anthropic") and "Claude Code" (subscription, id "claude-code") both
|
|
22
|
+
* store their credential under, and route their models through, Pi's
|
|
23
|
+
* `anthropic` provider. Defaults to `id` when unset.
|
|
24
|
+
*/
|
|
25
|
+
providerId?: string;
|
|
17
26
|
/** Display name shown in the picker. */
|
|
18
27
|
name: string;
|
|
19
28
|
/** One-line tagline for the picker description column. */
|
|
@@ -54,6 +63,30 @@ export interface ProviderInfo {
|
|
|
54
63
|
* instead of using a built-in catalog.
|
|
55
64
|
*/
|
|
56
65
|
custom?: boolean;
|
|
66
|
+
/** Subscription / OAuth-login support — onboarding offers a browser login instead of an API key. */
|
|
67
|
+
subscription?: {
|
|
68
|
+
oauthProviderId: string;
|
|
69
|
+
label: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Reuse a vendor CLI's already-stored login on this machine. When set,
|
|
73
|
+
* onboarding reads the named CLI's credential file and offers a one-keystroke
|
|
74
|
+
* "reuse this login" path (no browser, no key) before the subscription / key
|
|
75
|
+
* flow.
|
|
76
|
+
*/
|
|
77
|
+
cliLogin?: {
|
|
78
|
+
read: "claude" | "codex";
|
|
79
|
+
label: string;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Pi API shape for a custom (catalog-defined) provider. Determines how Pi
|
|
83
|
+
* frames requests against `baseUrl` — `anthropic-messages` for an
|
|
84
|
+
* Anthropic-compatible endpoint, `openai-completions` for an OpenAI-compatible
|
|
85
|
+
* one. Paired with `custom: true` + `baseUrl` + `models`.
|
|
86
|
+
*/
|
|
87
|
+
api?: "openai-completions" | "anthropic-messages";
|
|
88
|
+
/** Catalog model ids registered into models.json for a custom provider. */
|
|
89
|
+
models?: string[];
|
|
57
90
|
}
|
|
58
91
|
export declare const PROVIDERS: ProviderInfo[];
|
|
59
92
|
export declare function findProvider(id: string): ProviderInfo | undefined;
|