@invinite-org/chartlang-language-service 1.1.0 → 1.2.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.
@@ -0,0 +1,307 @@
1
+ // Copyright (c) 2026 Invinite. Licensed under the MIT License.
2
+ // See the LICENSE file in the repo root for full license text.
3
+ import ts from "typescript";
4
+ import { findTokenAtOffset } from "./resolveFqnAtOffset.js";
5
+ const SCRIPT_FILE_NAME = "script.chart.ts";
6
+ /**
7
+ * Resolve a hover doc when the offset lands on a `<binding>.output(...)`
8
+ * or `<binding>.withInputs({...})` call site whose binding's initialiser
9
+ * is a same-file `defineIndicator(...)` (optionally chained through
10
+ * `.withInputs(...)`).
11
+ *
12
+ * @since 0.7
13
+ * @stable
14
+ * @example
15
+ * const fn: typeof resolveDepAccessorHover = resolveDepAccessorHover;
16
+ * void fn;
17
+ */
18
+ export function resolveDepAccessorHover(source, offset) {
19
+ const accessor = findAccessorAtOffset(source, offset);
20
+ if (accessor === null)
21
+ return null;
22
+ const sourceFile = parse(source);
23
+ const producer = resolveProducerForBinding(sourceFile, accessor.bindingName);
24
+ if (producer === null)
25
+ return null;
26
+ if (accessor.kind === "output")
27
+ return formatOutputHover(accessor.bindingName, producer);
28
+ return formatWithInputsHover(accessor.bindingName, producer);
29
+ }
30
+ /**
31
+ * Resolve a best-effort go-to-definition target for a
32
+ * `<binding>.output("title")` call. Returns the line / column of the
33
+ * producer's matching `plot(value, { title: "<title>" })` call when
34
+ * resolvable. Returns `null` when the binding is missing, the producer
35
+ * is not a same-file `defineIndicator`, or no matching `plot` call is
36
+ * found.
37
+ *
38
+ * @since 0.7
39
+ * @stable
40
+ * @example
41
+ * const fn: typeof resolveDepAccessorDefinition = resolveDepAccessorDefinition;
42
+ * void fn;
43
+ */
44
+ export function resolveDepAccessorDefinition(source, offset) {
45
+ const accessor = findAccessorAtOffset(source, offset);
46
+ if (accessor === null || accessor.kind !== "output")
47
+ return null;
48
+ const sourceFile = parse(source);
49
+ const producer = resolveProducerForBinding(sourceFile, accessor.bindingName);
50
+ if (producer === null)
51
+ return null;
52
+ const title = accessor.outputTitle;
53
+ if (title === null)
54
+ return null;
55
+ for (const plotCall of producer.plotCalls) {
56
+ if (plotCall.title !== title)
57
+ continue;
58
+ const start = plotCall.titleNode.getStart(sourceFile);
59
+ const pos = sourceFile.getLineAndCharacterOfPosition(start);
60
+ return Object.freeze({
61
+ file: SCRIPT_FILE_NAME,
62
+ line: pos.line + 1,
63
+ column: pos.character + 1,
64
+ });
65
+ }
66
+ return null;
67
+ }
68
+ /**
69
+ * Collect every producer-side titled output reachable from the binding
70
+ * at the offset's `<binding>.output("|")` call site. Returns `[]` when
71
+ * the binding is missing or the producer is not a same-file
72
+ * `defineIndicator(...)`.
73
+ *
74
+ * @since 0.7
75
+ * @stable
76
+ * @example
77
+ * const titles = resolveDepOutputsFor("baseTrend.output(\"\")", 18);
78
+ * void titles;
79
+ */
80
+ export function resolveDepOutputsFor(source, offset) {
81
+ const accessor = findAccessorAtOffset(source, offset);
82
+ if (accessor === null || accessor.kind !== "output")
83
+ return Object.freeze([]);
84
+ const sourceFile = parse(source);
85
+ const producer = resolveProducerForBinding(sourceFile, accessor.bindingName);
86
+ if (producer === null)
87
+ return Object.freeze([]);
88
+ return Object.freeze(producer.plotCalls.map((call) => call.title));
89
+ }
90
+ /**
91
+ * Collect every producer-side input descriptor reachable from the
92
+ * binding at the offset's `<binding>.withInputs({ |})` call site.
93
+ * Returns `[]` when the binding is missing or the producer is not a
94
+ * same-file `defineIndicator(...)`.
95
+ *
96
+ * @since 0.7
97
+ * @stable
98
+ * @example
99
+ * const inputs = resolveDepInputsFor("baseTrend.withInputs({ })", 22);
100
+ * void inputs;
101
+ */
102
+ export function resolveDepInputsFor(source, offset) {
103
+ const accessor = findAccessorAtOffset(source, offset);
104
+ if (accessor === null || accessor.kind !== "withInputs")
105
+ return Object.freeze([]);
106
+ const sourceFile = parse(source);
107
+ const producer = resolveProducerForBinding(sourceFile, accessor.bindingName);
108
+ if (producer === null)
109
+ return Object.freeze([]);
110
+ return Object.freeze(producer.inputs);
111
+ }
112
+ function findAccessorAtOffset(source, offset) {
113
+ const sourceFile = parse(source);
114
+ const token = findTokenAtOffset(sourceFile, offset);
115
+ if (token === null)
116
+ return null;
117
+ let current = token;
118
+ while (current !== undefined) {
119
+ if (ts.isCallExpression(current)) {
120
+ const callee = current.expression;
121
+ if (ts.isPropertyAccessExpression(callee) && ts.isIdentifier(callee.expression)) {
122
+ const method = callee.name.text;
123
+ if (method === "output") {
124
+ const arg = current.arguments[0];
125
+ const title = arg !== undefined && ts.isStringLiteral(arg) ? arg.text : null;
126
+ return Object.freeze({
127
+ kind: "output",
128
+ bindingName: callee.expression.text,
129
+ outputTitle: title,
130
+ });
131
+ }
132
+ if (method === "withInputs") {
133
+ return Object.freeze({
134
+ kind: "withInputs",
135
+ bindingName: callee.expression.text,
136
+ });
137
+ }
138
+ }
139
+ }
140
+ current = current.parent;
141
+ }
142
+ return null;
143
+ }
144
+ function resolveProducerForBinding(sourceFile, bindingName) {
145
+ const root = resolveDefineCall(sourceFile, bindingName, new Set());
146
+ if (root === null)
147
+ return null;
148
+ return extractProducerInfo(root, sourceFile);
149
+ }
150
+ function resolveDefineCall(sourceFile, bindingName, seen) {
151
+ if (seen.has(bindingName))
152
+ return null;
153
+ seen.add(bindingName);
154
+ const initializer = findBindingInitializer(sourceFile, bindingName);
155
+ if (initializer === null)
156
+ return null;
157
+ return unwrapToDefineCall(initializer, sourceFile, seen);
158
+ }
159
+ function findBindingInitializer(sourceFile, bindingName) {
160
+ for (const statement of sourceFile.statements) {
161
+ if (!ts.isVariableStatement(statement))
162
+ continue;
163
+ for (const declaration of statement.declarationList.declarations) {
164
+ if (!ts.isIdentifier(declaration.name))
165
+ continue;
166
+ if (declaration.name.text !== bindingName)
167
+ continue;
168
+ return declaration.initializer ?? null;
169
+ }
170
+ }
171
+ return null;
172
+ }
173
+ function unwrapToDefineCall(node, sourceFile, seen) {
174
+ let current = node;
175
+ while (ts.isCallExpression(current)) {
176
+ const callee = current.expression;
177
+ if (ts.isIdentifier(callee) && callee.text === "defineIndicator")
178
+ return current;
179
+ if (ts.isPropertyAccessExpression(callee)) {
180
+ // Chain like `baseTrend.withInputs({...}).withInputs({...})`.
181
+ current = callee.expression;
182
+ continue;
183
+ }
184
+ return null;
185
+ }
186
+ if (ts.isIdentifier(current)) {
187
+ // Follow a same-file rebinding chain (e.g. `const chain = root;`).
188
+ return resolveDefineCall(sourceFile, current.text, seen);
189
+ }
190
+ return null;
191
+ }
192
+ function extractProducerInfo(defineCall, sourceFile) {
193
+ const opts = defineCall.arguments[0];
194
+ /* v8 ignore start -- defineIndicator(...) without an object literal is a
195
+ compile-time type error that the language service surfaces elsewhere. */
196
+ if (opts === undefined || !ts.isObjectLiteralExpression(opts)) {
197
+ return Object.freeze({ plotCalls: Object.freeze([]), inputs: Object.freeze([]) });
198
+ }
199
+ /* v8 ignore stop */
200
+ const computeFn = findPropertyAssignment(opts, "compute");
201
+ const plotCalls = computeFn === null ? [] : collectPlotCalls(computeFn, sourceFile);
202
+ const inputsLiteral = findPropertyAssignment(opts, "inputs");
203
+ const inputs = inputsLiteral === null || !ts.isObjectLiteralExpression(inputsLiteral)
204
+ ? []
205
+ : collectInputs(inputsLiteral, sourceFile);
206
+ return Object.freeze({
207
+ plotCalls: Object.freeze(plotCalls.map((entry) => Object.freeze(entry))),
208
+ inputs: Object.freeze(inputs.map((entry) => Object.freeze(entry))),
209
+ });
210
+ }
211
+ function findPropertyAssignment(objectLiteral, propertyName) {
212
+ for (const property of objectLiteral.properties) {
213
+ if (!ts.isPropertyAssignment(property))
214
+ continue;
215
+ if (propertyNameIs(property.name, propertyName))
216
+ return property.initializer;
217
+ }
218
+ return null;
219
+ }
220
+ function collectPlotCalls(root, sourceFile) {
221
+ const collected = [];
222
+ const visit = (node) => {
223
+ if (ts.isCallExpression(node) && isPlotCall(node)) {
224
+ const opts = node.arguments[1];
225
+ if (opts !== undefined && ts.isObjectLiteralExpression(opts)) {
226
+ for (const property of opts.properties) {
227
+ if (!ts.isPropertyAssignment(property))
228
+ continue;
229
+ if (!propertyNameIs(property.name, "title"))
230
+ continue;
231
+ const init = property.initializer;
232
+ if (ts.isStringLiteral(init))
233
+ collected.push({ title: init.text, titleNode: init });
234
+ }
235
+ }
236
+ }
237
+ ts.forEachChild(node, visit);
238
+ };
239
+ visit(root);
240
+ void sourceFile;
241
+ return collected;
242
+ }
243
+ function isPlotCall(call) {
244
+ const callee = call.expression;
245
+ return ts.isIdentifier(callee) && callee.text === "plot";
246
+ }
247
+ function collectInputs(inputsLiteral, sourceFile) {
248
+ const out = [];
249
+ for (const property of inputsLiteral.properties) {
250
+ if (!ts.isPropertyAssignment(property))
251
+ continue;
252
+ const name = propertyNameText(property.name);
253
+ if (name === null)
254
+ continue;
255
+ const init = property.initializer;
256
+ if (!ts.isCallExpression(init))
257
+ continue;
258
+ const callee = init.expression;
259
+ if (!ts.isPropertyAccessExpression(callee))
260
+ continue;
261
+ if (!ts.isIdentifier(callee.expression) || callee.expression.text !== "input")
262
+ continue;
263
+ const kind = callee.name.text;
264
+ const firstArg = init.arguments[0];
265
+ const defaultText = firstArg === undefined ? "—" : firstArg.getText(sourceFile);
266
+ out.push({ name, kind, defaultText });
267
+ }
268
+ return out;
269
+ }
270
+ function propertyNameIs(name, expected) {
271
+ return propertyNameText(name) === expected;
272
+ }
273
+ function propertyNameText(name) {
274
+ return ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name)
275
+ ? name.text
276
+ : null;
277
+ }
278
+ function formatOutputHover(bindingName, producer) {
279
+ if (producer.plotCalls.length === 0) {
280
+ return Object.freeze({
281
+ title: `${bindingName}.output(...)`,
282
+ summary: 'Producer does not expose any titled outputs. Add `plot(value, { title: "<name>" })` calls in the producer\'s `compute` body.',
283
+ });
284
+ }
285
+ const lines = producer.plotCalls.map((call) => `- "${call.title}" — Series<number>`);
286
+ return Object.freeze({
287
+ title: `${bindingName}.output(name)`,
288
+ summary: `Outputs declared by the producer:\n${lines.join("\n")}`,
289
+ });
290
+ }
291
+ function formatWithInputsHover(bindingName, producer) {
292
+ if (producer.inputs.length === 0) {
293
+ return Object.freeze({
294
+ title: `${bindingName}.withInputs({})`,
295
+ summary: "Producer does not declare any inputs.",
296
+ });
297
+ }
298
+ const lines = producer.inputs.map((entry) => `- ${entry.name}: ${entry.kind} (default: ${entry.defaultText})`);
299
+ return Object.freeze({
300
+ title: `${bindingName}.withInputs(overrides)`,
301
+ summary: `Producer inputs:\n${lines.join("\n")}`,
302
+ });
303
+ }
304
+ function parse(source) {
305
+ return ts.createSourceFile(SCRIPT_FILE_NAME, source, ts.ScriptTarget.Latest, true);
306
+ }
307
+ //# sourceMappingURL=resolveDepAccessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDepAccessor.js","sourceRoot":"","sources":["../../src/_lib/resolveDepAccessor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createLanguageService.d.ts","sourceRoot":"","sources":["../src/createLanguageService.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,wBAAwB,EAIxB,sBAAsB,EAGzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,sBAA2B,GAAG,wBAAwB,CA6EjG"}
1
+ {"version":3,"file":"createLanguageService.d.ts","sourceRoot":"","sources":["../src/createLanguageService.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACR,wBAAwB,EAIxB,sBAAsB,EAGzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,sBAA2B,GAAG,wBAAwB,CAiFjG"}
@@ -5,6 +5,7 @@ import ts from "typescript";
5
5
  import { collectCompletions } from "./_lib/collectCompletions.js";
6
6
  import { isInsideIntervalLiteral } from "./_lib/isInsideIntervalLiteral.js";
7
7
  import { makeDiagnostic, mapDiagnostic } from "./_lib/mapDiagnostic.js";
8
+ import { resolveDepAccessorDefinition, resolveDepAccessorHover, } from "./_lib/resolveDepAccessor.js";
8
9
  import { findTokenAtOffset, resolveFqnAtOffset } from "./_lib/resolveFqnAtOffset.js";
9
10
  import { toHoverDoc } from "./_lib/toHoverDoc.js";
10
11
  import { HOVER_REGISTRY } from "./hoverRegistry.generated.js";
@@ -40,10 +41,12 @@ export function createLanguageService(opts = {}) {
40
41
  },
41
42
  getHoverDoc(source, offset) {
42
43
  const fqn = resolveFqnAtOffset(source, offset);
43
- if (fqn === null)
44
- return null;
45
- const entry = HOVER_REGISTRY[fqn];
46
- return entry === undefined ? null : toHoverDoc(entry);
44
+ if (fqn !== null) {
45
+ const entry = HOVER_REGISTRY[fqn];
46
+ if (entry !== undefined)
47
+ return toHoverDoc(entry);
48
+ }
49
+ return resolveDepAccessorHover(source, offset);
47
50
  },
48
51
  getCompletions(source, offset) {
49
52
  if (capabilities !== undefined && isInsideIntervalLiteral(source, offset)) {
@@ -75,13 +78,14 @@ export function createLanguageService(opts = {}) {
75
78
  },
76
79
  getDefinition(source, offset) {
77
80
  const fqn = resolveFqnAtOffset(source, offset);
78
- if (fqn === null || HOVER_REGISTRY[fqn] === undefined)
79
- return null;
80
- return Object.freeze({
81
- file: "packages/core/dist/index.d.ts",
82
- line: 1,
83
- column: 1,
84
- });
81
+ if (fqn !== null && HOVER_REGISTRY[fqn] !== undefined) {
82
+ return Object.freeze({
83
+ file: "packages/core/dist/index.d.ts",
84
+ line: 1,
85
+ column: 1,
86
+ });
87
+ }
88
+ return resolveDepAccessorDefinition(source, offset);
85
89
  },
86
90
  getAvailableIntervals() {
87
91
  return capabilities?.intervals ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"createLanguageService.js","sourceRoot":"","sources":["../src/createLanguageService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createLanguageService.js","sourceRoot":"","sources":["../src/createLanguageService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hoverRegistry.generated.d.ts","sourceRoot":"","sources":["../src/hoverRegistry.generated.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,CAAC;CACvB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AAEH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA82OvE,CAAC"}
1
+ {"version":3,"file":"hoverRegistry.generated.d.ts","sourceRoot":"","sources":["../src/hoverRegistry.generated.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,CAAC;CACvB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AAEH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAi9OvE,CAAC"}
@@ -353,6 +353,17 @@ export const HOVER_REGISTRY = Object.freeze({
353
353
  "since": "0.1",
354
354
  "stability": "stable"
355
355
  },
356
+ "attachDepAccessorSentinels": {
357
+ "fqn": "attachDepAccessorSentinels",
358
+ "kind": "property",
359
+ "title": "attachDepAccessorSentinels",
360
+ "summary": "/**\nAttach the {@link depAccessorSentinel} -backed `output` /\n`withInputs` accessors to a `{ manifest, compute }` pair so the\n`defineIndicator` / `defineAlert` / `defineDrawing` /\n`defineAlertCondition` constructors return a complete\n{@link CompiledScriptObject} . The compiler rewrites both accessors\nto static dep lookups at bundle time — the throwing bodies only\nfire when an un-compiled module is invoked directly.",
361
+ "examples": [
362
+ "declare const manifest: ScriptManifest;\ndeclare const compute: ComputeFn;\nconst cs: CompiledScriptObject = attachDepAccessorSentinels({\nmanifest,\ncompute,\n});\nvoid cs;"
363
+ ],
364
+ "since": "0.7",
365
+ "stability": "stable"
366
+ },
356
367
  "Bar": {
357
368
  "fqn": "Bar",
358
369
  "kind": "type",
@@ -679,6 +690,17 @@ export const HOVER_REGISTRY = Object.freeze({
679
690
  "since": "0.4",
680
691
  "stability": "stable"
681
692
  },
693
+ "CompiledScriptBundle": {
694
+ "fqn": "CompiledScriptBundle",
695
+ "kind": "type",
696
+ "title": "CompiledScriptBundle",
697
+ "summary": "The compiled artefact for a `.chart.ts` file when it contains\nmultiple drawn indicators or any dependency graph. The Phase-7\nruntime accepts either this shape or the legacy\n`CompiledScriptObject` (single-script files).",
698
+ "examples": [
699
+ "declare const primary: CompiledScriptObject;\nconst bundle: CompiledScriptBundle = {\nprimary,\nsiblings: [],\ndependencies: [],\n};\nvoid bundle;"
700
+ ],
701
+ "since": "0.7",
702
+ "stability": "stable"
703
+ },
682
704
  "CompiledScriptObject": {
683
705
  "fqn": "CompiledScriptObject",
684
706
  "kind": "type",
@@ -927,6 +949,28 @@ export const HOVER_REGISTRY = Object.freeze({
927
949
  "since": "0.2",
928
950
  "stability": "stable"
929
951
  },
952
+ "depAccessorSentinel": {
953
+ "fqn": "depAccessorSentinel",
954
+ "kind": "property",
955
+ "title": "depAccessorSentinel",
956
+ "summary": "Sentinel thrown when `output` / `withInputs` are called outside the\ncompiler-rewritten bundle path. The Phase-7 compiler statically\nreplaces every consumer-side `.output(\"title\")` call site with a\nsynthesised `__chartlang_depOutput(...)` runtime call, and every\n`.withInputs({...})` chain with a folded dep manifest, so these\nbodies are unreachable when the bundle is loaded normally. Hand-\nrunning an un-compiled script in a unit test hits the sentinel,\nwhich is the desired failure.",
957
+ "examples": [
958
+ "try {\ndepAccessorSentinel(\"output(\\\"line\\\")\");\n} catch (err) {\nvoid (err as Error).message;\n}"
959
+ ],
960
+ "since": "0.7",
961
+ "stability": "stable"
962
+ },
963
+ "DependencyDeclaration": {
964
+ "fqn": "DependencyDeclaration",
965
+ "kind": "type",
966
+ "title": "DependencyDeclaration",
967
+ "summary": "One node in a script's compiled dependency graph. Emitted by the\ncompiler's `extractDependencyGraph` pass (Task 2) and consumed by\nthe runtime's dep executor (Task 4).",
968
+ "examples": [
969
+ "const dep: DependencyDeclaration = {\nlocalId: \"fastTrend\",\nproducerName: \"Base Trend\",\nproducerSourcePath: \"trend-confirmation.chart.ts\",\nproducerExportName: \"default\",\neffectiveInputs: { length: 20 },\noutputs: [{ title: \"line\", kind: \"series-number\" }],\nisDrawn: false,\n};\nvoid dep;"
970
+ ],
971
+ "since": "0.7",
972
+ "stability": "stable"
973
+ },
930
974
  "DisjointChannelState": {
931
975
  "fqn": "DisjointChannelState",
932
976
  "kind": "type",
@@ -2985,9 +3029,9 @@ export const HOVER_REGISTRY = Object.freeze({
2985
3029
  "fqn": "HLineOpts",
2986
3030
  "kind": "type",
2987
3031
  "title": "HLineOpts",
2988
- "summary": "Styling options accepted by `hline(...)`. Unlike `plot`, `hline` is always\na single horizontal line at a fixed price; no pane override.",
3032
+ "summary": "/**\nStyling options accepted by `hline(...)`. `pane` follows the same shape as\n{@link PlotOpts.pane} : omit to fall back to the script's manifest-resolved\ndefault (overlay unless `defineIndicator({ overlay: false })` was declared);\n`\"overlay\"` pins the line to the price pane; `\"new\"` opens / joins the\nper-script subpane; named panes route to a shared subpane key.",
2989
3033
  "examples": [
2990
- "const opts: HLineOpts = { color: \"#ef4444\", title: \"Stop\", lineStyle: \"dashed\" };"
3034
+ "const opts: HLineOpts = {\ncolor: \"#ef4444\",\ntitle: \"RSI 70\",\nlineStyle: \"dashed\",\npane: \"new\",\n};"
2991
3035
  ],
2992
3036
  "since": "0.1",
2993
3037
  "stability": "stable"
@@ -3473,6 +3517,17 @@ export const HOVER_REGISTRY = Object.freeze({
3473
3517
  "since": "0.6",
3474
3518
  "stability": "stable"
3475
3519
  },
3520
+ "isCompiledScriptBundle": {
3521
+ "fqn": "isCompiledScriptBundle",
3522
+ "kind": "property",
3523
+ "title": "isCompiledScriptBundle",
3524
+ "summary": "/**\nNarrowing helper that distinguishes the new\n{@link CompiledScriptBundle} envelope from the legacy single-script\n{@link CompiledScriptObject} . The runner uses it to pick the\nmulti-script execution path without re-parsing manifests.",
3525
+ "examples": [
3526
+ "declare const v: CompiledScriptObject | CompiledScriptBundle;\nif (isCompiledScriptBundle(v)) {\nvoid v.primary;\n} else {\nvoid v.manifest;\n}"
3527
+ ],
3528
+ "since": "0.7",
3529
+ "stability": "stable"
3530
+ },
3476
3531
  "isOpen": {
3477
3532
  "fqn": "isOpen",
3478
3533
  "kind": "function",
@@ -3912,6 +3967,17 @@ export const HOVER_REGISTRY = Object.freeze({
3912
3967
  "since": "0.2",
3913
3968
  "stability": "stable"
3914
3969
  },
3970
+ "OutputDeclaration": {
3971
+ "fqn": "OutputDeclaration",
3972
+ "kind": "type",
3973
+ "title": "OutputDeclaration",
3974
+ "summary": "One titled output a script exposes for consumption by other\nindicators. Derived from the producer's `plot(value, { title })`\ncalls during compile. `title` is the key consumers reference via\n`<binding>.output(\"title\")`.",
3975
+ "examples": [
3976
+ "const out: OutputDeclaration = {\ntitle: \"line\",\nkind: \"series-number\",\n};\nvoid out;"
3977
+ ],
3978
+ "since": "0.7",
3979
+ "stability": "stable"
3980
+ },
3915
3981
  "parseColor": {
3916
3982
  "fqn": "parseColor",
3917
3983
  "kind": "function",
@@ -4078,7 +4144,7 @@ export const HOVER_REGISTRY = Object.freeze({
4078
4144
  "fqn": "PlotKind",
4079
4145
  "kind": "type",
4080
4146
  "title": "PlotKind",
4081
- "summary": "Rendered-shape discriminator for `plot` emissions reaching the adapter.\nThe full 0.5 inventory is `line`, `step-line`, `horizontal-line`,\n`histogram`, `bars`, `area`, `filled-band`, `label`, `marker`,\n`shape`, `character`, `arrow`, `candle-override`, `bar-override`,\n`bg-color`, `bar-color`, and `horizontal-histogram`. Every expansion is\nadditive — the `apiVersion: 1` script header stays unchanged.",
4147
+ "summary": "Rendered-shape discriminator for `plot` emissions reaching the adapter.\nThe full 0.5 inventory is `line`, `step-line`, `horizontal-line`,\n`histogram`, `area`, `filled-band`, `label`, `marker`,\n`shape`, `character`, `arrow`, `candle-override`, `bar-override`,\n`bg-color`, `bar-color`, and `horizontal-histogram`. Every expansion is\nadditive — the `apiVersion: 1` script header stays unchanged.",
4082
4148
  "examples": [
4083
4149
  "const k: PlotKind = \"line\";\nconst histogram: PlotKind = \"histogram\";\nconst shape: PlotKind = \"shape\";\nvoid k; void histogram; void shape;"
4084
4150
  ],
@@ -4129,6 +4195,17 @@ export const HOVER_REGISTRY = Object.freeze({
4129
4195
  "since": "0.2",
4130
4196
  "stability": "stable"
4131
4197
  },
4198
+ "PlotOverride": {
4199
+ "fqn": "PlotOverride",
4200
+ "kind": "type",
4201
+ "title": "PlotOverride",
4202
+ "summary": "Host-supplied presentation override for a single plot slot, keyed by\n`PlotEmission.slotId`. Applied by the runtime at emit time; never\naffects `compute`. `lineWidth` / `lineStyle` apply only to the\nline-family plot kinds (`line`, `step-line`, `horizontal-line`,\n`area`); ignored as a silent no-op on other kinds.",
4203
+ "examples": [
4204
+ "const override: PlotOverride = {\nvisible: false,\ncolor: \"#ff0000\",\nlineWidth: 2,\nlineStyle: \"dashed\",\n};\nvoid override;"
4205
+ ],
4206
+ "since": "0.8",
4207
+ "stability": "stable"
4208
+ },
4132
4209
  "PlotShapeGlyph": {
4133
4210
  "fqn": "PlotShapeGlyph",
4134
4211
  "kind": "type",
@@ -4140,6 +4217,17 @@ export const HOVER_REGISTRY = Object.freeze({
4140
4217
  "since": "0.5",
4141
4218
  "stability": "stable"
4142
4219
  },
4220
+ "PlotSlotDescriptor": {
4221
+ "fqn": "PlotSlotDescriptor",
4222
+ "kind": "type",
4223
+ "title": "PlotSlotDescriptor",
4224
+ "summary": "One plotted-slot descriptor in `ScriptManifest.plots`. The compiler\nemits one entry per `plot()` / `plot.*()` / `hline()` callsite so an\nembedder can build a style/visibility UI keyed by the stable `slotId`\nbefore the first emission. `title` is present only when the call's\nopts carries a string-literal `title`.",
4225
+ "examples": [
4226
+ "const slot: PlotSlotDescriptor = {\nslotId: \"ema.ts:12:5#0\",\nkind: \"line\",\ntitle: \"EMA\",\n};\nvoid slot;"
4227
+ ],
4228
+ "since": "0.8",
4229
+ "stability": "stable"
4230
+ },
4143
4231
  "PmoOpts": {
4144
4232
  "fqn": "PmoOpts",
4145
4233
  "kind": "type",
@@ -4485,6 +4573,17 @@ export const HOVER_REGISTRY = Object.freeze({
4485
4573
  "since": "0.1",
4486
4574
  "stability": "stable"
4487
4575
  },
4576
+ "RunnerSnapshot": {
4577
+ "fqn": "RunnerSnapshot",
4578
+ "kind": "type",
4579
+ "title": "RunnerSnapshot",
4580
+ "summary": "/**\nPer-runner persistence section. Carries one runner's `state.*`\n(and primary-only TA) slot map keyed by `${slotIdPrefix}${slotId}:state`\n(PLAN.md §5.5 + Task 5). `slots` is `JsonValue` so the snapshot\nround-trips through `JSON.stringify` and structured-clone.",
4581
+ "examples": [
4582
+ "const r: RunnerSnapshot = {\nslots: { \"x:state\": { committed: 1, tentative: 1 } },\n};\nvoid r;"
4583
+ ],
4584
+ "since": "0.7",
4585
+ "stability": "stable"
4586
+ },
4488
4587
  "runtime": {
4489
4588
  "fqn": "runtime",
4490
4589
  "kind": "namespace",
@@ -4893,9 +4992,9 @@ export const HOVER_REGISTRY = Object.freeze({
4893
4992
  "title": "StateSnapshot",
4894
4993
  "summary": "Canonical persistent-store snapshot.",
4895
4994
  "examples": [
4896
- "const s: StateSnapshot = {\nlastBarTime: 1_700_000_000_000,\nstreams: {},\nslots: {},\nsavedAt: 1_700_000_060_000,\nsnapshotVersion: 1,\n};\nvoid s;"
4995
+ "const s: StateSnapshot = {\nlastBarTime: 1_700_000_000_000,\nstreams: {},\nsavedAt: 1_700_000_060_000,\nsnapshotVersion: 1,\nprimary: { slots: {} },\n};\nvoid s;"
4897
4996
  ],
4898
- "since": "0.5",
4997
+ "since": "0.5 — widened to per-runner sections in 0.7",
4899
4998
  "stability": "stable"
4900
4999
  },
4901
5000
  "StateStoreKey": {