@noclaf/cli 0.4.18 → 0.5.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 (162) hide show
  1. package/README.md +70 -56
  2. package/dist/adapters/supabase/allocation-gateway.js +236 -0
  3. package/dist/adapters/supabase/allocation-gateway.js.map +1 -0
  4. package/dist/adapters/supabase/analytics-gateway.js +18 -0
  5. package/dist/adapters/supabase/analytics-gateway.js.map +1 -0
  6. package/dist/{supabase.js → adapters/supabase/client.js} +5 -4
  7. package/dist/adapters/supabase/client.js.map +1 -0
  8. package/dist/adapters/supabase/context-gateway.js +23 -0
  9. package/dist/adapters/supabase/context-gateway.js.map +1 -0
  10. package/dist/adapters/supabase/gateway.js +18 -0
  11. package/dist/adapters/supabase/gateway.js.map +1 -0
  12. package/dist/adapters/supabase/task-gateway.js +505 -0
  13. package/dist/adapters/supabase/task-gateway.js.map +1 -0
  14. package/dist/brand.js +4 -1
  15. package/dist/brand.js.map +1 -1
  16. package/dist/cli/commands/auth.js +2 -2
  17. package/dist/cli/commands/auth.js.map +1 -1
  18. package/dist/cli/commands/completion.js +17 -14
  19. package/dist/cli/commands/completion.js.map +1 -1
  20. package/dist/cli/commands/exec.js +38 -27
  21. package/dist/cli/commands/exec.js.map +1 -1
  22. package/dist/cli/commands/init/analyze-step.js +21 -0
  23. package/dist/cli/commands/init/analyze-step.js.map +1 -0
  24. package/dist/cli/commands/init/apply-answers.js +105 -0
  25. package/dist/cli/commands/init/apply-answers.js.map +1 -0
  26. package/dist/cli/commands/init/apply-step.js +162 -0
  27. package/dist/cli/commands/init/apply-step.js.map +1 -0
  28. package/dist/cli/commands/init/auth-step.js +1 -1
  29. package/dist/cli/commands/init/auth-step.js.map +1 -1
  30. package/dist/cli/commands/init/clients-step.js +13 -11
  31. package/dist/cli/commands/init/clients-step.js.map +1 -1
  32. package/dist/cli/commands/init/context-step.js +24 -13
  33. package/dist/cli/commands/init/context-step.js.map +1 -1
  34. package/dist/cli/commands/init/describe-step.js +58 -0
  35. package/dist/cli/commands/init/describe-step.js.map +1 -0
  36. package/dist/cli/commands/init/index.js +26 -3
  37. package/dist/cli/commands/init/index.js.map +1 -1
  38. package/dist/cli/commands/init/mode.js +18 -0
  39. package/dist/cli/commands/init/mode.js.map +1 -0
  40. package/dist/cli/commands/init/progress.js +60 -0
  41. package/dist/cli/commands/init/progress.js.map +1 -0
  42. package/dist/cli/commands/init/project-step.js +33 -5
  43. package/dist/cli/commands/init/project-step.js.map +1 -1
  44. package/dist/cli/commands/map.js +18 -0
  45. package/dist/cli/commands/map.js.map +1 -0
  46. package/dist/cli/commands/plan.js +2 -2
  47. package/dist/cli/commands/plan.js.map +1 -1
  48. package/dist/cli/commands/skills.js +3 -2
  49. package/dist/cli/commands/skills.js.map +1 -1
  50. package/dist/cli/commands/sync.js +11 -8
  51. package/dist/cli/commands/sync.js.map +1 -1
  52. package/dist/cli/commands/validate-plan.js +2 -2
  53. package/dist/cli/commands/validate-plan.js.map +1 -1
  54. package/dist/cli/commands/wave.js +57 -0
  55. package/dist/cli/commands/wave.js.map +1 -0
  56. package/dist/cli/copy/init.json +1 -0
  57. package/dist/cli/copy.js.map +1 -1
  58. package/dist/cli/flows/clients.js +2 -2
  59. package/dist/cli/flows/clients.js.map +1 -1
  60. package/dist/cli/flows/completion.js +6 -5
  61. package/dist/cli/flows/completion.js.map +1 -1
  62. package/dist/cli/flows/sections.js +1 -1
  63. package/dist/cli/flows/sections.js.map +1 -1
  64. package/dist/cli/flows/user-config.js +4 -3
  65. package/dist/cli/flows/user-config.js.map +1 -1
  66. package/dist/cli/ui/render.js +12 -8
  67. package/dist/cli/ui/render.js.map +1 -1
  68. package/dist/cli.js +4 -0
  69. package/dist/cli.js.map +1 -1
  70. package/dist/config.js +49 -22
  71. package/dist/config.js.map +1 -1
  72. package/dist/core/ports.js +2 -0
  73. package/dist/core/ports.js.map +1 -0
  74. package/dist/core/types.js +7 -0
  75. package/dist/core/types.js.map +1 -0
  76. package/dist/lib/cowork-extension.js +1 -1
  77. package/dist/lib/cowork-extension.js.map +1 -1
  78. package/dist/lib/exec-delegate.js +74 -22
  79. package/dist/lib/exec-delegate.js.map +1 -1
  80. package/dist/lib/exec-engines.js +21 -3
  81. package/dist/lib/exec-engines.js.map +1 -1
  82. package/dist/lib/exec-events.js +87 -0
  83. package/dist/lib/exec-events.js.map +1 -0
  84. package/dist/lib/exec-translators.js +198 -0
  85. package/dist/lib/exec-translators.js.map +1 -0
  86. package/dist/lib/harness.js +43 -5
  87. package/dist/lib/harness.js.map +1 -1
  88. package/dist/lib/patterns.js +4 -40
  89. package/dist/lib/patterns.js.map +1 -1
  90. package/dist/lib/plan-delegate.js +15 -3
  91. package/dist/lib/plan-delegate.js.map +1 -1
  92. package/dist/lib/project-context.js +2 -1
  93. package/dist/lib/project-context.js.map +1 -1
  94. package/dist/lib/provision.js +2 -1
  95. package/dist/lib/provision.js.map +1 -1
  96. package/dist/lib/repo-map.js +176 -0
  97. package/dist/lib/repo-map.js.map +1 -0
  98. package/dist/lib/rules.js +47 -0
  99. package/dist/lib/rules.js.map +1 -1
  100. package/dist/lib/skill-agent.js +44 -0
  101. package/dist/lib/skill-agent.js.map +1 -0
  102. package/dist/lib/skills.js +4 -4
  103. package/dist/lib/skills.js.map +1 -1
  104. package/dist/lib/task-history.js +2 -1
  105. package/dist/lib/task-history.js.map +1 -1
  106. package/dist/lib/telemetry.js.map +1 -1
  107. package/dist/lib/validate-plan-delegate.js +2 -1
  108. package/dist/lib/validate-plan-delegate.js.map +1 -1
  109. package/dist/lib/wave-scheduler.js +95 -0
  110. package/dist/lib/wave-scheduler.js.map +1 -0
  111. package/dist/mcp-server.js +4 -5
  112. package/dist/mcp-server.js.map +1 -1
  113. package/dist/session-factory.js +19 -0
  114. package/dist/session-factory.js.map +1 -0
  115. package/dist/tools/add-checklist.js +63 -0
  116. package/dist/tools/add-checklist.js.map +1 -0
  117. package/dist/tools/attach-pr.js +97 -0
  118. package/dist/tools/attach-pr.js.map +1 -0
  119. package/dist/tools/comment-task.js +32 -40
  120. package/dist/tools/comment-task.js.map +1 -1
  121. package/dist/tools/create-task.js +15 -71
  122. package/dist/tools/create-task.js.map +1 -1
  123. package/dist/tools/end-allocation.js +9 -17
  124. package/dist/tools/end-allocation.js.map +1 -1
  125. package/dist/tools/end-task-allocation.js +9 -14
  126. package/dist/tools/end-task-allocation.js.map +1 -1
  127. package/dist/tools/exec-status.js +3 -1
  128. package/dist/tools/exec-status.js.map +1 -1
  129. package/dist/tools/get-active-allocation.js +9 -39
  130. package/dist/tools/get-active-allocation.js.map +1 -1
  131. package/dist/tools/get-context.js +4 -4
  132. package/dist/tools/get-context.js.map +1 -1
  133. package/dist/tools/get-task.js +10 -96
  134. package/dist/tools/get-task.js.map +1 -1
  135. package/dist/tools/index.js +6 -0
  136. package/dist/tools/index.js.map +1 -1
  137. package/dist/tools/list-my-allocations.js +9 -17
  138. package/dist/tools/list-my-allocations.js.map +1 -1
  139. package/dist/tools/list-projects.js +3 -3
  140. package/dist/tools/list-projects.js.map +1 -1
  141. package/dist/tools/list-tasks.js +25 -138
  142. package/dist/tools/list-tasks.js.map +1 -1
  143. package/dist/tools/move-task.js +17 -31
  144. package/dist/tools/move-task.js.map +1 -1
  145. package/dist/tools/plan.js +2 -2
  146. package/dist/tools/plan.js.map +1 -1
  147. package/dist/tools/record-delivery.js +51 -22
  148. package/dist/tools/record-delivery.js.map +1 -1
  149. package/dist/tools/set-project.js +12 -12
  150. package/dist/tools/set-project.js.map +1 -1
  151. package/dist/tools/set-review.js +132 -0
  152. package/dist/tools/set-review.js.map +1 -0
  153. package/dist/tools/start-allocation.js +7 -10
  154. package/dist/tools/start-allocation.js.map +1 -1
  155. package/dist/tools/start-task-allocation.js +14 -60
  156. package/dist/tools/start-task-allocation.js.map +1 -1
  157. package/dist/tools/update-task.js +31 -129
  158. package/dist/tools/update-task.js.map +1 -1
  159. package/dist/tools/validate-plan.js +2 -2
  160. package/dist/tools/validate-plan.js.map +1 -1
  161. package/package.json +2 -1
  162. package/dist/supabase.js.map +0 -1
@@ -0,0 +1,505 @@
1
+ import { insertTaskHistory } from '../../lib/task-history.js';
2
+ const SPRINT_UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
3
+ /** Mapeia o conjunto de vínculos → tabela/coluna/campo de histórico + mensagens de erro. */
4
+ const ID_SET_SPEC = {
5
+ assignees: {
6
+ table: 'task_assignees', idColumn: 'user_id', historyField: 'assignees',
7
+ fetchErr: 'Erro ao buscar assignees atuais', clearErr: 'Erro ao limpar assignees', insertErr: 'Erro ao gravar novos assignees',
8
+ },
9
+ labels: {
10
+ table: 'task_label_assignments', idColumn: 'label_id', historyField: 'labels',
11
+ fetchErr: 'Erro ao buscar labels atuais', clearErr: 'Erro ao limpar labels', insertErr: 'Erro ao gravar novas labels',
12
+ },
13
+ };
14
+ /** Agrupa assignees (já resolvidos p/ perfil) por task_id. Pura. */
15
+ export function groupAssigneesByTask(assigneeRows, profilesById) {
16
+ const assigneesByTask = new Map();
17
+ for (const row of assigneeRows) {
18
+ const profile = profilesById.get(row.user_id);
19
+ const list = assigneesByTask.get(row.task_id) ?? [];
20
+ list.push({
21
+ user_id: row.user_id,
22
+ full_name: profile?.full_name ?? null,
23
+ username: profile?.username ?? null,
24
+ });
25
+ assigneesByTask.set(row.task_id, list);
26
+ }
27
+ return assigneesByTask;
28
+ }
29
+ /** Monta a lista de tasks com assignees embutidos, a partir das linhas + assignees agrupados. Pura. */
30
+ export function formatTaskList(tasks, assigneesByTask) {
31
+ return tasks.map((t) => ({
32
+ id: t.id,
33
+ key: t.key,
34
+ title: t.title,
35
+ status: t.status,
36
+ priority: t.priority,
37
+ type: t.type,
38
+ sprint_id: t.sprint_id,
39
+ end_date: t.end_date,
40
+ created_at: t.created_at,
41
+ assignees: assigneesByTask.get(t.id) ?? [],
42
+ }));
43
+ }
44
+ /** Adaptador Supabase do `TaskGateway` (listagem, detalhe, CRUD, comentário). */
45
+ export function taskGateway(db) {
46
+ return {
47
+ async listTasks(filter) {
48
+ const restrict = await resolveAssigneeFilter(db, filter.userId, filter.assignee);
49
+ const sprint = await resolveSprintFilter(db, filter.projectId, filter.sprint);
50
+ if (sprint.noActive)
51
+ return { tasks: [], note: 'Não há sprint ativa neste projeto.' };
52
+ // Short-circuit: filtro IN com array vazio → nada bate.
53
+ if (restrict?.mode === 'in' && restrict.ids.length === 0)
54
+ return { tasks: [] };
55
+ const rows = await queryFilteredTasks(db, filter, restrict, sprint.filter);
56
+ if (rows.length === 0)
57
+ return { tasks: [] };
58
+ const { assigneeRows, profilesById } = await loadAssigneeProfiles(db, rows.map((t) => t.id));
59
+ return { tasks: formatTaskList(rows, groupAssigneesByTask(assigneeRows, profilesById)) };
60
+ },
61
+ async getTaskWithRelations(taskId, projectId) {
62
+ const taskRes = await db
63
+ .from('tasks')
64
+ .select('*')
65
+ .eq('id', taskId)
66
+ .eq('project_id', projectId)
67
+ .maybeSingle();
68
+ if (taskRes.error)
69
+ throw new Error(`Erro ao buscar tarefa: ${taskRes.error.message}`);
70
+ if (!taskRes.data)
71
+ return null;
72
+ const [assigneesRes, checklistRes, commentsRes, historyRes, reposRes, labelsRes] = await Promise.all([
73
+ db.from('task_assignees').select('user_id').eq('task_id', taskId),
74
+ db
75
+ .from('task_checklist_items')
76
+ .select('id, text, checked, order')
77
+ .eq('task_id', taskId)
78
+ .order('order', { ascending: true }),
79
+ db
80
+ .from('task_comments')
81
+ .select('id, content, created_at, updated_at, author_id')
82
+ .eq('task_id', taskId)
83
+ .order('created_at', { ascending: true })
84
+ .limit(50),
85
+ db
86
+ .from('task_history')
87
+ .select('id, action, field, old_value, new_value, created_at, user_id')
88
+ .eq('task_id', taskId)
89
+ .order('created_at', { ascending: false })
90
+ .limit(50),
91
+ db.from('task_repositories').select('repository_id').eq('task_id', taskId),
92
+ db.from('task_label_assignments').select('label_id').eq('task_id', taskId),
93
+ ]);
94
+ if (assigneesRes.error)
95
+ throw new Error(`Erro ao buscar assignees: ${assigneesRes.error.message}`);
96
+ if (checklistRes.error)
97
+ throw new Error(`Erro ao buscar checklist: ${checklistRes.error.message}`);
98
+ if (commentsRes.error)
99
+ throw new Error(`Erro ao buscar comentários: ${commentsRes.error.message}`);
100
+ if (historyRes.error)
101
+ throw new Error(`Erro ao buscar histórico: ${historyRes.error.message}`);
102
+ if (reposRes.error)
103
+ throw new Error(`Erro ao buscar repositórios: ${reposRes.error.message}`);
104
+ if (labelsRes.error)
105
+ throw new Error(`Erro ao buscar labels: ${labelsRes.error.message}`);
106
+ return {
107
+ task: taskRes.data,
108
+ rows: {
109
+ assigneeRows: assigneesRes.data ?? [],
110
+ checklistRows: checklistRes.data ?? [],
111
+ commentRows: commentsRes.data ?? [],
112
+ historyRows: historyRes.data ?? [],
113
+ repoRows: reposRes.data ?? [],
114
+ labelRows: labelsRes.data ?? [],
115
+ },
116
+ };
117
+ },
118
+ async loadTaskRefs(userIds, repoIds, labelIds) {
119
+ const profiles = await fetchProfiles(db, userIds);
120
+ const reposById = new Map();
121
+ if (repoIds.length > 0) {
122
+ const repoFetch = await db
123
+ .from('repositories')
124
+ .select('id, name, url, default_branch')
125
+ .in('id', repoIds);
126
+ if (repoFetch.error)
127
+ throw new Error(`Erro ao buscar repositórios: ${repoFetch.error.message}`);
128
+ for (const r of repoFetch.data ?? []) {
129
+ reposById.set(r.id, { name: r.name, url: r.url, default_branch: r.default_branch });
130
+ }
131
+ }
132
+ const labelsById = new Map();
133
+ if (labelIds.length > 0) {
134
+ const labelFetch = await db.from('task_labels').select('id, name, color').in('id', labelIds);
135
+ if (labelFetch.error)
136
+ throw new Error(`Erro ao buscar labels: ${labelFetch.error.message}`);
137
+ for (const l of labelFetch.data ?? [])
138
+ labelsById.set(l.id, { name: l.name, color: l.color });
139
+ }
140
+ return { profiles, reposById, labelsById };
141
+ },
142
+ async resolveSprintId(projectId, sprintInput) {
143
+ if (sprintInput === 'active') {
144
+ const sprintRes = await db
145
+ .from('sprints')
146
+ .select('id')
147
+ .eq('project_id', projectId)
148
+ .eq('status', 'ativa')
149
+ .maybeSingle();
150
+ if (sprintRes.error)
151
+ throw new Error(`Erro ao buscar sprint ativa: ${sprintRes.error.message}`);
152
+ if (!sprintRes.data)
153
+ throw new Error('Não há sprint ativa no projeto.');
154
+ return sprintRes.data.id;
155
+ }
156
+ if (sprintInput === 'none')
157
+ return null;
158
+ if (!SPRINT_UUID_RE.test(sprintInput)) {
159
+ throw new Error('Argumento "sprint" deve ser "active", "none" ou um UUID válido.');
160
+ }
161
+ const sprintRes = await db.from('sprints').select('id, project_id').eq('id', sprintInput).maybeSingle();
162
+ if (sprintRes.error)
163
+ throw new Error(`Erro ao validar sprint: ${sprintRes.error.message}`);
164
+ if (!sprintRes.data || sprintRes.data.project_id !== projectId) {
165
+ throw new Error('Sprint informada não pertence ao projeto atual.');
166
+ }
167
+ return sprintRes.data.id;
168
+ },
169
+ async createTask(payload, links, userId) {
170
+ const insertRes = await db
171
+ .from('tasks')
172
+ .insert(payload)
173
+ .select('id, key, title, status, priority, type, sprint_id, end_date, created_at')
174
+ .single();
175
+ if (insertRes.error)
176
+ throw new Error(`Erro ao criar tarefa: ${insertRes.error.message}`);
177
+ const task = insertRes.data;
178
+ const warnings = await linkSecondaryRecords(db, task.id, links.assigneeIds, links.labelIds, links.repoIds);
179
+ await insertTaskHistory(db, {
180
+ task_id: task.id,
181
+ user_id: userId,
182
+ action: 'created',
183
+ field: 'mcp',
184
+ new_value: task.title,
185
+ });
186
+ return { task, warnings };
187
+ },
188
+ async getCurrentTask(taskId, projectId) {
189
+ const res = await db
190
+ .from('tasks')
191
+ .select('id, title, description, status, priority, type, sprint_id, end_date, project_id')
192
+ .eq('id', taskId)
193
+ .eq('project_id', projectId)
194
+ .maybeSingle();
195
+ if (res.error)
196
+ throw new Error(`Erro ao buscar tarefa: ${res.error.message}`);
197
+ return res.data ?? null;
198
+ },
199
+ async resolveNextSprintId(projectId, sprintInput) {
200
+ if (sprintInput === undefined)
201
+ return undefined;
202
+ if (sprintInput === 'none')
203
+ return null;
204
+ if (sprintInput === 'active') {
205
+ const sprintRes = await db
206
+ .from('sprints')
207
+ .select('id')
208
+ .eq('project_id', projectId)
209
+ .eq('status', 'ativa')
210
+ .maybeSingle();
211
+ if (sprintRes.error)
212
+ throw new Error(`Erro ao buscar sprint ativa: ${sprintRes.error.message}`);
213
+ if (!sprintRes.data)
214
+ throw new Error('Não há sprint ativa no projeto.');
215
+ return sprintRes.data.id;
216
+ }
217
+ if (!SPRINT_UUID_RE.test(sprintInput)) {
218
+ throw new Error('Argumento "sprint" deve ser "active", "none" ou um UUID válido.');
219
+ }
220
+ const sprintRes = await db.from('sprints').select('id, project_id').eq('id', sprintInput).maybeSingle();
221
+ if (sprintRes.error)
222
+ throw new Error(`Erro ao validar sprint: ${sprintRes.error.message}`);
223
+ if (!sprintRes.data || sprintRes.data.project_id !== projectId) {
224
+ throw new Error('Sprint informada não pertence ao projeto atual.');
225
+ }
226
+ return sprintRes.data.id;
227
+ },
228
+ async applyTaskPatch(taskId, projectId, userId, patch, changes) {
229
+ if (Object.keys(patch).length > 0) {
230
+ const updateRes = await db.from('tasks').update(patch).eq('id', taskId).eq('project_id', projectId);
231
+ if (updateRes.error)
232
+ throw new Error(`Erro ao atualizar tarefa: ${updateRes.error.message}`);
233
+ }
234
+ for (const ch of changes) {
235
+ await insertTaskHistory(db, {
236
+ task_id: taskId,
237
+ user_id: userId,
238
+ action: 'updated',
239
+ field: ch.field,
240
+ old_value: ch.old_value,
241
+ new_value: ch.new_value,
242
+ });
243
+ }
244
+ },
245
+ async getTaskIdSet(kind, taskId) {
246
+ const spec = ID_SET_SPEC[kind];
247
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- tabela dinâmica
248
+ const res = await db.from(spec.table).select(spec.idColumn).eq('task_id', taskId);
249
+ if (res.error)
250
+ throw new Error(`${spec.fetchErr}: ${res.error.message}`);
251
+ return (res.data ?? []).map((r) => r[spec.idColumn]);
252
+ },
253
+ async replaceTaskIdSet(kind, taskId, userId, nextIds, before, after) {
254
+ const spec = ID_SET_SPEC[kind];
255
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- tabela dinâmica
256
+ const del = await db.from(spec.table).delete().eq('task_id', taskId);
257
+ if (del.error)
258
+ throw new Error(`${spec.clearErr}: ${del.error.message}`);
259
+ if (nextIds.length > 0) {
260
+ const rows = nextIds.map((id) => ({ task_id: taskId, [spec.idColumn]: id }));
261
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- tabela dinâmica
262
+ const ins = await db.from(spec.table).insert(rows);
263
+ if (ins.error)
264
+ throw new Error(`${spec.insertErr}: ${ins.error.message}`);
265
+ }
266
+ await insertTaskHistory(db, {
267
+ task_id: taskId,
268
+ user_id: userId,
269
+ action: 'updated',
270
+ field: spec.historyField,
271
+ old_value: JSON.stringify(before),
272
+ new_value: JSON.stringify(after),
273
+ });
274
+ },
275
+ async reloadTask(taskId) {
276
+ const finalRes = await db
277
+ .from('tasks')
278
+ .select('id, key, title, status, priority, type, sprint_id, end_date, updated_at')
279
+ .eq('id', taskId)
280
+ .single();
281
+ if (finalRes.error)
282
+ throw new Error(`Tarefa atualizada, mas falhou ao recarregar: ${finalRes.error.message}`);
283
+ return finalRes.data;
284
+ },
285
+ async getTaskForMove(taskId, projectId) {
286
+ const res = await db
287
+ .from('tasks')
288
+ .select('id, key, title, status')
289
+ .eq('id', taskId)
290
+ .eq('project_id', projectId)
291
+ .maybeSingle();
292
+ if (res.error)
293
+ throw new Error(`Erro ao buscar tarefa: ${res.error.message}`);
294
+ return res.data ?? null;
295
+ },
296
+ async getTaskForAttachPr(taskId, projectId) {
297
+ const res = await db
298
+ .from('tasks')
299
+ .select('key, title, status, pr_url, review_state')
300
+ .eq('id', taskId)
301
+ .eq('project_id', projectId)
302
+ .maybeSingle();
303
+ if (res.error)
304
+ throw new Error(`Erro ao buscar tarefa: ${res.error.message}`);
305
+ return res.data ?? null;
306
+ },
307
+ async getTaskForSetReview(taskId, projectId) {
308
+ const res = await db
309
+ .from('tasks')
310
+ .select('key, title, status, review_state, pr_url')
311
+ .eq('id', taskId)
312
+ .eq('project_id', projectId)
313
+ .maybeSingle();
314
+ if (res.error)
315
+ throw new Error(`Erro ao buscar tarefa: ${res.error.message}`);
316
+ return res.data ?? null;
317
+ },
318
+ async moveTaskStatus(taskId, projectId, status, userId, oldStatus) {
319
+ // Cast: status já validado pela tool (zod) contra o enum gerado.
320
+ const updateRes = await db
321
+ .from('tasks')
322
+ .update({ status: status })
323
+ .eq('id', taskId)
324
+ .eq('project_id', projectId);
325
+ if (updateRes.error)
326
+ throw new Error(`Erro ao mover tarefa: ${updateRes.error.message}`);
327
+ await insertTaskHistory(db, {
328
+ task_id: taskId,
329
+ user_id: userId,
330
+ action: 'moved',
331
+ field: 'status',
332
+ old_value: oldStatus,
333
+ new_value: status,
334
+ });
335
+ },
336
+ async commentTask(taskId, projectId, userId, content, historyEntry) {
337
+ const taskRes = await db
338
+ .from('tasks')
339
+ .select('id')
340
+ .eq('id', taskId)
341
+ .eq('project_id', projectId)
342
+ .maybeSingle();
343
+ if (taskRes.error)
344
+ throw new Error(`Erro ao validar tarefa: ${taskRes.error.message}`);
345
+ if (!taskRes.data)
346
+ return null;
347
+ const insertRes = await db
348
+ .from('task_comments')
349
+ .insert({ task_id: taskId, author_id: userId, content })
350
+ .select('id, task_id, created_at')
351
+ .single();
352
+ if (insertRes.error)
353
+ throw new Error(`Erro ao gravar comentário: ${insertRes.error.message}`);
354
+ await insertTaskHistory(db, historyEntry);
355
+ return insertRes.data;
356
+ },
357
+ async addChecklist(taskId, projectId, title, icon, items) {
358
+ const taskRes = await db
359
+ .from('tasks')
360
+ .select('id')
361
+ .eq('id', taskId)
362
+ .eq('project_id', projectId)
363
+ .maybeSingle();
364
+ if (taskRes.error)
365
+ throw new Error(`Erro ao validar tarefa: ${taskRes.error.message}`);
366
+ if (!taskRes.data)
367
+ return null;
368
+ // `task_checklists`/`task_checklist_items` não estão nos types gerados — client destipado.
369
+ const raw = db;
370
+ const clRes = await raw
371
+ .from('task_checklists')
372
+ .insert({ task_id: taskId, title, icon, order: 0 })
373
+ .select('id')
374
+ .single();
375
+ if (clRes.error)
376
+ throw new Error(`Erro ao criar checklist: ${clRes.error.message}`);
377
+ const checklistId = clRes.data.id;
378
+ const rows = items.map((text, i) => ({
379
+ task_id: taskId,
380
+ checklist_id: checklistId,
381
+ text,
382
+ checked: false,
383
+ order: i,
384
+ }));
385
+ const itRes = await raw.from('task_checklist_items').insert(rows);
386
+ if (itRes.error)
387
+ throw new Error(`Erro ao gravar itens da checklist: ${itRes.error.message}`);
388
+ return { checklist_id: checklistId, item_count: rows.length };
389
+ },
390
+ };
391
+ }
392
+ async function resolveAssigneeFilter(db, userId, assignee) {
393
+ if (!assignee)
394
+ return null;
395
+ if (assignee === 'unassigned') {
396
+ const sub = await db.from('task_assignees').select('task_id');
397
+ if (sub.error)
398
+ throw new Error(`Erro filtrando por assignee: ${sub.error.message}`);
399
+ return { mode: 'not_in', ids: (sub.data ?? []).map((r) => r.task_id) };
400
+ }
401
+ const userFilter = assignee === 'me' ? userId : assignee;
402
+ const sub = await db.from('task_assignees').select('task_id').eq('user_id', userFilter);
403
+ if (sub.error)
404
+ throw new Error(`Erro filtrando por assignee: ${sub.error.message}`);
405
+ return { mode: 'in', ids: (sub.data ?? []).map((r) => r.task_id) };
406
+ }
407
+ async function resolveSprintFilter(db, projectId, sprint) {
408
+ if (!sprint)
409
+ return { noActive: false, filter: null };
410
+ if (sprint === 'active') {
411
+ const res = await db
412
+ .from('sprints')
413
+ .select('id')
414
+ .eq('project_id', projectId)
415
+ .eq('status', 'ativa')
416
+ .maybeSingle();
417
+ if (res.error)
418
+ throw new Error(`Erro ao buscar sprint ativa: ${res.error.message}`);
419
+ if (!res.data)
420
+ return { noActive: true };
421
+ return { noActive: false, filter: { mode: 'eq', value: res.data.id } };
422
+ }
423
+ if (sprint === 'none')
424
+ return { noActive: false, filter: { mode: 'is_null' } };
425
+ return { noActive: false, filter: { mode: 'eq', value: sprint } };
426
+ }
427
+ async function queryFilteredTasks(db, filter, restrictIds, sprintFilter) {
428
+ let query = db
429
+ .from('tasks')
430
+ .select('id, key, title, status, priority, type, sprint_id, end_date, created_at')
431
+ .eq('project_id', filter.projectId);
432
+ if (restrictIds?.mode === 'in')
433
+ query = query.in('id', restrictIds.ids);
434
+ else if (restrictIds?.mode === 'not_in' && restrictIds.ids.length > 0)
435
+ query = query.not('id', 'in', `(${restrictIds.ids.join(',')})`);
436
+ if (sprintFilter?.mode === 'eq')
437
+ query = query.eq('sprint_id', sprintFilter.value);
438
+ else if (sprintFilter?.mode === 'is_null')
439
+ query = query.is('sprint_id', null);
440
+ // Cast: a porta é neutra (`string[]`), mas estes valores já vêm validados
441
+ // pela tool (zod) contra os mesmos enums — o cast só reconcilia os tipos gerados.
442
+ if (filter.status?.length)
443
+ query = query.in('status', filter.status);
444
+ if (filter.priority?.length)
445
+ query = query.in('priority', filter.priority);
446
+ if (filter.type?.length)
447
+ query = query.in('type', filter.type);
448
+ if (filter.search) {
449
+ const pattern = `%${filter.search.replace(/[%_]/g, (m) => `\\${m}`)}%`;
450
+ query = query.or(`title.ilike.${pattern},description.ilike.${pattern},key.ilike.${pattern}`);
451
+ }
452
+ query = query
453
+ .order('created_at', { ascending: false })
454
+ .range(filter.offset, filter.offset + filter.limit - 1);
455
+ const { data, error } = await query;
456
+ if (error)
457
+ throw new Error(`Erro ao listar tarefas: ${error.message}`);
458
+ return data ?? [];
459
+ }
460
+ async function loadAssigneeProfiles(db, taskIds) {
461
+ const assigneesRes = await db.from('task_assignees').select('task_id, user_id').in('task_id', taskIds);
462
+ if (assigneesRes.error)
463
+ throw new Error(`Erro ao buscar assignees: ${assigneesRes.error.message}`);
464
+ const assigneeRows = assigneesRes.data ?? [];
465
+ const userIds = Array.from(new Set(assigneeRows.map((a) => a.user_id)));
466
+ let profilesById = new Map();
467
+ if (userIds.length > 0) {
468
+ const profilesRes = await db.from('profiles').select('id, full_name, username').in('id', userIds);
469
+ if (profilesRes.error)
470
+ throw new Error(`Erro ao buscar perfis: ${profilesRes.error.message}`);
471
+ profilesById = new Map((profilesRes.data ?? []).map((p) => [p.id, { full_name: p.full_name, username: p.username }]));
472
+ }
473
+ return { assigneeRows, profilesById };
474
+ }
475
+ async function linkSecondaryRecords(db, taskId, assigneeIds, labelIds, repoIds) {
476
+ const results = await Promise.all([
477
+ insertTaskLinks(db, 'task_assignees', 'user_id', 'assignees', taskId, assigneeIds),
478
+ insertTaskLinks(db, 'task_label_assignments', 'label_id', 'labels', taskId, labelIds),
479
+ insertTaskLinks(db, 'task_repositories', 'repository_id', 'repositories', taskId, repoIds),
480
+ ]);
481
+ return results.filter((w) => w !== null);
482
+ }
483
+ async function insertTaskLinks(db, table, idField, label, taskId, ids) {
484
+ if (ids.length === 0)
485
+ return null;
486
+ const rows = ids.map((id) => ({ task_id: taskId, [idField]: id }));
487
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- tabela dinâmica
488
+ const res = await db.from(table).insert(rows);
489
+ return res.error ? `Falha ao vincular ${label}: ${res.error.message}` : null;
490
+ }
491
+ async function fetchProfiles(db, userIds) {
492
+ if (userIds.length === 0)
493
+ return new Map();
494
+ const res = await db
495
+ .from('profiles')
496
+ .select('id, full_name, username, avatar_url')
497
+ .in('id', userIds);
498
+ if (res.error)
499
+ throw new Error(`Erro ao buscar perfis: ${res.error.message}`);
500
+ return new Map((res.data ?? []).map((p) => [
501
+ p.id,
502
+ { full_name: p.full_name, username: p.username, avatar_url: p.avatar_url },
503
+ ]));
504
+ }
505
+ //# sourceMappingURL=task-gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-gateway.js","sourceRoot":"","sources":["../../../src/adapters/supabase/task-gateway.ts"],"names":[],"mappings":"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"}
package/dist/brand.js CHANGED
@@ -3,7 +3,8 @@ import { join } from 'node:path';
3
3
  /**
4
4
  * Fonte única de verdade de marca/atribuição do CLI. Rebrandear = editar este arquivo — ao
5
5
  * trocar, casar em lockstep: `package.json` (`name`/`bin`/`description`/`keywords`/`repository`)
6
- * e os docs .md que citam tools literalmente (README.md, CLAUDE.md, SKILL.md, docs/specs/**\/*.md, e o `brand.skillsRepo` externo).
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`.
7
8
  */
8
9
  export const brand = {
9
10
  // --- Identidade / display ---
@@ -40,6 +41,8 @@ export const brand = {
40
41
  // --- Repo de skills ---
41
42
  skillsRepo: 'Falcao-Tech/noclaf-skills',
42
43
  skillsRef: 'main',
44
+ /** Pacote npm das skills — citado em mensagens de erro de "pacote não encontrado". */
45
+ skillsPackage: '@noclaf/skills',
43
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 `_`)
44
47
  /** Tools de domínio do produto: `nos_list_tasks`, `nos_move_task`, … (16 tools). */
45
48
  toolPrefix: 'nos_',
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;;;;GAIG;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;IAEjB,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":"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"}
@@ -42,7 +42,7 @@ export function shouldSkipWhoamiSpinner(creds, refresh) {
42
42
  export function whoamiErrorMessage(err) {
43
43
  const status = err.status;
44
44
  return status === 401 || status === 403
45
- ? "Sessão inválida. Rode `noclaf login <PAT>` novamente."
45
+ ? `Sessão inválida. Rode \`${brand.name} login <PAT>\` novamente.`
46
46
  : `Falha ao validar token: ${err.message}`;
47
47
  }
48
48
  function printWhoamiIdentity(u) {
@@ -87,7 +87,7 @@ function registerLogoutCommand(program) {
87
87
  async function runWhoamiAction(opts) {
88
88
  const creds = await loadCredentials();
89
89
  if (!creds) {
90
- console.error("Não autenticado. Rode `noclaf login <PAT>`.");
90
+ console.error(`Não autenticado. Rode \`${brand.name} login <PAT>\`.`);
91
91
  process.exit(1);
92
92
  }
93
93
  const cached = shouldSkipWhoamiSpinner(creds, opts.refresh);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}