@ai37/copilotkit-chat-helpers 0.1.0 → 0.2.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/README.md +6 -1
- package/dist/createCollapsibleA2uiRenderer.d.ts +7 -1
- package/dist/createCollapsibleA2uiRenderer.d.ts.map +1 -1
- package/dist/createCollapsibleA2uiRenderer.js +25 -2
- package/dist/createCollapsibleA2uiRenderer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,7 +56,12 @@ export function Providers({ children }) {
|
|
|
56
56
|
- `createCollapsibleA2uiRenderer(base, options?)` — оборачивает renderer из
|
|
57
57
|
`createA2UIMessageRenderer`: переопределяет только `render` (обёртка в
|
|
58
58
|
`CollapsibleForm` по `message.id`), `activityType`/`content` наследуются.
|
|
59
|
-
|
|
59
|
+
Заголовок аккордеона берётся из данных агента: title первого компонента в
|
|
60
|
+
операциях A2UI (у FormCard/ChoiceCard обязателен по схеме каталога). Пока
|
|
61
|
+
операций нет (стрим) или title отсутствует — фолбэк `options.title`
|
|
62
|
+
(по умолчанию `"Форма"`).
|
|
63
|
+
- `extractA2uiTitle(operations)` — сам извлекатель заголовка из операций A2UI
|
|
64
|
+
v0.9 (`content.a2ui_operations`); `undefined`, если titled-компонента нет.
|
|
60
65
|
- `FormAccordionProvider` / `useFormAccordion` — стейт аккордеона
|
|
61
66
|
(`openId`/`register`/`toggle`): новая форма открывается, прежние сворачиваются;
|
|
62
67
|
ручной toggle переживает перерендер.
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import type { ComponentType } from "react";
|
|
2
2
|
type Options = {
|
|
3
|
-
/**
|
|
3
|
+
/** Фолбэк-заголовок, когда в операциях нет компонента с title. По умолчанию — "Форма". */
|
|
4
4
|
title?: string;
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Заголовок из операций A2UI v0.9: title первого компонента updateComponents,
|
|
8
|
+
* у которого он непустая строка (пропы лежат плоско рядом с `component`).
|
|
9
|
+
* Незнакомая форма данных → undefined (фолбэк у вызывающего), не бросаем.
|
|
10
|
+
*/
|
|
11
|
+
export declare function extractA2uiTitle(operations: unknown[] | undefined): string | undefined;
|
|
6
12
|
export declare function createCollapsibleA2uiRenderer<T extends {
|
|
7
13
|
render: ComponentType<any>;
|
|
8
14
|
}>(base: T, options?: Options): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCollapsibleA2uiRenderer.d.ts","sourceRoot":"","sources":["../src/createCollapsibleA2uiRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"createCollapsibleA2uiRenderer.d.ts","sourceRoot":"","sources":["../src/createCollapsibleA2uiRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AA2B1C,KAAK,OAAO,GAAG;IACb,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAYtF;AAED,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS;IAAE,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,EACxC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAiB/B"}
|
|
@@ -2,13 +2,36 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { CollapsibleForm } from "./CollapsibleForm";
|
|
4
4
|
const A2UI_TITLE = "Форма";
|
|
5
|
+
/**
|
|
6
|
+
* Заголовок из операций A2UI v0.9: title первого компонента updateComponents,
|
|
7
|
+
* у которого он непустая строка (пропы лежат плоско рядом с `component`).
|
|
8
|
+
* Незнакомая форма данных → undefined (фолбэк у вызывающего), не бросаем.
|
|
9
|
+
*/
|
|
10
|
+
export function extractA2uiTitle(operations) {
|
|
11
|
+
if (!Array.isArray(operations))
|
|
12
|
+
return undefined;
|
|
13
|
+
for (const op of operations) {
|
|
14
|
+
const components = op
|
|
15
|
+
?.updateComponents?.components;
|
|
16
|
+
if (!Array.isArray(components))
|
|
17
|
+
continue;
|
|
18
|
+
for (const component of components) {
|
|
19
|
+
const title = component?.title;
|
|
20
|
+
if (typeof title === "string" && title.trim() !== "")
|
|
21
|
+
return title;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
5
26
|
export function createCollapsibleA2uiRenderer(base, options) {
|
|
6
|
-
const
|
|
27
|
+
const fallbackTitle = options?.title ?? A2UI_TITLE;
|
|
7
28
|
// Сужение до минимального контракта: точный тип пропов знает только консюмер.
|
|
8
29
|
const Base = base.render;
|
|
9
30
|
return {
|
|
10
31
|
...base,
|
|
11
|
-
|
|
32
|
+
// Заголовок считаем на каждый рендер: content меняется по мере стрима —
|
|
33
|
+
// сначала операций нет (фолбэк), потом приходит title от агента.
|
|
34
|
+
render: (props) => (_jsx(CollapsibleForm, { id: props.message.id, title: extractA2uiTitle(props.content?.a2ui_operations) ?? fallbackTitle, children: _jsx(Base, { ...props }) })),
|
|
12
35
|
};
|
|
13
36
|
}
|
|
14
37
|
//# sourceMappingURL=createCollapsibleA2uiRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCollapsibleA2uiRenderer.js","sourceRoot":"","sources":["../src/createCollapsibleA2uiRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"createCollapsibleA2uiRenderer.js","sourceRoot":"","sources":["../src/createCollapsibleA2uiRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA+BnD,MAAM,UAAU,GAAG,OAAO,CAAA;AAE1B;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAiC;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IAChD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAI,EAA+D;YACjF,EAAE,gBAAgB,EAAE,UAAU,CAAA;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,SAAQ;QACxC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,KAAK,GAAI,SAAwC,EAAE,KAAK,CAAA;YAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAA;QACpE,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAE3C,IAAO,EAAE,OAAiB;IAC1B,MAAM,aAAa,GAAG,OAAO,EAAE,KAAK,IAAI,UAAU,CAAA;IAClD,8EAA8E;IAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,MAA2C,CAAA;IAC7D,OAAO;QACL,GAAG,IAAI;QACP,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,EAAE,CAAC,KAAyB,EAAE,EAAE,CAAC,CACrC,KAAC,eAAe,IACd,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EACpB,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,aAAa,YAExE,KAAC,IAAI,OAAK,KAAK,GAAI,GACH,CACnB;KACG,CAAA;AACR,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { FormAccordionProvider, useFormAccordion } from "./FormAccordionContext";
|
|
2
2
|
export { CollapsibleForm } from "./CollapsibleForm";
|
|
3
|
-
export { createCollapsibleA2uiRenderer } from "./createCollapsibleA2uiRenderer";
|
|
3
|
+
export { createCollapsibleA2uiRenderer, extractA2uiTitle, } from "./createCollapsibleA2uiRenderer";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,GACjB,MAAM,iCAAiC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { FormAccordionProvider, useFormAccordion } from "./FormAccordionContext";
|
|
2
2
|
export { CollapsibleForm } from "./CollapsibleForm";
|
|
3
|
-
export { createCollapsibleA2uiRenderer } from "./createCollapsibleA2uiRenderer";
|
|
3
|
+
export { createCollapsibleA2uiRenderer, extractA2uiTitle, } from "./createCollapsibleA2uiRenderer";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,GACjB,MAAM,iCAAiC,CAAA"}
|
package/package.json
CHANGED