@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,27 +1,28 @@
1
1
  import { existsSync, mkdirSync, rmSync, cpSync, readdirSync, readFileSync, writeFileSync, } from 'node:fs';
2
- import { homedir, tmpdir } from 'node:os';
2
+ import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import AdmZip from 'adm-zip';
5
+ import { brand, env, homePath } from '../brand.js';
5
6
  /**
6
7
  * Skills como repo aberto (não pacote npm): o CLI baixa o zipball do GitHub pro
7
8
  * cache local (`~/.noclaf/skills`) e lê de lá — `skillsDir()` resolve pra cá sem
8
9
  * checkout, e `noclaf sync` atualiza o cache sem republicar o CLI.
9
10
  */
10
- const DEFAULT_REPO = 'Falcao-Tech/noclaf-skills';
11
- const DEFAULT_REF = 'main';
11
+ const DEFAULT_REPO = brand.skillsRepo;
12
+ const DEFAULT_REF = brand.skillsRef;
12
13
  /** `owner/repo` do repo de skills. Sobrescrevível via `NOCLAF_SKILLS_REPO`. */
13
14
  export function skillsRepo() {
14
- return process.env.NOCLAF_SKILLS_REPO || DEFAULT_REPO;
15
+ return env('SKILLS_REPO') || DEFAULT_REPO;
15
16
  }
16
17
  /** Branch/tag a baixar. Sobrescrevível via `NOCLAF_SKILLS_REF`. */
17
18
  export function skillsRef() {
18
- return process.env.NOCLAF_SKILLS_REF || DEFAULT_REF;
19
+ return env('SKILLS_REF') || DEFAULT_REF;
19
20
  }
20
21
  /** Raiz do cache local (o conteúdo do repo: `commands/`, `skills/`, `hooks/`, …). */
21
22
  export function skillsCacheDir() {
22
- return join(homedir(), '.noclaf', 'skills');
23
+ return homePath('skills');
23
24
  }
24
- const MARKER = '.noclaf-skills.json';
25
+ const MARKER = `${brand.homeDirName}-skills.json`;
25
26
  /** Metadados do último fetch (repo/ref/quando). `null` se o cache não existe. */
26
27
  export function cacheMeta() {
27
28
  const p = join(skillsCacheDir(), MARKER);
@@ -54,7 +55,7 @@ export async function fetchSkills(opts = {}) {
54
55
  return { status: 'cached', dir, repo, ref };
55
56
  }
56
57
  const url = `https://codeload.github.com/${repo}/zip/refs/heads/${ref}`;
57
- const staging = join(tmpdir(), `noclaf-skills-${process.pid}-${Date.now()}`);
58
+ const staging = join(tmpdir(), `${brand.name}-skills-${process.pid}-${Date.now()}`);
58
59
  const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
59
60
  const ac = new AbortController();
60
61
  const timer = setTimeout(() => ac.abort(), timeoutMs);
@@ -1 +1 @@
1
- {"version":3,"file":"skills-cache.js","sourceRoot":"","sources":["../../src/lib/skills-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-cache.js","sourceRoot":"","sources":["../../src/lib/skills-cache.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,14 @@ import { createRequire } from 'node:module';
3
3
  import { join, relative, sep, dirname } from 'node:path';
4
4
  import { skillsCacheDir, skillsCached } from './skills-cache.js';
5
5
  import { includePath } from './sections.js';
6
+ import { env } from '../brand.js';
6
7
  /**
7
8
  * Diretório do conteúdo das skills. Resolve em ordem: `NOCLAF_SKILLS_DIR`
8
9
  * (checkout local), `@noclaf/skills` via require.resolve (dev legado), ou o
9
10
  * cache `~/.noclaf/skills` populado por `noclaf sync`/`init` (fluxo padrão).
10
11
  */
11
12
  export function skillsDir() {
12
- const override = process.env.NOCLAF_SKILLS_DIR;
13
+ const override = env('SKILLS_DIR');
13
14
  if (override && existsSync(override))
14
15
  return override;
15
16
  try {
@@ -42,6 +43,29 @@ function listMarkdown(dir) {
42
43
  walk(dir);
43
44
  return out;
44
45
  }
46
+ /**
47
+ * Coleta as linhas indentadas/vazias seguintes (bloco YAML folded `>` ou literal `|`)
48
+ * a partir de `lines[i + 1]`. Retorna o valor já juntado e o novo índice do cursor
49
+ * (última linha consumida) pro chamador continuar o loop dali.
50
+ */
51
+ function collectBlockValue(lines, i, folded) {
52
+ const collected = [];
53
+ while (i + 1 < lines.length && (lines[i + 1].trim() === '' || /^\s+\S/.test(lines[i + 1]))) {
54
+ collected.push(lines[++i].trim());
55
+ }
56
+ const value = folded
57
+ ? collected.join(' ').replace(/\s+/g, ' ').trim()
58
+ : collected.join('\n').trim();
59
+ return { value, nextIndex: i };
60
+ }
61
+ /** Valor entre aspas simples/duplas → sem as aspas. Sem aspas → devolve como veio. */
62
+ function unquote(value) {
63
+ if ((value.startsWith('"') && value.endsWith('"')) ||
64
+ (value.startsWith("'") && value.endsWith("'"))) {
65
+ return value.slice(1, -1);
66
+ }
67
+ return value;
68
+ }
45
69
  /**
46
70
  * Parser de frontmatter minimalista: `key: value` de uma linha, mais blocos
47
71
  * folded (`>`) e literal (`|`). Suficiente pros metadados (não é YAML completo).
@@ -57,24 +81,14 @@ function parseFrontmatter(raw) {
57
81
  if (!m)
58
82
  continue;
59
83
  const key = m[1];
60
- let value = m[2].trim();
84
+ const value = m[2].trim();
61
85
  if (/^[|>][+-]?$/.test(value)) {
62
- const folded = value[0] === '>';
63
- const collected = [];
64
- while (i + 1 < lines.length && (lines[i + 1].trim() === '' || /^\s+\S/.test(lines[i + 1]))) {
65
- collected.push(lines[++i].trim());
66
- }
67
- value = folded
68
- ? collected.join(' ').replace(/\s+/g, ' ').trim()
69
- : collected.join('\n').trim();
70
- fm[key] = value;
86
+ const block = collectBlockValue(lines, i, value[0] === '>');
87
+ fm[key] = block.value;
88
+ i = block.nextIndex;
71
89
  continue;
72
90
  }
73
- if ((value.startsWith('"') && value.endsWith('"')) ||
74
- (value.startsWith("'") && value.endsWith("'"))) {
75
- value = value.slice(1, -1);
76
- }
77
- fm[key] = value;
91
+ fm[key] = unquote(value);
78
92
  }
79
93
  return { frontmatter: fm, body: raw.slice(match[0].length) };
80
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAkB,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AA0ClC;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACnC,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;IAED,IAAI,YAAY,EAAE;QAAE,OAAO,cAAc,EAAE,CAAC;IAE5C,MAAM,IAAI,KAAK,CACb,0EAA0E;QACxE,gEAAgE,CACnE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACnC,IACH,KAAK,CAAC,MAAM,EAAE;gBACd,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW;gBAExC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,KAAe,EACf,CAAS,EACT,MAAe;IAEf,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM;QAClB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;QACjD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,sFAAsF;AACtF,SAAS,OAAO,CAAC,KAAa;IAC5B,IACE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,EAAE,GAA2B,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAElD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAC5D,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YACtB,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;YACpB,SAAS;QACX,CAAC;QAED,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AACzE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK;SACf,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,GAAa,EAAE,OAAsB;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,sBAAsB,CAAC,IAAgB,EAAE,OAAsB;IAC7E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAS,EACT,OAAsB;IAEtB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACzC,6EAA6E;IAC7E,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,GAAG,KAAK,cAAc;QAAE,OAAO,YAAY,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uFAAuF;AACvF,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,EAAU;IAC1B,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAU,CAAC;AAE9E,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,MAAc,SAAS,EAAE;IACtD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,oCAAoC,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACnC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAY,EAAE;QACxC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO;YACL,EAAE;YACF,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;YAC1D,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;YAC1B,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;YAC1C,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;SAC3C,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,SAAS,EAAE;IACrD,OAAO,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAqB,EAAE,MAAc,SAAS,EAAE;IAC/E,IAAI,CAAC;QACH,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACrE,IAAI,SAAS;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,SAAS,EAAE;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7C,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { env } from "../brand.js";
1
2
  function enabled() {
2
- return process.env.NOCLAF_TELEMETRY !== "0" && !process.env.NOCLAF_NO_TELEMETRY;
3
+ return env("TELEMETRY") !== "0" && !env("NO_TELEMETRY");
3
4
  }
4
5
  /**
5
6
  * Items (skills/commands/agents) provisionados a partir do plano do `provision`,
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAgCA,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA4B,EAC5B,SAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GACL,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9C,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,OAAO,GAAuB,EAAE,CAAC;AAEvC,gEAAgE;AAChE,MAAM,UAAU,KAAK,CAAC,QAAkC,EAAE,KAAiB;IACzE,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO;IACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS;SACzB,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;SAC3E,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE;QACV,qCAAqC;IACvC,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAS,GAAG,IAAI;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,CAAC,IAAI,CAAC;QACjB,QAAQ;QACR,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAgClC,SAAS,OAAO;IACd,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA4B,EAC5B,SAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GACL,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9C,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,OAAO,GAAuB,EAAE,CAAC;AAEvC,gEAAgE;AAChE,MAAM,UAAU,KAAK,CAAC,QAAkC,EAAE,KAAiB;IACzE,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO;IACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS;SACzB,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;SAC3E,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE;QACV,qCAAqC;IACvC,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAS,GAAG,IAAI;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,CAAC,IAAI,CAAC;QACjB,QAAQ;QACR,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { readFileSync } from 'node:fs';
3
+ import { planPath, stripFence } from './plan-delegate.js';
4
+ import { PLAN_ENGINE, engineArgs, engineMissingError, resolveEngineBin, } from './exec-engines.js';
5
+ const SLUG_MAX = 50;
6
+ const SLUG_FALLBACK = 'plan';
7
+ /** Slug git-safe do título do plano p/ o Studio nomear o worktree; degenerado → fallback. Puro. */
8
+ export function suggestSlug(plan) {
9
+ const heading = /^#{1,6}\s+(.+?)\s*$/m.exec(plan)?.[1];
10
+ const title = (heading ?? plan.split('\n').find((l) => l.trim()) ?? '').trim();
11
+ const slug = title
12
+ .normalize('NFD')
13
+ .replace(/\p{Diacritic}/gu, '')
14
+ .toLowerCase()
15
+ .replace(/[^a-z0-9]+/g, '-')
16
+ .replace(/^-+|-+$/g, '')
17
+ .slice(0, SLUG_MAX)
18
+ .replace(/-+$/g, '');
19
+ return slug || SLUG_FALLBACK;
20
+ }
21
+ export function planMissingError(project) {
22
+ return `plan.md não encontrado em ${project} — rode \`noclaf plan\` antes de validar`;
23
+ }
24
+ /** Lê o `plan.md` da raiz; ausente/vazio dispara — o caller vira em erro tratado. */
25
+ export function readPlan(project) {
26
+ const content = readFileSync(planPath(project), 'utf8');
27
+ if (!content.trim())
28
+ throw new Error('plan.md vazio');
29
+ return content;
30
+ }
31
+ /** Preâmbulo de triagem: ancora no harness e pede veredito + justificativa parseáveis. */
32
+ export function buildValidatePrompt(plan) {
33
+ return [
34
+ 'Você está TRIANDO um plano — não implemente nada, não escreva código, não edite arquivos.',
35
+ 'Antes: leia AGENTS.md e docs/_rules/noclaf.md deste projeto e respeite o harness.',
36
+ 'Julgue a COMPLEXIDADE do plano frente ao IMPACTO REAL no código deste repositório:',
37
+ 'plano amplo/abrangente (muitos módulos, decisões de arquitetura, risco) MERECE uma spec SDD antes;',
38
+ 'plano pequeno/localizado pode ir direto para a implementação.',
39
+ 'Responda APENAS neste formato, sem cercas de código:',
40
+ 'VERDICT: yes|no',
41
+ 'REASON: <uma ou duas frases legíveis explicando o porquê>',
42
+ 'yes = precisa de spec antes; no = pode implementar direto.',
43
+ '',
44
+ '## Plano (plan.md)',
45
+ plan,
46
+ ].join('\n');
47
+ }
48
+ /** Normaliza a resposta do engine em `{ needsSpec, reason }`; ambíguo → dispara. */
49
+ export function parseVerdict(text) {
50
+ const clean = stripFence(text);
51
+ const m = /^[ \t]*VERDICT:[ \t]*(yes|no)\b[ \t]*(.*)$/im.exec(clean);
52
+ if (!m)
53
+ throw new Error('veredito ambíguo: falta a linha `VERDICT: yes|no`');
54
+ const needsSpec = m[1].toLowerCase() === 'yes';
55
+ const rest = clean.replace(m[0], '').trim();
56
+ const reason = (rest || m[2].trim())
57
+ .replace(/^[ \t]*REASON:[ \t]*/i, '')
58
+ .replace(/^[\s—:-]+/, '')
59
+ .trim();
60
+ if (!reason)
61
+ throw new Error('veredito ambíguo: sem justificativa (reason vazio)');
62
+ return { needsSpec, reason };
63
+ }
64
+ function spawnValidate(bin, engine, prompt, project, echo) {
65
+ return new Promise((resolve) => {
66
+ const child = spawn(bin, engineArgs(engine, prompt), {
67
+ cwd: project,
68
+ stdio: ['ignore', 'pipe', 'pipe'],
69
+ });
70
+ let out = '';
71
+ child.stdout.on('data', (d) => (out += d.toString()));
72
+ child.stderr.on('data', (d) => echo && process.stderr.write(d.toString()));
73
+ const fail = (error) => resolve({ ok: false, engine, error });
74
+ child.on('error', (e) => fail(e.message));
75
+ child.on('close', (code) => {
76
+ if (code !== 0)
77
+ return fail(`engine ${engine} falhou (exit ${code})`);
78
+ try {
79
+ resolve({ ok: true, engine, ...parseVerdict(out) });
80
+ }
81
+ catch (e) {
82
+ fail(e.message);
83
+ }
84
+ });
85
+ });
86
+ }
87
+ /** Bloqueante: lê o plano, roda o engine pensante e devolve o veredito. `echo` streama log. */
88
+ export async function runValidatePlan(opts) {
89
+ const engine = opts.engine ?? PLAN_ENGINE;
90
+ let plan;
91
+ try {
92
+ plan = readPlan(opts.project);
93
+ }
94
+ catch {
95
+ return { ok: false, engine, error: planMissingError(opts.project) };
96
+ }
97
+ const bin = resolveEngineBin(engine);
98
+ if (!bin)
99
+ return { ok: false, engine, error: engineMissingError(engine) };
100
+ const result = await spawnValidate(bin, engine, buildValidatePrompt(plan), opts.project, opts.echo === true);
101
+ if (result.ok && result.needsSpec)
102
+ result.suggestedSlug = suggestSlug(plan);
103
+ return result;
104
+ }
105
+ //# sourceMappingURL=validate-plan-delegate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-plan-delegate.js","sourceRoot":"","sources":["../../src/lib/validate-plan-delegate.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import updateNotifier from 'update-notifier';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { dirname, join } from 'node:path';
5
+ import { brand } from '../brand.js';
5
6
  function loadPkg() {
6
7
  // Este módulo compila pra `dist/lib/version-check.js`, então o package.json fica
7
8
  // dois níveis acima (raiz do pacote). Mesmo truque do `packageRoot()` do cowork-extension.
@@ -77,8 +78,8 @@ export function notifyMcpServerIfUpdate() {
77
78
  const notifier = startVersionCheck();
78
79
  const update = notifier.update;
79
80
  if (update && update.latest !== update.current) {
80
- console.error(`[noclaf-cli] nova versão disponível: ${update.current} → ${update.latest}. ` +
81
- `Atualize com: npm i -g @noclaf/cli`);
81
+ console.error(`[${brand.mcpBinName}] nova versão disponível: ${update.current} → ${update.latest}. ` +
82
+ `Atualize com: npm i -g ${brand.packageName}`);
82
83
  }
83
84
  }
84
85
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"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"}
@@ -12,55 +12,88 @@ import { filterSkillsForSurface } from './lib/skills.js';
12
12
  import { loadSkills, skillResourceDescriptors, readSkillResource, skillPromptDescriptors, buildSkillPrompt, } from './lib/skill-serve.js';
13
13
  import { provision } from './lib/provision.js';
14
14
  import { provisionHooks } from './lib/hooks.js';
15
- import { claudeTarget, codexTarget } from './lib/targets.js';
15
+ import { claudeTarget } from './lib/targets.js';
16
16
  import { ensureSkillsCache } from './lib/skills-cache.js';
17
17
  import { track } from './lib/telemetry.js';
18
- async function main() {
19
- let projectConfig = null;
18
+ import { shouldRunAutoPull, pickProvisionTarget } from './lib/autopull.js';
19
+ import { brand, env } from './brand.js';
20
+ /** Carrega o config do projeto; erro de parse é degradado (log + null), nunca fatal. */
21
+ function loadConfigStep() {
20
22
  try {
21
- projectConfig = loadProjectConfig();
23
+ return loadProjectConfig();
22
24
  }
23
25
  catch (err) {
24
- console.error(`[noclaf-cli] noclaf.json inválido: ${err.message}`);
26
+ console.error(`[${brand.mcpBinName}] ${brand.projectConfigFile} inválido: ${err.message}`);
27
+ return null;
25
28
  }
26
- // Skills vêm de um repo aberto → garante o cache local (~/.noclaf/skills) antes
27
- // de servir/auto-pull. Baixa só se ausente; best-effort (offline → degrada).
29
+ }
30
+ // Skills vêm de um repo aberto → garante o cache local (~/.noclaf/skills) antes
31
+ // de servir/auto-pull. Baixa só se ausente; best-effort (offline → degrada).
32
+ async function initSkillsCache() {
28
33
  try {
29
34
  const r = await ensureSkillsCache();
30
35
  if (r.status === 'fetched') {
31
- console.error(`[noclaf-cli] skills baixadas (${r.repo}@${r.ref})`);
36
+ console.error(`[${brand.mcpBinName}] skills baixadas (${r.repo}@${r.ref})`);
32
37
  }
33
38
  else if (r.status === 'failed') {
34
- console.error(`[noclaf-cli] aviso: skills indisponíveis: ${r.error}`);
39
+ console.error(`[${brand.mcpBinName}] aviso: skills indisponíveis: ${r.error}`);
35
40
  }
36
41
  }
37
42
  catch (err) {
38
- console.error(`[noclaf-cli] aviso: cache de skills pulado: ${err.message}`);
43
+ console.error(`[${brand.mcpBinName}] aviso: cache de skills pulado: ${err.message}`);
39
44
  }
40
- let session = null;
45
+ }
46
+ async function authenticateSession() {
41
47
  try {
42
- session = await createAuthenticatedClient();
43
- console.error(`[noclaf-cli] autenticado como ${session.user.email}`);
48
+ const session = await createAuthenticatedClient();
49
+ console.error(`[${brand.mcpBinName}] autenticado como ${session.user.email}`);
50
+ return session;
44
51
  }
45
52
  catch (err) {
46
- console.error(`[noclaf-cli] aviso: ${err.message}`);
53
+ console.error(`[${brand.mcpBinName}] aviso: ${err.message}`);
54
+ return null;
47
55
  }
48
- const server = new Server({ name: 'noclaf-cli', version: VERSION }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
49
- // Surface deste worker (pra filtro de visibilidade `clients:`). Cowork seta
50
- // NOCLAF_CLIENT=cowork; Claude Code costuma deixar vazio → sem filtro (mostra tudo).
51
- const surface = process.env.NOCLAF_CLIENT || null;
56
+ }
57
+ /** Surface deste worker (pra filtro de visibilidade `clients:`). Cowork seta
58
+ * NOCLAF_CLIENT=cowork; Claude Code costuma deixar vazio → sem filtro (mostra tudo). */
59
+ function resolveSurface() {
60
+ return env('CLIENT') || null;
61
+ }
62
+ function registerToolHandlers(server, session, projectConfig) {
52
63
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
53
64
  tools: toolDefinitions,
54
65
  }));
55
- // Resources: o conhecimento (skills/commands/agents) do pacote @noclaf/skills.
56
- // Deixa o worker de IA ler os artefatos sob demanda, mesmo sem rodar `noclaf sync`.
66
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
67
+ const tool = tools[request.params.name];
68
+ if (!tool) {
69
+ return errorResult(`Tool desconhecida: ${request.params.name}`);
70
+ }
71
+ if (!session) {
72
+ return errorResult(`Não autenticado. Rode \`${brand.name} login\` antes de iniciar o Claude Code.`);
73
+ }
74
+ const ctx = {
75
+ supabase: session.supabase,
76
+ user: session.user,
77
+ config: projectConfig,
78
+ };
79
+ try {
80
+ return await tool.handler(request.params.arguments ?? {}, ctx);
81
+ }
82
+ catch (err) {
83
+ return errorResult(`Erro inesperado em ${request.params.name}: ${err.message}`);
84
+ }
85
+ });
86
+ }
87
+ // Resources: o conhecimento (skills/commands/agents) do pacote @noclaf/skills.
88
+ // Deixa o worker de IA ler os artefatos sob demanda, mesmo sem rodar `noclaf sync`.
89
+ function registerResourceHandlers(server, surface) {
57
90
  server.setRequestHandler(ListResourcesRequestSchema, async () => {
58
91
  try {
59
92
  const { docs } = loadSkills();
60
93
  return { resources: skillResourceDescriptors(filterSkillsForSurface(docs, surface)) };
61
94
  }
62
95
  catch (err) {
63
- console.error(`[noclaf-cli] aviso: skills indisponíveis: ${err.message}`);
96
+ console.error(`[${brand.mcpBinName}] aviso: skills indisponíveis: ${err.message}`);
64
97
  return { resources: [] };
65
98
  }
66
99
  });
@@ -69,15 +102,17 @@ async function main() {
69
102
  const r = readSkillResource(request.params.uri, filterSkillsForSurface(docs, surface), rawByPath);
70
103
  return { contents: [{ uri: r.uri, mimeType: r.mimeType, text: r.text }] };
71
104
  });
72
- // Prompts: commands/skills como prompts invocáveis. Funciona no Claude Code E no
73
- // Cowork (que não lê `~/.claude`) — é o caminho de slash-command lá.
105
+ }
106
+ // Prompts: commands/skills como prompts invocáveis. Funciona no Claude Code E no
107
+ // Cowork (que não lê `~/.claude`) — é o caminho de slash-command lá.
108
+ function registerPromptHandlers(server, surface, session) {
74
109
  server.setRequestHandler(ListPromptsRequestSchema, async () => {
75
110
  try {
76
111
  const { docs } = loadSkills();
77
112
  return { prompts: skillPromptDescriptors(filterSkillsForSurface(docs, surface)) };
78
113
  }
79
114
  catch (err) {
80
- console.error(`[noclaf-cli] aviso: prompts indisponíveis: ${err.message}`);
115
+ console.error(`[${brand.mcpBinName}] aviso: prompts indisponíveis: ${err.message}`);
81
116
  return { prompts: [] };
82
117
  }
83
118
  });
@@ -96,67 +131,60 @@ async function main() {
96
131
  messages: [{ role: 'user', content: { type: 'text', text } }],
97
132
  };
98
133
  });
99
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
100
- const tool = tools[request.params.name];
101
- if (!tool) {
102
- return errorResult(`Tool desconhecida: ${request.params.name}`);
103
- }
104
- if (!session) {
105
- return errorResult('Não autenticado. Rode `noclaf login` antes de iniciar o Claude Code.');
106
- }
107
- const ctx = {
108
- supabase: session.supabase,
109
- user: session.user,
110
- config: projectConfig,
111
- };
112
- try {
113
- return await tool.handler(request.params.arguments ?? {}, ctx);
114
- }
115
- catch (err) {
116
- return errorResult(`Erro inesperado em ${request.params.name}: ${err.message}`);
117
- }
134
+ }
135
+ // Hooks (só Claude Code): re-registra os gatilhos no settings.json.
136
+ function reinstallHooksIfClaude(target, projectConfig) {
137
+ if (target !== claudeTarget)
138
+ return;
139
+ const h = provisionHooks({
140
+ surface: claudeTarget.surface,
141
+ selection: projectConfig?.selection,
118
142
  });
143
+ if (h.installed.length > 0 || h.prunedScripts.length > 0) {
144
+ console.error(`[${brand.mcpBinName}] auto-pull: ${h.installed.length} hooks, ` +
145
+ `${h.prunedScripts.length} removidos em ${h.settingsPath}.`);
146
+ }
147
+ }
148
+ // Auto-pull: a cada start, refresca os arquivos nativos (idempotente via manifesto;
149
+ // desliga com NOCLAF_AUTO_PULL=0). No Cowork as skills chegam por resources/prompts,
150
+ // não por arquivo nativo — então pulamos.
151
+ async function runAutoPull(projectConfig) {
152
+ const client = env('CLIENT');
153
+ const autoPull = env('AUTO_PULL');
154
+ if (!shouldRunAutoPull(client, autoPull))
155
+ return;
156
+ const target = pickProvisionTarget(client);
157
+ try {
158
+ const result = provision({ target, selection: projectConfig?.selection });
159
+ const changed = result.files.filter((f) => f.action === 'create' || f.action === 'update');
160
+ const pruned = result.files.filter((f) => f.action === 'prune');
161
+ if (changed.length > 0 || pruned.length > 0) {
162
+ console.error(`[${brand.mcpBinName}] auto-pull: ${changed.length} atualizados, ` +
163
+ `${pruned.length} removidos em ${result.targetDir}. Reinicie o cliente pra carregar.`);
164
+ }
165
+ reinstallHooksIfClaude(target, projectConfig);
166
+ }
167
+ catch (err) {
168
+ console.error(`[${brand.mcpBinName}] auto-pull pulou: ${err.message}`);
169
+ }
170
+ }
171
+ async function main() {
172
+ const projectConfig = loadConfigStep();
173
+ await initSkillsCache();
174
+ const session = await authenticateSession();
175
+ const server = new Server({ name: brand.mcpBinName, version: VERSION }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
176
+ const surface = resolveSurface();
177
+ registerToolHandlers(server, session, projectConfig);
178
+ registerResourceHandlers(server, surface);
179
+ registerPromptHandlers(server, surface, session);
119
180
  notifyMcpServerIfUpdate();
120
181
  const transport = new StdioServerTransport();
121
182
  await server.connect(transport);
122
- console.error('[noclaf-cli] servidor iniciado (stdio)');
123
- // Auto-pull: a cada start, refresca os arquivos nativos (idempotente via manifesto;
124
- // desliga com NOCLAF_AUTO_PULL=0). No Cowork as skills chegam por resources/prompts,
125
- // não por arquivo nativo — então pulamos.
126
- const autoPull = process.env.NOCLAF_AUTO_PULL;
127
- const client = process.env.NOCLAF_CLIENT;
128
- const isCowork = client === 'cowork';
129
- if (!isCowork && autoPull !== '0' && autoPull !== 'false') {
130
- // Cliente nativo do worker: Codex escreve `~/.codex` (skills traduzidas),
131
- // qualquer outro cai pro Claude Code (`~/.claude`).
132
- const target = client === 'codex' ? codexTarget : claudeTarget;
133
- try {
134
- const result = provision({ target, selection: projectConfig?.selection });
135
- const changed = result.files.filter((f) => f.action === 'create' || f.action === 'update');
136
- const pruned = result.files.filter((f) => f.action === 'prune');
137
- if (changed.length > 0 || pruned.length > 0) {
138
- console.error(`[noclaf-cli] auto-pull: ${changed.length} atualizados, ` +
139
- `${pruned.length} removidos em ${result.targetDir}. Reinicie o cliente pra carregar.`);
140
- }
141
- // Hooks (só Claude Code): re-registra os gatilhos no settings.json.
142
- if (target === claudeTarget) {
143
- const h = provisionHooks({
144
- surface: claudeTarget.surface,
145
- selection: projectConfig?.selection,
146
- });
147
- if (h.installed.length > 0 || h.prunedScripts.length > 0) {
148
- console.error(`[noclaf-cli] auto-pull: ${h.installed.length} hooks, ` +
149
- `${h.prunedScripts.length} removidos em ${h.settingsPath}.`);
150
- }
151
- }
152
- }
153
- catch (err) {
154
- console.error(`[noclaf-cli] auto-pull pulou: ${err.message}`);
155
- }
156
- }
183
+ console.error(`[${brand.mcpBinName}] servidor iniciado (stdio)`);
184
+ await runAutoPull(projectConfig);
157
185
  }
158
186
  main().catch((err) => {
159
- console.error(`[noclaf-cli] erro fatal: ${err.message}`);
187
+ console.error(`[${brand.mcpBinName}] erro fatal: ${err.message}`);
160
188
  process.exit(1);
161
189
  });
162
190
  //# sourceMappingURL=mcp-server.js.map