@invinite-org/chartlang-adapter-kit 1.2.0 → 1.3.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/CHANGELOG.md CHANGED
@@ -1,5 +1,118 @@
1
1
  # @invinite-org/chartlang-adapter-kit
2
2
 
3
+ ## 1.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ca19e20: Bidirectional plot `offset` — negative offsets shift a plotted series left.
8
+
9
+ `offset` becomes a presentation-only **display shift** in bars with the
10
+ fixed sign convention `+n` = right (future), `−n` = left (past); the
11
+ numeric series value is unshifted. This replaces the old value-read model
12
+ (where a positive offset made `series.current` read the value N bars ago
13
+ and a negative offset resolved to `NaN`). The `*Opts` `offset` JSDoc (and
14
+ ALMA's `barShift`) now describe both directions and drop the old
15
+ "negative ⇒ NaN" wording (`AlmaOpts.offset`, the Gaussian-centre
16
+ position, is unchanged).
17
+
18
+ `PlotEmission` gains an optional presentation field `xShift?: number`
19
+ (signed integer bars; omitted/`0` ≡ no shift, so a no-shift emission is
20
+ byte-identical to today). `validateEmission` rejects a non-integer
21
+ `xShift`. The compiler no longer counts `offset` toward `maxLookback`
22
+ (the value is no longer read from a deeper slot). The runtime threads the
23
+ declared offset onto the emission as `xShift` (reading a
24
+ `WeakMap<Series, number>` offset tag set by `makeShiftedSeriesView`; ALMA
25
+ tags `opts.barShift`) and stops the old value-read shift so
26
+ `series.current` is unshifted; the reference adapter renders it by
27
+ projecting `xShift` onto the x-axis (extending the viewport for
28
+ future-shifted points).
29
+
30
+ The Pine converter now maps `plot(<ta.* call>, offset=N)` onto the
31
+ emitted `ta.*` call's `offset` opt (signed, both directions); a plot
32
+ whose value is not a direct `ta.*` call drops the offset and emits the
33
+ new `plot-offset-needs-ta-call` warning, and a plot-level offset
34
+ replacing the ta call's own `offset=` emits `plot-offset-overrides-ta-offset`.
35
+
36
+ The conformance harness's `plot-field` assertion gains an `xShift` field,
37
+ and a new scenario pins both shift directions plus the unshifted value
38
+ series.
39
+
40
+ - 3bf391a: Add the `draw.fillBetween(edgeA, edgeB, opts?)` drawing primitive — a
41
+ native filled ribbon between two edges (the closed polygon `edgeA`
42
+ forward then `edgeB` reversed). It is the chartlang equivalent of Pine's
43
+ `linefill.new(line1, line2, color)` / `fill(plot1, plot2)`. The
44
+ pine-converter now lowers static two-line `linefill.new` to it instead of
45
+ approximating with `draw.rotatedRectangle`, retiring the
46
+ `linefill-rotatedrect-approximated` diagnostic.
47
+ - 8086003: Add an optional presentation-only `z` (render-order / z-index) option to
48
+ `plot()` and every `draw.*` primitive. Default `0`; higher renders on
49
+ top, ties fall back to the existing group + declaration order. Finite
50
+ numbers only. Affects stacking only — values, alerts, and `state.*` are
51
+ unchanged.
52
+
53
+ Adapter kit: `PlotEmission` and `DrawingEmission` gain the matching
54
+ presentation-only `z?: number` wire field, validated by
55
+ `validateEmission` as a finite number (NaN / ±Infinity rejected;
56
+ fractional and negative allowed). Omitted/`0` stays byte-identical to a
57
+ pre-feature emission, so existing goldens and conformance hashes are
58
+ untouched.
59
+
60
+ Runtime: `plotImpl` reads `opts.z`, and the drawing-emit path
61
+ (`createDrawingHandle`) lifts `z` out of `state.style` — into a shallow
62
+ clone with `z` removed, where the per-kind `draw.*` impls fold the opts
63
+ bag — and threads it onto the top-level `PlotEmission.z` /
64
+ `DrawingEmission.z` with the same omit-when-`0` conditional spread used
65
+ for `xShift`. `z` is persisted **beside** the drawing slot's `state`
66
+ (never inside `DrawingState`), so an `update` retains the last value. A
67
+ no-`z` plot or drawing emits no `z` key — byte-identical to the
68
+ pre-feature baseline. `draw.table` / `draw.group` do not carry `z` in
69
+ v1.
70
+
71
+ Pine converter: `explicit_plot_zorder` is now a recognized no-op instead
72
+ of an unmapped warning. chartlang already layers marks by declaration
73
+ order within their group (the normative ordering contract), which is
74
+ exactly what Pine's `explicit_plot_zorder=true` makes authoritative — so
75
+ the flag is satisfied by default and needs no chartlang option.
76
+ `mapDeclarationArgs` no longer raises `indicator-arg-not-mapped` for it;
77
+ instead it emits a single `explicit-plot-zorder-default` info note
78
+ (covering both `explicit_plot_zorder=true` and the Pine-default
79
+ `=false`). The converter still never _emits_ a numeric `z` — Pine has no
80
+ per-element z source construct. Other unmapped `indicator(...)` args
81
+ (`timeframe`, etc.) keep warning.
82
+
83
+ Compiler: the ambient `@invinite-org/chartlang-core` `.d.ts` shim gains a
84
+ `ZOrdered { z?: number }` mixin intersected into `PlotOpts` and every
85
+ `draw.*` option type (mirroring core's `drawingStyle.ts`), so a compiled
86
+ script's `plot(value, { z })` **and** `draw.*(…, { z })` type-check (the
87
+ shim stays in lockstep with core).
88
+
89
+ Conformance: a new `z-order` scenario pins the plot `z` →
90
+ `PlotEmission.z` wire contract — a `plot(value, { z: -1 })` emits
91
+ `z: -1`, a no-`z` plot omits the field (omit-when-`0` byte-identity), and
92
+ a value-hash proves `z` never transforms the series. The `plot-field`
93
+ assertion's `field` union widens to also accept `"z"`.
94
+
95
+ ### Patch Changes
96
+
97
+ - Updated dependencies [850ae21]
98
+ - Updated dependencies [ca19e20]
99
+ - Updated dependencies [6235ad7]
100
+ - Updated dependencies [3bf391a]
101
+ - Updated dependencies [8086003]
102
+ - Updated dependencies [850ae21]
103
+ - Updated dependencies [073f41b]
104
+ - Updated dependencies [5a9c24d]
105
+ - Updated dependencies [08c536c]
106
+ - @invinite-org/chartlang-core@1.2.0
107
+
108
+ ## 1.2.1
109
+
110
+ ### Patch Changes
111
+
112
+ - 71ea0a5: Inline original TypeScript sources into emitted `.js.map` files (`inlineSources: true`). Published sourcemaps no longer reference missing `../src/*.ts` files, fixing "points to missing source files" warnings in downstream bundlers (e.g. Vite).
113
+ - Updated dependencies [71ea0a5]
114
+ - @invinite-org/chartlang-core@1.1.1
115
+
3
116
  ## 1.2.0
4
117
 
5
118
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"bufferingAdapter.js","sourceRoot":"","sources":["../../src/base/bufferingAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,gBAAgB;IAIL;IACA;IACA;IACC;IANb,QAAQ,GAAsB,EAAE,CAAC;IAEzC,YACoB,EAAU,EACV,IAAY,EACZ,YAA0B,EACzB,MAAkC;QAHnC,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAc;QACzB,WAAM,GAAN,MAAM,CAA4B;IACpD,CAAC;IAEJ,OAAO;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,SAA0B;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"bufferingAdapter.js","sourceRoot":"","sources":["../../src/base/bufferingAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,gBAAgB;IAIL;IACA;IACA;IACC;IANb,QAAQ,GAAsB,EAAE,CAAC;IAEzC,YACoB,EAAU,EACV,IAAY,EACZ,YAA0B,EACzB,MAAkC;QAHnC,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAc;QACzB,WAAM,GAAN,MAAM,CAA4B;IACpD,CAAC;IAEJ,OAAO;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,SAA0B;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;CACJ","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Adapter, CandleEvent, Capabilities, RunnerEmissions } from \"../types.js\";\n\n/**\n * `Adapter` that records every `onEmissions` batch and exposes a\n * `drain()` method to retrieve them all at once. Used by the\n * conformance suite (Task 11) to collect emissions across a full\n * fixture playback before asserting against golden bars.\n *\n * @since 0.1\n * @stable\n * @example\n * import {\n * BufferingAdapter,\n * capabilities,\n * mockCandleSource,\n * } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const a = new BufferingAdapter(\n * \"b\", \"Buffering\",\n * {\n * plots: capabilities.allLines(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 5000,\n * maxTickHz: 10,\n * },\n * mockCandleSource([]),\n * );\n * a.drain();\n */\nexport class BufferingAdapter implements Adapter {\n private buffered: RunnerEmissions[] = [];\n\n constructor(\n public readonly id: string,\n public readonly name: string,\n public readonly capabilities: Capabilities,\n private readonly source: AsyncIterable<CandleEvent>,\n ) {}\n\n candles(): AsyncIterable<CandleEvent> {\n return this.source;\n }\n\n onEmissions(emissions: RunnerEmissions): void {\n this.buffered.push(emissions);\n }\n\n drain(): ReadonlyArray<RunnerEmissions> {\n const out = this.buffered.slice();\n this.buffered = [];\n return out;\n }\n\n dispose(): void {\n this.buffered = [];\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { BufferingAdapter } from \"./bufferingAdapter.js\";\nexport { PassThroughAdapter } from \"./passThroughAdapter.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"passThroughAdapter.js","sourceRoot":"","sources":["../../src/base/passThroughAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,kBAAkB;IAEP;IACA;IACA;IACC;IAJrB,YACoB,EAAU,EACV,IAAY,EACZ,YAA0B,EACzB,MAAkC;QAHnC,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAc;QACzB,WAAM,GAAN,MAAM,CAA4B;IACpD,CAAC;IAEJ,OAAO;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,UAA2B;QACnC,oBAAoB;IACxB,CAAC;IAED,OAAO;QACH,oBAAoB;IACxB,CAAC;CACJ"}
1
+ {"version":3,"file":"passThroughAdapter.js","sourceRoot":"","sources":["../../src/base/passThroughAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,kBAAkB;IAEP;IACA;IACA;IACC;IAJrB,YACoB,EAAU,EACV,IAAY,EACZ,YAA0B,EACzB,MAAkC;QAHnC,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAc;QACzB,WAAM,GAAN,MAAM,CAA4B;IACpD,CAAC;IAEJ,OAAO;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,UAA2B;QACnC,oBAAoB;IACxB,CAAC;IAED,OAAO;QACH,oBAAoB;IACxB,CAAC;CACJ","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Adapter, CandleEvent, Capabilities, RunnerEmissions } from \"../types.js\";\n\n/**\n * Minimal `Adapter` that forwards a supplied `AsyncIterable<CandleEvent>`\n * and drops every emission. Useful as a runtime test fixture when the\n * caller doesn't need to observe outputs.\n *\n * @since 0.1\n * @stable\n * @example\n * import {\n * PassThroughAdapter,\n * capabilities,\n * mockCandleSource,\n * } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const a = new PassThroughAdapter(\n * \"p\", \"Passthrough\",\n * {\n * plots: capabilities.allLines(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 5000,\n * maxTickHz: 10,\n * },\n * mockCandleSource([]),\n * );\n * void a;\n */\nexport class PassThroughAdapter implements Adapter {\n constructor(\n public readonly id: string,\n public readonly name: string,\n public readonly capabilities: Capabilities,\n private readonly source: AsyncIterable<CandleEvent>,\n ) {}\n\n candles(): AsyncIterable<CandleEvent> {\n return this.source;\n }\n\n onEmissions(_emissions: RunnerEmissions): void {\n // intentional no-op\n }\n\n dispose(): void {\n // intentional no-op\n }\n}\n"]}
@@ -187,6 +187,8 @@ export declare const capabilities: {
187
187
  drawEllipse(): ReadonlySet<DrawingKind>;
188
188
  /** Phase-3 `path` drawing kind. @since 0.3 @stable */
189
189
  drawPath(): ReadonlySet<DrawingKind>;
190
+ /** `fill-between` filled-ribbon drawing kind. @since 0.4 @stable */
191
+ drawFillBetween(): ReadonlySet<DrawingKind>;
190
192
  /** Phase-3 `marker` drawing kind. @since 0.3 @stable */
191
193
  drawMarker(): ReadonlySet<DrawingKind>;
192
194
  /** Phase-3 `arc` drawing kind. @since 0.3 @stable */
@@ -288,14 +290,14 @@ export declare const capabilities: {
288
290
  /** All 6 line / ray drawing kinds. @since 0.3 @stable */
289
291
  allLineDrawings(): ReadonlySet<DrawingKind>;
290
292
  /**
291
- * All 8 box / shape drawing kinds. @since 0.3 @stable
293
+ * All 9 box / shape drawing kinds. @since 0.3 @stable
292
294
  *
293
295
  * @remarks Capability categories are orthogonal to budget buckets:
294
- * `polyline` and `path` are budgeted under the `polylines` bucket
295
- * and `marker` under `labels` — not the `boxes` bucket (see
296
- * `bucketFor` in `@invinite-org/chartlang-core`). An adapter that
297
- * declares this set must size those buckets accordingly or those
298
- * three kinds drop with `drawing-budget-exceeded`.
296
+ * `polyline`, `path`, and `fill-between` are budgeted under the
297
+ * `polylines` bucket and `marker` under `labels` — not the `boxes`
298
+ * bucket (see `bucketFor` in `@invinite-org/chartlang-core`). An
299
+ * adapter that declares this set must size those buckets accordingly
300
+ * or those four kinds drop with `drawing-budget-exceeded`.
299
301
  */
300
302
  allBoxDrawings(): ReadonlySet<DrawingKind>;
301
303
  /** All 3 curve drawing kinds. @since 0.3 @stable */
@@ -324,7 +326,7 @@ export declare const capabilities: {
324
326
  * Every drawing kind that ships in Phase 3 — the union of every
325
327
  * category group above. Canvas2d declares this set as its
326
328
  * `Capabilities.drawings` (Task 4) so the conformance suite
327
- * covers all 61 kinds end-to-end.
329
+ * covers all 62 non-table kinds end-to-end.
328
330
  *
329
331
  * @since 0.3
330
332
  * @stable
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"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"}
@@ -221,7 +221,8 @@ export const capabilities = {
221
221
  return { logs: enabled };
222
222
  },
223
223
  // ------------------------------------------------------------
224
- // Phase 3 — per-kind drawing builders (61). Each returns a
224
+ // Phase 3 — per-kind drawing builders (62, incl. the Phase-2
225
+ // `fill-between` ribbon). Each returns a
225
226
  // single-element `Set<DrawingKind>` so adapters can compose via
226
227
  // `capabilities.union(...)`. The 13 category-group builders +
227
228
  // `allPhase3Drawings()` below are the canonical user-facing
@@ -280,6 +281,10 @@ export const capabilities = {
280
281
  drawPath() {
281
282
  return new Set(["path"]);
282
283
  },
284
+ /** `fill-between` filled-ribbon drawing kind. @since 0.4 @stable */
285
+ drawFillBetween() {
286
+ return new Set(["fill-between"]);
287
+ },
283
288
  /** Phase-3 `marker` drawing kind. @since 0.3 @stable */
284
289
  drawMarker() {
285
290
  return new Set(["marker"]);
@@ -494,14 +499,14 @@ export const capabilities = {
494
499
  ]);
495
500
  },
496
501
  /**
497
- * All 8 box / shape drawing kinds. @since 0.3 @stable
502
+ * All 9 box / shape drawing kinds. @since 0.3 @stable
498
503
  *
499
504
  * @remarks Capability categories are orthogonal to budget buckets:
500
- * `polyline` and `path` are budgeted under the `polylines` bucket
501
- * and `marker` under `labels` — not the `boxes` bucket (see
502
- * `bucketFor` in `@invinite-org/chartlang-core`). An adapter that
503
- * declares this set must size those buckets accordingly or those
504
- * three kinds drop with `drawing-budget-exceeded`.
505
+ * `polyline`, `path`, and `fill-between` are budgeted under the
506
+ * `polylines` bucket and `marker` under `labels` — not the `boxes`
507
+ * bucket (see `bucketFor` in `@invinite-org/chartlang-core`). An
508
+ * adapter that declares this set must size those buckets accordingly
509
+ * or those four kinds drop with `drawing-budget-exceeded`.
505
510
  */
506
511
  allBoxDrawings() {
507
512
  return new Set([
@@ -512,6 +517,7 @@ export const capabilities = {
512
517
  "circle",
513
518
  "ellipse",
514
519
  "path",
520
+ "fill-between",
515
521
  "marker",
516
522
  ]);
517
523
  },
@@ -598,7 +604,7 @@ export const capabilities = {
598
604
  * Every drawing kind that ships in Phase 3 — the union of every
599
605
  * category group above. Canvas2d declares this set as its
600
606
  * `Capabilities.drawings` (Task 4) so the conformance suite
601
- * covers all 61 kinds end-to-end.
607
+ * covers all 62 non-table kinds end-to-end.
602
608
  *
603
609
  * @since 0.3
604
610
  * @stable
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { DRAWING_KINDS } from \"@invinite-org/chartlang-core\";\n\nimport type { DrawingCounts, IntervalDescriptor } from \"@invinite-org/chartlang-core\";\n\nimport type { AlertChannel, DrawingKind, PlotKind, SymInfoField } from \"../types.js\";\n\n/**\n * Canonical Phase-5 plot-kind set. Adapters that can render the full\n * script-facing plot inventory can pass this directly to\n * `Capabilities.plots`.\n *\n * @since 0.5\n * @stable\n * @example\n * import { PHASE_5_PLOT_KINDS } from \"@invinite-org/chartlang-adapter-kit\";\n * const plots = new Set(PHASE_5_PLOT_KINDS);\n * void plots;\n */\nexport const PHASE_5_PLOT_KINDS: ReadonlyArray<PlotKind> = Object.freeze([\n \"line\",\n \"step-line\",\n \"horizontal-line\",\n \"histogram\",\n \"area\",\n \"filled-band\",\n \"label\",\n \"marker\",\n \"shape\",\n \"character\",\n \"arrow\",\n \"candle-override\",\n \"bar-override\",\n \"bg-color\",\n \"bar-color\",\n \"horizontal-histogram\",\n]);\n\n/**\n * Helpers that assemble the `ReadonlySet` pieces of a `Capabilities`\n * bag. Phase 1 shipped the three line variants + an alert-channel\n * builder + a generic `union` combinator. Phase 2 adds one builder per\n * new `PlotKind` (`histogram`, `area`, `filledBand`, `label`,\n * `marker`) plus `allPhase2Plots()` — the union of every Phase-1 +\n * Phase-2 kind.\n *\n * @since 0.1\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const plots = capabilities.allPhase2Plots();\n * const alerts = capabilities.alerts(\"toast\", \"log\");\n * const merged = capabilities.union(plots, capabilities.label());\n * void merged;\n */\nexport const capabilities = {\n line(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"line\"]);\n },\n stepLine(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"step-line\"]);\n },\n horizontalLine(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"horizontal-line\"]);\n },\n allLines(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"line\", \"step-line\", \"horizontal-line\"]);\n },\n /** Phase-2 histogram plot kind. @since 0.2 @stable */\n histogram(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"histogram\"]);\n },\n /** Phase-2 filled-area plot kind. @since 0.2 @stable */\n area(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"area\"]);\n },\n /** Phase-2 filled-band (between two polylines) plot kind.\n * @since 0.2 @stable */\n filledBand(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"filled-band\"]);\n },\n /** Phase-2 text-label plot kind. @since 0.2 @stable */\n label(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"label\"]);\n },\n /** Phase-2 discrete-marker plot kind. @since 0.2 @stable */\n marker(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"marker\"]);\n },\n /** Union of every plot kind that ships through Phase 2 — `line`,\n * `step-line`, `horizontal-line`, `histogram`, `area`,\n * `filled-band`, `label`, `marker`. Phase-5 kinds are deliberately\n * excluded; the bundled `capabilities.union(...)` combinator\n * composes additional sets when needed.\n * @since 0.2 @stable */\n allPhase2Plots(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\n \"line\",\n \"step-line\",\n \"horizontal-line\",\n \"histogram\",\n \"area\",\n \"filled-band\",\n \"label\",\n \"marker\",\n ]);\n },\n /** Union of every plot kind that ships through Phase 5.\n * @since 0.5 @stable */\n allPhase5Plots(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>(PHASE_5_PLOT_KINDS);\n },\n alerts(...channels: ReadonlyArray<AlertChannel>): ReadonlySet<AlertChannel> {\n return new Set<AlertChannel>(channels);\n },\n union<T>(...sets: ReadonlyArray<ReadonlySet<T>>): ReadonlySet<T> {\n const out = new Set<T>();\n for (const s of sets) {\n for (const v of s) {\n out.add(v);\n }\n }\n return out;\n },\n /**\n * Timeframe descriptors this adapter can deliver, preserving picker order.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.intervals([\n * { value: \"1D\", label: \"1 day\", group: \"daily\" },\n * ]);\n * void partial;\n */\n intervals(list: ReadonlyArray<IntervalDescriptor>): {\n intervals: ReadonlyArray<IntervalDescriptor>;\n } {\n return { intervals: Object.freeze(list.slice()) };\n },\n /**\n * Declares whether the adapter can deliver secondary candle streams.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.multiTimeframe(false);\n * void partial;\n */\n multiTimeframe(enabled: boolean): { multiTimeframe: boolean } {\n return { multiTimeframe: enabled };\n },\n /**\n * Declares the maximum supported sub-pane count for one script.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.subPanes(Number.MAX_SAFE_INTEGER);\n * void partial;\n */\n subPanes(max: number): { subPanes: number } {\n return { subPanes: max };\n },\n /**\n * Declares which `syminfo.*` fields this adapter populates.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.symInfoFields([\"ticker\", \"mintick\"]);\n * void partial;\n */\n symInfoFields(fields: ReadonlyArray<SymInfoField>): {\n symInfoFields: ReadonlySet<SymInfoField>;\n } {\n return { symInfoFields: new Set(fields) };\n },\n /**\n * Declares the adapter's per-script drawing-emission budget.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.maxDrawingsPerScript({\n * lines: 50, labels: 50, boxes: 50, polylines: 50, other: 50,\n * });\n * void partial;\n */\n maxDrawingsPerScript(counts: DrawingCounts): { maxDrawingsPerScript: DrawingCounts } {\n return { maxDrawingsPerScript: Object.freeze({ ...counts }) };\n },\n /**\n * Declares whether user-wired alert conditions are supported.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.alertConditions(false);\n * void partial;\n */\n alertConditions(enabled: boolean): { alertConditions: boolean } {\n return { alertConditions: enabled };\n },\n /**\n * Declares whether runtime log messages are rendered by the adapter.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.logs(false);\n * void partial;\n */\n logs(enabled: boolean): { logs: boolean } {\n return { logs: enabled };\n },\n\n // ------------------------------------------------------------\n // Phase 3 — per-kind drawing builders (62, incl. the Phase-2\n // `fill-between` ribbon). Each returns a\n // single-element `Set<DrawingKind>` so adapters can compose via\n // `capabilities.union(...)`. The 13 category-group builders +\n // `allPhase3Drawings()` below are the canonical user-facing\n // surface; per-kind builders exist for precision opt-in.\n // @since 0.3 @stable\n // ------------------------------------------------------------\n\n /** Phase-3 `line` drawing kind. @since 0.3 @stable */\n drawLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"line\"]);\n },\n /** Phase-3 `horizontal-line` drawing kind. @since 0.3 @stable */\n drawHorizontalLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"horizontal-line\"]);\n },\n /** Phase-3 `horizontal-ray` drawing kind. @since 0.3 @stable */\n drawHorizontalRay(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"horizontal-ray\"]);\n },\n /** Phase-3 `vertical-line` drawing kind. @since 0.3 @stable */\n drawVerticalLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"vertical-line\"]);\n },\n /** Phase-3 `cross-line` drawing kind. @since 0.3 @stable */\n drawCrossLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cross-line\"]);\n },\n /** Phase-3 `trend-angle` drawing kind. @since 0.3 @stable */\n drawTrendAngle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"trend-angle\"]);\n },\n /** Phase-3 `rectangle` drawing kind. @since 0.3 @stable */\n drawRectangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"rectangle\"]);\n },\n /** Phase-3 `rotated-rectangle` drawing kind. @since 0.3 @stable */\n drawRotatedRectangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"rotated-rectangle\"]);\n },\n /** Phase-3 `triangle` drawing kind. @since 0.3 @stable */\n drawTriangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"triangle\"]);\n },\n /** Phase-3 `polyline` drawing kind. @since 0.3 @stable */\n drawPolyline(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"polyline\"]);\n },\n /** Phase-3 `circle` drawing kind. @since 0.3 @stable */\n drawCircle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"circle\"]);\n },\n /** Phase-3 `ellipse` drawing kind. @since 0.3 @stable */\n drawEllipse(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"ellipse\"]);\n },\n /** Phase-3 `path` drawing kind. @since 0.3 @stable */\n drawPath(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"path\"]);\n },\n /** `fill-between` filled-ribbon drawing kind. @since 0.4 @stable */\n drawFillBetween(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fill-between\"]);\n },\n /** Phase-3 `marker` drawing kind. @since 0.3 @stable */\n drawMarker(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"marker\"]);\n },\n /** Phase-3 `arc` drawing kind. @since 0.3 @stable */\n drawArc(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arc\"]);\n },\n /** Phase-3 `curve` drawing kind. @since 0.3 @stable */\n drawCurve(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"curve\"]);\n },\n /** Phase-3 `double-curve` drawing kind. @since 0.3 @stable */\n drawDoubleCurve(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"double-curve\"]);\n },\n /** Phase-3 `pen` drawing kind. @since 0.3 @stable */\n drawPen(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pen\"]);\n },\n /** Phase-3 `highlighter` drawing kind. @since 0.3 @stable */\n drawHighlighter(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"highlighter\"]);\n },\n /** Phase-3 `brush` drawing kind. @since 0.3 @stable */\n drawBrush(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"brush\"]);\n },\n /** Phase-3 `text` drawing kind. @since 0.3 @stable */\n drawText(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"text\"]);\n },\n /** Phase-3 `arrow` drawing kind. @since 0.3 @stable */\n drawArrow(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow\"]);\n },\n /** Phase-3 `arrow-marker` drawing kind. @since 0.3 @stable */\n drawArrowMarker(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-marker\"]);\n },\n /** Phase-3 `arrow-mark-up` drawing kind. @since 0.3 @stable */\n drawArrowMarkUp(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-mark-up\"]);\n },\n /** Phase-3 `arrow-mark-down` drawing kind. @since 0.3 @stable */\n drawArrowMarkDown(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-mark-down\"]);\n },\n /** Phase-3 `trend-channel` drawing kind. @since 0.3 @stable */\n drawTrendChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"trend-channel\"]);\n },\n /** Phase-3 `flat-top-bottom` drawing kind. @since 0.3 @stable */\n drawFlatTopBottom(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"flat-top-bottom\"]);\n },\n /** Phase-3 `disjoint-channel` drawing kind. @since 0.3 @stable */\n drawDisjointChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"disjoint-channel\"]);\n },\n /** Phase-3 `regression-trend` drawing kind. @since 0.3 @stable */\n drawRegressionTrend(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"regression-trend\"]);\n },\n /** Phase-3 `fib-retracement` drawing kind. @since 0.3 @stable */\n drawFibRetracement(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-retracement\"]);\n },\n /** Phase-3 `fib-trend-extension` drawing kind. @since 0.3 @stable */\n drawFibTrendExtension(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-trend-extension\"]);\n },\n /** Phase-3 `fib-channel` drawing kind. @since 0.3 @stable */\n drawFibChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-channel\"]);\n },\n /** Phase-3 `fib-time-zone` drawing kind. @since 0.3 @stable */\n drawFibTimeZone(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-time-zone\"]);\n },\n /** Phase-3 `fib-wedge` drawing kind. @since 0.3 @stable */\n drawFibWedge(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-wedge\"]);\n },\n /** Phase-3 `fib-speed-fan` drawing kind. @since 0.3 @stable */\n drawFibSpeedFan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-speed-fan\"]);\n },\n /** Phase-3 `fib-speed-arcs` drawing kind. @since 0.3 @stable */\n drawFibSpeedArcs(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-speed-arcs\"]);\n },\n /** Phase-3 `fib-spiral` drawing kind. @since 0.3 @stable */\n drawFibSpiral(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-spiral\"]);\n },\n /** Phase-3 `fib-circles` drawing kind. @since 0.3 @stable */\n drawFibCircles(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-circles\"]);\n },\n /** Phase-3 `fib-trend-time` drawing kind. @since 0.3 @stable */\n drawFibTrendTime(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-trend-time\"]);\n },\n /** Phase-3 `gann-box` drawing kind. @since 0.3 @stable */\n drawGannBox(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-box\"]);\n },\n /** Phase-3 `gann-square-fixed` drawing kind. @since 0.3 @stable */\n drawGannSquareFixed(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-square-fixed\"]);\n },\n /** Phase-3 `gann-square` drawing kind. @since 0.3 @stable */\n drawGannSquare(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-square\"]);\n },\n /** Phase-3 `gann-fan` drawing kind. @since 0.3 @stable */\n drawGannFan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-fan\"]);\n },\n /** Phase-3 `pitchfork` drawing kind. @since 0.3 @stable */\n drawPitchfork(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfork\"]);\n },\n /** Phase-3 `pitchfan` drawing kind. @since 0.3 @stable */\n drawPitchfan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfan\"]);\n },\n /** Phase-3 `xabcd-pattern` drawing kind. @since 0.3 @stable */\n drawXabcdPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"xabcd-pattern\"]);\n },\n /** Phase-3 `cypher-pattern` drawing kind. @since 0.3 @stable */\n drawCypherPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cypher-pattern\"]);\n },\n /** Phase-3 `head-and-shoulders` drawing kind. @since 0.3 @stable */\n drawHeadAndShoulders(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"head-and-shoulders\"]);\n },\n /** Phase-3 `abcd-pattern` drawing kind. @since 0.3 @stable */\n drawAbcdPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"abcd-pattern\"]);\n },\n /** Phase-3 `triangle-pattern` drawing kind. @since 0.3 @stable */\n drawTrianglePattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"triangle-pattern\"]);\n },\n /** Phase-3 `three-drives-pattern` drawing kind. @since 0.3 @stable */\n drawThreeDrivesPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"three-drives-pattern\"]);\n },\n /** Phase-3 `elliott-impulse-wave` drawing kind. @since 0.3 @stable */\n drawElliottImpulseWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-impulse-wave\"]);\n },\n /** Phase-3 `elliott-correction-wave` drawing kind. @since 0.3 @stable */\n drawElliottCorrectionWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-correction-wave\"]);\n },\n /** Phase-3 `elliott-triangle-wave` drawing kind. @since 0.3 @stable */\n drawElliottTriangleWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-triangle-wave\"]);\n },\n /** Phase-3 `elliott-double-combo` drawing kind. @since 0.3 @stable */\n drawElliottDoubleCombo(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-double-combo\"]);\n },\n /** Phase-3 `elliott-triple-combo` drawing kind. @since 0.3 @stable */\n drawElliottTripleCombo(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-triple-combo\"]);\n },\n /** Phase-3 `cyclic-lines` drawing kind. @since 0.3 @stable */\n drawCyclicLines(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cyclic-lines\"]);\n },\n /** Phase-3 `time-cycles` drawing kind. @since 0.3 @stable */\n drawTimeCycles(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"time-cycles\"]);\n },\n /** Phase-3 `sine-line` drawing kind. @since 0.3 @stable */\n drawSineLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"sine-line\"]);\n },\n /** Phase-3 `group` drawing kind. @since 0.3 @stable */\n drawGroup(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"group\"]);\n },\n /** Phase-3 `frame` drawing kind. @since 0.3 @stable */\n drawFrame(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"frame\"]);\n },\n /** Phase-5 `table` drawing kind. @since 0.5 @stable */\n drawTable(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"table\"]);\n },\n\n // ------------------------------------------------------------\n // Phase 3 — category-group builders (13). Each covers the kinds\n // of one §10.2 category. Combine via `union(...)` for adapters\n // that support multiple categories.\n // @since 0.3 @stable\n // ------------------------------------------------------------\n\n /** All 6 line / ray drawing kinds. @since 0.3 @stable */\n allLineDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"line\",\n \"horizontal-line\",\n \"horizontal-ray\",\n \"vertical-line\",\n \"cross-line\",\n \"trend-angle\",\n ]);\n },\n /**\n * All 9 box / shape drawing kinds. @since 0.3 @stable\n *\n * @remarks Capability categories are orthogonal to budget buckets:\n * `polyline`, `path`, and `fill-between` are budgeted under the\n * `polylines` bucket and `marker` under `labels` — not the `boxes`\n * bucket (see `bucketFor` in `@invinite-org/chartlang-core`). An\n * adapter that declares this set must size those buckets accordingly\n * or those four kinds drop with `drawing-budget-exceeded`.\n */\n allBoxDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"rectangle\",\n \"rotated-rectangle\",\n \"triangle\",\n \"polyline\",\n \"circle\",\n \"ellipse\",\n \"path\",\n \"fill-between\",\n \"marker\",\n ]);\n },\n /** All 3 curve drawing kinds. @since 0.3 @stable */\n allCurveDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arc\", \"curve\", \"double-curve\"]);\n },\n /** All 3 freehand drawing kinds. @since 0.3 @stable */\n allFreehandDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pen\", \"highlighter\", \"brush\"]);\n },\n /** All 5 annotation drawing kinds. @since 0.3 @stable */\n allAnnotationDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"text\",\n \"arrow\",\n \"arrow-marker\",\n \"arrow-mark-up\",\n \"arrow-mark-down\",\n ]);\n },\n /** All 4 channel drawing kinds. @since 0.3 @stable */\n allChannelDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"trend-channel\",\n \"flat-top-bottom\",\n \"disjoint-channel\",\n \"regression-trend\",\n ]);\n },\n /** All 10 fibonacci drawing kinds. @since 0.3 @stable */\n allFibDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"fib-retracement\",\n \"fib-trend-extension\",\n \"fib-channel\",\n \"fib-time-zone\",\n \"fib-wedge\",\n \"fib-speed-fan\",\n \"fib-speed-arcs\",\n \"fib-spiral\",\n \"fib-circles\",\n \"fib-trend-time\",\n ]);\n },\n /** All 4 gann drawing kinds. @since 0.3 @stable */\n allGannDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-box\", \"gann-square-fixed\", \"gann-square\", \"gann-fan\"]);\n },\n /** All 2 pitchfork drawing kinds. @since 0.3 @stable */\n allPitchforkDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfork\", \"pitchfan\"]);\n },\n /** All 6 harmonic-pattern drawing kinds. @since 0.3 @stable */\n allPatternDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"xabcd-pattern\",\n \"cypher-pattern\",\n \"head-and-shoulders\",\n \"abcd-pattern\",\n \"triangle-pattern\",\n \"three-drives-pattern\",\n ]);\n },\n /** All 5 elliott-wave drawing kinds. @since 0.3 @stable */\n allElliottDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"elliott-impulse-wave\",\n \"elliott-correction-wave\",\n \"elliott-triangle-wave\",\n \"elliott-double-combo\",\n \"elliott-triple-combo\",\n ]);\n },\n /** All 3 cycle drawing kinds. @since 0.3 @stable */\n allCycleDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cyclic-lines\", \"time-cycles\", \"sine-line\"]);\n },\n /** All 2 container drawing kinds. @since 0.3 @stable */\n allContainerDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"group\", \"frame\"]);\n },\n\n /**\n * Every drawing kind that ships in Phase 3 — the union of every\n * category group above. Canvas2d declares this set as its\n * `Capabilities.drawings` (Task 4) so the conformance suite\n * covers all 62 non-table kinds end-to-end.\n *\n * @since 0.3\n * @stable\n */\n allPhase3Drawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>(DRAWING_KINDS.filter((kind) => kind !== \"table\"));\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { PHASE_5_PLOT_KINDS, capabilities } from \"./capabilities.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"defineAdapter.js","sourceRoot":"","sources":["../src/defineAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAuC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB;IACjD,OAAO;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,WAAW;KACvC,CAAC;AACN,CAAC;AAED,SAAS,WAAW;IAChB,oBAAoB;AACxB,CAAC"}
1
+ {"version":3,"file":"defineAdapter.js","sourceRoot":"","sources":["../src/defineAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAuC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB;IACjD,OAAO;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,WAAW;KACvC,CAAC;AACN,CAAC;AAED,SAAS,WAAW;IAChB,oBAAoB;AACxB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Adapter } from \"./types.js\";\n\n/**\n * Options accepted by {@link defineAdapter}. `dispose` is optional —\n * `defineAdapter` substitutes a no-op when omitted.\n *\n * @since 0.1\n * @stable\n * @example\n * const opts: DefineAdapterOpts = {\n * id: \"demo\",\n * name: \"Demo\",\n * capabilities: {\n * plots: new Set(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 0,\n * maxTickHz: 0,\n * },\n * candles: () => ({ async *[Symbol.asyncIterator]() {} }),\n * onEmissions: () => {},\n * };\n */\nexport type DefineAdapterOpts = Omit<Adapter, \"dispose\"> & {\n readonly dispose?: () => void;\n};\n\n/**\n * Wrap an adapter description in a stable factory so consumer-repo\n * adapters get a single entry point + a default no-op `dispose`. The\n * returned object aliases the supplied callbacks by reference — no\n * normalisation, no cloning.\n *\n * @since 0.1\n * @stable\n * @example\n * import { defineAdapter, capabilities, mockCandleSource }\n * from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const adapter = defineAdapter({\n * id: \"demo\",\n * name: \"Demo\",\n * capabilities: {\n * plots: capabilities.allLines(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 5000,\n * maxTickHz: 10,\n * },\n * candles: () => mockCandleSource([]),\n * onEmissions: () => {},\n * });\n * void adapter;\n */\nexport function defineAdapter(opts: DefineAdapterOpts): Adapter {\n return {\n id: opts.id,\n name: opts.name,\n capabilities: opts.capabilities,\n ...(opts.resolveInputs !== undefined ? { resolveInputs: opts.resolveInputs } : {}),\n ...(opts.symInfo !== undefined ? { symInfo: opts.symInfo } : {}),\n candles: opts.candles,\n onEmissions: opts.onEmissions,\n dispose: opts.dispose ?? noopDispose,\n };\n}\n\nfunction noopDispose(): void {\n // intentional no-op\n}\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { KIND_BUCKET, bucketFor } from \"@invinite-org/chartlang-core\";\nexport type { DrawingBucket, DrawingState } from \"@invinite-org/chartlang-core\";\nexport { defineAdapter } from \"./defineAdapter.js\";\nexport type { DefineAdapterOpts } from \"./defineAdapter.js\";\nexport { PHASE_5_PLOT_KINDS, capabilities } from \"./capabilities/index.js\";\nexport { decodeDrawing, validateEmission } from \"./validation/index.js\";\nexport type { ValidationFail, ValidationOk, ValidationResult } from \"./validation/index.js\";\nexport { mockCandleSource } from \"./mocks/index.js\";\nexport type { MockCandleSourceMode, MockCandleSourceOpts } from \"./mocks/index.js\";\nexport { BufferingAdapter, PassThroughAdapter } from \"./base/index.js\";\nexport type {\n Adapter,\n AdapterSymInfo,\n AlertChannel,\n AlertConditionEmission,\n AlertEmission,\n Capabilities,\n CandleEvent,\n DiagnosticCode,\n DrawingCounts,\n DrawingEmission,\n DrawingKind,\n InputKind,\n LogEmission,\n PlotEmission,\n PlotKind,\n PlotOverride,\n PlotSlotDescriptor,\n PlotStyle,\n RunnerEmissions,\n RuntimeDiagnostic,\n SymInfoField,\n} from \"./types.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { mockCandleSource } from \"./mockCandleSource.js\";\nexport type { MockCandleSourceMode, MockCandleSourceOpts } from \"./mockCandleSource.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mockCandleSource.js","sourceRoot":"","sources":["../../src/mocks/mockCandleSource.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AA6C/D,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,gBAAgB,CAC5B,IAAwB,EACxB,OAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE;IAE/C,MAAM,IAAI,GAAyB,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClF,OAAO;QACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAChC,OAAO;YACX,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBACjC,CAAC;gBACD,OAAO;YACX,CAAC;YACD,sBAAsB;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACnD,IAAI,KAAK,GAAG,KAAK;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"mockCandleSource.js","sourceRoot":"","sources":["../../src/mocks/mockCandleSource.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AA6C/D,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,gBAAgB,CAC5B,IAAwB,EACxB,OAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE;IAE/C,MAAM,IAAI,GAAyB,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClF,OAAO;QACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAChC,OAAO;YACX,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBACjC,CAAC;gBACD,OAAO;YACX,CAAC;YACD,sBAAsB;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACnD,IAAI,KAAK,GAAG,KAAK;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Bar } from \"@invinite-org/chartlang-core\";\nimport type { CandleEvent } from \"../types.js\";\n\n/**\n * How a {@link mockCandleSource} surfaces the supplied bars:\n *\n * - `history` — yields one warm-up batch with every bar.\n * - `stream` — yields one `close` event per bar in array order.\n * - `history-then-stream` — yields one history batch containing all\n * but the last `streamTail` bars, then a `close` event per\n * remaining bar. Lets a consumer paint a chart instantly from\n * the warm-up batch and still receive per-bar ticks afterwards.\n *\n * @since 0.5\n * @stable\n * @example\n * const m: MockCandleSourceMode = \"history-then-stream\";\n */\nexport type MockCandleSourceMode = \"history\" | \"stream\" | \"history-then-stream\";\n\n/**\n * Options accepted by {@link mockCandleSource}. `interval` mirrors the\n * `Bar.interval` field; `mode` defaults to `\"history\"`. `streamTail`\n * applies only when `mode === \"history-then-stream\"` and defaults to\n * `1` — the smallest non-zero value, leaving a single tail bar to\n * stream after the warm-up batch. `streamTail` is clamped to\n * `[0, bars.length]`.\n *\n * @since 0.5\n * @stable\n * @example\n * const o: MockCandleSourceOpts = {\n * interval: \"1D\",\n * mode: \"history-then-stream\",\n * streamTail: 20,\n * };\n */\nexport type MockCandleSourceOpts = {\n readonly interval: string;\n readonly mode?: MockCandleSourceMode;\n readonly streamTail?: number;\n};\n\nconst DEFAULT_STREAM_TAIL = 1;\n\n/**\n * Wrap a static `Bar[]` array in an `AsyncIterable<CandleEvent>` the\n * runtime + conformance tests can drive directly.\n *\n * - `\"history\"` (default) — yields exactly one\n * `{ kind: \"history\", bars }` event.\n * - `\"stream\"` — yields one `{ kind: \"close\", bar }` per bar in array\n * order.\n * - `\"history-then-stream\"` — yields a single\n * `{ kind: \"history\", bars }` event for all but the trailing\n * `streamTail` bars (default `1`), then one `{ kind: \"close\", bar }`\n * per remaining bar. With `streamTail` clamped to `[0, bars.length]`,\n * `streamTail === 0` degenerates to a pure history batch and\n * `streamTail >= bars.length` yields an empty history batch followed\n * by a close-per-bar.\n *\n * @since 0.1\n * @stable\n * @example\n * import { mockCandleSource } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const source = mockCandleSource([], { interval: \"1D\" });\n * for await (const e of source) {\n * void e;\n * }\n */\nexport function mockCandleSource(\n bars: ReadonlyArray<Bar>,\n opts: MockCandleSourceOpts = { interval: \"1D\" },\n): AsyncIterable<CandleEvent> {\n const mode: MockCandleSourceMode = opts.mode ?? \"history\";\n const streamTail = clampTail(opts.streamTail ?? DEFAULT_STREAM_TAIL, bars.length);\n return {\n async *[Symbol.asyncIterator](): AsyncIterator<CandleEvent> {\n if (mode === \"history\") {\n yield { kind: \"history\", bars };\n return;\n }\n if (mode === \"stream\") {\n for (const bar of bars) {\n yield { kind: \"close\", bar };\n }\n return;\n }\n // history-then-stream\n const splitAt = bars.length - streamTail;\n yield { kind: \"history\", bars: bars.slice(0, splitAt) };\n for (let i = splitAt; i < bars.length; i += 1) {\n yield { kind: \"close\", bar: bars[i] };\n }\n },\n };\n}\n\nfunction clampTail(value: number, total: number): number {\n if (!Number.isFinite(value) || value < 0) return 0;\n if (value > total) return total;\n return Math.floor(value);\n}\n"]}
package/dist/types.d.ts CHANGED
@@ -458,6 +458,40 @@ export type PlotEmission = {
458
458
  * void hidden;
459
459
  */
460
460
  readonly visible?: boolean;
461
+ /**
462
+ * Presentation-only horizontal display shift in **bars**. Omitted (or
463
+ * `0`) ⇒ no shift, so a no-shift emission is byte-identical to a plot
464
+ * that never carried the field. `+n` shifts the plotted series `n`
465
+ * bars **right** (into the future); `−n` shifts it `n` bars **left**
466
+ * (into the past). It moves only where the series renders — `value`
467
+ * is the unshifted number and alert bars are unaffected. Must be a
468
+ * signed integer; `validateEmission` rejects a non-integer.
469
+ *
470
+ * @since 1.3
471
+ * @stable
472
+ * @example
473
+ * const shifted: PlotEmission["xShift"] = -5;
474
+ * void shifted;
475
+ */
476
+ readonly xShift?: number;
477
+ /**
478
+ * Presentation-only render-order key (z-index). Omitted (or `0`) ⇒ no
479
+ * explicit order, so the emission is byte-identical to a plot that
480
+ * never carried the field. Higher `z` renders on top; lower (incl.
481
+ * negative) renders behind. Adapters MUST compute a stable global
482
+ * order keyed on `(z ?? 0, groupBand, declarationSeq)` — a plot with
483
+ * `z` below a drawing's `z` renders beneath that drawing, crossing the
484
+ * default plots-under-drawings band. Any finite number (fractional
485
+ * allowed); `validateEmission` rejects NaN / ±Infinity. Affects only
486
+ * stacking — `value`, `xShift`, alerts, and `state.*` are unaffected.
487
+ *
488
+ * @since 1.4
489
+ * @stable
490
+ * @example
491
+ * const behind: PlotEmission["z"] = -1;
492
+ * void behind;
493
+ */
494
+ readonly z?: number;
461
495
  };
462
496
  /**
463
497
  * An `alert()` emission. `dedupeKey` is computed by the runtime
@@ -579,6 +613,26 @@ export type DrawingEmission = {
579
613
  readonly state: DrawingState;
580
614
  readonly bar: number;
581
615
  readonly time: number;
616
+ /**
617
+ * Presentation-only render-order key (z-index). Omitted (or `0`) ⇒ no
618
+ * explicit order, so the emission is byte-identical to a drawing that
619
+ * never carried the field. Higher `z` renders on top; a **negative**
620
+ * `z` lets a drawing render **below** `z=0` plots, crossing the
621
+ * default plots-under-drawings band. Adapters MUST compute a stable
622
+ * global order keyed on `(z ?? 0, groupBand, declarationSeq)`. Any
623
+ * finite number (fractional allowed); `validateEmission` rejects
624
+ * NaN / ±Infinity. Affects only stacking — `state.*` geometry is
625
+ * unaffected. `z` is part of the latest state under the per-`(handleId,
626
+ * bar)` last-write-wins dedup: a `create` then `update` that changes
627
+ * `z` takes the updated value.
628
+ *
629
+ * @since 1.4
630
+ * @stable
631
+ * @example
632
+ * const beneathPlots: DrawingEmission["z"] = -1;
633
+ * void beneathPlots;
634
+ */
635
+ readonly z?: number;
582
636
  };
583
637
  /**
584
638
  * Stable machine-readable diagnostic code emitted by the runtime / host
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type {\n AlertSeverity,\n Bar,\n Color,\n DrawingCounts as CoreDrawingCounts,\n DrawingKind as CoreDrawingKind,\n InputKind as CoreInputKind,\n PlotKind as CorePlotKind,\n PlotOverride as CorePlotOverride,\n PlotSlotDescriptor as CorePlotSlotDescriptor,\n DrawingState,\n IntervalDescriptor,\n JsonValue,\n LineStyle,\n LogLevel,\n SymbolType,\n} from \"@invinite-org/chartlang-core\";\n\n/**\n * Adapter-supplied candle event the runtime consumes through\n * `Adapter.candles(...)`. `history` is a batched warm-up payload; `close`\n * carries a finalised bar; `tick` carries an intra-bar update that the\n * runtime applies to the current bar's head slot.\n *\n * @since 0.1\n * @stable\n * @example\n * const evt: CandleEvent = { kind: \"history\", bars: [] };\n */\nexport type CandleEvent =\n | {\n readonly kind: \"history\";\n readonly bars: ReadonlyArray<Bar>;\n /**\n * Secondary-stream key. Omit for the main stream; set to a\n * requested interval value such as `\"1D\"` for MTF candles.\n *\n * @since 0.5\n */\n readonly streamKey?: string;\n }\n | {\n readonly kind: \"close\";\n readonly bar: Bar;\n /**\n * Secondary-stream key. Omit for the main stream; set to a\n * requested interval value such as `\"1D\"` for MTF candles.\n *\n * @since 0.5\n */\n readonly streamKey?: string;\n }\n | {\n readonly kind: \"tick\";\n readonly bar: Bar;\n /**\n * Secondary-stream key. Omit for the main stream; set to a\n * requested interval value such as `\"1D\"` for MTF candles.\n *\n * @since 0.5\n */\n readonly streamKey?: string;\n };\n\n/**\n * Indicator plot styles Phase 1 ships. Re-exported from\n * `@invinite-org/chartlang-core` so the script-facing and adapter-facing\n * surfaces stay in lock-step — the full PLAN §7.2 set lands in Phase 2+,\n * additively, in the core declaration. Pinned set — additive only across\n * `apiVersion: 1.x`.\n *\n * @since 0.1\n * @stable\n * @example\n * const k: PlotKind = \"line\";\n */\nexport type PlotKind = CorePlotKind;\n\n/**\n * One plotted-slot descriptor in `ScriptManifest.plots`. Re-exported\n * from `@invinite-org/chartlang-core` so the script-facing and\n * adapter-facing surfaces stay in lockstep — adapter authors key\n * style/visibility UI rows by the stable `slotId`.\n *\n * @since 0.8\n * @stable\n * @example\n * const slot: PlotSlotDescriptor = {\n * slotId: \"ema.ts:12:5#0\",\n * kind: \"line\",\n * title: \"EMA\",\n * };\n * void slot;\n */\nexport type PlotSlotDescriptor = CorePlotSlotDescriptor;\n\n/**\n * Host-supplied presentation override for a single plot slot, keyed by\n * `PlotEmission.slotId`. Re-exported from `@invinite-org/chartlang-core`\n * so adapter authors and hosts share the same shape. Applied by the\n * runtime at emit time; never affects `compute`.\n *\n * @since 0.8\n * @stable\n * @example\n * const override: PlotOverride = { visible: false, color: \"#ff0000\" };\n * void override;\n */\nexport type PlotOverride = CorePlotOverride;\n\n/**\n * Drawing kind discriminator. Phase 3 widens the Phase-1 `\"line\"`\n * placeholder to the full 61-entry kebab-case union — re-exported from\n * `@invinite-org/chartlang-core`. The wire format is kebab-case; the\n * camelCase TypeScript surface (`draw.horizontalLine`,\n * `draw.fibRetracement`, …) is pinned via core's\n * `KIND_CAMELCASE` / `KIND_KEBABCASE` bijection. Phase-1 / Phase-2\n * adapter code that wrote `drawingKind: \"line\"` keeps compiling — the\n * widening is purely additive. Pinned set — additive only across\n * `apiVersion: 1.x`.\n *\n * @since 0.1\n * @stable\n * @example\n * const k: DrawingKind = \"fib-retracement\";\n * void k;\n */\nexport type DrawingKind = CoreDrawingKind;\n\n/**\n * Channels an alert emission can be dispatched on. Adapters declare the\n * subset they support via `Capabilities.alerts`; emissions to unsupported\n * channels drop with `unsupported-alert-channel`.\n *\n * @since 0.1\n * @stable\n * @example\n * const c: AlertChannel = \"toast\";\n */\nexport type AlertChannel = \"log\" | \"toast\" | \"webhook\" | \"email\" | \"sms\" | \"push\";\n\n/**\n * Input families an adapter is willing to surface in the script-settings\n * UI. Phase-1 example scripts use defaults only; `input.*` runtime\n * resolution lands in Phase 4.\n *\n * @since 0.1\n * @stable\n * @example\n * const k: InputKind = \"int\";\n */\nexport type InputKind = CoreInputKind;\n\n/**\n * `syminfo.*` fields the adapter populates. Phase-1 scripts don't read\n * symbol metadata; the type is here so consumer-repo adapters can pin\n * against a stable shape now.\n *\n * @since 0.1\n * @stable\n * @example\n * const f: SymInfoField = \"ticker\";\n */\nexport type SymInfoField =\n | \"ticker\"\n | \"type\"\n | \"mintick\"\n | \"currency\"\n | \"basecurrency\"\n | \"exchange\"\n | \"timezone\"\n | \"session\"\n | \"meta\";\n\n/**\n * Adapter-supplied per-mount symbol metadata payload consumed by the\n * runtime's `syminfo.*` view builder.\n *\n * @since 0.4\n * @stable\n * @example\n * const info: AdapterSymInfo = {\n * ticker: \"DEMO\",\n * type: \"equity\",\n * mintick: 0.01,\n * };\n * void info;\n */\nexport type AdapterSymInfo = Readonly<{\n ticker?: string;\n type?: SymbolType;\n mintick?: number;\n currency?: string;\n basecurrency?: string;\n exchange?: string;\n timezone?: string;\n session?: string;\n meta?: Readonly<Record<string, JsonValue>>;\n}>;\n\n/**\n * Per-script drawing-emission budget. Excess `draw.*` calls fall back to\n * no-op + `drawing-budget-exceeded`. Mirrors Pine's `max_*_count` family.\n *\n * Canonical declaration lives in `@invinite-org/chartlang-core/types`\n * (Phase 3) so `ScriptManifest.maxDrawings?` and\n * `Capabilities.maxDrawingsPerScript` pin the same shape — the public\n * surface here is preserved via a type re-export. The re-export\n * preserves the `adapter-kit → core` dependency direction.\n *\n * @since 0.1\n * @stable\n * @example\n * const c: DrawingCounts = {\n * lines: 50, labels: 50, boxes: 50, polylines: 50, other: 50,\n * };\n * void c;\n */\nexport type DrawingCounts = CoreDrawingCounts;\n\n/**\n * Capability bag an adapter declares. The runtime, host-worker, and\n * editor all gate emissions through this shape. Primitives outside the\n * declared set become silent no-ops + diagnostic (PLAN §7.4).\n * Capability keys are pinned — additive only across `apiVersion: 1.x`.\n *\n * Phase 1 omits `feedExternalSeries`-related `inputs` entries from any\n * declared subset; Phase 4 wires the surface.\n *\n * @since 0.1\n * @stable\n * @example\n * const c: Capabilities = {\n * plots: new Set([\"line\"]),\n * drawings: new Set(),\n * alerts: new Set([\"toast\"]),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 5000,\n * maxTickHz: 10,\n * };\n */\nexport type Capabilities = {\n readonly plots: ReadonlySet<PlotKind>;\n readonly drawings: ReadonlySet<DrawingKind>;\n readonly alerts: ReadonlySet<AlertChannel>;\n /**\n * Whether the adapter can route `defineAlertCondition` user-wired\n * alerts per PLAN §11.2.\n *\n * @since 0.4\n * @stable\n * @example\n * const enabled: Capabilities[\"alertConditions\"] = false;\n * void enabled;\n */\n readonly alertConditions: boolean;\n /**\n * Whether the adapter renders `runtime.log.*` messages per PLAN §11.3.\n *\n * @since 0.4\n * @stable\n * @example\n * const enabled: Capabilities[\"logs\"] = false;\n * void enabled;\n */\n readonly logs: boolean;\n readonly inputs: ReadonlySet<InputKind>;\n /**\n * Timeframes this adapter can deliver candles for. Order is meaningful\n * for editor pickers and `request.security` validation (PLAN §4.5).\n *\n * @since 0.4\n * @stable\n * @example\n * const intervals: Capabilities[\"intervals\"] = [\n * { value: \"1D\", label: \"1 day\", group: \"daily\" },\n * ];\n * void intervals;\n */\n readonly intervals: ReadonlyArray<IntervalDescriptor>;\n /**\n * Whether the adapter can deliver more than one candle stream per script\n * load. `false` triggers the Phase 4 all-NaN fallback for\n * `request.security` (PLAN §4.5).\n *\n * @since 0.4\n * @stable\n * @example\n * const enabled: Capabilities[\"multiTimeframe\"] = false;\n * void enabled;\n */\n readonly multiTimeframe: boolean;\n /**\n * Max number of sub-panes the adapter can render for one script. Use\n * `Number.MAX_SAFE_INTEGER` as the unlimited sentinel per PLAN §7.2.\n *\n * @since 0.4\n * @stable\n * @example\n * const max: Capabilities[\"subPanes\"] = Number.MAX_SAFE_INTEGER;\n * void max;\n */\n readonly subPanes: number;\n /**\n * `syminfo.*` fields this adapter populates. Missing fields evaluate to\n * empty sentinels per PLAN §4.8.\n *\n * @since 0.4\n * @stable\n * @example\n * const fields: Capabilities[\"symInfoFields\"] = new Set([\"ticker\"]);\n * void fields;\n */\n readonly symInfoFields: ReadonlySet<SymInfoField>;\n /**\n * Per-script drawing-emission budget consumed by runtime drawing gates\n * and bucketed by PLAN §10 drawing categories.\n *\n * @since 0.4\n * @stable\n * @example\n * const counts: Capabilities[\"maxDrawingsPerScript\"] = {\n * lines: 50, labels: 50, boxes: 50, polylines: 50, other: 50,\n * };\n * void counts;\n */\n readonly maxDrawingsPerScript: DrawingCounts;\n readonly maxLookback: number;\n readonly maxTickHz: number;\n};\n\n/**\n * Plot style discriminated union. Phase 1 shipped `line` / `step-line` /\n * `horizontal-line`; Phase 2 adds `histogram` / `area` /\n * `filled-band` / `label` / `marker` per PLAN §7.3. Phase 5 will extend\n * further (`shape`, `character`, `arrow`, `vertical-line`,\n * `bar-override`, …). Every expansion is additive — `apiVersion: 1`\n * scripts stay valid.\n *\n * @since 0.1\n * @stable\n * @example\n * const line: PlotStyle = { kind: \"line\", lineWidth: 1, lineStyle: \"solid\" };\n * const hist: PlotStyle = { kind: \"histogram\", baseline: 0 };\n * const band: PlotStyle = { kind: \"filled-band\", upper: 1, lower: -1, alpha: 0.2 };\n * void line; void hist; void band;\n */\nexport type PlotStyle =\n | {\n readonly kind: \"line\";\n readonly lineWidth: number;\n readonly lineStyle: LineStyle;\n }\n | {\n readonly kind: \"step-line\";\n readonly lineWidth: number;\n readonly lineStyle: LineStyle;\n }\n | {\n readonly kind: \"horizontal-line\";\n readonly lineWidth: number;\n readonly lineStyle: LineStyle;\n }\n /** Phase 2 — column rising from `baseline` to `value`. @since 0.2 */\n | {\n readonly kind: \"histogram\";\n readonly baseline: number;\n }\n /** Phase 2 — filled polygon under a polyline. @since 0.2 */\n | {\n readonly kind: \"area\";\n readonly lineWidth: number;\n readonly lineStyle: LineStyle;\n readonly fillAlpha: number;\n }\n /** Phase 2 — region between two polylines. `upper` / `lower` may be\n * `null` to mark a per-bar gap; both `null` is rejected by\n * {@link validateEmission}. @since 0.2 */\n | {\n readonly kind: \"filled-band\";\n readonly upper: number | null;\n readonly lower: number | null;\n readonly alpha: number;\n }\n /** Phase 2 — text annotation anchored above / below / at the value.\n * @since 0.2 */\n | {\n readonly kind: \"label\";\n readonly text: string;\n readonly position: \"above\" | \"below\" | \"anchor\";\n }\n /** Phase 2 — discrete glyph at the value. @since 0.2 */\n | {\n readonly kind: \"marker\";\n readonly shape: \"circle\" | \"triangle-up\" | \"triangle-down\" | \"square\" | \"diamond\";\n readonly size: number;\n }\n /** Phase 5 — Pine `plotshape` glyph at the plot anchor. @since 0.5 */\n | {\n readonly kind: \"shape\";\n readonly shape:\n | \"circle\"\n | \"triangle-up\"\n | \"triangle-down\"\n | \"square\"\n | \"diamond\"\n | \"cross\"\n | \"xcross\"\n | \"flag\";\n readonly size: number;\n readonly location?: \"above\" | \"below\" | \"absolute\";\n }\n /** Phase 5 — Pine `plotchar` text glyph at the plot anchor. @since 0.5 */\n | {\n readonly kind: \"character\";\n readonly char: string;\n readonly size: number;\n readonly location?: \"above\" | \"below\" | \"absolute\";\n }\n /** Phase 5 — Pine `plotarrow` directional marker. @since 0.5 */\n | {\n readonly kind: \"arrow\";\n readonly direction: \"up\" | \"down\";\n readonly size: number;\n }\n /** Phase 5 — Pine `plotcandle` body-color override. @since 0.5 */\n | {\n readonly kind: \"candle-override\";\n readonly bull: Color;\n readonly bear: Color;\n readonly doji?: Color;\n }\n /** Phase 5 — Pine `plotbar` outline-color override. @since 0.5 */\n | {\n readonly kind: \"bar-override\";\n readonly color: Color;\n }\n /** Phase 5 — Pine `bgcolor` background band. @since 0.5 */\n | {\n readonly kind: \"bg-color\";\n readonly color: Color;\n readonly transp?: number;\n }\n /** Phase 5 — Pine `barcolor` candle/bar tint. @since 0.5 */\n | {\n readonly kind: \"bar-color\";\n readonly color: Color;\n }\n /** Phase 5 — volume-profile horizontal histogram buckets. @since 0.5 */\n | {\n readonly kind: \"horizontal-histogram\";\n readonly buckets: ReadonlyArray<\n Readonly<{ readonly price: number; readonly volume: number; readonly color?: Color }>\n >;\n };\n\n/**\n * A `plot()` / `hline()` emission the runtime sends to the adapter.\n * Numeric `value: null` is the wire-level \"skip this bar\" — NaN/Infinity\n * are forbidden in `value` and anywhere in `meta` (PLAN §7.3 universal\n * payload rules).\n *\n * @since 0.1\n * @stable\n * @example\n * const e: PlotEmission = {\n * kind: \"plot\",\n * slotId: \"ema-cross.ts:12:5#0\",\n * title: \"EMA\",\n * style: { kind: \"line\", lineWidth: 1, lineStyle: \"solid\" },\n * bar: 100,\n * time: 1_700_000_000_000,\n * value: 42.31,\n * color: \"#3b82f6\",\n * meta: {},\n * pane: \"overlay\",\n * };\n */\nexport type PlotEmission = {\n readonly kind: \"plot\";\n readonly slotId: string;\n readonly title: string;\n readonly style: PlotStyle;\n readonly bar: number;\n readonly time: number;\n readonly value: number | null;\n readonly color: string | null;\n readonly meta: Readonly<Record<string, JsonValue>>;\n readonly pane: \"overlay\" | \"new\" | string;\n /**\n * Omitted ⇒ visible. Set to `false` by the runtime when a host\n * override hides this slot; the adapter SHOULD skip rendering and\n * y-scale inclusion but keep the slot listed.\n *\n * @since 0.8\n * @stable\n * @example\n * const hidden: PlotEmission[\"visible\"] = false;\n * void hidden;\n */\n readonly visible?: boolean;\n /**\n * Presentation-only horizontal display shift in **bars**. Omitted (or\n * `0`) ⇒ no shift, so a no-shift emission is byte-identical to a plot\n * that never carried the field. `+n` shifts the plotted series `n`\n * bars **right** (into the future); `−n` shifts it `n` bars **left**\n * (into the past). It moves only where the series renders — `value`\n * is the unshifted number and alert bars are unaffected. Must be a\n * signed integer; `validateEmission` rejects a non-integer.\n *\n * @since 1.3\n * @stable\n * @example\n * const shifted: PlotEmission[\"xShift\"] = -5;\n * void shifted;\n */\n readonly xShift?: number;\n /**\n * Presentation-only render-order key (z-index). Omitted (or `0`) ⇒ no\n * explicit order, so the emission is byte-identical to a plot that\n * never carried the field. Higher `z` renders on top; lower (incl.\n * negative) renders behind. Adapters MUST compute a stable global\n * order keyed on `(z ?? 0, groupBand, declarationSeq)` — a plot with\n * `z` below a drawing's `z` renders beneath that drawing, crossing the\n * default plots-under-drawings band. Any finite number (fractional\n * allowed); `validateEmission` rejects NaN / ±Infinity. Affects only\n * stacking — `value`, `xShift`, alerts, and `state.*` are unaffected.\n *\n * @since 1.4\n * @stable\n * @example\n * const behind: PlotEmission[\"z\"] = -1;\n * void behind;\n */\n readonly z?: number;\n};\n\n/**\n * An `alert()` emission. `dedupeKey` is computed by the runtime\n * (`slotId + bar + hash(message + meta)`) and adapters that dispatch\n * via async channels MUST use it for idempotency.\n *\n * @since 0.1\n * @stable\n * @example\n * const e: AlertEmission = {\n * kind: \"alert\",\n * slotId: \"rsi.ts:42:1#0\",\n * severity: \"warning\",\n * message: \"RSI divergence\",\n * bar: 200,\n * time: 1_700_000_000_000,\n * meta: {},\n * channels: [\"toast\"],\n * dedupeKey: \"rsi.ts:42:1#0|200|deadbeef\",\n * };\n */\nexport type AlertEmission = {\n readonly kind: \"alert\";\n readonly slotId: string;\n readonly severity: AlertSeverity;\n readonly message: string;\n readonly bar: number;\n readonly time: number;\n readonly meta: Readonly<Record<string, JsonValue>>;\n readonly channels: ReadonlyArray<AlertChannel>;\n readonly dedupeKey: string;\n};\n\n/**\n * Per-bar emission produced by `ComputeContext.signal(conditionId, fired)`.\n * Adapters route these named, user-wired conditions to delivery channels\n * configured in their own UI.\n *\n * @since 0.5\n * @stable\n * @example\n * const e: AlertConditionEmission = {\n * kind: \"alert-condition\",\n * conditionId: \"bullishCross\",\n * title: \"Bullish cross\",\n * description: \"Fast EMA crossed above slow EMA\",\n * defaultMessage: \"{{ticker}} crossed up\",\n * fired: true,\n * bar: 42,\n * time: 1_700_000_000_000,\n * };\n * void e;\n */\nexport type AlertConditionEmission = {\n readonly kind: \"alert-condition\";\n readonly conditionId: string;\n readonly title: string;\n readonly description: string;\n readonly defaultMessage: string;\n readonly fired: boolean;\n readonly bar: number;\n readonly time: number;\n};\n\n/**\n * Per-bar debug log produced by `runtime.log.info/warn/error(...)`.\n * Logs are capability-gated by `Capabilities.logs`; disabled logs are\n * silent no-ops because they are debugging output rather than signal.\n *\n * @since 0.5\n * @stable\n * @example\n * const e: LogEmission = {\n * kind: \"log\",\n * level: \"info\",\n * message: \"ema warmed\",\n * meta: { ema: 42 },\n * bar: 10,\n * time: 1_700_000_000_000,\n * };\n * void e;\n */\nexport type LogEmission = {\n readonly kind: \"log\";\n readonly level: LogLevel;\n readonly message: string;\n readonly meta?: Readonly<Record<string, JsonValue>>;\n readonly bar: number;\n readonly time: number;\n};\n\n/**\n * A `draw.*` emission. Phase 3 narrows `state` from `unknown` to the\n * typed {@link DrawingState} discriminated union. `op: \"create\"`\n * carries the initial state; `op: \"update\"` carries the FULL merged\n * state per the §10.3 full-state semantic (not a patch); `op:\n * \"remove\"` carries the last-known state.\n *\n * @since 0.1\n * @stable\n * @example\n * const e: DrawingEmission = {\n * kind: \"drawing\",\n * handleId: \"ph3.ts:1:1#0\",\n * drawingKind: \"line\",\n * op: \"create\",\n * state: {\n * kind: \"line\",\n * anchors: [{ time: 0, price: 0 }, { time: 1, price: 1 }],\n * style: {},\n * },\n * bar: 0,\n * time: 0,\n * };\n * void e;\n */\nexport type DrawingEmission = {\n readonly kind: \"drawing\";\n readonly handleId: string;\n readonly drawingKind: DrawingKind;\n readonly op: \"create\" | \"update\" | \"remove\";\n readonly state: DrawingState;\n readonly bar: number;\n readonly time: number;\n /**\n * Presentation-only render-order key (z-index). Omitted (or `0`) ⇒ no\n * explicit order, so the emission is byte-identical to a drawing that\n * never carried the field. Higher `z` renders on top; a **negative**\n * `z` lets a drawing render **below** `z=0` plots, crossing the\n * default plots-under-drawings band. Adapters MUST compute a stable\n * global order keyed on `(z ?? 0, groupBand, declarationSeq)`. Any\n * finite number (fractional allowed); `validateEmission` rejects\n * NaN / ±Infinity. Affects only stacking — `state.*` geometry is\n * unaffected. `z` is part of the latest state under the per-`(handleId,\n * bar)` last-write-wins dedup: a `create` then `update` that changes\n * `z` takes the updated value.\n *\n * @since 1.4\n * @stable\n * @example\n * const beneathPlots: DrawingEmission[\"z\"] = -1;\n * void beneathPlots;\n */\n readonly z?: number;\n};\n\n/**\n * Stable machine-readable diagnostic code emitted by the runtime / host\n * when an emission is dropped, an input fails coercion, or a budget is\n * exceeded. Pinned set — additive only across `apiVersion: 1.x`.\n *\n * Phase 7 adds the `dep-*` family covering compile-time and runtime\n * failures of the indicator-composition surface introduced by\n * `CompiledScriptObject.output` / `.withInputs`:\n *\n * - `dep-error` — dependency `compute` threw; parent's bar dropped.\n * - `dep-cycle` — compile-time dependency cycle detected.\n * - `dep-unknown-output` — `<binding>.output(\"x\")` references a title\n * the producer doesn't emit via `plot(value, { title })`.\n * - `dep-invalid-input-override` — `.withInputs({...})` carries a key\n * not in the producer's `inputs` schema, or fails coercion.\n * - `dep-dynamic` — dep binding cannot be statically resolved\n * (non-`const`, conditional initialiser, computed access).\n * - `dep-output-not-titled` — producer's `plot(...)` has no `title`,\n * so consumers cannot reference it by name.\n *\n * @since 0.1\n * @stable\n * @example\n * const code: DiagnosticCode = \"unsupported-plot-kind\";\n * const dep: DiagnosticCode = \"dep-cycle\";\n * void code;\n * void dep;\n */\nexport type DiagnosticCode =\n | \"unsupported-plot-kind\"\n | \"unsupported-drawing-kind\"\n | \"unsupported-alert-channel\"\n | \"unsupported-pane\"\n | \"unsupported-interval\"\n | \"multi-timeframe-not-supported\"\n | \"unknown-secondary-stream\"\n | \"lookback-exceeded\"\n | \"drawing-budget-exceeded\"\n | \"dropped-by-policy\"\n | \"input-coercion-failed\"\n | \"alert-conditions-not-supported\"\n | \"unknown-alert-condition\"\n | \"alert-rate-limited\"\n | \"runtime-cpu-budget-exceeded\"\n | \"runtime-memory-budget-exceeded\"\n | \"runtime-log-budget-exceeded\"\n | \"malformed-log-meta\"\n | \"runtime-error-thrown\"\n | \"session-info-missing\"\n | \"fixed-range-inverted\"\n | \"state-snapshot-restored\"\n | \"state-snapshot-future-dated\"\n | \"state-snapshot-malformed\"\n | \"state-snapshot-save-failed\"\n | \"malformed-emission\"\n | \"dep-error\"\n | \"dep-cycle\"\n | \"dep-unknown-output\"\n | \"dep-invalid-input-override\"\n | \"dep-dynamic\"\n | \"dep-output-not-titled\";\n\n/**\n * A non-rendered diagnostic the runtime / host surfaces to the editor +\n * error reporters. Never user-visible on its own.\n *\n * @since 0.1\n * @stable\n * @example\n * const d: RuntimeDiagnostic = {\n * kind: \"diagnostic\",\n * severity: \"warning\",\n * code: \"unsupported-plot-kind\",\n * message: \"plot kind 'area' not in adapter capabilities\",\n * slotId: \"ema.ts:1:1#0\",\n * bar: 10,\n * };\n */\nexport type RuntimeDiagnostic = {\n readonly kind: \"diagnostic\";\n readonly severity: \"info\" | \"warning\" | \"error\";\n readonly code: DiagnosticCode;\n readonly message: string;\n readonly slotId: string | null;\n readonly bar: number | null;\n};\n\n/**\n * Top-level drain payload the runtime hands `Adapter.onEmissions(...)`.\n * Phase 1 ships `plots` / `drawings` / `alerts` / `diagnostics`; Phase 5\n * additively adds `alertConditions` + `logs` (per PLAN §7.3).\n *\n * @since 0.1\n * @stable\n * @example\n * const e: RunnerEmissions = {\n * plots: [],\n * drawings: [],\n * alerts: [],\n * alertConditions: [],\n * logs: [],\n * diagnostics: [],\n * fromBar: 0,\n * toBar: 0,\n * };\n */\nexport type RunnerEmissions = {\n readonly plots: ReadonlyArray<PlotEmission>;\n readonly drawings: ReadonlyArray<DrawingEmission>;\n readonly alerts: ReadonlyArray<AlertEmission>;\n readonly alertConditions: ReadonlyArray<AlertConditionEmission>;\n readonly logs: ReadonlyArray<LogEmission>;\n readonly diagnostics: ReadonlyArray<RuntimeDiagnostic>;\n readonly fromBar: number;\n readonly toBar: number;\n};\n\n/**\n * The host-side contract every chartlang adapter implements. Phase 1\n * omits PLAN §7.1's optional `feedExternalSeries?` — that surface\n * arrives in Phase 4 alongside `input.external-series`. The shape is\n * additive, so consumer-repo adapters won't need a breaking change to\n * opt in later.\n *\n * @since 0.1\n * @stable\n * @example\n * declare const a: Adapter;\n * for await (const e of a.candles({ interval: \"chart\" })) {\n * void e;\n * }\n */\nexport type Adapter = {\n readonly id: string;\n readonly name: string;\n readonly capabilities: Capabilities;\n /**\n * Optional per-script input override resolver. Called by hosts at script\n * mount with the script id/name and merged over manifest defaults by the\n * runtime.\n *\n * @since 0.4\n * @stable\n * @example\n * const resolveInputs: Adapter[\"resolveInputs\"] = (scriptId) => ({\n * length: scriptId === \"demo\" ? 20 : 14,\n * });\n * void resolveInputs;\n */\n readonly resolveInputs?: (scriptId: string) => Readonly<Record<string, unknown>>;\n /**\n * Optional per-script plot-override resolver. Called by hosts at\n * mount with the script id/name; returns a `slotId → PlotOverride`\n * map the runtime applies to emissions. Presentation-only — never\n * affects `compute`. Hosts may also push live updates after mount\n * (see `ScriptHost.setPlotOverrides`).\n *\n * @since 0.8\n * @stable\n * @example\n * const resolvePlotOverrides: Adapter[\"resolvePlotOverrides\"] =\n * () => ({ \"ema.ts:12:5#0\": { visible: false } });\n * void resolvePlotOverrides;\n */\n readonly resolvePlotOverrides?: (scriptId: string) => Readonly<Record<string, PlotOverride>>;\n /**\n * Optional per-mount symbol metadata payload used to populate\n * `syminfo.*`. Fields are still gated by `capabilities.symInfoFields`.\n *\n * @since 0.4\n * @stable\n * @example\n * const info: Adapter[\"symInfo\"] = { ticker: \"DEMO\" };\n * void info;\n */\n readonly symInfo?: AdapterSymInfo;\n candles(opts: { interval: string | \"chart\" }): AsyncIterable<CandleEvent>;\n onEmissions(emissions: RunnerEmissions): void;\n dispose(): void;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"decodeDrawing.js","sourceRoot":"","sources":["../../src/validation/decodeDrawing.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAK/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,aAAa,CAAC,CAAkB;IAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"decodeDrawing.js","sourceRoot":"","sources":["../../src/validation/decodeDrawing.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAK/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,aAAa,CAAC,CAAkB;IAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,CAAC;AACnB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { DrawingState } from \"@invinite-org/chartlang-core\";\n\nimport type { DrawingEmission } from \"../types.js\";\nimport { validateEmission } from \"./validateEmission.js\";\n\n/**\n * Narrow a {@link DrawingEmission} to its typed {@link DrawingState}.\n * Returns `null` when the emission fails the same validation\n * {@link validateEmission} runs — adapters that want to know WHY call\n * `validateEmission(e)` directly and inspect `.code` / `.message`.\n *\n * Successful narrows return `e.state` typed as `DrawingState`; the\n * caller can switch on `state.kind` for per-kind handling. The\n * validator pins `state.kind === e.drawingKind`, so the discriminator\n * is safe.\n *\n * @since 0.3\n * @stable\n * @example\n * import { decodeDrawing } from \"@invinite-org/chartlang-adapter-kit\";\n * import type { DrawingEmission } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * declare const e: DrawingEmission;\n * const state = decodeDrawing(e);\n * if (state !== null && state.kind === \"line\") {\n * const [from, to] = state.anchors;\n * void from;\n * void to;\n * }\n */\nexport function decodeDrawing(e: DrawingEmission): DrawingState | null {\n const result = validateEmission(e as unknown);\n if (!result.ok) return null;\n return e.state;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { decodeDrawing } from \"./decodeDrawing.js\";\nexport { validateEmission } from \"./validateEmission.js\";\nexport type { ValidationFail, ValidationOk, ValidationResult } from \"./validateEmission.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"validateEmission.d.ts","sourceRoot":"","sources":["../../src/validation/validateEmission.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,cAAc,CAAC;AA09C7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAwB7D"}
1
+ {"version":3,"file":"validateEmission.d.ts","sourceRoot":"","sources":["../../src/validation/validateEmission.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,cAAc,CAAC;AAqhD7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAwB7D"}
@@ -403,6 +403,12 @@ function validatePlotEmission(e) {
403
403
  if (e.visible !== undefined && typeof e.visible !== "boolean") {
404
404
  return bad("plot.visible: must be a boolean");
405
405
  }
406
+ if (e.xShift !== undefined && !Number.isInteger(e.xShift)) {
407
+ return bad("plot.xShift: must be an integer");
408
+ }
409
+ if (e.z !== undefined && !isFiniteNumber(e.z)) {
410
+ return bad("plot.z: must be a finite number");
411
+ }
406
412
  return { ok: true };
407
413
  }
408
414
  function validateAlertEmission(e) {
@@ -681,6 +687,42 @@ function validatePathState(state) {
681
687
  return anchorsCheck;
682
688
  return validatePathOpts(state.style, "drawing.state.style");
683
689
  }
690
+ function validateFillBetweenStyle(s, path) {
691
+ // `color` / `lineWidth` / `lineStyle` share the LineDrawStyle contract;
692
+ // delegate so the shared checks cannot drift (same pattern as
693
+ // `validatePathOpts`). FillBetweenStyle has no `extendLeft` / `extendRight`
694
+ // fields, so those LineDrawStyle checks pass vacuously.
695
+ const lineCheck = validateLineDrawStyle(s, path);
696
+ if (!lineCheck.ok)
697
+ return lineCheck;
698
+ // validateLineDrawStyle proved `s` is a plain object.
699
+ const obj = s;
700
+ if (obj.fill !== undefined && typeof obj.fill !== "string") {
701
+ return bad(`${path}.fill: must be a string`);
702
+ }
703
+ if (obj.fillAlpha !== undefined &&
704
+ (!isFiniteNumber(obj.fillAlpha) || obj.fillAlpha < 0 || obj.fillAlpha > 1)) {
705
+ return bad(`${path}.fillAlpha: must be a finite number in [0, 1]`);
706
+ }
707
+ return { ok: true };
708
+ }
709
+ // A fill-between band is a series-growth primitive: the canonical idiom
710
+ // accumulates one `WorldPoint` per bar into each edge and re-emits the whole
711
+ // ribbon every step (see `examples/scripts/fill-between-band.chart.ts`), unlike
712
+ // the discrete `path` / `polyline` tools that cap at 20. The upper bound here
713
+ // must therefore cover a full chart history — sized to the 10 000-bar bundled
714
+ // golden fixture so a band spanning the entire dataset is not silently dropped.
715
+ const FILL_BETWEEN_MIN_ANCHORS = 2;
716
+ const FILL_BETWEEN_MAX_ANCHORS = 10_000;
717
+ function validateFillBetweenState(state) {
718
+ const edgeACheck = validateAnchorVariable(state.edgeA, "drawing.state.edgeA", FILL_BETWEEN_MIN_ANCHORS, FILL_BETWEEN_MAX_ANCHORS);
719
+ if (!edgeACheck.ok)
720
+ return edgeACheck;
721
+ const edgeBCheck = validateAnchorVariable(state.edgeB, "drawing.state.edgeB", FILL_BETWEEN_MIN_ANCHORS, FILL_BETWEEN_MAX_ANCHORS);
722
+ if (!edgeBCheck.ok)
723
+ return edgeBCheck;
724
+ return validateFillBetweenStyle(state.style, "drawing.state.style");
725
+ }
684
726
  const VALID_TEXT_SIZES = new Set(["tiny", "small", "normal", "large", "huge"]);
685
727
  const VALID_TEXT_HALIGN = new Set(["left", "center", "right"]);
686
728
  const VALID_TEXT_VALIGN = new Set(["top", "middle", "bottom"]);
@@ -1283,6 +1325,8 @@ function validateStateByKind(kind, state) {
1283
1325
  return validateEllipseState(state);
1284
1326
  case "path":
1285
1327
  return validatePathState(state);
1328
+ case "fill-between":
1329
+ return validateFillBetweenState(state);
1286
1330
  case "marker":
1287
1331
  return validateMarkerState(state);
1288
1332
  case "arc":
@@ -1411,6 +1455,9 @@ function validateDrawingEmission(e) {
1411
1455
  if (state.kind !== drawingKind) {
1412
1456
  return bad(`drawing.state.kind: '${String(state.kind)}' must equal drawing.drawingKind '${drawingKind}'`);
1413
1457
  }
1458
+ if (e.z !== undefined && !isFiniteNumber(e.z)) {
1459
+ return bad("drawing.z: must be a finite number");
1460
+ }
1414
1461
  const metaCheck = validateDrawingMeta(state);
1415
1462
  if (!metaCheck.ok)
1416
1463
  return metaCheck;
@@ -1 +1 @@
1
- {"version":3,"file":"validateEmission.js","sourceRoot":"","sources":["../../src/validation/validateEmission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateEmission.js","sourceRoot":"","sources":["../../src/validation/validateEmission.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { DRAWING_KINDS, type DrawingKind } from \"@invinite-org/chartlang-core\";\n\nimport type { DiagnosticCode } from \"../types.js\";\n\n/**\n * Successful validation. `e` was a well-formed Phase-1 emission and is\n * safe to forward across the structured-clone boundary.\n *\n * @since 0.1\n * @stable\n * @example\n * const r: ValidationOk = { ok: true };\n */\nexport type ValidationOk = { readonly ok: true };\n\n/**\n * Failed validation. `code` is `\"malformed-emission\"` for shape errors\n * and `\"unsupported-drawing-kind\"` for the Phase-1 drawing stub.\n *\n * @since 0.1\n * @stable\n * @example\n * const r: ValidationFail = {\n * ok: false,\n * code: \"malformed-emission\",\n * message: \"not an object\",\n * };\n */\nexport type ValidationFail = {\n readonly ok: false;\n readonly code: DiagnosticCode;\n readonly message: string;\n};\n\n/**\n * Discriminated union returned by {@link validateEmission}.\n *\n * @since 0.1\n * @stable\n * @example\n * declare const r: ValidationResult;\n * if (r.ok) {\n * // pass through\n * } else {\n * console.error(r.code, r.message);\n * }\n */\nexport type ValidationResult = ValidationOk | ValidationFail;\n\nconst VALID_PLOT_STYLE_KINDS: ReadonlySet<string> = new Set([\n \"line\",\n \"step-line\",\n \"horizontal-line\",\n \"histogram\",\n \"area\",\n \"filled-band\",\n \"label\",\n \"marker\",\n \"shape\",\n \"character\",\n \"arrow\",\n \"candle-override\",\n \"bar-override\",\n \"bg-color\",\n \"bar-color\",\n \"horizontal-histogram\",\n]);\n\nconst VALID_LINE_STYLES: ReadonlySet<string> = new Set([\"solid\", \"dashed\", \"dotted\"]);\n\nconst VALID_MARKER_SHAPES: ReadonlySet<string> = new Set([\n \"circle\",\n \"triangle-up\",\n \"triangle-down\",\n \"square\",\n \"diamond\",\n]);\n\nconst VALID_SHAPE_GLYPHS: ReadonlySet<string> = new Set([\n \"circle\",\n \"triangle-up\",\n \"triangle-down\",\n \"square\",\n \"diamond\",\n \"cross\",\n \"xcross\",\n \"flag\",\n]);\n\nconst VALID_PLOT_LOCATIONS: ReadonlySet<string> = new Set([\"above\", \"below\", \"absolute\"]);\n\nconst VALID_ARROW_DIRECTIONS: ReadonlySet<string> = new Set([\"up\", \"down\"]);\n\nconst VALID_LABEL_POSITIONS: ReadonlySet<string> = new Set([\"above\", \"below\", \"anchor\"]);\n\nconst MAX_LABEL_LENGTH = 128;\n\nconst VALID_ALERT_SEVERITIES: ReadonlySet<string> = new Set([\"info\", \"warning\", \"critical\"]);\n\nconst VALID_LOG_LEVELS: ReadonlySet<string> = new Set([\"info\", \"warn\", \"error\"]);\n\nconst VALID_ALERT_CHANNELS: ReadonlySet<string> = new Set([\n \"log\",\n \"toast\",\n \"webhook\",\n \"email\",\n \"sms\",\n \"push\",\n]);\n\nconst VALID_DIAGNOSTIC_SEVERITIES: ReadonlySet<string> = new Set([\"info\", \"warning\", \"error\"]);\n\nconst VALID_DRAWING_KINDS: ReadonlySet<string> = new Set<string>(DRAWING_KINDS);\n\nconst VALID_DRAWING_OPS: ReadonlySet<string> = new Set([\"create\", \"update\", \"remove\"]);\n\nconst VALID_DIAGNOSTIC_CODES: ReadonlySet<string> = new Set<DiagnosticCode>([\n \"unsupported-plot-kind\",\n \"unsupported-drawing-kind\",\n \"unsupported-alert-channel\",\n \"unsupported-pane\",\n \"unsupported-interval\",\n \"multi-timeframe-not-supported\",\n \"unknown-secondary-stream\",\n \"lookback-exceeded\",\n \"drawing-budget-exceeded\",\n \"dropped-by-policy\",\n \"input-coercion-failed\",\n \"alert-conditions-not-supported\",\n \"unknown-alert-condition\",\n \"alert-rate-limited\",\n \"runtime-cpu-budget-exceeded\",\n \"runtime-memory-budget-exceeded\",\n \"runtime-log-budget-exceeded\",\n \"malformed-log-meta\",\n \"runtime-error-thrown\",\n \"session-info-missing\",\n \"fixed-range-inverted\",\n \"state-snapshot-restored\",\n \"state-snapshot-future-dated\",\n \"state-snapshot-malformed\",\n \"state-snapshot-save-failed\",\n \"malformed-emission\",\n \"dep-error\",\n \"dep-cycle\",\n \"dep-unknown-output\",\n \"dep-invalid-input-override\",\n \"dep-dynamic\",\n \"dep-output-not-titled\",\n]);\n\nfunction bad(message: string, code: DiagnosticCode = \"malformed-emission\"): ValidationFail {\n return { ok: false, code, message };\n}\n\nfunction isPlainObject(v: unknown): v is Record<string, unknown> {\n if (typeof v !== \"object\" || v === null) return false;\n const proto = Object.getPrototypeOf(v);\n return proto === Object.prototype || proto === null;\n}\n\nfunction isFiniteNumber(v: unknown): v is number {\n return typeof v === \"number\" && Number.isFinite(v);\n}\n\nfunction isNonNegativeInteger(v: unknown): v is number {\n return typeof v === \"number\" && Number.isInteger(v) && v >= 0;\n}\n\nfunction isNonEmptyString(v: unknown): v is string {\n return typeof v === \"string\" && v.length > 0;\n}\n\n/**\n * Walk a `meta` payload and reject any non-JSON-friendly element. Per\n * PLAN §7.3 universal payload rules: forbid `Map`, `Set`, `Date`,\n * `RegExp`, `bigint`, `Function`, `Symbol`, `undefined`, class\n * instances, and non-finite numbers anywhere in the tree.\n */\nfunction walkMeta(v: unknown, path: string): ValidationResult {\n if (v === null) return { ok: true };\n const t = typeof v;\n if (t === \"boolean\" || t === \"string\") return { ok: true };\n if (t === \"number\") {\n if (!Number.isFinite(v as number)) {\n return bad(`${path}: non-finite number`);\n }\n return { ok: true };\n }\n if (t === \"undefined\") return bad(`${path}: undefined values are forbidden`);\n if (t === \"bigint\") return bad(`${path}: bigint is forbidden`);\n if (t === \"function\") return bad(`${path}: function is forbidden`);\n if (t === \"symbol\") return bad(`${path}: symbol is forbidden`);\n // typeof === \"object\" from here.\n if (Array.isArray(v)) {\n for (let i = 0; i < v.length; i++) {\n const r = walkMeta(v[i], `${path}[${i}]`);\n if (!r.ok) return r;\n }\n return { ok: true };\n }\n if (!isPlainObject(v)) {\n return bad(`${path}: only plain objects are allowed`);\n }\n for (const key of Object.keys(v)) {\n // Use `Reflect.get` and a try/catch so a throwing-getter on the\n // meta payload (constructed via `Object.defineProperty(..., {\n // get() { throw … }})` either deliberately or by accident at a\n // serialisation boundary) converts to a `malformed-emission`\n // diagnostic instead of crashing the host.\n let child: unknown;\n try {\n child = Reflect.get(v, key);\n } catch {\n return bad(`${path}.${key}: getter threw during traversal`);\n }\n const r = walkMeta(child, `${path}.${key}`);\n if (!r.ok) return r;\n }\n return { ok: true };\n}\n\nfunction validateLineLikeStyle(style: Record<string, unknown>): ValidationResult {\n const lineWidth = style.lineWidth;\n if (!isFiniteNumber(lineWidth) || lineWidth <= 0) {\n return bad(\"style.lineWidth: must be a finite positive number\");\n }\n const lineStyle = style.lineStyle;\n if (typeof lineStyle !== \"string\" || !VALID_LINE_STYLES.has(lineStyle)) {\n return bad(`style.lineStyle: '${String(lineStyle)}' is not a valid line style`);\n }\n return { ok: true };\n}\n\nfunction validateAreaStyle(style: Record<string, unknown>): ValidationResult {\n const lineCheck = validateLineLikeStyle(style);\n if (!lineCheck.ok) return lineCheck;\n const fillAlpha = style.fillAlpha;\n if (!isFiniteNumber(fillAlpha) || fillAlpha < 0 || fillAlpha > 1) {\n return bad(\"style.fillAlpha: must be a finite number in [0, 1]\");\n }\n return { ok: true };\n}\n\nfunction validateHistogramStyle(style: Record<string, unknown>): ValidationResult {\n const baseline = style.baseline;\n if (!isFiniteNumber(baseline)) {\n return bad(\"style.baseline: must be a finite number\");\n }\n return { ok: true };\n}\n\nfunction validateFilledBandStyle(style: Record<string, unknown>): ValidationResult {\n const upper = style.upper;\n if (upper !== null && !isFiniteNumber(upper)) {\n return bad(\"style.upper: must be a finite number or null\");\n }\n const lower = style.lower;\n if (lower !== null && !isFiniteNumber(lower)) {\n return bad(\"style.lower: must be a finite number or null\");\n }\n if (upper === null && lower === null) {\n return bad(\"style.upper / style.lower: at least one bound must be non-null\");\n }\n const alpha = style.alpha;\n if (!isFiniteNumber(alpha) || alpha < 0 || alpha > 1) {\n return bad(\"style.alpha: must be a finite number in [0, 1]\");\n }\n return { ok: true };\n}\n\nfunction validateLabelStyle(style: Record<string, unknown>): ValidationResult {\n const text = style.text;\n if (typeof text !== \"string\" || text.length === 0) {\n return bad(\"style.text: must be a non-empty string\");\n }\n if (text.length > MAX_LABEL_LENGTH) {\n return bad(`style.text: must be at most ${MAX_LABEL_LENGTH} characters`);\n }\n const position = style.position;\n if (typeof position !== \"string\" || !VALID_LABEL_POSITIONS.has(position)) {\n return bad(`style.position: '${String(position)}' is not a valid label position`);\n }\n return { ok: true };\n}\n\nfunction validateMarkerStyle(style: Record<string, unknown>): ValidationResult {\n const shape = style.shape;\n if (typeof shape !== \"string\" || !VALID_MARKER_SHAPES.has(shape)) {\n return bad(`style.shape: '${String(shape)}' is not a valid marker shape`);\n }\n const size = style.size;\n if (!isFiniteNumber(size) || size <= 0) {\n return bad(\"style.size: must be a finite positive number\");\n }\n return { ok: true };\n}\n\nfunction validateOptionalLocation(style: Record<string, unknown>): ValidationResult {\n const location = style.location;\n if (\n location !== undefined &&\n (typeof location !== \"string\" || !VALID_PLOT_LOCATIONS.has(location))\n ) {\n return bad(`style.location: '${String(location)}' is not a valid plot location`);\n }\n return { ok: true };\n}\n\nfunction validatePlotShapeStyle(style: Record<string, unknown>): ValidationResult {\n const shape = style.shape;\n if (typeof shape !== \"string\" || !VALID_SHAPE_GLYPHS.has(shape)) {\n return bad(`style.shape: '${String(shape)}' is not a valid shape glyph`);\n }\n const size = style.size;\n if (!isFiniteNumber(size) || size <= 0) {\n return bad(\"style.size: must be a finite positive number\");\n }\n return validateOptionalLocation(style);\n}\n\nfunction validateCharacterStyle(style: Record<string, unknown>): ValidationResult {\n const char = style.char;\n if (typeof char !== \"string\" || char.length === 0) {\n return bad(\"style.char: must be a non-empty string\");\n }\n const size = style.size;\n if (!isFiniteNumber(size) || size <= 0) {\n return bad(\"style.size: must be a finite positive number\");\n }\n return validateOptionalLocation(style);\n}\n\nfunction validateArrowStyle(style: Record<string, unknown>): ValidationResult {\n const direction = style.direction;\n if (typeof direction !== \"string\" || !VALID_ARROW_DIRECTIONS.has(direction)) {\n return bad(`style.direction: '${String(direction)}' is not a valid arrow direction`);\n }\n const size = style.size;\n if (!isFiniteNumber(size) || size <= 0) {\n return bad(\"style.size: must be a finite positive number\");\n }\n return { ok: true };\n}\n\nfunction validateColor(value: unknown, path: string): ValidationResult {\n if (typeof value !== \"string\" || value.length === 0) {\n return bad(`${path}: must be a non-empty string`);\n }\n return { ok: true };\n}\n\nfunction validateCandleOverrideStyle(style: Record<string, unknown>): ValidationResult {\n const bull = validateColor(style.bull, \"style.bull\");\n if (!bull.ok) return bull;\n const bear = validateColor(style.bear, \"style.bear\");\n if (!bear.ok) return bear;\n if (style.doji !== undefined) {\n return validateColor(style.doji, \"style.doji\");\n }\n return { ok: true };\n}\n\nfunction validateSingleColorStyle(style: Record<string, unknown>, path: string): ValidationResult {\n return validateColor(style.color, path);\n}\n\nfunction validateBgColorStyle(style: Record<string, unknown>): ValidationResult {\n const color = validateSingleColorStyle(style, \"style.color\");\n if (!color.ok) return color;\n const transp = style.transp;\n if (transp !== undefined && (!isFiniteNumber(transp) || transp < 0 || transp > 100)) {\n return bad(\"style.transp: must be a finite number in [0, 100]\");\n }\n return { ok: true };\n}\n\nfunction validateHorizontalHistogramStyle(style: Record<string, unknown>): ValidationResult {\n const buckets = style.buckets;\n if (!Array.isArray(buckets)) {\n return bad(\"style.buckets: must be an array\");\n }\n for (let i = 0; i < buckets.length; i++) {\n const bucket = buckets[i];\n if (!isPlainObject(bucket)) {\n return bad(`style.buckets[${i}]: must be an object`);\n }\n if (!isFiniteNumber(bucket.price)) {\n return bad(`style.buckets[${i}].price: must be a finite number`);\n }\n if (!isFiniteNumber(bucket.volume) || bucket.volume < 0) {\n return bad(`style.buckets[${i}].volume: must be a finite non-negative number`);\n }\n if (bucket.color !== undefined) {\n const color = validateColor(bucket.color, `style.buckets[${i}].color`);\n if (!color.ok) return color;\n }\n }\n return { ok: true };\n}\n\nfunction validatePlotStyle(style: unknown): ValidationResult {\n if (!isPlainObject(style)) return bad(\"style: not an object\");\n const kind = style.kind;\n if (typeof kind !== \"string\" || !VALID_PLOT_STYLE_KINDS.has(kind)) {\n return bad(`style.kind: '${String(kind)}' is not a known plot kind`);\n }\n switch (kind) {\n case \"line\":\n case \"step-line\":\n case \"horizontal-line\":\n return validateLineLikeStyle(style);\n case \"histogram\":\n return validateHistogramStyle(style);\n case \"area\":\n return validateAreaStyle(style);\n case \"filled-band\":\n return validateFilledBandStyle(style);\n case \"label\":\n return validateLabelStyle(style);\n case \"marker\":\n return validateMarkerStyle(style);\n case \"shape\":\n return validatePlotShapeStyle(style);\n case \"character\":\n return validateCharacterStyle(style);\n case \"arrow\":\n return validateArrowStyle(style);\n case \"candle-override\":\n return validateCandleOverrideStyle(style);\n case \"bar-override\":\n case \"bar-color\":\n return validateSingleColorStyle(style, \"style.color\");\n case \"bg-color\":\n return validateBgColorStyle(style);\n case \"horizontal-histogram\":\n return validateHorizontalHistogramStyle(style);\n /* v8 ignore next 2 -- kind is already gated by VALID_PLOT_STYLE_KINDS */\n default:\n return bad(`style.kind: '${kind}' has no validator`);\n }\n}\n\nfunction validatePlotEmission(e: Record<string, unknown>): ValidationResult {\n if (!isNonEmptyString(e.slotId)) return bad(\"plot.slotId: must be a non-empty string\");\n if (typeof e.title !== \"string\") return bad(\"plot.title: must be a string\");\n const styleResult = validatePlotStyle(e.style);\n if (!styleResult.ok) return styleResult;\n if (!isNonNegativeInteger(e.bar)) {\n return bad(\"plot.bar: must be a non-negative integer\");\n }\n if (!isFiniteNumber(e.time)) return bad(\"plot.time: must be a finite number\");\n const value = e.value;\n if (value !== null && !isFiniteNumber(value)) {\n return bad(\"plot.value: must be a finite number or null\");\n }\n const color = e.color;\n if (color !== null && typeof color !== \"string\") {\n return bad(\"plot.color: must be a string or null\");\n }\n if (!isPlainObject(e.meta)) return bad(\"plot.meta: must be a plain object\");\n const metaResult = walkMeta(e.meta, \"plot.meta\");\n if (!metaResult.ok) return metaResult;\n if (typeof e.pane !== \"string\") return bad(\"plot.pane: must be a string\");\n if (e.visible !== undefined && typeof e.visible !== \"boolean\") {\n return bad(\"plot.visible: must be a boolean\");\n }\n if (e.xShift !== undefined && !Number.isInteger(e.xShift)) {\n return bad(\"plot.xShift: must be an integer\");\n }\n if (e.z !== undefined && !isFiniteNumber(e.z)) {\n return bad(\"plot.z: must be a finite number\");\n }\n return { ok: true };\n}\n\nfunction validateAlertEmission(e: Record<string, unknown>): ValidationResult {\n if (!isNonEmptyString(e.slotId)) return bad(\"alert.slotId: must be a non-empty string\");\n const severity = e.severity;\n if (typeof severity !== \"string\" || !VALID_ALERT_SEVERITIES.has(severity)) {\n return bad(`alert.severity: '${String(severity)}' is not a valid severity`);\n }\n if (!isNonEmptyString(e.message)) {\n return bad(\"alert.message: must be a non-empty string\");\n }\n if (!isNonNegativeInteger(e.bar)) {\n return bad(\"alert.bar: must be a non-negative integer\");\n }\n if (!isFiniteNumber(e.time)) return bad(\"alert.time: must be a finite number\");\n if (!isPlainObject(e.meta)) return bad(\"alert.meta: must be a plain object\");\n const metaResult = walkMeta(e.meta, \"alert.meta\");\n if (!metaResult.ok) return metaResult;\n const channels = e.channels;\n if (!Array.isArray(channels)) return bad(\"alert.channels: must be an array\");\n for (let i = 0; i < channels.length; i++) {\n const c = channels[i];\n if (typeof c !== \"string\" || !VALID_ALERT_CHANNELS.has(c)) {\n return bad(`alert.channels[${i}]: '${String(c)}' is not a valid alert channel`);\n }\n }\n if (!isNonEmptyString(e.dedupeKey)) {\n return bad(\"alert.dedupeKey: must be a non-empty string\");\n }\n return { ok: true };\n}\n\nfunction validateAlertConditionEmission(e: Record<string, unknown>): ValidationResult {\n if (!isNonEmptyString(e.conditionId)) {\n return bad(\"alert-condition.conditionId: must be a non-empty string\");\n }\n if (typeof e.title !== \"string\") {\n return bad(\"alert-condition.title: must be a string\");\n }\n if (typeof e.description !== \"string\") {\n return bad(\"alert-condition.description: must be a string\");\n }\n if (typeof e.defaultMessage !== \"string\") {\n return bad(\"alert-condition.defaultMessage: must be a string\");\n }\n if (typeof e.fired !== \"boolean\") {\n return bad(\"alert-condition.fired: must be a boolean\");\n }\n if (!isNonNegativeInteger(e.bar)) {\n return bad(\"alert-condition.bar: must be a non-negative integer\");\n }\n if (!isFiniteNumber(e.time)) {\n return bad(\"alert-condition.time: must be a finite number\");\n }\n return { ok: true };\n}\n\nfunction validateLogEmission(e: Record<string, unknown>): ValidationResult {\n const level = e.level;\n if (typeof level !== \"string\" || !VALID_LOG_LEVELS.has(level)) {\n return bad(`log.level: '${String(level)}' is not a valid log level`);\n }\n if (!isNonEmptyString(e.message)) {\n return bad(\"log.message: must be a non-empty string\");\n }\n const meta = e.meta;\n if (meta !== undefined) {\n if (!isPlainObject(meta)) return bad(\"log.meta: must be a plain object\");\n const metaResult = walkMeta(meta, \"log.meta\");\n if (!metaResult.ok) return metaResult;\n }\n if (!isNonNegativeInteger(e.bar)) {\n return bad(\"log.bar: must be a non-negative integer\");\n }\n if (!isFiniteNumber(e.time)) {\n return bad(\"log.time: must be a finite number\");\n }\n return { ok: true };\n}\n\nfunction isWorldPoint(v: unknown): v is { time: number; price: number } {\n if (!isPlainObject(v)) return false;\n return isFiniteNumber(v.time) && isFiniteNumber(v.price);\n}\n\nfunction validateAnchorFixed(v: unknown, path: string, count: number): ValidationResult {\n if (!Array.isArray(v) || v.length !== count) {\n return bad(`${path}: must be a ${count}-element WorldPoint tuple`);\n }\n for (let i = 0; i < count; i++) {\n if (!isWorldPoint(v[i])) {\n return bad(`${path}[${i}]: not a WorldPoint (need finite time + price)`);\n }\n }\n return { ok: true };\n}\n\nfunction validateAnchorPair(v: unknown, path: string): ValidationResult {\n return validateAnchorFixed(v, path, 2);\n}\n\nfunction validateAnchorTriple(v: unknown, path: string): ValidationResult {\n return validateAnchorFixed(v, path, 3);\n}\n\nfunction validateAnchorQuad(v: unknown, path: string): ValidationResult {\n return validateAnchorFixed(v, path, 4);\n}\n\nfunction validateAnchorQuint(v: unknown, path: string): ValidationResult {\n return validateAnchorFixed(v, path, 5);\n}\n\nfunction validateAnchorHept(v: unknown, path: string): ValidationResult {\n return validateAnchorFixed(v, path, 7);\n}\n\nfunction validateOptionalLabels(v: unknown, path: string, expectedCount: number): ValidationResult {\n if (v === undefined) return { ok: true };\n if (!Array.isArray(v) || v.length !== expectedCount) {\n return bad(`${path}: must be an array of ${expectedCount} strings`);\n }\n for (let i = 0; i < expectedCount; i++) {\n if (typeof v[i] !== \"string\") {\n return bad(`${path}[${i}]: must be a string`);\n }\n }\n return { ok: true };\n}\n\nfunction validateAnchorVariable(\n v: unknown,\n path: string,\n min: number,\n max: number,\n): ValidationResult {\n if (!Array.isArray(v) || v.length < min || v.length > max) {\n return bad(`${path}: must be an array of ${min}..${max} WorldPoints`);\n }\n for (let i = 0; i < v.length; i++) {\n if (!isWorldPoint(v[i])) {\n return bad(`${path}[${i}]: not a WorldPoint (need finite time + price)`);\n }\n }\n return { ok: true };\n}\n\nfunction validateLineDrawStyle(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (s.color !== undefined && typeof s.color !== \"string\") {\n return bad(`${path}.color: must be a string`);\n }\n if (s.lineWidth !== undefined && (!isFiniteNumber(s.lineWidth) || s.lineWidth <= 0)) {\n return bad(`${path}.lineWidth: must be a finite positive number`);\n }\n if (s.lineStyle !== undefined && !VALID_LINE_STYLES.has(String(s.lineStyle))) {\n return bad(`${path}.lineStyle: '${String(s.lineStyle)}' is not a valid line style`);\n }\n if (s.extendLeft !== undefined && typeof s.extendLeft !== \"boolean\") {\n return bad(`${path}.extendLeft: must be a boolean`);\n }\n if (s.extendRight !== undefined && typeof s.extendRight !== \"boolean\") {\n return bad(`${path}.extendRight: must be a boolean`);\n }\n return { ok: true };\n}\n\nfunction validateShapeStyle(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (s.stroke !== undefined && typeof s.stroke !== \"string\") {\n return bad(`${path}.stroke: must be a string`);\n }\n if (s.fill !== undefined && typeof s.fill !== \"string\") {\n return bad(`${path}.fill: must be a string`);\n }\n if (s.lineWidth !== undefined && (!isFiniteNumber(s.lineWidth) || s.lineWidth <= 0)) {\n return bad(`${path}.lineWidth: must be a finite positive number`);\n }\n if (s.lineStyle !== undefined && !VALID_LINE_STYLES.has(String(s.lineStyle))) {\n return bad(`${path}.lineStyle: '${String(s.lineStyle)}' is not a valid line style`);\n }\n if (\n s.fillAlpha !== undefined &&\n (!isFiniteNumber(s.fillAlpha) || s.fillAlpha < 0 || s.fillAlpha > 1)\n ) {\n return bad(`${path}.fillAlpha: must be a finite number in [0, 1]`);\n }\n return { ok: true };\n}\n\nfunction validateDrawingMeta(state: Record<string, unknown>): ValidationResult {\n if (state.name !== undefined && typeof state.name !== \"string\") {\n return bad(\"drawing.state.name: must be a string\");\n }\n if (state.visible !== undefined && typeof state.visible !== \"boolean\") {\n return bad(\"drawing.state.visible: must be a boolean\");\n }\n return { ok: true };\n}\n\nfunction validateLineState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateHorizontalLineState(state: Record<string, unknown>): ValidationResult {\n if (!isFiniteNumber(state.price)) return bad(\"drawing.state.price: must be a finite number\");\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateHorizontalRayState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateVerticalLineState(state: Record<string, unknown>): ValidationResult {\n if (!isFiniteNumber(state.time)) return bad(\"drawing.state.time: must be a finite number\");\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateCrossLineState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateTrendAngleState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateRectangleState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateShapeStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateRotatedRectangleState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuad(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateShapeStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateTriangleState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateShapeStyle(state.style, \"drawing.state.style\");\n}\n\nconst POLYLINE_MIN_ANCHORS = 3;\nconst POLYLINE_MAX_ANCHORS = 20;\n\nfunction validatePolylineState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorVariable(\n state.anchors,\n \"drawing.state.anchors\",\n POLYLINE_MIN_ANCHORS,\n POLYLINE_MAX_ANCHORS,\n );\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateCircleState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateShapeStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateEllipseState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateShapeStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validatePathOpts(s: unknown, path: string): ValidationResult {\n const lineCheck = validateLineDrawStyle(s, path);\n if (!lineCheck.ok) return lineCheck;\n // validateLineDrawStyle proved `s` is a plain object.\n const obj = s as Record<string, unknown>;\n if (obj.closed !== undefined && typeof obj.closed !== \"boolean\") {\n return bad(`${path}.closed: must be a boolean`);\n }\n return { ok: true };\n}\n\nconst PATH_MIN_ANCHORS = 2;\nconst PATH_MAX_ANCHORS = 20;\n\nfunction validatePathState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorVariable(\n state.anchors,\n \"drawing.state.anchors\",\n PATH_MIN_ANCHORS,\n PATH_MAX_ANCHORS,\n );\n if (!anchorsCheck.ok) return anchorsCheck;\n return validatePathOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFillBetweenStyle(s: unknown, path: string): ValidationResult {\n // `color` / `lineWidth` / `lineStyle` share the LineDrawStyle contract;\n // delegate so the shared checks cannot drift (same pattern as\n // `validatePathOpts`). FillBetweenStyle has no `extendLeft` / `extendRight`\n // fields, so those LineDrawStyle checks pass vacuously.\n const lineCheck = validateLineDrawStyle(s, path);\n if (!lineCheck.ok) return lineCheck;\n // validateLineDrawStyle proved `s` is a plain object.\n const obj = s as Record<string, unknown>;\n if (obj.fill !== undefined && typeof obj.fill !== \"string\") {\n return bad(`${path}.fill: must be a string`);\n }\n if (\n obj.fillAlpha !== undefined &&\n (!isFiniteNumber(obj.fillAlpha) || obj.fillAlpha < 0 || obj.fillAlpha > 1)\n ) {\n return bad(`${path}.fillAlpha: must be a finite number in [0, 1]`);\n }\n return { ok: true };\n}\n\n// A fill-between band is a series-growth primitive: the canonical idiom\n// accumulates one `WorldPoint` per bar into each edge and re-emits the whole\n// ribbon every step (see `examples/scripts/fill-between-band.chart.ts`), unlike\n// the discrete `path` / `polyline` tools that cap at 20. The upper bound here\n// must therefore cover a full chart history — sized to the 10 000-bar bundled\n// golden fixture so a band spanning the entire dataset is not silently dropped.\nconst FILL_BETWEEN_MIN_ANCHORS = 2;\nconst FILL_BETWEEN_MAX_ANCHORS = 10_000;\n\nfunction validateFillBetweenState(state: Record<string, unknown>): ValidationResult {\n const edgeACheck = validateAnchorVariable(\n state.edgeA,\n \"drawing.state.edgeA\",\n FILL_BETWEEN_MIN_ANCHORS,\n FILL_BETWEEN_MAX_ANCHORS,\n );\n if (!edgeACheck.ok) return edgeACheck;\n const edgeBCheck = validateAnchorVariable(\n state.edgeB,\n \"drawing.state.edgeB\",\n FILL_BETWEEN_MIN_ANCHORS,\n FILL_BETWEEN_MAX_ANCHORS,\n );\n if (!edgeBCheck.ok) return edgeBCheck;\n return validateFillBetweenStyle(state.style, \"drawing.state.style\");\n}\n\nconst VALID_TEXT_SIZES: ReadonlySet<string> = new Set([\"tiny\", \"small\", \"normal\", \"large\", \"huge\"]);\n\nconst VALID_TEXT_HALIGN: ReadonlySet<string> = new Set([\"left\", \"center\", \"right\"]);\n\nconst VALID_TEXT_VALIGN: ReadonlySet<string> = new Set([\"top\", \"middle\", \"bottom\"]);\n\nconst VALID_TABLE_POSITIONS: ReadonlySet<string> = new Set([\n \"top-left\",\n \"top-center\",\n \"top-right\",\n \"middle-left\",\n \"middle-center\",\n \"middle-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"bottom-right\",\n]);\n\nfunction validateTextOpts(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (s.color !== undefined && typeof s.color !== \"string\") {\n return bad(`${path}.color: must be a string`);\n }\n if (s.size !== undefined && !VALID_TEXT_SIZES.has(String(s.size))) {\n return bad(`${path}.size: '${String(s.size)}' is not a valid text size`);\n }\n if (s.halign !== undefined && !VALID_TEXT_HALIGN.has(String(s.halign))) {\n return bad(`${path}.halign: '${String(s.halign)}' is not a valid halign`);\n }\n if (s.valign !== undefined && !VALID_TEXT_VALIGN.has(String(s.valign))) {\n return bad(`${path}.valign: '${String(s.valign)}' is not a valid valign`);\n }\n if (s.bgColor !== undefined && typeof s.bgColor !== \"string\") {\n return bad(`${path}.bgColor: must be a string`);\n }\n return { ok: true };\n}\n\nfunction validateMarkerState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n if (state.text !== undefined && typeof state.text !== \"string\") {\n return bad(\"drawing.state.text: must be a string\");\n }\n if (state.value !== undefined && !isFiniteNumber(state.value)) {\n return bad(\"drawing.state.value: must be a finite number\");\n }\n return validateTextOpts(state.style, \"drawing.state.style\");\n}\n\nconst FREEHAND_MIN_ANCHORS = 2;\nconst FREEHAND_MAX_ANCHORS = 500;\n\nfunction validateHighlighterStyle(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (typeof s.color !== \"string\") return bad(`${path}.color: must be a string`);\n if (!isFiniteNumber(s.alpha) || s.alpha < 0 || s.alpha > 1) {\n return bad(`${path}.alpha: must be a finite number in [0, 1]`);\n }\n return { ok: true };\n}\n\nfunction validateBrushStyle(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (typeof s.stroke !== \"string\") return bad(`${path}.stroke: must be a string`);\n if (typeof s.fill !== \"string\") return bad(`${path}.fill: must be a string`);\n return { ok: true };\n}\n\nfunction validateArcState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateCurveState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateDoubleCurveState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuint(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validatePenState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorVariable(\n state.anchors,\n \"drawing.state.anchors\",\n FREEHAND_MIN_ANCHORS,\n FREEHAND_MAX_ANCHORS,\n );\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateHighlighterState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorVariable(\n state.anchors,\n \"drawing.state.anchors\",\n FREEHAND_MIN_ANCHORS,\n FREEHAND_MAX_ANCHORS,\n );\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateHighlighterStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateBrushState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorVariable(\n state.anchors,\n \"drawing.state.anchors\",\n FREEHAND_MIN_ANCHORS,\n FREEHAND_MAX_ANCHORS,\n );\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateBrushStyle(state.style, \"drawing.state.style\");\n}\n\nconst TEXT_BODY_MAX_LENGTH = 256;\n\nfunction validateArrowOpts(s: unknown, path: string): ValidationResult {\n const lineCheck = validateLineDrawStyle(s, path);\n if (!lineCheck.ok) return lineCheck;\n // validateLineDrawStyle proved `s` is a plain object.\n const obj = s as Record<string, unknown>;\n if (obj.label !== undefined && typeof obj.label !== \"string\") {\n return bad(`${path}.label: must be a string`);\n }\n return { ok: true };\n}\n\nfunction validateArrowMarkerOpts(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (s.color !== undefined && typeof s.color !== \"string\") {\n return bad(`${path}.color: must be a string`);\n }\n if (s.text !== undefined && typeof s.text !== \"string\") {\n return bad(`${path}.text: must be a string`);\n }\n return { ok: true };\n}\n\nfunction validateTextState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n // walkMeta catches non-JsonValue payloads (bigint / function / symbol /\n // undefined / non-finite number) anywhere on `body`; a bare string is\n // a valid JsonValue and passes through. The kind-specific\n // non-empty / length cap follows so the wire-shape error message stays\n // specific.\n const bodyMetaCheck = walkMeta(state.body, \"drawing.state.body\");\n if (!bodyMetaCheck.ok) return bodyMetaCheck;\n if (typeof state.body !== \"string\") {\n return bad(\"drawing.state.body: must be a string\");\n }\n if (state.body.length === 0) {\n return bad(\"drawing.state.body: must be a non-empty string\");\n }\n if (state.body.length > TEXT_BODY_MAX_LENGTH) {\n return bad(`drawing.state.body: must be at most ${TEXT_BODY_MAX_LENGTH} characters`);\n }\n return validateTextOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateArrowState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateArrowOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateArrowMarkerState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n return validateArrowMarkerOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateArrowMarkUpState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n return validateArrowMarkerOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateArrowMarkDownState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n return validateArrowMarkerOpts(state.style, \"drawing.state.style\");\n}\n\nconst VALID_REGRESSION_SOURCES: ReadonlySet<string> = new Set([\n \"close\",\n \"open\",\n \"high\",\n \"low\",\n \"hl2\",\n \"hlc3\",\n \"ohlc4\",\n \"hlcc4\",\n]);\n\nfunction validateRegressionTrendOpts(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (s.source !== undefined && !VALID_REGRESSION_SOURCES.has(String(s.source))) {\n return bad(`${path}.source: '${String(s.source)}' is not a valid source`);\n }\n if (s.stdevMultiplier !== undefined) {\n if (!isFiniteNumber(s.stdevMultiplier) || s.stdevMultiplier < 0) {\n return bad(`${path}.stdevMultiplier: must be a non-negative finite number`);\n }\n }\n if (s.showUpperBand !== undefined && typeof s.showUpperBand !== \"boolean\") {\n return bad(`${path}.showUpperBand: must be a boolean`);\n }\n if (s.showLowerBand !== undefined && typeof s.showLowerBand !== \"boolean\") {\n return bad(`${path}.showLowerBand: must be a boolean`);\n }\n if (s.color !== undefined && typeof s.color !== \"string\") {\n return bad(`${path}.color: must be a string`);\n }\n return { ok: true };\n}\n\nfunction validateTrendChannelState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateFlatTopBottomState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateDisjointChannelState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuad(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateRegressionTrendState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n const anchors = state.anchors as ReadonlyArray<{ time: number; price: number }>;\n if (!(anchors[0].time < anchors[1].time)) {\n return bad(\"drawing.state.anchors: anchors[0].time must be < anchors[1].time\");\n }\n return validateRegressionTrendOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibOpts(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (s.levels !== undefined) {\n if (!Array.isArray(s.levels)) {\n return bad(`${path}.levels: must be an array of finite numbers`);\n }\n if (s.levels.length === 0) {\n return bad(`${path}.levels: must contain at least one level`);\n }\n for (let i = 0; i < s.levels.length; i++) {\n if (!isFiniteNumber(s.levels[i])) {\n return bad(`${path}.levels[${i}]: must be a finite number`);\n }\n }\n }\n if (s.showLabels !== undefined && typeof s.showLabels !== \"boolean\") {\n return bad(`${path}.showLabels: must be a boolean`);\n }\n if (s.color !== undefined && typeof s.color !== \"string\") {\n return bad(`${path}.color: must be a string`);\n }\n if (s.extendLeft !== undefined && typeof s.extendLeft !== \"boolean\") {\n return bad(`${path}.extendLeft: must be a boolean`);\n }\n if (s.extendRight !== undefined && typeof s.extendRight !== \"boolean\") {\n return bad(`${path}.extendRight: must be a boolean`);\n }\n return { ok: true };\n}\n\nfunction validateFibRetracementState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibTrendExtensionState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibChannelState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibTimeZoneState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibWedgeState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibSpeedFanState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibSpeedArcsState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibSpiralState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibCirclesState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateFibTrendTimeState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateFibOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateGannBoxState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateGannSquareFixedState(state: Record<string, unknown>): ValidationResult {\n if (!isWorldPoint(state.anchor)) return bad(\"drawing.state.anchor: not a WorldPoint\");\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateGannSquareState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateGannFanState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nconst PITCHFORK_VARIANTS: ReadonlySet<string> = new Set([\n \"standard\",\n \"schiff\",\n \"modifiedSchiff\",\n \"inside\",\n]);\n\nfunction validatePitchforkState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n if (typeof state.variant !== \"string\" || !PITCHFORK_VARIANTS.has(state.variant)) {\n return bad(\n `drawing.state.variant: '${String(state.variant)}' must be 'standard' | 'schiff' | 'modifiedSchiff' | 'inside'`,\n );\n }\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validatePitchfanState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateXabcdPatternState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuint(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateCypherPatternState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuint(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateHeadAndShouldersState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuint(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateAbcdPatternState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuad(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateTrianglePatternState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateThreeDrivesPatternState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorHept(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateElliottImpulseWaveState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuint(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n const labelsCheck = validateOptionalLabels(state.labels, \"drawing.state.labels\", 5);\n if (!labelsCheck.ok) return labelsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateElliottCorrectionWaveState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorTriple(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n const labelsCheck = validateOptionalLabels(state.labels, \"drawing.state.labels\", 3);\n if (!labelsCheck.ok) return labelsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateElliottTriangleWaveState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorQuint(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n const labelsCheck = validateOptionalLabels(state.labels, \"drawing.state.labels\", 5);\n if (!labelsCheck.ok) return labelsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateElliottDoubleComboState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorHept(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n const labelsCheck = validateOptionalLabels(state.labels, \"drawing.state.labels\", 7);\n if (!labelsCheck.ok) return labelsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateElliottTripleComboState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorHept(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n const labelsCheck = validateOptionalLabels(state.labels, \"drawing.state.labels\", 7);\n if (!labelsCheck.ok) return labelsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateCyclicLinesState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateTimeCyclesState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nfunction validateSineLineState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n return validateLineDrawStyle(state.style, \"drawing.state.style\");\n}\n\nconst MAX_CHILD_HANDLE_IDS = 100;\n\nfunction validateChildHandleIds(v: unknown, path: string): ValidationResult {\n if (!Array.isArray(v)) {\n return bad(`${path}: must be an array of handle id strings`);\n }\n if (v.length > MAX_CHILD_HANDLE_IDS) {\n return bad(`${path}: must be at most ${MAX_CHILD_HANDLE_IDS} entries`);\n }\n for (let i = 0; i < v.length; i++) {\n if (typeof v[i] !== \"string\") {\n return bad(`${path}[${i}]: must be a string`);\n }\n }\n return { ok: true };\n}\n\nfunction validateFrameOpts(s: unknown, path: string): ValidationResult {\n if (!isPlainObject(s)) return bad(`${path}: must be a plain object`);\n if (s.label !== undefined && typeof s.label !== \"string\") {\n return bad(`${path}.label: must be a string`);\n }\n if (s.bgColor !== undefined && typeof s.bgColor !== \"string\") {\n return bad(`${path}.bgColor: must be a string`);\n }\n return { ok: true };\n}\n\nfunction validateGroupState(state: Record<string, unknown>): ValidationResult {\n return validateChildHandleIds(state.childHandleIds, \"drawing.state.childHandleIds\");\n}\n\nfunction validateFrameState(state: Record<string, unknown>): ValidationResult {\n const anchorsCheck = validateAnchorPair(state.anchors, \"drawing.state.anchors\");\n if (!anchorsCheck.ok) return anchorsCheck;\n const childCheck = validateChildHandleIds(state.childHandleIds, \"drawing.state.childHandleIds\");\n if (!childCheck.ok) return childCheck;\n return validateFrameOpts(state.style, \"drawing.state.style\");\n}\n\nfunction validateTableCell(cell: unknown, path: string): ValidationResult {\n if (!isPlainObject(cell)) return bad(`${path}: must be a plain object`);\n if (typeof cell.text !== \"string\") return bad(`${path}.text: must be a string`);\n if (cell.bgColor !== undefined && typeof cell.bgColor !== \"string\") {\n return bad(`${path}.bgColor: must be a string`);\n }\n if (cell.textColor !== undefined && typeof cell.textColor !== \"string\") {\n return bad(`${path}.textColor: must be a string`);\n }\n if (cell.textHalign !== undefined && !VALID_TEXT_HALIGN.has(String(cell.textHalign))) {\n return bad(`${path}.textHalign: '${String(cell.textHalign)}' is not a valid halign`);\n }\n if (cell.textValign !== undefined && !VALID_TEXT_VALIGN.has(String(cell.textValign))) {\n return bad(`${path}.textValign: '${String(cell.textValign)}' is not a valid valign`);\n }\n if (cell.textSize !== undefined && !VALID_TEXT_SIZES.has(String(cell.textSize))) {\n return bad(`${path}.textSize: '${String(cell.textSize)}' is not a valid text size`);\n }\n return { ok: true };\n}\n\nfunction validateTableState(state: Record<string, unknown>): ValidationResult {\n const position = state.position;\n if (typeof position !== \"string\" || !VALID_TABLE_POSITIONS.has(position)) {\n return bad(`drawing.state.position: '${String(position)}' is not a valid table position`);\n }\n const cells = state.cells;\n if (!Array.isArray(cells) || cells.length === 0) {\n return bad(\"drawing.state.cells: must be a non-empty 2D array\");\n }\n for (let rowIndex = 0; rowIndex < cells.length; rowIndex++) {\n const row = cells[rowIndex];\n if (!Array.isArray(row) || row.length === 0) {\n return bad(`drawing.state.cells[${rowIndex}]: must be a non-empty array`);\n }\n for (let columnIndex = 0; columnIndex < row.length; columnIndex++) {\n const cellCheck = validateTableCell(\n row[columnIndex],\n `drawing.state.cells[${rowIndex}][${columnIndex}]`,\n );\n if (!cellCheck.ok) return cellCheck;\n }\n }\n const hasBorderColor = state.borderColor !== undefined;\n const hasBorderWidth = state.borderWidth !== undefined;\n if (hasBorderColor !== hasBorderWidth) {\n return bad(\"drawing.state.borderColor/borderWidth: must be provided together\");\n }\n if (hasBorderColor) {\n const colorCheck = validateColor(state.borderColor, \"drawing.state.borderColor\");\n if (!colorCheck.ok) return colorCheck;\n if (!isFiniteNumber(state.borderWidth) || state.borderWidth <= 0) {\n return bad(\"drawing.state.borderWidth: must be a finite positive number\");\n }\n }\n if (state.frame !== undefined) {\n if (!isPlainObject(state.frame)) return bad(\"drawing.state.frame: must be a plain object\");\n const colorCheck = validateColor(state.frame.color, \"drawing.state.frame.color\");\n if (!colorCheck.ok) return colorCheck;\n if (!isFiniteNumber(state.frame.width) || state.frame.width <= 0) {\n return bad(\"drawing.state.frame.width: must be a finite positive number\");\n }\n }\n return { ok: true };\n}\n\n/**\n * Per-kind state dispatch. Exhaustive over the `DrawingKind` union: the\n * switch has no `default` arm, so adding a kind to `DrawingKind`\n * produces a compile error here and forces a matching validator arm.\n * Wire-shape checks (`handleId` / `op` / `bar` / `time` /\n * `state.kind === drawingKind`) run for every kind via\n * {@link validateDrawingEmission} before this dispatch is reached.\n */\nfunction validateStateByKind(kind: DrawingKind, state: Record<string, unknown>): ValidationResult {\n switch (kind) {\n case \"line\":\n return validateLineState(state);\n case \"horizontal-line\":\n return validateHorizontalLineState(state);\n case \"horizontal-ray\":\n return validateHorizontalRayState(state);\n case \"vertical-line\":\n return validateVerticalLineState(state);\n case \"cross-line\":\n return validateCrossLineState(state);\n case \"trend-angle\":\n return validateTrendAngleState(state);\n case \"rectangle\":\n return validateRectangleState(state);\n case \"rotated-rectangle\":\n return validateRotatedRectangleState(state);\n case \"triangle\":\n return validateTriangleState(state);\n case \"polyline\":\n return validatePolylineState(state);\n case \"circle\":\n return validateCircleState(state);\n case \"ellipse\":\n return validateEllipseState(state);\n case \"path\":\n return validatePathState(state);\n case \"fill-between\":\n return validateFillBetweenState(state);\n case \"marker\":\n return validateMarkerState(state);\n case \"arc\":\n return validateArcState(state);\n case \"curve\":\n return validateCurveState(state);\n case \"double-curve\":\n return validateDoubleCurveState(state);\n case \"pen\":\n return validatePenState(state);\n case \"highlighter\":\n return validateHighlighterState(state);\n case \"brush\":\n return validateBrushState(state);\n case \"text\":\n return validateTextState(state);\n case \"arrow\":\n return validateArrowState(state);\n case \"arrow-marker\":\n return validateArrowMarkerState(state);\n case \"arrow-mark-up\":\n return validateArrowMarkUpState(state);\n case \"arrow-mark-down\":\n return validateArrowMarkDownState(state);\n case \"trend-channel\":\n return validateTrendChannelState(state);\n case \"flat-top-bottom\":\n return validateFlatTopBottomState(state);\n case \"disjoint-channel\":\n return validateDisjointChannelState(state);\n case \"regression-trend\":\n return validateRegressionTrendState(state);\n case \"fib-retracement\":\n return validateFibRetracementState(state);\n case \"fib-trend-extension\":\n return validateFibTrendExtensionState(state);\n case \"fib-channel\":\n return validateFibChannelState(state);\n case \"fib-time-zone\":\n return validateFibTimeZoneState(state);\n case \"fib-wedge\":\n return validateFibWedgeState(state);\n case \"fib-speed-fan\":\n return validateFibSpeedFanState(state);\n case \"fib-speed-arcs\":\n return validateFibSpeedArcsState(state);\n case \"fib-spiral\":\n return validateFibSpiralState(state);\n case \"fib-circles\":\n return validateFibCirclesState(state);\n case \"fib-trend-time\":\n return validateFibTrendTimeState(state);\n case \"gann-box\":\n return validateGannBoxState(state);\n case \"gann-square-fixed\":\n return validateGannSquareFixedState(state);\n case \"gann-square\":\n return validateGannSquareState(state);\n case \"gann-fan\":\n return validateGannFanState(state);\n case \"pitchfork\":\n return validatePitchforkState(state);\n case \"pitchfan\":\n return validatePitchfanState(state);\n case \"xabcd-pattern\":\n return validateXabcdPatternState(state);\n case \"cypher-pattern\":\n return validateCypherPatternState(state);\n case \"head-and-shoulders\":\n return validateHeadAndShouldersState(state);\n case \"abcd-pattern\":\n return validateAbcdPatternState(state);\n case \"triangle-pattern\":\n return validateTrianglePatternState(state);\n case \"three-drives-pattern\":\n return validateThreeDrivesPatternState(state);\n case \"elliott-impulse-wave\":\n return validateElliottImpulseWaveState(state);\n case \"elliott-correction-wave\":\n return validateElliottCorrectionWaveState(state);\n case \"elliott-triangle-wave\":\n return validateElliottTriangleWaveState(state);\n case \"elliott-double-combo\":\n return validateElliottDoubleComboState(state);\n case \"elliott-triple-combo\":\n return validateElliottTripleComboState(state);\n case \"cyclic-lines\":\n return validateCyclicLinesState(state);\n case \"time-cycles\":\n return validateTimeCyclesState(state);\n case \"sine-line\":\n return validateSineLineState(state);\n case \"group\":\n return validateGroupState(state);\n case \"frame\":\n return validateFrameState(state);\n case \"table\":\n return validateTableState(state);\n }\n}\n\nfunction validateDrawingEmission(e: Record<string, unknown>): ValidationResult {\n if (!isNonEmptyString(e.handleId)) {\n return bad(\"drawing.handleId: must be a non-empty string\");\n }\n const drawingKind = e.drawingKind;\n if (typeof drawingKind !== \"string\" || !VALID_DRAWING_KINDS.has(drawingKind)) {\n return {\n ok: false,\n code: \"unsupported-drawing-kind\",\n message: `drawing.drawingKind: '${String(drawingKind)}' is not a known DrawingKind`,\n };\n }\n if (typeof e.op !== \"string\" || !VALID_DRAWING_OPS.has(e.op)) {\n return bad(`drawing.op: '${String(e.op)}' must be 'create' | 'update' | 'remove'`);\n }\n if (!isNonNegativeInteger(e.bar)) {\n return bad(\"drawing.bar: must be a non-negative integer\");\n }\n if (!isFiniteNumber(e.time)) {\n return bad(\"drawing.time: must be a finite number\");\n }\n const state = e.state;\n if (!isPlainObject(state)) {\n return bad(\"drawing.state: must be a plain object\");\n }\n if (state.kind !== drawingKind) {\n return bad(\n `drawing.state.kind: '${String(state.kind)}' must equal drawing.drawingKind '${drawingKind}'`,\n );\n }\n if (e.z !== undefined && !isFiniteNumber(e.z)) {\n return bad(\"drawing.z: must be a finite number\");\n }\n const metaCheck = validateDrawingMeta(state);\n if (!metaCheck.ok) return metaCheck;\n return validateStateByKind(drawingKind as DrawingKind, state);\n}\n\nfunction validateDiagnostic(e: Record<string, unknown>): ValidationResult {\n const severity = e.severity;\n if (typeof severity !== \"string\" || !VALID_DIAGNOSTIC_SEVERITIES.has(severity)) {\n return bad(`diagnostic.severity: '${String(severity)}' is not a valid severity`);\n }\n const code = e.code;\n if (typeof code !== \"string\" || !VALID_DIAGNOSTIC_CODES.has(code)) {\n return bad(`diagnostic.code: '${String(code)}' is not a known DiagnosticCode`);\n }\n if (typeof e.message !== \"string\") return bad(\"diagnostic.message: must be a string\");\n const slotId = e.slotId;\n if (slotId !== null && typeof slotId !== \"string\") {\n return bad(\"diagnostic.slotId: must be a string or null\");\n }\n const bar = e.bar;\n if (bar !== null && !isNonNegativeInteger(bar)) {\n return bad(\"diagnostic.bar: must be a non-negative integer or null\");\n }\n return { ok: true };\n}\n\n/**\n * Hand-rolled validator covering every Phase-1 / Phase-2 / Phase-3\n * emission shape. Returns `{ ok: true }` for well-formed payloads and\n * `{ ok: false, code, message }` otherwise. Hosts and adapters call\n * this at every structured-clone boundary (Worker `postMessage`,\n * QuickJS membrane) per PLAN §7.3.\n *\n * Phase 3 widens the drawing dispatch from an unconditional Phase-1\n * stub to a per-kind validator: unknown `drawingKind` returns\n * `unsupported-drawing-kind`; malformed payloads of a known kind\n * return `malformed-emission`. Tasks 6–18 each ADD their kind\n * validators to the dispatch as ports land.\n *\n * @since 0.1\n * @stable\n * @example\n * import { validateEmission } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const r = validateEmission({ kind: \"plot\" });\n * if (!r.ok) {\n * console.error(r.code, r.message);\n * }\n */\nexport function validateEmission(e: unknown): ValidationResult {\n if (!isPlainObject(e)) {\n return bad(\"emission: not a plain object\");\n }\n if (!(\"kind\" in e)) {\n return bad(\"emission: missing 'kind' discriminant\");\n }\n const kind = e.kind;\n switch (kind) {\n case \"plot\":\n return validatePlotEmission(e);\n case \"alert\":\n return validateAlertEmission(e);\n case \"alert-condition\":\n return validateAlertConditionEmission(e);\n case \"log\":\n return validateLogEmission(e);\n case \"drawing\":\n return validateDrawingEmission(e);\n case \"diagnostic\":\n return validateDiagnostic(e);\n default:\n return bad(`emission.kind: '${String(kind)}' is not a known emission kind`);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invinite-org/chartlang-adapter-kit",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "SDK for writing chartlang adapters in consumer repos",
@@ -19,7 +19,7 @@
19
19
  "LICENSE"
20
20
  ],
21
21
  "dependencies": {
22
- "@invinite-org/chartlang-core": "^1.1.0"
22
+ "@invinite-org/chartlang-core": "^1.2.0"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public",