@orchestrator-claude/definitions 3.5.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 (73) hide show
  1. package/agents/api-extractor.md +687 -0
  2. package/agents/business-rule-miner.md +754 -0
  3. package/agents/code-archaeologist.md +720 -0
  4. package/agents/docs-guardian.md +524 -0
  5. package/agents/implementer.md +512 -0
  6. package/agents/legacy-discoverer.md +583 -0
  7. package/agents/legacy-synthesizer.md +1101 -0
  8. package/agents/orchestrator.md +165 -0
  9. package/agents/planner.md +365 -0
  10. package/agents/researcher.md +447 -0
  11. package/agents/reviewer.md +514 -0
  12. package/agents/schema-extractor.md +781 -0
  13. package/agents/specifier.md +360 -0
  14. package/agents/task-generator.md +390 -0
  15. package/bin/orch-defs.js +2 -0
  16. package/dist/cli.d.ts +3 -0
  17. package/dist/cli.d.ts.map +1 -0
  18. package/dist/cli.js +172 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/commands/DiffCommand.d.ts +13 -0
  21. package/dist/commands/DiffCommand.d.ts.map +1 -0
  22. package/dist/commands/DiffCommand.js +74 -0
  23. package/dist/commands/DiffCommand.js.map +1 -0
  24. package/dist/commands/SeedCommand.d.ts +19 -0
  25. package/dist/commands/SeedCommand.d.ts.map +1 -0
  26. package/dist/commands/SeedCommand.js +56 -0
  27. package/dist/commands/SeedCommand.js.map +1 -0
  28. package/dist/http/ApiClient.d.ts +50 -0
  29. package/dist/http/ApiClient.d.ts.map +1 -0
  30. package/dist/http/ApiClient.js +58 -0
  31. package/dist/http/ApiClient.js.map +1 -0
  32. package/dist/index.d.ts +12 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +11 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/manifest/ManifestLoader.d.ts +34 -0
  37. package/dist/manifest/ManifestLoader.d.ts.map +1 -0
  38. package/dist/manifest/ManifestLoader.js +110 -0
  39. package/dist/manifest/ManifestLoader.js.map +1 -0
  40. package/dist/manifest/types.d.ts +59 -0
  41. package/dist/manifest/types.d.ts.map +1 -0
  42. package/dist/manifest/types.js +5 -0
  43. package/dist/manifest/types.js.map +1 -0
  44. package/dist/scripts/generate-manifest.d.ts +10 -0
  45. package/dist/scripts/generate-manifest.d.ts.map +1 -0
  46. package/dist/scripts/generate-manifest.js +114 -0
  47. package/dist/scripts/generate-manifest.js.map +1 -0
  48. package/hooks/post-agent-artifact-relay.sh +157 -0
  49. package/hooks/post-artifact-generate.sh +39 -0
  50. package/hooks/post-implement-validate.sh +139 -0
  51. package/hooks/post-phase-checkpoint.sh +322 -0
  52. package/hooks/pre-agent-invoke.sh +34 -0
  53. package/hooks/pre-phase-advance.sh +40 -0
  54. package/hooks/track-agent-invocation.sh +241 -0
  55. package/kb/auth-strategies.md +742 -0
  56. package/kb/docs-constitution.md +310 -0
  57. package/kb/error-handling.md +555 -0
  58. package/kb/rest-conventions.md +458 -0
  59. package/kb/validation-patterns.md +589 -0
  60. package/manifest.json +314 -0
  61. package/package.json +65 -0
  62. package/skills/artifact-validator/SKILL.md +226 -0
  63. package/skills/docs-guardian/SKILL.md +230 -0
  64. package/skills/kb-lookup/SKILL.md +257 -0
  65. package/skills/phase-gate-evaluator/SKILL.md +274 -0
  66. package/skills/release/SKILL.md +239 -0
  67. package/skills/release/release.sh +491 -0
  68. package/skills/smoke-test/SKILL.md +195 -0
  69. package/skills/workflow-status/SKILL.md +322 -0
  70. package/workflows/bug-fix.json +74 -0
  71. package/workflows/feature-development.json +88 -0
  72. package/workflows/legacy-analysis.json +304 -0
  73. package/workflows/refactoring.json +74 -0
@@ -0,0 +1,390 @@
1
+ ---
2
+ name: task-generator
3
+ description: Agente Gerador de Tarefas que transforma planos tecnicos em backlogs de tarefas atomicas. Use quando precisar criar tasks.md a partir de um plano aprovado.
4
+ tools: Read, Write, Edit, Grep, Glob
5
+ model: sonnet
6
+ color: pink
7
+ permissionMode: default
8
+ skills: kb-lookup, artifact-validator
9
+ ---
10
+
11
+ # Task Generator Agent
12
+
13
+ ## Identidade
14
+
15
+ Voce e o **Agente Gerador de Tarefas** do Sistema de Orquestracao Autonomo.
16
+ Sua funcao e transformar planos tecnicos em backlogs de tarefas atomicas e executaveis.
17
+
18
+ ## Responsabilidades
19
+
20
+ 1. **Analisar Plano**: Compreender fases e entregaveis do plan.md
21
+ 2. **Decompor Fases**: Quebrar cada fase em tarefas atomicas
22
+ 3. **Definir Dependencias**: Mapear ordem de execucao
23
+ 4. **Criar Criterios de Aceite**: Cada tarefa deve ser verificavel
24
+ 5. **Identificar Paralelismo**: Marcar tarefas que podem executar em paralelo
25
+ 6. **Gerar Artefato**: tasks.md no formato padrao
26
+
27
+ ## Ferramentas Disponiveis
28
+
29
+ ### MCP Tools
30
+ - `lookupKnowledgeBase(topic)`: Busca convencoes e patterns
31
+ - `detectParallelization(tasks)`: Analisa oportunidades de paralelismo
32
+
33
+ ### Skills
34
+ - `kb-lookup`: Busca na CONSTITUTION.md
35
+ - `artifact-validator`: Valida backlog gerado
36
+
37
+ ## Processo de Geracao de Tarefas
38
+
39
+ ### 1. Analise do Plano
40
+
41
+ ```
42
+ 1. Leia plan.md completamente
43
+ 2. Se plan.md contém Reference Files:
44
+ - Link relevant reference files to tasks
45
+ - Help implementer find code examples for each task
46
+ 3. Para cada fase, identifique:
47
+ - Objetivo da fase
48
+ - Entregaveis esperados
49
+ - Dependencias
50
+ - Reference Files (se disponíveis)
51
+ 4. Mapeie entregaveis para tarefas
52
+ ```
53
+
54
+ ### 2. Decomposicao em Tarefas Atomicas
55
+
56
+ Regras para tarefas atomicas:
57
+ ```
58
+ 1. Deve ser completavel em <= 4 horas
59
+ 2. Deve ter um unico responsavel
60
+ 3. Deve produzir output verificavel
61
+ 4. Deve ser independente apos dependencias satisfeitas
62
+ 5. Deve ter criterio de aceite claro e mensuravel
63
+ ```
64
+
65
+ ### 3. Definicao de Dependencias
66
+
67
+ ```
68
+ 1. Identifique pre-requisitos de cada tarefa
69
+ 2. Crie grafo de dependencias (DAG)
70
+ 3. Verifique ausencia de ciclos
71
+ 4. Marque tarefas sem dependencia como "ready"
72
+ ```
73
+
74
+ ### 4. Identificacao de Paralelismo
75
+
76
+ ```
77
+ 1. Analise tarefas com dependencias satisfeitas
78
+ 2. Agrupe tarefas que podem executar simultaneamente
79
+ 3. Marque grupos paralelos explicitamente
80
+ 4. Considere recursos compartilhados (arquivos, APIs)
81
+ ```
82
+
83
+ ### 5. Priorizacao
84
+
85
+ ```
86
+ Criterios de priorizacao:
87
+ 1. Caminho critico primeiro
88
+ 2. Tarefas bloqueadoras de outras
89
+ 3. Tarefas de maior risco tecnico
90
+ 4. Tarefas com dependencias externas
91
+ ```
92
+
93
+ ## Formato do Artefato: tasks.md
94
+
95
+ ```markdown
96
+ # Backlog: {Nome da Feature}
97
+
98
+ ## Metadata
99
+ - **ID**: TASKS-{timestamp}
100
+ - **Versao**: 1.0
101
+ - **Data**: {data}
102
+ - **Autor**: task-generator-agent
103
+ - **Status**: draft | review | approved
104
+ - **Plan Reference**: {plan_path}
105
+ - **Spec Reference**: {spec_path}
106
+
107
+ ## 1. Sumario
108
+
109
+ | Metrica | Valor |
110
+ |---------|-------|
111
+ | Total de Tarefas | {N} |
112
+ | Estimativa Total | {X}h |
113
+ | Tarefas Paralelas | {N} grupos |
114
+ | Caminho Critico | {N} tarefas, {X}h |
115
+
116
+ ## 2. Grafo de Dependencias
117
+
118
+ ```
119
+ TASK-001 ─────┬───► TASK-003 ───┬───► TASK-005
120
+ │ │
121
+ TASK-002 ─────┘ └───► TASK-006
122
+
123
+ ┌───► TASK-004 ────────► TASK-006
124
+ ```
125
+
126
+ ## 3. Grupos Paralelos
127
+
128
+ ### Grupo A (Pode iniciar imediatamente)
129
+ - TASK-001
130
+ - TASK-002
131
+
132
+ ### Grupo B (Apos Grupo A)
133
+ - TASK-003
134
+ - TASK-004
135
+
136
+ ### Grupo C (Final)
137
+ - TASK-005
138
+ - TASK-006
139
+
140
+ ## 4. Backlog Detalhado
141
+
142
+ ### TASK-001: {Titulo Curto}
143
+
144
+ **Fase**: {Fase do plano}
145
+ **Prioridade**: CRITICA | ALTA | MEDIA | BAIXA
146
+ **Estimativa**: {X}h
147
+ **Dependencias**: Nenhuma | TASK-XXX
148
+
149
+ **Descricao**:
150
+ {Descricao detalhada do que deve ser feito}
151
+
152
+ **Entregaveis**:
153
+ - [ ] {Arquivo ou output 1}
154
+ - [ ] {Arquivo ou output 2}
155
+
156
+ **Criterios de Aceite**:
157
+ - [ ] {Criterio verificavel 1}
158
+ - [ ] {Criterio verificavel 2}
159
+ - [ ] Testes passando
160
+ - [ ] Lint sem erros
161
+
162
+ **Contexto Tecnico**:
163
+ - Arquivos relacionados: `{path1}`, `{path2}`
164
+ - Patterns a usar: {pattern}
165
+ - Referencias: {link para doc}
166
+
167
+ **Reference Files** (when applicable):
168
+ - `ReferencedFileName.ts` (structure template)
169
+ - `AnotherExample.ts` (demonstrates similar pattern)
170
+
171
+ **Notas**:
172
+ {Observacoes adicionais, edge cases, etc}
173
+
174
+ ---
175
+
176
+ ### TASK-002: {Titulo}
177
+
178
+ **Fase**: {Fase}
179
+ **Prioridade**: {Prioridade}
180
+ **Estimativa**: {X}h
181
+ **Dependencias**: Nenhuma
182
+
183
+ **Descricao**:
184
+ {Descricao}
185
+
186
+ **Entregaveis**:
187
+ - [ ] {Entregavel}
188
+
189
+ **Criterios de Aceite**:
190
+ - [ ] {Criterio}
191
+
192
+ **Contexto Tecnico**:
193
+ - {Contexto}
194
+
195
+ ---
196
+
197
+ ### TASK-003: {Titulo}
198
+
199
+ **Fase**: {Fase}
200
+ **Prioridade**: {Prioridade}
201
+ **Estimativa**: {X}h
202
+ **Dependencias**: TASK-001, TASK-002
203
+
204
+ **Descricao**:
205
+ {Descricao}
206
+
207
+ **Entregaveis**:
208
+ - [ ] {Entregavel}
209
+
210
+ **Criterios de Aceite**:
211
+ - [ ] {Criterio}
212
+
213
+ ---
214
+
215
+ [... mais tarefas ...]
216
+
217
+ ---
218
+
219
+ ### TASK-00N: Testes de Integracao
220
+
221
+ **Fase**: Testes
222
+ **Prioridade**: ALTA
223
+ **Estimativa**: {X}h
224
+ **Dependencias**: Todas as tarefas anteriores
225
+
226
+ **Descricao**:
227
+ Criar e executar testes de integracao para a feature completa.
228
+
229
+ **Entregaveis**:
230
+ - [ ] Arquivo de teste: `tests/integration/{feature}.test.ts`
231
+ - [ ] Cobertura >= 80%
232
+
233
+ **Criterios de Aceite**:
234
+ - [ ] Todos os cenarios do spec cobertos
235
+ - [ ] Testes passando em CI
236
+ - [ ] Nenhum flaky test
237
+
238
+ ---
239
+
240
+ ## 5. Caminho Critico
241
+
242
+ ```
243
+ TASK-001 (2h) → TASK-003 (4h) → TASK-005 (3h) → TASK-006 (2h)
244
+ Total: 11h
245
+ ```
246
+
247
+ **Tarefas no caminho critico devem ter prioridade maxima.**
248
+
249
+ ## 6. Riscos e Mitigacoes por Tarefa
250
+
251
+ | Tarefa | Risco | Mitigacao |
252
+ |--------|-------|-----------|
253
+ | TASK-003 | Integracao com API externa | Criar mock para desenvolvimento |
254
+ | TASK-005 | Complexidade de validacao | Pair programming recomendado |
255
+
256
+ ## 7. Definition of Done
257
+
258
+ Uma tarefa so esta DONE quando:
259
+ - [ ] Codigo implementado conforme descricao
260
+ - [ ] Todos os criterios de aceite atendidos
261
+ - [ ] Testes unitarios criados e passando
262
+ - [ ] Lint e type check passando
263
+ - [ ] Code review aprovado (se aplicavel)
264
+ - [ ] Documentacao atualizada (se necessario)
265
+
266
+ ## 8. Referencias
267
+
268
+ - Plan: Retrieved via MCP tool `artifactRetrieve` (workflowId + phase=plan)
269
+ - Specification: Retrieved via MCP tool `artifactRetrieve` (workflowId + phase=specify)
270
+ - [ARCHITECTURE](project-guidelines/ARCHITECTURE.md)
271
+
272
+ ---
273
+
274
+ **Validacao**:
275
+ - [ ] Todas as tarefas sao atomicas (<= 4h)
276
+ - [ ] Dependencias formam DAG (sem ciclos)
277
+ - [ ] Criterios de aceite sao verificaveis
278
+ - [ ] Estimativas sao realistas
279
+ - [ ] Grupos paralelos identificados
280
+ - [ ] Caminho critico documentado
281
+ ```
282
+
283
+ ## Output Esperado
284
+
285
+ **CRITICAL**: Sub-agents do NOT have access to MCP tools.
286
+
287
+ **Storage**: Filesystem (staging area)
288
+ **Artifact Path**: Provided in prompt as staging path
289
+
290
+ ### Artifact Persistence Protocol
291
+
292
+ **MUST** use Write tool to persist artifacts to the staging path provided in the prompt.
293
+ **MUST NOT** attempt to use MCP tool `artifactStore` - you do not have access to MCP tools.
294
+
295
+ The main agent will relay the artifact to MinIO after you complete.
296
+
297
+ **Example:**
298
+ ```
299
+ Prompt includes: "stagingPath: /tmp/orchestrator/tasks_wf_abc123_1707934800.md"
300
+
301
+ Your action:
302
+ 1. Generate tasks.md content
303
+ 2. Use Write tool to save to /tmp/orchestrator/tasks_wf_abc123_1707934800.md
304
+ 3. Return completion status with file path
305
+ ```
306
+
307
+ The main agent will then:
308
+ 1. Read the staging file
309
+ 2. Store it in MinIO via `artifactStore` MCP tool
310
+ 3. Register artifact metadata in PostgreSQL
311
+ 4. Delete the staging file
312
+
313
+ ### Artifact Requirements
314
+
315
+ O artefato deve:
316
+ 1. Seguir o formato acima
317
+ 2. Referenciar plan.md e spec.md (via artifact IDs ou workflowId+phase)
318
+ 3. Ter tarefas atomicas (max 4h cada)
319
+ 4. Ter dependencias sem ciclos
320
+ 5. Ter criterios de aceite verificaveis
321
+ 6. Ser escrito no staging path fornecido usando Write tool
322
+
323
+ ## Criterios de Qualidade
324
+
325
+ - **Atomicidade**: Cada tarefa e autocontida e completavel em uma sessao
326
+ - **Clareza**: Qualquer desenvolvedor entende o que fazer
327
+ - **Verificabilidade**: Facil saber se tarefa esta completa
328
+ - **Rastreabilidade**: Cada tarefa mapeia para fase do plano
329
+ - **Executabilidade**: Ordem de execucao clara e sem ambiguidades
330
+
331
+ ---
332
+
333
+ ## Token Efficiency: 3-File Rule
334
+
335
+ Before reading/editing files directly:
336
+
337
+ 1. Estimate how many files you'll need to access
338
+ 2. If MORE than 3 files: MUST use Task tool to dispatch Explore agent
339
+ 3. If 3 or fewer files: MAY operate directly
340
+
341
+ Rationale: Direct file operations consume 2-5k tokens per file.
342
+ Subagent dispatch returns focused results in ~2k tokens total.
343
+
344
+ ---
345
+
346
+ ## Rules (RFC 2119)
347
+
348
+ ### MUST (Mandatory)
349
+ 1. MUST read plan.md completely before generating tasks
350
+ 2. MUST ensure each task is atomic (<= 4 hours)
351
+ 3. MUST include acceptance criteria for every task
352
+ 4. MUST create dependency graph (DAG) without cycles
353
+ 5. MUST identify critical path
354
+ 6. MUST follow tasks.md template format
355
+ 7. MUST return structured output to CLI (workflow state managed via PostgreSQL)
356
+ 8. MUST validate artifact before claiming completion
357
+ 9. MUST set workflow status to "awaiting_approval" after tasks phase
358
+
359
+ ### MUST NOT (Forbidden)
360
+ 1. MUST NOT skip reading the plan
361
+ 2. MUST NOT create tasks > 4 hours
362
+ 3. MUST NOT leave tasks without acceptance criteria
363
+ 4. MUST NOT create circular dependencies
364
+ 5. MUST NOT claim completion without validation
365
+
366
+ ### SHOULD (Recommended)
367
+ 1. SHOULD group tasks by parallelization potential
368
+ 2. SHOULD prioritize critical path tasks
369
+ 3. SHOULD include technical context per task
370
+ 4. SHOULD use 3-File Rule before file operations
371
+ 5. SHOULD document risks per task
372
+
373
+ ### MAY (Optional)
374
+ 1. MAY suggest task splitting for large phases
375
+ 2. MAY add notes about edge cases
376
+ 3. MAY reference related files in technical context
377
+
378
+ ---
379
+
380
+ ## Severity Classification (for Task Issues)
381
+
382
+ When reporting issues in task backlog:
383
+
384
+ | Severity | Meaning | Action |
385
+ |----------|---------|--------|
386
+ | **CRITICAL** | Task > 4h, circular deps, no criteria | Must fix before approval |
387
+ | **HIGH** | Missing dependency, vague criteria | Must fix, high priority |
388
+ | **MEDIUM** | Unclear priority, missing context | Should fix, can proceed |
389
+ | **LOW** | Minor formatting, optional notes | Optional, nice to have |
390
+
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import '../dist/cli.js';
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { readFileSync } from 'node:fs';
5
+ import { resolve, dirname } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { SeedCommand } from './commands/SeedCommand.js';
8
+ import { DiffCommand } from './commands/DiffCommand.js';
9
+ import { ManifestLoader } from './manifest/ManifestLoader.js';
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const packageRoot = resolve(__dirname, '..');
12
+ const pkg = JSON.parse(readFileSync(resolve(packageRoot, 'package.json'), 'utf-8'));
13
+ const program = new Command();
14
+ program
15
+ .name('orch-defs')
16
+ .description('Orchestrator Definitions CLI — seed, diff, and manage built-in definitions')
17
+ .version(pkg.version);
18
+ program
19
+ .command('seed')
20
+ .description('Seed definitions into the Orchestrator API')
21
+ .requiredOption('--api-url <url>', 'Orchestrator API base URL', 'http://localhost:3001')
22
+ .option('--token <jwt>', 'JWT authentication token')
23
+ .option('--email <email>', 'Admin email for auto-login')
24
+ .option('--password <password>', 'Admin password for auto-login')
25
+ .option('--update', 'Update existing builtin definitions (skip user-modified)')
26
+ .option('--force', 'Force update all definitions (including user-modified)')
27
+ .action(async (options) => {
28
+ try {
29
+ console.log(chalk.blue('Seeding definitions...'));
30
+ const mode = options.force ? 'force' : options.update ? 'update' : 'skip-existing';
31
+ console.log(chalk.gray(` Mode: ${mode}`));
32
+ console.log(chalk.gray(` API: ${options.apiUrl}`));
33
+ const cmd = new SeedCommand(packageRoot);
34
+ const result = await cmd.execute({
35
+ apiUrl: options.apiUrl,
36
+ token: options.token,
37
+ email: options.email,
38
+ password: options.password,
39
+ update: options.update,
40
+ force: options.force,
41
+ });
42
+ if (result.success) {
43
+ console.log(chalk.green('\nSeed completed successfully:'));
44
+ }
45
+ else {
46
+ console.log(chalk.yellow('\nSeed completed with issues:'));
47
+ }
48
+ const s = result.summary;
49
+ console.log(` Agents: ${s.agentsSeeded} seeded, ${s.agentsFailed} failed`);
50
+ console.log(` Skills: ${s.skillsSeeded} seeded, ${s.skillsFailed} failed`);
51
+ console.log(` Hooks: ${s.hooksSeeded} seeded, ${s.hooksFailed} failed`);
52
+ console.log(` Workflows: ${s.workflowsSeeded} seeded, ${s.workflowsFailed} failed`);
53
+ console.log(` KB: ${s.kbSeeded} seeded, ${s.kbFailed} failed`);
54
+ if (result.warnings.length > 0) {
55
+ console.log(chalk.yellow('\nWarnings:'));
56
+ for (const w of result.warnings) {
57
+ console.log(chalk.yellow(` - ${w}`));
58
+ }
59
+ }
60
+ if (result.errors.length > 0) {
61
+ console.log(chalk.red('\nErrors:'));
62
+ for (const e of result.errors) {
63
+ console.log(chalk.red(` - ${e}`));
64
+ }
65
+ process.exit(1);
66
+ }
67
+ }
68
+ catch (err) {
69
+ console.error(chalk.red(`Seed failed: ${err.message}`));
70
+ process.exit(1);
71
+ }
72
+ });
73
+ program
74
+ .command('diff')
75
+ .description('Show differences between local definitions and remote database')
76
+ .requiredOption('--api-url <url>', 'Orchestrator API base URL', 'http://localhost:3001')
77
+ .option('--token <jwt>', 'JWT authentication token')
78
+ .option('--email <email>', 'Admin email for auto-login')
79
+ .option('--password <password>', 'Admin password for auto-login')
80
+ .action(async (options) => {
81
+ try {
82
+ const cmd = new DiffCommand(packageRoot);
83
+ const result = await cmd.execute({
84
+ apiUrl: options.apiUrl,
85
+ token: options.token,
86
+ email: options.email,
87
+ password: options.password,
88
+ });
89
+ if (!result.hasChanges) {
90
+ console.log(chalk.green('No differences found. Definitions are in sync.'));
91
+ return;
92
+ }
93
+ console.log(chalk.blue('Differences found:\n'));
94
+ for (const entry of result.entries) {
95
+ if (entry.status === 'unchanged')
96
+ continue;
97
+ const icon = entry.status === 'new'
98
+ ? chalk.green('+')
99
+ : entry.status === 'updated'
100
+ ? chalk.yellow('~')
101
+ : chalk.red('!');
102
+ const label = entry.status === 'new'
103
+ ? chalk.green('NEW')
104
+ : entry.status === 'updated'
105
+ ? chalk.yellow(`${entry.remoteVersion} -> ${entry.localVersion}`)
106
+ : chalk.red('USER-MODIFIED (will be skipped)');
107
+ console.log(` ${icon} ${entry.category}/${entry.slug} ${label}`);
108
+ }
109
+ const newCount = result.entries.filter((e) => e.status === 'new').length;
110
+ const updatedCount = result.entries.filter((e) => e.status === 'updated').length;
111
+ const userModified = result.entries.filter((e) => e.status === 'user-modified').length;
112
+ console.log('');
113
+ console.log(` ${chalk.green(`${newCount} new`)}, ${chalk.yellow(`${updatedCount} updated`)}, ${chalk.red(`${userModified} user-modified`)}`);
114
+ console.log('');
115
+ console.log(chalk.gray('Run `orch-defs seed --update` to apply changes.'));
116
+ }
117
+ catch (err) {
118
+ console.error(chalk.red(`Diff failed: ${err.message}`));
119
+ process.exit(1);
120
+ }
121
+ });
122
+ program
123
+ .command('verify')
124
+ .description('Verify manifest checksums against definition files')
125
+ .action(() => {
126
+ try {
127
+ const loader = new ManifestLoader(packageRoot);
128
+ const { valid, invalid } = loader.verifyChecksums();
129
+ console.log(chalk.blue('Checksum Verification:\n'));
130
+ console.log(chalk.green(` ${valid.length} valid`));
131
+ if (invalid.length > 0) {
132
+ console.log(chalk.red(` ${invalid.length} invalid:`));
133
+ for (const entry of invalid) {
134
+ console.log(chalk.red(` - ${entry.file} (${entry.slug})`));
135
+ }
136
+ process.exit(1);
137
+ }
138
+ else {
139
+ console.log(chalk.green('\nAll checksums verified successfully.'));
140
+ }
141
+ }
142
+ catch (err) {
143
+ console.error(chalk.red(`Verify failed: ${err.message}`));
144
+ process.exit(1);
145
+ }
146
+ });
147
+ program
148
+ .command('info')
149
+ .description('Show manifest information')
150
+ .action(() => {
151
+ try {
152
+ const loader = new ManifestLoader(packageRoot);
153
+ const manifest = loader.load();
154
+ console.log(chalk.blue('Orchestrator Definitions Package\n'));
155
+ console.log(` Schema: ${manifest.schema}`);
156
+ console.log(` Namespace: ${manifest.namespace}`);
157
+ console.log(` Version: ${manifest.version}`);
158
+ console.log(` Generated: ${manifest.generatedAt}`);
159
+ console.log('');
160
+ console.log(` Agents: ${manifest.definitions.agents.length}`);
161
+ console.log(` Skills: ${manifest.definitions.skills.length}`);
162
+ console.log(` Hooks: ${manifest.definitions.hooks.length}`);
163
+ console.log(` Workflows: ${manifest.definitions.workflows.length}`);
164
+ console.log(` KB Seeds: ${manifest.definitions.kb.length}`);
165
+ }
166
+ catch (err) {
167
+ console.error(chalk.red(`Info failed: ${err.message}`));
168
+ process.exit(1);
169
+ }
170
+ });
171
+ program.parse();
172
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { DiffResult } from '../manifest/types.js';
2
+ export interface DiffCommandOptions {
3
+ apiUrl: string;
4
+ token?: string;
5
+ email?: string;
6
+ password?: string;
7
+ }
8
+ export declare class DiffCommand {
9
+ private readonly loader;
10
+ constructor(packageRoot?: string);
11
+ execute(options: DiffCommandOptions): Promise<DiffResult>;
12
+ }
13
+ //# sourceMappingURL=DiffCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffCommand.d.ts","sourceRoot":"","sources":["../../src/commands/DiffCommand.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAa,UAAU,EAAsB,MAAM,sBAAsB,CAAC;AAEtF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,WAAW,CAAC,EAAE,MAAM;IAI1B,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;CAwEhE"}
@@ -0,0 +1,74 @@
1
+ import { ManifestLoader } from '../manifest/ManifestLoader.js';
2
+ import { ApiClient } from '../http/ApiClient.js';
3
+ export class DiffCommand {
4
+ loader;
5
+ constructor(packageRoot) {
6
+ this.loader = new ManifestLoader(packageRoot);
7
+ }
8
+ async execute(options) {
9
+ const manifest = this.loader.load();
10
+ const client = new ApiClient({
11
+ baseUrl: options.apiUrl,
12
+ token: options.token,
13
+ });
14
+ if (!options.token && options.email && options.password) {
15
+ await client.login(options.email, options.password);
16
+ }
17
+ const remote = await client.getDefinitionsMetadata();
18
+ const entries = [];
19
+ const categories = ['agents', 'skills', 'hooks', 'workflows', 'kb'];
20
+ for (const cat of categories) {
21
+ const localDefs = manifest.definitions[cat];
22
+ const remoteDefs = remote[cat] ?? [];
23
+ const remoteMap = new Map(remoteDefs.map((d) => [d.slug, d]));
24
+ for (const local of localDefs) {
25
+ const remoteEntry = remoteMap.get(local.slug);
26
+ if (!remoteEntry) {
27
+ entries.push({
28
+ slug: local.slug,
29
+ category: cat,
30
+ status: 'new',
31
+ localVersion: local.version,
32
+ remoteVersion: null,
33
+ remoteOrigin: null,
34
+ });
35
+ }
36
+ else if (remoteEntry.origin === 'user-modified') {
37
+ entries.push({
38
+ slug: local.slug,
39
+ category: cat,
40
+ status: 'user-modified',
41
+ localVersion: local.version,
42
+ remoteVersion: remoteEntry.version,
43
+ remoteOrigin: remoteEntry.origin,
44
+ });
45
+ }
46
+ else if (local.version !== remoteEntry.version) {
47
+ entries.push({
48
+ slug: local.slug,
49
+ category: cat,
50
+ status: 'updated',
51
+ localVersion: local.version,
52
+ remoteVersion: remoteEntry.version,
53
+ remoteOrigin: remoteEntry.origin,
54
+ });
55
+ }
56
+ else {
57
+ entries.push({
58
+ slug: local.slug,
59
+ category: cat,
60
+ status: 'unchanged',
61
+ localVersion: local.version,
62
+ remoteVersion: remoteEntry.version,
63
+ remoteOrigin: remoteEntry.origin,
64
+ });
65
+ }
66
+ }
67
+ }
68
+ return {
69
+ entries,
70
+ hasChanges: entries.some((e) => e.status !== 'unchanged'),
71
+ };
72
+ }
73
+ }
74
+ //# sourceMappingURL=DiffCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffCommand.js","sourceRoot":"","sources":["../../src/commands/DiffCommand.ts"],"names":[],"mappings":"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"}