@nio-cli/cli 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/README.md +374 -139
  2. package/dist/adapters/docker/docker-gateway.js +100 -0
  3. package/dist/adapters/docker/docker-gateway.js.map +1 -0
  4. package/dist/adapters/ide/ide-gateway.js +50 -0
  5. package/dist/adapters/ide/ide-gateway.js.map +1 -0
  6. package/dist/adapters/lang/knowledge-store.js +97 -0
  7. package/dist/adapters/lang/knowledge-store.js.map +1 -0
  8. package/dist/adapters/lang/language-catalog.js +86 -0
  9. package/dist/adapters/lang/language-catalog.js.map +1 -0
  10. package/dist/adapters/lang/package-map.js +98 -0
  11. package/dist/adapters/lang/package-map.js.map +1 -0
  12. package/dist/adapters/lang/project-detector.js +40 -0
  13. package/dist/adapters/lang/project-detector.js.map +1 -0
  14. package/dist/adapters/lang/repos.js +8 -0
  15. package/dist/adapters/lang/repos.js.map +1 -0
  16. package/dist/adapters/lang/scaffold-gateway.js +135 -0
  17. package/dist/adapters/lang/scaffold-gateway.js.map +1 -0
  18. package/dist/adapters/lang/vendor.js +52 -0
  19. package/dist/adapters/lang/vendor.js.map +1 -0
  20. package/dist/adapters/pg/auth-session-repository.js +41 -0
  21. package/dist/adapters/pg/auth-session-repository.js.map +1 -0
  22. package/dist/adapters/pg/client.js +74 -0
  23. package/dist/adapters/pg/client.js.map +1 -0
  24. package/dist/adapters/pg/dependency-event-repository.js +40 -0
  25. package/dist/adapters/pg/dependency-event-repository.js.map +1 -0
  26. package/dist/adapters/pg/login-challenge-repository.js +54 -0
  27. package/dist/adapters/pg/login-challenge-repository.js.map +1 -0
  28. package/dist/adapters/pg/session-repository.js +70 -0
  29. package/dist/adapters/pg/session-repository.js.map +1 -0
  30. package/dist/adapters/pg/user-repository.js +71 -0
  31. package/dist/adapters/pg/user-repository.js.map +1 -0
  32. package/dist/adapters/pkg/toolchain-gateway.js +35 -0
  33. package/dist/adapters/pkg/toolchain-gateway.js.map +1 -0
  34. package/dist/adapters/skills/recipe-catalog.js +84 -0
  35. package/dist/adapters/skills/recipe-catalog.js.map +1 -0
  36. package/dist/adapters/sms/http-generic.js +50 -0
  37. package/dist/adapters/sms/http-generic.js.map +1 -0
  38. package/dist/app/ai-client.js +44 -0
  39. package/dist/app/ai-client.js.map +1 -0
  40. package/dist/app/dependency-watcher.js +87 -0
  41. package/dist/app/dependency-watcher.js.map +1 -0
  42. package/dist/app/docker-manager.js +113 -0
  43. package/dist/app/docker-manager.js.map +1 -0
  44. package/dist/app/environment-builder.js +73 -0
  45. package/dist/app/environment-builder.js.map +1 -0
  46. package/dist/app/language-configurator.js +30 -0
  47. package/dist/app/language-configurator.js.map +1 -0
  48. package/dist/app/session-manager.js +124 -0
  49. package/dist/app/session-manager.js.map +1 -0
  50. package/dist/brand.js +3 -61
  51. package/dist/brand.js.map +1 -1
  52. package/dist/cli/commands/agents.js +30 -0
  53. package/dist/cli/commands/agents.js.map +1 -0
  54. package/dist/cli/commands/ai.js +61 -0
  55. package/dist/cli/commands/ai.js.map +1 -0
  56. package/dist/cli/commands/auth.js +149 -96
  57. package/dist/cli/commands/auth.js.map +1 -1
  58. package/dist/cli/commands/clean.js +1 -13
  59. package/dist/cli/commands/clean.js.map +1 -1
  60. package/dist/cli/commands/command.js +58 -0
  61. package/dist/cli/commands/command.js.map +1 -0
  62. package/dist/cli/commands/completion.js +0 -3
  63. package/dist/cli/commands/completion.js.map +1 -1
  64. package/dist/cli/commands/config.js +43 -0
  65. package/dist/cli/commands/config.js.map +1 -0
  66. package/dist/cli/commands/debug.js +102 -0
  67. package/dist/cli/commands/debug.js.map +1 -0
  68. package/dist/cli/commands/deps.js +94 -0
  69. package/dist/cli/commands/deps.js.map +1 -0
  70. package/dist/cli/commands/docker.js +385 -0
  71. package/dist/cli/commands/docker.js.map +1 -0
  72. package/dist/cli/commands/docs/content.js +219 -0
  73. package/dist/cli/commands/docs/content.js.map +1 -0
  74. package/dist/cli/commands/docs/dynamic.js +42 -0
  75. package/dist/cli/commands/docs/dynamic.js.map +1 -0
  76. package/dist/cli/commands/docs/html.js +108 -0
  77. package/dist/cli/commands/docs/html.js.map +1 -0
  78. package/dist/cli/commands/docs/terminal.js +42 -0
  79. package/dist/cli/commands/docs/terminal.js.map +1 -0
  80. package/dist/cli/commands/docs.js +34 -0
  81. package/dist/cli/commands/docs.js.map +1 -0
  82. package/dist/cli/commands/exec.js +2 -7
  83. package/dist/cli/commands/exec.js.map +1 -1
  84. package/dist/cli/commands/init/auth-step.js +10 -45
  85. package/dist/cli/commands/init/auth-step.js.map +1 -1
  86. package/dist/cli/commands/init/clients-step.js +12 -39
  87. package/dist/cli/commands/init/clients-step.js.map +1 -1
  88. package/dist/cli/commands/init/context-step.js +7 -33
  89. package/dist/cli/commands/init/context-step.js.map +1 -1
  90. package/dist/cli/commands/init/handoff.js +20 -0
  91. package/dist/cli/commands/init/handoff.js.map +1 -0
  92. package/dist/cli/commands/init/index.js +164 -34
  93. package/dist/cli/commands/init/index.js.map +1 -1
  94. package/dist/cli/commands/init/lang-step.js +40 -0
  95. package/dist/cli/commands/init/lang-step.js.map +1 -0
  96. package/dist/cli/commands/init/profile-step.js +43 -0
  97. package/dist/cli/commands/init/profile-step.js.map +1 -0
  98. package/dist/cli/commands/init/provision-step.js +8 -23
  99. package/dist/cli/commands/init/provision-step.js.map +1 -1
  100. package/dist/cli/commands/init/recipe-step.js +18 -0
  101. package/dist/cli/commands/init/recipe-step.js.map +1 -0
  102. package/dist/cli/commands/lang.js +27 -0
  103. package/dist/cli/commands/lang.js.map +1 -0
  104. package/dist/cli/commands/open.js +59 -0
  105. package/dist/cli/commands/open.js.map +1 -0
  106. package/dist/cli/commands/plan.js +2 -6
  107. package/dist/cli/commands/plan.js.map +1 -1
  108. package/dist/cli/commands/security.js +143 -0
  109. package/dist/cli/commands/security.js.map +1 -0
  110. package/dist/cli/commands/sessions.js +92 -0
  111. package/dist/cli/commands/sessions.js.map +1 -0
  112. package/dist/cli/commands/skills.js +1 -1
  113. package/dist/cli/commands/skills.js.map +1 -1
  114. package/dist/cli/commands/start.js +8 -0
  115. package/dist/cli/commands/start.js.map +1 -0
  116. package/dist/cli/commands/sync.js +52 -58
  117. package/dist/cli/commands/sync.js.map +1 -1
  118. package/dist/cli/commands/validate-plan.js +2 -6
  119. package/dist/cli/commands/validate-plan.js.map +1 -1
  120. package/dist/cli/copy/auth.json +9 -2
  121. package/dist/cli/copy/init.json +2 -6
  122. package/dist/cli/copy.js +0 -8
  123. package/dist/cli/copy.js.map +1 -1
  124. package/dist/cli/flows/clients.js +3 -94
  125. package/dist/cli/flows/clients.js.map +1 -1
  126. package/dist/cli/flows/completion.js +1 -6
  127. package/dist/cli/flows/completion.js.map +1 -1
  128. package/dist/cli/flows/dependencies.js +1 -18
  129. package/dist/cli/flows/dependencies.js.map +1 -1
  130. package/dist/cli/flows/onboarding.js +116 -0
  131. package/dist/cli/flows/onboarding.js.map +1 -0
  132. package/dist/cli/flows/sections.js +2 -10
  133. package/dist/cli/flows/sections.js.map +1 -1
  134. package/dist/cli/flows/user-config.js +5 -10
  135. package/dist/cli/flows/user-config.js.map +1 -1
  136. package/dist/cli/program.js +58 -0
  137. package/dist/cli/program.js.map +1 -0
  138. package/dist/cli/ui/render.js +2 -53
  139. package/dist/cli/ui/render.js.map +1 -1
  140. package/dist/cli/ui/report.js +0 -13
  141. package/dist/cli/ui/report.js.map +1 -1
  142. package/dist/cli.js +27 -31
  143. package/dist/cli.js.map +1 -1
  144. package/dist/config.js +27 -56
  145. package/dist/config.js.map +1 -1
  146. package/dist/core/docker.js +2 -0
  147. package/dist/core/docker.js.map +1 -0
  148. package/dist/core/environment.js +2 -0
  149. package/dist/core/environment.js.map +1 -0
  150. package/dist/core/lang.js +11 -0
  151. package/dist/core/lang.js.map +1 -0
  152. package/dist/core/messaging.js +2 -0
  153. package/dist/core/messaging.js.map +1 -0
  154. package/dist/core/repositories.js +2 -0
  155. package/dist/core/repositories.js.map +1 -0
  156. package/dist/core/types.js +0 -5
  157. package/dist/core/types.js.map +1 -1
  158. package/dist/gateway/config.js +13 -0
  159. package/dist/gateway/config.js.map +1 -0
  160. package/dist/gateway/edge-filter.js +55 -0
  161. package/dist/gateway/edge-filter.js.map +1 -0
  162. package/dist/gateway/index.js +176 -0
  163. package/dist/gateway/index.js.map +1 -0
  164. package/dist/gateway/middleware/auth.js +34 -0
  165. package/dist/gateway/middleware/auth.js.map +1 -0
  166. package/dist/gateway/services/login.js +112 -0
  167. package/dist/gateway/services/login.js.map +1 -0
  168. package/dist/gateway/services/security.js +99 -0
  169. package/dist/gateway/services/security.js.map +1 -0
  170. package/dist/lib/auth/backup-codes.js +46 -0
  171. package/dist/lib/auth/backup-codes.js.map +1 -0
  172. package/dist/lib/auth/gateway-client.js +86 -0
  173. package/dist/lib/auth/gateway-client.js.map +1 -0
  174. package/dist/lib/auth/gateway-process.js +54 -0
  175. package/dist/lib/auth/gateway-process.js.map +1 -0
  176. package/dist/lib/auth/gateway-token.js +26 -0
  177. package/dist/lib/auth/gateway-token.js.map +1 -0
  178. package/dist/lib/auth/nio-config.js +147 -0
  179. package/dist/lib/auth/nio-config.js.map +1 -0
  180. package/dist/lib/auth/otp.js +23 -0
  181. package/dist/lib/auth/otp.js.map +1 -0
  182. package/dist/lib/auth/password.js +23 -0
  183. package/dist/lib/auth/password.js.map +1 -0
  184. package/dist/lib/auth/session-store.js +49 -0
  185. package/dist/lib/auth/session-store.js.map +1 -0
  186. package/dist/lib/clients/autopull.js +8 -0
  187. package/dist/lib/clients/autopull.js.map +1 -0
  188. package/dist/lib/{client-configs.js → clients/client-configs.js} +113 -34
  189. package/dist/lib/clients/client-configs.js.map +1 -0
  190. package/dist/lib/clients/client-install.js +20 -0
  191. package/dist/lib/clients/client-install.js.map +1 -0
  192. package/dist/lib/{harness.js → clients/harness.js} +1 -16
  193. package/dist/lib/clients/harness.js.map +1 -0
  194. package/dist/lib/{hooks.js → clients/hooks.js} +5 -31
  195. package/dist/lib/clients/hooks.js.map +1 -0
  196. package/dist/lib/{targets.js → clients/targets.js} +17 -53
  197. package/dist/lib/clients/targets.js.map +1 -0
  198. package/dist/lib/colors.js +0 -24
  199. package/dist/lib/colors.js.map +1 -1
  200. package/dist/lib/cowork-extension.js +2 -25
  201. package/dist/lib/cowork-extension.js.map +1 -1
  202. package/dist/lib/debug.js +6 -0
  203. package/dist/lib/debug.js.map +1 -0
  204. package/dist/lib/{dependencies.js → deps/dependencies.js} +1 -26
  205. package/dist/lib/deps/dependencies.js.map +1 -0
  206. package/dist/lib/deps/dependency-install-project.js +27 -0
  207. package/dist/lib/deps/dependency-install-project.js.map +1 -0
  208. package/dist/lib/{dependency-install.js → deps/dependency-install.js} +10 -35
  209. package/dist/lib/deps/dependency-install.js.map +1 -0
  210. package/dist/lib/deps/dependency-installed.js +64 -0
  211. package/dist/lib/deps/dependency-installed.js.map +1 -0
  212. package/dist/lib/deps/dependency-scan.js +100 -0
  213. package/dist/lib/deps/dependency-scan.js.map +1 -0
  214. package/dist/lib/docker.js +50 -0
  215. package/dist/lib/docker.js.map +1 -0
  216. package/dist/lib/dotfiles.js +57 -0
  217. package/dist/lib/dotfiles.js.map +1 -0
  218. package/dist/lib/{exec-delegate.js → exec/exec-delegate.js} +4 -13
  219. package/dist/lib/exec/exec-delegate.js.map +1 -0
  220. package/dist/lib/{exec-engines.js → exec/exec-engines.js} +1 -10
  221. package/dist/lib/exec/exec-engines.js.map +1 -0
  222. package/dist/lib/{plan-delegate.js → exec/plan-delegate.js} +1 -7
  223. package/dist/lib/exec/plan-delegate.js.map +1 -0
  224. package/dist/lib/{validate-plan-delegate.js → exec/validate-plan-delegate.js} +2 -7
  225. package/dist/lib/exec/validate-plan-delegate.js.map +1 -0
  226. package/dist/lib/headroom.js +44 -0
  227. package/dist/lib/headroom.js.map +1 -0
  228. package/dist/lib/ide-tasks.js +54 -0
  229. package/dist/lib/ide-tasks.js.map +1 -0
  230. package/dist/lib/load-env.js +44 -0
  231. package/dist/lib/load-env.js.map +1 -0
  232. package/dist/lib/open-url.js +9 -0
  233. package/dist/lib/open-url.js.map +1 -0
  234. package/dist/lib/prompts.js +0 -13
  235. package/dist/lib/prompts.js.map +1 -1
  236. package/dist/lib/{provision-apply.js → provision/provision-apply.js} +4 -30
  237. package/dist/lib/provision/provision-apply.js.map +1 -0
  238. package/dist/lib/{provision-collect.js → provision/provision-collect.js} +0 -9
  239. package/dist/lib/provision/provision-collect.js.map +1 -0
  240. package/dist/lib/{provision.js → provision/provision.js} +4 -17
  241. package/dist/lib/provision/provision.js.map +1 -0
  242. package/dist/lib/{patterns.js → skills/patterns.js} +0 -13
  243. package/dist/lib/skills/patterns.js.map +1 -0
  244. package/dist/lib/{rules.js → skills/rules.js} +0 -22
  245. package/dist/lib/skills/rules.js.map +1 -0
  246. package/dist/lib/skills/sections.js +58 -0
  247. package/dist/lib/skills/sections.js.map +1 -0
  248. package/dist/lib/{skill-serve.js → skills/skill-serve.js} +1 -26
  249. package/dist/lib/skills/skill-serve.js.map +1 -0
  250. package/dist/lib/{skills-cache.js → skills/skills-cache.js} +15 -21
  251. package/dist/lib/skills/skills-cache.js.map +1 -0
  252. package/dist/lib/{skills.js → skills/skills.js} +3 -49
  253. package/dist/lib/skills/skills.js.map +1 -0
  254. package/dist/lib/spinner.js.map +1 -0
  255. package/dist/lib/telemetry.js +3 -20
  256. package/dist/lib/telemetry.js.map +1 -1
  257. package/dist/lib/version-check.js +0 -20
  258. package/dist/lib/version-check.js.map +1 -1
  259. package/dist/matrix-logo.js +43 -21
  260. package/dist/matrix-logo.js.map +1 -1
  261. package/dist/mcp-server-lang.js +39 -0
  262. package/dist/mcp-server-lang.js.map +1 -0
  263. package/dist/mcp-server.js +37 -41
  264. package/dist/mcp-server.js.map +1 -1
  265. package/dist/profiles/analyst.js +10 -0
  266. package/dist/profiles/analyst.js.map +1 -0
  267. package/dist/profiles/bi.js +9 -0
  268. package/dist/profiles/bi.js.map +1 -0
  269. package/dist/profiles/dba.js +21 -0
  270. package/dist/profiles/dba.js.map +1 -0
  271. package/dist/profiles/fullstack.js +9 -0
  272. package/dist/profiles/fullstack.js.map +1 -0
  273. package/dist/profiles/index.js +39 -0
  274. package/dist/profiles/index.js.map +1 -0
  275. package/dist/profiles/mcps.js +23 -0
  276. package/dist/profiles/mcps.js.map +1 -0
  277. package/dist/profiles/qa.js +10 -0
  278. package/dist/profiles/qa.js.map +1 -0
  279. package/dist/profiles/scientist.js +9 -0
  280. package/dist/profiles/scientist.js.map +1 -0
  281. package/dist/profiles/toolchains.js +9 -0
  282. package/dist/profiles/toolchains.js.map +1 -0
  283. package/dist/tools/delegate-exec.js +2 -2
  284. package/dist/tools/delegate-exec.js.map +1 -1
  285. package/dist/tools/env-detect-deps.js +54 -0
  286. package/dist/tools/env-detect-deps.js.map +1 -0
  287. package/dist/tools/env-materialize.js +43 -0
  288. package/dist/tools/env-materialize.js.map +1 -0
  289. package/dist/tools/exec-status.js +1 -1
  290. package/dist/tools/exec-status.js.map +1 -1
  291. package/dist/tools/index.js +12 -32
  292. package/dist/tools/index.js.map +1 -1
  293. package/dist/tools/lang-recipe.js +31 -0
  294. package/dist/tools/lang-recipe.js.map +1 -0
  295. package/dist/tools/lang-reference.js +34 -0
  296. package/dist/tools/lang-reference.js.map +1 -0
  297. package/dist/tools/plan.js +2 -2
  298. package/dist/tools/plan.js.map +1 -1
  299. package/dist/tools/profile-get.js +57 -0
  300. package/dist/tools/profile-get.js.map +1 -0
  301. package/dist/tools/session-activate.js +35 -0
  302. package/dist/tools/session-activate.js.map +1 -0
  303. package/dist/tools/session-create.js +83 -0
  304. package/dist/tools/session-create.js.map +1 -0
  305. package/dist/tools/session-list.js +29 -0
  306. package/dist/tools/session-list.js.map +1 -0
  307. package/dist/tools/session-shared.js +25 -0
  308. package/dist/tools/session-shared.js.map +1 -0
  309. package/dist/tools/validate-plan.js +2 -2
  310. package/dist/tools/validate-plan.js.map +1 -1
  311. package/dist/tui/app.js +116 -0
  312. package/dist/tui/app.js.map +1 -0
  313. package/dist/tui/components.js +0 -0
  314. package/dist/tui/components.js.map +1 -0
  315. package/dist/tui/debug.js +17 -0
  316. package/dist/tui/debug.js.map +1 -0
  317. package/dist/tui/index.js +2 -0
  318. package/dist/tui/index.js.map +1 -0
  319. package/dist/tui/launch.js +64 -0
  320. package/dist/tui/launch.js.map +1 -0
  321. package/dist/tui/markdown.js +40 -0
  322. package/dist/tui/markdown.js.map +1 -0
  323. package/dist/tui/opencode.js +28 -0
  324. package/dist/tui/opencode.js.map +1 -0
  325. package/dist/tui/palette-source.js +71 -0
  326. package/dist/tui/palette-source.js.map +1 -0
  327. package/dist/tui/palette.js +100 -0
  328. package/dist/tui/palette.js.map +1 -0
  329. package/dist/tui/state.js +105 -0
  330. package/dist/tui/state.js.map +1 -0
  331. package/dist/tui/theme.js +14 -0
  332. package/dist/tui/theme.js.map +1 -0
  333. package/docker/docker-compose.yml +44 -0
  334. package/headroom/docker-compose.yml +27 -0
  335. package/package.json +40 -16
  336. package/dist/adapters/supabase/allocation-gateway.js +0 -236
  337. package/dist/adapters/supabase/allocation-gateway.js.map +0 -1
  338. package/dist/adapters/supabase/analytics-gateway.js +0 -18
  339. package/dist/adapters/supabase/analytics-gateway.js.map +0 -1
  340. package/dist/adapters/supabase/client.js +0 -96
  341. package/dist/adapters/supabase/client.js.map +0 -1
  342. package/dist/adapters/supabase/context-gateway.js +0 -23
  343. package/dist/adapters/supabase/context-gateway.js.map +0 -1
  344. package/dist/adapters/supabase/gateway.js +0 -18
  345. package/dist/adapters/supabase/gateway.js.map +0 -1
  346. package/dist/adapters/supabase/task-gateway.js +0 -450
  347. package/dist/adapters/supabase/task-gateway.js.map +0 -1
  348. package/dist/auth.js +0 -118
  349. package/dist/auth.js.map +0 -1
  350. package/dist/cli/commands/init/project-step.js +0 -105
  351. package/dist/cli/commands/init/project-step.js.map +0 -1
  352. package/dist/constants.js +0 -9
  353. package/dist/constants.js.map +0 -1
  354. package/dist/core/ports.js +0 -2
  355. package/dist/core/ports.js.map +0 -1
  356. package/dist/database.types.js +0 -11
  357. package/dist/database.types.js.map +0 -1
  358. package/dist/lib/active-project.js +0 -28
  359. package/dist/lib/active-project.js.map +0 -1
  360. package/dist/lib/autopull.js +0 -13
  361. package/dist/lib/autopull.js.map +0 -1
  362. package/dist/lib/client-configs.js.map +0 -1
  363. package/dist/lib/client-install.js +0 -40
  364. package/dist/lib/client-install.js.map +0 -1
  365. package/dist/lib/dependencies.js.map +0 -1
  366. package/dist/lib/dependency-install.js.map +0 -1
  367. package/dist/lib/exec-delegate.js.map +0 -1
  368. package/dist/lib/exec-engines.js.map +0 -1
  369. package/dist/lib/harness.js.map +0 -1
  370. package/dist/lib/hooks.js.map +0 -1
  371. package/dist/lib/patterns.js.map +0 -1
  372. package/dist/lib/plan-delegate.js.map +0 -1
  373. package/dist/lib/project-context.js +0 -151
  374. package/dist/lib/project-context.js.map +0 -1
  375. package/dist/lib/provision-apply.js.map +0 -1
  376. package/dist/lib/provision-collect.js.map +0 -1
  377. package/dist/lib/provision.js.map +0 -1
  378. package/dist/lib/require-config.js +0 -32
  379. package/dist/lib/require-config.js.map +0 -1
  380. package/dist/lib/rules.js.map +0 -1
  381. package/dist/lib/sections.js +0 -89
  382. package/dist/lib/sections.js.map +0 -1
  383. package/dist/lib/skill-serve.js.map +0 -1
  384. package/dist/lib/skills-cache.js.map +0 -1
  385. package/dist/lib/skills.js.map +0 -1
  386. package/dist/lib/targets.js.map +0 -1
  387. package/dist/lib/task-history.js +0 -15
  388. package/dist/lib/task-history.js.map +0 -1
  389. package/dist/lib/validate-plan-delegate.js.map +0 -1
  390. package/dist/session-factory.js +0 -19
  391. package/dist/session-factory.js.map +0 -1
  392. package/dist/spinner.js.map +0 -1
  393. package/dist/tools/comment-task.js +0 -72
  394. package/dist/tools/comment-task.js.map +0 -1
  395. package/dist/tools/create-task.js +0 -129
  396. package/dist/tools/create-task.js.map +0 -1
  397. package/dist/tools/end-allocation.js +0 -38
  398. package/dist/tools/end-allocation.js.map +0 -1
  399. package/dist/tools/end-task-allocation.js +0 -37
  400. package/dist/tools/end-task-allocation.js.map +0 -1
  401. package/dist/tools/get-active-allocation.js +0 -69
  402. package/dist/tools/get-active-allocation.js.map +0 -1
  403. package/dist/tools/get-context.js +0 -48
  404. package/dist/tools/get-context.js.map +0 -1
  405. package/dist/tools/get-task.js +0 -137
  406. package/dist/tools/get-task.js.map +0 -1
  407. package/dist/tools/list-my-allocations.js +0 -71
  408. package/dist/tools/list-my-allocations.js.map +0 -1
  409. package/dist/tools/list-projects.js +0 -38
  410. package/dist/tools/list-projects.js.map +0 -1
  411. package/dist/tools/list-tasks.js +0 -93
  412. package/dist/tools/list-tasks.js.map +0 -1
  413. package/dist/tools/move-task.js +0 -82
  414. package/dist/tools/move-task.js.map +0 -1
  415. package/dist/tools/record-delivery.js +0 -71
  416. package/dist/tools/record-delivery.js.map +0 -1
  417. package/dist/tools/set-project.js +0 -52
  418. package/dist/tools/set-project.js.map +0 -1
  419. package/dist/tools/start-allocation.js +0 -32
  420. package/dist/tools/start-allocation.js.map +0 -1
  421. package/dist/tools/start-task-allocation.js +0 -75
  422. package/dist/tools/start-task-allocation.js.map +0 -1
  423. package/dist/tools/update-task.js +0 -139
  424. package/dist/tools/update-task.js.map +0 -1
  425. /package/dist/{spinner.js → lib/spinner.js} +0 -0
@@ -0,0 +1,42 @@
1
+ import { toolDefinitions } from '../../../tools/index.js';
2
+ function firstSentence(text) {
3
+ const flat = text.replace(/\s+/g, ' ').trim();
4
+ const stop = flat.search(/\.(\s|$)/);
5
+ return stop > 0 ? flat.slice(0, stop + 1) : flat;
6
+ }
7
+ function walk(cmd, prefix = '') {
8
+ const rows = [];
9
+ for (const sub of cmd.commands) {
10
+ const nm = sub.name();
11
+ if (nm === 'help')
12
+ continue;
13
+ const full = prefix ? `${prefix} ${nm}` : nm;
14
+ const args = sub.commands.length > 0 ? '' : sub.usage().replace(/^\[options\]\s*/, '').trim();
15
+ const desc = sub.description();
16
+ if (desc)
17
+ rows.push([args ? `${full} ${args}` : full, firstSentence(desc)]);
18
+ rows.push(...walk(sub, full));
19
+ }
20
+ return rows;
21
+ }
22
+ export function commandSection(program) {
23
+ const rows = walk(program).sort((a, b) => a[0].localeCompare(b[0]));
24
+ return {
25
+ id: 'comandos',
26
+ title: 'Comandos',
27
+ blurb: `${rows.length} comandos. Ajuda de qualquer um: nio <cmd> --help`,
28
+ blocks: [{ kind: 'table', head: ['Comando', 'O que faz'], rows }],
29
+ };
30
+ }
31
+ export function toolSection() {
32
+ const rows = [...toolDefinitions]
33
+ .sort((a, b) => a.name.localeCompare(b.name))
34
+ .map((t) => [t.name, firstSentence(t.description ?? '')]);
35
+ return {
36
+ id: 'tools-mcp',
37
+ title: 'Tools MCP',
38
+ blurb: 'Expostas pelo servidor nio-cli ao operador de IA. Todas passam pelo SessionManager e exigem nio login.',
39
+ blocks: [{ kind: 'table', head: ['Tool', 'O que faz'], rows }],
40
+ };
41
+ }
42
+ //# sourceMappingURL=dynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../../../src/cli/commands/docs/dynamic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ const esc = (s) => s.replace(/[&<>"]/g, (ch) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' })[ch]);
2
+ const inline = (s) => esc(s).replace(/`([^`]+)`/g, (_m, code) => `<code>${code}</code>`);
3
+ const STYLE = `
4
+ :root{
5
+ --bg:#f6f8f5; --surface:#fff; --ink:#16211a; --muted:#5a6b60; --line:#dde5dd;
6
+ --accent:#1a7f43; --accent-soft:#e3f2e6; --code-bg:#0d130f; --code-ink:#c8e6cf;
7
+ --font:"Inter",ui-sans-serif,-apple-system,"Segoe UI",Roboto,sans-serif;
8
+ --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
9
+ }
10
+ @media (prefers-color-scheme:dark){:root:not([data-theme=light]){
11
+ --bg:#0a0e0b; --surface:#0f150f; --ink:#d7e5da; --muted:#7f9285; --line:#1e2a20;
12
+ --accent:#4ade80; --accent-soft:#122417; --code-bg:#060907; --code-ink:#bfe9c9;
13
+ }}
14
+ :root[data-theme=dark]{
15
+ --bg:#0a0e0b; --surface:#0f150f; --ink:#d7e5da; --muted:#7f9285; --line:#1e2a20;
16
+ --accent:#4ade80; --accent-soft:#122417; --code-bg:#060907; --code-ink:#bfe9c9;
17
+ }
18
+ *{box-sizing:border-box}
19
+ body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);
20
+ line-height:1.65;-webkit-font-smoothing:antialiased}
21
+ a{color:var(--accent);text-decoration:none}
22
+ a:hover{text-decoration:underline}
23
+ code{font-family:var(--mono);font-size:.88em;background:var(--accent-soft);
24
+ color:var(--accent);padding:.1em .38em;border-radius:4px}
25
+ header.top{border-bottom:1px solid var(--line);background:var(--surface);
26
+ position:sticky;top:0;z-index:5}
27
+ .top .inner{max-width:1000px;margin:0 auto;padding:22px 24px;
28
+ display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}
29
+ .brand{font-family:var(--mono);font-weight:700;font-size:1.35rem;letter-spacing:.02em}
30
+ .brand .cursor{color:var(--accent)}
31
+ .ver{font-family:var(--mono);font-size:.78rem;color:var(--muted);
32
+ border:1px solid var(--line);border-radius:999px;padding:.22em .7em;white-space:nowrap}
33
+ button.theme{font:inherit;font-size:.78rem;color:var(--muted);background:none;
34
+ border:1px solid var(--line);border-radius:999px;padding:.28em .8em;cursor:pointer;margin-left:8px}
35
+ .tag{max-width:1000px;margin:0 auto;padding:16px 24px 0;color:var(--muted);font-size:.95rem}
36
+ nav.toc{max-width:1000px;margin:0 auto;padding:14px 24px 26px;display:flex;flex-wrap:wrap;
37
+ gap:6px 16px;font-size:.84rem;border-bottom:1px solid var(--line)}
38
+ nav.toc a{color:var(--muted)}
39
+ nav.toc a:hover,nav.toc a.on{color:var(--accent);text-decoration:none}
40
+ main{max-width:1000px;margin:0 auto;padding:40px 24px 96px}
41
+ section{margin:0 0 48px;scroll-margin-top:80px}
42
+ h2{font-size:1.3rem;margin:0 0 4px;letter-spacing:-.01em}
43
+ .blurb{color:var(--muted);margin:0 0 18px;font-size:.95rem}
44
+ p{margin:0 0 14px;max-width:72ch}
45
+ ul{margin:0 0 16px;padding-left:20px;max-width:74ch}
46
+ li{margin:.4em 0}
47
+ pre{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);
48
+ font-size:.82rem;line-height:1.6;padding:16px 18px;border-radius:10px;
49
+ overflow-x:auto;border:1px solid var(--line);margin:0 0 18px}
50
+ pre code{background:none;color:inherit;padding:0;font-size:inherit}
51
+ .tbl{overflow-x:auto;margin:0 0 18px;border:1px solid var(--line);border-radius:10px}
52
+ table{border-collapse:collapse;width:100%;font-size:.9rem}
53
+ th,td{text-align:left;padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}
54
+ tr:last-child td{border-bottom:0}
55
+ th{font-weight:600;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
56
+ td:first-child{font-family:var(--mono);font-size:.85rem;white-space:nowrap}
57
+ @media(max-width:640px){td:first-child{white-space:normal}}
58
+ `;
59
+ function renderBlock(b) {
60
+ if (b.kind === 'p')
61
+ return `<p>${inline(b.text)}</p>`;
62
+ if (b.kind === 'code')
63
+ return `<pre><code>${esc(b.text)}</code></pre>`;
64
+ if (b.kind === 'list')
65
+ return `<ul>${b.items.map((i) => `<li>${inline(i)}</li>`).join('')}</ul>`;
66
+ const head = b.head.map((h) => `<th>${esc(h)}</th>`).join('');
67
+ const rows = b.rows
68
+ .map((r) => `<tr>${r.map((cell) => `<td>${inline(cell)}</td>`).join('')}</tr>`)
69
+ .join('');
70
+ return `<div class="tbl"><table><thead><tr>${head}</tr></thead><tbody>${rows}</tbody></table></div>`;
71
+ }
72
+ const SCRIPT = `
73
+ const root=document.documentElement,KEY='nio-docs-theme';
74
+ try{const t=localStorage.getItem(KEY);if(t)root.dataset.theme=t}catch(e){}
75
+ document.querySelector('button.theme').onclick=()=>{
76
+ const sysDark=matchMedia('(prefers-color-scheme:dark)').matches;
77
+ const cur=root.dataset.theme||(sysDark?'dark':'light');
78
+ const next=cur==='dark'?'light':'dark';root.dataset.theme=next;
79
+ try{localStorage.setItem(KEY,next)}catch(e){}};
80
+ const links=[...document.querySelectorAll('nav.toc a')];
81
+ addEventListener('scroll',()=>{let on=links[0];
82
+ for(const l of links){const el=document.getElementById(l.hash.slice(1));
83
+ if(el&&el.getBoundingClientRect().top<140)on=l}
84
+ links.forEach(l=>l.classList.toggle('on',l===on))},{passive:true});
85
+ `;
86
+ export function renderHtml(sections, version, tagline) {
87
+ const nav = sections
88
+ .map((s) => `<a href="#${s.id}">${esc(s.title)}</a>`)
89
+ .join(' ');
90
+ const body = sections
91
+ .map((s) => `<section id="${s.id}"><h2>${esc(s.title)}</h2>` +
92
+ (s.blurb ? `<p class="blurb">${inline(s.blurb)}</p>` : '') +
93
+ s.blocks.map(renderBlock).join('') +
94
+ `</section>`)
95
+ .join('');
96
+ return `<!doctype html><html lang="pt-BR"><head><meta charset="utf-8">
97
+ <meta name="viewport" content="width=device-width,initial-scale=1">
98
+ <title>NIO-CLI — documentação</title><style>${STYLE}</style></head><body>
99
+ <header class="top"><div class="inner">
100
+ <div class="brand">nio<span class="cursor">_</span></div>
101
+ <div style="white-space:nowrap"><span class="ver">v${esc(version)}</span>
102
+ <button class="theme">tema</button></div></div></header>
103
+ <p class="tag">${esc(tagline)}</p>
104
+ <nav class="toc">${nav}</nav>
105
+ <main>${body}</main>
106
+ <script>${SCRIPT}</script></body></html>`;
107
+ }
108
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../../../src/cli/commands/docs/html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { c, sym, rule, highlightInlineCode, indent } from '../../../lib/colors.js';
2
+ function codeBlock(text) {
3
+ return text
4
+ .split('\n')
5
+ .map((l) => `${c.dim('│')} ${c.cyan(l)}`)
6
+ .join('\n');
7
+ }
8
+ function defList(head, rows) {
9
+ return rows
10
+ .map((r) => {
11
+ const term = c.bold(r[0] ?? '');
12
+ const rest = r.slice(1).map((cell) => highlightInlineCode(cell)).join(' — ');
13
+ return rest ? `${term}\n${indent(c.dim(rest), 2)}` : term;
14
+ })
15
+ .join('\n');
16
+ }
17
+ function renderBlock(b) {
18
+ switch (b.kind) {
19
+ case 'p':
20
+ return highlightInlineCode(b.text);
21
+ case 'code':
22
+ return codeBlock(b.text);
23
+ case 'list':
24
+ return b.items.map((it) => `${c.dim(sym.bullet)} ${highlightInlineCode(it)}`).join('\n');
25
+ case 'table':
26
+ return defList(b.head, b.rows);
27
+ }
28
+ }
29
+ export function renderTerminal(sections, version) {
30
+ const parts = [c.bold(`NIO-CLI ${c.dim('v' + version)}`), ''];
31
+ for (const s of sections) {
32
+ parts.push(rule(), c.bold.underline(s.title.toUpperCase()));
33
+ if (s.blurb)
34
+ parts.push(c.dim(s.blurb));
35
+ parts.push('');
36
+ for (const b of s.blocks)
37
+ parts.push(indent(renderBlock(b), 2), '');
38
+ }
39
+ parts.push(rule(), c.dim('Página com arte: nio docs --html --open'));
40
+ return parts.join('\n');
41
+ }
42
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../../src/cli/commands/docs/terminal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { VERSION } from "../../version.js";
4
+ import { c, sym } from "../../lib/colors.js";
5
+ import { openUrl } from "../../lib/open-url.js";
6
+ import { homePath } from "../../brand.js";
7
+ import { SECTIONS, TAGLINE } from "./docs/content.js";
8
+ import { commandSection, toolSection } from "./docs/dynamic.js";
9
+ import { renderTerminal } from "./docs/terminal.js";
10
+ import { renderHtml } from "./docs/html.js";
11
+ function allSections(program) {
12
+ return [...SECTIONS, commandSection(program), toolSection()];
13
+ }
14
+ export function registerDocsCommand(program) {
15
+ program
16
+ .command("docs")
17
+ .description("Documentação completa da CLI (terminal ou página com --html)")
18
+ .option("--html", "gera a página HTML em vez de imprimir no terminal")
19
+ .option("--open", "abre a página no navegador (implica --html)")
20
+ .option("-o, --out <path>", "caminho do HTML (default ~/.nio/nio-docs.html)")
21
+ .action((opts) => {
22
+ const sections = allSections(program);
23
+ if (!opts.html && !opts.open) {
24
+ console.log(renderTerminal(sections, VERSION));
25
+ return;
26
+ }
27
+ const out = resolve(opts.out ?? homePath("nio-docs.html"));
28
+ writeFileSync(out, renderHtml(sections, VERSION, TAGLINE), "utf8");
29
+ console.log(`${c.green(sym.ok)} página gerada: ${c.cyan(out)}`);
30
+ if (opts.open)
31
+ openUrl(out);
32
+ });
33
+ }
34
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,SAAS,WAAW,CAAC,OAAgB;IACnC,OAAO,CAAC,GAAG,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,mDAAmD,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,6CAA6C,CAAC;SAC/D,MAAM,CAAC,kBAAkB,EAAE,gDAAgD,CAAC;SAC5E,MAAM,CAAC,CAAC,IAAsD,EAAE,EAAE;QACjE,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAC3D,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,11 +1,7 @@
1
1
  import { brand } from "../../brand.js";
2
2
  import { existsSync } from "node:fs";
3
- import { runExec, getJob } from "../../lib/exec-delegate.js";
4
- import { ENGINES, DEFAULT_ENGINE, parseEngine, } from "../../lib/exec-engines.js";
5
- /**
6
- * Superfície de CLI da delegação headless — o que o nio Studio (Tauri) chama.
7
- * Contrato: **stdout = JSON** (parseável), **stderr = log ao vivo** (streamável).
8
- */
3
+ import { runExec, getJob } from "../../lib/exec/exec-delegate.js";
4
+ import { ENGINES, DEFAULT_ENGINE, parseEngine, } from "../../lib/exec/exec-engines.js";
9
5
  function emit(payload) {
10
6
  process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
11
7
  }
@@ -42,7 +38,6 @@ export function registerExecCommand(program) {
42
38
  if (job.state !== "done")
43
39
  process.exitCode = 1;
44
40
  });
45
- // Comando separado (não subcomando): opções `required` do pai bloqueariam o parse.
46
41
  program
47
42
  .command("exec-status <jobId>")
48
43
  .description(`Estado de um job de execução (\`${brand.name} exec\`), em JSON`)
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,OAAO,EACP,cAAc,EACd,WAAW,GACZ,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AAEH,SAAS,IAAI,CAAC,OAAgB;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sEAAsE;QACpE,mDAAmD,CACtD;SACA,cAAc,CACb,mBAAmB,EACnB,oDAAoD,CACrD;SACA,cAAc,CACb,uBAAuB,EACvB,wCAAwC,CACzC;SACA,MAAM,CACL,mBAAmB,EACnB,uBAAuB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAC7C,cAAc,CACf;SACA,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;SAC1D,MAAM,CACL,KAAK,EAAE,IAKN,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,KAAK,EAAE,oBAAoB,IAAI,CAAC,MAAM,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC7E,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjD,CAAC,CACF,CAAC;IAEJ,mFAAmF;IACnF,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,mCAAmC,KAAK,CAAC,IAAI,mBAAmB,CAAC;SAC7E,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,OAAO,EACP,cAAc,EACd,WAAW,GACZ,MAAM,gCAAgC,CAAC;AAOxC,SAAS,IAAI,CAAC,OAAgB;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sEAAsE;QACpE,mDAAmD,CACtD;SACA,cAAc,CACb,mBAAmB,EACnB,oDAAoD,CACrD;SACA,cAAc,CACb,uBAAuB,EACvB,wCAAwC,CACzC;SACA,MAAM,CACL,mBAAmB,EACnB,uBAAuB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAC7C,cAAc,CACf;SACA,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;SAC1D,MAAM,CACL,KAAK,EAAE,IAKN,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,KAAK,EAAE,oBAAoB,IAAI,CAAC,MAAM,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC7E,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjD,CAAC,CACF,CAAC;IAGJ,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,mCAAmC,KAAK,CAAC,IAAI,mBAAmB,CAAC;SAC7E,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,49 +1,14 @@
1
- import { password } from "../../../lib/prompts.js";
1
+ import { loadSession } from "../../../lib/auth/session-store.js";
2
2
  import { brand } from "../../../brand.js";
3
- import { exchangePatForJwt, loadCredentials, saveCredentials, validatePatFormat, } from "../../../auth.js";
4
- import { createAuthenticatedClient } from "../../../adapters/supabase/client.js";
5
- import { startSpinner } from "../../../spinner.js";
6
- import { initCopy } from "../../copy.js";
7
- /**
8
- * Garante que há credenciais locais antes de seguir com o wizard: se já há PAT
9
- * salvo, não faz nada; senão, pede o token, valida e troca por sessão.
10
- */
11
- export async function ensureAuthenticated() {
12
- const existingCreds = await loadCredentials();
13
- if (existingCreds)
14
- return;
15
- console.log("Você ainda não está autenticado.");
16
- if (brand.webUrl)
17
- console.log(`Gere um token pessoal em: ${brand.webUrl}/profile#mcp`);
18
- const newPat = (await password({
19
- message: initCopy.patPrompt,
20
- mask: "*",
21
- validate: (value) => validatePatFormat(value.trim()) || initCopy.patInvalid,
22
- })).trim();
23
- const loginSpinner = startSpinner("Validando token...");
24
- try {
25
- const result = await exchangePatForJwt(newPat);
26
- await saveCredentials({ pat: newPat });
27
- loginSpinner.stop();
28
- const displayName = result.user.full_name || result.user.email;
29
- console.log(`[ok] Autenticado como ${displayName}`);
30
- }
31
- catch (err) {
32
- loginSpinner.fail(`Falha ao autenticar: ${err.message}`);
33
- process.exit(1);
34
- }
35
- }
36
- /** Cria a sessão autenticada (client Supabase + user) usada pelo resto do wizard. */
37
- export async function createSessionStep() {
38
- const authSpinner = startSpinner("Carregando sessão...");
39
- try {
40
- const session = await createAuthenticatedClient();
41
- authSpinner.stop();
3
+ import { box, c, sym, cmd } from "../../../lib/colors.js";
4
+ export async function requireLocalSessionStep() {
5
+ const session = await loadSession();
6
+ if (session)
42
7
  return session;
43
- }
44
- catch (err) {
45
- authSpinner.fail(err.message);
46
- process.exit(1);
47
- }
8
+ console.log(box(`${c.yellow(sym.warn)} ${c.bold("Você ainda não está autenticado.")}\n` +
9
+ `${c.dim("crie um usuário:")} ${cmd(`${brand.name} register`)}\n` +
10
+ `${c.dim("depois entre com:")} ${cmd(`${brand.name} login`)}\n` +
11
+ `${c.dim("ou seja conduzido:")} ${cmd(`${brand.name} start`)}`, { borderColor: "yellow", title: "Autenticação necessária" }));
12
+ process.exit(1);
48
13
  }
49
14
  //# sourceMappingURL=auth-step.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/auth-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAA6B,MAAM,sCAAsC,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,aAAa,GAAG,MAAM,eAAe,EAAE,CAAC;IAC9C,IAAI,aAAa;QAAE,OAAO;IAE1B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,MAAM,cAAc,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,CACb,MAAM,QAAQ,CAAC;QACb,OAAO,EAAE,QAAQ,CAAC,SAAS;QAC3B,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,UAAU;KACzD,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;IAET,MAAM,YAAY,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,YAAY,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,yBAAyB,EAAE,CAAC;QAClD,WAAW,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,IAAI,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auth-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/auth-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAQ1D,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IACpC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,OAAO,CAAC,GAAG,CACT,GAAG,CACD,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,IAAI;QACrE,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI;QACjE,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI;QAC/D,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,EAAE,EAChE,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAC5D,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1,66 +1,39 @@
1
1
  import { checkbox } from "../../../lib/prompts.js";
2
2
  import { section } from "../../../lib/colors.js";
3
- import { CLIENTS } from "../../../lib/client-install.js";
4
- import { installClaudeCodeGlobal, installClaudeCodeRepo, installCodexGlobal, installVSCodeRepo, } from "../../../lib/client-configs.js";
3
+ import { CLIENTS } from "../../../lib/clients/client-install.js";
4
+ import { installOpencodeGlobal } from "../../../lib/clients/client-configs.js";
5
5
  import { printInstallResult } from "../../ui/render.js";
6
- import { ensureClientInstalled, activateCowork } from "../../flows/clients.js";
6
+ import { ensureClientInstalled } from "../../flows/clients.js";
7
7
  import { initCopy } from "../../copy.js";
8
- /** Rótulo + rotina de instalação de cada escolha do checkbox (exceto `cowork`,
9
- * que tem ativação assíncrona própria — ver `activateCoworkIfChosen`). */
10
8
  export const CLIENT_INSTALLERS = {
11
- "claude-code-global": { label: "Claude Code (global)", run: () => installClaudeCodeGlobal() },
12
- "codex-global": { label: "Codex CLI (global)", run: () => installCodexGlobal() },
13
- "claude-code-repo": { label: "Claude Code (per-repo)", run: (cwd) => installClaudeCodeRepo(cwd) },
14
- "vscode-repo": { label: "VS Code Copilot (per-repo)", run: (cwd) => installVSCodeRepo(cwd) },
9
+ "opencode-global": {
10
+ label: "OpenCode (global)",
11
+ run: (_cwd, profileMcps) => installOpencodeGlobal(profileMcps),
12
+ },
15
13
  };
16
14
  export async function promptClientChoices() {
17
15
  return checkbox({
18
16
  message: initCopy.clientsPrompt,
19
17
  all: true,
20
- choices: [
21
- { name: initCopy.clientChoices.claudeGlobal, value: "claude-code-global" },
22
- { name: initCopy.clientChoices.codexGlobal, value: "codex-global" },
23
- { name: initCopy.clientChoices.cowork, value: "cowork" },
24
- { name: initCopy.clientChoices.claudeRepo, value: "claude-code-repo" },
25
- { name: initCopy.clientChoices.vscodeRepo, value: "vscode-repo" },
26
- ],
18
+ choices: [{ name: initCopy.clientChoices.opencodeGlobal, value: "opencode-global" }],
27
19
  });
28
20
  }
29
- /** Roda a instalação de cada cliente escolhido (exceto `cowork`, tratado à parte). */
30
- export function installClients(clientConfigs, cwd) {
21
+ export function installClients(clientConfigs, cwd, profileMcps = []) {
31
22
  for (const choice of clientConfigs) {
32
- if (choice === "cowork")
33
- continue; // ativação async + fallback, tratada abaixo
34
23
  const installer = CLIENT_INSTALLERS[choice];
35
24
  try {
36
- printInstallResult(installer.label, installer.run(cwd));
25
+ printInstallResult(installer.label, installer.run(cwd, profileMcps));
37
26
  }
38
27
  catch (err) {
39
28
  console.error(`[erro] Falha ao configurar ${choice}: ${err.message}`);
40
29
  }
41
30
  }
42
31
  }
43
- export async function activateCoworkIfChosen(clientConfigs) {
44
- if (!clientConfigs.includes("cowork"))
45
- return;
46
- console.log("");
47
- section("Claude Desktop / Cowork");
48
- await activateCowork({ interactive: true });
49
- }
50
- /**
51
- * Dado o resultado do checkbox de clientes, quais IDs (`CLIENTS[id]`) devem
52
- * ser conferidos como instalados — várias escolhas do mesmo cliente colapsam
53
- * num id só (ex.: claude-code-global e claude-code-repo → "claude-code").
54
- */
55
32
  export function resolveChosenClientIds(clientConfigs) {
56
33
  const ids = new Set();
57
34
  for (const choice of clientConfigs) {
58
- if (choice.startsWith("claude-code"))
59
- ids.add("claude-code");
60
- if (choice === "codex-global")
61
- ids.add("codex");
62
- if (choice === "vscode-repo")
63
- ids.add("vscode");
35
+ if (choice === "opencode-global")
36
+ ids.add("opencode");
64
37
  }
65
38
  return ids;
66
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clients-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/clients-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clients-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/clients-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAsB,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAUzC,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,iBAAiB,EAAE;QACjB,KAAK,EAAE,mBAAmB;QAC1B,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC;KAC/D;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,QAAQ,CAAe;QAC5B,OAAO,EAAE,QAAQ,CAAC,aAAa;QAC/B,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;KACrF,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,UAAU,cAAc,CAC5B,aAA6B,EAC7B,GAAW,EACX,cAAyB,EAAE;IAE3B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,kBAAkB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,sBAAsB,CAAC,aAA6B;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,MAAM,KAAK,iBAAiB;YAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,eAAoC;IAEpC,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;IACxD,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
@@ -1,15 +1,12 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { confirm } from "../../../lib/prompts.js";
3
3
  import { c } from "../../../lib/colors.js";
4
- import { startSpinner } from "../../../spinner.js";
5
4
  import { writeProjectConfig, writeUserConfig, fixGitignoreForSplit, USER_CONFIG_FILE, } from "../../../config.js";
6
5
  import { brand } from "../../../brand.js";
7
- import { fetchProjectContext, buildProjectOverview, ProjectContextError, } from "../../../lib/project-context.js";
8
- import { concatenateRules } from "../../../lib/rules.js";
9
- import { writeRepoHarness } from "../../../lib/harness.js";
10
- import { printContextSummary, printHarnessResult } from "../../ui/render.js";
6
+ import { concatenateRules } from "../../../lib/skills/rules.js";
7
+ import { writeRepoHarness } from "../../../lib/clients/harness.js";
8
+ import { printHarnessResult } from "../../ui/render.js";
11
9
  import { initCopy } from "../../copy.js";
12
- /** Se já existe nio.json, confirma a sobrescrita. `true` = segue com o wizard. */
13
10
  export async function confirmOverwriteIfExists(configPath) {
14
11
  if (!existsSync(configPath))
15
12
  return true;
@@ -18,44 +15,21 @@ export async function confirmOverwriteIfExists(configPath) {
18
15
  console.log("Operação cancelada.");
19
16
  return overwrite;
20
17
  }
21
- /**
22
- * Grava a config: `nio.json` (repo, versionado — binding + seleção) + `nio.user.json`
23
- * (usuário, gitignored — ide). Ajusta o `.gitignore` (ignora só o user file). Best-effort.
24
- */
25
18
  export function persistConfigStep(config, projectName) {
26
19
  writeProjectConfig(config);
27
20
  writeUserConfig({ ide: config.ide });
28
- console.log(`[ok] Criado ${brand.projectConfigFile} (do repo) apontando para ${projectName}.`);
21
+ const target = projectName
22
+ ? ` apontando para ${projectName}`
23
+ : " (setup local — sem projeto vinculado)";
24
+ console.log(`[ok] Criado ${brand.projectConfigFile} (do repo)${target}.`);
29
25
  console.log(`${c.dim(` + ${USER_CONFIG_FILE} (suas prefs, gitignored)`)}`);
30
26
  try {
31
27
  fixGitignoreForSplit();
32
28
  console.log(`${c.dim(` + ${USER_CONFIG_FILE} adicionado ao .gitignore`)}`);
33
29
  }
34
30
  catch {
35
- /* .gitignore best-effort — não bloqueia o init */
36
31
  }
37
32
  }
38
- /**
39
- * Carrega o contexto do projeto (specs/ADRs/membros) e monta o overview pro
40
- * AGENTS.md. Falha aqui é degradada: o nio.json já foi salvo, então só avisa
41
- * e devolve overview vazio.
42
- */
43
- export async function loadContextStep(supabase, config, user) {
44
- const contextSpinner = startSpinner("Carregando contexto do projeto...");
45
- try {
46
- const context = await fetchProjectContext(supabase, config, user);
47
- contextSpinner.stop();
48
- printContextSummary(context);
49
- return buildProjectOverview(context);
50
- }
51
- catch (err) {
52
- const message = err instanceof ProjectContextError ? err.message : err.message;
53
- contextSpinner.fail(`Não foi possível carregar o contexto: ${message}`);
54
- console.error(`O ${brand.projectConfigFile} foi salvo. Rode \`${brand.name} init\` de novo se precisar revincular.`);
55
- return "";
56
- }
57
- }
58
- /** Harness no repo: rules concatenadas + AGENTS.md (overview do NOS) + CLAUDE.md. */
59
33
  export function writeHarnessStep(config, overview) {
60
34
  try {
61
35
  const h = writeRepoHarness(process.cwd(), {
@@ -1 +1 @@
1
- {"version":3,"file":"context-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/context-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/context-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IAC/D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAAC,MAAqB,EAAE,WAAoB;IAC3E,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,WAAW;QACxB,CAAC,CAAC,mBAAmB,WAAW,EAAE;QAClC,CAAC,CAAC,wCAAwC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,iBAAiB,aAAa,MAAM,GAAG,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,gBAAgB,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,oBAAoB,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,gBAAgB,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAAC,MAAqB,EAAE,QAAgB;IACtE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE;YACxC,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC9E,QAAQ;SACT,CAAC,CAAC;QACH,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4CAA6C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { HeadroomRequiredError } from "../../../app/ai-client.js";
2
+ import { brand } from "../../../brand.js";
3
+ import { section, c, sym } from "../../../lib/colors.js";
4
+ export async function handoffToOperator(cwd = process.cwd()) {
5
+ console.log("");
6
+ section("Handoff", "abrindo a interface NIO (via Headroom)");
7
+ try {
8
+ const { launchNioTui } = await import("../../../tui/index.js");
9
+ await launchNioTui({ cwd });
10
+ }
11
+ catch (err) {
12
+ if (err instanceof HeadroomRequiredError) {
13
+ console.log(` ${c.yellow(sym.warn)} ${err.message}`);
14
+ console.log(` ${c.dim(`suba o Docker e rode \`${brand.name} ai\` pra entrar na sessão.`)}`);
15
+ return;
16
+ }
17
+ throw err;
18
+ }
19
+ }
20
+ //# sourceMappingURL=handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAMzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,SAAS,EAAE,wCAAwC,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC/D,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,IAAI,6BAA6B,CAAC,EAAE,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}