opencami 1.9.0 → 2.0.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 (66) hide show
  1. package/dist/client/assets/{CSPContext-TfUptlEu.js → CSPContext-CrlIQW7-.js} +1 -1
  2. package/dist/client/assets/{DirectionContext-CQMv7g2N.js → DirectionContext-X-0CRn1O.js} +1 -1
  3. package/dist/client/assets/_sessionKey-yNQ57svB.js +23 -0
  4. package/dist/client/assets/agents-WqWjsymD.js +2 -0
  5. package/dist/client/assets/{agents-screen-fSZJpRi_.js → agents-screen-BhOVp_S6.js} +1 -1
  6. package/dist/client/assets/bots-DNqiFT7w.js +2 -0
  7. package/dist/client/assets/{bots-screen-4yT-e3cM.js → bots-screen-DLFd0ydi.js} +1 -1
  8. package/dist/client/assets/button-D0n2Qsd_.js +1 -0
  9. package/dist/client/assets/{composite-BLgu_EOL.js → composite-GtKwZKbV.js} +1 -1
  10. package/dist/client/assets/{connect-CiqRvR6s.js → connect-vQWL0_11.js} +1 -1
  11. package/dist/client/assets/{dashboard-CyWDWpbj.js → dashboard-Knwc61i1.js} +1 -1
  12. package/dist/client/assets/{event-2_Dxdv7h.js → event-CHpdjYFR.js} +1 -1
  13. package/dist/client/assets/file-explorer-screen-FoYNs9zK.js +1 -0
  14. package/dist/client/assets/files-BtR_gArr.js +2 -0
  15. package/dist/client/assets/follow-up-suggestions-DVXNLqga.js +5 -0
  16. package/dist/client/assets/{index-ygitKeM-.js → index-CNPHef4O.js} +1 -1
  17. package/dist/client/assets/{index-C_gsW9fo.js → index-CTT0Y1ya.js} +1 -1
  18. package/dist/client/assets/{keyboard-shortcuts-dialog-z-amTZVi.js → keyboard-shortcuts-dialog-DP8ptQ7N.js} +1 -1
  19. package/dist/client/assets/{main-ZBMVSJTF.js → main-xPlWrMhO.js} +3 -3
  20. package/dist/client/assets/{markdown-CHUjmWcv.js → markdown-3Js_RbUp.js} +1 -1
  21. package/dist/client/assets/memory-BRGPq5t6.js +2 -0
  22. package/dist/client/assets/{memory-screen-C_ZNDGLd.js → memory-screen-nzRra2Qi.js} +1 -1
  23. package/dist/client/assets/{menu-CB88T7R1.js → menu-BnSEqetd.js} +1 -1
  24. package/dist/client/assets/{opencami-logo-C0Kj1DiT.js → opencami-logo-B_hLbomw.js} +1 -1
  25. package/dist/client/assets/{proxy-D-juuhw6.js → proxy-BnlGpgC1.js} +1 -1
  26. package/dist/client/assets/{react-Akh4y69S.js → react-BgjQyJHw.js} +1 -1
  27. package/dist/client/assets/{search-dialog-BasfzCyM.js → search-dialog-Bib2QY9u.js} +1 -1
  28. package/dist/client/assets/{search-sources-badge-DwFHWd7S.js → search-sources-badge-COHcYFRB.js} +1 -1
  29. package/dist/client/assets/{session-export-dialog-CAl3iJnD.js → session-export-dialog-ooPnfHh_.js} +1 -1
  30. package/dist/client/assets/settings-dialog-B8mz99u-.js +1 -0
  31. package/dist/client/assets/skills-DA9J_tsC.js +2 -0
  32. package/dist/client/assets/{skills-panel-B7BRAofP.js → skills-panel-D2uMdCHp.js} +1 -1
  33. package/dist/client/assets/styles-CWabEzNU.css +1 -0
  34. package/dist/client/assets/{switch-DYEbEgy5.js → switch-BUQ0qH6r.js} +1 -1
  35. package/dist/client/assets/{tabs-eiBvL0H7.js → tabs-BEyU6TjN.js} +1 -1
  36. package/dist/client/assets/{thinking-CariuioI.js → thinking-CA48yhOE.js} +1 -1
  37. package/dist/client/assets/{tooltip-CekkGEYG.js → tooltip-CcIdgcV0.js} +1 -1
  38. package/dist/client/assets/{use-file-explorer-state-Dfyh4GwR.js → use-file-explorer-state-CN_IJGcd.js} +2 -2
  39. package/dist/client/assets/{useBaseUiId-DLhdkHJl.js → useBaseUiId-ClbEYEil.js} +1 -1
  40. package/dist/client/assets/useCompositeItem-B_OxfJee.js +1 -0
  41. package/dist/client/assets/{useControlled-CpliTEve.js → useControlled-CyT-lqbs.js} +1 -1
  42. package/dist/client/assets/{useMutation-CpD2Pn0F.js → useMutation-eQUrsn-X.js} +1 -1
  43. package/dist/client/assets/{useOnFirstRender-DsFYFJoB.js → useOnFirstRender-CR_o2MK_.js} +1 -1
  44. package/dist/client/assets/{useQuery-DMTgpIql.js → useQuery-k6EMRoMD.js} +1 -1
  45. package/dist/server/assets/{_sessionKey-Bhksr7VP.js → _sessionKey-CaFqmyhU.js} +388 -390
  46. package/dist/server/assets/{_tanstack-start-manifest_v-D-5ReiD4.js → _tanstack-start-manifest_v-P3skSR3R.js} +1 -1
  47. package/dist/server/assets/{follow-up-suggestions-B3hol2KT.js → follow-up-suggestions-DHv2_XzB.js} +13 -74
  48. package/dist/server/assets/{index-4G_4vZNY.js → index-C7lmufwX.js} +1 -1
  49. package/dist/server/assets/{router-C9JRmWMm.js → router-X2L0PDPI.js} +133 -294
  50. package/dist/server/assets/{search-dialog-CTJULPB8.js → search-dialog-CXhofdoP.js} +2 -2
  51. package/dist/server/assets/{settings-dialog-B5yR2pBy.js → settings-dialog-CPdftvjz.js} +1 -254
  52. package/dist/server/assets/{thinking-CHx4Oouj.js → thinking-YkRSlXtf.js} +2 -2
  53. package/dist/server/server.js +2 -2
  54. package/package.json +1 -1
  55. package/dist/client/assets/_sessionKey-DYknvaDS.js +0 -23
  56. package/dist/client/assets/agents-DNywJUai.js +0 -2
  57. package/dist/client/assets/bots-Bqjqhws8.js +0 -2
  58. package/dist/client/assets/button-DqP4GZwZ.js +0 -1
  59. package/dist/client/assets/file-explorer-screen-CZ2QKk-0.js +0 -1
  60. package/dist/client/assets/files-Cbhud0J8.js +0 -2
  61. package/dist/client/assets/follow-up-suggestions-Bi3Ci2my.js +0 -5
  62. package/dist/client/assets/memory-BRa-0plj.js +0 -2
  63. package/dist/client/assets/settings-dialog-C8OoRXwX.js +0 -1
  64. package/dist/client/assets/skills-Cx12984a.js +0 -2
  65. package/dist/client/assets/styles-CXa-SiWC.css +0 -1
  66. package/dist/client/assets/useCompositeItem-DTSTTR0Z.js +0 -1
@@ -1,4 +1,4 @@
1
- const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "/root/opencami/src/routes/__root.tsx", "children": ["/", "/agents", "/bots", "/connect", "/dashboard", "/files", "/memory", "/new", "/skills", "/api/agents", "/api/cron", "/api/follow-ups", "/api/history", "/api/llm-features", "/api/models", "/api/paths", "/api/personas", "/api/ping", "/api/send", "/api/sessions", "/api/skills", "/api/stream", "/api/stt", "/api/tts", "/chat/$sessionKey", "/api/dashboard/crons", "/api/dashboard/gateway", "/api/dashboard/system", "/api/files/delete", "/api/files/download", "/api/files/info", "/api/files/list", "/api/files/mkdir", "/api/files/read", "/api/files/rename", "/api/files/save", "/api/files/upload"], "preloads": ["/assets/main-ZBMVSJTF.js"], "assets": [] }, "/": { "filePath": "/root/opencami/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-ygitKeM-.js"] }, "/agents": { "filePath": "/root/opencami/src/routes/agents.tsx", "assets": [], "preloads": ["/assets/agents-DNywJUai.js"] }, "/bots": { "filePath": "/root/opencami/src/routes/bots.tsx", "assets": [], "preloads": ["/assets/bots-Bqjqhws8.js"] }, "/connect": { "filePath": "/root/opencami/src/routes/connect.tsx", "assets": [], "preloads": ["/assets/connect-CiqRvR6s.js", "/assets/index-C_gsW9fo.js", "/assets/button-DqP4GZwZ.js", "/assets/react-Akh4y69S.js"] }, "/dashboard": { "filePath": "/root/opencami/src/routes/dashboard.tsx", "assets": [], "preloads": ["/assets/dashboard-CyWDWpbj.js", "/assets/useQuery-DMTgpIql.js"] }, "/files": { "filePath": "/root/opencami/src/routes/files.tsx", "assets": [], "preloads": ["/assets/files-Cbhud0J8.js"] }, "/memory": { "filePath": "/root/opencami/src/routes/memory.tsx", "assets": [], "preloads": ["/assets/memory-BRa-0plj.js"] }, "/new": { "filePath": "/root/opencami/src/routes/new.tsx", "assets": [], "preloads": ["/assets/new-DLlBm66g.js"] }, "/skills": { "filePath": "/root/opencami/src/routes/skills.tsx", "assets": [], "preloads": ["/assets/skills-Cx12984a.js"] }, "/api/agents": { "filePath": "/root/opencami/src/routes/api/agents.ts" }, "/api/cron": { "filePath": "/root/opencami/src/routes/api/cron.ts" }, "/api/follow-ups": { "filePath": "/root/opencami/src/routes/api/follow-ups.ts" }, "/api/history": { "filePath": "/root/opencami/src/routes/api/history.ts" }, "/api/llm-features": { "filePath": "/root/opencami/src/routes/api/llm-features.ts" }, "/api/models": { "filePath": "/root/opencami/src/routes/api/models.ts" }, "/api/paths": { "filePath": "/root/opencami/src/routes/api/paths.ts" }, "/api/personas": { "filePath": "/root/opencami/src/routes/api/personas.ts" }, "/api/ping": { "filePath": "/root/opencami/src/routes/api/ping.ts" }, "/api/send": { "filePath": "/root/opencami/src/routes/api/send.ts" }, "/api/sessions": { "filePath": "/root/opencami/src/routes/api/sessions.ts" }, "/api/skills": { "filePath": "/root/opencami/src/routes/api/skills.ts" }, "/api/stream": { "filePath": "/root/opencami/src/routes/api/stream.ts" }, "/api/stt": { "filePath": "/root/opencami/src/routes/api/stt.ts" }, "/api/tts": { "filePath": "/root/opencami/src/routes/api/tts.ts" }, "/chat/$sessionKey": { "filePath": "/root/opencami/src/routes/chat/$sessionKey.tsx", "assets": [], "preloads": ["/assets/_sessionKey-DYknvaDS.js", "/assets/useQuery-DMTgpIql.js", "/assets/tooltip-CekkGEYG.js", "/assets/button-DqP4GZwZ.js", "/assets/useMutation-CpD2Pn0F.js", "/assets/use-file-explorer-state-Dfyh4GwR.js", "/assets/useBaseUiId-DLhdkHJl.js", "/assets/useControlled-CpliTEve.js", "/assets/useOnFirstRender-DsFYFJoB.js", "/assets/event-2_Dxdv7h.js", "/assets/CSPContext-TfUptlEu.js", "/assets/DirectionContext-CQMv7g2N.js", "/assets/menu-CB88T7R1.js", "/assets/opencami-logo-C0Kj1DiT.js", "/assets/proxy-D-juuhw6.js", "/assets/markdown-CHUjmWcv.js", "/assets/index-C_gsW9fo.js", "/assets/react-Akh4y69S.js"] }, "/api/dashboard/crons": { "filePath": "/root/opencami/src/routes/api/dashboard/crons.ts" }, "/api/dashboard/gateway": { "filePath": "/root/opencami/src/routes/api/dashboard/gateway.ts" }, "/api/dashboard/system": { "filePath": "/root/opencami/src/routes/api/dashboard/system.ts" }, "/api/files/delete": { "filePath": "/root/opencami/src/routes/api/files/delete.ts" }, "/api/files/download": { "filePath": "/root/opencami/src/routes/api/files/download.ts" }, "/api/files/info": { "filePath": "/root/opencami/src/routes/api/files/info.ts" }, "/api/files/list": { "filePath": "/root/opencami/src/routes/api/files/list.ts" }, "/api/files/mkdir": { "filePath": "/root/opencami/src/routes/api/files/mkdir.ts" }, "/api/files/read": { "filePath": "/root/opencami/src/routes/api/files/read.ts" }, "/api/files/rename": { "filePath": "/root/opencami/src/routes/api/files/rename.ts" }, "/api/files/save": { "filePath": "/root/opencami/src/routes/api/files/save.ts" }, "/api/files/upload": { "filePath": "/root/opencami/src/routes/api/files/upload.ts" } }, "clientEntry": "/assets/main-ZBMVSJTF.js" });
1
+ const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "/root/opencami/src/routes/__root.tsx", "children": ["/", "/agents", "/bots", "/connect", "/dashboard", "/files", "/memory", "/new", "/skills", "/api/agents", "/api/cron", "/api/follow-ups", "/api/history", "/api/llm-features", "/api/models", "/api/paths", "/api/personas", "/api/ping", "/api/send", "/api/sessions", "/api/skills", "/api/stream", "/api/stt", "/api/tts", "/chat/$sessionKey", "/api/dashboard/crons", "/api/dashboard/gateway", "/api/dashboard/system", "/api/files/delete", "/api/files/download", "/api/files/info", "/api/files/list", "/api/files/mkdir", "/api/files/read", "/api/files/rename", "/api/files/save", "/api/files/upload"], "preloads": ["/assets/main-xPlWrMhO.js"], "assets": [] }, "/": { "filePath": "/root/opencami/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-CNPHef4O.js"] }, "/agents": { "filePath": "/root/opencami/src/routes/agents.tsx", "assets": [], "preloads": ["/assets/agents-WqWjsymD.js"] }, "/bots": { "filePath": "/root/opencami/src/routes/bots.tsx", "assets": [], "preloads": ["/assets/bots-DNqiFT7w.js"] }, "/connect": { "filePath": "/root/opencami/src/routes/connect.tsx", "assets": [], "preloads": ["/assets/connect-vQWL0_11.js", "/assets/index-CTT0Y1ya.js", "/assets/button-D0n2Qsd_.js", "/assets/react-BgjQyJHw.js"] }, "/dashboard": { "filePath": "/root/opencami/src/routes/dashboard.tsx", "assets": [], "preloads": ["/assets/dashboard-Knwc61i1.js", "/assets/useQuery-k6EMRoMD.js"] }, "/files": { "filePath": "/root/opencami/src/routes/files.tsx", "assets": [], "preloads": ["/assets/files-BtR_gArr.js"] }, "/memory": { "filePath": "/root/opencami/src/routes/memory.tsx", "assets": [], "preloads": ["/assets/memory-BRGPq5t6.js"] }, "/new": { "filePath": "/root/opencami/src/routes/new.tsx", "assets": [], "preloads": ["/assets/new-DLlBm66g.js"] }, "/skills": { "filePath": "/root/opencami/src/routes/skills.tsx", "assets": [], "preloads": ["/assets/skills-DA9J_tsC.js"] }, "/api/agents": { "filePath": "/root/opencami/src/routes/api/agents.ts" }, "/api/cron": { "filePath": "/root/opencami/src/routes/api/cron.ts" }, "/api/follow-ups": { "filePath": "/root/opencami/src/routes/api/follow-ups.ts" }, "/api/history": { "filePath": "/root/opencami/src/routes/api/history.ts" }, "/api/llm-features": { "filePath": "/root/opencami/src/routes/api/llm-features.ts" }, "/api/models": { "filePath": "/root/opencami/src/routes/api/models.ts" }, "/api/paths": { "filePath": "/root/opencami/src/routes/api/paths.ts" }, "/api/personas": { "filePath": "/root/opencami/src/routes/api/personas.ts" }, "/api/ping": { "filePath": "/root/opencami/src/routes/api/ping.ts" }, "/api/send": { "filePath": "/root/opencami/src/routes/api/send.ts" }, "/api/sessions": { "filePath": "/root/opencami/src/routes/api/sessions.ts" }, "/api/skills": { "filePath": "/root/opencami/src/routes/api/skills.ts" }, "/api/stream": { "filePath": "/root/opencami/src/routes/api/stream.ts" }, "/api/stt": { "filePath": "/root/opencami/src/routes/api/stt.ts" }, "/api/tts": { "filePath": "/root/opencami/src/routes/api/tts.ts" }, "/chat/$sessionKey": { "filePath": "/root/opencami/src/routes/chat/$sessionKey.tsx", "assets": [], "preloads": ["/assets/_sessionKey-yNQ57svB.js", "/assets/useQuery-k6EMRoMD.js", "/assets/tooltip-CcIdgcV0.js", "/assets/button-D0n2Qsd_.js", "/assets/useMutation-eQUrsn-X.js", "/assets/use-file-explorer-state-CN_IJGcd.js", "/assets/useBaseUiId-ClbEYEil.js", "/assets/useControlled-CyT-lqbs.js", "/assets/useOnFirstRender-CR_o2MK_.js", "/assets/event-CHpdjYFR.js", "/assets/CSPContext-CrlIQW7-.js", "/assets/DirectionContext-X-0CRn1O.js", "/assets/menu-BnSEqetd.js", "/assets/opencami-logo-B_hLbomw.js", "/assets/proxy-BnlGpgC1.js", "/assets/markdown-3Js_RbUp.js", "/assets/index-CTT0Y1ya.js", "/assets/react-BgjQyJHw.js"] }, "/api/dashboard/crons": { "filePath": "/root/opencami/src/routes/api/dashboard/crons.ts" }, "/api/dashboard/gateway": { "filePath": "/root/opencami/src/routes/api/dashboard/gateway.ts" }, "/api/dashboard/system": { "filePath": "/root/opencami/src/routes/api/dashboard/system.ts" }, "/api/files/delete": { "filePath": "/root/opencami/src/routes/api/files/delete.ts" }, "/api/files/download": { "filePath": "/root/opencami/src/routes/api/files/download.ts" }, "/api/files/info": { "filePath": "/root/opencami/src/routes/api/files/info.ts" }, "/api/files/list": { "filePath": "/root/opencami/src/routes/api/files/list.ts" }, "/api/files/mkdir": { "filePath": "/root/opencami/src/routes/api/files/mkdir.ts" }, "/api/files/read": { "filePath": "/root/opencami/src/routes/api/files/read.ts" }, "/api/files/rename": { "filePath": "/root/opencami/src/routes/api/files/rename.ts" }, "/api/files/save": { "filePath": "/root/opencami/src/routes/api/files/save.ts" }, "/api/files/upload": { "filePath": "/root/opencami/src/routes/api/files/upload.ts" } }, "clientEntry": "/assets/main-xPlWrMhO.js" });
2
2
  export {
3
3
  tsrStartManifest
4
4
  };
@@ -2,42 +2,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useState, useRef, useEffect, memo } from "react";
3
3
  import { HugeiconsIcon } from "@hugeicons/react";
4
4
  import { Loading03Icon, ArrowRight01Icon } from "@hugeicons/core-free-icons";
5
- import { a as useLlmSettingsStore, b as getLlmHeaders } from "./_sessionKey-Bhksr7VP.js";
6
5
  import { c as cn } from "./button-kI8fEIZQ.js";
7
- import "@tanstack/react-router";
8
- import "@tanstack/react-query";
9
- import "./tooltip-DOvOrSSS.js";
10
- import "@base-ui/react/tooltip";
11
- import "motion/react";
12
- import "@base-ui/react/alert-dialog";
13
- import "./use-file-explorer-state-E6cUvMva.js";
14
- import "@base-ui/react/dialog";
15
- import "zustand";
16
- import "@base-ui/react/collapsible";
17
- import "@base-ui/react/scroll-area";
18
- import "./menu-D8cKTpmN.js";
19
- import "@base-ui/react/menu";
20
- import "./opencami-logo-C-43FL3R.js";
21
- import "./markdown-CFdYXCRQ.js";
22
- import "marked";
23
- import "react-markdown";
24
- import "remark-breaks";
25
- import "remark-gfm";
26
- import "./index-B_F4DTUu.js";
27
- import "zustand/middleware";
28
- import "react-dom";
29
- import "./router-C9JRmWMm.js";
30
- import "node:crypto";
31
- import "node:fs";
32
- import "node:os";
33
- import "node:path";
34
- import "ws";
35
- import "@tanstack/router-core/ssr/client";
36
- import "node:stream";
37
- import "node:child_process";
38
- import "node:util";
39
- import "node:fs/promises";
40
- import "path";
41
6
  import "@base-ui/react/merge-props";
42
7
  import "@base-ui/react/use-render";
43
8
  import "class-variance-authority";
@@ -159,14 +124,12 @@ function generateHeuristicFollowUps(responseText) {
159
124
  function getHeuristicFollowUpTexts(responseText) {
160
125
  return generateHeuristicFollowUps(responseText).map((s) => s.text);
161
126
  }
162
- async function fetchLlmFollowUps(conversationContext, signal) {
163
- const headers = {
164
- "Content-Type": "application/json",
165
- ...getLlmHeaders()
166
- };
127
+ async function fetchFollowUpsViaOpenclaw(conversationContext, signal) {
167
128
  const res = await fetch("/api/llm-features", {
168
129
  method: "POST",
169
- headers,
130
+ headers: {
131
+ "Content-Type": "application/json"
132
+ },
170
133
  body: JSON.stringify({
171
134
  action: "followups",
172
135
  conversationContext
@@ -183,15 +146,7 @@ async function fetchLlmFollowUps(conversationContext, signal) {
183
146
  return [];
184
147
  }
185
148
  function useFollowUpSuggestions(responseText, contextSummary, options) {
186
- const llmSettings = useLlmSettingsStore((state) => state.settings);
187
- const useLlmFollowUps = llmSettings.useLlmFollowUps;
188
- const {
189
- minResponseLength = 50,
190
- timeoutMs = 8e3,
191
- // Use heuristics only if explicitly set OR if LLM follow-ups are disabled
192
- heuristicsOnly: forceHeuristicsOnly
193
- } = options ?? {};
194
- const heuristicsOnly = forceHeuristicsOnly ?? !useLlmFollowUps;
149
+ const { minResponseLength = 50, heuristicsOnly = false } = options ?? {};
195
150
  const [suggestions, setSuggestions] = useState([]);
196
151
  const [isLoading, setIsLoading] = useState(false);
197
152
  const [error, setError] = useState(null);
@@ -234,13 +189,11 @@ function useFollowUpSuggestions(responseText, contextSummary, options) {
234
189
  Assistant's response:
235
190
  ${responseText.slice(0, 2e3)}` : `Assistant's response:
236
191
  ${responseText.slice(0, 2e3)}`;
237
- fetchLlmFollowUps(conversationContext, controller.signal).then((llmSuggestions) => {
238
- if (controller.signal.aborted) {
239
- return;
240
- }
241
- if (llmSuggestions.length > 0) {
242
- setSuggestions(llmSuggestions);
243
- setSource("llm");
192
+ fetchFollowUpsViaOpenclaw(conversationContext, controller.signal).then((openclawSuggestions) => {
193
+ if (controller.signal.aborted) return;
194
+ if (openclawSuggestions.length > 0) {
195
+ setSuggestions(openclawSuggestions);
196
+ setSource("openclaw");
244
197
  }
245
198
  setIsLoading(false);
246
199
  }).catch((err) => {
@@ -248,19 +201,7 @@ ${responseText.slice(0, 2e3)}`;
248
201
  setError(err instanceof Error ? err.message : String(err));
249
202
  setIsLoading(false);
250
203
  });
251
- return () => {
252
- };
253
- }, [
254
- responseText,
255
- contextSummary,
256
- minResponseLength,
257
- timeoutMs,
258
- heuristicsOnly,
259
- llmSettings.llmApiKey,
260
- llmSettings.llmBaseUrl,
261
- llmSettings.llmModel,
262
- llmSettings.llmProvider
263
- ]);
204
+ }, [responseText, contextSummary, minResponseLength, heuristicsOnly]);
264
205
  return { suggestions, isLoading, error, source };
265
206
  }
266
207
  function FollowUpSuggestionsComponent({
@@ -274,8 +215,7 @@ function FollowUpSuggestionsComponent({
274
215
  responseText,
275
216
  contextSummary,
276
217
  {
277
- minResponseLength: 50,
278
- timeoutMs: 8e3
218
+ minResponseLength: 50
279
219
  }
280
220
  );
281
221
  if (suggestions.length === 0 && !isLoading) {
@@ -295,7 +235,7 @@ function FollowUpSuggestionsComponent({
295
235
  className: "animate-spin text-primary-400"
296
236
  }
297
237
  )
298
- ] }) : source === "llm" ? "AI suggestions" : "Follow-up suggestions" })
238
+ ] }) : source === "openclaw" ? "AI suggestions" : "Follow-up suggestions" })
299
239
  ] }),
300
240
  /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: suggestions.map((suggestion, index) => /* @__PURE__ */ jsxs(
301
241
  "button",
@@ -310,7 +250,6 @@ function FollowUpSuggestionsComponent({
310
250
  "focus:outline-none focus:ring-2 focus:ring-primary-500/20 focus:ring-offset-1",
311
251
  "transition-all duration-150 cursor-pointer",
312
252
  "disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-primary-50 disabled:hover:border-primary-200",
313
- // Subtle animation when suggestions update from heuristic to LLM
314
253
  isLoading && "opacity-75"
315
254
  ),
316
255
  children: [
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
- import { R as Route } from "./router-C9JRmWMm.js";
3
+ import { R as Route } from "./router-X2L0PDPI.js";
4
4
  import "@tanstack/react-router";
5
5
  import "@tanstack/react-query";
6
6
  import "node:crypto";