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,44 +0,0 @@
1
- export interface TestRunnerInfo {
2
- detected: boolean;
3
- runner?: string;
4
- command?: string;
5
- packageManager?: 'pnpm' | 'bun' | 'npm';
6
- scriptName?: string;
7
- }
8
- export interface TestResult {
9
- success: boolean;
10
- exitCode?: number;
11
- output: string;
12
- errors: string;
13
- duration?: number;
14
- testsRun?: number;
15
- testsPassed?: number;
16
- testsFailed?: number;
17
- }
18
- export declare class TestRunnerDetector {
19
- private workingDir;
20
- constructor(workingDir?: string);
21
- /**
22
- * Detect which package manager is available
23
- * Priority via lock files: pnpm > bun > npm.
24
- * If no lock file is found, default to npm for predictability.
25
- */
26
- detectPackageManager(): Promise<'pnpm' | 'bun' | 'npm'>;
27
- /**
28
- * Detect test runner and command
29
- */
30
- detectTestRunner(customCommand?: string): Promise<TestRunnerInfo>;
31
- /**
32
- * Detect test runner from package.json dependencies
33
- */
34
- private detectRunnerFromDeps;
35
- /**
36
- * Parse test output to extract statistics
37
- */
38
- parseTestOutput(output: string, runner?: string): Partial<TestResult>;
39
- /**
40
- * Extract failure details from test output
41
- */
42
- extractFailures(output: string): string[];
43
- }
44
- //# sourceMappingURL=testRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testRunner.d.ts","sourceRoot":"","sources":["../../src/utils/testRunner.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAAsB;IAI9C;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAe7D;;OAEG;IACG,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+FvE;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkFrE;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;CA+C1C"}
@@ -1,270 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- export class TestRunnerDetector {
4
- workingDir;
5
- constructor(workingDir = process.cwd()) {
6
- this.workingDir = workingDir;
7
- }
8
- /**
9
- * Detect which package manager is available
10
- * Priority via lock files: pnpm > bun > npm.
11
- * If no lock file is found, default to npm for predictability.
12
- */
13
- async detectPackageManager() {
14
- // Check for lock files
15
- try {
16
- const files = await fs.readdir(this.workingDir);
17
- if (files.includes('pnpm-lock.yaml'))
18
- return 'pnpm';
19
- if (files.includes('bun.lockb'))
20
- return 'bun';
21
- if (files.includes('package-lock.json'))
22
- return 'npm';
23
- }
24
- catch {
25
- // Ignore errors
26
- }
27
- // Default fallback when no lock file is present
28
- return 'npm';
29
- }
30
- /**
31
- * Detect test runner and command
32
- */
33
- async detectTestRunner(customCommand) {
34
- // If custom command provided, use it
35
- if (customCommand) {
36
- return {
37
- detected: true,
38
- command: customCommand,
39
- };
40
- }
41
- // Try to read package.json
42
- try {
43
- const packageJsonPath = path.join(this.workingDir, 'package.json');
44
- const content = await fs.readFile(packageJsonPath, 'utf-8');
45
- const packageJson = JSON.parse(content);
46
- // Check for test scripts
47
- const scripts = packageJson.scripts || {};
48
- // Priority: test > test:unit > test:all
49
- const testScriptName = scripts.test
50
- ? 'test'
51
- : scripts['test:unit']
52
- ? 'test:unit'
53
- : scripts['test:all']
54
- ? 'test:all'
55
- : null;
56
- if (testScriptName) {
57
- const packageManager = await this.detectPackageManager();
58
- return {
59
- detected: true,
60
- runner: this.detectRunnerFromDeps(packageJson),
61
- command: `${packageManager} ${testScriptName === 'test' ? 'test' : `run ${testScriptName}`}`,
62
- packageManager,
63
- scriptName: testScriptName,
64
- };
65
- }
66
- // Check for direct runner in dependencies
67
- const runner = this.detectRunnerFromDeps(packageJson);
68
- if (runner) {
69
- const packageManager = await this.detectPackageManager();
70
- return {
71
- detected: true,
72
- runner,
73
- command: `${packageManager} run ${runner}`,
74
- packageManager,
75
- };
76
- }
77
- }
78
- catch {
79
- // No package.json or parsing error
80
- }
81
- // Check for Python test runners
82
- try {
83
- const files = await fs.readdir(this.workingDir);
84
- // pytest
85
- if (files.some(f => f.includes('pytest') || f === 'pytest.ini')) {
86
- return {
87
- detected: true,
88
- runner: 'pytest',
89
- command: 'pytest',
90
- };
91
- }
92
- // unittest (Python standard library)
93
- if (files.some(f => f.startsWith('test_') && f.endsWith('.py'))) {
94
- return {
95
- detected: true,
96
- runner: 'unittest',
97
- command: 'python -m unittest discover',
98
- };
99
- }
100
- }
101
- catch {
102
- // Ignore
103
- }
104
- // Check for Go tests
105
- try {
106
- const files = await fs.readdir(this.workingDir);
107
- if (files.some(f => f.endsWith('_test.go'))) {
108
- return {
109
- detected: true,
110
- runner: 'go test',
111
- command: 'go test ./...',
112
- };
113
- }
114
- }
115
- catch {
116
- // Ignore
117
- }
118
- return { detected: false };
119
- }
120
- /**
121
- * Detect test runner from package.json dependencies
122
- */
123
- detectRunnerFromDeps(packageJson) {
124
- const allDeps = {
125
- ...packageJson.dependencies,
126
- ...packageJson.devDependencies,
127
- };
128
- if (allDeps.vitest)
129
- return 'vitest';
130
- if (allDeps.jest)
131
- return 'jest';
132
- if (allDeps.mocha)
133
- return 'mocha';
134
- if (allDeps.ava)
135
- return 'ava';
136
- if (allDeps.tape)
137
- return 'tape';
138
- if (allDeps['node:test'])
139
- return 'node:test';
140
- return undefined;
141
- }
142
- /**
143
- * Parse test output to extract statistics
144
- */
145
- parseTestOutput(output, runner) {
146
- const result = {
147
- testsRun: undefined,
148
- testsPassed: undefined,
149
- testsFailed: undefined,
150
- };
151
- // Vitest patterns (prefer explicit runner flag to avoid clashing with Jest)
152
- if (runner === 'vitest') {
153
- // Example:
154
- // Test Files 2 passed (2)
155
- // Tests 15 passed (15)
156
- const testsLineMatch = output.match(/Tests\s+(\d+)\s+passed/);
157
- const failMatch = output.match(/(\d+)\s+failed/);
158
- if (testsLineMatch) {
159
- result.testsPassed = parseInt(testsLineMatch[1], 10);
160
- result.testsRun = result.testsPassed;
161
- }
162
- if (failMatch) {
163
- // In typical Vitest output fail count appears separately; if present, update
164
- result.testsFailed = parseInt(failMatch[1], 10);
165
- if (result.testsRun !== undefined) {
166
- result.testsRun = (result.testsPassed || 0) + (result.testsFailed || 0);
167
- }
168
- }
169
- }
170
- // Jest patterns
171
- if (runner === 'jest' || output.includes('Tests:')) {
172
- const passMatch = output.match(/(\d+) passed/);
173
- const failMatch = output.match(/(\d+) failed/);
174
- const totalMatch = output.match(/Tests:\s+(\d+)\s+failed,\s+(\d+)\s+passed,\s+(\d+)\s+total/);
175
- if (passMatch)
176
- result.testsPassed = parseInt(passMatch[1], 10);
177
- if (failMatch)
178
- result.testsFailed = parseInt(failMatch[1], 10);
179
- if (totalMatch) {
180
- // Prefer the explicit total if present
181
- result.testsRun = parseInt(totalMatch[3], 10);
182
- }
183
- else if (result.testsPassed !== undefined || result.testsFailed !== undefined) {
184
- // Fallback: sum passed + failed
185
- result.testsRun = (result.testsPassed || 0) + (result.testsFailed || 0);
186
- }
187
- }
188
- // Mocha patterns
189
- if (runner === 'mocha' || output.includes('passing') || output.includes('failing')) {
190
- const passMatch = output.match(/(\d+) passing/);
191
- const failMatch = output.match(/(\d+) failing/);
192
- if (passMatch)
193
- result.testsPassed = parseInt(passMatch[1], 10);
194
- if (failMatch)
195
- result.testsFailed = parseInt(failMatch[1], 10);
196
- if (result.testsPassed !== undefined && result.testsFailed !== undefined) {
197
- result.testsRun = result.testsPassed + result.testsFailed;
198
- }
199
- }
200
- // pytest patterns
201
- if (runner === 'pytest' || output.includes('pytest')) {
202
- const match = output.match(/(\d+) passed(?:, (\d+) failed)?/);
203
- if (match) {
204
- result.testsPassed = parseInt(match[1], 10);
205
- result.testsFailed = match[2] ? parseInt(match[2], 10) : 0;
206
- result.testsRun = result.testsPassed + result.testsFailed;
207
- }
208
- }
209
- // Go test patterns
210
- if (runner === 'go test') {
211
- const passMatch = output.match(/ok\s+.+\s+[\d.]+s/g);
212
- const failMatch = output.match(/FAIL\s+.+\s+[\d.]+s/g);
213
- if (passMatch)
214
- result.testsPassed = passMatch.length;
215
- if (failMatch)
216
- result.testsFailed = failMatch.length;
217
- if (result.testsPassed !== undefined || result.testsFailed !== undefined) {
218
- result.testsRun = (result.testsPassed || 0) + (result.testsFailed || 0);
219
- }
220
- }
221
- return result;
222
- }
223
- /**
224
- * Extract failure details from test output
225
- */
226
- extractFailures(output) {
227
- const failures = [];
228
- const lines = output.split('\n');
229
- // Entry indicators for new failure blocks
230
- const failureStartRegex = /^\s*(FAIL|FAILED)\b/;
231
- // Additional lines that should be included as part of a failure once started
232
- const failureDetailIndicators = ['Error:', 'AssertionError', '✗', '❌', '×'];
233
- let inFailureBlock = false;
234
- let currentFailure = [];
235
- for (const line of lines) {
236
- // Check if we're entering a failure block (start on FAIL/FAILED lines)
237
- if (failureStartRegex.test(line)) {
238
- if (currentFailure.length > 0) {
239
- failures.push(currentFailure.join('\n'));
240
- }
241
- currentFailure = [line];
242
- inFailureBlock = true;
243
- }
244
- else if (inFailureBlock) {
245
- // Continue collecting failure details
246
- if (line.trim() === '' ||
247
- line.match(/^[\s]*at /) ||
248
- failureDetailIndicators.some(indicator => line.includes(indicator))) {
249
- currentFailure.push(line);
250
- }
251
- else if (line.match(/^\s*(PASS|✓|√)/)) {
252
- // Exit failure block on next passing test
253
- if (currentFailure.length > 0) {
254
- failures.push(currentFailure.join('\n'));
255
- currentFailure = [];
256
- }
257
- inFailureBlock = false;
258
- }
259
- else {
260
- currentFailure.push(line);
261
- }
262
- }
263
- }
264
- if (currentFailure.length > 0) {
265
- failures.push(currentFailure.join('\n'));
266
- }
267
- return failures.slice(0, 10); // Limit to first 10 failures
268
- }
269
- }
270
- //# sourceMappingURL=testRunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testRunner.js","sourceRoot":"","sources":["../../src/utils/testRunner.ts"],"names":[],"mappings":"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"}
@@ -1,99 +0,0 @@
1
- /**
2
- * XibeCode WebUI Server
3
- *
4
- * A lightweight HTTP server that provides:
5
- * - REST API for interacting with XibeCode
6
- * - WebSocket for real-time agent communication
7
- * - Static file serving for the WebUI frontend
8
- *
9
- * @module webui/server
10
- * @since 0.4.0
11
- */
12
- import { EnhancedAgent } from '../core/agent.js';
13
- import { CodingToolExecutor } from '../core/tools.js';
14
- export interface WebUIServerConfig {
15
- port: number;
16
- host: string;
17
- staticDir?: string;
18
- workingDir?: string;
19
- }
20
- export interface AgentSession {
21
- id: string;
22
- agent: EnhancedAgent | null;
23
- toolExecutor: CodingToolExecutor;
24
- messages: any[];
25
- status: 'idle' | 'running' | 'error';
26
- createdAt: Date;
27
- lastActivity: Date;
28
- /** Cached from SkillManager after first load (bundled default skills prompt). */
29
- builtInSkillsPrompt?: string;
30
- }
31
- /**
32
- * Available AI models configuration
33
- */
34
- export declare const AVAILABLE_MODELS: {
35
- id: string;
36
- name: string;
37
- provider: string;
38
- tier: string;
39
- }[];
40
- /**
41
- * WebUI Server for XibeCode
42
- */
43
- export declare class WebUIServer {
44
- private server;
45
- private wss;
46
- private config;
47
- private configManager;
48
- private sessions;
49
- private wsClients;
50
- private workingDir;
51
- private historyManager;
52
- constructor(config?: Partial<WebUIServerConfig>);
53
- /**
54
- * Start the WebUI server
55
- */
56
- start(): Promise<void>;
57
- /**
58
- * Stop the WebUI server
59
- */
60
- stop(): Promise<void>;
61
- /**
62
- * Handle HTTP requests
63
- */
64
- private handleRequest;
65
- /**
66
- * Handle API requests
67
- */
68
- private handleAPI;
69
- /**
70
- * Serve static files
71
- */
72
- private serveStatic;
73
- /**
74
- * Handle WebSocket connections
75
- */
76
- private handleWebSocket;
77
- /**
78
- * Create a new agent session
79
- */
80
- private createSession;
81
- /**
82
- * Run agent with a message
83
- */
84
- private runAgentMessage;
85
- /**
86
- * Get project information
87
- */
88
- private getProjectInfo;
89
- /**
90
- * Fallback HTML when no frontend build exists
91
- * Minimalistic terminal-style WebUI
92
- */
93
- private getFallbackHTML;
94
- }
95
- /**
96
- * Start WebUI server from CLI
97
- */
98
- export declare function startWebUI(options?: Partial<WebUIServerConfig>): Promise<WebUIServer>;
99
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/webui/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAYtD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,kBAAkB,CAAC;IACjC,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC;IACnB,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;GA8E5B,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAiB;gBAE3B,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAYnD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B;;OAEG;YACW,aAAa;IAyB3B;;OAEG;YACW,SAAS;IAyqBvB;;OAEG;YACW,WAAW;IAqCzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAkMvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;YACW,eAAe;IAkI7B;;OAEG;YACW,cAAc;IA2C5B;;;OAGG;IACH,OAAO,CAAC,eAAe;CAyzCxB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAI/F"}