substrate-ai 0.19.12 → 0.19.13

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-BY9vJ8c2.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-DJgGZhW-.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-CccxcGxy.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, 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, listRunMetrics, loadParentRunDecisions, supersedeDecision, tagRunAsBaseline, updatePipelineRun } from "../dist-adzGUKPc.js";
5
+ import { AdapterRegistry, BudgetConfigSchema, CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, ConfigError, CostTrackerConfigSchema, DEFAULT_CONFIG, DoltClient, DoltNotInstalled, 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, listRunMetrics, loadParentRunDecisions, supersedeDecision, tagRunAsBaseline, updatePipelineRun } from "../dist-BY9vJ8c2.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, registerExportCommand, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runSolutioningPhase, validateStopAfterFromConflict } from "../run-1Ywys7Fy.js";
8
- import "../errors-CZdr5Wqb.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, registerExportCommand, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runSolutioningPhase, validateStopAfterFromConflict } from "../run-BIITWyr2.js";
8
+ import "../errors-CsyjTWQC.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-C3-h4asQ.js";
12
+ import { registerUpgradeCommand } from "../upgrade-BK31djfs.js";
13
13
  import { Command } from "commander";
14
14
  import { fileURLToPath } from "url";
15
15
  import { dirname, join, resolve } from "path";
@@ -3212,7 +3212,7 @@ async function runStatusAction(options) {
3212
3212
  if (run === void 0) run = await getLatestRun(adapter);
3213
3213
  }
3214
3214
  if (run === void 0) {
3215
- const { inspectProcessTree } = await import("../health-Cd_psXRz.js");
3215
+ const { inspectProcessTree } = await import("../health-UPGHMvMV.js");
3216
3216
  const substrateDirPath = join(projectRoot, ".substrate");
3217
3217
  const processInfo = inspectProcessTree({
3218
3218
  projectRoot,
@@ -4099,7 +4099,7 @@ function defaultSupervisorDeps() {
4099
4099
  if (cached === null) {
4100
4100
  const { AdapterRegistry: AR } = await import(
4101
4101
  /* @vite-ignore */
4102
- "../adapter-registry-BVAkrT-E.js"
4102
+ "../adapter-registry-DXqPeMXA.js"
4103
4103
  );
4104
4104
  cached = new AR();
4105
4105
  await cached.discoverAndRegister();
@@ -4541,11 +4541,11 @@ async function runSupervisorAction(options, deps = {}) {
4541
4541
  try {
4542
4542
  const { createExperimenter } = await import(
4543
4543
  /* @vite-ignore */
4544
- "../experimenter-DxQ7CQHb.js"
4544
+ "../experimenter-D5i1C7u8.js"
4545
4545
  );
4546
4546
  const { getLatestRun: getLatest } = await import(
4547
4547
  /* @vite-ignore */
4548
- "../decisions-CTvoZrPH.js"
4548
+ "../decisions-zz_jtWQz.js"
4549
4549
  );
4550
4550
  const expAdapter = createDatabaseAdapter({
4551
4551
  backend: "auto",
@@ -4555,7 +4555,7 @@ async function runSupervisorAction(options, deps = {}) {
4555
4555
  await initSchema(expAdapter);
4556
4556
  const { runRunAction: runPipeline } = await import(
4557
4557
  /* @vite-ignore */
4558
- "../run-zc3SEWY1.js"
4558
+ "../run-B056zOp4.js"
4559
4559
  );
4560
4560
  const runStoryFn = async (opts) => {
4561
4561
  const exitCode = await runPipeline({
@@ -5085,7 +5085,7 @@ async function runMetricsAction(options) {
5085
5085
  const routingConfigPath = join(dbDir, "routing.yml");
5086
5086
  let routingConfig = null;
5087
5087
  if (existsSync$1(routingConfigPath)) try {
5088
- const { loadModelRoutingConfig } = await import("../routing-Vzz2S3bc.js");
5088
+ const { loadModelRoutingConfig } = await import("../routing-7MdlUyW-.js");
5089
5089
  routingConfig = loadModelRoutingConfig(routingConfigPath);
5090
5090
  } catch {}
5091
5091
  if (routingConfig === null) routingConfig = {
@@ -8163,8 +8163,8 @@ async function createProgram() {
8163
8163
  /** Fire-and-forget startup version check (story 8.3, AC3/AC5) */
8164
8164
  function checkForUpdatesInBackground(currentVersion) {
8165
8165
  if (process.env.SUBSTRATE_NO_UPDATE_CHECK === "1") return;
8166
- import("../upgrade-BtaFOZk0.js").then(async () => {
8167
- const { createVersionManager } = await import("../version-manager-impl-CCk76_D8.js");
8166
+ import("../upgrade-PRTRKTut.js").then(async () => {
8167
+ const { createVersionManager } = await import("../version-manager-impl-CwP9Bofo.js");
8168
8168
  const vm = createVersionManager();
8169
8169
  const result = await vm.checkForUpdates();
8170
8170
  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-adzGUKPc.js";
1
+ import { addTokenUsage, createDecision, createPipelineRun, createRequirement, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getTokenUsageSummary, listRequirements, registerArtifact, updateDecision, updatePipelineRun, updatePipelineRunConfig, upsertDecision } from "./dist-BY9vJ8c2.js";
2
2
  import "./decisions-C0pz9Clx.js";
3
3
 
4
4
  export { getLatestRun };
@@ -116,7 +116,9 @@ function extractYamlBlock(output) {
116
116
  const fencedResult = extractLastFencedYaml(output);
117
117
  if (fencedResult !== null) return fencedResult;
118
118
  const stripped = stripTrailingFence(output);
119
- return extractUnfencedYaml(stripped);
119
+ const unfenced = extractUnfencedYaml(stripped);
120
+ if (unfenced !== null) return unfenced;
121
+ return extractJsonAsYaml(output);
120
122
  }
121
123
  /**
122
124
  * Strip a trailing markdown fence that wraps the entire remaining output.
@@ -172,6 +174,32 @@ function extractUnfencedYaml(output) {
172
174
  return yamlText !== "" ? yamlText : null;
173
175
  }
174
176
  /**
177
+ * Try to extract a JSON object from the output and convert it to YAML.
178
+ *
179
+ * Scans for JSON objects (delimited by { ... }) that contain at least one
180
+ * anchor key. Tries the last such object. Converts via yaml.dump so
181
+ * downstream parseYamlResult can validate it with the same Zod schema.
182
+ */
183
+ function extractJsonAsYaml(output) {
184
+ const jsonPattern = /\{[\s\S]*?\n\}/g;
185
+ let lastJsonObj = null;
186
+ let match;
187
+ while ((match = jsonPattern.exec(output)) !== null) {
188
+ const candidate = match[0];
189
+ if (!YAML_ANCHOR_KEYS.some((key) => candidate.includes(key.replace(":", "")))) continue;
190
+ try {
191
+ const parsed = JSON.parse(candidate);
192
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) lastJsonObj = parsed;
193
+ } catch {}
194
+ }
195
+ if (lastJsonObj === null) return null;
196
+ try {
197
+ return yaml.dump(lastJsonObj, { lineWidth: -1 });
198
+ } catch {
199
+ return null;
200
+ }
201
+ }
202
+ /**
175
203
  * Check if a line starts with one of the known anchor keys.
176
204
  */
177
205
  function isAnchorLine(line) {
@@ -8782,10 +8810,14 @@ var CodexCLIAdapter = class {
8782
8810
  }
8783
8811
  /**
8784
8812
  * Build spawn command for a coding task.
8785
- * Uses: `codex exec --json` with prompt delivered via stdin.
8813
+ * Uses: `codex exec` with prompt delivered via stdin.
8814
+ *
8815
+ * Do NOT use --json: it produces a JSONL event stream that prevents
8816
+ * extractYamlBlock from finding the structured result block in stdout.
8817
+ * Raw text output is required (same rationale as Claude adapter).
8786
8818
  */
8787
8819
  buildCommand(prompt, options) {
8788
- const args = ["exec", "--json"];
8820
+ const args = ["exec"];
8789
8821
  if (options.additionalFlags && options.additionalFlags.length > 0) args.push(...options.additionalFlags);
8790
8822
  const envEntries = {};
8791
8823
  if (options.apiKey) envEntries.OPENAI_API_KEY = options.apiKey;
@@ -8822,7 +8854,10 @@ var CodexCLIAdapter = class {
8822
8854
  };
8823
8855
  }
8824
8856
  /**
8825
- * Parse Codex CLI JSON output into a TaskResult.
8857
+ * Parse Codex CLI output into a TaskResult.
8858
+ *
8859
+ * With raw text mode (no --json), stdout is the agent's direct output.
8860
+ * YAML extraction happens in the dispatcher's extractYamlBlock, not here.
8826
8861
  */
8827
8862
  parseOutput(stdout, stderr, exitCode) {
8828
8863
  if (exitCode !== 0) return {
@@ -8831,41 +8866,11 @@ var CodexCLIAdapter = class {
8831
8866
  error: stderr || `Process exited with code ${String(exitCode)}`,
8832
8867
  exitCode
8833
8868
  };
8834
- if (stdout.trim() === "") return {
8869
+ return {
8835
8870
  success: true,
8836
- output: "",
8871
+ output: stdout,
8837
8872
  exitCode
8838
8873
  };
8839
- try {
8840
- const parsed = JSON.parse(stdout.trim());
8841
- const success = parsed.status === "success" || parsed.status === "completed" || parsed.status === void 0 && !parsed.error;
8842
- const inputTokens = parsed.tokens?.input ?? 0;
8843
- const outputTokens = parsed.tokens?.output ?? 0;
8844
- const totalTokens = parsed.tokens?.total ?? inputTokens + outputTokens;
8845
- const hasTokens = inputTokens > 0 || outputTokens > 0;
8846
- const tokensUsed = hasTokens ? {
8847
- input: inputTokens,
8848
- output: outputTokens,
8849
- total: totalTokens
8850
- } : void 0;
8851
- const executionTime = parsed.executionTime;
8852
- return {
8853
- success: success && !parsed.error,
8854
- output: parsed.output ?? parsed.result ?? stdout,
8855
- ...parsed.error ? { error: parsed.error } : {},
8856
- exitCode,
8857
- metadata: {
8858
- ...executionTime !== void 0 ? { executionTime } : {},
8859
- ...tokensUsed !== void 0 ? { tokensUsed } : {}
8860
- }
8861
- };
8862
- } catch {
8863
- return {
8864
- success: true,
8865
- output: stdout,
8866
- exitCode
8867
- };
8868
- }
8869
8874
  }
8870
8875
  /**
8871
8876
  * Parse Codex plan generation output.
@@ -10243,4 +10248,4 @@ async function callLLM(params) {
10243
10248
 
10244
10249
  //#endregion
10245
10250
  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 };
10246
- //# sourceMappingURL=dist-adzGUKPc.js.map
10251
+ //# sourceMappingURL=dist-BY9vJ8c2.js.map
@@ -1,4 +1,4 @@
1
- import { AdtError } from "./dist-adzGUKPc.js";
1
+ import { AdtError } from "./dist-BY9vJ8c2.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-CZdr5Wqb.js.map
74
+ //# sourceMappingURL=errors-CsyjTWQC.js.map
@@ -1,3 +1,3 @@
1
- import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-adzGUKPc.js";
1
+ import { buildAuditLogEntry, buildBranchName, buildModificationDirective, buildPRBody, buildWorktreePath, createExperimenter, determineVerdict, resolvePromptFile } from "./dist-BY9vJ8c2.js";
2
2
 
3
3
  export { createExperimenter };
@@ -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-adzGUKPc.js";
2
+ import { DoltClient, DoltQueryError, createDatabaseAdapter$1 as createDatabaseAdapter, getLatestRun, getPipelineRunById, initSchema } from "./dist-BY9vJ8c2.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-DJgGZhW-.js.map
1933
+ //# sourceMappingURL=health-CccxcGxy.js.map
@@ -1,6 +1,6 @@
1
- import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-DJgGZhW-.js";
1
+ import { DEFAULT_STALL_THRESHOLD_SECONDS, getAllDescendantPids, getAutoHealthData, inspectProcessTree, isOrchestratorProcessLine, registerHealthCommand, runHealthAction } from "./health-CccxcGxy.js";
2
2
  import "./logger-KeHncl-f.js";
3
- import "./dist-adzGUKPc.js";
3
+ import "./dist-BY9vJ8c2.js";
4
4
  import "./decisions-C0pz9Clx.js";
5
5
 
6
6
  export { inspectProcessTree };
package/dist/index.d.ts CHANGED
@@ -1211,7 +1211,11 @@ declare class CodexCLIAdapter implements WorkerAdapter$1 {
1211
1211
  healthCheck(): Promise<AdapterHealthResult$1>;
1212
1212
  /**
1213
1213
  * Build spawn command for a coding task.
1214
- * Uses: `codex exec --json` with prompt delivered via stdin.
1214
+ * Uses: `codex exec` with prompt delivered via stdin.
1215
+ *
1216
+ * Do NOT use --json: it produces a JSONL event stream that prevents
1217
+ * extractYamlBlock from finding the structured result block in stdout.
1218
+ * Raw text output is required (same rationale as Claude adapter).
1215
1219
  */
1216
1220
  buildCommand(prompt: string, options: AdapterOptions$1): SpawnCommand$1;
1217
1221
  /**
@@ -1220,7 +1224,10 @@ declare class CodexCLIAdapter implements WorkerAdapter$1 {
1220
1224
  */
1221
1225
  buildPlanningCommand(request: PlanRequest$1, options: AdapterOptions$1): SpawnCommand$1;
1222
1226
  /**
1223
- * Parse Codex CLI JSON output into a TaskResult.
1227
+ * Parse Codex CLI output into a TaskResult.
1228
+ *
1229
+ * With raw text mode (no --json), stdout is the agent's direct output.
1230
+ * YAML extraction happens in the dispatcher's extractYamlBlock, not here.
1224
1231
  */
1225
1232
  parseOutput(stdout: string, stderr: string, exitCode: number): TaskResult$2;
1226
1233
  /**
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-adzGUKPc.js";
3
+ import { AdapterRegistry, AdtError, ClaudeCodeAdapter, CodexCLIAdapter, ConfigError, ConfigIncompatibleFormatError, GeminiCLIAdapter } from "./dist-BY9vJ8c2.js";
4
4
  import "./adapter-registry-DXLMTmfD.js";
5
- import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-CZdr5Wqb.js";
5
+ import { BudgetExceededError, GitError, RecoveryError, TaskConfigError, TaskGraphCycleError, TaskGraphError, TaskGraphIncompatibleFormatError, WorkerError, WorkerNotFoundError } from "./errors-CsyjTWQC.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-adzGUKPc.js";
1
+ import { ModelRoutingConfigSchema, ProviderPolicySchema, RoutingConfigError, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, TASK_TYPE_PHASE_MAP, getModelTier, loadModelRoutingConfig } from "./dist-BY9vJ8c2.js";
2
2
  import "./routing-CcBOCuC9.js";
3
3
 
4
4
  export { loadModelRoutingConfig };
@@ -1,8 +1,8 @@
1
- import "./health-DJgGZhW-.js";
1
+ import "./health-CccxcGxy.js";
2
2
  import "./logger-KeHncl-f.js";
3
3
  import "./helpers-CElYrONe.js";
4
- import "./dist-adzGUKPc.js";
5
- import { normalizeGraphSummaryToStatus, registerRunCommand, runRunAction } from "./run-1Ywys7Fy.js";
4
+ import "./dist-BY9vJ8c2.js";
5
+ import { normalizeGraphSummaryToStatus, registerRunCommand, runRunAction } from "./run-BIITWyr2.js";
6
6
  import "./routing-CcBOCuC9.js";
7
7
  import "./decisions-C0pz9Clx.js";
8
8
 
@@ -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-DJgGZhW-.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-CccxcGxy.js";
2
2
  import { createLogger } from "./logger-KeHncl-f.js";
3
3
  import { TypedEventBusImpl, createEventBus, createTuiApp, isTuiCapable, printNonTtyWarning, sleep } from "./helpers-CElYrONe.js";
4
- import { ADVISORY_NOTES, Categorizer, ConsumerAnalyzer, DEFAULT_GLOBAL_SETTINGS, DispatcherImpl, DoltClient, ESCALATION_DIAGNOSIS, EXPERIMENT_RESULT, EfficiencyScorer, IngestionServer, LogTurnAnalyzer, OPERATIONAL_FINDING, Recommender, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, STORY_METRICS, STORY_OUTCOME, SubstrateConfigSchema, TEST_EXPANSION_FINDING, TEST_PLAN, TelemetryNormalizer, TelemetryPipeline, TurnAnalyzer, addTokenUsage, aggregateTokenUsageForRun, aggregateTokenUsageForStory, callLLM, createConfigSystem, createDatabaseAdapter$1, createDecision, createPipelineRun, createRequirement, detectInterfaceChanges, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, listRequirements, loadModelRoutingConfig, registerArtifact, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-adzGUKPc.js";
4
+ import { ADVISORY_NOTES, Categorizer, ConsumerAnalyzer, DEFAULT_GLOBAL_SETTINGS, DispatcherImpl, DoltClient, ESCALATION_DIAGNOSIS, EXPERIMENT_RESULT, EfficiencyScorer, IngestionServer, LogTurnAnalyzer, OPERATIONAL_FINDING, Recommender, RoutingRecommender, RoutingResolver, RoutingTelemetry, RoutingTokenAccumulator, RoutingTuner, STORY_METRICS, STORY_OUTCOME, SubstrateConfigSchema, TEST_EXPANSION_FINDING, TEST_PLAN, TelemetryNormalizer, TelemetryPipeline, TurnAnalyzer, addTokenUsage, aggregateTokenUsageForRun, aggregateTokenUsageForStory, callLLM, createConfigSystem, createDatabaseAdapter$1, createDecision, createPipelineRun, createRequirement, detectInterfaceChanges, getArtifactByTypeForRun, getArtifactsByRun, getDecisionsByCategory, getDecisionsByPhase, getDecisionsByPhaseForRun, getLatestRun, getPipelineRunById, getRunningPipelineRuns, getStoryMetricsForRun, getTokenUsageSummary, initSchema, listRequirements, loadModelRoutingConfig, registerArtifact, updatePipelineRun, updatePipelineRunConfig, upsertDecision, writeRunMetrics, writeStoryMetrics } from "./dist-BY9vJ8c2.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";
@@ -41648,4 +41648,4 @@ function registerRunCommand(program, _version = "0.0.0", projectRoot = process.c
41648
41648
 
41649
41649
  //#endregion
41650
41650
  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, registerExportCommand, registerFactoryCommand, registerRunCommand, registerScenariosCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runRunAction, runSolutioningPhase, validateStopAfterFromConflict };
41651
- //# sourceMappingURL=run-1Ywys7Fy.js.map
41651
+ //# sourceMappingURL=run-BIITWyr2.js.map
@@ -1,4 +1,4 @@
1
- import { createVersionManager } from "./dist-adzGUKPc.js";
1
+ import { createVersionManager } from "./dist-BY9vJ8c2.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-C3-h4asQ.js.map
126
+ //# sourceMappingURL=upgrade-BK31djfs.js.map
@@ -1,5 +1,5 @@
1
- import "./dist-adzGUKPc.js";
1
+ import "./dist-BY9vJ8c2.js";
2
2
  import "./version-manager-impl-BmOWu8ml.js";
3
- import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-C3-h4asQ.js";
3
+ import { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand } from "./upgrade-BK31djfs.js";
4
4
 
5
5
  export { isGlobalInstall, registerUpgradeCommand, runUpgradeCommand };
@@ -1,4 +1,4 @@
1
- import { VersionManagerImpl, createVersionManager } from "./dist-adzGUKPc.js";
1
+ import { VersionManagerImpl, createVersionManager } from "./dist-BY9vJ8c2.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.12",
3
+ "version": "0.19.13",
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-adzGUKPc.js";
2
- import "./adapter-registry-DXLMTmfD.js";
3
-
4
- export { AdapterRegistry };