@mariozechner/pi-ai 0.27.8 → 0.28.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.
Files changed (54) hide show
  1. package/README.md +39 -80
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +145 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/models.generated.d.ts +8 -8
  7. package/dist/models.generated.d.ts.map +1 -1
  8. package/dist/models.generated.js +46 -46
  9. package/dist/models.generated.js.map +1 -1
  10. package/dist/providers/anthropic.d.ts.map +1 -1
  11. package/dist/providers/anthropic.js +2 -2
  12. package/dist/providers/anthropic.js.map +1 -1
  13. package/dist/providers/google.d.ts.map +1 -1
  14. package/dist/providers/google.js +3 -7
  15. package/dist/providers/google.js.map +1 -1
  16. package/dist/providers/openai-completions.d.ts.map +1 -1
  17. package/dist/providers/openai-completions.js +3 -1
  18. package/dist/providers/openai-completions.js.map +1 -1
  19. package/dist/providers/openai-responses.d.ts.map +1 -1
  20. package/dist/providers/openai-responses.js +3 -1
  21. package/dist/providers/openai-responses.js.map +1 -1
  22. package/dist/stream.d.ts +4 -16
  23. package/dist/stream.d.ts.map +1 -1
  24. package/dist/stream.js +3 -27
  25. package/dist/stream.js.map +1 -1
  26. package/dist/utils/oauth/anthropic.d.ts +2 -2
  27. package/dist/utils/oauth/anthropic.d.ts.map +1 -1
  28. package/dist/utils/oauth/anthropic.js +1 -5
  29. package/dist/utils/oauth/anthropic.js.map +1 -1
  30. package/dist/utils/oauth/github-copilot.d.ts +1 -17
  31. package/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  32. package/dist/utils/oauth/github-copilot.js +3 -7
  33. package/dist/utils/oauth/github-copilot.js.map +1 -1
  34. package/dist/utils/oauth/google-antigravity.d.ts +2 -6
  35. package/dist/utils/oauth/google-antigravity.d.ts.map +1 -1
  36. package/dist/utils/oauth/google-antigravity.js +0 -4
  37. package/dist/utils/oauth/google-antigravity.js.map +1 -1
  38. package/dist/utils/oauth/google-gemini-cli.d.ts +2 -6
  39. package/dist/utils/oauth/google-gemini-cli.d.ts.map +1 -1
  40. package/dist/utils/oauth/google-gemini-cli.js +0 -4
  41. package/dist/utils/oauth/google-gemini-cli.js.map +1 -1
  42. package/dist/utils/oauth/index.d.ts +11 -26
  43. package/dist/utils/oauth/index.d.ts.map +1 -1
  44. package/dist/utils/oauth/index.js +16 -48
  45. package/dist/utils/oauth/index.js.map +1 -1
  46. package/dist/utils/oauth/types.d.ts +24 -0
  47. package/dist/utils/oauth/types.d.ts.map +1 -0
  48. package/dist/utils/oauth/types.js +2 -0
  49. package/dist/utils/oauth/types.js.map +1 -0
  50. package/package.json +4 -2
  51. package/dist/utils/oauth/storage.d.ts +0 -81
  52. package/dist/utils/oauth/storage.d.ts.map +0 -1
  53. package/dist/utils/oauth/storage.js +0 -119
  54. package/dist/utils/oauth/storage.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/utils/oauth/storage.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OAuth credential storage with configurable backend.\n *\n * Default: ~/.pi/agent/oauth.json\n * Override with setOAuthStorage() for custom storage locations or backends.\n */\n\nimport { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from \"fs\";\nimport { homedir } from \"os\";\nimport { dirname, join } from \"path\";\n\nexport interface OAuthCredentials {\n\ttype: \"oauth\";\n\trefresh: string;\n\taccess: string;\n\texpires: number;\n\tenterpriseUrl?: string;\n\tprojectId?: string;\n\temail?: string;\n}\n\nexport interface OAuthStorage {\n\t[provider: string]: OAuthCredentials;\n}\n\nexport type OAuthProvider = \"anthropic\" | \"github-copilot\" | \"google-gemini-cli\" | \"google-antigravity\";\n\n/**\n * Storage backend interface.\n * Implement this to use a custom storage location or backend.\n */\nexport interface OAuthStorageBackend {\n\t/** Load all OAuth credentials. Return empty object if none exist. */\n\tload(): OAuthStorage;\n\t/** Save all OAuth credentials. */\n\tsave(storage: OAuthStorage): void;\n}\n\n// ============================================================================\n// Default filesystem backend\n// ============================================================================\n\nconst DEFAULT_PATH = join(homedir(), \".pi\", \"agent\", \"oauth.json\");\n\nfunction defaultLoad(): OAuthStorage {\n\tif (!existsSync(DEFAULT_PATH)) {\n\t\treturn {};\n\t}\n\ttry {\n\t\tconst content = readFileSync(DEFAULT_PATH, \"utf-8\");\n\t\treturn JSON.parse(content);\n\t} catch {\n\t\treturn {};\n\t}\n}\n\nfunction defaultSave(storage: OAuthStorage): void {\n\tconst configDir = dirname(DEFAULT_PATH);\n\tif (!existsSync(configDir)) {\n\t\tmkdirSync(configDir, { recursive: true, mode: 0o700 });\n\t}\n\twriteFileSync(DEFAULT_PATH, JSON.stringify(storage, null, 2), \"utf-8\");\n\tchmodSync(DEFAULT_PATH, 0o600);\n}\n\n// ============================================================================\n// Configurable backend\n// ============================================================================\n\nlet currentBackend: OAuthStorageBackend = {\n\tload: defaultLoad,\n\tsave: defaultSave,\n};\n\n/**\n * Configure the OAuth storage backend.\n *\n * @example\n * // Custom file path\n * setOAuthStorage({\n * load: () => JSON.parse(readFileSync('/custom/path/oauth.json', 'utf-8')),\n * save: (storage) => writeFileSync('/custom/path/oauth.json', JSON.stringify(storage))\n * });\n *\n * @example\n * // In-memory storage (for testing)\n * let memoryStorage = {};\n * setOAuthStorage({\n * load: () => memoryStorage,\n * save: (storage) => { memoryStorage = storage; }\n * });\n */\nexport function setOAuthStorage(backend: OAuthStorageBackend): void {\n\tcurrentBackend = backend;\n}\n\n/**\n * Reset to default filesystem storage (~/.pi/agent/oauth.json)\n */\nexport function resetOAuthStorage(): void {\n\tcurrentBackend = { load: defaultLoad, save: defaultSave };\n}\n\n/**\n * Get the default OAuth path (for reference, may not be used if custom backend is set)\n */\nexport function getOAuthPath(): string {\n\treturn DEFAULT_PATH;\n}\n\n// ============================================================================\n// Public API (uses current backend)\n// ============================================================================\n\n/**\n * Load all OAuth credentials\n */\nexport function loadOAuthStorage(): OAuthStorage {\n\treturn currentBackend.load();\n}\n\n/**\n * Load OAuth credentials for a specific provider\n */\nexport function loadOAuthCredentials(provider: string): OAuthCredentials | null {\n\tconst storage = currentBackend.load();\n\treturn storage[provider] || null;\n}\n\n/**\n * Save OAuth credentials for a specific provider\n */\nexport function saveOAuthCredentials(provider: string, creds: OAuthCredentials): void {\n\tconst storage = currentBackend.load();\n\tstorage[provider] = creds;\n\tcurrentBackend.save(storage);\n}\n\n/**\n * Remove OAuth credentials for a specific provider\n */\nexport function removeOAuthCredentials(provider: string): void {\n\tconst storage = currentBackend.load();\n\tdelete storage[provider];\n\tcurrentBackend.save(storage);\n}\n\n/**\n * Check if OAuth credentials exist for a provider\n */\nexport function hasOAuthCredentials(provider: string): boolean {\n\treturn loadOAuthCredentials(provider) !== null;\n}\n\n/**\n * List all providers with OAuth credentials\n */\nexport function listOAuthProviders(): string[] {\n\tconst storage = currentBackend.load();\n\treturn Object.keys(storage);\n}\n"]}