@ansible-flow/core 0.86.0 → 0.87.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.
Files changed (90) hide show
  1. package/README.md +1 -1
  2. package/dist/ai/describe.js +4 -3
  3. package/dist/ai/handlers.js +16 -15
  4. package/dist/ai/handlers.js.map +1 -1
  5. package/dist/ai/ops.js +5 -4
  6. package/dist/ai/scenarios.js +8 -6
  7. package/dist/awx/import.js +6 -5
  8. package/dist/catalog/draft.d.ts +2 -0
  9. package/dist/catalog/draft.js +23 -4
  10. package/dist/catalog/draft.js.map +2 -2
  11. package/dist/chunks/{chunk-BXHI5EQM.js → chunk-2DT5DOSO.js} +43 -1
  12. package/dist/chunks/chunk-2DT5DOSO.js.map +7 -0
  13. package/dist/chunks/{chunk-CXVJWFGT.js → chunk-2MJKBPGG.js} +2 -2
  14. package/dist/chunks/{chunk-JTWR3TGG.js → chunk-2P3JEHLH.js} +4 -4
  15. package/dist/chunks/{chunk-H7Z2FBRD.js → chunk-3Z4WABFK.js} +6 -6
  16. package/dist/chunks/{chunk-ZAYNYPCX.js → chunk-ARA3VJR2.js} +2 -2
  17. package/dist/chunks/{chunk-TPRZZHXA.js → chunk-BNMW6KWK.js} +7 -7
  18. package/dist/chunks/{chunk-CM23ODBB.js → chunk-DL4LYODQ.js} +2 -2
  19. package/dist/chunks/chunk-FIKPXL6E.js +23 -0
  20. package/dist/chunks/chunk-FIKPXL6E.js.map +7 -0
  21. package/dist/chunks/{chunk-ABYJBONR.js → chunk-FMCBTYUM.js} +3 -3
  22. package/dist/chunks/{chunk-J7KCGVHU.js → chunk-HPRG2672.js} +2 -2
  23. package/dist/chunks/{chunk-NT62IE3Y.js → chunk-IXW7A4M7.js} +2 -2
  24. package/dist/chunks/{chunk-DHU774ES.js → chunk-IZJPLWDY.js} +2 -2
  25. package/dist/chunks/{chunk-MZ6IJWB2.js → chunk-KZALUEFT.js} +2 -2
  26. package/dist/chunks/{chunk-XOPGOWNQ.js → chunk-O5Y3AZ4X.js} +1 -1
  27. package/dist/chunks/chunk-O5Y3AZ4X.js.map +7 -0
  28. package/dist/chunks/{chunk-2QQC4IZ7.js → chunk-PNLY5IWM.js} +8 -8
  29. package/dist/chunks/chunk-PNLY5IWM.js.map +7 -0
  30. package/dist/chunks/{chunk-5XGAGNH5.js → chunk-QMIXDOU6.js} +5 -5
  31. package/dist/chunks/{chunk-T5UB4MBB.js → chunk-TOTSB4HG.js} +41 -1
  32. package/dist/chunks/chunk-TOTSB4HG.js.map +7 -0
  33. package/dist/chunks/{chunk-7GLSXIZ3.js → chunk-W2CSOAIB.js} +2 -2
  34. package/dist/chunks/{chunk-UXIXXEIW.js → chunk-WSARMPYU.js} +2 -2
  35. package/dist/engine/bypass.js +4 -2
  36. package/dist/engine/engines.js +6 -4
  37. package/dist/engine/files.js +6 -4
  38. package/dist/engine/optionA.js +5 -3
  39. package/dist/engine/partial.js +3 -1
  40. package/dist/engine/partial.js.map +1 -1
  41. package/dist/engine/preview.js +6 -4
  42. package/dist/engine/preview.js.map +1 -1
  43. package/dist/engine/writePlan.js +9 -8
  44. package/dist/flow/commands.d.ts +10 -0
  45. package/dist/flow/commands.js +3 -1
  46. package/dist/flow/facts.d.ts +6 -0
  47. package/dist/flow/facts.js +13 -0
  48. package/dist/flow/facts.js.map +7 -0
  49. package/dist/flow/save.js +3 -1
  50. package/dist/flow/save.js.map +1 -1
  51. package/dist/flow/validate.js +3 -2
  52. package/dist/import/outline.js +7 -6
  53. package/dist/import/playbook.js +5 -4
  54. package/dist/import/source.js +2 -2
  55. package/dist/lens/caption.js +1 -1
  56. package/dist/lens/data.js +3 -1
  57. package/dist/lens/index.js +11 -9
  58. package/dist/lens/index.js.map +1 -1
  59. package/dist/lens/types.d.ts +2 -0
  60. package/dist/lens/types.js +1 -1
  61. package/dist/messageCheck.js +2 -0
  62. package/dist/messageCheck.js.map +2 -2
  63. package/dist/protocol.d.ts +17 -0
  64. package/dist/scenario/live.js +7 -5
  65. package/dist/scenario/simulate.js +6 -4
  66. package/dist/view/flowFacts.js +9 -8
  67. package/dist/view/flowFacts.js.map +1 -1
  68. package/dist/view/jinjaComplete.js +3 -3
  69. package/dist/view/serverChange.d.ts +23 -0
  70. package/dist/view/serverChange.js +48 -0
  71. package/dist/view/serverChange.js.map +7 -0
  72. package/package.json +1 -1
  73. package/dist/chunks/chunk-2QQC4IZ7.js.map +0 -7
  74. package/dist/chunks/chunk-BXHI5EQM.js.map +0 -7
  75. package/dist/chunks/chunk-T5UB4MBB.js.map +0 -7
  76. package/dist/chunks/chunk-XOPGOWNQ.js.map +0 -7
  77. /package/dist/chunks/{chunk-CXVJWFGT.js.map → chunk-2MJKBPGG.js.map} +0 -0
  78. /package/dist/chunks/{chunk-JTWR3TGG.js.map → chunk-2P3JEHLH.js.map} +0 -0
  79. /package/dist/chunks/{chunk-H7Z2FBRD.js.map → chunk-3Z4WABFK.js.map} +0 -0
  80. /package/dist/chunks/{chunk-ZAYNYPCX.js.map → chunk-ARA3VJR2.js.map} +0 -0
  81. /package/dist/chunks/{chunk-TPRZZHXA.js.map → chunk-BNMW6KWK.js.map} +0 -0
  82. /package/dist/chunks/{chunk-CM23ODBB.js.map → chunk-DL4LYODQ.js.map} +0 -0
  83. /package/dist/chunks/{chunk-ABYJBONR.js.map → chunk-FMCBTYUM.js.map} +0 -0
  84. /package/dist/chunks/{chunk-J7KCGVHU.js.map → chunk-HPRG2672.js.map} +0 -0
  85. /package/dist/chunks/{chunk-NT62IE3Y.js.map → chunk-IXW7A4M7.js.map} +0 -0
  86. /package/dist/chunks/{chunk-DHU774ES.js.map → chunk-IZJPLWDY.js.map} +0 -0
  87. /package/dist/chunks/{chunk-MZ6IJWB2.js.map → chunk-KZALUEFT.js.map} +0 -0
  88. /package/dist/chunks/{chunk-5XGAGNH5.js.map → chunk-QMIXDOU6.js.map} +0 -0
  89. /package/dist/chunks/{chunk-7GLSXIZ3.js.map → chunk-W2CSOAIB.js.map} +0 -0
  90. /package/dist/chunks/{chunk-UXIXXEIW.js.map → chunk-WSARMPYU.js.map} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-TH6ICGA5.js";
8
8
  import {
9
9
  optionA
10
- } from "./chunk-CXVJWFGT.js";
10
+ } from "./chunk-2MJKBPGG.js";
11
11
  import {
12
12
  resolvePattern
13
13
  } from "./chunk-LPBLGBDT.js";
@@ -280,4 +280,4 @@ export {
280
280
  simulateRun,
281
281
  simulateScenario
282
282
  };
283
- //# sourceMappingURL=chunk-7GLSXIZ3.js.map
283
+ //# sourceMappingURL=chunk-W2CSOAIB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CHECKSUM_PREFIX
3
- } from "./chunk-CXVJWFGT.js";
3
+ } from "./chunk-2MJKBPGG.js";
4
4
  import {
5
5
  checksum
6
6
  } from "./chunk-BAZIS67B.js";
@@ -22,4 +22,4 @@ export {
22
22
  GENERATED_MARK,
23
23
  generatedState
24
24
  };
25
- //# sourceMappingURL=chunk-UXIXXEIW.js.map
25
+ //# sourceMappingURL=chunk-WSARMPYU.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  withoutDisabled
3
- } from "../chunks/chunk-ZAYNYPCX.js";
4
- import "../chunks/chunk-T5UB4MBB.js";
3
+ } from "../chunks/chunk-ARA3VJR2.js";
4
+ import "../chunks/chunk-TOTSB4HG.js";
5
5
  import "../chunks/chunk-SN7X6FYV.js";
6
6
  import "../chunks/chunk-24G5UVEF.js";
7
7
  import "../chunks/chunk-CORZL72E.js";
@@ -11,6 +11,7 @@ import "../chunks/chunk-GK3SD3WE.js";
11
11
  import "../chunks/chunk-H6ARLMMI.js";
12
12
  import "../chunks/chunk-TG3C3GIL.js";
13
13
  import "../chunks/chunk-WISXIO3I.js";
14
+ import "../chunks/chunk-FIKPXL6E.js";
14
15
  import "../chunks/chunk-WG7O3OBV.js";
15
16
  import "../chunks/chunk-NUGJSYSP.js";
16
17
  import "../chunks/chunk-XRGZNPPO.js";
@@ -23,6 +24,7 @@ import "../chunks/chunk-HFHXHOBC.js";
23
24
  import "../chunks/chunk-RKLF3DLT.js";
24
25
  import "../chunks/chunk-GTHXWNCC.js";
25
26
  import "../chunks/chunk-OEQXGULI.js";
27
+ import "../chunks/chunk-T6SZLRDM.js";
26
28
  import "../chunks/chunk-BVEW6MKL.js";
27
29
  import "../chunks/chunk-BUPWGYNF.js";
28
30
  import "../chunks/chunk-WKETMTKT.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  engineFor
3
- } from "../chunks/chunk-J7KCGVHU.js";
4
- import "../chunks/chunk-CXVJWFGT.js";
3
+ } from "../chunks/chunk-HPRG2672.js";
4
+ import "../chunks/chunk-2MJKBPGG.js";
5
5
  import "../chunks/chunk-OEEHAY5X.js";
6
6
  import "../chunks/chunk-LPBLGBDT.js";
7
7
  import "../chunks/chunk-6MLYGFT6.js";
8
- import "../chunks/chunk-ZAYNYPCX.js";
8
+ import "../chunks/chunk-ARA3VJR2.js";
9
9
  import "../chunks/chunk-56VTJ6YF.js";
10
10
  import "../chunks/chunk-BAZIS67B.js";
11
11
  import "../chunks/chunk-X3DEH47B.js";
12
- import "../chunks/chunk-T5UB4MBB.js";
12
+ import "../chunks/chunk-TOTSB4HG.js";
13
13
  import "../chunks/chunk-SN7X6FYV.js";
14
14
  import "../chunks/chunk-24G5UVEF.js";
15
15
  import "../chunks/chunk-CORZL72E.js";
@@ -20,6 +20,7 @@ import "../chunks/chunk-GK3SD3WE.js";
20
20
  import "../chunks/chunk-H6ARLMMI.js";
21
21
  import "../chunks/chunk-TG3C3GIL.js";
22
22
  import "../chunks/chunk-WISXIO3I.js";
23
+ import "../chunks/chunk-FIKPXL6E.js";
23
24
  import "../chunks/chunk-WG7O3OBV.js";
24
25
  import "../chunks/chunk-NUGJSYSP.js";
25
26
  import "../chunks/chunk-XRGZNPPO.js";
@@ -32,6 +33,7 @@ import "../chunks/chunk-HFHXHOBC.js";
32
33
  import "../chunks/chunk-RKLF3DLT.js";
33
34
  import "../chunks/chunk-GTHXWNCC.js";
34
35
  import "../chunks/chunk-OEQXGULI.js";
36
+ import "../chunks/chunk-T6SZLRDM.js";
35
37
  import "../chunks/chunk-AJRIS5VY.js";
36
38
  import "../chunks/chunk-GQ2W4RTY.js";
37
39
  import "../chunks/chunk-BVEW6MKL.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  GENERATED_MARK,
3
3
  generatedState
4
- } from "../chunks/chunk-UXIXXEIW.js";
5
- import "../chunks/chunk-CXVJWFGT.js";
4
+ } from "../chunks/chunk-WSARMPYU.js";
5
+ import "../chunks/chunk-2MJKBPGG.js";
6
6
  import "../chunks/chunk-OEEHAY5X.js";
7
7
  import "../chunks/chunk-LPBLGBDT.js";
8
8
  import "../chunks/chunk-6MLYGFT6.js";
9
- import "../chunks/chunk-ZAYNYPCX.js";
9
+ import "../chunks/chunk-ARA3VJR2.js";
10
10
  import "../chunks/chunk-56VTJ6YF.js";
11
11
  import "../chunks/chunk-BAZIS67B.js";
12
12
  import "../chunks/chunk-X3DEH47B.js";
13
- import "../chunks/chunk-T5UB4MBB.js";
13
+ import "../chunks/chunk-TOTSB4HG.js";
14
14
  import "../chunks/chunk-SN7X6FYV.js";
15
15
  import "../chunks/chunk-24G5UVEF.js";
16
16
  import "../chunks/chunk-CORZL72E.js";
@@ -21,6 +21,7 @@ import "../chunks/chunk-GK3SD3WE.js";
21
21
  import "../chunks/chunk-H6ARLMMI.js";
22
22
  import "../chunks/chunk-TG3C3GIL.js";
23
23
  import "../chunks/chunk-WISXIO3I.js";
24
+ import "../chunks/chunk-FIKPXL6E.js";
24
25
  import "../chunks/chunk-WG7O3OBV.js";
25
26
  import "../chunks/chunk-NUGJSYSP.js";
26
27
  import "../chunks/chunk-XRGZNPPO.js";
@@ -33,6 +34,7 @@ import "../chunks/chunk-HFHXHOBC.js";
33
34
  import "../chunks/chunk-RKLF3DLT.js";
34
35
  import "../chunks/chunk-GTHXWNCC.js";
35
36
  import "../chunks/chunk-OEQXGULI.js";
37
+ import "../chunks/chunk-T6SZLRDM.js";
36
38
  import "../chunks/chunk-AJRIS5VY.js";
37
39
  import "../chunks/chunk-GQ2W4RTY.js";
38
40
  import "../chunks/chunk-BVEW6MKL.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  CHECKSUM_PREFIX,
3
3
  optionA
4
- } from "../chunks/chunk-CXVJWFGT.js";
4
+ } from "../chunks/chunk-2MJKBPGG.js";
5
5
  import "../chunks/chunk-OEEHAY5X.js";
6
6
  import "../chunks/chunk-LPBLGBDT.js";
7
7
  import "../chunks/chunk-6MLYGFT6.js";
8
- import "../chunks/chunk-ZAYNYPCX.js";
8
+ import "../chunks/chunk-ARA3VJR2.js";
9
9
  import "../chunks/chunk-56VTJ6YF.js";
10
10
  import "../chunks/chunk-BAZIS67B.js";
11
11
  import "../chunks/chunk-X3DEH47B.js";
12
- import "../chunks/chunk-T5UB4MBB.js";
12
+ import "../chunks/chunk-TOTSB4HG.js";
13
13
  import "../chunks/chunk-SN7X6FYV.js";
14
14
  import "../chunks/chunk-24G5UVEF.js";
15
15
  import "../chunks/chunk-CORZL72E.js";
@@ -20,6 +20,7 @@ import "../chunks/chunk-GK3SD3WE.js";
20
20
  import "../chunks/chunk-H6ARLMMI.js";
21
21
  import "../chunks/chunk-TG3C3GIL.js";
22
22
  import "../chunks/chunk-WISXIO3I.js";
23
+ import "../chunks/chunk-FIKPXL6E.js";
23
24
  import "../chunks/chunk-WG7O3OBV.js";
24
25
  import "../chunks/chunk-NUGJSYSP.js";
25
26
  import "../chunks/chunk-XRGZNPPO.js";
@@ -32,6 +33,7 @@ import "../chunks/chunk-HFHXHOBC.js";
32
33
  import "../chunks/chunk-RKLF3DLT.js";
33
34
  import "../chunks/chunk-GTHXWNCC.js";
34
35
  import "../chunks/chunk-OEQXGULI.js";
36
+ import "../chunks/chunk-T6SZLRDM.js";
35
37
  import "../chunks/chunk-AJRIS5VY.js";
36
38
  import "../chunks/chunk-GQ2W4RTY.js";
37
39
  import "../chunks/chunk-BVEW6MKL.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  planCommand
3
- } from "../chunks/chunk-T5UB4MBB.js";
3
+ } from "../chunks/chunk-TOTSB4HG.js";
4
4
  import "../chunks/chunk-SN7X6FYV.js";
5
5
  import "../chunks/chunk-24G5UVEF.js";
6
6
  import "../chunks/chunk-CORZL72E.js";
@@ -12,6 +12,7 @@ import "../chunks/chunk-GK3SD3WE.js";
12
12
  import "../chunks/chunk-H6ARLMMI.js";
13
13
  import "../chunks/chunk-TG3C3GIL.js";
14
14
  import "../chunks/chunk-WISXIO3I.js";
15
+ import "../chunks/chunk-FIKPXL6E.js";
15
16
  import {
16
17
  CONTINUES_ON
17
18
  } from "../chunks/chunk-WG7O3OBV.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";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/core/engine/partial.ts"],
4
4
  "sourcesContent": ["// AFD-244: the flow a partial run executes. \"Run from Here\" starts the hosts at a top-level step\n// instead of the flow's first one; \"Run This Step\" runs that step alone. The flow is trimmed the\n// way Delete trims it (no healing: the steps before are not passed through, they are not there):\n// the start node is wired to the chosen step and the steps the run does not reach are taken out.\n// A step that read an output of a step taken out would find no value, so it runs as its TODO\n// stub, and the run says which steps those are. Skeleton runs only (product-owner decision): a\n// real run on part of a flow could act on data that was never made.\nimport { parse, stringify } from 'yaml';\nimport { type FlowCommand, planCommand } from '../flow/commands';\nimport { CONTINUES_ON } from '../flow/heal';\nimport { createIdFactory } from '../flow/ids';\nimport { buildModel, ROOT } from '../flow/model';\nimport type { FlowDocument, FlowNode, Ulid } from '../flow/types';\nimport { descendantIds } from '../flow/walk';\n\nexport interface PartialRun {\n /** The step the hosts start at. */\n node: Ulid;\n /** Run that step alone. */\n only: boolean;\n}\n\nexport interface PartialFlow {\n doc: FlowDocument;\n /** How many top-level steps the run leaves out. */\n skipped: number;\n /** Steps run as stubs because they read a step that is left out, with what they read. */\n stubbed: { node: Ulid; title: string; reads: string[] }[];\n}\n\n/** Why a partial run cannot start at this node, or undefined when it can. */\nexport function partialProblem(doc: FlowDocument, node: Ulid): string | undefined {\n const model = buildModel(doc);\n const entry = model.nodes.get(node);\n if (!entry) return 'No such node';\n if (entry.level !== ROOT) return 'A run starts at a step of the top level: open the top level';\n if (entry.node.type === 'start' || entry.node.type === 'end')\n return 'A run starts at a step, not at a start or end node';\n if (!(model.levels.get(ROOT)?.nodes ?? []).some((n) => n?.type === 'start'))\n return 'The flow has no start node';\n return undefined;\n}\n\n// IDs for the wires made for the run only; the flow file never sees them.\nconst noIds = { newId: createIdFactory() };\n\nexport function partialFlow(doc: FlowDocument, run: PartialRun): PartialFlow | { error: string } {\n const problem = partialProblem(doc, run.node);\n if (problem) return { error: problem };\n const model = buildModel(doc);\n const root = model.levels.get(ROOT);\n const nodes = (root?.nodes ?? []).filter((n): n is FlowNode => !!n?.id);\n const edges = (root?.edges ?? []).filter((e) => !!e?.from && !!e.to);\n const start = nodes.find((n) => n.type === 'start') as FlowNode;\n const target = model.nodes.get(run.node)?.node as FlowNode;\n\n // What the run reaches: the step alone, or everything after it.\n const reached = new Set<Ulid>([run.node]);\n if (!run.only)\n for (const stack = [run.node]; stack.length > 0; ) {\n const at = stack.pop() as Ulid;\n for (const e of edges)\n if (e.from.node === at && !reached.has(e.to.node)) {\n reached.add(e.to.node);\n stack.push(e.to.node);\n }\n }\n const skipped = nodes.filter((n) => n.id !== start.id && n.type !== 'end' && !reached.has(n.id));\n\n const cmds: FlowCommand[] = [];\n // The steps left out go first: the wire that is then made from Start cannot close a loop.\n if (skipped.length > 0) cmds.push({ kind: 'deleteNodes', ids: skipped.map((n) => n.id) });\n let text = stringify(doc);\n try {\n for (const c of cmds) text = planCommand(text, c, noIds).text;\n // Start now leads to the chosen step, and nowhere else.\n for (;;) {\n const now = buildModel(parse(text) as FlowDocument).levels.get(ROOT);\n const out = (now?.edges ?? []).find((e) => e?.from?.node === start.id);\n if (!out) break;\n if (out.to.node === run.node && out.to.port === 'in') break;\n text = planCommand(text, { kind: 'disconnect', edge: out.id }, noIds).text;\n }\n const wired = buildModel(parse(text) as FlowDocument).levels.get(ROOT);\n if (!(wired?.edges ?? []).some((e) => e?.from?.node === start.id)) {\n text = planCommand(\n text,\n {\n kind: 'connect',\n from: { node: start.id, port: 'ok_hosts' },\n to: { node: run.node, port: 'in' },\n },\n noIds,\n ).text;\n }\n // One step alone: its hosts go on to a successful end, when the flow has one.\n if (run.only) {\n const now = buildModel(parse(text) as FlowDocument).levels.get(ROOT);\n const port = CONTINUES_ON[target.type];\n const end = (now?.nodes ?? []).find((n) => n?.type === 'end' && n.outcome !== 'failed');\n const free =\n port && !(now?.edges ?? []).some((e) => e?.from?.node === run.node && e.from.port === port);\n if (port && end && free)\n text = planCommand(\n text,\n { kind: 'connect', from: { node: run.node, port }, to: { node: end.id, port: 'in' } },\n noIds,\n ).text;\n }\n } catch (e) {\n return {\n error: `The flow cannot be trimmed for this run: ${e instanceof Error ? e.message : String(e)}`,\n };\n }\n\n const out = parse(text) as FlowDocument;\n // A field that read a step left out has lost its `from` (deleteNodes): its step runs as a stub.\n const before = model;\n const after = buildModel(out);\n const stubbed: PartialFlow['stubbed'] = [];\n for (const { node } of after.nodes.values()) {\n const was = before.nodes.get(node.id)?.node;\n if (!was) continue;\n const reads = Object.entries(was.inputs ?? {})\n .filter(([name, f]) => !!f?.from && !node.inputs?.[name]?.from)\n .map(([, f]) => f?.from as string);\n if (reads.length === 0) continue;\n // A subflow hands its inputs to the steps inside it: they are stubs too.\n const inside = new Set([node.id, ...descendantIds(node)]);\n let any = false;\n for (const id of inside) {\n const n = after.nodes.get(id)?.node;\n if (n?.impl) {\n delete (n as { impl?: unknown }).impl;\n any = true;\n }\n }\n if (any) stubbed.push({ node: node.id, title: node.title, reads });\n }\n return { doc: out, skipped: skipped.length, stubbed };\n}\n\n/** \"from Validate\" or \"Validate alone\", with what was left out, for the run's panel. */\nexport function partialLine(title: string, only: boolean, flow: PartialFlow): string {\n const what = only ? `Ran \"${title}\" alone` : `Ran from \"${title}\"`;\n const left = flow.skipped\n ? `; ${flow.skipped} step${flow.skipped === 1 ? '' : 's'} before it did not run`\n : '';\n const stubs = flow.stubbed.length\n ? `. As stubs, since they read a step that did not run: ${flow.stubbed.map((s) => s.title).join(', ')}`\n : '';\n return `${what}${left}${stubs}`;\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["out"]
7
7
  }
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  engineFor
3
- } from "../chunks/chunk-J7KCGVHU.js";
4
- import "../chunks/chunk-CXVJWFGT.js";
3
+ } from "../chunks/chunk-HPRG2672.js";
4
+ import "../chunks/chunk-2MJKBPGG.js";
5
5
  import "../chunks/chunk-OEEHAY5X.js";
6
6
  import "../chunks/chunk-LPBLGBDT.js";
7
7
  import "../chunks/chunk-6MLYGFT6.js";
8
- import "../chunks/chunk-ZAYNYPCX.js";
8
+ import "../chunks/chunk-ARA3VJR2.js";
9
9
  import "../chunks/chunk-56VTJ6YF.js";
10
10
  import "../chunks/chunk-BAZIS67B.js";
11
11
  import "../chunks/chunk-X3DEH47B.js";
12
- import "../chunks/chunk-T5UB4MBB.js";
12
+ import "../chunks/chunk-TOTSB4HG.js";
13
13
  import "../chunks/chunk-SN7X6FYV.js";
14
14
  import "../chunks/chunk-24G5UVEF.js";
15
15
  import "../chunks/chunk-CORZL72E.js";
@@ -20,6 +20,7 @@ import "../chunks/chunk-GK3SD3WE.js";
20
20
  import "../chunks/chunk-H6ARLMMI.js";
21
21
  import "../chunks/chunk-TG3C3GIL.js";
22
22
  import "../chunks/chunk-WISXIO3I.js";
23
+ import "../chunks/chunk-FIKPXL6E.js";
23
24
  import "../chunks/chunk-WG7O3OBV.js";
24
25
  import "../chunks/chunk-NUGJSYSP.js";
25
26
  import "../chunks/chunk-XRGZNPPO.js";
@@ -32,6 +33,7 @@ import "../chunks/chunk-HFHXHOBC.js";
32
33
  import "../chunks/chunk-RKLF3DLT.js";
33
34
  import "../chunks/chunk-GTHXWNCC.js";
34
35
  import "../chunks/chunk-OEQXGULI.js";
36
+ import "../chunks/chunk-T6SZLRDM.js";
35
37
  import "../chunks/chunk-AJRIS5VY.js";
36
38
  import "../chunks/chunk-GQ2W4RTY.js";
37
39
  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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;",
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
  }
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  planGenerated
3
- } from "../chunks/chunk-JTWR3TGG.js";
4
- import "../chunks/chunk-J7KCGVHU.js";
5
- import "../chunks/chunk-UXIXXEIW.js";
6
- import "../chunks/chunk-CXVJWFGT.js";
3
+ } from "../chunks/chunk-2P3JEHLH.js";
4
+ import "../chunks/chunk-HPRG2672.js";
5
+ import "../chunks/chunk-WSARMPYU.js";
6
+ import "../chunks/chunk-2MJKBPGG.js";
7
7
  import "../chunks/chunk-OEEHAY5X.js";
8
8
  import "../chunks/chunk-LPBLGBDT.js";
9
9
  import "../chunks/chunk-6MLYGFT6.js";
10
- import "../chunks/chunk-ZAYNYPCX.js";
10
+ import "../chunks/chunk-ARA3VJR2.js";
11
11
  import "../chunks/chunk-56VTJ6YF.js";
12
12
  import "../chunks/chunk-BAZIS67B.js";
13
13
  import "../chunks/chunk-X3DEH47B.js";
14
- import "../chunks/chunk-T5UB4MBB.js";
14
+ import "../chunks/chunk-TOTSB4HG.js";
15
15
  import "../chunks/chunk-SN7X6FYV.js";
16
16
  import "../chunks/chunk-24G5UVEF.js";
17
17
  import "../chunks/chunk-CORZL72E.js";
18
18
  import "../chunks/chunk-75QLJHZ5.js";
19
19
  import "../chunks/chunk-LMTTJDCC.js";
20
- import "../chunks/chunk-2QQC4IZ7.js";
20
+ import "../chunks/chunk-PNLY5IWM.js";
21
21
  import "../chunks/chunk-OREXQ4IZ.js";
22
22
  import "../chunks/chunk-KSM4O2XL.js";
23
- import "../chunks/chunk-T6SZLRDM.js";
24
23
  import "../chunks/chunk-7D55CRGU.js";
25
24
  import "../chunks/chunk-GK3SD3WE.js";
26
25
  import "../chunks/chunk-H6ARLMMI.js";
27
26
  import "../chunks/chunk-TG3C3GIL.js";
28
27
  import "../chunks/chunk-WISXIO3I.js";
28
+ import "../chunks/chunk-FIKPXL6E.js";
29
29
  import "../chunks/chunk-WG7O3OBV.js";
30
30
  import "../chunks/chunk-NUGJSYSP.js";
31
31
  import "../chunks/chunk-XRGZNPPO.js";
@@ -38,6 +38,7 @@ import "../chunks/chunk-HFHXHOBC.js";
38
38
  import "../chunks/chunk-RKLF3DLT.js";
39
39
  import "../chunks/chunk-GTHXWNCC.js";
40
40
  import "../chunks/chunk-OEQXGULI.js";
41
+ import "../chunks/chunk-T6SZLRDM.js";
41
42
  import "../chunks/chunk-AJRIS5VY.js";
42
43
  import "../chunks/chunk-GQ2W4RTY.js";
43
44
  import "../chunks/chunk-BVEW6MKL.js";
@@ -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;
@@ -6,7 +6,7 @@ import {
6
6
  planCommand,
7
7
  shadowedKeys,
8
8
  testedFinding
9
- } from "../chunks/chunk-T5UB4MBB.js";
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,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
package/dist/flow/save.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  implementedAgain
3
- } from "../chunks/chunk-T5UB4MBB.js";
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";
@@ -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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;",
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
  }
@@ -5,15 +5,15 @@ import {
5
5
  bareParams,
6
6
  pointerToPath,
7
7
  validateFlow
8
- } from "../chunks/chunk-2QQC4IZ7.js";
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";
@@ -4,27 +4,27 @@ import {
4
4
  paged,
5
5
  sourceOutline,
6
6
  taskBinding
7
- } from "../chunks/chunk-TPRZZHXA.js";
8
- import "../chunks/chunk-5XGAGNH5.js";
7
+ } from "../chunks/chunk-BNMW6KWK.js";
8
+ import "../chunks/chunk-QMIXDOU6.js";
9
9
  import "../chunks/chunk-IYVI5MSS.js";
10
- import "../chunks/chunk-H7Z2FBRD.js";
10
+ import "../chunks/chunk-3Z4WABFK.js";
11
+ import "../chunks/chunk-6L43PFIN.js";
11
12
  import "../chunks/chunk-LNFMYJUJ.js";
12
13
  import "../chunks/chunk-5CD65KH3.js";
13
- import "../chunks/chunk-6L43PFIN.js";
14
14
  import "../chunks/chunk-PDUQ3KMW.js";
15
15
  import "../chunks/chunk-BAZIS67B.js";
16
16
  import "../chunks/chunk-TC7FOG4T.js";
17
17
  import "../chunks/chunk-75QLJHZ5.js";
18
18
  import "../chunks/chunk-LMTTJDCC.js";
19
- import "../chunks/chunk-2QQC4IZ7.js";
19
+ import "../chunks/chunk-PNLY5IWM.js";
20
20
  import "../chunks/chunk-OREXQ4IZ.js";
21
21
  import "../chunks/chunk-KSM4O2XL.js";
22
- import "../chunks/chunk-T6SZLRDM.js";
23
22
  import "../chunks/chunk-7D55CRGU.js";
24
23
  import "../chunks/chunk-GK3SD3WE.js";
25
24
  import "../chunks/chunk-H6ARLMMI.js";
26
25
  import "../chunks/chunk-TG3C3GIL.js";
27
26
  import "../chunks/chunk-WISXIO3I.js";
27
+ import "../chunks/chunk-FIKPXL6E.js";
28
28
  import "../chunks/chunk-WG7O3OBV.js";
29
29
  import "../chunks/chunk-NUGJSYSP.js";
30
30
  import "../chunks/chunk-XRGZNPPO.js";
@@ -37,6 +37,7 @@ import "../chunks/chunk-HFHXHOBC.js";
37
37
  import "../chunks/chunk-RKLF3DLT.js";
38
38
  import "../chunks/chunk-GTHXWNCC.js";
39
39
  import "../chunks/chunk-OEQXGULI.js";
40
+ import "../chunks/chunk-T6SZLRDM.js";
40
41
  import "../chunks/chunk-AJRIS5VY.js";
41
42
  import "../chunks/chunk-GQ2W4RTY.js";
42
43
  import "../chunks/chunk-BVEW6MKL.js";
@@ -3,24 +3,24 @@ import {
3
3
  flatPlays,
4
4
  importPlaybook,
5
5
  mainPlay
6
- } from "../chunks/chunk-H7Z2FBRD.js";
6
+ } from "../chunks/chunk-3Z4WABFK.js";
7
+ import "../chunks/chunk-6L43PFIN.js";
7
8
  import "../chunks/chunk-LNFMYJUJ.js";
8
9
  import "../chunks/chunk-5CD65KH3.js";
9
- import "../chunks/chunk-6L43PFIN.js";
10
10
  import "../chunks/chunk-PDUQ3KMW.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-2QQC4IZ7.js";
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";
@@ -2,9 +2,9 @@ import {
2
2
  parseKv,
3
3
  readPlaybook,
4
4
  scanFolder
5
- } from "../chunks/chunk-5XGAGNH5.js";
6
- import "../chunks/chunk-LNFMYJUJ.js";
5
+ } from "../chunks/chunk-QMIXDOU6.js";
7
6
  import "../chunks/chunk-6L43PFIN.js";
7
+ import "../chunks/chunk-LNFMYJUJ.js";
8
8
  import "../chunks/chunk-TC7FOG4T.js";
9
9
  import "../chunks/chunk-OEQXGULI.js";
10
10
  import "../chunks/chunk-VHCA4A7K.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LENSES
3
- } from "../chunks/chunk-XOPGOWNQ.js";
3
+ } from "../chunks/chunk-O5Y3AZ4X.js";
4
4
 
5
5
  // src/core/lens/caption.ts
6
6
  var EMPTY = {
package/dist/lens/data.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import {
2
2
  dataLens
3
- } from "../chunks/chunk-BXHI5EQM.js";
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";
@@ -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-XOPGOWNQ.js";
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-BXHI5EQM.js";
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";