@noclaf/cli 0.4.13 → 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 (109) 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/commands/validate-plan.js +42 -0
  20. package/dist/cli/commands/validate-plan.js.map +1 -0
  21. package/dist/cli/flows/clients.js +27 -17
  22. package/dist/cli/flows/clients.js.map +1 -1
  23. package/dist/cli.js +7 -5
  24. package/dist/cli.js.map +1 -1
  25. package/dist/config.js +19 -11
  26. package/dist/config.js.map +1 -1
  27. package/dist/constants.js +7 -8
  28. package/dist/constants.js.map +1 -1
  29. package/dist/lib/autopull.js +13 -0
  30. package/dist/lib/autopull.js.map +1 -0
  31. package/dist/lib/client-configs.js +37 -25
  32. package/dist/lib/client-configs.js.map +1 -1
  33. package/dist/lib/cowork-extension.js +42 -30
  34. package/dist/lib/cowork-extension.js.map +1 -1
  35. package/dist/lib/dependencies.js +83 -247
  36. package/dist/lib/dependencies.js.map +1 -1
  37. package/dist/lib/dependency-install.js +163 -0
  38. package/dist/lib/dependency-install.js.map +1 -0
  39. package/dist/lib/exec-delegate.js +2 -2
  40. package/dist/lib/exec-delegate.js.map +1 -1
  41. package/dist/lib/exec-engines.js +7 -6
  42. package/dist/lib/exec-engines.js.map +1 -1
  43. package/dist/lib/provision-apply.js +214 -0
  44. package/dist/lib/provision-apply.js.map +1 -0
  45. package/dist/lib/provision-collect.js +47 -0
  46. package/dist/lib/provision-collect.js.map +1 -0
  47. package/dist/lib/provision.js +8 -253
  48. package/dist/lib/provision.js.map +1 -1
  49. package/dist/lib/require-config.js +3 -2
  50. package/dist/lib/require-config.js.map +1 -1
  51. package/dist/lib/skills-cache.js +9 -8
  52. package/dist/lib/skills-cache.js.map +1 -1
  53. package/dist/lib/skills.js +30 -16
  54. package/dist/lib/skills.js.map +1 -1
  55. package/dist/lib/telemetry.js +2 -1
  56. package/dist/lib/telemetry.js.map +1 -1
  57. package/dist/lib/validate-plan-delegate.js +105 -0
  58. package/dist/lib/validate-plan-delegate.js.map +1 -0
  59. package/dist/lib/version-check.js +3 -2
  60. package/dist/lib/version-check.js.map +1 -1
  61. package/dist/mcp-server.js +107 -79
  62. package/dist/mcp-server.js.map +1 -1
  63. package/dist/tools/comment-task.js +32 -32
  64. package/dist/tools/comment-task.js.map +1 -1
  65. package/dist/tools/create-task.js +92 -101
  66. package/dist/tools/create-task.js.map +1 -1
  67. package/dist/tools/delegate-exec.js +4 -3
  68. package/dist/tools/delegate-exec.js.map +1 -1
  69. package/dist/tools/end-allocation.js +19 -32
  70. package/dist/tools/end-allocation.js.map +1 -1
  71. package/dist/tools/end-task-allocation.js +17 -26
  72. package/dist/tools/end-task-allocation.js.map +1 -1
  73. package/dist/tools/exec-status.js +4 -3
  74. package/dist/tools/exec-status.js.map +1 -1
  75. package/dist/tools/get-active-allocation.js +53 -60
  76. package/dist/tools/get-active-allocation.js.map +1 -1
  77. package/dist/tools/get-context.js +4 -3
  78. package/dist/tools/get-context.js.map +1 -1
  79. package/dist/tools/get-task.js +144 -142
  80. package/dist/tools/get-task.js.map +1 -1
  81. package/dist/tools/index.js +2 -0
  82. package/dist/tools/index.js.map +1 -1
  83. package/dist/tools/list-my-allocations.js +35 -43
  84. package/dist/tools/list-my-allocations.js.map +1 -1
  85. package/dist/tools/list-projects.js +3 -2
  86. package/dist/tools/list-projects.js.map +1 -1
  87. package/dist/tools/list-tasks.js +117 -124
  88. package/dist/tools/list-tasks.js.map +1 -1
  89. package/dist/tools/move-task.js +37 -39
  90. package/dist/tools/move-task.js.map +1 -1
  91. package/dist/tools/plan.js +3 -2
  92. package/dist/tools/plan.js.map +1 -1
  93. package/dist/tools/record-delivery.js +4 -3
  94. package/dist/tools/record-delivery.js.map +1 -1
  95. package/dist/tools/set-project.js +9 -4
  96. package/dist/tools/set-project.js.map +1 -1
  97. package/dist/tools/start-allocation.js +16 -26
  98. package/dist/tools/start-allocation.js.map +1 -1
  99. package/dist/tools/start-task-allocation.js +72 -92
  100. package/dist/tools/start-task-allocation.js.map +1 -1
  101. package/dist/tools/update-task.js +149 -168
  102. package/dist/tools/update-task.js.map +1 -1
  103. package/dist/tools/validate-plan.js +58 -0
  104. package/dist/tools/validate-plan.js.map +1 -0
  105. package/package.json +1 -1
  106. package/dist/cli/commands/init.js +0 -336
  107. package/dist/cli/commands/init.js.map +0 -1
  108. package/dist/logo.js +0 -17
  109. package/dist/logo.js.map +0 -1
@@ -1,51 +1,42 @@
1
1
  import { jsonResult, errorResult } from '../lib/tool-result.js';
2
2
  import { durationSeconds } from '../lib/duration.js';
3
+ import { brand } from '../brand.js';
3
4
  export const definition = {
4
- name: 'nos_end_task_allocation',
5
+ name: `${brand.toolPrefix}end_task_allocation`,
5
6
  description: '[PARA TIMER DE TASK] Para a task_allocation ativa. A alocação principal (ponto do dia) ' +
6
7
  'CONTINUA aberta. Use ao finalizar ou pausar uma task. ' +
7
- 'Para encerrar o dia inteiro, use `nos_end_allocation`.',
8
+ `Para encerrar o dia inteiro, use \`${brand.toolPrefix}end_allocation\`.`,
8
9
  inputSchema: {
9
10
  type: 'object',
10
11
  properties: {},
11
12
  additionalProperties: false,
12
13
  },
13
14
  };
15
+ /** Monta o payload de resposta do end_task_allocation. Pura. */
16
+ export function formatEndTaskAllocationResult(closed, task) {
17
+ return {
18
+ task_allocation_id: closed.id,
19
+ task,
20
+ start_time: closed.start_time,
21
+ end_time: closed.end_time,
22
+ duration_seconds: durationSeconds(closed.start_time, closed.end_time),
23
+ };
24
+ }
14
25
  export async function handler(_args, ctx) {
15
26
  const { supabase } = ctx;
16
27
  const now = new Date().toISOString();
17
- const activeRes = await supabase
18
- .from('task_allocations')
19
- .select('id, task_id, start_time')
20
- .eq('user_id', ctx.user.id)
21
- .is('end_time', null)
22
- .maybeSingle();
28
+ const activeRes = await supabase.from('task_allocations').select('id, task_id, start_time').eq('user_id', ctx.user.id).is('end_time', null).maybeSingle();
23
29
  if (activeRes.error)
24
30
  return errorResult(`Erro ao buscar task_allocation ativa: ${activeRes.error.message}`);
25
31
  if (!activeRes.data)
26
32
  return errorResult('Não há task_allocation ativa.');
27
33
  const active = activeRes.data;
28
- const closeRes = await supabase
29
- .from('task_allocations')
30
- .update({ end_time: now })
31
- .eq('id', active.id)
32
- .select('id, start_time, end_time')
33
- .single();
34
+ const closeRes = await supabase.from('task_allocations').update({ end_time: now }).eq('id', active.id).select('id, start_time, end_time').single();
34
35
  if (closeRes.error)
35
36
  return errorResult(`Erro ao parar task_allocation: ${closeRes.error.message}`);
36
37
  // Busca info da task (best-effort)
37
- const taskRes = await supabase
38
- .from('tasks')
39
- .select('id, key, title')
40
- .eq('id', active.task_id)
41
- .maybeSingle();
38
+ const taskRes = await supabase.from('tasks').select('id, key, title').eq('id', active.task_id).maybeSingle();
42
39
  const task = taskRes.data ?? { id: active.task_id, key: null, title: null };
43
- return jsonResult({
44
- task_allocation_id: closeRes.data.id,
45
- task,
46
- start_time: closeRes.data.start_time,
47
- end_time: closeRes.data.end_time,
48
- duration_seconds: durationSeconds(closeRes.data.start_time, closeRes.data.end_time),
49
- });
40
+ return jsonResult(formatEndTaskAllocationResult(closeRes.data, task));
50
41
  }
51
42
  //# sourceMappingURL=end-task-allocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"end-task-allocation.js","sourceRoot":"","sources":["../../src/tools/end-task-allocation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,yFAAyF;QACzF,wDAAwD;QACxD,wDAAwD;IAC1D,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAc,EAAE,GAAgB;IAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,MAAM,QAAQ;SAC7B,IAAI,CAAC,kBAAkB,CAAC;SACxB,MAAM,CAAC,yBAAyB,CAAC;SACjC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1B,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;SACpB,WAAW,EAAE,CAAC;IACjB,IAAI,SAAS,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC,yCAAyC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5G,IAAI,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAEzE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,QAAQ;SAC5B,IAAI,CAAC,kBAAkB,CAAC;SACxB,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;SACzB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;SACnB,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,EAAE,CAAC;IACZ,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC,kCAAkC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnG,mCAAmC;IACnC,MAAM,OAAO,GAAG,MAAM,QAAQ;SAC3B,IAAI,CAAC,OAAO,CAAC;SACb,MAAM,CAAC,gBAAgB,CAAC;SACxB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;SACxB,WAAW,EAAE,CAAC;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAE5E,OAAO,UAAU,CAAC;QAChB,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI;QACJ,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;QACpC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;QAChC,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;KACpF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"end-task-allocation.js","sourceRoot":"","sources":["../../src/tools/end-task-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,qBAAqB;IAC9C,WAAW,EACT,yFAAyF;QACzF,wDAAwD;QACxD,sCAAsC,KAAK,CAAC,UAAU,mBAAmB;IAC3E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,gEAAgE;AAChE,MAAM,UAAU,6BAA6B,CAC3C,MAAmE,EACnE,IAA8D;IAE9D,OAAO;QACL,kBAAkB,EAAE,MAAM,CAAC,EAAE;QAC7B,IAAI;QACJ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAc,EAAE,GAAgB;IAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1J,IAAI,SAAS,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC,yCAAyC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5G,IAAI,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,WAAW,CAAC,+BAA+B,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC;IACnJ,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC,kCAAkC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnG,mCAAmC;IACnC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7G,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAE5E,OAAO,UAAU,CAAC,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -1,16 +1,17 @@
1
1
  import { z } from 'zod';
2
2
  import { jsonResult, errorResult } from '../lib/tool-result.js';
3
3
  import { getJob } from '../lib/exec-delegate.js';
4
+ import { brand } from '../brand.js';
4
5
  const ArgsSchema = z.object({ job_id: z.string().min(1) }).strict();
5
6
  export const definition = {
6
- name: 'noclaf_exec_status',
7
- description: 'Estado de uma execução delegada (`noclaf_delegate_exec`): running | done | failed, com o ' +
7
+ name: `${brand.cliToolPrefix}exec_status`,
8
+ description: `Estado de uma execução delegada (\`${brand.cliToolPrefix}delegate_exec\`): running | done | failed, com o ` +
8
9
  'resumo do agente, os arquivos alterados e os checks determinísticos (tamanho, lint, build, ' +
9
10
  'testes). Use os checks como FATOS na sua revisão — não gaste ciclo revisando o mecânico.',
10
11
  inputSchema: {
11
12
  type: 'object',
12
13
  properties: {
13
- job_id: { type: 'string', description: 'Id devolvido por `noclaf_delegate_exec`.' },
14
+ job_id: { type: 'string', description: `Id devolvido por \`${brand.cliToolPrefix}delegate_exec\`.` },
14
15
  },
15
16
  required: ['job_id'],
16
17
  additionalProperties: false,
@@ -1 +1 @@
1
- {"version":3,"file":"exec-status.js","sourceRoot":"","sources":["../../src/tools/exec-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,2FAA2F;QAC3F,6FAA6F;QAC7F,0FAA0F;IAC5F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;SACpF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,IAAiB;IAC5D,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;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzB,OAAO,UAAU,CAAC;QAChB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,QAAQ;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"exec-status.js","sourceRoot":"","sources":["../../src/tools/exec-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,aAAa,aAAa;IACzC,WAAW,EACT,sCAAsC,KAAK,CAAC,aAAa,mDAAmD;QAC5G,6FAA6F;QAC7F,0FAA0F;IAC5F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,KAAK,CAAC,aAAa,kBAAkB,EAAE;SACrG;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,IAAiB;IAC5D,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;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzB,OAAO,UAAU,CAAC;QAChB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,QAAQ;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { jsonResult, errorResult } from '../lib/tool-result.js';
2
+ import { isErrorResult } from '../lib/require-config.js';
2
3
  import { durationSeconds } from '../lib/duration.js';
4
+ import { brand } from '../brand.js';
3
5
  export const definition = {
4
- name: 'nos_get_active_allocation',
6
+ name: `${brand.toolPrefix}get_active_allocation`,
5
7
  description: 'Retorna o estado atual de cronometragem do usuário: alocação ativa, task atual sendo ' +
6
8
  'cronometrada, e segmentos por task na alocação atual.',
7
9
  inputSchema: {
@@ -10,61 +12,8 @@ export const definition = {
10
12
  additionalProperties: false,
11
13
  },
12
14
  };
13
- export async function handler(_args, ctx) {
14
- const { supabase } = ctx;
15
- const allocRes = await supabase
16
- .from('allocations')
17
- .select('id, start_time')
18
- .eq('user_id', ctx.user.id)
19
- .is('end_time', null)
20
- .maybeSingle();
21
- if (allocRes.error)
22
- return errorResult(`Erro ao buscar alocação ativa: ${allocRes.error.message}`);
23
- if (!allocRes.data) {
24
- return jsonResult({
25
- allocation: null,
26
- active_task: null,
27
- segments: [],
28
- total_seconds_today: 0,
29
- });
30
- }
31
- const allocation = allocRes.data;
32
- const segmentsRes = await supabase
33
- .from('task_allocations')
34
- .select('id, task_id, start_time, end_time, is_overtime')
35
- .eq('allocation_id', allocation.id)
36
- .order('start_time', { ascending: true });
37
- if (segmentsRes.error)
38
- return errorResult(`Erro ao buscar segmentos: ${segmentsRes.error.message}`);
39
- const segmentRows = segmentsRes.data ?? [];
40
- // Carrega tasks + projetos referenciados
41
- const taskIds = Array.from(new Set(segmentRows.map((s) => s.task_id)));
42
- const tasksById = new Map();
43
- const projectsById = new Map();
44
- if (taskIds.length > 0) {
45
- const tasksRes = await supabase
46
- .from('tasks')
47
- .select('id, key, title, project_id')
48
- .in('id', taskIds);
49
- if (tasksRes.error)
50
- return errorResult(`Erro ao buscar tarefas: ${tasksRes.error.message}`);
51
- for (const t of tasksRes.data ?? []) {
52
- tasksById.set(t.id, { key: t.key, title: t.title, project_id: t.project_id });
53
- }
54
- const projectIds = Array.from(new Set((tasksRes.data ?? []).map((t) => t.project_id)));
55
- if (projectIds.length > 0) {
56
- const projectsRes = await supabase
57
- .from('projects')
58
- .select('id, name')
59
- .in('id', projectIds);
60
- if (projectsRes.error) {
61
- return errorResult(`Erro ao buscar projetos: ${projectsRes.error.message}`);
62
- }
63
- for (const p of projectsRes.data ?? [])
64
- projectsById.set(p.id, p.name);
65
- }
66
- }
67
- const taskInfo = (taskId) => {
15
+ function taskInfoLookup(tasksById, projectsById) {
16
+ return (taskId) => {
68
17
  const t = tasksById.get(taskId);
69
18
  return {
70
19
  id: taskId,
@@ -73,6 +22,10 @@ export async function handler(_args, ctx) {
73
22
  project_name: t ? projectsById.get(t.project_id) ?? null : null,
74
23
  };
75
24
  };
25
+ }
26
+ /** Monta a resposta de alocação ativa: allocation, task ativa, segmentos e total do dia. Pura. */
27
+ export function formatActiveAllocation(allocation, segmentRows, tasksById, projectsById) {
28
+ const taskInfo = taskInfoLookup(tasksById, projectsById);
76
29
  const segments = segmentRows.map((s) => ({
77
30
  task_allocation_id: s.id,
78
31
  task: taskInfo(s.task_id),
@@ -91,8 +44,7 @@ export async function handler(_args, ctx) {
91
44
  is_overtime: activeSegment.is_overtime,
92
45
  }
93
46
  : null;
94
- const totalSecondsToday = segments.reduce((acc, s) => acc + s.duration_seconds, 0);
95
- return jsonResult({
47
+ return {
96
48
  allocation: {
97
49
  id: allocation.id,
98
50
  start_time: allocation.start_time,
@@ -100,7 +52,48 @@ export async function handler(_args, ctx) {
100
52
  },
101
53
  active_task: activeTask,
102
54
  segments,
103
- total_seconds_today: totalSecondsToday,
104
- });
55
+ total_seconds_today: segments.reduce((acc, s) => acc + s.duration_seconds, 0),
56
+ };
57
+ }
58
+ async function loadTaskAndProjectRefs(supabase, taskIds) {
59
+ const tasksById = new Map();
60
+ const projectsById = new Map();
61
+ if (taskIds.length === 0)
62
+ return { tasksById, projectsById };
63
+ const tasksRes = await supabase.from('tasks').select('id, key, title, project_id').in('id', taskIds);
64
+ if (tasksRes.error)
65
+ return errorResult(`Erro ao buscar tarefas: ${tasksRes.error.message}`);
66
+ for (const t of tasksRes.data ?? [])
67
+ tasksById.set(t.id, { key: t.key, title: t.title, project_id: t.project_id });
68
+ const projectIds = Array.from(new Set((tasksRes.data ?? []).map((t) => t.project_id)));
69
+ if (projectIds.length > 0) {
70
+ const projectsRes = await supabase.from('projects').select('id, name').in('id', projectIds);
71
+ if (projectsRes.error)
72
+ return errorResult(`Erro ao buscar projetos: ${projectsRes.error.message}`);
73
+ for (const p of projectsRes.data ?? [])
74
+ projectsById.set(p.id, p.name);
75
+ }
76
+ return { tasksById, projectsById };
77
+ }
78
+ export async function handler(_args, ctx) {
79
+ const { supabase } = ctx;
80
+ const allocRes = await supabase.from('allocations').select('id, start_time').eq('user_id', ctx.user.id).is('end_time', null).maybeSingle();
81
+ if (allocRes.error)
82
+ return errorResult(`Erro ao buscar alocação ativa: ${allocRes.error.message}`);
83
+ if (!allocRes.data)
84
+ return jsonResult({ allocation: null, active_task: null, segments: [], total_seconds_today: 0 });
85
+ const allocation = allocRes.data;
86
+ const segmentsRes = await supabase
87
+ .from('task_allocations')
88
+ .select('id, task_id, start_time, end_time, is_overtime')
89
+ .eq('allocation_id', allocation.id)
90
+ .order('start_time', { ascending: true });
91
+ if (segmentsRes.error)
92
+ return errorResult(`Erro ao buscar segmentos: ${segmentsRes.error.message}`);
93
+ const segmentRows = segmentsRes.data ?? [];
94
+ const refs = await loadTaskAndProjectRefs(supabase, Array.from(new Set(segmentRows.map((s) => s.task_id))));
95
+ if (isErrorResult(refs))
96
+ return refs;
97
+ return jsonResult(formatActiveAllocation(allocation, segmentRows, refs.tasksById, refs.projectsById));
105
98
  }
106
99
  //# sourceMappingURL=get-active-allocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-active-allocation.js","sourceRoot":"","sources":["../../src/tools/get-active-allocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-active-allocation.js","sourceRoot":"","sources":["../../src/tools/get-active-allocation.ts"],"names":[],"mappings":"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"}
@@ -2,24 +2,25 @@ import { z } from 'zod';
2
2
  import { jsonResult, errorResult } from '../lib/tool-result.js';
3
3
  import { fetchProjectContext, ProjectContextError } from '../lib/project-context.js';
4
4
  import { resolveProjectConfig, isErrorResult } from '../lib/require-config.js';
5
+ import { brand } from '../brand.js';
5
6
  const ArgsSchema = z
6
7
  .object({
7
8
  project_id: z.string().uuid().optional(),
8
9
  })
9
10
  .strict();
10
11
  export const definition = {
11
- name: 'nos_get_context',
12
+ name: `${brand.toolPrefix}get_context`,
12
13
  description: 'Retorna o contexto completo do projeto NOS ativo: dados do projeto, repositórios, ' +
13
14
  'sprint ativa, membros e usuário autenticado. Use SEMPRE no início de uma conversa ' +
14
15
  'pra entender em que projeto você está operando. Sem projeto selecionado, use ' +
15
- '`nos_list_projects` + `nos_set_project` antes.',
16
+ `\`${brand.toolPrefix}list_projects\` + \`${brand.toolPrefix}set_project\` antes.`,
16
17
  inputSchema: {
17
18
  type: 'object',
18
19
  properties: {
19
20
  project_id: {
20
21
  type: 'string',
21
22
  format: 'uuid',
22
- description: 'Override do projeto. Se omitido, usa o projeto ativo (nos_set_project) ou o default.',
23
+ description: `Override do projeto. Se omitido, usa o projeto ativo (${brand.toolPrefix}set_project) ou o default.`,
23
24
  },
24
25
  },
25
26
  additionalProperties: false,
@@ -1 +1 @@
1
- {"version":3,"file":"get-context.js","sourceRoot":"","sources":["../../src/tools/get-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE/E,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,oFAAoF;QACpF,oFAAoF;QACpF,+EAA+E;QAC/E,gDAAgD;IAClD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,sFAAsF;aACpG;SACF;QACD,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;IAED,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACvC,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,WAAW,CAAC,oBAAqB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get-context.js","sourceRoot":"","sources":["../../src/tools/get-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,aAAa;IACtC,WAAW,EACT,oFAAoF;QACpF,oFAAoF;QACpF,+EAA+E;QAC/E,KAAK,KAAK,CAAC,UAAU,uBAAuB,KAAK,CAAC,UAAU,sBAAsB;IACpF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,yDAAyD,KAAK,CAAC,UAAU,4BAA4B;aACnH;SACF;QACD,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;IAED,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACvC,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,WAAW,CAAC,oBAAqB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}