poe-code 2.0.7 → 2.0.9
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 +10 -10
- package/dist/cli/commands/query.d.ts +6 -0
- package/dist/cli/commands/query.js +73 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/container.d.ts +1 -2
- package/dist/cli/container.js +1 -9
- package/dist/cli/container.js.map +1 -1
- package/dist/cli/program.js +2 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/service-registry.d.ts +2 -5
- package/dist/cli/service-registry.js +1 -4
- package/dist/cli/service-registry.js.map +1 -1
- package/package.json +2 -1
- package/dist/cli/telemetry.d.ts +0 -15
- package/dist/cli/telemetry.js +0 -30
- package/dist/cli/telemetry.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# poe-code
|
|
2
2
|
|
|
3
|
-
> Configure
|
|
3
|
+
> Configure coding agents to use the Poe API.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -16,31 +16,31 @@ npx poe-code@latest configure claude-code
|
|
|
16
16
|
npx poe-code@latest login
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### Configure Coding CLIs
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
# Claude Code
|
|
23
|
-
npx poe-code@latest
|
|
23
|
+
npx poe-code@latest configure claude-code
|
|
24
24
|
|
|
25
25
|
# Codex
|
|
26
|
-
npx poe-code@latest
|
|
26
|
+
npx poe-code@latest configure codex
|
|
27
27
|
|
|
28
28
|
# OpenCode
|
|
29
|
-
npx poe-code@latest
|
|
29
|
+
npx poe-code@latest configure opencode
|
|
30
|
+
|
|
30
31
|
```
|
|
31
32
|
|
|
32
|
-
###
|
|
33
|
+
### Install Coding CLIs
|
|
33
34
|
|
|
34
35
|
```bash
|
|
35
36
|
# Claude Code
|
|
36
|
-
npx poe-code@latest
|
|
37
|
+
npx poe-code@latest install claude-code
|
|
37
38
|
|
|
38
39
|
# Codex
|
|
39
|
-
npx poe-code@latest
|
|
40
|
+
npx poe-code@latest install codex
|
|
40
41
|
|
|
41
42
|
# OpenCode
|
|
42
|
-
npx poe-code@latest
|
|
43
|
-
|
|
43
|
+
npx poe-code@latest install opencode
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
### Uninstall Configuration
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { CliContainer } from "../container.js";
|
|
3
|
+
export interface RegisterQueryCommandOptions {
|
|
4
|
+
defaultModel?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function registerQueryCommand(program: Command, container: CliContainer, options?: RegisterQueryCommandOptions): void;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { DEFAULT_FRONTIER_MODEL } from "../constants.js";
|
|
2
|
+
import { createExecutionResources, resolveCommandFlags } from "./shared.js";
|
|
3
|
+
import { loadCredentials } from "../../services/credentials.js";
|
|
4
|
+
export function registerQueryCommand(program, container, options = {}) {
|
|
5
|
+
program
|
|
6
|
+
.command("query")
|
|
7
|
+
.description("Query an LLM via Poe API directly")
|
|
8
|
+
.option("--model <model>", "Model identifier", options.defaultModel ?? DEFAULT_FRONTIER_MODEL)
|
|
9
|
+
.option("--system <prompt>", "System prompt")
|
|
10
|
+
.argument("[prompt]", "User prompt (if not provided, reads from stdin)")
|
|
11
|
+
.action(async function (promptArg) {
|
|
12
|
+
const flags = resolveCommandFlags(program);
|
|
13
|
+
const resources = createExecutionResources(container, flags, "query");
|
|
14
|
+
const commandOptions = this.opts();
|
|
15
|
+
const model = commandOptions.model ?? options.defaultModel ?? DEFAULT_FRONTIER_MODEL;
|
|
16
|
+
const systemPrompt = commandOptions.system;
|
|
17
|
+
// Get prompt from argument or stdin
|
|
18
|
+
let prompt = promptArg;
|
|
19
|
+
if (!prompt) {
|
|
20
|
+
// Check if stdin is being piped (not a TTY)
|
|
21
|
+
if (!process.stdin.isTTY) {
|
|
22
|
+
// Read from stdin
|
|
23
|
+
const chunks = [];
|
|
24
|
+
for await (const chunk of process.stdin) {
|
|
25
|
+
chunks.push(chunk);
|
|
26
|
+
}
|
|
27
|
+
prompt = Buffer.concat(chunks).toString("utf8").trim();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (!prompt) {
|
|
31
|
+
throw new Error("No prompt provided via argument or stdin");
|
|
32
|
+
}
|
|
33
|
+
if (flags.dryRun) {
|
|
34
|
+
resources.logger.dryRun(`Dry run: would query model ${model} with prompt (${prompt.length} chars)`);
|
|
35
|
+
if (systemPrompt) {
|
|
36
|
+
resources.logger.dryRun(`System prompt: ${systemPrompt}`);
|
|
37
|
+
}
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const apiKey = await loadCredentials({
|
|
41
|
+
fs: container.fs,
|
|
42
|
+
filePath: container.env.credentialsPath
|
|
43
|
+
});
|
|
44
|
+
if (!apiKey) {
|
|
45
|
+
throw new Error("Poe API key not found. Run 'poe-code login' first.");
|
|
46
|
+
}
|
|
47
|
+
// Dynamic import of openai to avoid top-level import issues
|
|
48
|
+
const { default: OpenAI } = await import("openai");
|
|
49
|
+
const client = new OpenAI({
|
|
50
|
+
apiKey,
|
|
51
|
+
baseURL: "https://api.poe.com/v1"
|
|
52
|
+
});
|
|
53
|
+
const messages = [];
|
|
54
|
+
if (systemPrompt) {
|
|
55
|
+
messages.push({ role: "system", content: systemPrompt });
|
|
56
|
+
}
|
|
57
|
+
messages.push({ role: "user", content: prompt });
|
|
58
|
+
const chat = await client.chat.completions.create({
|
|
59
|
+
model,
|
|
60
|
+
messages
|
|
61
|
+
});
|
|
62
|
+
const response = chat.choices[0]?.message?.content;
|
|
63
|
+
if (!response) {
|
|
64
|
+
throw new Error("No response from LLM");
|
|
65
|
+
}
|
|
66
|
+
// Output to stdout (no logger prefix)
|
|
67
|
+
process.stdout.write(response);
|
|
68
|
+
if (!response.endsWith("\n")) {
|
|
69
|
+
process.stdout.write("\n");
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/container.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { createServiceRegistry, type ProviderService } from "./service-registry.
|
|
|
4
4
|
import { type CommandContextFactory } from "./context.js";
|
|
5
5
|
import { createPromptLibrary } from "./prompts.js";
|
|
6
6
|
import { type OptionResolvers } from "./options.js";
|
|
7
|
-
import { type LoggerFactory
|
|
7
|
+
import { type LoggerFactory } from "./logger.js";
|
|
8
8
|
import { ErrorLogger } from "./error-logger.js";
|
|
9
9
|
import type { PromptFn, LoggerFn } from "./types.js";
|
|
10
10
|
import type { HttpClient } from "./http.js";
|
|
@@ -36,7 +36,6 @@ export interface CliContainer {
|
|
|
36
36
|
readonly registry: ReturnType<typeof createServiceRegistry>;
|
|
37
37
|
readonly httpClient: HttpClient;
|
|
38
38
|
readonly commandRunner: CommandRunner;
|
|
39
|
-
readonly telemetryLogger: ScopedLogger;
|
|
40
39
|
readonly providers: ProviderService[];
|
|
41
40
|
readonly dependencies: CliDependencies;
|
|
42
41
|
}
|
package/dist/cli/container.js
CHANGED
|
@@ -7,7 +7,6 @@ import { createPromptLibrary } from "./prompts.js";
|
|
|
7
7
|
import { createOptionResolvers } from "./options.js";
|
|
8
8
|
import { createLoggerFactory } from "./logger.js";
|
|
9
9
|
import { ErrorLogger } from "./error-logger.js";
|
|
10
|
-
import { createTelemetryClient } from "./telemetry.js";
|
|
11
10
|
import { createDefaultCommandRunner } from "./command-runner.js";
|
|
12
11
|
import { getDefaultProviders } from "../providers/index.js";
|
|
13
12
|
export function createCliContainer(dependencies) {
|
|
@@ -55,13 +54,7 @@ export function createCliContainer(dependencies) {
|
|
|
55
54
|
})
|
|
56
55
|
}
|
|
57
56
|
});
|
|
58
|
-
const
|
|
59
|
-
scope: "telemetry",
|
|
60
|
-
verbose: true
|
|
61
|
-
});
|
|
62
|
-
const registry = createServiceRegistry({
|
|
63
|
-
telemetry: createTelemetryClient(telemetryLogger)
|
|
64
|
-
});
|
|
57
|
+
const registry = createServiceRegistry();
|
|
65
58
|
const providers = getDefaultProviders().filter((adapter) => !adapter.disabled);
|
|
66
59
|
for (const adapter of providers) {
|
|
67
60
|
registry.register(adapter);
|
|
@@ -78,7 +71,6 @@ export function createCliContainer(dependencies) {
|
|
|
78
71
|
registry,
|
|
79
72
|
httpClient,
|
|
80
73
|
commandRunner,
|
|
81
|
-
telemetryLogger,
|
|
82
74
|
providers,
|
|
83
75
|
dependencies
|
|
84
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/cli/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,qBAAqB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAE5B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,qBAAqB,EAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/cli/container.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/program.js
CHANGED
|
@@ -7,6 +7,7 @@ import { registerInstallCommand } from "./commands/install.js";
|
|
|
7
7
|
import { registerRemoveCommand } from "./commands/remove.js";
|
|
8
8
|
import { registerDoctorCommand } from "./commands/doctor.js";
|
|
9
9
|
import { registerTestCommand } from "./commands/test.js";
|
|
10
|
+
import { registerQueryCommand } from "./commands/query.js";
|
|
10
11
|
export function createProgram(dependencies) {
|
|
11
12
|
const container = createCliContainer(dependencies);
|
|
12
13
|
const program = bootstrapProgram(container);
|
|
@@ -28,6 +29,7 @@ function bootstrapProgram(container) {
|
|
|
28
29
|
registerInstallCommand(program, container);
|
|
29
30
|
registerConfigureCommand(program, container);
|
|
30
31
|
registerSpawnCommand(program, container);
|
|
32
|
+
registerQueryCommand(program, container);
|
|
31
33
|
registerTestCommand(program, container);
|
|
32
34
|
registerRemoveCommand(program, container);
|
|
33
35
|
registerDoctorCommand(program, container);
|
package/dist/cli/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,UAAU,aAAa,CAAC,YAA6B;IACzD,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,YAAY,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;QACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;QACzC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAuB;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,4CAA4C,CAAC,CAAC;IAErE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3C,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7C,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1C,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1C,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,SAAS,iBAAiB,CAAC,OAAgB;IACzC,OAAO,CAAC,YAAY,EAAE,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,OAAO,CAAC,eAAe,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;KACnB,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { CliEnvironment } from "./environment.js";
|
|
2
2
|
import type { CommandContext } from "./context.js";
|
|
3
3
|
import type { ScopedLogger } from "./logger.js";
|
|
4
|
-
import type { ProviderOperation, TelemetryClient } from "./telemetry.js";
|
|
5
4
|
import type { FileSystem } from "../utils/file-system.js";
|
|
6
5
|
import type { CommandCheck } from "../utils/command-checks.js";
|
|
7
6
|
import type { ModelPromptInput, ReasoningPromptInput } from "./prompts.js";
|
|
@@ -50,6 +49,7 @@ export interface ProviderService<TPaths extends Record<string, unknown> = Record
|
|
|
50
49
|
test?(context: ProviderContext<TPaths>): Promise<void>;
|
|
51
50
|
resolveVersion?(context: ProviderContext<TPaths>): Promise<ProviderVersionResolution<TPaths, TConfigure, TRemove, TSpawn>>;
|
|
52
51
|
}
|
|
52
|
+
export type ProviderOperation = "install" | "configure" | "remove" | "spawn" | "test";
|
|
53
53
|
export interface ServiceRegistry {
|
|
54
54
|
register(adapter: ProviderService): void;
|
|
55
55
|
discover(adapters: ProviderService[]): void;
|
|
@@ -58,7 +58,4 @@ export interface ServiceRegistry {
|
|
|
58
58
|
list(): ProviderService[];
|
|
59
59
|
invoke<T>(serviceName: string, operation: ProviderOperation, runner: (adapter: ProviderService) => Promise<T>): Promise<T>;
|
|
60
60
|
}
|
|
61
|
-
export
|
|
62
|
-
telemetry?: TelemetryClient;
|
|
63
|
-
}
|
|
64
|
-
export declare function createServiceRegistry(init?: ServiceRegistryInit): ServiceRegistry;
|
|
61
|
+
export declare function createServiceRegistry(): ServiceRegistry;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function createServiceRegistry(
|
|
1
|
+
export function createServiceRegistry() {
|
|
2
2
|
const adapters = new Map();
|
|
3
3
|
const register = (adapter) => {
|
|
4
4
|
if (adapters.has(adapter.name)) {
|
|
@@ -25,9 +25,6 @@ export function createServiceRegistry(init = {}) {
|
|
|
25
25
|
const list = () => Array.from(adapters.values());
|
|
26
26
|
const invoke = async (serviceName, operation, runner) => {
|
|
27
27
|
const adapter = require(serviceName);
|
|
28
|
-
if (init.telemetry) {
|
|
29
|
-
return await init.telemetry.wrap(serviceName, operation, () => runner(adapter));
|
|
30
|
-
}
|
|
31
28
|
return await runner(adapter);
|
|
32
29
|
};
|
|
33
30
|
return { register, discover, get, require, list, invoke };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/cli/service-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/cli/service-registry.ts"],"names":[],"mappings":"AAyGA,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEpD,MAAM,QAAQ,GAAG,CAAC,OAAwB,EAAQ,EAAE;QAClD,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,IAAI,0BAA0B,CAAC,CAAC;QACvE,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,UAA6B,EAAQ,EAAE;QACvD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,IAAY,EAA+B,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,CAAC,IAAY,EAAmB,EAAE;QAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAsB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,KAAK,EAClB,WAAmB,EACnB,SAA4B,EAC5B,MAAgD,EACpC,EAAE;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACrC,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "poe-code",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "CLI tool to configure Poe API for developer workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"commander": "^11.1.0",
|
|
34
34
|
"diff": "^5.2.0",
|
|
35
35
|
"handlebars": "^4.7.8",
|
|
36
|
+
"openai": "^6.9.1",
|
|
36
37
|
"prompts": "^2.4.2",
|
|
37
38
|
"semver": "^7.7.3"
|
|
38
39
|
},
|
package/dist/cli/telemetry.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { ScopedLogger } from "./logger.js";
|
|
2
|
-
export type ProviderOperation = "install" | "configure" | "remove" | "spawn" | "test";
|
|
3
|
-
export type TelemetryStatus = "success" | "failure";
|
|
4
|
-
export interface TelemetryEvent {
|
|
5
|
-
service: string;
|
|
6
|
-
operation: ProviderOperation;
|
|
7
|
-
status: TelemetryStatus;
|
|
8
|
-
durationMs: number;
|
|
9
|
-
error?: unknown;
|
|
10
|
-
}
|
|
11
|
-
export interface TelemetryClient {
|
|
12
|
-
record(event: TelemetryEvent): void;
|
|
13
|
-
wrap<T>(service: string, operation: ProviderOperation, task: () => Promise<T>): Promise<T>;
|
|
14
|
-
}
|
|
15
|
-
export declare function createTelemetryClient(_logger: ScopedLogger): TelemetryClient;
|
package/dist/cli/telemetry.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export function createTelemetryClient(_logger) {
|
|
2
|
-
const record = (_event) => {
|
|
3
|
-
// Telemetry events are recorded but not logged
|
|
4
|
-
};
|
|
5
|
-
const wrap = async (service, operation, task) => {
|
|
6
|
-
const start = Date.now();
|
|
7
|
-
try {
|
|
8
|
-
const result = await task();
|
|
9
|
-
record({
|
|
10
|
-
service,
|
|
11
|
-
operation,
|
|
12
|
-
status: "success",
|
|
13
|
-
durationMs: Date.now() - start
|
|
14
|
-
});
|
|
15
|
-
return result;
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
record({
|
|
19
|
-
service,
|
|
20
|
-
operation,
|
|
21
|
-
status: "failure",
|
|
22
|
-
durationMs: Date.now() - start,
|
|
23
|
-
error
|
|
24
|
-
});
|
|
25
|
-
throw error;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
return { record, wrap };
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=telemetry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,qBAAqB,CAAC,OAAqB;IACzD,MAAM,MAAM,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAC9C,+CAA+C;IACjD,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,EAChB,OAAe,EACf,SAA4B,EAC5B,IAAsB,EACV,EAAE;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC;gBACL,OAAO;gBACP,SAAS;gBACT,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC;gBACL,OAAO;gBACP,SAAS;gBACT,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC9B,KAAK;aACN,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC"}
|