@field/cascade 0.5.2 → 0.7.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 (52) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/dist/assets/{CodeEditor-BHej8kM9.js → CodeEditor-DkpxJFRs.js} +7 -7
  3. package/dist/assets/{CodePanel-CT3eirK8.js → CodePanel-O31InnQg.js} +2 -2
  4. package/dist/assets/{CustomNodeDialog-BG0m7_Rv.js → CustomNodeDialog-Cn3sT-M2.js} +1 -1
  5. package/dist/assets/{ProjectSettings-BxoLWJG6.js → ProjectSettings-BzEmtsYc.js} +2 -2
  6. package/dist/assets/{SettingsDialog-r9PzZ22z.js → SettingsDialog-zWct7T8j.js} +1 -1
  7. package/dist/assets/{VersionHistoryDialog-B6zUV6Dy.js → VersionHistoryDialog-DCe6XQcO.js} +1 -1
  8. package/dist/assets/{core-wwx5881P.js → core-DwPLRUzm.js} +2 -2
  9. package/dist/assets/{cssMode-DY5T2Or0.js → cssMode-C1bjAPYj.js} +1 -1
  10. package/dist/assets/definitions-Dh-oZAA5.js +1 -0
  11. package/dist/assets/{editor.api-mkORHEMm.js → editor.api-wr5lElMs.js} +1 -1
  12. package/dist/assets/{freemarker2-CIWlk0sw.js → freemarker2-DQHTaSDb.js} +1 -1
  13. package/dist/assets/geo-DLRNQg57.js +1 -0
  14. package/dist/assets/{handlebars-t4jbj3Br.js → handlebars-DOiZYGbp.js} +1 -1
  15. package/dist/assets/{html-Ctx7UOlY.js → html-B1u4CWMY.js} +1 -1
  16. package/dist/assets/{htmlMode-BKNZxVw7.js → htmlMode-YNKJ8Hq1.js} +1 -1
  17. package/dist/assets/{image-BCBFz0gD.js → image-DmeeS7Tl.js} +3 -3
  18. package/dist/assets/{index-CeqTfMbr.js → index-C35beBgj.js} +36 -36
  19. package/dist/assets/{javascript-Da_TJBzH.js → javascript-DVujl3OI.js} +1 -1
  20. package/dist/assets/{jsonMode-Ftt5d1nV.js → jsonMode-Bp_Ujoae.js} +1 -1
  21. package/dist/assets/{liquid-D5kWYG57.js → liquid-C0wcDX3X.js} +1 -1
  22. package/dist/assets/{lspLanguageFeatures-B-93LC_L.js → lspLanguageFeatures-C2XtKL_c.js} +1 -1
  23. package/dist/assets/math-D0hLbnR2.js +1 -0
  24. package/dist/assets/{mdx-DGT3C_qs.js → mdx-Dz4Hb1ZN.js} +1 -1
  25. package/dist/assets/pop-OaOoEUwk.js +1 -0
  26. package/dist/assets/{python-Bz3Eew5S.js → python-Y4eTKlAp.js} +1 -1
  27. package/dist/assets/{razor-CFDdKpKI.js → razor-BmpH_QN_.js} +1 -1
  28. package/dist/assets/{tsMode-BaCINWBI.js → tsMode-mOQwydYU.js} +1 -1
  29. package/dist/assets/{typescript-BoOWspVs.js → typescript-8ItD7azm.js} +1 -1
  30. package/dist/assets/{workers-dSWyDxsQ.js → workers-xhda_-L2.js} +1 -1
  31. package/dist/assets/{xml-eFi1_vYt.js → xml-ydyZSquM.js} +1 -1
  32. package/dist/assets/{yaml-a7xrJHxm.js → yaml-BQjpTmW5.js} +1 -1
  33. package/dist/cli/index.js +11259 -19155
  34. package/dist/index.html +1 -1
  35. package/dist/runtime/builtins/geo/definitions.d.ts +153 -0
  36. package/dist/runtime/builtins/geo/definitions.js +75 -0
  37. package/dist/runtime/builtins/geo/index.d.ts +3 -1
  38. package/dist/runtime/builtins/geo/index.js +4 -1
  39. package/dist/runtime/builtins/index.js +2 -0
  40. package/dist/runtime/builtins/math/definitions.d.ts +845 -0
  41. package/dist/runtime/builtins/math/definitions.js +285 -0
  42. package/dist/runtime/builtins/math/index.d.ts +2 -0
  43. package/dist/runtime/builtins/math/index.js +2 -0
  44. package/dist/runtime/geometry/index.d.ts +1 -0
  45. package/dist/runtime/geometry/index.js +1 -0
  46. package/dist/runtime/geometry/rects.d.ts +88 -0
  47. package/dist/runtime/geometry/rects.js +68 -0
  48. package/doc/NODE_REFERENCE.md +141 -1
  49. package/package.json +1 -1
  50. package/dist/assets/definitions-BgCvRHyR.js +0 -1
  51. package/dist/assets/geo-CIxgs0oE.js +0 -1
  52. package/dist/assets/pop-BJGN5Ac4.js +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,97 @@
2
2
 
3
3
  Notable changes to Cascade. Newest first.
4
4
 
5
+ ## 0.7.0 — 2026-09-12
6
+
7
+ ### Removed
8
+
9
+ - **The dynamic executor.** `cascade run` had a second execution path: when the
10
+ deterministic runtime declined a graph, the CLI built a Studio `Graph`,
11
+ compiled each node with esbuild and cooked it through the class-based
12
+ scheduler. About 160 lines of second implementation, with behaviour that
13
+ differed from the one every other surface uses.
14
+
15
+ Removed on a measurement: all nine graphs across six sketches either render
16
+ through the deterministic runtime or are refused by the runtime's own
17
+ `runtime/preflight-environment` for declaring `runsOn: 'browser'`. 72 nodes,
18
+ none dynamic. A graph with no definition-v1 nodes is now refused by name
19
+ rather than run through the other path.
20
+
21
+ Nothing in the CLI reads the class registry any more, so
22
+ `registerStandardNodes()` is gone from the runner and the bundled CLI no
23
+ longer carries the class-based standard library.
24
+
25
+ ### Added
26
+
27
+ - **`cascade.geo.FromRects`** and `rectsToGeometry`. `rects` was a declared core
28
+ type with no consumers; it converts to geometry as one closed polygon per
29
+ rect, with the tag preserved as a primitive string attribute. Raster rects
30
+ need their frame height, and the node refuses rather than guessing it — an
31
+ unflipped raster rect renders mirrored and plausible.
32
+ - **A `files` capability on the CLI host.** Declaring `files` previously got a
33
+ node `undefined`, which pushed authors towards an undeclared `node:fs` import
34
+ — the invisible version of the thing declarations exist to make visible.
35
+ Reads resolve inside the project, writes are confined to `.cascade-cache/`.
36
+ - **Stage output reaches the operator.** A stage could log and nobody could read
37
+ it: `stderr` was consulted only on failure and `stdout` only for its last
38
+ line. `cascade run --verbose` now forwards both.
39
+ - **`--strict`** fails `validate` and `check` when a node names a module with no
40
+ file, and the summary says how many were unresolved rather than reporting
41
+ "passed" directly under the list.
42
+
43
+ ### Fixed
44
+
45
+ - **Scrubbing no longer kills the cook it is waiting for.** The timeline marked
46
+ time-dependent nodes dirty *before* its own already-cooking guard, so every
47
+ scrubbed frame aborted the cook in flight and then deferred — a graph slower
48
+ than the mouse never finished one. The coalescing that was already there is
49
+ what makes leaving the running cook alone correct.
50
+ - **A cancelled cook is no longer logged as a failure.** The node's state was
51
+ already right; only the console was lying, several times a second, which
52
+ buries the real failure when one arrives.
53
+
54
+ ## 0.6.0 — 2026-09-10
55
+
56
+ All three items from a user's first day with the npm package.
57
+
58
+ ### Added
59
+
60
+ - **`cascade.math.*` — arithmetic as nodes.** `Binary` (add, subtract,
61
+ multiply, divide, power, modulo, min, max, atan2), `Unary` (abs, negate,
62
+ floor, ceil, round, sqrt, sign, sin, cos, tan, asin, acos, exp, log, radians,
63
+ degrees, fract), `Clamp`, `Mix` and `Compare`.
64
+
65
+ The maths already existed as expressions — every parameter field takes
66
+ `sin($T)`, `clamp`, `lerp`, `fit`. So these are not a second way to compute
67
+ but a second way to *place* a computation: an expression is private to one
68
+ parameter, and a value you want to look at, reuse, or wire into three places
69
+ has to be a node.
70
+
71
+ Grouped with an operation to pick rather than one node per operation, which
72
+ is Houdini's form and would be about twenty-five nodes. Inputs are `any` and
73
+ every operation is component-wise with scalar broadcast, so multiplying a
74
+ `vec2` by a scalar and adding two `vec3`s both work. There is no `Fit`:
75
+ `cascade.core.Remap` already is one.
76
+
77
+ Division and modulo by zero give zero rather than `Infinity`, and `sqrt` of a
78
+ negative gives zero rather than `NaN` — a non-finite number flows into a
79
+ position and the geometry silently vanishes, which is a blank frame with no
80
+ error anywhere.
81
+
82
+ - **Connections can be made backwards.** A drag or click may begin on an
83
+ unconnected input pin and end on an output; the endpoints are normalised
84
+ before the connection is built, so variadic fan-in, the `Input` node a subnet
85
+ auto-creates, and multi-select fan-in all behave identically in either
86
+ direction. A *connected* input keeps the disconnect gesture.
87
+
88
+ ### Fixed
89
+
90
+ - **The node search panel no longer closes when the search narrows to one
91
+ result.** The pointer had not left it — the panel shrank away from underneath
92
+ a stationary cursor, which fired `mouseleave` at the exact moment you were
93
+ about to click the thing you searched for. Leave-to-close now applies only
94
+ while the panel is being browsed by hover, not once you have typed.
95
+
5
96
  ## 0.5.2 — 2026-09-10
6
97
 
7
98
  ### Fixed