@toolproof-core/lib 1.0.23 → 1.0.25
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 +22 -13
- package/dist/artifacts/artifacts.d.ts.map +1 -1
- package/dist/artifacts/artifacts.js +8 -4
- package/dist/artifacts/artifacts.js.map +1 -1
- package/dist/integrations/firebase/createStep.d.ts +6 -6
- package/dist/integrations/firebase/createStep.d.ts.map +1 -1
- package/dist/integrations/firebase/createStep.js +18 -18
- package/dist/integrations/firebase/createStep.js.map +1 -1
- package/dist/integrations/firebase/firebaseAdminHelpers.js +3 -3
- package/dist/integrations/firebase/firebaseAdminHelpers.js.map +1 -1
- package/dist/utils/bindInputRoleToResource.js +11 -11
- package/dist/utils/bindInputRoleToResource.js.map +1 -1
- package/dist/utils/creation/stepCreation.d.ts +16 -16
- package/dist/utils/creation/stepCreation.d.ts.map +1 -1
- package/dist/utils/creation/stepCreation.js +16 -16
- package/dist/utils/creation/stepCreation.js.map +1 -1
- package/dist/utils/extractData.d.ts +5 -5
- package/dist/utils/extractData.d.ts.map +1 -1
- package/dist/utils/extractData.js +28 -28
- package/dist/utils/extractData.js.map +1 -1
- package/dist/utils/parallelizeSteps.js +30 -30
- package/dist/utils/parallelizeSteps.js.map +1 -1
- package/dist/utils/resolveResourceChain.js +2 -2
- package/dist/utils/resolveResourceChain.js.map +1 -1
- package/package.json +2 -2
- package/src/artifacts/artifacts.ts +8 -4
- package/src/integrations/firebase/createStep.ts +25 -25
- package/src/integrations/firebase/firebaseAdminHelpers.ts +3 -3
- package/src/utils/bindInputRoleToResource.ts +11 -11
- package/src/utils/creation/stepCreation.ts +35 -35
- package/src/utils/extractData.ts +34 -34
- package/src/utils/parallelizeSteps.ts +32 -32
- package/src/utils/resolveResourceChain.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
import { CONSTANTS } from '../artifacts/artifacts.js';
|
|
2
|
-
export function
|
|
3
|
-
const
|
|
2
|
+
export function extractToolHandlesFromRawStrategy(rawStrategy) {
|
|
3
|
+
const toolSteps = extractToolStepsFromRawStrategy(rawStrategy);
|
|
4
4
|
const ids = new Set();
|
|
5
|
-
for (const jStep of
|
|
6
|
-
ids.add(jStep.
|
|
5
|
+
for (const jStep of toolSteps) {
|
|
6
|
+
ids.add(jStep.toolHandle);
|
|
7
7
|
}
|
|
8
8
|
return Array.from(ids);
|
|
9
9
|
}
|
|
10
|
-
export function
|
|
11
|
-
const
|
|
10
|
+
export function extractToolStepsFromRawStrategy(rawStrategy) {
|
|
11
|
+
const toolSteps = [];
|
|
12
12
|
const seen = new Set();
|
|
13
|
-
const
|
|
14
|
-
if (seen.has(
|
|
15
|
-
throw new Error(`Duplicate
|
|
13
|
+
const addToolStep = (toolStep) => {
|
|
14
|
+
if (seen.has(toolStep.identity)) {
|
|
15
|
+
throw new Error(`Duplicate tool step identity encountered: ${toolStep.identity}`);
|
|
16
16
|
}
|
|
17
|
-
seen.add(
|
|
18
|
-
|
|
17
|
+
seen.add(toolStep.identity);
|
|
18
|
+
toolSteps.push(toolStep);
|
|
19
19
|
};
|
|
20
20
|
const visitStep = (step) => {
|
|
21
21
|
switch (step.stepKind) {
|
|
22
|
-
case CONSTANTS.Enums.StepKind.
|
|
23
|
-
|
|
22
|
+
case CONSTANTS.Enums.StepKind.tool: {
|
|
23
|
+
addToolStep(step);
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
case CONSTANTS.Enums.StepKind.branch: {
|
|
27
27
|
for (const conditional of step.cases) {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
addToolStep(conditional.when);
|
|
29
|
+
addToolStep(conditional.what);
|
|
30
30
|
}
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
33
|
case CONSTANTS.Enums.StepKind.while:
|
|
34
34
|
case CONSTANTS.Enums.StepKind.for: {
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
addToolStep(step.case.when);
|
|
36
|
+
addToolStep(step.case.what);
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
default: {
|
|
@@ -45,22 +45,22 @@ export function extractJobStepsFromRawStrategy(rawStrategy) {
|
|
|
45
45
|
for (const step of rawStrategy.steps) {
|
|
46
46
|
visitStep(step);
|
|
47
47
|
}
|
|
48
|
-
return
|
|
48
|
+
return toolSteps;
|
|
49
49
|
}
|
|
50
|
-
export function extractRoleMapFromRawStrategy(rawStrategy,
|
|
50
|
+
export function extractRoleMapFromRawStrategy(rawStrategy, toolMap) {
|
|
51
51
|
const roleMap = new Map();
|
|
52
|
-
const
|
|
53
|
-
for (const
|
|
54
|
-
const
|
|
55
|
-
if (!
|
|
52
|
+
const toolHandles = extractToolHandlesFromRawStrategy(rawStrategy);
|
|
53
|
+
for (const toolHandle of toolHandles) {
|
|
54
|
+
const tool = toolMap.get(toolHandle);
|
|
55
|
+
if (!tool)
|
|
56
56
|
continue;
|
|
57
|
-
for (const [rid, role] of Object.entries(
|
|
57
|
+
for (const [rid, role] of Object.entries(tool.roleSpec.inputRoleValueByIdentity)) {
|
|
58
58
|
roleMap.set(rid, {
|
|
59
59
|
identity: rid,
|
|
60
60
|
...role,
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
for (const [rid, role] of Object.entries(
|
|
63
|
+
for (const [rid, role] of Object.entries(tool.roleSpec.outputRoleValueByIdentity)) {
|
|
64
64
|
roleMap.set(rid, {
|
|
65
65
|
identity: rid,
|
|
66
66
|
...role,
|
|
@@ -69,11 +69,11 @@ export function extractRoleMapFromRawStrategy(rawStrategy, jobMap) {
|
|
|
69
69
|
}
|
|
70
70
|
return roleMap;
|
|
71
71
|
}
|
|
72
|
-
export function extractSingleNonErrorOutputTypeHandle(
|
|
72
|
+
export function extractSingleNonErrorOutputTypeHandle(tool) {
|
|
73
73
|
const errorRoleId = CONSTANTS.Cosmos.ROLE_ErrorOutput;
|
|
74
|
-
const outputEntries = Object.entries(
|
|
74
|
+
const outputEntries = Object.entries(tool.roleSpec.outputRoleValueByIdentity).filter(([roleId]) => roleId !== errorRoleId);
|
|
75
75
|
if (!outputEntries || !outputEntries[0] || outputEntries.length !== 1) {
|
|
76
|
-
throw new Error(`
|
|
76
|
+
throw new Error(`Tool ${tool.identity} must have exactly one non-error output role to be branchable/loopable`);
|
|
77
77
|
} // ATTENTION_PUREIFY
|
|
78
78
|
const outputRole = outputEntries[0][1];
|
|
79
79
|
return outputRole.resourceTypeHandle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractData.js","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"extractData.js","sourceRoot":"","sources":["../../src/utils/extractData.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,45 +4,45 @@ export function getIndependentThreads(steps, strategyState) {
|
|
|
4
4
|
const step = steps[ownerIndex];
|
|
5
5
|
return `steps[${ownerIndex}] stepKind=${step?.stepKind ?? 'unknown'}`;
|
|
6
6
|
};
|
|
7
|
-
// Map each
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
if (!
|
|
7
|
+
// Map each toolStep.identity (including macro-nested tool steps) to owning top-level step index.
|
|
8
|
+
const toolStepIdToOwner = new Map();
|
|
9
|
+
const ownerToToolStepIds = new Map();
|
|
10
|
+
const toolStepById = new Map();
|
|
11
|
+
const addToolStep = (toolStep, ownerIndex) => {
|
|
12
|
+
if (!toolStep?.identity)
|
|
13
13
|
return;
|
|
14
|
-
const existingOwner =
|
|
14
|
+
const existingOwner = toolStepIdToOwner.get(toolStep.identity);
|
|
15
15
|
if (existingOwner !== undefined) {
|
|
16
|
-
throw new Error(`Duplicate
|
|
16
|
+
throw new Error(`Duplicate toolStep.identity '${toolStep.identity}' found in ${getOwnerLabel(ownerIndex)} and ${getOwnerLabel(existingOwner)}`);
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const bucket =
|
|
21
|
-
bucket.push(
|
|
22
|
-
|
|
18
|
+
toolStepIdToOwner.set(toolStep.identity, ownerIndex);
|
|
19
|
+
toolStepById.set(toolStep.identity, toolStep);
|
|
20
|
+
const bucket = ownerToToolStepIds.get(ownerIndex) ?? [];
|
|
21
|
+
bucket.push(toolStep.identity);
|
|
22
|
+
ownerToToolStepIds.set(ownerIndex, bucket);
|
|
23
23
|
};
|
|
24
24
|
steps.forEach((step, ownerIndex) => {
|
|
25
|
-
if (step.stepKind === CONSTANTS.Enums.StepKind.
|
|
26
|
-
|
|
25
|
+
if (step.stepKind === CONSTANTS.Enums.StepKind.tool) {
|
|
26
|
+
addToolStep(step, ownerIndex);
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
if (step.stepKind === CONSTANTS.Enums.StepKind.for) {
|
|
30
30
|
const loop = step;
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
addToolStep(loop.case?.what, ownerIndex);
|
|
32
|
+
addToolStep(loop.case?.when, ownerIndex);
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
if (step.stepKind === CONSTANTS.Enums.StepKind.while) {
|
|
36
36
|
const loop = step;
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
addToolStep(loop.case?.what, ownerIndex);
|
|
38
|
+
addToolStep(loop.case?.when, ownerIndex);
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
if (step.stepKind === CONSTANTS.Enums.StepKind.branch) {
|
|
42
42
|
const branch = step;
|
|
43
43
|
for (const caseItem of branch.cases ?? []) {
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
addToolStep(caseItem?.what, ownerIndex);
|
|
45
|
+
addToolStep(caseItem?.when, ownerIndex);
|
|
46
46
|
}
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
@@ -61,22 +61,22 @@ export function getIndependentThreads(steps, strategyState) {
|
|
|
61
61
|
ensureOwner(i);
|
|
62
62
|
}
|
|
63
63
|
// Discover dependencies from strategyState.
|
|
64
|
-
for (const [
|
|
64
|
+
for (const [toolStepId, ownerIndex] of toolStepIdToOwner) {
|
|
65
65
|
ensureOwner(ownerIndex);
|
|
66
|
-
const
|
|
67
|
-
const inputBindings =
|
|
68
|
-
const bucket = strategyState?.[
|
|
66
|
+
const toolStep = toolStepById.get(toolStepId);
|
|
67
|
+
const inputBindings = toolStep?.roleBindingSpec?.inputBindings ?? [];
|
|
68
|
+
const bucket = strategyState?.[toolStepId] ?? {};
|
|
69
69
|
for (const inputRoleHandle of inputBindings) {
|
|
70
70
|
const entry = bucket?.[inputRoleHandle];
|
|
71
71
|
if (!entry || entry.resourceShellKind !== 'internalInputPotential')
|
|
72
72
|
continue;
|
|
73
|
-
const
|
|
74
|
-
if (!
|
|
75
|
-
throw new Error(`Unresolvable internalInputPotential in
|
|
73
|
+
const creatorToolStepHandle = entry?.creationContext?.toolStepHandle;
|
|
74
|
+
if (!creatorToolStepHandle) {
|
|
75
|
+
throw new Error(`Unresolvable internalInputPotential in toolStep '${toolStepId}' (${getOwnerLabel(ownerIndex)}): missing creationContext.toolStepHandle for role '${inputRoleHandle}'`);
|
|
76
76
|
}
|
|
77
|
-
const producerOwner =
|
|
77
|
+
const producerOwner = toolStepIdToOwner.get(creatorToolStepHandle);
|
|
78
78
|
if (producerOwner === undefined) {
|
|
79
|
-
throw new Error(`Unresolvable internalInputPotential in
|
|
79
|
+
throw new Error(`Unresolvable internalInputPotential in toolStep '${toolStepId}' (${getOwnerLabel(ownerIndex)}): creator toolStepHandle '${creatorToolStepHandle}' not found in strategy steps`);
|
|
80
80
|
}
|
|
81
81
|
ensureOwner(producerOwner);
|
|
82
82
|
ownerAdj.get(ownerIndex).add(producerOwner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallelizeSteps.js","sourceRoot":"","sources":["../../src/utils/parallelizeSteps.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,MAAM,UAAU,qBAAqB,CAAC,KAAiB,EAAE,aAAgC;IAGrF,MAAM,aAAa,GAAG,CAAC,UAAsB,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,OAAO,SAAS,UAAU,cAAe,IAAY,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC;IACnF,CAAC,CAAC;IAEF
|
|
1
|
+
{"version":3,"file":"parallelizeSteps.js","sourceRoot":"","sources":["../../src/utils/parallelizeSteps.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,12 @@ 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.toolStepHandle}::${current.resourceRoleHandle}`;
|
|
10
10
|
if (visited.has(visitKey)) {
|
|
11
11
|
return { status: 'unresolved', reason: 'cycle', path };
|
|
12
12
|
}
|
|
13
13
|
visited.add(visitKey);
|
|
14
|
-
const bucket = strategyState[current.
|
|
14
|
+
const bucket = strategyState[current.toolStepHandle];
|
|
15
15
|
if (!bucket)
|
|
16
16
|
return { status: 'unresolved', reason: 'not-found', path };
|
|
17
17
|
const entry = bucket[current.resourceRoleHandle];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveResourceChain.js","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAQtD,MAAM,UAAU,oBAAoB,CAChC,aAAgC,EAChC,KAA0B,EAC1B,IAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAA0B,EAAE,CAAC;IACvC,IAAI,OAAO,GAAwB,KAAK,CAAC;IAEzC,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,
|
|
1
|
+
{"version":3,"file":"resolveResourceChain.js","sourceRoot":"","sources":["../../src/utils/resolveResourceChain.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAQtD,MAAM,UAAU,oBAAoB,CAChC,aAAgC,EAChC,KAA0B,EAC1B,IAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAA0B,EAAE,CAAC;IACvC,IAAI,OAAO,GAAwB,KAAK,CAAC;IAEzC,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,cAAc,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC5E,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,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAI9C,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAEvE,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;YAC7E,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,KAAqB,EAAE,IAAI,EAAE,CAAC;QAC1G,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;YACvF,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,KAAwC,EAAE,IAAI,EAAE,CAAC;QACvI,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;YAChF,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,EAAE,KAAiC,EAAE,IAAI,EAAE,CAAC;QACzH,CAAC;QAED,+CAA+C;QAC/C,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;YACvF,OAAO,GAAI,KAAyC,CAAC,eAAe,CAAC;YACrE,SAAS;QACb,CAAC;QAED,eAAe;QACf,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AACpE,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.25",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [],
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@types/node": "^22.0.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@toolproof-core/schema": "^1.0.
|
|
55
|
+
"@toolproof-core/schema": "^1.0.38",
|
|
56
56
|
"firebase-admin": "^13.7.0"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
@@ -22,7 +22,7 @@ export const CONSTANTS = {
|
|
|
22
22
|
TYPE_Boolean: 'TYPE-Boolean',
|
|
23
23
|
TYPE_Natural: 'TYPE-Natural',
|
|
24
24
|
TYPE_ResourceType: 'TYPE-ResourceType',
|
|
25
|
-
|
|
25
|
+
TYPE_Tool: 'TYPE-Tool',
|
|
26
26
|
TYPE_Error: 'TYPE-Error',
|
|
27
27
|
TYPE_RawStrategy: 'TYPE-RawStrategy',
|
|
28
28
|
TYPE_RunnableStrategy: 'TYPE-RunnableStrategy',
|
|
@@ -34,9 +34,13 @@ export const CONSTANTS = {
|
|
|
34
34
|
ROLE_LessThanSource: 'ROLE-LessThanSource',
|
|
35
35
|
ROLE_LessThanTarget: 'ROLE-LessThanTarget',
|
|
36
36
|
ROLE_LessThanDecision: 'ROLE-LessThanDecision',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
TOOL_BooleanBoomerang: 'TOOL-BooleanBoomerang',
|
|
38
|
+
TOOL_LessThan: 'TOOL-LessThan',
|
|
39
|
+
TOOL_BuilderCreateToolStep: 'TOOL-BuilderCreateToolStep',
|
|
40
|
+
TOOL_BuilderCreateCase: 'TOOL-BuilderCreateCase',
|
|
41
|
+
TOOL_BuilderCreateBranchStep: 'TOOL-BuilderCreateBranchStep',
|
|
42
|
+
TOOL_BuilderCreateForStep: 'TOOL-BuilderCreateForStep',
|
|
43
|
+
TOOL_BuilderCreateWhileStep: 'TOOL-BuilderCreateWhileStep',
|
|
40
44
|
}
|
|
41
45
|
} as const;
|
|
42
46
|
|
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
BranchStepJson,
|
|
3
3
|
ForStepJson,
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
ToolJson,
|
|
5
|
+
ToolStepJson,
|
|
6
6
|
WhileStepJson,
|
|
7
7
|
} from '@toolproof-core/schema';
|
|
8
8
|
import { CONSTANTS } from '../../artifacts/artifacts.js';
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
buildBranchStepFromToolPairs,
|
|
11
|
+
buildToolStepFromTool,
|
|
12
|
+
buildLoopStepFromToolPair,
|
|
13
13
|
cloneForStepWithIdentities,
|
|
14
14
|
cloneWhileStepWithIdentities,
|
|
15
15
|
} from '../../utils/creation/stepCreation.js';
|
|
16
16
|
import { getNewStepIdentity } from './firebaseAdminHelpers.js';
|
|
17
17
|
|
|
18
|
-
export function
|
|
19
|
-
return
|
|
18
|
+
export function createToolStepFromTool(tool: ToolJson): ToolStepJson {
|
|
19
|
+
return buildToolStepFromTool(tool, getNewStepIdentity(CONSTANTS.Enums.StepKind.tool));
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export function
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
export function createLoopStepFromToolPair(
|
|
23
|
+
whatTool: ToolJson,
|
|
24
|
+
whenTool: ToolJson,
|
|
25
25
|
stepKind: typeof CONSTANTS.Enums.StepKind.for | typeof CONSTANTS.Enums.StepKind.while,
|
|
26
26
|
): ForStepJson | WhileStepJson {
|
|
27
27
|
if (stepKind === CONSTANTS.Enums.StepKind.for) {
|
|
28
|
-
return
|
|
28
|
+
return buildLoopStepFromToolPair(whatTool, whenTool, {
|
|
29
29
|
stepKind,
|
|
30
30
|
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.for),
|
|
31
|
-
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
32
|
-
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
31
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
32
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
return
|
|
36
|
+
return buildLoopStepFromToolPair(whatTool, whenTool, {
|
|
37
37
|
stepKind,
|
|
38
38
|
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.while),
|
|
39
|
-
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
40
|
-
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
39
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
40
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
export function
|
|
45
|
-
cases: Array<{
|
|
44
|
+
export function createBranchStepFromToolPairs(
|
|
45
|
+
cases: Array<{ whatTool: ToolJson; whenTool: ToolJson }>,
|
|
46
46
|
): BranchStepJson {
|
|
47
|
-
return
|
|
47
|
+
return buildBranchStepFromToolPairs(
|
|
48
48
|
cases,
|
|
49
49
|
getNewStepIdentity(CONSTANTS.Enums.StepKind.branch),
|
|
50
50
|
cases.map(() => ({
|
|
51
|
-
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
52
|
-
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
51
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
52
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
53
53
|
})),
|
|
54
54
|
);
|
|
55
55
|
}
|
|
@@ -57,15 +57,15 @@ export function createBranchStepFromJobPairs(
|
|
|
57
57
|
export function cloneForStep(forStep: ForStepJson): ForStepJson {
|
|
58
58
|
return cloneForStepWithIdentities(forStep, {
|
|
59
59
|
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.for),
|
|
60
|
-
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
61
|
-
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
60
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
61
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
export function cloneWhileStep(whileStep: WhileStepJson): WhileStepJson {
|
|
66
66
|
return cloneWhileStepWithIdentities(whileStep, {
|
|
67
67
|
stepIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.while),
|
|
68
|
-
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
69
|
-
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.
|
|
68
|
+
whatIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
69
|
+
whenIdentity: getNewStepIdentity(CONSTANTS.Enums.StepKind.tool),
|
|
70
70
|
});
|
|
71
71
|
}
|
|
@@ -148,7 +148,7 @@ export async function listResources(
|
|
|
148
148
|
|
|
149
149
|
const identity = root.identity;
|
|
150
150
|
const resourceRoleHandle = root.creationContext.resourceRoleHandle;
|
|
151
|
-
const
|
|
151
|
+
const toolStepHandle = root.creationContext.toolStepHandle;
|
|
152
152
|
const resourceShellKind = root.resourceShellKind;
|
|
153
153
|
const versionRaw = root.version;
|
|
154
154
|
const version = typeof versionRaw === 'number'
|
|
@@ -160,7 +160,7 @@ export async function listResources(
|
|
|
160
160
|
const missing = [
|
|
161
161
|
['identity', identity],
|
|
162
162
|
['resourceRoleHandle', resourceRoleHandle],
|
|
163
|
-
['
|
|
163
|
+
['toolStepHandle', toolStepHandle],
|
|
164
164
|
['resourceShellKind', resourceShellKind],
|
|
165
165
|
['version', Number.isFinite(version) ? String(version) : ''],
|
|
166
166
|
['timestamp', timestamp],
|
|
@@ -177,7 +177,7 @@ export async function listResources(
|
|
|
177
177
|
resourceTypeHandle,
|
|
178
178
|
creationContext: {
|
|
179
179
|
resourceRoleHandle,
|
|
180
|
-
|
|
180
|
+
toolStepHandle,
|
|
181
181
|
},
|
|
182
182
|
resourceShellKind,
|
|
183
183
|
version,
|
|
@@ -16,10 +16,10 @@ export function bindInputResInStrategyState(
|
|
|
16
16
|
target: CreationContextJson,
|
|
17
17
|
resource: ResourceJson
|
|
18
18
|
): StrategyStateJson {
|
|
19
|
-
const bucket = strategyState[target.
|
|
19
|
+
const bucket = strategyState[target.toolStepHandle] ?? {};
|
|
20
20
|
return {
|
|
21
21
|
...strategyState,
|
|
22
|
-
[target.
|
|
22
|
+
[target.toolStepHandle]: {
|
|
23
23
|
...bucket,
|
|
24
24
|
[target.resourceRoleHandle]: resource,
|
|
25
25
|
},
|
|
@@ -31,22 +31,22 @@ export function bindInputRefInStrategyState(
|
|
|
31
31
|
target: CreationContextJson,
|
|
32
32
|
source: CreationContextJson
|
|
33
33
|
): StrategyStateJson {
|
|
34
|
-
const sourceEntry = strategyState?.[source.
|
|
34
|
+
const sourceEntry = strategyState?.[source.toolStepHandle]?.[source.resourceRoleHandle] as (
|
|
35
35
|
| ResourceJson
|
|
36
36
|
| ResourcePotentialJson
|
|
37
37
|
| undefined
|
|
38
38
|
);
|
|
39
39
|
if (!sourceEntry) {
|
|
40
|
-
throw new Error(`resourceEntry not found for source (${source.
|
|
40
|
+
throw new Error(`resourceEntry not found for source (${source.toolStepHandle}, ${source.resourceRoleHandle})`);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
const result = resolveResourceChain(strategyState, source);
|
|
44
|
-
const bucket = strategyState[target.
|
|
44
|
+
const bucket = strategyState[target.toolStepHandle] ?? {};
|
|
45
45
|
|
|
46
46
|
if (result.status === CONSTANTS.Enums.ResourceShellKind.materialized) {
|
|
47
47
|
return {
|
|
48
48
|
...strategyState,
|
|
49
|
-
[target.
|
|
49
|
+
[target.toolStepHandle]: {
|
|
50
50
|
...bucket,
|
|
51
51
|
[target.resourceRoleHandle]: result.entry,
|
|
52
52
|
},
|
|
@@ -63,7 +63,7 @@ export function bindInputRefInStrategyState(
|
|
|
63
63
|
|
|
64
64
|
return {
|
|
65
65
|
...strategyState,
|
|
66
|
-
[target.
|
|
66
|
+
[target.toolStepHandle]: {
|
|
67
67
|
...bucket,
|
|
68
68
|
[target.resourceRoleHandle]: reusedExternalInput,
|
|
69
69
|
},
|
|
@@ -75,7 +75,7 @@ export function bindInputRefInStrategyState(
|
|
|
75
75
|
identity: sourceEntry.identity,
|
|
76
76
|
resourceTypeHandle: sourceEntry.resourceTypeHandle,
|
|
77
77
|
creationContext: {
|
|
78
|
-
|
|
78
|
+
toolStepHandle: source.toolStepHandle,
|
|
79
79
|
resourceRoleHandle: source.resourceRoleHandle,
|
|
80
80
|
},
|
|
81
81
|
resourceShellKind: CONSTANTS.Enums.ResourceShellKind.internalInputPotential,
|
|
@@ -83,7 +83,7 @@ export function bindInputRefInStrategyState(
|
|
|
83
83
|
|
|
84
84
|
return {
|
|
85
85
|
...strategyState,
|
|
86
|
-
[target.
|
|
86
|
+
[target.toolStepHandle]: {
|
|
87
87
|
...bucket,
|
|
88
88
|
[target.resourceRoleHandle]: potentialInput,
|
|
89
89
|
},
|
|
@@ -97,7 +97,7 @@ export function clearInputBindingInStrategyState(
|
|
|
97
97
|
strategyState: StrategyStateJson,
|
|
98
98
|
target: CreationContextJson
|
|
99
99
|
): StrategyStateJson {
|
|
100
|
-
const bucket = strategyState?.[target.
|
|
100
|
+
const bucket = strategyState?.[target.toolStepHandle];
|
|
101
101
|
if (!bucket?.[target.resourceRoleHandle]) return strategyState;
|
|
102
102
|
|
|
103
103
|
const nextBucket = { ...bucket } as Record<string, unknown>;
|
|
@@ -105,6 +105,6 @@ export function clearInputBindingInStrategyState(
|
|
|
105
105
|
|
|
106
106
|
return {
|
|
107
107
|
...strategyState,
|
|
108
|
-
[target.
|
|
108
|
+
[target.toolStepHandle]: nextBucket as any,
|
|
109
109
|
};
|
|
110
110
|
}
|