@noclaf/cli 0.8.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 (306) hide show
  1. package/README.md +26 -88
  2. package/dist/app.js +13 -0
  3. package/dist/app.js.map +1 -0
  4. package/dist/brand.js +9 -49
  5. package/dist/brand.js.map +1 -1
  6. package/dist/cli.js +3 -37
  7. package/dist/cli.js.map +1 -1
  8. package/dist/mcp-server.js +3 -187
  9. package/dist/mcp-server.js.map +1 -1
  10. package/package.json +8 -17
  11. package/dist/adapters/supabase/allocation-gateway.js +0 -291
  12. package/dist/adapters/supabase/allocation-gateway.js.map +0 -1
  13. package/dist/adapters/supabase/analytics-gateway.js +0 -18
  14. package/dist/adapters/supabase/analytics-gateway.js.map +0 -1
  15. package/dist/adapters/supabase/calendar-gateway.js +0 -48
  16. package/dist/adapters/supabase/calendar-gateway.js.map +0 -1
  17. package/dist/adapters/supabase/calendar-write-gateway.js +0 -35
  18. package/dist/adapters/supabase/calendar-write-gateway.js.map +0 -1
  19. package/dist/adapters/supabase/checklist-gateway.js +0 -63
  20. package/dist/adapters/supabase/checklist-gateway.js.map +0 -1
  21. package/dist/adapters/supabase/client.js +0 -136
  22. package/dist/adapters/supabase/client.js.map +0 -1
  23. package/dist/adapters/supabase/context-gateway.js +0 -23
  24. package/dist/adapters/supabase/context-gateway.js.map +0 -1
  25. package/dist/adapters/supabase/gateway.js +0 -28
  26. package/dist/adapters/supabase/gateway.js.map +0 -1
  27. package/dist/adapters/supabase/release-gateway.js +0 -61
  28. package/dist/adapters/supabase/release-gateway.js.map +0 -1
  29. package/dist/adapters/supabase/sprint-gateway.js +0 -59
  30. package/dist/adapters/supabase/sprint-gateway.js.map +0 -1
  31. package/dist/adapters/supabase/task-gateway.js +0 -533
  32. package/dist/adapters/supabase/task-gateway.js.map +0 -1
  33. package/dist/auth.js +0 -141
  34. package/dist/auth.js.map +0 -1
  35. package/dist/cli/commands/auth.js +0 -127
  36. package/dist/cli/commands/auth.js.map +0 -1
  37. package/dist/cli/commands/clean.js +0 -120
  38. package/dist/cli/commands/clean.js.map +0 -1
  39. package/dist/cli/commands/completion.js +0 -114
  40. package/dist/cli/commands/completion.js.map +0 -1
  41. package/dist/cli/commands/exec.js +0 -69
  42. package/dist/cli/commands/exec.js.map +0 -1
  43. package/dist/cli/commands/init/analyze-step.js +0 -21
  44. package/dist/cli/commands/init/analyze-step.js.map +0 -1
  45. package/dist/cli/commands/init/apply-answers.js +0 -122
  46. package/dist/cli/commands/init/apply-answers.js.map +0 -1
  47. package/dist/cli/commands/init/apply-step.js +0 -165
  48. package/dist/cli/commands/init/apply-step.js.map +0 -1
  49. package/dist/cli/commands/init/auth-step.js +0 -48
  50. package/dist/cli/commands/init/auth-step.js.map +0 -1
  51. package/dist/cli/commands/init/boilerplate-step.js +0 -20
  52. package/dist/cli/commands/init/boilerplate-step.js.map +0 -1
  53. package/dist/cli/commands/init/clients-step.js +0 -78
  54. package/dist/cli/commands/init/clients-step.js.map +0 -1
  55. package/dist/cli/commands/init/context-step.js +0 -81
  56. package/dist/cli/commands/init/context-step.js.map +0 -1
  57. package/dist/cli/commands/init/describe-step.js +0 -68
  58. package/dist/cli/commands/init/describe-step.js.map +0 -1
  59. package/dist/cli/commands/init/index.js +0 -98
  60. package/dist/cli/commands/init/index.js.map +0 -1
  61. package/dist/cli/commands/init/mode.js +0 -18
  62. package/dist/cli/commands/init/mode.js.map +0 -1
  63. package/dist/cli/commands/init/progress.js +0 -60
  64. package/dist/cli/commands/init/progress.js.map +0 -1
  65. package/dist/cli/commands/init/project-step.js +0 -133
  66. package/dist/cli/commands/init/project-step.js.map +0 -1
  67. package/dist/cli/commands/init/provision-step.js +0 -103
  68. package/dist/cli/commands/init/provision-step.js.map +0 -1
  69. package/dist/cli/commands/map.js +0 -18
  70. package/dist/cli/commands/map.js.map +0 -1
  71. package/dist/cli/commands/plan.js +0 -45
  72. package/dist/cli/commands/plan.js.map +0 -1
  73. package/dist/cli/commands/skills.js +0 -23
  74. package/dist/cli/commands/skills.js.map +0 -1
  75. package/dist/cli/commands/sync.js +0 -319
  76. package/dist/cli/commands/sync.js.map +0 -1
  77. package/dist/cli/commands/validate-plan.js +0 -42
  78. package/dist/cli/commands/validate-plan.js.map +0 -1
  79. package/dist/cli/commands/wave.js +0 -57
  80. package/dist/cli/commands/wave.js.map +0 -1
  81. package/dist/cli/copy/auth.json +0 -6
  82. package/dist/cli/copy/flows.json +0 -6
  83. package/dist/cli/copy/init.json +0 -20
  84. package/dist/cli/copy/sync.json +0 -3
  85. package/dist/cli/copy.js +0 -23
  86. package/dist/cli/copy.js.map +0 -1
  87. package/dist/cli/flows/clients.js +0 -130
  88. package/dist/cli/flows/clients.js.map +0 -1
  89. package/dist/cli/flows/completion.js +0 -63
  90. package/dist/cli/flows/completion.js.map +0 -1
  91. package/dist/cli/flows/dependencies.js +0 -114
  92. package/dist/cli/flows/dependencies.js.map +0 -1
  93. package/dist/cli/flows/sections.js +0 -85
  94. package/dist/cli/flows/sections.js.map +0 -1
  95. package/dist/cli/flows/user-config.js +0 -37
  96. package/dist/cli/flows/user-config.js.map +0 -1
  97. package/dist/cli/ui/render.js +0 -239
  98. package/dist/cli/ui/render.js.map +0 -1
  99. package/dist/cli/ui/report.js +0 -130
  100. package/dist/cli/ui/report.js.map +0 -1
  101. package/dist/config.js +0 -289
  102. package/dist/config.js.map +0 -1
  103. package/dist/constants.js +0 -9
  104. package/dist/constants.js.map +0 -1
  105. package/dist/core/ports.js +0 -2
  106. package/dist/core/ports.js.map +0 -1
  107. package/dist/core/types.js +0 -5
  108. package/dist/core/types.js.map +0 -1
  109. package/dist/database.types.js +0 -11
  110. package/dist/database.types.js.map +0 -1
  111. package/dist/lib/active-project.js +0 -28
  112. package/dist/lib/active-project.js.map +0 -1
  113. package/dist/lib/autopull.js +0 -13
  114. package/dist/lib/autopull.js.map +0 -1
  115. package/dist/lib/boilerplate-scaffold.js +0 -65
  116. package/dist/lib/boilerplate-scaffold.js.map +0 -1
  117. package/dist/lib/boilerplates.js +0 -61
  118. package/dist/lib/boilerplates.js.map +0 -1
  119. package/dist/lib/calendar-logic.js +0 -59
  120. package/dist/lib/calendar-logic.js.map +0 -1
  121. package/dist/lib/calendar-write-logic.js +0 -6
  122. package/dist/lib/calendar-write-logic.js.map +0 -1
  123. package/dist/lib/checklist-logic.js +0 -5
  124. package/dist/lib/checklist-logic.js.map +0 -1
  125. package/dist/lib/client-configs.js +0 -191
  126. package/dist/lib/client-configs.js.map +0 -1
  127. package/dist/lib/client-install.js +0 -40
  128. package/dist/lib/client-install.js.map +0 -1
  129. package/dist/lib/colors.js +0 -92
  130. package/dist/lib/colors.js.map +0 -1
  131. package/dist/lib/cowork-extension.js +0 -143
  132. package/dist/lib/cowork-extension.js.map +0 -1
  133. package/dist/lib/dates.js +0 -21
  134. package/dist/lib/dates.js.map +0 -1
  135. package/dist/lib/dependencies.js +0 -145
  136. package/dist/lib/dependencies.js.map +0 -1
  137. package/dist/lib/dependency-install.js +0 -163
  138. package/dist/lib/dependency-install.js.map +0 -1
  139. package/dist/lib/duration.js +0 -5
  140. package/dist/lib/duration.js.map +0 -1
  141. package/dist/lib/exec-delegate.js +0 -218
  142. package/dist/lib/exec-delegate.js.map +0 -1
  143. package/dist/lib/exec-engines.js +0 -90
  144. package/dist/lib/exec-engines.js.map +0 -1
  145. package/dist/lib/exec-events.js +0 -87
  146. package/dist/lib/exec-events.js.map +0 -1
  147. package/dist/lib/exec-translators.js +0 -198
  148. package/dist/lib/exec-translators.js.map +0 -1
  149. package/dist/lib/file-merge.js +0 -33
  150. package/dist/lib/file-merge.js.map +0 -1
  151. package/dist/lib/git-exposure.js +0 -35
  152. package/dist/lib/git-exposure.js.map +0 -1
  153. package/dist/lib/harness.js +0 -127
  154. package/dist/lib/harness.js.map +0 -1
  155. package/dist/lib/hooks.js +0 -216
  156. package/dist/lib/hooks.js.map +0 -1
  157. package/dist/lib/patterns.js +0 -25
  158. package/dist/lib/patterns.js.map +0 -1
  159. package/dist/lib/pg-error.js +0 -53
  160. package/dist/lib/pg-error.js.map +0 -1
  161. package/dist/lib/plan-delegate.js +0 -117
  162. package/dist/lib/plan-delegate.js.map +0 -1
  163. package/dist/lib/project-context.js +0 -151
  164. package/dist/lib/project-context.js.map +0 -1
  165. package/dist/lib/prompts.js +0 -69
  166. package/dist/lib/prompts.js.map +0 -1
  167. package/dist/lib/provision-apply.js +0 -220
  168. package/dist/lib/provision-apply.js.map +0 -1
  169. package/dist/lib/provision-collect.js +0 -47
  170. package/dist/lib/provision-collect.js.map +0 -1
  171. package/dist/lib/provision.js +0 -45
  172. package/dist/lib/provision.js.map +0 -1
  173. package/dist/lib/release-logic.js +0 -10
  174. package/dist/lib/release-logic.js.map +0 -1
  175. package/dist/lib/repo-map.js +0 -176
  176. package/dist/lib/repo-map.js.map +0 -1
  177. package/dist/lib/require-config.js +0 -32
  178. package/dist/lib/require-config.js.map +0 -1
  179. package/dist/lib/rules.js +0 -146
  180. package/dist/lib/rules.js.map +0 -1
  181. package/dist/lib/sections.js +0 -89
  182. package/dist/lib/sections.js.map +0 -1
  183. package/dist/lib/skill-agent.js +0 -44
  184. package/dist/lib/skill-agent.js.map +0 -1
  185. package/dist/lib/skill-serve.js +0 -128
  186. package/dist/lib/skill-serve.js.map +0 -1
  187. package/dist/lib/skills-cache.js +0 -99
  188. package/dist/lib/skills-cache.js.map +0 -1
  189. package/dist/lib/skills.js +0 -237
  190. package/dist/lib/skills.js.map +0 -1
  191. package/dist/lib/sprint-deadline.js +0 -28
  192. package/dist/lib/sprint-deadline.js.map +0 -1
  193. package/dist/lib/sprint-logic.js +0 -31
  194. package/dist/lib/sprint-logic.js.map +0 -1
  195. package/dist/lib/targets.js +0 -150
  196. package/dist/lib/targets.js.map +0 -1
  197. package/dist/lib/task-history.js +0 -15
  198. package/dist/lib/task-history.js.map +0 -1
  199. package/dist/lib/telemetry.js +0 -51
  200. package/dist/lib/telemetry.js.map +0 -1
  201. package/dist/lib/tool-result.js +0 -15
  202. package/dist/lib/tool-result.js.map +0 -1
  203. package/dist/lib/validate-plan-delegate.js +0 -106
  204. package/dist/lib/validate-plan-delegate.js.map +0 -1
  205. package/dist/lib/version-check.js +0 -89
  206. package/dist/lib/version-check.js.map +0 -1
  207. package/dist/lib/wave-scheduler.js +0 -95
  208. package/dist/lib/wave-scheduler.js.map +0 -1
  209. package/dist/session-factory.js +0 -19
  210. package/dist/session-factory.js.map +0 -1
  211. package/dist/spinner.js +0 -12
  212. package/dist/spinner.js.map +0 -1
  213. package/dist/tools/activate-sprint.js +0 -44
  214. package/dist/tools/activate-sprint.js.map +0 -1
  215. package/dist/tools/add-checklist-item.js +0 -44
  216. package/dist/tools/add-checklist-item.js.map +0 -1
  217. package/dist/tools/add-checklist.js +0 -63
  218. package/dist/tools/add-checklist.js.map +0 -1
  219. package/dist/tools/add-holiday.js +0 -41
  220. package/dist/tools/add-holiday.js.map +0 -1
  221. package/dist/tools/add-home-office.js +0 -31
  222. package/dist/tools/add-home-office.js.map +0 -1
  223. package/dist/tools/add-vacation.js +0 -39
  224. package/dist/tools/add-vacation.js.map +0 -1
  225. package/dist/tools/attach-pr.js +0 -97
  226. package/dist/tools/attach-pr.js.map +0 -1
  227. package/dist/tools/comment-task.js +0 -72
  228. package/dist/tools/comment-task.js.map +0 -1
  229. package/dist/tools/create-release.js +0 -46
  230. package/dist/tools/create-release.js.map +0 -1
  231. package/dist/tools/create-sprint.js +0 -66
  232. package/dist/tools/create-sprint.js.map +0 -1
  233. package/dist/tools/create-task.js +0 -174
  234. package/dist/tools/create-task.js.map +0 -1
  235. package/dist/tools/delegate-exec.js +0 -63
  236. package/dist/tools/delegate-exec.js.map +0 -1
  237. package/dist/tools/end-allocation.js +0 -38
  238. package/dist/tools/end-allocation.js.map +0 -1
  239. package/dist/tools/end-sprint.js +0 -37
  240. package/dist/tools/end-sprint.js.map +0 -1
  241. package/dist/tools/end-task-allocation.js +0 -60
  242. package/dist/tools/end-task-allocation.js.map +0 -1
  243. package/dist/tools/exec-status.js +0 -45
  244. package/dist/tools/exec-status.js.map +0 -1
  245. package/dist/tools/finalize-release.js +0 -45
  246. package/dist/tools/finalize-release.js.map +0 -1
  247. package/dist/tools/get-active-allocation.js +0 -69
  248. package/dist/tools/get-active-allocation.js.map +0 -1
  249. package/dist/tools/get-calendar.js +0 -40
  250. package/dist/tools/get-calendar.js.map +0 -1
  251. package/dist/tools/get-context.js +0 -48
  252. package/dist/tools/get-context.js.map +0 -1
  253. package/dist/tools/get-sprint.js +0 -38
  254. package/dist/tools/get-sprint.js.map +0 -1
  255. package/dist/tools/get-task.js +0 -146
  256. package/dist/tools/get-task.js.map +0 -1
  257. package/dist/tools/index.js +0 -92
  258. package/dist/tools/index.js.map +0 -1
  259. package/dist/tools/list-my-allocations.js +0 -71
  260. package/dist/tools/list-my-allocations.js.map +0 -1
  261. package/dist/tools/list-projects.js +0 -38
  262. package/dist/tools/list-projects.js.map +0 -1
  263. package/dist/tools/list-releases.js +0 -32
  264. package/dist/tools/list-releases.js.map +0 -1
  265. package/dist/tools/list-sprints.js +0 -30
  266. package/dist/tools/list-sprints.js.map +0 -1
  267. package/dist/tools/list-tasks.js +0 -95
  268. package/dist/tools/list-tasks.js.map +0 -1
  269. package/dist/tools/move-task.js +0 -82
  270. package/dist/tools/move-task.js.map +0 -1
  271. package/dist/tools/plan.js +0 -56
  272. package/dist/tools/plan.js.map +0 -1
  273. package/dist/tools/record-delivery.js +0 -100
  274. package/dist/tools/record-delivery.js.map +0 -1
  275. package/dist/tools/remove-checklist-item.js +0 -42
  276. package/dist/tools/remove-checklist-item.js.map +0 -1
  277. package/dist/tools/remove-checklist.js +0 -42
  278. package/dist/tools/remove-checklist.js.map +0 -1
  279. package/dist/tools/remove-holiday.js +0 -31
  280. package/dist/tools/remove-holiday.js.map +0 -1
  281. package/dist/tools/remove-home-office.js +0 -32
  282. package/dist/tools/remove-home-office.js.map +0 -1
  283. package/dist/tools/remove-vacation.js +0 -31
  284. package/dist/tools/remove-vacation.js.map +0 -1
  285. package/dist/tools/set-project.js +0 -52
  286. package/dist/tools/set-project.js.map +0 -1
  287. package/dist/tools/set-review.js +0 -132
  288. package/dist/tools/set-review.js.map +0 -1
  289. package/dist/tools/sprint-common.js +0 -13
  290. package/dist/tools/sprint-common.js.map +0 -1
  291. package/dist/tools/start-allocation.js +0 -32
  292. package/dist/tools/start-allocation.js.map +0 -1
  293. package/dist/tools/start-task-allocation.js +0 -83
  294. package/dist/tools/start-task-allocation.js.map +0 -1
  295. package/dist/tools/update-checklist-item.js +0 -51
  296. package/dist/tools/update-checklist-item.js.map +0 -1
  297. package/dist/tools/update-release.js +0 -58
  298. package/dist/tools/update-release.js.map +0 -1
  299. package/dist/tools/update-sprint.js +0 -56
  300. package/dist/tools/update-sprint.js.map +0 -1
  301. package/dist/tools/update-task.js +0 -183
  302. package/dist/tools/update-task.js.map +0 -1
  303. package/dist/tools/validate-plan.js +0 -58
  304. package/dist/tools/validate-plan.js.map +0 -1
  305. package/dist/version.js +0 -16
  306. package/dist/version.js.map +0 -1
@@ -1,100 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { resolveProjectConfig, isErrorResult } from '../lib/require-config.js';
4
- import { brand, env } from '../brand.js';
5
- const REVIEW_VERDICT = ['approved', 'changes_requested'];
6
- const DEFAULT_REVIEWER = 'internal';
7
- const ArgsSchema = z
8
- .object({
9
- title: z.string().min(1),
10
- task_id: z.uuid().optional(),
11
- pr_url: z.url().optional(),
12
- iterations: z.number().int().nonnegative().optional(),
13
- review_verdict: z.enum(REVIEW_VERDICT).optional(),
14
- reviewer: z.string().min(1).optional(),
15
- project_id: z.uuid().optional(),
16
- })
17
- .strict();
18
- export const definition = {
19
- name: `${brand.toolPrefix}record_delivery`,
20
- description: 'Registra uma ENTREGA do loop de build (um ticket concluído / PR aberto) na analítica ' +
21
- `de entrega do ${brand.productName}. Chamado pelo \`/build\` no fecho. Guarda título, PR, iterações, ` +
22
- 'o veredito do gate e quem revisou, e vincula à tarefa/projeto. Uma chamada por ticket entregue.',
23
- inputSchema: {
24
- type: 'object',
25
- properties: {
26
- title: {
27
- type: 'string',
28
- description: 'Título curto do que foi entregue (o ticket/feature).',
29
- },
30
- task_id: {
31
- type: 'string',
32
- format: 'uuid',
33
- description: `Tarefa do ${brand.productName} entregue, se o ticket tiver esse vínculo.`,
34
- },
35
- pr_url: { type: 'string', description: 'URL do PR aberto.' },
36
- iterations: {
37
- type: 'number',
38
- description: 'Quantas iterações do loop até passar no gate de qualidade.',
39
- },
40
- review_verdict: {
41
- type: 'string',
42
- enum: [...REVIEW_VERDICT],
43
- description: 'Veredito do gate de review: approved ou changes_requested.',
44
- },
45
- reviewer: {
46
- type: 'string',
47
- description: `Quem revisou (default "${DEFAULT_REVIEWER}"; ex.: internal, visor).`,
48
- },
49
- project_id: {
50
- type: 'string',
51
- format: 'uuid',
52
- description: `Override do projeto. Se omitido, usa o ativo (${brand.toolPrefix}set_project) ou o default.`,
53
- },
54
- },
55
- required: ['title'],
56
- additionalProperties: false,
57
- },
58
- };
59
- /** Monta a linha de delivery a partir do input validado + contexto (user/projeto/cliente). Pura. */
60
- export function buildDeliveryRow(input, userId, projectId, client) {
61
- return {
62
- user_id: userId,
63
- project_id: projectId,
64
- task_id: input.task_id ?? null,
65
- title: input.title,
66
- pr_url: input.pr_url ?? null,
67
- iterations: input.iterations ?? null,
68
- client,
69
- review_verdict: input.review_verdict ?? null,
70
- reviewer: input.reviewer ?? DEFAULT_REVIEWER,
71
- };
72
- }
73
- /** Envelope de resposta do record_delivery. Pura. */
74
- export function buildRecordResult(row) {
75
- return {
76
- ok: true,
77
- recorded: row.title,
78
- pr_url: row.pr_url,
79
- review_verdict: row.review_verdict,
80
- reviewer: row.reviewer,
81
- };
82
- }
83
- export async function handler(args, ctx) {
84
- const parsed = ArgsSchema.safeParse(args);
85
- if (!parsed.success) {
86
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
87
- }
88
- const cfg = resolveProjectConfig(ctx, parsed.data.project_id);
89
- if (isErrorResult(cfg))
90
- return cfg;
91
- const row = buildDeliveryRow(parsed.data, ctx.user.id, cfg.project_id, env('CLIENT') ?? null);
92
- try {
93
- await ctx.gateway.recordDelivery(row);
94
- }
95
- catch (err) {
96
- return errorResult(err.message);
97
- }
98
- return jsonResult(buildRecordResult(row));
99
- }
100
- //# sourceMappingURL=record-delivery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-delivery.js","sourceRoot":"","sources":["../../src/tools/record-delivery.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { resolveProjectConfig, isErrorResult } from '../lib/require-config.js';
4
- import { deleteFailure } from '../lib/calendar-write-logic.js';
5
- import { brand } from '../brand.js';
6
- const ArgsSchema = z
7
- .object({ item_id: z.uuid(), project_id: z.uuid().optional() })
8
- .strict();
9
- export const definition = {
10
- name: `${brand.toolPrefix}remove_checklist_item`,
11
- description: 'Remove um item de checklist. Os ids vêm do get_task.',
12
- inputSchema: {
13
- type: 'object',
14
- properties: {
15
- item_id: { type: 'string', format: 'uuid' },
16
- project_id: { type: 'string', format: 'uuid', description: 'Override do projeto ativo.' },
17
- },
18
- required: ['item_id'],
19
- additionalProperties: false,
20
- },
21
- };
22
- export async function handler(args, ctx) {
23
- const parsed = ArgsSchema.safeParse(args);
24
- if (!parsed.success)
25
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
26
- const cfg = resolveProjectConfig(ctx, parsed.data.project_id);
27
- if (isErrorResult(cfg))
28
- return cfg;
29
- try {
30
- const rows = await ctx.gateway.removeChecklistItem(cfg.project_id, parsed.data.item_id);
31
- if (!rows)
32
- return errorResult('Item fora do projeto atual ou inexistente.');
33
- const fail = deleteFailure(rows, 'Item');
34
- if (fail)
35
- return errorResult(fail);
36
- return jsonResult({ ok: true, item_id: parsed.data.item_id });
37
- }
38
- catch (err) {
39
- return errorResult(err.message);
40
- }
41
- }
42
- //# sourceMappingURL=remove-checklist-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-checklist-item.js","sourceRoot":"","sources":["../../src/tools/remove-checklist-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,uBAAuB;IAChD,WAAW,EAAE,sDAAsD;IACnE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;YAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,4BAA4B,EAAE;SAC1F;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,GAAgB;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI;YAAE,OAAO,WAAW,CAAC,4CAA4C,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1,42 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { resolveProjectConfig, isErrorResult } from '../lib/require-config.js';
4
- import { deleteFailure } from '../lib/calendar-write-logic.js';
5
- import { brand } from '../brand.js';
6
- const ArgsSchema = z
7
- .object({ checklist_id: z.uuid(), project_id: z.uuid().optional() })
8
- .strict();
9
- export const definition = {
10
- name: `${brand.toolPrefix}remove_checklist`,
11
- description: 'Remove uma checklist inteira (os itens vão junto). Os ids vêm do get_task.',
12
- inputSchema: {
13
- type: 'object',
14
- properties: {
15
- checklist_id: { type: 'string', format: 'uuid' },
16
- project_id: { type: 'string', format: 'uuid', description: 'Override do projeto ativo.' },
17
- },
18
- required: ['checklist_id'],
19
- additionalProperties: false,
20
- },
21
- };
22
- export async function handler(args, ctx) {
23
- const parsed = ArgsSchema.safeParse(args);
24
- if (!parsed.success)
25
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
26
- const cfg = resolveProjectConfig(ctx, parsed.data.project_id);
27
- if (isErrorResult(cfg))
28
- return cfg;
29
- try {
30
- const rows = await ctx.gateway.removeChecklist(cfg.project_id, parsed.data.checklist_id);
31
- if (!rows)
32
- return errorResult('Checklist fora do projeto atual ou inexistente.');
33
- const fail = deleteFailure(rows, 'Checklist');
34
- if (fail)
35
- return errorResult(fail);
36
- return jsonResult({ ok: true, checklist_id: parsed.data.checklist_id });
37
- }
38
- catch (err) {
39
- return errorResult(err.message);
40
- }
41
- }
42
- //# sourceMappingURL=remove-checklist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-checklist.js","sourceRoot":"","sources":["../../src/tools/remove-checklist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KACnE,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,kBAAkB;IAC3C,WAAW,EAAE,4EAA4E;IACzF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;YAChD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,4BAA4B,EAAE;SAC1F;QACD,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,GAAgB;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI;YAAE,OAAO,WAAW,CAAC,iDAAiD,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9C,IAAI,IAAI;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1,31 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { brand } from '../brand.js';
4
- import { deleteFailure } from '../lib/calendar-write-logic.js';
5
- const ArgsSchema = z.object({ holiday_id: z.uuid() }).strict();
6
- export const definition = {
7
- name: `${brand.toolPrefix}remove_holiday`,
8
- description: 'Exclui feriado pelo id (só admin/gerente).',
9
- inputSchema: {
10
- type: 'object',
11
- properties: {
12
- holiday_id: { type: 'string', format: 'uuid', description: 'ID do feriado.' },
13
- },
14
- required: ['holiday_id'],
15
- additionalProperties: false,
16
- },
17
- };
18
- export async function handler(args, ctx) {
19
- const parsed = ArgsSchema.safeParse(args ?? {});
20
- if (!parsed.success)
21
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
22
- const a = parsed.data;
23
- try {
24
- const err = deleteFailure(await ctx.gateway.removeHoliday(a.holiday_id), 'Feriado');
25
- return err ? errorResult(err) : jsonResult({ removed: a.holiday_id });
26
- }
27
- catch (err) {
28
- return errorResult(err.message);
29
- }
30
- }
31
- //# sourceMappingURL=remove-holiday.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-holiday.js","sourceRoot":"","sources":["../../src/tools/remove-holiday.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAE/D,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,gBAAgB;IACzC,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE;SAC9E;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;QACxB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,GAAgB;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1,32 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { brand } from '../brand.js';
4
- import { isoDate } from '../lib/dates.js';
5
- import { deleteFailure } from '../lib/calendar-write-logic.js';
6
- const ArgsSchema = z.object({ date: isoDate }).strict();
7
- export const definition = {
8
- name: `${brand.toolPrefix}remove_home_office`,
9
- description: 'Remove home office do PRÓPRIO usuário num dia.',
10
- inputSchema: {
11
- type: 'object',
12
- properties: {
13
- date: { type: 'string', description: 'Data (YYYY-MM-DD).' },
14
- },
15
- required: ['date'],
16
- additionalProperties: false,
17
- },
18
- };
19
- export async function handler(args, ctx) {
20
- const parsed = ArgsSchema.safeParse(args ?? {});
21
- if (!parsed.success)
22
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
23
- const a = parsed.data;
24
- try {
25
- const err = deleteFailure(await ctx.gateway.removeHomeOffice(ctx.user.id, a.date), 'Home office');
26
- return err ? errorResult(err) : jsonResult({ removed: a.date });
27
- }
28
- catch (err) {
29
- return errorResult(err.message);
30
- }
31
- }
32
- //# sourceMappingURL=remove-home-office.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-home-office.js","sourceRoot":"","sources":["../../src/tools/remove-home-office.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,oBAAoB;IAC7C,WAAW,EAAE,gDAAgD;IAC7D,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAC5D;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,GAAgB;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;QAClG,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1,31 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { brand } from '../brand.js';
4
- import { deleteFailure } from '../lib/calendar-write-logic.js';
5
- const ArgsSchema = z.object({ vacation_id: z.uuid() }).strict();
6
- export const definition = {
7
- name: `${brand.toolPrefix}remove_vacation`,
8
- description: 'Exclui férias pelo id (só admin/gerente).',
9
- inputSchema: {
10
- type: 'object',
11
- properties: {
12
- vacation_id: { type: 'string', format: 'uuid', description: 'ID das férias.' },
13
- },
14
- required: ['vacation_id'],
15
- additionalProperties: false,
16
- },
17
- };
18
- export async function handler(args, ctx) {
19
- const parsed = ArgsSchema.safeParse(args ?? {});
20
- if (!parsed.success)
21
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
22
- const a = parsed.data;
23
- try {
24
- const err = deleteFailure(await ctx.gateway.removeVacation(a.vacation_id), 'Registro de férias');
25
- return err ? errorResult(err) : jsonResult({ removed: a.vacation_id });
26
- }
27
- catch (err) {
28
- return errorResult(err.message);
29
- }
30
- }
31
- //# sourceMappingURL=remove-vacation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-vacation.js","sourceRoot":"","sources":["../../src/tools/remove-vacation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEhE,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,iBAAiB;IAC1C,WAAW,EAAE,2CAA2C;IACxD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE;SAC/E;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;QACzB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,GAAgB;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACjG,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1,52 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { setActiveProjectId } from '../lib/active-project.js';
4
- import { brand } from '../brand.js';
5
- const ArgsSchema = z
6
- .object({
7
- project_id: z.uuid(),
8
- })
9
- .strict();
10
- export const definition = {
11
- name: `${brand.toolPrefix}set_project`,
12
- description: 'Define o projeto ativo da sessão (em memória, dura enquanto o servidor estiver ' +
13
- 'rodando). As tools de tarefa/alocação passam a operar nesse projeto, até você trocar ' +
14
- `de novo. Use \`${brand.toolPrefix}list_projects\` antes para descobrir os ids.`,
15
- inputSchema: {
16
- type: 'object',
17
- properties: {
18
- project_id: {
19
- type: 'string',
20
- format: 'uuid',
21
- description: `UUID do projeto (de ${brand.toolPrefix}list_projects).`,
22
- },
23
- },
24
- required: ['project_id'],
25
- additionalProperties: false,
26
- },
27
- };
28
- export async function handler(args, ctx) {
29
- const parsed = ArgsSchema.safeParse(args);
30
- if (!parsed.success) {
31
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
32
- }
33
- const { project_id } = parsed.data;
34
- // Valida que o projeto existe e é acessível pelo usuário (RLS aplica o escopo).
35
- let project;
36
- try {
37
- project = await ctx.gateway.findProjectById(project_id);
38
- }
39
- catch (err) {
40
- return errorResult(err.message);
41
- }
42
- if (!project) {
43
- return errorResult(`Projeto não encontrado ou sem acesso. Confira o id em \`${brand.toolPrefix}list_projects\`.`);
44
- }
45
- setActiveProjectId(project_id);
46
- return jsonResult({
47
- active_project_id: project.id,
48
- name: project.name,
49
- message: `Projeto ativo agora é "${project.name}".`,
50
- });
51
- }
52
- //# sourceMappingURL=set-project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set-project.js","sourceRoot":"","sources":["../../src/tools/set-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;CACrB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,aAAa;IACtC,WAAW,EACT,iFAAiF;QACjF,uFAAuF;QACvF,kBAAkB,KAAK,CAAC,UAAU,8CAA8C;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,uBAAuB,KAAK,CAAC,UAAU,iBAAiB;aACtE;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;QACxB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,GAAgB;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAEnC,gFAAgF;IAChF,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,2DAA2D,KAAK,CAAC,UAAU,kBAAkB,CAAC,CAAC;IACpH,CAAC;IAED,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,OAAO,UAAU,CAAC;QAChB,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,0BAA0B,OAAO,CAAC,IAAI,IAAI;KACpD,CAAC,CAAC;AACL,CAAC"}
@@ -1,132 +0,0 @@
1
- import { z } from 'zod';
2
- import { jsonResult, errorResult } from '../lib/tool-result.js';
3
- import { resolveProjectConfig, isErrorResult } from '../lib/require-config.js';
4
- import { buildCommentHistoryEntry } from './comment-task.js';
5
- import { brand, env } from '../brand.js';
6
- const VERDICTS = ['approved', 'changes_requested'];
7
- const DEFAULT_REVIEWER = 'internal';
8
- /** Status pra onde a task vai quando o veredito é `approved` e `advance=true`. */
9
- const DONE_STATUS = 'done';
10
- const ArgsSchema = z
11
- .object({
12
- task_id: z.uuid(),
13
- verdict: z.enum(VERDICTS),
14
- reviewer: z.string().min(1).optional(),
15
- note: z.string().trim().min(1).max(5000).optional(),
16
- advance: z.boolean().optional(),
17
- project_id: z.uuid().optional(),
18
- })
19
- .strict();
20
- export const definition = {
21
- name: `${brand.toolPrefix}set_review`,
22
- description: 'Registra o veredito de um review no ticket: seta `tasks.review_state`. ' +
23
- 'Com `verdict=approved` e `advance=true`, também move a task pra `done` e grava a entrega ' +
24
- '(`nos_record_delivery` com `review_verdict=approved` e o `reviewer`). ' +
25
- 'Com `verdict=changes_requested`, mantém o status atual e, se `note` foi passada, posta o ' +
26
- 'parecer como comentário. Idempotente — rechamar com o mesmo veredito não duplica histórico/entrega. ' +
27
- 'Use depois que um review (interno ou externo) chega a um veredito sobre o PR do ticket.',
28
- inputSchema: {
29
- type: 'object',
30
- properties: {
31
- task_id: { type: 'string', format: 'uuid' },
32
- verdict: {
33
- type: 'string',
34
- enum: [...VERDICTS],
35
- description: 'Veredito do review: approved ou changes_requested.',
36
- },
37
- reviewer: {
38
- type: 'string',
39
- description: `Quem revisou (default "${DEFAULT_REVIEWER}"; ex.: internal, pr-reviewer).`,
40
- },
41
- note: {
42
- type: 'string',
43
- minLength: 1,
44
- maxLength: 5000,
45
- description: 'Parecer do review, postado como comentário quando verdict=changes_requested.',
46
- },
47
- advance: {
48
- type: 'boolean',
49
- description: `Se true e verdict=approved, move a task pra \`${DONE_STATUS}\` e grava a entrega.`,
50
- },
51
- project_id: {
52
- type: 'string',
53
- format: 'uuid',
54
- description: `Override do projeto. Se omitido, usa o projeto ativo (${brand.toolPrefix}set_project) ou o default.`,
55
- },
56
- },
57
- required: ['task_id', 'verdict'],
58
- additionalProperties: false,
59
- },
60
- };
61
- /**
62
- * Diff entre o estado atual e o veredito alvo: patch de `review_state` + changes pro histórico
63
- * + se deve mover pra `done` (só quando `approved` + `advance` + ainda não está lá). Só inclui
64
- * o que mudou → idempotente. Pura.
65
- */
66
- export function buildSetReviewPatch(current, verdict, advance) {
67
- const patch = {};
68
- const changes = [];
69
- if (current.review_state !== verdict) {
70
- patch.review_state = verdict;
71
- changes.push({ field: 'review_state', old_value: current.review_state, new_value: verdict });
72
- }
73
- const moveToDone = verdict === 'approved' && advance && current.status !== DONE_STATUS;
74
- return { patch: patch, changes, moveToDone };
75
- }
76
- /** Monta o payload de resposta do set_review a partir do estado atual + o que foi aplicado. Pura. */
77
- export function buildSetReviewResult(current, taskId, verdict, reviewer, changes, movedToDone) {
78
- return {
79
- task_id: taskId,
80
- key: current.key,
81
- title: current.title,
82
- review_state: verdict,
83
- reviewer,
84
- status: movedToDone ? DONE_STATUS : current.status,
85
- previous_status: current.status,
86
- moved_to_done: movedToDone,
87
- changed_fields: changes.map((c) => c.field),
88
- already_set: changes.length === 0 && !movedToDone,
89
- };
90
- }
91
- export async function handler(args, ctx) {
92
- const parsed = ArgsSchema.safeParse(args);
93
- if (!parsed.success)
94
- return errorResult(`Argumento inválido: ${parsed.error.message}`);
95
- const { task_id, verdict, note } = parsed.data;
96
- const reviewer = parsed.data.reviewer ?? DEFAULT_REVIEWER;
97
- const advance = parsed.data.advance ?? false;
98
- const cfg = resolveProjectConfig(ctx, parsed.data.project_id);
99
- if (isErrorResult(cfg))
100
- return cfg;
101
- try {
102
- const current = await ctx.gateway.getTaskForSetReview(task_id, cfg.project_id);
103
- if (!current)
104
- return errorResult('Tarefa não encontrada ou fora do projeto atual.');
105
- const { patch, changes, moveToDone } = buildSetReviewPatch(current, verdict, advance);
106
- if (Object.keys(patch).length > 0) {
107
- await ctx.gateway.applyTaskPatch(task_id, cfg.project_id, ctx.user.id, patch, changes);
108
- }
109
- if (moveToDone) {
110
- await ctx.gateway.moveTaskStatus(task_id, cfg.project_id, DONE_STATUS, ctx.user.id, current.status);
111
- await ctx.gateway.recordDelivery({
112
- user_id: ctx.user.id,
113
- project_id: cfg.project_id,
114
- task_id,
115
- title: current.title,
116
- pr_url: current.pr_url,
117
- iterations: null,
118
- client: env('CLIENT') ?? null,
119
- review_verdict: 'approved',
120
- reviewer,
121
- });
122
- }
123
- if (verdict === 'changes_requested' && note) {
124
- await ctx.gateway.commentTask(task_id, cfg.project_id, ctx.user.id, note, buildCommentHistoryEntry(task_id, ctx.user.id, note));
125
- }
126
- return jsonResult(buildSetReviewResult(current, task_id, verdict, reviewer, changes, moveToDone));
127
- }
128
- catch (err) {
129
- return errorResult(err.message);
130
- }
131
- }
132
- //# sourceMappingURL=set-review.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set-review.js","sourceRoot":"","sources":["../../src/tools/set-review.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { z } from 'zod';
2
- import { brand } from '../brand.js';
3
- export const projectIdProp = {
4
- type: 'string',
5
- format: 'uuid',
6
- description: `Override do projeto. Se omitido, usa o ativo (${brand.toolPrefix}set_project) ou o default.`,
7
- };
8
- export const sprintIdProp = {
9
- type: 'string',
10
- description: 'UUID da sprint, ou "active" pra sprint ativa do projeto.',
11
- };
12
- export const sprintRef = z.union([z.uuid(), z.literal('active')]);
13
- //# sourceMappingURL=sprint-common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sprint-common.js","sourceRoot":"","sources":["../../src/tools/sprint-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,iDAAiD,KAAK,CAAC,UAAU,4BAA4B;CAClG,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,0DAA0D;CAC/D,CAAC;AAEX,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC"}
@@ -1,32 +0,0 @@
1
- import { jsonResult, errorResult } from '../lib/tool-result.js';
2
- import { durationSeconds } from '../lib/duration.js';
3
- import { brand } from '../brand.js';
4
- export const definition = {
5
- name: `${brand.toolPrefix}start_allocation`,
6
- description: 'Inicia uma alocação (bate o ponto) para o usuário atual. Se já existe uma alocação ' +
7
- 'ativa, retorna ela sem criar duplicada.',
8
- inputSchema: {
9
- type: 'object',
10
- properties: {},
11
- additionalProperties: false,
12
- },
13
- };
14
- /** Monta o payload de status de alocação (nova ou já ativa). Pura. */
15
- export function formatAllocationStatus(row, alreadyActive) {
16
- return {
17
- allocation_id: row.id,
18
- start_time: row.start_time,
19
- elapsed_seconds: durationSeconds(row.start_time, null),
20
- already_active: alreadyActive,
21
- };
22
- }
23
- export async function handler(_args, ctx) {
24
- try {
25
- const { allocation, alreadyActive } = await ctx.gateway.startAllocation(ctx.user.id);
26
- return jsonResult(formatAllocationStatus(allocation, alreadyActive));
27
- }
28
- catch (err) {
29
- return errorResult(err.message);
30
- }
31
- }
32
- //# sourceMappingURL=start-allocation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-allocation.js","sourceRoot":"","sources":["../../src/tools/start-allocation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,kBAAkB;IAC3C,WAAW,EACT,qFAAqF;QACrF,yCAAyC;IAC3C,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,UAAU,sBAAsB,CACpC,GAAuC,EACvC,aAAsB;IAEtB,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,EAAE;QACrB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;QACtD,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAc,EAAE,GAAgB;IAC5D,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,UAAU,CAAC,sBAAsB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}