@athenaintel/react 0.17.0 → 0.19.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.
Files changed (128) hide show
  1. package/README.md +179 -43
  2. package/dist/AthenaContext-B1QMhIP-.cjs.map +1 -1
  3. package/dist/AthenaContext-MOslgOmE.js.map +1 -1
  4. package/dist/SuperGroupingCard-BsWbHyV_.js +795 -0
  5. package/dist/SuperGroupingCard-BsWbHyV_.js.map +1 -0
  6. package/dist/SuperGroupingCard-CRRFUgjN.cjs +794 -0
  7. package/dist/SuperGroupingCard-CRRFUgjN.cjs.map +1 -0
  8. package/dist/chat/StatewireApprovalCard.d.ts +59 -2
  9. package/dist/chat/StatewireClientToolBridge.d.ts +3 -3
  10. package/dist/chat/StatewireQueuedMessages.d.ts +105 -6
  11. package/dist/chat/statewire-approval.d.ts +1 -1
  12. package/dist/chat/statewire-banners.d.ts +5 -9
  13. package/dist/chat/statewire-client-tools.d.ts +15 -21
  14. package/dist/chat/super-grouping/CollapsibleGroup.d.ts +52 -11
  15. package/dist/chat/super-grouping/SuperGroupingCard.d.ts +78 -21
  16. package/dist/chat/super-grouping/activity-timeline.d.ts +91 -0
  17. package/dist/chat/super-grouping/grouping-function.d.ts +13 -10
  18. package/dist/chat/super-grouping/index.d.ts +12 -0
  19. package/dist/chat/super-grouping/toolkit-map.d.ts +8 -1
  20. package/dist/chat/use-statewire-approval-request.d.ts +44 -0
  21. package/dist/chat-ui/header/conversation-history-panel.d.ts +11 -1
  22. package/dist/chat-ui/index.d.ts +9 -0
  23. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +24 -0
  24. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +5 -0
  25. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +1 -1
  26. package/dist/chat-ui/mentions/suggestions/shims.d.ts +0 -4
  27. package/dist/chat-ui/messages/continue-pill.d.ts +13 -0
  28. package/dist/chat-ui/messages/message-components.d.ts +7 -2
  29. package/dist/chat-ui/messages/runtime-message.d.ts +21 -0
  30. package/dist/chat-ui/messages/statewire-continue-run.d.ts +82 -0
  31. package/dist/chat-ui/messages/user-edit-composer.d.ts +5 -2
  32. package/dist/chat-ui/statewire.d.ts +19 -0
  33. package/dist/chat-ui/thread/chat-composer-dock.d.ts +1 -1
  34. package/dist/chat-ui/thread/chat-thread-shell.d.ts +7 -1
  35. package/dist/chat-ui/thread/statewire-history-edge.d.ts +52 -0
  36. package/dist/chat-ui-statewire.cjs +25 -0
  37. package/dist/chat-ui-statewire.cjs.map +1 -0
  38. package/dist/chat-ui-statewire.js +25 -0
  39. package/dist/chat-ui-statewire.js.map +1 -0
  40. package/dist/chat-ui.cjs +292 -252
  41. package/dist/chat-ui.cjs.map +1 -1
  42. package/dist/chat-ui.js +289 -248
  43. package/dist/chat-ui.js.map +1 -1
  44. package/dist/diagnostics/athena-diagnostics.d.ts +1 -1
  45. package/dist/diagnostics/errors.d.ts +4 -4
  46. package/dist/index.cjs +20237 -26233
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.d.ts +25 -14
  49. package/dist/index.js +18465 -24458
  50. package/dist/index.js.map +1 -1
  51. package/dist/lib/athena-urls.d.ts +0 -2
  52. package/dist/lib/posthog/wrap-posthog-client.d.ts +3 -1
  53. package/dist/misc-tool-uis-B2e0Okkn.cjs +43 -0
  54. package/dist/misc-tool-uis-B2e0Okkn.cjs.map +1 -0
  55. package/dist/misc-tool-uis-gAiQw0Yl.js +44 -0
  56. package/dist/misc-tool-uis-gAiQw0Yl.js.map +1 -0
  57. package/dist/provider/AthenaContext.d.ts +0 -7
  58. package/dist/provider/AthenaProvider.d.ts +28 -52
  59. package/dist/provider/config.d.ts +19 -15
  60. package/dist/provider/statewire-lifecycle-context.d.ts +3 -4
  61. package/dist/provider/statewire-window-context.d.ts +12 -0
  62. package/dist/provider/types.d.ts +0 -1
  63. package/dist/runtime/statewire-auth-headers.d.ts +38 -0
  64. package/dist/runtime/statewire-lifecycle.d.ts +25 -1
  65. package/dist/runtime/statewire-run-config.d.ts +18 -5
  66. package/dist/runtime/statewire-session-key.d.ts +13 -0
  67. package/dist/runtime/useAthenaStatewireRuntime.d.ts +42 -16
  68. package/dist/statewire-continue-run-D34gS7_1.js +132 -0
  69. package/dist/statewire-continue-run-D34gS7_1.js.map +1 -0
  70. package/dist/statewire-continue-run-nE9VCKUh.cjs +131 -0
  71. package/dist/statewire-continue-run-nE9VCKUh.cjs.map +1 -0
  72. package/dist/statewire-history-edge-C8uyTEjX.cjs +1711 -0
  73. package/dist/statewire-history-edge-C8uyTEjX.cjs.map +1 -0
  74. package/dist/statewire-history-edge-CPohUKMt.js +1712 -0
  75. package/dist/statewire-history-edge-CPohUKMt.js.map +1 -0
  76. package/dist/styles.css +1 -1
  77. package/dist/super-grouping.cjs +22 -0
  78. package/dist/super-grouping.cjs.map +1 -0
  79. package/dist/super-grouping.js +22 -0
  80. package/dist/super-grouping.js.map +1 -0
  81. package/dist/threads/ThreadList.d.ts +6 -1
  82. package/dist/threads/mint-thread-id.d.ts +8 -0
  83. package/dist/threads/statewire-thread-list.d.ts +26 -9
  84. package/dist/threads/thread-id-context.d.ts +9 -0
  85. package/dist/threads/use-statewire-conversation-history.d.ts +2 -0
  86. package/dist/threads/useAthenaThreadManager.d.ts +24 -12
  87. package/dist/tool-fallback-DkQ3DLkn.js +4281 -0
  88. package/dist/tool-fallback-DkQ3DLkn.js.map +1 -0
  89. package/dist/tool-fallback-kfhpJQZa.cjs +4297 -0
  90. package/dist/tool-fallback-kfhpJQZa.cjs.map +1 -0
  91. package/dist/tools/index.d.ts +14 -0
  92. package/dist/tools/misc-tool-uis.d.ts +2 -0
  93. package/dist/tools/primitives.d.ts +41 -0
  94. package/dist/tools/tool-fallback.d.ts +78 -6
  95. package/dist/tools/tool-icons.d.ts +10 -0
  96. package/dist/tools/tool-uis.d.ts +1 -23
  97. package/dist/tools.cjs +41 -0
  98. package/dist/tools.cjs.map +1 -0
  99. package/dist/tools.js +41 -0
  100. package/dist/tools.js.map +1 -0
  101. package/dist/trash-2-B5OaNAL7.cjs +5096 -0
  102. package/dist/trash-2-B5OaNAL7.cjs.map +1 -0
  103. package/dist/trash-2-CCwSURL-.js +5081 -0
  104. package/dist/trash-2-CCwSURL-.js.map +1 -0
  105. package/dist/{use-rest-conversation-history-BdnG8jEP.cjs → use-rest-conversation-history-Cm8qMRxp.cjs} +985 -5405
  106. package/dist/use-rest-conversation-history-Cm8qMRxp.cjs.map +1 -0
  107. package/dist/{use-rest-conversation-history-DpEswBqQ.js → use-rest-conversation-history-veDZS-oL.js} +1035 -5455
  108. package/dist/use-rest-conversation-history-veDZS-oL.js.map +1 -0
  109. package/dist/wrench-BEf72cyP.cjs +417 -0
  110. package/dist/wrench-BEf72cyP.cjs.map +1 -0
  111. package/dist/wrench-CbrOlVYm.js +418 -0
  112. package/dist/wrench-CbrOlVYm.js.map +1 -0
  113. package/dist/x-Dfd2NzK0.cjs +42 -0
  114. package/dist/x-Dfd2NzK0.cjs.map +1 -0
  115. package/dist/x-_DntAa_a.js +43 -0
  116. package/dist/x-_DntAa_a.js.map +1 -0
  117. package/package.json +29 -11
  118. package/dist/chat/super-grouping/tool-status-labels.d.ts +0 -1
  119. package/dist/runtime/converter.d.ts +0 -5
  120. package/dist/runtime/external-message-converter.d.ts +0 -21
  121. package/dist/runtime/schemas.d.ts +0 -24
  122. package/dist/runtime/transport.d.ts +0 -39
  123. package/dist/runtime/useAthenaRuntime.d.ts +0 -47
  124. package/dist/threads/adapter.d.ts +0 -42
  125. package/dist/threads/useActiveThreadStateHydration.d.ts +0 -12
  126. package/dist/threads/useThreadTitlePolling.d.ts +0 -14
  127. package/dist/use-rest-conversation-history-BdnG8jEP.cjs.map +0 -1
  128. package/dist/use-rest-conversation-history-DpEswBqQ.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athenaintel/react",
3
- "version": "0.17.0",
3
+ "version": "0.19.0",
4
4
  "description": "Athena React SDK \u2014 Build AI-powered chat applications with the Athena platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -28,6 +28,21 @@
28
28
  "import": "./dist/chat-ui.js",
29
29
  "require": "./dist/chat-ui.cjs"
30
30
  },
31
+ "./chat-ui/statewire": {
32
+ "types": "./dist/chat-ui/statewire.d.ts",
33
+ "import": "./dist/chat-ui-statewire.js",
34
+ "require": "./dist/chat-ui-statewire.cjs"
35
+ },
36
+ "./tools": {
37
+ "types": "./dist/tools/index.d.ts",
38
+ "import": "./dist/tools.js",
39
+ "require": "./dist/tools.cjs"
40
+ },
41
+ "./super-grouping": {
42
+ "types": "./dist/chat/super-grouping/index.d.ts",
43
+ "import": "./dist/super-grouping.js",
44
+ "require": "./dist/super-grouping.cjs"
45
+ },
31
46
  "./src/chat-ui/styles/theme.css": "./src/chat-ui/styles/theme.css",
32
47
  "./chat-ui/tailwind-preset": "./src/chat-ui/tailwind-preset.js"
33
48
  },
@@ -39,8 +54,9 @@
39
54
  "scripts": {
40
55
  "dev": "bun run build:css && vite build --watch",
41
56
  "build": "vite build && tsc -p tsconfig.build.json && bun run build:css",
57
+ "prepare": "test ! -f src/index.ts || bun run build",
42
58
  "build:css": "tailwindcss -i src/styles.entry.css -o dist/styles.css --minify",
43
- "test": "bun test src",
59
+ "test": "bun test mount-tests && bun test src",
44
60
  "typecheck": "tsc --noEmit",
45
61
  "prepublishOnly": "bun run build",
46
62
  "preinstall": "node -e \"if(!(process.env.npm_config_user_agent||'').startsWith('bun/')){console.error('\\n\u2717 This monorepo requires bun. Run \\`bun install\\` at the repo root.\\n https://bun.com/docs/installation\\n');process.exit(1)}\""
@@ -60,12 +76,13 @@
60
76
  }
61
77
  },
62
78
  "dependencies": {
63
- "@assistant-ui/core": "0.3.15",
64
- "@assistant-ui/react": "0.15.16",
65
- "@assistant-ui/react-langgraph": "0.14.24",
66
- "@assistant-ui/react-markdown": "0.14.8",
67
- "@assistant-ui/react-statewire": "^0.23.0",
68
- "@assistant-ui/tap": "0.9.14",
79
+ "@assistant-ui/core": "0.3.17",
80
+ "@assistant-ui/react": "0.15.17",
81
+ "@assistant-ui/react-langgraph": "0.14.26",
82
+ "@assistant-ui/react-markdown": "0.14.14",
83
+ "@assistant-ui/react-statewire": "0.24.0",
84
+ "@assistant-ui/store": "0.3.12",
85
+ "@assistant-ui/tap": "0.9.16",
69
86
  "@floating-ui/react": "^0.27.7",
70
87
  "@tailwindcss/typography": "^0.5.19",
71
88
  "@tanstack/react-query": "5.99.2",
@@ -84,19 +101,20 @@
84
101
  "@tiptap/suggestion": "^2.11",
85
102
  "@y/websocket": "4.0.0-rc.2",
86
103
  "@y/y": "14.0.0-rc.24",
87
- "assistant-stream": "0.3.39",
104
+ "assistant-stream": "0.3.41",
88
105
  "class-variance-authority": "^0.7.1",
89
106
  "cnfast": "0.0.8",
90
107
  "lucide-react": "^0.575.0",
91
108
  "radix-ui": "^1.4.3",
92
109
  "remark-gfm": "^4.0.0",
93
- "statewire": "^0.13.0",
110
+ "statewire": "0.14.0",
94
111
  "tiptap-markdown": "^0.9.0",
95
- "zod": "^3.24.0",
112
+ "zod": "^4.4.3",
96
113
  "zustand": "^5.0.11"
97
114
  },
98
115
  "devDependencies": {
99
116
  "@athenaintel/agent-runtime": "workspace:*",
117
+ "@happy-dom/global-registrator": "^20.10.6",
100
118
  "@propelauth/react": "^2.1.1",
101
119
  "@tailwindcss/cli": "^4.2.1",
102
120
  "@types/react": "^19.0.0",
@@ -1 +0,0 @@
1
- export declare function getToolStatusLabel(toolName: string, status: 'running' | 'complete' | 'error' | 'incomplete' | undefined): string;
@@ -1,5 +0,0 @@
1
- import type { ThreadMessage } from '@assistant-ui/react';
2
- import { type AthenaLangChainMessage } from './schemas';
3
- export declare const PTC_SUBCALL_DID_NOT_COMPLETE_MESSAGE = "Sub-call did not complete before the parent tool returned.";
4
- export declare const autoCloseInFlightSubgraphMessages: (msgs: readonly unknown[]) => unknown[];
5
- export declare const convertLangChainToThreadMessages: (messages: AthenaLangChainMessage[], isRunning?: boolean, metadata?: {}) => ThreadMessage[];
@@ -1,21 +0,0 @@
1
- import { type ThreadMessage, type ThreadMessageLike, type ToolExecutionStatus } from '@assistant-ui/react';
2
- export declare namespace useExternalMessageConverter {
3
- type Message = (ThreadMessageLike & {
4
- readonly convertConfig?: {
5
- readonly joinStrategy?: 'concat-content' | 'none';
6
- };
7
- }) | {
8
- role: 'tool';
9
- toolCallId: string;
10
- toolName?: string | undefined;
11
- result: any;
12
- artifact?: any;
13
- isError?: boolean;
14
- messages?: readonly ThreadMessage[];
15
- };
16
- type Metadata = {
17
- readonly toolStatuses?: Record<string, ToolExecutionStatus>;
18
- };
19
- type Callback<T> = (message: T, metadata: Metadata) => Message | Message[] | null | undefined;
20
- }
21
- export declare const convertExternalMessages: <T extends WeakKey>(messages: T[], callback: useExternalMessageConverter.Callback<T>, isRunning: boolean, metadata: useExternalMessageConverter.Metadata) => ThreadMessage[];
@@ -1,24 +0,0 @@
1
- import type { LangChainMessage } from '@assistant-ui/react-langgraph';
2
- export type AthenaAiLangChainMessage = Extract<LangChainMessage, {
3
- type: 'ai';
4
- }> & {
5
- usage_metadata?: Record<string, unknown>;
6
- response_metadata?: Record<string, unknown>;
7
- };
8
- export type AthenaLangChainMessage = Exclude<LangChainMessage, {
9
- type: 'ai';
10
- }> | AthenaAiLangChainMessage;
11
- export declare const parseLangChainMessage: (msg: unknown) => AthenaLangChainMessage | null;
12
- export declare const parseMessages: (messages: unknown) => AthenaLangChainMessage[];
13
- export declare const parseInterrupt: (interrupt: unknown) => {
14
- value: unknown;
15
- resumable: boolean;
16
- } | null;
17
- export declare const parseLangGraphState: (state: unknown) => {
18
- messages: AthenaLangChainMessage[];
19
- __interrupt__: {
20
- value?: unknown;
21
- resumable: boolean;
22
- } | null;
23
- [key: string]: unknown;
24
- };
@@ -1,39 +0,0 @@
1
- export declare const ATHENA_TRANSPORTS: {
2
- readonly legacy: 'legacy';
3
- readonly statewire: 'statewire';
4
- };
5
- /** Chat transport mode: `legacy` (Iris `/api/chat` assistant-transport) or
6
- * `statewire` (Iris `/v2/threads` deep-agent statewire sync). */
7
- export type AthenaTransport = (typeof ATHENA_TRANSPORTS)[keyof typeof ATHENA_TRANSPORTS];
8
- /** Statewire is the default as of 0.12.0: it is the maintained transport
9
- * (server-hosted threads, mid-run queueing, HITL, client tools for
10
- * recognized SDK hosts) and was validated live across SDK hosts on
11
- * 2026-08-27. Pass `transport: 'legacy'` to opt a deployment back out;
12
- * note that threads created on one transport are read-only from the other. */
13
- export declare const DEFAULT_ATHENA_TRANSPORT: AthenaTransport;
14
- export interface ResolvedAthenaTransport {
15
- transport: AthenaTransport;
16
- /**
17
- * @deprecated Always `null`. Both provider modes (standalone and thread
18
- * list) run both transports, so a requested transport is never overridden.
19
- * Kept on the type so existing consumers keep compiling.
20
- */
21
- fallbackReason: string | null;
22
- }
23
- /**
24
- * Resolve the effective chat transport for a provider configuration: the
25
- * requested transport, or {@link DEFAULT_ATHENA_TRANSPORT} when unset.
26
- */
27
- export declare function resolveAthenaTransport({ transport, }: {
28
- transport?: AthenaTransport;
29
- /** @deprecated Ignored — the thread list runs on both transports. */
30
- enableThreadList?: boolean;
31
- }): ResolvedAthenaTransport;
32
- /**
33
- * Whether a send may be dispatched while a run is already active.
34
- *
35
- * Statewire hosts the queue server-side, so a mid-run send is queued behind
36
- * the live run. The legacy transport has no queue: a second dispatch would
37
- * orphan the in-flight run and duplicate its pending placeholder.
38
- */
39
- export declare function allowsMidRunSend(transport: AthenaTransport | undefined): boolean;
@@ -1,47 +0,0 @@
1
- import type { AssistantRuntime } from '@assistant-ui/react';
2
- export { DEFAULT_API_URL, DEFAULT_BACKEND_URL } from '../lib/athena-urls';
3
- export interface AthenaRuntimeConfig {
4
- /** URL for the chat streaming endpoint. Defaults to Athena production sync server. */
5
- apiUrl?: string;
6
- /** URL for the sync server resume endpoint. Derived from apiUrl if not provided. */
7
- resumeApiUrl?: string;
8
- /** URL for the Athena backend API. Defaults to Athena production API. */
9
- backendUrl?: string;
10
- /** API key for authentication. Used when no auth token is provided. */
11
- apiKey?: string;
12
- /** PropelAuth token from parent window. Takes priority over apiKey. */
13
- token?: string | null;
14
- /** Resolve the latest token immediately before a request (for expiring clients). */
15
- getToken?: () => string | null | Promise<string | null>;
16
- /** Called when the transport reports an authentication failure. */
17
- onUnauthorized?: () => void | Promise<void>;
18
- /** LLM model identifier. */
19
- model?: string;
20
- /** Agent name to use. */
21
- agent?: string;
22
- /** Backend toolkit IDs to enable. */
23
- tools?: string[];
24
- /** Frontend tool IDs to include in enabled_tools. */
25
- frontendToolIds?: string[];
26
- /** Asset IDs to include in the workbench. */
27
- workbench?: string[];
28
- /** Knowledge base IDs for RAG context. */
29
- knowledgeBase?: string[];
30
- /** System prompt override. */
31
- systemPrompt?: string;
32
- /** Custom tool configurations (e.g. MCP servers). Passed as custom_tool_configs in runConfig. */
33
- customToolConfigs?: Record<string, unknown>;
34
- /** Client app identifier for session filtering. Sent as app_id in runConfig.custom. */
35
- appId?: string;
36
- /** Thread ID override. Auto-generated if not provided. */
37
- threadId?: string;
38
- /** Request channel. Defaults to "web". Use "chrome_extension" for the browser extension. */
39
- channel?: string;
40
- /** Device ID for device tunnel routing (chrome extension). */
41
- deviceId?: string;
42
- /** Additional fields merged into the request body. */
43
- extraBody?: Record<string, unknown>;
44
- /** Additional fields merged into runConfig.custom. */
45
- extraRunConfig?: Record<string, unknown>;
46
- }
47
- export declare const useAthenaRuntime: (config: AthenaRuntimeConfig) => AssistantRuntime;
@@ -1,42 +0,0 @@
1
- /**
2
- * RemoteThreadListAdapter implementation for Athena/Agora backend.
3
- * Maps our Agora API to the assistant-ui RemoteThreadListAdapter interface.
4
- *
5
- * Message loading for existing threads happens via the sync server's resume API
6
- * (triggered by useAthenaRuntime), NOT via a ThreadHistoryAdapter.
7
- */
8
- import type { RemoteThreadListAdapter } from '@assistant-ui/react';
9
- interface AthenaThreadListAdapterConfig {
10
- backendUrl: string;
11
- apiKey?: string;
12
- token?: string | null;
13
- appId?: string;
14
- }
15
- /**
16
- * Context for passing the current thread's remoteId from the unstable_Provider
17
- * down to the runtimeHook, without requiring useAui() in the hook.
18
- */
19
- export declare const AthenaThreadIdContext: import("react").Context<string | undefined>;
20
- /**
21
- * Read the current assistant-ui thread item's remote ID.
22
- *
23
- * This must be used inside assistant-ui's ThreadListItemRuntimeProvider.
24
- * It is available before `unstable_Provider` renders its children, so the
25
- * per-thread runtime hook can use it to hydrate existing threads.
26
- */
27
- export declare function useAthenaAuiThreadRemoteId(): string | undefined;
28
- /** Read the current thread's remote ID (set by the adapter's unstable_Provider). */
29
- export declare function useAthenaThreadId(): string | undefined;
30
- /**
31
- * Hook that returns a RemoteThreadListAdapter for the Athena platform.
32
- * Integrates with our Agora REST API for thread CRUD.
33
- */
34
- export declare function useAthenaThreadListAdapter(config: AthenaThreadListAdapterConfig): RemoteThreadListAdapter;
35
- /**
36
- * Context for exposing a thread list refresh callback.
37
- * Provided by AthenaWithThreadList, consumed by ThreadList.
38
- */
39
- export declare const ThreadListRefreshContext: import("react").Context<(() => void) | null>;
40
- /** Trigger a re-fetch of the thread list. No-op outside of thread list mode. */
41
- export declare function useRefreshThreadList(): (() => void) | null;
42
- export {};
@@ -1,12 +0,0 @@
1
- interface ActiveThreadStateHydrationConfig {
2
- backendUrl: string;
3
- apiKey?: string;
4
- token?: string | null;
5
- }
6
- type HydratableThreadListItemState = {
7
- remoteId?: string | undefined;
8
- id: string;
9
- };
10
- export declare const selectHydratableThreadId: (state: HydratableThreadListItemState) => string | null;
11
- export declare function useActiveThreadStateHydration({ backendUrl, apiKey, token, }: ActiveThreadStateHydrationConfig): void;
12
- export {};
@@ -1,14 +0,0 @@
1
- /**
2
- * Internal hook that polls the thread list to pick up a freshly-generated
3
- * title after the user sends the first message in a new thread.
4
- *
5
- * The Agora backend generates thread titles asynchronously from the first
6
- * user message, so the title usually isn't available at the moment the
7
- * thread is created. Without this, new threads show as "New conversation"
8
- * in the sidebar until the user manually refreshes.
9
- *
10
- * Triggers when the active thread has messages but no title yet, then
11
- * polls every second (after a 5s initial delay) until a title appears
12
- * or a max duration elapses.
13
- */
14
- export declare function useThreadTitlePolling(refresh: () => void): void;