@soleri/core 2.11.0 → 7.0.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/data/flows/build.flow.yaml +128 -0
- package/data/flows/deliver.flow.yaml +110 -0
- package/data/flows/design.flow.yaml +108 -0
- package/data/flows/enhance.flow.yaml +90 -0
- package/data/flows/explore.flow.yaml +84 -0
- package/data/flows/fix.flow.yaml +90 -0
- package/data/flows/plan.flow.yaml +87 -0
- package/data/flows/review.flow.yaml +90 -0
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +10 -0
- package/dist/brain/brain.js.map +1 -1
- package/dist/brain/intelligence.d.ts.map +1 -1
- package/dist/brain/intelligence.js +16 -2
- package/dist/brain/intelligence.js.map +1 -1
- package/dist/capabilities/chain-mapping.d.ts +21 -0
- package/dist/capabilities/chain-mapping.d.ts.map +1 -0
- package/dist/capabilities/chain-mapping.js +86 -0
- package/dist/capabilities/chain-mapping.js.map +1 -0
- package/dist/capabilities/index.d.ts +10 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +8 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/registry.d.ts +95 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +227 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/capabilities/types.d.ts +106 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +12 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/control/intent-router.d.ts.map +1 -1
- package/dist/control/intent-router.js +58 -2
- package/dist/control/intent-router.js.map +1 -1
- package/dist/domain-packs/index.d.ts +8 -0
- package/dist/domain-packs/index.d.ts.map +1 -0
- package/dist/domain-packs/index.js +8 -0
- package/dist/domain-packs/index.js.map +1 -0
- package/dist/domain-packs/inject-rules.d.ts +24 -0
- package/dist/domain-packs/inject-rules.d.ts.map +1 -0
- package/dist/domain-packs/inject-rules.js +65 -0
- package/dist/domain-packs/inject-rules.js.map +1 -0
- package/dist/domain-packs/knowledge-installer.d.ts +27 -0
- package/dist/domain-packs/knowledge-installer.d.ts.map +1 -0
- package/dist/domain-packs/knowledge-installer.js +89 -0
- package/dist/domain-packs/knowledge-installer.js.map +1 -0
- package/dist/domain-packs/loader.d.ts +28 -0
- package/dist/domain-packs/loader.d.ts.map +1 -0
- package/dist/domain-packs/loader.js +105 -0
- package/dist/domain-packs/loader.js.map +1 -0
- package/dist/domain-packs/pack-runtime.d.ts +80 -0
- package/dist/domain-packs/pack-runtime.d.ts.map +1 -0
- package/dist/domain-packs/pack-runtime.js +36 -0
- package/dist/domain-packs/pack-runtime.js.map +1 -0
- package/dist/domain-packs/skills-installer.d.ts +21 -0
- package/dist/domain-packs/skills-installer.d.ts.map +1 -0
- package/dist/domain-packs/skills-installer.js +38 -0
- package/dist/domain-packs/skills-installer.js.map +1 -0
- package/dist/domain-packs/token-resolver.d.ts +37 -0
- package/dist/domain-packs/token-resolver.d.ts.map +1 -0
- package/dist/domain-packs/token-resolver.js +109 -0
- package/dist/domain-packs/token-resolver.js.map +1 -0
- package/dist/domain-packs/types.d.ts +91 -0
- package/dist/domain-packs/types.d.ts.map +1 -0
- package/dist/domain-packs/types.js +122 -0
- package/dist/domain-packs/types.js.map +1 -0
- package/dist/engine/bin/soleri-engine.d.ts +12 -0
- package/dist/engine/bin/soleri-engine.d.ts.map +1 -0
- package/dist/engine/bin/soleri-engine.js +183 -0
- package/dist/engine/bin/soleri-engine.js.map +1 -0
- package/dist/engine/core-ops.d.ts +27 -0
- package/dist/engine/core-ops.d.ts.map +1 -0
- package/dist/engine/core-ops.js +159 -0
- package/dist/engine/core-ops.js.map +1 -0
- package/dist/engine/index.d.ts +19 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +17 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/register-engine.d.ts +54 -0
- package/dist/engine/register-engine.d.ts.map +1 -0
- package/dist/engine/register-engine.js +270 -0
- package/dist/engine/register-engine.js.map +1 -0
- package/dist/engine/test-helpers.d.ts +30 -0
- package/dist/engine/test-helpers.d.ts.map +1 -0
- package/dist/engine/test-helpers.js +59 -0
- package/dist/engine/test-helpers.js.map +1 -0
- package/dist/flows/context-router.d.ts +39 -0
- package/dist/flows/context-router.d.ts.map +1 -0
- package/dist/flows/context-router.js +206 -0
- package/dist/flows/context-router.js.map +1 -0
- package/dist/flows/dispatch-registry.d.ts +24 -0
- package/dist/flows/dispatch-registry.d.ts.map +1 -0
- package/dist/flows/dispatch-registry.js +70 -0
- package/dist/flows/dispatch-registry.js.map +1 -0
- package/dist/flows/epilogue.d.ts +24 -0
- package/dist/flows/epilogue.d.ts.map +1 -0
- package/dist/flows/epilogue.js +52 -0
- package/dist/flows/epilogue.js.map +1 -0
- package/dist/flows/executor.d.ts +25 -0
- package/dist/flows/executor.d.ts.map +1 -0
- package/dist/flows/executor.js +153 -0
- package/dist/flows/executor.js.map +1 -0
- package/dist/flows/gate-evaluator.d.ts +26 -0
- package/dist/flows/gate-evaluator.d.ts.map +1 -0
- package/dist/flows/gate-evaluator.js +162 -0
- package/dist/flows/gate-evaluator.js.map +1 -0
- package/dist/flows/index.d.ts +14 -0
- package/dist/flows/index.d.ts.map +1 -0
- package/dist/flows/index.js +20 -0
- package/dist/flows/index.js.map +1 -0
- package/dist/flows/loader.d.ts +17 -0
- package/dist/flows/loader.d.ts.map +1 -0
- package/dist/flows/loader.js +61 -0
- package/dist/flows/loader.js.map +1 -0
- package/dist/flows/plan-builder.d.ts +40 -0
- package/dist/flows/plan-builder.d.ts.map +1 -0
- package/dist/flows/plan-builder.js +213 -0
- package/dist/flows/plan-builder.js.map +1 -0
- package/dist/flows/probes.d.ts +11 -0
- package/dist/flows/probes.d.ts.map +1 -0
- package/dist/flows/probes.js +62 -0
- package/dist/flows/probes.js.map +1 -0
- package/dist/flows/types.d.ts +950 -0
- package/dist/flows/types.d.ts.map +1 -0
- package/dist/flows/types.js +105 -0
- package/dist/flows/types.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/intelligence/loader.d.ts +19 -0
- package/dist/intelligence/loader.d.ts.map +1 -1
- package/dist/intelligence/loader.js +86 -5
- package/dist/intelligence/loader.js.map +1 -1
- package/dist/intelligence/types.d.ts +1 -0
- package/dist/intelligence/types.d.ts.map +1 -1
- package/dist/packs/types.d.ts +58 -19
- package/dist/packs/types.d.ts.map +1 -1
- package/dist/packs/types.js +14 -0
- package/dist/packs/types.js.map +1 -1
- package/dist/playbooks/generic/onboarding.d.ts +9 -0
- package/dist/playbooks/generic/onboarding.d.ts.map +1 -0
- package/dist/playbooks/generic/onboarding.js +74 -0
- package/dist/playbooks/generic/onboarding.js.map +1 -0
- package/dist/playbooks/playbook-registry.d.ts.map +1 -1
- package/dist/playbooks/playbook-registry.js +2 -0
- package/dist/playbooks/playbook-registry.js.map +1 -1
- package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
- package/dist/runtime/admin-extra-ops.js +15 -9
- package/dist/runtime/admin-extra-ops.js.map +1 -1
- package/dist/runtime/admin-ops.js +4 -4
- package/dist/runtime/admin-ops.js.map +1 -1
- package/dist/runtime/capture-ops.d.ts.map +1 -1
- package/dist/runtime/capture-ops.js +33 -1
- package/dist/runtime/capture-ops.js.map +1 -1
- package/dist/runtime/domain-ops.d.ts +21 -5
- package/dist/runtime/domain-ops.d.ts.map +1 -1
- package/dist/runtime/domain-ops.js +85 -8
- package/dist/runtime/domain-ops.js.map +1 -1
- package/dist/runtime/facades/cognee-facade.d.ts.map +1 -1
- package/dist/runtime/facades/cognee-facade.js +3 -1
- package/dist/runtime/facades/cognee-facade.js.map +1 -1
- package/dist/runtime/facades/index.d.ts.map +1 -1
- package/dist/runtime/facades/index.js +10 -6
- package/dist/runtime/facades/index.js.map +1 -1
- package/dist/runtime/facades/vault-facade.d.ts.map +1 -1
- package/dist/runtime/facades/vault-facade.js +2 -0
- package/dist/runtime/facades/vault-facade.js.map +1 -1
- package/dist/runtime/orchestrate-ops.d.ts +8 -7
- package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
- package/dist/runtime/orchestrate-ops.js +227 -58
- package/dist/runtime/orchestrate-ops.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +23 -17
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/types.d.ts +6 -2
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/vault-linking-ops.d.ts +13 -0
- package/dist/runtime/vault-linking-ops.d.ts.map +1 -0
- package/dist/runtime/vault-linking-ops.js +367 -0
- package/dist/runtime/vault-linking-ops.js.map +1 -0
- package/dist/vault/linking.d.ts +46 -0
- package/dist/vault/linking.d.ts.map +1 -0
- package/dist/vault/linking.js +275 -0
- package/dist/vault/linking.js.map +1 -0
- package/dist/vault/vault-types.d.ts +37 -0
- package/dist/vault/vault-types.d.ts.map +1 -1
- package/dist/vault/vault.d.ts +12 -0
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +85 -6
- package/dist/vault/vault.js.map +1 -1
- package/package.json +4 -1
- package/src/__tests__/admin-extra-ops.test.ts +1 -1
- package/src/__tests__/admin-ops.test.ts +2 -1
- package/src/__tests__/cognee-client-gaps.test.ts +470 -0
- package/src/__tests__/cognee-hybrid-search.test.ts +478 -0
- package/src/__tests__/cognee-sync-manager-deep.test.ts +630 -0
- package/src/__tests__/cognee-sync-manager.test.ts +1 -0
- package/src/__tests__/core-ops.test.ts +9 -61
- package/src/__tests__/domain-packs.test.ts +421 -0
- package/src/__tests__/flows.test.ts +604 -0
- package/src/__tests__/playbook-registry.test.ts +2 -2
- package/src/__tests__/playbook-seeder.test.ts +8 -8
- package/src/__tests__/playbook.test.ts +5 -5
- package/src/__tests__/token-resolver.test.ts +79 -0
- package/src/brain/brain.ts +12 -0
- package/src/brain/intelligence.ts +21 -2
- package/src/capabilities/chain-mapping.ts +93 -0
- package/src/capabilities/index.ts +21 -0
- package/src/capabilities/registry.ts +290 -0
- package/src/capabilities/types.ts +143 -0
- package/src/control/intent-router.ts +46 -2
- package/src/domain-packs/index.ts +27 -0
- package/src/domain-packs/inject-rules.ts +74 -0
- package/src/domain-packs/knowledge-installer.ts +116 -0
- package/src/domain-packs/loader.ts +124 -0
- package/src/domain-packs/pack-runtime.ts +99 -0
- package/src/domain-packs/skills-installer.ts +56 -0
- package/src/domain-packs/token-resolver.ts +126 -0
- package/src/domain-packs/types.ts +229 -0
- package/src/engine/__tests__/register-engine.test.ts +104 -0
- package/src/engine/bin/soleri-engine.ts +217 -0
- package/src/engine/core-ops.ts +178 -0
- package/src/engine/index.ts +19 -0
- package/src/engine/register-engine.ts +385 -0
- package/src/engine/test-helpers.ts +83 -0
- package/src/flows/context-router.ts +257 -0
- package/src/flows/dispatch-registry.ts +80 -0
- package/src/flows/epilogue.ts +65 -0
- package/src/flows/executor.ts +182 -0
- package/src/flows/gate-evaluator.ts +171 -0
- package/src/flows/index.ts +52 -0
- package/src/flows/loader.ts +63 -0
- package/src/flows/plan-builder.ts +250 -0
- package/src/flows/probes.ts +70 -0
- package/src/flows/types.ts +217 -0
- package/src/index.ts +68 -1
- package/src/intelligence/loader.ts +96 -5
- package/src/intelligence/types.ts +1 -0
- package/src/packs/types.ts +19 -0
- package/src/playbooks/generic/onboarding.ts +79 -0
- package/src/playbooks/playbook-registry.ts +2 -0
- package/src/runtime/admin-extra-ops.ts +14 -8
- package/src/runtime/admin-ops.ts +4 -4
- package/src/runtime/capture-ops.ts +40 -1
- package/src/runtime/domain-ops.ts +92 -7
- package/src/runtime/facades/cognee-facade.ts +3 -1
- package/src/runtime/facades/index.ts +12 -6
- package/src/runtime/facades/vault-facade.ts +2 -0
- package/src/runtime/orchestrate-ops.ts +271 -62
- package/src/runtime/runtime.ts +27 -18
- package/src/runtime/types.ts +6 -2
- package/src/runtime/vault-linking-ops.ts +454 -0
- package/src/vault/linking.ts +333 -0
- package/src/vault/vault-types.ts +46 -0
- package/src/vault/vault.ts +94 -7
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context-sensitive chain routing — the same intent routes to different chain
|
|
3
|
+
* sequences depending on what's being built/fixed/reviewed.
|
|
4
|
+
*
|
|
5
|
+
* Building a Button follows a different workflow than building a Page layout.
|
|
6
|
+
*/
|
|
7
|
+
import type { PlanStep } from './types.js';
|
|
8
|
+
export interface ContextOverride {
|
|
9
|
+
/** Pattern to match against prompt or entities */
|
|
10
|
+
match: RegExp;
|
|
11
|
+
/** Context label */
|
|
12
|
+
context: string;
|
|
13
|
+
/** Chain substitutions: original chain → replacement chain */
|
|
14
|
+
chainOverrides?: Record<string, string>;
|
|
15
|
+
/** Additional chains to inject before specific steps */
|
|
16
|
+
injectBefore?: Record<string, string[]>;
|
|
17
|
+
/** Additional chains to inject after specific steps */
|
|
18
|
+
injectAfter?: Record<string, string[]>;
|
|
19
|
+
/** Steps to skip in this context */
|
|
20
|
+
skipSteps?: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Detect which contexts apply to a prompt and entity set.
|
|
24
|
+
* Returns an array of matching context labels.
|
|
25
|
+
*/
|
|
26
|
+
export declare function detectContext(prompt: string, entities: {
|
|
27
|
+
components: string[];
|
|
28
|
+
actions: string[];
|
|
29
|
+
}): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Apply context overrides to a set of plan steps: chain substitutions,
|
|
32
|
+
* injections (before/after), and step skipping.
|
|
33
|
+
*/
|
|
34
|
+
export declare function applyContextOverrides(steps: PlanStep[], contexts: string[], flowId: string, agentId?: string): PlanStep[];
|
|
35
|
+
/**
|
|
36
|
+
* Get all registered context overrides for a flow (useful for introspection).
|
|
37
|
+
*/
|
|
38
|
+
export declare function getFlowOverrides(flowId: string): ContextOverride[];
|
|
39
|
+
//# sourceMappingURL=context-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-router.d.ts","sourceRoot":"","sources":["../../src/flows/context-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAOtD,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAwFD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GACpD,MAAM,EAAE,CAcV;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAgB,GACxB,QAAQ,EAAE,CAwEZ;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAElE"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context-sensitive chain routing — the same intent routes to different chain
|
|
3
|
+
* sequences depending on what's being built/fixed/reviewed.
|
|
4
|
+
*
|
|
5
|
+
* Building a Button follows a different workflow than building a Page layout.
|
|
6
|
+
*/
|
|
7
|
+
import { chainToToolName, chainToRequires } from './plan-builder.js';
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Context override definitions
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
const BUILD_OVERRIDES = [
|
|
12
|
+
{
|
|
13
|
+
match: /\b(button|icon|badge|chip|tag|pill)\b/i,
|
|
14
|
+
context: 'small-component',
|
|
15
|
+
skipSteps: ['get-architecture'],
|
|
16
|
+
injectBefore: {
|
|
17
|
+
validate: ['button-semantics-check'],
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
match: /\b(page|layout|dashboard|screen|view)\b/i,
|
|
22
|
+
context: 'large-component',
|
|
23
|
+
injectBefore: {
|
|
24
|
+
validate: ['responsive-patterns'],
|
|
25
|
+
},
|
|
26
|
+
injectAfter: {
|
|
27
|
+
validate: ['performance-check'],
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
match: /\b(form|input|select|textarea|checkbox|radio|switch|dropdown)\b/i,
|
|
32
|
+
context: 'form-component',
|
|
33
|
+
injectBefore: {
|
|
34
|
+
validate: ['defensive-design', 'accessibility-precheck'],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
match: /\b(modal|dialog|sheet|drawer|popover|overlay|tooltip)\b/i,
|
|
39
|
+
context: 'container-component',
|
|
40
|
+
injectBefore: {
|
|
41
|
+
validate: ['container-pattern-check', 'dialog-patterns'],
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
const FIX_OVERRIDES = [
|
|
46
|
+
{
|
|
47
|
+
match: /\b(styl(e|ing)|color|token|theme|palette|css)\b/i,
|
|
48
|
+
context: 'design-fix',
|
|
49
|
+
injectBefore: {
|
|
50
|
+
validate: ['contrast-check', 'token-validation'],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
match: /\b(accessib|a11y|aria|screen.?reader|keyboard|focus)\b/i,
|
|
55
|
+
context: 'a11y-fix',
|
|
56
|
+
injectBefore: {
|
|
57
|
+
validate: ['accessibility-audit'],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
const REVIEW_OVERRIDES = [
|
|
62
|
+
{
|
|
63
|
+
match: /\b(pr|pull.?request|diff|merge)\b/i,
|
|
64
|
+
context: 'pr-review',
|
|
65
|
+
injectAfter: {
|
|
66
|
+
'check-rules': ['review-pr-design'],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
match: /\b(architecture|import|dependency|structure)\b/i,
|
|
71
|
+
context: 'architecture-review',
|
|
72
|
+
injectAfter: {
|
|
73
|
+
'check-rules': ['check-architecture'],
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
/**
|
|
78
|
+
* Registry mapping flow IDs to their context overrides.
|
|
79
|
+
*/
|
|
80
|
+
const FLOW_OVERRIDES = {
|
|
81
|
+
'BUILD-flow': BUILD_OVERRIDES,
|
|
82
|
+
'FIX-flow': FIX_OVERRIDES,
|
|
83
|
+
'REVIEW-flow': REVIEW_OVERRIDES,
|
|
84
|
+
};
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
// Public API
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
/**
|
|
89
|
+
* Detect which contexts apply to a prompt and entity set.
|
|
90
|
+
* Returns an array of matching context labels.
|
|
91
|
+
*/
|
|
92
|
+
export function detectContext(prompt, entities) {
|
|
93
|
+
const contexts = [];
|
|
94
|
+
const searchText = [prompt, ...entities.components, ...entities.actions].join(' ');
|
|
95
|
+
// Check all flow overrides — a prompt might match contexts across flows
|
|
96
|
+
for (const overrides of Object.values(FLOW_OVERRIDES)) {
|
|
97
|
+
for (const override of overrides) {
|
|
98
|
+
if (override.match.test(searchText) && !contexts.includes(override.context)) {
|
|
99
|
+
contexts.push(override.context);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return contexts;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Apply context overrides to a set of plan steps: chain substitutions,
|
|
107
|
+
* injections (before/after), and step skipping.
|
|
108
|
+
*/
|
|
109
|
+
export function applyContextOverrides(steps, contexts, flowId, agentId = 'agent') {
|
|
110
|
+
const overrides = FLOW_OVERRIDES[flowId];
|
|
111
|
+
if (!overrides || contexts.length === 0)
|
|
112
|
+
return steps;
|
|
113
|
+
// Collect active overrides for the detected contexts
|
|
114
|
+
const active = overrides.filter((o) => contexts.includes(o.context));
|
|
115
|
+
if (active.length === 0)
|
|
116
|
+
return steps;
|
|
117
|
+
// Aggregate all skip, inject-before, inject-after, and chain overrides
|
|
118
|
+
const skipSet = new Set();
|
|
119
|
+
const injectBefore = new Map();
|
|
120
|
+
const injectAfter = new Map();
|
|
121
|
+
const chainSubs = new Map();
|
|
122
|
+
for (const ov of active) {
|
|
123
|
+
if (ov.skipSteps)
|
|
124
|
+
ov.skipSteps.forEach((s) => skipSet.add(s));
|
|
125
|
+
if (ov.injectBefore) {
|
|
126
|
+
for (const [stepId, chains] of Object.entries(ov.injectBefore)) {
|
|
127
|
+
const existing = injectBefore.get(stepId) ?? [];
|
|
128
|
+
injectBefore.set(stepId, [...existing, ...chains]);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (ov.injectAfter) {
|
|
132
|
+
for (const [stepId, chains] of Object.entries(ov.injectAfter)) {
|
|
133
|
+
const existing = injectAfter.get(stepId) ?? [];
|
|
134
|
+
injectAfter.set(stepId, [...existing, ...chains]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (ov.chainOverrides) {
|
|
138
|
+
for (const [from, to] of Object.entries(ov.chainOverrides)) {
|
|
139
|
+
chainSubs.set(from, to);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const result = [];
|
|
144
|
+
for (const step of steps) {
|
|
145
|
+
// 1. Skip steps
|
|
146
|
+
if (skipSet.has(step.id))
|
|
147
|
+
continue;
|
|
148
|
+
// 2. Inject before
|
|
149
|
+
const beforeChains = injectBefore.get(step.id);
|
|
150
|
+
if (beforeChains) {
|
|
151
|
+
result.push(buildInjectedStep(step.id, 'before', beforeChains, agentId));
|
|
152
|
+
}
|
|
153
|
+
// 3. Apply chain substitutions to existing step
|
|
154
|
+
let processed = step;
|
|
155
|
+
if (chainSubs.size > 0) {
|
|
156
|
+
const newTools = step.tools.map((tool) => {
|
|
157
|
+
for (const [from, to] of chainSubs) {
|
|
158
|
+
const fromTool = chainToToolName(from, agentId);
|
|
159
|
+
if (tool === fromTool)
|
|
160
|
+
return chainToToolName(to, agentId);
|
|
161
|
+
}
|
|
162
|
+
return tool;
|
|
163
|
+
});
|
|
164
|
+
if (newTools.some((t, i) => t !== step.tools[i])) {
|
|
165
|
+
processed = { ...step, tools: newTools };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
result.push(processed);
|
|
169
|
+
// 4. Inject after
|
|
170
|
+
const afterChains = injectAfter.get(step.id);
|
|
171
|
+
if (afterChains) {
|
|
172
|
+
result.push(buildInjectedStep(step.id, 'after', afterChains, agentId));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get all registered context overrides for a flow (useful for introspection).
|
|
179
|
+
*/
|
|
180
|
+
export function getFlowOverrides(flowId) {
|
|
181
|
+
return FLOW_OVERRIDES[flowId] ?? [];
|
|
182
|
+
}
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
184
|
+
// Helpers
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
/**
|
|
187
|
+
* Build a synthetic PlanStep from injected chains.
|
|
188
|
+
*/
|
|
189
|
+
function buildInjectedStep(anchorStepId, position, chains, agentId) {
|
|
190
|
+
const tools = chains.map((c) => chainToToolName(c, agentId));
|
|
191
|
+
const requires = [];
|
|
192
|
+
for (const chain of chains) {
|
|
193
|
+
const req = chainToRequires(chain);
|
|
194
|
+
if (req && !requires.includes(req))
|
|
195
|
+
requires.push(req);
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
id: `ctx-${position}-${anchorStepId}`,
|
|
199
|
+
name: `Context: ${chains.join(', ')} (${position} ${anchorStepId})`,
|
|
200
|
+
tools,
|
|
201
|
+
parallel: chains.length > 1,
|
|
202
|
+
requires,
|
|
203
|
+
status: 'pending',
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=context-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-router.js","sourceRoot":"","sources":["../../src/flows/context-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatch registry — maps tool names to real facade op handlers.
|
|
3
|
+
*
|
|
4
|
+
* Tool names follow the convention: `{agentId}_{facadeName}_{opName}`
|
|
5
|
+
* e.g. "myagent_vault_search" → facade "myagent_vault", op "search".
|
|
6
|
+
*/
|
|
7
|
+
import type { FacadeConfig } from '../facades/types.js';
|
|
8
|
+
type DispatchResult = {
|
|
9
|
+
tool: string;
|
|
10
|
+
status: string;
|
|
11
|
+
data?: unknown;
|
|
12
|
+
error?: string;
|
|
13
|
+
};
|
|
14
|
+
type DispatchFn = (toolName: string, params: Record<string, unknown>) => Promise<DispatchResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Create a dispatcher function that routes tool calls to the correct facade op.
|
|
17
|
+
*
|
|
18
|
+
* @param agentId - Agent identifier prefix (e.g. "myagent")
|
|
19
|
+
* @param facades - Array of registered facade configs
|
|
20
|
+
* @returns A dispatch function that takes (toolName, params) and calls the matching handler
|
|
21
|
+
*/
|
|
22
|
+
export declare function createDispatcher(agentId: string, facades: FacadeConfig[]): DispatchFn;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=dispatch-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-registry.d.ts","sourceRoot":"","sources":["../../src/flows/dispatch-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,KAAK,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEjG;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,UAAU,CA4DrF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatch registry — maps tool names to real facade op handlers.
|
|
3
|
+
*
|
|
4
|
+
* Tool names follow the convention: `{agentId}_{facadeName}_{opName}`
|
|
5
|
+
* e.g. "myagent_vault_search" → facade "myagent_vault", op "search".
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Create a dispatcher function that routes tool calls to the correct facade op.
|
|
9
|
+
*
|
|
10
|
+
* @param agentId - Agent identifier prefix (e.g. "myagent")
|
|
11
|
+
* @param facades - Array of registered facade configs
|
|
12
|
+
* @returns A dispatch function that takes (toolName, params) and calls the matching handler
|
|
13
|
+
*/
|
|
14
|
+
export function createDispatcher(agentId, facades) {
|
|
15
|
+
// Build a lookup map: facadeName → { opName → handler }
|
|
16
|
+
const facadeMap = new Map();
|
|
17
|
+
for (const facade of facades) {
|
|
18
|
+
facadeMap.set(facade.name, facade);
|
|
19
|
+
}
|
|
20
|
+
return async (toolName, params) => {
|
|
21
|
+
const prefix = `${agentId}_`;
|
|
22
|
+
// Strip agent prefix if present
|
|
23
|
+
const unprefixed = toolName.startsWith(prefix) ? toolName.slice(prefix.length) : toolName;
|
|
24
|
+
// Try progressively longer facade name prefixes.
|
|
25
|
+
// E.g. for "vault_extra_search": try "vault_extra_search", "vault_extra", "vault"
|
|
26
|
+
const parts = unprefixed.split('_');
|
|
27
|
+
for (let splitAt = parts.length - 1; splitAt >= 1; splitAt--) {
|
|
28
|
+
const facadeSuffix = parts.slice(0, splitAt).join('_');
|
|
29
|
+
const opName = parts.slice(splitAt).join('_');
|
|
30
|
+
const facadeFullName = `${prefix}${facadeSuffix}`;
|
|
31
|
+
const facade = facadeMap.get(facadeFullName);
|
|
32
|
+
if (!facade)
|
|
33
|
+
continue;
|
|
34
|
+
const op = facade.ops.find((o) => o.name === opName);
|
|
35
|
+
if (!op)
|
|
36
|
+
continue;
|
|
37
|
+
try {
|
|
38
|
+
const result = await op.handler(params);
|
|
39
|
+
return { tool: toolName, status: 'ok', data: result };
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
return {
|
|
43
|
+
tool: toolName,
|
|
44
|
+
status: 'error',
|
|
45
|
+
error: err instanceof Error ? err.message : String(err),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Also try matching the full unprefixed name as a facade with "op" from params
|
|
50
|
+
const facade = facadeMap.get(`${prefix}${unprefixed}`);
|
|
51
|
+
if (facade && params.op && typeof params.op === 'string') {
|
|
52
|
+
const op = facade.ops.find((o) => o.name === params.op);
|
|
53
|
+
if (op) {
|
|
54
|
+
try {
|
|
55
|
+
const result = await op.handler(params);
|
|
56
|
+
return { tool: toolName, status: 'ok', data: result };
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
return {
|
|
60
|
+
tool: toolName,
|
|
61
|
+
status: 'error',
|
|
62
|
+
error: err instanceof Error ? err.message : String(err),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { tool: toolName, status: 'unregistered' };
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=dispatch-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-registry.js","sourceRoot":"","sources":["../../src/flows/dispatch-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Epilogue — post-execution cleanup: capture knowledge and session summary.
|
|
3
|
+
* All operations are resilient (errors are caught, never propagated).
|
|
4
|
+
*/
|
|
5
|
+
import type { ProbeResults } from './types.js';
|
|
6
|
+
type DispatchFn = (toolName: string, params: Record<string, unknown>) => Promise<{
|
|
7
|
+
tool: string;
|
|
8
|
+
status: string;
|
|
9
|
+
data?: unknown;
|
|
10
|
+
error?: string;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Run post-execution epilogue steps.
|
|
14
|
+
* - Captures knowledge to vault (if available)
|
|
15
|
+
* - Captures session summary (if session store available)
|
|
16
|
+
*
|
|
17
|
+
* @returns Whether anything was captured and an optional session ID.
|
|
18
|
+
*/
|
|
19
|
+
export declare function runEpilogue(dispatch: DispatchFn, probes: ProbeResults, projectPath: string, summary: string): Promise<{
|
|
20
|
+
captured: boolean;
|
|
21
|
+
sessionId?: string;
|
|
22
|
+
}>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=epilogue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epilogue.d.ts","sourceRoot":"","sources":["../../src/flows/epilogue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,KAAK,UAAU,GAAG,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/E;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwCpD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Epilogue — post-execution cleanup: capture knowledge and session summary.
|
|
3
|
+
* All operations are resilient (errors are caught, never propagated).
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Run post-execution epilogue steps.
|
|
7
|
+
* - Captures knowledge to vault (if available)
|
|
8
|
+
* - Captures session summary (if session store available)
|
|
9
|
+
*
|
|
10
|
+
* @returns Whether anything was captured and an optional session ID.
|
|
11
|
+
*/
|
|
12
|
+
export async function runEpilogue(dispatch, probes, projectPath, summary) {
|
|
13
|
+
let captured = false;
|
|
14
|
+
let sessionId;
|
|
15
|
+
// Capture knowledge to vault
|
|
16
|
+
if (probes.vault) {
|
|
17
|
+
try {
|
|
18
|
+
await dispatch('capture_knowledge', {
|
|
19
|
+
title: 'Flow execution summary',
|
|
20
|
+
content: summary,
|
|
21
|
+
type: 'workflow',
|
|
22
|
+
tags: ['flow-engine', 'auto-captured'],
|
|
23
|
+
projectPath,
|
|
24
|
+
});
|
|
25
|
+
captured = true;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Silently ignore — vault capture is best-effort
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Capture session
|
|
32
|
+
if (probes.sessionStore) {
|
|
33
|
+
try {
|
|
34
|
+
const result = await dispatch('session_capture', {
|
|
35
|
+
summary,
|
|
36
|
+
projectPath,
|
|
37
|
+
});
|
|
38
|
+
captured = true;
|
|
39
|
+
if (result.data && typeof result.data === 'object') {
|
|
40
|
+
const data = result.data;
|
|
41
|
+
if (typeof data.sessionId === 'string') {
|
|
42
|
+
sessionId = data.sessionId;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Silently ignore — session capture is best-effort
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return { captured, sessionId };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=epilogue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epilogue.js","sourceRoot":"","sources":["../../src/flows/epilogue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAoB,EACpB,MAAoB,EACpB,WAAmB,EACnB,OAAe;IAEf,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAA6B,CAAC;IAElC,6BAA6B;IAC7B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,mBAAmB,EAAE;gBAClC,KAAK,EAAE,wBAAwB;gBAC/B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;gBACtC,WAAW;aACZ,CAAC,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE;gBAC/C,OAAO;gBACP,WAAW;aACZ,CAAC,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAA+B,CAAC;gBACpD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACvC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow executor — runs an orchestration plan step-by-step,
|
|
3
|
+
* evaluating gates and handling branching.
|
|
4
|
+
*/
|
|
5
|
+
import type { OrchestrationPlan, ExecutionResult } from './types.js';
|
|
6
|
+
type DispatchFn = (toolName: string, params: Record<string, unknown>) => Promise<{
|
|
7
|
+
tool: string;
|
|
8
|
+
status: string;
|
|
9
|
+
data?: unknown;
|
|
10
|
+
error?: string;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Executes an orchestration plan sequentially (with parallel inner steps).
|
|
14
|
+
*/
|
|
15
|
+
export declare class FlowExecutor {
|
|
16
|
+
private dispatch;
|
|
17
|
+
constructor(dispatch: DispatchFn);
|
|
18
|
+
/**
|
|
19
|
+
* Execute a full orchestration plan. Returns an ExecutionResult
|
|
20
|
+
* summarizing what happened.
|
|
21
|
+
*/
|
|
22
|
+
execute(plan: OrchestrationPlan): Promise<ExecutionResult>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/flows/executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAc,MAAM,YAAY,CAAC;AAMjF,KAAK,UAAU,GAAG,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/E;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;gBAEjB,QAAQ,EAAE,UAAU;IAIhC;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;CAqIjE"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow executor — runs an orchestration plan step-by-step,
|
|
3
|
+
* evaluating gates and handling branching.
|
|
4
|
+
*/
|
|
5
|
+
import { evaluateGate } from './gate-evaluator.js';
|
|
6
|
+
/** Maximum iterations for BRANCH loops to prevent infinite cycles. */
|
|
7
|
+
const MAX_BRANCH_ITERATIONS = 10;
|
|
8
|
+
/**
|
|
9
|
+
* Executes an orchestration plan sequentially (with parallel inner steps).
|
|
10
|
+
*/
|
|
11
|
+
export class FlowExecutor {
|
|
12
|
+
dispatch;
|
|
13
|
+
constructor(dispatch) {
|
|
14
|
+
this.dispatch = dispatch;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Execute a full orchestration plan. Returns an ExecutionResult
|
|
18
|
+
* summarizing what happened.
|
|
19
|
+
*/
|
|
20
|
+
async execute(plan) {
|
|
21
|
+
const startTime = Date.now();
|
|
22
|
+
const stepResults = [];
|
|
23
|
+
const toolsCalled = [];
|
|
24
|
+
let branchIterations = 0;
|
|
25
|
+
let currentIndex = 0;
|
|
26
|
+
while (currentIndex < plan.steps.length) {
|
|
27
|
+
const step = plan.steps[currentIndex];
|
|
28
|
+
const stepStart = Date.now();
|
|
29
|
+
step.status = 'running';
|
|
30
|
+
const toolResults = {};
|
|
31
|
+
try {
|
|
32
|
+
if (step.parallel && step.tools.length > 1) {
|
|
33
|
+
// Execute tools in parallel
|
|
34
|
+
const results = await Promise.allSettled(step.tools.map((tool) => this.dispatch(tool, { stepId: step.id, planId: plan.planId })));
|
|
35
|
+
for (let i = 0; i < step.tools.length; i++) {
|
|
36
|
+
const toolName = step.tools[i];
|
|
37
|
+
const result = results[i];
|
|
38
|
+
if (result.status === 'fulfilled') {
|
|
39
|
+
toolResults[toolName] = result.value;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
toolResults[toolName] = {
|
|
43
|
+
tool: toolName,
|
|
44
|
+
status: 'error',
|
|
45
|
+
error: result.reason instanceof Error ? result.reason.message : String(result.reason),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
toolsCalled.push(toolName);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Execute tools sequentially
|
|
53
|
+
for (const toolName of step.tools) {
|
|
54
|
+
try {
|
|
55
|
+
toolResults[toolName] = await this.dispatch(toolName, {
|
|
56
|
+
stepId: step.id,
|
|
57
|
+
planId: plan.planId,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (_err) {
|
|
61
|
+
toolResults[toolName] = {
|
|
62
|
+
tool: toolName,
|
|
63
|
+
status: 'error',
|
|
64
|
+
error: _err instanceof Error ? _err.message : String(_err),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
toolsCalled.push(toolName);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (_err) {
|
|
72
|
+
// Entire step failed
|
|
73
|
+
const stepResult = {
|
|
74
|
+
stepId: step.id,
|
|
75
|
+
status: 'failed',
|
|
76
|
+
toolResults,
|
|
77
|
+
durationMs: Date.now() - stepStart,
|
|
78
|
+
};
|
|
79
|
+
stepResults.push(stepResult);
|
|
80
|
+
step.status = 'failed';
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
// Evaluate gate
|
|
84
|
+
const flatData = {};
|
|
85
|
+
for (const [key, val] of Object.entries(toolResults)) {
|
|
86
|
+
flatData[key] = val;
|
|
87
|
+
if (val.data && typeof val.data === 'object') {
|
|
88
|
+
Object.assign(flatData, val.data);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const verdict = evaluateGate(step.gate, flatData);
|
|
92
|
+
const stepResult = {
|
|
93
|
+
stepId: step.id,
|
|
94
|
+
status: verdict.passed ? 'passed' : 'failed',
|
|
95
|
+
toolResults,
|
|
96
|
+
durationMs: Date.now() - stepStart,
|
|
97
|
+
};
|
|
98
|
+
if (!verdict.passed || verdict.action !== 'CONTINUE') {
|
|
99
|
+
stepResult.gateResult = {
|
|
100
|
+
action: verdict.action,
|
|
101
|
+
message: verdict.message,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
stepResults.push(stepResult);
|
|
105
|
+
// Handle gate action
|
|
106
|
+
switch (verdict.action) {
|
|
107
|
+
case 'STOP':
|
|
108
|
+
step.status = 'failed';
|
|
109
|
+
// Stop execution
|
|
110
|
+
return buildResult(plan, stepResults, toolsCalled, startTime, 'partial');
|
|
111
|
+
case 'BRANCH': {
|
|
112
|
+
step.status = verdict.passed ? 'passed' : 'gate-paused';
|
|
113
|
+
branchIterations++;
|
|
114
|
+
if (branchIterations >= MAX_BRANCH_ITERATIONS) {
|
|
115
|
+
return buildResult(plan, stepResults, toolsCalled, startTime, 'partial');
|
|
116
|
+
}
|
|
117
|
+
if (verdict.goto) {
|
|
118
|
+
const targetIdx = plan.steps.findIndex((s) => s.id === verdict.goto);
|
|
119
|
+
if (targetIdx >= 0) {
|
|
120
|
+
currentIndex = targetIdx;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// No valid goto — continue to next step
|
|
125
|
+
step.status = 'passed';
|
|
126
|
+
currentIndex++;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'CONTINUE':
|
|
130
|
+
default:
|
|
131
|
+
step.status = verdict.passed ? 'passed' : 'failed';
|
|
132
|
+
currentIndex++;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const allPassed = stepResults.every((r) => r.status === 'passed');
|
|
137
|
+
const anyFailed = stepResults.some((r) => r.status === 'failed');
|
|
138
|
+
const status = allPassed ? 'completed' : anyFailed ? 'partial' : 'completed';
|
|
139
|
+
return buildResult(plan, stepResults, toolsCalled, startTime, status);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function buildResult(plan, stepResults, toolsCalled, startTime, status) {
|
|
143
|
+
return {
|
|
144
|
+
planId: plan.planId,
|
|
145
|
+
status,
|
|
146
|
+
stepsCompleted: stepResults.filter((r) => r.status === 'passed').length,
|
|
147
|
+
totalSteps: plan.steps.length,
|
|
148
|
+
toolsCalled: [...new Set(toolsCalled)],
|
|
149
|
+
durationMs: Date.now() - startTime,
|
|
150
|
+
stepResults,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/flows/executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,sEAAsE;AACtE,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAOjC;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,QAAQ,CAAa;IAE7B,YAAY,QAAoB;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,IAAuB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,OAAO,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAExB,MAAM,WAAW,GAA8B,EAAE,CAAC;YAElD,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3C,4BAA4B;oBAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CACxF,CAAC;oBACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BAClC,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;wBACvC,CAAC;6BAAM,CAAC;4BACN,WAAW,CAAC,QAAQ,CAAC,GAAG;gCACtB,IAAI,EAAE,QAAQ;gCACd,MAAM,EAAE,OAAO;gCACf,KAAK,EACH,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;6BACjF,CAAC;wBACJ,CAAC;wBACD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,6BAA6B;oBAC7B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBAClC,IAAI,CAAC;4BACH,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;gCACpD,MAAM,EAAE,IAAI,CAAC,EAAE;gCACf,MAAM,EAAE,IAAI,CAAC,MAAM;6BACpB,CAAC,CAAC;wBACL,CAAC;wBAAC,OAAO,IAAI,EAAE,CAAC;4BACd,WAAW,CAAC,QAAQ,CAAC,GAAG;gCACtB,IAAI,EAAE,QAAQ;gCACd,MAAM,EAAE,OAAO;gCACf,KAAK,EAAE,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;6BAC3D,CAAC;wBACJ,CAAC;wBACD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;gBACd,qBAAqB;gBACrB,MAAM,UAAU,GAAe;oBAC7B,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,WAAW;oBACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC;gBACF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,MAAM;YACR,CAAC;YAED,gBAAgB;YAChB,MAAM,QAAQ,GAA4B,EAAE,CAAC;YAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBACpB,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAA+B,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElD,MAAM,UAAU,GAAe;gBAC7B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;gBAC5C,WAAW;gBACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACrD,UAAU,CAAC,UAAU,GAAG;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC;YACJ,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,qBAAqB;YACrB,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,MAAM;oBACT,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACvB,iBAAiB;oBACjB,OAAO,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAE3E,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;oBACxD,gBAAgB,EAAE,CAAC;oBACnB,IAAI,gBAAgB,IAAI,qBAAqB,EAAE,CAAC;wBAC9C,OAAO,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC3E,CAAC;oBACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;wBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;wBACrE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;4BACnB,YAAY,GAAG,SAAS,CAAC;4BACzB,SAAS;wBACX,CAAC;oBACH,CAAC;oBACD,wCAAwC;oBACxC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACvB,YAAY,EAAE,CAAC;oBACf,MAAM;gBACR,CAAC;gBAED,KAAK,UAAU,CAAC;gBAChB;oBACE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACnD,YAAY,EAAE,CAAC;oBACf,MAAM;YACV,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QAE7E,OAAO,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;CACF;AAED,SAAS,WAAW,CAClB,IAAuB,EACvB,WAAyB,EACzB,WAAqB,EACrB,SAAiB,EACjB,MAAiC;IAEjC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM;QACN,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QACvE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QAC7B,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QAClC,WAAW;KACZ,CAAC;AACJ,CAAC"}
|