@ai-matrx/content-ir-react 0.11.10 → 0.11.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.js CHANGED
@@ -78,7 +78,7 @@ import {
78
78
  } from "@ai-matrx/content-ir";
79
79
 
80
80
  // directives/DirectiveRender.tsx
81
- import { tryDecodeDirectiveContent } from "@ai-matrx/content-ir";
81
+ import { looksLikeDirectiveHead, tryDecodeDirectiveContent } from "@ai-matrx/content-ir";
82
82
 
83
83
  // directives/DirectiveFallbackCard.tsx
84
84
  import { directiveDisplay } from "@ai-matrx/content-ir";
@@ -277,6 +277,46 @@ function DirectiveFallbackCard({ directive, reason }) {
277
277
  ] });
278
278
  }
279
279
 
280
+ // directives/DirectiveProvisionalCard.tsx
281
+ import { directiveDisplay as directiveDisplay2, parseDirectiveSlug } from "@ai-matrx/content-ir";
282
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
283
+ var COMPLETE_SLUG_RE = /^\{\s*"__kind"\s*:\s*"([^"]+)"/;
284
+ function provisionalDirectiveSlug(content) {
285
+ const match = content.trimStart().match(COMPLETE_SLUG_RE);
286
+ return match?.[1] ?? null;
287
+ }
288
+ function DirectiveProvisionalCard({ content, streaming, className }) {
289
+ const host = useDirectiveHost();
290
+ const slug = provisionalDirectiveSlug(content);
291
+ const known = slug ? parseDirectiveSlug(slug) : null;
292
+ const display = known ? directiveDisplay2(known.directiveClass, known.noun, host.nouns) : null;
293
+ const Icon = known ? classIcon(known.directiveClass, known.noun) : BoxesIcon;
294
+ const title = display?.title ?? "Structured action";
295
+ return /* @__PURE__ */ jsxs4(
296
+ "div",
297
+ {
298
+ className: `my-3 rounded-md border border-border bg-card px-2.5 py-1.5${className ? ` ${className}` : ""}`,
299
+ "data-directive": slug ?? void 0,
300
+ "data-directive-state": streaming ? "streaming" : "incomplete",
301
+ children: [
302
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
303
+ /* @__PURE__ */ jsx6(Icon, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
304
+ /* @__PURE__ */ jsx6("span", { className: "text-sm font-medium text-foreground", children: title }),
305
+ display?.family ? /* @__PURE__ */ jsx6("span", { className: "text-xs text-muted-foreground", children: display.family }) : null,
306
+ streaming ? /* @__PURE__ */ jsxs4("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", role: "status", children: [
307
+ /* @__PURE__ */ jsx6("span", { className: "h-1.5 w-1.5 animate-pulse rounded-full bg-primary", "aria-hidden": true }),
308
+ "Writing\u2026"
309
+ ] }) : /* @__PURE__ */ jsx6("span", { className: "text-xs text-destructive", role: "status", children: "Cut off before it finished \u2014 nothing can be applied." })
310
+ ] }),
311
+ streaming ? null : /* @__PURE__ */ jsxs4("details", { className: "mt-1 text-xs text-muted-foreground", children: [
312
+ /* @__PURE__ */ jsx6("summary", { className: "cursor-pointer select-none hover:text-foreground", children: "Show what arrived" }),
313
+ /* @__PURE__ */ jsx6("pre", { className: "mt-1 max-h-64 overflow-auto whitespace-pre-wrap break-all rounded bg-muted px-2 py-1 text-[11px]", children: content })
314
+ ] })
315
+ ]
316
+ }
317
+ );
318
+ }
319
+
280
320
  // directives/registry.ts
281
321
  import {
282
322
  buildDirectiveSlug
@@ -294,13 +334,13 @@ function getDirectiveRenderer(directive) {
294
334
  import { useState as useState2 } from "react";
295
335
  import {
296
336
  asKindInstance,
297
- directiveDisplay as directiveDisplay2,
337
+ directiveDisplay as directiveDisplay3,
298
338
  itemFacts,
299
339
  itemSubtitle,
300
340
  itemTitle,
301
341
  nounTitleColumn
302
342
  } from "@ai-matrx/content-ir";
303
- import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
343
+ import { Fragment, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
304
344
  var ROWS_BEFORE_FOLD = 3;
305
345
  function ItemRow({
306
346
  directive,
@@ -314,20 +354,20 @@ function ItemRow({
314
354
  const subtitle = itemSubtitle(item);
315
355
  const facts = itemFacts(item);
316
356
  const kind = host.itemKind?.(directive.slug) ?? null;
317
- const display = directiveDisplay2(directive.directiveClass, directive.noun, host.nouns);
357
+ const display = directiveDisplay3(directive.directiveClass, directive.noun, host.nouns);
318
358
  const openItem = host.openItem;
319
- const body = /* @__PURE__ */ jsxs4(Fragment, { children: [
320
- /* @__PURE__ */ jsx6("span", { className: "min-w-0 shrink-0 truncate font-medium text-foreground", children: title }),
321
- /* @__PURE__ */ jsx6("span", { className: "hidden min-w-0 flex-1 items-baseline gap-2 overflow-hidden sm:flex", children: facts.map((fact) => /* @__PURE__ */ jsxs4("span", { className: "truncate text-[11px] text-muted-foreground", children: [
359
+ const body = /* @__PURE__ */ jsxs5(Fragment, { children: [
360
+ /* @__PURE__ */ jsx7("span", { className: "min-w-0 shrink-0 truncate font-medium text-foreground", children: title }),
361
+ /* @__PURE__ */ jsx7("span", { className: "hidden min-w-0 flex-1 items-baseline gap-2 overflow-hidden sm:flex", children: facts.map((fact) => /* @__PURE__ */ jsxs5("span", { className: "truncate text-[11px] text-muted-foreground", children: [
322
362
  fact.value,
323
363
  " ",
324
364
  fact.label
325
365
  ] }, fact.key)) }),
326
- subtitle && facts.length === 0 ? /* @__PURE__ */ jsx6("span", { className: "hidden truncate text-[11px] text-muted-foreground sm:inline", children: subtitle }) : null,
327
- openItem ? /* @__PURE__ */ jsx6(MaximizeIcon, { className: "ml-auto h-3 w-3 shrink-0 text-muted-foreground" }) : null
366
+ subtitle && facts.length === 0 ? /* @__PURE__ */ jsx7("span", { className: "hidden truncate text-[11px] text-muted-foreground sm:inline", children: subtitle }) : null,
367
+ openItem ? /* @__PURE__ */ jsx7(MaximizeIcon, { className: "ml-auto h-3 w-3 shrink-0 text-muted-foreground" }) : null
328
368
  ] });
329
- return /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2 py-1 text-xs", children: [
330
- openItem ? /* @__PURE__ */ jsx6(
369
+ return /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2 py-1 text-xs", children: [
370
+ openItem ? /* @__PURE__ */ jsx7(
331
371
  "button",
332
372
  {
333
373
  type: "button",
@@ -345,7 +385,7 @@ function ItemRow({
345
385
  title: "Open to read it",
346
386
  children: body
347
387
  }
348
- ) : /* @__PURE__ */ jsx6("span", { className: "flex min-w-0 flex-1 items-center gap-2 px-1 py-0.5", children: body }),
388
+ ) : /* @__PURE__ */ jsx7("span", { className: "flex min-w-0 flex-1 items-center gap-2 px-1 py-0.5", children: body }),
349
389
  host.renderCopy?.({ label: title, value: item, kind, size: "xs" })
350
390
  ] });
351
391
  }
@@ -354,37 +394,37 @@ function SideEffectDirectiveCard({ directive }) {
354
394
  const [expanded, setExpanded] = useState2(false);
355
395
  const items = directive.items;
356
396
  const total = items.length;
357
- const display = directiveDisplay2(directive.directiveClass, directive.noun, host.nouns);
397
+ const display = directiveDisplay3(directive.directiveClass, directive.noun, host.nouns);
358
398
  const Icon = classIcon(directive.directiveClass, directive.noun);
359
399
  const shown = expanded ? items : items.slice(0, ROWS_BEFORE_FOLD);
360
400
  const hidden = total - shown.length;
361
- return /* @__PURE__ */ jsxs4("div", { className: "my-3 rounded-md border border-border bg-card px-2.5 py-1.5", "data-directive": directive.slug, children: [
362
- /* @__PURE__ */ jsxs4("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
363
- /* @__PURE__ */ jsx6(Icon, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
364
- /* @__PURE__ */ jsx6("span", { className: "text-sm font-medium text-foreground", children: display.title }),
365
- display.family ? /* @__PURE__ */ jsx6("span", { className: "text-xs text-muted-foreground", children: display.family }) : null,
366
- /* @__PURE__ */ jsxs4("span", { className: "text-xs tabular-nums text-muted-foreground", children: [
401
+ return /* @__PURE__ */ jsxs5("div", { className: "my-3 rounded-md border border-border bg-card px-2.5 py-1.5", "data-directive": directive.slug, children: [
402
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
403
+ /* @__PURE__ */ jsx7(Icon, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
404
+ /* @__PURE__ */ jsx7("span", { className: "text-sm font-medium text-foreground", children: display.title }),
405
+ display.family ? /* @__PURE__ */ jsx7("span", { className: "text-xs text-muted-foreground", children: display.family }) : null,
406
+ /* @__PURE__ */ jsxs5("span", { className: "text-xs tabular-nums text-muted-foreground", children: [
367
407
  total,
368
408
  " ",
369
409
  total === 1 ? "item" : "items"
370
410
  ] }),
371
- /* @__PURE__ */ jsxs4("div", { className: "ml-auto flex items-center gap-1", children: [
411
+ /* @__PURE__ */ jsxs5("div", { className: "ml-auto flex items-center gap-1", children: [
372
412
  host.renderCopy?.({ label: display.title, value: directive.shell, size: "icon" }),
373
- /* @__PURE__ */ jsx6(ApplyDirectiveButton, { directive, itemCount: total })
413
+ /* @__PURE__ */ jsx7(ApplyDirectiveButton, { directive, itemCount: total })
374
414
  ] })
375
415
  ] }),
376
416
  total === 0 ? (
377
417
  // Stated, never silent: an empty batch is a real (and suspicious) state.
378
- /* @__PURE__ */ jsx6("p", { className: "mt-1 text-xs text-muted-foreground", children: "No items \u2014 nothing would be written." })
379
- ) : /* @__PURE__ */ jsx6("div", { className: "mt-0.5 divide-y divide-border/60", children: shown.map((item, i) => /* @__PURE__ */ jsx6(ItemRow, { directive, item, index: i, total }, i)) }),
380
- hidden > 0 || expanded ? /* @__PURE__ */ jsxs4(
418
+ /* @__PURE__ */ jsx7("p", { className: "mt-1 text-xs text-muted-foreground", children: "No items \u2014 nothing would be written." })
419
+ ) : /* @__PURE__ */ jsx7("div", { className: "mt-0.5 divide-y divide-border/60", children: shown.map((item, i) => /* @__PURE__ */ jsx7(ItemRow, { directive, item, index: i, total }, i)) }),
420
+ hidden > 0 || expanded ? /* @__PURE__ */ jsxs5(
381
421
  "button",
382
422
  {
383
423
  type: "button",
384
424
  onClick: () => setExpanded((v) => !v),
385
425
  className: "mt-0.5 inline-flex items-center gap-1 rounded px-1 py-0.5 text-[11px] text-muted-foreground hover:text-foreground",
386
426
  children: [
387
- expanded ? /* @__PURE__ */ jsx6(ChevronDownIcon, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx6(ChevronRightIcon, { className: "h-3 w-3" }),
427
+ expanded ? /* @__PURE__ */ jsx7(ChevronDownIcon, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx7(ChevronRightIcon, { className: "h-3 w-3" }),
388
428
  expanded ? "Show less" : `Show ${hidden} more`
389
429
  ]
390
430
  }
@@ -393,8 +433,16 @@ function SideEffectDirectiveCard({ directive }) {
393
433
  }
394
434
 
395
435
  // directives/DirectiveRender.tsx
396
- import { jsx as jsx7 } from "react/jsx-runtime";
397
- function DirectiveRender({ content, className }) {
436
+ import { jsx as jsx8 } from "react/jsx-runtime";
437
+ function isWholeJson(content) {
438
+ try {
439
+ JSON.parse(content);
440
+ return true;
441
+ } catch {
442
+ return false;
443
+ }
444
+ }
445
+ function DirectiveRender({ content, className, streaming }) {
398
446
  const host = useDirectiveHost();
399
447
  const directive = tryDecodeDirectiveContent(content, (message) => {
400
448
  const line = `[kind-directives] ${message}`;
@@ -402,8 +450,11 @@ function DirectiveRender({ content, className }) {
402
450
  else console.error(line);
403
451
  });
404
452
  if (!directive) {
453
+ if (typeof content === "string" && looksLikeDirectiveHead(content) && !isWholeJson(content)) {
454
+ return /* @__PURE__ */ jsx8(DirectiveProvisionalCard, { content, streaming: streaming !== false, className });
455
+ }
405
456
  const raw = typeof content === "string" ? content : JSON.stringify(content, null, 2);
406
- return /* @__PURE__ */ jsx7(
457
+ return /* @__PURE__ */ jsx8(
407
458
  "pre",
408
459
  {
409
460
  className: `my-3 overflow-x-auto rounded-md border border-border bg-muted px-3 py-2 text-xs text-muted-foreground${className ? ` ${className}` : ""}`,
@@ -412,9 +463,9 @@ function DirectiveRender({ content, className }) {
412
463
  );
413
464
  }
414
465
  const Renderer = getDirectiveRenderer(directive);
415
- if (Renderer) return /* @__PURE__ */ jsx7(Renderer, { directive });
416
- if (directive.parsed.executes) return /* @__PURE__ */ jsx7(SideEffectDirectiveCard, { directive });
417
- return /* @__PURE__ */ jsx7(DirectiveFallbackCard, { directive });
466
+ if (Renderer) return /* @__PURE__ */ jsx8(Renderer, { directive });
467
+ if (directive.parsed.executes) return /* @__PURE__ */ jsx8(SideEffectDirectiveCard, { directive });
468
+ return /* @__PURE__ */ jsx8(DirectiveFallbackCard, { directive });
418
469
  }
419
470
 
420
471
  // route/kind-route.ts
@@ -442,7 +493,7 @@ function readIrRouteMarker(metadata) {
442
493
  }
443
494
 
444
495
  // react/KindInstanceRender.tsx
445
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
496
+ import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
446
497
  function isRecordValue(value) {
447
498
  return typeof value === "object" && value !== null && !Array.isArray(value);
448
499
  }
@@ -455,7 +506,7 @@ function kindIsRoutable(kind, host) {
455
506
  }
456
507
  function KindInstanceRender(props) {
457
508
  if (isReservedDirectiveSlug2(props.kind)) {
458
- return /* @__PURE__ */ jsx8(
509
+ return /* @__PURE__ */ jsx9(
459
510
  DirectiveRender,
460
511
  {
461
512
  content: props.value,
@@ -463,7 +514,7 @@ function KindInstanceRender(props) {
463
514
  }
464
515
  );
465
516
  }
466
- return /* @__PURE__ */ jsx8(KindInstanceRenderInner, { ...props });
517
+ return /* @__PURE__ */ jsx9(KindInstanceRenderInner, { ...props });
467
518
  }
468
519
  function KindInstanceRenderInner({
469
520
  kind,
@@ -514,13 +565,13 @@ function KindInstanceRenderInner({
514
565
  } : null;
515
566
  const frameClass = variant === "bare" ? void 0 : "rounded-md border border-border bg-card p-3";
516
567
  if (routingStatus === "unroutable" && unroutableFallback !== void 0) {
517
- return /* @__PURE__ */ jsx8(Fragment2, { children: unroutableFallback });
568
+ return /* @__PURE__ */ jsx9(Fragment2, { children: unroutableFallback });
518
569
  }
519
570
  const onTheFloor = block === null || routingStatus === "unroutable";
520
571
  const notice = "This shape has no custom component yet, so it renders through the universal viewer \u2014 exactly what production shows today.";
521
- return /* @__PURE__ */ jsxs5("div", { className: className ? `space-y-3 ${className}` : "space-y-3", children: [
522
- showRoutingNote && routingStatus === "unroutable" ? host.renderNotice?.(notice) ?? /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-xs text-amber-800 dark:text-amber-200", children: notice }) : null,
523
- /* @__PURE__ */ jsx8("div", { className: frameClass, children: onTheFloor ? host.renderValue({ value, kind }) : host.renderBlock(block) })
572
+ return /* @__PURE__ */ jsxs6("div", { className: className ? `space-y-3 ${className}` : "space-y-3", children: [
573
+ showRoutingNote && routingStatus === "unroutable" ? host.renderNotice?.(notice) ?? /* @__PURE__ */ jsx9("div", { className: "rounded-md border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-xs text-amber-800 dark:text-amber-200", children: notice }) : null,
574
+ /* @__PURE__ */ jsx9("div", { className: frameClass, children: onTheFloor ? host.renderValue({ value, kind }) : host.renderBlock(block) })
524
575
  ] });
525
576
  }
526
577
 
@@ -547,7 +598,7 @@ function markKindPartialUnsafe(kind) {
547
598
  }
548
599
 
549
600
  // react/ProvisionalKindBoundary.tsx
550
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
601
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
551
602
  var ProvisionalKindBoundaryInner = class extends React.Component {
552
603
  state = { failed: false };
553
604
  static getDerivedStateFromError() {
@@ -572,14 +623,14 @@ var ProvisionalKindBoundaryInner = class extends React.Component {
572
623
  };
573
624
  function ProvisionalKindBoundary(props) {
574
625
  const host = useContentIrHost();
575
- return /* @__PURE__ */ jsx9(ProvisionalKindBoundaryInner, { ...props, reportError: host.reportError });
626
+ return /* @__PURE__ */ jsx10(ProvisionalKindBoundaryInner, { ...props, reportError: host.reportError });
576
627
  }
577
628
  function ProvisionalKindFrame({ children }) {
578
629
  const host = useContentIrHost();
579
630
  const label = "Still arriving";
580
- return /* @__PURE__ */ jsxs6("div", { className: "relative", "aria-busy": "true", children: [
631
+ return /* @__PURE__ */ jsxs7("div", { className: "relative", "aria-busy": "true", children: [
581
632
  children,
582
- /* @__PURE__ */ jsx9("span", { className: "pointer-events-none absolute -top-2 right-4 z-10 select-none rounded-full bg-background px-1.5 leading-4", children: host.renderShimmer?.(label) ?? /* @__PURE__ */ jsx9("span", { className: "text-[10px] text-muted-foreground", children: label }) })
633
+ /* @__PURE__ */ jsx10("span", { className: "pointer-events-none absolute -top-2 right-4 z-10 select-none rounded-full bg-background px-1.5 leading-4", children: host.renderShimmer?.(label) ?? /* @__PURE__ */ jsx10("span", { className: "text-[10px] text-muted-foreground", children: label }) })
583
634
  ] });
584
635
  }
585
636
 
@@ -590,7 +641,7 @@ import {
590
641
  readObjectKind as readObjectKind3,
591
642
  reconstructRegionValue
592
643
  } from "@ai-matrx/content-ir";
593
- import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
644
+ import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
594
645
  function readStructuredValue(content, metadata) {
595
646
  const envelope = readEnvelope3(metadata);
596
647
  if (envelope) {
@@ -615,19 +666,19 @@ function GenericStructuredView({
615
666
  const kind = envelope?.root.kind ?? (typeof value === "object" && value !== null && !Array.isArray(value) ? readObjectKind3(value) : null) ?? "";
616
667
  const marker = readIrRouteMarker(metadata);
617
668
  const note = marker?.reason === "inactive" ? "a custom view is registered but held inactive" : marker?.reason === "broken-instance" ? "this instance did not match the shape's schema" : marker?.reason === "unregistered" ? "this shape isn't registered on this platform" : "no custom view yet";
618
- return /* @__PURE__ */ jsxs7("div", { className: className ? `my-2 min-w-0 ${className}` : "my-2 min-w-0", children: [
619
- status === "streaming" ? streamingIndicator ?? /* @__PURE__ */ jsx10("div", { className: "mb-2 text-xs text-muted-foreground", children: "Still arriving\u2026" }) : null,
669
+ return /* @__PURE__ */ jsxs8("div", { className: className ? `my-2 min-w-0 ${className}` : "my-2 min-w-0", children: [
670
+ status === "streaming" ? streamingIndicator ?? /* @__PURE__ */ jsx11("div", { className: "mb-2 text-xs text-muted-foreground", children: "Still arriving\u2026" }) : null,
620
671
  recovered ? host.renderValue({ value, ...kind ? { kind } : {}, note }) : (
621
672
  // Zero-data-loss backstop: the region never parsed, so show the source
622
673
  // verbatim rather than swallowing it.
623
- /* @__PURE__ */ jsx10("pre", { className: "max-h-96 overflow-auto font-mono text-xs leading-relaxed text-muted-foreground", children: content })
674
+ /* @__PURE__ */ jsx11("pre", { className: "max-h-96 overflow-auto font-mono text-xs leading-relaxed text-muted-foreground", children: content })
624
675
  )
625
676
  ] });
626
677
  }
627
678
 
628
679
  // react/RuntimeWrapperViews.tsx
629
680
  import { readNodeOutcomeValue, readObjectKind as readObjectKind4, readRunResultValue } from "@ai-matrx/content-ir";
630
- import { Fragment as Fragment3, jsx as jsx11 } from "react/jsx-runtime";
681
+ import { Fragment as Fragment3, jsx as jsx12 } from "react/jsx-runtime";
631
682
  function isRecord2(value) {
632
683
  return typeof value === "object" && value !== null && !Array.isArray(value);
633
684
  }
@@ -643,16 +694,16 @@ function DelegatedOutput({
643
694
  }) {
644
695
  const host = useContentIrHost();
645
696
  if (output === null || output === void 0) {
646
- return /* @__PURE__ */ jsx11("p", { className: "text-xs text-muted-foreground", children: emptyLabel });
697
+ return /* @__PURE__ */ jsx12("p", { className: "text-xs text-muted-foreground", children: emptyLabel });
647
698
  }
648
699
  if (!isRecord2(output)) {
649
- return /* @__PURE__ */ jsx11(Fragment3, { children: host.renderValue({ value: output }) });
700
+ return /* @__PURE__ */ jsx12(Fragment3, { children: host.renderValue({ value: output }) });
650
701
  }
651
702
  const kind = readObjectKind4(output) ?? declaredKind;
652
703
  if (!kind) {
653
- return /* @__PURE__ */ jsx11(Fragment3, { children: fallback?.(output) ?? host.renderValue({ value: output }) });
704
+ return /* @__PURE__ */ jsx12(Fragment3, { children: fallback?.(output) ?? host.renderValue({ value: output }) });
654
705
  }
655
- return /* @__PURE__ */ jsx11(
706
+ return /* @__PURE__ */ jsx12(
656
707
  KindInstanceRender,
657
708
  {
658
709
  kind,
@@ -669,7 +720,7 @@ function NodeOutcomeView({ serverData, fallback }) {
669
720
  readNodeOutcomeValue
670
721
  );
671
722
  if (!wrapper) return null;
672
- return /* @__PURE__ */ jsx11(
723
+ return /* @__PURE__ */ jsx12(
673
724
  DelegatedOutput,
674
725
  {
675
726
  output: wrapper.output,
@@ -684,14 +735,14 @@ function RunResultView({ serverData, fallback }) {
684
735
  readRunResultValue
685
736
  );
686
737
  if (!wrapper) return null;
687
- return /* @__PURE__ */ jsx11("div", { className: "space-y-2", children: wrapper.outputs.length > 0 ? wrapper.outputs.map((outcome) => /* @__PURE__ */ jsx11(
738
+ return /* @__PURE__ */ jsx12("div", { className: "space-y-2", children: wrapper.outputs.length > 0 ? wrapper.outputs.map((outcome) => /* @__PURE__ */ jsx12(
688
739
  NodeOutcomeView,
689
740
  {
690
741
  serverData: { wrapper: outcome },
691
742
  ...fallback === void 0 ? {} : { fallback }
692
743
  },
693
744
  `${outcome.node_id}:${outcome.attempt}`
694
- )) : /* @__PURE__ */ jsx11(
745
+ )) : /* @__PURE__ */ jsx12(
695
746
  DelegatedOutput,
696
747
  {
697
748
  output: wrapper.output,