substrate-ai 0.20.151 → 0.20.153

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-Dl3vBZil.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-BERxzeG-.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-BmBd4zyE.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-90byyGPp.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-Dl3vBZil.js";
6
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-BOvY53EG.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-Dgqfz9HY.js";
9
- import "../errors-ST3E8qWc.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-Dan3I0ea.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-DEBYRpko.js";
9
+ import "../errors-Dyyei2ah.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-UWLccCqL.js";
14
+ import "../interactive-prompt-Cj0Od5XZ.js";
15
15
  import "../recovery-engine-BKGBeBnW.js";
16
16
  import "../version-manager-impl-qFBiO4Eh.js";
17
- import { registerUpgradeCommand } from "../upgrade-Dw6jKkH3.js";
17
+ import { registerUpgradeCommand } from "../upgrade-DGqUA_5f.js";
18
18
  import { Command } from "commander";
19
19
  import { fileURLToPath } from "url";
20
20
  import { dirname, join, resolve } from "path";
@@ -7126,7 +7126,7 @@ async function runStatusAction(options) {
7126
7126
  logger$15.debug({ err }, "Work graph query failed, continuing without work graph data");
7127
7127
  }
7128
7128
  if (run === void 0) {
7129
- const { inspectProcessTree: inspectProcessTree$1 } = await import("../health-CoJ3nBWL.js");
7129
+ const { inspectProcessTree: inspectProcessTree$1 } = await import("../health-BwXD8UBv.js");
7130
7130
  const substrateDirPath = join(projectRoot, ".substrate");
7131
7131
  const processInfo = inspectProcessTree$1({
7132
7132
  projectRoot,
@@ -8074,7 +8074,7 @@ function defaultSupervisorDeps() {
8074
8074
  if (cached === null) {
8075
8075
  const { AdapterRegistry: AR } = await import(
8076
8076
  /* @vite-ignore */
8077
- "../adapter-registry-BsBP3j5i.js"
8077
+ "../adapter-registry-DJI97Kz-.js"
8078
8078
  );
8079
8079
  cached = new AR();
8080
8080
  await cached.discoverAndRegister();
@@ -8641,11 +8641,11 @@ async function runSupervisorAction(options, deps = {}) {
8641
8641
  try {
8642
8642
  const { createExperimenter } = await import(
8643
8643
  /* @vite-ignore */
8644
- "../experimenter-CyA9K5u6.js"
8644
+ "../experimenter-BtX2GBSg.js"
8645
8645
  );
8646
8646
  const { getLatestRun: getLatest } = await import(
8647
8647
  /* @vite-ignore */
8648
- "../decisions-DH12X_94.js"
8648
+ "../decisions-Dd8Nc_Vs.js"
8649
8649
  );
8650
8650
  const expAdapter = createDatabaseAdapter({
8651
8651
  backend: "auto",
@@ -8655,7 +8655,7 @@ async function runSupervisorAction(options, deps = {}) {
8655
8655
  await initSchema(expAdapter);
8656
8656
  const { runRunAction: runPipeline } = await import(
8657
8657
  /* @vite-ignore */
8658
- "../run-Csg27VHs.js"
8658
+ "../run-DIu8THqp.js"
8659
8659
  );
8660
8660
  const runStoryFn = async (opts) => {
8661
8661
  const exitCode = await runPipeline({
@@ -9180,7 +9180,7 @@ async function runMetricsAction(options) {
9180
9180
  const routingConfigPath = join(dbDir, "routing.yml");
9181
9181
  let routingConfig = null;
9182
9182
  if (existsSync$1(routingConfigPath)) try {
9183
- const { loadModelRoutingConfig } = await import("../routing-pCkRxj09.js");
9183
+ const { loadModelRoutingConfig } = await import("../routing-CKcQZJZo.js");
9184
9184
  routingConfig = loadModelRoutingConfig(routingConfigPath);
9185
9185
  } catch {}
9186
9186
  if (routingConfig === null) routingConfig = {
@@ -13508,8 +13508,8 @@ async function createProgram() {
13508
13508
  /** Fire-and-forget startup version check (story 8.3, AC3/AC5) */
13509
13509
  function checkForUpdatesInBackground(currentVersion) {
13510
13510
  if (process.env.SUBSTRATE_NO_UPDATE_CHECK === "1") return;
13511
- import("../upgrade-unZndH-S.js").then(async () => {
13512
- const { createVersionManager } = await import("../version-manager-impl--XXnwjMd.js");
13511
+ import("../upgrade-CNtCNhsT.js").then(async () => {
13512
+ const { createVersionManager } = await import("../version-manager-impl-f4r2s_Nv.js");
13513
13513
  const vm = createVersionManager();
13514
13514
  const result = await vm.checkForUpdates();
13515
13515
  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-90byyGPp.js";
1
+ import { addTokenUsage, createDecision, createPipelineRun, createRequirement, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getTokenUsageSummary, listRequirements, registerArtifact, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision } from "./dist-Dl3vBZil.js";
2
2
  import "./decisions-CzSIEeGP.js";
3
3
 
4
4
  export { getLatestRun };
@@ -9566,10 +9566,20 @@ const execAsync$2 = promisify(exec);
9566
9566
  * directory — the worktree base, outside any repo after H4.2) so it can
9567
9567
  * never be committed by commit-first.
9568
9568
  *
9569
- * Rules: reads/search/bash allowed everywhere (verification needs the
9570
- * suite + git); file MUTATION allowed only under the worktree anything
9571
- * else falls to "ask", which headless -p mode denies visibly (there is no
9572
- * interactive prompt to stall on).
9569
+ * Scopes the Edit/Write/NotebookEdit TOOLS to the worktree (out-of-worktree
9570
+ * mutation via those tools falls to "ask", which headless -p mode denies).
9571
+ *
9572
+ * NOT A SECURITY BOUNDARY (red-team, 2026-07-06). `Bash` is allowed with no
9573
+ * path restriction — Claude Code's Bash permissioning is command-string
9574
+ * based, and Bash can invoke any binary that writes (echo/tee/python/…), so a
9575
+ * determined agent can mutate ANY path the host user can write. `git -C
9576
+ * <path>` likewise reaches repos outside the worktree (the H4.1
9577
+ * GIT_CEILING_DIRECTORIES scrub only blocks AMBIENT discovery, not explicit
9578
+ * targets). This profile is accident-mitigation — it stops a well-behaved
9579
+ * agent from *tool*-writing outside its worktree — not containment of a
9580
+ * hostile one. Real confinement (worktree as the only writable mount)
9581
+ * requires the container execution backend (H4.4 seam; see
9582
+ * docs/2026-07-06-container-execution-seam.md and the red-team review).
9573
9583
  */
9574
9584
  function writeScopedPermissionSettings(worktreePath) {
9575
9585
  const wt = path$3.resolve(worktreePath);
@@ -12600,4 +12610,4 @@ async function callLLM(params) {
12600
12610
 
12601
12611
  //#endregion
12602
12612
  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 };
12603
- //# sourceMappingURL=dist-90byyGPp.js.map
12613
+ //# sourceMappingURL=dist-Dl3vBZil.js.map
@@ -1,4 +1,4 @@
1
- import { AdtError } from "./dist-90byyGPp.js";
1
+ import { AdtError } from "./dist-Dl3vBZil.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-ST3E8qWc.js.map
74
+ //# sourceMappingURL=errors-Dyyei2ah.js.map
@@ -1,3 +1,3 @@
1
- import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-90byyGPp.js";
1
+ import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-Dl3vBZil.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-90byyGPp.js";
3
- import { resolveMainRepoRoot, resolveRunManifest } from "./manifest-read-BOvY53EG.js";
2
+ import { DoltClient, DoltQueryError, createDatabaseAdapter$1 as createDatabaseAdapter, getLatestRun, getPipelineRunById, initSchema } from "./dist-Dl3vBZil.js";
3
+ import { resolveMainRepoRoot, resolveRunManifest } from "./manifest-read-Dan3I0ea.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-BERxzeG-.js.map
1003
+ //# sourceMappingURL=health-BmBd4zyE.js.map
@@ -1,7 +1,7 @@
1
- import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-BERxzeG-.js";
1
+ import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-BmBd4zyE.js";
2
2
  import "./logger-KeHncl-f.js";
3
- import "./dist-90byyGPp.js";
4
- import "./manifest-read-BOvY53EG.js";
3
+ import "./dist-Dl3vBZil.js";
4
+ import "./manifest-read-Dan3I0ea.js";
5
5
  import "./work-graph-repository-DZyJv5pV.js";
6
6
  import "./decisions-CzSIEeGP.js";
7
7
 
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-90byyGPp.js";
3
+ import { AdapterRegistry, AdtError, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, GeminiCLIAdapter } from "./dist-Dl3vBZil.js";
4
4
  import "./adapter-registry-DXLMTmfD.js";
5
- import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-ST3E8qWc.js";
5
+ import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-Dyyei2ah.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-BOvY53EG.js";
2
+ import { readCurrentRunId, resolveMainRepoRoot } from "./manifest-read-Dan3I0ea.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-UWLccCqL.js.map
183
+ //# sourceMappingURL=interactive-prompt-Cj0Od5XZ.js.map
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from "./logger-KeHncl-f.js";
2
- import { LEARNING_FINDING, createDecision, getDecisionsByCategory } from "./dist-90byyGPp.js";
2
+ import { LEARNING_FINDING, createDecision, getDecisionsByCategory } from "./dist-Dl3vBZil.js";
3
3
  import * as path$1 from "path";
4
4
  import { join } from "path";
5
5
  import { readFile } from "fs/promises";
@@ -2235,6 +2235,20 @@ function detectTestCommand(workingDir) {
2235
2235
  } catch {}
2236
2236
  return void 0;
2237
2237
  }
2238
+ /**
2239
+ * H7 (trust-boundary hardening): detect exit-code LAUNDERING in a resolved test
2240
+ * command — a wrapper that forces exit 0 regardless of the real suite result
2241
+ * (`… || true`, `… || :`, `… || exit 0`, `… ; true`, `… ; exit 0`). A
2242
+ * reward-hacking agent used this to make a genuinely-red suite report pass
2243
+ * (verified against compiled dist in the red-team review). Legitimate commands
2244
+ * do not mask their own exit code, so this is a tampering signal, not a style
2245
+ * nit. Note: cannot catch arbitrary in-language masking (e.g. `python -c
2246
+ * "...sys.exit(0)"`) — the trusted-profile read is the primary defense; this is
2247
+ * belt-and-braces for the shell-wrapper class and the --no-worktree path.
2248
+ */
2249
+ function detectsExitCodeLaundering(command) {
2250
+ return /(\|\||;)\s*(true|:|exit\s+0)(\s|;|$)/.test(command);
2251
+ }
2238
2252
  var TestSuiteCheck = class {
2239
2253
  name = "test-suite";
2240
2254
  tier = "A";
@@ -2255,6 +2269,19 @@ var TestSuiteCheck = class {
2255
2269
  findings
2256
2270
  };
2257
2271
  }
2272
+ if (cmd !== void 0 && cmd !== "" && detectsExitCodeLaundering(cmd)) {
2273
+ const findings = [{
2274
+ category: "test-command-tampered",
2275
+ severity: "error",
2276
+ message: `test command masks its own exit code (\`${cmd}\`) — a wrapper like \`|| true\` / \`; exit 0\` forces a pass regardless of the real suite result. Remove the exit-code mask; the suite must fail the story when tests fail.`
2277
+ }];
2278
+ return {
2279
+ status: "fail",
2280
+ details: renderFindings(findings),
2281
+ duration_ms: Date.now() - start,
2282
+ findings
2283
+ };
2284
+ }
2258
2285
  if (cmd === void 0 || cmd === "") {
2259
2286
  const findings = [{
2260
2287
  category: "test-suite-skip",
@@ -2486,7 +2513,7 @@ var ContaminationCheck = class {
2486
2513
  duration_ms: Date.now() - start,
2487
2514
  findings: []
2488
2515
  };
2489
- const allowedLanguages = readProfileLanguages(context.workingDir);
2516
+ const allowedLanguages = context.trustedLanguages ?? readProfileLanguages(context.workingDir);
2490
2517
  if (allowedLanguages.length === 0) {
2491
2518
  const findings$1 = [{
2492
2519
  category: "contamination-skip",
@@ -6304,4 +6331,4 @@ async function resolveRunManifest(dbRoot, runId) {
6304
6331
 
6305
6332
  //#endregion
6306
6333
  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 };
6307
- //# sourceMappingURL=manifest-read-BOvY53EG.js.map
6334
+ //# sourceMappingURL=manifest-read-Dan3I0ea.js.map
@@ -1,6 +1,6 @@
1
1
  import "../../logger-KeHncl-f.js";
2
- import "../../dist-90byyGPp.js";
3
- import "../../manifest-read-BOvY53EG.js";
4
- import { runInteractivePrompt } from "../../interactive-prompt-UWLccCqL.js";
2
+ import "../../dist-Dl3vBZil.js";
3
+ import "../../manifest-read-Dan3I0ea.js";
4
+ import { runInteractivePrompt } from "../../interactive-prompt-Cj0Od5XZ.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-90byyGPp.js";
1
+ import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-Dl3vBZil.js";
2
2
  import "./routing-DFxoKHDt.js";
3
3
 
4
4
  export { loadModelRoutingConfig };
@@ -1,11 +1,11 @@
1
- import { BMAD_BASELINE_TOKENS_FULL, FileKvStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN, VALID_PHASES, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter, formatOutput, formatPipelineSummary, formatTokenTelemetry, inspectProcessTree, parseDbTimestampAsUtc, validateStoryKey } from "./health-BERxzeG-.js";
1
+ import { BMAD_BASELINE_TOKENS_FULL, FileKvStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN, VALID_PHASES, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter, formatOutput, formatPipelineSummary, formatTokenTelemetry, inspectProcessTree, parseDbTimestampAsUtc, validateStoryKey } from "./health-BmBd4zyE.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, BRANCH_PREFIX, CLAUDE_AUTH_FAILURE_HINT, CODEX_SANDBOX_BLOCK_HINT, 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, classifyVersionGap, createConfigSystem, createDatabaseAdapter$1, createDecision, createGitWorktreeManager, createPipelineRun, createRequirement, detectClaudeAuthFailure, detectCodexSandboxBlock, detectInterfaceChanges, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunMetrics, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, listRequirements, loadModelRoutingConfig, registerArtifact, swallowDebug, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-90byyGPp.js";
5
- import { FindingsInjector, RunManifest, RuntimeProbeListSchema, applyConfigToGraph, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, parseRuntimeProbes, renderFindings, resolveGraphPath, resolveMainRepoRoot, runAcTraceabilityCheck, runStaleVerificationRecovery } from "./manifest-read-BOvY53EG.js";
4
+ import { ADVISORY_NOTES, BRANCH_PREFIX, CLAUDE_AUTH_FAILURE_HINT, CODEX_SANDBOX_BLOCK_HINT, 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, classifyVersionGap, createConfigSystem, createDatabaseAdapter$1, createDecision, createGitWorktreeManager, createPipelineRun, createRequirement, detectClaudeAuthFailure, detectCodexSandboxBlock, detectInterfaceChanges, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunMetrics, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, listRequirements, loadModelRoutingConfig, registerArtifact, swallowDebug, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-Dl3vBZil.js";
5
+ import { FindingsInjector, RunManifest, RuntimeProbeListSchema, applyConfigToGraph, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, parseRuntimeProbes, renderFindings, resolveGraphPath, resolveMainRepoRoot, runAcTraceabilityCheck, runStaleVerificationRecovery } from "./manifest-read-Dan3I0ea.js";
6
6
  import { WorkGraphRepository, detectCycles } from "./work-graph-repository-DZyJv5pV.js";
7
7
  import { deriveExitCode, routeDecision } from "./decision-router-BAPpON_C.js";
8
- import { runInteractivePrompt } from "./interactive-prompt-UWLccCqL.js";
8
+ import { runInteractivePrompt } from "./interactive-prompt-Cj0Od5XZ.js";
9
9
  import { runRecoveryEngine } from "./recovery-engine-BKGBeBnW.js";
10
10
  import { basename, dirname, extname, join } from "path";
11
11
  import { access, readFile, readdir, stat } from "fs/promises";
@@ -5324,7 +5324,7 @@ function runBuildVerification(options) {
5324
5324
  * never appear here. Feeds the reward-hack tripwire (agents editing existing
5325
5325
  * tests to go green — the measured exploit pattern).
5326
5326
  */
5327
- function checkGitModifiedTrackedFiles(workingDir = process.cwd()) {
5327
+ function checkGitModifiedTrackedFiles(workingDir = process.cwd(), baselineSha) {
5328
5328
  const results = new Set();
5329
5329
  try {
5330
5330
  execSync("git rev-parse --verify HEAD", {
@@ -5339,7 +5339,9 @@ function checkGitModifiedTrackedFiles(workingDir = process.cwd()) {
5339
5339
  } catch {
5340
5340
  return [];
5341
5341
  }
5342
- for (const args of ["git diff --name-only HEAD", "git diff --cached --name-only"]) try {
5342
+ const diffs = ["git diff --name-only HEAD", "git diff --cached --name-only"];
5343
+ if (baselineSha !== void 0 && baselineSha.length > 0) diffs.push(`git diff --name-only --diff-filter=MD ${baselineSha}..HEAD`);
5344
+ for (const args of diffs) try {
5343
5345
  execSync(args, {
5344
5346
  cwd: workingDir,
5345
5347
  encoding: "utf-8",
@@ -12090,8 +12092,10 @@ function assembleVerificationContext(opts) {
12090
12092
  } catch {
12091
12093
  commitSha = "unknown";
12092
12094
  }
12093
- const profileBuildCommand = readProfileKey(opts.workingDir, "buildCommand");
12094
- const profileTestCommand = readProfileKey(opts.workingDir, "testCommand");
12095
+ const trustedDir = opts.trustedProfileDir ?? opts.workingDir;
12096
+ const profileBuildCommand = readProfileKey(trustedDir, "buildCommand");
12097
+ const profileTestCommand = readProfileKey(trustedDir, "testCommand");
12098
+ const trustedLanguages = readProfileLanguagesLocal(trustedDir);
12095
12099
  return {
12096
12100
  storyKey: opts.storyKey,
12097
12101
  workingDir: opts.workingDir,
@@ -12106,13 +12110,26 @@ function assembleVerificationContext(opts) {
12106
12110
  ...opts.changedFiles !== void 0 ? { changedFiles: opts.changedFiles } : {},
12107
12111
  ...opts.modifiedTrackedFiles !== void 0 ? { modifiedTrackedFiles: opts.modifiedTrackedFiles } : {},
12108
12112
  ...profileBuildCommand !== void 0 ? { buildCommand: profileBuildCommand } : {},
12109
- ...profileTestCommand !== void 0 ? { testCommand: profileTestCommand } : {}
12113
+ ...profileTestCommand !== void 0 ? { testCommand: profileTestCommand } : {},
12114
+ ...trustedLanguages.length > 0 ? { trustedLanguages } : {}
12110
12115
  };
12111
12116
  }
12112
12117
  /**
12113
12118
  * Read a single `<key>: value` line from `.substrate/project-profile.yaml`
12114
12119
  * under `workingDir` (H1.2). Line-based parse — no yaml dependency.
12115
12120
  */
12121
+ function readProfileLanguagesLocal(dir) {
12122
+ const profilePath = join$1(dir, ".substrate", "project-profile.yaml");
12123
+ if (!existsSync(profilePath)) return [];
12124
+ try {
12125
+ const content = readFileSync(profilePath, "utf-8");
12126
+ const langs = new Set();
12127
+ for (const m of content.matchAll(/^\s*(?:-\s+)?language:\s*['"]?([a-z]+)['"]?\s*$/gm)) if (m[1] !== void 0) langs.add(m[1]);
12128
+ return [...langs];
12129
+ } catch {
12130
+ return [];
12131
+ }
12132
+ }
12116
12133
  function readProfileKey(workingDir, key) {
12117
12134
  const profilePath = join$1(workingDir, ".substrate", "project-profile.yaml");
12118
12135
  if (!existsSync(profilePath)) return void 0;
@@ -15177,7 +15194,7 @@ function createImplementationOrchestrator(deps) {
15177
15194
  if (devStoryWasSuccess) {
15178
15195
  gitDiffFiles = checkGitDiffFiles(effectiveProjectRoot ?? process.cwd());
15179
15196
  try {
15180
- modifiedTrackedFiles = checkGitModifiedTrackedFiles(effectiveProjectRoot ?? process.cwd());
15197
+ modifiedTrackedFiles = checkGitModifiedTrackedFiles(effectiveProjectRoot ?? process.cwd(), baselineHeadSha);
15181
15198
  } catch {
15182
15199
  modifiedTrackedFiles = void 0;
15183
15200
  }
@@ -15640,6 +15657,7 @@ function createImplementationOrchestrator(deps) {
15640
15657
  const verifContext = assembleVerificationContext({
15641
15658
  storyKey,
15642
15659
  workingDir: effectiveProjectRoot ?? process.cwd(),
15660
+ ...projectRoot !== void 0 ? { trustedProfileDir: projectRoot } : {},
15643
15661
  reviewResult: latestReviewSignals,
15644
15662
  storyContent: storyContentForVerification,
15645
15663
  devStoryResult: devStorySignals,
@@ -15730,6 +15748,7 @@ function createImplementationOrchestrator(deps) {
15730
15748
  const retryVerifContext = assembleVerificationContext({
15731
15749
  storyKey,
15732
15750
  workingDir: effectiveProjectRoot ?? process.cwd(),
15751
+ ...projectRoot !== void 0 ? { trustedProfileDir: projectRoot } : {},
15733
15752
  reviewResult: latestReviewSignals,
15734
15753
  storyContent: storyContentForVerification,
15735
15754
  devStoryResult: devStorySignals,
@@ -16085,6 +16104,34 @@ function createImplementationOrchestrator(deps) {
16085
16104
  err: gateErr instanceof Error ? gateErr.message : String(gateErr)
16086
16105
  }, "merge-to-main pre-flight verification failed — proceeding with merge phase");
16087
16106
  }
16107
+ {
16108
+ const norm = (f$1) => f$1.replace(/\\/g, "/").replace(/^\.\//, "");
16109
+ const disclosed = new Set((devFilesModified ?? []).map(norm));
16110
+ const mergedFiles = recaptureChangedFiles(effectiveProjectRoot ?? process.cwd());
16111
+ const { artifactOnly } = classifyImplementationDiff(mergedFiles);
16112
+ const artifactSet = new Set(artifactOnly.map(norm));
16113
+ const undisclosed = mergedFiles.map(norm).filter((f$1) => !artifactSet.has(f$1) && !disclosed.has(f$1));
16114
+ if (undisclosed.length > 0) {
16115
+ logger$27.error({
16116
+ storyKey,
16117
+ undisclosed,
16118
+ disclosed: [...disclosed]
16119
+ }, "H7: refusing to merge — committed implementation files were never disclosed by the dev agent (files_modified) and thus never reviewed");
16120
+ updateStory(storyKey, {
16121
+ phase: "ESCALATED",
16122
+ error: "undisclosed-files-in-merge",
16123
+ completedAt: new Date().toISOString()
16124
+ });
16125
+ await emitEscalation({
16126
+ storyKey,
16127
+ lastVerdict: "undisclosed-files-in-merge",
16128
+ reviewCycles: completedReviewCycles,
16129
+ issues: [`${undisclosed.length} implementation file(s) are committed on the story branch but were NOT in the dev agent's files_modified (so no review cycle inspected them): ${undisclosed.join(", ")}. A merge would land unreviewed code. Inspect the branch; if the changes are legitimate, re-dispatch with accurate files_modified or merge manually.`]
16130
+ });
16131
+ await persistState();
16132
+ return "terminal";
16133
+ }
16134
+ }
16088
16135
  const finalizationMode = config.finalizationMode ?? "merge";
16089
16136
  const epicGateCommand = config.epicGateCommand;
16090
16137
  if (epicGateCommand !== void 0 && epicGateCommand.trim() !== "" && finalizationMode !== "branch") {
@@ -47779,7 +47826,7 @@ async function runFullPipeline(options) {
47779
47826
  */
47780
47827
  async function emitPreDispatchVersionAdvisory(currentVersion) {
47781
47828
  if (process.env["SUBSTRATE_NO_UPDATE_CHECK"] === "1") return;
47782
- const { createVersionManager } = await import("./version-manager-impl--XXnwjMd.js");
47829
+ const { createVersionManager } = await import("./version-manager-impl-f4r2s_Nv.js");
47783
47830
  const vm = createVersionManager();
47784
47831
  const result = await vm.checkForUpdates(true);
47785
47832
  const gap = classifyVersionGap(currentVersion, result.latestVersion);
@@ -47886,4 +47933,4 @@ function registerRunCommand(program, version = "0.0.0", projectRoot = process.cw
47886
47933
 
47887
47934
  //#endregion
47888
47935
  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 };
47889
- //# sourceMappingURL=run-Dgqfz9HY.js.map
47936
+ //# sourceMappingURL=run-DEBYRpko.js.map
@@ -1,14 +1,14 @@
1
- import "./health-BERxzeG-.js";
1
+ import "./health-BmBd4zyE.js";
2
2
  import "./logger-KeHncl-f.js";
3
3
  import "./helpers-CElYrONe.js";
4
- import "./dist-90byyGPp.js";
5
- import "./manifest-read-BOvY53EG.js";
6
- import { normalizeGraphSummaryToStatus, registerRunCommand, resolveMaxReviewCycles, resolveProbeAuthorStateIntegrating, runRunAction, wireNdjsonEmitter } from "./run-Dgqfz9HY.js";
4
+ import "./dist-Dl3vBZil.js";
5
+ import "./manifest-read-Dan3I0ea.js";
6
+ import { normalizeGraphSummaryToStatus, registerRunCommand, resolveMaxReviewCycles, resolveProbeAuthorStateIntegrating, runRunAction, wireNdjsonEmitter } from "./run-DEBYRpko.js";
7
7
  import "./routing-DFxoKHDt.js";
8
8
  import "./work-graph-repository-DZyJv5pV.js";
9
9
  import "./decisions-CzSIEeGP.js";
10
10
  import "./decision-router-BAPpON_C.js";
11
- import "./interactive-prompt-UWLccCqL.js";
11
+ import "./interactive-prompt-Cj0Od5XZ.js";
12
12
  import "./recovery-engine-BKGBeBnW.js";
13
13
 
14
14
  export { runRunAction };
@@ -1,5 +1,5 @@
1
- import "./dist-90byyGPp.js";
1
+ import "./dist-Dl3vBZil.js";
2
2
  import "./version-manager-impl-qFBiO4Eh.js";
3
- import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-Dw6jKkH3.js";
3
+ import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-DGqUA_5f.js";
4
4
 
5
5
  export { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand };
@@ -1,4 +1,4 @@
1
- import { createVersionManager } from "./dist-90byyGPp.js";
1
+ import { createVersionManager } from "./dist-Dl3vBZil.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-Dw6jKkH3.js.map
126
+ //# sourceMappingURL=upgrade-DGqUA_5f.js.map
@@ -1,4 +1,4 @@
1
- import { VersionManagerImpl, createVersionManager } from "./dist-90byyGPp.js";
1
+ import { VersionManagerImpl, createVersionManager } from "./dist-Dl3vBZil.js";
2
2
  import "./version-manager-impl-qFBiO4Eh.js";
3
3
 
4
4
  export { createVersionManager };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "substrate-ai",
3
- "version": "0.20.151",
3
+ "version": "0.20.153",
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-90byyGPp.js";
2
- import "./adapter-registry-DXLMTmfD.js";
3
-
4
- export { AdapterRegistry };