poe-code 1.2.1 → 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 (156) 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/package.json +13 -34
  39. package/dist/cli/api-client.d.ts +0 -14
  40. package/dist/cli/api-client.js +0 -140
  41. package/dist/cli/api-client.js.map +0 -1
  42. package/dist/cli/chat.d.ts +0 -32
  43. package/dist/cli/chat.js +0 -2
  44. package/dist/cli/chat.js.map +0 -1
  45. package/dist/cli/commands/agent.d.ts +0 -18
  46. package/dist/cli/commands/agent.js +0 -84
  47. package/dist/cli/commands/agent.js.map +0 -1
  48. package/dist/cli/commands/configure-agents.d.ts +0 -3
  49. package/dist/cli/commands/configure-agents.js +0 -72
  50. package/dist/cli/commands/configure-agents.js.map +0 -1
  51. package/dist/cli/commands/init.d.ts +0 -8
  52. package/dist/cli/commands/init.js +0 -45
  53. package/dist/cli/commands/init.js.map +0 -1
  54. package/dist/cli/commands/interactive.d.ts +0 -3
  55. package/dist/cli/commands/interactive.js +0 -17
  56. package/dist/cli/commands/interactive.js.map +0 -1
  57. package/dist/cli/commands/login.d.ts +0 -6
  58. package/dist/cli/commands/login.js +0 -51
  59. package/dist/cli/commands/login.js.map +0 -1
  60. package/dist/cli/commands/logout.d.ts +0 -3
  61. package/dist/cli/commands/logout.js +0 -31
  62. package/dist/cli/commands/logout.js.map +0 -1
  63. package/dist/cli/commands/prerequisites.d.ts +0 -3
  64. package/dist/cli/commands/prerequisites.js +0 -23
  65. package/dist/cli/commands/prerequisites.js.map +0 -1
  66. package/dist/cli/commands/query.d.ts +0 -7
  67. package/dist/cli/commands/query.js +0 -46
  68. package/dist/cli/commands/query.js.map +0 -1
  69. package/dist/cli/commands/remove.d.ts +0 -6
  70. package/dist/cli/commands/remove.js +0 -80
  71. package/dist/cli/commands/remove.js.map +0 -1
  72. package/dist/cli/commands/root.d.ts +0 -3
  73. package/dist/cli/commands/root.js +0 -7
  74. package/dist/cli/commands/root.js.map +0 -1
  75. package/dist/cli/commands/spawn-worktree.d.ts +0 -6
  76. package/dist/cli/commands/spawn-worktree.js +0 -91
  77. package/dist/cli/commands/spawn-worktree.js.map +0 -1
  78. package/dist/cli/commands/spawn.d.ts +0 -7
  79. package/dist/cli/commands/spawn.js +0 -112
  80. package/dist/cli/commands/spawn.js.map +0 -1
  81. package/dist/cli/commands/test.d.ts +0 -6
  82. package/dist/cli/commands/test.js +0 -26
  83. package/dist/cli/commands/test.js.map +0 -1
  84. package/dist/cli/file-mentions.d.ts +0 -13
  85. package/dist/cli/file-mentions.js +0 -87
  86. package/dist/cli/file-mentions.js.map +0 -1
  87. package/dist/cli/file-picker-state.d.ts +0 -14
  88. package/dist/cli/file-picker-state.js +0 -23
  89. package/dist/cli/file-picker-state.js.map +0 -1
  90. package/dist/cli/interactive-command-runner.d.ts +0 -11
  91. package/dist/cli/interactive-command-runner.js +0 -142
  92. package/dist/cli/interactive-command-runner.js.map +0 -1
  93. package/dist/cli/interactive-launcher.d.ts +0 -2
  94. package/dist/cli/interactive-launcher.js +0 -404
  95. package/dist/cli/interactive-launcher.js.map +0 -1
  96. package/dist/cli/interactive-tasks.d.ts +0 -7
  97. package/dist/cli/interactive-tasks.js +0 -199
  98. package/dist/cli/interactive-tasks.js.map +0 -1
  99. package/dist/cli/interactive.d.ts +0 -19
  100. package/dist/cli/interactive.js +0 -479
  101. package/dist/cli/interactive.js.map +0 -1
  102. package/dist/cli/markdown-renderer.d.ts +0 -27
  103. package/dist/cli/markdown-renderer.js +0 -178
  104. package/dist/cli/markdown-renderer.js.map +0 -1
  105. package/dist/cli/markdown-renderer.test.d.ts +0 -1
  106. package/dist/cli/markdown-renderer.test.js +0 -105
  107. package/dist/cli/markdown-renderer.test.js.map +0 -1
  108. package/dist/commands/init.d.ts +0 -9
  109. package/dist/commands/init.js +0 -43
  110. package/dist/commands/init.js.map +0 -1
  111. package/dist/commands/spawn-worktree.d.ts +0 -25
  112. package/dist/commands/spawn-worktree.js +0 -139
  113. package/dist/commands/spawn-worktree.js.map +0 -1
  114. package/dist/services/agent-config-manager.d.ts +0 -32
  115. package/dist/services/agent-config-manager.js +0 -130
  116. package/dist/services/agent-config-manager.js.map +0 -1
  117. package/dist/services/agent-registry.d.ts +0 -27
  118. package/dist/services/agent-registry.js +0 -89
  119. package/dist/services/agent-registry.js.map +0 -1
  120. package/dist/services/agent-session.d.ts +0 -24
  121. package/dist/services/agent-session.js +0 -107
  122. package/dist/services/agent-session.js.map +0 -1
  123. package/dist/services/agent-task-registry.d.ts +0 -131
  124. package/dist/services/agent-task-registry.js +0 -491
  125. package/dist/services/agent-task-registry.js.map +0 -1
  126. package/dist/services/chat.d.ts +0 -94
  127. package/dist/services/chat.js +0 -241
  128. package/dist/services/chat.js.map +0 -1
  129. package/dist/services/mcp-client.d.ts +0 -38
  130. package/dist/services/mcp-client.js +0 -170
  131. package/dist/services/mcp-client.js.map +0 -1
  132. package/dist/services/mcp-manager.d.ts +0 -28
  133. package/dist/services/mcp-manager.js +0 -157
  134. package/dist/services/mcp-manager.js.map +0 -1
  135. package/dist/services/poe-code.d.ts +0 -7
  136. package/dist/services/poe-code.js +0 -5
  137. package/dist/services/poe-code.js.map +0 -1
  138. package/dist/services/task-logger.d.ts +0 -24
  139. package/dist/services/task-logger.js +0 -73
  140. package/dist/services/task-logger.js.map +0 -1
  141. package/dist/services/task-runner.d.ts +0 -19
  142. package/dist/services/task-runner.js +0 -157
  143. package/dist/services/task-runner.js.map +0 -1
  144. package/dist/services/tools.d.ts +0 -76
  145. package/dist/services/tools.js +0 -870
  146. package/dist/services/tools.js.map +0 -1
  147. package/dist/utils/e2e-flags.d.ts +0 -1
  148. package/dist/utils/e2e-flags.js +0 -9
  149. package/dist/utils/e2e-flags.js.map +0 -1
  150. package/dist/utils/worktree.d.ts +0 -40
  151. package/dist/utils/worktree.js +0 -179
  152. package/dist/utils/worktree.js.map +0 -1
  153. package/shared/conversation-layout.cjs +0 -11
  154. package/shared/conversation-layout.d.ts +0 -7
  155. package/shared/conversation-layout.js +0 -11
  156. 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 {};