substrate-ai 0.19.6 → 0.19.8

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-adzGUKPc.js";
2
+ import "./adapter-registry-DXLMTmfD.js";
3
+
4
+ export { AdapterRegistry };
package/dist/cli/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import { FileStateStore, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, WorkGraphRepository, buildPipelineStatusOutput, createDatabaseAdapter, createStateStore, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion, resolveMainRepoRoot } from "../health-KEcudYsb.js";
2
+ import { FileStateStore, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, WorkGraphRepository, buildPipelineStatusOutput, createDatabaseAdapter, createStateStore, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion, resolveMainRepoRoot } from "../health-DJgGZhW-.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, EXPERIMENT_RESULT, GlobalSettingsSchema, 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, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initializeDolt, listRequirements, listRunMetrics, loadParentRunDecisions, supersedeDecision, tagRunAsBaseline, updatePipelineRun } from "../dist-BN1SUGQy.js";
5
+ import { AdapterRegistry, BudgetConfigSchema, CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, ConfigError, CostTrackerConfigSchema, DEFAULT_CONFIG, DoltClient, DoltNotInstalled, EXPERIMENT_RESULT, GlobalSettingsSchema, 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, getSessionCostSummary, getSessionCostSummaryFiltered, getStoryMetricsForRun, getTokenUsageSummary, incrementRunRestarts, initSchema, initializeDolt, listRequirements, listRunMetrics, loadParentRunDecisions, supersedeDecision, tagRunAsBaseline, updatePipelineRun } from "../dist-adzGUKPc.js";
6
6
  import "../adapter-registry-DXLMTmfD.js";
7
- import { AdapterTelemetryPersistence, AppError, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, EpicIngester, GitClient, GrammarLoader, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, formatPhaseCompletionSummary, getFactoryRunSummaries, getScenarioResultsForRun, getTwinRunsForRun, listGraphRuns, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runSolutioningPhase, validateStopAfterFromConflict } from "../run-DKBhMeGg.js";
8
- import "../errors-C2AaE2v7.js";
7
+ import { AdapterTelemetryPersistence, AppError, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, EpicIngester, GitClient, GrammarLoader, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, formatPhaseCompletionSummary, getFactoryRunSummaries, getScenarioResultsForRun, getTwinRunsForRun, listGraphRuns, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runSolutioningPhase, validateStopAfterFromConflict } from "../run-9CV1Feo5.js";
8
+ import "../errors-CZdr5Wqb.js";
9
9
  import "../routing-CcBOCuC9.js";
10
10
  import "../decisions-C0pz9Clx.js";
11
11
  import "../version-manager-impl-BmOWu8ml.js";
12
- import { registerUpgradeCommand } from "../upgrade-GWxxw0gq.js";
12
+ import { registerUpgradeCommand } from "../upgrade-C3-h4asQ.js";
13
13
  import { Command } from "commander";
14
14
  import { fileURLToPath } from "url";
15
15
  import { dirname, join, resolve } from "path";
@@ -3206,7 +3206,7 @@ async function runStatusAction(options) {
3206
3206
  if (run === void 0) run = await getLatestRun(adapter);
3207
3207
  }
3208
3208
  if (run === void 0) {
3209
- const { inspectProcessTree } = await import("../health-InjwzI3V.js");
3209
+ const { inspectProcessTree } = await import("../health-Cd_psXRz.js");
3210
3210
  const substrateDirPath = join(projectRoot, ".substrate");
3211
3211
  const processInfo = inspectProcessTree({
3212
3212
  projectRoot,
@@ -4091,7 +4091,7 @@ function defaultSupervisorDeps() {
4091
4091
  if (cached === null) {
4092
4092
  const { AdapterRegistry: AR } = await import(
4093
4093
  /* @vite-ignore */
4094
- "../adapter-registry-BpUYElFD.js"
4094
+ "../adapter-registry-BVAkrT-E.js"
4095
4095
  );
4096
4096
  cached = new AR();
4097
4097
  await cached.discoverAndRegister();
@@ -4533,11 +4533,11 @@ async function runSupervisorAction(options, deps = {}) {
4533
4533
  try {
4534
4534
  const { createExperimenter } = await import(
4535
4535
  /* @vite-ignore */
4536
- "../experimenter-Cvei2tNu.js"
4536
+ "../experimenter-DxQ7CQHb.js"
4537
4537
  );
4538
4538
  const { getLatestRun: getLatest } = await import(
4539
4539
  /* @vite-ignore */
4540
- "../decisions-jRUjTLvI.js"
4540
+ "../decisions-CTvoZrPH.js"
4541
4541
  );
4542
4542
  const expAdapter = createDatabaseAdapter({
4543
4543
  backend: "auto",
@@ -4547,7 +4547,7 @@ async function runSupervisorAction(options, deps = {}) {
4547
4547
  await initSchema(expAdapter);
4548
4548
  const { runRunAction: runPipeline } = await import(
4549
4549
  /* @vite-ignore */
4550
- "../run-BSsY9hnz.js"
4550
+ "../run-CRC04v51.js"
4551
4551
  );
4552
4552
  const runStoryFn = async (opts) => {
4553
4553
  const exitCode = await runPipeline({
@@ -5077,7 +5077,7 @@ async function runMetricsAction(options) {
5077
5077
  const routingConfigPath = join(dbDir, "routing.yml");
5078
5078
  let routingConfig = null;
5079
5079
  if (existsSync$1(routingConfigPath)) try {
5080
- const { loadModelRoutingConfig } = await import("../routing-dfUBS1Rf.js");
5080
+ const { loadModelRoutingConfig } = await import("../routing-Vzz2S3bc.js");
5081
5081
  routingConfig = loadModelRoutingConfig(routingConfigPath);
5082
5082
  } catch {}
5083
5083
  if (routingConfig === null) routingConfig = {
@@ -8856,8 +8856,8 @@ async function createProgram() {
8856
8856
  /** Fire-and-forget startup version check (story 8.3, AC3/AC5) */
8857
8857
  function checkForUpdatesInBackground(currentVersion) {
8858
8858
  if (process.env.SUBSTRATE_NO_UPDATE_CHECK === "1") return;
8859
- import("../upgrade-Qiv2fYgR.js").then(async () => {
8860
- const { createVersionManager } = await import("../version-manager-impl-BLm0WN34.js");
8859
+ import("../upgrade-BtaFOZk0.js").then(async () => {
8860
+ const { createVersionManager } = await import("../version-manager-impl-CCk76_D8.js");
8861
8861
  const vm = createVersionManager();
8862
8862
  const result = await vm.checkForUpdates();
8863
8863
  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-BN1SUGQy.js";
1
+ import { addTokenUsage, createDecision, createPipelineRun, createRequirement, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getTokenUsageSummary, listRequirements, registerArtifact, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision } from "./dist-adzGUKPc.js";
2
2
  import "./decisions-C0pz9Clx.js";
3
3
 
4
4
  export { getLatestRun };
@@ -806,12 +806,13 @@ var DispatcherImpl = class {
806
806
  error: stderr || `Process exited with code ${String(code)}`,
807
807
  exitCode: code
808
808
  });
809
- this._logger.debug({
809
+ this._logger.warn({
810
810
  id,
811
811
  agent,
812
812
  taskType,
813
813
  exitCode: code,
814
- durationMs
814
+ durationMs,
815
+ stderr: stderr.slice(0, 500)
815
816
  }, "Agent failed");
816
817
  const combinedOutput = stderr ? `${stdout}\n--- stderr ---\n${stderr}` : stdout;
817
818
  resolve$2({
@@ -10242,4 +10243,4 @@ async function callLLM(params) {
10242
10243
 
10243
10244
  //#endregion
10244
10245
  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, IngestionServer, 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 };
10245
- //# sourceMappingURL=dist-BN1SUGQy.js.map
10246
+ //# sourceMappingURL=dist-adzGUKPc.js.map
@@ -1,4 +1,4 @@
1
- import { AdtError } from "./dist-BN1SUGQy.js";
1
+ import { AdtError } from "./dist-adzGUKPc.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-C2AaE2v7.js.map
74
+ //# sourceMappingURL=errors-CZdr5Wqb.js.map
@@ -1,3 +1,3 @@
1
- import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-BN1SUGQy.js";
1
+ import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-adzGUKPc.js";
2
2
 
3
3
  export { createExperimenter };
@@ -1,6 +1,6 @@
1
- import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-KEcudYsb.js";
1
+ import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-DJgGZhW-.js";
2
2
  import "./logger-KeHncl-f.js";
3
- import "./dist-BN1SUGQy.js";
3
+ import "./dist-adzGUKPc.js";
4
4
  import "./decisions-C0pz9Clx.js";
5
5
 
6
6
  export { inspectProcessTree };
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from "./logger-KeHncl-f.js";
2
- import { DoltClient, DoltQueryError, createDatabaseAdapter$1 as createDatabaseAdapter, getLatestRun, getPipelineRunById, initSchema } from "./dist-BN1SUGQy.js";
2
+ import { DoltClient, DoltQueryError, createDatabaseAdapter$1 as createDatabaseAdapter, getLatestRun, getPipelineRunById, initSchema } from "./dist-adzGUKPc.js";
3
3
  import { createRequire } from "module";
4
4
  import { dirname, join } from "path";
5
5
  import { existsSync, readFileSync } from "node:fs";
@@ -1930,4 +1930,4 @@ function registerHealthCommand(program, _version = "0.0.0", projectRoot = proces
1930
1930
 
1931
1931
  //#endregion
1932
1932
  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, WorkGraphRepository, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter$1 as createDatabaseAdapter, createStateStore, detectCycles, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, inspectProcessTree, isOrchestratorProcessLine, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion, resolveMainRepoRoot, runHealthAction, validateStoryKey };
1933
- //# sourceMappingURL=health-KEcudYsb.js.map
1933
+ //# sourceMappingURL=health-DJgGZhW-.js.map
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-BN1SUGQy.js";
3
+ import { AdapterRegistry, AdtError, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, GeminiCLIAdapter } from "./dist-adzGUKPc.js";
4
4
  import "./adapter-registry-DXLMTmfD.js";
5
- import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-C2AaE2v7.js";
5
+ import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-CZdr5Wqb.js";
6
6
 
7
7
  //#region src/core/di.ts
8
8
  /**
@@ -1,4 +1,4 @@
1
- import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-BN1SUGQy.js";
1
+ import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-adzGUKPc.js";
2
2
  import "./routing-CcBOCuC9.js";
3
3
 
4
4
  export { loadModelRoutingConfig };
@@ -1,7 +1,7 @@
1
- import { BMAD_BASELINE_TOKENS_FULL, DoltMergeConflict, FileStateStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN, VALID_PHASES, WorkGraphRepository, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter, detectCycles, formatOutput, formatPipelineSummary, formatTokenTelemetry, inspectProcessTree, parseDbTimestampAsUtc, resolveMainRepoRoot, validateStoryKey } from "./health-KEcudYsb.js";
1
+ import { BMAD_BASELINE_TOKENS_FULL, DoltMergeConflict, FileStateStore, STOP_AFTER_VALID_PHASES, STORY_KEY_PATTERN, VALID_PHASES, WorkGraphRepository, __commonJS, __require, __toESM, buildPipelineStatusOutput, createDatabaseAdapter, detectCycles, formatOutput, formatPipelineSummary, formatTokenTelemetry, inspectProcessTree, parseDbTimestampAsUtc, resolveMainRepoRoot, validateStoryKey } from "./health-DJgGZhW-.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, 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, getPipelineRunById, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, loadModelRoutingConfig, registerArtifact, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-BN1SUGQy.js";
4
+ import { ADVISORY_NOTES, Categorizer, ConsumerAnalyzer, DEFAULT_GLOBAL_SETTINGS, DispatcherImpl, DoltClient, ESCALATION_DIAGNOSIS, 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, getPipelineRunById, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, loadModelRoutingConfig, registerArtifact, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-adzGUKPc.js";
5
5
  import { basename, dirname, extname, join } from "path";
6
6
  import { access, readFile, readdir, stat } from "fs/promises";
7
7
  import { EventEmitter } from "node:events";
@@ -5323,6 +5323,7 @@ async function runCreateStory(deps, params) {
5323
5323
  agent: "claude-code",
5324
5324
  taskType: "create-story",
5325
5325
  outputSchema: CreateStoryResultSchema,
5326
+ maxTurns: 50,
5326
5327
  ...deps.projectRoot !== void 0 ? { workingDirectory: deps.projectRoot } : {},
5327
5328
  ...deps.otlpEndpoint !== void 0 ? { otlpEndpoint: deps.otlpEndpoint } : {},
5328
5329
  storyKey
@@ -5356,7 +5357,8 @@ async function runCreateStory(deps, params) {
5356
5357
  logger$17.warn({
5357
5358
  epicId,
5358
5359
  storyKey,
5359
- exitCode: dispatchResult.exitCode
5360
+ exitCode: dispatchResult.exitCode,
5361
+ outputSnippet: dispatchResult.output?.slice(0, 500)
5360
5362
  }, "Create-story dispatch failed");
5361
5363
  return {
5362
5364
  result: "failed",
@@ -5551,16 +5553,39 @@ function getPrevDevNotes(decisions, epicId) {
5551
5553
  * Looks for decisions with phase='solutioning', category='architecture'.
5552
5554
  * Falls back to reading _bmad-output/architecture/architecture.md on disk if decisions are empty.
5553
5555
  */
5556
+ /**
5557
+ * Maximum character budget for architecture constraints injected into
5558
+ * create-story prompts. Full architecture decisions can be 20K+ characters
5559
+ * which causes agent loop exhaustion (max turns). Summarizing to ~12K chars
5560
+ * (~3K tokens) keeps the prompt focused while retaining key decisions.
5561
+ */
5562
+ const ARCH_CONSTRAINT_MAX_CHARS = 12e3;
5554
5563
  async function getArchConstraints$3(deps) {
5555
5564
  try {
5556
5565
  const decisions = await getDecisionsByPhase(deps.db, "solutioning");
5557
5566
  const constraints = decisions.filter((d) => d.category === "architecture");
5558
- if (constraints.length > 0) return constraints.map((d) => d.value).join("\n\n");
5567
+ if (constraints.length > 0) {
5568
+ const full = constraints.map((d) => d.value).join("\n\n");
5569
+ if (full.length <= ARCH_CONSTRAINT_MAX_CHARS) return full;
5570
+ const summarized = constraints.map((d) => {
5571
+ const lines = d.value.split("\n");
5572
+ const header = lines[0] ?? d.key;
5573
+ const body = lines.slice(1).join("\n");
5574
+ const truncatedBody = body.length > 300 ? body.slice(0, 297) + "..." : body;
5575
+ return `${header}\n${truncatedBody}`;
5576
+ }).join("\n\n");
5577
+ logger$17.info({
5578
+ fullLength: full.length,
5579
+ summarizedLength: summarized.length,
5580
+ decisions: constraints.length
5581
+ }, "Architecture constraints summarized to fit create-story budget");
5582
+ return summarized.slice(0, ARCH_CONSTRAINT_MAX_CHARS);
5583
+ }
5559
5584
  if (deps.projectRoot) {
5560
5585
  const fallback = readArchConstraintsFromFile(deps.projectRoot);
5561
5586
  if (fallback) {
5562
5587
  logger$17.info("Using file-based fallback for architecture constraints (decisions table empty)");
5563
- return fallback;
5588
+ return fallback.length > ARCH_CONSTRAINT_MAX_CHARS ? fallback.slice(0, ARCH_CONSTRAINT_MAX_CHARS) + "\n\n[truncated for token budget]" : fallback;
5564
5589
  }
5565
5590
  }
5566
5591
  return "";
@@ -11077,6 +11102,11 @@ function createImplementationOrchestrator(deps) {
11077
11102
  await persistState();
11078
11103
  if (createResult.result === "failed") {
11079
11104
  const errMsg = createResult.error ?? "create-story failed";
11105
+ const stderrSnippet = errMsg.includes("--- stderr ---") ? errMsg.slice(errMsg.indexOf("--- stderr ---") + 15, errMsg.indexOf("--- stderr ---") + 515) : errMsg.slice(0, 500);
11106
+ logger$21.error({
11107
+ storyKey,
11108
+ stderrSnippet
11109
+ }, `Create-story failed: ${stderrSnippet.split("\n")[0]}`);
11080
11110
  updateStory(storyKey, {
11081
11111
  phase: "ESCALATED",
11082
11112
  error: errMsg,
@@ -40856,4 +40886,4 @@ function registerRunCommand(program, _version = "0.0.0", projectRoot = process.c
40856
40886
 
40857
40887
  //#endregion
40858
40888
  export { AdapterTelemetryPersistence, AppError, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, EpicIngester, GitClient, GrammarLoader, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, formatPhaseCompletionSummary, getFactoryRunSummaries, getScenarioResultsForRun, getTwinRunsForRun, listGraphRuns, normalizeGraphSummaryToStatus, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runRunAction, runSolutioningPhase, validateStopAfterFromConflict };
40859
- //# sourceMappingURL=run-DKBhMeGg.js.map
40889
+ //# sourceMappingURL=run-9CV1Feo5.js.map
@@ -1,8 +1,8 @@
1
- import "./health-KEcudYsb.js";
1
+ import "./health-DJgGZhW-.js";
2
2
  import "./logger-KeHncl-f.js";
3
3
  import "./helpers-CElYrONe.js";
4
- import "./dist-BN1SUGQy.js";
5
- import { normalizeGraphSummaryToStatus, registerRunCommand, runRunAction } from "./run-DKBhMeGg.js";
4
+ import "./dist-adzGUKPc.js";
5
+ import { normalizeGraphSummaryToStatus, registerRunCommand, runRunAction } from "./run-9CV1Feo5.js";
6
6
  import "./routing-CcBOCuC9.js";
7
7
  import "./decisions-C0pz9Clx.js";
8
8
 
@@ -1,5 +1,5 @@
1
- import "./dist-BN1SUGQy.js";
1
+ import "./dist-adzGUKPc.js";
2
2
  import "./version-manager-impl-BmOWu8ml.js";
3
- import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-GWxxw0gq.js";
3
+ import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-C3-h4asQ.js";
4
4
 
5
5
  export { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand };
@@ -1,4 +1,4 @@
1
- import { createVersionManager } from "./dist-BN1SUGQy.js";
1
+ import { createVersionManager } from "./dist-adzGUKPc.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-GWxxw0gq.js.map
126
+ //# sourceMappingURL=upgrade-C3-h4asQ.js.map
@@ -1,4 +1,4 @@
1
- import { VersionManagerImpl, createVersionManager } from "./dist-BN1SUGQy.js";
1
+ import { VersionManagerImpl, createVersionManager } from "./dist-adzGUKPc.js";
2
2
  import "./version-manager-impl-BmOWu8ml.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.19.6",
3
+ "version": "0.19.8",
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-BN1SUGQy.js";
2
- import "./adapter-registry-DXLMTmfD.js";
3
-
4
- export { AdapterRegistry };