@soleri/core 9.10.0 → 9.12.1
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/adapters/types.d.ts +2 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/brain/brain.d.ts +5 -1
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +97 -10
- package/dist/brain/brain.js.map +1 -1
- package/dist/brain/intelligence.d.ts.map +1 -1
- package/dist/brain/intelligence.js +4 -0
- package/dist/brain/intelligence.js.map +1 -1
- package/dist/brain/types.d.ts +1 -1
- package/dist/brain/types.d.ts.map +1 -1
- package/dist/dream/cron-manager.d.ts +10 -0
- package/dist/dream/cron-manager.d.ts.map +1 -0
- package/dist/dream/cron-manager.js +122 -0
- package/dist/dream/cron-manager.js.map +1 -0
- package/dist/dream/dream-engine.d.ts +34 -0
- package/dist/dream/dream-engine.d.ts.map +1 -0
- package/dist/dream/dream-engine.js +88 -0
- package/dist/dream/dream-engine.js.map +1 -0
- package/dist/dream/dream-ops.d.ts +8 -0
- package/dist/dream/dream-ops.d.ts.map +1 -0
- package/dist/dream/dream-ops.js +49 -0
- package/dist/dream/dream-ops.js.map +1 -0
- package/dist/dream/index.d.ts +7 -0
- package/dist/dream/index.d.ts.map +1 -0
- package/dist/dream/index.js +5 -0
- package/dist/dream/index.js.map +1 -0
- package/dist/dream/schema.d.ts +3 -0
- package/dist/dream/schema.d.ts.map +1 -0
- package/dist/dream/schema.js +16 -0
- package/dist/dream/schema.js.map +1 -0
- package/dist/embeddings/index.d.ts +5 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +3 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/openai-provider.d.ts +31 -0
- package/dist/embeddings/openai-provider.d.ts.map +1 -0
- package/dist/embeddings/openai-provider.js +120 -0
- package/dist/embeddings/openai-provider.js.map +1 -0
- package/dist/embeddings/pipeline.d.ts +36 -0
- package/dist/embeddings/pipeline.d.ts.map +1 -0
- package/dist/embeddings/pipeline.js +78 -0
- package/dist/embeddings/pipeline.js.map +1 -0
- package/dist/embeddings/types.d.ts +62 -0
- package/dist/embeddings/types.d.ts.map +1 -0
- package/dist/embeddings/types.js +3 -0
- package/dist/embeddings/types.js.map +1 -0
- package/dist/engine/bin/soleri-engine.js +4 -1
- package/dist/engine/bin/soleri-engine.js.map +1 -1
- package/dist/engine/module-manifest.d.ts.map +1 -1
- package/dist/engine/module-manifest.js +20 -0
- package/dist/engine/module-manifest.js.map +1 -1
- package/dist/engine/register-engine.d.ts.map +1 -1
- package/dist/engine/register-engine.js +12 -0
- package/dist/engine/register-engine.js.map +1 -1
- package/dist/flows/chain-types.d.ts +8 -8
- package/dist/flows/dispatch-registry.d.ts +15 -1
- package/dist/flows/dispatch-registry.d.ts.map +1 -1
- package/dist/flows/dispatch-registry.js +28 -1
- package/dist/flows/dispatch-registry.js.map +1 -1
- package/dist/flows/executor.d.ts +20 -2
- package/dist/flows/executor.d.ts.map +1 -1
- package/dist/flows/executor.js +79 -1
- package/dist/flows/executor.js.map +1 -1
- package/dist/flows/index.d.ts +2 -1
- package/dist/flows/index.d.ts.map +1 -1
- package/dist/flows/index.js.map +1 -1
- package/dist/flows/types.d.ts +43 -21
- package/dist/flows/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/planning/plan-lifecycle.d.ts.map +1 -1
- package/dist/planning/plan-lifecycle.js +4 -2
- package/dist/planning/plan-lifecycle.js.map +1 -1
- package/dist/planning/planner-types.d.ts +1 -1
- package/dist/planning/planner-types.d.ts.map +1 -1
- package/dist/plugins/types.d.ts +31 -31
- package/dist/runtime/admin-ops.d.ts.map +1 -1
- package/dist/runtime/admin-ops.js +15 -0
- package/dist/runtime/admin-ops.js.map +1 -1
- package/dist/runtime/admin-setup-ops.js +2 -2
- package/dist/runtime/admin-setup-ops.js.map +1 -1
- package/dist/runtime/embedding-ops.d.ts +12 -0
- package/dist/runtime/embedding-ops.d.ts.map +1 -0
- package/dist/runtime/embedding-ops.js +96 -0
- package/dist/runtime/embedding-ops.js.map +1 -0
- package/dist/runtime/facades/embedding-facade.d.ts +7 -0
- package/dist/runtime/facades/embedding-facade.d.ts.map +1 -0
- package/dist/runtime/facades/embedding-facade.js +8 -0
- package/dist/runtime/facades/embedding-facade.js.map +1 -0
- package/dist/runtime/facades/index.d.ts.map +1 -1
- package/dist/runtime/facades/index.js +12 -0
- package/dist/runtime/facades/index.js.map +1 -1
- package/dist/runtime/facades/orchestrate-facade.d.ts.map +1 -1
- package/dist/runtime/facades/orchestrate-facade.js +120 -0
- package/dist/runtime/facades/orchestrate-facade.js.map +1 -1
- package/dist/runtime/feature-flags.d.ts.map +1 -1
- package/dist/runtime/feature-flags.js +4 -0
- package/dist/runtime/feature-flags.js.map +1 -1
- package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
- package/dist/runtime/orchestrate-ops.js +146 -12
- package/dist/runtime/orchestrate-ops.js.map +1 -1
- package/dist/runtime/planning-extra-ops.d.ts.map +1 -1
- package/dist/runtime/planning-extra-ops.js +51 -0
- package/dist/runtime/planning-extra-ops.js.map +1 -1
- package/dist/runtime/preflight.d.ts +32 -0
- package/dist/runtime/preflight.d.ts.map +1 -0
- package/dist/runtime/preflight.js +29 -0
- package/dist/runtime/preflight.js.map +1 -0
- package/dist/runtime/quality-signals.d.ts +6 -1
- package/dist/runtime/quality-signals.d.ts.map +1 -1
- package/dist/runtime/quality-signals.js +41 -5
- package/dist/runtime/quality-signals.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +33 -2
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/types.d.ts +27 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/skills/step-tracker.d.ts +39 -0
- package/dist/skills/step-tracker.d.ts.map +1 -0
- package/dist/skills/step-tracker.js +105 -0
- package/dist/skills/step-tracker.js.map +1 -0
- package/dist/skills/sync-skills.d.ts +3 -2
- package/dist/skills/sync-skills.d.ts.map +1 -1
- package/dist/skills/sync-skills.js +42 -8
- package/dist/skills/sync-skills.js.map +1 -1
- package/dist/subagent/dispatcher.d.ts +4 -3
- package/dist/subagent/dispatcher.d.ts.map +1 -1
- package/dist/subagent/dispatcher.js +57 -35
- package/dist/subagent/dispatcher.js.map +1 -1
- package/dist/subagent/index.d.ts +1 -0
- package/dist/subagent/index.d.ts.map +1 -1
- package/dist/subagent/index.js.map +1 -1
- package/dist/subagent/orphan-reaper.d.ts +51 -4
- package/dist/subagent/orphan-reaper.d.ts.map +1 -1
- package/dist/subagent/orphan-reaper.js +103 -3
- package/dist/subagent/orphan-reaper.js.map +1 -1
- package/dist/subagent/types.d.ts +7 -0
- package/dist/subagent/types.d.ts.map +1 -1
- package/dist/subagent/workspace-resolver.d.ts +2 -0
- package/dist/subagent/workspace-resolver.d.ts.map +1 -1
- package/dist/subagent/workspace-resolver.js +3 -1
- package/dist/subagent/workspace-resolver.js.map +1 -1
- package/dist/vault/vault-entries.d.ts +18 -0
- package/dist/vault/vault-entries.d.ts.map +1 -1
- package/dist/vault/vault-entries.js +73 -0
- package/dist/vault/vault-entries.js.map +1 -1
- package/dist/vault/vault-manager.d.ts.map +1 -1
- package/dist/vault/vault-manager.js +1 -0
- package/dist/vault/vault-manager.js.map +1 -1
- package/dist/vault/vault-schema.d.ts.map +1 -1
- package/dist/vault/vault-schema.js +14 -0
- package/dist/vault/vault-schema.js.map +1 -1
- package/dist/vault/vault.d.ts +1 -0
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js.map +1 -1
- package/package.json +3 -5
- package/src/__tests__/cron-manager.test.ts +132 -0
- package/src/__tests__/deviation-detection.test.ts +234 -0
- package/src/__tests__/embeddings.test.ts +536 -0
- package/src/__tests__/preflight.test.ts +97 -0
- package/src/__tests__/step-persistence.test.ts +324 -0
- package/src/__tests__/step-tracker.test.ts +260 -0
- package/src/__tests__/subagent/dispatcher.test.ts +122 -4
- package/src/__tests__/subagent/orphan-reaper.test.ts +148 -12
- package/src/__tests__/subagent/process-lifecycle.test.ts +422 -0
- package/src/__tests__/subagent/workspace-resolver.test.ts +6 -1
- package/src/adapters/types.ts +2 -0
- package/src/brain/brain.ts +117 -9
- package/src/brain/intelligence.ts +4 -0
- package/src/brain/types.ts +6 -1
- package/src/dream/cron-manager.ts +137 -0
- package/src/dream/dream-engine.ts +119 -0
- package/src/dream/dream-ops.ts +56 -0
- package/src/dream/dream.test.ts +182 -0
- package/src/dream/index.ts +6 -0
- package/src/dream/schema.ts +17 -0
- package/src/embeddings/openai-provider.ts +158 -0
- package/src/embeddings/pipeline.ts +126 -0
- package/src/embeddings/types.ts +67 -0
- package/src/engine/bin/soleri-engine.ts +4 -1
- package/src/engine/module-manifest.test.ts +4 -4
- package/src/engine/module-manifest.ts +20 -0
- package/src/engine/register-engine.ts +12 -0
- package/src/flows/dispatch-registry.ts +44 -1
- package/src/flows/executor.ts +93 -2
- package/src/flows/index.ts +2 -0
- package/src/flows/types.ts +39 -1
- package/src/index.ts +11 -0
- package/src/planning/goal-ancestry.test.ts +3 -5
- package/src/planning/plan-lifecycle.ts +5 -2
- package/src/planning/planner-types.ts +1 -1
- package/src/planning/planner.test.ts +73 -3
- package/src/runtime/admin-ops.test.ts +2 -2
- package/src/runtime/admin-ops.ts +17 -0
- package/src/runtime/admin-setup-ops.ts +2 -2
- package/src/runtime/embedding-ops.ts +116 -0
- package/src/runtime/facades/admin-facade.test.ts +31 -0
- package/src/runtime/facades/embedding-facade.ts +11 -0
- package/src/runtime/facades/index.ts +12 -0
- package/src/runtime/facades/orchestrate-facade.test.ts +16 -0
- package/src/runtime/facades/orchestrate-facade.ts +146 -0
- package/src/runtime/feature-flags.ts +4 -0
- package/src/runtime/orchestrate-ops.test.ts +182 -2
- package/src/runtime/orchestrate-ops.ts +170 -13
- package/src/runtime/planning-extra-ops.ts +77 -0
- package/src/runtime/preflight.ts +53 -0
- package/src/runtime/quality-signals.test.ts +182 -8
- package/src/runtime/quality-signals.ts +44 -5
- package/src/runtime/runtime.ts +41 -2
- package/src/runtime/types.ts +20 -0
- package/src/skills/__tests__/sync-skills.test.ts +132 -0
- package/src/skills/step-tracker.ts +162 -0
- package/src/skills/sync-skills.ts +54 -9
- package/src/subagent/dispatcher.ts +62 -39
- package/src/subagent/index.ts +1 -0
- package/src/subagent/orphan-reaper.test.ts +135 -0
- package/src/subagent/orphan-reaper.ts +130 -7
- package/src/subagent/types.ts +10 -0
- package/src/subagent/workspace-resolver.ts +3 -1
- package/src/vault/vault-entries.ts +112 -0
- package/src/vault/vault-manager.ts +1 -0
- package/src/vault/vault-scaling.test.ts +3 -2
- package/src/vault/vault-schema.ts +15 -0
- package/src/vault/vault.ts +1 -0
- package/vitest.config.ts +2 -1
- package/dist/brain/strength-scorer.d.ts +0 -31
- package/dist/brain/strength-scorer.d.ts.map +0 -1
- package/dist/brain/strength-scorer.js +0 -264
- package/dist/brain/strength-scorer.js.map +0 -1
- package/dist/engine/index.d.ts +0 -21
- package/dist/engine/index.d.ts.map +0 -1
- package/dist/engine/index.js +0 -18
- package/dist/engine/index.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -2
- package/dist/hooks/index.js.map +0 -1
- package/dist/persona/index.d.ts +0 -5
- package/dist/persona/index.d.ts.map +0 -1
- package/dist/persona/index.js +0 -4
- package/dist/persona/index.js.map +0 -1
- package/dist/vault/vault-interfaces.d.ts +0 -153
- package/dist/vault/vault-interfaces.d.ts.map +0 -1
- package/dist/vault/vault-interfaces.js +0 -2
- package/dist/vault/vault-interfaces.js.map +0 -1
|
@@ -7,6 +7,9 @@ import { createOrchestrateOps } from '../orchestrate-ops.js';
|
|
|
7
7
|
import { createProjectOps } from '../project-ops.js';
|
|
8
8
|
import { createPlaybookOps } from '../playbook-ops.js';
|
|
9
9
|
import { checkForUpdate } from '../../update-check.js';
|
|
10
|
+
import { buildPreflightManifest } from '../preflight.js';
|
|
11
|
+
import { ENGINE_MODULE_MANIFEST } from '../../engine/module-manifest.js';
|
|
12
|
+
import { createTracker, advanceStep, recordEvidence, generateCheckpoint, validateCompletion, persistTracker, loadTracker, } from '../../skills/step-tracker.js';
|
|
10
13
|
export function createOrchestrateFacadeOps(runtime) {
|
|
11
14
|
const { vault, governance, projectRegistry } = runtime;
|
|
12
15
|
return [
|
|
@@ -76,6 +79,55 @@ export function createOrchestrateFacadeOps(runtime) {
|
|
|
76
79
|
catch {
|
|
77
80
|
// package.json not readable — skip update check silently
|
|
78
81
|
}
|
|
82
|
+
// Auto-dream: increment session counter and check gate
|
|
83
|
+
let dreamInfo = null;
|
|
84
|
+
try {
|
|
85
|
+
const { ensureDreamSchema } = await import('../../dream/schema.js');
|
|
86
|
+
const { DreamEngine } = await import('../../dream/dream-engine.js');
|
|
87
|
+
ensureDreamSchema(runtime.vault.getProvider());
|
|
88
|
+
const dreamEngine = new DreamEngine(runtime.vault, runtime.curator);
|
|
89
|
+
dreamEngine.incrementSessionCount();
|
|
90
|
+
const gate = dreamEngine.checkGate();
|
|
91
|
+
dreamInfo = { status: dreamEngine.getStatus(), gate };
|
|
92
|
+
if (gate.eligible) {
|
|
93
|
+
// Fire-and-forget: don't block session_start
|
|
94
|
+
Promise.resolve()
|
|
95
|
+
.then(() => dreamEngine.run())
|
|
96
|
+
.catch(() => {
|
|
97
|
+
/* best-effort */
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
/* dream module not available — skip silently */
|
|
103
|
+
}
|
|
104
|
+
// ─── Pre-flight manifest ───────────────────────────────
|
|
105
|
+
let skills = [];
|
|
106
|
+
try {
|
|
107
|
+
const { discoverSkills } = await import('../../skills/sync-skills.js');
|
|
108
|
+
const agentDir = runtime.config.agentDir;
|
|
109
|
+
const skillsDirs = agentDir ? [join(agentDir, 'skills')] : [];
|
|
110
|
+
skills = discoverSkills(skillsDirs).map((s) => s.name);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Skills discovery is best-effort
|
|
114
|
+
}
|
|
115
|
+
const agentId = runtime.config.agentId;
|
|
116
|
+
const facades = ENGINE_MODULE_MANIFEST.map((m) => ({
|
|
117
|
+
name: `${agentId}_${m.suffix}`,
|
|
118
|
+
ops: m.keyOps.map((op) => ({ name: op, description: m.description })),
|
|
119
|
+
}));
|
|
120
|
+
const executingPlans = runtime.planner.getExecuting().map((p) => ({
|
|
121
|
+
id: p.id,
|
|
122
|
+
objective: p.objective,
|
|
123
|
+
status: p.status,
|
|
124
|
+
}));
|
|
125
|
+
const preflight = buildPreflightManifest({
|
|
126
|
+
facades,
|
|
127
|
+
skills,
|
|
128
|
+
executingPlans,
|
|
129
|
+
vaultStats: stats,
|
|
130
|
+
});
|
|
79
131
|
return {
|
|
80
132
|
project,
|
|
81
133
|
is_new: isNew,
|
|
@@ -91,10 +143,78 @@ export function createOrchestrateFacadeOps(runtime) {
|
|
|
91
143
|
isQuotaWarning: quotaStatus.isWarning,
|
|
92
144
|
expiredThisSession: expired,
|
|
93
145
|
},
|
|
146
|
+
preflight,
|
|
94
147
|
...(stagingWarning ? { stagingWarning } : {}),
|
|
148
|
+
...(dreamInfo ? { dream: dreamInfo } : {}),
|
|
95
149
|
};
|
|
96
150
|
},
|
|
97
151
|
},
|
|
152
|
+
// ─── Skill Step Tracking ──────────────────────────────────────
|
|
153
|
+
{
|
|
154
|
+
name: 'skill_step_start',
|
|
155
|
+
description: 'Create a skill step tracker. Persists initial state to disk and returns the tracker with checkpoint summary.',
|
|
156
|
+
auth: 'write',
|
|
157
|
+
schema: z.object({
|
|
158
|
+
skillName: z.string().describe('Name of the skill being tracked'),
|
|
159
|
+
steps: z
|
|
160
|
+
.array(z.object({
|
|
161
|
+
id: z.string(),
|
|
162
|
+
description: z.string(),
|
|
163
|
+
evidence: z.enum(['tool_called', 'file_exists']),
|
|
164
|
+
}))
|
|
165
|
+
.describe('Ordered steps with evidence requirements'),
|
|
166
|
+
}),
|
|
167
|
+
handler: async (params) => {
|
|
168
|
+
const steps = params.steps.map((s) => ({ id: s.id, description: s.description, evidence: s.evidence }));
|
|
169
|
+
const tracker = createTracker(params.skillName, steps);
|
|
170
|
+
const filePath = persistTracker(tracker);
|
|
171
|
+
const checkpoint = generateCheckpoint(tracker);
|
|
172
|
+
return { tracker, filePath, checkpoint };
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
name: 'skill_step_advance',
|
|
177
|
+
description: 'Record evidence for the current step, advance to the next step, persist state, and return checkpoint summary.',
|
|
178
|
+
auth: 'write',
|
|
179
|
+
schema: z.object({
|
|
180
|
+
runId: z.string().describe('Run ID returned by skill_step_start'),
|
|
181
|
+
stepId: z.string().describe('Step ID to record evidence for'),
|
|
182
|
+
evidence: z.string().describe('Evidence value (tool name or file path)'),
|
|
183
|
+
verified: z.boolean().optional().default(true).describe('Whether evidence is verified'),
|
|
184
|
+
}),
|
|
185
|
+
handler: async (params) => {
|
|
186
|
+
let tracker = loadTracker(params.runId);
|
|
187
|
+
if (!tracker) {
|
|
188
|
+
return { error: `No tracker found for runId: ${params.runId}` };
|
|
189
|
+
}
|
|
190
|
+
tracker = recordEvidence(tracker, params.stepId, params.evidence, params.verified ?? true);
|
|
191
|
+
tracker = advanceStep(tracker);
|
|
192
|
+
const filePath = persistTracker(tracker);
|
|
193
|
+
const checkpoint = generateCheckpoint(tracker);
|
|
194
|
+
return { tracker, filePath, checkpoint };
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
name: 'skill_step_complete',
|
|
199
|
+
description: 'Validate skill completion, persist final state, and return a completion result with any skipped steps.',
|
|
200
|
+
auth: 'write',
|
|
201
|
+
schema: z.object({
|
|
202
|
+
runId: z.string().describe('Run ID returned by skill_step_start'),
|
|
203
|
+
}),
|
|
204
|
+
handler: async (params) => {
|
|
205
|
+
const tracker = loadTracker(params.runId);
|
|
206
|
+
if (!tracker) {
|
|
207
|
+
return { error: `No tracker found for runId: ${params.runId}` };
|
|
208
|
+
}
|
|
209
|
+
const result = validateCompletion(tracker);
|
|
210
|
+
// Mark completed if all steps have evidence
|
|
211
|
+
const finalTracker = result.complete
|
|
212
|
+
? { ...tracker, completedAt: tracker.completedAt ?? new Date().toISOString() }
|
|
213
|
+
: tracker;
|
|
214
|
+
const filePath = persistTracker(finalTracker);
|
|
215
|
+
return { result, tracker: finalTracker, filePath };
|
|
216
|
+
},
|
|
217
|
+
},
|
|
98
218
|
// ─── Satellite ops ───────────────────────────────────────────
|
|
99
219
|
...createOrchestrateOps(runtime),
|
|
100
220
|
...createProjectOps(runtime),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate-facade.js","sourceRoot":"","sources":["../../../src/runtime/facades/orchestrate-facade.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrate-facade.js","sourceRoot":"","sources":["../../../src/runtime/facades/orchestrate-facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/runtime/feature-flags.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/runtime/feature-flags.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAyBD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,QAAQ,CAAC,EAAE,MAAM;IA+B7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKzC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAenF,OAAO,CAAC,OAAO;CAchB"}
|
|
@@ -17,6 +17,10 @@ const BUILT_IN_FLAGS = {
|
|
|
17
17
|
description: 'Sync vault entries to Cognee knowledge graph',
|
|
18
18
|
defaultValue: true,
|
|
19
19
|
},
|
|
20
|
+
'embedding-enabled': {
|
|
21
|
+
description: 'Enable vector embedding provider for hybrid search',
|
|
22
|
+
defaultValue: false,
|
|
23
|
+
},
|
|
20
24
|
};
|
|
21
25
|
export class FeatureFlags {
|
|
22
26
|
flags = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/runtime/feature-flags.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/runtime/feature-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/orchestrate-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"orchestrate-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/orchestrate-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,OAAO,KAAK,EAAE,iBAAiB,EAAoC,MAAM,mBAAmB,CAAC;AAI7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAqDxE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAwD/F;AA6KD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,YAAY,EAAE,GACvB,YAAY,EAAE,CAmoChB"}
|
|
@@ -12,7 +12,7 @@ import fs from 'node:fs';
|
|
|
12
12
|
import path from 'node:path';
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
import { buildPlan } from '../flows/plan-builder.js';
|
|
15
|
-
import { FlowExecutor } from '../flows/executor.js';
|
|
15
|
+
import { FlowExecutor, getPlanRunDir, loadManifest, saveManifest } from '../flows/executor.js';
|
|
16
16
|
import { createDispatcher } from '../flows/dispatch-registry.js';
|
|
17
17
|
import { runEpilogue } from '../flows/epilogue.js';
|
|
18
18
|
import { loadAgentWorkflows, getWorkflowForIntent } from '../workflows/workflow-loader.js';
|
|
@@ -22,7 +22,7 @@ import { detectRationalizations } from '../planning/rationalization-detector.js'
|
|
|
22
22
|
import { ImpactAnalyzer } from '../planning/impact-analyzer.js';
|
|
23
23
|
import { collectGitEvidence } from '../planning/evidence-collector.js';
|
|
24
24
|
import { recordPlanFeedback } from './plan-feedback-helper.js';
|
|
25
|
-
import { analyzeQualitySignals, captureQualitySignals } from './quality-signals.js';
|
|
25
|
+
import { analyzeQualitySignals, captureQualitySignals, buildFixTrailSummary, } from './quality-signals.js';
|
|
26
26
|
// ---------------------------------------------------------------------------
|
|
27
27
|
// Intent detection — keyword-based mapping from prompt to intent
|
|
28
28
|
// ---------------------------------------------------------------------------
|
|
@@ -97,6 +97,12 @@ export function applyWorkflowOverride(plan, override) {
|
|
|
97
97
|
// Update estimated tools count
|
|
98
98
|
plan.estimatedTools = plan.steps.reduce((acc, s) => acc + s.tools.length, 0);
|
|
99
99
|
}
|
|
100
|
+
// Set allowedTools from the merged tool set
|
|
101
|
+
for (const step of plan.steps) {
|
|
102
|
+
if (step.tools.length > 0) {
|
|
103
|
+
step.allowedTools = [...new Set(step.tools)];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
100
106
|
// Add workflow info to warnings for visibility
|
|
101
107
|
plan.warnings.push(`Workflow override "${override.name}" applied (${override.gates.length} gate(s), ${override.tools.length} tool(s)).`);
|
|
102
108
|
}
|
|
@@ -109,9 +115,9 @@ const planStore = new Map();
|
|
|
109
115
|
* If facades are provided, uses the full dispatch registry.
|
|
110
116
|
* Otherwise, falls back to a simple runtime-based dispatcher.
|
|
111
117
|
*/
|
|
112
|
-
function buildDispatch(agentId, runtime, facades) {
|
|
118
|
+
function buildDispatch(agentId, runtime, facades, activePlan) {
|
|
113
119
|
if (facades && facades.length > 0) {
|
|
114
|
-
return createDispatcher(agentId, facades);
|
|
120
|
+
return createDispatcher(agentId, facades, activePlan);
|
|
115
121
|
}
|
|
116
122
|
// Fallback: runtime-based dispatch for known tool patterns
|
|
117
123
|
return async (toolName, params) => {
|
|
@@ -435,10 +441,27 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
435
441
|
timeout: 300_000,
|
|
436
442
|
})) ??
|
|
437
443
|
[];
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
444
|
+
let aggregated;
|
|
445
|
+
let reapedOrphans = [];
|
|
446
|
+
try {
|
|
447
|
+
aggregated = await runtime.subagentDispatcher.dispatch(tasks, {
|
|
448
|
+
parallel: parallelMode ?? true,
|
|
449
|
+
maxConcurrent: maxConcurrentParam ?? 3,
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
finally {
|
|
453
|
+
// Post-dispatch cleanup: reap orphaned subagent processes
|
|
454
|
+
try {
|
|
455
|
+
const reapResult = runtime.subagentDispatcher.reapOrphans();
|
|
456
|
+
if (reapResult.reaped.length > 0) {
|
|
457
|
+
reapedOrphans = reapResult.reaped.map((taskId) => ({ taskId }));
|
|
458
|
+
console.error(`[soleri] Reaped ${reapResult.reaped.length} orphaned subagent(s): ${reapResult.reaped.join(', ')}`);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
catch {
|
|
462
|
+
// Orphan reaping is best-effort — never blocks dispatch result
|
|
463
|
+
}
|
|
464
|
+
}
|
|
442
465
|
// Track in brain session
|
|
443
466
|
const existingSession = brainIntelligence.getSessionByPlanId(planId);
|
|
444
467
|
const session = existingSession && !existingSession.endedAt
|
|
@@ -466,6 +489,7 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
466
489
|
durationMs: aggregated.durationMs,
|
|
467
490
|
totalUsage: aggregated.totalUsage,
|
|
468
491
|
},
|
|
492
|
+
...(reapedOrphans.length > 0 ? { reapedOrphans } : {}),
|
|
469
493
|
...(healthWarning ? { contextHealth: healthWarning } : {}),
|
|
470
494
|
};
|
|
471
495
|
}
|
|
@@ -515,8 +539,17 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
515
539
|
const entry = planStore.get(planId);
|
|
516
540
|
if (entry) {
|
|
517
541
|
// Flow-engine execution path
|
|
518
|
-
const
|
|
519
|
-
|
|
542
|
+
const activePlanRef = {
|
|
543
|
+
steps: entry.plan.steps.map((s) => ({
|
|
544
|
+
id: s.id,
|
|
545
|
+
allowedTools: s.allowedTools,
|
|
546
|
+
status: s.status,
|
|
547
|
+
})),
|
|
548
|
+
deviations: entry.plan.deviations,
|
|
549
|
+
};
|
|
550
|
+
const dispatch = buildDispatch(agentId, runtime, facades, activePlanRef);
|
|
551
|
+
const projectPath = params.projectPath ?? '.';
|
|
552
|
+
const executor = new FlowExecutor(dispatch, projectPath);
|
|
520
553
|
const executionResult = await executor.execute(entry.plan);
|
|
521
554
|
// Store result
|
|
522
555
|
entry.executionResult = executionResult;
|
|
@@ -693,10 +726,11 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
693
726
|
const warnings = [];
|
|
694
727
|
// Evidence-based reconciliation: cross-reference plan tasks against git diff
|
|
695
728
|
let evidenceReport = null;
|
|
696
|
-
if (planObj
|
|
729
|
+
if (planObj) {
|
|
697
730
|
try {
|
|
698
731
|
evidenceReport = collectGitEvidence(planObj, params.projectPath ?? '.', 'main');
|
|
699
732
|
if (evidenceReport.accuracy < 50) {
|
|
733
|
+
console.error(`[soleri] Evidence accuracy ${evidenceReport.accuracy}% — significant drift detected between plan and git state`);
|
|
700
734
|
warnings.push(`Low evidence accuracy (${evidenceReport.accuracy}%) — plan tasks may not match git changes.`);
|
|
701
735
|
}
|
|
702
736
|
}
|
|
@@ -729,6 +763,7 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
729
763
|
};
|
|
730
764
|
}
|
|
731
765
|
// End brain session — runs regardless of plan existence
|
|
766
|
+
const fixTrail = evidenceReport ? buildFixTrailSummary(evidenceReport) : undefined;
|
|
732
767
|
const session = brainIntelligence.lifecycle({
|
|
733
768
|
action: 'end',
|
|
734
769
|
sessionId,
|
|
@@ -736,6 +771,7 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
736
771
|
planOutcome: outcome,
|
|
737
772
|
toolsUsed,
|
|
738
773
|
filesModified,
|
|
774
|
+
...(fixTrail ? { context: `Fix trail: ${fixTrail}` } : {}),
|
|
739
775
|
});
|
|
740
776
|
// Record brain feedback for vault entries referenced in plan decisions
|
|
741
777
|
if (planObj && planObj.decisions) {
|
|
@@ -812,7 +848,7 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
812
848
|
extraction,
|
|
813
849
|
epilogue: epilogueResult,
|
|
814
850
|
...(impactReport ? { impactAnalysis: impactReport } : {}),
|
|
815
|
-
|
|
851
|
+
evidenceReport,
|
|
816
852
|
...(warnings.length > 0 ? { warnings } : {}),
|
|
817
853
|
};
|
|
818
854
|
},
|
|
@@ -1106,6 +1142,104 @@ export function createOrchestrateOps(runtime, facades) {
|
|
|
1106
1142
|
};
|
|
1107
1143
|
},
|
|
1108
1144
|
},
|
|
1145
|
+
// ─── orchestrate_rerun_step ──────────────────────────────────────
|
|
1146
|
+
{
|
|
1147
|
+
name: 'orchestrate_rerun_step',
|
|
1148
|
+
description: 'Re-execute a single plan step without full restart. Marks the target step as invalidated then rerun, ' +
|
|
1149
|
+
'marks downstream steps as stale (or rerun if within cascadeTo range). ' +
|
|
1150
|
+
'Reads and writes the plan-run manifest on disk.',
|
|
1151
|
+
auth: 'write',
|
|
1152
|
+
schema: z.object({
|
|
1153
|
+
planId: z.string().describe('Plan ID'),
|
|
1154
|
+
stepNumber: z.number().describe('0-based step index to re-run'),
|
|
1155
|
+
reason: z.string().describe('Why the step is being re-run'),
|
|
1156
|
+
projectPath: z
|
|
1157
|
+
.string()
|
|
1158
|
+
.optional()
|
|
1159
|
+
.default('.')
|
|
1160
|
+
.describe('Project root (for manifest location)'),
|
|
1161
|
+
cascadeTo: z
|
|
1162
|
+
.number()
|
|
1163
|
+
.optional()
|
|
1164
|
+
.describe('If set, also mark steps up to this index (exclusive) as rerun instead of just stale'),
|
|
1165
|
+
}),
|
|
1166
|
+
handler: async (params) => {
|
|
1167
|
+
const planId = params.planId;
|
|
1168
|
+
const stepNumber = params.stepNumber;
|
|
1169
|
+
const reason = params.reason;
|
|
1170
|
+
const projectPath = params.projectPath;
|
|
1171
|
+
const cascadeTo = params.cascadeTo;
|
|
1172
|
+
const runDir = getPlanRunDir(projectPath, planId);
|
|
1173
|
+
let manifest;
|
|
1174
|
+
try {
|
|
1175
|
+
manifest = loadManifest(runDir, planId);
|
|
1176
|
+
}
|
|
1177
|
+
catch (err) {
|
|
1178
|
+
return { error: `Failed to load manifest: ${err.message}` };
|
|
1179
|
+
}
|
|
1180
|
+
const stepKeys = Object.keys(manifest.steps);
|
|
1181
|
+
if (stepKeys.length === 0 && stepNumber > 0) {
|
|
1182
|
+
return {
|
|
1183
|
+
error: 'No step data in manifest — the plan may not have been executed with persistence enabled.',
|
|
1184
|
+
};
|
|
1185
|
+
}
|
|
1186
|
+
// Find the step key at the target index by checking all steps
|
|
1187
|
+
// Steps are keyed by stepId — we match by position in the plan
|
|
1188
|
+
const allStepIds = Object.keys(manifest.steps);
|
|
1189
|
+
const targetStepId = allStepIds[stepNumber];
|
|
1190
|
+
if (!targetStepId && !manifest.steps[String(stepNumber)]) {
|
|
1191
|
+
return {
|
|
1192
|
+
error: `Step ${stepNumber} not found in manifest. Available steps: ${allStepIds.join(', ') || '(none)'}`,
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
const now = new Date().toISOString();
|
|
1196
|
+
const affected = [];
|
|
1197
|
+
// Mark all steps by their position
|
|
1198
|
+
const sortedStepIds = Object.keys(manifest.steps);
|
|
1199
|
+
for (let i = 0; i < sortedStepIds.length; i++) {
|
|
1200
|
+
const sid = sortedStepIds[i];
|
|
1201
|
+
const state = manifest.steps[sid];
|
|
1202
|
+
if (i === stepNumber) {
|
|
1203
|
+
// Target step: invalidated → rerun
|
|
1204
|
+
state.status = 'rerun';
|
|
1205
|
+
state.rerunCount += 1;
|
|
1206
|
+
state.rerunReason = reason;
|
|
1207
|
+
state.timestamp = now;
|
|
1208
|
+
affected.push({ stepId: sid, status: 'rerun' });
|
|
1209
|
+
}
|
|
1210
|
+
else if (i > stepNumber) {
|
|
1211
|
+
// Downstream step
|
|
1212
|
+
if (cascadeTo !== undefined && i < cascadeTo) {
|
|
1213
|
+
state.status = 'rerun';
|
|
1214
|
+
state.rerunCount += 1;
|
|
1215
|
+
state.rerunReason = `Cascade from step ${stepNumber}: ${reason}`;
|
|
1216
|
+
state.timestamp = now;
|
|
1217
|
+
affected.push({ stepId: sid, status: 'rerun' });
|
|
1218
|
+
}
|
|
1219
|
+
else {
|
|
1220
|
+
state.status = 'stale';
|
|
1221
|
+
state.timestamp = now;
|
|
1222
|
+
affected.push({ stepId: sid, status: 'stale' });
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
manifest.lastRun = now;
|
|
1227
|
+
try {
|
|
1228
|
+
saveManifest(runDir, manifest);
|
|
1229
|
+
}
|
|
1230
|
+
catch (err) {
|
|
1231
|
+
return { error: `Failed to save manifest: ${err.message}` };
|
|
1232
|
+
}
|
|
1233
|
+
return {
|
|
1234
|
+
planId,
|
|
1235
|
+
stepNumber,
|
|
1236
|
+
reason,
|
|
1237
|
+
cascadeTo: cascadeTo ?? null,
|
|
1238
|
+
affected,
|
|
1239
|
+
manifestPath: runDir,
|
|
1240
|
+
};
|
|
1241
|
+
},
|
|
1242
|
+
},
|
|
1109
1243
|
];
|
|
1110
1244
|
}
|
|
1111
1245
|
//# sourceMappingURL=orchestrate-ops.js.map
|