poe-code 3.0.71-beta.1 → 3.0.71
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 +1 -1
- package/dist/cli/commands/configure.js +2 -2
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/ensure-isolated-config.js +1 -1
- package/dist/cli/commands/ensure-isolated-config.js.map +1 -1
- package/dist/cli/commands/generate.js +2 -5
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/login.d.ts +0 -1
- package/dist/cli/commands/login.js +36 -57
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logout.d.ts +0 -1
- package/dist/cli/commands/logout.js +29 -32
- package/dist/cli/commands/logout.js.map +1 -1
- package/dist/cli/commands/mcp.js +12 -4
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/models.js +5 -1
- package/dist/cli/commands/models.js.map +1 -1
- package/dist/cli/commands/research.js +2 -2
- package/dist/cli/commands/research.js.map +1 -1
- package/dist/cli/commands/spawn.js +2 -2
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/cli/commands/test.js +1 -1
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/unconfigure.js +2 -2
- package/dist/cli/commands/unconfigure.js.map +1 -1
- package/dist/cli/commands/wrap.js +0 -1
- package/dist/cli/commands/wrap.js.map +1 -1
- package/dist/cli/constants.d.ts +3 -3
- package/dist/cli/constants.js +2 -0
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/container.d.ts +0 -2
- package/dist/cli/container.js +11 -29
- package/dist/cli/container.js.map +1 -1
- package/dist/cli/environment.d.ts +2 -2
- package/dist/cli/environment.js +4 -4
- package/dist/cli/environment.js.map +1 -1
- package/dist/cli/isolated-env-runner.d.ts +0 -1
- package/dist/cli/isolated-env-runner.js +2 -2
- package/dist/cli/isolated-env-runner.js.map +1 -1
- package/dist/cli/isolated-env.d.ts +2 -2
- package/dist/cli/isolated-env.js +17 -15
- package/dist/cli/isolated-env.js.map +1 -1
- package/dist/cli/poe-code-command-runner.js +2 -2
- package/dist/cli/poe-code-command-runner.js.map +1 -1
- package/dist/cli/program.js +6 -13
- package/dist/cli/program.js.map +1 -1
- package/dist/index.js +612 -1187
- package/dist/index.js.map +4 -4
- package/dist/providers/claude-code.js +2 -1
- package/dist/providers/claude-code.js.map +2 -2
- package/dist/providers/codex.js +3 -1
- package/dist/providers/codex.js.map +2 -2
- package/dist/providers/kimi.js +2 -1
- package/dist/providers/kimi.js.map +2 -2
- package/dist/providers/opencode.js +3 -1
- package/dist/providers/opencode.js.map +2 -2
- package/dist/sdk/container.js +11 -27
- package/dist/sdk/container.js.map +1 -1
- package/dist/sdk/credentials.d.ts +1 -1
- package/dist/sdk/credentials.js +19 -6
- package/dist/sdk/credentials.js.map +1 -1
- package/dist/services/client-instance.d.ts +3 -1
- package/dist/services/client-instance.js +11 -1
- package/dist/services/client-instance.js.map +1 -1
- package/dist/services/credentials.d.ts +24 -0
- package/dist/services/{config.js → credentials.js} +21 -34
- package/dist/services/credentials.js.map +1 -0
- package/dist/services/model-strategy.d.ts +1 -1
- package/package.json +1 -2
- package/dist/cli/commands/auth.d.ts +0 -3
- package/dist/cli/commands/auth.js +0 -102
- package/dist/cli/commands/auth.js.map +0 -1
- package/dist/services/config.d.ts +0 -24
- package/dist/services/config.js.map +0 -1
package/dist/sdk/container.js
CHANGED
|
@@ -10,8 +10,8 @@ import { ErrorLogger } from "../cli/error-logger.js";
|
|
|
10
10
|
import { runCommand } from "@poe-code/agent-spawn";
|
|
11
11
|
import { getDefaultProviders } from "../providers/index.js";
|
|
12
12
|
import { createPoeCodeCommandRunner } from "../cli/poe-code-command-runner.js";
|
|
13
|
+
import { loadCredentials, saveCredentials } from "../services/credentials.js";
|
|
13
14
|
import * as nodeFsSync from "node:fs";
|
|
14
|
-
import { createAuthStore } from "@poe-code/auth";
|
|
15
15
|
/**
|
|
16
16
|
* Creates a lightweight container for SDK usage.
|
|
17
17
|
* Uses real file system and command runner.
|
|
@@ -57,27 +57,6 @@ export function createSdkContainer(options) {
|
|
|
57
57
|
chmod: (path, mode) => fs.chmod(path, mode)
|
|
58
58
|
};
|
|
59
59
|
const contextFactory = createCommandContextFactory({ fs: asyncFs });
|
|
60
|
-
const authFs = {
|
|
61
|
-
readFile: (filePath, encoding) => fs.readFile(filePath, encoding),
|
|
62
|
-
writeFile: (filePath, data, options) => fs.writeFile(filePath, data, options),
|
|
63
|
-
mkdir: (directoryPath, options) => fs.mkdir(directoryPath, options).then(() => undefined),
|
|
64
|
-
unlink: (filePath) => fs.unlink(filePath),
|
|
65
|
-
chmod: (filePath, mode) => fs.chmod(filePath, mode)
|
|
66
|
-
};
|
|
67
|
-
const { store: authStore } = createAuthStore({
|
|
68
|
-
env: variables,
|
|
69
|
-
platform: process.platform,
|
|
70
|
-
fileStore: {
|
|
71
|
-
fs: authFs,
|
|
72
|
-
getHomeDirectory: () => homeDir
|
|
73
|
-
},
|
|
74
|
-
legacyCredentials: {
|
|
75
|
-
fs: authFs,
|
|
76
|
-
getHomeDirectory: () => homeDir
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
const readApiKey = authStore.getApiKey.bind(authStore);
|
|
80
|
-
const writeApiKey = authStore.setApiKey.bind(authStore);
|
|
81
60
|
// No-op prompts for SDK (non-interactive)
|
|
82
61
|
const noopPrompts = async () => {
|
|
83
62
|
throw new Error("SDK does not support interactive prompts");
|
|
@@ -87,8 +66,15 @@ export function createSdkContainer(options) {
|
|
|
87
66
|
prompts: noopPrompts,
|
|
88
67
|
promptLibrary,
|
|
89
68
|
apiKeyStore: {
|
|
90
|
-
read:
|
|
91
|
-
|
|
69
|
+
read: () => loadCredentials({
|
|
70
|
+
fs: asyncFs,
|
|
71
|
+
filePath: environment.credentialsPath
|
|
72
|
+
}),
|
|
73
|
+
write: (value) => saveCredentials({
|
|
74
|
+
fs: asyncFs,
|
|
75
|
+
filePath: environment.credentialsPath,
|
|
76
|
+
apiKey: value
|
|
77
|
+
})
|
|
92
78
|
},
|
|
93
79
|
confirm: async () => true
|
|
94
80
|
});
|
|
@@ -135,9 +121,7 @@ export function createSdkContainer(options) {
|
|
|
135
121
|
platform: process.platform,
|
|
136
122
|
variables
|
|
137
123
|
}
|
|
138
|
-
}
|
|
139
|
-
readApiKey,
|
|
140
|
-
writeApiKey
|
|
124
|
+
}
|
|
141
125
|
};
|
|
142
126
|
return container;
|
|
143
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/sdk/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/sdk/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Reads the Poe API key with the following priority:
|
|
3
3
|
* 1. `POE_API_KEY` environment variable (if set)
|
|
4
|
-
* 2.
|
|
4
|
+
* 2. Credentials file (`~/.poe-code/credentials.json`)
|
|
5
5
|
*
|
|
6
6
|
* @returns The API key
|
|
7
7
|
* @throws Error if no credentials found
|
package/dist/sdk/credentials.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as fs from "node:fs/promises";
|
|
2
|
+
import * as os from "node:os";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
const CREDENTIALS_RELATIVE_PATH = ".poe-code/credentials.json";
|
|
2
5
|
/**
|
|
3
6
|
* Reads the Poe API key with the following priority:
|
|
4
7
|
* 1. `POE_API_KEY` environment variable (if set)
|
|
5
|
-
* 2.
|
|
8
|
+
* 2. Credentials file (`~/.poe-code/credentials.json`)
|
|
6
9
|
*
|
|
7
10
|
* @returns The API key
|
|
8
11
|
* @throws Error if no credentials found
|
|
@@ -12,10 +15,20 @@ export async function getPoeApiKey() {
|
|
|
12
15
|
if (typeof envKey === "string" && envKey.trim().length > 0) {
|
|
13
16
|
return envKey.trim();
|
|
14
17
|
}
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
const homeDir = os.homedir();
|
|
19
|
+
const credentialsPath = path.join(homeDir, CREDENTIALS_RELATIVE_PATH);
|
|
20
|
+
try {
|
|
21
|
+
const content = await fs.readFile(credentialsPath, "utf8");
|
|
22
|
+
const parsed = JSON.parse(content);
|
|
23
|
+
if (typeof parsed === "object" &&
|
|
24
|
+
parsed !== null &&
|
|
25
|
+
typeof parsed.apiKey === "string" &&
|
|
26
|
+
parsed.apiKey.length > 0) {
|
|
27
|
+
return parsed.apiKey;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// File doesn't exist or is invalid
|
|
19
32
|
}
|
|
20
33
|
throw new Error("No API key found. Set POE_API_KEY or run 'poe-code login'.");
|
|
21
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/sdk/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/sdk/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EACxB,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import type { FileSystem } from "../utils/file-system.js";
|
|
1
2
|
import type { HttpClient } from "../cli/http.js";
|
|
2
3
|
import type { LlmClient } from "./llm-client.js";
|
|
3
4
|
export declare function setGlobalClient(client: LlmClient): void;
|
|
4
5
|
export declare function getGlobalClient(): LlmClient;
|
|
5
6
|
export declare function hasGlobalClient(): boolean;
|
|
6
7
|
export declare function initializeClient(options: {
|
|
7
|
-
|
|
8
|
+
fs: FileSystem;
|
|
9
|
+
credentialsPath: string;
|
|
8
10
|
baseUrl: string;
|
|
9
11
|
httpClient?: HttpClient;
|
|
10
12
|
}): Promise<void>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AuthenticationError } from "../cli/errors.js";
|
|
2
|
+
import { loadCredentials } from "./credentials.js";
|
|
1
3
|
import { createPoeClient } from "./llm-client.js";
|
|
2
4
|
let globalClient = null;
|
|
3
5
|
export function setGlobalClient(client) {
|
|
@@ -13,11 +15,19 @@ export function hasGlobalClient() {
|
|
|
13
15
|
return globalClient !== null;
|
|
14
16
|
}
|
|
15
17
|
export async function initializeClient(options) {
|
|
18
|
+
// Don't reinitialize if a client is already set (e.g., in tests)
|
|
16
19
|
if (globalClient !== null) {
|
|
17
20
|
return;
|
|
18
21
|
}
|
|
22
|
+
const apiKey = await loadCredentials({
|
|
23
|
+
fs: options.fs,
|
|
24
|
+
filePath: options.credentialsPath
|
|
25
|
+
});
|
|
26
|
+
if (!apiKey) {
|
|
27
|
+
throw new AuthenticationError("Poe API key not found. Run 'poe-code login' first.");
|
|
28
|
+
}
|
|
19
29
|
const client = createPoeClient({
|
|
20
|
-
apiKey
|
|
30
|
+
apiKey,
|
|
21
31
|
baseUrl: options.baseUrl,
|
|
22
32
|
httpClient: options.httpClient
|
|
23
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-instance.js","sourceRoot":"","sources":["../../src/services/client-instance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-instance.js","sourceRoot":"","sources":["../../src/services/client-instance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,IAAI,YAAY,GAAqB,IAAI,CAAC;AAE1C,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAKtC;IACC,iEAAiE;IACjE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,eAAe;KAClC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAmB,CAC3B,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IAEH,eAAe,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { FileSystem } from "../utils/file-system.js";
|
|
2
|
+
export interface CredentialsStoreOptions {
|
|
3
|
+
fs: FileSystem;
|
|
4
|
+
filePath: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SaveCredentialsOptions extends CredentialsStoreOptions {
|
|
7
|
+
apiKey: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ConfiguredServiceMetadata {
|
|
10
|
+
files: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface SaveConfiguredServiceOptions extends CredentialsStoreOptions {
|
|
13
|
+
service: string;
|
|
14
|
+
metadata: ConfiguredServiceMetadata;
|
|
15
|
+
}
|
|
16
|
+
export interface UnconfigureServiceOptions extends CredentialsStoreOptions {
|
|
17
|
+
service: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function saveCredentials(options: SaveCredentialsOptions): Promise<void>;
|
|
20
|
+
export declare function loadCredentials(options: CredentialsStoreOptions): Promise<string | null>;
|
|
21
|
+
export declare function deleteCredentials(options: CredentialsStoreOptions): Promise<boolean>;
|
|
22
|
+
export declare function loadConfiguredServices(options: CredentialsStoreOptions): Promise<Record<string, ConfiguredServiceMetadata>>;
|
|
23
|
+
export declare function saveConfiguredService(options: SaveConfiguredServiceOptions): Promise<void>;
|
|
24
|
+
export declare function unconfigureService(options: UnconfigureServiceOptions): Promise<boolean>;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { isNotFound } from "@poe-code/config-mutations";
|
|
3
|
-
export async function
|
|
3
|
+
export async function saveCredentials(options) {
|
|
4
4
|
const { fs, filePath, apiKey } = options;
|
|
5
|
-
const document = await
|
|
5
|
+
const document = await readCredentialsDocument(fs, filePath);
|
|
6
6
|
document.apiKey = apiKey;
|
|
7
|
-
await
|
|
7
|
+
await writeCredentialsDocument(fs, filePath, document);
|
|
8
8
|
}
|
|
9
|
-
export async function
|
|
9
|
+
export async function loadCredentials(options) {
|
|
10
10
|
const { fs, filePath } = options;
|
|
11
|
-
const document = await
|
|
11
|
+
const document = await readCredentialsDocument(fs, filePath);
|
|
12
12
|
return typeof document.apiKey === "string" && document.apiKey.length > 0
|
|
13
13
|
? document.apiKey
|
|
14
14
|
: null;
|
|
15
15
|
}
|
|
16
|
-
export async function
|
|
16
|
+
export async function deleteCredentials(options) {
|
|
17
17
|
const { fs, filePath } = options;
|
|
18
18
|
try {
|
|
19
19
|
await fs.unlink(filePath);
|
|
@@ -28,22 +28,22 @@ export async function deleteConfig(options) {
|
|
|
28
28
|
}
|
|
29
29
|
export async function loadConfiguredServices(options) {
|
|
30
30
|
const { fs, filePath } = options;
|
|
31
|
-
const document = await
|
|
31
|
+
const document = await readCredentialsDocument(fs, filePath);
|
|
32
32
|
return { ...(document.configured_services ?? {}) };
|
|
33
33
|
}
|
|
34
34
|
export async function saveConfiguredService(options) {
|
|
35
35
|
const { fs, filePath, service, metadata } = options;
|
|
36
|
-
const document = await
|
|
36
|
+
const document = await readCredentialsDocument(fs, filePath);
|
|
37
37
|
const normalized = normalizeConfiguredServiceMetadata(metadata);
|
|
38
38
|
document.configured_services = {
|
|
39
39
|
...(document.configured_services ?? {}),
|
|
40
40
|
[service]: normalized
|
|
41
41
|
};
|
|
42
|
-
await
|
|
42
|
+
await writeCredentialsDocument(fs, filePath, document);
|
|
43
43
|
}
|
|
44
44
|
export async function unconfigureService(options) {
|
|
45
45
|
const { fs, filePath, service } = options;
|
|
46
|
-
const document = await
|
|
46
|
+
const document = await readCredentialsDocument(fs, filePath);
|
|
47
47
|
const services = document.configured_services;
|
|
48
48
|
if (!services || !(service in services)) {
|
|
49
49
|
return false;
|
|
@@ -52,7 +52,7 @@ export async function unconfigureService(options) {
|
|
|
52
52
|
if (Object.keys(services).length === 0) {
|
|
53
53
|
delete document.configured_services;
|
|
54
54
|
}
|
|
55
|
-
await
|
|
55
|
+
await writeCredentialsDocument(fs, filePath, document);
|
|
56
56
|
return true;
|
|
57
57
|
}
|
|
58
58
|
function normalizeConfiguredServiceMetadata(metadata) {
|
|
@@ -71,45 +71,32 @@ function normalizeConfiguredServiceMetadata(metadata) {
|
|
|
71
71
|
files
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
|
-
async function
|
|
74
|
+
async function readCredentialsDocument(fs, filePath) {
|
|
75
75
|
try {
|
|
76
76
|
const raw = await fs.readFile(filePath, "utf8");
|
|
77
|
-
return await
|
|
77
|
+
return await parseCredentialsDocument(fs, filePath, raw);
|
|
78
78
|
}
|
|
79
79
|
catch (error) {
|
|
80
80
|
if (isNotFound(error)) {
|
|
81
|
-
return
|
|
81
|
+
return {};
|
|
82
82
|
}
|
|
83
83
|
throw error;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
async function
|
|
87
|
-
const legacyPath = path.join(path.dirname(configPath), "credentials.json");
|
|
88
|
-
try {
|
|
89
|
-
const raw = await fs.readFile(legacyPath, "utf8");
|
|
90
|
-
const document = await parseConfigDocument(fs, legacyPath, raw);
|
|
91
|
-
await writeConfigDocument(fs, configPath, document);
|
|
92
|
-
await fs.unlink(legacyPath);
|
|
93
|
-
return document;
|
|
94
|
-
}
|
|
95
|
-
catch {
|
|
96
|
-
return {};
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
async function parseConfigDocument(fs, filePath, raw) {
|
|
86
|
+
async function parseCredentialsDocument(fs, filePath, raw) {
|
|
100
87
|
try {
|
|
101
88
|
const parsed = JSON.parse(raw);
|
|
102
|
-
return
|
|
89
|
+
return normalizeCredentialsDocument(parsed);
|
|
103
90
|
}
|
|
104
91
|
catch (error) {
|
|
105
92
|
if (error instanceof SyntaxError) {
|
|
106
|
-
await
|
|
93
|
+
await recoverInvalidCredentials(fs, filePath, raw);
|
|
107
94
|
return {};
|
|
108
95
|
}
|
|
109
96
|
throw error;
|
|
110
97
|
}
|
|
111
98
|
}
|
|
112
|
-
function
|
|
99
|
+
function normalizeCredentialsDocument(value) {
|
|
113
100
|
if (!isRecord(value)) {
|
|
114
101
|
return {};
|
|
115
102
|
}
|
|
@@ -139,7 +126,7 @@ function normalizeConfiguredServices(value) {
|
|
|
139
126
|
}
|
|
140
127
|
return entries;
|
|
141
128
|
}
|
|
142
|
-
async function
|
|
129
|
+
async function writeCredentialsDocument(fs, filePath, document) {
|
|
143
130
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
144
131
|
const payload = {};
|
|
145
132
|
if (document.apiKey) {
|
|
@@ -152,7 +139,7 @@ async function writeConfigDocument(fs, filePath, document) {
|
|
|
152
139
|
encoding: "utf8"
|
|
153
140
|
});
|
|
154
141
|
}
|
|
155
|
-
async function
|
|
142
|
+
async function recoverInvalidCredentials(fs, filePath, content) {
|
|
156
143
|
const backupPath = createInvalidBackupPath(filePath);
|
|
157
144
|
await fs.writeFile(backupPath, content, { encoding: "utf8" });
|
|
158
145
|
await fs.writeFile(filePath, EMPTY_DOCUMENT, { encoding: "utf8" });
|
|
@@ -167,4 +154,4 @@ function isRecord(value) {
|
|
|
167
154
|
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
168
155
|
}
|
|
169
156
|
const EMPTY_DOCUMENT = `${JSON.stringify({}, null, 2)}\n`;
|
|
170
|
-
//# sourceMappingURL=
|
|
157
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/services/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Available model identifiers
|
|
3
3
|
*/
|
|
4
|
-
export declare const AVAILABLE_MODELS: readonly ["anthropic/claude-sonnet-4.6", "gpt-5.2", "gpt-5.2-chat", "gpt-5.2-pro", "gpt-4o", "Claude-3.5-Sonnet", "openai/gpt-5.
|
|
4
|
+
export declare const AVAILABLE_MODELS: readonly ["anthropic/claude-sonnet-4.6", "gpt-5.2", "gpt-5.2-chat", "gpt-5.2-pro", "gpt-4o", "Claude-3.5-Sonnet", "openai/gpt-5.3-codex"];
|
|
5
5
|
export type ModelIdentifier = (typeof AVAILABLE_MODELS)[number];
|
|
6
6
|
/**
|
|
7
7
|
* Strategy types for model selection
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "poe-code",
|
|
3
|
-
"version": "3.0.71
|
|
3
|
+
"version": "3.0.71",
|
|
4
4
|
"description": "CLI tool to configure Poe API for developer workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -82,7 +82,6 @@
|
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@eslint/js": "^9.0.0",
|
|
84
84
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
85
|
-
"@poe-code/auth": "*",
|
|
86
85
|
"@poe-code/agent-spawn": "*",
|
|
87
86
|
"@poe-code/config-mutations": "*",
|
|
88
87
|
"@poe-code/design-system": "*",
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { ApiError } from "../errors.js";
|
|
2
|
-
import { loadConfiguredServices } from "../../services/config.js";
|
|
3
|
-
import { createExecutionResources, resolveCommandFlags } from "./shared.js";
|
|
4
|
-
import { executeLogin } from "./login.js";
|
|
5
|
-
import { executeLogout } from "./logout.js";
|
|
6
|
-
export function registerAuthCommand(program, container) {
|
|
7
|
-
const auth = program
|
|
8
|
-
.command("auth")
|
|
9
|
-
.description("Authentication and account commands.")
|
|
10
|
-
.action(async () => {
|
|
11
|
-
await executeStatus(program, container);
|
|
12
|
-
});
|
|
13
|
-
auth
|
|
14
|
-
.command("status")
|
|
15
|
-
.description("Show login, balance, and configuration status.")
|
|
16
|
-
.action(async () => {
|
|
17
|
-
await executeStatus(program, container);
|
|
18
|
-
});
|
|
19
|
-
auth
|
|
20
|
-
.command("api_key")
|
|
21
|
-
.description("Display stored API key.")
|
|
22
|
-
.action(async () => {
|
|
23
|
-
await executeApiKey(program, container);
|
|
24
|
-
});
|
|
25
|
-
auth
|
|
26
|
-
.command("login")
|
|
27
|
-
.description("Store a Poe API key.")
|
|
28
|
-
.option("--api-key <key>", "Poe API key")
|
|
29
|
-
.action(async (options) => {
|
|
30
|
-
await executeLogin(program, container, options);
|
|
31
|
-
});
|
|
32
|
-
auth
|
|
33
|
-
.command("logout")
|
|
34
|
-
.description("Remove all configuration and credentials.")
|
|
35
|
-
.action(async () => {
|
|
36
|
-
await executeLogout(program, container);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
async function executeStatus(program, container) {
|
|
40
|
-
const flags = resolveCommandFlags(program);
|
|
41
|
-
const resources = createExecutionResources(container, flags, "auth:status");
|
|
42
|
-
resources.logger.intro("auth status");
|
|
43
|
-
try {
|
|
44
|
-
const apiKey = await container.readApiKey();
|
|
45
|
-
const loggedIn = Boolean(apiKey);
|
|
46
|
-
resources.logger.info(loggedIn ? "Logged in" : "Not logged in");
|
|
47
|
-
if (loggedIn) {
|
|
48
|
-
if (flags.dryRun) {
|
|
49
|
-
resources.logger.dryRun("Dry run: would fetch usage balance from Poe API.");
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
const response = await container.httpClient(`${container.env.poeBaseUrl}/usage/current_balance`, {
|
|
53
|
-
method: "GET",
|
|
54
|
-
headers: {
|
|
55
|
-
Authorization: `Bearer ${apiKey}`
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
if (!response.ok) {
|
|
59
|
-
throw new ApiError(`Failed to fetch usage balance (HTTP ${response.status})`, {
|
|
60
|
-
httpStatus: response.status,
|
|
61
|
-
endpoint: "/usage/current_balance"
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
const data = (await response.json());
|
|
65
|
-
const formattedBalance = data.current_point_balance.toLocaleString("en-US");
|
|
66
|
-
resources.logger.info(`Current balance: ${formattedBalance} points`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
const configuredServices = await loadConfiguredServices({
|
|
70
|
-
fs: container.fs,
|
|
71
|
-
filePath: container.env.configPath
|
|
72
|
-
});
|
|
73
|
-
const configuredAgentNames = Object.keys(configuredServices).sort();
|
|
74
|
-
if (configuredAgentNames.length === 0) {
|
|
75
|
-
resources.logger.info("No agents configured.");
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
resources.logger.info(`Configured agents: ${configuredAgentNames.join(", ")}`);
|
|
79
|
-
}
|
|
80
|
-
resources.context.finalize();
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
if (error instanceof Error) {
|
|
84
|
-
resources.logger.logException(error, "auth status", {
|
|
85
|
-
operation: "auth-status"
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
throw error;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
async function executeApiKey(program, container) {
|
|
92
|
-
const flags = resolveCommandFlags(program);
|
|
93
|
-
const resources = createExecutionResources(container, flags, "auth:api_key");
|
|
94
|
-
resources.logger.intro("auth api_key");
|
|
95
|
-
const apiKey = await container.readApiKey();
|
|
96
|
-
if (!apiKey) {
|
|
97
|
-
resources.logger.info("No API key stored.");
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
resources.logger.info(`API key: ${apiKey}`);
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { FileSystem } from "../utils/file-system.js";
|
|
2
|
-
export interface ConfigStoreOptions {
|
|
3
|
-
fs: FileSystem;
|
|
4
|
-
filePath: string;
|
|
5
|
-
}
|
|
6
|
-
export interface SaveConfigOptions extends ConfigStoreOptions {
|
|
7
|
-
apiKey: string;
|
|
8
|
-
}
|
|
9
|
-
export interface ConfiguredServiceMetadata {
|
|
10
|
-
files: string[];
|
|
11
|
-
}
|
|
12
|
-
export interface SaveConfiguredServiceOptions extends ConfigStoreOptions {
|
|
13
|
-
service: string;
|
|
14
|
-
metadata: ConfiguredServiceMetadata;
|
|
15
|
-
}
|
|
16
|
-
export interface UnconfigureServiceOptions extends ConfigStoreOptions {
|
|
17
|
-
service: string;
|
|
18
|
-
}
|
|
19
|
-
export declare function saveConfig(options: SaveConfigOptions): Promise<void>;
|
|
20
|
-
export declare function loadConfig(options: ConfigStoreOptions): Promise<string | null>;
|
|
21
|
-
export declare function deleteConfig(options: ConfigStoreOptions): Promise<boolean>;
|
|
22
|
-
export declare function loadConfiguredServices(options: ConfigStoreOptions): Promise<Record<string, ConfiguredServiceMetadata>>;
|
|
23
|
-
export declare function saveConfiguredService(options: SaveConfiguredServiceOptions): Promise<void>;
|
|
24
|
-
export declare function unconfigureService(options: UnconfigureServiceOptions): Promise<boolean>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"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"}
|