substrate-ai 0.21.5 → 0.21.7

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.
@@ -0,0 +1,4 @@
1
+ import { AdapterRegistry } from "./dist-DeyV_vqU.js";
2
+ import "./adapter-registry-DXLMTmfD.js";
3
+
4
+ export { AdapterRegistry };
package/dist/cli/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
- import { FileKvStore, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, buildPipelineStatusOutput, createDatabaseAdapter, createDoltOperatorReader, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, inspectProcessTree, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion } from "../health-hYMxKqAH.js";
2
+ import { FileKvStore, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, buildPipelineStatusOutput, createDatabaseAdapter, createDoltOperatorReader, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, inspectProcessTree, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion } from "../health-B1UtVXWb.js";
3
3
  import { createLogger } from "../logger-KeHncl-f.js";
4
4
  import { createEventBus } from "../helpers-CElYrONe.js";
5
- import { AdapterRegistry, BudgetConfigSchema, CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, ConfigError, CostTrackerConfigSchema, DEFAULT_CONFIG, DoltClient, DoltNotInstalled, GlobalSettingsSchema, InMemoryDatabaseAdapter, IngestionServer, MonitorDatabaseImpl, OPERATIONAL_FINDING, PartialGlobalSettingsSchema, PartialProviderConfigSchema, ProvidersSchema, RoutingRecommender, STORY_METRICS, TelemetryConfigSchema, addTokenUsage, aggregateTokenUsageForRun, checkDoltInstalled, compareRunMetrics, createAmendmentRun, createConfigSystem, createDecision, createGitWorktreeManager, createPipelineRun, createStderrLogger, getActiveDecisions, getAllCostEntriesFiltered, getBaselineRunMetrics, getDecisionsByCategory, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initWorkGraphSchema, initializeDolt, listRunMetrics, loadParentRunDecisions, supersedeDecision, swallowDebug, tagRunAsBaseline, updatePipelineRun } from "../dist-CpnLJuVw.js";
5
+ import { AdapterRegistry, BudgetConfigSchema, CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, ConfigError, CostTrackerConfigSchema, DEFAULT_CONFIG, DoltClient, DoltNotInstalled, GlobalSettingsSchema, InMemoryDatabaseAdapter, IngestionServer, MonitorDatabaseImpl, OPERATIONAL_FINDING, PartialGlobalSettingsSchema, PartialProviderConfigSchema, ProvidersSchema, RoutingRecommender, STORY_METRICS, TelemetryConfigSchema, addTokenUsage, aggregateTokenUsageForRun, checkDoltInstalled, compareRunMetrics, createAmendmentRun, createConfigSystem, createDecision, createGitWorktreeManager, createPipelineRun, createStderrLogger, getActiveDecisions, getAllCostEntriesFiltered, getBaselineRunMetrics, getDecisionsByCategory, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initWorkGraphSchema, initializeDolt, listRunMetrics, loadParentRunDecisions, supersedeDecision, swallowDebug, tagRunAsBaseline, updatePipelineRun } from "../dist-DeyV_vqU.js";
6
6
  import "../adapter-registry-DXLMTmfD.js";
7
- import { ACCEPTANCE_CONTRACT_PROFILE_PATH, JOURNEY_DEFERRALS_PATH, JOURNEY_REGISTRY_PATH, RunManifest, SupervisorLock, ZERO_FINDINGS_BY_AUTHOR, ZERO_FINDING_COUNTS, ZERO_PROBE_AUTHOR_METRICS, aggregateProbeAuthorMetrics, loadAcceptanceContractFromTrustedTree, loadJourneyRegistryFromFile, loadJourneyRegistryFromTrustedTree, parseAcceptanceContract, parseJourneyDeferrals, parseRuntimeProbes, readCurrentRunId, resolveMainRepoRoot, resolveRunManifest, rollupFindingCounts, rollupFindingsByAuthor, rollupProbeAuthorByClass, rollupProbeAuthorMetrics, runAcTraceabilityCheck } from "../manifest-read-C0N7b9nH.js";
8
- import { AdapterTelemetryPersistence, AppError, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, EpicIngester, GLOBSTAR, GitClient, GrammarLoader, Minimatch, Minipass, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, escape, formatPhaseCompletionSummary, getFactoryRunSummaries, getScenarioResultsForRun, getTwinRunsForRun, listGraphRuns, registerExportCommand, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runProbeAuthor, runSolutioningPhase, unescape, validateStopAfterFromConflict } from "../run-C7PLGWT0.js";
9
- import "../errors-8tVEwG6v.js";
7
+ import { ACCEPTANCE_CONTRACT_PROFILE_PATH, JOURNEY_DEFERRALS_PATH, JOURNEY_REGISTRY_PATH, RunManifest, SupervisorLock, ZERO_FINDINGS_BY_AUTHOR, ZERO_FINDING_COUNTS, ZERO_PROBE_AUTHOR_METRICS, aggregateProbeAuthorMetrics, loadAcceptanceContractFromTrustedTree, loadJourneyRegistryFromFile, loadJourneyRegistryFromTrustedTree, parseAcceptanceContract, parseJourneyDeferrals, parseRuntimeProbes, readCurrentRunId, resolveMainRepoRoot, resolveRunManifest, rollupFindingCounts, rollupFindingsByAuthor, rollupProbeAuthorByClass, rollupProbeAuthorMetrics, runAcTraceabilityCheck } from "../manifest-read-Ce5Y-iNu.js";
8
+ import { AdapterTelemetryPersistence, AppError, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, EpicIngester, GLOBSTAR, GitClient, GrammarLoader, Minimatch, Minipass, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, escape, formatPhaseCompletionSummary, getFactoryRunSummaries, getScenarioResultsForRun, getTwinRunsForRun, listGraphRuns, registerExportCommand, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runProbeAuthor, runSolutioningPhase, unescape, validateStopAfterFromConflict } from "../run-DsjRvAd4.js";
9
+ import "../errors-BgV6pqUZ.js";
10
10
  import "../routing-DFxoKHDt.js";
11
11
  import { WorkGraphRepository } from "../work-graph-repository-DZyJv5pV.js";
12
12
  import "../decisions-CzSIEeGP.js";
13
13
  import "../decision-router-BAPpON_C.js";
14
- import "../interactive-prompt-BvY2FKsl.js";
14
+ import "../interactive-prompt-CELNI8nZ.js";
15
15
  import "../recovery-engine-BKGBeBnW.js";
16
16
  import "../version-manager-impl-qFBiO4Eh.js";
17
- import { registerUpgradeCommand } from "../upgrade-BUSzXgnd.js";
17
+ import { registerUpgradeCommand } from "../upgrade-lE_GIvWv.js";
18
18
  import { Command } from "commander";
19
19
  import { fileURLToPath } from "url";
20
20
  import { dirname, join, resolve } from "path";
@@ -7130,7 +7130,7 @@ async function runStatusAction(options) {
7130
7130
  logger$15.debug({ err }, "Work graph query failed, continuing without work graph data");
7131
7131
  }
7132
7132
  if (run === void 0) {
7133
- const { inspectProcessTree: inspectProcessTree$1 } = await import("../health-BdYZpCP1.js");
7133
+ const { inspectProcessTree: inspectProcessTree$1 } = await import("../health-CmY5G4PV.js");
7134
7134
  const substrateDirPath = join(projectRoot, ".substrate");
7135
7135
  const processInfo = inspectProcessTree$1({
7136
7136
  projectRoot,
@@ -8078,7 +8078,7 @@ function defaultSupervisorDeps() {
8078
8078
  if (cached === null) {
8079
8079
  const { AdapterRegistry: AR } = await import(
8080
8080
  /* @vite-ignore */
8081
- "../adapter-registry-BSig1zpx.js"
8081
+ "../adapter-registry-Csta1uJX.js"
8082
8082
  );
8083
8083
  cached = new AR();
8084
8084
  await cached.discoverAndRegister();
@@ -8645,11 +8645,11 @@ async function runSupervisorAction(options, deps = {}) {
8645
8645
  try {
8646
8646
  const { createExperimenter } = await import(
8647
8647
  /* @vite-ignore */
8648
- "../experimenter-C7swe92R.js"
8648
+ "../experimenter-DDuRR16z.js"
8649
8649
  );
8650
8650
  const { getLatestRun: getLatest } = await import(
8651
8651
  /* @vite-ignore */
8652
- "../decisions-lxU14pNh.js"
8652
+ "../decisions-Blw6BzGL.js"
8653
8653
  );
8654
8654
  const expAdapter = createDatabaseAdapter({
8655
8655
  backend: "auto",
@@ -8659,7 +8659,7 @@ async function runSupervisorAction(options, deps = {}) {
8659
8659
  await initSchema(expAdapter);
8660
8660
  const { runRunAction: runPipeline } = await import(
8661
8661
  /* @vite-ignore */
8662
- "../run-CHMwDPRx.js"
8662
+ "../run-BCrwTBDr.js"
8663
8663
  );
8664
8664
  const runStoryFn = async (opts) => {
8665
8665
  const exitCode = await runPipeline({
@@ -9184,7 +9184,7 @@ async function runMetricsAction(options) {
9184
9184
  const routingConfigPath = join(dbDir, "routing.yml");
9185
9185
  let routingConfig = null;
9186
9186
  if (existsSync$1(routingConfigPath)) try {
9187
- const { loadModelRoutingConfig } = await import("../routing-CGO2UZyA.js");
9187
+ const { loadModelRoutingConfig } = await import("../routing-uZdhcjzV.js");
9188
9188
  routingConfig = loadModelRoutingConfig(routingConfigPath);
9189
9189
  } catch {}
9190
9190
  if (routingConfig === null) routingConfig = {
@@ -13061,6 +13061,18 @@ function renderHuman$1(output, manifest) {
13061
13061
  }
13062
13062
  lines.push("");
13063
13063
  }
13064
+ const journeyLedger = manifest.journeys ?? [];
13065
+ if (journeyLedger.length > 0) {
13066
+ lines.push("Acceptance — journey coverage:");
13067
+ for (const j of journeyLedger) {
13068
+ const owners = (j.ownerStories?.length ?? 0) > 0 ? ` (claimed by ${(j.ownerStories ?? []).join(", ")})` : " (NO story claims it)";
13069
+ const marker = j.state === "unclaimed" || j.state === "walked-fail" ? "✗" : j.state === "walked-pass" ? "✓" : "•";
13070
+ lines.push(` ${marker} ${j.journeyId} [${j.criticality ?? "?"}] ${j.state}${owners}`);
13071
+ for (const v of j.verdicts ?? []) lines.push(` ${v.end_state_id}: ${v.verdict}${v.artifact !== void 0 ? ` — ${v.artifact}` : ""}`);
13072
+ }
13073
+ if (manifest.acceptance_report_path !== void 0) lines.push(` verdict artifact: ${manifest.acceptance_report_path}`);
13074
+ lines.push("");
13075
+ }
13064
13076
  const lowOutputStories = stories.filter((s) => s.low_output_warning === true);
13065
13077
  if (lowOutputStories.length > 0) {
13066
13078
  lines.push(`⚠ ${lowOutputStories.length} story/stories produced fewer than ${LOW_OUTPUT_TOKEN_THRESHOLD} output tokens —`);
@@ -13210,7 +13222,11 @@ function assembleReport(runId, manifest, halts, storyOutputTokens) {
13210
13222
  escalations,
13211
13223
  cost,
13212
13224
  duration,
13213
- halts
13225
+ halts,
13226
+ ...manifest.journeys !== void 0 && manifest.journeys.length > 0 ? { acceptance: {
13227
+ journeys: manifest.journeys,
13228
+ ...manifest.acceptance_report_path !== void 0 ? { report_path: manifest.acceptance_report_path } : {}
13229
+ } } : {}
13214
13230
  };
13215
13231
  }
13216
13232
  /**
@@ -13621,8 +13637,8 @@ async function createProgram() {
13621
13637
  /** Fire-and-forget startup version check (story 8.3, AC3/AC5) */
13622
13638
  function checkForUpdatesInBackground(currentVersion) {
13623
13639
  if (process.env.SUBSTRATE_NO_UPDATE_CHECK === "1") return;
13624
- import("../upgrade-M0UkDCeg.js").then(async () => {
13625
- const { createVersionManager } = await import("../version-manager-impl-DeEPhQlA.js");
13640
+ import("../upgrade-BkP-yFWV.js").then(async () => {
13641
+ const { createVersionManager } = await import("../version-manager-impl-Cc7yx4i5.js");
13626
13642
  const vm = createVersionManager();
13627
13643
  const result = await vm.checkForUpdates();
13628
13644
  if (result.updateAvailable) {
@@ -1,4 +1,4 @@
1
- import { addTokenUsage, createDecision, createPipelineRun, createRequirement, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getTokenUsageSummary, listRequirements, registerArtifact, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision } from "./dist-CpnLJuVw.js";
1
+ import { addTokenUsage, createDecision, createPipelineRun, createRequirement, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getTokenUsageSummary, listRequirements, registerArtifact, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision } from "./dist-DeyV_vqU.js";
2
2
  import "./decisions-CzSIEeGP.js";
3
3
 
4
4
  export { getLatestRun };
@@ -931,7 +931,8 @@ const WORKTREE_COUPLED_TASK_TYPES = new Set([
931
931
  "build-fix",
932
932
  "test-plan",
933
933
  "test-expansion",
934
- "probe-author"
934
+ "probe-author",
935
+ "acceptance-judge"
935
936
  ]);
936
937
  const GIT_STATE_ENV_KEYS = [
937
938
  "PWD",
@@ -12638,4 +12639,4 @@ async function callLLM(params) {
12638
12639
 
12639
12640
  //#endregion
12640
12641
  export { ADVISORY_NOTES, AdapterRegistry, AdtError, BRANCH_PREFIX, BudgetConfigSchema, CLAUDE_AUTH_FAILURE_HINT, CODEX_SANDBOX_BLOCK_HINT, CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, Categorizer, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, ConsumerAnalyzer, CostTrackerConfigSchema, DEFAULT_CONFIG, DEFAULT_GLOBAL_SETTINGS, DispatcherImpl, DoltClient, DoltNotInstalled, DoltQueryError, ESCALATION_DIAGNOSIS, EXPERIMENT_RESULT, EfficiencyScorer, GeminiCLIAdapter, GlobalSettingsSchema, InMemoryDatabaseAdapter, IngestionServer, LEARNING_FINDING, LogTurnAnalyzer, ModelRoutingConfigSchema, MonitorDatabaseImpl, OPERATIONAL_FINDING, PartialGlobalSettingsSchema, PartialProviderConfigSchema, ProviderPolicySchema, ProvidersSchema, Recommender, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, STORY_METRICS, STORY_OUTCOME, SubstrateConfigSchema, TASK_TYPE_PHASE_MAP, TEST_EXPANSION_FINDING, TEST_PLAN, TelemetryConfigSchema, TelemetryNormalizer, TelemetryPipeline, TurnAnalyzer, VersionManagerImpl, addTokenUsage, aggregateTokenUsageForRun, aggregateTokenUsageForStory, buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, callLLM, checkDoltInstalled, classifyVersionGap, compareRunMetrics, createAmendmentRun, createConfigSystem, createDatabaseAdapter as createDatabaseAdapter$1, createDecision, createExperimenter, createGitWorktreeManager, createPipelineRun, createRequirement, createStderrLogger, createVersionManager, detectClaudeAuthFailure, detectCodexSandboxBlock, detectInterfaceChanges, determineVerdict, getActiveDecisions, getAllCostEntriesFiltered, getArtifactByTypeForRun, getArtifactsByRun, getBaselineRunMetrics, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getModelTier, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initWorkGraphSchema, initializeDolt, listRequirements, listRunMetrics, loadModelRoutingConfig, loadParentRunDecisions, registerArtifact, resolvePromptFile, supersedeDecision, swallowDebug, tagRunAsBaseline, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics };
12641
- //# sourceMappingURL=dist-CpnLJuVw.js.map
12642
+ //# sourceMappingURL=dist-DeyV_vqU.js.map
@@ -1,4 +1,4 @@
1
- import { AdtError } from "./dist-CpnLJuVw.js";
1
+ import { AdtError } from "./dist-DeyV_vqU.js";
2
2
 
3
3
  //#region src/core/errors.ts
4
4
  /** Error thrown when task configuration is invalid */
@@ -71,4 +71,4 @@ var TaskGraphIncompatibleFormatError = class extends AdtError {
71
71
 
72
72
  //#endregion
73
73
  export { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError };
74
- //# sourceMappingURL=errors-8tVEwG6v.js.map
74
+ //# sourceMappingURL=errors-BgV6pqUZ.js.map
@@ -1,3 +1,3 @@
1
- import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-CpnLJuVw.js";
1
+ import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-DeyV_vqU.js";
2
2
 
3
3
  export { createExperimenter };
@@ -1,6 +1,6 @@
1
1
  import { createLogger } from "./logger-KeHncl-f.js";
2
- import { DoltClient, DoltQueryError, createDatabaseAdapter$1 as createDatabaseAdapter, getLatestRun, getPipelineRunById, initSchema } from "./dist-CpnLJuVw.js";
3
- import { resolveMainRepoRoot, resolveRunManifest } from "./manifest-read-C0N7b9nH.js";
2
+ import { DoltClient, DoltQueryError, createDatabaseAdapter$1 as createDatabaseAdapter, getLatestRun, getPipelineRunById, initSchema } from "./dist-DeyV_vqU.js";
3
+ import { resolveMainRepoRoot, resolveRunManifest } from "./manifest-read-Ce5Y-iNu.js";
4
4
  import { createRequire } from "module";
5
5
  import { dirname, join } from "path";
6
6
  import { existsSync, readFileSync } from "node:fs";
@@ -1000,4 +1000,4 @@ function registerHealthCommand(program, _version = "0.0.0", projectRoot = proces
1000
1000
 
1001
1001
  //#endregion
1002
1002
  export { BMAD_BASELINE_TOKENS_FULL, DEFAULT_STALL_THRESHOLD_SECONDS, FileKvStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter$1 as createDatabaseAdapter, createDoltOperatorReader, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, inspectProcessTree, isOrchestratorProcessLine, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion, runHealthAction, validateStoryKey };
1003
- //# sourceMappingURL=health-hYMxKqAH.js.map
1003
+ //# sourceMappingURL=health-B1UtVXWb.js.map
@@ -1,7 +1,7 @@
1
- import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-hYMxKqAH.js";
1
+ import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-B1UtVXWb.js";
2
2
  import "./logger-KeHncl-f.js";
3
- import "./dist-CpnLJuVw.js";
4
- import "./manifest-read-C0N7b9nH.js";
3
+ import "./dist-DeyV_vqU.js";
4
+ import "./manifest-read-Ce5Y-iNu.js";
5
5
  import "./work-graph-repository-DZyJv5pV.js";
6
6
  import "./decisions-CzSIEeGP.js";
7
7
 
package/dist/index.d.ts CHANGED
@@ -229,6 +229,37 @@ interface AcceptanceCoverageEvent {
229
229
  /** State counts across `entries` */
230
230
  summary: Record<string, number>;
231
231
  }
232
+ /** A2.2: the acceptance stage began for a story's tagged journeys. */
233
+ interface AcceptanceStartedEvent {
234
+ type: 'acceptance:started';
235
+ ts: string;
236
+ key: string;
237
+ journeys: string[];
238
+ }
239
+ /** A2.2: one surface rendered (or failed) via the declared contract. */
240
+ interface AcceptanceRenderedEvent {
241
+ type: 'acceptance:rendered';
242
+ ts: string;
243
+ key: string;
244
+ surface: string;
245
+ status: 'rendered' | 'failed';
246
+ artifacts_dir: string;
247
+ artifacts: string[];
248
+ error?: string;
249
+ }
250
+ /** A2.2: per-end-state judge verdicts for one journey (evidence included). */
251
+ interface AcceptanceVerdictEvent {
252
+ type: 'acceptance:verdict';
253
+ ts: string;
254
+ key: string;
255
+ journey: string;
256
+ verdicts: {
257
+ end_state_id: string;
258
+ verdict: 'PASS' | 'FAIL' | 'UNREACHABLE';
259
+ artifact: string;
260
+ excerpt: string;
261
+ }[];
262
+ }
232
263
  /**
233
264
  * Emitted when the orchestrator auto-approves a story after exhausting
234
265
  * review cycles with only minor issues remaining. Provides transparency
@@ -862,7 +893,7 @@ interface PipelineMergeConflictDetectedEvent {
862
893
  * }
863
894
  * ```
864
895
  */
865
- type PipelineEvent = PipelineStartEvent | PipelineCompleteEvent | PipelinePreFlightFailureEvent | PipelineProfileStaleEvent | PipelineContractMismatchEvent | PipelineContractVerificationSummaryEvent | StoryPhaseEvent | StoryDoneEvent | StoryCommittedEvent | StoryMergedEvent | StoryFinalizedEvent | AcceptanceCoverageEvent | StoryEscalationEvent | StoryWarnEvent | StoryLogEvent | PipelineHeartbeatEvent | StoryStallEvent | StoryZeroDiffEscalationEvent | StoryBuildVerificationFailedEvent | StoryBuildVerificationPassedEvent | StoryInterfaceChangeWarningEvent | StoryMetricsEvent | SupervisorPollEvent | SupervisorKillEvent | SupervisorRestartEvent | SupervisorAbortEvent | SupervisorSummaryEvent | SupervisorAnalysisCompleteEvent | SupervisorAnalysisErrorEvent | SupervisorExperimentStartEvent | SupervisorExperimentSkipEvent | SupervisorExperimentRecommendationsEvent | SupervisorExperimentCompleteEvent | SupervisorExperimentErrorEvent | RoutingModelSelectedEvent | PipelinePhaseStartEvent | PipelinePhaseCompleteEvent | StoryAutoApprovedEvent | VerificationCheckCompleteEvent | VerificationStoryCompleteEvent | CostWarningEvent | CostCeilingReachedEvent | DecisionHaltSkippedNonInteractiveEvent | PipelineMergeConflictDetectedEvent; //#endregion
896
+ type PipelineEvent = PipelineStartEvent | PipelineCompleteEvent | PipelinePreFlightFailureEvent | PipelineProfileStaleEvent | PipelineContractMismatchEvent | PipelineContractVerificationSummaryEvent | StoryPhaseEvent | StoryDoneEvent | StoryCommittedEvent | StoryMergedEvent | StoryFinalizedEvent | AcceptanceCoverageEvent | AcceptanceStartedEvent | AcceptanceRenderedEvent | AcceptanceVerdictEvent | StoryEscalationEvent | StoryWarnEvent | StoryLogEvent | PipelineHeartbeatEvent | StoryStallEvent | StoryZeroDiffEscalationEvent | StoryBuildVerificationFailedEvent | StoryBuildVerificationPassedEvent | StoryInterfaceChangeWarningEvent | StoryMetricsEvent | SupervisorPollEvent | SupervisorKillEvent | SupervisorRestartEvent | SupervisorAbortEvent | SupervisorSummaryEvent | SupervisorAnalysisCompleteEvent | SupervisorAnalysisErrorEvent | SupervisorExperimentStartEvent | SupervisorExperimentSkipEvent | SupervisorExperimentRecommendationsEvent | SupervisorExperimentCompleteEvent | SupervisorExperimentErrorEvent | RoutingModelSelectedEvent | PipelinePhaseStartEvent | PipelinePhaseCompleteEvent | StoryAutoApprovedEvent | VerificationCheckCompleteEvent | VerificationStoryCompleteEvent | CostWarningEvent | CostCeilingReachedEvent | DecisionHaltSkippedNonInteractiveEvent | PipelineMergeConflictDetectedEvent; //#endregion
866
897
  //#region src/core/errors.d.ts
867
898
 
868
899
  /**
@@ -1523,6 +1554,31 @@ interface OrchestratorEvents {
1523
1554
  sha: string;
1524
1555
  prUrl?: string;
1525
1556
  };
1557
+ /** A2.2 (acceptance-gate): the acceptance stage began for a story's tagged journeys. */
1558
+ 'orchestrator:acceptance-started': {
1559
+ storyKey: string;
1560
+ journeys: string[];
1561
+ };
1562
+ /** A2.2 (acceptance-gate): one surface rendered (or failed to render). */
1563
+ 'orchestrator:acceptance-rendered': {
1564
+ storyKey: string;
1565
+ surface: string;
1566
+ status: 'rendered' | 'failed';
1567
+ artifactsDir: string;
1568
+ artifacts: string[];
1569
+ error?: string;
1570
+ };
1571
+ /** A2.2 (acceptance-gate): per-end-state judge verdicts for one journey. */
1572
+ 'orchestrator:acceptance-verdict': {
1573
+ storyKey: string;
1574
+ journeyId: string;
1575
+ verdicts: {
1576
+ end_state_id: string;
1577
+ verdict: 'PASS' | 'FAIL' | 'UNREACHABLE';
1578
+ artifact: string;
1579
+ excerpt: string;
1580
+ }[];
1581
+ };
1526
1582
  /**
1527
1583
  * A0.3 (acceptance-gate): journey coverage audit result — emitted at epic
1528
1584
  * close and at run end. Mapped to the NDJSON `acceptance:coverage` event.
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { childLogger, createLogger, logger } from "./logger-KeHncl-f.js";
2
2
  import { assertDefined, createEventBus, createTuiApp, deepClone, formatDuration, generateId, isPlainObject, isTuiCapable, printNonTtyWarning, sleep, withRetry } from "./helpers-CElYrONe.js";
3
- import { AdapterRegistry, AdtError, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, GeminiCLIAdapter } from "./dist-CpnLJuVw.js";
3
+ import { AdapterRegistry, AdtError, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, GeminiCLIAdapter } from "./dist-DeyV_vqU.js";
4
4
  import "./adapter-registry-DXLMTmfD.js";
5
- import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-8tVEwG6v.js";
5
+ import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-BgV6pqUZ.js";
6
6
 
7
7
  //#region src/core/di.ts
8
8
  /**
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from "./logger-KeHncl-f.js";
2
- import { readCurrentRunId, resolveMainRepoRoot } from "./manifest-read-C0N7b9nH.js";
2
+ import { readCurrentRunId, resolveMainRepoRoot } from "./manifest-read-Ce5Y-iNu.js";
3
3
  import { join } from "node:path";
4
4
  import { mkdir, readFile, writeFile } from "node:fs/promises";
5
5
  import * as readline from "node:readline";
@@ -180,4 +180,4 @@ async function runInteractivePrompt(decisionContext) {
180
180
 
181
181
  //#endregion
182
182
  export { runInteractivePrompt };
183
- //# sourceMappingURL=interactive-prompt-BvY2FKsl.js.map
183
+ //# sourceMappingURL=interactive-prompt-CELNI8nZ.js.map
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from "./logger-KeHncl-f.js";
2
- import { LEARNING_FINDING, createDecision, getDecisionsByCategory } from "./dist-CpnLJuVw.js";
2
+ import { LEARNING_FINDING, createDecision, getDecisionsByCategory } from "./dist-DeyV_vqU.js";
3
3
  import * as path$1 from "path";
4
4
  import { join } from "path";
5
5
  import { readFile } from "fs/promises";
@@ -2907,6 +2907,51 @@ function parseAcceptanceContract(profileYamlContent) {
2907
2907
  contract: result.data
2908
2908
  };
2909
2909
  }
2910
+ const PLACEHOLDER_RE = /\{([a-z]+)\}/g;
2911
+ /**
2912
+ * Build the argv for a render command template.
2913
+ *
2914
+ * The template is whitespace-split into tokens BEFORE `{placeholder}`
2915
+ * substitution, and the result is executed with `spawn(argv[0], argv.slice(1))`
2916
+ * — no shell, ever. Substituted values cannot change the token count or
2917
+ * introduce shell metacharacter evaluation by construction.
2918
+ *
2919
+ * Unknown placeholders and placeholders without a value are HARD errors —
2920
+ * a typo'd `{fixtrues}` reaching the product as a literal string is a silent
2921
+ * misconfiguration this gate exists to make loud.
2922
+ */
2923
+ function buildRenderArgv(template, values) {
2924
+ const tokens = template.trim().split(/\s+/);
2925
+ if (tokens.length === 0 || tokens[0] === "") return {
2926
+ ok: false,
2927
+ error: "render command is empty"
2928
+ };
2929
+ const valueMap = new Map();
2930
+ if (values.fixtures !== void 0) valueMap.set("fixtures", values.fixtures);
2931
+ valueMap.set("artifacts", values.artifacts);
2932
+ if (values.port !== void 0) valueMap.set("port", String(values.port));
2933
+ const argv = [];
2934
+ for (const token of tokens) {
2935
+ let error;
2936
+ const substituted = token.replace(PLACEHOLDER_RE, (_match, name) => {
2937
+ const value = valueMap.get(name);
2938
+ if (value === void 0) {
2939
+ error = `unknown or unavailable placeholder {${name}} in render command (known: ${[...valueMap.keys()].map((k) => `{${k}}`).join(", ")})`;
2940
+ return "";
2941
+ }
2942
+ return value;
2943
+ });
2944
+ if (error !== void 0) return {
2945
+ ok: false,
2946
+ error
2947
+ };
2948
+ argv.push(substituted);
2949
+ }
2950
+ return {
2951
+ ok: true,
2952
+ argv
2953
+ };
2954
+ }
2910
2955
 
2911
2956
  //#endregion
2912
2957
  //#region packages/sdlc/dist/verification/checks/acceptance-spec-check.js
@@ -5476,6 +5521,232 @@ async function loadJourneyRegistryFromFile(projectRoot) {
5476
5521
  };
5477
5522
  }
5478
5523
 
5524
+ //#endregion
5525
+ //#region packages/sdlc/dist/acceptance/render.js
5526
+ /** H4.1 mirror (not exported from core's dispatcher): ambient git/location state. */
5527
+ const GIT_STATE_ENV_KEYS = [
5528
+ "PWD",
5529
+ "OLDPWD",
5530
+ "INIT_CWD",
5531
+ "GIT_DIR",
5532
+ "GIT_WORK_TREE",
5533
+ "GIT_INDEX_FILE",
5534
+ "GIT_COMMON_DIR"
5535
+ ];
5536
+ const DEFAULT_RENDER_TIMEOUT_MS = 12e4;
5537
+ const STDERR_TAIL_CHARS = 4e3;
5538
+ async function listFilesRecursive(root, base = root) {
5539
+ const out = [];
5540
+ let entries;
5541
+ try {
5542
+ entries = await readdir$1(root, { withFileTypes: true });
5543
+ } catch {
5544
+ return out;
5545
+ }
5546
+ for (const entry of entries) {
5547
+ const abs = join$1(root, entry.name);
5548
+ if (entry.isDirectory()) out.push(...await listFilesRecursive(abs, base));
5549
+ else out.push(relative(base, abs));
5550
+ }
5551
+ return out.sort();
5552
+ }
5553
+ /**
5554
+ * Render one surface per the contract. Returns a structured result — never
5555
+ * throws for render failures (spawn errors, timeouts, non-zero exits all
5556
+ * come back as `status: 'failed'` with forensics attached).
5557
+ */
5558
+ async function renderSurface(opts) {
5559
+ const { surface, contract, workingDirectory, artifactsDir } = opts;
5560
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_RENDER_TIMEOUT_MS;
5561
+ const started = Date.now();
5562
+ const fail = (partial) => ({
5563
+ status: "failed",
5564
+ surface,
5565
+ exitCode: null,
5566
+ artifactsDir,
5567
+ artifacts: [],
5568
+ durationMs: Date.now() - started,
5569
+ ...partial
5570
+ });
5571
+ const surfaceDef = contract.surfaces[surface];
5572
+ if (surfaceDef === void 0) return fail({ error: `contract declares no ${surface} surface` });
5573
+ const fixturesAbs = contract.fixtures !== void 0 ? resolve$1(workingDirectory, contract.fixtures) : void 0;
5574
+ const argvResult = buildRenderArgv(surfaceDef.render, {
5575
+ ...fixturesAbs !== void 0 ? { fixtures: fixturesAbs } : {},
5576
+ artifacts: artifactsDir
5577
+ });
5578
+ if (!argvResult.ok) return fail({ error: argvResult.error });
5579
+ const argv = argvResult.argv;
5580
+ try {
5581
+ await mkdir$1(artifactsDir, { recursive: true });
5582
+ } catch (err) {
5583
+ return fail({
5584
+ argv,
5585
+ error: `could not create artifacts dir: ${String(err)}`
5586
+ });
5587
+ }
5588
+ const env = { ...process.env };
5589
+ for (const key of GIT_STATE_ENV_KEYS) delete env[key];
5590
+ env["GIT_CEILING_DIRECTORIES"] = dirname$1(workingDirectory);
5591
+ const outcome = await new Promise((resolvePromise) => {
5592
+ let stdout = "";
5593
+ let stderr = "";
5594
+ let timedOut = false;
5595
+ const child = spawn(argv[0], argv.slice(1), {
5596
+ cwd: workingDirectory,
5597
+ env,
5598
+ stdio: [
5599
+ "ignore",
5600
+ "pipe",
5601
+ "pipe"
5602
+ ],
5603
+ detached: true
5604
+ });
5605
+ const timer = setTimeout(() => {
5606
+ timedOut = true;
5607
+ try {
5608
+ if (child.pid !== void 0) process.kill(-child.pid, "SIGKILL");
5609
+ } catch {
5610
+ child.kill("SIGKILL");
5611
+ }
5612
+ }, timeoutMs);
5613
+ child.stdout?.on("data", (chunk) => {
5614
+ stdout += chunk.toString("utf-8");
5615
+ });
5616
+ child.stderr?.on("data", (chunk) => {
5617
+ stderr += chunk.toString("utf-8");
5618
+ });
5619
+ child.on("error", (err) => {
5620
+ clearTimeout(timer);
5621
+ resolvePromise({
5622
+ code: null,
5623
+ stdout,
5624
+ stderr,
5625
+ spawnError: err.message,
5626
+ timedOut
5627
+ });
5628
+ });
5629
+ child.on("close", (code) => {
5630
+ clearTimeout(timer);
5631
+ resolvePromise({
5632
+ code,
5633
+ stdout,
5634
+ stderr,
5635
+ timedOut
5636
+ });
5637
+ });
5638
+ });
5639
+ if (outcome.spawnError !== void 0) return fail({
5640
+ argv,
5641
+ error: `render command could not be spawned: ${outcome.spawnError}`
5642
+ });
5643
+ if (outcome.timedOut) return fail({
5644
+ argv,
5645
+ error: `render timed out after ${String(timeoutMs)}ms (process group killed)`,
5646
+ stderrTail: outcome.stderr.slice(-STDERR_TAIL_CHARS)
5647
+ });
5648
+ if (outcome.code !== 0) return fail({
5649
+ argv,
5650
+ exitCode: outcome.code,
5651
+ stderrTail: outcome.stderr.slice(-STDERR_TAIL_CHARS)
5652
+ });
5653
+ if (outcome.stdout.length > 0) try {
5654
+ await writeFile$1(join$1(artifactsDir, `${surface}-stdout.txt`), outcome.stdout, "utf-8");
5655
+ } catch {}
5656
+ return {
5657
+ status: "rendered",
5658
+ surface,
5659
+ argv,
5660
+ exitCode: 0,
5661
+ artifactsDir,
5662
+ artifacts: await listFilesRecursive(artifactsDir),
5663
+ durationMs: Date.now() - started
5664
+ };
5665
+ }
5666
+
5667
+ //#endregion
5668
+ //#region packages/sdlc/dist/acceptance/verdict-artifact.js
5669
+ /**
5670
+ * Acceptance Gate — minutes-scale verdict artifact (A2.2).
5671
+ *
5672
+ * One self-contained HTML page per audit: journey × end-state verdict table,
5673
+ * every FAIL/UNREACHABLE anchored to its cited evidence. Target: an operator
5674
+ * verdicts it in under a minute (the morning-review surface for
5675
+ * journey-critical PASS branches).
5676
+ *
5677
+ * SECURITY: evidence excerpts are UNTRUSTED product output rendered into
5678
+ * HTML — everything is escaped; a hostile artifact cannot script the
5679
+ * operator's review page.
5680
+ */
5681
+ function esc(s) {
5682
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
5683
+ }
5684
+ const STATE_COLORS = {
5685
+ "walked-pass": "#1a7f37",
5686
+ "walked-fail": "#cf222e",
5687
+ deferred: "#9a6700",
5688
+ unclaimed: "#cf222e",
5689
+ unwalked: "#9a6700",
5690
+ unknown: "#6e7781"
5691
+ };
5692
+ const VERDICT_COLORS = {
5693
+ PASS: "#1a7f37",
5694
+ FAIL: "#cf222e",
5695
+ UNREACHABLE: "#a40e26"
5696
+ };
5697
+ /** Render the verdict page. Pure — caller writes it wherever it belongs. */
5698
+ function renderVerdictHtml(input) {
5699
+ const rows = input.journeys.map((j) => {
5700
+ const stateColor = STATE_COLORS[j.state] ?? "#6e7781";
5701
+ const verdictRows = j.verdicts.length > 0 ? j.verdicts.map((v) => `
5702
+ <tr>
5703
+ <td><code>${esc(v.end_state_id)}</code></td>
5704
+ <td style="color:${VERDICT_COLORS[v.verdict] ?? "#000"};font-weight:bold">${esc(v.verdict)}${v.verdict === "UNREACHABLE" ? " ⚠ never wired" : ""}</td>
5705
+ <td><code>${esc(v.artifact)}</code></td>
5706
+ <td><pre>${esc(v.excerpt)}</pre>${v.reasoning !== void 0 ? `<div class="why">${esc(v.reasoning)}</div>` : ""}</td>
5707
+ </tr>`).join("") : `
5708
+ <tr><td colspan="4" class="nowalk">not walked — no judge verdicts recorded</td></tr>`;
5709
+ return `
5710
+ <section>
5711
+ <h2>${esc(j.journeyId)} <small>[${esc(j.criticality)}]</small> — ${esc(j.title)}</h2>
5712
+ <p>state: <strong style="color:${stateColor}">${esc(j.state)}</strong>${j.ownerStories.length > 0 ? ` · claimed by ${esc(j.ownerStories.join(", "))}` : " · <strong>NO story claims this journey</strong>"}</p>
5713
+ <table>
5714
+ <thead><tr><th>end-state</th><th>verdict</th><th>artifact</th><th>evidence</th></tr></thead>
5715
+ <tbody>${verdictRows}
5716
+ </tbody>
5717
+ </table>
5718
+ </section>`;
5719
+ }).join("\n");
5720
+ const counts = input.journeys.reduce((acc, j) => {
5721
+ acc[j.state] = (acc[j.state] ?? 0) + 1;
5722
+ return acc;
5723
+ }, {});
5724
+ const summary = Object.entries(counts).map(([state, n]) => `${esc(state)}: ${String(n)}`).join(" · ");
5725
+ return `<!doctype html>
5726
+ <html lang="en">
5727
+ <head>
5728
+ <meta charset="utf-8">
5729
+ <title>Acceptance verdicts — ${esc(input.scope)}</title>
5730
+ <style>
5731
+ body { font-family: system-ui, sans-serif; margin: 2rem auto; max-width: 70rem; padding: 0 1rem; color: #1f2328; }
5732
+ table { border-collapse: collapse; width: 100%; margin-bottom: 1.5rem; }
5733
+ th, td { border: 1px solid #d0d7de; padding: .4rem .6rem; text-align: left; vertical-align: top; }
5734
+ th { background: #f6f8fa; }
5735
+ pre { margin: 0; white-space: pre-wrap; word-break: break-word; max-height: 8rem; overflow-y: auto; background: #f6f8fa; padding: .3rem; }
5736
+ .why { color: #57606a; font-size: .85rem; margin-top: .25rem; }
5737
+ .nowalk { color: #9a6700; font-style: italic; }
5738
+ h1 small, h2 small { color: #57606a; font-weight: normal; }
5739
+ </style>
5740
+ </head>
5741
+ <body>
5742
+ <h1>Acceptance verdicts <small>${esc(input.scope)} · ${esc(input.generatedAt)}</small></h1>
5743
+ <p>${summary}</p>
5744
+ ${rows}
5745
+ </body>
5746
+ </html>
5747
+ `;
5748
+ }
5749
+
5479
5750
  //#endregion
5480
5751
  //#region packages/sdlc/dist/run-model/cli-flags.js
5481
5752
  /**
@@ -5827,8 +6098,19 @@ const RunManifestSchema = z.object({
5827
6098
  "unclaimed",
5828
6099
  "unwalked"
5829
6100
  ]),
5830
- ownerStories: z.array(z.string())
6101
+ ownerStories: z.array(z.string()),
6102
+ verdicts: z.array(z.object({
6103
+ end_state_id: z.string(),
6104
+ verdict: z.enum([
6105
+ "PASS",
6106
+ "FAIL",
6107
+ "UNREACHABLE"
6108
+ ]),
6109
+ artifact: z.string(),
6110
+ excerpt: z.string()
6111
+ })).optional()
5831
6112
  })).optional(),
6113
+ acceptance_report_path: z.string().optional(),
5832
6114
  generation: z.number().int().nonnegative(),
5833
6115
  created_at: z.string(),
5834
6116
  updated_at: z.string()
@@ -6909,5 +7191,5 @@ async function resolveRunManifest(dbRoot, runId) {
6909
7191
  }
6910
7192
 
6911
7193
  //#endregion
6912
- export { ACCEPTANCE_CONTRACT_PROFILE_PATH, FindingsInjector, JOURNEY_DEFERRALS_PATH, JOURNEY_REGISTRY_PATH, RunManifest, RuntimeProbeListSchema, SupervisorLock, ZERO_FINDINGS_BY_AUTHOR, ZERO_FINDING_COUNTS, ZERO_PROBE_AUTHOR_METRICS, aggregateProbeAuthorMetrics, applyConfigToGraph, computeJourneyCoverage, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, loadAcceptanceContractFromTrustedTree, loadJourneyDeferralsFromTrustedTree, loadJourneyRegistryFromFile, loadJourneyRegistryFromTrustedTree, parseAcceptanceContract, parseJourneyDeferrals, parseRuntimeProbes, parseStoryFrontmatter, readCurrentRunId, renderFindings, resolveGraphPath, resolveMainRepoRoot, resolveRunManifest, rollupFindingCounts, rollupFindingsByAuthor, rollupProbeAuthorByClass, rollupProbeAuthorMetrics, runAcTraceabilityCheck, runStaleVerificationRecovery, summarizeCoverage };
6913
- //# sourceMappingURL=manifest-read-C0N7b9nH.js.map
7194
+ export { ACCEPTANCE_CONTRACT_PROFILE_PATH, FindingsInjector, JOURNEY_DEFERRALS_PATH, JOURNEY_REGISTRY_PATH, RunManifest, RuntimeProbeListSchema, SupervisorLock, ZERO_FINDINGS_BY_AUTHOR, ZERO_FINDING_COUNTS, ZERO_PROBE_AUTHOR_METRICS, aggregateProbeAuthorMetrics, applyConfigToGraph, computeJourneyCoverage, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, loadAcceptanceContractFromTrustedTree, loadJourneyDeferralsFromTrustedTree, loadJourneyRegistryFromFile, loadJourneyRegistryFromTrustedTree, parseAcceptanceContract, parseJourneyDeferrals, parseRuntimeProbes, parseStoryFrontmatter, readCurrentRunId, renderFindings, renderSurface, renderVerdictHtml, resolveGraphPath, resolveMainRepoRoot, resolveRunManifest, rollupFindingCounts, rollupFindingsByAuthor, rollupProbeAuthorByClass, rollupProbeAuthorMetrics, runAcTraceabilityCheck, runStaleVerificationRecovery, summarizeCoverage };
7195
+ //# sourceMappingURL=manifest-read-Ce5Y-iNu.js.map
@@ -1,6 +1,6 @@
1
1
  import "../../logger-KeHncl-f.js";
2
- import "../../dist-CpnLJuVw.js";
3
- import "../../manifest-read-C0N7b9nH.js";
4
- import { runInteractivePrompt } from "../../interactive-prompt-BvY2FKsl.js";
2
+ import "../../dist-DeyV_vqU.js";
3
+ import "../../manifest-read-Ce5Y-iNu.js";
4
+ import { runInteractivePrompt } from "../../interactive-prompt-CELNI8nZ.js";
5
5
 
6
6
  export { runInteractivePrompt };
@@ -1,4 +1,4 @@
1
- import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-CpnLJuVw.js";
1
+ import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-DeyV_vqU.js";
2
2
  import "./routing-DFxoKHDt.js";
3
3
 
4
4
  export { loadModelRoutingConfig };