@mrpatronz/nexusflow 2.9.0 → 2.10.1

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 (744) hide show
  1. package/README.md +177 -113
  2. package/desktop/assets/icon.png +0 -0
  3. package/dist/agent/AcpCliAdapter.d.ts +2 -0
  4. package/dist/agent/AcpCliAdapter.d.ts.map +1 -1
  5. package/dist/agent/AcpCliAdapter.js +50 -4
  6. package/dist/agent/AcpCliAdapter.js.map +1 -1
  7. package/dist/agent/AntigravityCliAdapter.d.ts +44 -2
  8. package/dist/agent/AntigravityCliAdapter.d.ts.map +1 -1
  9. package/dist/agent/AntigravityCliAdapter.js +363 -16
  10. package/dist/agent/AntigravityCliAdapter.js.map +1 -1
  11. package/dist/agent/ClaudeCliAdapter.d.ts +5 -2
  12. package/dist/agent/ClaudeCliAdapter.d.ts.map +1 -1
  13. package/dist/agent/ClaudeCliAdapter.js +43 -14
  14. package/dist/agent/ClaudeCliAdapter.js.map +1 -1
  15. package/dist/agent/ClaudeSdkAdapter.d.ts +1 -0
  16. package/dist/agent/ClaudeSdkAdapter.d.ts.map +1 -1
  17. package/dist/agent/ClaudeSdkAdapter.js +38 -11
  18. package/dist/agent/ClaudeSdkAdapter.js.map +1 -1
  19. package/dist/agent/CliAdapterBase.d.ts +2 -0
  20. package/dist/agent/CliAdapterBase.d.ts.map +1 -1
  21. package/dist/agent/CliAdapterBase.js +12 -1
  22. package/dist/agent/CliAdapterBase.js.map +1 -1
  23. package/dist/agent/CodexCliAdapter.d.ts +1 -1
  24. package/dist/agent/CodexCliAdapter.d.ts.map +1 -1
  25. package/dist/agent/CodexCliAdapter.js +5 -4
  26. package/dist/agent/CodexCliAdapter.js.map +1 -1
  27. package/dist/agent/CodexSdkAdapter.d.ts.map +1 -1
  28. package/dist/agent/CodexSdkAdapter.js +4 -1
  29. package/dist/agent/CodexSdkAdapter.js.map +1 -1
  30. package/dist/agent/CopilotAcpAdapter.d.ts.map +1 -1
  31. package/dist/agent/CopilotAcpAdapter.js +2 -2
  32. package/dist/agent/CopilotAcpAdapter.js.map +1 -1
  33. package/dist/agent/ProviderRegistry.d.ts +8 -1
  34. package/dist/agent/ProviderRegistry.d.ts.map +1 -1
  35. package/dist/agent/ProviderRegistry.js.map +1 -1
  36. package/dist/agent/TurnSessionManager.d.ts +65 -0
  37. package/dist/agent/TurnSessionManager.d.ts.map +1 -0
  38. package/dist/agent/TurnSessionManager.js +330 -0
  39. package/dist/agent/TurnSessionManager.js.map +1 -0
  40. package/dist/agent/adapters.d.ts.map +1 -1
  41. package/dist/agent/adapters.js +23 -6
  42. package/dist/agent/adapters.js.map +1 -1
  43. package/dist/agent/cliAvailability.d.ts +2 -5
  44. package/dist/agent/cliAvailability.d.ts.map +1 -1
  45. package/dist/agent/cliAvailability.js +18 -41
  46. package/dist/agent/cliAvailability.js.map +1 -1
  47. package/dist/agent/mcp-config.d.ts +0 -5
  48. package/dist/agent/mcp-config.d.ts.map +1 -1
  49. package/dist/agent/mcp-config.js +2 -1
  50. package/dist/agent/mcp-config.js.map +1 -1
  51. package/dist/agent/models.d.ts +13 -0
  52. package/dist/agent/models.d.ts.map +1 -1
  53. package/dist/agent/models.js +262 -8
  54. package/dist/agent/models.js.map +1 -1
  55. package/dist/agent/nativeTools.d.ts.map +1 -1
  56. package/dist/agent/nativeTools.js +1 -0
  57. package/dist/agent/nativeTools.js.map +1 -1
  58. package/dist/agent/orchestrator.d.ts.map +1 -1
  59. package/dist/agent/orchestrator.js +3 -2
  60. package/dist/agent/orchestrator.js.map +1 -1
  61. package/dist/agent/session.d.ts +6 -0
  62. package/dist/agent/session.d.ts.map +1 -1
  63. package/dist/agent/session.js +8 -0
  64. package/dist/agent/session.js.map +1 -1
  65. package/dist/analyzers/detect-deps.js +16 -1
  66. package/dist/analyzers/detect-deps.js.map +1 -1
  67. package/dist/analyzers/run-analyzer.d.ts.map +1 -1
  68. package/dist/analyzers/run-analyzer.js.map +1 -1
  69. package/dist/commands/adapter.d.ts.map +1 -1
  70. package/dist/commands/adapter.js +15 -14
  71. package/dist/commands/adapter.js.map +1 -1
  72. package/dist/commands/add-repo.d.ts.map +1 -1
  73. package/dist/commands/add-repo.js +6 -5
  74. package/dist/commands/add-repo.js.map +1 -1
  75. package/dist/commands/commit.js +6 -8
  76. package/dist/commands/commit.js.map +1 -1
  77. package/dist/commands/config.d.ts.map +1 -1
  78. package/dist/commands/config.js +2 -1
  79. package/dist/commands/config.js.map +1 -1
  80. package/dist/commands/create.d.ts +4 -4
  81. package/dist/commands/create.d.ts.map +1 -1
  82. package/dist/commands/create.js +48 -7
  83. package/dist/commands/create.js.map +1 -1
  84. package/dist/commands/desktop.d.ts +46 -3
  85. package/dist/commands/desktop.d.ts.map +1 -1
  86. package/dist/commands/desktop.js +343 -33
  87. package/dist/commands/desktop.js.map +1 -1
  88. package/dist/commands/diff.d.ts.map +1 -1
  89. package/dist/commands/diff.js +3 -2
  90. package/dist/commands/diff.js.map +1 -1
  91. package/dist/commands/doctor.d.ts.map +1 -1
  92. package/dist/commands/doctor.js +3 -2
  93. package/dist/commands/doctor.js.map +1 -1
  94. package/dist/commands/finish.js +2 -1
  95. package/dist/commands/finish.js.map +1 -1
  96. package/dist/commands/handoff.d.ts.map +1 -1
  97. package/dist/commands/handoff.js +12 -12
  98. package/dist/commands/handoff.js.map +1 -1
  99. package/dist/commands/init.d.ts +2 -2
  100. package/dist/commands/init.d.ts.map +1 -1
  101. package/dist/commands/init.js +8 -7
  102. package/dist/commands/init.js.map +1 -1
  103. package/dist/commands/isolate.d.ts.map +1 -1
  104. package/dist/commands/isolate.js +2 -1
  105. package/dist/commands/isolate.js.map +1 -1
  106. package/dist/commands/knowledge.d.ts.map +1 -1
  107. package/dist/commands/knowledge.js +3 -2
  108. package/dist/commands/knowledge.js.map +1 -1
  109. package/dist/commands/list.d.ts.map +1 -1
  110. package/dist/commands/list.js +3 -2
  111. package/dist/commands/list.js.map +1 -1
  112. package/dist/commands/logs.js +3 -3
  113. package/dist/commands/logs.js.map +1 -1
  114. package/dist/commands/mcp.d.ts +1 -2
  115. package/dist/commands/mcp.d.ts.map +1 -1
  116. package/dist/commands/mcp.js +19 -12
  117. package/dist/commands/mcp.js.map +1 -1
  118. package/dist/commands/migrate.d.ts +12 -0
  119. package/dist/commands/migrate.d.ts.map +1 -0
  120. package/dist/commands/migrate.js +128 -0
  121. package/dist/commands/migrate.js.map +1 -0
  122. package/dist/commands/open.d.ts.map +1 -1
  123. package/dist/commands/open.js +2 -1
  124. package/dist/commands/open.js.map +1 -1
  125. package/dist/commands/progress.d.ts.map +1 -1
  126. package/dist/commands/progress.js +2 -1
  127. package/dist/commands/progress.js.map +1 -1
  128. package/dist/commands/project.d.ts.map +1 -1
  129. package/dist/commands/project.js +7 -6
  130. package/dist/commands/project.js.map +1 -1
  131. package/dist/commands/refresh.d.ts.map +1 -1
  132. package/dist/commands/refresh.js +8 -11
  133. package/dist/commands/refresh.js.map +1 -1
  134. package/dist/commands/remove.d.ts.map +1 -1
  135. package/dist/commands/remove.js +2 -1
  136. package/dist/commands/remove.js.map +1 -1
  137. package/dist/commands/schedule.js +16 -18
  138. package/dist/commands/schedule.js.map +1 -1
  139. package/dist/commands/start.d.ts.map +1 -1
  140. package/dist/commands/start.js +9 -8
  141. package/dist/commands/start.js.map +1 -1
  142. package/dist/commands/status.d.ts.map +1 -1
  143. package/dist/commands/status.js +2 -1
  144. package/dist/commands/status.js.map +1 -1
  145. package/dist/commands/stop.d.ts.map +1 -1
  146. package/dist/commands/stop.js +2 -1
  147. package/dist/commands/stop.js.map +1 -1
  148. package/dist/commands/strategy.d.ts.map +1 -1
  149. package/dist/commands/strategy.js +6 -5
  150. package/dist/commands/strategy.js.map +1 -1
  151. package/dist/commands/sync.js +8 -10
  152. package/dist/commands/sync.js.map +1 -1
  153. package/dist/commands/tui.d.ts.map +1 -1
  154. package/dist/commands/tui.js +11 -10
  155. package/dist/commands/tui.js.map +1 -1
  156. package/dist/commands/ui.d.ts.map +1 -1
  157. package/dist/commands/ui.js +4 -3
  158. package/dist/commands/ui.js.map +1 -1
  159. package/dist/core/adapters/local-storage.d.ts +3 -1
  160. package/dist/core/adapters/local-storage.d.ts.map +1 -1
  161. package/dist/core/adapters/local-storage.js +62 -4
  162. package/dist/core/adapters/local-storage.js.map +1 -1
  163. package/dist/core/analysis-cache.d.ts.map +1 -1
  164. package/dist/core/analysis-cache.js +8 -7
  165. package/dist/core/analysis-cache.js.map +1 -1
  166. package/dist/core/brand-config.d.ts +261 -0
  167. package/dist/core/brand-config.d.ts.map +1 -0
  168. package/dist/core/brand-config.js +514 -0
  169. package/dist/core/brand-config.js.map +1 -0
  170. package/dist/core/config.d.ts +1 -1
  171. package/dist/core/config.d.ts.map +1 -1
  172. package/dist/core/config.js +18 -8
  173. package/dist/core/config.js.map +1 -1
  174. package/dist/core/constants.d.ts +88 -0
  175. package/dist/core/constants.d.ts.map +1 -0
  176. package/dist/core/constants.js +103 -0
  177. package/dist/core/constants.js.map +1 -0
  178. package/dist/core/doctor.d.ts.map +1 -1
  179. package/dist/core/doctor.js +11 -3
  180. package/dist/core/doctor.js.map +1 -1
  181. package/dist/core/generation-lock.d.ts +2 -2
  182. package/dist/core/generation-lock.d.ts.map +1 -1
  183. package/dist/core/generation-lock.js +49 -22
  184. package/dist/core/generation-lock.js.map +1 -1
  185. package/dist/core/knowledge.d.ts +19 -0
  186. package/dist/core/knowledge.d.ts.map +1 -1
  187. package/dist/core/knowledge.js +150 -24
  188. package/dist/core/knowledge.js.map +1 -1
  189. package/dist/core/migrate.d.ts +53 -0
  190. package/dist/core/migrate.d.ts.map +1 -0
  191. package/dist/core/migrate.js +607 -0
  192. package/dist/core/migrate.js.map +1 -0
  193. package/dist/core/new-repo.js +1 -1
  194. package/dist/core/new-repo.js.map +1 -1
  195. package/dist/core/projects.d.ts.map +1 -1
  196. package/dist/core/projects.js +13 -4
  197. package/dist/core/projects.js.map +1 -1
  198. package/dist/core/refresh.d.ts.map +1 -1
  199. package/dist/core/refresh.js +6 -4
  200. package/dist/core/refresh.js.map +1 -1
  201. package/dist/core/scheduler.d.ts +1 -1
  202. package/dist/core/scheduler.d.ts.map +1 -1
  203. package/dist/core/scheduler.js +11 -9
  204. package/dist/core/scheduler.js.map +1 -1
  205. package/dist/core/sync.js +1 -1
  206. package/dist/core/sync.js.map +1 -1
  207. package/dist/core/workspace-git.d.ts.map +1 -1
  208. package/dist/core/workspace-git.js +34 -10
  209. package/dist/core/workspace-git.js.map +1 -1
  210. package/dist/core/workspace-state.d.ts +4 -0
  211. package/dist/core/workspace-state.d.ts.map +1 -1
  212. package/dist/core/workspace-state.js +8 -8
  213. package/dist/core/workspace-state.js.map +1 -1
  214. package/dist/core/workspace.d.ts +13 -5
  215. package/dist/core/workspace.d.ts.map +1 -1
  216. package/dist/core/workspace.js +83 -34
  217. package/dist/core/workspace.js.map +1 -1
  218. package/dist/core/worktree.d.ts +10 -4
  219. package/dist/core/worktree.d.ts.map +1 -1
  220. package/dist/core/worktree.js +34 -47
  221. package/dist/core/worktree.js.map +1 -1
  222. package/dist/desktop-server.js +6 -3
  223. package/dist/desktop-server.js.map +1 -1
  224. package/dist/generators/base.d.ts.map +1 -1
  225. package/dist/generators/base.js +6 -5
  226. package/dist/generators/base.js.map +1 -1
  227. package/dist/generators/claude.d.ts.map +1 -1
  228. package/dist/generators/claude.js +2 -1
  229. package/dist/generators/claude.js.map +1 -1
  230. package/dist/generators/cursor.d.ts +1 -1
  231. package/dist/generators/cursor.d.ts.map +1 -1
  232. package/dist/generators/cursor.js +9 -4
  233. package/dist/generators/cursor.js.map +1 -1
  234. package/dist/generators/index.d.ts +4 -8
  235. package/dist/generators/index.d.ts.map +1 -1
  236. package/dist/generators/index.js +34 -69
  237. package/dist/generators/index.js.map +1 -1
  238. package/dist/generators/plan-generator.d.ts.map +1 -1
  239. package/dist/generators/plan-generator.js +20 -11
  240. package/dist/generators/plan-generator.js.map +1 -1
  241. package/dist/generators/skills-generator.d.ts.map +1 -1
  242. package/dist/generators/skills-generator.js +26 -11
  243. package/dist/generators/skills-generator.js.map +1 -1
  244. package/dist/gui/app_logo.png +0 -0
  245. package/dist/gui/assets/AgentsPage-DbivhmK0.js +3 -0
  246. package/dist/gui/assets/DashboardPage-D50Qrm3e.js +1 -0
  247. package/dist/gui/assets/GettingStartedPage-1MOTng3B.js +1 -0
  248. package/dist/gui/assets/NullStore-tdPen1kp.js +1 -0
  249. package/dist/gui/assets/ProjectsPage-srKgf7VN.js +1 -0
  250. package/dist/gui/assets/ScaffoldRepoInline-CP0yn5mw.js +1 -0
  251. package/dist/gui/assets/SettingsPage-DWmrLV8o.js +1 -0
  252. package/dist/gui/assets/SkillsPage-CKjTXdrd.js +6 -0
  253. package/dist/gui/assets/StartWorkPage-BCUnJ9k8.js +1 -0
  254. package/dist/gui/assets/{StrategiesPage-C36TZgDX.js → StrategiesPage-CdCbbIu-.js} +2 -2
  255. package/dist/gui/assets/WorkroomsPage-BcT-mGtT.js +4 -0
  256. package/dist/gui/assets/WorkspacesPage-CYFCm-7_.js +2 -0
  257. package/dist/gui/assets/alert-QnMXzwpU.js +1 -0
  258. package/dist/gui/assets/alert-dialog-u7qgb9Hq.js +1 -0
  259. package/dist/gui/assets/badge-DwXvB44H.js +1 -0
  260. package/dist/gui/assets/brand-hHByyyzq.js +1 -0
  261. package/dist/gui/assets/button-CREn1mup.js +1 -0
  262. package/dist/gui/assets/card-yrg6ov8B.js +1 -0
  263. package/dist/gui/assets/chevron-down-B_Mwbim8.js +1 -0
  264. package/dist/gui/assets/chunk-BV7QT456-DfUBKG-z.js +3 -0
  265. package/dist/gui/assets/{circle-plus-lmU1yNJd.js → circle-plus--zM3-3r3.js} +1 -1
  266. package/dist/gui/assets/{code-xml-jFAa3-TT.js → code-xml-DH-38Tt7.js} +1 -1
  267. package/dist/gui/assets/{git-branch-Cfj9D8yW.js → git-branch-Ce0I2663.js} +1 -1
  268. package/dist/gui/assets/index-3tD_IeyQ.js +55 -0
  269. package/dist/gui/assets/index-CK5YRfPV.css +2 -0
  270. package/dist/gui/assets/label-DC730X8s.js +1 -0
  271. package/dist/gui/assets/layers-j_brOuoa.js +1 -0
  272. package/dist/gui/assets/shield-check-Dd1Yv3l2.js +1 -0
  273. package/dist/gui/assets/square-check-big-BSIiYXPI.js +1 -0
  274. package/dist/gui/assets/tabs-BrHKp5bD.js +1 -0
  275. package/dist/gui/assets/{trash-2-CtR35_eF.js → trash-2-CMdv3eD3.js} +1 -1
  276. package/dist/gui/assets/useAriaLabelledBy-C4zV-1Ra.js +1 -0
  277. package/dist/gui/assets/{vsc-DFh0-53h.js → vsc-D80c4gBT.js} +1 -1
  278. package/dist/gui/favicon-aurora.svg +8 -0
  279. package/dist/gui/favicon.ico +0 -0
  280. package/dist/gui/favicon.svg +8 -1
  281. package/dist/gui/index.html +18 -12
  282. package/dist/harness/claude.d.ts.map +1 -1
  283. package/dist/harness/claude.js +97 -7
  284. package/dist/harness/claude.js.map +1 -1
  285. package/dist/harness/codex.d.ts +1 -0
  286. package/dist/harness/codex.d.ts.map +1 -1
  287. package/dist/harness/codex.js +51 -34
  288. package/dist/harness/codex.js.map +1 -1
  289. package/dist/index.js +57 -27
  290. package/dist/index.js.map +1 -1
  291. package/dist/mcp/server.d.ts +12 -1
  292. package/dist/mcp/server.d.ts.map +1 -1
  293. package/dist/mcp/server.js +24 -6
  294. package/dist/mcp/server.js.map +1 -1
  295. package/dist/mcp/tools.d.ts +4 -2
  296. package/dist/mcp/tools.d.ts.map +1 -1
  297. package/dist/mcp/tools.js +372 -17
  298. package/dist/mcp/tools.js.map +1 -1
  299. package/dist/orchestration/detect.d.ts.map +1 -1
  300. package/dist/orchestration/detect.js +12 -5
  301. package/dist/orchestration/detect.js.map +1 -1
  302. package/dist/orchestration/log-tail.js +17 -17
  303. package/dist/orchestration/log-tail.js.map +1 -1
  304. package/dist/orchestration/runner.d.ts +1 -1
  305. package/dist/orchestration/runner.d.ts.map +1 -1
  306. package/dist/orchestration/runner.js +41 -18
  307. package/dist/orchestration/runner.js.map +1 -1
  308. package/dist/resources/agents-catalog.d.ts +3 -1
  309. package/dist/resources/agents-catalog.d.ts.map +1 -1
  310. package/dist/resources/agents-catalog.js +12 -6
  311. package/dist/resources/agents-catalog.js.map +1 -1
  312. package/dist/resources/contracts.d.ts +7 -0
  313. package/dist/resources/contracts.d.ts.map +1 -1
  314. package/dist/resources/contracts.js +8 -1
  315. package/dist/resources/contracts.js.map +1 -1
  316. package/dist/resources/fs-safety.d.ts +7 -1
  317. package/dist/resources/fs-safety.d.ts.map +1 -1
  318. package/dist/resources/fs-safety.js +44 -1
  319. package/dist/resources/fs-safety.js.map +1 -1
  320. package/dist/resources/materializer.d.ts +1 -0
  321. package/dist/resources/materializer.d.ts.map +1 -1
  322. package/dist/resources/materializer.js +48 -17
  323. package/dist/resources/materializer.js.map +1 -1
  324. package/dist/resources/service.d.ts.map +1 -1
  325. package/dist/resources/service.js +3 -2
  326. package/dist/resources/service.js.map +1 -1
  327. package/dist/server.d.ts +2 -19
  328. package/dist/server.d.ts.map +1 -1
  329. package/dist/server.js +1294 -348
  330. package/dist/server.js.map +1 -1
  331. package/dist/static-resources/workflows/cost-aware-sol-luna.md +95 -0
  332. package/dist/storage/db.d.ts +94 -0
  333. package/dist/storage/db.d.ts.map +1 -0
  334. package/dist/storage/db.js +609 -0
  335. package/dist/storage/db.js.map +1 -0
  336. package/dist/types.d.ts +19 -0
  337. package/dist/types.d.ts.map +1 -1
  338. package/dist/utils/detect-ai.d.ts.map +1 -1
  339. package/dist/utils/detect-ai.js +1 -3
  340. package/dist/utils/detect-ai.js.map +1 -1
  341. package/dist/utils/multi-git.d.ts +0 -8
  342. package/dist/utils/multi-git.d.ts.map +1 -1
  343. package/dist/utils/multi-git.js +12 -4
  344. package/dist/utils/multi-git.js.map +1 -1
  345. package/dist/utils/pr.d.ts.map +1 -1
  346. package/dist/utils/pr.js +10 -5
  347. package/dist/utils/pr.js.map +1 -1
  348. package/dist/utils/repo-freshness.d.ts +106 -0
  349. package/dist/utils/repo-freshness.d.ts.map +1 -0
  350. package/dist/utils/repo-freshness.js +405 -0
  351. package/dist/utils/repo-freshness.js.map +1 -0
  352. package/dist/utils/resolve-workspace.d.ts +1 -1
  353. package/dist/utils/resolve-workspace.d.ts.map +1 -1
  354. package/dist/utils/resolve-workspace.js +10 -3
  355. package/dist/utils/resolve-workspace.js.map +1 -1
  356. package/dist/utils/session-finder.d.ts +12 -1
  357. package/dist/utils/session-finder.d.ts.map +1 -1
  358. package/dist/utils/session-finder.js +206 -8
  359. package/dist/utils/session-finder.js.map +1 -1
  360. package/dist/utils/skills-catalog.d.ts +5 -1
  361. package/dist/utils/skills-catalog.d.ts.map +1 -1
  362. package/dist/utils/skills-catalog.js +131 -75
  363. package/dist/utils/skills-catalog.js.map +1 -1
  364. package/dist/utils/terminal-launch.d.ts +8 -2
  365. package/dist/utils/terminal-launch.d.ts.map +1 -1
  366. package/dist/utils/terminal-launch.js +88 -19
  367. package/dist/utils/terminal-launch.js.map +1 -1
  368. package/dist/utils/update-check.d.ts +4 -1
  369. package/dist/utils/update-check.d.ts.map +1 -1
  370. package/dist/utils/update-check.js +66 -19
  371. package/dist/utils/update-check.js.map +1 -1
  372. package/dist/utils/user-paths.d.ts +23 -0
  373. package/dist/utils/user-paths.d.ts.map +1 -0
  374. package/dist/utils/user-paths.js +126 -0
  375. package/dist/utils/user-paths.js.map +1 -0
  376. package/dist/utils/workflows.d.ts +4 -1
  377. package/dist/utils/workflows.d.ts.map +1 -1
  378. package/dist/utils/workflows.js +51 -21
  379. package/dist/utils/workflows.js.map +1 -1
  380. package/dist/workrooms/client.d.ts +54 -0
  381. package/dist/workrooms/client.d.ts.map +1 -0
  382. package/dist/workrooms/client.js +191 -0
  383. package/dist/workrooms/client.js.map +1 -0
  384. package/dist/workrooms/contracts.d.ts +579 -0
  385. package/dist/workrooms/contracts.d.ts.map +1 -0
  386. package/dist/workrooms/contracts.js +231 -0
  387. package/dist/workrooms/contracts.js.map +1 -0
  388. package/dist/workrooms/crypto.d.ts +30 -0
  389. package/dist/workrooms/crypto.d.ts.map +1 -0
  390. package/dist/workrooms/crypto.js +72 -0
  391. package/dist/workrooms/crypto.js.map +1 -0
  392. package/dist/workrooms/host.d.ts +61 -0
  393. package/dist/workrooms/host.d.ts.map +1 -0
  394. package/dist/workrooms/host.js +747 -0
  395. package/dist/workrooms/host.js.map +1 -0
  396. package/dist/workrooms/local-resources.d.ts +26 -0
  397. package/dist/workrooms/local-resources.d.ts.map +1 -0
  398. package/dist/workrooms/local-resources.js +367 -0
  399. package/dist/workrooms/local-resources.js.map +1 -0
  400. package/dist/workrooms/manager.d.ts +228 -0
  401. package/dist/workrooms/manager.d.ts.map +1 -0
  402. package/dist/workrooms/manager.js +768 -0
  403. package/dist/workrooms/manager.js.map +1 -0
  404. package/dist/workrooms/milestones.d.ts +42 -0
  405. package/dist/workrooms/milestones.d.ts.map +1 -0
  406. package/dist/workrooms/milestones.js +94 -0
  407. package/dist/workrooms/milestones.js.map +1 -0
  408. package/dist/workrooms/portable.d.ts +21 -0
  409. package/dist/workrooms/portable.d.ts.map +1 -0
  410. package/dist/workrooms/portable.js +201 -0
  411. package/dist/workrooms/portable.js.map +1 -0
  412. package/dist/workrooms/resource-package.d.ts +7 -0
  413. package/dist/workrooms/resource-package.d.ts.map +1 -0
  414. package/dist/workrooms/resource-package.js +260 -0
  415. package/dist/workrooms/resource-package.js.map +1 -0
  416. package/dist/workrooms/service.d.ts +92 -0
  417. package/dist/workrooms/service.d.ts.map +1 -0
  418. package/dist/workrooms/service.js +788 -0
  419. package/dist/workrooms/service.js.map +1 -0
  420. package/dist/workrooms/sqlite-store.d.ts +31 -0
  421. package/dist/workrooms/sqlite-store.d.ts.map +1 -0
  422. package/dist/workrooms/sqlite-store.js +511 -0
  423. package/dist/workrooms/sqlite-store.js.map +1 -0
  424. package/dist/workrooms/store.d.ts +542 -0
  425. package/dist/workrooms/store.d.ts.map +1 -0
  426. package/dist/workrooms/store.js +71 -0
  427. package/dist/workrooms/store.js.map +1 -0
  428. package/package.json +21 -11
  429. package/resources/workflows/cost-aware-sol-luna.md +95 -0
  430. package/dist/agent/AcpCliAdapter.test.d.ts +0 -2
  431. package/dist/agent/AcpCliAdapter.test.d.ts.map +0 -1
  432. package/dist/agent/AcpCliAdapter.test.js +0 -235
  433. package/dist/agent/AcpCliAdapter.test.js.map +0 -1
  434. package/dist/agent/AntigravityCliAdapter.test.d.ts +0 -2
  435. package/dist/agent/AntigravityCliAdapter.test.d.ts.map +0 -1
  436. package/dist/agent/AntigravityCliAdapter.test.js +0 -222
  437. package/dist/agent/AntigravityCliAdapter.test.js.map +0 -1
  438. package/dist/agent/ClaudeCliAdapter.test.d.ts +0 -2
  439. package/dist/agent/ClaudeCliAdapter.test.d.ts.map +0 -1
  440. package/dist/agent/ClaudeCliAdapter.test.js +0 -320
  441. package/dist/agent/ClaudeCliAdapter.test.js.map +0 -1
  442. package/dist/agent/ClaudeSdkAdapter.test.d.ts +0 -2
  443. package/dist/agent/ClaudeSdkAdapter.test.d.ts.map +0 -1
  444. package/dist/agent/ClaudeSdkAdapter.test.js +0 -155
  445. package/dist/agent/ClaudeSdkAdapter.test.js.map +0 -1
  446. package/dist/agent/CliAdapterBase.test.d.ts +0 -2
  447. package/dist/agent/CliAdapterBase.test.d.ts.map +0 -1
  448. package/dist/agent/CliAdapterBase.test.js +0 -240
  449. package/dist/agent/CliAdapterBase.test.js.map +0 -1
  450. package/dist/agent/CodexCliAdapter.test.d.ts +0 -2
  451. package/dist/agent/CodexCliAdapter.test.d.ts.map +0 -1
  452. package/dist/agent/CodexCliAdapter.test.js +0 -331
  453. package/dist/agent/CodexCliAdapter.test.js.map +0 -1
  454. package/dist/agent/CodexSdkAdapter.test.d.ts +0 -2
  455. package/dist/agent/CodexSdkAdapter.test.d.ts.map +0 -1
  456. package/dist/agent/CodexSdkAdapter.test.js +0 -76
  457. package/dist/agent/CodexSdkAdapter.test.js.map +0 -1
  458. package/dist/agent/ProviderRegistry.test.d.ts +0 -2
  459. package/dist/agent/ProviderRegistry.test.d.ts.map +0 -1
  460. package/dist/agent/ProviderRegistry.test.js +0 -129
  461. package/dist/agent/ProviderRegistry.test.js.map +0 -1
  462. package/dist/agent/adapters.test.d.ts +0 -2
  463. package/dist/agent/adapters.test.d.ts.map +0 -1
  464. package/dist/agent/adapters.test.js +0 -71
  465. package/dist/agent/adapters.test.js.map +0 -1
  466. package/dist/agent/cliAvailability.test.d.ts +0 -2
  467. package/dist/agent/cliAvailability.test.d.ts.map +0 -1
  468. package/dist/agent/cliAvailability.test.js +0 -217
  469. package/dist/agent/cliAvailability.test.js.map +0 -1
  470. package/dist/agent/mcp-config.test.d.ts +0 -2
  471. package/dist/agent/mcp-config.test.d.ts.map +0 -1
  472. package/dist/agent/mcp-config.test.js +0 -22
  473. package/dist/agent/mcp-config.test.js.map +0 -1
  474. package/dist/agent/models.test.d.ts +0 -2
  475. package/dist/agent/models.test.d.ts.map +0 -1
  476. package/dist/agent/models.test.js +0 -40
  477. package/dist/agent/models.test.js.map +0 -1
  478. package/dist/agent/nativeAgent.test.d.ts +0 -2
  479. package/dist/agent/nativeAgent.test.d.ts.map +0 -1
  480. package/dist/agent/nativeAgent.test.js +0 -35
  481. package/dist/agent/nativeAgent.test.js.map +0 -1
  482. package/dist/agent/nativeTools.test.d.ts +0 -2
  483. package/dist/agent/nativeTools.test.d.ts.map +0 -1
  484. package/dist/agent/nativeTools.test.js +0 -67
  485. package/dist/agent/nativeTools.test.js.map +0 -1
  486. package/dist/agent/orchestrator.test.d.ts +0 -2
  487. package/dist/agent/orchestrator.test.d.ts.map +0 -1
  488. package/dist/agent/orchestrator.test.js +0 -284
  489. package/dist/agent/orchestrator.test.js.map +0 -1
  490. package/dist/agent/session.test.d.ts +0 -2
  491. package/dist/agent/session.test.d.ts.map +0 -1
  492. package/dist/agent/session.test.js +0 -74
  493. package/dist/agent/session.test.js.map +0 -1
  494. package/dist/agent/smoke-chat.test.d.ts +0 -2
  495. package/dist/agent/smoke-chat.test.d.ts.map +0 -1
  496. package/dist/agent/smoke-chat.test.js +0 -166
  497. package/dist/agent/smoke-chat.test.js.map +0 -1
  498. package/dist/commands/add-repo.test.d.ts +0 -2
  499. package/dist/commands/add-repo.test.d.ts.map +0 -1
  500. package/dist/commands/add-repo.test.js +0 -30
  501. package/dist/commands/add-repo.test.js.map +0 -1
  502. package/dist/commands/commands.test.d.ts +0 -2
  503. package/dist/commands/commands.test.d.ts.map +0 -1
  504. package/dist/commands/commands.test.js +0 -156
  505. package/dist/commands/commands.test.js.map +0 -1
  506. package/dist/commands/commit.test.d.ts +0 -2
  507. package/dist/commands/commit.test.d.ts.map +0 -1
  508. package/dist/commands/commit.test.js +0 -54
  509. package/dist/commands/commit.test.js.map +0 -1
  510. package/dist/commands/isolate.test.d.ts +0 -2
  511. package/dist/commands/isolate.test.d.ts.map +0 -1
  512. package/dist/commands/isolate.test.js +0 -59
  513. package/dist/commands/isolate.test.js.map +0 -1
  514. package/dist/commands/knowledge.test.d.ts +0 -2
  515. package/dist/commands/knowledge.test.d.ts.map +0 -1
  516. package/dist/commands/knowledge.test.js +0 -90
  517. package/dist/commands/knowledge.test.js.map +0 -1
  518. package/dist/commands/status.test.d.ts +0 -2
  519. package/dist/commands/status.test.d.ts.map +0 -1
  520. package/dist/commands/status.test.js +0 -31
  521. package/dist/commands/status.test.js.map +0 -1
  522. package/dist/commands/ui.test.d.ts +0 -2
  523. package/dist/commands/ui.test.d.ts.map +0 -1
  524. package/dist/commands/ui.test.js +0 -58
  525. package/dist/commands/ui.test.js.map +0 -1
  526. package/dist/core/adapters/storage.test.d.ts +0 -2
  527. package/dist/core/adapters/storage.test.d.ts.map +0 -1
  528. package/dist/core/adapters/storage.test.js +0 -65
  529. package/dist/core/adapters/storage.test.js.map +0 -1
  530. package/dist/core/analysis-cache.test.d.ts +0 -2
  531. package/dist/core/analysis-cache.test.d.ts.map +0 -1
  532. package/dist/core/analysis-cache.test.js +0 -163
  533. package/dist/core/analysis-cache.test.js.map +0 -1
  534. package/dist/core/config.test.d.ts +0 -2
  535. package/dist/core/config.test.d.ts.map +0 -1
  536. package/dist/core/config.test.js +0 -90
  537. package/dist/core/config.test.js.map +0 -1
  538. package/dist/core/finish.test.d.ts +0 -2
  539. package/dist/core/finish.test.d.ts.map +0 -1
  540. package/dist/core/finish.test.js +0 -110
  541. package/dist/core/finish.test.js.map +0 -1
  542. package/dist/core/generation-lock.test.d.ts +0 -2
  543. package/dist/core/generation-lock.test.d.ts.map +0 -1
  544. package/dist/core/generation-lock.test.js +0 -134
  545. package/dist/core/generation-lock.test.js.map +0 -1
  546. package/dist/core/isolate.test.d.ts +0 -2
  547. package/dist/core/isolate.test.d.ts.map +0 -1
  548. package/dist/core/isolate.test.js +0 -320
  549. package/dist/core/isolate.test.js.map +0 -1
  550. package/dist/core/knowledge.test.d.ts +0 -2
  551. package/dist/core/knowledge.test.d.ts.map +0 -1
  552. package/dist/core/knowledge.test.js +0 -287
  553. package/dist/core/knowledge.test.js.map +0 -1
  554. package/dist/core/locks.test.d.ts +0 -2
  555. package/dist/core/locks.test.d.ts.map +0 -1
  556. package/dist/core/locks.test.js +0 -143
  557. package/dist/core/locks.test.js.map +0 -1
  558. package/dist/core/new-repo.test.d.ts +0 -2
  559. package/dist/core/new-repo.test.d.ts.map +0 -1
  560. package/dist/core/new-repo.test.js +0 -78
  561. package/dist/core/new-repo.test.js.map +0 -1
  562. package/dist/core/progress.test.d.ts +0 -2
  563. package/dist/core/progress.test.d.ts.map +0 -1
  564. package/dist/core/progress.test.js +0 -52
  565. package/dist/core/progress.test.js.map +0 -1
  566. package/dist/core/projects.test.d.ts +0 -2
  567. package/dist/core/projects.test.d.ts.map +0 -1
  568. package/dist/core/projects.test.js +0 -165
  569. package/dist/core/projects.test.js.map +0 -1
  570. package/dist/core/refresh.test.d.ts +0 -2
  571. package/dist/core/refresh.test.d.ts.map +0 -1
  572. package/dist/core/refresh.test.js +0 -93
  573. package/dist/core/refresh.test.js.map +0 -1
  574. package/dist/core/scanner.test.d.ts +0 -2
  575. package/dist/core/scanner.test.d.ts.map +0 -1
  576. package/dist/core/scanner.test.js +0 -53
  577. package/dist/core/scanner.test.js.map +0 -1
  578. package/dist/core/scheduler.test.d.ts +0 -2
  579. package/dist/core/scheduler.test.d.ts.map +0 -1
  580. package/dist/core/scheduler.test.js +0 -169
  581. package/dist/core/scheduler.test.js.map +0 -1
  582. package/dist/core/sync.test.d.ts +0 -2
  583. package/dist/core/sync.test.d.ts.map +0 -1
  584. package/dist/core/sync.test.js +0 -128
  585. package/dist/core/sync.test.js.map +0 -1
  586. package/dist/core/workspace-git.test.d.ts +0 -2
  587. package/dist/core/workspace-git.test.d.ts.map +0 -1
  588. package/dist/core/workspace-git.test.js +0 -52
  589. package/dist/core/workspace-git.test.js.map +0 -1
  590. package/dist/core/workspace-skills-workflow.integration.test.d.ts +0 -2
  591. package/dist/core/workspace-skills-workflow.integration.test.d.ts.map +0 -1
  592. package/dist/core/workspace-skills-workflow.integration.test.js +0 -177
  593. package/dist/core/workspace-skills-workflow.integration.test.js.map +0 -1
  594. package/dist/core/workspace-state.test.d.ts +0 -2
  595. package/dist/core/workspace-state.test.d.ts.map +0 -1
  596. package/dist/core/workspace-state.test.js +0 -84
  597. package/dist/core/workspace-state.test.js.map +0 -1
  598. package/dist/core/workspace.create.test.d.ts +0 -2
  599. package/dist/core/workspace.create.test.d.ts.map +0 -1
  600. package/dist/core/workspace.create.test.js +0 -224
  601. package/dist/core/workspace.create.test.js.map +0 -1
  602. package/dist/core/workspace.test.d.ts +0 -2
  603. package/dist/core/workspace.test.d.ts.map +0 -1
  604. package/dist/core/workspace.test.js +0 -53
  605. package/dist/core/workspace.test.js.map +0 -1
  606. package/dist/core/worktree.test.d.ts +0 -2
  607. package/dist/core/worktree.test.d.ts.map +0 -1
  608. package/dist/core/worktree.test.js +0 -153
  609. package/dist/core/worktree.test.js.map +0 -1
  610. package/dist/generators/base.test.d.ts +0 -2
  611. package/dist/generators/base.test.d.ts.map +0 -1
  612. package/dist/generators/base.test.js +0 -287
  613. package/dist/generators/base.test.js.map +0 -1
  614. package/dist/generators/knowledge-migration.test.d.ts +0 -2
  615. package/dist/generators/knowledge-migration.test.d.ts.map +0 -1
  616. package/dist/generators/knowledge-migration.test.js +0 -22
  617. package/dist/generators/knowledge-migration.test.js.map +0 -1
  618. package/dist/generators/plan-generator.test.d.ts +0 -2
  619. package/dist/generators/plan-generator.test.d.ts.map +0 -1
  620. package/dist/generators/plan-generator.test.js +0 -220
  621. package/dist/generators/plan-generator.test.js.map +0 -1
  622. package/dist/generators/skills-generator.test.d.ts +0 -2
  623. package/dist/generators/skills-generator.test.d.ts.map +0 -1
  624. package/dist/generators/skills-generator.test.js +0 -79
  625. package/dist/generators/skills-generator.test.js.map +0 -1
  626. package/dist/gui/assets/AgentsPage-B4fx43rd.js +0 -3
  627. package/dist/gui/assets/CSPContext-DBUu9tE0.js +0 -1
  628. package/dist/gui/assets/DashboardPage-DH52G8IG.js +0 -1
  629. package/dist/gui/assets/GettingStartedPage-BlTrQhvi.js +0 -1
  630. package/dist/gui/assets/ProjectsPage-BPVSLPXv.js +0 -1
  631. package/dist/gui/assets/ScaffoldRepoInline-ywcpq9PX.js +0 -1
  632. package/dist/gui/assets/SettingsPage-RQr8SalV.js +0 -1
  633. package/dist/gui/assets/SkillsPage-CYoSRrwx.js +0 -6
  634. package/dist/gui/assets/StartWorkPage-DBKK4lFi.js +0 -1
  635. package/dist/gui/assets/WorkspacesPage-DxEONvSq.js +0 -6
  636. package/dist/gui/assets/alert-dialog-CQAX2yRx.js +0 -1
  637. package/dist/gui/assets/badge-CAohJGj6.js +0 -1
  638. package/dist/gui/assets/bot-C2HWrAft.js +0 -1
  639. package/dist/gui/assets/button-BDDZnIHx.js +0 -1
  640. package/dist/gui/assets/card-BKXzd_5L.js +0 -1
  641. package/dist/gui/assets/chevron-down-qTL8HPug.js +0 -1
  642. package/dist/gui/assets/cpu-Cdwd84Jz.js +0 -1
  643. package/dist/gui/assets/empty-BdlgbifD.js +0 -1
  644. package/dist/gui/assets/index-BF6pre6G.css +0 -2
  645. package/dist/gui/assets/index-C_rwnBzF.js +0 -52
  646. package/dist/gui/assets/isElementDisabled-uy_EOitH.js +0 -1
  647. package/dist/gui/assets/label-CG5exjag.js +0 -1
  648. package/dist/gui/assets/square-DlIYnlSq.js +0 -1
  649. package/dist/gui/assets/textarea-ByfoCb54.js +0 -1
  650. package/dist/gui/assets/useAriaLabelledBy-ClesgjMe.js +0 -1
  651. package/dist/gui/assets/useValueChanged-DeYvGnKs.js +0 -1
  652. package/dist/gui/assets/zap-CWG_Lvki.js +0 -1
  653. package/dist/harness/contract.test.d.ts +0 -2
  654. package/dist/harness/contract.test.d.ts.map +0 -1
  655. package/dist/harness/contract.test.js +0 -426
  656. package/dist/harness/contract.test.js.map +0 -1
  657. package/dist/harness/harness.test.d.ts +0 -2
  658. package/dist/harness/harness.test.d.ts.map +0 -1
  659. package/dist/harness/harness.test.js +0 -215
  660. package/dist/harness/harness.test.js.map +0 -1
  661. package/dist/mcp/tools.test.d.ts +0 -2
  662. package/dist/mcp/tools.test.d.ts.map +0 -1
  663. package/dist/mcp/tools.test.js +0 -194
  664. package/dist/mcp/tools.test.js.map +0 -1
  665. package/dist/orchestration/log-tail.test.d.ts +0 -2
  666. package/dist/orchestration/log-tail.test.d.ts.map +0 -1
  667. package/dist/orchestration/log-tail.test.js +0 -72
  668. package/dist/orchestration/log-tail.test.js.map +0 -1
  669. package/dist/orchestration/orchestrator.test.d.ts +0 -2
  670. package/dist/orchestration/orchestrator.test.d.ts.map +0 -1
  671. package/dist/orchestration/orchestrator.test.js +0 -85
  672. package/dist/orchestration/orchestrator.test.js.map +0 -1
  673. package/dist/orchestration/runner.test.d.ts +0 -2
  674. package/dist/orchestration/runner.test.d.ts.map +0 -1
  675. package/dist/orchestration/runner.test.js +0 -233
  676. package/dist/orchestration/runner.test.js.map +0 -1
  677. package/dist/resources/agents-catalog.test.d.ts +0 -2
  678. package/dist/resources/agents-catalog.test.d.ts.map +0 -1
  679. package/dist/resources/agents-catalog.test.js +0 -50
  680. package/dist/resources/agents-catalog.test.js.map +0 -1
  681. package/dist/resources/codex-agent.test.d.ts +0 -2
  682. package/dist/resources/codex-agent.test.d.ts.map +0 -1
  683. package/dist/resources/codex-agent.test.js +0 -27
  684. package/dist/resources/codex-agent.test.js.map +0 -1
  685. package/dist/resources/materializer.test.d.ts +0 -2
  686. package/dist/resources/materializer.test.d.ts.map +0 -1
  687. package/dist/resources/materializer.test.js +0 -149
  688. package/dist/resources/materializer.test.js.map +0 -1
  689. package/dist/resources/service.test.d.ts +0 -2
  690. package/dist/resources/service.test.d.ts.map +0 -1
  691. package/dist/resources/service.test.js +0 -58
  692. package/dist/resources/service.test.js.map +0 -1
  693. package/dist/server.test.d.ts +0 -2
  694. package/dist/server.test.d.ts.map +0 -1
  695. package/dist/server.test.js +0 -1697
  696. package/dist/server.test.js.map +0 -1
  697. package/dist/utils/detect-ai.test.d.ts +0 -2
  698. package/dist/utils/detect-ai.test.d.ts.map +0 -1
  699. package/dist/utils/detect-ai.test.js +0 -70
  700. package/dist/utils/detect-ai.test.js.map +0 -1
  701. package/dist/utils/detect-editors.test.d.ts +0 -2
  702. package/dist/utils/detect-editors.test.d.ts.map +0 -1
  703. package/dist/utils/detect-editors.test.js +0 -85
  704. package/dist/utils/detect-editors.test.js.map +0 -1
  705. package/dist/utils/git.test.d.ts +0 -2
  706. package/dist/utils/git.test.d.ts.map +0 -1
  707. package/dist/utils/git.test.js +0 -125
  708. package/dist/utils/git.test.js.map +0 -1
  709. package/dist/utils/multi-git.test.d.ts +0 -2
  710. package/dist/utils/multi-git.test.d.ts.map +0 -1
  711. package/dist/utils/multi-git.test.js +0 -330
  712. package/dist/utils/multi-git.test.js.map +0 -1
  713. package/dist/utils/pr.test.d.ts +0 -2
  714. package/dist/utils/pr.test.d.ts.map +0 -1
  715. package/dist/utils/pr.test.js +0 -47
  716. package/dist/utils/pr.test.js.map +0 -1
  717. package/dist/utils/session-finder.test.d.ts +0 -2
  718. package/dist/utils/session-finder.test.d.ts.map +0 -1
  719. package/dist/utils/session-finder.test.js +0 -304
  720. package/dist/utils/session-finder.test.js.map +0 -1
  721. package/dist/utils/skills-catalog.test.d.ts +0 -2
  722. package/dist/utils/skills-catalog.test.d.ts.map +0 -1
  723. package/dist/utils/skills-catalog.test.js +0 -281
  724. package/dist/utils/skills-catalog.test.js.map +0 -1
  725. package/dist/utils/system-scanner.test.d.ts +0 -2
  726. package/dist/utils/system-scanner.test.d.ts.map +0 -1
  727. package/dist/utils/system-scanner.test.js +0 -73
  728. package/dist/utils/system-scanner.test.js.map +0 -1
  729. package/dist/utils/terminal-launch.test.d.ts +0 -2
  730. package/dist/utils/terminal-launch.test.d.ts.map +0 -1
  731. package/dist/utils/terminal-launch.test.js +0 -117
  732. package/dist/utils/terminal-launch.test.js.map +0 -1
  733. package/dist/utils/update-check.test.d.ts +0 -2
  734. package/dist/utils/update-check.test.d.ts.map +0 -1
  735. package/dist/utils/update-check.test.js +0 -30
  736. package/dist/utils/update-check.test.js.map +0 -1
  737. package/dist/utils/workflows.test.d.ts +0 -2
  738. package/dist/utils/workflows.test.d.ts.map +0 -1
  739. package/dist/utils/workflows.test.js +0 -86
  740. package/dist/utils/workflows.test.js.map +0 -1
  741. package/dist/utils/workspace-launch.test.d.ts +0 -2
  742. package/dist/utils/workspace-launch.test.d.ts.map +0 -1
  743. package/dist/utils/workspace-launch.test.js +0 -128
  744. package/dist/utils/workspace-launch.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-catalog.test.js","sourceRoot":"","sources":["../../src/utils/skills-catalog.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=system-scanner.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-scanner.test.d.ts","sourceRoot":"","sources":["../../src/utils/system-scanner.test.ts"],"names":[],"mappings":""}
@@ -1,73 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { execa } from 'execa';
3
- import * as os from 'node:os';
4
- import { scanSystemSpecs } from './system-scanner.js';
5
- vi.mock('execa');
6
- vi.mock('node:os', async () => {
7
- const actual = await vi.importActual('node:os');
8
- return {
9
- ...actual,
10
- totalmem: vi.fn(),
11
- platform: vi.fn(),
12
- };
13
- });
14
- describe('scanSystemSpecs', () => {
15
- beforeEach(() => {
16
- vi.clearAllMocks();
17
- });
18
- it('should recommend 7b on windows with 16GB RAM even if no GPU detected', async () => {
19
- vi.mocked(os.totalmem).mockReturnValue(16 * 1024 * 1024 * 1024);
20
- vi.mocked(os.platform).mockReturnValue('win32');
21
- vi.mocked(execa).mockResolvedValue({ stdout: '' });
22
- const specs = await scanSystemSpecs();
23
- expect(specs.totalRamGb).toBe(16);
24
- expect(specs.gpuName).toBe('Unknown/Integrated');
25
- expect(specs.hasHardwareAcceleration).toBe(false);
26
- expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
27
- });
28
- it('should recommend 1.5b on windows with 8GB RAM and no GPU', async () => {
29
- vi.mocked(os.totalmem).mockReturnValue(8 * 1024 * 1024 * 1024);
30
- vi.mocked(os.platform).mockReturnValue('win32');
31
- vi.mocked(execa).mockResolvedValue({ stdout: '' });
32
- const specs = await scanSystemSpecs();
33
- expect(specs.totalRamGb).toBe(8);
34
- expect(specs.recommendedModel).toBe('qwen2.5-coder:1.5b');
35
- });
36
- it('should detect Nvidia GPU on Windows and recommend 7b with 12GB RAM', async () => {
37
- vi.mocked(os.totalmem).mockReturnValue(12 * 1024 * 1024 * 1024);
38
- vi.mocked(os.platform).mockReturnValue('win32');
39
- vi.mocked(execa).mockResolvedValue({
40
- stdout: 'NVIDIA GeForce RTX 4070 Laptop GPU\r\n'
41
- });
42
- const specs = await scanSystemSpecs();
43
- expect(specs.totalRamGb).toBe(12);
44
- expect(specs.gpuName).toBe('NVIDIA GeForce RTX 4070 Laptop GPU');
45
- expect(specs.hasHardwareAcceleration).toBe(true);
46
- expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
47
- });
48
- it('should detect Apple Silicon on Darwin and recommend 7b with 12GB RAM', async () => {
49
- vi.mocked(os.totalmem).mockReturnValue(12 * 1024 * 1024 * 1024);
50
- vi.mocked(os.platform).mockReturnValue('darwin');
51
- vi.mocked(execa).mockResolvedValue({
52
- stdout: 'Apple M3 Max\n'
53
- });
54
- const specs = await scanSystemSpecs();
55
- expect(specs.totalRamGb).toBe(12);
56
- expect(specs.gpuName).toBe('Apple Silicon (Integrated)');
57
- expect(specs.hasHardwareAcceleration).toBe(true);
58
- expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
59
- });
60
- it('should detect Linux GPU and recommend 7b with 12GB RAM', async () => {
61
- vi.mocked(os.totalmem).mockReturnValue(12 * 1024 * 1024 * 1024);
62
- vi.mocked(os.platform).mockReturnValue('linux');
63
- vi.mocked(execa).mockResolvedValue({
64
- stdout: '01:00.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070 Ti] (rev a1)\n'
65
- });
66
- const specs = await scanSystemSpecs();
67
- expect(specs.totalRamGb).toBe(12);
68
- expect(specs.gpuName).toBe('NVIDIA Corporation AD104 [GeForce RTX 4070 Ti] (rev a1)');
69
- expect(specs.hasHardwareAcceleration).toBe(true);
70
- expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
71
- });
72
- });
73
- //# sourceMappingURL=system-scanner.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-scanner.test.js","sourceRoot":"","sources":["../../src/utils/system-scanner.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=terminal-launch.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-launch.test.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-launch.test.ts"],"names":[],"mappings":""}
@@ -1,117 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { buildHarnessCliCommand, launchWorkspaceTerminal, escapePsSingleQuote, escapePosixSingleQuote, } from './terminal-launch.js';
3
- import { execa, execaSync } from 'execa';
4
- vi.mock('execa');
5
- describe('terminal-launch utility', () => {
6
- beforeEach(() => {
7
- vi.resetAllMocks();
8
- });
9
- describe('escaping helpers', () => {
10
- it('escapes single quotes for PowerShell', () => {
11
- expect(escapePsSingleQuote("C:\\Bob's Workspace\\repo")).toBe("C:\\Bob''s Workspace\\repo");
12
- });
13
- it('escapes single quotes for POSIX shell', () => {
14
- expect(escapePosixSingleQuote("/home/bob's-workspace/repo")).toBe("/home/bob'\\''s-workspace/repo");
15
- });
16
- });
17
- describe('buildHarnessCliCommand', () => {
18
- it('builds start commands for known assistants', () => {
19
- expect(buildHarnessCliCommand('antigravity')).toBe('agy');
20
- expect(buildHarnessCliCommand('claude')).toBe('claude');
21
- expect(buildHarnessCliCommand('codex')).toBe('codex');
22
- expect(buildHarnessCliCommand('copilot')).toBe('copilot');
23
- expect(buildHarnessCliCommand('cursor')).toBe('cursor-agent');
24
- });
25
- it('builds resume commands when a valid UUID is provided', () => {
26
- const uuid = '3a14e9f7-628b-4d51-87b4-1065a7df4921';
27
- expect(buildHarnessCliCommand('antigravity', uuid)).toBe(`agy --conversation ${uuid}`);
28
- expect(buildHarnessCliCommand('claude', uuid)).toBe(`claude --resume ${uuid}`);
29
- expect(buildHarnessCliCommand('codex', uuid)).toBe(`codex resume ${uuid}`);
30
- expect(buildHarnessCliCommand('copilot', uuid)).toBe(`copilot --resume ${uuid}`);
31
- expect(buildHarnessCliCommand('cursor', uuid)).toBe(`cursor-agent --resume ${uuid}`);
32
- });
33
- it('throws on invalid session UUID', () => {
34
- expect(() => buildHarnessCliCommand('claude', 'invalid-id')).toThrow('Invalid session UUID format');
35
- });
36
- it('throws on unsupported assistant', () => {
37
- expect(() => buildHarnessCliCommand('unsupported-ai')).toThrow('Unsupported assistant');
38
- });
39
- });
40
- describe('launchWorkspaceTerminal', () => {
41
- it('throws on relative workspace path', async () => {
42
- await expect(launchWorkspaceTerminal('relative/path')).rejects.toThrow('must be an absolute directory');
43
- });
44
- it('launches PowerShell via Start-Process when available on Windows', async () => {
45
- vi.mocked(execaSync).mockImplementation((_cmd, args) => {
46
- if (Array.isArray(args) && args[0] === 'pwsh.exe')
47
- return { exitCode: 0 };
48
- return { exitCode: 1 };
49
- });
50
- vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
51
- const res = await launchWorkspaceTerminal("C:\\workspaces\\bob's-app", {
52
- assistant: 'antigravity',
53
- sessionId: '3a14e9f7-628b-4d51-87b4-1065a7df4921',
54
- }, 'win32');
55
- expect(res.success).toBe(true);
56
- expect(res.command).toBe('agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921');
57
- const expectedScript = "$host.UI.RawUI.WindowTitle = 'NexusFlow Terminal'; $wshell = New-Object -ComObject Wscript.Shell; try { $wshell.AppActivate($PID) } catch {}; Set-Location -LiteralPath 'C:\\workspaces\\bob''s-app'; agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921";
58
- const expectedEncoded = Buffer.from(expectedScript, 'utf16le').toString('base64');
59
- expect(execa).toHaveBeenCalledWith('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', `Start-Process -FilePath 'pwsh.exe' -ArgumentList '-NoExit', '-EncodedCommand', '${expectedEncoded}' -WorkingDirectory 'C:\\workspaces\\bob''s-app'`], { reject: false, stdio: 'ignore' });
60
- });
61
- it('falls back to cmd.exe start when Start-Process fails on Windows', async () => {
62
- const mockUnref = vi.fn();
63
- vi.mocked(execaSync).mockImplementation((_cmd, args) => {
64
- if (Array.isArray(args) && args[0] === 'pwsh.exe')
65
- return { exitCode: 0 };
66
- return { exitCode: 1 };
67
- });
68
- vi.mocked(execa).mockImplementation((cmd) => {
69
- if (cmd === 'powershell.exe') {
70
- return Promise.resolve({ exitCode: 1 });
71
- }
72
- return { unref: mockUnref, catch: vi.fn() };
73
- });
74
- const res = await launchWorkspaceTerminal("C:\\workspaces\\bob's-app", {
75
- assistant: 'antigravity',
76
- sessionId: '3a14e9f7-628b-4d51-87b4-1065a7df4921',
77
- }, 'win32');
78
- expect(res.success).toBe(true);
79
- expect(res.command).toBe('agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921');
80
- const expectedScript = "$host.UI.RawUI.WindowTitle = 'NexusFlow Terminal'; $wshell = New-Object -ComObject Wscript.Shell; try { $wshell.AppActivate($PID) } catch {}; Set-Location -LiteralPath 'C:\\workspaces\\bob''s-app'; agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921";
81
- const expectedEncoded = Buffer.from(expectedScript, 'utf16le').toString('base64');
82
- expect(execa).toHaveBeenCalledWith('cmd.exe', ['/c', 'start', '""', 'pwsh.exe', '-NoExit', '-EncodedCommand', expectedEncoded], expect.objectContaining({ detached: true, shell: false, windowsHide: false }));
83
- expect(mockUnref).toHaveBeenCalled();
84
- });
85
- it('launches Terminal.app on macOS via osascript', async () => {
86
- const mockUnref = vi.fn();
87
- vi.mocked(execa).mockReturnValue({ unref: mockUnref, catch: vi.fn() });
88
- const res = await launchWorkspaceTerminal('/Users/user/workspace', {
89
- assistant: 'codex',
90
- sessionId: '3a14e9f7-628b-4d51-87b4-1065a7df4921',
91
- }, 'darwin');
92
- expect(res.success).toBe(true);
93
- expect(res.command).toBe('codex resume 3a14e9f7-628b-4d51-87b4-1065a7df4921');
94
- expect(execa).toHaveBeenCalledWith('/usr/bin/osascript', ['-e', expect.stringContaining('tell application "Terminal"')], expect.objectContaining({ detached: true, stdio: 'ignore' }));
95
- expect(mockUnref).toHaveBeenCalled();
96
- });
97
- it('searches and launches terminal emulator on Linux', async () => {
98
- const mockUnref = vi.fn();
99
- vi.mocked(execaSync).mockImplementation((_cmd, args) => {
100
- if (Array.isArray(args) && (args[0] === 'gnome-terminal' || args[0] === 'konsole'))
101
- return { exitCode: 1 };
102
- if (Array.isArray(args) && args[0] === 'xfce4-terminal')
103
- return { exitCode: 0 };
104
- return { exitCode: 1 };
105
- });
106
- vi.mocked(execa).mockReturnValue({ unref: mockUnref, catch: vi.fn() });
107
- const res = await launchWorkspaceTerminal('/home/user/workspace', {
108
- assistant: 'claude',
109
- }, 'linux');
110
- expect(res.success).toBe(true);
111
- expect(res.command).toBe('claude');
112
- expect(execa).toHaveBeenCalledWith('xfce4-terminal', ['--working-directory', '/home/user/workspace', '-e', 'bash -c "claude; exec bash"'], expect.objectContaining({ detached: true, stdio: 'ignore' }));
113
- expect(mockUnref).toHaveBeenCalled();
114
- });
115
- });
116
- });
117
- //# sourceMappingURL=terminal-launch.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-launch.test.js","sourceRoot":"","sources":["../../src/utils/terminal-launch.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=update-check.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-check.test.d.ts","sourceRoot":"","sources":["../../src/utils/update-check.test.ts"],"names":[],"mappings":""}
@@ -1,30 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { isNewerVersion } from './update-check.js';
3
- describe('isNewerVersion', () => {
4
- it('detects higher major/minor/patch', () => {
5
- expect(isNewerVersion('1.8.0', '2.0.0')).toBe(true);
6
- expect(isNewerVersion('1.8.0', '1.9.0')).toBe(true);
7
- expect(isNewerVersion('1.8.0', '1.8.1')).toBe(true);
8
- });
9
- it('returns false when equal or older', () => {
10
- expect(isNewerVersion('1.8.0', '1.8.0')).toBe(false);
11
- expect(isNewerVersion('1.9.0', '1.8.0')).toBe(false);
12
- expect(isNewerVersion('2.0.0', '1.9.9')).toBe(false);
13
- });
14
- it('tolerates a leading v and a prerelease/build suffix instead of returning NaN-false', () => {
15
- // Previously `.map(Number)` turned '0-rc' into NaN and reported no update.
16
- expect(isNewerVersion('1.8.0', 'v1.9.0')).toBe(true);
17
- expect(isNewerVersion('1.8.0', '1.9.0-rc.1')).toBe(true);
18
- expect(isNewerVersion('1.8.0-beta.2', '1.8.0-beta.3')).toBe(false); // same numeric core
19
- });
20
- it('treats a stable release as newer than a prerelease of the same core', () => {
21
- expect(isNewerVersion('1.8.0-rc.1', '1.8.0')).toBe(true);
22
- expect(isNewerVersion('1.8.0', '1.8.0-rc.1')).toBe(false);
23
- });
24
- it('safely handles empty, 0.0.0, or unknown fallback version strings', () => {
25
- expect(isNewerVersion('0.0.0', '2.5.2')).toBe(false);
26
- expect(isNewerVersion('unknown', '2.5.2')).toBe(false);
27
- expect(isNewerVersion('', '2.5.2')).toBe(false);
28
- });
29
- });
30
- //# sourceMappingURL=update-check.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-check.test.js","sourceRoot":"","sources":["../../src/utils/update-check.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC5F,2EAA2E;QAC3E,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=workflows.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflows.test.d.ts","sourceRoot":"","sources":["../../src/utils/workflows.test.ts"],"names":[],"mappings":""}
@@ -1,86 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import * as fs from 'node:fs/promises';
3
- import * as path from 'node:path';
4
- import { getWorkflowTemplates, saveWorkflowTemplate, deleteWorkflowTemplate } from './workflows.js';
5
- vi.mock('node:fs/promises');
6
- vi.mock('node:os', () => ({
7
- homedir: () => '/mock/home'
8
- }));
9
- describe('Workflows Utility Unit Tests', () => {
10
- beforeEach(() => {
11
- vi.clearAllMocks();
12
- });
13
- describe('saveWorkflowTemplate', () => {
14
- it('should save a template and extract its name from H1 header', async () => {
15
- vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
16
- vi.spyOn(fs, 'writeFile').mockResolvedValue(undefined);
17
- const result = await saveWorkflowTemplate('My Temp Name', '# Final Strategy Name\n\nStrategy Content');
18
- expect(fs.mkdir).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows'), { recursive: true });
19
- expect(fs.writeFile).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'final-strategy-name.md'), '# Final Strategy Name\n\nStrategy Content', 'utf-8');
20
- expect(result).toEqual({
21
- id: 'final-strategy-name',
22
- name: 'Final Strategy Name',
23
- description: 'Strategy Content',
24
- content: '# Final Strategy Name\n\nStrategy Content',
25
- custom: true
26
- });
27
- });
28
- it('should add H1 header if not present', async () => {
29
- vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
30
- vi.spyOn(fs, 'writeFile').mockResolvedValue(undefined);
31
- const result = await saveWorkflowTemplate('My Temp Name', 'Strategy Content');
32
- expect(fs.writeFile).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'my-temp-name.md'), '# My Temp Name\n\nStrategy Content', 'utf-8');
33
- expect(result.id).toBe('my-temp-name');
34
- });
35
- it('should clean up originalId file if template is renamed', async () => {
36
- vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
37
- vi.spyOn(fs, 'writeFile').mockResolvedValue(undefined);
38
- vi.spyOn(fs, 'unlink').mockResolvedValue(undefined);
39
- const result = await saveWorkflowTemplate('New Name', '# New Name\n\nContent', 'old-id');
40
- expect(fs.unlink).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'old-id.md'));
41
- expect(result.id).toBe('new-name');
42
- });
43
- });
44
- describe('deleteWorkflowTemplate', () => {
45
- it('should delete template file', async () => {
46
- vi.spyOn(fs, 'unlink').mockResolvedValue(undefined);
47
- await deleteWorkflowTemplate('some-id');
48
- expect(fs.unlink).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'some-id.md'));
49
- });
50
- it('should ignore ENOENT error', async () => {
51
- const error = new Error('File not found');
52
- error.code = 'ENOENT';
53
- vi.spyOn(fs, 'unlink').mockRejectedValue(error);
54
- await expect(deleteWorkflowTemplate('some-id')).resolves.toBeUndefined();
55
- });
56
- });
57
- describe('getWorkflowTemplates', () => {
58
- it('should load and merge built-in and user templates', async () => {
59
- vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
60
- // Mock readdir to return files
61
- vi.spyOn(fs, 'readdir').mockImplementation(async (dirPath) => {
62
- if (dirPath.toString().includes('.nexusflow')) {
63
- return ['custom-one.md'];
64
- }
65
- return ['solo-developer.md'];
66
- });
67
- // Mock readFile
68
- vi.spyOn(fs, 'readFile').mockImplementation(async (filePath) => {
69
- if (filePath.toString().includes('custom-one.md')) {
70
- return '# Custom One\n\nDescription content.';
71
- }
72
- return '# Solo Developer\n\nOverride content.';
73
- });
74
- const templates = await getWorkflowTemplates();
75
- expect(templates.length).toBe(2);
76
- expect(templates.find(t => t.id === 'custom-one')).toEqual({
77
- id: 'custom-one',
78
- name: 'Custom One',
79
- description: 'Description content.',
80
- content: '# Custom One\n\nDescription content.',
81
- custom: true
82
- });
83
- });
84
- });
85
- });
86
- //# sourceMappingURL=workflows.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflows.test.js","sourceRoot":"","sources":["../../src/utils/workflows.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=workspace-launch.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-launch.test.d.ts","sourceRoot":"","sources":["../../src/utils/workspace-launch.test.ts"],"names":[],"mappings":""}
@@ -1,128 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { execa } from 'execa';
3
- import * as path from 'node:path';
4
- import { buildWorkspaceLaunchPrompt, detectWorkspaceLaunchTargets, hasDesktopProtocol, launchTargetIdForEditorCommand, launchWorkspaceTarget, openDesktopUri, } from './workspace-launch.js';
5
- vi.mock('execa');
6
- vi.mock('./detect-editors.js', () => ({
7
- detectEditors: vi.fn().mockResolvedValue([
8
- { name: 'VS Code', command: 'code', detected: true },
9
- { name: 'VS Code Insiders', command: 'code-insiders', detected: false },
10
- ]),
11
- }));
12
- vi.mock('./open-editor.js', () => ({ openInEditor: vi.fn().mockResolvedValue(undefined) }));
13
- describe('workspace launch catalog', () => {
14
- beforeEach(() => vi.clearAllMocks());
15
- it('detects a Windows protocol association without using a shell', async () => {
16
- vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
17
- await expect(hasDesktopProtocol({ scheme: 'codex', macAppNames: [] }, 'win32')).resolves.toBe(true);
18
- expect(execa).toHaveBeenCalledWith('reg.exe', ['query', 'HKCU\\Software\\Classes\\codex'], { reject: false, shell: false });
19
- });
20
- it('detects and activates Claude Desktop links on Linux', async () => {
21
- vi.mocked(execa).mockResolvedValue({ exitCode: 0, stdout: 'claude.desktop\n' });
22
- await expect(hasDesktopProtocol({ scheme: 'claude', macAppNames: [] }, 'linux')).resolves.toBe(true);
23
- expect(execa).toHaveBeenCalledWith('xdg-mime', ['query', 'default', 'x-scheme-handler/claude'], { reject: false, shell: false });
24
- await openDesktopUri('claude://code/new?folder=%2Ftmp%2Fworkspace', 'linux');
25
- expect(execa).toHaveBeenCalledWith('xdg-open', ['claude://code/new?folder=%2Ftmp%2Fworkspace'], { shell: false });
26
- });
27
- it('does not advertise Codex Desktop on Linux', async () => {
28
- await expect(hasDesktopProtocol({ scheme: 'codex', macAppNames: [] }, 'linux')).resolves.toBe(false);
29
- expect(execa).not.toHaveBeenCalled();
30
- });
31
- it('returns unavailable targets with useful reasons', async () => {
32
- vi.mocked(execa).mockResolvedValue({ exitCode: 1 });
33
- const targets = await detectWorkspaceLaunchTargets();
34
- expect(targets.find((target) => target.id === 'codex-desktop')).toMatchObject({
35
- kind: 'ai-app',
36
- available: false,
37
- });
38
- expect(targets.find((target) => target.id === 'vscode')).toMatchObject({
39
- kind: 'editor',
40
- available: true,
41
- });
42
- expect(targets.find((target) => target.id === 'vscode-insiders')).toMatchObject({
43
- available: false,
44
- unavailableReason: expect.stringMatching(/not detected/i),
45
- });
46
- });
47
- it('builds a once-encoded Codex URI and activates it without a shell', async () => {
48
- vi.mocked(execa).mockImplementation((async (command) => ({
49
- exitCode: command === 'reg.exe' ? 0 : 0,
50
- })));
51
- const workspacePath = path.resolve('work spaces', 'one & two');
52
- const prompt = buildWorkspaceLaunchPrompt({ description: 'Fix launch & resume' });
53
- await launchWorkspaceTarget('codex-desktop', workspacePath, { kind: 'new-workspace', prompt }, 'win32');
54
- expect(execa).toHaveBeenCalledWith('cmd.exe', ['/d', '/v:off', '/s', '/c', 'start "" "%NEXUSFLOW_DESKTOP_URI%"'], {
55
- env: {
56
- NEXUSFLOW_DESKTOP_URI: `codex://threads/new?path=${encodeURIComponent(workspacePath)}&prompt=${encodeURIComponent(prompt)}`,
57
- },
58
- shell: false,
59
- windowsHide: true,
60
- windowsVerbatimArguments: true,
61
- });
62
- });
63
- it('uses the documented Windows URI dispatcher without reparsing encoded values', async () => {
64
- vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
65
- const uri = 'claude://code/new?folder=C%3A%5Cwork%5Cnexus&q=Fix%20one%20%26%20two';
66
- await openDesktopUri(uri, 'win32');
67
- expect(execa).toHaveBeenCalledWith('cmd.exe', ['/d', '/v:off', '/s', '/c', 'start "" "%NEXUSFLOW_DESKTOP_URI%"'], {
68
- env: { NEXUSFLOW_DESKTOP_URI: uri },
69
- shell: false,
70
- windowsHide: true,
71
- windowsVerbatimArguments: true,
72
- });
73
- });
74
- it('rejects an unsafe Windows desktop URI before invoking cmd.exe', async () => {
75
- await expect(openDesktopUri('https://example.com', 'win32')).rejects.toThrow('Unsupported desktop URI');
76
- expect(execa).not.toHaveBeenCalled();
77
- });
78
- it('does not expose a Windows desktop URI when activation fails', async () => {
79
- const uri = 'claude://code/new?folder=C%3A%5Cprivate-workspace&q=Private%20task';
80
- vi.mocked(execa).mockRejectedValue(new Error(`Command failed: cmd.exe ${uri}`));
81
- const result = openDesktopUri(uri, 'win32');
82
- await expect(result).rejects.toThrow('Windows could not open the selected desktop app');
83
- await expect(result).rejects.not.toThrow(/claude:\/\/|private-workspace|Private%20task/);
84
- });
85
- it('builds a once-encoded Claude URI with the workspace kickoff', async () => {
86
- vi.mocked(execa).mockResolvedValue({ exitCode: 0, stdout: 'claude.desktop\n' });
87
- const workspacePath = path.resolve('work spaces', 'claude & nexusflow');
88
- const prompt = buildWorkspaceLaunchPrompt({ description: 'Continue the integration' });
89
- await launchWorkspaceTarget('claude-desktop', workspacePath, { kind: 'new-workspace', prompt }, 'linux');
90
- expect(execa).toHaveBeenCalledWith('xdg-open', [`claude://code/new?folder=${encodeURIComponent(workspacePath)}&q=${encodeURIComponent(prompt)}`], { shell: false });
91
- });
92
- it('keeps a truncated emoji-bearing kickoff well-formed for URI encoding', () => {
93
- const basePrompt = buildWorkspaceLaunchPrompt({ description: '' });
94
- const marker = '\n\nWorkspace task: ';
95
- const remaining = 1_600 - basePrompt.length - marker.length;
96
- const description = `${'a'.repeat(remaining - 1)}😀tail`;
97
- const prompt = buildWorkspaceLaunchPrompt({ description });
98
- expect(prompt.length).toBeLessThanOrEqual(1_600);
99
- expect(() => encodeURIComponent(prompt)).not.toThrow();
100
- expect(prompt.endsWith('a')).toBe(true);
101
- });
102
- it('opens an existing Codex thread by its validated technical id', async () => {
103
- vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
104
- const workspacePath = path.resolve('workspace');
105
- const sessionId = '0199a213-81c0-7800-8aa1-bbab2a035a53';
106
- await launchWorkspaceTarget('codex-desktop', workspacePath, { kind: 'resume-session', sessionId }, 'win32');
107
- expect(execa).toHaveBeenCalledWith('cmd.exe', ['/d', '/v:off', '/s', '/c', 'start "" "%NEXUSFLOW_DESKTOP_URI%"'], {
108
- env: { NEXUSFLOW_DESKTOP_URI: `codex://threads/${sessionId}` },
109
- shell: false,
110
- windowsHide: true,
111
- windowsVerbatimArguments: true,
112
- });
113
- });
114
- it('does not claim that Claude Desktop can resume a local Code session', async () => {
115
- vi.mocked(execa).mockResolvedValue({ exitCode: 0, stdout: 'claude.desktop\n' });
116
- await expect(launchWorkspaceTarget('claude-desktop', path.resolve('workspace'), { kind: 'resume-session', sessionId: '0199a213-81c0-7800-8aa1-bbab2a035a53' }, 'linux')).rejects.toThrow(/does not support/i);
117
- expect(execa).not.toHaveBeenCalledWith('xdg-open', expect.anything(), expect.anything());
118
- });
119
- it('never maps arbitrary commands to launch targets', () => {
120
- expect(launchTargetIdForEditorCommand('code')).toBe('vscode');
121
- expect(launchTargetIdForEditorCommand('code && calc.exe')).toBeNull();
122
- });
123
- it('rejects unknown targets before launching anything', async () => {
124
- await expect(launchWorkspaceTarget('editor:../../calc', path.resolve('workspace'))).rejects.toThrow('Unknown workspace launch target');
125
- expect(execa).not.toHaveBeenCalled();
126
- });
127
- });
128
- //# sourceMappingURL=workspace-launch.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-launch.test.js","sourceRoot":"","sources":["../../src/utils/workspace-launch.test.ts"],"names":[],"mappings":"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"}