@noclaf/cli 0.8.0 → 0.9.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 (306) hide show
  1. package/README.md +26 -88
  2. package/dist/app.js +13 -0
  3. package/dist/app.js.map +1 -0
  4. package/dist/brand.js +9 -49
  5. package/dist/brand.js.map +1 -1
  6. package/dist/cli.js +3 -37
  7. package/dist/cli.js.map +1 -1
  8. package/dist/mcp-server.js +3 -187
  9. package/dist/mcp-server.js.map +1 -1
  10. package/package.json +8 -17
  11. package/dist/adapters/supabase/allocation-gateway.js +0 -291
  12. package/dist/adapters/supabase/allocation-gateway.js.map +0 -1
  13. package/dist/adapters/supabase/analytics-gateway.js +0 -18
  14. package/dist/adapters/supabase/analytics-gateway.js.map +0 -1
  15. package/dist/adapters/supabase/calendar-gateway.js +0 -48
  16. package/dist/adapters/supabase/calendar-gateway.js.map +0 -1
  17. package/dist/adapters/supabase/calendar-write-gateway.js +0 -35
  18. package/dist/adapters/supabase/calendar-write-gateway.js.map +0 -1
  19. package/dist/adapters/supabase/checklist-gateway.js +0 -63
  20. package/dist/adapters/supabase/checklist-gateway.js.map +0 -1
  21. package/dist/adapters/supabase/client.js +0 -136
  22. package/dist/adapters/supabase/client.js.map +0 -1
  23. package/dist/adapters/supabase/context-gateway.js +0 -23
  24. package/dist/adapters/supabase/context-gateway.js.map +0 -1
  25. package/dist/adapters/supabase/gateway.js +0 -28
  26. package/dist/adapters/supabase/gateway.js.map +0 -1
  27. package/dist/adapters/supabase/release-gateway.js +0 -61
  28. package/dist/adapters/supabase/release-gateway.js.map +0 -1
  29. package/dist/adapters/supabase/sprint-gateway.js +0 -59
  30. package/dist/adapters/supabase/sprint-gateway.js.map +0 -1
  31. package/dist/adapters/supabase/task-gateway.js +0 -533
  32. package/dist/adapters/supabase/task-gateway.js.map +0 -1
  33. package/dist/auth.js +0 -141
  34. package/dist/auth.js.map +0 -1
  35. package/dist/cli/commands/auth.js +0 -127
  36. package/dist/cli/commands/auth.js.map +0 -1
  37. package/dist/cli/commands/clean.js +0 -120
  38. package/dist/cli/commands/clean.js.map +0 -1
  39. package/dist/cli/commands/completion.js +0 -114
  40. package/dist/cli/commands/completion.js.map +0 -1
  41. package/dist/cli/commands/exec.js +0 -69
  42. package/dist/cli/commands/exec.js.map +0 -1
  43. package/dist/cli/commands/init/analyze-step.js +0 -21
  44. package/dist/cli/commands/init/analyze-step.js.map +0 -1
  45. package/dist/cli/commands/init/apply-answers.js +0 -122
  46. package/dist/cli/commands/init/apply-answers.js.map +0 -1
  47. package/dist/cli/commands/init/apply-step.js +0 -165
  48. package/dist/cli/commands/init/apply-step.js.map +0 -1
  49. package/dist/cli/commands/init/auth-step.js +0 -48
  50. package/dist/cli/commands/init/auth-step.js.map +0 -1
  51. package/dist/cli/commands/init/boilerplate-step.js +0 -20
  52. package/dist/cli/commands/init/boilerplate-step.js.map +0 -1
  53. package/dist/cli/commands/init/clients-step.js +0 -78
  54. package/dist/cli/commands/init/clients-step.js.map +0 -1
  55. package/dist/cli/commands/init/context-step.js +0 -81
  56. package/dist/cli/commands/init/context-step.js.map +0 -1
  57. package/dist/cli/commands/init/describe-step.js +0 -68
  58. package/dist/cli/commands/init/describe-step.js.map +0 -1
  59. package/dist/cli/commands/init/index.js +0 -98
  60. package/dist/cli/commands/init/index.js.map +0 -1
  61. package/dist/cli/commands/init/mode.js +0 -18
  62. package/dist/cli/commands/init/mode.js.map +0 -1
  63. package/dist/cli/commands/init/progress.js +0 -60
  64. package/dist/cli/commands/init/progress.js.map +0 -1
  65. package/dist/cli/commands/init/project-step.js +0 -133
  66. package/dist/cli/commands/init/project-step.js.map +0 -1
  67. package/dist/cli/commands/init/provision-step.js +0 -103
  68. package/dist/cli/commands/init/provision-step.js.map +0 -1
  69. package/dist/cli/commands/map.js +0 -18
  70. package/dist/cli/commands/map.js.map +0 -1
  71. package/dist/cli/commands/plan.js +0 -45
  72. package/dist/cli/commands/plan.js.map +0 -1
  73. package/dist/cli/commands/skills.js +0 -23
  74. package/dist/cli/commands/skills.js.map +0 -1
  75. package/dist/cli/commands/sync.js +0 -319
  76. package/dist/cli/commands/sync.js.map +0 -1
  77. package/dist/cli/commands/validate-plan.js +0 -42
  78. package/dist/cli/commands/validate-plan.js.map +0 -1
  79. package/dist/cli/commands/wave.js +0 -57
  80. package/dist/cli/commands/wave.js.map +0 -1
  81. package/dist/cli/copy/auth.json +0 -6
  82. package/dist/cli/copy/flows.json +0 -6
  83. package/dist/cli/copy/init.json +0 -20
  84. package/dist/cli/copy/sync.json +0 -3
  85. package/dist/cli/copy.js +0 -23
  86. package/dist/cli/copy.js.map +0 -1
  87. package/dist/cli/flows/clients.js +0 -130
  88. package/dist/cli/flows/clients.js.map +0 -1
  89. package/dist/cli/flows/completion.js +0 -63
  90. package/dist/cli/flows/completion.js.map +0 -1
  91. package/dist/cli/flows/dependencies.js +0 -114
  92. package/dist/cli/flows/dependencies.js.map +0 -1
  93. package/dist/cli/flows/sections.js +0 -85
  94. package/dist/cli/flows/sections.js.map +0 -1
  95. package/dist/cli/flows/user-config.js +0 -37
  96. package/dist/cli/flows/user-config.js.map +0 -1
  97. package/dist/cli/ui/render.js +0 -239
  98. package/dist/cli/ui/render.js.map +0 -1
  99. package/dist/cli/ui/report.js +0 -130
  100. package/dist/cli/ui/report.js.map +0 -1
  101. package/dist/config.js +0 -289
  102. package/dist/config.js.map +0 -1
  103. package/dist/constants.js +0 -9
  104. package/dist/constants.js.map +0 -1
  105. package/dist/core/ports.js +0 -2
  106. package/dist/core/ports.js.map +0 -1
  107. package/dist/core/types.js +0 -5
  108. package/dist/core/types.js.map +0 -1
  109. package/dist/database.types.js +0 -11
  110. package/dist/database.types.js.map +0 -1
  111. package/dist/lib/active-project.js +0 -28
  112. package/dist/lib/active-project.js.map +0 -1
  113. package/dist/lib/autopull.js +0 -13
  114. package/dist/lib/autopull.js.map +0 -1
  115. package/dist/lib/boilerplate-scaffold.js +0 -65
  116. package/dist/lib/boilerplate-scaffold.js.map +0 -1
  117. package/dist/lib/boilerplates.js +0 -61
  118. package/dist/lib/boilerplates.js.map +0 -1
  119. package/dist/lib/calendar-logic.js +0 -59
  120. package/dist/lib/calendar-logic.js.map +0 -1
  121. package/dist/lib/calendar-write-logic.js +0 -6
  122. package/dist/lib/calendar-write-logic.js.map +0 -1
  123. package/dist/lib/checklist-logic.js +0 -5
  124. package/dist/lib/checklist-logic.js.map +0 -1
  125. package/dist/lib/client-configs.js +0 -191
  126. package/dist/lib/client-configs.js.map +0 -1
  127. package/dist/lib/client-install.js +0 -40
  128. package/dist/lib/client-install.js.map +0 -1
  129. package/dist/lib/colors.js +0 -92
  130. package/dist/lib/colors.js.map +0 -1
  131. package/dist/lib/cowork-extension.js +0 -143
  132. package/dist/lib/cowork-extension.js.map +0 -1
  133. package/dist/lib/dates.js +0 -21
  134. package/dist/lib/dates.js.map +0 -1
  135. package/dist/lib/dependencies.js +0 -145
  136. package/dist/lib/dependencies.js.map +0 -1
  137. package/dist/lib/dependency-install.js +0 -163
  138. package/dist/lib/dependency-install.js.map +0 -1
  139. package/dist/lib/duration.js +0 -5
  140. package/dist/lib/duration.js.map +0 -1
  141. package/dist/lib/exec-delegate.js +0 -218
  142. package/dist/lib/exec-delegate.js.map +0 -1
  143. package/dist/lib/exec-engines.js +0 -90
  144. package/dist/lib/exec-engines.js.map +0 -1
  145. package/dist/lib/exec-events.js +0 -87
  146. package/dist/lib/exec-events.js.map +0 -1
  147. package/dist/lib/exec-translators.js +0 -198
  148. package/dist/lib/exec-translators.js.map +0 -1
  149. package/dist/lib/file-merge.js +0 -33
  150. package/dist/lib/file-merge.js.map +0 -1
  151. package/dist/lib/git-exposure.js +0 -35
  152. package/dist/lib/git-exposure.js.map +0 -1
  153. package/dist/lib/harness.js +0 -127
  154. package/dist/lib/harness.js.map +0 -1
  155. package/dist/lib/hooks.js +0 -216
  156. package/dist/lib/hooks.js.map +0 -1
  157. package/dist/lib/patterns.js +0 -25
  158. package/dist/lib/patterns.js.map +0 -1
  159. package/dist/lib/pg-error.js +0 -53
  160. package/dist/lib/pg-error.js.map +0 -1
  161. package/dist/lib/plan-delegate.js +0 -117
  162. package/dist/lib/plan-delegate.js.map +0 -1
  163. package/dist/lib/project-context.js +0 -151
  164. package/dist/lib/project-context.js.map +0 -1
  165. package/dist/lib/prompts.js +0 -69
  166. package/dist/lib/prompts.js.map +0 -1
  167. package/dist/lib/provision-apply.js +0 -220
  168. package/dist/lib/provision-apply.js.map +0 -1
  169. package/dist/lib/provision-collect.js +0 -47
  170. package/dist/lib/provision-collect.js.map +0 -1
  171. package/dist/lib/provision.js +0 -45
  172. package/dist/lib/provision.js.map +0 -1
  173. package/dist/lib/release-logic.js +0 -10
  174. package/dist/lib/release-logic.js.map +0 -1
  175. package/dist/lib/repo-map.js +0 -176
  176. package/dist/lib/repo-map.js.map +0 -1
  177. package/dist/lib/require-config.js +0 -32
  178. package/dist/lib/require-config.js.map +0 -1
  179. package/dist/lib/rules.js +0 -146
  180. package/dist/lib/rules.js.map +0 -1
  181. package/dist/lib/sections.js +0 -89
  182. package/dist/lib/sections.js.map +0 -1
  183. package/dist/lib/skill-agent.js +0 -44
  184. package/dist/lib/skill-agent.js.map +0 -1
  185. package/dist/lib/skill-serve.js +0 -128
  186. package/dist/lib/skill-serve.js.map +0 -1
  187. package/dist/lib/skills-cache.js +0 -99
  188. package/dist/lib/skills-cache.js.map +0 -1
  189. package/dist/lib/skills.js +0 -237
  190. package/dist/lib/skills.js.map +0 -1
  191. package/dist/lib/sprint-deadline.js +0 -28
  192. package/dist/lib/sprint-deadline.js.map +0 -1
  193. package/dist/lib/sprint-logic.js +0 -31
  194. package/dist/lib/sprint-logic.js.map +0 -1
  195. package/dist/lib/targets.js +0 -150
  196. package/dist/lib/targets.js.map +0 -1
  197. package/dist/lib/task-history.js +0 -15
  198. package/dist/lib/task-history.js.map +0 -1
  199. package/dist/lib/telemetry.js +0 -51
  200. package/dist/lib/telemetry.js.map +0 -1
  201. package/dist/lib/tool-result.js +0 -15
  202. package/dist/lib/tool-result.js.map +0 -1
  203. package/dist/lib/validate-plan-delegate.js +0 -106
  204. package/dist/lib/validate-plan-delegate.js.map +0 -1
  205. package/dist/lib/version-check.js +0 -89
  206. package/dist/lib/version-check.js.map +0 -1
  207. package/dist/lib/wave-scheduler.js +0 -95
  208. package/dist/lib/wave-scheduler.js.map +0 -1
  209. package/dist/session-factory.js +0 -19
  210. package/dist/session-factory.js.map +0 -1
  211. package/dist/spinner.js +0 -12
  212. package/dist/spinner.js.map +0 -1
  213. package/dist/tools/activate-sprint.js +0 -44
  214. package/dist/tools/activate-sprint.js.map +0 -1
  215. package/dist/tools/add-checklist-item.js +0 -44
  216. package/dist/tools/add-checklist-item.js.map +0 -1
  217. package/dist/tools/add-checklist.js +0 -63
  218. package/dist/tools/add-checklist.js.map +0 -1
  219. package/dist/tools/add-holiday.js +0 -41
  220. package/dist/tools/add-holiday.js.map +0 -1
  221. package/dist/tools/add-home-office.js +0 -31
  222. package/dist/tools/add-home-office.js.map +0 -1
  223. package/dist/tools/add-vacation.js +0 -39
  224. package/dist/tools/add-vacation.js.map +0 -1
  225. package/dist/tools/attach-pr.js +0 -97
  226. package/dist/tools/attach-pr.js.map +0 -1
  227. package/dist/tools/comment-task.js +0 -72
  228. package/dist/tools/comment-task.js.map +0 -1
  229. package/dist/tools/create-release.js +0 -46
  230. package/dist/tools/create-release.js.map +0 -1
  231. package/dist/tools/create-sprint.js +0 -66
  232. package/dist/tools/create-sprint.js.map +0 -1
  233. package/dist/tools/create-task.js +0 -174
  234. package/dist/tools/create-task.js.map +0 -1
  235. package/dist/tools/delegate-exec.js +0 -63
  236. package/dist/tools/delegate-exec.js.map +0 -1
  237. package/dist/tools/end-allocation.js +0 -38
  238. package/dist/tools/end-allocation.js.map +0 -1
  239. package/dist/tools/end-sprint.js +0 -37
  240. package/dist/tools/end-sprint.js.map +0 -1
  241. package/dist/tools/end-task-allocation.js +0 -60
  242. package/dist/tools/end-task-allocation.js.map +0 -1
  243. package/dist/tools/exec-status.js +0 -45
  244. package/dist/tools/exec-status.js.map +0 -1
  245. package/dist/tools/finalize-release.js +0 -45
  246. package/dist/tools/finalize-release.js.map +0 -1
  247. package/dist/tools/get-active-allocation.js +0 -69
  248. package/dist/tools/get-active-allocation.js.map +0 -1
  249. package/dist/tools/get-calendar.js +0 -40
  250. package/dist/tools/get-calendar.js.map +0 -1
  251. package/dist/tools/get-context.js +0 -48
  252. package/dist/tools/get-context.js.map +0 -1
  253. package/dist/tools/get-sprint.js +0 -38
  254. package/dist/tools/get-sprint.js.map +0 -1
  255. package/dist/tools/get-task.js +0 -146
  256. package/dist/tools/get-task.js.map +0 -1
  257. package/dist/tools/index.js +0 -92
  258. package/dist/tools/index.js.map +0 -1
  259. package/dist/tools/list-my-allocations.js +0 -71
  260. package/dist/tools/list-my-allocations.js.map +0 -1
  261. package/dist/tools/list-projects.js +0 -38
  262. package/dist/tools/list-projects.js.map +0 -1
  263. package/dist/tools/list-releases.js +0 -32
  264. package/dist/tools/list-releases.js.map +0 -1
  265. package/dist/tools/list-sprints.js +0 -30
  266. package/dist/tools/list-sprints.js.map +0 -1
  267. package/dist/tools/list-tasks.js +0 -95
  268. package/dist/tools/list-tasks.js.map +0 -1
  269. package/dist/tools/move-task.js +0 -82
  270. package/dist/tools/move-task.js.map +0 -1
  271. package/dist/tools/plan.js +0 -56
  272. package/dist/tools/plan.js.map +0 -1
  273. package/dist/tools/record-delivery.js +0 -100
  274. package/dist/tools/record-delivery.js.map +0 -1
  275. package/dist/tools/remove-checklist-item.js +0 -42
  276. package/dist/tools/remove-checklist-item.js.map +0 -1
  277. package/dist/tools/remove-checklist.js +0 -42
  278. package/dist/tools/remove-checklist.js.map +0 -1
  279. package/dist/tools/remove-holiday.js +0 -31
  280. package/dist/tools/remove-holiday.js.map +0 -1
  281. package/dist/tools/remove-home-office.js +0 -32
  282. package/dist/tools/remove-home-office.js.map +0 -1
  283. package/dist/tools/remove-vacation.js +0 -31
  284. package/dist/tools/remove-vacation.js.map +0 -1
  285. package/dist/tools/set-project.js +0 -52
  286. package/dist/tools/set-project.js.map +0 -1
  287. package/dist/tools/set-review.js +0 -132
  288. package/dist/tools/set-review.js.map +0 -1
  289. package/dist/tools/sprint-common.js +0 -13
  290. package/dist/tools/sprint-common.js.map +0 -1
  291. package/dist/tools/start-allocation.js +0 -32
  292. package/dist/tools/start-allocation.js.map +0 -1
  293. package/dist/tools/start-task-allocation.js +0 -83
  294. package/dist/tools/start-task-allocation.js.map +0 -1
  295. package/dist/tools/update-checklist-item.js +0 -51
  296. package/dist/tools/update-checklist-item.js.map +0 -1
  297. package/dist/tools/update-release.js +0 -58
  298. package/dist/tools/update-release.js.map +0 -1
  299. package/dist/tools/update-sprint.js +0 -56
  300. package/dist/tools/update-sprint.js.map +0 -1
  301. package/dist/tools/update-task.js +0 -183
  302. package/dist/tools/update-task.js.map +0 -1
  303. package/dist/tools/validate-plan.js +0 -58
  304. package/dist/tools/validate-plan.js.map +0 -1
  305. package/dist/version.js +0 -16
  306. package/dist/version.js.map +0 -1
@@ -1,98 +0,0 @@
1
- import { brand } from "../../../brand.js";
2
- import { getProjectConfigPath } from "../../../config.js";
3
- import { readDependencies, skillIdMap } from "../../../lib/skills.js";
4
- import { collectRuleSkills } from "../../../lib/rules.js";
5
- import { offerDependencyInstall, offerRuleSkills } from "../../flows/dependencies.js";
6
- import { offerShellCompletion } from "../../flows/completion.js";
7
- import { ensureCoreClients, offerDisableCoAuthoredBy } from "../../flows/clients.js";
8
- import { section } from "../../../lib/colors.js";
9
- import { SyncReport, renderReport, browseReport, resolveReportMode } from "../../ui/report.js";
10
- import { flushTelemetry } from "../../../lib/telemetry.js";
11
- import { ensureAuthenticated, createSessionStep } from "./auth-step.js";
12
- import { fetchMemberProjectsStep, pickProject, pickRepository, describeProjects, buildBaseConfig, pickIde, } from "./project-step.js";
13
- import { confirmOverwriteIfExists, persistConfigStep, loadContextStep, writeHarnessStep } from "./context-step.js";
14
- import { promptClientChoices, installClients, activateCoworkIfChosen, resolveChosenClientIds, ensureChosenClientsInstalled, } from "./clients-step.js";
15
- import { resolveProvisionTargets, fetchSkillsStep, provisionTargetsStep, provisionHooksStep, } from "./provision-step.js";
16
- import { promptSelection } from "../../flows/sections.js";
17
- import { describeInit } from "./describe-step.js";
18
- import { applyInit } from "./apply-step.js";
19
- import { resolveInitMode } from "./mode.js";
20
- /** Autenticação, projeto/repositório, seleção, IDE, config no disco + contexto/harness. */
21
- async function resolveProjectSetup() {
22
- await ensureAuthenticated();
23
- const session = await createSessionStep();
24
- const { supabase } = session;
25
- const projects = await fetchMemberProjectsStep(supabase, session.user.id);
26
- const selectedProject = await pickProject(projects);
27
- const repositoryId = await pickRepository(supabase, selectedProject.id);
28
- const config = buildBaseConfig(selectedProject.id, repositoryId);
29
- config.selection = await promptSelection();
30
- config.ide = await pickIde();
31
- persistConfigStep(config, selectedProject.name);
32
- const overview = await loadContextStep(supabase, config, session.user);
33
- writeHarnessStep(config, overview);
34
- return { config, session };
35
- }
36
- /** Escolha e instalação dos clientes de IA + provisionamento de skills/commands/hooks. */
37
- async function installAndProvisionClients(config, session) {
38
- const clientConfigs = await promptClientChoices();
39
- installClients(clientConfigs, process.cwd());
40
- await activateCoworkIfChosen(clientConfigs);
41
- const chosenClientIds = resolveChosenClientIds(clientConfigs);
42
- await ensureChosenClientsInstalled(chosenClientIds);
43
- if (chosenClientIds.has("claude-code"))
44
- await offerDisableCoAuthoredBy();
45
- const provisionTargets = resolveProvisionTargets(clientConfigs);
46
- section("Skills & commands", "provisionando pros clientes");
47
- const report = new SyncReport();
48
- await fetchSkillsStep(report);
49
- provisionTargetsStep(provisionTargets, config, session, skillIdMap(), report);
50
- provisionHooksStep(provisionTargets, config, report);
51
- const mode = resolveReportMode({});
52
- renderReport(report, mode);
53
- if (mode === "summary")
54
- await browseReport(report);
55
- }
56
- /** Ofertas finais: libs externas da seleção, skills recomendadas, autocomplete do shell. */
57
- async function offerFollowUps(config) {
58
- await offerDependencyInstall(readDependencies(config.selection), { interactive: true });
59
- await offerRuleSkills(collectRuleSkills(config.selection ?? { roles: [], stacks: {} }), { interactive: true });
60
- await offerShellCompletion({ interactive: true, announceConfigured: true });
61
- await flushTelemetry();
62
- }
63
- async function runInitWizard() {
64
- const configPath = getProjectConfigPath();
65
- if (!(await confirmOverwriteIfExists(configPath)))
66
- return;
67
- // Logo no início: confere Codex + Claude Code e oferece instalar os que faltam.
68
- await ensureCoreClients({ interactive: true });
69
- const { config, session } = await resolveProjectSetup();
70
- await installAndProvisionClients(config, session);
71
- await offerFollowUps(config);
72
- }
73
- export function registerInitCommand(program) {
74
- program
75
- .command("init")
76
- .description(`Cria ${brand.projectConfigFile} no diretório atual vinculando a um projeto do ${brand.productName}`)
77
- .option("--describe", "não pergunta nada: imprime o catálogo do init (roles/stacks/skills/clients/IDE + analyze) em JSON no stdout")
78
- .option("--projects", "não pergunta nada: imprime em JSON os projetos do usuário (id + nome + repositórios) pro --apply; exige sessão salva")
79
- .option("--apply <json>", "não pergunta nada: aplica as respostas do catálogo (JSON do --describe) e roda o init")
80
- .option("--no-analyze", "no --apply: pula a análise/pré-preenchimento do repo (a skill init-sdd); ganha do analyze do JSON")
81
- .action(async (opts) => {
82
- const routed = resolveInitMode(opts);
83
- if (routed.mode === "describe") {
84
- describeInit();
85
- return;
86
- }
87
- if (routed.mode === "projects") {
88
- await describeProjects();
89
- return;
90
- }
91
- if (routed.mode === "apply") {
92
- await applyInit(routed.json, routed.analyze);
93
- return;
94
- }
95
- await runInitWizard();
96
- });
97
- }
98
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/index.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Roteamento do `noclaf init`: as flags decidem o modo. Sem flag headless
3
- * cai no wizard interativo de sempre — compat travada por teste, não por leitura.
4
- * Decisão **pura**: nada de I/O aqui, o dispatcher só executa o modo escolhido.
5
- */
6
- /** Flags → modo. `--describe` > `--projects` > `--apply`; `--no-analyze` só vale no apply. */
7
- export function resolveInitMode(flags) {
8
- if (flags.describe)
9
- return { mode: "describe" };
10
- if (flags.projects)
11
- return { mode: "projects" };
12
- if (flags.apply !== undefined) {
13
- const analyze = flags.analyze === false ? false : undefined;
14
- return { mode: "apply", json: flags.apply, analyze };
15
- }
16
- return { mode: "interactive" };
17
- }
18
- //# sourceMappingURL=mode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/mode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC9C,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAChD,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAChD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Progresso do `noclaf init --apply`: NDJSON no **stderr** (`step`/`done`/`error`) e o
3
- * **resultado** no stdout. Mesmo formato dos eventos do exec (spec 0005), `ts` incluso,
4
- * com o vocabulário do init — o tipo do exec (`NoclafEvent`) fica fechado no exec. O
5
- * stdout do headless é JSON puro: o que os steps escreveriam nele (console.log, spinner)
6
- * é desviado pro stderr.
7
- */
8
- /** Evento → uma linha NDJSON (com `ts`, como no exec). Pura. */
9
- export function formatInitEvent(event) {
10
- return `${JSON.stringify({ ...event, ts: new Date().toISOString() })}\n`;
11
- }
12
- /** O spinner do clack escreve frames sem `\n` — sem isso o evento colaria na linha dele. */
13
- let atLineStart = true;
14
- function toStderr(text) {
15
- atLineStart = text.endsWith("\n");
16
- process.stderr.write(text);
17
- }
18
- function emitInitEvent(event) {
19
- toStderr(`${atLineStart ? "" : "\n"}${formatInitEvent(event)}`);
20
- }
21
- /** Roda a etapa emitindo `step`/`done`; falha emite `error` e propaga (aborta o apply). */
22
- export async function runInitStep(id, label, run) {
23
- emitInitEvent({ type: "step", id, label });
24
- try {
25
- const value = await run();
26
- emitInitEvent({ type: "done", id });
27
- return value;
28
- }
29
- catch (err) {
30
- emitInitEvent({ type: "error", id, message: err.message });
31
- throw err;
32
- }
33
- }
34
- /**
35
- * Desvia pro stderr tudo que os steps escreveriam no stdout (console.log, spinner do
36
- * clack, report) e devolve o restaurador. Só o headless usa — o interativo é intocado.
37
- */
38
- export function redirectStdoutToStderr() {
39
- const write = process.stdout.write;
40
- const { log, info } = console;
41
- process.stdout.write = ((chunk, ...rest) => {
42
- const text = typeof chunk === "string" ? chunk : Buffer.from(chunk).toString();
43
- atLineStart = text.endsWith("\n");
44
- return process.stderr.write(chunk, ...rest);
45
- });
46
- // No Bun o `console.log` escreve no fd 1 direto, sem passar por `process.stdout.write`.
47
- const logToStderr = (...args) => toStderr(`${args.map(String).join(" ")}\n`);
48
- console.log = logToStderr;
49
- console.info = logToStderr;
50
- return () => {
51
- process.stdout.write = write;
52
- console.log = log;
53
- console.info = info;
54
- };
55
- }
56
- /** O resultado do apply: a única coisa que sai no stdout, numa linha JSON. */
57
- export function emitResult(result) {
58
- process.stdout.write(`${JSON.stringify(result)}\n`);
59
- }
60
- //# sourceMappingURL=progress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/progress.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC9C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED,4FAA4F;AAC5F,IAAI,WAAW,GAAG,IAAI,CAAC;AAEvB,SAAS,QAAQ,CAAC,IAAY;IAC5B,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,KAAgB;IACrC,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAU,EACV,KAAa,EACb,GAAyB;IAEzB,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;QAC1B,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAA0B,EAAE,GAAG,IAAe,EAAE,EAAE;QACzE,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/E,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,OAAQ,OAAO,CAAC,MAAM,CAAC,KAAyC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACnF,CAAC,CAAgC,CAAC;IAClC,wFAAwF;IACxF,MAAM,WAAW,GAAG,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;IAC1B,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;IAC3B,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7B,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,MAAe;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC"}
@@ -1,133 +0,0 @@
1
- import { select, input } from "../../../lib/prompts.js";
2
- import { section } from "../../../lib/colors.js";
3
- import { startSpinner } from "../../../spinner.js";
4
- import { UUID_REGEX } from "../../../config.js";
5
- import { listMemberProjects } from "../../../lib/project-context.js";
6
- import { createAuthenticatedClient } from "../../../adapters/supabase/client.js";
7
- import { initCopy } from "../../copy.js";
8
- const MANUAL_PROJECT = "__manual__";
9
- const NO_REPO = "__none__";
10
- /** Busca os projetos dos quais o usuário é membro; sai do processo se a busca
11
- * falhar ou se a lista vier vazia (nada pra vincular). */
12
- export async function fetchMemberProjectsStep(supabase, userId) {
13
- const projectsSpinner = startSpinner("Buscando seus projetos...");
14
- let projects;
15
- try {
16
- projects = await listMemberProjects(supabase, userId);
17
- }
18
- catch (err) {
19
- projectsSpinner.fail(`Erro ao buscar projetos: ${err.message}`);
20
- process.exit(1);
21
- }
22
- projectsSpinner.stop();
23
- if (projects.length === 0) {
24
- console.error("Você não é membro de nenhum projeto. Peça a um admin pra te adicionar.");
25
- process.exit(1);
26
- }
27
- return projects;
28
- }
29
- /**
30
- * `noclaf init --projects`: projetos do usuário em JSON no stdout. O `--describe`
31
- * é local (nada de rede nem auth) e por isso não traz essa lista — mas o `--apply`
32
- * exige o UUID do projeto, então o modal do Studio precisa dela de algum lugar.
33
- * Headless de verdade: sem prompt, sem spinner; sem sessão salva, erra como o `--apply`.
34
- */
35
- export async function describeProjects() {
36
- const { supabase, user } = await createAuthenticatedClient();
37
- const projects = await listMemberProjects(supabase, user.id);
38
- // Repos de todos os projetos numa query só — o `--apply` também aceita `repository`.
39
- const reposRes = await supabase
40
- .from("repositories")
41
- .select("id, project_id, name")
42
- .in("project_id", projects.map((p) => p.id))
43
- .order("name");
44
- if (reposRes.error)
45
- throw new Error(`Erro ao buscar repositórios: ${reposRes.error.message}`);
46
- const withRepos = projects.map((p) => ({
47
- ...p,
48
- repositories: (reposRes.data ?? [])
49
- .filter((r) => r.project_id === p.id)
50
- .map((r) => ({ id: r.id, name: r.name })),
51
- }));
52
- process.stdout.write(`${JSON.stringify({ projects: withRepos }, null, 2)}\n`);
53
- }
54
- /**
55
- * Dado o id escolhido/digitado e a lista de projetos do usuário, resolve o
56
- * projeto selecionado. Cai num objeto sintético `{id, name: id}` quando o id
57
- * não está na lista (ex.: colado manualmente).
58
- */
59
- export function resolveSelectedProject(projectId, projects) {
60
- return projects.find((p) => p.id === projectId) ?? { id: projectId, name: projectId };
61
- }
62
- /** Prompt de escolha do projeto — lista os projetos do usuário + opção de digitar um id manualmente. */
63
- export async function pickProject(projects) {
64
- let projectId = await select({
65
- message: initCopy.pickProject,
66
- choices: [
67
- ...projects.map((p) => ({ name: p.name, value: p.id })),
68
- { name: initCopy.manualProjectChoice, value: MANUAL_PROJECT },
69
- ],
70
- });
71
- if (projectId === MANUAL_PROJECT) {
72
- projectId = await input({
73
- message: initCopy.manualProjectPrompt,
74
- validate: (value) => UUID_REGEX.test(value.trim()) || initCopy.manualProjectInvalid,
75
- });
76
- projectId = projectId.trim();
77
- }
78
- return resolveSelectedProject(projectId, projects);
79
- }
80
- /** Traduz a escolha do prompt de repositório pro `repository_id` persistido. */
81
- export function resolveRepositoryChoice(choice) {
82
- return choice === NO_REPO ? null : choice;
83
- }
84
- /** Busca os repositórios do projeto e, se houver algum, oferece vincular um (ou nenhum). */
85
- export async function pickRepository(supabase, projectId) {
86
- const reposSpinner = startSpinner("Buscando repositórios...");
87
- const reposResult = await supabase
88
- .from("repositories")
89
- .select("id, name")
90
- .eq("project_id", projectId)
91
- .order("name");
92
- if (reposResult.error) {
93
- reposSpinner.fail(`Erro ao buscar repositórios: ${reposResult.error.message}`);
94
- process.exit(1);
95
- }
96
- reposSpinner.stop();
97
- const repos = reposResult.data ?? [];
98
- if (repos.length === 0)
99
- return null;
100
- const choice = await select({
101
- message: initCopy.linkRepo,
102
- choices: [
103
- { name: initCopy.noRepoChoice, value: NO_REPO },
104
- ...repos.map((r) => ({ name: r.name, value: r.id })),
105
- ],
106
- });
107
- return resolveRepositoryChoice(choice);
108
- }
109
- /** Monta o `ProjectConfig` base a partir do projeto e (opcional) repositório escolhidos. */
110
- export function buildBaseConfig(projectId, repositoryId) {
111
- const config = { project_id: projectId };
112
- if (repositoryId)
113
- config.repository_id = repositoryId;
114
- return config;
115
- }
116
- /** IDEs oferecidos — fonte única do prompt interativo e do catálogo do `--describe`. */
117
- export const IDE_CHOICES = [
118
- { name: "VS Code", value: "vscode" },
119
- { name: "Xcode", value: "xcode" },
120
- { name: "Outra", value: "other" },
121
- ];
122
- /** Prompt de IDE — habilita integrações específicas de editor no resto do CLI. */
123
- export async function pickIde() {
124
- console.log("");
125
- section("IDE", "habilita integrações de editor");
126
- return select({
127
- message: "Qual IDE você usa? Isso habilita integrações — ex.: o /implement " +
128
- "registra o worktree criado no editor (VS Code: adiciona ao Source Control; " +
129
- "Xcode: abre o projeto em janela própria). Mais integrações no futuro.",
130
- choices: IDE_CHOICES,
131
- });
132
- }
133
- //# sourceMappingURL=project-step.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/project-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAe,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAgC,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAiB,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,cAAc,GAAG,YAAY,CAAC;AACpC,MAAM,OAAO,GAAG,UAAU,CAAC;AAE3B;0DAC0D;AAC1D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAkB,EAClB,MAAc;IAEd,MAAM,eAAe,GAAG,YAAY,CAAC,2BAA2B,CAAC,CAAC;IAClE,IAAI,QAAwC,CAAC;IAC7C,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,CAAC,IAAI,CAAC,4BAA6B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,eAAe,CAAC,IAAI,EAAE,CAAC;IAEvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CACX,wEAAwE,CACzE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,yBAAyB,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAE7D,qFAAqF;IACrF,MAAM,QAAQ,GAAG,MAAM,QAAQ;SAC5B,IAAI,CAAC,cAAc,CAAC;SACpB,MAAM,CAAC,sBAAsB,CAAC;SAC9B,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3C,KAAK,CAAC,MAAM,CAAC,CAAC;IACjB,IAAI,QAAQ,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAE9F,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,GAAG,CAAC;QACJ,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5C,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAiB,EACjB,QAAwC;IAExC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACxF,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAwC;IAExC,IAAI,SAAS,GAAG,MAAM,MAAM,CAAS;QACnC,OAAO,EAAE,QAAQ,CAAC,WAAW;QAC7B,OAAO,EAAE;YACP,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,EAAE,IAAI,EAAE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE;SAC9D;KACF,CAAC,CAAC;IAEH,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACjC,SAAS,GAAG,MAAM,KAAK,CAAC;YACtB,OAAO,EAAE,QAAQ,CAAC,mBAAmB;YACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,oBAAoB;SACjE,CAAC,CAAC;QACH,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAkB,EAClB,SAAiB;IAEjB,MAAM,YAAY,GAAG,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,QAAQ;SAC/B,IAAI,CAAC,cAAc,CAAC;SACpB,MAAM,CAAC,UAAU,CAAC;SAClB,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;SAC3B,KAAK,CAAC,MAAM,CAAC,CAAC;IAEjB,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,YAAY,CAAC,IAAI,CACf,gCAAgC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAC5D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,YAAY,CAAC,IAAI,EAAE,CAAC;IAEpB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAS;QAClC,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;YAC/C,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACrD;KACF,CAAC,CAAC;IACH,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,YAA2B;IAE3B,MAAM,MAAM,GAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACxD,IAAI,YAAY;QAAE,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACjC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;CAClC,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;IACjD,OAAO,MAAM,CAAM;QACjB,OAAO,EACL,mEAAmE;YACnE,6EAA6E;YAC7E,uEAAuE;QACzE,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;AACL,CAAC"}
@@ -1,103 +0,0 @@
1
- import { claudeTarget, codexTarget } from "../../../lib/targets.js";
2
- import { provision } from "../../../lib/provision.js";
3
- import { provisionHooks } from "../../../lib/hooks.js";
4
- import { fetchSkills } from "../../../lib/skills-cache.js";
5
- import { c } from "../../../lib/colors.js";
6
- import { startSpinner } from "../../../spinner.js";
7
- import { printProvisionResult, printHookResult } from "../../ui/render.js";
8
- import { summarizeProvision } from "../../ui/report.js";
9
- import { track, provisionedItems } from "../../../lib/telemetry.js";
10
- import { VERSION } from "../../../version.js";
11
- /**
12
- * claude-code-* → ~/.claude (nativo); codex-global → ~/.codex (traduzido pra
13
- * skills). Sem nenhuma escolha desses dois, cai no default (~/.claude).
14
- */
15
- export function resolveProvisionTargets(clientConfigs) {
16
- const targets = new Set();
17
- for (const choice of clientConfigs) {
18
- if (choice.startsWith("claude-code"))
19
- targets.add(claudeTarget);
20
- if (choice === "codex-global")
21
- targets.add(codexTarget);
22
- }
23
- if (targets.size === 0)
24
- targets.add(claudeTarget);
25
- return targets;
26
- }
27
- /** Baixa o repo aberto de skills pro cache e registra a seção no report. */
28
- export async function fetchSkillsStep(report) {
29
- const fetchSpinner = startSpinner("Baixando skills do repo…");
30
- const fetched = await fetchSkills({ force: true });
31
- fetchSpinner.stop();
32
- if (fetched.status === "failed") {
33
- report.add({
34
- id: "fetch",
35
- title: "Skills",
36
- status: "error",
37
- summary: "falha ao baixar",
38
- lines: [` ${c.dim(fetched.error ?? "")}`],
39
- });
40
- }
41
- else if (fetched.status === "fetched") {
42
- report.add({
43
- id: "fetch",
44
- title: "Skills",
45
- status: "ok",
46
- summary: `baixadas (${fetched.repo}@${fetched.ref})`,
47
- lines: [],
48
- });
49
- }
50
- else {
51
- report.add({
52
- id: "fetch",
53
- title: "Skills",
54
- status: "warn",
55
- summary: "usando cache local",
56
- lines: fetched.error ? [` ${c.dim(fetched.error)}`] : [],
57
- });
58
- }
59
- }
60
- export function provisionTargetsStep(targets, config, session, uidByName, report) {
61
- for (const target of targets) {
62
- try {
63
- const result = provision({ target, selection: config.selection });
64
- const { status, summary } = summarizeProvision(result.files);
65
- report.addCaptured({ id: `prov-${target.id}`, title: target.label, status, summary }, () => printProvisionResult(result));
66
- track(session.supabase, {
67
- type: "provision",
68
- client: target.id,
69
- sections: config.selection,
70
- items: provisionedItems(result.files, uidByName),
71
- version: VERSION,
72
- });
73
- }
74
- catch (err) {
75
- report.add({
76
- id: `prov-${target.id}`,
77
- title: target.label,
78
- status: "error",
79
- summary: "falhou",
80
- lines: [` ${c.dim(err.message)}`],
81
- });
82
- }
83
- }
84
- }
85
- /** Hooks (só Claude Code): registra os gatilhos no ~/.claude/settings.json. */
86
- export function provisionHooksStep(targets, config, report) {
87
- if (!targets.has(claudeTarget))
88
- return;
89
- try {
90
- const h = provisionHooks({ surface: claudeTarget.surface, selection: config.selection });
91
- report.addCaptured({ id: "hooks", title: "Hooks", status: "ok", summary: `${h.installed.length} hooks` }, () => printHookResult(h));
92
- }
93
- catch (err) {
94
- report.add({
95
- id: "hooks",
96
- title: "Hooks",
97
- status: "warn",
98
- summary: "pulado",
99
- lines: [` ${c.dim(err.message)}`],
100
- });
101
- }
102
- }
103
- //# sourceMappingURL=provision-step.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provision-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/provision-step.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { MAP_REL, generateRepoMap } from "../../lib/repo-map.js";
2
- /** Superfície de CLI do repo-map — barata o bastante pro loop de build chamar a cada wave. */
3
- export function registerMapCommand(program) {
4
- program
5
- .command("map")
6
- .description(`Regera o índice estrutural do repo em ${MAP_REL} (arquivo → símbolos exportados + ` +
7
- "propósito). Determinístico, sem IA — os agentes grepam este arquivo pra localizar " +
8
- "código em vez de abrir arquivos inteiros. stdout = JSON { ok, action, entries, path }.")
9
- .option("--project <path>", "raiz do repositório a mapear", process.cwd())
10
- .action((opts) => {
11
- const result = generateRepoMap(opts.project);
12
- const ok = result.action !== "empty";
13
- process.stdout.write(`${JSON.stringify({ ok, ...result, path: MAP_REL }, null, 2)}\n`);
14
- if (!ok)
15
- process.exitCode = 1;
16
- });
17
- }
18
- //# sourceMappingURL=map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/cli/commands/map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEjE,8FAA8F;AAE9F,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CACV,yCAAyC,OAAO,oCAAoC;QAClF,oFAAoF;QACpF,wFAAwF,CAC3F;SACA,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzE,MAAM,CAAC,CAAC,IAAyB,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,45 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { runPlan } from "../../lib/plan-delegate.js";
3
- import { ENGINES, PLAN_ENGINE, parseEngine } from "../../lib/exec-engines.js";
4
- /**
5
- * Superfície de CLI do planejamento headless — mesmo contrato do `exec`:
6
- * **stdout = JSON**, **stderr = log ao vivo**, **exit ≠ 0 = falha**.
7
- */
8
- function emit(payload) {
9
- process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
10
- }
11
- export function registerPlanCommand(program) {
12
- program
13
- .command("plan")
14
- .description("Roda o engine pensante sobre o projeto e escreve/refina o .noclaf/plan.md. " +
15
- "Não toca código. stdout = JSON do resultado; stderr = log ao vivo.")
16
- .requiredOption("--instruction <texto>", "a ideia ou o ajuste a planejar")
17
- .option("--project <path>", "raiz do projeto onde vive o .noclaf/plan.md", process.cwd())
18
- .option("--engine <engine>", `agente pensante (${ENGINES.join(" | ")})`, PLAN_ENGINE)
19
- .option("--quiet", "não streama o log do agente no stderr")
20
- .action(async (opts) => {
21
- const engine = parseEngine(opts.engine, PLAN_ENGINE);
22
- if (!engine) {
23
- emit({
24
- error: `engine inválido: ${opts.engine} — suportados: ${ENGINES.join(", ")}`,
25
- });
26
- process.exitCode = 1;
27
- return;
28
- }
29
- if (!existsSync(opts.project)) {
30
- emit({ error: `projeto não encontrado: ${opts.project}` });
31
- process.exitCode = 1;
32
- return;
33
- }
34
- const result = await runPlan({
35
- project: opts.project,
36
- instruction: opts.instruction,
37
- engine,
38
- echo: opts.quiet !== true,
39
- });
40
- emit(result);
41
- if (!result.ok)
42
- process.exitCode = 1;
43
- });
44
- }
45
- //# sourceMappingURL=plan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE9E;;;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,6EAA6E;QAC3E,oEAAoE,CACvE;SACA,cAAc,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;SACzE,MAAM,CAAC,kBAAkB,EAAE,6CAA6C,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACxF,MAAM,CACL,mBAAmB,EACnB,oBAAoB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAC1C,WAAW,CACZ;SACA,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;SAC1D,MAAM,CACL,KAAK,EAAE,IAKN,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACrD,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,OAAO,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvC,CAAC,CACF,CAAC;AACN,CAAC"}
@@ -1,23 +0,0 @@
1
- import { brand } from "../../brand.js";
2
- import { readSkillDocs } from "../../lib/skills.js";
3
- export function registerSkillsCommands(program) {
4
- const skills = program
5
- .command("skills")
6
- .description(`Skills, commands e agents do ${brand.name} (lidos do repo aberto via cache)`);
7
- skills
8
- .command("status")
9
- .description(`Lista os docs do repo de skills (cache local ~/${brand.homeDirName}/skills)`)
10
- .action(() => {
11
- try {
12
- const docs = readSkillDocs();
13
- console.log(`Skills: ${docs.length} docs`);
14
- for (const d of docs)
15
- console.log(` ${d.type.padEnd(10)} ${d.path}`);
16
- }
17
- catch (err) {
18
- console.error(`[erro] ${err.message}`);
19
- process.exit(1);
20
- }
21
- });
22
- }
23
- //# sourceMappingURL=skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,KAAK,CAAC,IAAI,mCAAmC,CAAC,CAAC;IAE9F,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kDAAkD,KAAK,CAAC,WAAW,UAAU,CAAC;SAC1F,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}