@ansible-flow/core 0.86.0 → 0.88.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ai/describe.js +8 -7
- package/dist/ai/handlers.js +27 -25
- package/dist/ai/handlers.js.map +1 -1
- package/dist/ai/ops.js +8 -7
- package/dist/ai/reference.js +2 -2
- package/dist/ai/scenarios.js +12 -8
- package/dist/awx/import.js +7 -6
- package/dist/catalog/draft.d.ts +2 -0
- package/dist/catalog/draft.js +23 -4
- package/dist/catalog/draft.js.map +2 -2
- package/dist/chunks/{chunk-BXHI5EQM.js → chunk-2DT5DOSO.js} +43 -1
- package/dist/chunks/chunk-2DT5DOSO.js.map +7 -0
- package/dist/chunks/{chunk-DHU774ES.js → chunk-2KB3J3R5.js} +2 -2
- package/dist/chunks/{chunk-EAJFZKPB.js → chunk-37FKZNRN.js} +3 -3
- package/dist/chunks/{chunk-TPRZZHXA.js → chunk-57KJYXWA.js} +7 -7
- package/dist/chunks/{chunk-JTWR3TGG.js → chunk-7ALTNZCI.js} +4 -4
- package/dist/chunks/{chunk-UXIXXEIW.js → chunk-APBEHKCF.js} +2 -2
- package/dist/chunks/{chunk-ZAYNYPCX.js → chunk-ARA3VJR2.js} +2 -2
- package/dist/chunks/{chunk-7GLSXIZ3.js → chunk-BSX6G7QY.js} +5 -5
- package/dist/chunks/{chunk-H7Z2FBRD.js → chunk-CATQHJS6.js} +8 -8
- package/dist/chunks/{chunk-J7KCGVHU.js → chunk-CCWUUVSG.js} +2 -2
- package/dist/chunks/{chunk-C6SQEXL5.js → chunk-CNQ7M7HA.js} +2 -2
- package/dist/chunks/{chunk-NT62IE3Y.js → chunk-CNYGDBID.js} +2 -2
- package/dist/chunks/chunk-FIKPXL6E.js +23 -0
- package/dist/chunks/chunk-FIKPXL6E.js.map +7 -0
- package/dist/chunks/{chunk-CM23ODBB.js → chunk-J5LYSQ3L.js} +2 -2
- package/dist/chunks/{chunk-72LO6GQE.js → chunk-KXD6FX2Z.js} +2 -2
- package/dist/chunks/{chunk-4RMWFRWG.js → chunk-LELKMVJG.js} +45 -7
- package/dist/chunks/chunk-LELKMVJG.js.map +7 -0
- package/dist/chunks/{chunk-XOPGOWNQ.js → chunk-O5Y3AZ4X.js} +1 -1
- package/dist/chunks/chunk-O5Y3AZ4X.js.map +7 -0
- package/dist/chunks/{chunk-5XGAGNH5.js → chunk-OGNFHW5O.js} +7 -13
- package/dist/chunks/chunk-OGNFHW5O.js.map +7 -0
- package/dist/chunks/chunk-OJZSZBHW.js +45 -0
- package/dist/chunks/chunk-OJZSZBHW.js.map +7 -0
- package/dist/chunks/{chunk-R4MW3DRT.js → chunk-OW32YCZ6.js} +2 -2
- package/dist/chunks/{chunk-2QQC4IZ7.js → chunk-PNLY5IWM.js} +8 -8
- package/dist/chunks/chunk-PNLY5IWM.js.map +7 -0
- package/dist/chunks/{chunk-76T45V37.js → chunk-TBFB7A2Z.js} +5 -1
- package/dist/chunks/{chunk-76T45V37.js.map → chunk-TBFB7A2Z.js.map} +2 -2
- package/dist/chunks/{chunk-BXJOUAXV.js → chunk-TEJARYAE.js} +3 -3
- package/dist/chunks/{chunk-T5UB4MBB.js → chunk-TOTSB4HG.js} +41 -1
- package/dist/chunks/chunk-TOTSB4HG.js.map +7 -0
- package/dist/chunks/{chunk-MZ6IJWB2.js → chunk-TPMACJFA.js} +4 -4
- package/dist/chunks/{chunk-CXVJWFGT.js → chunk-WTVGCMGV.js} +8 -4
- package/dist/chunks/chunk-WTVGCMGV.js.map +7 -0
- package/dist/chunks/{chunk-6MLYGFT6.js → chunk-XJAMBKE3.js} +6 -2
- package/dist/chunks/chunk-XJAMBKE3.js.map +7 -0
- package/dist/chunks/{chunk-ABYJBONR.js → chunk-ZXUXX3YY.js} +4 -4
- package/dist/engine/binding.js +3 -1
- package/dist/engine/bypass.js +4 -2
- package/dist/engine/engines.js +9 -5
- package/dist/engine/files.js +9 -5
- package/dist/engine/optionA.js +8 -4
- package/dist/engine/partial.js +3 -1
- package/dist/engine/partial.js.map +1 -1
- package/dist/engine/preview.js +9 -5
- package/dist/engine/preview.js.map +1 -1
- package/dist/engine/writePlan.js +12 -9
- package/dist/export/drawio.js +3 -3
- package/dist/export/layoutCheck.js +3 -3
- package/dist/export/scene.js +2 -2
- package/dist/export/svg.js +4 -4
- package/dist/flow/commands.d.ts +10 -0
- package/dist/flow/commands.js +3 -1
- package/dist/flow/facts.d.ts +6 -0
- package/dist/flow/facts.js +13 -0
- package/dist/flow/facts.js.map +7 -0
- package/dist/flow/findingCodes.js +1 -1
- package/dist/flow/localFiles.d.ts +17 -0
- package/dist/flow/localFiles.js +14 -0
- package/dist/flow/localFiles.js.map +7 -0
- package/dist/flow/save.js +3 -1
- package/dist/flow/save.js.map +1 -1
- package/dist/flow/validate.js +3 -2
- package/dist/import/outline.js +9 -7
- package/dist/import/playbook.js +6 -5
- package/dist/import/source.js +3 -2
- package/dist/lens/caption.js +1 -1
- package/dist/lens/data.js +3 -1
- package/dist/lens/index.js +11 -9
- package/dist/lens/index.js.map +1 -1
- package/dist/lens/types.d.ts +2 -0
- package/dist/lens/types.js +1 -1
- package/dist/messageCheck.js +2 -0
- package/dist/messageCheck.js.map +2 -2
- package/dist/protocol.d.ts +29 -0
- package/dist/run/command.d.ts +13 -4
- package/dist/run/command.js +19 -0
- package/dist/run/command.js.map +3 -3
- package/dist/scenario/live.js +11 -7
- package/dist/scenario/simulate.js +10 -6
- package/dist/view/flowFacts.js +12 -9
- package/dist/view/flowFacts.js.map +1 -1
- package/dist/view/route.d.ts +3 -1
- package/dist/view/route.js +1 -1
- package/dist/view/serverChange.d.ts +23 -0
- package/dist/view/serverChange.js +48 -0
- package/dist/view/serverChange.js.map +7 -0
- package/package.json +1 -1
- package/dist/chunks/chunk-2QQC4IZ7.js.map +0 -7
- package/dist/chunks/chunk-4RMWFRWG.js.map +0 -7
- package/dist/chunks/chunk-5XGAGNH5.js.map +0 -7
- package/dist/chunks/chunk-6MLYGFT6.js.map +0 -7
- package/dist/chunks/chunk-BXHI5EQM.js.map +0 -7
- package/dist/chunks/chunk-CXVJWFGT.js.map +0 -7
- package/dist/chunks/chunk-T5UB4MBB.js.map +0 -7
- package/dist/chunks/chunk-XOPGOWNQ.js.map +0 -7
- /package/dist/chunks/{chunk-DHU774ES.js.map → chunk-2KB3J3R5.js.map} +0 -0
- /package/dist/chunks/{chunk-EAJFZKPB.js.map → chunk-37FKZNRN.js.map} +0 -0
- /package/dist/chunks/{chunk-TPRZZHXA.js.map → chunk-57KJYXWA.js.map} +0 -0
- /package/dist/chunks/{chunk-JTWR3TGG.js.map → chunk-7ALTNZCI.js.map} +0 -0
- /package/dist/chunks/{chunk-UXIXXEIW.js.map → chunk-APBEHKCF.js.map} +0 -0
- /package/dist/chunks/{chunk-ZAYNYPCX.js.map → chunk-ARA3VJR2.js.map} +0 -0
- /package/dist/chunks/{chunk-7GLSXIZ3.js.map → chunk-BSX6G7QY.js.map} +0 -0
- /package/dist/chunks/{chunk-H7Z2FBRD.js.map → chunk-CATQHJS6.js.map} +0 -0
- /package/dist/chunks/{chunk-J7KCGVHU.js.map → chunk-CCWUUVSG.js.map} +0 -0
- /package/dist/chunks/{chunk-C6SQEXL5.js.map → chunk-CNQ7M7HA.js.map} +0 -0
- /package/dist/chunks/{chunk-NT62IE3Y.js.map → chunk-CNYGDBID.js.map} +0 -0
- /package/dist/chunks/{chunk-CM23ODBB.js.map → chunk-J5LYSQ3L.js.map} +0 -0
- /package/dist/chunks/{chunk-72LO6GQE.js.map → chunk-KXD6FX2Z.js.map} +0 -0
- /package/dist/chunks/{chunk-R4MW3DRT.js.map → chunk-OW32YCZ6.js.map} +0 -0
- /package/dist/chunks/{chunk-BXJOUAXV.js.map → chunk-TEJARYAE.js.map} +0 -0
- /package/dist/chunks/{chunk-MZ6IJWB2.js.map → chunk-TPMACJFA.js.map} +0 -0
- /package/dist/chunks/{chunk-ABYJBONR.js.map → chunk-ZXUXX3YY.js.map} +0 -0
package/dist/engine/preview.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
engineFor
|
|
3
|
-
} from "../chunks/chunk-
|
|
4
|
-
import "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-CCWUUVSG.js";
|
|
4
|
+
import "../chunks/chunk-WTVGCMGV.js";
|
|
5
5
|
import "../chunks/chunk-OEEHAY5X.js";
|
|
6
6
|
import "../chunks/chunk-LPBLGBDT.js";
|
|
7
|
-
import "../chunks/chunk-
|
|
8
|
-
import "../chunks/chunk-
|
|
7
|
+
import "../chunks/chunk-XJAMBKE3.js";
|
|
8
|
+
import "../chunks/chunk-OJZSZBHW.js";
|
|
9
|
+
import "../chunks/chunk-ARA3VJR2.js";
|
|
9
10
|
import "../chunks/chunk-56VTJ6YF.js";
|
|
11
|
+
import "../chunks/chunk-LNFMYJUJ.js";
|
|
10
12
|
import "../chunks/chunk-BAZIS67B.js";
|
|
11
13
|
import "../chunks/chunk-X3DEH47B.js";
|
|
12
|
-
import "../chunks/chunk-
|
|
14
|
+
import "../chunks/chunk-TOTSB4HG.js";
|
|
13
15
|
import "../chunks/chunk-SN7X6FYV.js";
|
|
14
16
|
import "../chunks/chunk-24G5UVEF.js";
|
|
15
17
|
import "../chunks/chunk-CORZL72E.js";
|
|
@@ -20,6 +22,7 @@ import "../chunks/chunk-GK3SD3WE.js";
|
|
|
20
22
|
import "../chunks/chunk-H6ARLMMI.js";
|
|
21
23
|
import "../chunks/chunk-TG3C3GIL.js";
|
|
22
24
|
import "../chunks/chunk-WISXIO3I.js";
|
|
25
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
23
26
|
import "../chunks/chunk-WG7O3OBV.js";
|
|
24
27
|
import "../chunks/chunk-NUGJSYSP.js";
|
|
25
28
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
@@ -32,6 +35,7 @@ import "../chunks/chunk-HFHXHOBC.js";
|
|
|
32
35
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
33
36
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
34
37
|
import "../chunks/chunk-OEQXGULI.js";
|
|
38
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
35
39
|
import "../chunks/chunk-AJRIS5VY.js";
|
|
36
40
|
import "../chunks/chunk-GQ2W4RTY.js";
|
|
37
41
|
import "../chunks/chunk-BVEW6MKL.js";
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/core/engine/preview.ts"],
|
|
4
4
|
"sourcesContent": ["// What a node compiles to, for the inspector (mockup 03), plus the engine's findings for the canvas.\nimport type { FlowDocument, Ulid } from '../flow/types';\nimport type { Finding } from '../flow/validate';\nimport { engineFor } from './engines';\n\nexport interface CodePreview {\n /** Generated play text per node (its own lines from its level file). */\n plays: Record<Ulid, string>;\n /** Engine findings the validator does not already report. */\n findings: Finding[];\n}\n\nexport function codePreview(doc: FlowDocument, source: string): CodePreview {\n const result = engineFor(doc).generate(doc, { source });\n const plays: Record<Ulid, string> = {};\n for (const [node, range] of Object.entries(result.plays)) {\n const file = result.files.find((f) => f.name === range.file);\n if (file) plays[node] = file.text.split('\\n').slice(range.start, range.end).join('\\n');\n }\n return {\n plays,\n findings: result.findings.filter((f) => f.code !== 'codegen-no-targets'),\n };\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,SAAS,YAAY,KAAmB,QAA6B;AAC1E,QAAM,SAAS,UAAU,GAAG,EAAE,SAAS,KAAK,EAAE,OAAO,CAAC;AACtD,QAAM,QAA8B,CAAC;AACrC,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,OAAO,KAAK,GAAG;AACxD,UAAM,OAAO,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,IAAI;AAC3D,QAAI,KAAM,OAAM,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,EAAE,MAAM,MAAM,OAAO,MAAM,GAAG,EAAE,KAAK,IAAI;AAAA,EACvF;AACA,SAAO;AAAA,IACL;AAAA,IACA,UAAU,OAAO,SAAS,OAAO,CAAC,MAAM,EAAE,SAAS,oBAAoB;AAAA,EACzE;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/engine/writePlan.js
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
import {
|
|
2
2
|
planGenerated
|
|
3
|
-
} from "../chunks/chunk-
|
|
4
|
-
import "../chunks/chunk-
|
|
5
|
-
import "../chunks/chunk-
|
|
6
|
-
import "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-7ALTNZCI.js";
|
|
4
|
+
import "../chunks/chunk-CCWUUVSG.js";
|
|
5
|
+
import "../chunks/chunk-APBEHKCF.js";
|
|
6
|
+
import "../chunks/chunk-WTVGCMGV.js";
|
|
7
7
|
import "../chunks/chunk-OEEHAY5X.js";
|
|
8
8
|
import "../chunks/chunk-LPBLGBDT.js";
|
|
9
|
-
import "../chunks/chunk-
|
|
10
|
-
import "../chunks/chunk-
|
|
9
|
+
import "../chunks/chunk-XJAMBKE3.js";
|
|
10
|
+
import "../chunks/chunk-OJZSZBHW.js";
|
|
11
|
+
import "../chunks/chunk-ARA3VJR2.js";
|
|
11
12
|
import "../chunks/chunk-56VTJ6YF.js";
|
|
13
|
+
import "../chunks/chunk-LNFMYJUJ.js";
|
|
12
14
|
import "../chunks/chunk-BAZIS67B.js";
|
|
13
15
|
import "../chunks/chunk-X3DEH47B.js";
|
|
14
|
-
import "../chunks/chunk-
|
|
16
|
+
import "../chunks/chunk-TOTSB4HG.js";
|
|
15
17
|
import "../chunks/chunk-SN7X6FYV.js";
|
|
16
18
|
import "../chunks/chunk-24G5UVEF.js";
|
|
17
19
|
import "../chunks/chunk-CORZL72E.js";
|
|
18
20
|
import "../chunks/chunk-75QLJHZ5.js";
|
|
19
21
|
import "../chunks/chunk-LMTTJDCC.js";
|
|
20
|
-
import "../chunks/chunk-
|
|
22
|
+
import "../chunks/chunk-PNLY5IWM.js";
|
|
21
23
|
import "../chunks/chunk-OREXQ4IZ.js";
|
|
22
24
|
import "../chunks/chunk-KSM4O2XL.js";
|
|
23
|
-
import "../chunks/chunk-T6SZLRDM.js";
|
|
24
25
|
import "../chunks/chunk-7D55CRGU.js";
|
|
25
26
|
import "../chunks/chunk-GK3SD3WE.js";
|
|
26
27
|
import "../chunks/chunk-H6ARLMMI.js";
|
|
27
28
|
import "../chunks/chunk-TG3C3GIL.js";
|
|
28
29
|
import "../chunks/chunk-WISXIO3I.js";
|
|
30
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
29
31
|
import "../chunks/chunk-WG7O3OBV.js";
|
|
30
32
|
import "../chunks/chunk-NUGJSYSP.js";
|
|
31
33
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
@@ -38,6 +40,7 @@ import "../chunks/chunk-HFHXHOBC.js";
|
|
|
38
40
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
39
41
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
40
42
|
import "../chunks/chunk-OEQXGULI.js";
|
|
43
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
41
44
|
import "../chunks/chunk-AJRIS5VY.js";
|
|
42
45
|
import "../chunks/chunk-GQ2W4RTY.js";
|
|
43
46
|
import "../chunks/chunk-BVEW6MKL.js";
|
package/dist/export/drawio.js
CHANGED
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
shiftOf,
|
|
10
10
|
toDrawio,
|
|
11
11
|
toneColour
|
|
12
|
-
} from "../chunks/chunk-
|
|
12
|
+
} from "../chunks/chunk-OW32YCZ6.js";
|
|
13
13
|
import "../chunks/chunk-YNEJJZMA.js";
|
|
14
14
|
import "../chunks/chunk-AXSX5DJE.js";
|
|
15
15
|
import "../chunks/chunk-X3DEH47B.js";
|
|
16
|
-
import "../chunks/chunk-
|
|
17
|
-
import "../chunks/chunk-
|
|
16
|
+
import "../chunks/chunk-KXD6FX2Z.js";
|
|
17
|
+
import "../chunks/chunk-LELKMVJG.js";
|
|
18
18
|
import "../chunks/chunk-X4UNEUME.js";
|
|
19
19
|
import "../chunks/chunk-RLCV7OFW.js";
|
|
20
20
|
import "../chunks/chunk-OY4PP6RF.js";
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
LAYOUT_FIX,
|
|
3
3
|
flowLayoutProblems,
|
|
4
4
|
layoutProblems
|
|
5
|
-
} from "../chunks/chunk-
|
|
5
|
+
} from "../chunks/chunk-TEJARYAE.js";
|
|
6
6
|
import "../chunks/chunk-SD6TCN3P.js";
|
|
7
|
-
import "../chunks/chunk-
|
|
8
|
-
import "../chunks/chunk-
|
|
7
|
+
import "../chunks/chunk-KXD6FX2Z.js";
|
|
8
|
+
import "../chunks/chunk-LELKMVJG.js";
|
|
9
9
|
import "../chunks/chunk-X4UNEUME.js";
|
|
10
10
|
import "../chunks/chunk-RLCV7OFW.js";
|
|
11
11
|
import "../chunks/chunk-KSM4O2XL.js";
|
package/dist/export/scene.js
CHANGED
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
levelSuffix,
|
|
3
3
|
portCentre,
|
|
4
4
|
scenesOf
|
|
5
|
-
} from "../chunks/chunk-
|
|
6
|
-
import "../chunks/chunk-
|
|
5
|
+
} from "../chunks/chunk-KXD6FX2Z.js";
|
|
6
|
+
import "../chunks/chunk-LELKMVJG.js";
|
|
7
7
|
import "../chunks/chunk-X4UNEUME.js";
|
|
8
8
|
import "../chunks/chunk-OY4PP6RF.js";
|
|
9
9
|
import "../chunks/chunk-TS4N2EIO.js";
|
package/dist/export/svg.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sceneSvg,
|
|
3
3
|
toSvg
|
|
4
|
-
} from "../chunks/chunk-
|
|
4
|
+
} from "../chunks/chunk-37FKZNRN.js";
|
|
5
5
|
import "../chunks/chunk-JWYLAANO.js";
|
|
6
6
|
import "../chunks/chunk-NCPIAK5Y.js";
|
|
7
|
-
import "../chunks/chunk-
|
|
7
|
+
import "../chunks/chunk-OW32YCZ6.js";
|
|
8
8
|
import "../chunks/chunk-YNEJJZMA.js";
|
|
9
9
|
import "../chunks/chunk-AXSX5DJE.js";
|
|
10
10
|
import "../chunks/chunk-X3DEH47B.js";
|
|
11
|
-
import "../chunks/chunk-
|
|
12
|
-
import "../chunks/chunk-
|
|
11
|
+
import "../chunks/chunk-KXD6FX2Z.js";
|
|
12
|
+
import "../chunks/chunk-LELKMVJG.js";
|
|
13
13
|
import "../chunks/chunk-X4UNEUME.js";
|
|
14
14
|
import "../chunks/chunk-RLCV7OFW.js";
|
|
15
15
|
import "../chunks/chunk-OY4PP6RF.js";
|
package/dist/flow/commands.d.ts
CHANGED
|
@@ -152,6 +152,16 @@ export type FlowCommand = {
|
|
|
152
152
|
field: ContractField | null;
|
|
153
153
|
/** New name for the field (rename keeps the definition). */
|
|
154
154
|
rename?: string;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* AFD-287: a fact an earlier step sets (set_fact) read by `reader`: an output of that name on
|
|
158
|
+
* the setter (a fact needs no `from:`) and an input of the reader from it, in one edit.
|
|
159
|
+
*/
|
|
160
|
+
| {
|
|
161
|
+
kind: 'useFact';
|
|
162
|
+
reader: Ulid;
|
|
163
|
+
setter: Ulid;
|
|
164
|
+
name: string;
|
|
155
165
|
} | {
|
|
156
166
|
kind: 'updateFlow';
|
|
157
167
|
patch: FlowPatch;
|
package/dist/flow/commands.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
planCommand,
|
|
7
7
|
shadowedKeys,
|
|
8
8
|
testedFinding
|
|
9
|
-
} from "../chunks/chunk-
|
|
9
|
+
} from "../chunks/chunk-TOTSB4HG.js";
|
|
10
10
|
import "../chunks/chunk-SN7X6FYV.js";
|
|
11
11
|
import "../chunks/chunk-24G5UVEF.js";
|
|
12
12
|
import "../chunks/chunk-CORZL72E.js";
|
|
@@ -16,6 +16,7 @@ import "../chunks/chunk-GK3SD3WE.js";
|
|
|
16
16
|
import "../chunks/chunk-H6ARLMMI.js";
|
|
17
17
|
import "../chunks/chunk-TG3C3GIL.js";
|
|
18
18
|
import "../chunks/chunk-WISXIO3I.js";
|
|
19
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
19
20
|
import "../chunks/chunk-WG7O3OBV.js";
|
|
20
21
|
import "../chunks/chunk-NUGJSYSP.js";
|
|
21
22
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
@@ -28,6 +29,7 @@ import "../chunks/chunk-HFHXHOBC.js";
|
|
|
28
29
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
29
30
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
30
31
|
import "../chunks/chunk-OEQXGULI.js";
|
|
32
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
31
33
|
import "../chunks/chunk-BVEW6MKL.js";
|
|
32
34
|
import "../chunks/chunk-BUPWGYNF.js";
|
|
33
35
|
import "../chunks/chunk-WKETMTKT.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FlowModel } from './model';
|
|
2
|
+
import type { FlowNode } from './types';
|
|
3
|
+
/** The facts a set_fact step sets: its parameters' keys (`cacheable` is an option). */
|
|
4
|
+
export declare function setFactNames(impl: FlowNode['impl']): string[];
|
|
5
|
+
/** The nearest step that runs before `reader` and sets `name` with set_fact. */
|
|
6
|
+
export declare function factSetter(model: FlowModel, reader: FlowNode, name: string): FlowNode | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
factSetter,
|
|
3
|
+
setFactNames
|
|
4
|
+
} from "../chunks/chunk-FIKPXL6E.js";
|
|
5
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
6
|
+
import "../chunks/chunk-BUPWGYNF.js";
|
|
7
|
+
import "../chunks/chunk-WKETMTKT.js";
|
|
8
|
+
import "../chunks/chunk-2OD7UZ7V.js";
|
|
9
|
+
export {
|
|
10
|
+
factSetter,
|
|
11
|
+
setFactNames
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=facts.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Modules that read a local file, the parameter naming it and the subfolder Ansible looks in. */
|
|
2
|
+
export declare const LOCAL_FILES: Record<string, {
|
|
3
|
+
param: string;
|
|
4
|
+
sub: string;
|
|
5
|
+
}>;
|
|
6
|
+
/** The variable generated plays set to the repository root. */
|
|
7
|
+
export declare const REPO_ROOT_VAR = "afd_repo_root";
|
|
8
|
+
/**
|
|
9
|
+
* The repository file a module step names by a relative path, as written; undefined when it names
|
|
10
|
+
* none (another module, a remote source, an absolute or templated path).
|
|
11
|
+
*/
|
|
12
|
+
export declare function localFileOf(module: string, params: unknown): {
|
|
13
|
+
param: string;
|
|
14
|
+
path: string;
|
|
15
|
+
} | undefined;
|
|
16
|
+
/** The params with a relative repository file written from `{{ afd_repo_root }}`. */
|
|
17
|
+
export declare function rootedParams(module: string, params: unknown): unknown;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LOCAL_FILES,
|
|
3
|
+
REPO_ROOT_VAR,
|
|
4
|
+
localFileOf,
|
|
5
|
+
rootedParams
|
|
6
|
+
} from "../chunks/chunk-OJZSZBHW.js";
|
|
7
|
+
import "../chunks/chunk-LNFMYJUJ.js";
|
|
8
|
+
export {
|
|
9
|
+
LOCAL_FILES,
|
|
10
|
+
REPO_ROOT_VAR,
|
|
11
|
+
localFileOf,
|
|
12
|
+
rootedParams
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=localFiles.js.map
|
package/dist/flow/save.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
implementedAgain
|
|
3
|
-
} from "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-TOTSB4HG.js";
|
|
4
4
|
import "../chunks/chunk-SN7X6FYV.js";
|
|
5
5
|
import "../chunks/chunk-24G5UVEF.js";
|
|
6
6
|
import {
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
versionBump
|
|
17
17
|
} from "../chunks/chunk-TG3C3GIL.js";
|
|
18
18
|
import "../chunks/chunk-WISXIO3I.js";
|
|
19
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
19
20
|
import "../chunks/chunk-WG7O3OBV.js";
|
|
20
21
|
import "../chunks/chunk-NUGJSYSP.js";
|
|
21
22
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
@@ -28,6 +29,7 @@ import "../chunks/chunk-HFHXHOBC.js";
|
|
|
28
29
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
29
30
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
30
31
|
import "../chunks/chunk-OEQXGULI.js";
|
|
32
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
31
33
|
import "../chunks/chunk-BVEW6MKL.js";
|
|
32
34
|
import "../chunks/chunk-BUPWGYNF.js";
|
|
33
35
|
import "../chunks/chunk-WKETMTKT.js";
|
package/dist/flow/save.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/core/flow/save.ts"],
|
|
4
4
|
"sourcesContent": ["// Edits made on save: tested nodes whose design changed since the file on disk are implemented again\n// (decision 15; hand edits in the text editor, canvas commands already did it), then flow.version\n// moves once relative to Git HEAD or the last saved text (ADR-0006).\nimport type { TextEdit } from '../yaml/edits';\nimport { setIn } from '../yaml/ops';\nimport { YamlTransaction } from '../yaml/transaction';\nimport { implementedAgain } from './commands';\nimport { flowFromFile, parseFlow } from './document';\nimport { testedDropBack, versionBump } from './semantic';\nimport type { Ulid } from './types';\n\nexport interface SavePlan {\n edits: TextEdit[];\n dropped: Ulid[];\n}\n\n/** `saved` is the file on disk before this save, `base` the version bump's base. */\nexport function planSave(text: string, saved?: string, base?: string): SavePlan {\n const current = parseFlow(text);\n if (!current.doc) return { edits: [], dropped: [] };\n const tx = new YamlTransaction(text, current.file);\n const savedDoc = saved === undefined ? undefined : parseFlow(saved).doc;\n const dropped = savedDoc ? testedDropBack(savedDoc, current.doc) : [];\n if (dropped.length > 0) implementedAgain(tx, dropped);\n const baseDoc = base === undefined ? undefined : parseFlow(base).doc;\n const now = flowFromFile(tx.current).doc;\n const next = baseDoc && now ? versionBump(now, baseDoc) : undefined;\n if (next !== undefined) tx.apply((f) => setIn(f, ['flow', 'version'], next));\n return { edits: tx.edits(), dropped };\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBO,SAAS,SAAS,MAAc,OAAgB,MAAyB;AAC9E,QAAM,UAAU,UAAU,IAAI;AAC9B,MAAI,CAAC,QAAQ,IAAK,QAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE;AAClD,QAAM,KAAK,IAAI,gBAAgB,MAAM,QAAQ,IAAI;AACjD,QAAM,WAAW,UAAU,SAAY,SAAY,UAAU,KAAK,EAAE;AACpE,QAAM,UAAU,WAAW,eAAe,UAAU,QAAQ,GAAG,IAAI,CAAC;AACpE,MAAI,QAAQ,SAAS,EAAG,kBAAiB,IAAI,OAAO;AACpD,QAAM,UAAU,SAAS,SAAY,SAAY,UAAU,IAAI,EAAE;AACjE,QAAM,MAAM,aAAa,GAAG,OAAO,EAAE;AACrC,QAAM,OAAO,WAAW,MAAM,YAAY,KAAK,OAAO,IAAI;AAC1D,MAAI,SAAS,OAAW,IAAG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,QAAQ,SAAS,GAAG,IAAI,CAAC;AAC3E,SAAO,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ;AACtC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/flow/validate.js
CHANGED
|
@@ -5,15 +5,15 @@ import {
|
|
|
5
5
|
bareParams,
|
|
6
6
|
pointerToPath,
|
|
7
7
|
validateFlow
|
|
8
|
-
} from "../chunks/chunk-
|
|
8
|
+
} from "../chunks/chunk-PNLY5IWM.js";
|
|
9
9
|
import "../chunks/chunk-OREXQ4IZ.js";
|
|
10
10
|
import "../chunks/chunk-KSM4O2XL.js";
|
|
11
|
-
import "../chunks/chunk-T6SZLRDM.js";
|
|
12
11
|
import "../chunks/chunk-7D55CRGU.js";
|
|
13
12
|
import "../chunks/chunk-GK3SD3WE.js";
|
|
14
13
|
import "../chunks/chunk-H6ARLMMI.js";
|
|
15
14
|
import "../chunks/chunk-TG3C3GIL.js";
|
|
16
15
|
import "../chunks/chunk-WISXIO3I.js";
|
|
16
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
17
17
|
import "../chunks/chunk-WG7O3OBV.js";
|
|
18
18
|
import "../chunks/chunk-NUGJSYSP.js";
|
|
19
19
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
@@ -26,6 +26,7 @@ import "../chunks/chunk-HFHXHOBC.js";
|
|
|
26
26
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
27
27
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
28
28
|
import "../chunks/chunk-OEQXGULI.js";
|
|
29
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
29
30
|
import "../chunks/chunk-AJRIS5VY.js";
|
|
30
31
|
import "../chunks/chunk-GQ2W4RTY.js";
|
|
31
32
|
import "../chunks/chunk-BVEW6MKL.js";
|
package/dist/import/outline.js
CHANGED
|
@@ -4,27 +4,28 @@ import {
|
|
|
4
4
|
paged,
|
|
5
5
|
sourceOutline,
|
|
6
6
|
taskBinding
|
|
7
|
-
} from "../chunks/chunk-
|
|
8
|
-
import "../chunks/chunk-
|
|
7
|
+
} from "../chunks/chunk-57KJYXWA.js";
|
|
8
|
+
import "../chunks/chunk-OGNFHW5O.js";
|
|
9
9
|
import "../chunks/chunk-IYVI5MSS.js";
|
|
10
|
-
import "../chunks/chunk-
|
|
11
|
-
import "../chunks/chunk-
|
|
12
|
-
import "../chunks/chunk-5CD65KH3.js";
|
|
10
|
+
import "../chunks/chunk-OJZSZBHW.js";
|
|
11
|
+
import "../chunks/chunk-CATQHJS6.js";
|
|
13
12
|
import "../chunks/chunk-6L43PFIN.js";
|
|
13
|
+
import "../chunks/chunk-5CD65KH3.js";
|
|
14
14
|
import "../chunks/chunk-PDUQ3KMW.js";
|
|
15
|
+
import "../chunks/chunk-LNFMYJUJ.js";
|
|
15
16
|
import "../chunks/chunk-BAZIS67B.js";
|
|
16
17
|
import "../chunks/chunk-TC7FOG4T.js";
|
|
17
18
|
import "../chunks/chunk-75QLJHZ5.js";
|
|
18
19
|
import "../chunks/chunk-LMTTJDCC.js";
|
|
19
|
-
import "../chunks/chunk-
|
|
20
|
+
import "../chunks/chunk-PNLY5IWM.js";
|
|
20
21
|
import "../chunks/chunk-OREXQ4IZ.js";
|
|
21
22
|
import "../chunks/chunk-KSM4O2XL.js";
|
|
22
|
-
import "../chunks/chunk-T6SZLRDM.js";
|
|
23
23
|
import "../chunks/chunk-7D55CRGU.js";
|
|
24
24
|
import "../chunks/chunk-GK3SD3WE.js";
|
|
25
25
|
import "../chunks/chunk-H6ARLMMI.js";
|
|
26
26
|
import "../chunks/chunk-TG3C3GIL.js";
|
|
27
27
|
import "../chunks/chunk-WISXIO3I.js";
|
|
28
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
28
29
|
import "../chunks/chunk-WG7O3OBV.js";
|
|
29
30
|
import "../chunks/chunk-NUGJSYSP.js";
|
|
30
31
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
@@ -37,6 +38,7 @@ import "../chunks/chunk-HFHXHOBC.js";
|
|
|
37
38
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
38
39
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
39
40
|
import "../chunks/chunk-OEQXGULI.js";
|
|
41
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
40
42
|
import "../chunks/chunk-AJRIS5VY.js";
|
|
41
43
|
import "../chunks/chunk-GQ2W4RTY.js";
|
|
42
44
|
import "../chunks/chunk-BVEW6MKL.js";
|
package/dist/import/playbook.js
CHANGED
|
@@ -3,24 +3,24 @@ import {
|
|
|
3
3
|
flatPlays,
|
|
4
4
|
importPlaybook,
|
|
5
5
|
mainPlay
|
|
6
|
-
} from "../chunks/chunk-
|
|
7
|
-
import "../chunks/chunk-LNFMYJUJ.js";
|
|
8
|
-
import "../chunks/chunk-5CD65KH3.js";
|
|
6
|
+
} from "../chunks/chunk-CATQHJS6.js";
|
|
9
7
|
import "../chunks/chunk-6L43PFIN.js";
|
|
8
|
+
import "../chunks/chunk-5CD65KH3.js";
|
|
10
9
|
import "../chunks/chunk-PDUQ3KMW.js";
|
|
10
|
+
import "../chunks/chunk-LNFMYJUJ.js";
|
|
11
11
|
import "../chunks/chunk-BAZIS67B.js";
|
|
12
12
|
import "../chunks/chunk-TC7FOG4T.js";
|
|
13
13
|
import "../chunks/chunk-75QLJHZ5.js";
|
|
14
14
|
import "../chunks/chunk-LMTTJDCC.js";
|
|
15
|
-
import "../chunks/chunk-
|
|
15
|
+
import "../chunks/chunk-PNLY5IWM.js";
|
|
16
16
|
import "../chunks/chunk-OREXQ4IZ.js";
|
|
17
17
|
import "../chunks/chunk-KSM4O2XL.js";
|
|
18
|
-
import "../chunks/chunk-T6SZLRDM.js";
|
|
19
18
|
import "../chunks/chunk-7D55CRGU.js";
|
|
20
19
|
import "../chunks/chunk-GK3SD3WE.js";
|
|
21
20
|
import "../chunks/chunk-H6ARLMMI.js";
|
|
22
21
|
import "../chunks/chunk-TG3C3GIL.js";
|
|
23
22
|
import "../chunks/chunk-WISXIO3I.js";
|
|
23
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
24
24
|
import "../chunks/chunk-WG7O3OBV.js";
|
|
25
25
|
import "../chunks/chunk-NUGJSYSP.js";
|
|
26
26
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
@@ -33,6 +33,7 @@ import "../chunks/chunk-HFHXHOBC.js";
|
|
|
33
33
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
34
34
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
35
35
|
import "../chunks/chunk-OEQXGULI.js";
|
|
36
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
36
37
|
import "../chunks/chunk-AJRIS5VY.js";
|
|
37
38
|
import "../chunks/chunk-GQ2W4RTY.js";
|
|
38
39
|
import "../chunks/chunk-BVEW6MKL.js";
|
package/dist/import/source.js
CHANGED
|
@@ -2,9 +2,10 @@ import {
|
|
|
2
2
|
parseKv,
|
|
3
3
|
readPlaybook,
|
|
4
4
|
scanFolder
|
|
5
|
-
} from "../chunks/chunk-
|
|
6
|
-
import "../chunks/chunk-
|
|
5
|
+
} from "../chunks/chunk-OGNFHW5O.js";
|
|
6
|
+
import "../chunks/chunk-OJZSZBHW.js";
|
|
7
7
|
import "../chunks/chunk-6L43PFIN.js";
|
|
8
|
+
import "../chunks/chunk-LNFMYJUJ.js";
|
|
8
9
|
import "../chunks/chunk-TC7FOG4T.js";
|
|
9
10
|
import "../chunks/chunk-OEQXGULI.js";
|
|
10
11
|
import "../chunks/chunk-VHCA4A7K.js";
|
package/dist/lens/caption.js
CHANGED
package/dist/lens/data.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
dataLens
|
|
3
|
-
} from "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-2DT5DOSO.js";
|
|
4
4
|
import "../chunks/chunk-LQZOPIIG.js";
|
|
5
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
6
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
5
7
|
import "../chunks/chunk-BUPWGYNF.js";
|
|
6
8
|
import "../chunks/chunk-WKETMTKT.js";
|
|
7
9
|
import "../chunks/chunk-VHCA4A7K.js";
|
package/dist/lens/index.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
timingLens
|
|
3
3
|
} from "../chunks/chunk-VEYR53BH.js";
|
|
4
|
+
import {
|
|
5
|
+
accessLens
|
|
6
|
+
} from "../chunks/chunk-WS52COFG.js";
|
|
7
|
+
import {
|
|
8
|
+
declaredTarget,
|
|
9
|
+
inventoryLens
|
|
10
|
+
} from "../chunks/chunk-KWEFZFLC.js";
|
|
4
11
|
import {
|
|
5
12
|
LENSES
|
|
6
|
-
} from "../chunks/chunk-
|
|
13
|
+
} from "../chunks/chunk-O5Y3AZ4X.js";
|
|
7
14
|
import {
|
|
8
15
|
changesLens
|
|
9
16
|
} from "../chunks/chunk-YQ2WXJLS.js";
|
|
@@ -12,14 +19,7 @@ import {
|
|
|
12
19
|
} from "../chunks/chunk-4N3AN5CJ.js";
|
|
13
20
|
import {
|
|
14
21
|
dataLens
|
|
15
|
-
} from "../chunks/chunk-
|
|
16
|
-
import {
|
|
17
|
-
accessLens
|
|
18
|
-
} from "../chunks/chunk-WS52COFG.js";
|
|
19
|
-
import {
|
|
20
|
-
declaredTarget,
|
|
21
|
-
inventoryLens
|
|
22
|
-
} from "../chunks/chunk-KWEFZFLC.js";
|
|
22
|
+
} from "../chunks/chunk-2DT5DOSO.js";
|
|
23
23
|
import {
|
|
24
24
|
incoming,
|
|
25
25
|
title
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
import "../chunks/chunk-BAZIS67B.js";
|
|
33
33
|
import "../chunks/chunk-XOVPLQDM.js";
|
|
34
34
|
import "../chunks/chunk-TG3C3GIL.js";
|
|
35
|
+
import "../chunks/chunk-FIKPXL6E.js";
|
|
35
36
|
import "../chunks/chunk-XRGZNPPO.js";
|
|
36
37
|
import "../chunks/chunk-VG3RKETK.js";
|
|
37
38
|
import "../chunks/chunk-TS4N2EIO.js";
|
|
@@ -39,6 +40,7 @@ import "../chunks/chunk-BCX7P6SV.js";
|
|
|
39
40
|
import "../chunks/chunk-HFHXHOBC.js";
|
|
40
41
|
import "../chunks/chunk-RKLF3DLT.js";
|
|
41
42
|
import "../chunks/chunk-GTHXWNCC.js";
|
|
43
|
+
import "../chunks/chunk-T6SZLRDM.js";
|
|
42
44
|
import {
|
|
43
45
|
durationSeconds
|
|
44
46
|
} from "../chunks/chunk-GQ2W4RTY.js";
|
package/dist/lens/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/core/lens/index.ts"],
|
|
4
4
|
"sourcesContent": ["// One entry point for the webview: the active lens's view with accepted findings marked, and the\n// summary card rows of semantic zoom (D-19), which draw on every lens's facts.\nimport { durationSeconds } from '../engine/util';\nimport { acceptedAll } from '../flow/decisions';\nimport { modelOf } from '../flow/model';\nimport type { FlowDocument, FlowNode } from '../flow/types';\nimport type { RunView } from '../protocol';\nimport { formatSeconds, nodeHosts } from '../run/view';\nimport { accessLens } from './access';\nimport { changesLens } from './changes';\nimport { codeLens } from './code';\nimport { incoming, title } from './common';\nimport { dataLens } from './data';\nimport { declaredTarget, inventoryLens } from './inventory';\nimport { timingLens } from './timing';\nimport type { LensFacts, LensId, LensView } from './types';\n\nexport function lensView(\n lens: LensId,\n doc: FlowDocument,\n facts: LensFacts,\n run: RunView | null,\n): LensView {\n const view =\n lens === 'inventory'\n ? inventoryLens(doc, facts.inventory, run, facts.code)\n : lens === 'data'\n ? dataLens(doc)\n : lens === 'code'\n ? codeLens(doc, facts.code)\n : lens === 'access'\n ? accessLens(doc, facts.inventory, facts.code)\n : lens === 'changes'\n ? changesLens(doc, facts.compare)\n : timingLens(doc, facts.timing);\n const accepted = new Map(\n acceptedAll(doc)\n .filter((a) => a.area === 'lens')\n .map((a) => [a.what, { reason: a.reason ?? '', by: a.by }]),\n );\n const rank = (f: LensView['findings'][number]) =>\n (f.accepted ? 2 : 0) + (f.severity === 'warning' ? 0 : 1);\n view.findings = view.findings\n .map((f) => (accepted.has(f.id) ? { ...f, accepted: accepted.get(f.id) } : f))\n .sort((a, b) => rank(a) - rank(b));\n return view;\n}\n\nexport interface SummaryRow {\n label: string;\n value: string;\n}\n\n/** Mockup 08 \"zoomed in or selected\": hosts, limit, data, binding, access, timing. */\nexport function summaryRows(\n doc: FlowDocument,\n node: FlowNode,\n facts: LensFacts,\n run: RunView | null,\n): SummaryRow[] {\n const model = modelOf(doc);\n const rows: SummaryRow[] = [];\n const add = (label: string, value: string | undefined) => {\n if (value) rows.push({ label, value });\n };\n const inv = facts.inventory?.state === 'ready' ? facts.inventory.facts : undefined;\n const targets = inv?.targets ?? facts.inventory?.targets ?? '';\n const pattern = declaredTarget(doc, node, targets, facts.code)?.pattern ?? targets;\n if (pattern) {\n const count = inv?.patterns[pattern]?.count;\n const ran = run?.summary ? nodeHosts(run.summary, node.id).length : undefined;\n add('hosts', `${pattern}${count !== undefined ? ` \u00B7 ${count}` : ''}${ran ? ` \u2192 ${ran}` : ''}`);\n }\n const from = incoming(model, node.id);\n if (from.length > 0)\n add(\n 'limit',\n `${from[0]?.port} from ${title(model, from[0]?.from ?? '')}${from.length > 1 ? ` +${from.length - 1}` : ''}`,\n );\n add('inputs', Object.keys(node.inputs ?? {}).join(', '));\n add('outputs', Object.keys(node.outputs ?? {}).join(', '));\n const code = facts.code?.nodes[node.id];\n if (node.impl?.ref)\n add(node.impl.kind, `${node.impl.ref}${code?.version ? ` ${code.version}` : ''}`);\n if (code?.collection)\n add(\n 'collection',\n `${code.collection}${facts.code?.collections[code.collection] ? ` ${facts.code.collections[code.collection]}` : ''}`,\n );\n add('credential', node.settings?.credential);\n if (node.settings?.become) add('become', 'yes');\n const s = node.settings ?? {};\n const limits = [\n s.serial !== undefined ? `${s.serial}` : '',\n s.timeout ? `timeout ${s.timeout}` : '',\n s.retries ? `retries ${s.retries}` : '',\n ].filter(Boolean);\n add('serial', limits.join(' \u00B7 '));\n const t = facts.timing?.nodes[node.id];\n if (t) add('duration', `avg ${formatSeconds(t.avg)} \u00B7 p95 ${formatSeconds(t.p95)}`);\n else if (durationSeconds(s.timeout) === undefined && run?.summary?.timings?.[node.id]) {\n const x = run.summary.timings[node.id];\n if (x) add('duration', `last ${formatSeconds(x.end - x.start)}`);\n }\n return rows;\n}\n\nexport type { LensFacts, LensId, LensView } from './types';\nexport { LENSES } from './types';\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/lens/types.d.ts
CHANGED
|
@@ -62,6 +62,8 @@ export interface DataWire {
|
|
|
62
62
|
to: Ulid;
|
|
63
63
|
label: string;
|
|
64
64
|
title: string;
|
|
65
|
+
/** AFD-287: a value read without an input (a fact an earlier step sets): drawn as a warning. */
|
|
66
|
+
undeclared?: boolean;
|
|
65
67
|
}
|
|
66
68
|
/** A node of the compared version that is gone (AFD-57): drawn as a ghost on its level. */
|
|
67
69
|
export interface GhostNode {
|
package/dist/lens/types.js
CHANGED
package/dist/messageCheck.js
CHANGED
|
@@ -35,6 +35,8 @@ function messageProblem(m) {
|
|
|
35
35
|
return isMap(m.request) ? void 0 : "scenarioEdit: bad request";
|
|
36
36
|
case "runScenarios":
|
|
37
37
|
return strList(m.names) ? void 0 : "runScenarios: bad names";
|
|
38
|
+
case "serverUpdate":
|
|
39
|
+
return typeof m.show === "boolean" ? void 0 : "serverUpdate: bad show";
|
|
38
40
|
case "mergeChoose":
|
|
39
41
|
return str(m.id, 500) && (m.side === "ours" || m.side === "theirs") ? void 0 : "mergeChoose: bad choice";
|
|
40
42
|
case "lens":
|
package/dist/messageCheck.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/core/messageCheck.ts"],
|
|
4
|
-
"sourcesContent": ["// AFD-165: the host checks what a designer webview sends before acting on it. The webview runs\n// under a strict CSP with no HTML sinks, so a compromised page is unlikely; these checks keep one\n// from turning a message into a git option, a file outside the workspace or a probe argument.\n// Shape only: what a value means (a known ref, a path inside the folder) is checked where it is\n// used.\n\nconst isMap = (v: unknown): v is Record<string, unknown> =>\n !!v && typeof v === 'object' && !Array.isArray(v);\n\nconst str = (v: unknown, max = 4096): v is string => typeof v === 'string' && v.length <= max;\nconst optNum = (v: unknown) => v === undefined || (typeof v === 'number' && Number.isFinite(v));\nconst strList = (v: unknown) =>\n v === undefined || (Array.isArray(v) && v.every((x) => str(x, 200)));\n\n/** A plugin name the probe looks up: dotted words, no option or path syntax. */\nexport const PLUGIN_NAME = /^[A-Za-z0-9_][A-Za-z0-9_.]{0,199}$/;\n\n/** A git revision a designer may ask to compare with: never an option (`-\u2026`), no spaces. */\nexport const GIT_REF = /^[A-Za-z0-9_][A-Za-z0-9_./@{}^~-]{0,199}$/;\n\nconst CATALOG_OPS = new Set(['search', 'doc', 'roles', 'playbooks', 'rebuild']);\n\nfunction catalogProblem(r: unknown): string | undefined {\n if (!isMap(r) || !CATALOG_OPS.has(String(r.op))) return 'catalog: unknown request';\n if (r.op === 'search' && (!str(r.query, 500) || !strList(r.types))) return 'catalog: bad search';\n if (r.op === 'doc' && (!str(r.fqcn) || !PLUGIN_NAME.test(r.fqcn)))\n return 'catalog: not a plugin name';\n return undefined;\n}\n\n/** Why a message from the webview is refused, or undefined when its shape is right. */\nexport function messageProblem(m: unknown): string | undefined {\n if (!isMap(m) || !str(m.type, 64)) return 'not a designer message';\n if ('reqId' in m && !optNum(m.reqId)) return `${m.type}: bad reqId`;\n switch (m.type) {\n case 'openCode':\n return str(m.path) && m.path !== '' && optNum(m.line) ? undefined : 'openCode: bad path';\n case 'openText':\n return m.path === undefined ||\n (Array.isArray(m.path) &&\n m.path.every((p) => str(p, 1000) || (typeof p === 'number' && Number.isInteger(p))))\n ? undefined\n : 'openText: bad path';\n case 'compareWith':\n return str(m.ref, 200) && GIT_REF.test(m.ref) ? undefined : 'compareWith: bad ref';\n case 'catalog':\n return catalogProblem(m.request);\n case 'openLink':\n return str(m.url) ? undefined : 'openLink: bad url';\n case 'copyText':\n return str(m.text, 10_000_000) && optNum(m.count) ? undefined : 'copyText: bad text';\n case 'command':\n return isMap(m.command) && str(m.command.kind, 64) ? undefined : 'command: bad command';\n case 'scenarioEdit':\n return isMap(m.request) ? undefined : 'scenarioEdit: bad request';\n case 'runScenarios':\n return strList(m.names) ? undefined : 'runScenarios: bad names';\n case 'mergeChoose':\n return str(m.id, 500) && (m.side === 'ours' || m.side === 'theirs')\n ? undefined\n : 'mergeChoose: bad choice';\n case 'lens':\n return m.lens === null || str(m.lens, 64) ? undefined : 'lens: bad lens';\n default:\n return undefined;\n }\n}\n"],
|
|
5
|
-
"mappings": ";AAMA,IAAM,QAAQ,CAAC,MACb,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAElD,IAAM,MAAM,CAAC,GAAY,MAAM,SAAsB,OAAO,MAAM,YAAY,EAAE,UAAU;AAC1F,IAAM,SAAS,CAAC,MAAe,MAAM,UAAc,OAAO,MAAM,YAAY,OAAO,SAAS,CAAC;AAC7F,IAAM,UAAU,CAAC,MACf,MAAM,UAAc,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC;AAG7D,IAAM,cAAc;AAGpB,IAAM,UAAU;AAEvB,IAAM,cAAc,oBAAI,IAAI,CAAC,UAAU,OAAO,SAAS,aAAa,SAAS,CAAC;AAE9E,SAAS,eAAe,GAAgC;AACtD,MAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,OAAO,EAAE,EAAE,CAAC,EAAG,QAAO;AACxD,MAAI,EAAE,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAI,QAAO;AAC3E,MAAI,EAAE,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,YAAY,KAAK,EAAE,IAAI;AAC7D,WAAO;AACT,SAAO;AACT;AAGO,SAAS,eAAe,GAAgC;AAC7D,MAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,QAAO;AAC1C,MAAI,WAAW,KAAK,CAAC,OAAO,EAAE,KAAK,EAAG,QAAO,GAAG,EAAE,IAAI;AACtD,UAAQ,EAAE,MAAM;AAAA,IACd,KAAK;AACH,aAAO,IAAI,EAAE,IAAI,KAAK,EAAE,SAAS,MAAM,OAAO,EAAE,IAAI,IAAI,SAAY;AAAA,IACtE,KAAK;AACH,aAAO,EAAE,SAAS,UACf,MAAM,QAAQ,EAAE,IAAI,KACnB,EAAE,KAAK,MAAM,CAAC,MAAM,IAAI,GAAG,GAAI,KAAM,OAAO,MAAM,YAAY,OAAO,UAAU,CAAC,CAAE,IAClF,SACA;AAAA,IACN,KAAK;AACH,aAAO,IAAI,EAAE,KAAK,GAAG,KAAK,QAAQ,KAAK,EAAE,GAAG,IAAI,SAAY;AAAA,IAC9D,KAAK;AACH,aAAO,eAAe,EAAE,OAAO;AAAA,IACjC,KAAK;AACH,aAAO,IAAI,EAAE,GAAG,IAAI,SAAY;AAAA,IAClC,KAAK;AACH,aAAO,IAAI,EAAE,MAAM,GAAU,KAAK,OAAO,EAAE,KAAK,IAAI,SAAY;AAAA,IAClE,KAAK;AACH,aAAO,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,QAAQ,MAAM,EAAE,IAAI,SAAY;AAAA,IACnE,KAAK;AACH,aAAO,MAAM,EAAE,OAAO,IAAI,SAAY;AAAA,IACxC,KAAK;AACH,aAAO,QAAQ,EAAE,KAAK,IAAI,SAAY;AAAA,IACxC,KAAK;AACH,aAAO,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,UAAU,EAAE,SAAS,YACtD,SACA;AAAA,IACN,KAAK;AACH,aAAO,EAAE,SAAS,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,SAAY;AAAA,IAC1D;AACE,aAAO;AAAA,EACX;AACF;",
|
|
4
|
+
"sourcesContent": ["// AFD-165: the host checks what a designer webview sends before acting on it. The webview runs\n// under a strict CSP with no HTML sinks, so a compromised page is unlikely; these checks keep one\n// from turning a message into a git option, a file outside the workspace or a probe argument.\n// Shape only: what a value means (a known ref, a path inside the folder) is checked where it is\n// used.\n\nconst isMap = (v: unknown): v is Record<string, unknown> =>\n !!v && typeof v === 'object' && !Array.isArray(v);\n\nconst str = (v: unknown, max = 4096): v is string => typeof v === 'string' && v.length <= max;\nconst optNum = (v: unknown) => v === undefined || (typeof v === 'number' && Number.isFinite(v));\nconst strList = (v: unknown) =>\n v === undefined || (Array.isArray(v) && v.every((x) => str(x, 200)));\n\n/** A plugin name the probe looks up: dotted words, no option or path syntax. */\nexport const PLUGIN_NAME = /^[A-Za-z0-9_][A-Za-z0-9_.]{0,199}$/;\n\n/** A git revision a designer may ask to compare with: never an option (`-\u2026`), no spaces. */\nexport const GIT_REF = /^[A-Za-z0-9_][A-Za-z0-9_./@{}^~-]{0,199}$/;\n\nconst CATALOG_OPS = new Set(['search', 'doc', 'roles', 'playbooks', 'rebuild']);\n\nfunction catalogProblem(r: unknown): string | undefined {\n if (!isMap(r) || !CATALOG_OPS.has(String(r.op))) return 'catalog: unknown request';\n if (r.op === 'search' && (!str(r.query, 500) || !strList(r.types))) return 'catalog: bad search';\n if (r.op === 'doc' && (!str(r.fqcn) || !PLUGIN_NAME.test(r.fqcn)))\n return 'catalog: not a plugin name';\n return undefined;\n}\n\n/** Why a message from the webview is refused, or undefined when its shape is right. */\nexport function messageProblem(m: unknown): string | undefined {\n if (!isMap(m) || !str(m.type, 64)) return 'not a designer message';\n if ('reqId' in m && !optNum(m.reqId)) return `${m.type}: bad reqId`;\n switch (m.type) {\n case 'openCode':\n return str(m.path) && m.path !== '' && optNum(m.line) ? undefined : 'openCode: bad path';\n case 'openText':\n return m.path === undefined ||\n (Array.isArray(m.path) &&\n m.path.every((p) => str(p, 1000) || (typeof p === 'number' && Number.isInteger(p))))\n ? undefined\n : 'openText: bad path';\n case 'compareWith':\n return str(m.ref, 200) && GIT_REF.test(m.ref) ? undefined : 'compareWith: bad ref';\n case 'catalog':\n return catalogProblem(m.request);\n case 'openLink':\n return str(m.url) ? undefined : 'openLink: bad url';\n case 'copyText':\n return str(m.text, 10_000_000) && optNum(m.count) ? undefined : 'copyText: bad text';\n case 'command':\n return isMap(m.command) && str(m.command.kind, 64) ? undefined : 'command: bad command';\n case 'scenarioEdit':\n return isMap(m.request) ? undefined : 'scenarioEdit: bad request';\n case 'runScenarios':\n return strList(m.names) ? undefined : 'runScenarios: bad names';\n case 'serverUpdate':\n return typeof m.show === 'boolean' ? undefined : 'serverUpdate: bad show';\n case 'mergeChoose':\n return str(m.id, 500) && (m.side === 'ours' || m.side === 'theirs')\n ? undefined\n : 'mergeChoose: bad choice';\n case 'lens':\n return m.lens === null || str(m.lens, 64) ? undefined : 'lens: bad lens';\n default:\n return undefined;\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAMA,IAAM,QAAQ,CAAC,MACb,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAElD,IAAM,MAAM,CAAC,GAAY,MAAM,SAAsB,OAAO,MAAM,YAAY,EAAE,UAAU;AAC1F,IAAM,SAAS,CAAC,MAAe,MAAM,UAAc,OAAO,MAAM,YAAY,OAAO,SAAS,CAAC;AAC7F,IAAM,UAAU,CAAC,MACf,MAAM,UAAc,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC;AAG7D,IAAM,cAAc;AAGpB,IAAM,UAAU;AAEvB,IAAM,cAAc,oBAAI,IAAI,CAAC,UAAU,OAAO,SAAS,aAAa,SAAS,CAAC;AAE9E,SAAS,eAAe,GAAgC;AACtD,MAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,OAAO,EAAE,EAAE,CAAC,EAAG,QAAO;AACxD,MAAI,EAAE,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAI,QAAO;AAC3E,MAAI,EAAE,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,YAAY,KAAK,EAAE,IAAI;AAC7D,WAAO;AACT,SAAO;AACT;AAGO,SAAS,eAAe,GAAgC;AAC7D,MAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,QAAO;AAC1C,MAAI,WAAW,KAAK,CAAC,OAAO,EAAE,KAAK,EAAG,QAAO,GAAG,EAAE,IAAI;AACtD,UAAQ,EAAE,MAAM;AAAA,IACd,KAAK;AACH,aAAO,IAAI,EAAE,IAAI,KAAK,EAAE,SAAS,MAAM,OAAO,EAAE,IAAI,IAAI,SAAY;AAAA,IACtE,KAAK;AACH,aAAO,EAAE,SAAS,UACf,MAAM,QAAQ,EAAE,IAAI,KACnB,EAAE,KAAK,MAAM,CAAC,MAAM,IAAI,GAAG,GAAI,KAAM,OAAO,MAAM,YAAY,OAAO,UAAU,CAAC,CAAE,IAClF,SACA;AAAA,IACN,KAAK;AACH,aAAO,IAAI,EAAE,KAAK,GAAG,KAAK,QAAQ,KAAK,EAAE,GAAG,IAAI,SAAY;AAAA,IAC9D,KAAK;AACH,aAAO,eAAe,EAAE,OAAO;AAAA,IACjC,KAAK;AACH,aAAO,IAAI,EAAE,GAAG,IAAI,SAAY;AAAA,IAClC,KAAK;AACH,aAAO,IAAI,EAAE,MAAM,GAAU,KAAK,OAAO,EAAE,KAAK,IAAI,SAAY;AAAA,IAClE,KAAK;AACH,aAAO,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,QAAQ,MAAM,EAAE,IAAI,SAAY;AAAA,IACnE,KAAK;AACH,aAAO,MAAM,EAAE,OAAO,IAAI,SAAY;AAAA,IACxC,KAAK;AACH,aAAO,QAAQ,EAAE,KAAK,IAAI,SAAY;AAAA,IACxC,KAAK;AACH,aAAO,OAAO,EAAE,SAAS,YAAY,SAAY;AAAA,IACnD,KAAK;AACH,aAAO,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,UAAU,EAAE,SAAS,YACtD,SACA;AAAA,IACN,KAAK;AACH,aAAO,EAAE,SAAS,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,SAAY;AAAA,IAC1D;AACE,aAAO;AAAA,EACX;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|