@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
@@ -0,0 +1,514 @@
1
+ /**
2
+ * @module core/brand-config
3
+ * Centralized, strongly-typed Brand and Naming Configuration System.
4
+ *
5
+ * Governs all product identities, CLI binary names, aliases, manifest files,
6
+ * lockfiles, markdown artifacts, environment variables, sentinels, and fallback
7
+ * chains.
8
+ *
9
+ * Future rebrands or white-label naming changes only require updating this
10
+ * configuration structure.
11
+ */
12
+ import * as path from 'node:path';
13
+ import * as os from 'node:os';
14
+ import * as fs from 'node:fs/promises';
15
+ import { existsSync } from 'node:fs';
16
+ import { createHash } from 'node:crypto';
17
+ export const BRAND_CONFIG = {
18
+ identity: {
19
+ name: 'ContextSpace',
20
+ shortName: 'CS',
21
+ legacyName: 'NexusFlow',
22
+ cliName: 'ctxspace',
23
+ cliAliases: ['contextspace', 'cs', 'nexusflow'],
24
+ tagline: 'Deterministic AI Context Engine & Multi-Repo Workspace Orchestrator',
25
+ },
26
+ files: {
27
+ manifest: {
28
+ primary: 'contextspace.json',
29
+ legacy: 'nexusflow.json',
30
+ },
31
+ lock: {
32
+ primary: 'contextspace.lock',
33
+ legacy: 'nexusflow.lock',
34
+ },
35
+ knowledge: {
36
+ primary: 'contextspace-knowledge.md',
37
+ legacy: 'nexusflow-knowledge.md',
38
+ },
39
+ plan: {
40
+ primary: 'contextspace-plan.md',
41
+ legacy: 'nexusflow-plan.md',
42
+ },
43
+ overview: {
44
+ primary: 'contextspace-overview.md',
45
+ legacy: 'nexusflow-overview.md',
46
+ },
47
+ handoff: {
48
+ primary: 'contextspace-handoff.md',
49
+ legacy: 'nexusflow-handoff.md',
50
+ },
51
+ cursorRule: {
52
+ primary: '.cursor/rules/contextspace.mdc',
53
+ legacy: '.cursor/rules/nexusflow.mdc',
54
+ },
55
+ configDir: {
56
+ primary: '.contextspace',
57
+ legacy: '.nexusflow',
58
+ },
59
+ chatLedger: {
60
+ primary: '.contextspace/chat.jsonl',
61
+ legacy: '.nexusflow/chat.jsonl',
62
+ },
63
+ state: {
64
+ primary: '.contextspace-state.json',
65
+ legacy: '.nexusflow-state.json',
66
+ },
67
+ runningState: {
68
+ primary: '.contextspace-running.json',
69
+ legacy: '.nexusflow-running.json',
70
+ },
71
+ analysisCache: {
72
+ primary: '.contextspace-analysis-cache.json',
73
+ legacy: '.nexusflow-analysis-cache.json',
74
+ },
75
+ logsDir: {
76
+ primary: '.contextspace-logs',
77
+ legacy: '.nexusflow-logs',
78
+ },
79
+ mutationLock: {
80
+ primary: '.contextspace-mutation.lock',
81
+ legacy: '.nexusflow-mutation.lock',
82
+ },
83
+ },
84
+ env: {
85
+ home: ['CONTEXTSPACE_HOME', 'NEXUSFLOW_HOME'],
86
+ port: ['CONTEXTSPACE_PORT', 'CS_PORT', 'NEXUSFLOW_PORT', 'NF_PORT'],
87
+ packagedExe: ['CONTEXTSPACE_PACKAGED_EXE', 'NEXUSFLOW_PACKAGED_EXE'],
88
+ desktopLog: ['CONTEXTSPACE_DESKTOP_LOG', 'NEXUSFLOW_DESKTOP_LOG'],
89
+ desktopUri: ['CONTEXTSPACE_DESKTOP_URI', 'NEXUSFLOW_DESKTOP_URI'],
90
+ },
91
+ mcp: {
92
+ serverName: 'contextspace-mcp',
93
+ legacyServerName: 'nexusflow-mcp',
94
+ adapterServerName: 'contextspace',
95
+ legacyAdapterServerName: 'nexusflow',
96
+ packageName: '@mrpatronz/nexusflow',
97
+ legacyPackageName: '@mrpatronz/nexusflow',
98
+ },
99
+ extension: {
100
+ id: 'contextspace.contextspace-vscode',
101
+ legacyId: 'nexusflow.nexusflow-vscode',
102
+ commandPrefix: 'contextspace',
103
+ legacyCommandPrefix: 'nexusflow',
104
+ },
105
+ desktop: {
106
+ appId: 'se.hogia.nexusflow',
107
+ productName: 'ContextSpace',
108
+ legacyProductName: 'NexusFlow',
109
+ installerName: 'ContextSpaceSetup.exe',
110
+ legacyInstallerName: 'NexusFlowSetup.exe',
111
+ readyTokenPrefixes: ['CONTEXTSPACE_READY_PORT', 'NEXUSFLOW_READY_PORT'],
112
+ },
113
+ sentinels: {
114
+ freshnessStart: ['CONTEXTSPACE:FRESHNESS:START', 'NEXUSFLOW:FRESHNESS:START'],
115
+ freshnessEnd: ['CONTEXTSPACE:FRESHNESS:END', 'NEXUSFLOW:FRESHNESS:END'],
116
+ },
117
+ resources: {
118
+ skillsDir: 'skills',
119
+ agentsDir: 'agents',
120
+ workflowsDir: 'workflows',
121
+ locksDir: '.locks',
122
+ catalogLockFile: 'resource-catalog.lock',
123
+ adminLockFile: 'resource-administration.lock',
124
+ managedOwnershipName: 'ContextSpace',
125
+ legacyOwnershipName: 'NexusFlow',
126
+ metadataKey: 'contextspace',
127
+ legacyMetadataKey: 'nexusflow',
128
+ packageLoopSkillId: 'contextspace-local-package-loop',
129
+ legacyPackageLoopSkillId: 'nexusflow-local-package-loop',
130
+ releaseOrderingSkillId: 'contextspace-release-ordering',
131
+ legacyReleaseOrderingSkillId: 'nexusflow-release-ordering',
132
+ },
133
+ stores: {
134
+ config: 'config.json',
135
+ projects: 'projects.json',
136
+ schedules: 'schedules.json',
137
+ categories: 'categories.json',
138
+ },
139
+ github: {
140
+ owner: 'antan87',
141
+ repo: 'NexusFlow',
142
+ legacyRepo: 'NexusFlow',
143
+ repoUrl: 'https://github.com/antan87/NexusFlow',
144
+ releaseApiUrl: 'https://api.github.com/repos/antan87/NexusFlow/releases/latest',
145
+ releasePageUrl: 'https://github.com/antan87/NexusFlow/releases/latest',
146
+ userAgent: 'ContextSpace-Updater',
147
+ legacyUserAgent: 'NexusFlow-Updater',
148
+ desktopInstallerUserAgent: 'ContextSpace-Desktop-Installer',
149
+ },
150
+ engine: {
151
+ id: 'contextspace',
152
+ legacyId: 'nexusflow',
153
+ name: 'ContextSpace Engine',
154
+ command: 'ctxspace',
155
+ legacyCommand: 'nexusflow',
156
+ npmPackage: '@mrpatronz/nexusflow',
157
+ legacyNpmPackage: '@mrpatronz/nexusflow',
158
+ },
159
+ terminal: {
160
+ titlePrefix: 'ContextSpace:',
161
+ legacyTitlePrefix: 'NexusFlow:',
162
+ defaultTitle: 'ContextSpace Terminal',
163
+ legacyDefaultTitle: 'NexusFlow Terminal',
164
+ runnerTitle: 'ContextSpace Runner',
165
+ legacyRunnerTitle: 'NexusFlow Runner',
166
+ },
167
+ workrooms: {
168
+ bootstrapHeaders: ['x-contextspace-workroom-bootstrap', 'x-nexusflow-workroom-bootstrap'],
169
+ bootstrapCookies: ['contextspace_workroom_bootstrap', 'nexusflow_workroom_bootstrap'],
170
+ defaultBootstrapHeader: 'X-ContextSpace-Workroom-Bootstrap',
171
+ defaultBootstrapCookie: 'contextspace_workroom_bootstrap',
172
+ inviteProtocols: ['contextspace:', 'nexusflow:'],
173
+ defaultInviteProtocol: 'contextspace:',
174
+ roomExportExtension: '.contextspace-room.json',
175
+ legacyRoomExportExtension: '.nexusflow-room.json',
176
+ },
177
+ theme: {
178
+ primary: '#F97316',
179
+ sunset: {
180
+ gold: '#FDE047',
181
+ coral: '#FB923C',
182
+ hibiscus: '#F43F5E',
183
+ indigo: '#6366F1',
184
+ },
185
+ dark: {
186
+ background: '#0A0812',
187
+ foreground: '#F8FAFC',
188
+ card: '#140F22',
189
+ popover: '#181228',
190
+ border: 'rgba(251, 146, 60, 0.14)',
191
+ },
192
+ light: {
193
+ background: '#FAF8F6',
194
+ foreground: '#0F172A',
195
+ card: '#FFFFFF',
196
+ popover: '#FFFFFF',
197
+ border: 'rgba(234, 88, 12, 0.10)',
198
+ },
199
+ },
200
+ };
201
+ // ─── Typed Resolution Helpers ────────────────────────────────────────────────
202
+ /**
203
+ * Returns the first non-empty value from a list of environment variable names.
204
+ */
205
+ export function resolveFirstEnv(envKeys) {
206
+ for (const key of envKeys) {
207
+ const val = process.env[key];
208
+ if (val && val !== 'undefined' && val.trim()) {
209
+ return val.trim();
210
+ }
211
+ }
212
+ return undefined;
213
+ }
214
+ /**
215
+ * Resolves the ContextSpace global home directory.
216
+ * Priority: CONTEXTSPACE_HOME -> NEXUSFLOW_HOME -> ~/.contextspace -> ~/.nexusflow -> ~/.contextspace
217
+ */
218
+ export function resolveBrandHomeDir() {
219
+ const csHome = process.env.CONTEXTSPACE_HOME?.trim();
220
+ const nfHome = process.env.NEXUSFLOW_HOME?.trim();
221
+ if (csHome && existsSync(path.resolve(csHome)))
222
+ return path.resolve(csHome);
223
+ if (nfHome && existsSync(path.resolve(nfHome)) && !csHome)
224
+ return path.resolve(nfHome);
225
+ if (csHome)
226
+ return path.resolve(csHome);
227
+ if (nfHome)
228
+ return path.resolve(nfHome);
229
+ const primary = path.join(os.homedir(), BRAND_CONFIG.files.configDir.primary);
230
+ const legacy = path.join(os.homedir(), BRAND_CONFIG.files.configDir.legacy);
231
+ if (existsSync(primary))
232
+ return primary;
233
+ if (existsSync(legacy))
234
+ return legacy;
235
+ return primary;
236
+ }
237
+ /**
238
+ * Resolves the path of a file key within a workspace, checking primary then legacy.
239
+ * If neither exists, returns the canonical primary path.
240
+ */
241
+ export async function resolveWorkspaceFilePath(workspaceDir, key) {
242
+ const pair = BRAND_CONFIG.files[key];
243
+ const primaryPath = path.join(workspaceDir, pair.primary);
244
+ try {
245
+ await fs.access(primaryPath);
246
+ return { path: primaryPath, isLegacy: false, exists: true };
247
+ }
248
+ catch {
249
+ const legacyPath = path.join(workspaceDir, pair.legacy);
250
+ try {
251
+ await fs.access(legacyPath);
252
+ return { path: legacyPath, isLegacy: true, exists: true };
253
+ }
254
+ catch {
255
+ return { path: primaryPath, isLegacy: false, exists: false };
256
+ }
257
+ }
258
+ }
259
+ /**
260
+ * Synchronously resolves a workspace file path with fallback to legacy.
261
+ */
262
+ export function resolveWorkspaceFilePathSync(workspaceDir, key) {
263
+ const pair = BRAND_CONFIG.files[key];
264
+ const primaryPath = path.join(workspaceDir, pair.primary);
265
+ if (existsSync(primaryPath)) {
266
+ return { path: primaryPath, isLegacy: false, exists: true };
267
+ }
268
+ const legacyPath = path.join(workspaceDir, pair.legacy);
269
+ if (existsSync(legacyPath)) {
270
+ return { path: legacyPath, isLegacy: true, exists: true };
271
+ }
272
+ return { path: primaryPath, isLegacy: false, exists: false };
273
+ }
274
+ /**
275
+ * Synchronously resolves the workspace configuration directory (.contextspace vs .nexusflow).
276
+ */
277
+ export function resolveWorkspaceConfigDir(workspaceDir) {
278
+ return resolveWorkspaceFilePathSync(workspaceDir, 'configDir');
279
+ }
280
+ /**
281
+ * Synchronously resolves the workspace chat ledger path and directory.
282
+ * Preserves existing legacy history when present, and supports mixed or native workspaces.
283
+ */
284
+ export function resolveWorkspaceChatLedgerSync(workspaceDir) {
285
+ const primaryDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.primary);
286
+ const legacyDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.legacy);
287
+ const primaryChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.primary);
288
+ const legacyChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.legacy);
289
+ const primaryExists = existsSync(primaryChat);
290
+ const legacyExists = existsSync(legacyChat);
291
+ const primaryDirExists = existsSync(primaryDir);
292
+ const legacyDirExists = existsSync(legacyDir);
293
+ const readPaths = [];
294
+ if (legacyExists)
295
+ readPaths.push(legacyChat);
296
+ if (primaryExists && !readPaths.includes(primaryChat))
297
+ readPaths.push(primaryChat);
298
+ // 1. If primary chat file exists, use it as the authoritative ledger.
299
+ if (primaryExists) {
300
+ return {
301
+ chatPath: primaryChat,
302
+ chatDir: primaryDir,
303
+ isLegacy: false,
304
+ exists: true,
305
+ readPaths,
306
+ };
307
+ }
308
+ // 2. If legacy chat file exists, preserve existing history and use it.
309
+ if (legacyExists) {
310
+ return {
311
+ chatPath: legacyChat,
312
+ chatDir: legacyDir,
313
+ isLegacy: true,
314
+ exists: true,
315
+ readPaths,
316
+ };
317
+ }
318
+ // 3. Neither file exists yet.
319
+ // If only legacy directory exists, place in legacy directory.
320
+ if (legacyDirExists && !primaryDirExists) {
321
+ return {
322
+ chatPath: legacyChat,
323
+ chatDir: legacyDir,
324
+ isLegacy: true,
325
+ exists: false,
326
+ readPaths,
327
+ };
328
+ }
329
+ // 4. In native, mixed, or fresh workspaces without an existing ledger, default to primary (.contextspace).
330
+ return {
331
+ chatPath: primaryChat,
332
+ chatDir: primaryDir,
333
+ isLegacy: false,
334
+ exists: false,
335
+ readPaths,
336
+ };
337
+ }
338
+ /**
339
+ * Asynchronously resolves the workspace chat ledger path and directory.
340
+ * Preserves existing legacy history when present, and supports mixed or native workspaces.
341
+ */
342
+ export async function resolveWorkspaceChatLedger(workspaceDir) {
343
+ const primaryDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.primary);
344
+ const legacyDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.legacy);
345
+ const primaryChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.primary);
346
+ const legacyChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.legacy);
347
+ const [primaryExists, legacyExists, primaryDirExists, legacyDirExists] = await Promise.all([
348
+ fs.access(primaryChat).then(() => true).catch(() => false),
349
+ fs.access(legacyChat).then(() => true).catch(() => false),
350
+ fs.access(primaryDir).then(() => true).catch(() => false),
351
+ fs.access(legacyDir).then(() => true).catch(() => false),
352
+ ]);
353
+ const readPaths = [];
354
+ if (legacyExists)
355
+ readPaths.push(legacyChat);
356
+ if (primaryExists && !readPaths.includes(primaryChat))
357
+ readPaths.push(primaryChat);
358
+ if (primaryExists) {
359
+ return {
360
+ chatPath: primaryChat,
361
+ chatDir: primaryDir,
362
+ isLegacy: false,
363
+ exists: true,
364
+ readPaths,
365
+ };
366
+ }
367
+ if (legacyExists) {
368
+ return {
369
+ chatPath: legacyChat,
370
+ chatDir: legacyDir,
371
+ isLegacy: true,
372
+ exists: true,
373
+ readPaths,
374
+ };
375
+ }
376
+ if (legacyDirExists && !primaryDirExists) {
377
+ return {
378
+ chatPath: legacyChat,
379
+ chatDir: legacyDir,
380
+ isLegacy: true,
381
+ exists: false,
382
+ readPaths,
383
+ };
384
+ }
385
+ return {
386
+ chatPath: primaryChat,
387
+ chatDir: primaryDir,
388
+ isLegacy: false,
389
+ exists: false,
390
+ readPaths,
391
+ };
392
+ }
393
+ /**
394
+ * Reads all messages from the workspace chat ledger, combining historical legacy messages
395
+ * and primary messages if both exist, deduplicating by ID, and sorting chronologically.
396
+ */
397
+ export async function readWorkspaceChatMessages(workspaceDir, limit) {
398
+ const ledgerInfo = await resolveWorkspaceChatLedger(workspaceDir);
399
+ const pathsToRead = ledgerInfo.readPaths.length > 0 ? ledgerInfo.readPaths : (ledgerInfo.exists ? [ledgerInfo.chatPath] : []);
400
+ const allMessages = [];
401
+ const seenIds = new Set();
402
+ for (const filePath of pathsToRead) {
403
+ try {
404
+ const raw = await fs.readFile(filePath, 'utf8');
405
+ const lines = raw.split('\n');
406
+ for (const line of lines) {
407
+ const trimmed = line.trim();
408
+ if (!trimmed)
409
+ continue;
410
+ try {
411
+ const parsed = JSON.parse(trimmed);
412
+ if (parsed && typeof parsed === 'object') {
413
+ const id = parsed.id || `${parsed.timestamp || ''}-${parsed.message || ''}`;
414
+ if (!seenIds.has(id)) {
415
+ seenIds.add(id);
416
+ allMessages.push(parsed);
417
+ }
418
+ }
419
+ }
420
+ catch {
421
+ // ignore malformed lines
422
+ }
423
+ }
424
+ }
425
+ catch {
426
+ // ignore unreadable file
427
+ }
428
+ }
429
+ allMessages.sort((a, b) => {
430
+ const ta = a.timestamp ? new Date(a.timestamp).getTime() : 0;
431
+ const tb = b.timestamp ? new Date(b.timestamp).getTime() : 0;
432
+ if (ta !== tb)
433
+ return ta - tb;
434
+ return 0;
435
+ });
436
+ const messages = typeof limit === 'number' && limit > 0 ? allMessages.slice(-limit) : allMessages;
437
+ return { messages, ledgerInfo };
438
+ }
439
+ /**
440
+ * Resolves a durable global state path under the home config directory,
441
+ * falling back to ~/.nexusflow/<relPath> if it exists and ~/.contextspace/<relPath> does not.
442
+ */
443
+ export function resolveGlobalDurablePath(relPath) {
444
+ const csHome = process.env.CONTEXTSPACE_HOME?.trim();
445
+ const nfHome = process.env.NEXUSFLOW_HOME?.trim();
446
+ if (csHome && existsSync(path.join(path.resolve(csHome), relPath))) {
447
+ return path.join(path.resolve(csHome), relPath);
448
+ }
449
+ if (nfHome && existsSync(path.join(path.resolve(nfHome), relPath))) {
450
+ return path.join(path.resolve(nfHome), relPath);
451
+ }
452
+ if (csHome) {
453
+ return path.join(path.resolve(csHome), relPath);
454
+ }
455
+ if (nfHome) {
456
+ return path.join(path.resolve(nfHome), relPath);
457
+ }
458
+ const primary = path.join(os.homedir(), BRAND_CONFIG.files.configDir.primary, relPath);
459
+ if (existsSync(primary))
460
+ return primary;
461
+ const legacy = path.join(os.homedir(), BRAND_CONFIG.files.configDir.legacy, relPath);
462
+ if (existsSync(legacy))
463
+ return legacy;
464
+ return primary;
465
+ }
466
+ /**
467
+ * Generates the PM2 prefix scoped to a workspace hash.
468
+ */
469
+ export function getPm2ProcessPrefix(workspacePath) {
470
+ const base = path.basename(workspacePath).replace(/[^a-zA-Z0-9_-]/g, '-').slice(0, 24);
471
+ const hash = createHash('sha256').update(path.resolve(workspacePath)).digest('hex').slice(0, 8);
472
+ return `${BRAND_CONFIG.identity.cliName}-${base}-${hash}-`;
473
+ }
474
+ /**
475
+ * Generates stdout tokens for the desktop readiness handshake.
476
+ */
477
+ export function getDesktopReadyTokens(port) {
478
+ return BRAND_CONFIG.desktop.readyTokenPrefixes.map((prefix) => `${prefix}=${port}`);
479
+ }
480
+ /**
481
+ * Returns a RegExp matching any supported desktop ready port token.
482
+ */
483
+ export function getDesktopReadyPortRegex() {
484
+ const prefixes = BRAND_CONFIG.desktop.readyTokenPrefixes.join('|');
485
+ return new RegExp(`(?:${prefixes})=(\\d+)`);
486
+ }
487
+ /**
488
+ * Returns a RegExp matching any supported freshness comment sentinel block.
489
+ */
490
+ export function getFreshnessSentinelRegex() {
491
+ const startTokens = BRAND_CONFIG.sentinels.freshnessStart.join('|');
492
+ const endTokens = BRAND_CONFIG.sentinels.freshnessEnd.join('|');
493
+ return new RegExp(`<!--\\s*(?:${startTokens})\\s*-->[\\s\\S]*?<!--\\s*(?:${endTokens})\\s*-->`);
494
+ }
495
+ /**
496
+ * Formats a canonical freshness sentinel comment block.
497
+ */
498
+ export function createFreshnessMarker(snapshotSha, command = `${BRAND_CONFIG.identity.cliName} refresh --check`) {
499
+ return `<!-- ${BRAND_CONFIG.sentinels.freshnessStart[0]} -->\n> **${BRAND_CONFIG.identity.name} snapshot:** ${BRAND_CONFIG.identity.name}@${snapshotSha}. Verify live state with \`${command}\`.\n<!-- ${BRAND_CONFIG.sentinels.freshnessEnd[0]} -->`;
500
+ }
501
+ /**
502
+ * Resolves the path of a global persistent store file (config, projects, schedules, categories)
503
+ * with transparent fallback to the legacy ~/.nexusflow/<file> if present.
504
+ */
505
+ export function resolveUserStorePath(storeKey) {
506
+ return resolveGlobalDurablePath(BRAND_CONFIG.stores[storeKey]);
507
+ }
508
+ /**
509
+ * Resolves a lock file inside the global locks directory.
510
+ */
511
+ export function resolveResourceLockPath(lockFileName) {
512
+ return path.join(resolveBrandHomeDir(), BRAND_CONFIG.resources.locksDir, lockFileName);
513
+ }
514
+ //# sourceMappingURL=brand-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-config.js","sourceRoot":"","sources":["../../src/core/brand-config.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import type { NexusFlowConfig } from '../types.js';
6
6
  /**
7
- * Returns the absolute path to the NexusFlow config directory (~/.nexusflow).
7
+ * Returns the absolute path to the ContextSpace config directory (~/.contextspace).
8
8
  */
9
9
  export declare function getConfigDir(): string;
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA2CnD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAkClD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAgC5F;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CASvE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0CnD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAkClD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAsC5F;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvE"}
@@ -40,15 +40,14 @@ function activateStorageProvider(config, quiet) {
40
40
  }
41
41
  }
42
42
  }
43
- /** Name of the config directory under the user's home folder. */
44
- const CONFIG_DIR_NAME = '.nexusflow';
43
+ import { LEGACY_CONFIG_DIR_NAME, resolveBrandHomeDir, STORE_CONFIG_FILE } from './constants.js';
45
44
  /** Name of the config file. */
46
- const CONFIG_FILE_NAME = 'config.json';
45
+ const CONFIG_FILE_NAME = STORE_CONFIG_FILE;
47
46
  /**
48
- * Returns the absolute path to the NexusFlow config directory (~/.nexusflow).
47
+ * Returns the absolute path to the ContextSpace config directory (~/.contextspace).
49
48
  */
50
49
  export function getConfigDir() {
51
- return path.join(os.homedir(), CONFIG_DIR_NAME);
50
+ return resolveBrandHomeDir();
52
51
  }
53
52
  /**
54
53
  * Returns a NexusFlowConfig populated with sensible defaults.
@@ -109,8 +108,15 @@ export async function loadConfig(options = {}) {
109
108
  raw = await fs.readFile(configPath, 'utf-8');
110
109
  }
111
110
  catch {
112
- // File doesn't exist (first run) or is unreadable — defaults are correct.
113
- raw = null;
111
+ // Check legacy ~/.nexusflow/config.json
112
+ try {
113
+ const legacyConfigPath = path.join(os.homedir(), LEGACY_CONFIG_DIR_NAME, CONFIG_FILE_NAME);
114
+ raw = await fs.readFile(legacyConfigPath, 'utf-8');
115
+ }
116
+ catch {
117
+ // File doesn't exist (first run) or is unreadable — defaults are correct.
118
+ raw = null;
119
+ }
114
120
  }
115
121
  if (raw !== null) {
116
122
  try {
@@ -139,7 +145,11 @@ export async function loadConfig(options = {}) {
139
145
  */
140
146
  export async function saveConfig(config) {
141
147
  await ensureConfigDir();
142
- const configPath = path.join(getConfigDir(), CONFIG_FILE_NAME);
148
+ const configDir = path.resolve(getConfigDir());
149
+ const configPath = path.resolve(configDir, CONFIG_FILE_NAME);
150
+ if (path.dirname(configPath) !== configDir) {
151
+ throw new Error('Invalid config path destination');
152
+ }
143
153
  const data = JSON.stringify(config, null, 2) + '\n';
144
154
  await fs.writeFile(configPath, data, 'utf-8');
145
155
  // Re-activate the storage provider based on the saved configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,MAAuB,EAAE,KAAc;IACtE,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;QACD,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CAAC,sBAAsB,YAAY,uDAAuD,CAAC,CACxG,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,SAAS,EAAE,aAAa,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;QACzD,iFAAiF;QACjF,IAAI,CAAC;YACH,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,QAAQ,CAAC,SAAS,EAAE,uBAAuB,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,eAAe,GAAG,YAAY,CAAC;AAErC,+BAA+B;AAC/B,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC;QACtC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC;QAC3D,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,CAAC;QACZ,eAAe,EAAE;YACf,oBAAoB;YACpB,WAAW;YACX,WAAW;YACX,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,WAAW;YACX,sBAAsB;YACtB,mBAAmB;YACnB,cAAc;YACd,UAAU;YACV,UAAU;YACV,WAAW;YACX,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,aAAa;YACb,WAAW;YACX,eAAe;YACf,aAAa;SACd;KAEF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAA+B,EAAE;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IAErC,IAAI,MAAM,GAAoB,gBAAgB,EAAE,CAAC;IAEjD,IAAI,GAAG,GAAkB,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC;YAC3D,8DAA8D;YAC9D,MAAM,GAAG,EAAE,GAAG,gBAAgB,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sEAAsE;YACtE,uEAAuE;YACvE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,2EAA2E,CAAC,CAAC,CAAC;YAC1G,CAAC;YACD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAuB;IACtD,MAAM,eAAe,EAAE,CAAC;IAExB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9C,qEAAqE;IACrE,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}