@toolproof-core/lib 1.0.31 → 1.0.33
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/artifacts/artifacts.d.ts +51 -51
- package/dist/artifacts/artifacts.d.ts.map +1 -1
- package/dist/integrations/firebase/createRunnableStrategy.d.ts +2 -2
- package/dist/integrations/firebase/createRunnableStrategy.d.ts.map +1 -1
- package/dist/integrations/firebase/createRunnableStrategy.js +2 -3
- package/dist/integrations/firebase/createRunnableStrategy.js.map +1 -1
- package/dist/integrations/firebase/createStep.d.ts +8 -8
- package/dist/integrations/firebase/createStep.d.ts.map +1 -1
- package/dist/integrations/firebase/createStep.js.map +1 -1
- package/dist/integrations/firebase/firebaseAdminHelpers.d.ts +8 -4
- package/dist/integrations/firebase/firebaseAdminHelpers.d.ts.map +1 -1
- package/dist/integrations/firebase/firebaseAdminHelpers.js.map +1 -1
- package/dist/types/types.d.ts +5 -3
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/bindInputRoleToResource.d.ts +5 -4
- package/dist/utils/bindInputRoleToResource.d.ts.map +1 -1
- package/dist/utils/bindInputRoleToResource.js +15 -65
- package/dist/utils/bindInputRoleToResource.js.map +1 -1
- package/dist/utils/creation/resourceCreation.d.ts +20 -8
- package/dist/utils/creation/resourceCreation.d.ts.map +1 -1
- package/dist/utils/creation/resourceCreation.js +16 -12
- package/dist/utils/creation/resourceCreation.js.map +1 -1
- package/dist/utils/creation/runnableStrategyCreation.d.ts +3 -3
- package/dist/utils/creation/runnableStrategyCreation.d.ts.map +1 -1
- package/dist/utils/creation/runnableStrategyCreation.js +8 -14
- package/dist/utils/creation/runnableStrategyCreation.js.map +1 -1
- package/dist/utils/creation/stepCreation.d.ts +41 -24
- package/dist/utils/creation/stepCreation.d.ts.map +1 -1
- package/dist/utils/creation/stepCreation.js +3 -2
- package/dist/utils/creation/stepCreation.js.map +1 -1
- package/dist/utils/extractData.d.ts +8 -7
- package/dist/utils/extractData.d.ts.map +1 -1
- package/dist/utils/extractData.js +7 -49
- package/dist/utils/extractData.js.map +1 -1
- package/dist/utils/parallelizeSteps.d.ts +3 -2
- package/dist/utils/parallelizeSteps.d.ts.map +1 -1
- package/dist/utils/parallelizeSteps.js +17 -10
- package/dist/utils/parallelizeSteps.js.map +1 -1
- package/dist/utils/resolveResourceChain.d.ts +10 -14
- package/dist/utils/resolveResourceChain.d.ts.map +1 -1
- package/dist/utils/resolveResourceChain.js +12 -20
- package/dist/utils/resolveResourceChain.js.map +1 -1
- package/dist/utils/roleSpec.d.ts +12 -0
- package/dist/utils/roleSpec.d.ts.map +1 -0
- package/dist/utils/roleSpec.js +58 -0
- package/dist/utils/roleSpec.js.map +1 -0
- package/dist/utils/strategyState.d.ts +7 -0
- package/dist/utils/strategyState.d.ts.map +1 -0
- package/dist/utils/strategyState.js +29 -0
- package/dist/utils/strategyState.js.map +1 -0
- package/package.json +3 -3
- package/src/integrations/firebase/createRunnableStrategy.ts +5 -7
- package/src/integrations/firebase/createStep.ts +13 -13
- package/src/integrations/firebase/firebaseAdminHelpers.ts +10 -9
- package/src/types/types.ts +5 -5
- package/src/utils/bindInputRoleToResource.ts +36 -93
- package/src/utils/creation/resourceCreation.ts +54 -36
- package/src/utils/creation/runnableStrategyCreation.ts +16 -30
- package/src/utils/creation/stepCreation.ts +54 -48
- package/src/utils/extractData.ts +37 -79
- package/src/utils/parallelizeSteps.ts +37 -28
- package/src/utils/resolveResourceChain.ts +24 -38
- package/src/utils/roleSpec.ts +80 -0
- package/src/utils/strategyState.ts +56 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runnableStrategyCreation.d.ts","sourceRoot":"","sources":["../../../src/utils/creation/runnableStrategyCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"runnableStrategyCreation.d.ts","sourceRoot":"","sources":["../../../src/utils/creation/runnableStrategyCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACb,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE,CAM/E;AAED,wBAAgB,qBAAqB,CACjC,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAC1B,kBAAkB,EAAE,UAAU,EAC9B,WAAW,EAAE,QAAQ,GACtB,QAAQ,CAOV"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
import { getIndependentThreads } from '../parallelizeSteps.js';
|
|
2
|
+
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
2
3
|
export function getRunnableStrategyThreadGroups(rawStrategy) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export function buildRunnableStrategy(rawStrategy, runnableStrategyId, threadStepGroups, threadIdentities) {
|
|
6
|
-
if (threadStepGroups.length !== threadIdentities.length) {
|
|
7
|
-
throw new Error('buildRunnableStrategy requires one thread id per thread group');
|
|
8
|
-
}
|
|
9
|
-
const stepsByStrategyThread = {};
|
|
10
|
-
for (const [index, group] of threadStepGroups.entries()) {
|
|
11
|
-
const threadId = threadIdentities[index];
|
|
12
|
-
if (!threadId) {
|
|
13
|
-
throw new Error(`Missing thread id for thread group index ${index}`);
|
|
14
|
-
}
|
|
15
|
-
stepsByStrategyThread[threadId] = group;
|
|
4
|
+
if ('steps' in rawStrategy) {
|
|
5
|
+
return getIndependentThreads(rawStrategy.steps, rawStrategy.strategyState);
|
|
16
6
|
}
|
|
7
|
+
return rawStrategy.stepsByThreadIndex;
|
|
8
|
+
}
|
|
9
|
+
export function buildRunnableStrategy(threadStepGroups, runnableStrategyId, rawStrategy) {
|
|
17
10
|
return {
|
|
18
11
|
id: runnableStrategyId,
|
|
19
|
-
|
|
12
|
+
strategyKind: CONSTANTS.Enums.StrategyKind.threaded,
|
|
13
|
+
stepsByThreadIndex: threadStepGroups,
|
|
20
14
|
strategyState: rawStrategy.strategyState,
|
|
21
15
|
};
|
|
22
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runnableStrategyCreation.js","sourceRoot":"","sources":["../../../src/utils/creation/runnableStrategyCreation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runnableStrategyCreation.js","sourceRoot":"","sources":["../../../src/utils/creation/runnableStrategyCreation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,MAAM,UAAU,+BAA+B,CAAC,WAAqB;IACjE,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;QACzB,OAAO,qBAAqB,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,aAAoB,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,WAAW,CAAC,kBAAkB,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,gBAA0B,EAC1B,kBAA8B,EAC9B,WAAqB;IAErB,OAAO;QACH,EAAE,EAAE,kBAAkB;QACtB,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ;QACnD,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,WAAW,CAAC,aAAa;KAC3C,CAAC;AACN,CAAC"}
|
|
@@ -1,34 +1,51 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BranchStep, ForStep, Tool, ToolStep, WhileStep } from '@toolproof-core/schema';
|
|
2
2
|
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
3
|
+
type ToolStepId = string;
|
|
4
|
+
type BranchStepId = string;
|
|
5
|
+
type ForStepId = string;
|
|
6
|
+
type WhileStepId = string;
|
|
7
|
+
type ToolStepWithId = ToolStep & {
|
|
8
|
+
id: ToolStepId;
|
|
9
|
+
};
|
|
10
|
+
type BranchStepWithId = BranchStep & {
|
|
11
|
+
id: BranchStepId;
|
|
12
|
+
};
|
|
13
|
+
type ForStepWithId = ForStep & {
|
|
14
|
+
id: ForStepId;
|
|
15
|
+
};
|
|
16
|
+
type WhileStepWithId = WhileStep & {
|
|
17
|
+
id: WhileStepId;
|
|
18
|
+
};
|
|
3
19
|
export type LoopStepBuildIdentities = {
|
|
4
20
|
stepKind: typeof CONSTANTS.Enums.StepKind.for;
|
|
5
|
-
stepId:
|
|
6
|
-
whatId:
|
|
7
|
-
whenId:
|
|
21
|
+
stepId: ForStepId;
|
|
22
|
+
whatId: ToolStepId;
|
|
23
|
+
whenId: ToolStepId;
|
|
8
24
|
} | {
|
|
9
25
|
stepKind: typeof CONSTANTS.Enums.StepKind.while;
|
|
10
|
-
stepId:
|
|
11
|
-
whatId:
|
|
12
|
-
whenId:
|
|
26
|
+
stepId: WhileStepId;
|
|
27
|
+
whatId: ToolStepId;
|
|
28
|
+
whenId: ToolStepId;
|
|
13
29
|
};
|
|
14
30
|
export type BranchCaseBuildIdentities = {
|
|
15
|
-
whatId:
|
|
16
|
-
whenId:
|
|
31
|
+
whatId: ToolStepId;
|
|
32
|
+
whenId: ToolStepId;
|
|
17
33
|
};
|
|
18
|
-
export declare function buildToolStepFromTool(tool:
|
|
19
|
-
export declare function buildLoopStepFromToolPair(whatTool:
|
|
34
|
+
export declare function buildToolStepFromTool(tool: Tool, id: ToolStepId): ToolStepWithId;
|
|
35
|
+
export declare function buildLoopStepFromToolPair(whatTool: Tool, whenTool: Tool, identities: LoopStepBuildIdentities): ForStep | WhileStep;
|
|
20
36
|
export declare function buildBranchStepFromToolPairs(cases: Array<{
|
|
21
|
-
whatTool:
|
|
22
|
-
whenTool:
|
|
23
|
-
}>, branchId:
|
|
24
|
-
export declare function cloneForStepWithIdentities(forStep:
|
|
25
|
-
stepId:
|
|
26
|
-
whatId:
|
|
27
|
-
whenId:
|
|
28
|
-
}):
|
|
29
|
-
export declare function cloneWhileStepWithIdentities(whileStep:
|
|
30
|
-
stepId:
|
|
31
|
-
whatId:
|
|
32
|
-
whenId:
|
|
33
|
-
}):
|
|
37
|
+
whatTool: Tool;
|
|
38
|
+
whenTool: Tool;
|
|
39
|
+
}>, branchId: BranchStepId, caseIdentities: BranchCaseBuildIdentities[]): BranchStepWithId;
|
|
40
|
+
export declare function cloneForStepWithIdentities(forStep: ForStep, identities: {
|
|
41
|
+
stepId: ForStepId;
|
|
42
|
+
whatId: ToolStepId;
|
|
43
|
+
whenId: ToolStepId;
|
|
44
|
+
}): ForStepWithId;
|
|
45
|
+
export declare function cloneWhileStepWithIdentities(whileStep: WhileStep, identities: {
|
|
46
|
+
stepId: WhileStepId;
|
|
47
|
+
whatId: ToolStepId;
|
|
48
|
+
whenId: ToolStepId;
|
|
49
|
+
}): WhileStepWithId;
|
|
50
|
+
export {};
|
|
34
51
|
//# sourceMappingURL=stepCreation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepCreation.d.ts","sourceRoot":"","sources":["../../../src/utils/creation/stepCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"stepCreation.d.ts","sourceRoot":"","sources":["../../../src/utils/creation/stepCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EAEV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,SAAS,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,KAAK,UAAU,GAAG,MAAM,CAAC;AACzB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,cAAc,GAAG,QAAQ,GAAG;IAAE,EAAE,EAAE,UAAU,CAAA;CAAE,CAAC;AACpD,KAAK,gBAAgB,GAAG,UAAU,GAAG;IAAE,EAAE,EAAE,YAAY,CAAA;CAAE,CAAC;AAC1D,KAAK,aAAa,GAAG,OAAO,GAAG;IAAE,EAAE,EAAE,SAAS,CAAA;CAAE,CAAC;AACjD,KAAK,eAAe,GAAG,SAAS,GAAG;IAAE,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,uBAAuB,GAC7B;IACE,QAAQ,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC9C,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACtB,GACC;IACE,QAAQ,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAChD,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAEN,MAAM,MAAM,yBAAyB,GAAG;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAeF,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,UAAU,GACf,cAAc,CAOhB;AAED,wBAAgB,yBAAyB,CACrC,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,uBAAuB,GACpC,OAAO,GAAG,SAAS,CAiBrB;AAED,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,EAChD,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,yBAAyB,EAAE,GAC5C,gBAAgB,CAwBlB;AAED,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE;IACR,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACtB,GACF,aAAa,CAef;AAED,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE;IACR,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACtB,GACF,eAAe,CAejB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
2
|
+
import { getInputRoleNames, getOutputRoleNames } from '../roleSpec.js';
|
|
2
3
|
function assertNonEmpty(arr, msg) {
|
|
3
4
|
if (arr.length === 0) {
|
|
4
5
|
throw new Error(msg);
|
|
@@ -6,8 +7,8 @@ function assertNonEmpty(arr, msg) {
|
|
|
6
7
|
}
|
|
7
8
|
function getRoleBindingSpec(tool) {
|
|
8
9
|
return {
|
|
9
|
-
inputBindings:
|
|
10
|
-
outputBindings:
|
|
10
|
+
inputBindings: getInputRoleNames(tool),
|
|
11
|
+
outputBindings: getOutputRoleNames(tool),
|
|
11
12
|
};
|
|
12
13
|
}
|
|
13
14
|
export function buildToolStepFromTool(tool, id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepCreation.js","sourceRoot":"","sources":["../../../src/utils/creation/stepCreation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stepCreation.js","sourceRoot":"","sources":["../../../src/utils/creation/stepCreation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
1
|
+
import type { RoleName, Strategy, ToolId, Tool, ToolStep, ResourceId, ResourceTypeId, Resource } from '@toolproof-core/schema';
|
|
2
|
+
import { type ToolRoleDescriptor } from './roleSpec.js';
|
|
3
|
+
export declare function extractToolIdsFromRawStrategy(rawStrategy: Strategy): ToolId[];
|
|
4
|
+
export declare function extractToolStepsFromRawStrategy(rawStrategy: Strategy): ToolStep[];
|
|
5
|
+
export declare function extractRoleMapFromRawStrategy(rawStrategy: Strategy, toolMap: Map<ToolId, Tool>): Map<RoleName, ToolRoleDescriptor>;
|
|
6
|
+
export declare function extractSingleNonErrorOutputTypeId(tool: Tool): ResourceTypeId | null;
|
|
7
|
+
export declare function extractResourceMapForType<TResource extends Resource = Resource>(resourcesByType: Partial<Record<ResourceTypeId, TResource[]>>, resourceTypeId: ResourceTypeId): Map<ResourceId, TResource>;
|
|
7
8
|
export declare function extractIdKeyedNucleusMapForType<TKey extends string = string, TNucleus extends {
|
|
8
9
|
id: string | number | boolean;
|
|
9
10
|
} = {
|
|
10
11
|
id: string | number | boolean;
|
|
11
|
-
}, TResource extends
|
|
12
|
+
}, TResource extends Resource = Resource>(resourcesByType: Partial<Record<ResourceTypeId, TResource[]>>, resourceTypeId: ResourceTypeId): Map<TKey, TNucleus>;
|
|
12
13
|
//# sourceMappingURL=extractData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractData.d.ts","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"extractData.d.ts","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EAER,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,cAAc,EACd,QAAQ,EACX,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAKH,KAAK,kBAAkB,EAC1B,MAAM,eAAe,CAAC;AAGvB,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,EAAE,CAO7E;AAED,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAEjF;AAGD,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAiBlI;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,IAAI,CAQnF;AAID,wBAAgB,yBAAyB,CAAC,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAC3E,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,EAC7D,cAAc,EAAE,cAAc,GAC/B,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAS5B;AAGD,wBAAgB,+BAA+B,CAC3C,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,QAAQ,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,EACtF,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,EAC7D,cAAc,EAAE,cAAc,GAC/B,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAwCrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
2
|
+
import { extractToolStepsFromStrategy, getInputRoleEntries, getOutputRoleEntries, toToolRoleDescriptor, } from './roleSpec.js';
|
|
2
3
|
export function extractToolIdsFromRawStrategy(rawStrategy) {
|
|
3
4
|
const toolSteps = extractToolStepsFromRawStrategy(rawStrategy);
|
|
4
5
|
const ids = new Set();
|
|
@@ -8,44 +9,7 @@ export function extractToolIdsFromRawStrategy(rawStrategy) {
|
|
|
8
9
|
return Array.from(ids);
|
|
9
10
|
}
|
|
10
11
|
export function extractToolStepsFromRawStrategy(rawStrategy) {
|
|
11
|
-
|
|
12
|
-
const seen = new Set();
|
|
13
|
-
const addToolStep = (toolStep) => {
|
|
14
|
-
if (seen.has(toolStep.id)) {
|
|
15
|
-
throw new Error(`Duplicate tool step id encountered: ${toolStep.id}`);
|
|
16
|
-
}
|
|
17
|
-
seen.add(toolStep.id);
|
|
18
|
-
toolSteps.push(toolStep);
|
|
19
|
-
};
|
|
20
|
-
const visitStep = (step) => {
|
|
21
|
-
switch (step.stepKind) {
|
|
22
|
-
case CONSTANTS.Enums.StepKind.tool: {
|
|
23
|
-
addToolStep(step);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
case CONSTANTS.Enums.StepKind.branch: {
|
|
27
|
-
for (const conditional of step.cases) {
|
|
28
|
-
addToolStep(conditional.when);
|
|
29
|
-
addToolStep(conditional.what);
|
|
30
|
-
}
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
case CONSTANTS.Enums.StepKind.while:
|
|
34
|
-
case CONSTANTS.Enums.StepKind.for: {
|
|
35
|
-
addToolStep(step.case.when);
|
|
36
|
-
addToolStep(step.case.what);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
default: {
|
|
40
|
-
const _exhaustive = step;
|
|
41
|
-
return _exhaustive;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
for (const step of rawStrategy.steps) {
|
|
46
|
-
visitStep(step);
|
|
47
|
-
}
|
|
48
|
-
return toolSteps;
|
|
12
|
+
return extractToolStepsFromStrategy(rawStrategy);
|
|
49
13
|
}
|
|
50
14
|
export function extractRoleMapFromRawStrategy(rawStrategy, toolMap) {
|
|
51
15
|
const roleMap = new Map();
|
|
@@ -54,24 +18,18 @@ export function extractRoleMapFromRawStrategy(rawStrategy, toolMap) {
|
|
|
54
18
|
const tool = toolMap.get(toolId);
|
|
55
19
|
if (!tool)
|
|
56
20
|
continue;
|
|
57
|
-
for (const
|
|
58
|
-
roleMap.set(
|
|
59
|
-
id: rid,
|
|
60
|
-
...role,
|
|
61
|
-
});
|
|
21
|
+
for (const entry of getInputRoleEntries(tool)) {
|
|
22
|
+
roleMap.set(entry[0], toToolRoleDescriptor(entry));
|
|
62
23
|
}
|
|
63
|
-
for (const
|
|
64
|
-
roleMap.set(
|
|
65
|
-
id: rid,
|
|
66
|
-
...role,
|
|
67
|
-
});
|
|
24
|
+
for (const entry of getOutputRoleEntries(tool)) {
|
|
25
|
+
roleMap.set(entry[0], toToolRoleDescriptor(entry));
|
|
68
26
|
}
|
|
69
27
|
}
|
|
70
28
|
return roleMap;
|
|
71
29
|
}
|
|
72
30
|
export function extractSingleNonErrorOutputTypeId(tool) {
|
|
73
31
|
const errorRoleId = CONSTANTS.Cosmos.ROLE_ErrorOutput;
|
|
74
|
-
const outputEntries =
|
|
32
|
+
const outputEntries = getOutputRoleEntries(tool).filter(([roleName]) => roleName !== errorRoleId);
|
|
75
33
|
if (!outputEntries || !outputEntries[0] || outputEntries.length !== 1) {
|
|
76
34
|
throw new Error(`Tool ${tool.id} must have exactly one non-error output role to be branchable/loopable`);
|
|
77
35
|
} // ATTENTION_PUREIFY
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractData.js","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extractData.js","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { Step } from '@toolproof-core/schema';
|
|
2
|
+
import type { StrategyState } from './strategyState.js';
|
|
3
|
+
export declare function getIndependentThreads(steps: Step[], strategyState: StrategyState): Step[][];
|
|
3
4
|
//# sourceMappingURL=parallelizeSteps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallelizeSteps.d.ts","sourceRoot":"","sources":["../../src/utils/parallelizeSteps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"parallelizeSteps.d.ts","sourceRoot":"","sources":["../../src/utils/parallelizeSteps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIR,IAAI,EAEP,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAWxD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,EAAE,EAAE,CAuK3F"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
2
|
+
function getToolStepId(toolStep) {
|
|
3
|
+
const maybeId = toolStep?.id;
|
|
4
|
+
return typeof maybeId === 'string' ? maybeId : undefined;
|
|
5
|
+
}
|
|
2
6
|
export function getIndependentThreads(steps, strategyState) {
|
|
3
7
|
const getOwnerLabel = (ownerIndex) => {
|
|
4
8
|
const step = steps[ownerIndex];
|
|
@@ -9,16 +13,17 @@ export function getIndependentThreads(steps, strategyState) {
|
|
|
9
13
|
const ownerToToolStepIds = new Map();
|
|
10
14
|
const toolStepById = new Map();
|
|
11
15
|
const addToolStep = (toolStep, ownerIndex) => {
|
|
12
|
-
|
|
16
|
+
const toolStepId = getToolStepId(toolStep);
|
|
17
|
+
if (!toolStepId || !toolStep)
|
|
13
18
|
return;
|
|
14
|
-
const existingOwner = toolStepIdToOwner.get(
|
|
19
|
+
const existingOwner = toolStepIdToOwner.get(toolStepId);
|
|
15
20
|
if (existingOwner !== undefined) {
|
|
16
|
-
throw new Error(`Duplicate toolStep.id '${
|
|
21
|
+
throw new Error(`Duplicate toolStep.id '${toolStepId}' found in ${getOwnerLabel(ownerIndex)} and ${getOwnerLabel(existingOwner)}`);
|
|
17
22
|
}
|
|
18
|
-
toolStepIdToOwner.set(
|
|
19
|
-
toolStepById.set(
|
|
23
|
+
toolStepIdToOwner.set(toolStepId, ownerIndex);
|
|
24
|
+
toolStepById.set(toolStepId, toolStep);
|
|
20
25
|
const bucket = ownerToToolStepIds.get(ownerIndex) ?? [];
|
|
21
|
-
bucket.push(
|
|
26
|
+
bucket.push(toolStepId);
|
|
22
27
|
ownerToToolStepIds.set(ownerIndex, bucket);
|
|
23
28
|
};
|
|
24
29
|
steps.forEach((step, ownerIndex) => {
|
|
@@ -68,15 +73,17 @@ export function getIndependentThreads(steps, strategyState) {
|
|
|
68
73
|
const bucket = strategyState?.[toolStepId] ?? {};
|
|
69
74
|
for (const inputRoleId of inputBindings) {
|
|
70
75
|
const entry = bucket?.[inputRoleId];
|
|
71
|
-
if (!entry || entry.
|
|
76
|
+
if (!entry || entry.strategyStateInputKind !== 'referenceInput')
|
|
72
77
|
continue;
|
|
73
|
-
const creatorToolStepId = entry?.
|
|
78
|
+
const creatorToolStepId = typeof entry?.toolStepPath === 'string'
|
|
79
|
+
? entry.toolStepPath
|
|
80
|
+
: undefined;
|
|
74
81
|
if (!creatorToolStepId) {
|
|
75
|
-
throw new Error(`Unresolvable
|
|
82
|
+
throw new Error(`Unresolvable referenceInput in toolStep '${toolStepId}' (${getOwnerLabel(ownerIndex)}): missing toolStepPath for role '${inputRoleId}'`);
|
|
76
83
|
}
|
|
77
84
|
const producerOwner = toolStepIdToOwner.get(creatorToolStepId);
|
|
78
85
|
if (producerOwner === undefined) {
|
|
79
|
-
throw new Error(`Unresolvable
|
|
86
|
+
throw new Error(`Unresolvable referenceInput in toolStep '${toolStepId}' (${getOwnerLabel(ownerIndex)}): creator toolStepPath '${creatorToolStepId}' not found in strategy steps`);
|
|
80
87
|
}
|
|
81
88
|
ensureOwner(producerOwner);
|
|
82
89
|
ownerAdj.get(ownerIndex).add(producerOwner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallelizeSteps.js","sourceRoot":"","sources":["../../src/utils/parallelizeSteps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parallelizeSteps.js","sourceRoot":"","sources":["../../src/utils/parallelizeSteps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { CreationContext, ExternalInput, ValueInput } from '@toolproof-core/schema';
|
|
2
|
+
import { type StrategyState } from './strategyState.js';
|
|
3
3
|
export type ResolveResult = {
|
|
4
|
-
status:
|
|
5
|
-
entry:
|
|
6
|
-
path:
|
|
4
|
+
status: 'valueInput';
|
|
5
|
+
entry: ValueInput;
|
|
6
|
+
path: CreationContext[];
|
|
7
7
|
} | {
|
|
8
|
-
status:
|
|
9
|
-
entry:
|
|
10
|
-
path:
|
|
11
|
-
} | {
|
|
12
|
-
status: typeof CONSTANTS.Enums.ResourceShellKind.outputPotential;
|
|
13
|
-
entry: OutputPotentialShellJson;
|
|
14
|
-
path: CreationContextJson[];
|
|
8
|
+
status: 'externalInput';
|
|
9
|
+
entry: ExternalInput;
|
|
10
|
+
path: CreationContext[];
|
|
15
11
|
} | {
|
|
16
12
|
status: 'unresolved';
|
|
17
13
|
reason: 'not-found' | 'cycle' | 'depth-exceeded';
|
|
18
|
-
path:
|
|
14
|
+
path: CreationContext[];
|
|
19
15
|
};
|
|
20
|
-
export declare function resolveResourceChain(strategyState:
|
|
16
|
+
export declare function resolveResourceChain(strategyState: StrategyState, start: CreationContext, opts?: {
|
|
21
17
|
maxDepth?: number;
|
|
22
18
|
}): ResolveResult;
|
|
23
19
|
//# sourceMappingURL=resolveResourceChain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveResourceChain.d.ts","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"resolveResourceChain.d.ts","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,aAAa,EAGb,UAAU,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,MAAM,aAAa,GACnB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,eAAe,EAAE,CAAA;CAAE,GACpE;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,eAAe,EAAE,CAAA;CAAE,GAC1E;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,gBAAgB,CAAC;IAAC,IAAI,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAE1G,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,aAAa,CAiCf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getStrategyStateEntry } from './strategyState.js';
|
|
2
2
|
export function resolveResourceChain(strategyState, start, opts) {
|
|
3
3
|
const maxDepth = opts?.maxDepth ?? 50;
|
|
4
4
|
const visited = new Set();
|
|
@@ -6,33 +6,25 @@ export function resolveResourceChain(strategyState, start, opts) {
|
|
|
6
6
|
let current = start;
|
|
7
7
|
for (let depth = 0; depth <= maxDepth; depth++) {
|
|
8
8
|
path.push(current);
|
|
9
|
-
const visitKey = `${current.
|
|
9
|
+
const visitKey = `${current.toolStepPath}::${current.roleName}`;
|
|
10
10
|
if (visited.has(visitKey)) {
|
|
11
11
|
return { status: 'unresolved', reason: 'cycle', path };
|
|
12
12
|
}
|
|
13
13
|
visited.add(visitKey);
|
|
14
|
-
const
|
|
15
|
-
if (!bucket)
|
|
16
|
-
return { status: 'unresolved', reason: 'not-found', path };
|
|
17
|
-
const entry = bucket[current.resourceRoleId];
|
|
14
|
+
const entry = getStrategyStateEntry(strategyState, current);
|
|
18
15
|
if (!entry)
|
|
19
16
|
return { status: 'unresolved', reason: 'not-found', path };
|
|
20
|
-
if (entry.
|
|
21
|
-
return { status:
|
|
22
|
-
}
|
|
23
|
-
if (entry.resourceShellKind === CONSTANTS.Enums.ResourceShellKind.externalInputPotential) {
|
|
24
|
-
return { status: CONSTANTS.Enums.ResourceShellKind.externalInputPotential, entry: entry, path };
|
|
25
|
-
}
|
|
26
|
-
if (entry.resourceShellKind === CONSTANTS.Enums.ResourceShellKind.outputPotential) {
|
|
27
|
-
return { status: CONSTANTS.Enums.ResourceShellKind.outputPotential, entry: entry, path };
|
|
17
|
+
if (entry.strategyStateInputKind === 'valueInput') {
|
|
18
|
+
return { status: 'valueInput', entry: entry, path };
|
|
28
19
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
current = entry.creationContext;
|
|
32
|
-
continue;
|
|
20
|
+
if (entry.strategyStateInputKind === 'externalInput') {
|
|
21
|
+
return { status: 'externalInput', entry: entry, path };
|
|
33
22
|
}
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
current = {
|
|
24
|
+
toolStepPath: entry.toolStepPath,
|
|
25
|
+
roleName: entry.roleName,
|
|
26
|
+
};
|
|
27
|
+
continue;
|
|
36
28
|
}
|
|
37
29
|
return { status: 'unresolved', reason: 'depth-exceeded', path };
|
|
38
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveResourceChain.js","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolveResourceChain.js","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAsB,MAAM,oBAAoB,CAAC;AAO/E,MAAM,UAAU,oBAAoB,CAChC,aAA4B,EAC5B,KAAsB,EACtB,IAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAAsB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAoB,KAAK,CAAC;IAErC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtB,MAAM,KAAK,GAAG,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAwC,CAAC;QACnG,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAEvE,IAAI,KAAK,CAAC,sBAAsB,KAAK,YAAY,EAAE,CAAC;YAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,eAAe,EAAE,CAAC;YACnD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,CAAC;QAED,OAAO,GAAG;YACN,YAAY,EAAG,KAAwB,CAAC,YAAY;YACpD,QAAQ,EAAG,KAAwB,CAAC,QAAQ;SAC/C,CAAC;QACF,SAAS;IAEb,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RoleName, RoleValue, Strategy, Tool, ToolStep } from '@toolproof-core/schema';
|
|
2
|
+
export interface ToolRoleDescriptor extends RoleValue {
|
|
3
|
+
id: RoleName;
|
|
4
|
+
name: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function getInputRoleEntries(tool: Tool): Array<[RoleName, RoleValue]>;
|
|
7
|
+
export declare function getOutputRoleEntries(tool: Tool): Array<[RoleName, RoleValue]>;
|
|
8
|
+
export declare function getInputRoleNames(tool: Tool): RoleName[];
|
|
9
|
+
export declare function getOutputRoleNames(tool: Tool): RoleName[];
|
|
10
|
+
export declare function toToolRoleDescriptor([roleName, roleValue]: [RoleName, RoleValue]): ToolRoleDescriptor;
|
|
11
|
+
export declare function extractToolStepsFromStrategy(strategy: Strategy): ToolStep[];
|
|
12
|
+
//# sourceMappingURL=roleSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roleSpec.d.ts","sourceRoot":"","sources":["../../src/utils/roleSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EAER,IAAI,EACJ,QAAQ,EACX,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACjD,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAE5E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAE7E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,CAExD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,kBAAkB,CAMrG;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAyC3E"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export function getInputRoleEntries(tool) {
|
|
2
|
+
return Object.entries(tool.roleSpec.inputRoleValueByName);
|
|
3
|
+
}
|
|
4
|
+
export function getOutputRoleEntries(tool) {
|
|
5
|
+
return Object.entries(tool.roleSpec.outputRoleValueByName);
|
|
6
|
+
}
|
|
7
|
+
export function getInputRoleNames(tool) {
|
|
8
|
+
return getInputRoleEntries(tool).map(([roleName]) => roleName);
|
|
9
|
+
}
|
|
10
|
+
export function getOutputRoleNames(tool) {
|
|
11
|
+
return getOutputRoleEntries(tool).map(([roleName]) => roleName);
|
|
12
|
+
}
|
|
13
|
+
export function toToolRoleDescriptor([roleName, roleValue]) {
|
|
14
|
+
return {
|
|
15
|
+
id: roleName,
|
|
16
|
+
name: roleName,
|
|
17
|
+
...roleValue,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function extractToolStepsFromStrategy(strategy) {
|
|
21
|
+
const toolSteps = [];
|
|
22
|
+
const visitStep = (step) => {
|
|
23
|
+
switch (step.stepKind) {
|
|
24
|
+
case 'tool': {
|
|
25
|
+
toolSteps.push(step);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
case 'branch': {
|
|
29
|
+
for (const conditional of step.cases) {
|
|
30
|
+
toolSteps.push(conditional.when, conditional.what);
|
|
31
|
+
}
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
case 'while':
|
|
35
|
+
case 'for': {
|
|
36
|
+
toolSteps.push(step.case.when, step.case.what);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
default: {
|
|
40
|
+
const _exhaustive = step;
|
|
41
|
+
return _exhaustive;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
if ('steps' in strategy) {
|
|
46
|
+
for (const step of strategy.steps) {
|
|
47
|
+
visitStep(step);
|
|
48
|
+
}
|
|
49
|
+
return toolSteps;
|
|
50
|
+
}
|
|
51
|
+
for (const threadSteps of strategy.stepsByThreadIndex) {
|
|
52
|
+
for (const step of threadSteps) {
|
|
53
|
+
visitStep(step);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return toolSteps;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=roleSpec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roleSpec.js","sourceRoot":"","sources":["../../src/utils/roleSpec.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAiC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAU;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAiC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU;IACxC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAU;IACzC,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAwB;IAC7E,OAAO;QACH,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,GAAG,SAAS;KACf,CAAC;AACN,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAkB;IAC3D,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,EAAE;QAC7B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,OAAO;YACX,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;gBACD,OAAO;YACX,CAAC;YACD,KAAK,OAAO,CAAC;YACb,KAAK,KAAK,CAAC,CAAC,CAAC;gBACT,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO;YACX,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,MAAM,WAAW,GAAU,IAAI,CAAC;gBAChC,OAAO,WAAW,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|