@mariozechner/pi-coding-agent 0.27.9 → 0.29.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/CHANGELOG.md +37 -1
- package/README.md +17 -18
- package/dist/cli/list-models.d.ts +2 -2
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +2 -7
- package/dist/cli/list-models.js.map +1 -1
- package/dist/config.d.ts +2 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -3
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +6 -3
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +23 -25
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +104 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +232 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/custom-tools/types.d.ts +2 -2
- package/dist/core/custom-tools/types.d.ts.map +1 -1
- package/dist/core/custom-tools/types.js.map +1 -1
- package/dist/core/hooks/types.d.ts +3 -3
- package/dist/core/hooks/types.d.ts.map +1 -1
- package/dist/core/hooks/types.js.map +1 -1
- package/dist/core/model-registry.d.ts +50 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +268 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +7 -7
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +12 -44
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/sdk.d.ts +13 -26
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +24 -101
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +0 -5
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +0 -19
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +15 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -8
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +37 -22
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +3 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +4 -3
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +3 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +21 -14
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +3 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +6 -6
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +56 -51
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/custom-tools.md +3 -3
- package/docs/hooks.md +9 -9
- package/docs/sdk.md +86 -61
- package/examples/custom-tools/hello/index.ts +15 -15
- package/examples/custom-tools/question/index.ts +3 -3
- package/examples/custom-tools/subagent/agents.ts +1 -2
- package/examples/custom-tools/subagent/index.ts +332 -125
- package/examples/custom-tools/todo/index.ts +30 -12
- package/examples/hooks/confirm-destructive.ts +6 -8
- package/examples/hooks/custom-compaction.ts +7 -7
- package/examples/hooks/dirty-repo-guard.ts +7 -15
- package/examples/hooks/permission-gate.ts +1 -5
- package/examples/sdk/02-custom-model.ts +20 -7
- package/examples/sdk/04-skills.ts +1 -1
- package/examples/sdk/05-tools.ts +11 -14
- package/examples/sdk/06-hooks.ts +1 -1
- package/examples/sdk/07-context-files.ts +1 -1
- package/examples/sdk/08-slash-commands.ts +3 -3
- package/examples/sdk/09-api-keys-and-oauth.ts +36 -26
- package/examples/sdk/10-settings.ts +2 -2
- package/examples/sdk/12-full-control.ts +19 -20
- package/examples/sdk/README.md +26 -13
- package/package.json +4 -5
- package/dist/core/model-config.d.ts +0 -58
- package/dist/core/model-config.d.ts.map +0 -1
- package/dist/core/model-config.js +0 -384
- package/dist/core/model-config.js.map +0 -1
- package/dist/core/oauth/index.d.ts +0 -41
- package/dist/core/oauth/index.d.ts.map +0 -1
- package/dist/core/oauth/index.js +0 -84
- package/dist/core/oauth/index.js.map +0 -1
package/dist/core/oauth/index.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OAuth management for coding-agent.
|
|
3
|
-
* Re-exports from @mariozechner/pi-ai and adds convenience wrappers.
|
|
4
|
-
*/
|
|
5
|
-
import { getOAuthApiKey, listOAuthProviders as listOAuthProvidersFromAi, loadOAuthCredentials, loginAnthropic, loginAntigravity, loginGeminiCli, loginGitHubCopilot, refreshToken as refreshTokenFromAi, removeOAuthCredentials, resetOAuthStorage, saveOAuthCredentials, setOAuthStorage, } from "@mariozechner/pi-ai";
|
|
6
|
-
export { listOAuthProvidersFromAi as listOAuthProviders };
|
|
7
|
-
export { getOAuthApiKey, loadOAuthCredentials, removeOAuthCredentials, resetOAuthStorage, saveOAuthCredentials, setOAuthStorage, };
|
|
8
|
-
export function getOAuthProviders() {
|
|
9
|
-
return [
|
|
10
|
-
{
|
|
11
|
-
id: "anthropic",
|
|
12
|
-
name: "Anthropic (Claude Pro/Max)",
|
|
13
|
-
description: "Use Claude with your Pro/Max subscription",
|
|
14
|
-
available: true,
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
id: "github-copilot",
|
|
18
|
-
name: "GitHub Copilot",
|
|
19
|
-
description: "Use models via GitHub Copilot subscription",
|
|
20
|
-
available: true,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: "google-gemini-cli",
|
|
24
|
-
name: "Google Gemini CLI",
|
|
25
|
-
description: "Free Gemini 2.0/2.5 models via Google Cloud",
|
|
26
|
-
available: true,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
id: "google-antigravity",
|
|
30
|
-
name: "Antigravity",
|
|
31
|
-
description: "Free Gemini 3, Claude, GPT-OSS via Google Cloud",
|
|
32
|
-
available: true,
|
|
33
|
-
},
|
|
34
|
-
];
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Login with OAuth provider
|
|
38
|
-
*/
|
|
39
|
-
export async function login(provider, onAuth, onPrompt, onProgress) {
|
|
40
|
-
switch (provider) {
|
|
41
|
-
case "anthropic":
|
|
42
|
-
await loginAnthropic((url) => onAuth({ url }), async () => onPrompt({ message: "Paste the authorization code below:" }));
|
|
43
|
-
break;
|
|
44
|
-
case "github-copilot": {
|
|
45
|
-
const creds = await loginGitHubCopilot({
|
|
46
|
-
onAuth: (url, instructions) => onAuth({ url, instructions }),
|
|
47
|
-
onPrompt,
|
|
48
|
-
onProgress,
|
|
49
|
-
});
|
|
50
|
-
saveOAuthCredentials("github-copilot", creds);
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
case "google-gemini-cli": {
|
|
54
|
-
await loginGeminiCli((info) => onAuth({ url: info.url, instructions: info.instructions }), onProgress);
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
case "google-antigravity": {
|
|
58
|
-
await loginAntigravity((info) => onAuth({ url: info.url, instructions: info.instructions }), onProgress);
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
default:
|
|
62
|
-
throw new Error(`Unknown OAuth provider: ${provider}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Logout from OAuth provider
|
|
67
|
-
*/
|
|
68
|
-
export async function logout(provider) {
|
|
69
|
-
removeOAuthCredentials(provider);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Refresh OAuth token for provider.
|
|
73
|
-
* Delegates to the ai package implementation.
|
|
74
|
-
*/
|
|
75
|
-
export async function refreshToken(provider) {
|
|
76
|
-
return refreshTokenFromAi(provider);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Get OAuth token for provider (auto-refreshes if expired).
|
|
80
|
-
*/
|
|
81
|
-
export async function getOAuthToken(provider) {
|
|
82
|
-
return getOAuthApiKey(provider);
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/oauth/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OAuth management for coding-agent.\n * Re-exports from @mariozechner/pi-ai and adds convenience wrappers.\n */\n\nimport {\n\tgetOAuthApiKey,\n\tlistOAuthProviders as listOAuthProvidersFromAi,\n\tloadOAuthCredentials,\n\tloginAnthropic,\n\tloginAntigravity,\n\tloginGeminiCli,\n\tloginGitHubCopilot,\n\ttype OAuthCredentials,\n\ttype OAuthProvider,\n\ttype OAuthStorageBackend,\n\trefreshToken as refreshTokenFromAi,\n\tremoveOAuthCredentials,\n\tresetOAuthStorage,\n\tsaveOAuthCredentials,\n\tsetOAuthStorage,\n} from \"@mariozechner/pi-ai\";\n\n// Re-export types and functions\nexport type { OAuthCredentials, OAuthProvider, OAuthStorageBackend };\nexport { listOAuthProvidersFromAi as listOAuthProviders };\nexport {\n\tgetOAuthApiKey,\n\tloadOAuthCredentials,\n\tremoveOAuthCredentials,\n\tresetOAuthStorage,\n\tsaveOAuthCredentials,\n\tsetOAuthStorage,\n};\n\n// Types for OAuth flow\nexport interface OAuthAuthInfo {\n\turl: string;\n\tinstructions?: string;\n}\n\nexport interface OAuthPrompt {\n\tmessage: string;\n\tplaceholder?: string;\n}\n\nexport type OAuthProviderInfo = {\n\tid: OAuthProvider;\n\tname: string;\n\tdescription: string;\n\tavailable: boolean;\n};\n\nexport function getOAuthProviders(): OAuthProviderInfo[] {\n\treturn [\n\t\t{\n\t\t\tid: \"anthropic\",\n\t\t\tname: \"Anthropic (Claude Pro/Max)\",\n\t\t\tdescription: \"Use Claude with your Pro/Max subscription\",\n\t\t\tavailable: true,\n\t\t},\n\t\t{\n\t\t\tid: \"github-copilot\",\n\t\t\tname: \"GitHub Copilot\",\n\t\t\tdescription: \"Use models via GitHub Copilot subscription\",\n\t\t\tavailable: true,\n\t\t},\n\t\t{\n\t\t\tid: \"google-gemini-cli\",\n\t\t\tname: \"Google Gemini CLI\",\n\t\t\tdescription: \"Free Gemini 2.0/2.5 models via Google Cloud\",\n\t\t\tavailable: true,\n\t\t},\n\t\t{\n\t\t\tid: \"google-antigravity\",\n\t\t\tname: \"Antigravity\",\n\t\t\tdescription: \"Free Gemini 3, Claude, GPT-OSS via Google Cloud\",\n\t\t\tavailable: true,\n\t\t},\n\t];\n}\n\n/**\n * Login with OAuth provider\n */\nexport async function login(\n\tprovider: OAuthProvider,\n\tonAuth: (info: OAuthAuthInfo) => void,\n\tonPrompt: (prompt: OAuthPrompt) => Promise<string>,\n\tonProgress?: (message: string) => void,\n): Promise<void> {\n\tswitch (provider) {\n\t\tcase \"anthropic\":\n\t\t\tawait loginAnthropic(\n\t\t\t\t(url) => onAuth({ url }),\n\t\t\t\tasync () => onPrompt({ message: \"Paste the authorization code below:\" }),\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"github-copilot\": {\n\t\t\tconst creds = await loginGitHubCopilot({\n\t\t\t\tonAuth: (url, instructions) => onAuth({ url, instructions }),\n\t\t\t\tonPrompt,\n\t\t\t\tonProgress,\n\t\t\t});\n\t\t\tsaveOAuthCredentials(\"github-copilot\", creds);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"google-gemini-cli\": {\n\t\t\tawait loginGeminiCli((info) => onAuth({ url: info.url, instructions: info.instructions }), onProgress);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"google-antigravity\": {\n\t\t\tawait loginAntigravity((info) => onAuth({ url: info.url, instructions: info.instructions }), onProgress);\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown OAuth provider: ${provider}`);\n\t}\n}\n\n/**\n * Logout from OAuth provider\n */\nexport async function logout(provider: OAuthProvider): Promise<void> {\n\tremoveOAuthCredentials(provider);\n}\n\n/**\n * Refresh OAuth token for provider.\n * Delegates to the ai package implementation.\n */\nexport async function refreshToken(provider: OAuthProvider): Promise<string> {\n\treturn refreshTokenFromAi(provider);\n}\n\n/**\n * Get OAuth token for provider (auto-refreshes if expired).\n */\nexport async function getOAuthToken(provider: OAuthProvider): Promise<string | null> {\n\treturn getOAuthApiKey(provider);\n}\n"]}
|