xibecode 1.0.2 → 1.0.6

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 (288) hide show
  1. package/dist/commands/chat.d.ts +0 -1
  2. package/dist/commands/chat.d.ts.map +1 -1
  3. package/dist/commands/chat.js +10 -7
  4. package/dist/commands/chat.js.map +1 -1
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +5 -3
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/diagnostics.js +1 -1
  9. package/dist/commands/diagnostics.js.map +1 -1
  10. package/dist/commands/mcp.js +1 -1
  11. package/dist/commands/mcp.js.map +1 -1
  12. package/dist/commands/resume.js +1 -1
  13. package/dist/commands/resume.js.map +1 -1
  14. package/dist/commands/run-pr.d.ts.map +1 -1
  15. package/dist/commands/run-pr.js +13 -10
  16. package/dist/commands/run-pr.js.map +1 -1
  17. package/dist/commands/run.d.ts.map +1 -1
  18. package/dist/commands/run.js +17 -14
  19. package/dist/commands/run.js.map +1 -1
  20. package/dist/commands/skills.d.ts.map +1 -1
  21. package/dist/commands/skills.js +3 -2
  22. package/dist/commands/skills.js.map +1 -1
  23. package/dist/components/AssistantMarkdown.js +1 -1
  24. package/dist/components/AssistantMarkdown.js.map +1 -1
  25. package/dist/index.js +2 -39
  26. package/dist/index.js.map +1 -1
  27. package/dist/ui/claude-style-chat.d.ts.map +1 -1
  28. package/dist/ui/claude-style-chat.js +15 -11
  29. package/dist/ui/claude-style-chat.js.map +1 -1
  30. package/dist/utils/built-in-skills-dir.d.ts +7 -0
  31. package/dist/utils/built-in-skills-dir.d.ts.map +1 -0
  32. package/dist/utils/built-in-skills-dir.js +11 -0
  33. package/dist/utils/built-in-skills-dir.js.map +1 -0
  34. package/dist/utils/config.d.ts +2 -119
  35. package/dist/utils/config.d.ts.map +1 -1
  36. package/dist/utils/config.js +3 -88
  37. package/dist/utils/config.js.map +1 -1
  38. package/package.json +11 -26
  39. package/dist/commands/punycode.d.ts +0 -5
  40. package/dist/commands/punycode.d.ts.map +0 -1
  41. package/dist/commands/punycode.js +0 -48
  42. package/dist/commands/punycode.js.map +0 -1
  43. package/dist/commands/tui.d.ts +0 -9
  44. package/dist/commands/tui.d.ts.map +0 -1
  45. package/dist/commands/tui.js +0 -83
  46. package/dist/commands/tui.js.map +0 -1
  47. package/dist/core/agent-tool-policies.d.ts +0 -5
  48. package/dist/core/agent-tool-policies.d.ts.map +0 -1
  49. package/dist/core/agent-tool-policies.js +0 -18
  50. package/dist/core/agent-tool-policies.js.map +0 -1
  51. package/dist/core/agent.d.ts +0 -181
  52. package/dist/core/agent.d.ts.map +0 -1
  53. package/dist/core/agent.js +0 -1777
  54. package/dist/core/agent.js.map +0 -1
  55. package/dist/core/background-agent.d.ts +0 -23
  56. package/dist/core/background-agent.d.ts.map +0 -1
  57. package/dist/core/background-agent.js +0 -175
  58. package/dist/core/background-agent.js.map +0 -1
  59. package/dist/core/code-graph.d.ts +0 -18
  60. package/dist/core/code-graph.d.ts.map +0 -1
  61. package/dist/core/code-graph.js +0 -105
  62. package/dist/core/code-graph.js.map +0 -1
  63. package/dist/core/conflict-solver.d.ts +0 -26
  64. package/dist/core/conflict-solver.d.ts.map +0 -1
  65. package/dist/core/conflict-solver.js +0 -108
  66. package/dist/core/conflict-solver.js.map +0 -1
  67. package/dist/core/context-compactor.d.ts +0 -10
  68. package/dist/core/context-compactor.d.ts.map +0 -1
  69. package/dist/core/context-compactor.js +0 -158
  70. package/dist/core/context-compactor.js.map +0 -1
  71. package/dist/core/context-pruner.d.ts +0 -19
  72. package/dist/core/context-pruner.d.ts.map +0 -1
  73. package/dist/core/context-pruner.js +0 -103
  74. package/dist/core/context-pruner.js.map +0 -1
  75. package/dist/core/context.d.ts +0 -82
  76. package/dist/core/context.d.ts.map +0 -1
  77. package/dist/core/context.js +0 -273
  78. package/dist/core/context.js.map +0 -1
  79. package/dist/core/conversation-recovery.d.ts +0 -9
  80. package/dist/core/conversation-recovery.d.ts.map +0 -1
  81. package/dist/core/conversation-recovery.js +0 -15
  82. package/dist/core/conversation-recovery.js.map +0 -1
  83. package/dist/core/debug-workflow.d.ts +0 -9
  84. package/dist/core/debug-workflow.d.ts.map +0 -1
  85. package/dist/core/debug-workflow.js +0 -19
  86. package/dist/core/debug-workflow.js.map +0 -1
  87. package/dist/core/docs-scraper.d.ts +0 -40
  88. package/dist/core/docs-scraper.d.ts.map +0 -1
  89. package/dist/core/docs-scraper.js +0 -386
  90. package/dist/core/docs-scraper.js.map +0 -1
  91. package/dist/core/editor.d.ts +0 -87
  92. package/dist/core/editor.d.ts.map +0 -1
  93. package/dist/core/editor.js +0 -377
  94. package/dist/core/editor.js.map +0 -1
  95. package/dist/core/export.d.ts +0 -11
  96. package/dist/core/export.d.ts.map +0 -1
  97. package/dist/core/export.js +0 -54
  98. package/dist/core/export.js.map +0 -1
  99. package/dist/core/history-manager.d.ts +0 -75
  100. package/dist/core/history-manager.d.ts.map +0 -1
  101. package/dist/core/history-manager.js +0 -146
  102. package/dist/core/history-manager.js.map +0 -1
  103. package/dist/core/marketplace-client.d.ts +0 -52
  104. package/dist/core/marketplace-client.d.ts.map +0 -1
  105. package/dist/core/marketplace-client.js +0 -71
  106. package/dist/core/marketplace-client.js.map +0 -1
  107. package/dist/core/mcp/mcp-config.d.ts +0 -10
  108. package/dist/core/mcp/mcp-config.d.ts.map +0 -1
  109. package/dist/core/mcp/mcp-config.js +0 -70
  110. package/dist/core/mcp/mcp-config.js.map +0 -1
  111. package/dist/core/mcp/mcp-policy.d.ts +0 -17
  112. package/dist/core/mcp/mcp-policy.d.ts.map +0 -1
  113. package/dist/core/mcp/mcp-policy.js +0 -56
  114. package/dist/core/mcp/mcp-policy.js.map +0 -1
  115. package/dist/core/mcp/oauth-flow.d.ts +0 -30
  116. package/dist/core/mcp/oauth-flow.d.ts.map +0 -1
  117. package/dist/core/mcp/oauth-flow.js +0 -230
  118. package/dist/core/mcp/oauth-flow.js.map +0 -1
  119. package/dist/core/mcp/oauth-store.d.ts +0 -13
  120. package/dist/core/mcp/oauth-store.d.ts.map +0 -1
  121. package/dist/core/mcp/oauth-store.js +0 -68
  122. package/dist/core/mcp/oauth-store.js.map +0 -1
  123. package/dist/core/mcp/resolve-mcp-servers.d.ts +0 -16
  124. package/dist/core/mcp/resolve-mcp-servers.d.ts.map +0 -1
  125. package/dist/core/mcp/resolve-mcp-servers.js +0 -83
  126. package/dist/core/mcp/resolve-mcp-servers.js.map +0 -1
  127. package/dist/core/mcp-client.d.ts +0 -99
  128. package/dist/core/mcp-client.d.ts.map +0 -1
  129. package/dist/core/mcp-client.js +0 -315
  130. package/dist/core/mcp-client.js.map +0 -1
  131. package/dist/core/memory-promotions.d.ts +0 -15
  132. package/dist/core/memory-promotions.d.ts.map +0 -1
  133. package/dist/core/memory-promotions.js +0 -38
  134. package/dist/core/memory-promotions.js.map +0 -1
  135. package/dist/core/memory.d.ts +0 -32
  136. package/dist/core/memory.d.ts.map +0 -1
  137. package/dist/core/memory.js +0 -121
  138. package/dist/core/memory.js.map +0 -1
  139. package/dist/core/modes.d.ts +0 -432
  140. package/dist/core/modes.d.ts.map +0 -1
  141. package/dist/core/modes.js +0 -1088
  142. package/dist/core/modes.js.map +0 -1
  143. package/dist/core/pattern-miner.d.ts +0 -43
  144. package/dist/core/pattern-miner.d.ts.map +0 -1
  145. package/dist/core/pattern-miner.js +0 -123
  146. package/dist/core/pattern-miner.js.map +0 -1
  147. package/dist/core/permission-store.d.ts +0 -15
  148. package/dist/core/permission-store.d.ts.map +0 -1
  149. package/dist/core/permission-store.js +0 -30
  150. package/dist/core/permission-store.js.map +0 -1
  151. package/dist/core/permissions.d.ts +0 -33
  152. package/dist/core/permissions.d.ts.map +0 -1
  153. package/dist/core/permissions.js +0 -141
  154. package/dist/core/permissions.js.map +0 -1
  155. package/dist/core/plan-artifacts.d.ts +0 -10
  156. package/dist/core/plan-artifacts.d.ts.map +0 -1
  157. package/dist/core/plan-artifacts.js +0 -60
  158. package/dist/core/plan-artifacts.js.map +0 -1
  159. package/dist/core/plan-session.d.ts +0 -25
  160. package/dist/core/plan-session.d.ts.map +0 -1
  161. package/dist/core/plan-session.js +0 -99
  162. package/dist/core/plan-session.js.map +0 -1
  163. package/dist/core/planMode.d.ts +0 -51
  164. package/dist/core/planMode.d.ts.map +0 -1
  165. package/dist/core/planMode.js +0 -245
  166. package/dist/core/planMode.js.map +0 -1
  167. package/dist/core/plugins.d.ts +0 -96
  168. package/dist/core/plugins.d.ts.map +0 -1
  169. package/dist/core/plugins.js +0 -202
  170. package/dist/core/plugins.js.map +0 -1
  171. package/dist/core/session-bridge.d.ts +0 -128
  172. package/dist/core/session-bridge.d.ts.map +0 -1
  173. package/dist/core/session-bridge.js +0 -328
  174. package/dist/core/session-bridge.js.map +0 -1
  175. package/dist/core/session-manager.d.ts +0 -80
  176. package/dist/core/session-manager.d.ts.map +0 -1
  177. package/dist/core/session-manager.js +0 -166
  178. package/dist/core/session-manager.js.map +0 -1
  179. package/dist/core/session-memory.d.ts +0 -45
  180. package/dist/core/session-memory.d.ts.map +0 -1
  181. package/dist/core/session-memory.js +0 -103
  182. package/dist/core/session-memory.js.map +0 -1
  183. package/dist/core/skill-selection.d.ts +0 -36
  184. package/dist/core/skill-selection.d.ts.map +0 -1
  185. package/dist/core/skill-selection.js +0 -172
  186. package/dist/core/skill-selection.js.map +0 -1
  187. package/dist/core/skills-sh-client.d.ts +0 -19
  188. package/dist/core/skills-sh-client.d.ts.map +0 -1
  189. package/dist/core/skills-sh-client.js +0 -75
  190. package/dist/core/skills-sh-client.js.map +0 -1
  191. package/dist/core/skills.d.ts +0 -97
  192. package/dist/core/skills.d.ts.map +0 -1
  193. package/dist/core/skills.js +0 -339
  194. package/dist/core/skills.js.map +0 -1
  195. package/dist/core/swarm.d.ts +0 -34
  196. package/dist/core/swarm.d.ts.map +0 -1
  197. package/dist/core/swarm.js +0 -111
  198. package/dist/core/swarm.js.map +0 -1
  199. package/dist/core/task-status.d.ts +0 -13
  200. package/dist/core/task-status.d.ts.map +0 -1
  201. package/dist/core/task-status.js +0 -17
  202. package/dist/core/task-status.js.map +0 -1
  203. package/dist/core/tool-orchestrator.d.ts +0 -30
  204. package/dist/core/tool-orchestrator.d.ts.map +0 -1
  205. package/dist/core/tool-orchestrator.js +0 -89
  206. package/dist/core/tool-orchestrator.js.map +0 -1
  207. package/dist/core/tools.d.ts +0 -462
  208. package/dist/core/tools.d.ts.map +0 -1
  209. package/dist/core/tools.js +0 -2916
  210. package/dist/core/tools.js.map +0 -1
  211. package/dist/core/transcript-cleanup.d.ts +0 -8
  212. package/dist/core/transcript-cleanup.d.ts.map +0 -1
  213. package/dist/core/transcript-cleanup.js +0 -52
  214. package/dist/core/transcript-cleanup.js.map +0 -1
  215. package/dist/core/visual-feedback.d.ts +0 -20
  216. package/dist/core/visual-feedback.d.ts.map +0 -1
  217. package/dist/core/visual-feedback.js +0 -117
  218. package/dist/core/visual-feedback.js.map +0 -1
  219. package/dist/tools/browser.d.ts +0 -120
  220. package/dist/tools/browser.d.ts.map +0 -1
  221. package/dist/tools/browser.js +0 -439
  222. package/dist/tools/browser.js.map +0 -1
  223. package/dist/tools/test-generator.d.ts +0 -157
  224. package/dist/tools/test-generator.d.ts.map +0 -1
  225. package/dist/tools/test-generator.js +0 -893
  226. package/dist/tools/test-generator.js.map +0 -1
  227. package/dist/tui/InkApp.d.ts +0 -21
  228. package/dist/tui/InkApp.d.ts.map +0 -1
  229. package/dist/tui/InkApp.js +0 -146
  230. package/dist/tui/InkApp.js.map +0 -1
  231. package/dist/tui/MarkdownMessage.d.ts +0 -16
  232. package/dist/tui/MarkdownMessage.d.ts.map +0 -1
  233. package/dist/tui/MarkdownMessage.js +0 -63
  234. package/dist/tui/MarkdownMessage.js.map +0 -1
  235. package/dist/tui/blessed-chat.d.ts +0 -9
  236. package/dist/tui/blessed-chat.d.ts.map +0 -1
  237. package/dist/tui/blessed-chat.js +0 -887
  238. package/dist/tui/blessed-chat.js.map +0 -1
  239. package/dist/tui/markdown-to-blessed.d.ts +0 -6
  240. package/dist/tui/markdown-to-blessed.d.ts.map +0 -1
  241. package/dist/tui/markdown-to-blessed.js +0 -26
  242. package/dist/tui/markdown-to-blessed.js.map +0 -1
  243. package/dist/ui/ink/App.d.ts +0 -25
  244. package/dist/ui/ink/App.d.ts.map +0 -1
  245. package/dist/ui/ink/App.js +0 -372
  246. package/dist/ui/ink/App.js.map +0 -1
  247. package/dist/utils/at-references.d.ts +0 -14
  248. package/dist/utils/at-references.d.ts.map +0 -1
  249. package/dist/utils/at-references.js +0 -47
  250. package/dist/utils/at-references.js.map +0 -1
  251. package/dist/utils/auto-memory.d.ts +0 -24
  252. package/dist/utils/auto-memory.d.ts.map +0 -1
  253. package/dist/utils/auto-memory.js +0 -153
  254. package/dist/utils/auto-memory.js.map +0 -1
  255. package/dist/utils/git.d.ts +0 -89
  256. package/dist/utils/git.d.ts.map +0 -1
  257. package/dist/utils/git.js +0 -444
  258. package/dist/utils/git.js.map +0 -1
  259. package/dist/utils/mcp-servers-file.d.ts +0 -46
  260. package/dist/utils/mcp-servers-file.d.ts.map +0 -1
  261. package/dist/utils/mcp-servers-file.js +0 -212
  262. package/dist/utils/mcp-servers-file.js.map +0 -1
  263. package/dist/utils/safety.d.ts +0 -60
  264. package/dist/utils/safety.d.ts.map +0 -1
  265. package/dist/utils/safety.js +0 -254
  266. package/dist/utils/safety.js.map +0 -1
  267. package/dist/utils/smithery.d.ts +0 -25
  268. package/dist/utils/smithery.d.ts.map +0 -1
  269. package/dist/utils/smithery.js +0 -50
  270. package/dist/utils/smithery.js.map +0 -1
  271. package/dist/utils/testRunner.d.ts +0 -44
  272. package/dist/utils/testRunner.d.ts.map +0 -1
  273. package/dist/utils/testRunner.js +0 -270
  274. package/dist/utils/testRunner.js.map +0 -1
  275. package/dist/webui/server.d.ts +0 -99
  276. package/dist/webui/server.d.ts.map +0 -1
  277. package/dist/webui/server.js +0 -2619
  278. package/dist/webui/server.js.map +0 -1
  279. package/webui-dist/assets/index-CSla6Lzy.css +0 -32
  280. package/webui-dist/assets/index-G_Z4gzPy.js +0 -457
  281. package/webui-dist/assets/index-G_Z4gzPy.js.map +0 -1
  282. package/webui-dist/assets/xterm-Da5jL1MD.js +0 -10
  283. package/webui-dist/assets/xterm-Da5jL1MD.js.map +0 -1
  284. package/webui-dist/assets/xterm-addon-fit-CMeqLIvm.js +0 -2
  285. package/webui-dist/assets/xterm-addon-fit-CMeqLIvm.js.map +0 -1
  286. package/webui-dist/assets/xterm-addon-web-links-D6m8jNVE.js +0 -2
  287. package/webui-dist/assets/xterm-addon-web-links-D6m8jNVE.js.map +0 -1
  288. package/webui-dist/index.html +0 -15
@@ -1,99 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { randomUUID } from 'crypto';
4
- export class PlanSessionManager {
5
- workingDir;
6
- sessionDir;
7
- constructor(workingDir = process.cwd()) {
8
- this.workingDir = workingDir;
9
- this.sessionDir = path.join(workingDir, '.xibecode', 'plan-sessions');
10
- }
11
- async create(request, metadata) {
12
- const now = new Date().toISOString();
13
- const session = {
14
- id: `plan-${randomUUID()}`,
15
- request,
16
- status: 'drafting',
17
- createdAt: now,
18
- updatedAt: now,
19
- answers: {},
20
- metadata,
21
- };
22
- await this.save(session);
23
- return session;
24
- }
25
- async load(sessionId) {
26
- const filePath = this.getSessionPath(sessionId);
27
- try {
28
- const raw = await fs.readFile(filePath, 'utf8');
29
- return JSON.parse(raw);
30
- }
31
- catch {
32
- return null;
33
- }
34
- }
35
- async updateStatus(sessionId, status) {
36
- const session = await this.load(sessionId);
37
- if (!session)
38
- return null;
39
- session.status = status;
40
- session.updatedAt = new Date().toISOString();
41
- await this.save(session);
42
- return session;
43
- }
44
- async attachArtifact(sessionId, artifactPath) {
45
- const session = await this.load(sessionId);
46
- if (!session)
47
- return null;
48
- session.artifactPath = artifactPath;
49
- session.updatedAt = new Date().toISOString();
50
- await this.save(session);
51
- return session;
52
- }
53
- async addAnswers(sessionId, answers) {
54
- const session = await this.load(sessionId);
55
- if (!session)
56
- return null;
57
- session.answers = { ...session.answers, ...answers };
58
- session.updatedAt = new Date().toISOString();
59
- await this.save(session);
60
- return session;
61
- }
62
- async listRecent(limit = 20) {
63
- let files;
64
- try {
65
- files = await fs.readdir(this.sessionDir);
66
- }
67
- catch {
68
- return [];
69
- }
70
- const sessions = [];
71
- const jsonFiles = files.filter(f => f.endsWith('.json'));
72
- // Bounded concurrency
73
- const CONCURRENCY_LIMIT = 20;
74
- for (let i = 0; i < jsonFiles.length; i += CONCURRENCY_LIMIT) {
75
- const chunk = jsonFiles.slice(i, i + CONCURRENCY_LIMIT);
76
- await Promise.all(chunk.map(async (file) => {
77
- try {
78
- const raw = await fs.readFile(path.join(this.sessionDir, file), 'utf8');
79
- sessions.push(JSON.parse(raw));
80
- }
81
- catch {
82
- // Ignore malformed session files to avoid breaking the list.
83
- }
84
- }));
85
- }
86
- return sessions
87
- .sort((a, b) => Date.parse(b.updatedAt) - Date.parse(a.updatedAt))
88
- .slice(0, limit);
89
- }
90
- async save(session) {
91
- await fs.mkdir(this.sessionDir, { recursive: true });
92
- const filePath = this.getSessionPath(session.id);
93
- await fs.writeFile(filePath, JSON.stringify(session, null, 2), 'utf8');
94
- }
95
- getSessionPath(sessionId) {
96
- return path.join(this.sessionDir, `${sessionId}.json`);
97
- }
98
- }
99
- //# sourceMappingURL=plan-session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-session.js","sourceRoot":"","sources":["../../src/core/plan-session.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { TodoItem, TodoDocument } from '../utils/todoManager.js';
2
- import { AgentConfig } from './agent.js';
3
- import { ProviderType } from '../utils/config.js';
4
- export interface PlanResult {
5
- doc: TodoDocument;
6
- tasks: TodoItem[];
7
- isLarge: boolean;
8
- planSessionId?: string;
9
- artifactPath?: string;
10
- requiresApproval?: boolean;
11
- }
12
- /**
13
- * Lightweight \"plan mode\" that decides whether a task is large/complex
14
- * and, if so, creates/updates todo.md with a structured list of tasks.
15
- *
16
- * This first implementation is intentionally heuristic and deterministic:
17
- * it does not call the LLM yet, but prepares a solid path for that later.
18
- */
19
- export declare class PlanMode {
20
- private readonly rootDir;
21
- private readonly config;
22
- private readonly provider;
23
- constructor(rootDir: string, config: AgentConfig, provider: ProviderType);
24
- /**
25
- * Decide whether a task should go through plan mode.
26
- * Very simple heuristic based on length and obvious multi-step language.
27
- */
28
- isLargeTask(description: string): boolean;
29
- /**
30
- * Build or extend a TODO plan for the given description.
31
- * Returns the updated document plus the tasks it just added/updated.
32
- */
33
- /**
34
- * Build or extend a TODO plan using the AI Architect.
35
- */
36
- buildPlan(description: string): Promise<PlanResult>;
37
- /**
38
- * Fallback to the old heuristic method if AI fails
39
- */
40
- fallbackBuildPlan(description: string): Promise<PlanResult>;
41
- private loadGeneratedPlanText;
42
- private buildFallbackPlanContent;
43
- private extractCandidateTasks;
44
- /**
45
- * Generate a deterministic id for a title within this plan.
46
- * We deliberately *do not* include timestamps here so the same
47
- * title maps to the same id when re-planning.
48
- */
49
- private generateDeterministicId;
50
- }
51
- //# sourceMappingURL=planMode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planMode.d.ts","sourceRoot":"","sources":["../../src/core/planMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAiB,WAAW,EAAc,MAAM,YAAY,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,YAAY;IAGzC;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAwBzC;;;OAGG;IACH;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0GzD;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAyBnD,qBAAqB;IAcnC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,qBAAqB;IAkC7B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAQhC"}
@@ -1,245 +0,0 @@
1
- import { TodoManager } from '../utils/todoManager.js';
2
- import { EnhancedAgent } from './agent.js';
3
- import { CodingToolExecutor } from './tools.js';
4
- import { SkillManager } from './skills.js';
5
- import * as fs from 'fs/promises';
6
- import * as path from 'path';
7
- import chalk from 'chalk';
8
- import { PlanSessionManager } from './plan-session.js';
9
- import { persistPlanArtifact } from './plan-artifacts.js';
10
- /**
11
- * Lightweight \"plan mode\" that decides whether a task is large/complex
12
- * and, if so, creates/updates todo.md with a structured list of tasks.
13
- *
14
- * This first implementation is intentionally heuristic and deterministic:
15
- * it does not call the LLM yet, but prepares a solid path for that later.
16
- */
17
- export class PlanMode {
18
- rootDir;
19
- config;
20
- provider;
21
- constructor(rootDir, config, provider) {
22
- this.rootDir = rootDir;
23
- this.config = config;
24
- this.provider = provider;
25
- }
26
- /**
27
- * Decide whether a task should go through plan mode.
28
- * Very simple heuristic based on length and obvious multi-step language.
29
- */
30
- isLargeTask(description) {
31
- const text = description.trim();
32
- if (text.length > 400)
33
- return true;
34
- const lower = text.toLowerCase();
35
- const multiStepHints = [' and ', ' then ', ' followed by ', ' as well as ', 'step 1', 'step 2', 'first,', 'second,'];
36
- let hits = 0;
37
- for (const hint of multiStepHints) {
38
- if (lower.includes(hint)) {
39
- hits++;
40
- }
41
- }
42
- if (hits >= 2 || (hits >= 1 && text.length > 60)) {
43
- return true;
44
- }
45
- // Multiple bullet-like lines also indicate a larger request
46
- const lines = text.split('\n').map(l => l.trim());
47
- const bulletLines = lines.filter(l => /^[-*]\s+/.test(l)).length;
48
- if (bulletLines >= 2)
49
- return true;
50
- return false;
51
- }
52
- /**
53
- * Build or extend a TODO plan for the given description.
54
- * Returns the updated document plus the tasks it just added/updated.
55
- */
56
- /**
57
- * Build or extend a TODO plan using the AI Architect.
58
- */
59
- async buildPlan(description) {
60
- console.log(chalk.cyan('\n🧠 AI Architect is analyzing the request...'));
61
- const planSessionManager = new PlanSessionManager(this.rootDir);
62
- const planSession = await planSessionManager.create(description, {
63
- source: 'PlanMode.buildPlan',
64
- });
65
- // Initialize the Architect Agent
66
- // We give it a restricted set of tools: Read access + Write access ONLY to plan/todo files
67
- // For now, we'll give it the standard executor but instruct it carefully.
68
- const skillManager = new SkillManager(this.rootDir, this.config.apiKey, this.config.baseUrl, this.config.model, this.provider);
69
- await skillManager.loadSkills();
70
- const defaultSkillsPrompt = await skillManager.buildDefaultSkillsPromptForTask(description, this.rootDir);
71
- const toolExecutor = new CodingToolExecutor(this.rootDir, {
72
- dryRun: false, // We want it to actually write the plan files
73
- skillManager,
74
- });
75
- // Filter tools to ensure safety during planning (read-only + specific writes)
76
- // Actually, giving full read access is good. We just want to encourage it to write plans.
77
- const tools = toolExecutor.getTools();
78
- const architect = new EnhancedAgent({
79
- ...this.config,
80
- maxIterations: 10,
81
- provider: this.provider,
82
- customProviderFormat: this.config.customProviderFormat,
83
- defaultSkillsPrompt,
84
- }, this.provider);
85
- // Forward events for visibility
86
- architect.on('event', (event) => {
87
- if (event.type === 'thinking')
88
- console.log(chalk.gray(` ${event.data.message}`));
89
- });
90
- const prompt = `
91
- You are the AI Architect. Your goal is to analyze the user's request and create a concrete execution plan.
92
-
93
- USER REQUEST: "${description}"
94
-
95
- 1. **Explore**: Read files to understand the current state of the project.
96
- 2. **Plan**: Create a detailed \`implementation_plan.md\` file.
97
- - Describe the architectural changes.
98
- - List files to create/modify.
99
- - Identify potential risks.
100
- 3. **Tasking**: Create or Update the \`todo.md\` file.
101
- - Break the plan into small, testable tasks.
102
- - Use a markdown list format with IDs if possible, or just a standard task list.
103
- - The \`todo.md\` MUST be actionable.
104
-
105
- Perform these steps now.
106
- `.trim();
107
- try {
108
- await architect.run(prompt, tools, toolExecutor);
109
- }
110
- catch (error) {
111
- console.error(chalk.red('Architect failed to generate plan:'), error);
112
- }
113
- // Now read the generated todo.md to return the result
114
- const todoManager = new TodoManager(this.rootDir);
115
- let doc;
116
- try {
117
- // Force reload from disk in case Agent wrote it
118
- doc = await todoManager.load();
119
- }
120
- catch (e) {
121
- // Fallback if no todo.md was created
122
- doc = { pending: [], inProgress: [], done: [] };
123
- }
124
- // If doc is empty, fallback to heuristic (means Agent failed to write todo.md)
125
- if (doc.pending.length === 0 && doc.inProgress.length === 0 && doc.done.length === 0) {
126
- console.log(chalk.yellow(' (Architect did not create tasks, falling back to heuristic)'));
127
- const fallback = await this.fallbackBuildPlan(description);
128
- const fallbackPlanContent = this.buildFallbackPlanContent(fallback.tasks);
129
- const persisted = await persistPlanArtifact(this.rootDir, planSession.id, description, fallbackPlanContent);
130
- await planSessionManager.attachArtifact(planSession.id, persisted.artifactPath);
131
- await planSessionManager.updateStatus(planSession.id, 'awaiting_approval');
132
- return {
133
- ...fallback,
134
- planSessionId: planSession.id,
135
- artifactPath: persisted.artifactPath,
136
- requiresApproval: true,
137
- };
138
- }
139
- const generatedPlanText = await this.loadGeneratedPlanText();
140
- const persisted = await persistPlanArtifact(this.rootDir, planSession.id, description, generatedPlanText);
141
- await planSessionManager.attachArtifact(planSession.id, persisted.artifactPath);
142
- await planSessionManager.updateStatus(planSession.id, 'awaiting_approval');
143
- return {
144
- doc,
145
- tasks: doc.pending, // This might not be exactly "new" tasks, but "pending" ones
146
- isLarge: true,
147
- planSessionId: planSession.id,
148
- artifactPath: persisted.artifactPath,
149
- requiresApproval: true,
150
- };
151
- }
152
- /**
153
- * Fallback to the old heuristic method if AI fails
154
- */
155
- async fallbackBuildPlan(description) {
156
- const todoManager = new TodoManager(this.rootDir);
157
- const candidates = this.extractCandidateTasks(description);
158
- if (candidates.length === 0)
159
- candidates.push(description.trim());
160
- const newItems = candidates.map((title) => ({
161
- id: this.generateDeterministicId(title),
162
- title: title.trim(),
163
- }));
164
- const doc = await todoManager.mergeNewTasks(newItems);
165
- // Re-map to find added tasks
166
- const byId = new Map();
167
- [...doc.pending, ...doc.inProgress, ...doc.done].forEach(i => byId.set(i.id, i));
168
- const tasks = newItems.map((t) => byId.get(t.id)).filter(Boolean);
169
- return {
170
- doc,
171
- tasks,
172
- isLarge: this.isLargeTask(description),
173
- };
174
- }
175
- async loadGeneratedPlanText() {
176
- const candidates = ['implementation_plan.md', 'implementations.md'];
177
- for (const candidate of candidates) {
178
- const candidatePath = path.join(this.rootDir, candidate);
179
- try {
180
- const content = await fs.readFile(candidatePath, 'utf8');
181
- if (content.trim().length > 0)
182
- return content;
183
- }
184
- catch {
185
- // Ignore missing file candidates.
186
- }
187
- }
188
- return 'Plan file was not generated; refer to todo.md for actionable tasks.';
189
- }
190
- buildFallbackPlanContent(tasks) {
191
- if (tasks.length === 0) {
192
- return 'No tasks were generated.';
193
- }
194
- return [
195
- '## Fallback plan generated from todo tasks',
196
- '',
197
- ...tasks.map((task) => `- [ ] ${task.title} (${task.id})`),
198
- '',
199
- ].join('\n');
200
- }
201
- extractCandidateTasks(description) {
202
- const text = description.trim();
203
- const lines = text.split('\n');
204
- const tasks = [];
205
- // 1) Use bullet-style lines as tasks when present
206
- for (const raw of lines) {
207
- const line = raw.trim();
208
- const bulletMatch = /^[-*]\s+(.*)$/.exec(line);
209
- if (bulletMatch) {
210
- const title = bulletMatch[1].trim();
211
- if (title.length >= 10) {
212
- tasks.push(title);
213
- }
214
- }
215
- }
216
- if (tasks.length > 0)
217
- return tasks;
218
- // 2) Fallback: split by sentences and keep reasonably sized chunks
219
- const sentenceLike = text
220
- .split(/[.!?]/)
221
- .map(s => s.trim())
222
- .filter(s => s.length >= 15);
223
- if (sentenceLike.length > 1) {
224
- return sentenceLike;
225
- }
226
- // 3) Last resort: single task with the full description
227
- if (text.length > 0)
228
- return [text];
229
- return [];
230
- }
231
- /**
232
- * Generate a deterministic id for a title within this plan.
233
- * We deliberately *do not* include timestamps here so the same
234
- * title maps to the same id when re-planning.
235
- */
236
- generateDeterministicId(title) {
237
- const base = title
238
- .toLowerCase()
239
- .replace(/[^a-z0-9]+/g, '-')
240
- .replace(/^-+|-+$/g, '')
241
- .slice(0, 32) || 'task';
242
- return base;
243
- }
244
- }
245
- //# sourceMappingURL=planMode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planMode.js","sourceRoot":"","sources":["../../src/core/planMode.ts"],"names":[],"mappings":"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"}
@@ -1,96 +0,0 @@
1
- import type { Tool } from '@anthropic-ai/sdk/resources/messages';
2
- import type { EnhancedAgent } from './agent.js';
3
- /**
4
- * Plugin interface that all plugins must implement
5
- */
6
- export interface XibeCodePlugin {
7
- /**
8
- * Plugin name
9
- */
10
- name: string;
11
- /**
12
- * Plugin version
13
- */
14
- version: string;
15
- /**
16
- * Optional description
17
- */
18
- description?: string;
19
- /**
20
- * Register custom tools
21
- */
22
- registerTools?(): ToolDefinition[];
23
- /**
24
- * Optional lifecycle hooks
25
- */
26
- registerHooks?(agent: EnhancedAgent): void;
27
- /**
28
- * Initialize the plugin (called when loaded)
29
- */
30
- initialize?(): Promise<void> | void;
31
- /**
32
- * Cleanup when plugin is unloaded
33
- */
34
- cleanup?(): Promise<void> | void;
35
- }
36
- /**
37
- * Plugin tool definition
38
- */
39
- export interface ToolDefinition {
40
- /**
41
- * Tool schema (Anthropic format)
42
- */
43
- schema: Tool;
44
- /**
45
- * Tool execution handler
46
- */
47
- handler: (input: any) => Promise<any>;
48
- }
49
- /**
50
- * Plugin loader and manager
51
- */
52
- export declare class PluginManager {
53
- private plugins;
54
- private tools;
55
- /**
56
- * Load plugins from a list of paths
57
- */
58
- loadPlugins(pluginPaths: string[]): Promise<void>;
59
- /**
60
- * Load a single plugin from a path
61
- */
62
- loadPlugin(pluginPath: string): Promise<void>;
63
- /**
64
- * Get all registered plugin tools
65
- */
66
- getPluginTools(): Tool[];
67
- /**
68
- * Execute a plugin tool
69
- */
70
- executePluginTool(toolName: string, input: any): Promise<any>;
71
- /**
72
- * Check if a tool is a plugin tool
73
- */
74
- isPluginTool(toolName: string): boolean;
75
- /**
76
- * Register plugin hooks with the agent
77
- */
78
- registerHooks(agent: EnhancedAgent): void;
79
- /**
80
- * Get loaded plugins
81
- */
82
- getPlugins(): XibeCodePlugin[];
83
- /**
84
- * Unload all plugins
85
- */
86
- unloadAll(): Promise<void>;
87
- /**
88
- * Unload a specific plugin
89
- */
90
- unloadPlugin(pluginName: string): Promise<void>;
91
- }
92
- /**
93
- * Example plugin template
94
- */
95
- export declare const examplePlugin: XibeCodePlugin;
96
- //# sourceMappingURL=plugins.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/core/plugins.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,IAAI,cAAc,EAAE,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,IAAI,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,KAAK,CAA0C;IAEvD;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDnD;;OAEG;IACH,cAAc,IAAI,IAAI,EAAE;IAIxB;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAsBnE;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAQzC;;OAEG;IACH,UAAU,IAAI,cAAc,EAAE;IAI9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAUhC;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBtD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cA+C3B,CAAC"}