@ai-sdlc/orchestrator 0.5.0 → 0.9.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 (227) hide show
  1. package/dist/action-enforcement.d.ts +26 -0
  2. package/dist/action-enforcement.js +70 -0
  3. package/dist/admission-composite.d.ts +67 -0
  4. package/dist/admission-composite.js +158 -0
  5. package/dist/admission-enrichment.d.ts +142 -0
  6. package/dist/admission-enrichment.js +331 -0
  7. package/dist/admission-hc.d.ts +62 -0
  8. package/dist/admission-hc.js +83 -0
  9. package/dist/admission-score.d.ts +148 -0
  10. package/dist/admission-score.js +237 -0
  11. package/dist/analysis/analyzer.js +3 -2
  12. package/dist/analysis/convention-detector.d.ts +85 -2
  13. package/dist/analysis/convention-detector.js +375 -70
  14. package/dist/analysis/diff-analyzer.d.ts +33 -0
  15. package/dist/analysis/diff-analyzer.js +122 -0
  16. package/dist/analysis/hotspot-analyzer.js +3 -1
  17. package/dist/analysis/index.d.ts +2 -1
  18. package/dist/analysis/index.js +2 -1
  19. package/dist/artifacts/index.d.ts +65 -0
  20. package/dist/artifacts/index.js +142 -0
  21. package/dist/backlog-adapter.d.ts +121 -0
  22. package/dist/backlog-adapter.js +438 -0
  23. package/dist/calibration.d.ts +43 -0
  24. package/dist/calibration.js +76 -0
  25. package/dist/cli/commands/agents.d.ts +24 -0
  26. package/dist/cli/commands/agents.js +66 -1
  27. package/dist/cli/commands/git-remote.d.ts +49 -0
  28. package/dist/cli/commands/git-remote.js +91 -0
  29. package/dist/cli/commands/health.d.ts +4 -0
  30. package/dist/cli/commands/health.js +13 -1
  31. package/dist/cli/commands/init.d.ts +26 -0
  32. package/dist/cli/commands/init.js +164 -22
  33. package/dist/cli/commands/mcp-setup.d.ts +31 -0
  34. package/dist/cli/commands/mcp-setup.js +78 -8
  35. package/dist/cli/formatters/table.js +15 -2
  36. package/dist/cli/index.d.ts +14 -1
  37. package/dist/cli/index.js +81 -20
  38. package/dist/cli/versions.d.ts +57 -0
  39. package/dist/cli/versions.js +128 -0
  40. package/dist/code-area-classifier.d.ts +21 -0
  41. package/dist/code-area-classifier.js +48 -0
  42. package/dist/config.d.ts +33 -1
  43. package/dist/config.js +78 -8
  44. package/dist/cycle-utils.d.ts +51 -0
  45. package/dist/cycle-utils.js +77 -0
  46. package/dist/database/adapters/external.d.ts +24 -0
  47. package/dist/database/adapters/external.js +80 -0
  48. package/dist/database/adapters/neon.d.ts +41 -0
  49. package/dist/database/adapters/neon.js +98 -0
  50. package/dist/database/adapters/pg-snapshot-restore.d.ts +28 -0
  51. package/dist/database/adapters/pg-snapshot-restore.js +68 -0
  52. package/dist/database/adapters/sqlite-copy.d.ts +32 -0
  53. package/dist/database/adapters/sqlite-copy.js +145 -0
  54. package/dist/database/connection-injection.d.ts +35 -0
  55. package/dist/database/connection-injection.js +93 -0
  56. package/dist/database/index.d.ts +12 -0
  57. package/dist/database/index.js +23 -0
  58. package/dist/database/registry.d.ts +13 -0
  59. package/dist/database/registry.js +27 -0
  60. package/dist/database/topology.d.ts +52 -0
  61. package/dist/database/topology.js +44 -0
  62. package/dist/database/types.d.ts +89 -0
  63. package/dist/database/types.js +26 -0
  64. package/dist/defaults.d.ts +5 -0
  65. package/dist/defaults.js +5 -0
  66. package/dist/design-authority.d.ts +40 -0
  67. package/dist/design-authority.js +71 -0
  68. package/dist/design-lookahead.d.ts +64 -0
  69. package/dist/design-lookahead.js +86 -0
  70. package/dist/design-quality-trend.d.ts +87 -0
  71. package/dist/design-quality-trend.js +190 -0
  72. package/dist/design-system-context.d.ts +46 -0
  73. package/dist/design-system-context.js +80 -0
  74. package/dist/design-system-correction-loop.d.ts +64 -0
  75. package/dist/design-system-correction-loop.js +128 -0
  76. package/dist/design-system-metrics.d.ts +61 -0
  77. package/dist/design-system-metrics.js +104 -0
  78. package/dist/design-system-stewardship.d.ts +22 -0
  79. package/dist/design-system-stewardship.js +85 -0
  80. package/dist/design-system-validation.d.ts +37 -0
  81. package/dist/design-system-validation.js +88 -0
  82. package/dist/dispatch/index.d.ts +4 -0
  83. package/dist/dispatch/index.js +4 -0
  84. package/dist/dispatch/merge-gate.d.ts +46 -0
  85. package/dist/dispatch/merge-gate.js +90 -0
  86. package/dist/dispatch/requeue.d.ts +57 -0
  87. package/dist/dispatch/requeue.js +131 -0
  88. package/dist/dispatch/worker-pool.d.ts +62 -0
  89. package/dist/dispatch/worker-pool.js +60 -0
  90. package/dist/execute.d.ts +40 -0
  91. package/dist/execute.js +295 -30
  92. package/dist/fix-ci.js +40 -3
  93. package/dist/fix-review.d.ts +66 -0
  94. package/dist/fix-review.js +448 -0
  95. package/dist/harness/adapters/claude-code.d.ts +29 -0
  96. package/dist/harness/adapters/claude-code.js +191 -0
  97. package/dist/harness/adapters/codex.d.ts +25 -0
  98. package/dist/harness/adapters/codex.js +61 -0
  99. package/dist/harness/independence.d.ts +51 -0
  100. package/dist/harness/independence.js +67 -0
  101. package/dist/harness/index.d.ts +14 -0
  102. package/dist/harness/index.js +20 -0
  103. package/dist/harness/registry.d.ts +17 -0
  104. package/dist/harness/registry.js +31 -0
  105. package/dist/harness/types.d.ts +123 -0
  106. package/dist/harness/types.js +8 -0
  107. package/dist/harness/version-probe.d.ts +14 -0
  108. package/dist/harness/version-probe.js +123 -0
  109. package/dist/index.d.ts +39 -5
  110. package/dist/index.js +48 -3
  111. package/dist/models/classifier.d.ts +76 -0
  112. package/dist/models/classifier.js +221 -0
  113. package/dist/models/index.d.ts +3 -0
  114. package/dist/models/index.js +3 -0
  115. package/dist/models/registry.d.ts +97 -0
  116. package/dist/models/registry.js +173 -0
  117. package/dist/pillar-breakdown.d.ts +63 -0
  118. package/dist/pillar-breakdown.js +153 -0
  119. package/dist/pipeline-cycle-detector.d.ts +70 -0
  120. package/dist/pipeline-cycle-detector.js +111 -0
  121. package/dist/priority.d.ts +7 -76
  122. package/dist/priority.js +18 -5
  123. package/dist/review-meta.d.ts +65 -0
  124. package/dist/review-meta.js +149 -0
  125. package/dist/review.d.ts +35 -0
  126. package/dist/review.js +84 -0
  127. package/dist/runners/claude-code-sdk.d.ts +31 -0
  128. package/dist/runners/claude-code-sdk.js +238 -0
  129. package/dist/runners/claude-code.d.ts +3 -0
  130. package/dist/runners/claude-code.js +319 -73
  131. package/dist/runners/codex.js +4 -1
  132. package/dist/runners/copilot.js +4 -1
  133. package/dist/runners/cursor.js +4 -1
  134. package/dist/runners/git-utils.d.ts +81 -0
  135. package/dist/runners/git-utils.js +201 -0
  136. package/dist/runners/index.d.ts +5 -1
  137. package/dist/runners/index.js +4 -0
  138. package/dist/runners/review-agent.d.ts +67 -0
  139. package/dist/runners/review-agent.js +350 -0
  140. package/dist/runners/runner-registry.js +10 -0
  141. package/dist/runners/sdk-review-runner.d.ts +65 -0
  142. package/dist/runners/sdk-review-runner.js +185 -0
  143. package/dist/runners/security-triage.d.ts +20 -4
  144. package/dist/runners/security-triage.js +42 -14
  145. package/dist/runners/types.d.ts +25 -0
  146. package/dist/runtime/attestations.d.ts +274 -0
  147. package/dist/runtime/attestations.js +460 -0
  148. package/dist/runtime/git-env.d.ts +53 -0
  149. package/dist/runtime/git-env.js +60 -0
  150. package/dist/runtime/index.d.ts +7 -0
  151. package/dist/runtime/index.js +7 -0
  152. package/dist/runtime/parallelism-flag.d.ts +10 -0
  153. package/dist/runtime/parallelism-flag.js +18 -0
  154. package/dist/runtime/port-allocator.d.ts +21 -0
  155. package/dist/runtime/port-allocator.js +66 -0
  156. package/dist/runtime/worktree-pool.d.ts +86 -0
  157. package/dist/runtime/worktree-pool.js +204 -0
  158. package/dist/runtime/worktree.d.ts +25 -0
  159. package/dist/runtime/worktree.js +111 -0
  160. package/dist/sa-scoring/auto-calibrate.d.ts +69 -0
  161. package/dist/sa-scoring/auto-calibrate.js +107 -0
  162. package/dist/sa-scoring/c1-sa2-computable.d.ts +42 -0
  163. package/dist/sa-scoring/c1-sa2-computable.js +59 -0
  164. package/dist/sa-scoring/composite.d.ts +107 -0
  165. package/dist/sa-scoring/composite.js +139 -0
  166. package/dist/sa-scoring/depparse-client.d.ts +79 -0
  167. package/dist/sa-scoring/depparse-client.js +187 -0
  168. package/dist/sa-scoring/did-compiler.d.ts +122 -0
  169. package/dist/sa-scoring/did-compiler.js +286 -0
  170. package/dist/sa-scoring/drift-monitor.d.ts +84 -0
  171. package/dist/sa-scoring/drift-monitor.js +186 -0
  172. package/dist/sa-scoring/exemplar-bank.d.ts +78 -0
  173. package/dist/sa-scoring/exemplar-bank.js +154 -0
  174. package/dist/sa-scoring/feedback-store.d.ts +100 -0
  175. package/dist/sa-scoring/feedback-store.js +156 -0
  176. package/dist/sa-scoring/index.d.ts +71 -0
  177. package/dist/sa-scoring/index.js +158 -0
  178. package/dist/sa-scoring/layer1-deterministic.d.ts +115 -0
  179. package/dist/sa-scoring/layer1-deterministic.js +298 -0
  180. package/dist/sa-scoring/layer2-structural.d.ts +71 -0
  181. package/dist/sa-scoring/layer2-structural.js +151 -0
  182. package/dist/sa-scoring/layer3-llm.d.ts +86 -0
  183. package/dist/sa-scoring/layer3-llm.js +282 -0
  184. package/dist/sa-scoring/rescore-orchestrator.d.ts +52 -0
  185. package/dist/sa-scoring/rescore-orchestrator.js +47 -0
  186. package/dist/scheduling/burn-down.d.ts +27 -0
  187. package/dist/scheduling/burn-down.js +43 -0
  188. package/dist/scheduling/calibration.d.ts +42 -0
  189. package/dist/scheduling/calibration.js +150 -0
  190. package/dist/scheduling/index.d.ts +8 -0
  191. package/dist/scheduling/index.js +8 -0
  192. package/dist/scheduling/ledger.d.ts +59 -0
  193. package/dist/scheduling/ledger.js +216 -0
  194. package/dist/scheduling/off-peak.d.ts +27 -0
  195. package/dist/scheduling/off-peak.js +112 -0
  196. package/dist/scheduling/schedule-decision.d.ts +39 -0
  197. package/dist/scheduling/schedule-decision.js +89 -0
  198. package/dist/scheduling/tier-analysis.d.ts +47 -0
  199. package/dist/scheduling/tier-analysis.js +81 -0
  200. package/dist/scheduling/types.d.ts +140 -0
  201. package/dist/scheduling/types.js +11 -0
  202. package/dist/shared.d.ts +13 -0
  203. package/dist/shared.js +32 -0
  204. package/dist/state/index.d.ts +1 -1
  205. package/dist/state/schema.d.ts +6 -1
  206. package/dist/state/schema.js +276 -1
  207. package/dist/state/store.d.ts +71 -1
  208. package/dist/state/store.js +464 -7
  209. package/dist/state/types.d.ts +174 -0
  210. package/dist/types.d.ts +1 -1
  211. package/dist/validate-agent-output.js +4 -1
  212. package/dist/watch.js +6 -0
  213. package/dist/workflow-patterns/artifact-writer.d.ts +16 -0
  214. package/dist/workflow-patterns/artifact-writer.js +34 -0
  215. package/dist/workflow-patterns/classifiers.d.ts +10 -0
  216. package/dist/workflow-patterns/classifiers.js +72 -0
  217. package/dist/workflow-patterns/detector.d.ts +27 -0
  218. package/dist/workflow-patterns/detector.js +186 -0
  219. package/dist/workflow-patterns/index.d.ts +8 -0
  220. package/dist/workflow-patterns/index.js +7 -0
  221. package/dist/workflow-patterns/proposal-generator.d.ts +15 -0
  222. package/dist/workflow-patterns/proposal-generator.js +183 -0
  223. package/dist/workflow-patterns/telemetry-ingest.d.ts +27 -0
  224. package/dist/workflow-patterns/telemetry-ingest.js +103 -0
  225. package/dist/workflow-patterns/types.d.ts +61 -0
  226. package/dist/workflow-patterns/types.js +11 -0
  227. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * SQLite DDL and migrations for the state store.
3
3
  */
4
- export const CURRENT_SCHEMA_VERSION = 8;
4
+ export const CURRENT_SCHEMA_VERSION = 12;
5
5
  export const SCHEMA_DDL = `
6
6
  CREATE TABLE IF NOT EXISTS schema_version (
7
7
  version INTEGER PRIMARY KEY,
@@ -262,6 +262,261 @@ CREATE INDEX IF NOT EXISTS idx_priority_calibration_sampled ON priority_calibrat
262
262
  ALTER TABLE episodic_memory ADD COLUMN priority_composite REAL;
263
263
  ALTER TABLE episodic_memory ADD COLUMN priority_confidence REAL;
264
264
  `;
265
+ export const MIGRATION_V9 = `
266
+ -- Workflow pattern detection tables
267
+
268
+ -- Tool sequence events captured by PostToolUse hook
269
+ CREATE TABLE IF NOT EXISTS tool_sequence_events (
270
+ id INTEGER PRIMARY KEY,
271
+ session_id TEXT NOT NULL,
272
+ tool_name TEXT NOT NULL,
273
+ action_canonical TEXT NOT NULL,
274
+ project_path TEXT,
275
+ timestamp TEXT NOT NULL,
276
+ ingested_at TEXT DEFAULT (datetime('now'))
277
+ );
278
+ CREATE INDEX IF NOT EXISTS idx_tool_seq_session ON tool_sequence_events(session_id);
279
+ CREATE INDEX IF NOT EXISTS idx_tool_seq_ts ON tool_sequence_events(timestamp);
280
+
281
+ -- Detected workflow patterns (from n-gram mining)
282
+ CREATE TABLE IF NOT EXISTS workflow_patterns (
283
+ id INTEGER PRIMARY KEY,
284
+ pattern_hash TEXT NOT NULL UNIQUE,
285
+ pattern_type TEXT NOT NULL,
286
+ sequence_json TEXT NOT NULL,
287
+ frequency INTEGER NOT NULL,
288
+ session_count INTEGER NOT NULL,
289
+ confidence REAL NOT NULL,
290
+ first_seen TEXT,
291
+ last_seen TEXT,
292
+ status TEXT DEFAULT 'detected',
293
+ detected_at TEXT DEFAULT (datetime('now'))
294
+ );
295
+ CREATE INDEX IF NOT EXISTS idx_workflow_patterns_status ON workflow_patterns(status);
296
+
297
+ -- Automation proposals for human review
298
+ CREATE TABLE IF NOT EXISTS pattern_proposals (
299
+ id INTEGER PRIMARY KEY,
300
+ pattern_id INTEGER NOT NULL,
301
+ proposal_type TEXT NOT NULL,
302
+ artifact_type TEXT NOT NULL,
303
+ artifact_path TEXT,
304
+ draft_content TEXT NOT NULL,
305
+ confidence REAL NOT NULL,
306
+ status TEXT DEFAULT 'pending',
307
+ reviewed_at TEXT,
308
+ reviewer_reason TEXT,
309
+ created_at TEXT DEFAULT (datetime('now')),
310
+ FOREIGN KEY (pattern_id) REFERENCES workflow_patterns(id)
311
+ );
312
+ CREATE INDEX IF NOT EXISTS idx_pattern_proposals_status ON pattern_proposals(status);
313
+ `;
314
+ export const MIGRATION_V10 = `
315
+ -- Design System Governance tables (RFC-0006)
316
+
317
+ CREATE TABLE IF NOT EXISTS design_token_events (
318
+ id INTEGER PRIMARY KEY,
319
+ binding_name TEXT NOT NULL,
320
+ event_type TEXT NOT NULL,
321
+ tokens_affected INTEGER DEFAULT 0,
322
+ diff_json TEXT,
323
+ actor TEXT,
324
+ pipeline_run_id TEXT,
325
+ design_review_decision TEXT,
326
+ created_at TEXT DEFAULT (datetime('now'))
327
+ );
328
+ CREATE INDEX IF NOT EXISTS idx_design_token_events_binding ON design_token_events(binding_name);
329
+ CREATE INDEX IF NOT EXISTS idx_design_token_events_type ON design_token_events(event_type);
330
+ CREATE INDEX IF NOT EXISTS idx_design_token_events_run ON design_token_events(pipeline_run_id);
331
+
332
+ CREATE TABLE IF NOT EXISTS design_review_events (
333
+ id INTEGER PRIMARY KEY,
334
+ binding_name TEXT NOT NULL,
335
+ pr_number INTEGER,
336
+ component_name TEXT,
337
+ reviewer TEXT NOT NULL,
338
+ decision TEXT NOT NULL,
339
+ categories_json TEXT,
340
+ actionable_notes TEXT,
341
+ created_at TEXT DEFAULT (datetime('now'))
342
+ );
343
+ CREATE INDEX IF NOT EXISTS idx_design_review_events_binding ON design_review_events(binding_name);
344
+ CREATE INDEX IF NOT EXISTS idx_design_review_events_pr ON design_review_events(pr_number);
345
+ CREATE INDEX IF NOT EXISTS idx_design_review_events_decision ON design_review_events(decision);
346
+
347
+ CREATE TABLE IF NOT EXISTS token_compliance_history (
348
+ id INTEGER PRIMARY KEY,
349
+ binding_name TEXT NOT NULL,
350
+ coverage_percent REAL NOT NULL,
351
+ violations_count INTEGER NOT NULL DEFAULT 0,
352
+ scanned_at TEXT DEFAULT (datetime('now'))
353
+ );
354
+ CREATE INDEX IF NOT EXISTS idx_token_compliance_binding ON token_compliance_history(binding_name);
355
+
356
+ CREATE TABLE IF NOT EXISTS visual_regression_results (
357
+ id INTEGER PRIMARY KEY,
358
+ binding_name TEXT NOT NULL,
359
+ story_name TEXT NOT NULL,
360
+ viewport INTEGER,
361
+ diff_percentage REAL NOT NULL,
362
+ approved INTEGER DEFAULT 0,
363
+ approver TEXT,
364
+ baseline_url TEXT,
365
+ current_url TEXT,
366
+ created_at TEXT DEFAULT (datetime('now'))
367
+ );
368
+ CREATE INDEX IF NOT EXISTS idx_visual_regression_binding ON visual_regression_results(binding_name);
369
+ CREATE INDEX IF NOT EXISTS idx_visual_regression_story ON visual_regression_results(story_name);
370
+
371
+ CREATE TABLE IF NOT EXISTS usability_simulation_results (
372
+ id INTEGER PRIMARY KEY,
373
+ binding_name TEXT NOT NULL,
374
+ story_name TEXT NOT NULL,
375
+ persona_id TEXT,
376
+ task_id TEXT,
377
+ completed INTEGER DEFAULT 0,
378
+ actions_taken INTEGER,
379
+ expected_actions INTEGER,
380
+ efficiency REAL,
381
+ findings_json TEXT,
382
+ created_at TEXT DEFAULT (datetime('now'))
383
+ );
384
+ CREATE INDEX IF NOT EXISTS idx_usability_sim_binding ON usability_simulation_results(binding_name);
385
+ CREATE INDEX IF NOT EXISTS idx_usability_sim_story ON usability_simulation_results(story_name);
386
+ `;
387
+ export const MIGRATION_V11 = `
388
+ -- PPA Triad Integration tables (RFC-0008)
389
+
390
+ -- Compiled DID artifacts: scope lists, constraint rules, anti-pattern lists,
391
+ -- BM25 corpus (SA-1), principle corpora (SA-2). Keyed by source_hash so the
392
+ -- reconciler can detect DID changes cheaply.
393
+ CREATE TABLE IF NOT EXISTS did_compiled_artifacts (
394
+ id INTEGER PRIMARY KEY,
395
+ did_name TEXT NOT NULL,
396
+ namespace TEXT,
397
+ source_hash TEXT NOT NULL,
398
+ scope_lists_json TEXT,
399
+ constraint_rules_json TEXT,
400
+ anti_pattern_lists_json TEXT,
401
+ measurable_signals_json TEXT,
402
+ bm25_corpus_blob BLOB,
403
+ principle_corpora_blob BLOB,
404
+ compiled_at TEXT DEFAULT (datetime('now'))
405
+ );
406
+ CREATE INDEX IF NOT EXISTS idx_did_compiled_did ON did_compiled_artifacts(did_name);
407
+ CREATE INDEX IF NOT EXISTS idx_did_compiled_hash ON did_compiled_artifacts(source_hash);
408
+
409
+ -- SA scoring events: layer 1/2/3 results per issue, phase weights, composite score.
410
+ CREATE TABLE IF NOT EXISTS did_scoring_events (
411
+ id INTEGER PRIMARY KEY,
412
+ did_name TEXT NOT NULL,
413
+ issue_number INTEGER NOT NULL,
414
+ sa_dimension TEXT NOT NULL,
415
+ phase TEXT NOT NULL,
416
+ layer1_result_json TEXT,
417
+ layer2_result_json TEXT,
418
+ layer3_result_json TEXT,
419
+ composite_score REAL,
420
+ phase_weights_json TEXT,
421
+ created_at TEXT DEFAULT (datetime('now'))
422
+ );
423
+ CREATE INDEX IF NOT EXISTS idx_did_scoring_did ON did_scoring_events(did_name);
424
+ CREATE INDEX IF NOT EXISTS idx_did_scoring_issue ON did_scoring_events(issue_number);
425
+ CREATE INDEX IF NOT EXISTS idx_did_scoring_created ON did_scoring_events(created_at);
426
+
427
+ -- SA feedback events: accept/dismiss/escalate/override signals from Product/Design leads.
428
+ -- Used by C6 calibration (M6) and Phase 3 weight auto-calibration.
429
+ CREATE TABLE IF NOT EXISTS did_feedback_events (
430
+ id INTEGER PRIMARY KEY,
431
+ did_name TEXT NOT NULL,
432
+ issue_number INTEGER NOT NULL,
433
+ dimension TEXT NOT NULL,
434
+ signal TEXT NOT NULL CHECK (signal IN ('accept', 'dismiss', 'escalate', 'override')),
435
+ principal TEXT,
436
+ category TEXT,
437
+ structural_score REAL,
438
+ llm_score REAL,
439
+ composite_score REAL,
440
+ notes TEXT,
441
+ created_at TEXT DEFAULT (datetime('now'))
442
+ );
443
+ CREATE INDEX IF NOT EXISTS idx_did_feedback_did ON did_feedback_events(did_name);
444
+ CREATE INDEX IF NOT EXISTS idx_did_feedback_issue ON did_feedback_events(issue_number);
445
+ CREATE INDEX IF NOT EXISTS idx_did_feedback_signal ON did_feedback_events(signal);
446
+ CREATE INDEX IF NOT EXISTS idx_did_feedback_created ON did_feedback_events(created_at);
447
+
448
+ -- Design change events: emitted when DID.spec.plannedChanges[] adds an entry.
449
+ -- Addendum A §A.9 Design→Engineering lookahead.
450
+ CREATE TABLE IF NOT EXISTS design_change_events (
451
+ id INTEGER PRIMARY KEY,
452
+ did_name TEXT NOT NULL,
453
+ change_id TEXT NOT NULL,
454
+ change_type TEXT NOT NULL,
455
+ status TEXT NOT NULL,
456
+ payload_json TEXT NOT NULL,
457
+ emitted_at TEXT DEFAULT (datetime('now'))
458
+ );
459
+ CREATE INDEX IF NOT EXISTS idx_design_change_did ON design_change_events(did_name);
460
+ CREATE INDEX IF NOT EXISTS idx_design_change_change ON design_change_events(change_id);
461
+
462
+ -- Code area metrics: used by enrichAdmissionInput (C3) for defect risk factor
463
+ -- and by DesignQualityTrendDegrading monitor (A.8).
464
+ CREATE TABLE IF NOT EXISTS code_area_metrics (
465
+ id INTEGER PRIMARY KEY,
466
+ code_area TEXT NOT NULL,
467
+ defect_density REAL,
468
+ churn_rate REAL,
469
+ pr_rejection_rate REAL,
470
+ code_acceptance_rate REAL,
471
+ has_frontend_components INTEGER DEFAULT 0,
472
+ design_metrics_json TEXT,
473
+ data_point_count INTEGER DEFAULT 0,
474
+ window_start TEXT,
475
+ window_end TEXT,
476
+ computed_at TEXT DEFAULT (datetime('now'))
477
+ );
478
+ CREATE INDEX IF NOT EXISTS idx_code_area_metrics_area ON code_area_metrics(code_area);
479
+ CREATE INDEX IF NOT EXISTS idx_code_area_metrics_computed ON code_area_metrics(computed_at);
480
+
481
+ -- Design lookahead notification state: dedupe per issue with 7-day expiry.
482
+ -- Used by C7 (§11).
483
+ CREATE TABLE IF NOT EXISTS design_lookahead_notifications (
484
+ id INTEGER PRIMARY KEY,
485
+ issue_number INTEGER NOT NULL,
486
+ first_notified_at TEXT DEFAULT (datetime('now')),
487
+ last_notified_at TEXT DEFAULT (datetime('now')),
488
+ pillar_breakdown_json TEXT,
489
+ UNIQUE(issue_number)
490
+ );
491
+ CREATE INDEX IF NOT EXISTS idx_lookahead_issue ON design_lookahead_notifications(issue_number);
492
+ `;
493
+ export const MIGRATION_V12 = `
494
+ -- SA Phase-3 calibrated weights (RFC-0008 §B.8 — AISDLC-66).
495
+ -- One row per dimension (SA-1, SA-2); upserted by the auto-calibrator
496
+ -- nightly or on demand.
497
+ -- CR-2 (RFC-0008 Addendum B §B.7): both weights MUST be ≥ 0.20 so
498
+ -- neither layer can be dropped below a "minimum influence" floor by
499
+ -- auto-calibration. The code-level clamp is the first gate; this
500
+ -- CHECK is the last line of defense if the code clamp is bypassed.
501
+ CREATE TABLE IF NOT EXISTS sa_phase_weights (
502
+ id INTEGER PRIMARY KEY,
503
+ dimension TEXT NOT NULL UNIQUE,
504
+ w_structural REAL NOT NULL,
505
+ w_llm REAL NOT NULL,
506
+ calibrated_at TEXT DEFAULT (datetime('now')),
507
+ CHECK (w_structural >= 0.20 AND w_structural <= 0.80),
508
+ CHECK (w_llm >= 0.20 AND w_llm <= 0.80)
509
+ );
510
+ CREATE INDEX IF NOT EXISTS idx_sa_phase_weights_dim ON sa_phase_weights(dimension);
511
+ `;
512
+ export const MIGRATION_V13 = `
513
+ -- RFC-0010 §11.4 cost attribution: track the model alias used in pipeline YAML
514
+ -- alongside the resolved physical model ID, plus an informational shadow cost
515
+ -- (what subscription-harness work would have cost on pay-per-token).
516
+ ALTER TABLE cost_ledger ADD COLUMN model_alias TEXT;
517
+ ALTER TABLE cost_ledger ADD COLUMN shadow_cost_usd REAL;
518
+ CREATE INDEX IF NOT EXISTS idx_cost_ledger_model_alias ON cost_ledger(model_alias);
519
+ `;
265
520
  export const MIGRATIONS = [
266
521
  {
267
522
  version: 1,
@@ -295,5 +550,25 @@ export const MIGRATIONS = [
295
550
  version: 8,
296
551
  sql: MIGRATION_V8,
297
552
  },
553
+ {
554
+ version: 9,
555
+ sql: MIGRATION_V9,
556
+ },
557
+ {
558
+ version: 10,
559
+ sql: MIGRATION_V10,
560
+ },
561
+ {
562
+ version: 11,
563
+ sql: MIGRATION_V11,
564
+ },
565
+ {
566
+ version: 12,
567
+ sql: MIGRATION_V12,
568
+ },
569
+ {
570
+ version: 13,
571
+ sql: MIGRATION_V13,
572
+ },
298
573
  ];
299
574
  //# sourceMappingURL=schema.js.map
@@ -5,7 +5,7 @@
5
5
  * optional — the orchestrator works without it.
6
6
  */
7
7
  import type BetterSqlite3 from 'better-sqlite3';
8
- import type { ComplexityProfile, EpisodicRecord, AutonomyLedgerEntry, PipelineRun, PipelineRunStatus, Convention, HotspotRecord, RoutingDecision, CostLedgerEntry, GateThresholdOverride, AutonomyEvent, HandoffEvent, DeploymentRecord, DeploymentRecordState, RolloutStepRecord, AuditEntryRecord, PriorityCalibrationSample } from './types.js';
8
+ import type { ComplexityProfile, EpisodicRecord, AutonomyLedgerEntry, PipelineRun, PipelineRunStatus, Convention, HotspotRecord, RoutingDecision, CostLedgerEntry, GateThresholdOverride, AutonomyEvent, HandoffEvent, DeploymentRecord, DeploymentRecordState, RolloutStepRecord, AuditEntryRecord, PriorityCalibrationSample, ToolSequenceEvent, WorkflowPattern, PatternProposal, DesignTokenEventRecord, DesignReviewEventRecord, TokenComplianceRecord, VisualRegressionResultRecord, UsabilitySimulationResultRecord, DidCompiledArtifactRecord, DidScoringEventRecord, SaDimension, DidFeedbackEventRecord, FeedbackSignal, DesignChangeEventRecord, CodeAreaMetricsRecord, DesignLookaheadNotificationRecord, SaPhaseWeightsRecord } from './types.js';
9
9
  export declare class StateStore {
10
10
  private db;
11
11
  constructor(db: BetterSqlite3.Database);
@@ -118,6 +118,76 @@ export declare class StateStore {
118
118
  }): number;
119
119
  /** Expose the underlying database for direct queries (e.g. dashboard). */
120
120
  getDatabase(): BetterSqlite3.Database;
121
+ saveToolSequenceEvent(event: ToolSequenceEvent): number;
122
+ saveToolSequenceEvents(events: ToolSequenceEvent[]): number;
123
+ getToolSequenceEvents(opts?: {
124
+ sessionId?: string;
125
+ since?: string;
126
+ limit?: number;
127
+ }): ToolSequenceEvent[];
128
+ saveWorkflowPattern(pattern: WorkflowPattern): number;
129
+ getWorkflowPatterns(opts?: {
130
+ status?: string;
131
+ }): WorkflowPattern[];
132
+ savePatternProposal(proposal: PatternProposal): number;
133
+ getPatternProposals(opts?: {
134
+ status?: string;
135
+ }): PatternProposal[];
136
+ updateProposalStatus(id: number, status: string, reason?: string): void;
137
+ insertDesignTokenEvent(record: DesignTokenEventRecord): number;
138
+ getDesignTokenEvents(bindingName: string, limit?: number): DesignTokenEventRecord[];
139
+ insertDesignReviewEvent(record: DesignReviewEventRecord): number;
140
+ getDesignReviewEvents(bindingName: string, limit?: number): DesignReviewEventRecord[];
141
+ insertTokenComplianceSnapshot(record: TokenComplianceRecord): number;
142
+ getTokenComplianceHistory(bindingName: string, limit?: number): TokenComplianceRecord[];
143
+ insertVisualRegressionResult(record: VisualRegressionResultRecord): number;
144
+ getVisualRegressionResults(bindingName: string, limit?: number): VisualRegressionResultRecord[];
145
+ insertUsabilitySimulationResult(record: UsabilitySimulationResultRecord): number;
146
+ getUsabilitySimulationResults(bindingName: string, limit?: number): UsabilitySimulationResultRecord[];
147
+ insertDidCompiledArtifact(record: DidCompiledArtifactRecord): number;
148
+ getLatestDidCompiledArtifact(didName: string): DidCompiledArtifactRecord | undefined;
149
+ getDidCompiledArtifactByHash(didName: string, sourceHash: string): DidCompiledArtifactRecord | undefined;
150
+ private mapDidCompiledArtifact;
151
+ recordDidScoringEvent(record: DidScoringEventRecord): number;
152
+ getDidScoringEvents(opts?: {
153
+ didName?: string;
154
+ issueNumber?: number;
155
+ saDimension?: SaDimension;
156
+ since?: string;
157
+ limit?: number;
158
+ }): DidScoringEventRecord[];
159
+ recordDidFeedback(record: DidFeedbackEventRecord): number;
160
+ getDidFeedbackEvents(opts?: {
161
+ didName?: string;
162
+ issueNumber?: number;
163
+ signal?: FeedbackSignal;
164
+ dimension?: SaDimension;
165
+ since?: string;
166
+ limit?: number;
167
+ }): DidFeedbackEventRecord[];
168
+ recordDesignChange(record: DesignChangeEventRecord): number;
169
+ getDesignChangeEvents(opts?: {
170
+ didName?: string;
171
+ changeId?: string;
172
+ limit?: number;
173
+ }): DesignChangeEventRecord[];
174
+ insertCodeAreaMetrics(record: CodeAreaMetricsRecord): number;
175
+ /**
176
+ * Get the most recent metrics snapshot for a code area.
177
+ * `since` filters to rows where `computed_at >= since`.
178
+ */
179
+ getCodeAreaMetrics(codeArea: string, opts?: {
180
+ since?: string;
181
+ }): CodeAreaMetricsRecord | undefined;
182
+ getCodeAreaMetricsHistory(codeArea: string, opts?: {
183
+ since?: string;
184
+ limit?: number;
185
+ }): CodeAreaMetricsRecord[];
186
+ private mapCodeAreaMetrics;
187
+ upsertDesignLookaheadNotification(record: DesignLookaheadNotificationRecord): number;
188
+ getDesignLookaheadNotification(issueNumber: number): DesignLookaheadNotificationRecord | undefined;
189
+ upsertSaPhaseWeights(record: SaPhaseWeightsRecord): void;
190
+ getSaPhaseWeights(dimension: SaDimension): SaPhaseWeightsRecord | undefined;
121
191
  close(): void;
122
192
  }
123
193
  //# sourceMappingURL=store.d.ts.map