@toolproof-core/lib 1.0.32 → 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/firebaseAdminHelpers.d.ts +5 -1
- 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 +3 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/bindInputRoleToResource.d.ts +2 -1
- 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 +19 -7
- 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 +22 -5
- 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 +5 -4
- 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 +2 -1
- 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 +6 -10
- 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/firebaseAdminHelpers.ts +2 -1
- package/src/types/types.ts +1 -1
- package/src/utils/bindInputRoleToResource.ts +23 -80
- package/src/utils/creation/resourceCreation.ts +40 -22
- package/src/utils/creation/runnableStrategyCreation.ts +14 -28
- package/src/utils/creation/stepCreation.ts +23 -17
- package/src/utils/extractData.ts +21 -63
- package/src/utils/parallelizeSteps.ts +24 -15
- package/src/utils/resolveResourceChain.ts +18 -32
- package/src/utils/roleSpec.ts +80 -0
- package/src/utils/strategyState.ts +56 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,5 +1,21 @@
|
|
|
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
21
|
stepId: ForStepId;
|
|
@@ -15,20 +31,21 @@ export type BranchCaseBuildIdentities = {
|
|
|
15
31
|
whatId: ToolStepId;
|
|
16
32
|
whenId: ToolStepId;
|
|
17
33
|
};
|
|
18
|
-
export declare function buildToolStepFromTool(tool: Tool, id: ToolStepId):
|
|
34
|
+
export declare function buildToolStepFromTool(tool: Tool, id: ToolStepId): ToolStepWithId;
|
|
19
35
|
export declare function buildLoopStepFromToolPair(whatTool: Tool, whenTool: Tool, identities: LoopStepBuildIdentities): ForStep | WhileStep;
|
|
20
36
|
export declare function buildBranchStepFromToolPairs(cases: Array<{
|
|
21
37
|
whatTool: Tool;
|
|
22
38
|
whenTool: Tool;
|
|
23
|
-
}>, branchId: BranchStepId, caseIdentities: BranchCaseBuildIdentities[]):
|
|
39
|
+
}>, branchId: BranchStepId, caseIdentities: BranchCaseBuildIdentities[]): BranchStepWithId;
|
|
24
40
|
export declare function cloneForStepWithIdentities(forStep: ForStep, identities: {
|
|
25
41
|
stepId: ForStepId;
|
|
26
42
|
whatId: ToolStepId;
|
|
27
43
|
whenId: ToolStepId;
|
|
28
|
-
}):
|
|
44
|
+
}): ForStepWithId;
|
|
29
45
|
export declare function cloneWhileStepWithIdentities(whileStep: WhileStep, identities: {
|
|
30
46
|
stepId: WhileStepId;
|
|
31
47
|
whatId: ToolStepId;
|
|
32
48
|
whenId: ToolStepId;
|
|
33
|
-
}):
|
|
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,7 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
4
|
-
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>;
|
|
5
6
|
export declare function extractSingleNonErrorOutputTypeId(tool: Tool): ResourceTypeId | null;
|
|
6
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 {
|
|
@@ -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 { Step
|
|
1
|
+
import type { Step } from '@toolproof-core/schema';
|
|
2
|
+
import type { StrategyState } from './strategyState.js';
|
|
2
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,16 +1,12 @@
|
|
|
1
|
-
import type { CreationContext,
|
|
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:
|
|
4
|
+
status: 'valueInput';
|
|
5
|
+
entry: ValueInput;
|
|
6
6
|
path: CreationContext[];
|
|
7
7
|
} | {
|
|
8
|
-
status:
|
|
9
|
-
entry:
|
|
10
|
-
path: CreationContext[];
|
|
11
|
-
} | {
|
|
12
|
-
status: typeof CONSTANTS.Enums.ResourceShellKind.outputPotential;
|
|
13
|
-
entry: OutputPotentialShell;
|
|
8
|
+
status: 'externalInput';
|
|
9
|
+
entry: ExternalInput;
|
|
14
10
|
path: CreationContext[];
|
|
15
11
|
} | {
|
|
16
12
|
status: 'unresolved';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveResourceChain.d.ts","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CreationContext, Strategy, StrategyStateInputEntry, StrategyStateInputEntryByRoleName } from '@toolproof-core/schema';
|
|
2
|
+
export type StrategyState = Strategy['strategyState'];
|
|
3
|
+
export declare function getStrategyStateBucket(strategyState: StrategyState, toolStepPath: CreationContext['toolStepPath']): StrategyStateInputEntryByRoleName | undefined;
|
|
4
|
+
export declare function getStrategyStateEntry(strategyState: StrategyState, context: CreationContext): StrategyStateInputEntry | undefined;
|
|
5
|
+
export declare function setStrategyStateEntry(strategyState: StrategyState, context: CreationContext, entry: StrategyStateInputEntry): StrategyState;
|
|
6
|
+
export declare function clearStrategyStateEntry(strategyState: StrategyState, context: CreationContext): StrategyState;
|
|
7
|
+
//# sourceMappingURL=strategyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategyState.d.ts","sourceRoot":"","sources":["../../src/utils/strategyState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,iCAAiC,EACpC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAEtD,wBAAgB,sBAAsB,CAClC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,GAC9C,iCAAiC,GAAG,SAAS,CAE/C;AAED,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,eAAe,GACzB,uBAAuB,GAAG,SAAS,CAErC;AAED,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,uBAAuB,GAC/B,aAAa,CAUf;AAED,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,eAAe,GACzB,aAAa,CAaf"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function getStrategyStateBucket(strategyState, toolStepPath) {
|
|
2
|
+
return strategyState[toolStepPath];
|
|
3
|
+
}
|
|
4
|
+
export function getStrategyStateEntry(strategyState, context) {
|
|
5
|
+
return getStrategyStateBucket(strategyState, context.toolStepPath)?.[context.roleName];
|
|
6
|
+
}
|
|
7
|
+
export function setStrategyStateEntry(strategyState, context, entry) {
|
|
8
|
+
const bucket = getStrategyStateBucket(strategyState, context.toolStepPath) ?? {};
|
|
9
|
+
return {
|
|
10
|
+
...strategyState,
|
|
11
|
+
[context.toolStepPath]: {
|
|
12
|
+
...bucket,
|
|
13
|
+
[context.roleName]: entry,
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function clearStrategyStateEntry(strategyState, context) {
|
|
18
|
+
const bucket = getStrategyStateBucket(strategyState, context.toolStepPath);
|
|
19
|
+
if (!bucket || !(context.roleName in bucket)) {
|
|
20
|
+
return strategyState;
|
|
21
|
+
}
|
|
22
|
+
const nextBucket = { ...bucket };
|
|
23
|
+
delete nextBucket[context.roleName];
|
|
24
|
+
return {
|
|
25
|
+
...strategyState,
|
|
26
|
+
[context.toolStepPath]: nextBucket,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=strategyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategyState.js","sourceRoot":"","sources":["../../src/utils/strategyState.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,sBAAsB,CAClC,aAA4B,EAC5B,YAA6C;IAE7C,OAAO,aAAa,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,aAA4B,EAC5B,OAAwB;IAExB,OAAO,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,aAA4B,EAC5B,OAAwB,EACxB,KAA8B;IAE9B,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAEjF,OAAO;QACH,GAAG,aAAa;QAChB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACpB,GAAG,MAAM;YACT,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK;SAC5B;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,aAA4B,EAC5B,OAAwB;IAExB,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;QAC3C,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IACjC,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpC,OAAO;QACH,GAAG,aAAa;QAChB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU;KACrC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toolproof-core/lib",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.33",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [],
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"@types/node": "^22.0.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@toolproof-core/schema": "^1.0.
|
|
55
|
+
"@toolproof-core/schema": "^1.0.46",
|
|
56
56
|
"firebase-admin": "^13.7.0"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
60
|
-
"build": "tsc -b"
|
|
60
|
+
"build": "if exist dist rmdir /s /q dist && if exist tsconfig.tsbuildinfo del /q tsconfig.tsbuildinfo && tsc -b"
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Strategy } from '@toolproof-core/schema';
|
|
2
2
|
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
3
3
|
import {
|
|
4
4
|
buildRunnableStrategy,
|
|
@@ -6,15 +6,13 @@ import {
|
|
|
6
6
|
} from '../../utils/creation/runnableStrategyCreation.js';
|
|
7
7
|
import { getNewId } from './firebaseAdminHelpers.js';
|
|
8
8
|
|
|
9
|
-
export function createRunnableStrategy(rawStrategy:
|
|
9
|
+
export function createRunnableStrategy(rawStrategy: Strategy): Strategy {
|
|
10
10
|
const threadStepGroups = getRunnableStrategyThreadGroups(rawStrategy);
|
|
11
|
-
const
|
|
12
|
-
const threadIdentities = threadStepGroups.map(() => getNewId(CONSTANTS.Names.StrategyThreadId));
|
|
11
|
+
const strategyId = getNewId(CONSTANTS.Names.StrategyId);
|
|
13
12
|
|
|
14
13
|
return buildRunnableStrategy(
|
|
15
|
-
rawStrategy,
|
|
16
|
-
runnableStrategyId,
|
|
17
14
|
threadStepGroups,
|
|
18
|
-
|
|
15
|
+
strategyId,
|
|
16
|
+
rawStrategy,
|
|
19
17
|
);
|
|
20
18
|
}
|
|
@@ -7,11 +7,12 @@ import type {
|
|
|
7
7
|
IdName,
|
|
8
8
|
IdStringByIdName,
|
|
9
9
|
ResourcesByType,
|
|
10
|
-
StepIdStringByStepKind,
|
|
11
10
|
} from '../../types/types.js';
|
|
12
11
|
import { CONSTANTS, MAPPINGS } from '../../artifacts/artifacts.js';
|
|
13
12
|
import { dbAdmin, storageAdmin } from './firebaseAdminInit.js';
|
|
14
13
|
|
|
14
|
+
type StepIdStringByStepKind<K extends StepKind> = string & { readonly __stepKind?: K };
|
|
15
|
+
|
|
15
16
|
function capitalizeFirst(value: string): string {
|
|
16
17
|
if (!value) {
|
|
17
18
|
return value;
|