@adonis-agora/agent 0.79.0 → 0.80.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.
Files changed (78) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/assets/spa/assets/{index-DVnnBvfn.css → index-BxmGk7Ik.css} +1 -1
  3. package/dist/assets/spa/assets/index-Csk8lqYx.js +9 -0
  4. package/dist/assets/spa/index.html +2 -2
  5. package/dist/providers/agent_provider.d.ts.map +1 -1
  6. package/dist/providers/agent_provider.js +14 -0
  7. package/dist/providers/agent_provider.js.map +1 -1
  8. package/dist/src/agent-loop.d.ts.map +1 -1
  9. package/dist/src/agent-loop.js +47 -1
  10. package/dist/src/agent-loop.js.map +1 -1
  11. package/dist/src/client/chat-client.d.ts.map +1 -1
  12. package/dist/src/client/chat-client.js +24 -1
  13. package/dist/src/client/chat-client.js.map +1 -1
  14. package/dist/src/genui/catalog.d.ts +14 -0
  15. package/dist/src/genui/catalog.d.ts.map +1 -1
  16. package/dist/src/genui/catalog.js +2 -0
  17. package/dist/src/genui/catalog.js.map +1 -1
  18. package/dist/src/genui/public.d.ts +4 -3
  19. package/dist/src/genui/public.d.ts.map +1 -1
  20. package/dist/src/genui/public.js +2 -1
  21. package/dist/src/genui/public.js.map +1 -1
  22. package/dist/src/genui/sandbox-validate.d.ts +42 -0
  23. package/dist/src/genui/sandbox-validate.d.ts.map +1 -0
  24. package/dist/src/genui/sandbox-validate.js +557 -0
  25. package/dist/src/genui/sandbox-validate.js.map +1 -0
  26. package/dist/src/genui/sandbox.d.ts +6 -0
  27. package/dist/src/genui/sandbox.d.ts.map +1 -1
  28. package/dist/src/genui/sandbox.js +54 -0
  29. package/dist/src/genui/sandbox.js.map +1 -1
  30. package/dist/src/genui/tools.d.ts +16 -1
  31. package/dist/src/genui/tools.d.ts.map +1 -1
  32. package/dist/src/genui/tools.js +76 -9
  33. package/dist/src/genui/tools.js.map +1 -1
  34. package/dist/src/genui-telemetry.d.ts +232 -0
  35. package/dist/src/genui-telemetry.d.ts.map +1 -0
  36. package/dist/src/genui-telemetry.js +426 -0
  37. package/dist/src/genui-telemetry.js.map +1 -0
  38. package/dist/src/index.d.ts +3 -1
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/index.js +2 -1
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/src/opencode/mcp.d.ts +2 -0
  43. package/dist/src/opencode/mcp.d.ts.map +1 -1
  44. package/dist/src/opencode/mcp.js +16 -1
  45. package/dist/src/opencode/mcp.js.map +1 -1
  46. package/dist/src/spi/agent-store.d.ts +8 -0
  47. package/dist/src/spi/agent-store.d.ts.map +1 -1
  48. package/dist/src/spi/agent-store.js.map +1 -1
  49. package/dist/src/spi/governance-queries.d.ts +7 -0
  50. package/dist/src/spi/governance-queries.d.ts.map +1 -1
  51. package/dist/src/spi/governance-queries.js +0 -13
  52. package/dist/src/spi/governance-queries.js.map +1 -1
  53. package/dist/src/stores/lucid-governance-queries.d.ts +2 -0
  54. package/dist/src/stores/lucid-governance-queries.d.ts.map +1 -1
  55. package/dist/src/stores/lucid-governance-queries.js +56 -0
  56. package/dist/src/stores/lucid-governance-queries.js.map +1 -1
  57. package/dist/src/stores/lucid-schema.d.ts +11 -6
  58. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  59. package/dist/src/stores/lucid-schema.js +41 -6
  60. package/dist/src/stores/lucid-schema.js.map +1 -1
  61. package/dist/src/stores/lucid.d.ts +2 -0
  62. package/dist/src/stores/lucid.d.ts.map +1 -1
  63. package/dist/src/stores/lucid.js +38 -0
  64. package/dist/src/stores/lucid.js.map +1 -1
  65. package/dist/src/testing/in-memory-governance-queries.d.ts +2 -0
  66. package/dist/src/testing/in-memory-governance-queries.d.ts.map +1 -1
  67. package/dist/src/testing/in-memory-governance-queries.js +4 -0
  68. package/dist/src/testing/in-memory-governance-queries.js.map +1 -1
  69. package/dist/src/testing/in-memory-store.d.ts +5 -0
  70. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  71. package/dist/src/testing/in-memory-store.js +14 -0
  72. package/dist/src/testing/in-memory-store.js.map +1 -1
  73. package/dist/src/types.d.ts +17 -0
  74. package/dist/src/types.d.ts.map +1 -1
  75. package/package.json +3 -1
  76. package/skills/agent-governance/SKILL.md +2 -2
  77. package/skills/agent-setup/SKILL.md +1 -1
  78. package/dist/assets/spa/assets/index-Be6OClIm.js +0 -9
@@ -0,0 +1,557 @@
1
+ /**
2
+ * The sandbox's code, checked on the server BEFORE the call is accepted — so a model that wrote a
3
+ * view the frame cannot draw gets a short, exact tool error ("jsx line 12:5: `flippy.send` — the
4
+ * bridge is `agent.send(payload)`") and its retry succeeds, instead of the user seeing a broken
5
+ * frame.
6
+ *
7
+ * - JSX goes through the SAME transpiler the frame runs ({@link transpileJsx}) and is parsed with
8
+ * acorn (+ acorn-jsx) for exact positions; `App` must be defined.
9
+ * - HTML: every inline `<script>` and `on*=` handler, `jsFunctions` and each `jsExpressions` entry
10
+ * is parsed with acorn; a `<script src>` the policy blocks is refused.
11
+ * - Anything that looks like a bridge (`x.send(…)` on an undeclared `x`, `agent.post(…)`) other than
12
+ * `agent.send` is refused.
13
+ * - With the kit's docs, a `<Component>` the kit does not have is refused (it would throw in the
14
+ * frame); a prop the component does not declare is a WARNING — the call is accepted and the model
15
+ * is told.
16
+ *
17
+ * The parsers are loaded on first use (`await import`): this file is part of the isomorphic genui
18
+ * entry, and a browser bundle that never validates never loads them.
19
+ */
20
+ import { prepareSandboxJsx, transpileJsx } from './sandbox-jsx.js';
21
+ /** `jsx line 12:5: …` / `jsExpressions[2] line 1:3: …` — the issue as the model reads it. */
22
+ export function formatSandboxIssue(issue) {
23
+ const field = issue.index !== undefined ? `${issue.field}[${issue.index}]` : issue.field;
24
+ const where = issue.line !== undefined
25
+ ? ` line ${issue.line}${issue.column !== undefined ? `:${issue.column}` : ''}`
26
+ : '';
27
+ return `${field}${where}: ${issue.message}`;
28
+ }
29
+ /** Names the frame puts in scope for JSX besides the kit's components. */
30
+ const JSX_SCOPE = new Set([
31
+ 'useState',
32
+ 'useEffect',
33
+ 'useMemo',
34
+ 'useRef',
35
+ 'useCallback',
36
+ 'useReducer',
37
+ 'useId',
38
+ 'useLayoutEffect',
39
+ 'Fragment',
40
+ 'React',
41
+ 'Kit',
42
+ ]);
43
+ /** Props every element takes (React's own, and attributes a component passes through). */
44
+ const UNIVERSAL_PROPS = new Set(['key', 'ref', 'children', 'className', 'style', 'id']);
45
+ const BRIDGE_HOLDERS = new Set(['window', 'globalThis', 'self', 'parent', 'top']);
46
+ let parsers;
47
+ async function loadParsers() {
48
+ parsers ??= (async () => {
49
+ const acorn = await import('acorn');
50
+ const jsxModule = (await import('acorn-jsx'));
51
+ const plugin = (jsxModule.default ?? jsxModule);
52
+ const JsxParser = acorn.Parser.extend(plugin());
53
+ return {
54
+ js: (code, options) => acorn.parse(code, options),
55
+ jsx: (code, options) => JsxParser.parse(code, options),
56
+ };
57
+ })();
58
+ return parsers;
59
+ }
60
+ /**
61
+ * The sandbox's code, checked: errors first (each refuses the call), then warnings. JSX when the
62
+ * kit allows it and the view is in `jsx` (the longer of `jsx`/`html`, as the renderer decides);
63
+ * otherwise the HTML and its scripts.
64
+ */
65
+ export async function validateSandboxCode(props, options = {}) {
66
+ const { js, jsx } = await loadParsers();
67
+ const jsxSource = typeof props.jsx === 'string' ? props.jsx : '';
68
+ const html = typeof props.html === 'string' ? props.html : '';
69
+ const drawsJsx = jsxSource.trim() !== '' && jsxSource.trim().length >= html.trim().length;
70
+ const issues = [];
71
+ if (drawsJsx && (options.jsx ?? options.kit?.jsx === true)) {
72
+ issues.push(...checkJsx(jsxSource, options.kit, js, jsx));
73
+ }
74
+ else {
75
+ issues.push(...checkHtml(html, options, js));
76
+ if (typeof props.jsFunctions === 'string' && props.jsFunctions.trim() !== '') {
77
+ issues.push(...checkScript(props.jsFunctions, 'jsFunctions', undefined, js));
78
+ }
79
+ if (Array.isArray(props.jsExpressions)) {
80
+ props.jsExpressions.forEach((code, index) => {
81
+ if (typeof code === 'string' && code.trim() !== '') {
82
+ issues.push(...checkScript(code, 'jsExpressions', index, js));
83
+ }
84
+ });
85
+ }
86
+ }
87
+ return [
88
+ ...issues.filter((issue) => issue.severity === 'error'),
89
+ ...issues.filter((issue) => issue.severity === 'warning'),
90
+ ];
91
+ }
92
+ // ─── JSX ────────────────────────────────────────────────────────────────────────────────────────
93
+ /** {@link prepareSandboxJsx} line by line, so every line stays where it was (positions match the model's text). */
94
+ function prepareKeepingLines(source) {
95
+ return source.split('\n').map(prepareSandboxJsx).join('\n');
96
+ }
97
+ function checkJsx(source, kit, js, jsx) {
98
+ const prepared = prepareKeepingLines(source);
99
+ let output;
100
+ try {
101
+ output = transpileJsx(prepared);
102
+ }
103
+ catch (error) {
104
+ const text = error instanceof Error ? error.message : String(error);
105
+ const at = /\s*\(at (\d+)\)\s*$/.exec(text);
106
+ const offset = at !== null ? Number(at[1]) : undefined;
107
+ return [
108
+ {
109
+ severity: 'error',
110
+ category: 'syntax',
111
+ field: 'jsx',
112
+ ...(offset !== undefined ? position(prepared, offset) : {}),
113
+ message: `${at !== null ? text.slice(0, at.index) : text}${hintFor(prepared, offset)}`,
114
+ },
115
+ ];
116
+ }
117
+ let ast;
118
+ let located = true;
119
+ try {
120
+ ast = jsx(prepared, PARSE_OPTIONS);
121
+ }
122
+ catch (error) {
123
+ // acorn-jsx is stricter than the frame in places: what counts is whether the program the frame
124
+ // runs (the transpiled one) parses.
125
+ try {
126
+ ast = js(output, PARSE_OPTIONS);
127
+ located = false;
128
+ }
129
+ catch {
130
+ return [syntaxIssue(error, 'jsx', undefined, prepared)];
131
+ }
132
+ }
133
+ const issues = [];
134
+ const declared = declaredNames(ast);
135
+ if (!definesApp(ast)) {
136
+ const candidate = topLevelComponent(ast);
137
+ issues.push({
138
+ severity: 'error',
139
+ category: 'missing-app',
140
+ field: 'jsx',
141
+ message: candidate !== undefined
142
+ ? `no \`App\` — rename \`function ${candidate}\` to \`function App\`; App is what gets drawn`
143
+ : 'no `App` — define `function App() { return <…/>; }`; App is what gets drawn',
144
+ });
145
+ }
146
+ issues.push(...bridgeIssues(ast, declared, 'jsx', undefined, located ? prepared : undefined));
147
+ if (kit !== undefined)
148
+ issues.push(...kitIssues(ast, declared, kit, located ? prepared : undefined));
149
+ return issues;
150
+ }
151
+ const PARSE_OPTIONS = {
152
+ ecmaVersion: 'latest',
153
+ sourceType: 'script',
154
+ locations: false,
155
+ allowReturnOutsideFunction: false,
156
+ };
157
+ /** Does the program define `App` at its top level (a function, a `const App = …`, a class)? */
158
+ function definesApp(ast) {
159
+ for (const statement of ast.body ?? []) {
160
+ if ((statement.type === 'FunctionDeclaration' || statement.type === 'ClassDeclaration') &&
161
+ statement.id?.name === 'App') {
162
+ return true;
163
+ }
164
+ if (statement.type === 'VariableDeclaration') {
165
+ for (const declarator of statement.declarations) {
166
+ if (declarator.id.name === 'App')
167
+ return true;
168
+ }
169
+ }
170
+ }
171
+ return false;
172
+ }
173
+ /** The one capitalized top-level function, when the model named its view something else. */
174
+ function topLevelComponent(ast) {
175
+ const names = (ast.body ?? [])
176
+ .filter((statement) => statement.type === 'FunctionDeclaration')
177
+ .map((statement) => statement.id?.name ?? '')
178
+ .filter((name) => /^[A-Z]/.test(name));
179
+ return names.length === 1 ? names[0] : undefined;
180
+ }
181
+ function kitIssues(ast, declared, kit, source) {
182
+ const components = new Map(kit.components.map((component) => [component.name, component]));
183
+ const issues = [];
184
+ const reported = new Set();
185
+ walk(ast, (node) => {
186
+ let name;
187
+ let attributes = [];
188
+ if (node.type === 'JSXOpeningElement') {
189
+ name = jsxName(node.name);
190
+ attributes = node.attributes ?? [];
191
+ }
192
+ else if (node.type === 'CallExpression' && isCreateElement(node.callee)) {
193
+ // The transpiled program (acorn-jsx refused the source): `React.createElement(Name, {…})`.
194
+ const [first] = node.arguments;
195
+ if (first?.type === 'Identifier')
196
+ name = first.name;
197
+ }
198
+ if (name === undefined || !/^[A-Z]/.test(name))
199
+ return;
200
+ const bare = name.startsWith('Kit.') ? name.slice(4) : name;
201
+ if (name.includes('.') && !name.startsWith('Kit.'))
202
+ return;
203
+ if (!name.startsWith('Kit.') && (declared.has(bare) || JSX_SCOPE.has(bare)))
204
+ return;
205
+ const doc = components.get(bare);
206
+ if (doc === undefined) {
207
+ if (reported.has(bare))
208
+ return;
209
+ reported.add(bare);
210
+ const known = kit.components.map((component) => component.name);
211
+ issues.push({
212
+ severity: 'error',
213
+ category: 'unknown-component',
214
+ field: 'jsx',
215
+ ...(source !== undefined ? position(source, node.start) : {}),
216
+ message: known.length > 0
217
+ ? `\`<${name}>\` is not a kit component — use one of ${listOf(known)}, or a plain element`
218
+ : `\`<${name}>\` does not exist here — use plain elements (or define ${bare} yourself)`,
219
+ });
220
+ return;
221
+ }
222
+ if (doc.inherits !== undefined || doc.props.length === 0)
223
+ return;
224
+ const allowed = new Set(doc.props.map((prop) => prop.name));
225
+ for (const attribute of attributes) {
226
+ if (attribute.type !== 'JSXAttribute')
227
+ continue;
228
+ const prop = jsxName(attribute.name);
229
+ if (prop === undefined ||
230
+ allowed.has(prop) ||
231
+ UNIVERSAL_PROPS.has(prop) ||
232
+ /^(data|aria)-/.test(prop)) {
233
+ continue;
234
+ }
235
+ issues.push({
236
+ severity: 'warning',
237
+ category: 'unknown-prop',
238
+ field: 'jsx',
239
+ ...(source !== undefined ? position(source, attribute.start) : {}),
240
+ message: `\`<${bare} ${prop}>\`: ${bare} has no prop \`${prop}\` (it takes ${listOf([...allowed])})`,
241
+ });
242
+ }
243
+ });
244
+ return issues;
245
+ }
246
+ function isCreateElement(callee) {
247
+ return (callee.type === 'MemberExpression' &&
248
+ callee.object.name === 'React' &&
249
+ callee.property.name === 'createElement');
250
+ }
251
+ function jsxName(node) {
252
+ if (node === undefined || node === null)
253
+ return undefined;
254
+ if (node.type === 'JSXIdentifier')
255
+ return node.name;
256
+ if (node.type === 'JSXMemberExpression') {
257
+ const object = jsxName(node.object);
258
+ const property = jsxName(node.property);
259
+ return object !== undefined && property !== undefined ? `${object}.${property}` : undefined;
260
+ }
261
+ if (node.type === 'JSXNamespacedName') {
262
+ return `${jsxName(node.namespace)}:${jsxName(node.name)}`;
263
+ }
264
+ return undefined;
265
+ }
266
+ // ─── HTML and plain scripts ─────────────────────────────────────────────────────────────────────
267
+ const SCRIPT = /<script\b([^>]*)>([\s\S]*?)(<\/script\s*>|$)/gi;
268
+ const JS_TYPES = /^(|text\/javascript|application\/javascript|module|text\/ecmascript)$/i;
269
+ function checkHtml(html, options, js) {
270
+ const issues = [];
271
+ let blanked = html;
272
+ for (const match of html.matchAll(SCRIPT)) {
273
+ const attributes = match[1] ?? '';
274
+ const body = match[2] ?? '';
275
+ const at = match.index ?? 0;
276
+ const bodyStart = at + match[0].indexOf('>') + 1;
277
+ blanked =
278
+ blanked.slice(0, at) + match[0].replace(/[^\n]/g, ' ') + blanked.slice(at + match[0].length);
279
+ if (match[3] === '') {
280
+ issues.push({
281
+ severity: 'error',
282
+ category: 'syntax',
283
+ field: 'html',
284
+ ...position(html, at),
285
+ message: '`<script>` is never closed — end it with `</script>`',
286
+ });
287
+ continue;
288
+ }
289
+ const src = /\bsrc\s*=\s*["']?([^"'\s>]+)/i.exec(attributes);
290
+ if (src !== null) {
291
+ const origin = originOf(src[1] ?? '');
292
+ if (origin === undefined ||
293
+ !(options.scriptOrigins ?? []).some((each) => allows(each, origin))) {
294
+ issues.push({
295
+ severity: 'error',
296
+ category: 'syntax',
297
+ field: 'html',
298
+ ...position(html, at),
299
+ message: `\`<script src="${src[1]}">\` is blocked (the sandbox has no network) — inline the code instead`,
300
+ });
301
+ }
302
+ continue;
303
+ }
304
+ const type = /\btype\s*=\s*["']?([^"'\s>]*)/i.exec(attributes)?.[1] ?? '';
305
+ if (!JS_TYPES.test(type))
306
+ continue;
307
+ const parsed = parseAt(body, js, type.toLowerCase() === 'module' ? 'module' : 'script');
308
+ if (!parsed.ok) {
309
+ issues.push(syntaxIssue(parsed.error, 'html', undefined, html, bodyStart));
310
+ continue;
311
+ }
312
+ issues.push(...bridgeIssues(parsed.ast, declaredNames(parsed.ast), 'html', undefined, html, bodyStart));
313
+ }
314
+ // Inline handlers (`onclick="…"`), outside the scripts.
315
+ const handler = /<[a-zA-Z][^>]*?\son[a-z]+\s*=\s*("([^"]*)"|'([^']*)')/g;
316
+ const attribute = /\son[a-z]+\s*=\s*("([^"]*)"|'([^']*)')/g;
317
+ for (const tag of blanked.matchAll(handler)) {
318
+ const tagStart = tag.index ?? 0;
319
+ const whole = blanked.slice(tagStart, blanked.indexOf('>', tagStart) + 1 || undefined);
320
+ for (const each of whole.matchAll(attribute)) {
321
+ const value = each[2] ?? each[3] ?? '';
322
+ const valueStart = tagStart + (each.index ?? 0) + each[0].indexOf(each[1] ?? '') + 1;
323
+ const code = decodeEntities(value);
324
+ const wrapped = `(function(event){${code}\n})`;
325
+ const parsed = parseAt(wrapped, js, 'script');
326
+ if (!parsed.ok) {
327
+ const offset = Math.max(0, errorOffset(parsed.error) - '(function(event){'.length);
328
+ issues.push({
329
+ severity: 'error',
330
+ category: 'syntax',
331
+ field: 'html',
332
+ ...position(html, valueStart + Math.min(offset, value.length)),
333
+ message: `${errorText(parsed.error)} in an inline handler`,
334
+ });
335
+ continue;
336
+ }
337
+ issues.push(...bridgeIssues(parsed.ast, declaredNames(parsed.ast), 'html', undefined, html, valueStart - '(function(event){'.length));
338
+ }
339
+ }
340
+ return dedupe(issues);
341
+ }
342
+ function checkScript(code, field, index, js) {
343
+ const parsed = parseAt(code, js, 'script');
344
+ if (!parsed.ok)
345
+ return [syntaxIssue(parsed.error, field, index, code)];
346
+ return bridgeIssues(parsed.ast, declaredNames(parsed.ast), field, index, code);
347
+ }
348
+ function parseAt(code, js, sourceType) {
349
+ try {
350
+ return { ok: true, ast: js(code, { ...PARSE_OPTIONS, sourceType }) };
351
+ }
352
+ catch (error) {
353
+ return { ok: false, error };
354
+ }
355
+ }
356
+ function originOf(url) {
357
+ const match = /^(https:\/\/[^/?#]+)/i.exec(url);
358
+ return match?.[1]?.toLowerCase();
359
+ }
360
+ function allows(pattern, origin) {
361
+ const lower = pattern.toLowerCase();
362
+ if (!lower.includes('*.'))
363
+ return lower === origin;
364
+ const suffix = lower.replace('https://*.', '');
365
+ return origin.startsWith('https://') && origin.slice(8).endsWith(`.${suffix}`);
366
+ }
367
+ function decodeEntities(text) {
368
+ return text
369
+ .replace(/&quot;/g, '"')
370
+ .replace(/&#39;|&apos;/g, "'")
371
+ .replace(/&lt;/g, '<')
372
+ .replace(/&gt;/g, '>')
373
+ .replace(/&amp;/g, '&');
374
+ }
375
+ // ─── The bridge ─────────────────────────────────────────────────────────────────────────────────
376
+ /**
377
+ * Calls that look like a way out of the frame but are not `agent.send`: `flippy.send(…)` on an
378
+ * undeclared name, `window.app.send(…)`, `agent.post(…)`.
379
+ */
380
+ function bridgeIssues(ast, declared, field, index, source, base = 0) {
381
+ const issues = [];
382
+ walk(ast, (node) => {
383
+ if (node.type !== 'CallExpression')
384
+ return;
385
+ const callee = node.callee;
386
+ if (callee.type !== 'MemberExpression' || callee.computed === true)
387
+ return;
388
+ const method = callee.property.name;
389
+ const object = callee.object;
390
+ let holder;
391
+ if (object.type === 'Identifier')
392
+ holder = object.name;
393
+ else if (object.type === 'MemberExpression' &&
394
+ object.computed !== true &&
395
+ BRIDGE_HOLDERS.has(object.object.name ?? '')) {
396
+ const inner = object.property.name;
397
+ if (inner === 'agent')
398
+ holder = 'agent';
399
+ else if (inner !== undefined)
400
+ holder = `${object.object.name}.${inner}`;
401
+ }
402
+ if (holder === undefined)
403
+ return;
404
+ const where = {
405
+ ...(index !== undefined ? { index } : {}),
406
+ ...(source !== undefined ? position(source, base + callee.start) : {}),
407
+ };
408
+ if (holder === 'agent') {
409
+ if (method === 'send' || declared.has('agent'))
410
+ return;
411
+ issues.push({
412
+ severity: 'error',
413
+ category: 'bridge',
414
+ field,
415
+ ...where,
416
+ message: `\`agent.${method}\` — the bridge has one method: \`agent.send(payload)\``,
417
+ });
418
+ return;
419
+ }
420
+ if (method !== 'send')
421
+ return;
422
+ const root = holder.split('.')[0] ?? holder;
423
+ if (!holder.includes('.') && declared.has(root))
424
+ return;
425
+ issues.push({
426
+ severity: 'error',
427
+ category: 'bridge',
428
+ field,
429
+ ...where,
430
+ message: `\`${holder}.send\` — the bridge is \`agent.send(payload)\``,
431
+ });
432
+ });
433
+ return issues;
434
+ }
435
+ // ─── AST helpers ────────────────────────────────────────────────────────────────────────────────
436
+ function walk(node, visit) {
437
+ if (Array.isArray(node)) {
438
+ for (const item of node)
439
+ walk(item, visit);
440
+ return;
441
+ }
442
+ if (typeof node !== 'object' || node === null || typeof node.type !== 'string')
443
+ return;
444
+ visit(node);
445
+ for (const [key, value] of Object.entries(node)) {
446
+ if (key === 'type' || key === 'start' || key === 'end' || key === 'loc')
447
+ continue;
448
+ if (typeof value === 'object' && value !== null)
449
+ walk(value, visit);
450
+ }
451
+ }
452
+ /** Every name the program binds anywhere (conservative: scope is ignored). */
453
+ function declaredNames(ast) {
454
+ const names = new Set();
455
+ const bind = (pattern) => {
456
+ if (typeof pattern !== 'object' || pattern === null)
457
+ return;
458
+ const node = pattern;
459
+ switch (node.type) {
460
+ case 'Identifier':
461
+ names.add(node.name);
462
+ return;
463
+ case 'ObjectPattern':
464
+ for (const property of node.properties) {
465
+ bind(property.type === 'RestElement' ? property.argument : property.value);
466
+ }
467
+ return;
468
+ case 'ArrayPattern':
469
+ for (const element of node.elements)
470
+ bind(element);
471
+ return;
472
+ case 'RestElement':
473
+ bind(node.argument);
474
+ return;
475
+ case 'AssignmentPattern':
476
+ bind(node.left);
477
+ return;
478
+ }
479
+ };
480
+ walk(ast, (node) => {
481
+ if (node.type === 'VariableDeclarator')
482
+ bind(node.id);
483
+ else if (node.type === 'FunctionDeclaration' ||
484
+ node.type === 'FunctionExpression' ||
485
+ node.type === 'ArrowFunctionExpression') {
486
+ if (node.id !== null && node.id !== undefined)
487
+ bind(node.id);
488
+ for (const param of node.params)
489
+ bind(param);
490
+ }
491
+ else if (node.type === 'ClassDeclaration' && node.id !== null)
492
+ bind(node.id);
493
+ else if (node.type === 'CatchClause' && node.param !== null)
494
+ bind(node.param);
495
+ else if (node.type === 'ImportSpecifier' || node.type === 'ImportDefaultSpecifier')
496
+ bind(node.local);
497
+ });
498
+ return names;
499
+ }
500
+ function position(source, offset) {
501
+ const before = source.slice(0, Math.max(0, Math.min(offset, source.length)));
502
+ const lines = before.split('\n');
503
+ return { line: lines.length, column: (lines[lines.length - 1]?.length ?? 0) + 1 };
504
+ }
505
+ function errorOffset(error) {
506
+ const pos = error.pos;
507
+ return typeof pos === 'number' ? pos : 0;
508
+ }
509
+ /** acorn's message without its `(line:column)` suffix. */
510
+ function errorText(error) {
511
+ const text = error instanceof Error ? error.message : String(error);
512
+ return text.replace(/\s*\(\d+:\d+\)\s*$/, '');
513
+ }
514
+ function syntaxIssue(error, field, index, source, base = 0) {
515
+ const offset = base + errorOffset(error);
516
+ return {
517
+ severity: 'error',
518
+ category: 'syntax',
519
+ field,
520
+ ...(index !== undefined ? { index } : {}),
521
+ ...position(source, offset),
522
+ message: `${errorText(error)}${hintFor(source, offset)}`,
523
+ };
524
+ }
525
+ /** A one-line fix for the syntax errors models make most. */
526
+ function hintFor(source, offset) {
527
+ if (offset === undefined)
528
+ return '';
529
+ const lineStart = source.lastIndexOf('\n', Math.max(0, offset - 1)) + 1;
530
+ const lineEnd = source.indexOf('\n', offset);
531
+ const line = source.slice(lineStart, lineEnd < 0 ? undefined : lineEnd);
532
+ if (/^\s*(type|interface)\s+\w+/.test(line) ||
533
+ /\)\s*:\s*[\w.]+[\w.<>[\]|]*\s*(=>|\{)/.test(line) ||
534
+ /\b(useState|useRef|useMemo)<|\bas\s+(const|[A-Z]\w*|string|number)\b/.test(line)) {
535
+ return ' — plain JavaScript only: drop the TypeScript types';
536
+ }
537
+ if (/\b(class|for)=/.test(line) && /</.test(line))
538
+ return '';
539
+ if (/<\/?[A-Za-z]/.test(line))
540
+ return ' — check that every JSX tag is closed in order';
541
+ return '';
542
+ }
543
+ function listOf(names, max = 12) {
544
+ const shown = names.slice(0, max).map((name) => `\`${name}\``);
545
+ return names.length > max ? `${shown.join(', ')}…` : shown.join(', ');
546
+ }
547
+ function dedupe(issues) {
548
+ const seen = new Set();
549
+ return issues.filter((issue) => {
550
+ const key = formatSandboxIssue(issue);
551
+ if (seen.has(key))
552
+ return false;
553
+ seen.add(key);
554
+ return true;
555
+ });
556
+ }
557
+ //# sourceMappingURL=sandbox-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-validate.js","sourceRoot":"","sources":["../../../src/genui/sandbox-validate.ts"],"names":[],"mappings":"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"}
@@ -283,6 +283,12 @@ export type SandboxDefinition = ComponentDefinition<SandboxProps> & {
283
283
  * ```
284
284
  */
285
285
  export declare function defineSandbox(options?: DefineSandboxOptions): SandboxDefinition;
286
+ /**
287
+ * A minimal, valid call of a sandbox's own tool (`ui__sandbox`), as the model should write it: JSX
288
+ * when the kit draws JSX (a kit `Button` when there is one), HTML otherwise. The JSX is a JSON
289
+ * STRING — quoted, newlines escaped — which is what a model writing code (OpenCode) gets wrong.
290
+ */
291
+ export declare function sandboxCallExample(definition: unknown): string | undefined;
286
292
  /**
287
293
  * Whether a sandbox's props draw as JSX (the kit) or as HTML. A model under strict tool calling
288
294
  * (OpenAI's) fills every property, so it may write a whole view in one field and a stub in the
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/genui/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/genui/sandbox.ts"],"names":[],"mappings":"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"}