substrate-ai 0.8.5 → 0.9.0
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/cli/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { DoltClient, DoltNotInstalled, FileStateStore, SUBSTRATE_OWNED_SETTINGS_KEYS, VALID_PHASES, WorkGraphRepository, buildPipelineStatusOutput, checkDoltInstalled, createDatabaseAdapter, createDoltClient, createStateStore, detectCycles, findPackageRoot, formatOutput, formatPipelineStatusHuman, formatPipelineSummary, formatTokenTelemetry, getAllDescendantPids, getAutoHealthData, getSubstrateDefaultSettings, initSchema, initializeDolt, isSyncAdapter, parseDbTimestampAsUtc, registerHealthCommand, resolveBmadMethodSrcPath, resolveBmadMethodVersion, resolveMainRepoRoot } from "../health-C-VRJruD.js";
|
|
3
3
|
import { createLogger } from "../logger-D2fS2ccL.js";
|
|
4
4
|
import { AdapterRegistry } from "../adapter-registry-D2zdMwVu.js";
|
|
5
|
-
import { AdapterTelemetryPersistence, AppError, DEFAULT_CONFIG, DEFAULT_ROUTING_POLICY, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, GitClient, GrammarLoader, IngestionServer, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createConfigSystem, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, formatPhaseCompletionSummary, registerRunCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runSolutioningPhase, validateStopAfterFromConflict } from "../run-
|
|
5
|
+
import { AdapterTelemetryPersistence, AppError, DEFAULT_CONFIG, DEFAULT_ROUTING_POLICY, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, GitClient, GrammarLoader, IngestionServer, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createConfigSystem, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, formatPhaseCompletionSummary, registerRunCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runSolutioningPhase, validateStopAfterFromConflict } from "../run-ClxNDHbr.js";
|
|
6
6
|
import { CURRENT_CONFIG_FORMAT_VERSION, CURRENT_TASK_GRAPH_VERSION, PartialSubstrateConfigSchema } from "../config-migrator-CtGelIsG.js";
|
|
7
7
|
import { ConfigError, createEventBus } from "../helpers-CpMs8VZX.js";
|
|
8
8
|
import { RoutingRecommender } from "../routing-BVrxrM6v.js";
|
|
@@ -3549,7 +3549,7 @@ async function runSupervisorAction(options, deps = {}) {
|
|
|
3549
3549
|
await initSchema(expAdapter);
|
|
3550
3550
|
const { runRunAction: runPipeline } = await import(
|
|
3551
3551
|
/* @vite-ignore */
|
|
3552
|
-
"../run-
|
|
3552
|
+
"../run-MAQ3Wuju.js"
|
|
3553
3553
|
);
|
|
3554
3554
|
const runStoryFn = async (opts) => {
|
|
3555
3555
|
const exitCode = await runPipeline({
|
|
@@ -14155,6 +14155,19 @@ function createImplementationOrchestrator(deps) {
|
|
|
14155
14155
|
let devFilesModified = [];
|
|
14156
14156
|
const batchFileGroups = [];
|
|
14157
14157
|
let devStoryWasSuccess = false;
|
|
14158
|
+
let baselineHeadSha;
|
|
14159
|
+
try {
|
|
14160
|
+
baselineHeadSha = execSync("git rev-parse HEAD", {
|
|
14161
|
+
cwd: projectRoot ?? process.cwd(),
|
|
14162
|
+
encoding: "utf-8",
|
|
14163
|
+
timeout: 3e3,
|
|
14164
|
+
stdio: [
|
|
14165
|
+
"ignore",
|
|
14166
|
+
"pipe",
|
|
14167
|
+
"pipe"
|
|
14168
|
+
]
|
|
14169
|
+
}).trim();
|
|
14170
|
+
} catch {}
|
|
14158
14171
|
try {
|
|
14159
14172
|
let storyContentForAnalysis = "";
|
|
14160
14173
|
try {
|
|
@@ -14528,26 +14541,46 @@ function createImplementationOrchestrator(deps) {
|
|
|
14528
14541
|
if (devStoryWasSuccess) {
|
|
14529
14542
|
gitDiffFiles = checkGitDiffFiles(projectRoot ?? process.cwd());
|
|
14530
14543
|
if (gitDiffFiles.length === 0) {
|
|
14531
|
-
|
|
14532
|
-
|
|
14533
|
-
|
|
14534
|
-
|
|
14535
|
-
|
|
14536
|
-
|
|
14537
|
-
|
|
14538
|
-
|
|
14539
|
-
|
|
14540
|
-
|
|
14541
|
-
|
|
14542
|
-
|
|
14543
|
-
|
|
14544
|
+
let hasNewCommits = false;
|
|
14545
|
+
if (baselineHeadSha) try {
|
|
14546
|
+
const currentHead = execSync("git rev-parse HEAD", {
|
|
14547
|
+
cwd: projectRoot ?? process.cwd(),
|
|
14548
|
+
encoding: "utf-8",
|
|
14549
|
+
timeout: 3e3,
|
|
14550
|
+
stdio: [
|
|
14551
|
+
"ignore",
|
|
14552
|
+
"pipe",
|
|
14553
|
+
"pipe"
|
|
14554
|
+
]
|
|
14555
|
+
}).trim();
|
|
14556
|
+
hasNewCommits = currentHead !== baselineHeadSha;
|
|
14557
|
+
} catch {}
|
|
14558
|
+
if (hasNewCommits) logger$25.info({
|
|
14544
14559
|
storyKey,
|
|
14545
|
-
|
|
14546
|
-
|
|
14547
|
-
|
|
14548
|
-
|
|
14549
|
-
|
|
14550
|
-
|
|
14560
|
+
baselineHeadSha
|
|
14561
|
+
}, "Working tree clean but new commits detected since dispatch — skipping zero-diff escalation");
|
|
14562
|
+
else {
|
|
14563
|
+
logger$25.warn({ storyKey }, "Zero-diff detected after COMPLETE dev-story — no file changes and no new commits");
|
|
14564
|
+
eventBus.emit("orchestrator:zero-diff-escalation", {
|
|
14565
|
+
storyKey,
|
|
14566
|
+
reason: "zero-diff-on-complete"
|
|
14567
|
+
});
|
|
14568
|
+
endPhase(storyKey, "dev-story");
|
|
14569
|
+
updateStory(storyKey, {
|
|
14570
|
+
phase: "ESCALATED",
|
|
14571
|
+
error: "zero-diff-on-complete",
|
|
14572
|
+
completedAt: new Date().toISOString()
|
|
14573
|
+
});
|
|
14574
|
+
await writeStoryMetricsBestEffort(storyKey, "escalated", 0);
|
|
14575
|
+
await emitEscalation({
|
|
14576
|
+
storyKey,
|
|
14577
|
+
lastVerdict: "zero-diff-on-complete",
|
|
14578
|
+
reviewCycles: 0,
|
|
14579
|
+
issues: ["dev-story completed with COMPLETE verdict but no file changes detected in git diff"]
|
|
14580
|
+
});
|
|
14581
|
+
await persistState();
|
|
14582
|
+
return;
|
|
14583
|
+
}
|
|
14551
14584
|
}
|
|
14552
14585
|
}
|
|
14553
14586
|
endPhase(storyKey, "dev-story");
|
|
@@ -21398,4 +21431,4 @@ function registerRunCommand(program, _version = "0.0.0", projectRoot = process.c
|
|
|
21398
21431
|
|
|
21399
21432
|
//#endregion
|
|
21400
21433
|
export { AdapterTelemetryPersistence, AppError, DEFAULT_CONFIG, DEFAULT_ROUTING_POLICY, DoltRepoMapMetaRepository, DoltSymbolRepository, ERR_REPO_MAP_STORAGE_WRITE, GitClient, GrammarLoader, IngestionServer, RepoMapInjector, RepoMapModule, RepoMapQueryEngine, RepoMapStorage, SymbolParser, createConfigSystem, createContextCompiler, createDispatcher, createEventEmitter, createImplementationOrchestrator, createPackLoader, createPhaseOrchestrator, createStopAfterGate, createTelemetryAdvisor, formatPhaseCompletionSummary, registerRunCommand, resolveStoryKeys, runAnalysisPhase, runPlanningPhase, runRunAction, runSolutioningPhase, validateStopAfterFromConflict };
|
|
21401
|
-
//# sourceMappingURL=run-
|
|
21434
|
+
//# sourceMappingURL=run-ClxNDHbr.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./health-C-VRJruD.js";
|
|
2
2
|
import "./logger-D2fS2ccL.js";
|
|
3
|
-
import { registerRunCommand, runRunAction } from "./run-
|
|
3
|
+
import { registerRunCommand, runRunAction } from "./run-ClxNDHbr.js";
|
|
4
4
|
import "./config-migrator-CtGelIsG.js";
|
|
5
5
|
import "./helpers-CpMs8VZX.js";
|
|
6
6
|
import "./routing-BVrxrM6v.js";
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "substrate-ai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Substrate — multi-agent orchestration daemon for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"workspaces": [
|
|
8
|
+
"packages/*"
|
|
9
|
+
],
|
|
7
10
|
"author": "AI Dev Toolkit Contributors",
|
|
8
11
|
"repository": {
|
|
9
12
|
"type": "git",
|
|
@@ -45,8 +48,9 @@
|
|
|
45
48
|
],
|
|
46
49
|
"scripts": {
|
|
47
50
|
"agent-memory:bootstrap": "node scripts/bootstrap-agent-memory.mjs",
|
|
48
|
-
"build": "tsdown",
|
|
51
|
+
"build": "tsc --build packages/core packages/sdlc packages/factory && tsdown",
|
|
49
52
|
"postbuild": "cp -r src/cli/templates dist/cli/templates && cp src/modules/state/schema.sql dist/schema.sql",
|
|
53
|
+
"check:circular": "dpdm --no-warning --exit-code circular:1 packages/core/src/index.ts packages/sdlc/src/index.ts packages/factory/src/index.ts",
|
|
50
54
|
"dev": "tsx watch src/cli/index.ts",
|
|
51
55
|
"test": "vitest run --coverage",
|
|
52
56
|
"test:fast": "vitest run --exclude 'src/__tests__/e2e/**' --exclude '**/*integration*' --exclude '**/*e2e*'",
|
|
@@ -57,7 +61,7 @@
|
|
|
57
61
|
"lint:fix": "eslint src test --fix",
|
|
58
62
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
59
63
|
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
60
|
-
"typecheck": "tsc --noEmit",
|
|
64
|
+
"typecheck": "tsc --noEmit -p tsconfig.typecheck.json",
|
|
61
65
|
"typecheck:gate": "tsc --noEmit -p tsconfig.typecheck.json",
|
|
62
66
|
"clean": "rm -rf dist",
|
|
63
67
|
"substrate:dev": "node dist/cli/index.js"
|
|
@@ -86,6 +90,7 @@
|
|
|
86
90
|
"@typescript-eslint/parser": "^8.18.0",
|
|
87
91
|
"@vitest/coverage-v8": "^2.1.8",
|
|
88
92
|
"@vitest/ui": "^2.1.8",
|
|
93
|
+
"dpdm": "^4.0.1",
|
|
89
94
|
"eslint": "^9.17.0",
|
|
90
95
|
"pino-pretty": "^13.0.0",
|
|
91
96
|
"prettier": "^3.4.2",
|