@noclaf/cli 0.7.0 → 0.9.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 (294) hide show
  1. package/README.md +26 -84
  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/client.js +0 -136
  20. package/dist/adapters/supabase/client.js.map +0 -1
  21. package/dist/adapters/supabase/context-gateway.js +0 -23
  22. package/dist/adapters/supabase/context-gateway.js.map +0 -1
  23. package/dist/adapters/supabase/gateway.js +0 -26
  24. package/dist/adapters/supabase/gateway.js.map +0 -1
  25. package/dist/adapters/supabase/release-gateway.js +0 -61
  26. package/dist/adapters/supabase/release-gateway.js.map +0 -1
  27. package/dist/adapters/supabase/sprint-gateway.js +0 -59
  28. package/dist/adapters/supabase/sprint-gateway.js.map +0 -1
  29. package/dist/adapters/supabase/task-gateway.js +0 -533
  30. package/dist/adapters/supabase/task-gateway.js.map +0 -1
  31. package/dist/auth.js +0 -141
  32. package/dist/auth.js.map +0 -1
  33. package/dist/cli/commands/auth.js +0 -127
  34. package/dist/cli/commands/auth.js.map +0 -1
  35. package/dist/cli/commands/clean.js +0 -120
  36. package/dist/cli/commands/clean.js.map +0 -1
  37. package/dist/cli/commands/completion.js +0 -114
  38. package/dist/cli/commands/completion.js.map +0 -1
  39. package/dist/cli/commands/exec.js +0 -69
  40. package/dist/cli/commands/exec.js.map +0 -1
  41. package/dist/cli/commands/init/analyze-step.js +0 -21
  42. package/dist/cli/commands/init/analyze-step.js.map +0 -1
  43. package/dist/cli/commands/init/apply-answers.js +0 -122
  44. package/dist/cli/commands/init/apply-answers.js.map +0 -1
  45. package/dist/cli/commands/init/apply-step.js +0 -165
  46. package/dist/cli/commands/init/apply-step.js.map +0 -1
  47. package/dist/cli/commands/init/auth-step.js +0 -48
  48. package/dist/cli/commands/init/auth-step.js.map +0 -1
  49. package/dist/cli/commands/init/boilerplate-step.js +0 -20
  50. package/dist/cli/commands/init/boilerplate-step.js.map +0 -1
  51. package/dist/cli/commands/init/clients-step.js +0 -78
  52. package/dist/cli/commands/init/clients-step.js.map +0 -1
  53. package/dist/cli/commands/init/context-step.js +0 -81
  54. package/dist/cli/commands/init/context-step.js.map +0 -1
  55. package/dist/cli/commands/init/describe-step.js +0 -68
  56. package/dist/cli/commands/init/describe-step.js.map +0 -1
  57. package/dist/cli/commands/init/index.js +0 -98
  58. package/dist/cli/commands/init/index.js.map +0 -1
  59. package/dist/cli/commands/init/mode.js +0 -18
  60. package/dist/cli/commands/init/mode.js.map +0 -1
  61. package/dist/cli/commands/init/progress.js +0 -60
  62. package/dist/cli/commands/init/progress.js.map +0 -1
  63. package/dist/cli/commands/init/project-step.js +0 -133
  64. package/dist/cli/commands/init/project-step.js.map +0 -1
  65. package/dist/cli/commands/init/provision-step.js +0 -103
  66. package/dist/cli/commands/init/provision-step.js.map +0 -1
  67. package/dist/cli/commands/map.js +0 -18
  68. package/dist/cli/commands/map.js.map +0 -1
  69. package/dist/cli/commands/plan.js +0 -45
  70. package/dist/cli/commands/plan.js.map +0 -1
  71. package/dist/cli/commands/skills.js +0 -23
  72. package/dist/cli/commands/skills.js.map +0 -1
  73. package/dist/cli/commands/sync.js +0 -319
  74. package/dist/cli/commands/sync.js.map +0 -1
  75. package/dist/cli/commands/validate-plan.js +0 -42
  76. package/dist/cli/commands/validate-plan.js.map +0 -1
  77. package/dist/cli/commands/wave.js +0 -57
  78. package/dist/cli/commands/wave.js.map +0 -1
  79. package/dist/cli/copy/auth.json +0 -6
  80. package/dist/cli/copy/flows.json +0 -6
  81. package/dist/cli/copy/init.json +0 -20
  82. package/dist/cli/copy/sync.json +0 -3
  83. package/dist/cli/copy.js +0 -23
  84. package/dist/cli/copy.js.map +0 -1
  85. package/dist/cli/flows/clients.js +0 -130
  86. package/dist/cli/flows/clients.js.map +0 -1
  87. package/dist/cli/flows/completion.js +0 -63
  88. package/dist/cli/flows/completion.js.map +0 -1
  89. package/dist/cli/flows/dependencies.js +0 -114
  90. package/dist/cli/flows/dependencies.js.map +0 -1
  91. package/dist/cli/flows/sections.js +0 -85
  92. package/dist/cli/flows/sections.js.map +0 -1
  93. package/dist/cli/flows/user-config.js +0 -37
  94. package/dist/cli/flows/user-config.js.map +0 -1
  95. package/dist/cli/ui/render.js +0 -239
  96. package/dist/cli/ui/render.js.map +0 -1
  97. package/dist/cli/ui/report.js +0 -130
  98. package/dist/cli/ui/report.js.map +0 -1
  99. package/dist/config.js +0 -289
  100. package/dist/config.js.map +0 -1
  101. package/dist/constants.js +0 -9
  102. package/dist/constants.js.map +0 -1
  103. package/dist/core/ports.js +0 -2
  104. package/dist/core/ports.js.map +0 -1
  105. package/dist/core/types.js +0 -5
  106. package/dist/core/types.js.map +0 -1
  107. package/dist/database.types.js +0 -11
  108. package/dist/database.types.js.map +0 -1
  109. package/dist/lib/active-project.js +0 -28
  110. package/dist/lib/active-project.js.map +0 -1
  111. package/dist/lib/autopull.js +0 -13
  112. package/dist/lib/autopull.js.map +0 -1
  113. package/dist/lib/boilerplate-scaffold.js +0 -65
  114. package/dist/lib/boilerplate-scaffold.js.map +0 -1
  115. package/dist/lib/boilerplates.js +0 -61
  116. package/dist/lib/boilerplates.js.map +0 -1
  117. package/dist/lib/calendar-logic.js +0 -59
  118. package/dist/lib/calendar-logic.js.map +0 -1
  119. package/dist/lib/calendar-write-logic.js +0 -6
  120. package/dist/lib/calendar-write-logic.js.map +0 -1
  121. package/dist/lib/client-configs.js +0 -191
  122. package/dist/lib/client-configs.js.map +0 -1
  123. package/dist/lib/client-install.js +0 -40
  124. package/dist/lib/client-install.js.map +0 -1
  125. package/dist/lib/colors.js +0 -92
  126. package/dist/lib/colors.js.map +0 -1
  127. package/dist/lib/cowork-extension.js +0 -143
  128. package/dist/lib/cowork-extension.js.map +0 -1
  129. package/dist/lib/dates.js +0 -21
  130. package/dist/lib/dates.js.map +0 -1
  131. package/dist/lib/dependencies.js +0 -145
  132. package/dist/lib/dependencies.js.map +0 -1
  133. package/dist/lib/dependency-install.js +0 -163
  134. package/dist/lib/dependency-install.js.map +0 -1
  135. package/dist/lib/duration.js +0 -5
  136. package/dist/lib/duration.js.map +0 -1
  137. package/dist/lib/exec-delegate.js +0 -218
  138. package/dist/lib/exec-delegate.js.map +0 -1
  139. package/dist/lib/exec-engines.js +0 -90
  140. package/dist/lib/exec-engines.js.map +0 -1
  141. package/dist/lib/exec-events.js +0 -87
  142. package/dist/lib/exec-events.js.map +0 -1
  143. package/dist/lib/exec-translators.js +0 -198
  144. package/dist/lib/exec-translators.js.map +0 -1
  145. package/dist/lib/file-merge.js +0 -33
  146. package/dist/lib/file-merge.js.map +0 -1
  147. package/dist/lib/git-exposure.js +0 -35
  148. package/dist/lib/git-exposure.js.map +0 -1
  149. package/dist/lib/harness.js +0 -127
  150. package/dist/lib/harness.js.map +0 -1
  151. package/dist/lib/hooks.js +0 -216
  152. package/dist/lib/hooks.js.map +0 -1
  153. package/dist/lib/patterns.js +0 -25
  154. package/dist/lib/patterns.js.map +0 -1
  155. package/dist/lib/pg-error.js +0 -53
  156. package/dist/lib/pg-error.js.map +0 -1
  157. package/dist/lib/plan-delegate.js +0 -117
  158. package/dist/lib/plan-delegate.js.map +0 -1
  159. package/dist/lib/project-context.js +0 -151
  160. package/dist/lib/project-context.js.map +0 -1
  161. package/dist/lib/prompts.js +0 -69
  162. package/dist/lib/prompts.js.map +0 -1
  163. package/dist/lib/provision-apply.js +0 -220
  164. package/dist/lib/provision-apply.js.map +0 -1
  165. package/dist/lib/provision-collect.js +0 -47
  166. package/dist/lib/provision-collect.js.map +0 -1
  167. package/dist/lib/provision.js +0 -45
  168. package/dist/lib/provision.js.map +0 -1
  169. package/dist/lib/release-logic.js +0 -10
  170. package/dist/lib/release-logic.js.map +0 -1
  171. package/dist/lib/repo-map.js +0 -176
  172. package/dist/lib/repo-map.js.map +0 -1
  173. package/dist/lib/require-config.js +0 -32
  174. package/dist/lib/require-config.js.map +0 -1
  175. package/dist/lib/rules.js +0 -146
  176. package/dist/lib/rules.js.map +0 -1
  177. package/dist/lib/sections.js +0 -89
  178. package/dist/lib/sections.js.map +0 -1
  179. package/dist/lib/skill-agent.js +0 -44
  180. package/dist/lib/skill-agent.js.map +0 -1
  181. package/dist/lib/skill-serve.js +0 -128
  182. package/dist/lib/skill-serve.js.map +0 -1
  183. package/dist/lib/skills-cache.js +0 -99
  184. package/dist/lib/skills-cache.js.map +0 -1
  185. package/dist/lib/skills.js +0 -237
  186. package/dist/lib/skills.js.map +0 -1
  187. package/dist/lib/sprint-deadline.js +0 -28
  188. package/dist/lib/sprint-deadline.js.map +0 -1
  189. package/dist/lib/sprint-logic.js +0 -31
  190. package/dist/lib/sprint-logic.js.map +0 -1
  191. package/dist/lib/targets.js +0 -150
  192. package/dist/lib/targets.js.map +0 -1
  193. package/dist/lib/task-history.js +0 -15
  194. package/dist/lib/task-history.js.map +0 -1
  195. package/dist/lib/telemetry.js +0 -51
  196. package/dist/lib/telemetry.js.map +0 -1
  197. package/dist/lib/tool-result.js +0 -15
  198. package/dist/lib/tool-result.js.map +0 -1
  199. package/dist/lib/validate-plan-delegate.js +0 -106
  200. package/dist/lib/validate-plan-delegate.js.map +0 -1
  201. package/dist/lib/version-check.js +0 -89
  202. package/dist/lib/version-check.js.map +0 -1
  203. package/dist/lib/wave-scheduler.js +0 -95
  204. package/dist/lib/wave-scheduler.js.map +0 -1
  205. package/dist/session-factory.js +0 -19
  206. package/dist/session-factory.js.map +0 -1
  207. package/dist/spinner.js +0 -12
  208. package/dist/spinner.js.map +0 -1
  209. package/dist/tools/activate-sprint.js +0 -44
  210. package/dist/tools/activate-sprint.js.map +0 -1
  211. package/dist/tools/add-checklist.js +0 -63
  212. package/dist/tools/add-checklist.js.map +0 -1
  213. package/dist/tools/add-holiday.js +0 -41
  214. package/dist/tools/add-holiday.js.map +0 -1
  215. package/dist/tools/add-home-office.js +0 -31
  216. package/dist/tools/add-home-office.js.map +0 -1
  217. package/dist/tools/add-vacation.js +0 -39
  218. package/dist/tools/add-vacation.js.map +0 -1
  219. package/dist/tools/attach-pr.js +0 -97
  220. package/dist/tools/attach-pr.js.map +0 -1
  221. package/dist/tools/comment-task.js +0 -72
  222. package/dist/tools/comment-task.js.map +0 -1
  223. package/dist/tools/create-release.js +0 -46
  224. package/dist/tools/create-release.js.map +0 -1
  225. package/dist/tools/create-sprint.js +0 -66
  226. package/dist/tools/create-sprint.js.map +0 -1
  227. package/dist/tools/create-task.js +0 -174
  228. package/dist/tools/create-task.js.map +0 -1
  229. package/dist/tools/delegate-exec.js +0 -63
  230. package/dist/tools/delegate-exec.js.map +0 -1
  231. package/dist/tools/end-allocation.js +0 -38
  232. package/dist/tools/end-allocation.js.map +0 -1
  233. package/dist/tools/end-sprint.js +0 -37
  234. package/dist/tools/end-sprint.js.map +0 -1
  235. package/dist/tools/end-task-allocation.js +0 -60
  236. package/dist/tools/end-task-allocation.js.map +0 -1
  237. package/dist/tools/exec-status.js +0 -45
  238. package/dist/tools/exec-status.js.map +0 -1
  239. package/dist/tools/finalize-release.js +0 -45
  240. package/dist/tools/finalize-release.js.map +0 -1
  241. package/dist/tools/get-active-allocation.js +0 -69
  242. package/dist/tools/get-active-allocation.js.map +0 -1
  243. package/dist/tools/get-calendar.js +0 -40
  244. package/dist/tools/get-calendar.js.map +0 -1
  245. package/dist/tools/get-context.js +0 -48
  246. package/dist/tools/get-context.js.map +0 -1
  247. package/dist/tools/get-sprint.js +0 -38
  248. package/dist/tools/get-sprint.js.map +0 -1
  249. package/dist/tools/get-task.js +0 -146
  250. package/dist/tools/get-task.js.map +0 -1
  251. package/dist/tools/index.js +0 -84
  252. package/dist/tools/index.js.map +0 -1
  253. package/dist/tools/list-my-allocations.js +0 -71
  254. package/dist/tools/list-my-allocations.js.map +0 -1
  255. package/dist/tools/list-projects.js +0 -38
  256. package/dist/tools/list-projects.js.map +0 -1
  257. package/dist/tools/list-releases.js +0 -32
  258. package/dist/tools/list-releases.js.map +0 -1
  259. package/dist/tools/list-sprints.js +0 -30
  260. package/dist/tools/list-sprints.js.map +0 -1
  261. package/dist/tools/list-tasks.js +0 -95
  262. package/dist/tools/list-tasks.js.map +0 -1
  263. package/dist/tools/move-task.js +0 -82
  264. package/dist/tools/move-task.js.map +0 -1
  265. package/dist/tools/plan.js +0 -56
  266. package/dist/tools/plan.js.map +0 -1
  267. package/dist/tools/record-delivery.js +0 -100
  268. package/dist/tools/record-delivery.js.map +0 -1
  269. package/dist/tools/remove-holiday.js +0 -31
  270. package/dist/tools/remove-holiday.js.map +0 -1
  271. package/dist/tools/remove-home-office.js +0 -32
  272. package/dist/tools/remove-home-office.js.map +0 -1
  273. package/dist/tools/remove-vacation.js +0 -31
  274. package/dist/tools/remove-vacation.js.map +0 -1
  275. package/dist/tools/set-project.js +0 -52
  276. package/dist/tools/set-project.js.map +0 -1
  277. package/dist/tools/set-review.js +0 -132
  278. package/dist/tools/set-review.js.map +0 -1
  279. package/dist/tools/sprint-common.js +0 -13
  280. package/dist/tools/sprint-common.js.map +0 -1
  281. package/dist/tools/start-allocation.js +0 -32
  282. package/dist/tools/start-allocation.js.map +0 -1
  283. package/dist/tools/start-task-allocation.js +0 -83
  284. package/dist/tools/start-task-allocation.js.map +0 -1
  285. package/dist/tools/update-release.js +0 -58
  286. package/dist/tools/update-release.js.map +0 -1
  287. package/dist/tools/update-sprint.js +0 -56
  288. package/dist/tools/update-sprint.js.map +0 -1
  289. package/dist/tools/update-task.js +0 -183
  290. package/dist/tools/update-task.js.map +0 -1
  291. package/dist/tools/validate-plan.js +0 -58
  292. package/dist/tools/validate-plan.js.map +0 -1
  293. package/dist/version.js +0 -16
  294. package/dist/version.js.map +0 -1
package/README.md CHANGED
@@ -43,32 +43,21 @@ Esse único comando faz tudo:
43
43
 
44
44
  Reinicie o cliente de IA depois pra carregar as tools.
45
45
 
46
+ ## Documentação
47
+
48
+ ```bash
49
+ noclaf docs # abre no navegador
50
+ noclaf docs -o noclaf.html --no-open # só salva, para compartilhar
51
+ ```
52
+
53
+ Gera a documentação completa desta versão num HTML só: os comandos do CLI, as tools MCP com os parâmetros e o
54
+ contrato de backend de cada módulo, com busca e opção de copiar tudo em Markdown para uma IA. `--json` entrega o
55
+ modelo cru.
56
+
46
57
  ## Comandos do CLI
47
58
 
48
- Operações do CLI, **sem o binário na frente** (declarado no cabeçalho da tabela). Tabela
49
- gerada da fonte por `bun run gen:docs`.
50
-
51
- <!-- COMMANDS:START -->
52
- <!-- gerado por `bun run gen:docs` — não edite à mão. binário `noclaf`, 15 comandos. -->
53
-
54
- | Comando | Descrição |
55
- | --- | --- |
56
- | `clean-legacy` | Remove commands/skills legados (substituídos) de ~/.claude e ~/.codex |
57
- | `completion [shell]` | Imprime o script de autocomplete (bash\|zsh\|fish). |
58
- | `exec` | Delega a implementação a um agente headless num worktree e aguarda. |
59
- | `exec-status <jobId>` | Estado de um job de execução (`noclaf exec`), em JSON |
60
- | `init` | Cria noclaf.json no diretório atual vinculando a um projeto do NOS |
61
- | `login [pat]` | Salva o token de acesso pessoal (PAT) localmente |
62
- | `logout` | Remove credenciais locais |
63
- | `map` | Regera o índice estrutural do repo em docs/_map.md (arquivo → símbolos exportados + propósito). |
64
- | `plan` | Roda o engine pensante sobre o projeto e escreve/refina o .noclaf/plan.md. |
65
- | `skills` | Skills, commands e agents do noclaf (lidos do repo aberto via cache) |
66
- | `skills status` | Lista os docs do repo de skills (cache local ~/.noclaf/skills) |
67
- | `sync` | Instala/atualiza skills, commands e agents nos clientes configurados, a partir do bundle (idempotente); checa atualização do pacote |
68
- | `validate-plan` | Lê o .noclaf/plan.md e roda o engine pensante para julgar se o plano precisa de uma spec antes de implementar. |
69
- | `wave <tickets>` | Calcula a próxima wave do DAG de um doc de tickets (docs/tickets/<x>.md): o frontier (bloqueadores todos done), limitado ao paralelismo e sem dois tickets tocando o mesmo arquivo. |
70
- | `whoami` | Mostra o usuário autenticado |
71
- <!-- COMMANDS:END -->
59
+ `noclaf --help` lista os comandos e `noclaf <comando> --help` detalha cada um; a referência completa está no
60
+ `noclaf docs`.
72
61
 
73
62
  ### Autocomplete (tab)
74
63
 
@@ -88,70 +77,18 @@ Recarregue o shell e `noclaf <tab>` passa a sugerir comandos, subcomandos e flag
88
77
 
89
78
  ## Tools disponíveis
90
79
 
91
- Operações do MCP, com o nome **sem o prefixo** (declarado por grupo — o prefixo vem de
92
- `src/brand.ts`). Tabela gerada da fonte por `bun run gen:docs`.
93
-
94
- <!-- TOOLS:START -->
95
- <!-- gerado por `bun run gen:docs` — não edite à mão. 40 tools. -->
96
-
97
- ### Tools de produto — prefixo `nos_`
98
-
99
- | Operação | O que faz |
100
- | --- | --- |
101
- | `activate_sprint` | Reativa uma sprint: encerra qualquer outra ativa do projeto (tasks não concluídas voltam pro backlog) e reabre a escolhida com status "ativa", start_date = hoje e end_date = null (como a UI). |
102
- | `add_checklist` | Cria uma checklist nomeada (com itens) numa tarefa — a checklist nativa que aparece clicável na UI, melhor que enfiar um DoD no texto da descrição. |
103
- | `add_holiday` | Cria feriado no calendário do time (só admin/gerente). |
104
- | `add_home_office` | Marca home office do PRÓPRIO usuário num dia (o banco pode recusar por limite mensal). |
105
- | `add_vacation` | Registra férias de um usuário no calendário do time (só admin/gerente). |
106
- | `attach_pr` | Anexa a URL de um pull request a uma tarefa e a coloca em review: grava `pr_url`, seta `review_state=pending` e move o status pra `code_review`. |
107
- | `comment_task` | Adiciona um comentário em uma tarefa. |
108
- | `create_release` | Cria uma release (status planning) no projeto. |
109
- | `create_sprint` | Cria uma sprint já ATIVA. |
110
- | `create_task` | Cria uma nova tarefa no projeto atual. |
111
- | `end_allocation` | [ENCERRA O DIA] Bate ponto de SAÍDA do usuário e fecha qualquer task_allocation aberta. |
112
- | `end_sprint` | Encerra a sprint: tasks fora de done/production saem da sprint e voltam pro backlog; done/production ficam. |
113
- | `end_task_allocation` | [PARA TIMER DE TASK] Para a task_allocation ativa. |
114
- | `finalize_release` | Finaliza a release: status delivered + delivered_at. |
115
- | `get_active_allocation` | Retorna o estado atual de cronometragem do usuário: alocação ativa, task atual sendo cronometrada, e segmentos por task na alocação atual. |
116
- | `get_calendar` | Calendário pessoal: só os dias com eventos (feriados, meus prazos, férias, home office, releases, aniversários e tempo de casa). |
117
- | `get_context` | Retorna o contexto completo do projeto NOS ativo: dados do projeto, repositórios, sprint ativa, membros e usuário autenticado. |
118
- | `get_sprint` | Detalha uma sprint: contagem de tasks por status e tasks vencidas (end_date < hoje e fora de done/production), com key/title/end_date. |
119
- | `get_task` | Retorna detalhes completos de uma tarefa: descrição, assignees, checklist, comentários, histórico recente, repositórios vinculados e labels. |
120
- | `list_my_allocations` | Lista alocações passadas do usuário (encerradas), ordenadas por data decrescente. |
121
- | `list_projects` | Lista os projetos do NOS aos quais você tem acesso. |
122
- | `list_releases` | Lista as releases do projeto (id, name, status, target_date, delivered_at). |
123
- | `list_sprints` | Lista as sprints do projeto (ativa e encerradas) com status e datas, mais recentes primeiro. |
124
- | `list_tasks` | Lista tarefas do projeto atual, filtradas pelos parâmetros opcionais. |
125
- | `move_task` | Atalho pra mudar o status de uma tarefa (move entre colunas do Kanban). |
126
- | `record_delivery` | Registra uma ENTREGA do loop de build (um ticket concluído / PR aberto) na analítica de entrega do NOS. |
127
- | `remove_holiday` | Exclui feriado pelo id (só admin/gerente). |
128
- | `remove_home_office` | Remove home office do PRÓPRIO usuário num dia. |
129
- | `remove_vacation` | Exclui férias pelo id (só admin/gerente). |
130
- | `set_project` | Define o projeto ativo da sessão (em memória, dura enquanto o servidor estiver rodando). |
131
- | `set_review` | Registra o veredito de um review no ticket: seta `tasks.review_state`. |
132
- | `start_allocation` | Inicia uma alocação (bate o ponto) para o usuário atual. |
133
- | `start_task_allocation` | Começa a cronometrar tempo numa task específica. |
134
- | `update_release` | Edita uma release: name, target_date, description e/ou status (planning\|in_progress\|cancelled). |
135
- | `update_sprint` | Edita nome e/ou datas de uma sprint. |
136
- | `update_task` | Atualiza campos de uma tarefa existente. |
137
-
138
- ### Tools que espelham o CLI — prefixo `noclaf_`
139
-
140
- | Operação | O que faz |
141
- | --- | --- |
142
- | `delegate_exec` | Delega a IMPLEMENTAÇÃO a um agente de execução novo (codex ou claude local, na assinatura — sem API) num worktree já criado pelo /implement. |
143
- | `exec_status` | Estado de uma execução delegada (`noclaf_delegate_exec`): running \| done \| failed, com o resumo do agente, os arquivos alterados e os checks determinísticos (tamanho, lint, build, testes) e os tokens gastos no run. |
144
- | `plan` | Roda o engine PENSANTE (claude ou codex local, na assinatura — sem API) sobre a raiz do projeto e escreve/refina o `.noclaf/plan.md` de rascunho pré-SDD. |
145
- | `validate_plan` | Lê o `.noclaf/plan.md` do projeto e roda o engine PENSANTE (claude ou codex local, na assinatura — sem API) para julgar se o plano é complexo o bastante para virar uma spec SDD antes de implementar. |
146
- <!-- TOOLS:END -->
80
+ - **`nos_*`**: tools de produto (projetos, tarefas, tempo, sprints, releases, calendário, entregas).
81
+ - **`noclaf_*`**: tools que espelham o CLI (plano, validação de plano, execução delegada).
82
+
83
+ A lista com parâmetros e exemplos está no `noclaf docs`.
147
84
 
148
85
  > **Escopo do projeto.** As tools de tarefa/alocação resolvem o projeto nesta ordem:
149
- > argumento `project_id` da chamada → projeto ativo da sessão (`set_project`) → default
86
+ > argumento `project_id` da chamada → projeto ativo da sessão (`nos_set_project`) → default
150
87
  > opcional do binding de repo (`noclaf.json`/`NOCLAF_PROJECT_ID`).
151
88
  >
152
89
  > O projeto ativo é **por sessão**: vive só em memória, no processo do servidor MCP, e
153
90
  > não é gravado em disco — ao reiniciar volta ao default. No Cowork, onde não há binding
154
- > de repo, é sempre assim que se escolhe o projeto: `list_projects` → `set_project`.
91
+ > de repo, é sempre assim que se escolhe o projeto: `nos_list_projects` → `nos_set_project`.
155
92
  > (Como um processo do Claude Desktop pode ser compartilhado entre conversas, passe
156
93
  > `project_id` direto na chamada quando quiser garantir o escopo de uma conversa.)
157
94
 
@@ -290,6 +227,12 @@ prompt. A CLI também avisa em background em qualquer comando (via `update-notif
290
227
  - **`ENOENT … mkdir` ao provisionar (dotfiles)** — um symlink em `~/.claude` aponta pra um alvo inexistente. As versões atuais materializam o alvo automaticamente; se persistir, cheque o link.
291
228
  - **Sobraram comandos antigos** (`new-spec`, `apply-bug`, `init-sdd` como command…) — rode `noclaf clean-legacy` (use `--dry-run` pra revisar antes) pra removê-los de `~/.claude` e `~/.codex`.
292
229
 
230
+ ## Código
231
+
232
+ Este repo é só o cliente Noclaf: a marca (`src/brand.ts`), o app (`src/app.ts`) e as entradas `noclaf` e
233
+ `noclaf-cli`. Tools, comandos e módulos vêm do [`@noclaf/cli-core`](https://github.com/Falcao-Tech/cli-core);
234
+ mudança de comportamento vai pra lá, e chega aqui subindo a versão do core.
235
+
293
236
  ## Convenções
294
237
 
295
238
  - **Idioma**: UI/CLI em pt-BR. Código (variáveis, funções, tipos) em inglês.
@@ -298,5 +241,4 @@ prompt. A CLI também avisa em background em qualquer comando (via `update-notif
298
241
 
299
242
  ## Versão
300
243
 
301
- v0.1.x — feature complete pra v1. Próximos passos: testes automatizados,
302
- suporte a múltiplos perfis de usuário.
244
+ Veja o `CHANGELOG` do [`@noclaf/cli-core`](https://github.com/Falcao-Tech/cli-core) para o que muda em cada versão; como publicar está em [`PUBLISHING.md`](PUBLISHING.md).
package/dist/app.js ADDED
@@ -0,0 +1,13 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import { coreModules } from '@noclaf/cli-core/modules';
3
+ import { brand } from './brand.js';
4
+ export const options = {
5
+ brand,
6
+ modules: coreModules,
7
+ packageRoot: fileURLToPath(new URL('..', import.meta.url)),
8
+ supabase: {
9
+ url: 'https://wdshvtlsjoegjvmpqobx.supabase.co',
10
+ anonKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Indkc2h2dGxzam9lZ2p2bXBxb2J4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzU3NDA4OTQsImV4cCI6MjA5MTMxNjg5NH0.4wlAsT_D5gDiBQ19WA-q5zu105fT9TsD1NKI_tGQt-4',
11
+ },
12
+ };
13
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK;IACL,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,QAAQ,EAAE;QACR,GAAG,EAAE,0CAA0C;QAC/C,OAAO,EACL,kNAAkN;KACrN;CACsB,CAAC"}
package/dist/brand.js CHANGED
@@ -1,54 +1,30 @@
1
- import { homedir } from 'node:os';
2
- import { join } from 'node:path';
3
- /**
4
- * Fonte única de verdade de marca/atribuição do CLI. Rebrandear = editar este arquivo — ao
5
- * trocar, casar em lockstep: `package.json` (`name`/`bin`/`description`/`keywords`/`repository`)
6
- * e os docs .md que citam tools literalmente (CLAUDE.md, SKILL.md, docs/specs/**\/*.md, e o `brand.skillsRepo` externo).
7
- * A tabela de tools do README é GERADA — depois de editar aqui, rode `bun run gen:docs`.
8
- */
9
1
  export const brand = {
10
- // --- Identidade / display ---
11
- /** Nome do comando/binário principal (nome no help do CLI + `bin` do package.json). */
12
2
  name: 'noclaf',
13
- /** Nome curto do produto, mostrado a usuários e agentes. */
3
+ locale: 'pt-BR',
14
4
  productName: 'NOS',
15
- /** Nome completo do produto. */
16
5
  productFullName: 'Noclaf Operation System',
17
- /** Empresa / fornecedor. */
18
- company: 'Falcao-Tech',
19
- /** Pacote npm — usado nas mensagens de atualização. */
20
6
  packageName: '@noclaf/cli',
21
- /** Binário do servidor MCP (segundo `bin` do package.json). */
22
7
  mcpBinName: 'noclaf-cli',
23
- /** Chave sob a qual o servidor MCP é registrado nos configs dos clientes. */
24
8
  mcpServerKey: 'noclaf',
25
- // --- URLs / endpoints ---
26
- /** Base do app web — onde o usuário gera o PAT. */
27
9
  webUrl: 'https://nos.noclaf.com.br',
28
- supabaseUrl: 'https://wdshvtlsjoegjvmpqobx.supabase.co',
29
- /** COPIE o literal de `src/constants.ts:6` — não redigite. */
30
- supabaseAnonKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Indkc2h2dGxzam9lZ2p2bXBxb2J4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzU3NDA4OTQsImV4cCI6MjA5MTMxNjg5NH0.4wlAsT_D5gDiBQ19WA-q5zu105fT9TsD1NKI_tGQt-4',
31
- // --- Filesystem / namespacing ---
32
- /** Dir de dados no home → `~/.noclaf`. */
10
+ patPath: '/profile#mcp',
11
+ icon: 'https://nos.noclaf.com.br/logo-nos-192.png',
12
+ repoUrl: 'https://github.com/Falcao-Tech/noclaf-cli',
13
+ displayName: 'Noclaf (NOS)',
14
+ authorName: 'Noclaf Tech',
15
+ authorUrl: 'https://github.com/Falcao-Tech',
33
16
  homeDirName: '.noclaf',
34
- /** Arquivo de binding do projeto na raiz do repo. */
35
17
  projectConfigFile: 'noclaf.json',
36
- // --- Contratos ---
37
- /** Prefixo das env vars: `NOCLAF` → `NOCLAF_PAT`, `NOCLAF_CLIENT`, … Contrato externo: Cowork/Codex setam `NOCLAF_CLIENT` de fora — trocar aqui exige trocar lá também. */
18
+ /** Contrato externo: clientes MCP setam `<PREFIX>_CLIENT` de fora. */
38
19
  envPrefix: 'NOCLAF',
39
20
  /** Prefixo do PAT. ATENÇÃO: o backend também valida esse formato. */
40
21
  patPrefix: 'noc_',
41
- // --- Repo de skills ---
42
22
  skillsRepo: 'Falcao-Tech/noclaf-skills',
43
23
  skillsRef: 'main',
44
- /** Pacote npm das skills — citado em mensagens de erro de "pacote não encontrado". */
45
24
  skillsPackage: '@noclaf/skills',
46
- // --- Prefixos dos nomes das tools MCP --- (dois por decisão de domínio: produto vs. CLI — mantidos separados no rebrand; formato validado pelos clientes MCP como `^[a-zA-Z0-9_-]{1,64}$`, só minúsculas/dígitos, termine com `_`)
47
- /** Tools de domínio do produto: `nos_list_tasks`, `nos_move_task`, … (16 tools). */
25
+ // Clientes MCP validam `^[a-zA-Z0-9_-]{1,64}$`: só minúsculas/dígitos, terminando em `_`.
48
26
  toolPrefix: 'nos_',
49
- /** Tools que espelham verbos do CLI: `noclaf_plan`, `noclaf_exec_status`, … (4 tools). */
50
27
  cliToolPrefix: 'noclaf_',
51
- /** Arte ASCII mostrada no `--help`. */
52
28
  logo: `
53
29
  _ _ _ __
54
30
  | \\ | | ___ ___| | __ _ / _|
@@ -66,20 +42,4 @@ export const brand = {
66
42
  |___/
67
43
  `,
68
44
  };
69
- // ponytail: prefixo do PAT assumido alfanumérico + `_`; se um dia tiver metachar de
70
- // regex, escapar antes de interpolar.
71
- /** Regex do formato do PAT, derivada do prefixo: `noc_` + 64 hex. */
72
- export const patRegex = new RegExp(`^${brand.patPrefix}[a-f0-9]{64}$`);
73
- /** Caminho dentro do dir de dados: `homePath('skills')` → `~/.noclaf/skills`. */
74
- export function homePath(...parts) {
75
- return join(homedir(), brand.homeDirName, ...parts);
76
- }
77
- /** NOME completo da env var: `envName('CLIENT')` → `'NOCLAF_CLIENT'`. */
78
- export function envName(name) {
79
- return `${brand.envPrefix}_${name}`;
80
- }
81
- /** VALOR da env var prefixada: `env('PAT')` → `process.env.NOCLAF_PAT`. */
82
- export function env(name) {
83
- return process.env[envName(name)];
84
- }
85
45
  //# sourceMappingURL=brand.js.map
package/dist/brand.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,+BAA+B;IAC/B,uFAAuF;IACvF,IAAI,EAAE,QAAQ;IACd,4DAA4D;IAC5D,WAAW,EAAE,KAAK;IAClB,gCAAgC;IAChC,eAAe,EAAE,yBAAyB;IAC1C,4BAA4B;IAC5B,OAAO,EAAE,aAAa;IACtB,uDAAuD;IACvD,WAAW,EAAE,aAAa;IAC1B,+DAA+D;IAC/D,UAAU,EAAE,YAAY;IACxB,6EAA6E;IAC7E,YAAY,EAAE,QAAQ;IAEtB,2BAA2B;IAC3B,mDAAmD;IACnD,MAAM,EAAE,2BAA2B;IACnC,WAAW,EAAE,0CAA0C;IACvD,8DAA8D;IAC9D,eAAe,EAAE,kNAAkN;IAEnO,mCAAmC;IACnC,0CAA0C;IAC1C,WAAW,EAAE,SAAS;IACtB,qDAAqD;IACrD,iBAAiB,EAAE,aAAa;IAEhC,oBAAoB;IACpB,2KAA2K;IAC3K,SAAS,EAAE,QAAQ;IACnB,qEAAqE;IACrE,SAAS,EAAE,MAAM;IAEjB,yBAAyB;IACzB,UAAU,EAAE,2BAA2B;IACvC,SAAS,EAAE,MAAM;IACjB,sFAAsF;IACtF,aAAa,EAAE,gBAAgB;IAE/B,oOAAoO;IACpO,oFAAoF;IACpF,UAAU,EAAE,MAAM;IAClB,0FAA0F;IAC1F,aAAa,EAAE,SAAS;IAExB,uCAAuC;IACvC,IAAI,EAAE;;;;;;;;;;;;;;;CAeP;CACS,CAAC;AAEX,oFAAoF;AACpF,sCAAsC;AACtC,qEAAqE;AACrE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,eAAe,CAAC,CAAC;AAEvE,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,GAAG,KAAe;IACzC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,yBAAyB;IAC1C,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,QAAQ;IAEtB,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,4CAA4C;IAClD,OAAO,EAAE,2CAA2C;IACpD,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,gCAAgC;IAE3C,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE,aAAa;IAEhC,sEAAsE;IACtE,SAAS,EAAE,QAAQ;IACnB,qEAAqE;IACrE,SAAS,EAAE,MAAM;IAEjB,UAAU,EAAE,2BAA2B;IACvC,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,gBAAgB;IAE/B,0FAA0F;IAC1F,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,SAAS;IACxB,IAAI,EAAE;;;;;;;;;;;;;;;CAeP;CACyB,CAAC"}
package/dist/cli.js CHANGED
@@ -1,39 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from "commander";
3
- import { VERSION } from "./version.js";
4
- import { brand } from "./brand.js";
5
- import { notifyCliIfUpdate } from "./lib/version-check.js";
6
- import { registerAuthCommands } from "./cli/commands/auth.js";
7
- import { registerInitCommand } from "./cli/commands/init/index.js";
8
- import { registerSyncCommand } from "./cli/commands/sync.js";
9
- import { registerSkillsCommands } from "./cli/commands/skills.js";
10
- import { registerCleanCommand } from "./cli/commands/clean.js";
11
- import { registerExecCommand } from "./cli/commands/exec.js";
12
- import { registerPlanCommand } from "./cli/commands/plan.js";
13
- import { registerValidatePlanCommand } from "./cli/commands/validate-plan.js";
14
- import { registerWaveCommand } from "./cli/commands/wave.js";
15
- import { registerMapCommand } from "./cli/commands/map.js";
16
- import { registerCompletionCommand } from "./cli/commands/completion.js";
17
- notifyCliIfUpdate();
18
- const program = new Command();
19
- program
20
- .name(brand.name)
21
- .description(`CLI do ${brand.productName} (${brand.productFullName})`)
22
- .version(VERSION)
23
- .addHelpText("beforeAll", brand.logo);
24
- registerAuthCommands(program);
25
- registerInitCommand(program);
26
- registerSyncCommand(program);
27
- registerSkillsCommands(program);
28
- registerCleanCommand(program);
29
- registerExecCommand(program);
30
- registerPlanCommand(program);
31
- registerValidatePlanCommand(program);
32
- registerWaveCommand(program);
33
- registerMapCommand(program);
34
- registerCompletionCommand(program);
35
- program.parseAsync(process.argv).catch((err) => {
36
- console.error(`Erro: ${err.message}`);
37
- process.exit(1);
38
- });
2
+ import { runCli } from '@noclaf/cli-core/cli';
3
+ import { options } from './app.js';
4
+ await runCli(options);
39
5
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,iBAAiB,EAAE,CAAC;AAEpB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;KAChB,WAAW,CAAC,UAAU,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,eAAe,GAAG,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAExC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,2BAA2B,CAAC,OAAO,CAAC,CAAC;AACrC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAEnC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,SAAU,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC"}
@@ -1,189 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
- import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
- import { VERSION } from './version.js';
6
- import { loadProjectConfig } from './config.js';
7
- import { createSession } from './session-factory.js';
8
- import { tools, toolDefinitions } from './tools/index.js';
9
- import { errorResult } from './lib/tool-result.js';
10
- import { notifyMcpServerIfUpdate } from './lib/version-check.js';
11
- import { filterSkillsForSurface } from './lib/skills.js';
12
- import { loadSkills, skillResourceDescriptors, readSkillResource, skillPromptDescriptors, buildSkillPrompt, } from './lib/skill-serve.js';
13
- import { provision } from './lib/provision.js';
14
- import { provisionHooks } from './lib/hooks.js';
15
- import { claudeTarget } from './lib/targets.js';
16
- import { ensureSkillsCache } from './lib/skills-cache.js';
17
- import { shouldRunAutoPull, pickProvisionTarget } from './lib/autopull.js';
18
- import { brand, env } from './brand.js';
19
- /** Carrega o config do projeto; erro de parse é degradado (log + null), nunca fatal. */
20
- function loadConfigStep() {
21
- try {
22
- return loadProjectConfig();
23
- }
24
- catch (err) {
25
- console.error(`[${brand.mcpBinName}] ${brand.projectConfigFile} inválido: ${err.message}`);
26
- return null;
27
- }
28
- }
29
- // Skills vêm de um repo aberto → garante o cache local (~/.noclaf/skills) antes
30
- // de servir/auto-pull. Baixa só se ausente; best-effort (offline → degrada).
31
- async function initSkillsCache() {
32
- try {
33
- const r = await ensureSkillsCache();
34
- if (r.status === 'fetched') {
35
- console.error(`[${brand.mcpBinName}] skills baixadas (${r.repo}@${r.ref})`);
36
- }
37
- else if (r.status === 'failed') {
38
- console.error(`[${brand.mcpBinName}] aviso: skills indisponíveis: ${r.error}`);
39
- }
40
- }
41
- catch (err) {
42
- console.error(`[${brand.mcpBinName}] aviso: cache de skills pulado: ${err.message}`);
43
- }
44
- }
45
- async function authenticateSession() {
46
- try {
47
- const session = await createSession();
48
- console.error(`[${brand.mcpBinName}] autenticado como ${session.user.email}`);
49
- return session;
50
- }
51
- catch (err) {
52
- console.error(`[${brand.mcpBinName}] aviso: ${err.message}`);
53
- return null;
54
- }
55
- }
56
- /** Surface deste worker (pra filtro de visibilidade `clients:`). Cowork seta
57
- * NOCLAF_CLIENT=cowork; Claude Code costuma deixar vazio → sem filtro (mostra tudo). */
58
- function resolveSurface() {
59
- return env('CLIENT') || null;
60
- }
61
- function registerToolHandlers(server, session, projectConfig) {
62
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
63
- tools: toolDefinitions,
64
- }));
65
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
66
- const tool = tools[request.params.name];
67
- if (!tool) {
68
- return errorResult(`Tool desconhecida: ${request.params.name}`);
69
- }
70
- if (!session) {
71
- return errorResult(`Não autenticado. Rode \`${brand.name} login\` antes de iniciar o Claude Code.`);
72
- }
73
- const ctx = {
74
- gateway: session.gateway,
75
- user: session.user,
76
- config: projectConfig,
77
- };
78
- try {
79
- return await tool.handler(request.params.arguments ?? {}, ctx);
80
- }
81
- catch (err) {
82
- return errorResult(`Erro inesperado em ${request.params.name}: ${err.message}`);
83
- }
84
- });
85
- }
86
- // Resources: o conhecimento (skills/commands/agents) do pacote @noclaf/skills.
87
- // Deixa o worker de IA ler os artefatos sob demanda, mesmo sem rodar `noclaf sync`.
88
- function registerResourceHandlers(server, surface) {
89
- server.setRequestHandler(ListResourcesRequestSchema, async () => {
90
- try {
91
- const { docs } = loadSkills();
92
- return { resources: skillResourceDescriptors(filterSkillsForSurface(docs, surface)) };
93
- }
94
- catch (err) {
95
- console.error(`[${brand.mcpBinName}] aviso: skills indisponíveis: ${err.message}`);
96
- return { resources: [] };
97
- }
98
- });
99
- server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
100
- const { docs, rawByPath } = loadSkills();
101
- const r = readSkillResource(request.params.uri, filterSkillsForSurface(docs, surface), rawByPath);
102
- return { contents: [{ uri: r.uri, mimeType: r.mimeType, text: r.text }] };
103
- });
104
- }
105
- // Prompts: commands/skills como prompts invocáveis. Funciona no Claude Code E no
106
- // Cowork (que não lê `~/.claude`) — é o caminho de slash-command lá.
107
- function registerPromptHandlers(server, surface, session) {
108
- server.setRequestHandler(ListPromptsRequestSchema, async () => {
109
- try {
110
- const { docs } = loadSkills();
111
- return { prompts: skillPromptDescriptors(filterSkillsForSurface(docs, surface)) };
112
- }
113
- catch (err) {
114
- console.error(`[${brand.mcpBinName}] aviso: prompts indisponíveis: ${err.message}`);
115
- return { prompts: [] };
116
- }
117
- });
118
- server.setRequestHandler(GetPromptRequestSchema, async (request) => {
119
- const visible = filterSkillsForSurface(loadSkills().docs, surface);
120
- const { description, text } = buildSkillPrompt(request.params.name, request.params.arguments, visible);
121
- // Telemetria de uso (Cowork): qual skill/command foi invocado (id estável + nome).
122
- session?.gateway.track({
123
- type: 'prompt',
124
- client: surface ?? 'unknown',
125
- id: visible.find((d) => d.id === request.params.name)?.uid ?? null,
126
- name: request.params.name,
127
- });
128
- return {
129
- description,
130
- messages: [{ role: 'user', content: { type: 'text', text } }],
131
- };
132
- });
133
- }
134
- // Hooks (só Claude Code): re-registra os gatilhos no settings.json.
135
- function reinstallHooksIfClaude(target, projectConfig) {
136
- if (target !== claudeTarget)
137
- return;
138
- const h = provisionHooks({
139
- surface: claudeTarget.surface,
140
- selection: projectConfig?.selection,
141
- });
142
- if (h.installed.length > 0 || h.prunedScripts.length > 0) {
143
- console.error(`[${brand.mcpBinName}] auto-pull: ${h.installed.length} hooks, ` +
144
- `${h.prunedScripts.length} removidos em ${h.settingsPath}.`);
145
- }
146
- }
147
- // Auto-pull: a cada start, refresca os arquivos nativos (idempotente via manifesto;
148
- // desliga com NOCLAF_AUTO_PULL=0). No Cowork as skills chegam por resources/prompts,
149
- // não por arquivo nativo — então pulamos.
150
- async function runAutoPull(projectConfig) {
151
- const client = env('CLIENT');
152
- const autoPull = env('AUTO_PULL');
153
- if (!shouldRunAutoPull(client, autoPull))
154
- return;
155
- const target = pickProvisionTarget(client);
156
- try {
157
- const result = provision({ target, selection: projectConfig?.selection });
158
- const changed = result.files.filter((f) => f.action === 'create' || f.action === 'update');
159
- const pruned = result.files.filter((f) => f.action === 'prune');
160
- if (changed.length > 0 || pruned.length > 0) {
161
- console.error(`[${brand.mcpBinName}] auto-pull: ${changed.length} atualizados, ` +
162
- `${pruned.length} removidos em ${result.targetDir}. Reinicie o cliente pra carregar.`);
163
- }
164
- reinstallHooksIfClaude(target, projectConfig);
165
- }
166
- catch (err) {
167
- console.error(`[${brand.mcpBinName}] auto-pull pulou: ${err.message}`);
168
- }
169
- }
170
- async function main() {
171
- const projectConfig = loadConfigStep();
172
- await initSkillsCache();
173
- const session = await authenticateSession();
174
- const server = new Server({ name: brand.mcpBinName, version: VERSION }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
175
- const surface = resolveSurface();
176
- registerToolHandlers(server, session, projectConfig);
177
- registerResourceHandlers(server, surface);
178
- registerPromptHandlers(server, surface, session);
179
- notifyMcpServerIfUpdate();
180
- const transport = new StdioServerTransport();
181
- await server.connect(transport);
182
- console.error(`[${brand.mcpBinName}] servidor iniciado (stdio)`);
183
- await runAutoPull(projectConfig);
184
- }
185
- main().catch((err) => {
186
- console.error(`[${brand.mcpBinName}] erro fatal: ${err.message}`);
187
- process.exit(1);
188
- });
2
+ import { runMcpServer } from '@noclaf/cli-core/mcp';
3
+ import { options } from './app.js';
4
+ await runMcpServer(options);
189
5
  //# sourceMappingURL=mcp-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noclaf/cli",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "MCP server e CLI pra controlar o NOS (Noclaf Operation System) a partir de assistentes de IA como Claude Code, Codex CLI e GitHub Copilot.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -35,29 +35,20 @@
35
35
  "nos"
36
36
  ],
37
37
  "scripts": {
38
- "build": "tsc && node --input-type=commonjs -e \"require('fs').cpSync('src/cli/copy','dist/cli/copy',{recursive:true})\" && chmod +x dist/cli.js dist/mcp-server.js",
39
- "gen:docs": "bun run scripts/gen-reference.ts",
38
+ "build": "rm -rf dist && tsc && chmod +x dist/cli.js dist/mcp-server.js",
40
39
  "dev:cli": "bun run src/cli.ts",
41
40
  "dev:mcp": "bun run src/mcp-server.ts",
42
- "gen:types": "supabase gen types typescript --project-id wdshvtlsjoegjvmpqobx > src/database.types.ts",
43
- "prepublishOnly": "bun run build"
41
+ "test": "bun test",
42
+ "prepublishOnly": "bun run build",
43
+ "lint": "prettier --check . && tsc --noEmit",
44
+ "format": "prettier --write ."
44
45
  },
45
46
  "dependencies": {
46
- "@clack/prompts": "^1.6.0",
47
- "@modelcontextprotocol/sdk": "^1.0.4",
48
- "@supabase/supabase-js": "^2.49.1",
49
- "adm-zip": "^0.5.17",
50
- "boxen": "^7.1.1",
51
- "chalk": "^5.6.2",
52
- "commander": "^12.1.0",
53
- "smol-toml": "^1.6.1",
54
- "update-notifier": "^7.3.1",
55
- "zod": "^4.4.3"
47
+ "@noclaf/cli-core": "^1.1.0"
56
48
  },
57
49
  "devDependencies": {
58
- "@types/adm-zip": "^0.5.8",
59
50
  "@types/node": "^22.10.5",
60
- "@types/update-notifier": "^6.0.8",
51
+ "prettier": "^3.9.9",
61
52
  "typescript": "^5.4.5"
62
53
  }
63
54
  }