substrate-ai 0.20.72 → 0.20.74

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 (36) hide show
  1. package/dist/adapter-registry-BQ6nUems.js +4 -0
  2. package/dist/cli/index.js +41 -34
  3. package/dist/{decision-router-DblHY8se.js → decision-router-DTEp1PZd.js} +1 -1
  4. package/dist/{decisions-BXgdrfcI.js → decisions-Bv-ra5-w.js} +2 -2
  5. package/dist/{dist-W2emvN3F.js → dist-BDIN6Zlf.js} +29 -7
  6. package/dist/dist-CrpPpwLe.js +5 -0
  7. package/dist/{errors-C7VFFshz.js → errors-D9Y-eLxg.js} +2 -2
  8. package/dist/{experimenter-B85GNYL0.js → experimenter-D4n0rUFk.js} +1 -1
  9. package/dist/health-C7SFgk1C.js +8 -0
  10. package/dist/{health-CovhUT7J.js → health-CHIGdRqU.js} +3 -3
  11. package/dist/{index-C8F4ACfC.d.ts → index-CivZS-vM.d.ts} +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.js +3 -3
  14. package/dist/{interactive-prompt-ClBcJ4L1.js → interactive-prompt-c9VktXEL.js} +2 -2
  15. package/dist/{manifest-read-CwsWJGG_.js → manifest-read-Da2n-Www.js} +2 -2
  16. package/dist/modules/interactive-prompt/index.js +3 -3
  17. package/dist/{recovery-engine-BKGBeBnW.js → recovery-engine-B2dSwiPd.js} +2 -2
  18. package/dist/{routing-S7nSkcVy.js → routing-D9f4pbrs.js} +2 -2
  19. package/dist/run-BTNGBgxx.js +14 -0
  20. package/dist/{run-mmBmzeLi.js → run-DZRd-sJm.js} +50 -9
  21. package/dist/src/modules/decision-router/index.js +1 -1
  22. package/dist/src/modules/recovery-engine/index.d.ts +1 -1
  23. package/dist/src/modules/recovery-engine/index.js +2 -2
  24. package/dist/{upgrade-B_wOtafw.js → upgrade-BtUzTJvQ.js} +3 -3
  25. package/dist/{upgrade-VTSel8hN.js → upgrade-SuI3JhLZ.js} +2 -2
  26. package/dist/version-manager-impl-B2FqnLkY.js +4 -0
  27. package/dist/{work-graph-repository-DZyJv5pV.js → work-graph-repository-4cKsf8Lf.js} +1 -1
  28. package/package.json +1 -1
  29. package/dist/adapter-registry-k7ZX3Bz6.js +0 -4
  30. package/dist/health-DKjfC9pK.js +0 -8
  31. package/dist/run-li0J24M8.js +0 -14
  32. package/dist/version-manager-impl-cnLd6eL4.js +0 -4
  33. /package/dist/{adapter-registry-DXLMTmfD.js → adapter-registry-DIcrxjH8.js} +0 -0
  34. /package/dist/{decisions-CzSIEeGP.js → decisions-BAaxpVD0.js} +0 -0
  35. /package/dist/{routing-DFxoKHDt.js → routing-DZT5PN3N.js} +0 -0
  36. /package/dist/{version-manager-impl-qFBiO4Eh.js → version-manager-impl-BpJxTEBx.js} +0 -0
@@ -0,0 +1,4 @@
1
+ import { AdapterRegistry } from "./dist-BDIN6Zlf.js";
2
+ import "./adapter-registry-DIcrxjH8.js";
3
+
4
+ export { AdapterRegistry };
package/dist/cli/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
- import { FileStateStore, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, buildPipelineStatusOutput, createDatabaseAdapter, createStateStore, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, inspectProcessTree, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion } from "../health-CovhUT7J.js";
2
+ import { FileStateStore, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, buildPipelineStatusOutput, createDatabaseAdapter, createStateStore, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, inspectProcessTree, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion } from "../health-CHIGdRqU.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, createDoltClient, createPipelineRun, getActiveDecisions, getAllCostEntriesFiltered, getBaselineRunMetrics, getDecisionsByCategory, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initializeDolt, listRunMetrics, loadParentRunDecisions, supersedeDecision, tagRunAsBaseline, updatePipelineRun } from "../dist-W2emvN3F.js";
6
- import "../adapter-registry-DXLMTmfD.js";
7
- import { RunManifest, SupervisorLock, ZERO_FINDINGS_BY_AUTHOR, ZERO_FINDING_COUNTS, ZERO_PROBE_AUTHOR_METRICS, aggregateProbeAuthorMetrics, parseRuntimeProbes, readCurrentRunId, resolveMainRepoRoot, resolveRunManifest, rollupFindingCounts, rollupFindingsByAuthor, rollupProbeAuthorByClass, rollupProbeAuthorMetrics, runAcTraceabilityCheck } from "../manifest-read-CwsWJGG_.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-mmBmzeLi.js";
9
- import "../errors-C7VFFshz.js";
10
- import "../routing-DFxoKHDt.js";
11
- import { WorkGraphRepository } from "../work-graph-repository-DZyJv5pV.js";
12
- import "../decisions-CzSIEeGP.js";
13
- import "../decision-router-DblHY8se.js";
14
- import "../interactive-prompt-ClBcJ4L1.js";
15
- import "../recovery-engine-BKGBeBnW.js";
16
- import "../version-manager-impl-qFBiO4Eh.js";
17
- import { registerUpgradeCommand } from "../upgrade-VTSel8hN.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, createDoltClient, createPipelineRun, getActiveDecisions, getAllCostEntriesFiltered, getBaselineRunMetrics, getDecisionsByCategory, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initializeDolt, listRunMetrics, loadParentRunDecisions, supersedeDecision, tagRunAsBaseline, updatePipelineRun } from "../dist-BDIN6Zlf.js";
6
+ import "../adapter-registry-DIcrxjH8.js";
7
+ import { RunManifest, SupervisorLock, ZERO_FINDINGS_BY_AUTHOR, ZERO_FINDING_COUNTS, ZERO_PROBE_AUTHOR_METRICS, aggregateProbeAuthorMetrics, parseRuntimeProbes, readCurrentRunId, resolveMainRepoRoot, resolveRunManifest, rollupFindingCounts, rollupFindingsByAuthor, rollupProbeAuthorByClass, rollupProbeAuthorMetrics, runAcTraceabilityCheck } from "../manifest-read-Da2n-Www.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-DZRd-sJm.js";
9
+ import "../errors-D9Y-eLxg.js";
10
+ import "../routing-DZT5PN3N.js";
11
+ import { WorkGraphRepository } from "../work-graph-repository-4cKsf8Lf.js";
12
+ import "../decisions-BAaxpVD0.js";
13
+ import "../decision-router-DTEp1PZd.js";
14
+ import "../interactive-prompt-c9VktXEL.js";
15
+ import "../recovery-engine-B2dSwiPd.js";
16
+ import "../version-manager-impl-BpJxTEBx.js";
17
+ import { registerUpgradeCommand } from "../upgrade-SuI3JhLZ.js";
18
18
  import { Command } from "commander";
19
19
  import { fileURLToPath } from "url";
20
20
  import { dirname, join, resolve } from "path";
@@ -7491,7 +7491,7 @@ async function runStatusAction(options) {
7491
7491
  logger$15.debug({ err }, "Work graph query failed, continuing without work graph data");
7492
7492
  }
7493
7493
  if (run === void 0) {
7494
- const { inspectProcessTree: inspectProcessTree$1 } = await import("../health-DKjfC9pK.js");
7494
+ const { inspectProcessTree: inspectProcessTree$1 } = await import("../health-C7SFgk1C.js");
7495
7495
  const substrateDirPath = join(projectRoot, ".substrate");
7496
7496
  const processInfo = inspectProcessTree$1({
7497
7497
  projectRoot,
@@ -8456,7 +8456,7 @@ function defaultSupervisorDeps() {
8456
8456
  if (cached === null) {
8457
8457
  const { AdapterRegistry: AR } = await import(
8458
8458
  /* @vite-ignore */
8459
- "../adapter-registry-k7ZX3Bz6.js"
8459
+ "../adapter-registry-BQ6nUems.js"
8460
8460
  );
8461
8461
  cached = new AR();
8462
8462
  await cached.discoverAndRegister();
@@ -9023,11 +9023,11 @@ async function runSupervisorAction(options, deps = {}) {
9023
9023
  try {
9024
9024
  const { createExperimenter } = await import(
9025
9025
  /* @vite-ignore */
9026
- "../experimenter-B85GNYL0.js"
9026
+ "../experimenter-D4n0rUFk.js"
9027
9027
  );
9028
9028
  const { getLatestRun: getLatest } = await import(
9029
9029
  /* @vite-ignore */
9030
- "../decisions-BXgdrfcI.js"
9030
+ "../decisions-Bv-ra5-w.js"
9031
9031
  );
9032
9032
  const expAdapter = createDatabaseAdapter({
9033
9033
  backend: "auto",
@@ -9037,7 +9037,7 @@ async function runSupervisorAction(options, deps = {}) {
9037
9037
  await initSchema(expAdapter);
9038
9038
  const { runRunAction: runPipeline } = await import(
9039
9039
  /* @vite-ignore */
9040
- "../run-li0J24M8.js"
9040
+ "../run-BTNGBgxx.js"
9041
9041
  );
9042
9042
  const runStoryFn = async (opts) => {
9043
9043
  const exitCode = await runPipeline({
@@ -9569,7 +9569,7 @@ async function runMetricsAction(options) {
9569
9569
  const routingConfigPath = join(dbDir, "routing.yml");
9570
9570
  let routingConfig = null;
9571
9571
  if (existsSync$1(routingConfigPath)) try {
9572
- const { loadModelRoutingConfig } = await import("../routing-S7nSkcVy.js");
9572
+ const { loadModelRoutingConfig } = await import("../routing-D9f4pbrs.js");
9573
9573
  routingConfig = loadModelRoutingConfig(routingConfigPath);
9574
9574
  } catch {}
9575
9575
  if (routingConfig === null) routingConfig = {
@@ -14023,20 +14023,27 @@ async function runReportAction(options) {
14023
14023
  return 1;
14024
14024
  }
14025
14025
  const statePath = join(dbRoot, ".substrate", "state");
14026
- if (existsSync$1(join(statePath, ".dolt"))) try {
14027
- const doltClient = new DoltClient({ repoPath: statePath });
14028
- const storyKeys = Object.keys(manifest.per_story_state);
14029
- if (storyKeys.length > 0) {
14030
- const placeholders = storyKeys.map(() => "?").join(", ");
14031
- const rows = await doltClient.query(`SELECT story_key, completed_at FROM wg_stories WHERE story_key IN (${placeholders})`, storyKeys);
14032
- for (const row of rows) {
14033
- const state = manifest.per_story_state[row.story_key];
14034
- if (state && !state.completed_at && row.completed_at) state.completed_at = row.completed_at;
14026
+ if (existsSync$1(join(statePath, ".dolt"))) {
14027
+ let doltClient = null;
14028
+ try {
14029
+ doltClient = new DoltClient({ repoPath: statePath });
14030
+ const storyKeys = Object.keys(manifest.per_story_state);
14031
+ if (storyKeys.length > 0) {
14032
+ const placeholders = storyKeys.map(() => "?").join(", ");
14033
+ const rows = await doltClient.query(`SELECT story_key, completed_at FROM wg_stories WHERE story_key IN (${placeholders})`, storyKeys);
14034
+ for (const row of rows) {
14035
+ const state = manifest.per_story_state[row.story_key];
14036
+ if (state && !state.completed_at && row.completed_at) state.completed_at = row.completed_at;
14037
+ }
14038
+ logger$1.debug({ storyCount: rows.length }, "Dolt wg_stories enrichment applied");
14035
14039
  }
14036
- logger$1.debug({ storyCount: rows.length }, "Dolt wg_stories enrichment applied");
14040
+ } catch (err) {
14041
+ logger$1.debug({ err }, "Dolt enrichment unavailable — using manifest-only data (degraded mode)");
14042
+ } finally {
14043
+ if (doltClient !== null) await doltClient.close().catch((err) => {
14044
+ logger$1.debug({ err }, "DoltClient.close() failed — non-fatal");
14045
+ });
14037
14046
  }
14038
- } catch (err) {
14039
- logger$1.debug({ err }, "Dolt enrichment unavailable — using manifest-only data (degraded mode)");
14040
14047
  }
14041
14048
  const halts = await readNotificationsForRun(resolvedRunId, dbRoot).catch((err) => {
14042
14049
  logger$1.debug({ err }, "notification read failed — continuing without halt data");
@@ -14183,8 +14190,8 @@ async function createProgram() {
14183
14190
  /** Fire-and-forget startup version check (story 8.3, AC3/AC5) */
14184
14191
  function checkForUpdatesInBackground(currentVersion) {
14185
14192
  if (process.env.SUBSTRATE_NO_UPDATE_CHECK === "1") return;
14186
- import("../upgrade-B_wOtafw.js").then(async () => {
14187
- const { createVersionManager } = await import("../version-manager-impl-cnLd6eL4.js");
14193
+ import("../upgrade-BtUzTJvQ.js").then(async () => {
14194
+ const { createVersionManager } = await import("../version-manager-impl-B2FqnLkY.js");
14188
14195
  const vm = createVersionManager();
14189
14196
  const result = await vm.checkForUpdates();
14190
14197
  if (result.updateAvailable) {
@@ -94,4 +94,4 @@ function deriveExitCode(outcome) {
94
94
 
95
95
  //#endregion
96
96
  export { DECISION_SEVERITY_MAP, deriveExitCode, routeDecision };
97
- //# sourceMappingURL=decision-router-DblHY8se.js.map
97
+ //# sourceMappingURL=decision-router-DTEp1PZd.js.map
@@ -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-W2emvN3F.js";
2
- import "./decisions-CzSIEeGP.js";
1
+ import { addTokenUsage, createDecision, createPipelineRun, createRequirement, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getTokenUsageSummary, listRequirements, registerArtifact, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision } from "./dist-BDIN6Zlf.js";
2
+ import "./decisions-BAaxpVD0.js";
3
3
 
4
4
  export { getLatestRun };
@@ -16,6 +16,7 @@ import { createGunzip, createInflate } from "node:zlib";
16
16
  import { promisify } from "node:util";
17
17
  import { createRequire } from "node:module";
18
18
  import { fileURLToPath } from "node:url";
19
+ import * as semver$2 from "semver";
19
20
  import * as semver$1 from "semver";
20
21
  import * as semver from "semver";
21
22
  import https from "node:https";
@@ -10338,9 +10339,9 @@ var UpdateChecker = class {
10338
10339
  * @returns true if the major version increases; false if either version is invalid
10339
10340
  */
10340
10341
  isBreaking(currentVersion, latestVersion) {
10341
- if (!semver$1.valid(currentVersion) || !semver$1.valid(latestVersion)) return false;
10342
- const currentMajor = semver$1.major(currentVersion);
10343
- const latestMajor = semver$1.major(latestVersion);
10342
+ if (!semver$2.valid(currentVersion) || !semver$2.valid(latestVersion)) return false;
10343
+ const currentMajor = semver$2.major(currentVersion);
10344
+ const latestMajor = semver$2.major(latestVersion);
10344
10345
  return latestMajor > currentMajor;
10345
10346
  }
10346
10347
  /**
@@ -10498,7 +10499,7 @@ var VersionManagerImpl = class {
10498
10499
  if (!forceRefresh) {
10499
10500
  const cached = this.cache.read();
10500
10501
  if (cached !== null) {
10501
- const updateAvailable = semver.gt(cached.latestVersion, currentVersion);
10502
+ const updateAvailable = semver$1.gt(cached.latestVersion, currentVersion);
10502
10503
  return {
10503
10504
  currentVersion,
10504
10505
  latestVersion: cached.latestVersion,
@@ -10510,7 +10511,7 @@ var VersionManagerImpl = class {
10510
10511
  }
10511
10512
  try {
10512
10513
  const latestVersion = await this.updateChecker.fetchLatestVersion("substrate-ai");
10513
- const updateAvailable = semver.gt(latestVersion, currentVersion);
10514
+ const updateAvailable = semver$1.gt(latestVersion, currentVersion);
10514
10515
  this.cache.write({
10515
10516
  lastChecked: new Date().toISOString(),
10516
10517
  latestVersion,
@@ -10601,6 +10602,27 @@ function createVersionManager(deps = {}) {
10601
10602
  return new VersionManagerImpl(deps);
10602
10603
  }
10603
10604
 
10605
+ //#endregion
10606
+ //#region packages/core/dist/version-manager/version-gap.js
10607
+ /**
10608
+ * Classify the gap between the running version and the latest published version.
10609
+ *
10610
+ * @returns
10611
+ * - `'none'` — versions equal, or current is ahead of latest (e.g., dev build)
10612
+ * - `'patch-1'` — single patch hop (e.g., 0.20.71 → 0.20.72) — non-prominent
10613
+ * - `'significant'` — > 1 patch hop, or any minor/major gap — prominent advisory
10614
+ */
10615
+ function classifyVersionGap(current, latest) {
10616
+ const c = semver.coerce(current);
10617
+ const l = semver.coerce(latest);
10618
+ if (c === null || l === null) return "none";
10619
+ if (semver.lte(l, c)) return "none";
10620
+ if (l.major !== c.major || l.minor !== c.minor) return "significant";
10621
+ const patchDelta = l.patch - c.patch;
10622
+ if (patchDelta <= 1) return "patch-1";
10623
+ return "significant";
10624
+ }
10625
+
10604
10626
  //#endregion
10605
10627
  //#region packages/core/dist/supervisor/experimenter.js
10606
10628
  /**
@@ -11041,5 +11063,5 @@ async function callLLM(params) {
11041
11063
  }
11042
11064
 
11043
11065
  //#endregion
11044
- export { ADVISORY_NOTES, AdapterRegistry, AdtError, BudgetConfigSchema, 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, compareRunMetrics, createAmendmentRun, createConfigSystem, createDatabaseAdapter as createDatabaseAdapter$1, createDecision, createDoltClient, createExperimenter, createPipelineRun, createRequirement, createVersionManager, detectInterfaceChanges, determineVerdict, getActiveDecisions, getAllCostEntriesFiltered, getArtifactByTypeForRun, getArtifactsByRun, getBaselineRunMetrics, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getModelTier, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initializeDolt, listRequirements, listRunMetrics, loadModelRoutingConfig, loadParentRunDecisions, registerArtifact, resolvePromptFile, supersedeDecision, tagRunAsBaseline, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics };
11045
- //# sourceMappingURL=dist-W2emvN3F.js.map
11066
+ export { ADVISORY_NOTES, AdapterFormatError, AdapterOutputNormalizer, AdapterRegistry, AddTokenUsageInputSchema, AdtError, ApiBillingConfigSchema, BatchBuffer, BillingModeSchema, BudgetConfigSchema, COST_TABLE, CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, Categorizer, CategoryStatsSchema, ChildSpanSummarySchema, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, ConfigMigrator, ConfigSystemImpl, ConsumerAnalyzer, ConsumerStatsSchema, CostTrackerConfigSchema, CreateDecisionInputSchema, CreatePipelineRunInputSchema, CreateRequirementInputSchema, DEFAULT_BASELINE, DEFAULT_CLAUDE_PROVIDER, DEFAULT_CODEX_PROVIDER, DEFAULT_CONFIG, DEFAULT_GEMINI_PROVIDER, DEFAULT_GLOBAL_SETTINGS, DEFAULT_MAX_TURNS, DEFAULT_TIMEOUTS, DefaultRoutingPolicySchema, DispatcherImpl, DispatcherShuttingDownError, DoltClient, DoltDatabaseAdapter, DoltInitError, DoltNotInstalled, DoltQueryError, ESCALATION_DIAGNOSIS, EXPERIMENT_RESULT, EfficiencyScoreSchema, EfficiencyScorer, GeminiCLIAdapter, GlobalRoutingSettingsSchema, GlobalSettingsSchema, InMemoryDatabaseAdapter, IngestionServer, LEARNING_FINDING, LogLevelSchema, LogTurnAnalyzer, ModelEfficiencySchema, ModelPhaseConfigSchema, ModelRoutingConfigSchema, MonitorDatabaseImpl, OPERATIONAL_FINDING, PartialGlobalSettingsSchema, PartialProviderConfigSchema, PartialSubstrateConfigSchema, PipelineRunStatusEnum, PlannedTaskSchema, ProviderConfigSchema, ProviderPolicySchema, ProvidersSchema, RateLimitConfigSchema, RateLimitSchema, RecommendationSchema, RecommendationSeveritySchema, Recommender, RegisterArtifactInputSchema, RequirementPriorityEnum, RequirementTypeEnum, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, RuleIdSchema, STORY_METRICS, STORY_OUTCOME, SUPPORTED_CONFIG_FORMAT_VERSIONS, SUPPORTED_TASK_GRAPH_VERSIONS, SectionReportSchema, SemanticCategorySchema, SourceEfficiencySchema, StoreQuerySchema, SubscriptionRoutingSchema, SubstrateConfigSchema, TASK_BASELINES, TASK_TYPE_PHASE_MAP, TEST_EXPANSION_FINDING, TEST_PLAN, TaskTypePolicySchema, TelemetryConfigSchema, TelemetryError, TelemetryNormalizer, TelemetryPipeline, TemplateSectionSchema, TokenEstimateSchema, TopInvocationSchema, TrendSchema, TurnAnalyzer, UpdateCheckError, UpdateChecker, VersionCache, VersionManagerImpl, addTokenUsage, aggregateTokenUsageForRun, aggregateTokenUsageForStory, buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, callLLM, checkDoltInstalled, classifyVersionGap, compareRunMetrics, createAmendmentRun, createConfigSystem, createDatabaseAdapter as createDatabaseAdapter$1, createDecision, createDoltClient, createExperimenter, createPipelineRun, createRequirement, createVersionManager, deepMerge, defaultConfigMigrator, detectInterfaceChanges, detectSource, determineVerdict, estimateCost, estimateOutputQuality, extractExportedNames, extractTokensFromAttributes, extractTokensFromBody, extractYamlBlock, formatUnsupportedVersionError, getActiveDecisions, getAllCostEntriesFiltered, getArtifactByTypeForRun, getArtifactsByRun, getBaseline, getBaselineRunMetrics, getByPath, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getModelTier, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initializeDolt, isSyncAdapter, isVersionSupported, listRequirements, listRunMetrics, loadModelRoutingConfig, loadParentRunDecisions, mergeTokenCounts, normalizeTimestamp, parseYamlResult, registerArtifact, resolveModel$1 as resolveModel, resolvePromptFile, runDoltCommand, setByPath, supersedeDecision, tagRunAsBaseline, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics };
11067
+ //# sourceMappingURL=dist-BDIN6Zlf.js.map
@@ -0,0 +1,5 @@
1
+ import { TypedEventBusImpl } from "./helpers-CElYrONe.js";
2
+ import { ADVISORY_NOTES, AdapterFormatError, AdapterOutputNormalizer, AdapterRegistry, AddTokenUsageInputSchema, AdtError, ApiBillingConfigSchema, BatchBuffer, BillingModeSchema, BudgetConfigSchema, COST_TABLE, CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, Categorizer, CategoryStatsSchema, ChildSpanSummarySchema, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, ConfigMigrator, ConfigSystemImpl, ConsumerAnalyzer, ConsumerStatsSchema, CostTrackerConfigSchema, CreateDecisionInputSchema, CreatePipelineRunInputSchema, CreateRequirementInputSchema, DEFAULT_BASELINE, DEFAULT_CLAUDE_PROVIDER, DEFAULT_CODEX_PROVIDER, DEFAULT_CONFIG, DEFAULT_GEMINI_PROVIDER, DEFAULT_GLOBAL_SETTINGS, DEFAULT_MAX_TURNS, DEFAULT_TIMEOUTS, DefaultRoutingPolicySchema, DispatcherImpl, DispatcherShuttingDownError, DoltClient, DoltDatabaseAdapter, DoltInitError, DoltNotInstalled, DoltQueryError, ESCALATION_DIAGNOSIS, EXPERIMENT_RESULT, EfficiencyScoreSchema, EfficiencyScorer, GeminiCLIAdapter, GlobalRoutingSettingsSchema, GlobalSettingsSchema, InMemoryDatabaseAdapter, IngestionServer, LEARNING_FINDING, LogLevelSchema, LogTurnAnalyzer, ModelEfficiencySchema, ModelPhaseConfigSchema, ModelRoutingConfigSchema, MonitorDatabaseImpl, OPERATIONAL_FINDING, PartialGlobalSettingsSchema, PartialProviderConfigSchema, PartialSubstrateConfigSchema, PipelineRunStatusEnum, PlannedTaskSchema, ProviderConfigSchema, ProviderPolicySchema, ProvidersSchema, RateLimitConfigSchema, RateLimitSchema, RecommendationSchema, RecommendationSeveritySchema, Recommender, RegisterArtifactInputSchema, RequirementPriorityEnum, RequirementTypeEnum, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, RuleIdSchema, STORY_METRICS, STORY_OUTCOME, SUPPORTED_CONFIG_FORMAT_VERSIONS, SUPPORTED_TASK_GRAPH_VERSIONS, SectionReportSchema, SemanticCategorySchema, SourceEfficiencySchema, StoreQuerySchema, SubscriptionRoutingSchema, SubstrateConfigSchema, TASK_BASELINES, TASK_TYPE_PHASE_MAP, TEST_EXPANSION_FINDING, TEST_PLAN, TaskTypePolicySchema, TelemetryConfigSchema, TelemetryError, TelemetryNormalizer, TelemetryPipeline, TemplateSectionSchema, TokenEstimateSchema, TopInvocationSchema, TrendSchema, TurnAnalyzer, UpdateCheckError, UpdateChecker, VersionCache, VersionManagerImpl, addTokenUsage, aggregateTokenUsageForRun, aggregateTokenUsageForStory, buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, callLLM, checkDoltInstalled, classifyVersionGap, compareRunMetrics, createAmendmentRun, createConfigSystem, createDatabaseAdapter$1 as createDatabaseAdapter, createDecision, createDoltClient, createExperimenter, createPipelineRun, createRequirement, createVersionManager, deepMerge, defaultConfigMigrator, detectInterfaceChanges, detectSource, determineVerdict, estimateCost, estimateOutputQuality, extractExportedNames, extractTokensFromAttributes, extractTokensFromBody, extractYamlBlock, formatUnsupportedVersionError, getActiveDecisions, getAllCostEntriesFiltered, getArtifactByTypeForRun, getArtifactsByRun, getBaseline, getBaselineRunMetrics, getByPath, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestCompletedRun, getLatestRun, getModelTier, getPipelineRunById, getPlanningCostTotal, getRetryableEscalations, getRunMetrics, getRunningPipelineRuns, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initializeDolt, isSyncAdapter, isVersionSupported, listRequirements, listRunMetrics, loadModelRoutingConfig, loadParentRunDecisions, mergeTokenCounts, normalizeTimestamp, parseYamlResult, registerArtifact, resolveModel, resolvePromptFile, runDoltCommand, setByPath, supersedeDecision, tagRunAsBaseline, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-BDIN6Zlf.js";
3
+ import { GitWorktreeManagerImpl, RecommendationEngine, abortMerge, createGitWorktreeManager, createWorktree, generateMonitorReport, getConflictingFiles, getGitVersion, getMergedFiles, getOrphanedWorktrees, isGitVersionSupported, parseGitVersion, performMerge, removeBranch, removeWorktree, simulateMerge, spawnGit, verifyGitVersion } from "./cli/index.js";
4
+
5
+ export { classifyVersionGap };
@@ -1,4 +1,4 @@
1
- import { AdtError } from "./dist-W2emvN3F.js";
1
+ import { AdtError } from "./dist-BDIN6Zlf.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-C7VFFshz.js.map
74
+ //# sourceMappingURL=errors-D9Y-eLxg.js.map
@@ -1,3 +1,3 @@
1
- import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-W2emvN3F.js";
1
+ import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-BDIN6Zlf.js";
2
2
 
3
3
  export { createExperimenter };
@@ -0,0 +1,8 @@
1
+ import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-CHIGdRqU.js";
2
+ import "./logger-KeHncl-f.js";
3
+ import "./dist-BDIN6Zlf.js";
4
+ import "./manifest-read-Da2n-Www.js";
5
+ import "./work-graph-repository-4cKsf8Lf.js";
6
+ import "./decisions-BAaxpVD0.js";
7
+
8
+ export { inspectProcessTree };
@@ -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-W2emvN3F.js";
3
- import { resolveMainRepoRoot, resolveRunManifest } from "./manifest-read-CwsWJGG_.js";
2
+ import { DoltClient, DoltQueryError, createDatabaseAdapter$1 as createDatabaseAdapter, getLatestRun, getPipelineRunById, initSchema } from "./dist-BDIN6Zlf.js";
3
+ import { resolveMainRepoRoot, resolveRunManifest } from "./manifest-read-Da2n-Www.js";
4
4
  import { createRequire } from "module";
5
5
  import { dirname, join } from "path";
6
6
  import { existsSync, readFileSync } from "node:fs";
@@ -1712,4 +1712,4 @@ function registerHealthCommand(program, _version = "0.0.0", projectRoot = proces
1712
1712
 
1713
1713
  //#endregion
1714
1714
  export { BMAD_BASELINE_TOKENS_FULL, DEFAULT_STALL_THRESHOLD_SECONDS, DoltMergeConflict, FileStateStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN$1 as STORY_KEY_PATTERN, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter$1 as createDatabaseAdapter, createStateStore, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, inspectProcessTree, isOrchestratorProcessLine, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion, runHealthAction, validateStoryKey };
1715
- //# sourceMappingURL=health-CovhUT7J.js.map
1715
+ //# sourceMappingURL=health-CHIGdRqU.js.map
@@ -1429,4 +1429,4 @@ interface Recommendation {
1429
1429
 
1430
1430
  //#endregion
1431
1431
  export { AdapterDiscoveryResult, AdapterRegistry as AdapterRegistry$1, AdtError as AdtError$1, ClaudeCodeAdapter as ClaudeCodeAdapter$1, CodexCLIAdapter as CodexCLIAdapter$1, ConfigError as ConfigError$1, ConfigIncompatibleFormatError as ConfigIncompatibleFormatError$1, CoreEvents, DatabaseAdapter, DiscoveryReport, GeminiCLIAdapter as GeminiCLIAdapter$1, Recommendation, TypedEventBus };
1432
- //# sourceMappingURL=index-C8F4ACfC.d.ts.map
1432
+ //# sourceMappingURL=index-CivZS-vM.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AdapterDiscoveryResult, AdapterRegistry$1 as AdapterRegistry, AdtError$1 as AdtError, ClaudeCodeAdapter$1 as ClaudeCodeAdapter, CodexCLIAdapter$1 as CodexCLIAdapter, ConfigError$1 as ConfigError, ConfigIncompatibleFormatError$1 as ConfigIncompatibleFormatError, DiscoveryReport, GeminiCLIAdapter$1 as GeminiCLIAdapter, Recommendation, TypedEventBus } from "./index-C8F4ACfC.js";
1
+ import { AdapterDiscoveryResult, AdapterRegistry$1 as AdapterRegistry, AdtError$1 as AdtError, ClaudeCodeAdapter$1 as ClaudeCodeAdapter, CodexCLIAdapter$1 as CodexCLIAdapter, ConfigError$1 as ConfigError, ConfigIncompatibleFormatError$1 as ConfigIncompatibleFormatError, DiscoveryReport, GeminiCLIAdapter$1 as GeminiCLIAdapter, Recommendation, TypedEventBus } from "./index-CivZS-vM.js";
2
2
  import pino from "pino";
3
3
  import { z } from "zod";
4
4
  import { Readable, Writable } from "node:stream";
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-W2emvN3F.js";
4
- import "./adapter-registry-DXLMTmfD.js";
5
- import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-C7VFFshz.js";
3
+ import { AdapterRegistry, AdtError, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, GeminiCLIAdapter } from "./dist-BDIN6Zlf.js";
4
+ import "./adapter-registry-DIcrxjH8.js";
5
+ import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-D9Y-eLxg.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-CwsWJGG_.js";
2
+ import { readCurrentRunId, resolveMainRepoRoot } from "./manifest-read-Da2n-Www.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-ClBcJ4L1.js.map
183
+ //# sourceMappingURL=interactive-prompt-c9VktXEL.js.map
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from "./logger-KeHncl-f.js";
2
- import { LEARNING_FINDING, createDecision, getDecisionsByCategory } from "./dist-W2emvN3F.js";
2
+ import { LEARNING_FINDING, createDecision, getDecisionsByCategory } from "./dist-BDIN6Zlf.js";
3
3
  import * as path$1 from "path";
4
4
  import { join } from "path";
5
5
  import { readFile } from "fs/promises";
@@ -5841,4 +5841,4 @@ async function resolveRunManifest(dbRoot, runId) {
5841
5841
 
5842
5842
  //#endregion
5843
5843
  export { FindingsInjector, RunManifest, RuntimeProbeListSchema, SupervisorLock, ZERO_FINDINGS_BY_AUTHOR, ZERO_FINDING_COUNTS, ZERO_PROBE_AUTHOR_METRICS, aggregateProbeAuthorMetrics, applyConfigToGraph, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, parseRuntimeProbes, readCurrentRunId, renderFindings, resolveGraphPath, resolveMainRepoRoot, resolveRunManifest, rollupFindingCounts, rollupFindingsByAuthor, rollupProbeAuthorByClass, rollupProbeAuthorMetrics, runAcTraceabilityCheck, runStaleVerificationRecovery };
5844
- //# sourceMappingURL=manifest-read-CwsWJGG_.js.map
5844
+ //# sourceMappingURL=manifest-read-Da2n-Www.js.map
@@ -1,6 +1,6 @@
1
1
  import "../../logger-KeHncl-f.js";
2
- import "../../dist-W2emvN3F.js";
3
- import "../../manifest-read-CwsWJGG_.js";
4
- import { runInteractivePrompt } from "../../interactive-prompt-ClBcJ4L1.js";
2
+ import "../../dist-BDIN6Zlf.js";
3
+ import "../../manifest-read-Da2n-Www.js";
4
+ import { runInteractivePrompt } from "../../interactive-prompt-c9VktXEL.js";
5
5
 
6
6
  export { runInteractivePrompt };
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from "./logger-KeHncl-f.js";
2
- import { WorkGraphRepository } from "./work-graph-repository-DZyJv5pV.js";
2
+ import { WorkGraphRepository } from "./work-graph-repository-4cKsf8Lf.js";
3
3
  import { randomUUID } from "node:crypto";
4
4
 
5
5
  //#region src/modules/recovery-engine/index.ts
@@ -278,4 +278,4 @@ function buildSuggestedAction(rootCause, storyKey) {
278
278
 
279
279
  //#endregion
280
280
  export { classifyRecoveryAction, runRecoveryEngine };
281
- //# sourceMappingURL=recovery-engine-BKGBeBnW.js.map
281
+ //# sourceMappingURL=recovery-engine-B2dSwiPd.js.map
@@ -1,4 +1,4 @@
1
- import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-W2emvN3F.js";
2
- import "./routing-DFxoKHDt.js";
1
+ import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-BDIN6Zlf.js";
2
+ import "./routing-DZT5PN3N.js";
3
3
 
4
4
  export { loadModelRoutingConfig };
@@ -0,0 +1,14 @@
1
+ import "./health-CHIGdRqU.js";
2
+ import "./logger-KeHncl-f.js";
3
+ import "./helpers-CElYrONe.js";
4
+ import "./dist-BDIN6Zlf.js";
5
+ import "./manifest-read-Da2n-Www.js";
6
+ import { normalizeGraphSummaryToStatus, registerRunCommand, resolveMaxReviewCycles, resolveProbeAuthorStateIntegrating, runRunAction, wireNdjsonEmitter } from "./run-DZRd-sJm.js";
7
+ import "./routing-DZT5PN3N.js";
8
+ import "./work-graph-repository-4cKsf8Lf.js";
9
+ import "./decisions-BAaxpVD0.js";
10
+ import "./decision-router-DTEp1PZd.js";
11
+ import "./interactive-prompt-c9VktXEL.js";
12
+ import "./recovery-engine-B2dSwiPd.js";
13
+
14
+ export { runRunAction };
@@ -1,12 +1,12 @@
1
- import { BMAD_BASELINE_TOKENS_FULL, DoltMergeConflict, FileStateStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN, VALID_PHASES, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter, formatOutput, formatPipelineSummary, formatTokenTelemetry, inspectProcessTree, parseDbTimestampAsUtc, validateStoryKey } from "./health-CovhUT7J.js";
1
+ import { BMAD_BASELINE_TOKENS_FULL, DoltMergeConflict, FileStateStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN, VALID_PHASES, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter, formatOutput, formatPipelineSummary, formatTokenTelemetry, inspectProcessTree, parseDbTimestampAsUtc, validateStoryKey } from "./health-CHIGdRqU.js";
2
2
  import { createLogger } from "./logger-KeHncl-f.js";
3
3
  import { TypedEventBusImpl, createEventBus, createTuiApp, isTuiCapable, printNonTtyWarning, sleep } from "./helpers-CElYrONe.js";
4
- import { ADVISORY_NOTES, Categorizer, ConsumerAnalyzer, DEFAULT_GLOBAL_SETTINGS, DispatcherImpl, DoltClient, ESCALATION_DIAGNOSIS, EXPERIMENT_RESULT, EfficiencyScorer, IngestionServer, LogTurnAnalyzer, OPERATIONAL_FINDING, Recommender, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, STORY_METRICS, STORY_OUTCOME, SubstrateConfigSchema, TEST_EXPANSION_FINDING, TEST_PLAN, TelemetryNormalizer, TelemetryPipeline, TurnAnalyzer, addTokenUsage, aggregateTokenUsageForRun, aggregateTokenUsageForStory, callLLM, createConfigSystem, createDatabaseAdapter$1, createDecision, createPipelineRun, createRequirement, detectInterfaceChanges, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunMetrics, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, listRequirements, loadModelRoutingConfig, registerArtifact, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-W2emvN3F.js";
5
- import { FindingsInjector, RunManifest, RuntimeProbeListSchema, applyConfigToGraph, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, renderFindings, resolveGraphPath, resolveMainRepoRoot, runAcTraceabilityCheck, runStaleVerificationRecovery } from "./manifest-read-CwsWJGG_.js";
6
- import { WorkGraphRepository, detectCycles } from "./work-graph-repository-DZyJv5pV.js";
7
- import { deriveExitCode, routeDecision } from "./decision-router-DblHY8se.js";
8
- import { runInteractivePrompt } from "./interactive-prompt-ClBcJ4L1.js";
9
- import { runRecoveryEngine } from "./recovery-engine-BKGBeBnW.js";
4
+ import { ADVISORY_NOTES, Categorizer, ConsumerAnalyzer, DEFAULT_GLOBAL_SETTINGS, DispatcherImpl, DoltClient, ESCALATION_DIAGNOSIS, EXPERIMENT_RESULT, EfficiencyScorer, IngestionServer, LogTurnAnalyzer, OPERATIONAL_FINDING, Recommender, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, STORY_METRICS, STORY_OUTCOME, SubstrateConfigSchema, TEST_EXPANSION_FINDING, TEST_PLAN, TelemetryNormalizer, TelemetryPipeline, TurnAnalyzer, addTokenUsage, aggregateTokenUsageForRun, aggregateTokenUsageForStory, callLLM, createConfigSystem, createDatabaseAdapter$1, createDecision, createPipelineRun, createRequirement, detectInterfaceChanges, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunMetrics, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, listRequirements, loadModelRoutingConfig, registerArtifact, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-BDIN6Zlf.js";
5
+ import { FindingsInjector, RunManifest, RuntimeProbeListSchema, applyConfigToGraph, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, renderFindings, resolveGraphPath, resolveMainRepoRoot, runAcTraceabilityCheck, runStaleVerificationRecovery } from "./manifest-read-Da2n-Www.js";
6
+ import { WorkGraphRepository, detectCycles } from "./work-graph-repository-4cKsf8Lf.js";
7
+ import { deriveExitCode, routeDecision } from "./decision-router-DTEp1PZd.js";
8
+ import { runInteractivePrompt } from "./interactive-prompt-c9VktXEL.js";
9
+ import { runRecoveryEngine } from "./recovery-engine-B2dSwiPd.js";
10
10
  import { basename, dirname, extname, join } from "path";
11
11
  import { access, readFile, readdir, stat } from "fs/promises";
12
12
  import { EventEmitter } from "node:events";
@@ -46036,7 +46036,47 @@ async function runFullPipeline(options) {
46036
46036
  doltServerFull?.stop();
46037
46037
  }
46038
46038
  }
46039
- function registerRunCommand(program, _version = "0.0.0", projectRoot = process.cwd(), registry) {
46039
+ /**
46040
+ * Emit a prominent multi-line advisory to stderr when the locally-installed
46041
+ * binary lags the published version by > 1 patch hop. The existing
46042
+ * `Update available: X → Y` notification (cli/index.ts) fires on every CLI
46043
+ * command but is one terse line easily lost under NDJSON event streams.
46044
+ * The pre-dispatch advisory is a heavier visual block, fired specifically
46045
+ * at `substrate run` startup, only for significant gaps.
46046
+ *
46047
+ * Threshold: see classifyVersionGap — > 1 patch hop or any minor/major.
46048
+ *
46049
+ * Network failures, parse errors, and the SUBSTRATE_NO_UPDATE_CHECK=1
46050
+ * opt-out are all silently respected — the advisory must NEVER block dispatch.
46051
+ */
46052
+ async function emitPreDispatchVersionAdvisory(currentVersion) {
46053
+ if (process.env["SUBSTRATE_NO_UPDATE_CHECK"] === "1") return;
46054
+ const { createVersionManager } = await import("./version-manager-impl-B2FqnLkY.js");
46055
+ const { classifyVersionGap } = await import("./dist-CrpPpwLe.js");
46056
+ const vm = createVersionManager();
46057
+ const result = await vm.checkForUpdates();
46058
+ const gap = classifyVersionGap(currentVersion, result.latestVersion);
46059
+ if (gap !== "significant") return;
46060
+ const lines = [
46061
+ "",
46062
+ "╔══════════════════════════════════════════════════════════════════════╗",
46063
+ "║ ⚠ VERSION ADVISORY — local binary lags published version ║",
46064
+ "╠══════════════════════════════════════════════════════════════════════╣",
46065
+ `║ Running: v${currentVersion.padEnd(54)}║`,
46066
+ `║ Published: v${result.latestVersion.padEnd(54)}║`,
46067
+ "║ ║",
46068
+ "║ Dispatching now may produce work that relies on prompt content ║",
46069
+ "║ or behavior the running binary does not yet implement (canonical ║",
46070
+ "║ incident: obs_2026-05-02_019). Recommended: cancel and run ║",
46071
+ "║ `substrate upgrade` first. ║",
46072
+ "║ ║",
46073
+ "║ Override: set SUBSTRATE_NO_UPDATE_CHECK=1 to skip this check. ║",
46074
+ "╚══════════════════════════════════════════════════════════════════════╝",
46075
+ ""
46076
+ ];
46077
+ process.stderr.write(lines.join("\n"));
46078
+ }
46079
+ function registerRunCommand(program, version = "0.0.0", projectRoot = process.cwd(), registry) {
46040
46080
  program.command("run").description("Run the autonomous pipeline (use --from to start from a specific phase)").option("--pack <name>", "Methodology pack name", "bmad").option("--from <phase>", "Start from this phase: analysis, planning, solutioning, implementation").option("--stop-after <phase>", "Stop pipeline after this phase completes").option("--concept <text>", "Inline concept text (required when --from analysis)").option("--concept-file <path>", "Path to a file containing the concept text").option("--stories <keys>", "Comma-separated story keys (e.g., 10-1,10-2)").option("--epic <n>", "Scope story discovery to a single epic number (e.g., 27)", (v) => parseInt(v, 10)).option("--concurrency <n>", "Maximum parallel conflict groups", (v) => parseInt(v, 10), 3).option("--project-root <path>", "Project root directory", projectRoot).option("--output-format <format>", "Output format: human (default) or json", "human").option("--events", "Emit structured NDJSON events on stdout for programmatic consumption").option("--verbose", "Show detailed pino log output").option("--help-agent", "Print a machine-optimized prompt fragment for AI agents and exit").option("--tui", "Show TUI dashboard").option("--skip-ux", "Skip the UX design phase even if enabled in the pack manifest").option("--research", "Enable the research phase even if not set in the pack manifest").option("--skip-research", "Skip the research phase even if enabled in the pack manifest").option("--skip-preflight", "Skip the pre-flight build check (escape hatch for known-broken projects)").option("--skip-verification", "Skip the post-dispatch verification pipeline (Story 51-5)").option("--max-review-cycles <n>", "Maximum review cycles per story (default: 2)", (v) => parseInt(v, 10), 2).option("--dry-run", "Preview routing and repo-map injection without dispatching (Story 28-9)").option("--engine <type>", "Execution engine: linear (default) or graph").option("--agent <id>", "Agent backend: claude-code (default), codex, or gemini").option("--halt-on <severity>", "Halt pipeline on escalation severity: all | critical | none (default: critical)", "critical").option("--cost-ceiling <amount>", "Maximum cost ceiling in USD (positive number); halts pipeline when exceeded", parseFloat).option("--probe-author <mode>", "probe-author phase mode: enabled | disabled | auto (default: auto = SUBSTRATE_PROBE_AUTHOR_ENABLED env, default true) (Story 60-14)", "auto").option("--probe-author-state-integrating <value>", "Disable probe-author dispatch for state-integrating ACs (Phase 3). Use to ramp DOWN if catch rate drops below the GREEN threshold. Values: on | off (default: on)").option("--non-interactive", [
46041
46081
  "Run without operator prompts (CI/CD mode). Suppresses all stdin reads,",
46042
46082
  "auto-applies default actions for halt decisions, and returns machine-readable",
@@ -46058,6 +46098,7 @@ function registerRunCommand(program, _version = "0.0.0", projectRoot = process.c
46058
46098
  return;
46059
46099
  }
46060
46100
  const outputFormat = opts.outputFormat === "json" ? "json" : "human";
46101
+ await emitPreDispatchVersionAdvisory(version).catch(() => {});
46061
46102
  let fromPhase;
46062
46103
  if (opts.from !== void 0) {
46063
46104
  if (!VALID_PHASES.includes(opts.from)) {
@@ -46107,4 +46148,4 @@ function registerRunCommand(program, _version = "0.0.0", projectRoot = process.c
46107
46148
 
46108
46149
  //#endregion
46109
46150
  export { AdapterTelemetryPersistence, AppError, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, EpicIngester, GLOBSTAR$1 as GLOBSTAR, GitClient, GrammarLoader, Minimatch$1 as Minimatch, Minipass, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, escape$1 as escape, formatPhaseCompletionSummary, getFactoryRunSummaries, getScenarioResultsForRun, getTwinRunsForRun, listGraphRuns, normalizeGraphSummaryToStatus, registerExportCommand, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveMaxReviewCycles, resolveProbeAuthorStateIntegrating, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runProbeAuthor, runRunAction, runSolutioningPhase, unescape$1 as unescape, validateStopAfterFromConflict, wireNdjsonEmitter };
46110
- //# sourceMappingURL=run-mmBmzeLi.js.map
46151
+ //# sourceMappingURL=run-DZRd-sJm.js.map
@@ -1,3 +1,3 @@
1
- import { DECISION_SEVERITY_MAP, deriveExitCode, routeDecision } from "../../../decision-router-DblHY8se.js";
1
+ import { DECISION_SEVERITY_MAP, deriveExitCode, routeDecision } from "../../../decision-router-DTEp1PZd.js";
2
2
 
3
3
  export { DECISION_SEVERITY_MAP, deriveExitCode, routeDecision };
@@ -1,4 +1,4 @@
1
- import { CoreEvents, DatabaseAdapter, TypedEventBus } from "../../../index-C8F4ACfC.js";
1
+ import { CoreEvents, DatabaseAdapter, TypedEventBus } from "../../../index-CivZS-vM.js";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region packages/sdlc/dist/verification/findings.d.ts
@@ -1,5 +1,5 @@
1
1
  import "../../../logger-KeHncl-f.js";
2
- import "../../../work-graph-repository-DZyJv5pV.js";
3
- import { classifyRecoveryAction, runRecoveryEngine } from "../../../recovery-engine-BKGBeBnW.js";
2
+ import "../../../work-graph-repository-4cKsf8Lf.js";
3
+ import { classifyRecoveryAction, runRecoveryEngine } from "../../../recovery-engine-B2dSwiPd.js";
4
4
 
5
5
  export { classifyRecoveryAction, runRecoveryEngine };
@@ -1,5 +1,5 @@
1
- import "./dist-W2emvN3F.js";
2
- import "./version-manager-impl-qFBiO4Eh.js";
3
- import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-VTSel8hN.js";
1
+ import "./dist-BDIN6Zlf.js";
2
+ import "./version-manager-impl-BpJxTEBx.js";
3
+ import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-SuI3JhLZ.js";
4
4
 
5
5
  export { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand };
@@ -1,4 +1,4 @@
1
- import { createVersionManager } from "./dist-W2emvN3F.js";
1
+ import { createVersionManager } from "./dist-BDIN6Zlf.js";
2
2
  import { execSync, spawn } from "child_process";
3
3
  import * as readline from "readline";
4
4
 
@@ -123,4 +123,4 @@ function registerUpgradeCommand(program) {
123
123
 
124
124
  //#endregion
125
125
  export { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand };
126
- //# sourceMappingURL=upgrade-VTSel8hN.js.map
126
+ //# sourceMappingURL=upgrade-SuI3JhLZ.js.map
@@ -0,0 +1,4 @@
1
+ import { VersionManagerImpl, createVersionManager } from "./dist-BDIN6Zlf.js";
2
+ import "./version-manager-impl-BpJxTEBx.js";
3
+
4
+ export { createVersionManager };
@@ -262,4 +262,4 @@ var WorkGraphRepository = class {
262
262
 
263
263
  //#endregion
264
264
  export { WorkGraphRepository, detectCycles };
265
- //# sourceMappingURL=work-graph-repository-DZyJv5pV.js.map
265
+ //# sourceMappingURL=work-graph-repository-4cKsf8Lf.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "substrate-ai",
3
- "version": "0.20.72",
3
+ "version": "0.20.74",
4
4
  "description": "Substrate — multi-agent orchestration daemon for AI coding agents",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,4 +0,0 @@
1
- import { AdapterRegistry } from "./dist-W2emvN3F.js";
2
- import "./adapter-registry-DXLMTmfD.js";
3
-
4
- export { AdapterRegistry };
@@ -1,8 +0,0 @@
1
- import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-CovhUT7J.js";
2
- import "./logger-KeHncl-f.js";
3
- import "./dist-W2emvN3F.js";
4
- import "./manifest-read-CwsWJGG_.js";
5
- import "./work-graph-repository-DZyJv5pV.js";
6
- import "./decisions-CzSIEeGP.js";
7
-
8
- export { inspectProcessTree };
@@ -1,14 +0,0 @@
1
- import "./health-CovhUT7J.js";
2
- import "./logger-KeHncl-f.js";
3
- import "./helpers-CElYrONe.js";
4
- import "./dist-W2emvN3F.js";
5
- import "./manifest-read-CwsWJGG_.js";
6
- import { normalizeGraphSummaryToStatus, registerRunCommand, resolveMaxReviewCycles, resolveProbeAuthorStateIntegrating, runRunAction, wireNdjsonEmitter } from "./run-mmBmzeLi.js";
7
- import "./routing-DFxoKHDt.js";
8
- import "./work-graph-repository-DZyJv5pV.js";
9
- import "./decisions-CzSIEeGP.js";
10
- import "./decision-router-DblHY8se.js";
11
- import "./interactive-prompt-ClBcJ4L1.js";
12
- import "./recovery-engine-BKGBeBnW.js";
13
-
14
- export { runRunAction };
@@ -1,4 +0,0 @@
1
- import { VersionManagerImpl, createVersionManager } from "./dist-W2emvN3F.js";
2
- import "./version-manager-impl-qFBiO4Eh.js";
3
-
4
- export { createVersionManager };