@assistant-ui/core 0.1.3 → 0.1.5

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.
Files changed (111) hide show
  1. package/dist/react/AssistantRuntimeProvider.d.ts +10 -0
  2. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -0
  3. package/dist/react/AssistantRuntimeProvider.js +16 -0
  4. package/dist/react/AssistantRuntimeProvider.js.map +1 -0
  5. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +15 -0
  6. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -0
  7. package/dist/react/adapters/LocalStorageThreadListAdapter.js +154 -0
  8. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -0
  9. package/dist/react/adapters/TitleGenerationAdapter.d.ts +6 -0
  10. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -0
  11. package/dist/react/adapters/TitleGenerationAdapter.js +15 -0
  12. package/dist/react/adapters/TitleGenerationAdapter.js.map +1 -0
  13. package/dist/react/index.d.ts +3 -0
  14. package/dist/react/index.d.ts.map +1 -1
  15. package/dist/react/index.js +6 -0
  16. package/dist/react/index.js.map +1 -1
  17. package/dist/react/primitive-hooks/index.d.ts +15 -0
  18. package/dist/react/primitive-hooks/index.d.ts.map +1 -0
  19. package/dist/react/primitive-hooks/index.js +15 -0
  20. package/dist/react/primitive-hooks/index.js.map +1 -0
  21. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +10 -0
  22. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -0
  23. package/dist/react/primitive-hooks/useActionBarCopy.js +26 -0
  24. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -0
  25. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +5 -0
  26. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -0
  27. package/dist/react/primitive-hooks/useActionBarEdit.js +11 -0
  28. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -0
  29. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +9 -0
  30. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -0
  31. package/dist/react/primitive-hooks/useActionBarFeedback.js +19 -0
  32. package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -0
  33. package/dist/react/primitive-hooks/useActionBarReload.d.ts +5 -0
  34. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -0
  35. package/dist/react/primitive-hooks/useActionBarReload.js +13 -0
  36. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -0
  37. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +6 -0
  38. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -0
  39. package/dist/react/primitive-hooks/useComposerAddAttachment.js +11 -0
  40. package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -0
  41. package/dist/react/primitive-hooks/useComposerCancel.d.ts +5 -0
  42. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -0
  43. package/dist/react/primitive-hooks/useComposerCancel.js +11 -0
  44. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -0
  45. package/dist/react/primitive-hooks/useComposerSend.d.ts +5 -0
  46. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -0
  47. package/dist/react/primitive-hooks/useComposerSend.js +11 -0
  48. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -0
  49. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +4 -0
  50. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -0
  51. package/dist/react/primitive-hooks/useEditComposerCancel.js +10 -0
  52. package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -0
  53. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +5 -0
  54. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -0
  55. package/dist/react/primitive-hooks/useEditComposerSend.js +11 -0
  56. package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -0
  57. package/dist/react/primitive-hooks/useMessageBranching.d.ts +7 -0
  58. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -0
  59. package/dist/react/primitive-hooks/useMessageBranching.js +15 -0
  60. package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -0
  61. package/dist/react/primitive-hooks/useMessageReload.d.ts +5 -0
  62. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -0
  63. package/dist/react/primitive-hooks/useMessageReload.js +11 -0
  64. package/dist/react/primitive-hooks/useMessageReload.js.map +1 -0
  65. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +2 -0
  66. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -0
  67. package/dist/react/primitive-hooks/useThreadIsEmpty.js +5 -0
  68. package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -0
  69. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +2 -0
  70. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -0
  71. package/dist/react/primitive-hooks/useThreadIsRunning.js +5 -0
  72. package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -0
  73. package/dist/react/primitive-hooks/useThreadMessages.d.ts +3 -0
  74. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -0
  75. package/dist/react/primitive-hooks/useThreadMessages.js +5 -0
  76. package/dist/react/primitive-hooks/useThreadMessages.js.map +1 -0
  77. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  78. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +2 -1
  79. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  80. package/dist/react/runtimes/index.d.ts +1 -0
  81. package/dist/react/runtimes/index.d.ts.map +1 -1
  82. package/dist/react/runtimes/index.js +1 -0
  83. package/dist/react/runtimes/index.js.map +1 -1
  84. package/dist/react/runtimes/useLocalRuntime.d.ts +28 -0
  85. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -0
  86. package/dist/react/runtimes/useLocalRuntime.js +64 -0
  87. package/dist/react/runtimes/useLocalRuntime.js.map +1 -0
  88. package/package.json +2 -2
  89. package/src/react/AssistantRuntimeProvider.tsx +33 -0
  90. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +227 -0
  91. package/src/react/adapters/TitleGenerationAdapter.ts +20 -0
  92. package/src/react/index.ts +15 -0
  93. package/src/react/primitive-hooks/index.ts +20 -0
  94. package/src/react/primitive-hooks/useActionBarCopy.ts +38 -0
  95. package/src/react/primitive-hooks/useActionBarEdit.ts +13 -0
  96. package/src/react/primitive-hooks/useActionBarFeedback.ts +28 -0
  97. package/src/react/primitive-hooks/useActionBarReload.ts +18 -0
  98. package/src/react/primitive-hooks/useComposerAddAttachment.ts +17 -0
  99. package/src/react/primitive-hooks/useComposerCancel.ts +13 -0
  100. package/src/react/primitive-hooks/useComposerSend.ts +15 -0
  101. package/src/react/primitive-hooks/useEditComposerCancel.ts +12 -0
  102. package/src/react/primitive-hooks/useEditComposerSend.ts +13 -0
  103. package/src/react/primitive-hooks/useMessageBranching.ts +18 -0
  104. package/src/react/primitive-hooks/useMessageReload.ts +13 -0
  105. package/src/react/primitive-hooks/useThreadIsEmpty.ts +5 -0
  106. package/src/react/primitive-hooks/useThreadIsRunning.ts +5 -0
  107. package/src/react/primitive-hooks/useThreadMessages.ts +6 -0
  108. package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +3 -1
  109. package/src/react/runtimes/index.ts +6 -0
  110. package/src/react/runtimes/useLocalRuntime.ts +101 -0
  111. package/src/tests/no-unsafe-process-env.test.ts +58 -0
@@ -0,0 +1,11 @@
1
+ import { useCallback } from "react";
2
+ import { useAui, useAuiState } from "@assistant-ui/store";
3
+ export const useEditComposerSend = () => {
4
+ const aui = useAui();
5
+ const disabled = useAuiState((s) => s.composer.isEmpty);
6
+ const send = useCallback(() => {
7
+ aui.composer().send();
8
+ }, [aui]);
9
+ return { send, disabled };
10
+ };
11
+ //# sourceMappingURL=useEditComposerSend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditComposerSend.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useEditComposerSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const useMessageBranching: () => {
2
+ branchNumber: number;
3
+ branchCount: number;
4
+ goToPrev: () => void;
5
+ goToNext: () => void;
6
+ };
7
+ //# sourceMappingURL=useMessageBranching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageBranching.d.ts","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useMessageBranching.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;;;;;CAc/B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { useCallback } from "react";
2
+ import { useAui, useAuiState } from "@assistant-ui/store";
3
+ export const useMessageBranching = () => {
4
+ const aui = useAui();
5
+ const branchNumber = useAuiState((s) => s.message.branchNumber);
6
+ const branchCount = useAuiState((s) => s.message.branchCount);
7
+ const goToPrev = useCallback(() => {
8
+ aui.message().switchToBranch({ position: "previous" });
9
+ }, [aui]);
10
+ const goToNext = useCallback(() => {
11
+ aui.message().switchToBranch({ position: "next" });
12
+ }, [aui]);
13
+ return { branchNumber, branchCount, goToPrev, goToNext };
14
+ };
15
+ //# sourceMappingURL=useMessageBranching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageBranching.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useMessageBranching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,GAAG,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,GAAG,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC3D,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const useMessageReload: () => {
2
+ reload: () => void;
3
+ canReload: boolean;
4
+ };
5
+ //# sourceMappingURL=useMessageReload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageReload.d.ts","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useMessageReload.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;;;CAS5B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { useCallback } from "react";
2
+ import { useAui, useAuiState } from "@assistant-ui/store";
3
+ export const useMessageReload = () => {
4
+ const aui = useAui();
5
+ const canReload = useAuiState((s) => s.message.role === "assistant");
6
+ const reload = useCallback(() => {
7
+ aui.message().reload();
8
+ }, [aui]);
9
+ return { reload, canReload };
10
+ };
11
+ //# sourceMappingURL=useMessageReload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageReload.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useMessageReload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useThreadIsEmpty: () => boolean;
2
+ //# sourceMappingURL=useThreadIsEmpty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThreadIsEmpty.d.ts","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useThreadIsEmpty.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,QAAO,OAEnC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { useAuiState } from "@assistant-ui/store";
2
+ export const useThreadIsEmpty = () => {
3
+ return useAuiState((s) => s.thread.isEmpty);
4
+ };
5
+ //# sourceMappingURL=useThreadIsEmpty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThreadIsEmpty.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useThreadIsEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,EAAE;IAC5C,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useThreadIsRunning: () => boolean;
2
+ //# sourceMappingURL=useThreadIsRunning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThreadIsRunning.d.ts","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useThreadIsRunning.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,QAAO,OAErC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { useAuiState } from "@assistant-ui/store";
2
+ export const useThreadIsRunning = () => {
3
+ return useAuiState((s) => s.thread.isRunning);
4
+ };
5
+ //# sourceMappingURL=useThreadIsRunning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThreadIsRunning.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useThreadIsRunning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAY,EAAE;IAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MessageState } from "../../store/scopes/message.js";
2
+ export declare const useThreadMessages: () => readonly MessageState[];
3
+ //# sourceMappingURL=useThreadMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThreadMessages.d.ts","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useThreadMessages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,sCAAmC;AAE/D,eAAO,MAAM,iBAAiB,QAAO,SAAS,YAAY,EAEzD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { useAuiState } from "@assistant-ui/store";
2
+ export const useThreadMessages = () => {
3
+ return useAuiState((s) => s.thread.messages);
4
+ };
5
+ //# sourceMappingURL=useThreadMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThreadMessages.js","sourceRoot":"","sources":["../../../src/react/primitive-hooks/useThreadMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAA4B,EAAE;IAC7D,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCloudThreadListAdapter.d.ts","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,sDAAmD;AAM1F,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAEnC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC;AAOF,eAAO,MAAM,yBAAyB,GACpC,SAAS,6BAA6B,KACrC,uBAoHF,CAAC"}
1
+ {"version":3,"file":"useCloudThreadListAdapter.d.ts","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,sDAAmD;AAM1F,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAEnC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC;AASF,eAAO,MAAM,yBAAyB,GACpC,SAAS,6BAA6B,KACrC,uBAoHF,CAAC"}
@@ -5,7 +5,8 @@ import { InMemoryThreadListAdapter } from "../../../runtimes/remote-thread-list/
5
5
  import { useAssistantCloudThreadHistoryAdapter } from "./AssistantCloudThreadHistoryAdapter.js";
6
6
  import { RuntimeAdapterProvider } from "../RuntimeAdapterProvider.js";
7
7
  import { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter.js";
8
- const baseUrl = process?.env?.["NEXT_PUBLIC_ASSISTANT_BASE_URL"];
8
+ const baseUrl = typeof process !== "undefined" &&
9
+ process?.env?.["NEXT_PUBLIC_ASSISTANT_BASE_URL"];
9
10
  const autoCloud = baseUrl
10
11
  ? new AssistantCloud({ baseUrl, anonymous: true })
11
12
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useCloudThreadListAdapter.js","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCloudThreadListAdapter.js","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export { RemoteThreadListHookInstanceManager } from "./RemoteThreadListHookInsta
7
7
  export { RemoteThreadListThreadListRuntimeCore } from "./RemoteThreadListThreadListRuntimeCore.js";
8
8
  export { useRemoteThreadListRuntime } from "./useRemoteThreadListRuntime.js";
9
9
  export { useCloudThreadListAdapter, useAssistantCloudThreadHistoryAdapter, CloudFileAttachmentAdapter, } from "./cloud/index.js";
10
+ export { useLocalRuntime, splitLocalRuntimeOptions, type LocalRuntimeOptions, } from "./useLocalRuntime.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/runtimes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,eAAe,GACrB,oCAAiC;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,gCAA6B;AAE9B,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAEpE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,wCAAqC;AACtC,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAElE,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,qCAAqC,EAAE,mDAAgD;AAChG,OAAO,EAAE,0BAA0B,EAAE,wCAAqC;AAE1E,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,0BAA0B,GAC3B,yBAAgB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/runtimes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,eAAe,GACrB,oCAAiC;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,gCAA6B;AAE9B,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAEpE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,wCAAqC;AACtC,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAElE,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,qCAAqC,EAAE,mDAAgD;AAChG,OAAO,EAAE,0BAA0B,EAAE,wCAAqC;AAE1E,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,0BAA0B,GAC3B,yBAAgB;AAEjB,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,6BAA0B"}
@@ -7,4 +7,5 @@ export { RemoteThreadListHookInstanceManager } from "./RemoteThreadListHookInsta
7
7
  export { RemoteThreadListThreadListRuntimeCore } from "./RemoteThreadListThreadListRuntimeCore.js";
8
8
  export { useRemoteThreadListRuntime } from "./useRemoteThreadListRuntime.js";
9
9
  export { useCloudThreadListAdapter, useAssistantCloudThreadHistoryAdapter, CloudFileAttachmentAdapter, } from "./cloud/index.js";
10
+ export { useLocalRuntime, splitLocalRuntimeOptions, } from "./useLocalRuntime.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/runtimes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GAEnB,oCAAiC;AAElC,OAAO,EACL,kBAAkB,GAInB,gCAA6B;AAE9B,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAEpE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,wCAAqC;AACtC,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAElE,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,qCAAqC,EAAE,mDAAgD;AAChG,OAAO,EAAE,0BAA0B,EAAE,wCAAqC;AAE1E,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,0BAA0B,GAC3B,yBAAgB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/runtimes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GAEnB,oCAAiC;AAElC,OAAO,EACL,kBAAkB,GAInB,gCAA6B;AAE9B,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAEpE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,wCAAqC;AACtC,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAElE,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,qCAAqC,EAAE,mDAAgD;AAChG,OAAO,EAAE,0BAA0B,EAAE,wCAAqC;AAE1E,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,0BAA0B,GAC3B,yBAAgB;AAEjB,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,6BAA0B"}
@@ -0,0 +1,28 @@
1
+ import type { AssistantRuntime, ChatModelAdapter, ThreadMessageLike } from "../../index.js";
2
+ import type { LocalRuntimeOptionsBase } from "../../runtimes/local/local-runtime-options.js";
3
+ import type { AssistantCloud } from "assistant-cloud";
4
+ export type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, "adapters"> & {
5
+ cloud?: AssistantCloud | undefined;
6
+ initialMessages?: readonly ThreadMessageLike[] | undefined;
7
+ adapters?: Omit<LocalRuntimeOptionsBase["adapters"], "chatModel"> | undefined;
8
+ };
9
+ export declare const splitLocalRuntimeOptions: <T extends LocalRuntimeOptions>(options: T) => {
10
+ localRuntimeOptions: {
11
+ cloud: AssistantCloud | undefined;
12
+ initialMessages: readonly ThreadMessageLike[] | undefined;
13
+ maxSteps: number | undefined;
14
+ adapters: Omit<{
15
+ chatModel: ChatModelAdapter;
16
+ history?: import("../../adapters").ThreadHistoryAdapter | undefined;
17
+ attachments?: import("../../adapters").AttachmentAdapter | undefined;
18
+ speech?: import("../../adapters").SpeechSynthesisAdapter | undefined;
19
+ dictation?: import("../../adapters").DictationAdapter | undefined;
20
+ feedback?: import("../../adapters").FeedbackAdapter | undefined;
21
+ suggestion?: import("../../adapters").SuggestionAdapter | undefined;
22
+ }, "chatModel"> | undefined;
23
+ unstable_humanToolNames: string[] | undefined;
24
+ };
25
+ otherOptions: Omit<T, "initialMessages" | "adapters" | "maxSteps" | "unstable_humanToolNames" | "cloud">;
26
+ };
27
+ export declare const useLocalRuntime: (chatModel: ChatModelAdapter, { cloud, ...options }?: LocalRuntimeOptions) => AssistantRuntime;
28
+ //# sourceMappingURL=useLocalRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalRuntime.d.ts","sourceRoot":"","sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAClB,uBAAoB;AACrB,OAAO,KAAK,EAAE,uBAAuB,EAAE,sDAAmD;AAM1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,GAAG;IAC5E,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;CAC/E,CAAC;AA8CF,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,mBAAmB,EACpE,SAAS,CAAC;;;;;;;;;;;;;;;;;CAqBX,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,WAAW,gBAAgB,EAC3B,wBAAuB,mBAAwB,KAC9C,gBASF,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { useEffect, useMemo, useRef, useState } from "react";
2
+ import { AssistantRuntimeImpl, LocalRuntimeCore } from "../../internal.js";
3
+ import { useAuiState } from "@assistant-ui/store";
4
+ import { useRemoteThreadListRuntime } from "./useRemoteThreadListRuntime.js";
5
+ import { useCloudThreadListAdapter } from "./cloud/index.js";
6
+ import { useRuntimeAdapters } from "./RuntimeAdapterProvider.js";
7
+ const useLocalThreadRuntime = (chatModel, { initialMessages, ...options }) => {
8
+ const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};
9
+ const opt = {
10
+ ...options,
11
+ adapters: {
12
+ ...threadListAdapters,
13
+ ...options.adapters,
14
+ chatModel,
15
+ },
16
+ };
17
+ const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));
18
+ const threadIdRef = useRef(undefined);
19
+ threadIdRef.current = useAuiState((s) => s.threadListItem.remoteId);
20
+ useEffect(() => {
21
+ runtime.threads
22
+ .getMainThreadRuntimeCore()
23
+ .__internal_setGetThreadId(() => threadIdRef.current);
24
+ }, [runtime]);
25
+ useEffect(() => {
26
+ return () => {
27
+ runtime.threads.getMainThreadRuntimeCore().detach();
28
+ };
29
+ }, [runtime]);
30
+ useEffect(() => {
31
+ runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);
32
+ runtime.threads.getMainThreadRuntimeCore().__internal_load();
33
+ });
34
+ useEffect(() => {
35
+ if (!modelContext)
36
+ return undefined;
37
+ return runtime.registerModelContextProvider(modelContext);
38
+ }, [modelContext, runtime]);
39
+ return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);
40
+ };
41
+ export const splitLocalRuntimeOptions = (options) => {
42
+ const { cloud, initialMessages, maxSteps, adapters, unstable_humanToolNames, ...rest } = options;
43
+ return {
44
+ localRuntimeOptions: {
45
+ cloud,
46
+ initialMessages,
47
+ maxSteps,
48
+ adapters,
49
+ unstable_humanToolNames,
50
+ },
51
+ otherOptions: rest,
52
+ };
53
+ };
54
+ export const useLocalRuntime = (chatModel, { cloud, ...options } = {}) => {
55
+ const cloudAdapter = useCloudThreadListAdapter({ cloud });
56
+ return useRemoteThreadListRuntime({
57
+ runtimeHook: function RuntimeHook() {
58
+ return useLocalThreadRuntime(chatModel, options);
59
+ },
60
+ adapter: cloudAdapter,
61
+ allowNesting: true,
62
+ });
63
+ };
64
+ //# sourceMappingURL=useLocalRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalRuntime.js","sourceRoot":"","sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/core",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Framework-agnostic core runtime for assistant-ui",
5
5
  "keywords": [
6
6
  "assistant",
@@ -53,7 +53,7 @@
53
53
  ],
54
54
  "sideEffects": false,
55
55
  "dependencies": {
56
- "assistant-stream": "^0.3.4",
56
+ "assistant-stream": "^0.3.5",
57
57
  "nanoid": "^5.1.6"
58
58
  },
59
59
  "peerDependencies": {
@@ -0,0 +1,33 @@
1
+ import { type ReactNode, memo } from "react";
2
+ import { useAui, type AssistantClient } from "@assistant-ui/store";
3
+ import type { AssistantRuntime } from "../runtime/api/assistant-runtime";
4
+ import { AssistantProviderBase } from "./AssistantProvider";
5
+
6
+ export const useAssistantRuntime = (): AssistantRuntime => {
7
+ const aui = useAui();
8
+ const runtime = aui.threads().__internal_getAssistantRuntime?.();
9
+ if (!runtime) {
10
+ throw new Error(
11
+ "useAssistantRuntime must be used within an AssistantRuntimeProvider",
12
+ );
13
+ }
14
+ return runtime;
15
+ };
16
+
17
+ export const AssistantRuntimeProvider = memo(
18
+ ({
19
+ runtime,
20
+ aui,
21
+ children,
22
+ }: {
23
+ runtime: AssistantRuntime;
24
+ aui?: AssistantClient | null;
25
+ children: ReactNode;
26
+ }) => {
27
+ return (
28
+ <AssistantProviderBase runtime={runtime} aui={aui ?? null}>
29
+ {children}
30
+ </AssistantProviderBase>
31
+ );
32
+ },
33
+ );
@@ -0,0 +1,227 @@
1
+ import { type AssistantStream, createAssistantStream } from "assistant-stream";
2
+ import { FC, PropsWithChildren, useMemo } from "react";
3
+ import { useAui } from "@assistant-ui/store";
4
+ import type {
5
+ RemoteThreadInitializeResponse,
6
+ RemoteThreadListAdapter,
7
+ RemoteThreadListResponse,
8
+ RemoteThreadMetadata,
9
+ ThreadHistoryAdapter,
10
+ ThreadMessage,
11
+ } from "../../index";
12
+ import type {
13
+ ExportedMessageRepository,
14
+ ExportedMessageRepositoryItem,
15
+ } from "../../internal";
16
+ import { RuntimeAdapterProvider } from "../runtimes/RuntimeAdapterProvider";
17
+ import type { TitleGenerationAdapter } from "./TitleGenerationAdapter";
18
+
19
+ export type AsyncStorageLike = {
20
+ getItem(key: string): Promise<string | null>;
21
+ setItem(key: string, value: string): Promise<void>;
22
+ removeItem(key: string): Promise<void>;
23
+ };
24
+
25
+ type LocalStorageAdapterOptions = {
26
+ storage: AsyncStorageLike;
27
+ prefix?: string | undefined;
28
+ titleGenerator?: TitleGenerationAdapter | undefined;
29
+ };
30
+
31
+ type StoredThreadMetadata = {
32
+ remoteId: string;
33
+ externalId?: string;
34
+ status: "regular" | "archived";
35
+ title?: string;
36
+ };
37
+
38
+ class AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {
39
+ constructor(
40
+ private storage: AsyncStorageLike,
41
+ private aui: ReturnType<typeof useAui>,
42
+ private prefix: string,
43
+ ) {}
44
+
45
+ private _messagesKey(remoteId: string) {
46
+ return `${this.prefix}messages:${remoteId}`;
47
+ }
48
+
49
+ async load(): Promise<ExportedMessageRepository> {
50
+ const remoteId = this.aui.threadListItem().getState().remoteId;
51
+ if (!remoteId) return { messages: [] };
52
+
53
+ const raw = await this.storage.getItem(this._messagesKey(remoteId));
54
+ if (!raw) return { messages: [] };
55
+ return JSON.parse(raw) as ExportedMessageRepository;
56
+ }
57
+
58
+ async append(item: ExportedMessageRepositoryItem): Promise<void> {
59
+ const { remoteId } = await this.aui.threadListItem().initialize();
60
+
61
+ const key = this._messagesKey(remoteId);
62
+ const raw = await this.storage.getItem(key);
63
+ const repo: ExportedMessageRepository = raw
64
+ ? (JSON.parse(raw) as ExportedMessageRepository)
65
+ : { messages: [] };
66
+
67
+ const idx = repo.messages.findIndex(
68
+ (m) => m.message.id === item.message.id,
69
+ );
70
+ if (idx >= 0) {
71
+ repo.messages[idx] = item;
72
+ } else {
73
+ repo.messages.push(item);
74
+ }
75
+ repo.headId = item.message.id;
76
+
77
+ await this.storage.setItem(key, JSON.stringify(repo));
78
+ }
79
+ }
80
+
81
+ const createHistoryProvider = (
82
+ storage: AsyncStorageLike,
83
+ prefix: string,
84
+ ): FC<PropsWithChildren> => {
85
+ const Provider: FC<PropsWithChildren> = ({ children }) => {
86
+ const aui = useAui();
87
+ const history = useMemo(
88
+ () => new AsyncStorageHistoryAdapter(storage, aui, prefix),
89
+ [aui],
90
+ );
91
+ const adapters = useMemo(() => ({ history }), [history]);
92
+
93
+ return (
94
+ <RuntimeAdapterProvider adapters={adapters}>
95
+ {children}
96
+ </RuntimeAdapterProvider>
97
+ );
98
+ };
99
+ return Provider;
100
+ };
101
+
102
+ export const createLocalStorageAdapter = (
103
+ options: LocalStorageAdapterOptions,
104
+ ): RemoteThreadListAdapter => {
105
+ const { storage, prefix = "@assistant-ui:", titleGenerator } = options;
106
+
107
+ const threadsKey = `${prefix}threads`;
108
+ const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;
109
+
110
+ const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {
111
+ const raw = await storage.getItem(threadsKey);
112
+ return raw ? (JSON.parse(raw) as StoredThreadMetadata[]) : [];
113
+ };
114
+
115
+ const saveThreadMetadata = async (
116
+ threads: StoredThreadMetadata[],
117
+ ): Promise<void> => {
118
+ await storage.setItem(threadsKey, JSON.stringify(threads));
119
+ };
120
+
121
+ const adapter: RemoteThreadListAdapter = {
122
+ unstable_Provider: createHistoryProvider(storage, prefix),
123
+
124
+ async list(): Promise<RemoteThreadListResponse> {
125
+ const threads = await loadThreadMetadata();
126
+ return {
127
+ threads: threads.map((t) => ({
128
+ remoteId: t.remoteId,
129
+ externalId: t.externalId,
130
+ status: t.status,
131
+ title: t.title,
132
+ })),
133
+ };
134
+ },
135
+
136
+ async initialize(
137
+ threadId: string,
138
+ ): Promise<RemoteThreadInitializeResponse> {
139
+ const remoteId = threadId;
140
+ const threads = await loadThreadMetadata();
141
+
142
+ // Only add if not already present
143
+ if (!threads.some((t) => t.remoteId === remoteId)) {
144
+ threads.unshift({
145
+ remoteId,
146
+ status: "regular",
147
+ });
148
+ await saveThreadMetadata(threads);
149
+ }
150
+
151
+ return { remoteId, externalId: undefined };
152
+ },
153
+
154
+ async rename(remoteId: string, newTitle: string): Promise<void> {
155
+ const threads = await loadThreadMetadata();
156
+ const thread = threads.find((t) => t.remoteId === remoteId);
157
+ if (thread) {
158
+ thread.title = newTitle;
159
+ await saveThreadMetadata(threads);
160
+ }
161
+ },
162
+
163
+ async archive(remoteId: string): Promise<void> {
164
+ const threads = await loadThreadMetadata();
165
+ const thread = threads.find((t) => t.remoteId === remoteId);
166
+ if (thread) {
167
+ thread.status = "archived";
168
+ await saveThreadMetadata(threads);
169
+ }
170
+ },
171
+
172
+ async unarchive(remoteId: string): Promise<void> {
173
+ const threads = await loadThreadMetadata();
174
+ const thread = threads.find((t) => t.remoteId === remoteId);
175
+ if (thread) {
176
+ thread.status = "regular";
177
+ await saveThreadMetadata(threads);
178
+ }
179
+ },
180
+
181
+ async delete(remoteId: string): Promise<void> {
182
+ const threads = await loadThreadMetadata();
183
+ const filtered = threads.filter((t) => t.remoteId !== remoteId);
184
+ await saveThreadMetadata(filtered);
185
+ await storage.removeItem(messagesKey(remoteId));
186
+ },
187
+
188
+ async fetch(threadId: string): Promise<RemoteThreadMetadata> {
189
+ const threads = await loadThreadMetadata();
190
+ const thread = threads.find((t) => t.remoteId === threadId);
191
+ if (!thread) throw new Error("Thread not found");
192
+ return {
193
+ remoteId: thread.remoteId,
194
+ externalId: thread.externalId,
195
+ status: thread.status,
196
+ title: thread.title,
197
+ };
198
+ },
199
+
200
+ async generateTitle(
201
+ remoteId: string,
202
+ messages: readonly ThreadMessage[],
203
+ ): Promise<AssistantStream> {
204
+ if (titleGenerator) {
205
+ const title = await titleGenerator.generateTitle(messages);
206
+
207
+ // Update the stored title
208
+ const threads = await loadThreadMetadata();
209
+ const thread = threads.find((t) => t.remoteId === remoteId);
210
+ if (thread) {
211
+ thread.title = title;
212
+ await saveThreadMetadata(threads);
213
+ }
214
+
215
+ // Return a stream with a single text part
216
+ return createAssistantStream((controller) => {
217
+ controller.appendText(title);
218
+ });
219
+ }
220
+
221
+ // No title generator — return empty stream
222
+ return createAssistantStream(() => {});
223
+ },
224
+ };
225
+
226
+ return adapter;
227
+ };
@@ -0,0 +1,20 @@
1
+ import type { ThreadMessage } from "../../types/message";
2
+
3
+ export type TitleGenerationAdapter = {
4
+ generateTitle(messages: readonly ThreadMessage[]): Promise<string>;
5
+ };
6
+
7
+ export const createSimpleTitleAdapter = (): TitleGenerationAdapter => {
8
+ return {
9
+ async generateTitle(messages) {
10
+ const firstUserMessage = messages.find((m) => m.role === "user");
11
+ if (!firstUserMessage) return "New Thread";
12
+
13
+ const textPart = firstUserMessage.content.find((p) => p.type === "text");
14
+ if (!textPart || textPart.type !== "text") return "New Thread";
15
+
16
+ const text = textPart.text.trim();
17
+ return text.length > 50 ? `${text.slice(0, 47)}...` : text;
18
+ },
19
+ };
20
+ };
@@ -49,3 +49,18 @@ export {
49
49
  ComposerPrimitiveIf,
50
50
  type UseComposerIfProps,
51
51
  } from "./primitives/composer/ComposerIf";
52
+
53
+ // Primitive hooks (shared behavior logic)
54
+ export * from "./primitive-hooks";
55
+
56
+ // Shared AssistantRuntimeProvider
57
+ export {
58
+ AssistantRuntimeProvider,
59
+ useAssistantRuntime,
60
+ } from "./AssistantRuntimeProvider";
61
+
62
+ // Shared runtimes
63
+ export {
64
+ useLocalRuntime,
65
+ type LocalRuntimeOptions,
66
+ } from "./runtimes/useLocalRuntime";