@rasensio/aidlc 0.6.0 → 1.1.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 (113) hide show
  1. package/README.md +113 -0
  2. package/dist/cli.js +13 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/discover.d.ts +6 -2
  5. package/dist/commands/discover.d.ts.map +1 -1
  6. package/dist/commands/discover.js +30 -4
  7. package/dist/commands/discover.js.map +1 -1
  8. package/dist/commands/gate.d.ts.map +1 -1
  9. package/dist/commands/gate.js +8 -0
  10. package/dist/commands/gate.js.map +1 -1
  11. package/dist/commands/init.d.ts +17 -11
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +280 -45
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/knowledge.d.ts +16 -0
  16. package/dist/commands/knowledge.d.ts.map +1 -0
  17. package/dist/commands/knowledge.js +454 -0
  18. package/dist/commands/knowledge.js.map +1 -0
  19. package/dist/commands/start.d.ts +2 -1
  20. package/dist/commands/start.d.ts.map +1 -1
  21. package/dist/commands/start.js +31 -1
  22. package/dist/commands/start.js.map +1 -1
  23. package/dist/commands/transition.d.ts.map +1 -1
  24. package/dist/commands/transition.js +14 -1
  25. package/dist/commands/transition.js.map +1 -1
  26. package/dist/commands/update.d.ts.map +1 -1
  27. package/dist/commands/update.js +9 -2
  28. package/dist/commands/update.js.map +1 -1
  29. package/dist/compile/adapters/claude-code.d.ts.map +1 -1
  30. package/dist/compile/adapters/claude-code.js +7 -2
  31. package/dist/compile/adapters/claude-code.js.map +1 -1
  32. package/dist/compile/adapters/codex.d.ts.map +1 -1
  33. package/dist/compile/adapters/codex.js +5 -0
  34. package/dist/compile/adapters/codex.js.map +1 -1
  35. package/dist/compile/adapters/cursor.d.ts.map +1 -1
  36. package/dist/compile/adapters/cursor.js +5 -0
  37. package/dist/compile/adapters/cursor.js.map +1 -1
  38. package/dist/compile/adapters/kiro.d.ts.map +1 -1
  39. package/dist/compile/adapters/kiro.js +7 -1
  40. package/dist/compile/adapters/kiro.js.map +1 -1
  41. package/dist/compile/adapters/windsurf.d.ts.map +1 -1
  42. package/dist/compile/adapters/windsurf.js +5 -0
  43. package/dist/compile/adapters/windsurf.js.map +1 -1
  44. package/dist/compile/knowledge-section.d.ts +19 -0
  45. package/dist/compile/knowledge-section.d.ts.map +1 -0
  46. package/dist/compile/knowledge-section.js +46 -0
  47. package/dist/compile/knowledge-section.js.map +1 -0
  48. package/dist/core/types.d.ts +3 -1
  49. package/dist/core/types.d.ts.map +1 -1
  50. package/dist/discover/scanner.d.ts.map +1 -1
  51. package/dist/discover/scanner.js +18 -12
  52. package/dist/discover/scanner.js.map +1 -1
  53. package/dist/discover/workspaces.d.ts +24 -0
  54. package/dist/discover/workspaces.d.ts.map +1 -0
  55. package/dist/discover/workspaces.js +116 -0
  56. package/dist/discover/workspaces.js.map +1 -0
  57. package/dist/knowledge/compact.d.ts +24 -0
  58. package/dist/knowledge/compact.d.ts.map +1 -0
  59. package/dist/knowledge/compact.js +70 -0
  60. package/dist/knowledge/compact.js.map +1 -0
  61. package/dist/knowledge/context-generator.d.ts +36 -0
  62. package/dist/knowledge/context-generator.d.ts.map +1 -0
  63. package/dist/knowledge/context-generator.js +150 -0
  64. package/dist/knowledge/context-generator.js.map +1 -0
  65. package/dist/knowledge/engine.d.ts +40 -0
  66. package/dist/knowledge/engine.d.ts.map +1 -0
  67. package/dist/knowledge/engine.js +79 -0
  68. package/dist/knowledge/engine.js.map +1 -0
  69. package/dist/knowledge/gate-criterion.d.ts +36 -0
  70. package/dist/knowledge/gate-criterion.d.ts.map +1 -0
  71. package/dist/knowledge/gate-criterion.js +60 -0
  72. package/dist/knowledge/gate-criterion.js.map +1 -0
  73. package/dist/knowledge/index/knowledge-index.d.ts +45 -0
  74. package/dist/knowledge/index/knowledge-index.d.ts.map +1 -0
  75. package/dist/knowledge/index/knowledge-index.js +20 -0
  76. package/dist/knowledge/index/knowledge-index.js.map +1 -0
  77. package/dist/knowledge/index/sqlite-index.d.ts +53 -0
  78. package/dist/knowledge/index/sqlite-index.d.ts.map +1 -0
  79. package/dist/knowledge/index/sqlite-index.js +354 -0
  80. package/dist/knowledge/index/sqlite-index.js.map +1 -0
  81. package/dist/knowledge/merge-driver.d.ts +36 -0
  82. package/dist/knowledge/merge-driver.d.ts.map +1 -0
  83. package/dist/knowledge/merge-driver.js +130 -0
  84. package/dist/knowledge/merge-driver.js.map +1 -0
  85. package/dist/knowledge/reader.d.ts +32 -0
  86. package/dist/knowledge/reader.d.ts.map +1 -0
  87. package/dist/knowledge/reader.js +74 -0
  88. package/dist/knowledge/reader.js.map +1 -0
  89. package/dist/knowledge/seed.d.ts +38 -0
  90. package/dist/knowledge/seed.d.ts.map +1 -0
  91. package/dist/knowledge/seed.js +254 -0
  92. package/dist/knowledge/seed.js.map +1 -0
  93. package/dist/knowledge/staleness.d.ts +41 -0
  94. package/dist/knowledge/staleness.d.ts.map +1 -0
  95. package/dist/knowledge/staleness.js +102 -0
  96. package/dist/knowledge/staleness.js.map +1 -0
  97. package/dist/knowledge/sync.d.ts +31 -0
  98. package/dist/knowledge/sync.d.ts.map +1 -0
  99. package/dist/knowledge/sync.js +103 -0
  100. package/dist/knowledge/sync.js.map +1 -0
  101. package/dist/knowledge/types.d.ts +87 -0
  102. package/dist/knowledge/types.d.ts.map +1 -0
  103. package/dist/knowledge/types.js +82 -0
  104. package/dist/knowledge/types.js.map +1 -0
  105. package/dist/knowledge/writer.d.ts +67 -0
  106. package/dist/knowledge/writer.d.ts.map +1 -0
  107. package/dist/knowledge/writer.js +189 -0
  108. package/dist/knowledge/writer.js.map +1 -0
  109. package/dist/knowledge/yaml-source.d.ts +48 -0
  110. package/dist/knowledge/yaml-source.d.ts.map +1 -0
  111. package/dist/knowledge/yaml-source.js +195 -0
  112. package/dist/knowledge/yaml-source.js.map +1 -0
  113. package/package.json +3 -3
@@ -0,0 +1,454 @@
1
+ /**
2
+ * `aidlc knowledge` command family — agent read/write interface to the local
3
+ * knowledge graph.
4
+ *
5
+ * Machine-consumable output goes to stdout (YAML by default, `--format json`
6
+ * everywhere — KG Req 5.5), diagnostics to stderr. The hidden `merge-driver`
7
+ * subcommand is invoked by git, not humans; `install-merge-driver` writes git
8
+ * config and therefore requires explicit confirmation (KG Req 12.2, NFR N7).
9
+ *
10
+ * Requirements: KG 4.*, 5.*, 6.*, 7.*, 12.*
11
+ *
12
+ * @module
13
+ */
14
+ import { Command } from 'commander';
15
+ import { readFileSync, writeFileSync, existsSync, appendFileSync } from 'node:fs';
16
+ import { join } from 'node:path';
17
+ import { execSync } from 'node:child_process';
18
+ import { parse, parseAllDocuments, stringify } from 'yaml';
19
+ import * as clack from '@clack/prompts';
20
+ import { openKnowledge, KNOWLEDGE_DIR } from '../knowledge/engine.js';
21
+ import { DEFAULT_MAX_TOKENS } from '../knowledge/context-generator.js';
22
+ import { DEFAULT_STALE_DAYS } from '../knowledge/staleness.js';
23
+ import { mergeKnowledgeFiles } from '../knowledge/merge-driver.js';
24
+ import { syncKnowledge } from '../knowledge/sync.js';
25
+ import { compactKnowledge } from '../knowledge/compact.js';
26
+ function emit(data, format) {
27
+ if (format === 'json') {
28
+ process.stdout.write(JSON.stringify(data, null, 2) + '\n');
29
+ }
30
+ else {
31
+ process.stdout.write(stringify(data));
32
+ }
33
+ }
34
+ function reportWarnings(warnings) {
35
+ for (const warning of warnings) {
36
+ process.stderr.write(`Warning: ${warning}\n`);
37
+ }
38
+ }
39
+ /** Open the engine, run the action, always close, exit non-zero on error. */
40
+ function withEngine(action) {
41
+ const engine = openKnowledge(process.cwd());
42
+ reportWarnings(engine.warnings);
43
+ try {
44
+ action(engine);
45
+ }
46
+ catch (err) {
47
+ process.stderr.write(`Error: ${err.message}\n`);
48
+ process.exitCode = 1;
49
+ }
50
+ finally {
51
+ engine.close();
52
+ }
53
+ }
54
+ /** Parse comma-separated tags. */
55
+ function parseTags(value) {
56
+ return value ? value.split(',').map((t) => t.trim()).filter(Boolean) : [];
57
+ }
58
+ // ---------------------------------------------------------------------------
59
+ // Command registration
60
+ // ---------------------------------------------------------------------------
61
+ export function registerKnowledge(program) {
62
+ const knowledge = program
63
+ .command('knowledge')
64
+ .description('Local knowledge graph — persistent codebase memory for agents');
65
+ // --- Writes (KG Req 4) ---
66
+ knowledge
67
+ .command('add')
68
+ .description('Add an entity (via flags, or stdin YAML with --stdin)')
69
+ .option('--id <id>', 'Entity id (lowercase slug)')
70
+ .option('--type <type>', 'Entity type (module, service, decision, … or custom:<name>)')
71
+ .option('--name <name>', 'Human-readable name')
72
+ .option('--description <text>', 'Free-text description')
73
+ .option('--confidence <n>', 'Confidence 0.0–1.0', parseFloat)
74
+ .option('--source <path>', 'Source file path or "agent-inferred"')
75
+ .option('--tags <tags>', 'Comma-separated tags')
76
+ .option('--stdin', 'Read one or more entity YAML documents from stdin')
77
+ .action((opts) => {
78
+ withEngine((engine) => {
79
+ const inputs = opts.stdin ? readEntitiesFromStdin() : [entityFromFlags(opts)];
80
+ for (const input of inputs) {
81
+ const result = engine.writer.addEntity(input);
82
+ reportWarnings(result.warnings);
83
+ process.stdout.write(`${result.merged ? 'Merged' : 'Added'} ${result.entity.type} '${result.entity.id}'\n`);
84
+ }
85
+ });
86
+ });
87
+ knowledge
88
+ .command('relate')
89
+ .description('Create a relationship between two existing entities')
90
+ .requiredOption('--from <id>', 'Source entity id')
91
+ .requiredOption('--to <id>', 'Target entity id')
92
+ .requiredOption('--type <type>', 'Relationship type (depends-on, uses, … or custom:<name>)')
93
+ .action((opts) => {
94
+ withEngine((engine) => {
95
+ const rel = engine.writer.addRelationship(opts);
96
+ process.stdout.write(`Related ${rel.from} → ${rel.type} → ${rel.to}\n`);
97
+ });
98
+ });
99
+ knowledge
100
+ .command('update')
101
+ .description('Update fields on an existing entity')
102
+ .argument('<id>', 'Entity id')
103
+ .option('--description <text>', 'New description')
104
+ .option('--confidence <n>', 'New confidence 0.0–1.0', parseFloat)
105
+ .option('--tags <tags>', 'Comma-separated tags (replaces existing)')
106
+ .option('--name <name>', 'New name')
107
+ .action((id, opts) => {
108
+ withEngine((engine) => {
109
+ const updates = {};
110
+ if (opts.description !== undefined)
111
+ updates.description = opts.description;
112
+ if (opts.confidence !== undefined)
113
+ updates.confidence = opts.confidence;
114
+ if (opts.tags !== undefined)
115
+ updates.tags = parseTags(opts.tags);
116
+ if (opts.name !== undefined)
117
+ updates.name = opts.name;
118
+ const result = engine.writer.updateEntity(id, updates);
119
+ reportWarnings(result.warnings);
120
+ process.stdout.write(`Updated '${result.entity.id}'\n`);
121
+ });
122
+ });
123
+ knowledge
124
+ .command('import')
125
+ .description('Bulk import entities and relationships from a YAML file')
126
+ .argument('<file>', 'YAML file (multi-document or {entities, relationships})')
127
+ .action((file) => {
128
+ withEngine((engine) => {
129
+ const { entities, relationships } = parseImportFile(file);
130
+ const result = engine.writer.importBatch(entities, relationships);
131
+ reportWarnings(result.warnings);
132
+ process.stdout.write(`Imported: ${result.added} added, ${result.updated} updated, ${result.errors.length} errors\n`);
133
+ for (const error of result.errors) {
134
+ process.stderr.write(` ${error}\n`);
135
+ }
136
+ if (result.errors.length > 0)
137
+ process.exitCode = 1;
138
+ });
139
+ });
140
+ // --- Queries (KG Req 5) ---
141
+ knowledge
142
+ .command('query')
143
+ .description('Full-text search across the graph')
144
+ .argument('<term>', 'Search term')
145
+ .option('--type <type>', 'Filter by entity type')
146
+ .option('--min-confidence <n>', 'Minimum confidence', parseFloat)
147
+ .option('--limit <n>', 'Maximum results', (v) => parseInt(v, 10), 20)
148
+ .option('--format <fmt>', 'Output format: yaml or json', 'yaml')
149
+ .action((term, opts) => {
150
+ withEngine((engine) => {
151
+ const queryOpts = {};
152
+ if (opts.type !== undefined)
153
+ queryOpts.type = opts.type;
154
+ if (opts.minConfidence !== undefined)
155
+ queryOpts.minConfidence = opts.minConfidence;
156
+ if (opts.limit !== undefined)
157
+ queryOpts.limit = opts.limit;
158
+ emit(engine.reader.search(term, queryOpts), opts.format);
159
+ });
160
+ });
161
+ knowledge
162
+ .command('get')
163
+ .description('Get a single entity with all its relationships')
164
+ .argument('<id>', 'Entity id')
165
+ .option('--format <fmt>', 'Output format: yaml or json', 'yaml')
166
+ .action((id, opts) => {
167
+ withEngine((engine) => {
168
+ const detail = engine.reader.get(id);
169
+ if (!detail) {
170
+ process.stderr.write(`Entity not found: '${id}'\n`);
171
+ process.exitCode = 1;
172
+ return;
173
+ }
174
+ emit(detail, opts.format);
175
+ });
176
+ });
177
+ knowledge
178
+ .command('graph')
179
+ .description('Subgraph of entities within N hops')
180
+ .argument('<id>', 'Root entity id')
181
+ .option('--depth <n>', 'Traversal depth', (v) => parseInt(v, 10), 1)
182
+ .option('--format <fmt>', 'Output format: yaml or json', 'yaml')
183
+ .action((id, opts) => {
184
+ withEngine((engine) => {
185
+ const result = engine.reader.subgraph(id, opts.depth);
186
+ if (result.totalCount === 0) {
187
+ process.stderr.write(`Entity not found: '${id}'\n`);
188
+ process.exitCode = 1;
189
+ return;
190
+ }
191
+ emit(result, opts.format);
192
+ });
193
+ });
194
+ // --- Context (KG Req 6) ---
195
+ knowledge
196
+ .command('context')
197
+ .description('Generate a markdown context summary for agent prompts')
198
+ .option('--scope <scope>', 'full | phase <name> | file <path>', 'full')
199
+ .option('--phase <name>', 'Lifecycle phase (with --scope phase)')
200
+ .option('--file <path>', 'File path (with --scope file)')
201
+ .option('--max-tokens <n>', 'Token budget', (v) => parseInt(v, 10), DEFAULT_MAX_TOKENS)
202
+ .option('--include-stale', 'Include low-confidence entities')
203
+ .action((opts) => {
204
+ withEngine((engine) => {
205
+ const scope = resolveScope(opts);
206
+ const contextOpts = {
207
+ maxTokens: opts.maxTokens,
208
+ };
209
+ if (opts.includeStale !== undefined)
210
+ contextOpts.includeStale = opts.includeStale;
211
+ const output = engine.context.generate(scope, contextOpts);
212
+ process.stdout.write(output.markdown + '\n');
213
+ process.stderr.write(`(${output.entityCount} entities, ~${output.tokenEstimate} tokens)\n`);
214
+ });
215
+ });
216
+ // --- Staleness (KG Req 7) ---
217
+ knowledge
218
+ .command('stale')
219
+ .description('List entities that may no longer reflect the code')
220
+ .option('--days <n>', 'Age threshold in days', (v) => parseInt(v, 10), DEFAULT_STALE_DAYS)
221
+ .option('--check-git', 'Also degrade confidence of entities whose source files changed')
222
+ .option('--format <fmt>', 'Output format: yaml or json', 'yaml')
223
+ .action((opts) => {
224
+ withEngine((engine) => {
225
+ const stale = engine.staleness.byAge(opts.days);
226
+ const degraded = opts.checkGit ? engine.staleness.degradeChanged() : [];
227
+ emit([...stale, ...degraded].map((s) => ({
228
+ id: s.entity.id,
229
+ confidence: s.entity.confidence,
230
+ reason: s.reason,
231
+ detail: s.detail,
232
+ })), opts.format);
233
+ });
234
+ });
235
+ knowledge
236
+ .command('verify')
237
+ .description('Confirm an entity is still accurate (bumps lastVerified and confidence)')
238
+ .argument('<id>', 'Entity id')
239
+ .action((id) => {
240
+ withEngine((engine) => {
241
+ const entity = engine.staleness.verify(id);
242
+ process.stdout.write(`Verified '${entity.id}' (confidence ${entity.confidence.toFixed(2)})\n`);
243
+ });
244
+ });
245
+ // --- Index maintenance (KG Req 3) ---
246
+ knowledge
247
+ .command('rebuild')
248
+ .description('Rebuild the SQLite index from YAML sources')
249
+ .action(() => {
250
+ withEngine((engine) => {
251
+ const loaded = engine.source.loadAll();
252
+ reportWarnings(loaded.warnings);
253
+ engine.index.rebuild(loaded.entities, loaded.relationships);
254
+ engine.source.touchLastIndexed(new Date().toISOString());
255
+ process.stdout.write(`Rebuilt index: ${loaded.entities.length} entities, ${loaded.relationships.length} relationships\n`);
256
+ });
257
+ });
258
+ // --- Multi-user (KG Req 12) ---
259
+ knowledge
260
+ .command('sync')
261
+ .description('After git pull: rebuild the index and report suspicious merges')
262
+ .option('--format <fmt>', 'Output format: yaml or json', 'yaml')
263
+ .action((opts) => {
264
+ withEngine((engine) => {
265
+ const result = syncKnowledge(engine.source, engine.index);
266
+ emit(result, opts.format);
267
+ if (result.warnings.length > 0) {
268
+ process.stderr.write(`${result.warnings.length} warning(s) — review above output.\n`);
269
+ }
270
+ });
271
+ });
272
+ knowledge
273
+ .command('compact')
274
+ .description('Deduplicate and normalize YAML source files (rewrites files)')
275
+ .action(() => {
276
+ withEngine((engine) => {
277
+ const result = compactKnowledge(engine.source, engine.index);
278
+ reportWarnings(result.warnings);
279
+ process.stdout.write(`Compacted: ${result.duplicatesRemoved} duplicates removed, ` +
280
+ `${result.orphanRelationshipsRemoved} orphan relationships removed, ` +
281
+ `${result.filesRewritten.length} files rewritten\n`);
282
+ });
283
+ });
284
+ knowledge
285
+ .command('install-merge-driver')
286
+ .description('Install the git merge driver for knowledge YAML files (writes git config)')
287
+ .option('--yes', 'Skip the confirmation prompt (CI)')
288
+ .action(async (opts) => {
289
+ await installMergeDriver(process.cwd(), opts.yes ?? false);
290
+ });
291
+ knowledge
292
+ .command('merge-driver', { hidden: true })
293
+ .description('Git merge driver entry point (invoked by git, not humans)')
294
+ .argument('<base>', 'Ancestor version file (%O)')
295
+ .argument('<ours>', 'Current version file (%A) — result is written here')
296
+ .argument('<theirs>', 'Other version file (%B)')
297
+ .action((base, ours, theirs) => {
298
+ runMergeDriver(base, ours, theirs);
299
+ });
300
+ }
301
+ // ---------------------------------------------------------------------------
302
+ // Helpers
303
+ // ---------------------------------------------------------------------------
304
+ function entityFromFlags(opts) {
305
+ if (!opts.id || !opts.type || !opts.name) {
306
+ throw new Error('--id, --type, and --name are required (or use --stdin)');
307
+ }
308
+ // Runtime type validity is enforced by the Writer (KG Req 4.5).
309
+ const entity = {
310
+ id: opts.id,
311
+ type: opts.type,
312
+ name: opts.name,
313
+ tags: parseTags(opts.tags),
314
+ };
315
+ if (opts.description !== undefined)
316
+ entity.description = opts.description;
317
+ if (opts.confidence !== undefined)
318
+ entity.confidence = opts.confidence;
319
+ if (opts.source !== undefined)
320
+ entity.source = opts.source;
321
+ return entity;
322
+ }
323
+ function readEntitiesFromStdin() {
324
+ const raw = readFileSync(0, 'utf8');
325
+ const docs = parseAllDocuments(raw);
326
+ const entities = [];
327
+ for (const doc of docs) {
328
+ const obj = doc.toJSON();
329
+ if (obj && typeof obj === 'object' && obj.id)
330
+ entities.push(obj);
331
+ }
332
+ if (entities.length === 0) {
333
+ throw new Error('No entity documents found on stdin');
334
+ }
335
+ return entities;
336
+ }
337
+ function parseImportFile(file) {
338
+ if (!existsSync(file)) {
339
+ throw new Error(`File not found: ${file}`);
340
+ }
341
+ const raw = readFileSync(file, 'utf8');
342
+ // Object form: { entities: [...], relationships: [...] } — only applies to
343
+ // single-document files; parse() throws on multi-document input.
344
+ try {
345
+ const single = parse(raw);
346
+ if (single && typeof single === 'object' && Array.isArray(single.entities)) {
347
+ return {
348
+ entities: single.entities,
349
+ relationships: (single.relationships ?? []),
350
+ };
351
+ }
352
+ }
353
+ catch {
354
+ // Multi-document file — handled below.
355
+ }
356
+ // Multi-document form: entities and relationships as separate documents.
357
+ const entities = [];
358
+ const relationships = [];
359
+ for (const doc of parseAllDocuments(raw)) {
360
+ const obj = doc.toJSON();
361
+ if (!obj || typeof obj !== 'object' || '_meta' in obj)
362
+ continue;
363
+ if (typeof obj.from === 'string' && typeof obj.to === 'string') {
364
+ relationships.push(obj);
365
+ }
366
+ else if (typeof obj.id === 'string') {
367
+ entities.push(obj);
368
+ }
369
+ }
370
+ return { entities, relationships };
371
+ }
372
+ function resolveScope(opts) {
373
+ if (opts.scope === 'phase') {
374
+ if (!opts.phase)
375
+ throw new Error('--phase <name> is required with --scope phase');
376
+ return { type: 'phase', phase: opts.phase };
377
+ }
378
+ if (opts.scope === 'file') {
379
+ if (!opts.file)
380
+ throw new Error('--file <path> is required with --scope file');
381
+ return { type: 'file', path: opts.file };
382
+ }
383
+ return { type: 'full' };
384
+ }
385
+ // ---------------------------------------------------------------------------
386
+ // Merge driver
387
+ // ---------------------------------------------------------------------------
388
+ /**
389
+ * Git merge driver protocol: read %O/%A/%B files, write the merged result to
390
+ * %A (ours), exit 0 on success. Exit 0 even with auto-resolved conflicts —
391
+ * the resolution strategy is the whole point (KG Req 12.2/12.3); suspicious
392
+ * outcomes are surfaced by `knowledge sync`.
393
+ */
394
+ function runMergeDriver(basePath, oursPath, theirsPath) {
395
+ try {
396
+ const base = existsSync(basePath) ? readFileSync(basePath, 'utf8') : '';
397
+ const ours = readFileSync(oursPath, 'utf8');
398
+ const theirs = readFileSync(theirsPath, 'utf8');
399
+ const result = mergeKnowledgeFiles(base, ours, theirs);
400
+ writeFileSync(oursPath, result.content, 'utf8');
401
+ for (const conflict of result.conflicts) {
402
+ process.stderr.write(`aidlc-knowledge merge: auto-resolved conflict on '${conflict.id}'\n`);
403
+ }
404
+ for (const warning of result.warnings) {
405
+ process.stderr.write(`aidlc-knowledge merge: ${warning}\n`);
406
+ }
407
+ process.exitCode = 0;
408
+ }
409
+ catch (err) {
410
+ process.stderr.write(`aidlc-knowledge merge failed: ${err.message}\n`);
411
+ process.exitCode = 1;
412
+ }
413
+ }
414
+ const GITATTRIBUTES_LINE = `${KNOWLEDGE_DIR}/*.yaml merge=aidlc-knowledge`;
415
+ /**
416
+ * Consent-gated installation (NFR N7): describes exactly what will be written
417
+ * to git config and .gitattributes, then waits for explicit confirmation.
418
+ */
419
+ async function installMergeDriver(projectRoot, skipConfirm) {
420
+ const configCommands = [
421
+ `git config merge.aidlc-knowledge.name "AIDLC knowledge graph YAML merge"`,
422
+ `git config merge.aidlc-knowledge.driver "aidlc knowledge merge-driver %O %A %B"`,
423
+ ];
424
+ process.stdout.write('This will modify your repository git configuration:\n\n');
425
+ process.stdout.write(` 1. Append to .gitattributes:\n ${GITATTRIBUTES_LINE}\n`);
426
+ process.stdout.write(` 2. Run:\n ${configCommands.join('\n ')}\n\n`);
427
+ process.stdout.write('The driver auto-merges knowledge YAML files during git merges.\n');
428
+ process.stdout.write('Reversible: remove the .gitattributes line and the [merge "aidlc-knowledge"] config section.\n\n');
429
+ if (!skipConfirm) {
430
+ const confirmed = await clack.confirm({ message: 'Write git configuration now?' });
431
+ if (confirmed !== true) {
432
+ process.stderr.write('Cancelled — no changes made.\n');
433
+ process.exitCode = 1;
434
+ return;
435
+ }
436
+ }
437
+ try {
438
+ // .gitattributes (idempotent append)
439
+ const attributesPath = join(projectRoot, '.gitattributes');
440
+ const current = existsSync(attributesPath) ? readFileSync(attributesPath, 'utf8') : '';
441
+ if (!current.includes(GITATTRIBUTES_LINE)) {
442
+ appendFileSync(attributesPath, (current && !current.endsWith('\n') ? '\n' : '') + GITATTRIBUTES_LINE + '\n', 'utf8');
443
+ }
444
+ for (const cmd of configCommands) {
445
+ execSync(cmd, { cwd: projectRoot, stdio: ['ignore', 'ignore', 'pipe'] });
446
+ }
447
+ process.stdout.write('Merge driver installed.\n');
448
+ }
449
+ catch (err) {
450
+ process.stderr.write(`Error installing merge driver: ${err.message}\n`);
451
+ process.exitCode = 1;
452
+ }
453
+ }
454
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/commands/knowledge.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,10 @@
13
13
  * - Create instance namespace under `.aidlc/state/<name>/`.
14
14
  * - Write `instance.yaml` with initial state.
15
15
  * - Write initial `phase-<name>.yaml` files for all applicable phases (status: pending).
16
+ * - Fire the on-instance-start event (actions from `.aidlc/actions.yaml`).
16
17
  * - Print summary to stdout.
17
18
  *
18
- * Requirements: 5.1, 8.2, 23.1
19
+ * Requirements: 5.1, 8.2, 20.1, 23.1
19
20
  *
20
21
  * @module
21
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8FpC;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBpD"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiGpC;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBpD"}
@@ -13,9 +13,10 @@
13
13
  * - Create instance namespace under `.aidlc/state/<name>/`.
14
14
  * - Write `instance.yaml` with initial state.
15
15
  * - Write initial `phase-<name>.yaml` files for all applicable phases (status: pending).
16
+ * - Fire the on-instance-start event (actions from `.aidlc/actions.yaml`).
16
17
  * - Print summary to stdout.
17
18
  *
18
- * Requirements: 5.1, 8.2, 23.1
19
+ * Requirements: 5.1, 8.2, 20.1, 23.1
19
20
  *
20
21
  * @module
21
22
  */
@@ -26,6 +27,7 @@ import * as clack from '@clack/prompts';
26
27
  import { loadTemplates as loadBuiltInTemplates } from '@rasensio/aidlc-content';
27
28
  import { loadTemplates, resolveTemplate, phasesForScope, } from '../core/template-resolver.js';
28
29
  import { saveSnapshot, createInstanceDir } from '../state/snapshot-store.js';
30
+ import { emit, loadActionsConfig } from '../events/event-bus.js';
29
31
  // ---------------------------------------------------------------------------
30
32
  // Constants
31
33
  // ---------------------------------------------------------------------------
@@ -236,6 +238,34 @@ async function runStart(templateArg, opts) {
236
238
  process.stdout.write(` Phase: ${currentPhase}\n`);
237
239
  process.stdout.write(` Phases: ${applicablePhases.map((p) => p.name).join(' → ')}\n`);
238
240
  process.stdout.write(` Path: .aidlc/state/${instanceName}/\n`);
241
+ // Fire the on-instance-start event (Req 20.1)
242
+ const actionsPath = join(projectRoot, '.aidlc', 'actions.yaml');
243
+ let actionsConfig = null;
244
+ try {
245
+ actionsConfig = loadActionsConfig(actionsPath);
246
+ }
247
+ catch {
248
+ // Non-fatal: proceed without actions
249
+ }
250
+ const startPayload = {
251
+ event: 'on-instance-start',
252
+ instance: instanceName,
253
+ phase: currentPhase,
254
+ template: selectedTemplateName,
255
+ };
256
+ const dispatchReport = emit(startPayload, actionsConfig);
257
+ for (const fired of dispatchReport.fired) {
258
+ if (fired.success) {
259
+ process.stdout.write(` Action: ${fired.id} ✓\n`);
260
+ }
261
+ else {
262
+ process.stderr.write(` Action: ${fired.id} ✗ ${fired.error ?? 'failed'}\n`);
263
+ const definition = actionsConfig?.actions.find((a) => a.id === fired.id);
264
+ if (definition?.blocking) {
265
+ process.exitCode = 1;
266
+ }
267
+ }
268
+ }
239
269
  process.stdout.write(`\n`);
240
270
  }
241
271
  //# sourceMappingURL=start.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../src/commands/transition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsKpC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUzD"}
1
+ {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../src/commands/transition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwKpC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUzD"}
@@ -27,6 +27,7 @@ import { existsSync, readdirSync, readFileSync } from 'node:fs';
27
27
  import { join } from 'node:path';
28
28
  import { loadTemplates as loadBuiltInTemplates } from '@rasensio/aidlc-content';
29
29
  import { evaluateTransition, nextStep } from '../core/lifecycle.js';
30
+ import { evaluateKnowledgeCriterion } from '../knowledge/gate-criterion.js';
30
31
  import { loadSnapshot, saveSnapshot } from '../state/snapshot-store.js';
31
32
  import { appendTransition } from '../state/transition-log.js';
32
33
  import { loadTemplates, resolveTemplate } from '../core/template-resolver.js';
@@ -210,7 +211,19 @@ function runTransition(instanceArg, opts) {
210
211
  // Load findings for review gate evaluation
211
212
  const findings = loadFindings(stateDir, instanceArg);
212
213
  // Evaluate transition gates
213
- const result = evaluateTransition(instanceState, phaseStates, resolvedTemplate, actor, findings, opts.override);
214
+ let result = evaluateTransition(instanceState, phaseStates, resolvedTemplate, actor, findings, opts.override);
215
+ // Knowledge seeding criterion — ideation only, computed live (KG Req 8.5)
216
+ const knowledgeCriteria = evaluateKnowledgeCriterion(projectRoot, instanceState.current_phase);
217
+ if (knowledgeCriteria.length > 0) {
218
+ const knowledgeViolations = knowledgeCriteria.map((reason) => ({
219
+ gate: 'knowledge-seeding',
220
+ reason,
221
+ }));
222
+ result = {
223
+ allowed: false,
224
+ violations: [...(result.allowed ? [] : result.violations), ...knowledgeViolations],
225
+ };
226
+ }
214
227
  if (!result.allowed) {
215
228
  // Transition blocked — print violations
216
229
  if (opts.json) {