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.
- package/dist/adapter-registry-DJI97Kz-.js +4 -0
- package/dist/cli/index.js +15 -15
- package/dist/{decisions-DH12X_94.js → decisions-Dd8Nc_Vs.js} +1 -1
- package/dist/{dist-90byyGPp.js → dist-Dl3vBZil.js} +15 -5
- package/dist/{errors-ST3E8qWc.js → errors-Dyyei2ah.js} +2 -2
- package/dist/{experimenter-CyA9K5u6.js → experimenter-BtX2GBSg.js} +1 -1
- package/dist/{health-BERxzeG-.js → health-BmBd4zyE.js} +3 -3
- package/dist/{health-CoJ3nBWL.js → health-BwXD8UBv.js} +3 -3
- package/dist/index.js +2 -2
- package/dist/{interactive-prompt-UWLccCqL.js → interactive-prompt-Cj0Od5XZ.js} +2 -2
- package/dist/{manifest-read-BOvY53EG.js → manifest-read-Dan3I0ea.js} +30 -3
- package/dist/modules/interactive-prompt/index.js +3 -3
- package/dist/{routing-pCkRxj09.js → routing-CKcQZJZo.js} +1 -1
- package/dist/{run-Dgqfz9HY.js → run-DEBYRpko.js} +59 -12
- package/dist/{run-Csg27VHs.js → run-DIu8THqp.js} +5 -5
- package/dist/{upgrade-unZndH-S.js → upgrade-CNtCNhsT.js} +2 -2
- package/dist/{upgrade-Dw6jKkH3.js → upgrade-DGqUA_5f.js} +2 -2
- package/dist/{version-manager-impl--XXnwjMd.js → version-manager-impl-f4r2s_Nv.js} +1 -1
- package/package.json +1 -1
- package/dist/adapter-registry-BsBP3j5i.js +0 -4
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-
|
|
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-
|
|
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-
|
|
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-
|
|
9
|
-
import "../errors-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
8644
|
+
"../experimenter-BtX2GBSg.js"
|
|
8645
8645
|
);
|
|
8646
8646
|
const { getLatestRun: getLatest } = await import(
|
|
8647
8647
|
/* @vite-ignore */
|
|
8648
|
-
"../decisions-
|
|
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-
|
|
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-
|
|
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-
|
|
13512
|
-
const { createVersionManager } = await import("../version-manager-impl
|
|
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-
|
|
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
|
-
*
|
|
9570
|
-
*
|
|
9571
|
-
*
|
|
9572
|
-
*
|
|
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-
|
|
12613
|
+
//# sourceMappingURL=dist-Dl3vBZil.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AdtError } from "./dist-
|
|
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-
|
|
74
|
+
//# sourceMappingURL=errors-Dyyei2ah.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-
|
|
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-
|
|
3
|
-
import { resolveMainRepoRoot, resolveRunManifest } from "./manifest-read-
|
|
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-
|
|
1003
|
+
//# sourceMappingURL=health-BmBd4zyE.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-
|
|
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-
|
|
4
|
-
import "./manifest-read-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
6334
|
+
//# sourceMappingURL=manifest-read-Dan3I0ea.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../../logger-KeHncl-f.js";
|
|
2
|
-
import "../../dist-
|
|
3
|
-
import "../../manifest-read-
|
|
4
|
-
import { runInteractivePrompt } from "../../interactive-prompt-
|
|
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-
|
|
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-
|
|
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-
|
|
5
|
-
import { FindingsInjector, RunManifest, RuntimeProbeListSchema, applyConfigToGraph, createDefaultVerificationPipeline, createGraphOrchestrator, createSdlcCodeReviewHandler, createSdlcCreateStoryHandler, createSdlcDevStoryHandler, createSdlcPhaseHandler, detectsEventDrivenAC, detectsStateIntegratingAC, extractTargetFilesFromStoryContent, parseRuntimeProbes, renderFindings, resolveGraphPath, resolveMainRepoRoot, runAcTraceabilityCheck, runStaleVerificationRecovery } from "./manifest-read-
|
|
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-
|
|
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
|
-
|
|
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
|
|
12094
|
-
const
|
|
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
|
|
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-
|
|
47936
|
+
//# sourceMappingURL=run-DEBYRpko.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import "./health-
|
|
1
|
+
import "./health-BmBd4zyE.js";
|
|
2
2
|
import "./logger-KeHncl-f.js";
|
|
3
3
|
import "./helpers-CElYrONe.js";
|
|
4
|
-
import "./dist-
|
|
5
|
-
import "./manifest-read-
|
|
6
|
-
import { normalizeGraphSummaryToStatus, registerRunCommand, resolveMaxReviewCycles, resolveProbeAuthorStateIntegrating, runRunAction, wireNdjsonEmitter } from "./run-
|
|
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-
|
|
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-
|
|
1
|
+
import "./dist-Dl3vBZil.js";
|
|
2
2
|
import "./version-manager-impl-qFBiO4Eh.js";
|
|
3
|
-
import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-
|
|
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-
|
|
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-
|
|
126
|
+
//# sourceMappingURL=upgrade-DGqUA_5f.js.map
|
package/package.json
CHANGED