opencami 1.4.0 → 1.5.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 (77) hide show
  1. package/README.md +60 -0
  2. package/dist/client/assets/CSPContext-EgWK8bIJ.js +1 -0
  3. package/dist/client/assets/DirectionContext-DXtY05YF.js +1 -0
  4. package/dist/client/assets/_sessionKey-B89e7G3y.js +100 -0
  5. package/dist/client/assets/agents-screen-1BiEZ9od.js +1 -0
  6. package/dist/client/assets/agents-x54ocA9z.js +2 -0
  7. package/dist/client/assets/bots-screen-BNQciUeJ.js +1 -0
  8. package/dist/client/assets/bots-x86ZHG4b.js +2 -0
  9. package/dist/client/assets/button-nDcsaNPl.js +1 -0
  10. package/dist/client/assets/{connect-D3baVDFL.js → connect-w4lLOqiJ.js} +1 -1
  11. package/dist/client/assets/file-explorer-screen-CAsjd3w8.js +1 -0
  12. package/dist/client/assets/files-Bype5Mnb.js +2 -0
  13. package/dist/client/assets/{index-ByIsZcHh.js → index-36G0WCxU.js} +1 -1
  14. package/dist/client/assets/{index-CVV4XiZo.js → index-BXkRE220.js} +2 -2
  15. package/dist/client/assets/keyboard-shortcuts-dialog-BdCeXRjD.js +1 -0
  16. package/dist/client/assets/{main-CkIF0soY.js → main-B3N0eQFg.js} +129 -17
  17. package/dist/client/assets/{opencami-logo-CIxSO1oo.js → opencami-logo-DD0DPFRQ.js} +1 -1
  18. package/dist/client/assets/{react-BhVdgA5r.js → react-B16OrBeM.js} +1 -1
  19. package/dist/client/assets/search-dialog-BjTPceEl.js +1 -0
  20. package/dist/client/assets/session-export-dialog-DtHKG2zW.js +1 -0
  21. package/dist/client/assets/settings-dialog-hiqdk_UD.js +1 -0
  22. package/dist/client/assets/skills-DhwyFq3y.js +2 -0
  23. package/dist/client/assets/skills-panel-BLUjzfjJ.js +5 -0
  24. package/dist/client/assets/styles-CHP4l6vZ.css +1 -0
  25. package/dist/client/assets/switch-J6wLIVu2.js +1 -0
  26. package/dist/client/assets/tabs-DvPgTz5I.js +1 -0
  27. package/dist/client/assets/tooltip-C14vdXHK.js +1 -0
  28. package/dist/client/assets/use-file-explorer-state-BnaJEqRP.js +12 -0
  29. package/dist/client/assets/useButton-Bnnac1eR.js +1 -0
  30. package/dist/client/assets/useCompositeItem-BgiEMKAt.js +1 -0
  31. package/dist/client/assets/{useControlled-Y306krcC.js → useControlled-BhUuiHAm.js} +1 -1
  32. package/dist/client/assets/{useMutation-0WgW4xQJ.js → useMutation-CFmVaBag.js} +1 -1
  33. package/dist/client/assets/visuallyHidden-DCCICp6T.js +9 -0
  34. package/dist/server/assets/{_sessionKey-BhFH4uWY.js → _sessionKey-tRze5NLR.js} +178 -46
  35. package/dist/server/assets/_tanstack-start-manifest_v-CyfoMvUa.js +4 -0
  36. package/dist/server/assets/{agents-Dz_i76VW.js → agents-CmQ4vvXm.js} +1 -1
  37. package/dist/server/assets/{agents-screen-CqQPJndp.js → agents-screen-bmrIyFbk.js} +43 -35
  38. package/dist/server/assets/{bots-6ryCIgKh.js → bots-Byt6jv0a.js} +1 -1
  39. package/dist/server/assets/bots-screen-C2TGFv42.js +474 -0
  40. package/dist/server/assets/{button-DtQ3rV1m.js → button-CwY2OHFj.js} +2 -2
  41. package/dist/server/assets/{connect-B8jpGQGK.js → connect-d3AqjAqe.js} +2 -2
  42. package/dist/server/assets/{file-explorer-screen-DCfS_Ajx.js → file-explorer-screen-CVlFiAFu.js} +36 -36
  43. package/dist/server/assets/{files-D2GIrPF4.js → files-BIEcSPGp.js} +1 -1
  44. package/dist/server/assets/{index-BNSsDaLb.js → index-CNIATlJ9.js} +22 -3
  45. package/dist/server/assets/{index-B2JHn34C.js → index-CRfLKh30.js} +2 -1
  46. package/dist/server/assets/{keyboard-shortcuts-dialog-CqIm8aYF.js → keyboard-shortcuts-dialog-CsNP85q8.js} +2 -2
  47. package/dist/server/assets/{router-Dme7USeO.js → router-rn7pJO_D.js} +356 -64
  48. package/dist/server/assets/{search-dialog-DG0D9KRN.js → search-dialog-Bz4Cu0KW.js} +23 -6
  49. package/dist/server/assets/{session-export-dialog-DLPZVlQV.js → session-export-dialog-CwclV0Aj.js} +2 -2
  50. package/dist/server/assets/{settings-dialog-BaGT4e5l.js → settings-dialog-BBM7jCjE.js} +386 -95
  51. package/dist/server/assets/skills-Cy8xclXY.js +11 -0
  52. package/dist/server/assets/skills-panel-BnRNb7u9.js +762 -0
  53. package/dist/server/assets/{switch-DnX0MjGS.js → switch-BbkUeVDV.js} +1 -1
  54. package/dist/server/assets/tabs-DDFZob0m.js +67 -0
  55. package/dist/server/assets/{tooltip-gbV6rEVv.js → tooltip-DgsSPocE.js} +1 -1
  56. package/dist/server/assets/{use-file-explorer-state-DfAKF2gZ.js → use-file-explorer-state-Il1LlBAe.js} +1 -1
  57. package/dist/server/server.js +2 -2
  58. package/package.json +6 -2
  59. package/dist/client/assets/_sessionKey-DB95zj1L.js +0 -97
  60. package/dist/client/assets/agents-LFrWe-HX.js +0 -2
  61. package/dist/client/assets/agents-screen-CEBBk1yO.js +0 -1
  62. package/dist/client/assets/bots-CxDwf_WK.js +0 -2
  63. package/dist/client/assets/bots-screen-D6qma1wK.js +0 -1
  64. package/dist/client/assets/button-Il3CHIzX.js +0 -1
  65. package/dist/client/assets/file-explorer-screen-rtV6n-5_.js +0 -1
  66. package/dist/client/assets/files-DMemuq9D.js +0 -2
  67. package/dist/client/assets/keyboard-shortcuts-dialog-DXC0YHoy.js +0 -1
  68. package/dist/client/assets/search-dialog-I1jJplIh.js +0 -1
  69. package/dist/client/assets/session-export-dialog-CH5unryw.js +0 -1
  70. package/dist/client/assets/settings-dialog-B8v-GVJ8.js +0 -1
  71. package/dist/client/assets/styles-BaTVzdPa.css +0 -1
  72. package/dist/client/assets/switch-sQnv1YsK.js +0 -1
  73. package/dist/client/assets/tooltip-j_viC_EE.js +0 -1
  74. package/dist/client/assets/use-file-explorer-state-BUH-u7Jv.js +0 -12
  75. package/dist/client/assets/useButton-9VAzplAB.js +0 -9
  76. package/dist/server/assets/_tanstack-start-manifest_v-BaIrL1VQ.js +0 -4
  77. package/dist/server/assets/bots-screen-DS_ZF9Ec.js +0 -417
@@ -3,14 +3,14 @@ import { useState, useRef, useEffect, useCallback, useMemo } from "react";
3
3
  import { useNavigate } from "@tanstack/react-router";
4
4
  import { HugeiconsIcon } from "@hugeicons/react";
5
5
  import { Search01Icon, Cancel01Icon, Loading03Icon } from "@hugeicons/core-free-icons";
6
- import { D as DialogRoot, a as DialogContent } from "./use-file-explorer-state-DfAKF2gZ.js";
6
+ import { D as DialogRoot, a as DialogContent } from "./use-file-explorer-state-Il1LlBAe.js";
7
7
  import { useQueryClient } from "@tanstack/react-query";
8
- import { c as chatQueryKeys } from "./_sessionKey-BhFH4uWY.js";
9
- import { c as cn } from "./button-DtQ3rV1m.js";
8
+ import { c as chatQueryKeys } from "./_sessionKey-tRze5NLR.js";
9
+ import { c as cn } from "./button-CwY2OHFj.js";
10
10
  import "@base-ui/react/dialog";
11
11
  import "@base-ui/react/menu";
12
12
  import "zustand";
13
- import "./tooltip-gbV6rEVv.js";
13
+ import "./tooltip-DgsSPocE.js";
14
14
  import "@base-ui/react/tooltip";
15
15
  import "motion/react";
16
16
  import "@base-ui/react/alert-dialog";
@@ -21,7 +21,7 @@ import "marked";
21
21
  import "react-markdown";
22
22
  import "remark-breaks";
23
23
  import "remark-gfm";
24
- import "./index-BNSsDaLb.js";
24
+ import "./index-CNIATlJ9.js";
25
25
  import "shiki/core";
26
26
  import "shiki/engine/javascript";
27
27
  import "@shikijs/themes/vitesse-dark";
@@ -57,13 +57,14 @@ import "@shikijs/langs/xml";
57
57
  import "@shikijs/langs/yaml";
58
58
  import "zustand/middleware";
59
59
  import "react-dom";
60
- import "./router-Dme7USeO.js";
60
+ import "./router-rn7pJO_D.js";
61
61
  import "node:crypto";
62
62
  import "ws";
63
63
  import "node:fs";
64
64
  import "node:path";
65
65
  import "node:os";
66
66
  import "@tanstack/router-core/ssr/client";
67
+ import "node:child_process";
67
68
  import "node:fs/promises";
68
69
  import "path";
69
70
  import "@base-ui/react/merge-props";
@@ -123,6 +124,7 @@ function useSearch({ sessions, currentFriendlyId, currentSessionKey }) {
123
124
  friendlyId: currentFriendlyId,
124
125
  sessionTitle,
125
126
  messageIndex: index,
127
+ messageId: typeof message.id === "string" ? message.id : void 0,
126
128
  messageRole: message.role || "unknown",
127
129
  messageText: text,
128
130
  matchStart: matchIndex,
@@ -191,6 +193,7 @@ function useSearch({ sessions, currentFriendlyId, currentSessionKey }) {
191
193
  friendlyId: session.friendlyId,
192
194
  sessionTitle,
193
195
  messageIndex: index,
196
+ messageId: typeof message.id === "string" ? message.id : void 0,
194
197
  messageRole: message.role || "unknown",
195
198
  messageText: text,
196
199
  matchStart: matchIndex,
@@ -271,6 +274,7 @@ function highlightMatch(text, query) {
271
274
  const after = text.slice(matchIndex + query.length, end) + (end < text.length ? "..." : "");
272
275
  return { before, match, after };
273
276
  }
277
+ const SEARCH_JUMP_TARGET_KEY = "opencami-search-jump-target";
274
278
  function SearchDialog({
275
279
  open,
276
280
  onOpenChange,
@@ -340,6 +344,19 @@ function SearchDialog({
340
344
  if (mode === "current" && onJumpToMessage) {
341
345
  onJumpToMessage(result);
342
346
  } else {
347
+ if (result.messageId && typeof window !== "undefined") {
348
+ try {
349
+ sessionStorage.setItem(
350
+ SEARCH_JUMP_TARGET_KEY,
351
+ JSON.stringify({
352
+ friendlyId: result.friendlyId,
353
+ messageId: result.messageId,
354
+ at: Date.now()
355
+ })
356
+ );
357
+ } catch {
358
+ }
359
+ }
343
360
  navigate({
344
361
  to: "/chat/$sessionKey",
345
362
  params: { sessionKey: result.friendlyId }
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-DfAKF2gZ.js";
4
- import { B as Button } from "./button-DtQ3rV1m.js";
3
+ import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-Il1LlBAe.js";
4
+ import { B as Button } from "./button-CwY2OHFj.js";
5
5
  import "@base-ui/react/dialog";
6
6
  import "@base-ui/react/menu";
7
7
  import "zustand";