@assistant-ui/core 0.2.2 → 0.2.3
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/model-context/tool.d.ts +25 -0
- package/dist/model-context/tool.d.ts.map +1 -1
- package/dist/model-context/tool.js +25 -0
- package/dist/model-context/tool.js.map +1 -1
- package/dist/react/AssistantRuntimeProvider.d.ts +33 -0
- package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/react/AssistantRuntimeProvider.js +22 -0
- package/dist/react/AssistantRuntimeProvider.js.map +1 -1
- package/dist/react/client/DataRenderers.d.ts +7 -0
- package/dist/react/client/DataRenderers.d.ts.map +1 -1
- package/dist/react/client/DataRenderers.js +7 -0
- package/dist/react/client/DataRenderers.js.map +1 -1
- package/dist/react/client/Tools.d.ts +12 -0
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/Tools.js +8 -0
- package/dist/react/client/Tools.js.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/model-context/makeAssistantDataUI.d.ts +13 -0
- package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantDataUI.js +6 -0
- package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts +15 -0
- package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantTool.js +8 -0
- package/dist/react/model-context/makeAssistantTool.js.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.d.ts +15 -0
- package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.js +8 -0
- package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
- package/dist/react/model-context/toolbox.d.ts +29 -0
- package/dist/react/model-context/toolbox.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.d.ts +9 -0
- package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.js +6 -0
- package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
- package/dist/react/model-context/useAssistantTool.d.ts +34 -0
- package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantTool.js +30 -0
- package/dist/react/model-context/useAssistantTool.js.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.d.ts +12 -0
- package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.js +9 -0
- package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.d.ts +29 -0
- package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.js +24 -0
- package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.js +4 -3
- package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +6 -0
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -0
- package/dist/react/primitives/messagePart/MessagePartInProgress.js +7 -0
- package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -0
- package/dist/react/runtimes/useToolInvocations.d.ts +9 -0
- package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -1
- package/dist/react/runtimes/useToolInvocations.js +318 -264
- package/dist/react/runtimes/useToolInvocations.js.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +11 -0
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +1 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js +11 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/store/clients/model-context-client.d.ts.map +1 -1
- package/dist/store/clients/model-context-client.js +24 -4
- package/dist/store/clients/model-context-client.js.map +1 -1
- package/dist/store/scopes/model-context.d.ts +4 -1
- package/dist/store/scopes/model-context.d.ts.map +1 -1
- package/dist/types/message.d.ts +22 -0
- package/dist/types/message.d.ts.map +1 -1
- package/package.json +10 -9
- package/src/model-context/tool.ts +25 -0
- package/src/react/AssistantRuntimeProvider.tsx +33 -0
- package/src/react/client/DataRenderers.ts +7 -0
- package/src/react/client/Tools.ts +10 -0
- package/src/react/index.ts +1 -0
- package/src/react/model-context/makeAssistantDataUI.ts +13 -0
- package/src/react/model-context/makeAssistantTool.ts +15 -0
- package/src/react/model-context/makeAssistantToolUI.ts +15 -0
- package/src/react/model-context/toolbox.ts +32 -1
- package/src/react/model-context/useAssistantDataUI.ts +9 -0
- package/src/react/model-context/useAssistantTool.ts +34 -0
- package/src/react/model-context/useAssistantToolUI.ts +12 -0
- package/src/react/model-context/useToolArgsStatus.ts +29 -0
- package/src/react/primitive-hooks/useActionBarCopy.ts +9 -5
- package/src/react/primitives/messagePart/MessagePartInProgress.ts +15 -0
- package/src/react/runtimes/useToolInvocations.ts +410 -341
- package/src/react/types/MessagePartComponentTypes.ts +11 -0
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +11 -0
- package/src/store/clients/model-context-client.test.ts +108 -0
- package/src/store/clients/model-context-client.ts +36 -6
- package/src/store/scopes/model-context.ts +4 -1
- package/src/tests/external-store-thread-runtime-core.test.ts +113 -0
- package/src/types/message.ts +22 -0
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { useAui } from "@assistant-ui/store";
|
|
3
|
+
/**
|
|
4
|
+
* Registers a tool with the assistant model context while the component is
|
|
5
|
+
* mounted.
|
|
6
|
+
*
|
|
7
|
+
* If `render` is provided, it is also installed as the renderer for matching
|
|
8
|
+
* tool-call message parts. The registration is removed automatically when the
|
|
9
|
+
* component unmounts or the tool definition changes.
|
|
10
|
+
*
|
|
11
|
+
* Pass a referentially stable tool object, such as one declared at module
|
|
12
|
+
* scope or memoized with `useMemo`, to avoid re-registering on every render.
|
|
13
|
+
*
|
|
14
|
+
* @param tool - Tool definition and name to register.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const weatherTool = {
|
|
19
|
+
* toolName: "get_weather",
|
|
20
|
+
* type: "frontend",
|
|
21
|
+
* description: "Get the weather for a city.",
|
|
22
|
+
* parameters: weatherSchema,
|
|
23
|
+
* execute: async ({ city }: { city: string }) => fetchWeather(city),
|
|
24
|
+
* render: WeatherToolUI,
|
|
25
|
+
* } satisfies AssistantToolProps<{ city: string }, Weather>;
|
|
26
|
+
*
|
|
27
|
+
* function WeatherToolRegistration() {
|
|
28
|
+
* useAssistantTool(weatherTool);
|
|
29
|
+
* return null;
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
3
33
|
export const useAssistantTool = (tool) => {
|
|
4
34
|
const aui = useAui();
|
|
5
35
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssistantTool.js","sourceRoot":"","sources":["../../../src/react/model-context/useAssistantTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useAssistantTool.js","sourceRoot":"","sources":["../../../src/react/model-context/useAssistantTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAe7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAI9B,IAAwC,EACxC,EAAE;IACF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACnC,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC3C,MAAM,OAAO,GAAG;YACd,KAAK,EAAE;gBACL,CAAC,QAAQ,CAAC,EAAE,IAAI;aACjB;SACF,CAAC;QACF,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;YACjC,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO;SAC/B,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import type { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes.js";
|
|
2
|
+
/** Props used to register a renderer for tool-call message parts. */
|
|
2
3
|
export type AssistantToolUIProps<TArgs, TResult> = {
|
|
4
|
+
/** Name of the tool whose calls should use this renderer. */
|
|
3
5
|
toolName: string;
|
|
6
|
+
/** Component rendered for matching tool-call message parts. */
|
|
4
7
|
render: ToolCallMessagePartComponent<TArgs, TResult>;
|
|
5
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Registers a tool-call renderer while the component is mounted.
|
|
11
|
+
*
|
|
12
|
+
* This only affects rendering. Pair it with {@link useAssistantTool},
|
|
13
|
+
* {@link Tools}, or a backend tool registry to expose the actual tool
|
|
14
|
+
* definition to the model.
|
|
15
|
+
*
|
|
16
|
+
* @param tool - Tool renderer registration, or `null` to skip registration.
|
|
17
|
+
*/
|
|
6
18
|
export declare const useAssistantToolUI: (tool: AssistantToolUIProps<any, any> | null) => void;
|
|
7
19
|
//# sourceMappingURL=useAssistantToolUI.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssistantToolUI.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,8CAA2C;AAEvF,MAAM,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,IAAI;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,MAAM,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,SAO5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"useAssistantToolUI.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,8CAA2C;AAEvF,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,IAAI;IACjD,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,EAAE,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CACtD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,SAO5C,CAAC"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { useAui } from "@assistant-ui/store";
|
|
3
|
+
/**
|
|
4
|
+
* Registers a tool-call renderer while the component is mounted.
|
|
5
|
+
*
|
|
6
|
+
* This only affects rendering. Pair it with {@link useAssistantTool},
|
|
7
|
+
* {@link Tools}, or a backend tool registry to expose the actual tool
|
|
8
|
+
* definition to the model.
|
|
9
|
+
*
|
|
10
|
+
* @param tool - Tool renderer registration, or `null` to skip registration.
|
|
11
|
+
*/
|
|
3
12
|
export const useAssistantToolUI = (tool) => {
|
|
4
13
|
const aui = useAui();
|
|
5
14
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssistantToolUI.js","sourceRoot":"","sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useAssistantToolUI.js","sourceRoot":"","sources":["../../../src/react/model-context/useAssistantToolUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAW7C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAA2C,EAC3C,EAAE;IACF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO,SAAS,CAAC;QACvD,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC"}
|
|
@@ -1,8 +1,37 @@
|
|
|
1
1
|
type PropFieldStatus = "streaming" | "complete";
|
|
2
|
+
/**
|
|
3
|
+
* Streaming completion status for the arguments of the current tool call.
|
|
4
|
+
*/
|
|
2
5
|
export type ToolArgsStatus<TArgs extends Record<string, unknown> = Record<string, unknown>> = {
|
|
6
|
+
/** Overall lifecycle state of the tool-call part. */
|
|
3
7
|
status: "running" | "complete" | "incomplete" | "requires-action";
|
|
8
|
+
/** Per-argument status keyed by argument name. */
|
|
4
9
|
propStatus: Partial<Record<keyof TArgs, PropFieldStatus>>;
|
|
5
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Reads whether each argument field for the current tool-call message part is
|
|
13
|
+
* still streaming or complete.
|
|
14
|
+
*
|
|
15
|
+
* Use inside a tool-call renderer to avoid showing incomplete argument values
|
|
16
|
+
* as final.
|
|
17
|
+
*
|
|
18
|
+
* @throws If called outside a tool-call message part.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* function WeatherToolUI({
|
|
23
|
+
* args,
|
|
24
|
+
* }: ToolCallMessagePartProps<{ city: string }>) {
|
|
25
|
+
* const { propStatus } = useToolArgsStatus<{ city: string }>();
|
|
26
|
+
*
|
|
27
|
+
* return (
|
|
28
|
+
* <span>
|
|
29
|
+
* {propStatus.city === "streaming" ? "Reading city..." : args.city}
|
|
30
|
+
* </span>
|
|
31
|
+
* );
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
6
35
|
export declare const useToolArgsStatus: <TArgs extends Record<string, unknown> = Record<string, unknown>>() => ToolArgsStatus<TArgs>;
|
|
7
36
|
export {};
|
|
8
37
|
//# sourceMappingURL=useToolArgsStatus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolArgsStatus.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"names":[],"mappings":"AAOA,KAAK,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;AAEhD,MAAM,MAAM,cAAc,CACxB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7D;IACF,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAClE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;CAC3D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAC5D,cAAc,CAAC,KAAK,CAgCxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"useToolArgsStatus.d.ts","sourceRoot":"","sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"names":[],"mappings":"AAOA,KAAK,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7D;IACF,qDAAqD;IACrD,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAClE,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;CAC3D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAC5D,cAAc,CAAC,KAAK,CAgCxB,CAAC"}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { useAuiState } from "@assistant-ui/store";
|
|
3
3
|
import { getPartialJsonObjectFieldState, getPartialJsonObjectMeta, } from "assistant-stream/utils";
|
|
4
|
+
/**
|
|
5
|
+
* Reads whether each argument field for the current tool-call message part is
|
|
6
|
+
* still streaming or complete.
|
|
7
|
+
*
|
|
8
|
+
* Use inside a tool-call renderer to avoid showing incomplete argument values
|
|
9
|
+
* as final.
|
|
10
|
+
*
|
|
11
|
+
* @throws If called outside a tool-call message part.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* function WeatherToolUI({
|
|
16
|
+
* args,
|
|
17
|
+
* }: ToolCallMessagePartProps<{ city: string }>) {
|
|
18
|
+
* const { propStatus } = useToolArgsStatus<{ city: string }>();
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <span>
|
|
22
|
+
* {propStatus.city === "streaming" ? "Reading city..." : args.city}
|
|
23
|
+
* </span>
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
4
28
|
export const useToolArgsStatus = () => {
|
|
5
29
|
const part = useAuiState((s) => s.part);
|
|
6
30
|
return useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolArgsStatus.js","sourceRoot":"","sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useToolArgsStatus.js","sourceRoot":"","sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAgBhC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAEN,EAAE;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAExC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAEpC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;QAClD,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAA+B,CAAC,CAAC;QACvE,MAAM,UAAU,GAA6C,EAAE,CAAC;QAEhE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/D,UAAU,CAAC,GAAG,CAAC;oBACb,UAAU,KAAK,UAAU,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,UAA2D;SACxE,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarCopy.d.ts","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,uCAG9B,uBAA4B;;;;
|
|
1
|
+
{"version":3,"file":"useActionBarCopy.d.ts","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,uCAG9B,uBAA4B;;;;CA8B9B,CAAC"}
|
|
@@ -15,11 +15,12 @@ export const useActionBarCopy = ({ copiedDuration = 3000, copyToClipboard, } = {
|
|
|
15
15
|
if (!valueToCopy)
|
|
16
16
|
return;
|
|
17
17
|
const write = copyToClipboard ?? (() => { });
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
// The rejection handler swallows clipboard write failures (permission denied,
|
|
19
|
+
// API unavailable) so they don't surface as unhandled promise rejections.
|
|
20
|
+
Promise.resolve(write(valueToCopy)).then(() => {
|
|
20
21
|
aui.message().setIsCopied(true);
|
|
21
22
|
setTimeout(() => aui.message().setIsCopied(false), copiedDuration);
|
|
22
|
-
});
|
|
23
|
+
}, () => { });
|
|
23
24
|
}, [aui, isEditing, composerValue, copiedDuration, copyToClipboard]);
|
|
24
25
|
return { copy, disabled, isCopied };
|
|
25
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarCopy.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAO1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,cAAc,GAAG,IAAI,EACrB,eAAe,MACY,EAAE,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,OAAO,CAAC,CACN,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAC7B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC;YACvC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5E,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,KAAK,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,
|
|
1
|
+
{"version":3,"file":"useActionBarCopy.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAO1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,cAAc,GAAG,IAAI,EACrB,eAAe,MACY,EAAE,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,OAAO,CAAC,CACN,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAC7B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC;YACvC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5E,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,KAAK,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,8EAA8E;QAC9E,0EAA0E;QAC1E,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CACtC,GAAG,EAAE;YACH,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;QACrE,CAAC,EACD,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAErE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FC, PropsWithChildren } from "react";
|
|
2
|
+
export declare namespace MessagePartPrimitiveInProgress {
|
|
3
|
+
type Props = PropsWithChildren;
|
|
4
|
+
}
|
|
5
|
+
export declare const MessagePartPrimitiveInProgress: FC<MessagePartPrimitiveInProgress.Props>;
|
|
6
|
+
//# sourceMappingURL=MessagePartInProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagePartInProgress.d.ts","sourceRoot":"","sources":["../../../../src/react/primitives/messagePart/MessagePartInProgress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,yBAAiB,8BAA8B,CAAC;IAC9C,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC;AAED,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAC7C,8BAA8B,CAAC,KAAK,CAIrC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useAuiState } from "@assistant-ui/store";
|
|
2
|
+
export const MessagePartPrimitiveInProgress = ({ children }) => {
|
|
3
|
+
const isInProgress = useAuiState((s) => s.part.status.type === "running");
|
|
4
|
+
return isInProgress ? children : null;
|
|
5
|
+
};
|
|
6
|
+
MessagePartPrimitiveInProgress.displayName = "MessagePartPrimitive.InProgress";
|
|
7
|
+
//# sourceMappingURL=MessagePartInProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagePartInProgress.js","sourceRoot":"","sources":["../../../../src/react/primitives/messagePart/MessagePartInProgress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,CAAC,MAAM,8BAA8B,GAEvC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnB,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC1E,OAAO,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC,CAAC;AAEF,8BAA8B,CAAC,WAAW,GAAG,iCAAiC,CAAC"}
|
|
@@ -21,10 +21,19 @@ type UseToolInvocationsParams = {
|
|
|
21
21
|
onResult: (command: AddToolResultCommand) => void;
|
|
22
22
|
setToolStatuses: (updater: Record<string, ToolExecutionStatus> | ((prev: Record<string, ToolExecutionStatus>) => Record<string, ToolExecutionStatus>)) => void;
|
|
23
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Streaming execution state for a frontend tool.
|
|
26
|
+
*
|
|
27
|
+
* Custom runtime integrations use this to mirror in-flight tool calls while
|
|
28
|
+
* `useToolInvocations` executes tools in the browser.
|
|
29
|
+
*/
|
|
24
30
|
export type ToolExecutionStatus = {
|
|
31
|
+
/** The tool's execute function is currently running. */
|
|
25
32
|
type: "executing";
|
|
26
33
|
} | {
|
|
34
|
+
/** The tool is waiting for a human input payload before continuing. */
|
|
27
35
|
type: "interrupt";
|
|
36
|
+
/** Human input request emitted by the tool execution context. */
|
|
28
37
|
payload: {
|
|
29
38
|
type: "human";
|
|
30
39
|
payload: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolInvocations.d.ts","sourceRoot":"","sources":["../../../src/react/runtimes/useToolInvocations.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,IAAI,EACT,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,+BAA4B;AAEzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACzD,CAAC;AA0BF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IACjD,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,CACf,OAAO,EACH,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GACnC,CAAC,CACC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,KACtC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,KAC1C,IAAI,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B;
|
|
1
|
+
{"version":3,"file":"useToolInvocations.d.ts","sourceRoot":"","sources":["../../../src/react/runtimes/useToolInvocations.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,IAAI,EACT,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,+BAA4B;AAEzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACzD,CAAC;AA0BF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IACjD,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,CACf,OAAO,EACH,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GACnC,CAAC,CACC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,KACtC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,KAC1C,IAAI,CAAC;CACX,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE,wDAAwD;IACxD,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,uEAAuE;IACvE,IAAI,EAAE,WAAW,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9C,CAAC;AAwCN,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,eAAe,GAChB,EAAE,wBAAwB;;iBA+fP,OAAO,CAAC,IAAI,CAAC;yBAkCR,MAAM,WAAW,OAAO;EAgBhD"}
|