@ai-matrx/content-ir-react 0.11.9 → 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/CHANGELOG.md +28 -0
- package/dist/directives.cjs +60 -7
- package/dist/directives.cjs.map +1 -1
- package/dist/directives.d.cts +22 -2
- package/dist/directives.d.ts +22 -2
- package/dist/directives.js +60 -7
- package/dist/directives.js.map +1 -1
- package/dist/index.cjs +128 -75
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -2
- package/dist/index.d.ts +22 -2
- package/dist/index.js +107 -54
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +127 -76
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +105 -54
- package/dist/react.js.map +1 -1
- package/package.json +4 -4
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
|
|
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
|
|
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 =
|
|
357
|
+
const display = directiveDisplay3(directive.directiveClass, directive.noun, host.nouns);
|
|
318
358
|
const openItem = host.openItem;
|
|
319
|
-
const body = /* @__PURE__ */
|
|
320
|
-
/* @__PURE__ */
|
|
321
|
-
/* @__PURE__ */
|
|
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__ */
|
|
327
|
-
openItem ? /* @__PURE__ */
|
|
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__ */
|
|
330
|
-
openItem ? /* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
362
|
-
/* @__PURE__ */
|
|
363
|
-
/* @__PURE__ */
|
|
364
|
-
/* @__PURE__ */
|
|
365
|
-
display.family ? /* @__PURE__ */
|
|
366
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
379
|
-
) : /* @__PURE__ */
|
|
380
|
-
hidden > 0 || expanded ? /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
397
|
-
function
|
|
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__ */
|
|
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__ */
|
|
416
|
-
if (directive.parsed.executes) return /* @__PURE__ */
|
|
417
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
522
|
-
showRoutingNote && routingStatus === "unroutable" ? host.renderNotice?.(notice) ?? /* @__PURE__ */
|
|
523
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
631
|
+
return /* @__PURE__ */ jsxs7("div", { className: "relative", "aria-busy": "true", children: [
|
|
581
632
|
children,
|
|
582
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
619
|
-
status === "streaming" ? streamingIndicator ?? /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
697
|
+
return /* @__PURE__ */ jsx12("p", { className: "text-xs text-muted-foreground", children: emptyLabel });
|
|
647
698
|
}
|
|
648
699
|
if (!isRecord2(output)) {
|
|
649
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
704
|
+
return /* @__PURE__ */ jsx12(Fragment3, { children: fallback?.(output) ?? host.renderValue({ value: output }) });
|
|
654
705
|
}
|
|
655
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
745
|
+
)) : /* @__PURE__ */ jsx12(
|
|
695
746
|
DelegatedOutput,
|
|
696
747
|
{
|
|
697
748
|
output: wrapper.output,
|