@noclaf/cli 0.4.14 → 0.4.15

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 (103) hide show
  1. package/dist/auth.js +2 -1
  2. package/dist/auth.js.map +1 -1
  3. package/dist/brand.js +82 -0
  4. package/dist/brand.js.map +1 -0
  5. package/dist/cli/commands/auth.js +91 -58
  6. package/dist/cli/commands/auth.js.map +1 -1
  7. package/dist/cli/commands/init/auth-step.js +48 -0
  8. package/dist/cli/commands/init/auth-step.js.map +1 -0
  9. package/dist/cli/commands/init/clients-step.js +76 -0
  10. package/dist/cli/commands/init/clients-step.js.map +1 -0
  11. package/dist/cli/commands/init/context-step.js +66 -0
  12. package/dist/cli/commands/init/context-step.js.map +1 -0
  13. package/dist/cli/commands/init/index.js +67 -0
  14. package/dist/cli/commands/init/index.js.map +1 -0
  15. package/dist/cli/commands/init/project-step.js +105 -0
  16. package/dist/cli/commands/init/project-step.js.map +1 -0
  17. package/dist/cli/commands/init/provision-step.js +76 -0
  18. package/dist/cli/commands/init/provision-step.js.map +1 -0
  19. package/dist/cli/flows/clients.js +27 -17
  20. package/dist/cli/flows/clients.js.map +1 -1
  21. package/dist/cli.js +5 -5
  22. package/dist/cli.js.map +1 -1
  23. package/dist/config.js +19 -11
  24. package/dist/config.js.map +1 -1
  25. package/dist/constants.js +7 -8
  26. package/dist/constants.js.map +1 -1
  27. package/dist/lib/autopull.js +13 -0
  28. package/dist/lib/autopull.js.map +1 -0
  29. package/dist/lib/client-configs.js +37 -25
  30. package/dist/lib/client-configs.js.map +1 -1
  31. package/dist/lib/cowork-extension.js +42 -30
  32. package/dist/lib/cowork-extension.js.map +1 -1
  33. package/dist/lib/dependencies.js +83 -247
  34. package/dist/lib/dependencies.js.map +1 -1
  35. package/dist/lib/dependency-install.js +163 -0
  36. package/dist/lib/dependency-install.js.map +1 -0
  37. package/dist/lib/exec-delegate.js +2 -2
  38. package/dist/lib/exec-delegate.js.map +1 -1
  39. package/dist/lib/exec-engines.js +7 -6
  40. package/dist/lib/exec-engines.js.map +1 -1
  41. package/dist/lib/provision-apply.js +214 -0
  42. package/dist/lib/provision-apply.js.map +1 -0
  43. package/dist/lib/provision-collect.js +47 -0
  44. package/dist/lib/provision-collect.js.map +1 -0
  45. package/dist/lib/provision.js +8 -253
  46. package/dist/lib/provision.js.map +1 -1
  47. package/dist/lib/require-config.js +3 -2
  48. package/dist/lib/require-config.js.map +1 -1
  49. package/dist/lib/skills-cache.js +9 -8
  50. package/dist/lib/skills-cache.js.map +1 -1
  51. package/dist/lib/skills.js +30 -16
  52. package/dist/lib/skills.js.map +1 -1
  53. package/dist/lib/telemetry.js +2 -1
  54. package/dist/lib/telemetry.js.map +1 -1
  55. package/dist/lib/version-check.js +3 -2
  56. package/dist/lib/version-check.js.map +1 -1
  57. package/dist/mcp-server.js +107 -79
  58. package/dist/mcp-server.js.map +1 -1
  59. package/dist/tools/comment-task.js +32 -32
  60. package/dist/tools/comment-task.js.map +1 -1
  61. package/dist/tools/create-task.js +92 -101
  62. package/dist/tools/create-task.js.map +1 -1
  63. package/dist/tools/delegate-exec.js +4 -3
  64. package/dist/tools/delegate-exec.js.map +1 -1
  65. package/dist/tools/end-allocation.js +19 -32
  66. package/dist/tools/end-allocation.js.map +1 -1
  67. package/dist/tools/end-task-allocation.js +17 -26
  68. package/dist/tools/end-task-allocation.js.map +1 -1
  69. package/dist/tools/exec-status.js +4 -3
  70. package/dist/tools/exec-status.js.map +1 -1
  71. package/dist/tools/get-active-allocation.js +53 -60
  72. package/dist/tools/get-active-allocation.js.map +1 -1
  73. package/dist/tools/get-context.js +4 -3
  74. package/dist/tools/get-context.js.map +1 -1
  75. package/dist/tools/get-task.js +144 -142
  76. package/dist/tools/get-task.js.map +1 -1
  77. package/dist/tools/list-my-allocations.js +35 -43
  78. package/dist/tools/list-my-allocations.js.map +1 -1
  79. package/dist/tools/list-projects.js +3 -2
  80. package/dist/tools/list-projects.js.map +1 -1
  81. package/dist/tools/list-tasks.js +117 -124
  82. package/dist/tools/list-tasks.js.map +1 -1
  83. package/dist/tools/move-task.js +37 -39
  84. package/dist/tools/move-task.js.map +1 -1
  85. package/dist/tools/plan.js +3 -2
  86. package/dist/tools/plan.js.map +1 -1
  87. package/dist/tools/record-delivery.js +4 -3
  88. package/dist/tools/record-delivery.js.map +1 -1
  89. package/dist/tools/set-project.js +9 -4
  90. package/dist/tools/set-project.js.map +1 -1
  91. package/dist/tools/start-allocation.js +16 -26
  92. package/dist/tools/start-allocation.js.map +1 -1
  93. package/dist/tools/start-task-allocation.js +72 -92
  94. package/dist/tools/start-task-allocation.js.map +1 -1
  95. package/dist/tools/update-task.js +149 -168
  96. package/dist/tools/update-task.js.map +1 -1
  97. package/dist/tools/validate-plan.js +3 -2
  98. package/dist/tools/validate-plan.js.map +1 -1
  99. package/package.json +1 -1
  100. package/dist/cli/commands/init.js +0 -336
  101. package/dist/cli/commands/init.js.map +0 -1
  102. package/dist/logo.js +0 -17
  103. package/dist/logo.js.map +0 -1
@@ -12,55 +12,88 @@ import { filterSkillsForSurface } from './lib/skills.js';
12
12
  import { loadSkills, skillResourceDescriptors, readSkillResource, skillPromptDescriptors, buildSkillPrompt, } from './lib/skill-serve.js';
13
13
  import { provision } from './lib/provision.js';
14
14
  import { provisionHooks } from './lib/hooks.js';
15
- import { claudeTarget, codexTarget } from './lib/targets.js';
15
+ import { claudeTarget } from './lib/targets.js';
16
16
  import { ensureSkillsCache } from './lib/skills-cache.js';
17
17
  import { track } from './lib/telemetry.js';
18
- async function main() {
19
- let projectConfig = null;
18
+ import { shouldRunAutoPull, pickProvisionTarget } from './lib/autopull.js';
19
+ import { brand, env } from './brand.js';
20
+ /** Carrega o config do projeto; erro de parse é degradado (log + null), nunca fatal. */
21
+ function loadConfigStep() {
20
22
  try {
21
- projectConfig = loadProjectConfig();
23
+ return loadProjectConfig();
22
24
  }
23
25
  catch (err) {
24
- console.error(`[noclaf-cli] noclaf.json inválido: ${err.message}`);
26
+ console.error(`[${brand.mcpBinName}] ${brand.projectConfigFile} inválido: ${err.message}`);
27
+ return null;
25
28
  }
26
- // Skills vêm de um repo aberto → garante o cache local (~/.noclaf/skills) antes
27
- // de servir/auto-pull. Baixa só se ausente; best-effort (offline → degrada).
29
+ }
30
+ // Skills vêm de um repo aberto → garante o cache local (~/.noclaf/skills) antes
31
+ // de servir/auto-pull. Baixa só se ausente; best-effort (offline → degrada).
32
+ async function initSkillsCache() {
28
33
  try {
29
34
  const r = await ensureSkillsCache();
30
35
  if (r.status === 'fetched') {
31
- console.error(`[noclaf-cli] skills baixadas (${r.repo}@${r.ref})`);
36
+ console.error(`[${brand.mcpBinName}] skills baixadas (${r.repo}@${r.ref})`);
32
37
  }
33
38
  else if (r.status === 'failed') {
34
- console.error(`[noclaf-cli] aviso: skills indisponíveis: ${r.error}`);
39
+ console.error(`[${brand.mcpBinName}] aviso: skills indisponíveis: ${r.error}`);
35
40
  }
36
41
  }
37
42
  catch (err) {
38
- console.error(`[noclaf-cli] aviso: cache de skills pulado: ${err.message}`);
43
+ console.error(`[${brand.mcpBinName}] aviso: cache de skills pulado: ${err.message}`);
39
44
  }
40
- let session = null;
45
+ }
46
+ async function authenticateSession() {
41
47
  try {
42
- session = await createAuthenticatedClient();
43
- console.error(`[noclaf-cli] autenticado como ${session.user.email}`);
48
+ const session = await createAuthenticatedClient();
49
+ console.error(`[${brand.mcpBinName}] autenticado como ${session.user.email}`);
50
+ return session;
44
51
  }
45
52
  catch (err) {
46
- console.error(`[noclaf-cli] aviso: ${err.message}`);
53
+ console.error(`[${brand.mcpBinName}] aviso: ${err.message}`);
54
+ return null;
47
55
  }
48
- const server = new Server({ name: 'noclaf-cli', version: VERSION }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
49
- // Surface deste worker (pra filtro de visibilidade `clients:`). Cowork seta
50
- // NOCLAF_CLIENT=cowork; Claude Code costuma deixar vazio → sem filtro (mostra tudo).
51
- const surface = process.env.NOCLAF_CLIENT || null;
56
+ }
57
+ /** Surface deste worker (pra filtro de visibilidade `clients:`). Cowork seta
58
+ * NOCLAF_CLIENT=cowork; Claude Code costuma deixar vazio → sem filtro (mostra tudo). */
59
+ function resolveSurface() {
60
+ return env('CLIENT') || null;
61
+ }
62
+ function registerToolHandlers(server, session, projectConfig) {
52
63
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
53
64
  tools: toolDefinitions,
54
65
  }));
55
- // Resources: o conhecimento (skills/commands/agents) do pacote @noclaf/skills.
56
- // Deixa o worker de IA ler os artefatos sob demanda, mesmo sem rodar `noclaf sync`.
66
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
67
+ const tool = tools[request.params.name];
68
+ if (!tool) {
69
+ return errorResult(`Tool desconhecida: ${request.params.name}`);
70
+ }
71
+ if (!session) {
72
+ return errorResult(`Não autenticado. Rode \`${brand.name} login\` antes de iniciar o Claude Code.`);
73
+ }
74
+ const ctx = {
75
+ supabase: session.supabase,
76
+ user: session.user,
77
+ config: projectConfig,
78
+ };
79
+ try {
80
+ return await tool.handler(request.params.arguments ?? {}, ctx);
81
+ }
82
+ catch (err) {
83
+ return errorResult(`Erro inesperado em ${request.params.name}: ${err.message}`);
84
+ }
85
+ });
86
+ }
87
+ // Resources: o conhecimento (skills/commands/agents) do pacote @noclaf/skills.
88
+ // Deixa o worker de IA ler os artefatos sob demanda, mesmo sem rodar `noclaf sync`.
89
+ function registerResourceHandlers(server, surface) {
57
90
  server.setRequestHandler(ListResourcesRequestSchema, async () => {
58
91
  try {
59
92
  const { docs } = loadSkills();
60
93
  return { resources: skillResourceDescriptors(filterSkillsForSurface(docs, surface)) };
61
94
  }
62
95
  catch (err) {
63
- console.error(`[noclaf-cli] aviso: skills indisponíveis: ${err.message}`);
96
+ console.error(`[${brand.mcpBinName}] aviso: skills indisponíveis: ${err.message}`);
64
97
  return { resources: [] };
65
98
  }
66
99
  });
@@ -69,15 +102,17 @@ async function main() {
69
102
  const r = readSkillResource(request.params.uri, filterSkillsForSurface(docs, surface), rawByPath);
70
103
  return { contents: [{ uri: r.uri, mimeType: r.mimeType, text: r.text }] };
71
104
  });
72
- // Prompts: commands/skills como prompts invocáveis. Funciona no Claude Code E no
73
- // Cowork (que não lê `~/.claude`) — é o caminho de slash-command lá.
105
+ }
106
+ // Prompts: commands/skills como prompts invocáveis. Funciona no Claude Code E no
107
+ // Cowork (que não lê `~/.claude`) — é o caminho de slash-command lá.
108
+ function registerPromptHandlers(server, surface, session) {
74
109
  server.setRequestHandler(ListPromptsRequestSchema, async () => {
75
110
  try {
76
111
  const { docs } = loadSkills();
77
112
  return { prompts: skillPromptDescriptors(filterSkillsForSurface(docs, surface)) };
78
113
  }
79
114
  catch (err) {
80
- console.error(`[noclaf-cli] aviso: prompts indisponíveis: ${err.message}`);
115
+ console.error(`[${brand.mcpBinName}] aviso: prompts indisponíveis: ${err.message}`);
81
116
  return { prompts: [] };
82
117
  }
83
118
  });
@@ -96,67 +131,60 @@ async function main() {
96
131
  messages: [{ role: 'user', content: { type: 'text', text } }],
97
132
  };
98
133
  });
99
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
100
- const tool = tools[request.params.name];
101
- if (!tool) {
102
- return errorResult(`Tool desconhecida: ${request.params.name}`);
103
- }
104
- if (!session) {
105
- return errorResult('Não autenticado. Rode `noclaf login` antes de iniciar o Claude Code.');
106
- }
107
- const ctx = {
108
- supabase: session.supabase,
109
- user: session.user,
110
- config: projectConfig,
111
- };
112
- try {
113
- return await tool.handler(request.params.arguments ?? {}, ctx);
114
- }
115
- catch (err) {
116
- return errorResult(`Erro inesperado em ${request.params.name}: ${err.message}`);
117
- }
134
+ }
135
+ // Hooks (só Claude Code): re-registra os gatilhos no settings.json.
136
+ function reinstallHooksIfClaude(target, projectConfig) {
137
+ if (target !== claudeTarget)
138
+ return;
139
+ const h = provisionHooks({
140
+ surface: claudeTarget.surface,
141
+ selection: projectConfig?.selection,
118
142
  });
143
+ if (h.installed.length > 0 || h.prunedScripts.length > 0) {
144
+ console.error(`[${brand.mcpBinName}] auto-pull: ${h.installed.length} hooks, ` +
145
+ `${h.prunedScripts.length} removidos em ${h.settingsPath}.`);
146
+ }
147
+ }
148
+ // Auto-pull: a cada start, refresca os arquivos nativos (idempotente via manifesto;
149
+ // desliga com NOCLAF_AUTO_PULL=0). No Cowork as skills chegam por resources/prompts,
150
+ // não por arquivo nativo — então pulamos.
151
+ async function runAutoPull(projectConfig) {
152
+ const client = env('CLIENT');
153
+ const autoPull = env('AUTO_PULL');
154
+ if (!shouldRunAutoPull(client, autoPull))
155
+ return;
156
+ const target = pickProvisionTarget(client);
157
+ try {
158
+ const result = provision({ target, selection: projectConfig?.selection });
159
+ const changed = result.files.filter((f) => f.action === 'create' || f.action === 'update');
160
+ const pruned = result.files.filter((f) => f.action === 'prune');
161
+ if (changed.length > 0 || pruned.length > 0) {
162
+ console.error(`[${brand.mcpBinName}] auto-pull: ${changed.length} atualizados, ` +
163
+ `${pruned.length} removidos em ${result.targetDir}. Reinicie o cliente pra carregar.`);
164
+ }
165
+ reinstallHooksIfClaude(target, projectConfig);
166
+ }
167
+ catch (err) {
168
+ console.error(`[${brand.mcpBinName}] auto-pull pulou: ${err.message}`);
169
+ }
170
+ }
171
+ async function main() {
172
+ const projectConfig = loadConfigStep();
173
+ await initSkillsCache();
174
+ const session = await authenticateSession();
175
+ const server = new Server({ name: brand.mcpBinName, version: VERSION }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
176
+ const surface = resolveSurface();
177
+ registerToolHandlers(server, session, projectConfig);
178
+ registerResourceHandlers(server, surface);
179
+ registerPromptHandlers(server, surface, session);
119
180
  notifyMcpServerIfUpdate();
120
181
  const transport = new StdioServerTransport();
121
182
  await server.connect(transport);
122
- console.error('[noclaf-cli] servidor iniciado (stdio)');
123
- // Auto-pull: a cada start, refresca os arquivos nativos (idempotente via manifesto;
124
- // desliga com NOCLAF_AUTO_PULL=0). No Cowork as skills chegam por resources/prompts,
125
- // não por arquivo nativo — então pulamos.
126
- const autoPull = process.env.NOCLAF_AUTO_PULL;
127
- const client = process.env.NOCLAF_CLIENT;
128
- const isCowork = client === 'cowork';
129
- if (!isCowork && autoPull !== '0' && autoPull !== 'false') {
130
- // Cliente nativo do worker: Codex escreve `~/.codex` (skills traduzidas),
131
- // qualquer outro cai pro Claude Code (`~/.claude`).
132
- const target = client === 'codex' ? codexTarget : claudeTarget;
133
- try {
134
- const result = provision({ target, selection: projectConfig?.selection });
135
- const changed = result.files.filter((f) => f.action === 'create' || f.action === 'update');
136
- const pruned = result.files.filter((f) => f.action === 'prune');
137
- if (changed.length > 0 || pruned.length > 0) {
138
- console.error(`[noclaf-cli] auto-pull: ${changed.length} atualizados, ` +
139
- `${pruned.length} removidos em ${result.targetDir}. Reinicie o cliente pra carregar.`);
140
- }
141
- // Hooks (só Claude Code): re-registra os gatilhos no settings.json.
142
- if (target === claudeTarget) {
143
- const h = provisionHooks({
144
- surface: claudeTarget.surface,
145
- selection: projectConfig?.selection,
146
- });
147
- if (h.installed.length > 0 || h.prunedScripts.length > 0) {
148
- console.error(`[noclaf-cli] auto-pull: ${h.installed.length} hooks, ` +
149
- `${h.prunedScripts.length} removidos em ${h.settingsPath}.`);
150
- }
151
- }
152
- }
153
- catch (err) {
154
- console.error(`[noclaf-cli] auto-pull pulou: ${err.message}`);
155
- }
156
- }
183
+ console.error(`[${brand.mcpBinName}] servidor iniciado (stdio)`);
184
+ await runAutoPull(projectConfig);
157
185
  }
158
186
  main().catch((err) => {
159
- console.error(`[noclaf-cli] erro fatal: ${err.message}`);
187
+ console.error(`[${brand.mcpBinName}] erro fatal: ${err.message}`);
160
188
  process.exit(1);
161
189
  });
162
190
  //# sourceMappingURL=mcp-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAsB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAA6B,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,IAAI,aAAa,GAAyB,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,aAAa,GAAG,iBAAiB,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,sCAAuC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,gFAAgF;IAChF,6EAA6E;IAC7E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+CAAgD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,OAAO,GAAgC,IAAI,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,yBAAyB,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,EACxC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAC5D,CAAC;IAEF,4EAA4E;IAC5E,qFAAqF;IACrF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;IAElD,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,eAAe;KACvB,CAAC,CAAC,CAAC;IAEJ,+EAA+E;IAC/E,oFAAoF;IACpF,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;YAC9B,OAAO,EAAE,SAAS,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6CAA8C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACpE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,iBAAiB,CACzB,OAAO,CAAC,MAAM,CAAC,GAAG,EAClB,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,EACrC,SAAS,CACV,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,iFAAiF;IACjF,qEAAqE;IACrE,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA+C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAC5C,OAAO,CAAC,MAAM,CAAC,IAAI,EACnB,OAAO,CAAC,MAAM,CAAC,SAAS,EACxB,OAAO,CACR,CAAC;QACF,mFAAmF;QACnF,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE;YAC/B,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO,IAAI,SAAS;YAC5B,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI;YAClE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;SAC1B,CAAC,CAAC;QACH,OAAO;YACL,WAAW;YACX,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;SAC9D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,WAAW,CAAC,sBAAsB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,WAAW,CAChB,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAgB;YACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,aAAa;SACtB,CAAC;QACF,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,sBAAsB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uBAAuB,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAExD,oFAAoF;IACpF,qFAAqF;IACrF,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC;IACrC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1D,0EAA0E;QAC1E,oDAAoD;QACpD,MAAM,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,CACX,2BAA2B,OAAO,CAAC,MAAM,gBAAgB;oBACvD,GAAG,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,SAAS,oCAAoC,CACxF,CAAC;YACJ,CAAC;YACD,oEAAoE;YACpE,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,cAAc,CAAC;oBACvB,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,SAAS,EAAE,aAAa,EAAE,SAAS;iBACpC,CAAC,CAAC;gBACH,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzD,OAAO,CAAC,KAAK,CACX,2BAA2B,CAAC,CAAC,SAAS,CAAC,MAAM,UAAU;wBACrD,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC,YAAY,GAAG,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,4BAA6B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { jsonResult, errorResult } from '../lib/tool-result.js';
3
3
  import { resolveProjectConfig, isErrorResult } from '../lib/require-config.js';
4
4
  import { insertTaskHistory } from '../lib/task-history.js';
5
+ import { brand } from '../brand.js';
5
6
  const ArgsSchema = z
6
7
  .object({
7
8
  task_id: z.string().uuid(),
@@ -14,7 +15,7 @@ const ArgsSchema = z
14
15
  })
15
16
  .strict();
16
17
  export const definition = {
17
- name: 'nos_comment_task',
18
+ name: `${brand.toolPrefix}comment_task`,
18
19
  description: 'Adiciona um comentário em uma tarefa. O comentário fica visível pros humanos na UI ' +
19
20
  'junto com os outros comentários da task.',
20
21
  inputSchema: {
@@ -25,56 +26,55 @@ export const definition = {
25
26
  project_id: {
26
27
  type: 'string',
27
28
  format: 'uuid',
28
- description: 'Override do projeto. Se omitido, usa o projeto ativo (nos_set_project) ou o default.',
29
+ description: `Override do projeto. Se omitido, usa o projeto ativo (${brand.toolPrefix}set_project) ou o default.`,
29
30
  },
30
31
  },
31
32
  required: ['task_id', 'content'],
32
33
  additionalProperties: false,
33
34
  },
34
35
  };
36
+ /** Monta o registro de histórico do comentário, truncando o preview. Pura. */
37
+ export function buildCommentHistoryEntry(taskId, userId, content) {
38
+ return {
39
+ task_id: taskId,
40
+ user_id: userId,
41
+ action: 'commented',
42
+ field: null,
43
+ new_value: content.slice(0, 200),
44
+ };
45
+ }
46
+ /** Monta o payload de resposta do comment_task. Pura. */
47
+ export function buildCommentResult(comment) {
48
+ return { comment_id: comment.id, task_id: comment.task_id, created_at: comment.created_at };
49
+ }
50
+ async function ensureTaskInProject(supabase, taskId, projectId) {
51
+ const taskRes = await supabase.from('tasks').select('id').eq('id', taskId).eq('project_id', projectId).maybeSingle();
52
+ if (taskRes.error)
53
+ return errorResult(`Erro ao validar tarefa: ${taskRes.error.message}`);
54
+ if (!taskRes.data)
55
+ return errorResult('Tarefa não encontrada ou fora do projeto atual.');
56
+ return null;
57
+ }
35
58
  export async function handler(args, ctx) {
36
59
  const parsed = ArgsSchema.safeParse(args);
37
- if (!parsed.success) {
60
+ if (!parsed.success)
38
61
  return errorResult(`Argumento inválido: ${parsed.error.message}`);
39
- }
40
62
  const { task_id, content } = parsed.data;
41
63
  const cfg = resolveProjectConfig(ctx, parsed.data.project_id);
42
64
  if (isErrorResult(cfg))
43
65
  return cfg;
44
66
  const { supabase } = ctx;
45
- // Valida task no escopo do projeto antes de comentar
46
- const taskRes = await supabase
47
- .from('tasks')
48
- .select('id')
49
- .eq('id', task_id)
50
- .eq('project_id', cfg.project_id)
51
- .maybeSingle();
52
- if (taskRes.error)
53
- return errorResult(`Erro ao validar tarefa: ${taskRes.error.message}`);
54
- if (!taskRes.data)
55
- return errorResult('Tarefa não encontrada ou fora do projeto atual.');
67
+ const taskErr = await ensureTaskInProject(supabase, task_id, cfg.project_id);
68
+ if (taskErr)
69
+ return taskErr;
56
70
  const insertRes = await supabase
57
71
  .from('task_comments')
58
- .insert({
59
- task_id,
60
- author_id: ctx.user.id,
61
- content,
62
- })
72
+ .insert({ task_id, author_id: ctx.user.id, content })
63
73
  .select('id, task_id, created_at')
64
74
  .single();
65
75
  if (insertRes.error)
66
76
  return errorResult(`Erro ao gravar comentário: ${insertRes.error.message}`);
67
- await insertTaskHistory(supabase, {
68
- task_id,
69
- user_id: ctx.user.id,
70
- action: 'commented',
71
- field: null,
72
- new_value: content.slice(0, 200),
73
- });
74
- return jsonResult({
75
- comment_id: insertRes.data.id,
76
- task_id: insertRes.data.task_id,
77
- created_at: insertRes.data.created_at,
78
- });
77
+ await insertTaskHistory(supabase, buildCommentHistoryEntry(task_id, ctx.user.id, content));
78
+ return jsonResult(buildCommentResult(insertRes.data));
79
79
  }
80
80
  //# sourceMappingURL=comment-task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment-task.js","sourceRoot":"","sources":["../../src/tools/comment-task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comment-task.js","sourceRoot":"","sources":["../../src/tools/comment-task.ts"],"names":[],"mappings":"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"}