poe-code 1.2.0 → 2.0.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 (161) hide show
  1. package/README.md +16 -20
  2. package/dist/cli/bootstrap.d.ts +4 -0
  3. package/dist/cli/bootstrap.js +75 -0
  4. package/dist/cli/bootstrap.js.map +1 -0
  5. package/dist/cli/commands/configure.d.ts +2 -1
  6. package/dist/cli/commands/configure.js +7 -7
  7. package/dist/cli/commands/configure.js.map +1 -1
  8. package/dist/cli/container.d.ts +0 -5
  9. package/dist/cli/container.js +0 -8
  10. package/dist/cli/container.js.map +1 -1
  11. package/dist/cli/error-logger.d.ts +17 -2
  12. package/dist/cli/error-logger.js.map +1 -1
  13. package/dist/cli/errors.d.ts +6 -0
  14. package/dist/cli/errors.js +8 -0
  15. package/dist/cli/errors.js.map +1 -1
  16. package/dist/cli/program.js +6 -26
  17. package/dist/cli/program.js.map +1 -1
  18. package/dist/cli/prompt-runner.d.ts +3 -0
  19. package/dist/cli/prompt-runner.js +9 -0
  20. package/dist/cli/prompt-runner.js.map +1 -0
  21. package/dist/cli/service-registry.d.ts +8 -0
  22. package/dist/cli/service-registry.js.map +1 -1
  23. package/dist/cli/ui/service-menu.d.ts +6 -0
  24. package/dist/cli/ui/service-menu.js +37 -0
  25. package/dist/cli/ui/service-menu.js.map +1 -0
  26. package/dist/cli/ui/theme.d.ts +16 -0
  27. package/dist/cli/ui/theme.js +78 -0
  28. package/dist/cli/ui/theme.js.map +1 -0
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.js +2 -74
  31. package/dist/index.js.map +1 -1
  32. package/dist/providers/claude-code-adapter.js +6 -0
  33. package/dist/providers/claude-code-adapter.js.map +1 -1
  34. package/dist/providers/codex-adapter.js +6 -0
  35. package/dist/providers/codex-adapter.js.map +1 -1
  36. package/dist/providers/opencode-adapter.js +6 -0
  37. package/dist/providers/opencode-adapter.js.map +1 -1
  38. package/dist/services/model-strategy.d.ts +2 -2
  39. package/dist/services/model-strategy.js +9 -9
  40. package/dist/services/model-strategy.js.map +1 -1
  41. package/dist/services/opencode.js +2 -2
  42. package/dist/services/opencode.js.map +1 -1
  43. package/package.json +13 -35
  44. package/dist/cli/api-client.d.ts +0 -14
  45. package/dist/cli/api-client.js +0 -140
  46. package/dist/cli/api-client.js.map +0 -1
  47. package/dist/cli/chat.d.ts +0 -32
  48. package/dist/cli/chat.js +0 -2
  49. package/dist/cli/chat.js.map +0 -1
  50. package/dist/cli/commands/agent.d.ts +0 -18
  51. package/dist/cli/commands/agent.js +0 -84
  52. package/dist/cli/commands/agent.js.map +0 -1
  53. package/dist/cli/commands/configure-agents.d.ts +0 -3
  54. package/dist/cli/commands/configure-agents.js +0 -72
  55. package/dist/cli/commands/configure-agents.js.map +0 -1
  56. package/dist/cli/commands/init.d.ts +0 -8
  57. package/dist/cli/commands/init.js +0 -45
  58. package/dist/cli/commands/init.js.map +0 -1
  59. package/dist/cli/commands/interactive.d.ts +0 -3
  60. package/dist/cli/commands/interactive.js +0 -17
  61. package/dist/cli/commands/interactive.js.map +0 -1
  62. package/dist/cli/commands/login.d.ts +0 -6
  63. package/dist/cli/commands/login.js +0 -51
  64. package/dist/cli/commands/login.js.map +0 -1
  65. package/dist/cli/commands/logout.d.ts +0 -3
  66. package/dist/cli/commands/logout.js +0 -31
  67. package/dist/cli/commands/logout.js.map +0 -1
  68. package/dist/cli/commands/prerequisites.d.ts +0 -3
  69. package/dist/cli/commands/prerequisites.js +0 -23
  70. package/dist/cli/commands/prerequisites.js.map +0 -1
  71. package/dist/cli/commands/query.d.ts +0 -7
  72. package/dist/cli/commands/query.js +0 -46
  73. package/dist/cli/commands/query.js.map +0 -1
  74. package/dist/cli/commands/remove.d.ts +0 -6
  75. package/dist/cli/commands/remove.js +0 -80
  76. package/dist/cli/commands/remove.js.map +0 -1
  77. package/dist/cli/commands/root.d.ts +0 -3
  78. package/dist/cli/commands/root.js +0 -7
  79. package/dist/cli/commands/root.js.map +0 -1
  80. package/dist/cli/commands/spawn-worktree.d.ts +0 -6
  81. package/dist/cli/commands/spawn-worktree.js +0 -91
  82. package/dist/cli/commands/spawn-worktree.js.map +0 -1
  83. package/dist/cli/commands/spawn.d.ts +0 -7
  84. package/dist/cli/commands/spawn.js +0 -112
  85. package/dist/cli/commands/spawn.js.map +0 -1
  86. package/dist/cli/commands/test.d.ts +0 -6
  87. package/dist/cli/commands/test.js +0 -26
  88. package/dist/cli/commands/test.js.map +0 -1
  89. package/dist/cli/file-mentions.d.ts +0 -13
  90. package/dist/cli/file-mentions.js +0 -87
  91. package/dist/cli/file-mentions.js.map +0 -1
  92. package/dist/cli/file-picker-state.d.ts +0 -14
  93. package/dist/cli/file-picker-state.js +0 -23
  94. package/dist/cli/file-picker-state.js.map +0 -1
  95. package/dist/cli/interactive-command-runner.d.ts +0 -11
  96. package/dist/cli/interactive-command-runner.js +0 -142
  97. package/dist/cli/interactive-command-runner.js.map +0 -1
  98. package/dist/cli/interactive-launcher.d.ts +0 -2
  99. package/dist/cli/interactive-launcher.js +0 -404
  100. package/dist/cli/interactive-launcher.js.map +0 -1
  101. package/dist/cli/interactive-tasks.d.ts +0 -7
  102. package/dist/cli/interactive-tasks.js +0 -199
  103. package/dist/cli/interactive-tasks.js.map +0 -1
  104. package/dist/cli/interactive.d.ts +0 -19
  105. package/dist/cli/interactive.js +0 -479
  106. package/dist/cli/interactive.js.map +0 -1
  107. package/dist/cli/markdown-renderer.d.ts +0 -27
  108. package/dist/cli/markdown-renderer.js +0 -178
  109. package/dist/cli/markdown-renderer.js.map +0 -1
  110. package/dist/cli/markdown-renderer.test.d.ts +0 -1
  111. package/dist/cli/markdown-renderer.test.js +0 -105
  112. package/dist/cli/markdown-renderer.test.js.map +0 -1
  113. package/dist/commands/init.d.ts +0 -9
  114. package/dist/commands/init.js +0 -43
  115. package/dist/commands/init.js.map +0 -1
  116. package/dist/commands/spawn-worktree.d.ts +0 -25
  117. package/dist/commands/spawn-worktree.js +0 -139
  118. package/dist/commands/spawn-worktree.js.map +0 -1
  119. package/dist/services/agent-config-manager.d.ts +0 -32
  120. package/dist/services/agent-config-manager.js +0 -130
  121. package/dist/services/agent-config-manager.js.map +0 -1
  122. package/dist/services/agent-registry.d.ts +0 -27
  123. package/dist/services/agent-registry.js +0 -89
  124. package/dist/services/agent-registry.js.map +0 -1
  125. package/dist/services/agent-session.d.ts +0 -24
  126. package/dist/services/agent-session.js +0 -107
  127. package/dist/services/agent-session.js.map +0 -1
  128. package/dist/services/agent-task-registry.d.ts +0 -131
  129. package/dist/services/agent-task-registry.js +0 -491
  130. package/dist/services/agent-task-registry.js.map +0 -1
  131. package/dist/services/chat.d.ts +0 -94
  132. package/dist/services/chat.js +0 -241
  133. package/dist/services/chat.js.map +0 -1
  134. package/dist/services/mcp-client.d.ts +0 -38
  135. package/dist/services/mcp-client.js +0 -170
  136. package/dist/services/mcp-client.js.map +0 -1
  137. package/dist/services/mcp-manager.d.ts +0 -28
  138. package/dist/services/mcp-manager.js +0 -157
  139. package/dist/services/mcp-manager.js.map +0 -1
  140. package/dist/services/poe-code.d.ts +0 -7
  141. package/dist/services/poe-code.js +0 -5
  142. package/dist/services/poe-code.js.map +0 -1
  143. package/dist/services/task-logger.d.ts +0 -24
  144. package/dist/services/task-logger.js +0 -73
  145. package/dist/services/task-logger.js.map +0 -1
  146. package/dist/services/task-runner.d.ts +0 -19
  147. package/dist/services/task-runner.js +0 -157
  148. package/dist/services/task-runner.js.map +0 -1
  149. package/dist/services/tools.d.ts +0 -76
  150. package/dist/services/tools.js +0 -870
  151. package/dist/services/tools.js.map +0 -1
  152. package/dist/utils/e2e-flags.d.ts +0 -1
  153. package/dist/utils/e2e-flags.js +0 -9
  154. package/dist/utils/e2e-flags.js.map +0 -1
  155. package/dist/utils/worktree.d.ts +0 -40
  156. package/dist/utils/worktree.js +0 -179
  157. package/dist/utils/worktree.js.map +0 -1
  158. package/shared/conversation-layout.cjs +0 -11
  159. package/shared/conversation-layout.d.ts +0 -7
  160. package/shared/conversation-layout.js +0 -11
  161. package/shared/package.json +0 -13
@@ -1,7 +0,0 @@
1
- import type { CommandRunner, CommandRunnerResult } from "../utils/prerequisites.js";
2
- export interface SpawnPoeCodeOptions {
3
- prompt: string;
4
- args?: string[];
5
- runCommand: CommandRunner;
6
- }
7
- export declare function spawnPoeCode(options: SpawnPoeCodeOptions): Promise<CommandRunnerResult>;
@@ -1,5 +0,0 @@
1
- export async function spawnPoeCode(options) {
2
- const args = ["agent", options.prompt, ...(options.args ?? [])];
3
- return await options.runCommand("poe-code", args);
4
- }
5
- //# sourceMappingURL=poe-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"poe-code.js","sourceRoot":"","sources":["../../src/services/poe-code.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA4B;IAE5B,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC"}
@@ -1,24 +0,0 @@
1
- import type { FsLike } from "./agent-task-registry.js";
2
- export interface TaskLoggerOptions {
3
- fs: FsLike;
4
- filePath: string;
5
- maxSize?: number;
6
- maxBackups?: number;
7
- now?: () => Date;
8
- }
9
- export declare class TaskLogger {
10
- private readonly fs;
11
- private readonly filePath;
12
- private readonly maxSize;
13
- private readonly maxBackups;
14
- private readonly now;
15
- constructor(options: TaskLoggerOptions);
16
- info(message: string): void;
17
- error(message: string): void;
18
- debug(message: string): void;
19
- private write;
20
- private rotateIfNeeded;
21
- private performRotation;
22
- private ensureDirectory;
23
- private buildBackupPath;
24
- }
@@ -1,73 +0,0 @@
1
- import path from "node:path";
2
- const DEFAULT_MAX_SIZE = 10 * 1024 * 1024;
3
- const DEFAULT_MAX_BACKUPS = 3;
4
- export class TaskLogger {
5
- constructor(options) {
6
- this.fs = options.fs;
7
- this.filePath = options.filePath;
8
- this.maxSize = options.maxSize ?? DEFAULT_MAX_SIZE;
9
- this.maxBackups = options.maxBackups ?? DEFAULT_MAX_BACKUPS;
10
- this.now = options.now ?? (() => new Date());
11
- this.ensureDirectory();
12
- }
13
- info(message) {
14
- this.write("INFO", message);
15
- }
16
- error(message) {
17
- this.write("ERROR", message);
18
- }
19
- debug(message) {
20
- this.write("DEBUG", message);
21
- }
22
- write(level, message) {
23
- this.rotateIfNeeded();
24
- const timestamp = this.now().toISOString();
25
- const line = `[${timestamp}] TASK ${level} ${message}\n`;
26
- this.fs.appendFileSync(this.filePath, line);
27
- }
28
- rotateIfNeeded() {
29
- if (!this.fs.existsSync(this.filePath)) {
30
- return;
31
- }
32
- const stats = this.fs.statSync(this.filePath);
33
- if (stats.size < this.maxSize) {
34
- return;
35
- }
36
- this.performRotation();
37
- }
38
- performRotation() {
39
- if (this.maxBackups < 1) {
40
- this.fs.unlinkSync(this.filePath);
41
- return;
42
- }
43
- const oldestIndex = this.maxBackups;
44
- const oldestPath = this.buildBackupPath(oldestIndex);
45
- if (this.fs.existsSync(oldestPath)) {
46
- this.fs.unlinkSync(oldestPath);
47
- }
48
- for (let index = this.maxBackups - 1; index >= 1; index--) {
49
- const source = this.buildBackupPath(index);
50
- if (!this.fs.existsSync(source)) {
51
- continue;
52
- }
53
- const target = this.buildBackupPath(index + 1);
54
- this.fs.renameSync(source, target);
55
- }
56
- if (this.fs.existsSync(this.filePath)) {
57
- this.fs.renameSync(this.filePath, this.buildBackupPath(1));
58
- }
59
- }
60
- ensureDirectory() {
61
- const directory = path.dirname(this.filePath);
62
- if (!this.fs.existsSync(directory)) {
63
- this.fs.mkdirSync(directory, { recursive: true });
64
- }
65
- if (!this.fs.existsSync(this.filePath)) {
66
- this.fs.writeFileSync(this.filePath, "", { encoding: "utf8" });
67
- }
68
- }
69
- buildBackupPath(index) {
70
- return `${this.filePath}.${index}`;
71
- }
72
- }
73
- //# sourceMappingURL=task-logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-logger.js","sourceRoot":"","sources":["../../src/services/task-logger.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { AgentTaskRegistry } from "./agent-task-registry.js";
2
- import type { FsLike } from "./agent-task-registry.js";
3
- export interface TaskRunnerOptions {
4
- fs: FsLike;
5
- tasksDir: string;
6
- logsDir: string;
7
- taskId: string;
8
- toolName: string;
9
- args: Record<string, unknown>;
10
- registry: Pick<AgentTaskRegistry, "getTask" | "updateTask">;
11
- executor: (input: {
12
- toolName: string;
13
- args: Record<string, unknown>;
14
- log: (message: string) => void;
15
- progress: (message: string) => void;
16
- }) => Promise<string>;
17
- now?: () => number;
18
- }
19
- export declare function runTask(options: TaskRunnerOptions): Promise<void>;
@@ -1,157 +0,0 @@
1
- import path from "node:path";
2
- import { fileURLToPath } from "node:url";
3
- import * as fs from "node:fs";
4
- import { TaskLogger } from "./task-logger.js";
5
- import { AgentTaskRegistry } from "./agent-task-registry.js";
6
- import { DefaultToolExecutor } from "./tools.js";
7
- export async function runTask(options) {
8
- const now = options.now ?? Date.now;
9
- const task = options.registry.getTask(options.taskId);
10
- if (!task) {
11
- throw new Error(`Task "${options.taskId}" not found`);
12
- }
13
- const logger = new TaskLogger({
14
- fs: options.fs,
15
- filePath: path.join(options.logsDir, `${options.taskId}.log`),
16
- now: () => new Date(now())
17
- });
18
- const progressFile = path.join(options.tasksDir, `${options.taskId}.progress.jsonl`);
19
- if (!options.fs.existsSync(progressFile)) {
20
- options.fs.writeFileSync(progressFile, "", { encoding: "utf8" });
21
- }
22
- const writeProgress = (update) => {
23
- const line = JSON.stringify(update);
24
- options.fs.appendFileSync(progressFile, `${line}\n`);
25
- };
26
- const startTimestamp = now();
27
- logger.info(`Starting ${options.toolName}`);
28
- writeProgress({
29
- type: "progress",
30
- message: `Starting ${options.toolName}`,
31
- timestamp: startTimestamp
32
- });
33
- try {
34
- const result = await options.executor({
35
- toolName: options.toolName,
36
- args: options.args,
37
- log: (message) => logger.info(message),
38
- progress: (message) => writeProgress({
39
- type: "progress",
40
- message,
41
- timestamp: now()
42
- })
43
- });
44
- const end = now();
45
- options.registry.updateTask(options.taskId, {
46
- status: "completed",
47
- result,
48
- endTime: end
49
- });
50
- writeProgress({
51
- type: "complete",
52
- result,
53
- timestamp: end
54
- });
55
- logger.info(`Task completed: ${result}`);
56
- }
57
- catch (error) {
58
- const message = error instanceof Error ? error.message : String(error);
59
- const end = now();
60
- options.registry.updateTask(options.taskId, {
61
- status: "failed",
62
- error: message,
63
- endTime: end
64
- });
65
- writeProgress({
66
- type: "error",
67
- error: message,
68
- timestamp: end
69
- });
70
- logger.error(`Task failed: ${message}`);
71
- }
72
- }
73
- function parsePayload(argv) {
74
- const index = argv.indexOf("--payload");
75
- if (index === -1) {
76
- return undefined;
77
- }
78
- const raw = argv[index + 1];
79
- if (!raw) {
80
- throw new Error("Missing payload for task runner");
81
- }
82
- return JSON.parse(raw);
83
- }
84
- async function main() {
85
- const payload = parsePayload(process.argv);
86
- if (!payload) {
87
- return;
88
- }
89
- const fsLike = fs;
90
- const nodeFileSystem = createNodeFileSystem();
91
- const registry = new AgentTaskRegistry({
92
- fs: fsLike,
93
- tasksDir: payload.directories.tasks,
94
- logsDir: payload.directories.logs
95
- });
96
- try {
97
- const executor = new DefaultToolExecutor({
98
- fs: nodeFileSystem,
99
- cwd: payload.context.cwd
100
- });
101
- await runTask({
102
- fs: fsLike,
103
- tasksDir: payload.directories.tasks,
104
- logsDir: payload.directories.logs,
105
- taskId: payload.taskId,
106
- toolName: payload.toolName,
107
- args: payload.args,
108
- registry,
109
- executor: async ({ toolName, args, progress }) => {
110
- const result = await executor.executeTool(toolName, args);
111
- const lines = result.split("\n").filter((line) => line.trim().length > 0);
112
- for (const line of lines) {
113
- progress(line);
114
- }
115
- return result;
116
- }
117
- });
118
- }
119
- finally {
120
- registry.dispose();
121
- }
122
- }
123
- const modulePath = fileURLToPath(import.meta.url);
124
- if (process.argv[1] && path.resolve(process.argv[1]) === path.resolve(modulePath)) {
125
- void main().catch((error) => {
126
- // eslint-disable-next-line no-console
127
- console.error("Task runner failed", error);
128
- process.exitCode = 1;
129
- });
130
- }
131
- function createNodeFileSystem() {
132
- const promises = fs.promises;
133
- function readFile(path, encoding) {
134
- if (encoding) {
135
- return promises.readFile(path, encoding);
136
- }
137
- return promises.readFile(path);
138
- }
139
- return {
140
- readFile,
141
- writeFile: async (path, data, options) => {
142
- await promises.writeFile(path, data, options);
143
- },
144
- mkdir: async (target, options) => {
145
- await promises.mkdir(target, options);
146
- },
147
- stat: (target) => promises.stat(target),
148
- unlink: (target) => promises.unlink(target),
149
- readdir: (target) => promises.readdir(target),
150
- rm: promises.rm ? ((path, options) => promises.rm(path, options)) : undefined,
151
- copyFile: promises.copyFile
152
- ? ((src, dest) => promises.copyFile(src, dest))
153
- : undefined,
154
- chmod: promises.chmod ? ((target, mode) => promises.chmod(target, mode)) : undefined
155
- };
156
- }
157
- //# sourceMappingURL=task-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../../src/services/task-runner.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- import type { Tool, ToolExecutor } from "./chat.js";
2
- import type { FileSystem } from "../utils/file-system.js";
3
- import type { McpManager } from "./mcp-manager.js";
4
- import type { AgentTaskRegistry } from "./agent-task-registry.js";
5
- import { AgentRegistry } from "./agent-registry.js";
6
- import { AgentConfigManager } from "./agent-config-manager.js";
7
- interface BackgroundTaskRequest {
8
- taskId: string;
9
- toolName: string;
10
- args: Record<string, unknown>;
11
- context: {
12
- cwd: string;
13
- };
14
- }
15
- type BackgroundTaskSpawner = (request: BackgroundTaskRequest) => Promise<void> | void;
16
- export interface ToolExecutorDependencies {
17
- fs: FileSystem;
18
- cwd: string;
19
- allowedPaths?: string[];
20
- mcpManager?: McpManager;
21
- onWriteFile?: (details: {
22
- absolutePath: string;
23
- relativePath: string;
24
- previousContent: string | null;
25
- nextContent: string;
26
- }) => void | Promise<void>;
27
- taskRegistry?: AgentTaskRegistry;
28
- spawnBackgroundTask?: BackgroundTaskSpawner;
29
- logger?: (event: string, payload?: Record<string, unknown>) => void;
30
- now?: () => number;
31
- agentRegistry?: AgentRegistry;
32
- agentConfigManager?: AgentConfigManager;
33
- homeDir?: string;
34
- }
35
- export declare class DefaultToolExecutor implements ToolExecutor {
36
- private fs;
37
- private cwd;
38
- private allowedPaths;
39
- private mcpManager?;
40
- private onWriteFile?;
41
- private taskRegistry?;
42
- private spawnTask?;
43
- private eventLogger;
44
- private now;
45
- private agentRegistry;
46
- private agentConfigManager?;
47
- private homeDir?;
48
- constructor(dependencies: ToolExecutorDependencies);
49
- executeTool(name: string, args: Record<string, unknown>): Promise<string>;
50
- private isPathAllowed;
51
- private readFile;
52
- private writeFile;
53
- private listFiles;
54
- private runCommand;
55
- private isManagedCommand;
56
- private runManagedCommand;
57
- private executeClaudeCodeCommand;
58
- private executeExternalCommand;
59
- private runProcess;
60
- private formatProcessOutput;
61
- private isNotFoundError;
62
- private searchWeb;
63
- private spawnGitWorktreeTool;
64
- private createBackgroundSpawner;
65
- private executeWorktreeSynchronously;
66
- private resolveAgent;
67
- private parseWorktreeArgs;
68
- private tryReadFile;
69
- }
70
- export interface GetAvailableToolsOptions {
71
- agentRegistry?: AgentRegistry;
72
- agentConfigManager?: AgentConfigManager;
73
- mcpManager?: McpManager;
74
- }
75
- export declare function getAvailableTools(options?: GetAvailableToolsOptions): Promise<Tool[]>;
76
- export {};