typebulb 0.57.1 → 0.58.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.
@@ -2,7 +2,7 @@ export * from './protocol.js';
2
2
  export { AIProvider, ProviderStreamError, type ChatRequestOpts } from './aiProvider.js';
3
3
  export { getProvider, sendAIRequest, normalizeUpstreamError, type ResolvedAIProvider, type SendAIRequestOpts } from './aiProviders.js';
4
4
  export { parseSseBlock, consumeSseStream, consumeSseStreamGen, consumeStreamText, consumeStreamResult, streamAiChunks } from './sseParser.js';
5
- export { buildInferencePrompt, sanitizeJsonOutput, encodeToHash, decodeFromHash, hashContainsTb, type InferenceScriptContent, type SanitizeResult, type InferenceResult } from './inference.js';
5
+ export { buildInferencePrompt, sanitizeJsonOutput, encodeToHash, decodeFromHash, hashContainsTb, type InferenceScriptContent, type SanitizeResult, type RuntimeState, type RuntimeStatePair } from './inference.js';
6
6
  export * from './providers/chatCompletions.js';
7
7
  export * from './providers/anthropic.js';
8
8
  export * from './providers/gemini.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ai/src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAE7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG7I,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAA;AAGvB,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ai/src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAE7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG7I,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAGvB,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ai/src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,cAAc,eAAe,CAAA;AAE7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EAGvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE7I,mGAAmG;AACnG,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EAIf,MAAM,gBAAgB,CAAA;AAEvB,qDAAqD;AACrD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ai/src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,cAAc,eAAe,CAAA;AAE7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAA;AACvF,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EAGvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE7I,mGAAmG;AACnG,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EAKf,MAAM,gBAAgB,CAAA;AAEvB,qDAAqD;AACrD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA"}
@@ -26,16 +26,26 @@ export interface SanitizeResult {
26
26
  * Attempt to parse JSON, applying conservative fixes for common LLM errors
27
27
  */
28
28
  export declare function sanitizeJsonOutput(content: string): SanitizeResult;
29
- /** The result of an inference run: the AI's insight plus the data it analyzed */
30
- export interface InferenceResult {
31
- insight: unknown;
32
- insightJson: string;
33
- data: string[];
29
+ /** The pair a page writes: the data it is running on, the insight over it, or either alone. Both
30
+ * slots are optional and an absent one falls through to the bulb's source block, so a data-only
31
+ * producer (`tb.setData`) and an inference run share one shape. This is the shape on every wire
32
+ * the pair crosses — `/__tb-encode`, `/__infer-save`, .com's `SET_RUNTIME_STATE` — where an unset
33
+ * slot is ABSENT rather than present-and-undefined, so presence needs no companion flag. */
34
+ export interface RuntimeStatePair {
35
+ insight?: unknown;
36
+ data?: string[];
34
37
  }
35
- /** Encode result to URL hash. Returns "#tb=1:..." or empty string if too large. */
36
- export declare function encodeToHash(result: InferenceResult): string;
37
- /** Decode result from URL hash. Returns undefined if no result or decode fails. */
38
- export declare function decodeFromHash(hash: string): InferenceResult | undefined;
38
+ /** A bulb's runtime state: the pair, plus the insight's serialized form. `insightJson` is always
39
+ * `JSON.stringify(insight, null, 2)` and travels only in-process — never on a wire, where it
40
+ * would be a second copy of a slot that is already there. */
41
+ export interface RuntimeState extends RuntimeStatePair {
42
+ insightJson?: string;
43
+ }
44
+ /** Encode runtime state to a URL hash. Returns "#tb=1:..." — or empty string when the state is
45
+ * empty or too large to carry, the two cases a caller handles the same way (no shareable link). */
46
+ export declare function encodeToHash(state: RuntimeState): string;
47
+ /** Decode runtime state from URL hash. Returns undefined if absent or decode fails. */
48
+ export declare function decodeFromHash(hash: string): RuntimeState | undefined;
39
49
  /** Check if hash contains a tb= fragment (for error detection) */
40
50
  export declare function hashContainsTb(hash: string): boolean;
41
51
  //# sourceMappingURL=inference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../ai/src/inference.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAoC3F;AAMD,MAAM,WAAW,cAAc;IAC7B,sGAAsG;IACtG,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAuHD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CA+DlE;AAID,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAWD,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAa5D;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAwBxE;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../ai/src/inference.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAoC3F;AAMD,MAAM,WAAW,cAAc;IAC7B,sGAAsG;IACtG,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAuHD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CA+DlE;AAID;;;;6FAI6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED;;8DAE8D;AAC9D,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAWD;oGACoG;AACpG,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAiBxD;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CA+BrE;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -10,32 +10,32 @@ import { strToU8, strFromU8, deflateSync, inflateSync } from 'fflate';
10
10
  */
11
11
  export function buildInferencePrompt(script, data) {
12
12
  const parts = [];
13
- parts.push(`You are a data processor. Follow the instructions to analyze the provided data. Output valid JSON that the code can consume.
14
-
15
- ---
16
- Instructions:
13
+ parts.push(`You are a data processor. Follow the instructions to analyze the provided data. Output valid JSON that the code can consume.
14
+
15
+ ---
16
+ Instructions:
17
17
  ${script.infer || 'Process the data and return a JSON object.'}`);
18
18
  if (script.insight) {
19
- parts.push(`---
20
- Example output:
19
+ parts.push(`---
20
+ Example output:
21
21
  ${script.insight}`);
22
22
  }
23
23
  if (script.code) {
24
- parts.push(`---
25
- Code that will consume your output:
24
+ parts.push(`---
25
+ Code that will consume your output:
26
26
  ${script.code}`);
27
27
  }
28
28
  if (data.length > 0) {
29
29
  const dataContent = data.length === 1
30
30
  ? data[0]
31
31
  : data.map((chunk, i) => `[Chunk ${i + 1}]\n${chunk}`).join('\n\n');
32
- parts.push(`---
33
- Data to process:
34
- <data>
35
- ${dataContent}
32
+ parts.push(`---
33
+ Data to process:
34
+ <data>
35
+ ${dataContent}
36
36
  </data>`);
37
37
  }
38
- parts.push(`
38
+ parts.push(`
39
39
  Output only valid JSON. No explanation, no markdown fences, just the JSON object. Every number must be a JSON literal — never an expression like 2 * pi; write the computed decimal instead.`);
40
40
  return parts.join('\n\n');
41
41
  }
@@ -243,10 +243,17 @@ export function sanitizeJsonOutput(content) {
243
243
  const TB_PREFIX = 'tb=';
244
244
  const TB_VERSION = '1';
245
245
  const MAX_ENCODED_LENGTH = 60000; // ~60KB; Firefox's ~64K URL limit is the cross-browser floor
246
- /** Encode result to URL hash. Returns "#tb=1:..." or empty string if too large. */
247
- export function encodeToHash(result) {
246
+ /** Encode runtime state to a URL hash. Returns "#tb=1:..." — or empty string when the state is
247
+ * empty or too large to carry, the two cases a caller handles the same way (no shareable link). */
248
+ export function encodeToHash(state) {
248
249
  try {
249
- const payload = { i: result.insight, d: result.data };
250
+ const payload = {};
251
+ if (state.insight !== undefined)
252
+ payload.i = state.insight;
253
+ if (state.data !== undefined)
254
+ payload.d = state.data;
255
+ if (payload.i === undefined && payload.d === undefined)
256
+ return '';
250
257
  const json = JSON.stringify(payload);
251
258
  const compressed = deflateSync(strToU8(json), { level: 9 });
252
259
  const base64 = base64UrlEncode(compressed);
@@ -259,7 +266,7 @@ export function encodeToHash(result) {
259
266
  return '';
260
267
  }
261
268
  }
262
- /** Decode result from URL hash. Returns undefined if no result or decode fails. */
269
+ /** Decode runtime state from URL hash. Returns undefined if absent or decode fails. */
263
270
  export function decodeFromHash(hash) {
264
271
  try {
265
272
  const fragment = hash.startsWith('#') ? hash.slice(1) : hash;
@@ -271,14 +278,24 @@ export function decodeFromHash(hash) {
271
278
  return undefined;
272
279
  const compressed = base64UrlDecode(encoded.slice(colonIndex + 1));
273
280
  const payload = JSON.parse(strFromU8(inflateSync(compressed)));
274
- if (!payload || typeof payload.i === 'undefined' || !Array.isArray(payload.d)) {
281
+ if (!payload || typeof payload !== 'object')
282
+ return undefined;
283
+ // Either slot alone is a valid share; only a payload carrying neither is undecodable.
284
+ const hasInsight = payload.i !== undefined;
285
+ const hasData = Array.isArray(payload.d);
286
+ if (!hasInsight && !hasData)
275
287
  return undefined;
288
+ // Key by key, so an unset slot is ABSENT rather than present-and-undefined — the shape every
289
+ // other producer of this pair emits, and the one a `{ ...state, ...patch }` merge can be handed
290
+ // without a missing slot wiping the one already there.
291
+ const state = {};
292
+ if (hasInsight) {
293
+ state.insight = payload.i;
294
+ state.insightJson = JSON.stringify(payload.i, null, 2);
276
295
  }
277
- return {
278
- insight: payload.i,
279
- insightJson: JSON.stringify(payload.i, null, 2),
280
- data: payload.d
281
- };
296
+ if (hasData)
297
+ state.data = payload.d;
298
+ return state;
282
299
  }
283
300
  catch {
284
301
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"inference.js","sourceRoot":"","sources":["../../ai/src/inference.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAarE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA8B,EAAE,IAAc;IACjF,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC;;;;EAIX,MAAM,CAAC,KAAK,IAAI,4CAA4C,EAAE,CAAC,CAAA;IAE/D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC;;EAEb,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC;;EAEb,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrE,KAAK,CAAC,IAAI,CAAC;;;EAGb,WAAW;QACL,CAAC,CAAA;IACP,CAAC;IAED,KAAK,CAAC,IAAI,CAAC;6LACgL,CAAC,CAAA;IAE5L,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAaD;wFACwF;AACxF,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,GAAuD;IACrE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAC,CAAC;IAC7G,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IACxC,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;CAClD,CAAA;AAED,mFAAmF;AACnF,SAAS,iBAAiB,CAAC,IAAY,EAAE,EAA2B;IAClE,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QAClB,IAAI,MAAM,EAAE,CAAC;YAAC,MAAM,GAAG,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,IAAI,QAAQ,EAAE,CAAC;gBAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;iBACjE,CAAC;gBAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;YACnE,QAAQ,GAAG,CAAC,QAAQ,CAAA;QACtB,CAAC;IACH,CAAC;IACD,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjE,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;qDAGqD;AACrD,SAAS,mBAAmB,CAAC,CAAS;IACpC,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9E,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACxC,CAAC;AAED;;;iGAGiG;AACjG,SAAS,uBAAuB,CAAC,CAAS;IACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;QAC9C,8FAA8F;SAC7F,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC;SACvC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACvC,kFAAkF;SACjF,OAAO,CAAC,kDAAkD,EAAE,CAAC,GAAG,EAAE,EAAE;QACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,GAAG,CAAA;QACzE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAA;QAC9C,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,QAAQ,CAAC,yBAAyB,GAAG,GAAG,CAAC,EAAa,CAAA;YAChE,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACtE,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;IACxB,CAAC,CAAC,CAAC,CAAA;IACL,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1C,CAAC;AAED;;gCAEgC;AAChC,SAAS,eAAe,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QAClB,IAAI,MAAM,EAAE,CAAC;YAAC,MAAM,GAAG,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;YAAC,SAAQ;QAAC,CAAC;QACjD,IAAI,QAAQ;YAAE,SAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,KAAK,EAAE,CAAA;aAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChC,KAAK,EAAE,CAAA;YACP,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAA;AACX,CAAC;AAED;;;+EAG+E;AAC/E,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAmD,CAAA;IACvD,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACpC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;gBACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;gBAClC,IAAI,MAAM,KAAK,SAAS;oBAAE,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;gBAC5D,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;gBACX,SAAQ;YACV,CAAC;QACH,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAEzB,mEAAmE;IACnE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QACxE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACtC,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IACvC,CAAC;IAED,uFAAuF;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;IACtE,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3B,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAChD,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACvC,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QACzC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACtB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAClC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;YACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC,EAAE,CAAA;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,yDAAyD;IACzD,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE,2BAA2B,CAAC,EAAE,CAAA;IACnF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;AAClD,CAAC;AAWD,MAAM,SAAS,GAAG,KAAK,CAAA;AACvB,MAAM,UAAU,GAAG,GAAG,CAAA;AACtB,MAAM,kBAAkB,GAAG,KAAK,CAAA,CAAE,6DAA6D;AAO/F,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,GAAmB,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,GAAG,UAAU,IAAI,MAAM,EAAE,CAAA;QAEzC,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB;YAAE,OAAO,EAAE,CAAA;QAClD,OAAO,GAAG,GAAG,SAAS,GAAG,OAAO,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAErD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,UAAU;YAAE,OAAO,SAAS,CAAA;QAEtF,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAmB,CAAA;QAEhF,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,CAAC;YAClB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,OAAO,CAAC,CAAC;SAChB,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,KAAiB;IACxC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,iGAAiG;IACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QAC9C,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAChF,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,GAAG,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACvE,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"inference.js","sourceRoot":"","sources":["../../ai/src/inference.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tbTypings.d.ts","sourceRoot":"","sources":["../../dts/src/tbTypings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoRH,kEAAkE;AAClE,eAAO,MAAM,eAAe,QAO3B,CAAA;AASD;;;wDAGwD;AACxD,eAAO,MAAM,eAAe,QAO3B,CAAA"}
1
+ {"version":3,"file":"tbTypings.d.ts","sourceRoot":"","sources":["../../dts/src/tbTypings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6SH,kEAAkE;AAClE,eAAO,MAAM,eAAe,QAO3B,CAAA;AASD;;;wDAGwD;AACxD,eAAO,MAAM,eAAe,QAO3B,CAAA"}
@@ -31,6 +31,30 @@ const insight = `
31
31
  * @returns The parsed insight JSON, or undefined if no insight is available
32
32
  */
33
33
  insight<T = unknown>(): T | undefined;`;
34
+ // Runtime-state writers — duals of tb.data()/tb.json() and tb.insight() (TB-State.md).
35
+ const runtimeStateWriters = `
36
+ /**
37
+ * Replace the data this run is working on, and get back a link that carries it.
38
+ *
39
+ * Updates what \`tb.data()\` / \`tb.json()\` return for the rest of this page, and writes the
40
+ * result into the URL fragment so the address bar addresses this run. The bulb's source
41
+ * \`data.txt\` is never touched: a reload without the fragment goes back to the file.
42
+ *
43
+ * @param chunks - The new data chunks (a bare string is treated as one chunk)
44
+ * @returns The shareable URL, or undefined when there is no address bar (inline bulbs) or the
45
+ * data is too large to fit a URL. Pass only what a share needs, not necessarily everything.
46
+ */
47
+ setData(chunks: string | string[]): Promise<string | undefined>;
48
+ /**
49
+ * Replace the insight this run is working on, and get back a link that carries it.
50
+ *
51
+ * The \`tb.insight()\` counterpart of \`setData\`, with the same fragment behavior and the same
52
+ * rule: runtime only, never the bulb's source \`insight.json\`.
53
+ *
54
+ * @param value - Any JSON-serializable value
55
+ * @returns The shareable URL, or undefined (see \`setData\`)
56
+ */
57
+ setInsight(value: unknown): Promise<string | undefined>;`;
34
58
  // One options shape, reused by tb.ai() and tb.ai.stream().
35
59
  const aiOptions = `options: {
36
60
  messages: Array<{ role: "user" | "assistant"; content: string }>;
@@ -272,7 +296,7 @@ export const clientTbTypings = `${aiChunkType}${aiAccessType}
272
296
  * Typebulb utilities namespace.
273
297
  * Type \`tb.\` to discover available helpers.
274
298
  */
275
- declare const tb: {${dataAndJson}${clientOnlyMembers}${insight}${log}${clientServerProxy}${onMessage}${ai}${fs}${dir}${models}${theme}${mode}
299
+ declare const tb: {${dataAndJson}${clientOnlyMembers}${insight}${runtimeStateWriters}${log}${clientServerProxy}${onMessage}${ai}${fs}${dir}${models}${theme}${mode}
276
300
  };
277
301
  `;
278
302
  const serverLog = `
@@ -1 +1 @@
1
- {"version":3,"file":"tbTypings.js","sourceRoot":"","sources":["../../dts/src/tbTypings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,WAAW,GAAG;;;;;;;;;;;uCAWmB,CAAA;AAEvC,MAAM,OAAO,GAAG;;;;;;;;;yCASyB,CAAA;AAEzC,2DAA2D;AAC3D,MAAM,SAAS,GAAG;;;;;;;;;;;IAWd,CAAA;AAEJ,oGAAoG;AACpG,MAAM,WAAW,GAAG;;;;;;;;;;;;CAYnB,CAAA;AAED,wGAAwG;AACxG,MAAM,YAAY,GAAG;;;CAGpB,CAAA;AAED,MAAM,EAAE,GAAG;;;;;;;;;;OAUJ,SAAS;;;;;;;;;;;;;;;;;aAiBH,SAAS;KACjB,CAAA;AAEL,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA8BkB,CAAA;AAEjC,MAAM,KAAK,GAAG;;;;;;;;;;;;uCAYyB,CAAA;AAEvC,MAAM,IAAI,GAAG;;;;;;;;;;UAUH,SAAS,GAAG,CAAA;AAEtB,MAAM,EAAE,GAAG;;;;;;;;;;;;;;;;;KAiBN,CAAA;AAEL,MAAM,GAAG,GAAG;;;;;;;;;wBASY,CAAA;AAExB,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAmDA,CAAA;AAE1B,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;6DAiB2C,CAAA;AAE7D,MAAM,GAAG,GAAG;;;;;;;;;6BASiB,CAAA;AAE7B,MAAM,iBAAiB,GAAG;;;;;;;;;;iFAUuD,CAAA;AAEjF,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,WAAW,GAAG,YAAY;;;;;qBAKvC,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,GAAG,GAAG,iBAAiB,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI;;CAE3I,CAAA;AAED,MAAM,SAAS,GAAG;;;;;6BAKW,CAAA;AAE7B;;;wDAGwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,WAAW,GAAG,YAAY;;;;;qBAKvC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI;;CAE7D,CAAA"}
1
+ {"version":3,"file":"tbTypings.js","sourceRoot":"","sources":["../../dts/src/tbTypings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,WAAW,GAAG;;;;;;;;;;;uCAWmB,CAAA;AAEvC,MAAM,OAAO,GAAG;;;;;;;;;yCASyB,CAAA;AAEzC,uFAAuF;AACvF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;2DAsB+B,CAAA;AAE3D,2DAA2D;AAC3D,MAAM,SAAS,GAAG;;;;;;;;;;;IAWd,CAAA;AAEJ,oGAAoG;AACpG,MAAM,WAAW,GAAG;;;;;;;;;;;;CAYnB,CAAA;AAED,wGAAwG;AACxG,MAAM,YAAY,GAAG;;;CAGpB,CAAA;AAED,MAAM,EAAE,GAAG;;;;;;;;;;OAUJ,SAAS;;;;;;;;;;;;;;;;;aAiBH,SAAS;KACjB,CAAA;AAEL,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA8BkB,CAAA;AAEjC,MAAM,KAAK,GAAG;;;;;;;;;;;;uCAYyB,CAAA;AAEvC,MAAM,IAAI,GAAG;;;;;;;;;;UAUH,SAAS,GAAG,CAAA;AAEtB,MAAM,EAAE,GAAG;;;;;;;;;;;;;;;;;KAiBN,CAAA;AAEL,MAAM,GAAG,GAAG;;;;;;;;;wBASY,CAAA;AAExB,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAmDA,CAAA;AAE1B,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;6DAiB2C,CAAA;AAE7D,MAAM,GAAG,GAAG;;;;;;;;;6BASiB,CAAA;AAE7B,MAAM,iBAAiB,GAAG;;;;;;;;;;iFAUuD,CAAA;AAEjF,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,WAAW,GAAG,YAAY;;;;;qBAKvC,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,mBAAmB,GAAG,GAAG,GAAG,iBAAiB,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI;;CAEjK,CAAA;AAED,MAAM,SAAS,GAAG;;;;;6BAKW,CAAA;AAE7B;;;wDAGwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,WAAW,GAAG,YAAY;;;;;qBAKvC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI;;CAE7D,CAAA"}
@@ -8,5 +8,6 @@ export * from './slug.js';
8
8
  export * from './mode.js';
9
9
  export * from './pageShell.js';
10
10
  export * from './scrollRestore.js';
11
+ export * from './runtimeState.js';
11
12
  export { escapeYamlString, unescapeYamlString } from './yaml.js';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../format/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../format/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA"}
@@ -8,5 +8,6 @@ export * from './slug.js';
8
8
  export * from './mode.js';
9
9
  export * from './pageShell.js';
10
10
  export * from './scrollRestore.js';
11
+ export * from './runtimeState.js';
11
12
  export { escapeYamlString, unescapeYamlString } from './yaml.js';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../format/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../format/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The runtime-state writers a rendered bulb document ships (runtime-specs/TB-State.md).
3
+ * ONE copy, beside scrollRestore.ts and for the same reason: `tb.setData` / `tb.setInsight` are a
4
+ * contract both hosts owe a bulb, so a second implementation is a second set of semantics waiting
5
+ * to drift. What differs between hosts is only where the page globals live and how the pair
6
+ * reaches an address bar, and both arrive through `init`.
7
+ *
8
+ * init({ applyData, applyInsight, send })
9
+ * applyData(chunks) -> put the chunks in this host's data global
10
+ * applyInsight(json) -> put the serialized insight in this host's insight global
11
+ * send(pair) -> hand { data?, insight? } to this host's transport; resolve the
12
+ * shareable URL, or undefined when there is none. Must never reject:
13
+ * every failure reads to a bulb as "no link".
14
+ *
15
+ * setData(chunks) / setInsight(value) -> the two tb.* writers, resolving send's URL
16
+ * seed(pair) -> apply and record what a decoded `#tb=` fragment carried, without sending it back
17
+ * pair() -> the wire pair, for a host that files it (the CLI modal's Save). Empty when
18
+ * nothing has been set, which is also how a host asks whether anything has.
19
+ *
20
+ * The recorded pair is deliberately NOT the page globals, which boot holding the file's own
21
+ * blocks: only a slot someone set travels, so an untouched one falls through to source (Invariant
22
+ * 3) instead of spending the URL ceiling on a copy of the file. It is built key by key, so an
23
+ * unset slot is ABSENT rather than present-and-undefined: both receivers test `'insight' in pair`,
24
+ * which stays exact for a null insight and needs no companion flag.
25
+ *
26
+ * Coalescing keys on whether the in-flight write has read the pair yet, not on whether one is
27
+ * outstanding. Writes landing before that ride it and share its URL, one round trip for the pair;
28
+ * a write landing after it queues one re-send, because the write on the wire carries a state the
29
+ * page has moved past. Answering it with that URL would address a run the page no longer shows,
30
+ * and skipping the re-send would leave the address bar doing so (Invariant 6).
31
+ */
32
+ export declare const runtimeStateEngine = "(function () {\n var W = window;\n var rtData, rtInsight, rtHasInsight = false;\n var applyData, applyInsight, send;\n var pending = null, sent = false, queued = null;\n\n var pair = function () {\n var p = {};\n if (rtData !== undefined) p.data = rtData;\n if (rtHasInsight) p.insight = rtInsight;\n return p;\n };\n\n var start = function () {\n sent = false;\n return Promise.resolve()\n .then(function () { sent = true; return send(pair()); })\n .catch(function () { return undefined; })\n .finally(function () { pending = null; });\n };\n var publish = function () {\n if (!pending) { pending = start(); return pending; }\n if (!sent) return pending;\n if (!queued) queued = pending.then(function () { queued = null; return publish(); });\n return queued;\n };\n\n W.__tbState = {\n init: function (o) { applyData = o.applyData; applyInsight = o.applyInsight; send = o.send; },\n pair: pair,\n // Applied but not sent: the fragment already holds this, so sending it back would re-encode\n // the state the page just booted from.\n seed: function (p) {\n if (p.data !== undefined) { rtData = p.data; applyData(p.data); }\n if ('insight' in p) { rtInsight = p.insight; rtHasInsight = true; applyInsight(JSON.stringify(p.insight, null, 2)); }\n },\n // The globals move before the round trip, so a synchronous tb.data() right after the await is\n // never stale.\n setData: function (chunks) {\n var arr = Array.isArray(chunks) ? chunks : [chunks];\n rtData = arr;\n applyData(arr);\n return publish();\n },\n setInsight: function (value) {\n // Serialize before recording: a value JSON.stringify rejects (a cycle, a BigInt) must leave\n // the slot untouched, or every later setter carries a pair that can never be encoded or sent.\n var json = JSON.stringify(value, null, 2);\n rtInsight = value;\n rtHasInsight = true;\n applyInsight(json);\n return publish();\n }\n };\n})();";
33
+ //# sourceMappingURL=runtimeState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeState.d.ts","sourceRoot":"","sources":["../../format/src/runtimeState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,kBAAkB,4/DAsDzB,CAAA"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * The runtime-state writers a rendered bulb document ships (runtime-specs/TB-State.md).
3
+ * ONE copy, beside scrollRestore.ts and for the same reason: `tb.setData` / `tb.setInsight` are a
4
+ * contract both hosts owe a bulb, so a second implementation is a second set of semantics waiting
5
+ * to drift. What differs between hosts is only where the page globals live and how the pair
6
+ * reaches an address bar, and both arrive through `init`.
7
+ *
8
+ * init({ applyData, applyInsight, send })
9
+ * applyData(chunks) -> put the chunks in this host's data global
10
+ * applyInsight(json) -> put the serialized insight in this host's insight global
11
+ * send(pair) -> hand { data?, insight? } to this host's transport; resolve the
12
+ * shareable URL, or undefined when there is none. Must never reject:
13
+ * every failure reads to a bulb as "no link".
14
+ *
15
+ * setData(chunks) / setInsight(value) -> the two tb.* writers, resolving send's URL
16
+ * seed(pair) -> apply and record what a decoded `#tb=` fragment carried, without sending it back
17
+ * pair() -> the wire pair, for a host that files it (the CLI modal's Save). Empty when
18
+ * nothing has been set, which is also how a host asks whether anything has.
19
+ *
20
+ * The recorded pair is deliberately NOT the page globals, which boot holding the file's own
21
+ * blocks: only a slot someone set travels, so an untouched one falls through to source (Invariant
22
+ * 3) instead of spending the URL ceiling on a copy of the file. It is built key by key, so an
23
+ * unset slot is ABSENT rather than present-and-undefined: both receivers test `'insight' in pair`,
24
+ * which stays exact for a null insight and needs no companion flag.
25
+ *
26
+ * Coalescing keys on whether the in-flight write has read the pair yet, not on whether one is
27
+ * outstanding. Writes landing before that ride it and share its URL, one round trip for the pair;
28
+ * a write landing after it queues one re-send, because the write on the wire carries a state the
29
+ * page has moved past. Answering it with that URL would address a run the page no longer shows,
30
+ * and skipping the re-send would leave the address bar doing so (Invariant 6).
31
+ */
32
+ export const runtimeStateEngine = `(function () {
33
+ var W = window;
34
+ var rtData, rtInsight, rtHasInsight = false;
35
+ var applyData, applyInsight, send;
36
+ var pending = null, sent = false, queued = null;
37
+
38
+ var pair = function () {
39
+ var p = {};
40
+ if (rtData !== undefined) p.data = rtData;
41
+ if (rtHasInsight) p.insight = rtInsight;
42
+ return p;
43
+ };
44
+
45
+ var start = function () {
46
+ sent = false;
47
+ return Promise.resolve()
48
+ .then(function () { sent = true; return send(pair()); })
49
+ .catch(function () { return undefined; })
50
+ .finally(function () { pending = null; });
51
+ };
52
+ var publish = function () {
53
+ if (!pending) { pending = start(); return pending; }
54
+ if (!sent) return pending;
55
+ if (!queued) queued = pending.then(function () { queued = null; return publish(); });
56
+ return queued;
57
+ };
58
+
59
+ W.__tbState = {
60
+ init: function (o) { applyData = o.applyData; applyInsight = o.applyInsight; send = o.send; },
61
+ pair: pair,
62
+ // Applied but not sent: the fragment already holds this, so sending it back would re-encode
63
+ // the state the page just booted from.
64
+ seed: function (p) {
65
+ if (p.data !== undefined) { rtData = p.data; applyData(p.data); }
66
+ if ('insight' in p) { rtInsight = p.insight; rtHasInsight = true; applyInsight(JSON.stringify(p.insight, null, 2)); }
67
+ },
68
+ // The globals move before the round trip, so a synchronous tb.data() right after the await is
69
+ // never stale.
70
+ setData: function (chunks) {
71
+ var arr = Array.isArray(chunks) ? chunks : [chunks];
72
+ rtData = arr;
73
+ applyData(arr);
74
+ return publish();
75
+ },
76
+ setInsight: function (value) {
77
+ // Serialize before recording: a value JSON.stringify rejects (a cycle, a BigInt) must leave
78
+ // the slot untouched, or every later setter carries a pair that can never be encoded or sent.
79
+ var json = JSON.stringify(value, null, 2);
80
+ rtInsight = value;
81
+ rtHasInsight = true;
82
+ applyInsight(json);
83
+ return publish();
84
+ }
85
+ };
86
+ })();`;
87
+ //# sourceMappingURL=runtimeState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeState.js","sourceRoot":"","sources":["../../format/src/runtimeState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsD5B,CAAA"}