@k8o/arte-odyssey 10.6.4 → 10.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ai/_internal/collapsible.d.mts +14 -0
- package/dist/components/ai/_internal/collapsible.mjs +49 -0
- package/dist/components/ai/_internal/streaming-cursor.d.mts +6 -0
- package/dist/components/ai/_internal/streaming-cursor.mjs +8 -0
- package/dist/components/ai/conversation/conversation.d.mts +19 -0
- package/dist/components/ai/conversation/conversation.mjs +105 -0
- package/dist/components/ai/conversation/index.d.mts +2 -0
- package/dist/components/ai/conversation/index.mjs +2 -0
- package/dist/components/ai/index.d.mts +8 -0
- package/dist/components/ai/index.mjs +7 -0
- package/dist/components/ai/message/index.d.mts +2 -0
- package/dist/components/ai/message/index.mjs +2 -0
- package/dist/components/ai/message/message.d.mts +18 -0
- package/dist/components/ai/message/message.mjs +33 -0
- package/dist/components/ai/prompt-input/index.d.mts +2 -0
- package/dist/components/ai/prompt-input/index.mjs +2 -0
- package/dist/components/ai/prompt-input/prompt-input.d.mts +27 -0
- package/dist/components/ai/prompt-input/prompt-input.mjs +103 -0
- package/dist/components/ai/reasoning/index.d.mts +2 -0
- package/dist/components/ai/reasoning/index.mjs +2 -0
- package/dist/components/ai/reasoning/reasoning.d.mts +13 -0
- package/dist/components/ai/reasoning/reasoning.mjs +21 -0
- package/dist/components/ai/response/index.d.mts +2 -0
- package/dist/components/ai/response/index.mjs +2 -0
- package/dist/components/ai/response/response.d.mts +18 -0
- package/dist/components/ai/response/response.mjs +20 -0
- package/dist/components/ai/suggestion/index.d.mts +2 -0
- package/dist/components/ai/suggestion/index.mjs +2 -0
- package/dist/components/ai/suggestion/suggestion.d.mts +18 -0
- package/dist/components/ai/suggestion/suggestion.mjs +25 -0
- package/dist/components/ai/tool-invocation/index.d.mts +2 -0
- package/dist/components/ai/tool-invocation/index.mjs +2 -0
- package/dist/components/ai/tool-invocation/tool-invocation.d.mts +17 -0
- package/dist/components/ai/tool-invocation/tool-invocation.mjs +59 -0
- package/dist/components/ai/types.d.mts +5 -0
- package/dist/components/ai/types.mjs +1 -0
- package/dist/components/data-display/avatar/avatar.d.mts +3 -1
- package/dist/components/data-display/avatar/avatar.mjs +7 -3
- package/dist/components/form/checkbox-group/index.d.mts +3 -3
- package/dist/components/icons/color-scale.d.mts +7 -0
- package/dist/components/icons/color-scale.mjs +43 -0
- package/dist/components/icons/index.d.mts +3 -2
- package/dist/components/icons/index.mjs +3 -2
- package/dist/components/icons/lucide-imports.d.mts +2 -1
- package/dist/components/icons/lucide-imports.mjs +2 -1
- package/dist/components/icons/lucide.d.mts +2 -1
- package/dist/components/icons/lucide.mjs +6 -2
- package/dist/components/index.d.mts +3 -2
- package/dist/components/index.mjs +3 -2
- package/dist/index.d.mts +3 -2
- package/dist/index.mjs +3 -2
- package/dist/integrations/_shared/openui-defs.mjs +1 -1
- package/dist/integrations/_shared/schemas.d.mts +17 -17
- package/dist/integrations/ai-sdk/index.d.mts +3 -0
- package/dist/integrations/ai-sdk/index.mjs +2 -0
- package/dist/integrations/ai-sdk/map-parts.d.mts +28 -0
- package/dist/integrations/ai-sdk/map-parts.mjs +31 -0
- package/dist/integrations/json-render/catalog.d.mts +16 -16
- package/dist/integrations/json-render/registry.mjs +1 -1
- package/dist/integrations/openui/library.mjs +1 -1
- package/package.json +29 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { getToolOrDynamicToolName, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart } from "ai";
|
|
2
|
+
//#region src/integrations/ai-sdk/map-parts.ts
|
|
3
|
+
/**
|
|
4
|
+
* AI SDK の `UIMessage.parts` を ArteOdyssey の AI チャットコンポーネントに
|
|
5
|
+
* 対応付けやすい素朴な配列へ変換する。React には依存せず、利用側が
|
|
6
|
+
* `mapMessageParts(message).map(...)` で `Response` / `Reasoning` /
|
|
7
|
+
* `ToolInvocation` を自分で描画する。
|
|
8
|
+
*/
|
|
9
|
+
const mapMessageParts = (message) => {
|
|
10
|
+
const result = [];
|
|
11
|
+
for (const part of message.parts) if (isTextUIPart(part)) result.push({
|
|
12
|
+
kind: "text",
|
|
13
|
+
text: part.text
|
|
14
|
+
});
|
|
15
|
+
else if (isReasoningUIPart(part)) result.push({
|
|
16
|
+
kind: "reasoning",
|
|
17
|
+
text: part.text
|
|
18
|
+
});
|
|
19
|
+
else if (isToolOrDynamicToolUIPart(part)) result.push({
|
|
20
|
+
kind: "tool",
|
|
21
|
+
name: getToolOrDynamicToolName(part),
|
|
22
|
+
toolCallId: part.toolCallId,
|
|
23
|
+
state: part.state,
|
|
24
|
+
input: part.input,
|
|
25
|
+
output: part.state === "output-available" ? part.output : void 0,
|
|
26
|
+
errorText: part.state === "output-error" ? part.errorText : void 0
|
|
27
|
+
});
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { mapMessageParts };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Spec, UIElement } from "@json-render/core";
|
|
2
1
|
import { z } from "zod";
|
|
2
|
+
import { Spec, UIElement } from "@json-render/core";
|
|
3
3
|
|
|
4
4
|
//#region src/integrations/json-render/catalog.d.ts
|
|
5
5
|
/**
|
|
@@ -134,9 +134,9 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
134
134
|
text: z.ZodString;
|
|
135
135
|
tone: z.ZodOptional<z.ZodEnum<{
|
|
136
136
|
success: "success";
|
|
137
|
+
error: "error";
|
|
137
138
|
info: "info";
|
|
138
139
|
warning: "warning";
|
|
139
|
-
error: "error";
|
|
140
140
|
neutral: "neutral";
|
|
141
141
|
}>>;
|
|
142
142
|
variant: z.ZodOptional<z.ZodEnum<{
|
|
@@ -170,9 +170,9 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
170
170
|
props: z.ZodObject<{
|
|
171
171
|
tone: z.ZodEnum<{
|
|
172
172
|
success: "success";
|
|
173
|
+
error: "error";
|
|
173
174
|
info: "info";
|
|
174
175
|
warning: "warning";
|
|
175
|
-
error: "error";
|
|
176
176
|
}>;
|
|
177
177
|
message: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
178
178
|
}, z.core.$strip>;
|
|
@@ -288,8 +288,8 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
288
288
|
columns: z.ZodArray<z.ZodObject<{
|
|
289
289
|
label: z.ZodString;
|
|
290
290
|
align: z.ZodOptional<z.ZodEnum<{
|
|
291
|
-
left: "left";
|
|
292
291
|
right: "right";
|
|
292
|
+
left: "left";
|
|
293
293
|
center: "center";
|
|
294
294
|
}>>;
|
|
295
295
|
}, z.core.$strip>>;
|
|
@@ -352,10 +352,10 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
352
352
|
Icon: {
|
|
353
353
|
props: z.ZodObject<{
|
|
354
354
|
name: z.ZodEnum<{
|
|
355
|
-
form: "form";
|
|
356
|
-
list: "list";
|
|
357
355
|
link: "link";
|
|
358
356
|
check: "check";
|
|
357
|
+
form: "form";
|
|
358
|
+
list: "list";
|
|
359
359
|
plus: "plus";
|
|
360
360
|
minus: "minus";
|
|
361
361
|
close: "close";
|
|
@@ -416,10 +416,10 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
416
416
|
ChevronIcon: {
|
|
417
417
|
props: z.ZodObject<{
|
|
418
418
|
direction: z.ZodEnum<{
|
|
419
|
-
left: "left";
|
|
420
|
-
right: "right";
|
|
421
419
|
up: "up";
|
|
422
420
|
down: "down";
|
|
421
|
+
right: "right";
|
|
422
|
+
left: "left";
|
|
423
423
|
}>;
|
|
424
424
|
size: z.ZodOptional<z.ZodEnum<{
|
|
425
425
|
sm: "sm";
|
|
@@ -433,9 +433,9 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
433
433
|
props: z.ZodObject<{
|
|
434
434
|
status: z.ZodEnum<{
|
|
435
435
|
success: "success";
|
|
436
|
+
error: "error";
|
|
436
437
|
info: "info";
|
|
437
438
|
warning: "warning";
|
|
438
|
-
error: "error";
|
|
439
439
|
}>;
|
|
440
440
|
size: z.ZodOptional<z.ZodEnum<{
|
|
441
441
|
sm: "sm";
|
|
@@ -448,10 +448,10 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
448
448
|
IconButton: {
|
|
449
449
|
props: z.ZodObject<{
|
|
450
450
|
icon: z.ZodEnum<{
|
|
451
|
-
form: "form";
|
|
452
|
-
list: "list";
|
|
453
451
|
link: "link";
|
|
454
452
|
check: "check";
|
|
453
|
+
form: "form";
|
|
454
|
+
list: "list";
|
|
455
455
|
plus: "plus";
|
|
456
456
|
minus: "minus";
|
|
457
457
|
close: "close";
|
|
@@ -508,9 +508,9 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
508
508
|
lg: "lg";
|
|
509
509
|
}>>;
|
|
510
510
|
color: z.ZodOptional<z.ZodEnum<{
|
|
511
|
-
transparent: "transparent";
|
|
512
511
|
primary: "primary";
|
|
513
512
|
secondary: "secondary";
|
|
513
|
+
transparent: "transparent";
|
|
514
514
|
base: "base";
|
|
515
515
|
}>>;
|
|
516
516
|
}, z.core.$strip>;
|
|
@@ -628,10 +628,10 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
628
628
|
triggerLabel: z.ZodString;
|
|
629
629
|
title: z.ZodString;
|
|
630
630
|
type: z.ZodOptional<z.ZodEnum<{
|
|
631
|
-
bottom: "bottom";
|
|
632
|
-
left: "left";
|
|
633
631
|
right: "right";
|
|
632
|
+
left: "left";
|
|
634
633
|
center: "center";
|
|
634
|
+
bottom: "bottom";
|
|
635
635
|
}>>;
|
|
636
636
|
}, z.core.$strip>;
|
|
637
637
|
slots: string[];
|
|
@@ -650,8 +650,8 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
650
650
|
triggerLabel: z.ZodString;
|
|
651
651
|
title: z.ZodString;
|
|
652
652
|
side: z.ZodOptional<z.ZodEnum<{
|
|
653
|
-
left: "left";
|
|
654
653
|
right: "right";
|
|
654
|
+
left: "left";
|
|
655
655
|
}>>;
|
|
656
656
|
}, z.core.$strip>;
|
|
657
657
|
slots: string[];
|
|
@@ -685,9 +685,9 @@ declare const catalog: import("@json-render/core").Catalog<{
|
|
|
685
685
|
triggerLabel: z.ZodString;
|
|
686
686
|
tone: z.ZodEnum<{
|
|
687
687
|
success: "success";
|
|
688
|
+
error: "error";
|
|
688
689
|
info: "info";
|
|
689
690
|
warning: "warning";
|
|
690
|
-
error: "error";
|
|
691
691
|
}>;
|
|
692
692
|
message: z.ZodString;
|
|
693
693
|
}, z.core.$strip>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { catalog } from "./catalog.mjs";
|
|
3
2
|
import { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAutocomplete, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderCheckbox, renderCheckboxCard, renderCheckboxGroup, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderListBox, renderNumberField, renderPagination, renderPasswordInput, renderPopover, renderProgress, renderRadio, renderRadioCard, renderScrollLinked, renderSelect, renderSeparator, renderSkeleton, renderSlider, renderSpinner, renderStack, renderStatusIcon, renderSwitch, renderTable, renderTabs, renderTextField, renderTextarea, renderTooltip } from "../_shared/renderers.mjs";
|
|
3
|
+
import { catalog } from "./catalog.mjs";
|
|
4
4
|
import { useState } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
import { JSONUIProvider, Renderer, defineRegistry, useBoundProp } from "@json-render/react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderPopover, renderProgress, renderScrollLinked, renderSeparator, renderSkeleton, renderSpinner, renderStack, renderStatusIcon, renderTable, renderTabs, renderTooltip } from "../_shared/renderers.mjs";
|
|
3
2
|
import { buildArteOdysseyLibrary } from "../_shared/openui-defs.mjs";
|
|
3
|
+
import { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderPopover, renderProgress, renderScrollLinked, renderSeparator, renderSkeleton, renderSpinner, renderStack, renderStatusIcon, renderTable, renderTabs, renderTooltip } from "../_shared/renderers.mjs";
|
|
4
4
|
import { AutocompleteView, CheckboxCardView, CheckboxGroupView, CheckboxView, ListBoxView, NumberFieldView, PaginationView, PasswordInputView, RadioCardView, RadioView, SelectView, SliderView, SwitchView, TextFieldView, TextareaView } from "./form-views.mjs";
|
|
5
5
|
import { Fragment } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@k8o/arte-odyssey",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.8.0",
|
|
4
4
|
"description": "k8o's React UI library with built-in generative UI adapters (json-render & OpenUI) for LLM-driven, on-brand interfaces",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -69,6 +69,24 @@
|
|
|
69
69
|
"default": "./dist/integrations/openui/prompt.mjs"
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
|
+
"./ai": {
|
|
73
|
+
"import": {
|
|
74
|
+
"types": "./dist/components/ai/index.d.mts",
|
|
75
|
+
"default": "./dist/components/ai/index.mjs"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"./ai/response": {
|
|
79
|
+
"import": {
|
|
80
|
+
"types": "./dist/components/ai/response/index.d.mts",
|
|
81
|
+
"default": "./dist/components/ai/response/index.mjs"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"./ai-sdk": {
|
|
85
|
+
"import": {
|
|
86
|
+
"types": "./dist/integrations/ai-sdk/index.d.mts",
|
|
87
|
+
"default": "./dist/integrations/ai-sdk/index.mjs"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
72
90
|
"./styles.css": "./dist/styles/index.css"
|
|
73
91
|
},
|
|
74
92
|
"publishConfig": {
|
|
@@ -100,6 +118,7 @@
|
|
|
100
118
|
"@vitest/browser-playwright": "4.1.7",
|
|
101
119
|
"@vitest/coverage-v8": "4.1.7",
|
|
102
120
|
"@vitest/ui": "4.1.7",
|
|
121
|
+
"ai": "5.0.206",
|
|
103
122
|
"postcss": "8.5.15",
|
|
104
123
|
"react": "19.2.6",
|
|
105
124
|
"react-dom": "19.2.6",
|
|
@@ -107,6 +126,7 @@
|
|
|
107
126
|
"storybook-addon-determinism": "0.1.1",
|
|
108
127
|
"storybook-addon-mock-date": "3.0.2",
|
|
109
128
|
"storybook-addon-vrt": "0.1.0",
|
|
129
|
+
"streamdown": "2.5.0",
|
|
110
130
|
"tailwind-token-extractor": "0.2.0",
|
|
111
131
|
"tailwindcss": "4.3.0",
|
|
112
132
|
"vite": "8.0.16",
|
|
@@ -122,8 +142,10 @@
|
|
|
122
142
|
"@openuidev/react-lang": ">=0.2.6",
|
|
123
143
|
"@types/react": ">=19.0.0",
|
|
124
144
|
"@types/react-dom": ">=19.0.0",
|
|
145
|
+
"ai": ">=5.0.0",
|
|
125
146
|
"react": ">=19.0.0",
|
|
126
147
|
"react-dom": ">=19.0.0",
|
|
148
|
+
"streamdown": ">=2.0.0",
|
|
127
149
|
"tailwindcss": ">=4.0.0",
|
|
128
150
|
"typescript": ">=6.0.0",
|
|
129
151
|
"zod": ">=4.4.0"
|
|
@@ -141,6 +163,12 @@
|
|
|
141
163
|
"@openuidev/react-lang": {
|
|
142
164
|
"optional": true
|
|
143
165
|
},
|
|
166
|
+
"ai": {
|
|
167
|
+
"optional": true
|
|
168
|
+
},
|
|
169
|
+
"streamdown": {
|
|
170
|
+
"optional": true
|
|
171
|
+
},
|
|
144
172
|
"zod": {
|
|
145
173
|
"optional": true
|
|
146
174
|
}
|