@rengler33/prov 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +314 -0
- package/dist/cli.d.ts +26 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +381 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agent.d.ts +107 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +197 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/agent.test.d.ts +5 -0
- package/dist/commands/agent.test.d.ts.map +1 -0
- package/dist/commands/agent.test.js +199 -0
- package/dist/commands/agent.test.js.map +1 -0
- package/dist/commands/constraint.d.ts +100 -0
- package/dist/commands/constraint.d.ts.map +1 -0
- package/dist/commands/constraint.js +763 -0
- package/dist/commands/constraint.js.map +1 -0
- package/dist/commands/constraint.test.d.ts +9 -0
- package/dist/commands/constraint.test.d.ts.map +1 -0
- package/dist/commands/constraint.test.js +470 -0
- package/dist/commands/constraint.test.js.map +1 -0
- package/dist/commands/graph.d.ts +99 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +552 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/graph.test.d.ts +2 -0
- package/dist/commands/graph.test.d.ts.map +1 -0
- package/dist/commands/graph.test.js +258 -0
- package/dist/commands/graph.test.js.map +1 -0
- package/dist/commands/impact.d.ts +83 -0
- package/dist/commands/impact.d.ts.map +1 -0
- package/dist/commands/impact.js +319 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/impact.test.d.ts +2 -0
- package/dist/commands/impact.test.d.ts.map +1 -0
- package/dist/commands/impact.test.js +234 -0
- package/dist/commands/impact.test.js.map +1 -0
- package/dist/commands/init.d.ts +45 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +94 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/init.test.d.ts +7 -0
- package/dist/commands/init.test.d.ts.map +1 -0
- package/dist/commands/init.test.js +174 -0
- package/dist/commands/init.test.js.map +1 -0
- package/dist/commands/integration.test.d.ts +10 -0
- package/dist/commands/integration.test.d.ts.map +1 -0
- package/dist/commands/integration.test.js +456 -0
- package/dist/commands/integration.test.js.map +1 -0
- package/dist/commands/mcp.d.ts +21 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +616 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/mcp.test.d.ts +7 -0
- package/dist/commands/mcp.test.d.ts.map +1 -0
- package/dist/commands/mcp.test.js +132 -0
- package/dist/commands/mcp.test.js.map +1 -0
- package/dist/commands/plan.d.ts +218 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +1307 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/plan.test.d.ts +9 -0
- package/dist/commands/plan.test.d.ts.map +1 -0
- package/dist/commands/plan.test.js +569 -0
- package/dist/commands/plan.test.js.map +1 -0
- package/dist/commands/spec.d.ts +94 -0
- package/dist/commands/spec.d.ts.map +1 -0
- package/dist/commands/spec.js +635 -0
- package/dist/commands/spec.js.map +1 -0
- package/dist/commands/spec.test.d.ts +9 -0
- package/dist/commands/spec.test.d.ts.map +1 -0
- package/dist/commands/spec.test.js +407 -0
- package/dist/commands/spec.test.js.map +1 -0
- package/dist/commands/trace.d.ts +157 -0
- package/dist/commands/trace.d.ts.map +1 -0
- package/dist/commands/trace.js +847 -0
- package/dist/commands/trace.js.map +1 -0
- package/dist/commands/trace.test.d.ts +9 -0
- package/dist/commands/trace.test.d.ts.map +1 -0
- package/dist/commands/trace.test.js +524 -0
- package/dist/commands/trace.test.js.map +1 -0
- package/dist/graph.d.ts +204 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +496 -0
- package/dist/graph.js.map +1 -0
- package/dist/graph.test.d.ts +2 -0
- package/dist/graph.test.d.ts.map +1 -0
- package/dist/graph.test.js +382 -0
- package/dist/graph.test.js.map +1 -0
- package/dist/hash.d.ts +72 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +137 -0
- package/dist/hash.js.map +1 -0
- package/dist/hash.test.d.ts +2 -0
- package/dist/hash.test.d.ts.map +1 -0
- package/dist/hash.test.js +227 -0
- package/dist/hash.test.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +11 -0
- package/dist/index.test.js.map +1 -0
- package/dist/output.d.ts +84 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +175 -0
- package/dist/output.js.map +1 -0
- package/dist/output.test.d.ts +7 -0
- package/dist/output.test.d.ts.map +1 -0
- package/dist/output.test.js +146 -0
- package/dist/output.test.js.map +1 -0
- package/dist/staleness.d.ts +162 -0
- package/dist/staleness.d.ts.map +1 -0
- package/dist/staleness.js +309 -0
- package/dist/staleness.js.map +1 -0
- package/dist/staleness.test.d.ts +2 -0
- package/dist/staleness.test.d.ts.map +1 -0
- package/dist/staleness.test.js +448 -0
- package/dist/staleness.test.js.map +1 -0
- package/dist/storage.d.ts +267 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +623 -0
- package/dist/storage.js.map +1 -0
- package/dist/storage.test.d.ts +5 -0
- package/dist/storage.test.d.ts.map +1 -0
- package/dist/storage.test.js +434 -0
- package/dist/storage.test.js.map +1 -0
- package/dist/types.d.ts +270 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/dist/types.test.d.ts +2 -0
- package/dist/types.test.d.ts.map +1 -0
- package/dist/types.test.js +232 -0
- package/dist/types.test.js.map +1 -0
- package/dist/watcher.d.ts +139 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +406 -0
- package/dist/watcher.js.map +1 -0
- package/dist/watcher.test.d.ts +5 -0
- package/dist/watcher.test.d.ts.map +1 -0
- package/dist/watcher.test.js +327 -0
- package/dist/watcher.test.js.map +1 -0
- package/package.json +53 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* prov CLI entry point
|
|
4
|
+
*
|
|
5
|
+
* A provenance-first planning CLI for AI agent workflows.
|
|
6
|
+
* This CLI serves two audiences: human developers managing specs
|
|
7
|
+
* and AI agents creating/executing plans.
|
|
8
|
+
*
|
|
9
|
+
* @see spec:cli-interface:v1
|
|
10
|
+
* @see dec:cli-framework (Commander.js)
|
|
11
|
+
*/
|
|
12
|
+
import { Command, Option } from 'commander';
|
|
13
|
+
import { VERSION } from './index.js';
|
|
14
|
+
import { resolveFormat, output, error } from './output.js';
|
|
15
|
+
import { runInit } from './commands/init.js';
|
|
16
|
+
import { runSpecAdd, runSpecList, runSpecValidate } from './commands/spec.js';
|
|
17
|
+
import { runConstraintAdd, runConstraintList, runConstraintCheck } from './commands/constraint.js';
|
|
18
|
+
import { runPlanCreate, runPlanShow, runPlanValidate, runPlanNext, runPlanRemaining, runPlanProgress, } from './commands/plan.js';
|
|
19
|
+
import { runTraceAdd, runTraceShow, runTraceWhy, runTraceScan } from './commands/trace.js';
|
|
20
|
+
import { runGraphShow, runGraphExport, runGraphOrphans } from './commands/graph.js';
|
|
21
|
+
import { runImpact, runStale } from './commands/impact.js';
|
|
22
|
+
import { runAgentContext } from './commands/agent.js';
|
|
23
|
+
import { runMcpServe } from './commands/mcp.js';
|
|
24
|
+
/**
|
|
25
|
+
* Create the format option shared by all commands.
|
|
26
|
+
*/
|
|
27
|
+
function createFormatOption() {
|
|
28
|
+
return new Option('-f, --format <format>', 'Output format')
|
|
29
|
+
.choices(['table', 'yaml', 'json'])
|
|
30
|
+
.default(undefined, 'table (TTY) or yaml (pipe)');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create the main CLI program.
|
|
34
|
+
*/
|
|
35
|
+
function createProgram() {
|
|
36
|
+
const program = new Command();
|
|
37
|
+
program
|
|
38
|
+
.name('prov')
|
|
39
|
+
.description('Provenance-first planning CLI for AI agent workflows')
|
|
40
|
+
.version(VERSION, '-v, --version', 'Output the version number')
|
|
41
|
+
.option('--verbose', 'Enable verbose output')
|
|
42
|
+
.option('-q, --quiet', 'Suppress non-essential output')
|
|
43
|
+
.option('-C, --dir <directory>', 'Run as if prov was started in <directory>')
|
|
44
|
+
.addOption(createFormatOption());
|
|
45
|
+
// Add command groups
|
|
46
|
+
program.addCommand(createInitCommand());
|
|
47
|
+
program.addCommand(createSpecCommand());
|
|
48
|
+
program.addCommand(createConstraintCommand());
|
|
49
|
+
program.addCommand(createPlanCommand());
|
|
50
|
+
program.addCommand(createTraceCommand());
|
|
51
|
+
program.addCommand(createGraphCommand());
|
|
52
|
+
program.addCommand(createAgentCommand());
|
|
53
|
+
program.addCommand(createMcpCommand());
|
|
54
|
+
program.addCommand(createImpactCommand());
|
|
55
|
+
program.addCommand(createStaleCommand());
|
|
56
|
+
return program;
|
|
57
|
+
}
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// Init Command
|
|
60
|
+
// ============================================================================
|
|
61
|
+
function createInitCommand() {
|
|
62
|
+
return new Command('init')
|
|
63
|
+
.description('Initialize provenance tracking in a directory')
|
|
64
|
+
.option('--force', 'Reinitialize even if already initialized')
|
|
65
|
+
.action((options, cmd) => {
|
|
66
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
67
|
+
runInit(globalOpts, options);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Spec Commands
|
|
72
|
+
// ============================================================================
|
|
73
|
+
function createSpecCommand() {
|
|
74
|
+
const spec = new Command('spec')
|
|
75
|
+
.description('Manage specifications');
|
|
76
|
+
spec
|
|
77
|
+
.command('add <file>')
|
|
78
|
+
.description('Add a specification to tracking')
|
|
79
|
+
.action((file, _options, cmd) => {
|
|
80
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
81
|
+
runSpecAdd(globalOpts, file, {});
|
|
82
|
+
});
|
|
83
|
+
spec
|
|
84
|
+
.command('list')
|
|
85
|
+
.description('List tracked specifications')
|
|
86
|
+
.option('-s, --status <status>', 'Filter by status')
|
|
87
|
+
.addOption(createFormatOption())
|
|
88
|
+
.action((options, cmd) => {
|
|
89
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
90
|
+
runSpecList(globalOpts, { status: options.status });
|
|
91
|
+
});
|
|
92
|
+
spec
|
|
93
|
+
.command('validate')
|
|
94
|
+
.description('Validate specification consistency')
|
|
95
|
+
.option('--fix', 'Attempt to fix validation errors')
|
|
96
|
+
.action((options, cmd) => {
|
|
97
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
98
|
+
runSpecValidate(globalOpts, { fix: options.fix });
|
|
99
|
+
});
|
|
100
|
+
spec
|
|
101
|
+
.command('diff <id1> <id2>')
|
|
102
|
+
.description('Show differences between spec versions')
|
|
103
|
+
.action((id1, id2, _options, cmd) => {
|
|
104
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
105
|
+
notImplemented('spec diff', globalOpts, { id1, id2 });
|
|
106
|
+
});
|
|
107
|
+
return spec;
|
|
108
|
+
}
|
|
109
|
+
// ============================================================================
|
|
110
|
+
// Constraint Commands
|
|
111
|
+
// ============================================================================
|
|
112
|
+
function createConstraintCommand() {
|
|
113
|
+
const constraint = new Command('constraint')
|
|
114
|
+
.description('Manage constraints');
|
|
115
|
+
constraint
|
|
116
|
+
.command('add <file>')
|
|
117
|
+
.description('Add a constraint file to tracking')
|
|
118
|
+
.action((file, _options, cmd) => {
|
|
119
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
120
|
+
runConstraintAdd(globalOpts, file, {});
|
|
121
|
+
});
|
|
122
|
+
constraint
|
|
123
|
+
.command('list')
|
|
124
|
+
.description('List tracked constraints')
|
|
125
|
+
.option('-s, --status <status>', 'Filter by status')
|
|
126
|
+
.addOption(createFormatOption())
|
|
127
|
+
.action((options, cmd) => {
|
|
128
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
129
|
+
runConstraintList(globalOpts, { status: options.status });
|
|
130
|
+
});
|
|
131
|
+
constraint
|
|
132
|
+
.command('check [id]')
|
|
133
|
+
.description('Run constraint verification')
|
|
134
|
+
.option('--fix', 'Attempt automatic remediation')
|
|
135
|
+
.action((id, options, cmd) => {
|
|
136
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
137
|
+
runConstraintCheck(globalOpts, id, { fix: options.fix }).catch((err) => {
|
|
138
|
+
error(err.message);
|
|
139
|
+
process.exit(1);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
return constraint;
|
|
143
|
+
}
|
|
144
|
+
// ============================================================================
|
|
145
|
+
// Plan Commands
|
|
146
|
+
// ============================================================================
|
|
147
|
+
function createPlanCommand() {
|
|
148
|
+
const plan = new Command('plan')
|
|
149
|
+
.description('Manage implementation plans');
|
|
150
|
+
plan
|
|
151
|
+
.command('create')
|
|
152
|
+
.description('Create a new plan from specs and constraints')
|
|
153
|
+
.requiredOption('--from <specs...>', 'Spec IDs to derive from')
|
|
154
|
+
.option('--with <constraints...>', 'Constraint IDs to apply')
|
|
155
|
+
.option('-o, --output <file>', 'Output file path')
|
|
156
|
+
.option('-i, --interactive', 'Use interactive mode')
|
|
157
|
+
.action((options, cmd) => {
|
|
158
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
159
|
+
runPlanCreate(globalOpts, options);
|
|
160
|
+
});
|
|
161
|
+
plan
|
|
162
|
+
.command('show <id>')
|
|
163
|
+
.description('Display plan details')
|
|
164
|
+
.addOption(createFormatOption())
|
|
165
|
+
.action((id, options, cmd) => {
|
|
166
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
167
|
+
runPlanShow(globalOpts, id, options);
|
|
168
|
+
});
|
|
169
|
+
plan
|
|
170
|
+
.command('validate')
|
|
171
|
+
.description('Validate plan completeness')
|
|
172
|
+
.action((_options, cmd) => {
|
|
173
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
174
|
+
runPlanValidate(globalOpts, {});
|
|
175
|
+
});
|
|
176
|
+
plan
|
|
177
|
+
.command('remaining <id>')
|
|
178
|
+
.description('Show unimplemented plan steps')
|
|
179
|
+
.addOption(createFormatOption())
|
|
180
|
+
.action((id, options, cmd) => {
|
|
181
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
182
|
+
runPlanRemaining(globalOpts, id, options);
|
|
183
|
+
});
|
|
184
|
+
plan
|
|
185
|
+
.command('next <id>')
|
|
186
|
+
.description('Show the next step to implement')
|
|
187
|
+
.addOption(createFormatOption())
|
|
188
|
+
.action((id, options, cmd) => {
|
|
189
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
190
|
+
runPlanNext(globalOpts, id, options);
|
|
191
|
+
});
|
|
192
|
+
plan
|
|
193
|
+
.command('progress <id>')
|
|
194
|
+
.description('Show plan implementation progress')
|
|
195
|
+
.addOption(createFormatOption())
|
|
196
|
+
.action((id, options, cmd) => {
|
|
197
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
198
|
+
runPlanProgress(globalOpts, id, options);
|
|
199
|
+
});
|
|
200
|
+
return plan;
|
|
201
|
+
}
|
|
202
|
+
// ============================================================================
|
|
203
|
+
// Trace Commands
|
|
204
|
+
// ============================================================================
|
|
205
|
+
function createTraceCommand() {
|
|
206
|
+
const trace = new Command('trace')
|
|
207
|
+
.description('Manage artifact traces');
|
|
208
|
+
trace
|
|
209
|
+
.command('add <path>')
|
|
210
|
+
.description('Link an artifact to a plan step')
|
|
211
|
+
.requiredOption('--to <step-id>', 'Step ID to trace to')
|
|
212
|
+
.option('--auto-hash', 'Recompute hash on each query')
|
|
213
|
+
.action((path, options, cmd) => {
|
|
214
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
215
|
+
runTraceAdd(globalOpts, path, options);
|
|
216
|
+
});
|
|
217
|
+
trace
|
|
218
|
+
.command('show <path>')
|
|
219
|
+
.description('Show provenance for an artifact')
|
|
220
|
+
.addOption(createFormatOption())
|
|
221
|
+
.action((path, options, cmd) => {
|
|
222
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
223
|
+
runTraceShow(globalOpts, path, options);
|
|
224
|
+
});
|
|
225
|
+
trace
|
|
226
|
+
.command('why <req-id>')
|
|
227
|
+
.description('Show implementations of a requirement')
|
|
228
|
+
.addOption(createFormatOption())
|
|
229
|
+
.action((reqId, options, cmd) => {
|
|
230
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
231
|
+
runTraceWhy(globalOpts, reqId, options);
|
|
232
|
+
});
|
|
233
|
+
trace
|
|
234
|
+
.command('scan')
|
|
235
|
+
.description('Scan source files for inline trace markers')
|
|
236
|
+
.option('--dirs <directories...>', 'Directories to scan (default: project root)')
|
|
237
|
+
.addOption(createFormatOption())
|
|
238
|
+
.action((options, cmd) => {
|
|
239
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
240
|
+
runTraceScan(globalOpts, options);
|
|
241
|
+
});
|
|
242
|
+
return trace;
|
|
243
|
+
}
|
|
244
|
+
// ============================================================================
|
|
245
|
+
// Graph Commands
|
|
246
|
+
// ============================================================================
|
|
247
|
+
function createGraphCommand() {
|
|
248
|
+
const graph = new Command('graph')
|
|
249
|
+
.description('Visualize and export the intent graph');
|
|
250
|
+
graph
|
|
251
|
+
.command('show')
|
|
252
|
+
.description('Display ASCII graph in terminal')
|
|
253
|
+
.option('--depth <n>', 'Maximum depth to display', parseInt)
|
|
254
|
+
.action((options, cmd) => {
|
|
255
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
256
|
+
runGraphShow(globalOpts, options);
|
|
257
|
+
});
|
|
258
|
+
graph
|
|
259
|
+
.command('export')
|
|
260
|
+
.description('Export graph for external tools')
|
|
261
|
+
.addOption(new Option('--format <format>', 'Export format')
|
|
262
|
+
.choices(['dot', 'json', 'mermaid'])
|
|
263
|
+
.default('dot'))
|
|
264
|
+
.option('-o, --output <file>', 'Output file (stdout if not specified)')
|
|
265
|
+
.action((options, cmd) => {
|
|
266
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
267
|
+
runGraphExport(globalOpts, options);
|
|
268
|
+
});
|
|
269
|
+
graph
|
|
270
|
+
.command('orphans')
|
|
271
|
+
.description('Find untraced code')
|
|
272
|
+
.option('--scan <dirs...>', 'Directories to scan')
|
|
273
|
+
.addOption(createFormatOption())
|
|
274
|
+
.action((options, cmd) => {
|
|
275
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
276
|
+
runGraphOrphans(globalOpts, options);
|
|
277
|
+
});
|
|
278
|
+
return graph;
|
|
279
|
+
}
|
|
280
|
+
// ============================================================================
|
|
281
|
+
// Agent Commands
|
|
282
|
+
// ============================================================================
|
|
283
|
+
function createAgentCommand() {
|
|
284
|
+
const agent = new Command('agent')
|
|
285
|
+
.description('AI agent support commands');
|
|
286
|
+
agent
|
|
287
|
+
.command('context')
|
|
288
|
+
.description('Output context for AI agents')
|
|
289
|
+
.option('--scope <spec-ids...>', 'Limit context to specific specs')
|
|
290
|
+
.addOption(createFormatOption())
|
|
291
|
+
.action((options, cmd) => {
|
|
292
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
293
|
+
runAgentContext(globalOpts, options);
|
|
294
|
+
});
|
|
295
|
+
return agent;
|
|
296
|
+
}
|
|
297
|
+
// ============================================================================
|
|
298
|
+
// MCP Commands
|
|
299
|
+
// ============================================================================
|
|
300
|
+
function createMcpCommand() {
|
|
301
|
+
const mcp = new Command('mcp')
|
|
302
|
+
.description('Model Context Protocol server');
|
|
303
|
+
mcp
|
|
304
|
+
.command('serve')
|
|
305
|
+
.description('Start MCP server for AI agent integration')
|
|
306
|
+
.action(() => {
|
|
307
|
+
runMcpServe().catch((err) => {
|
|
308
|
+
error(err.message);
|
|
309
|
+
process.exit(1);
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
return mcp;
|
|
313
|
+
}
|
|
314
|
+
// ============================================================================
|
|
315
|
+
// Impact Command
|
|
316
|
+
// ============================================================================
|
|
317
|
+
function createImpactCommand() {
|
|
318
|
+
return new Command('impact')
|
|
319
|
+
.description('Analyze impact of spec/constraint changes')
|
|
320
|
+
.argument('<spec-id>', 'Spec or constraint ID to analyze')
|
|
321
|
+
.option('--changed', 'Auto-detect modified specs')
|
|
322
|
+
.addOption(createFormatOption())
|
|
323
|
+
.action((specId, options, cmd) => {
|
|
324
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
325
|
+
runImpact(globalOpts, specId, options);
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
// ============================================================================
|
|
329
|
+
// Stale Command
|
|
330
|
+
// ============================================================================
|
|
331
|
+
function createStaleCommand() {
|
|
332
|
+
return new Command('stale')
|
|
333
|
+
.description('Find stale artifacts needing regeneration')
|
|
334
|
+
.addOption(createFormatOption())
|
|
335
|
+
.action((options, cmd) => {
|
|
336
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
337
|
+
runStale(globalOpts, options);
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
// ============================================================================
|
|
341
|
+
// Helper Functions
|
|
342
|
+
// ============================================================================
|
|
343
|
+
/**
|
|
344
|
+
* Placeholder for unimplemented commands.
|
|
345
|
+
* Will be replaced as commands are implemented in subsequent phases.
|
|
346
|
+
*/
|
|
347
|
+
function notImplemented(command, globalOpts, options) {
|
|
348
|
+
const fmt = resolveFormat({ format: globalOpts.format });
|
|
349
|
+
if (fmt === 'json') {
|
|
350
|
+
output({
|
|
351
|
+
error: 'not_implemented',
|
|
352
|
+
command,
|
|
353
|
+
message: `Command '${command}' is not yet implemented`,
|
|
354
|
+
options: options ?? {},
|
|
355
|
+
}, { format: 'json' });
|
|
356
|
+
}
|
|
357
|
+
else if (fmt === 'yaml') {
|
|
358
|
+
output({
|
|
359
|
+
error: 'not_implemented',
|
|
360
|
+
command,
|
|
361
|
+
message: `Command '${command}' is not yet implemented`,
|
|
362
|
+
options: options ?? {},
|
|
363
|
+
}, { format: 'yaml' });
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
error(`Command '${command}' is not yet implemented`);
|
|
367
|
+
if (globalOpts.verbose === true && options !== undefined) {
|
|
368
|
+
process.stderr.write(`Options: ${JSON.stringify(options, null, 2)}\n`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
process.exit(1);
|
|
372
|
+
}
|
|
373
|
+
// ============================================================================
|
|
374
|
+
// Main Entry Point
|
|
375
|
+
// ============================================================================
|
|
376
|
+
const program = createProgram();
|
|
377
|
+
program.parseAsync(process.argv).catch((err) => {
|
|
378
|
+
error(err.message);
|
|
379
|
+
process.exit(1);
|
|
380
|
+
});
|
|
381
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAqB,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnG,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBhD;;GAEG;AACH,SAAS,kBAAkB;IACzB,OAAO,IAAI,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;SACxD,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SAClC,OAAO,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,sDAAsD,CAAC;SACnE,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;SAC5C,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,uBAAuB,EAAE,2CAA2C,CAAC;SAC5E,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEnC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,SAAS,iBAAiB;IACxB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,0CAA0C,CAAC;SAC7D,MAAM,CAAC,CAAC,OAA4B,EAAE,GAAY,EAAE,EAAE;QACrD,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,SAAS,iBAAiB;IACxB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAC7B,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAExC,IAAI;SACD,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,CAAC,IAAY,EAAE,QAAiC,EAAE,GAAY,EAAE,EAAE;QACxE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;SACnD,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,OAAmD,EAAE,GAAY,EAAE,EAAE;QAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,WAAW,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC;SACnD,MAAM,CAAC,CAAC,OAA0B,EAAE,GAAY,EAAE,EAAE;QACnD,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,eAAe,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,CAAC,GAAW,EAAE,GAAW,EAAE,QAAiC,EAAE,GAAY,EAAE,EAAE;QACpF,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEL,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,SAAS,uBAAuB;IAC9B,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;SACzC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAErC,UAAU;SACP,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,CAAC,IAAY,EAAE,QAAiC,EAAE,GAAY,EAAE,EAAE;QACxE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;SACnD,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,OAAmD,EAAE,GAAY,EAAE,EAAE;QAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,iBAAiB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEL,UAAU;SACP,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC;SAChD,MAAM,CAAC,CAAC,EAAsB,EAAE,OAA0B,EAAE,GAAY,EAAE,EAAE;QAC3E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,kBAAkB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YAC5E,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,SAAS,iBAAiB;IACxB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAC7B,WAAW,CAAC,6BAA6B,CAAC,CAAC;IAE9C,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,cAAc,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SAC9D,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;SAC5D,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;SACjD,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,CAAC,OAAoF,EAAE,GAAY,EAAE,EAAE;QAC7G,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,sBAAsB,CAAC;SACnC,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,EAAU,EAAE,OAAkC,EAAE,GAAY,EAAE,EAAE;QACvE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,WAAW,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,CAAC,QAAiC,EAAE,GAAY,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,EAAU,EAAE,OAAkC,EAAE,GAAY,EAAE,EAAE;QACvE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,EAAU,EAAE,OAAkC,EAAE,GAAY,EAAE,EAAE;QACvE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,WAAW,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,mCAAmC,CAAC;SAChD,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,EAAU,EAAE,OAAkC,EAAE,GAAY,EAAE,EAAE;QACvE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEL,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;SAC/B,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAEzC,KAAK;SACF,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,cAAc,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;SACvD,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC;SACrD,MAAM,CAAC,CAAC,IAAY,EAAE,OAA2C,EAAE,GAAY,EAAE,EAAE;QAClF,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAY,EAAE,OAAkC,EAAE,GAAY,EAAE,EAAE;QACzE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,uCAAuC,CAAC;SACpD,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAa,EAAE,OAAkC,EAAE,GAAY,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,yBAAyB,EAAE,6CAA6C,CAAC;SAChF,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,OAAmD,EAAE,GAAY,EAAE,EAAE;QAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;SAC/B,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAExD,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,aAAa,EAAE,0BAA0B,EAAE,QAAQ,CAAC;SAC3D,MAAM,CAAC,CAAC,OAA2B,EAAE,GAAY,EAAE,EAAE;QACpD,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,SAAS,CACR,IAAI,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;SAC7C,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACnC,OAAO,CAAC,KAAK,CAAC,CAClB;SACA,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;SACtE,MAAM,CAAC,CAAC,OAAgE,EAAE,GAAY,EAAE,EAAE;QACzF,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;SACjD,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,OAAmD,EAAE,GAAY,EAAE,EAAE;QAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;SAC/B,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAE5C,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,CAAC;SAClE,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,OAAoD,EAAE,GAAY,EAAE,EAAE;QAC7E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;SAC3B,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAEhD,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,GAAG,EAAE;QACX,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACjC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,SAAS,mBAAmB;IAC1B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;SACjD,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,MAAc,EAAE,OAAqD,EAAE,GAAY,EAAE,EAAE;QAC9F,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,SAAS,kBAAkB;IACzB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,2CAA2C,CAAC;SACxD,SAAS,CAAC,kBAAkB,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,OAAkC,EAAE,GAAY,EAAE,EAAE;QAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAiB,CAAC;QACxD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,cAAc,CACrB,OAAe,EACf,UAAyB,EACzB,OAAiC;IAEjC,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAEzD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,CACJ;YACE,KAAK,EAAE,iBAAiB;YACxB,OAAO;YACP,OAAO,EAAE,YAAY,OAAO,0BAA0B;YACtD,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;IACJ,CAAC;SAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,CACJ;YACE,KAAK,EAAE,iBAAiB;YACxB,OAAO;YACP,OAAO,EAAE,YAAY,OAAO,0BAA0B;YACtD,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,YAAY,OAAO,0BAA0B,CAAC,CAAC;QACrD,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACpD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* prov agent commands implementation.
|
|
3
|
+
*
|
|
4
|
+
* Commands for AI agent support:
|
|
5
|
+
* - agent context: Output structured context for AI agents
|
|
6
|
+
*
|
|
7
|
+
* @see req:agent:context-retrieval
|
|
8
|
+
*/
|
|
9
|
+
import { type GlobalOptions } from '../cli.js';
|
|
10
|
+
/**
|
|
11
|
+
* Options for agent context command.
|
|
12
|
+
*/
|
|
13
|
+
export interface AgentContextOptions {
|
|
14
|
+
scope?: string[];
|
|
15
|
+
format?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Requirement summary for agent context.
|
|
19
|
+
*/
|
|
20
|
+
export interface RequirementSummary {
|
|
21
|
+
id: string;
|
|
22
|
+
description: string;
|
|
23
|
+
acceptance: string[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Spec summary for agent context.
|
|
27
|
+
*/
|
|
28
|
+
export interface SpecSummary {
|
|
29
|
+
id: string;
|
|
30
|
+
title: string;
|
|
31
|
+
status: string;
|
|
32
|
+
intent: string;
|
|
33
|
+
requirements: RequirementSummary[];
|
|
34
|
+
hash?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Invariant summary for agent context.
|
|
38
|
+
*/
|
|
39
|
+
export interface InvariantSummary {
|
|
40
|
+
id: string;
|
|
41
|
+
rule: string;
|
|
42
|
+
verification: string;
|
|
43
|
+
blocking: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Constraint summary for agent context.
|
|
47
|
+
*/
|
|
48
|
+
export interface ConstraintSummary {
|
|
49
|
+
id: string;
|
|
50
|
+
title: string;
|
|
51
|
+
status: string;
|
|
52
|
+
description: string;
|
|
53
|
+
invariants: InvariantSummary[];
|
|
54
|
+
hash?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Step summary for agent context.
|
|
58
|
+
*/
|
|
59
|
+
export interface StepSummary {
|
|
60
|
+
id: string;
|
|
61
|
+
number: number;
|
|
62
|
+
action: string;
|
|
63
|
+
description?: string;
|
|
64
|
+
status: string;
|
|
65
|
+
tracesTo: string[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Plan summary for agent context.
|
|
69
|
+
*/
|
|
70
|
+
export interface PlanSummary {
|
|
71
|
+
id: string;
|
|
72
|
+
title: string;
|
|
73
|
+
status: string;
|
|
74
|
+
sources: string[];
|
|
75
|
+
totalSteps: number;
|
|
76
|
+
completedSteps: number;
|
|
77
|
+
remainingSteps: StepSummary[];
|
|
78
|
+
hash?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Result of agent context command.
|
|
82
|
+
*/
|
|
83
|
+
export interface AgentContextResult {
|
|
84
|
+
success: boolean;
|
|
85
|
+
context?: {
|
|
86
|
+
specs: SpecSummary[];
|
|
87
|
+
constraints: ConstraintSummary[];
|
|
88
|
+
plans: PlanSummary[];
|
|
89
|
+
remainingWork: {
|
|
90
|
+
totalSteps: number;
|
|
91
|
+
completedSteps: number;
|
|
92
|
+
pendingSteps: number;
|
|
93
|
+
nextStep?: StepSummary;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
error?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Execute the agent context command.
|
|
100
|
+
*
|
|
101
|
+
* Outputs structured context for AI agent consumption, including specs,
|
|
102
|
+
* constraints, current plan state, and remaining work items.
|
|
103
|
+
*
|
|
104
|
+
* @see req:agent:context-retrieval
|
|
105
|
+
*/
|
|
106
|
+
export declare function runAgentContext(globalOpts: GlobalOptions, options: AgentContextOptions): void;
|
|
107
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAgB/C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,WAAW,EAAE,iBAAiB,EAAE,CAAC;QACjC,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,aAAa,EAAE;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;SACxB,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,mBAAmB,GAC3B,IAAI,CA6MN"}
|