@molecule/app-ide-react 1.1.2 → 1.2.1

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.
@@ -23,44 +23,148 @@ export function effectiveModelRegion(model, requested) {
23
23
  return requested && regions.includes(requested) ? requested : regions[0];
24
24
  }
25
25
  /**
26
- * Combined input + output price per million tokens, used as the single
27
- * "cost/1M tokens" figure — at the rates of the model's effective region
28
- * (`regionPricing` override when the region has one, else the base rates).
26
+ * The peak-hour multiplier in force for a model at an instant, in a region.
27
+ *
28
+ * Mirrors the server's `priceMultiplierAt`, including the rule that matters
29
+ * most: peak belongs to the NATIVE provider, so a region with a `regionPricing`
30
+ * override — a different host, billing its own flat card — never takes it.
31
+ * Showing a 2× on a re-host the user is actually routed to would be a lie in
32
+ * the expensive direction.
33
+ *
34
+ * @param model - The model metadata.
35
+ * @param region - The user's per-model region choice, if any.
36
+ * @param at - The instant to evaluate (defaults to now).
37
+ * @returns The multiplier, or `1` when no peak window applies.
38
+ */
39
+ export function modelPeakMultiplier(model, region, at = new Date()) {
40
+ if (model.regionPricing?.[effectiveModelRegion(model, region)])
41
+ return 1;
42
+ const peak = model.peakPricing;
43
+ if (!peak || peak.windows.length === 0)
44
+ return 1;
45
+ const minute = at.getUTCHours() * 60 + at.getUTCMinutes();
46
+ for (const w of peak.windows) {
47
+ const inWindow = w.startMinuteUtc <= w.endMinuteUtc
48
+ ? minute >= w.startMinuteUtc && minute < w.endMinuteUtc
49
+ : minute >= w.startMinuteUtc || minute < w.endMinuteUtc;
50
+ if (inWindow)
51
+ return peak.multiplier;
52
+ }
53
+ return 1;
54
+ }
55
+ /**
56
+ * Whether a model can EVER cost more at some hours than others, in a region.
57
+ *
58
+ * Distinct from {@link modelPeakMultiplier}, which answers "right now". The
59
+ * picker needs both: one to price the current moment, one to decide whether the
60
+ * model deserves a "costs more at some hours" explanation at all — a model in
61
+ * its off-peak hours still surprises the user later if nothing says so.
62
+ *
63
+ * @param model - The model metadata.
64
+ * @param region - The user's per-model region choice, if any.
65
+ * @returns True when the model has peak windows that apply in this region.
66
+ */
67
+ export function modelHasPeakPricing(model, region) {
68
+ if (model.regionPricing?.[effectiveModelRegion(model, region)])
69
+ return false;
70
+ return (model.peakPricing?.windows.length ?? 0) > 0 && model.peakPricing.multiplier !== 1;
71
+ }
72
+ /**
73
+ * The peak windows as local-time `HH:MM–HH:MM` ranges, for display.
74
+ *
75
+ * Local, not UTC: a user reasons about "is it expensive right now" in their own
76
+ * clock, and the windows are only actionable if they can be compared to it.
77
+ *
78
+ * @param model - The model metadata.
79
+ * @returns Formatted local ranges, empty when the model has no peak windows.
80
+ */
81
+ export function modelPeakWindowLabels(model) {
82
+ const windows = model.peakPricing?.windows ?? [];
83
+ const fmt = (minuteUtc) => {
84
+ const d = new Date();
85
+ d.setUTCHours(Math.floor(minuteUtc / 60), minuteUtc % 60, 0, 0);
86
+ return d.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' });
87
+ };
88
+ return windows.map((w) => `${fmt(w.startMinuteUtc)}–${fmt(w.endMinuteUtc)}`);
89
+ }
90
+ /**
91
+ * The token mix a real agentic turn bills at, used to weight the cost figure.
92
+ *
93
+ * Agentic conversations re-send a growing prefix every turn, so prompt-cache
94
+ * HITS dominate: measured traffic runs ~94% cache reads (deepseek, 2026-08-01).
95
+ * Weighting matters more than the exact numbers — what breaks is ignoring cache
96
+ * reads entirely, not being a few points off the ratio.
97
+ */
98
+ const AGENTIC_TOKEN_MIX = { cacheRead: 47_000, input: 3_000, output: 800 };
99
+ /**
100
+ * What a representative agentic turn costs on a model, in USD — the single
101
+ * "cost" figure, at the rates of the model's effective region (`regionPricing`
102
+ * override when the region has one, else the base rates).
103
+ *
104
+ * This weighted `AGENTIC_TOKEN_MIX` replaced a plain `input + output` sum on
105
+ * 2026-08-14. That sum ignored cache reads, which is the term that actually
106
+ * dominates the bill, and the error was not small: it showed Claude Haiku at
107
+ * ×23 the cheapest model when the real figure is ×10, and gemini-3.7-flash at
108
+ * ×35 against a true ×15 — systematically scaring users off cache-friendly
109
+ * models while making a couple of others look cheaper than they bill. The sum
110
+ * was a fine proxy while every provider's cache read was a fixed fraction of
111
+ * input; it stopped being one once hosts started pricing cache reads
112
+ * independently (DeepSeek's absolute cache-hit rates, DeepInfra's 0.2x).
113
+ *
114
+ * Not currency: callers surface this only as a RELATIVE multiplier
115
+ * ({@link modelUsageRate}), never as a price.
29
116
  *
30
117
  * @param model - The model metadata.
31
118
  * @param region - The user's per-model region choice, if any (omitted → the
32
119
  * model's default region).
33
- * @returns Sum of input and output price per million tokens in USD.
120
+ * @returns The blended cost of one representative turn in USD.
34
121
  */
35
122
  export function modelTotalCost(model, region) {
36
123
  const override = model.regionPricing?.[effectiveModelRegion(model, region)];
37
- return override
38
- ? override.inputPricePerMTok + override.outputPricePerMTok
39
- : model.inputPricePerMTok + model.outputPricePerMTok;
124
+ const input = override?.inputPricePerMTok ?? model.inputPricePerMTok;
125
+ const output = override?.outputPricePerMTok ?? model.outputPricePerMTok;
126
+ // An override with no cache fields bills cache reads at its input rate — the
127
+ // same fallback `modelRegionRates` applies server-side for metering.
128
+ const cacheRead = override
129
+ ? (override.cacheReadPricePerMTok ?? override.inputPricePerMTok)
130
+ : model.cacheReadPricePerMTok;
131
+ return ((AGENTIC_TOKEN_MIX.cacheRead * cacheRead +
132
+ AGENTIC_TOKEN_MIX.input * input +
133
+ AGENTIC_TOKEN_MIX.output * output) /
134
+ 1_000_000);
40
135
  }
41
136
  /**
42
137
  * Relative usage rate: how much faster this model consumes the user's AI
43
138
  * allowance than the cheapest available model (a unitless `×N` multiplier,
44
- * `1` for the cheapest). Derived from combined input+output list rates. This
45
- * is the ONLY per-model "cost" figure user-facing surfaces show — AI usage is
46
- * never presented as currency.
139
+ * `1` for the cheapest). Derived from {@link modelTotalCost}, a blended agentic
140
+ * turn. This is the ONLY per-model "cost" figure user-facing surfaces show — AI
141
+ * usage is never presented as currency.
47
142
  *
48
143
  * The base is every model's DEFAULT-region cost (stable regardless of the
49
144
  * user's per-model region choices); the rated model itself is priced at the
50
145
  * given region so the figure tracks what a region switch actually changes.
51
146
  *
147
+ * PEAK PRICING IS INCLUDED, at `at`. A model inside a provider's peak window
148
+ * genuinely drains the allowance at its multiplier, so the figure has to move
149
+ * with it — a single all-day number is wrong twice a day. Only the RATED model
150
+ * takes its multiplier: the base stays each model's off-peak default-region
151
+ * cost, so the anchor does not wobble as unrelated models enter their windows.
152
+ * Pair it with {@link modelHasPeakPricing} / {@link modelPeakWindowLabels} so a
153
+ * changing number reads as explained rather than erratic.
154
+ *
52
155
  * @param model - The model to rate.
53
156
  * @param models - The full available-model list (supplies the cheapest base).
54
157
  * @param region - The rated model's region choice, if any (omitted → its
55
158
  * default region).
159
+ * @param at - The instant to price at (defaults to now).
56
160
  * @returns The multiplier, rounded to 1 decimal below 10 and whole above.
57
161
  */
58
- export function modelUsageRate(model, models, region) {
162
+ export function modelUsageRate(model, models, region, at = new Date()) {
59
163
  const costs = models.map((m) => modelTotalCost(m)).filter((c) => c > 0);
60
164
  const base = costs.length > 0 ? Math.min(...costs) : 0;
61
165
  if (!Number.isFinite(base) || base <= 0)
62
166
  return 1;
63
- const rate = modelTotalCost(model, region) / base;
167
+ const rate = (modelTotalCost(model, region) * modelPeakMultiplier(model, region, at)) / base;
64
168
  return rate >= 10 ? Math.round(rate) : Math.max(1, Math.round(rate * 10) / 10);
65
169
  }
66
170
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"chat-models-utilities.js","sourceRoot":"","sources":["../../src/components/chat-models-utilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-models-utilities.js","sourceRoot":"","sources":["../../src/components/chat-models-utilities.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,32 @@
8
8
  */
9
9
  /** Raw tool output shape. */
10
10
  export type ToolOutput = Record<string, unknown> | string | null | undefined;
11
+ /**
12
+ * Read a model-supplied field as a string.
13
+ *
14
+ * Tool input is authored by a language model. Its schema says a field is a string; that
15
+ * is a request, and models miss it — `{ label: 'x' }` where a string was declared is the
16
+ * shape that blanked production on 2026-08-14. `as string` on one of these fields is a
17
+ * lie the compiler cannot catch, so every field this module reads goes through here
18
+ * instead: anything that isn't string-like becomes `undefined` and each call site's
19
+ * existing empty-value handling takes over.
20
+ *
21
+ * @param value - The raw field value.
22
+ * @returns The string, or `undefined` when the value cannot be one.
23
+ */
24
+ export declare function str(value: unknown): string | undefined;
25
+ /**
26
+ * Read a model-supplied field as a number.
27
+ *
28
+ * The numeric twin of {@link str}, and it hides in the same way: `out.exitCode as number`
29
+ * on an object passes `!= null` and `!== 0`, so the guard reads as satisfied and the
30
+ * object goes straight into JSX. Numeric-looking strings are accepted because providers
31
+ * routinely send them.
32
+ *
33
+ * @param value - The raw field value.
34
+ * @returns The number, or `undefined` when the value cannot be one.
35
+ */
36
+ export declare function num(value: unknown): number | undefined;
11
37
  /**
12
38
  * Extracts the last path segment from a file path (e.g. "a/b/c.ts" → "c.ts").
13
39
  * @param path - The file path to extract the basename from.
@@ -38,6 +64,29 @@ export declare function toolLabel(name: string, input: unknown): string;
38
64
  * @returns A brief summary string describing the result.
39
65
  */
40
66
  export declare function toolSummary(name: string, output: ToolOutput, status: string): string;
67
+ /** The `ask_user` tool input, after coercion — every field safe to render. */
68
+ export interface AskUserInput {
69
+ /** The question text (markdown). */
70
+ question: string;
71
+ /** Clickable answers, always plain strings. */
72
+ options: string[];
73
+ /** Whether the free-text box is offered. `undefined` means "model didn't say" (defaults on). */
74
+ allowFreeText: boolean | undefined;
75
+ /** Optional hint shown under the options. */
76
+ hint: string;
77
+ }
78
+ /**
79
+ * Normalize raw `ask_user` tool input into renderable strings.
80
+ *
81
+ * The model is told `options` is `string[]`, and weaker models routinely send
82
+ * `[{ label: 'Recipe box' }]` or `[{ label, value }]` instead. Rendering one of those
83
+ * objects directly is React error #31, which crashes the entire IDE at the moment the
84
+ * user submits their first prompt. Everything the card renders goes through here.
85
+ *
86
+ * @param input - The raw tool input, straight off the model.
87
+ * @returns The same fields, coerced so each is safe as a React child.
88
+ */
89
+ export declare function normalizeAskUserInput(input: unknown): AskUserInput;
41
90
  /**
42
91
  * Count truly added/removed lines between two line arrays using LCS.
43
92
  * @param oldLines - The original lines array.
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-utilities.d.ts","sourceRoot":"","sources":["../../src/components/tool-call-utilities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,6BAA6B;AAC7B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAE5E;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGzD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK9E;AAOD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CA4H9D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8HpF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAcpC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,GACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyB3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAgB3E"}
1
+ {"version":3,"file":"tool-call-utilities.d.ts","sourceRoot":"","sources":["../../src/components/tool-call-utilities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,6BAA6B;AAC7B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAE5E;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAItD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOtD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGzD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK9E;AAOD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CA0H9D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8HpF;AA0CD,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,gGAAgG;IAChG,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CASlE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAcpC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,GACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyB3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAgB3E"}
@@ -7,6 +7,46 @@
7
7
  * @module
8
8
  */
9
9
  import { t } from '@molecule/app-i18n';
10
+ /**
11
+ * Read a model-supplied field as a string.
12
+ *
13
+ * Tool input is authored by a language model. Its schema says a field is a string; that
14
+ * is a request, and models miss it — `{ label: 'x' }` where a string was declared is the
15
+ * shape that blanked production on 2026-08-14. `as string` on one of these fields is a
16
+ * lie the compiler cannot catch, so every field this module reads goes through here
17
+ * instead: anything that isn't string-like becomes `undefined` and each call site's
18
+ * existing empty-value handling takes over.
19
+ *
20
+ * @param value - The raw field value.
21
+ * @returns The string, or `undefined` when the value cannot be one.
22
+ */
23
+ export function str(value) {
24
+ if (typeof value === 'string')
25
+ return value;
26
+ if (typeof value === 'number' || typeof value === 'boolean')
27
+ return String(value);
28
+ return undefined;
29
+ }
30
+ /**
31
+ * Read a model-supplied field as a number.
32
+ *
33
+ * The numeric twin of {@link str}, and it hides in the same way: `out.exitCode as number`
34
+ * on an object passes `!= null` and `!== 0`, so the guard reads as satisfied and the
35
+ * object goes straight into JSX. Numeric-looking strings are accepted because providers
36
+ * routinely send them.
37
+ *
38
+ * @param value - The raw field value.
39
+ * @returns The number, or `undefined` when the value cannot be one.
40
+ */
41
+ export function num(value) {
42
+ if (typeof value === 'number')
43
+ return Number.isFinite(value) ? value : undefined;
44
+ if (typeof value === 'string' && value.trim() !== '') {
45
+ const parsed = Number(value);
46
+ return Number.isFinite(parsed) ? parsed : undefined;
47
+ }
48
+ return undefined;
49
+ }
10
50
  /**
11
51
  * Extracts the last path segment from a file path (e.g. "a/b/c.ts" → "c.ts").
12
52
  * @param path - The file path to extract the basename from.
@@ -45,10 +85,10 @@ function truncate(value, max = 60) {
45
85
  */
46
86
  export function toolLabel(name, input) {
47
87
  const inp = (input ?? {});
48
- const path = inp.path;
49
- const cmd = inp.command;
50
- const pattern = inp.pattern;
51
- const url = inp.url;
88
+ const path = str(inp.path);
89
+ const cmd = str(inp.command);
90
+ const pattern = str(inp.pattern);
91
+ const url = str(inp.url);
52
92
  // Wrap a value in a leading-space + backticks, or return '' when it's empty.
53
93
  // While a tool call streams, its input arrives a beat after the block is
54
94
  // created, so path/pattern/command are briefly undefined — emitting `Read ``
@@ -69,19 +109,21 @@ export function toolLabel(name, input) {
69
109
  case 'create_directory':
70
110
  return `Create dir${code(basename(path))}`;
71
111
  case 'rename_file':
72
- return `Rename${code(basename(inp.old_path))}`;
112
+ return `Rename${code(basename(str(inp.old_path)))}`;
73
113
  case 'delete_file':
74
114
  return `Delete${code(basename(path))}`;
75
115
  case 'find_files':
76
116
  return `Find${code(pattern ?? '')}`;
77
117
  case 'load_skill':
78
- return `Load skill${code(inp.name ?? '')}`;
118
+ return `Load skill${code(str(inp.name) ?? '')}`;
79
119
  case 'find_package': {
80
- const query = inp.query ?? inp.category;
120
+ const query = str(inp.query) ?? str(inp.category);
81
121
  return `Find package${code(query ?? '')}`;
82
122
  }
83
123
  case 'read_molecule_doc': {
84
- const pkg = inp.name?.trim().replace(/^@molecule\//, '');
124
+ const pkg = str(inp.name)
125
+ ?.trim()
126
+ .replace(/^@molecule\//, '');
85
127
  return `Read docs${code(pkg ? `@molecule/${pkg}` : '')}`;
86
128
  }
87
129
  case 'web_fetch': {
@@ -99,12 +141,12 @@ export function toolLabel(name, input) {
99
141
  case 'sandbox_fetch': {
100
142
  // The interesting part is WHICH endpoint (usually one the model just built) —
101
143
  // show method + protocol-stripped URL, e.g. "GET `localhost:4000/api/todos`".
102
- const method = (inp.method ?? 'GET').toUpperCase();
144
+ const method = (str(inp.method) ?? 'GET').toUpperCase();
103
145
  const compact = (url ?? '').replace(/^https?:\/\//, '').replace(/\/$/, '');
104
146
  return `${method}${code(truncate(compact))}`;
105
147
  }
106
148
  case 'navigate_preview':
107
- return `Go to${code(inp.path ?? '')}`;
149
+ return `Go to${code(str(inp.path) ?? '')}`;
108
150
  case 'open_file':
109
151
  return `Open${code(basename(path))}`;
110
152
  case 'reload_preview':
@@ -117,39 +159,36 @@ export function toolLabel(name, input) {
117
159
  // Target priority mirrors the tool's own: molId is canonical, text is the
118
160
  // visible name (usually the most readable), selector is the last resort.
119
161
  // Deliberately NEVER show `value` — fill routinely types credentials.
120
- const target = inp.text ??
121
- inp.molId ??
122
- inp.selector ??
123
- '';
124
- const verb = { click: 'Click', fill: 'Fill', select: 'Select', waitFor: 'Wait for' }[inp.action];
162
+ const target = str(inp.text) ?? str(inp.molId) ?? str(inp.selector) ?? '';
163
+ const verb = { click: 'Click', fill: 'Fill', select: 'Select', waitFor: 'Wait for' }[str(inp.action) ?? ''];
125
164
  return verb ? `${verb}${code(truncate(target, 40))}` : `Interact${code(truncate(target, 40))}`;
126
165
  }
127
166
  case 'get_ide_state':
128
167
  return 'Check IDE status';
129
168
  case 'read_logs': {
130
- const source = inp.source ?? '';
131
- const filter = inp.filter ?? '';
169
+ const source = str(inp.source) ?? '';
170
+ const filter = str(inp.filter) ?? '';
132
171
  const which = source && source !== 'all' ? `Read ${source} logs` : 'Read logs';
133
172
  return `${which}${code(truncate(filter, 30))}`;
134
173
  }
135
174
  case 'find_example':
136
- return `Find example${code(truncate(inp.query ?? '', 40))}`;
175
+ return `Find example${code(truncate(str(inp.query) ?? '', 40))}`;
137
176
  case 'save_script':
138
- return `Save script${code(inp.name ?? '')}`;
177
+ return `Save script${code(str(inp.name) ?? '')}`;
139
178
  case 'request_repo_import':
140
179
  return 'Import repository';
141
180
  case 'web_search':
142
- return `Search web${code(truncate(inp.query ?? '', 40))}`;
181
+ return `Search web${code(truncate(str(inp.query) ?? '', 40))}`;
143
182
  case 'save_plan': {
144
- const planName = inp.name ?? '';
183
+ const planName = str(inp.name) ?? '';
145
184
  return planName ? `Save plan \`${planName}\`` : 'Save plan';
146
185
  }
147
186
  case 'set_mode': {
148
- const targetMode = inp.mode ?? '';
187
+ const targetMode = str(inp.mode) ?? '';
149
188
  return targetMode ? `Switch to ${targetMode} mode` : 'Switch mode';
150
189
  }
151
190
  case 'ask_user':
152
- return inp.question ?? 'Question';
191
+ return normalizeAskUserInput(inp).question || 'Question';
153
192
  default: {
154
193
  const label = name.replace(/_/g, ' ');
155
194
  // Salient-argument fallback for tools without an explicit case: nearly every
@@ -175,7 +214,7 @@ export function toolSummary(name, output, status) {
175
214
  const out = output;
176
215
  const hasError = typeof out === 'object' && out !== null && 'error' in out;
177
216
  if (hasError) {
178
- const msg = (out.error ?? '').toLowerCase();
217
+ const msg = (str(out.error) ?? '').toLowerCase();
179
218
  if (msg.includes('not found') || msg.includes('no such file'))
180
219
  return t('ide.toolCall.statusNotFound', undefined, { defaultValue: 'Not found' });
181
220
  if (msg.includes('permission') || msg.includes('access denied'))
@@ -285,6 +324,71 @@ export function toolSummary(name, output, status) {
285
324
  return '';
286
325
  }
287
326
  }
327
+ /**
328
+ * The keys a model reaches for when it ignores a `string` schema and hands back an
329
+ * option object instead (`{ label }`, `{ value }`, `{ title }`, `{ text }`, `{ name }`).
330
+ * Ordered by how likely each is to hold the human-readable text.
331
+ */
332
+ const OPTION_TEXT_KEYS = ['label', 'text', 'title', 'value', 'name', 'option'];
333
+ /**
334
+ * Coerce one model-authored value into a plain string safe to render as a React child.
335
+ *
336
+ * Tool input is authored by an LLM, not by us: a schema saying `type: 'string'` is a
337
+ * request, never a guarantee. A non-string reaching JSX throws React error #31 and —
338
+ * because the throw happens during render — takes down the whole app, not just the card.
339
+ *
340
+ * @param value - The raw value from the tool input.
341
+ * @returns The best human-readable string, or `''` when there is nothing to show.
342
+ */
343
+ function coerceToText(value) {
344
+ if (typeof value === 'string')
345
+ return value;
346
+ if (value == null)
347
+ return '';
348
+ if (typeof value === 'number' || typeof value === 'boolean')
349
+ return String(value);
350
+ if (Array.isArray(value))
351
+ return value.map(coerceToText).filter(Boolean).join(' ');
352
+ if (typeof value === 'object') {
353
+ const record = value;
354
+ for (const key of OPTION_TEXT_KEYS) {
355
+ const candidate = record[key];
356
+ if (typeof candidate === 'string' && candidate.trim() !== '')
357
+ return candidate;
358
+ }
359
+ // No recognisable text key — show the JSON rather than dropping the option
360
+ // silently, so the user can still pick it and we can see what the model sent.
361
+ try {
362
+ return JSON.stringify(value);
363
+ }
364
+ catch (_error) {
365
+ // Circular structure — nothing renderable is recoverable from it.
366
+ return '';
367
+ }
368
+ }
369
+ return '';
370
+ }
371
+ /**
372
+ * Normalize raw `ask_user` tool input into renderable strings.
373
+ *
374
+ * The model is told `options` is `string[]`, and weaker models routinely send
375
+ * `[{ label: 'Recipe box' }]` or `[{ label, value }]` instead. Rendering one of those
376
+ * objects directly is React error #31, which crashes the entire IDE at the moment the
377
+ * user submits their first prompt. Everything the card renders goes through here.
378
+ *
379
+ * @param input - The raw tool input, straight off the model.
380
+ * @returns The same fields, coerced so each is safe as a React child.
381
+ */
382
+ export function normalizeAskUserInput(input) {
383
+ const raw = (input ?? {});
384
+ const rawOptions = Array.isArray(raw.options) ? raw.options : [];
385
+ return {
386
+ question: coerceToText(raw.question),
387
+ options: rawOptions.map(coerceToText).filter((option) => option.trim() !== ''),
388
+ allowFreeText: typeof raw.allowFreeText === 'boolean' ? raw.allowFreeText : undefined,
389
+ hint: coerceToText(raw.hint),
390
+ };
391
+ }
288
392
  /**
289
393
  * Count truly added/removed lines between two line arrays using LCS.
290
394
  * @param oldLines - The original lines array.
@@ -355,12 +459,12 @@ export function extractFilePath(name, input) {
355
459
  case 'write_file':
356
460
  case 'edit_file':
357
461
  case 'open_file':
358
- return inp.path || null;
462
+ return str(inp.path) || null;
359
463
  case 'rename_file':
360
- return inp.new_path || null;
464
+ return str(inp.new_path) || null;
361
465
  case 'read_molecule_doc':
362
466
  // Clicking the card opens the package's MOLECULE.md (pre-installed in the sandbox).
363
- return moleculeDocPath(inp.name);
467
+ return moleculeDocPath(str(inp.name));
364
468
  default:
365
469
  return null;
366
470
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-utilities.js","sourceRoot":"","sources":["../../src/components/tool-call-utilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-utilities.js","sourceRoot":"","sources":["../../src/components/tool-call-utilities.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import type { ReactNode } from 'react';
6
+ import type { ErrorInfo, ReactNode } from 'react';
7
7
  import type { ChatMessage, ChatStreamEvent } from '@molecule/app-ai-chat';
8
8
  import type { EditorTab, FixWithAIRequest } from '@molecule/app-code-editor';
9
9
  import type { DeviceFrame } from '@molecule/app-live-preview';
@@ -89,6 +89,13 @@ export interface ChatPanelProps {
89
89
  onCommit?: () => void;
90
90
  /** Called when an inline activity card is clicked — should open the Activity panel filtered to this activity. */
91
91
  onActivityClick?: (activity: ActivityFromCard) => void;
92
+ /**
93
+ * Reports a chat timeline item that threw during render, caught by that item's
94
+ * error boundary. The item degrades to an inline notice either way; this is how the
95
+ * host gets the crash into its telemetry instead of it being visible only to the
96
+ * one user who hit it.
97
+ */
98
+ onRenderError?: (error: Error, info: ErrorInfo) => void;
92
99
  /**
93
100
  * Called when a user avatar in the chat timeline is clicked — the host opens
94
101
  * that user's profile (e.g. molecule.dev's profile modal). Receives the clicked