@xopcai/xopc 0.0.95 → 0.0.96

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 (428) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  3. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  4. package/dist/extensions/telegram/src/plugin.js +1 -1
  5. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  6. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  7. package/dist/extensions/telegram/xopc.extension.json +1 -1
  8. package/dist/extensions/weixin/src/api/api.js +2 -2
  9. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  10. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  11. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  12. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  13. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  14. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  15. package/dist/extensions/weixin/src/plugin.js +1 -1
  16. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  17. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  18. package/dist/gateway/static/root/assets/{agents-CKe2LMnz.js → agents-DmIuSaOE.js} +2 -2
  19. package/dist/gateway/static/root/assets/{apps-page-Mi9mMIZ1.js → apps-page-DFcHBxLw.js} +1 -1
  20. package/dist/gateway/static/root/assets/{channels-settings-BrdyC101.js → channels-settings-DDUf55C5.js} +1 -1
  21. package/dist/gateway/static/root/assets/{channels-status-swr-D55Bu0nn.js → channels-status-swr-BxF-_nzD.js} +1 -1
  22. package/dist/gateway/static/root/assets/{cron-api-CPpx2l-E.js → cron-api-DylQtnb_.js} +1 -1
  23. package/dist/gateway/static/root/assets/{cron-page-Bx2jB0YN.js → cron-page-BO0d9Pf-.js} +1 -1
  24. package/dist/gateway/static/root/assets/{dist-D_AiG_Kg.js → dist-BskF0qDS.js} +1 -1
  25. package/dist/gateway/static/root/assets/{extension-debug-page-6ieHsxRE.js → extension-debug-page-BcZdTdjJ.js} +1 -1
  26. package/dist/gateway/static/root/assets/{extension-page-B8nywHRO.js → extension-page-D2iuDa1D.js} +1 -1
  27. package/dist/gateway/static/root/assets/{extension-settings-page-DrskdEIV.js → extension-settings-page-BKpQCgLc.js} +1 -1
  28. package/dist/gateway/static/root/assets/{fetch-B0aeeY0q.js → fetch-CtNDpjij.js} +1 -1
  29. package/dist/gateway/static/root/assets/{field-primitives--9ooY8Xl.js → field-primitives-2PekrGZF.js} +1 -1
  30. package/dist/gateway/static/root/assets/{heartbeat-config-api-DUZ_W1w-.js → heartbeat-config-api-D3D7SW8A.js} +1 -1
  31. package/dist/gateway/static/root/assets/index-BvEhL9RQ.css +1 -0
  32. package/dist/gateway/static/root/assets/{index-Dj9FuxCm.js → index-Db9fd_X4.js} +74 -74
  33. package/dist/gateway/static/root/assets/{logs-page-CaXqhpKf.js → logs-page-B3I1a26m.js} +1 -1
  34. package/dist/gateway/static/root/assets/{note-detail-page-DYzym2B0.js → note-detail-page-BOizhtJ8.js} +54 -53
  35. package/dist/gateway/static/root/assets/{note-detail-page-B91pLkEI.css → note-detail-page-D4ZIVQbk.css} +1 -1
  36. package/dist/gateway/static/root/assets/{note-time-B-vSi2dR.js → note-time-CjUGtqKr.js} +1 -1
  37. package/dist/gateway/static/root/assets/{notes-page-BkhWdGiT.js → notes-page-BB8-I0Of.js} +1 -1
  38. package/dist/gateway/static/root/assets/{sessions-page-53YFokoe.js → sessions-page-BcH-1K9i.js} +1 -1
  39. package/dist/gateway/static/root/assets/{settings-advanced-gate-BaZmaklx.js → settings-advanced-gate-Czn8nnjN.js} +1 -1
  40. package/dist/gateway/static/root/assets/{settings-form-section-DIJPKpTR.js → settings-form-section-ZZWDwgVe.js} +1 -1
  41. package/dist/gateway/static/root/assets/{settings-page-Dvb230FF.js → settings-page-BX8c_zrN.js} +1 -1
  42. package/dist/gateway/static/root/assets/{share-preview-page-CRyjTAG6.js → share-preview-page-Ch3_6Qah.js} +1 -1
  43. package/dist/gateway/static/root/assets/{skills-page-C5ZJbfAe.js → skills-page-WO0bbJ54.js} +1 -1
  44. package/dist/gateway/static/root/assets/{theme-store-Cg_SuBw0.js → theme-store-XxRFRZDX.js} +1 -1
  45. package/dist/gateway/static/root/assets/url-6zpynn1R.js +3 -0
  46. package/dist/gateway/static/root/assets/{utils-lMYoWhqo.js → utils-uTYKh54l.js} +1 -1
  47. package/dist/gateway/static/root/assets/{voice-api-key-field-Dda2pcUU.js → voice-api-key-field-BIAYHRs-.js} +1 -1
  48. package/dist/gateway/static/root/assets/{workflow-page.utils-KIladUrU.js → workflow-page.utils-BbWhqD36.js} +1 -1
  49. package/dist/gateway/static/root/assets/{workflows-page-BTis4Z7Y.js → workflows-page-D4RIF7E1.js} +1 -1
  50. package/dist/gateway/static/root/index.html +5 -5
  51. package/dist/package.js +1 -1
  52. package/dist/src/agent/agent-manager.js +15 -9
  53. package/dist/src/agent/agent-manager.js.map +1 -1
  54. package/dist/src/agent/agent-scope.d.ts +0 -1
  55. package/dist/src/agent/agent-scope.js +2 -5
  56. package/dist/src/agent/agent-scope.js.map +1 -1
  57. package/dist/src/agent/bootstrap/bootstrap-cache.d.ts +3 -0
  58. package/dist/src/agent/bootstrap/bootstrap-cache.js +13 -3
  59. package/dist/src/agent/bootstrap/bootstrap-cache.js.map +1 -1
  60. package/dist/src/agent/bootstrap/bootstrap-files.d.ts +6 -0
  61. package/dist/src/agent/bootstrap/bootstrap-files.js +35 -12
  62. package/dist/src/agent/bootstrap/bootstrap-files.js.map +1 -1
  63. package/dist/src/agent/bootstrap/load-bootstrap-files.d.ts +5 -2
  64. package/dist/src/agent/bootstrap/load-bootstrap-files.js +12 -3
  65. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +1 -1
  66. package/dist/src/agent/context/workspace-seed.js +8 -4
  67. package/dist/src/agent/context/workspace-seed.js.map +1 -1
  68. package/dist/src/agent/context/workspace-state.d.ts +52 -0
  69. package/dist/src/agent/context/workspace-state.js +101 -0
  70. package/dist/src/agent/context/workspace-state.js.map +1 -0
  71. package/dist/src/agent/embedded/index.d.ts +2 -2
  72. package/dist/src/agent/embedded/index.js +3 -3
  73. package/dist/src/agent/embedded/run-turn.js +0 -3
  74. package/dist/src/agent/embedded/run-turn.js.map +1 -1
  75. package/dist/src/agent/embedded/session-manager-init.d.ts +0 -17
  76. package/dist/src/agent/embedded/session-manager-init.js +1 -36
  77. package/dist/src/agent/embedded/session-manager-init.js.map +1 -1
  78. package/dist/src/agent/embedded/session-runner.d.ts +3 -12
  79. package/dist/src/agent/embedded/session-runner.js +12 -26
  80. package/dist/src/agent/embedded/session-runner.js.map +1 -1
  81. package/dist/src/agent/embedded/session-tool-result-guard.js +2 -4
  82. package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
  83. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.d.ts +10 -0
  84. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +34 -0
  85. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js.map +1 -0
  86. package/dist/src/agent/goals/goal-run-store.js +4 -4
  87. package/dist/src/agent/goals/persistent-goal-service.js +8 -15
  88. package/dist/src/agent/goals/persistent-goal-service.js.map +1 -1
  89. package/dist/src/agent/goals/post-turn.js +2 -2
  90. package/dist/src/agent/image/load-image-media.js +2 -2
  91. package/dist/src/agent/ipc/bus.js +1 -1
  92. package/dist/src/agent/ipc/inbox.js +2 -2
  93. package/dist/src/agent/ipc/socket.js +1 -1
  94. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  95. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  96. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  97. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  98. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  99. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  100. package/dist/src/agent/memory/dreaming/events.js +1 -1
  101. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  102. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  103. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  104. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  105. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  106. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  107. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  108. package/dist/src/agent/models/manager.js +1 -1
  109. package/dist/src/agent/prompt/memory/index.d.ts +1 -0
  110. package/dist/src/agent/prompt/memory/index.js +34 -80
  111. package/dist/src/agent/prompt/memory/index.js.map +1 -1
  112. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  113. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  114. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  115. package/dist/src/agent/sandbox/path-policy.js +2 -2
  116. package/dist/src/agent/service/build-direct-message-content.js +1 -1
  117. package/dist/src/agent/service/process-direct-one-shot.js +8 -17
  118. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  119. package/dist/src/agent/service/process-direct-streaming.js +14 -23
  120. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  121. package/dist/src/agent/service.js +7 -11
  122. package/dist/src/agent/service.js.map +1 -1
  123. package/dist/src/agent/session/session-inspector.js +1 -1
  124. package/dist/src/agent/skills/config.js +1 -1
  125. package/dist/src/agent/skills/hub-hash.js +2 -2
  126. package/dist/src/agent/skills/hub-lock.js +1 -1
  127. package/dist/src/agent/skills/hub-pull.js +3 -3
  128. package/dist/src/agent/skills/index.js +1 -1
  129. package/dist/src/agent/skills/managed-store.js +1 -1
  130. package/dist/src/agent/skills/scanner.js +1 -1
  131. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  132. package/dist/src/agent/skills/skill-manager.js +1 -1
  133. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  134. package/dist/src/agent/tools/factory.js +1 -1
  135. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  136. package/dist/src/agent/tools/index.d.ts +0 -1
  137. package/dist/src/agent/tools/index.js +1 -2
  138. package/dist/src/agent/tools/send-media.js +1 -1
  139. package/dist/src/agent/tools/session-search-tool.d.ts +0 -1
  140. package/dist/src/agent/tools/session-search-tool.js +11 -6
  141. package/dist/src/agent/tools/session-search-tool.js.map +1 -1
  142. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  143. package/dist/src/agent/tools/workflow-tool.js +1 -1
  144. package/dist/src/agent/tools/write.js +1 -1
  145. package/dist/src/agent/workflow/catalog.js +1 -1
  146. package/dist/src/auth/credentials.js +3 -3
  147. package/dist/src/auth/profiles/store.js +1 -1
  148. package/dist/src/auth/sync-provider-auth.js +1 -1
  149. package/dist/src/browser/cache-dir-policy.js +1 -1
  150. package/dist/src/browser/cdp-local-launcher.js +2 -2
  151. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  152. package/dist/src/browser/providers/cloakbrowser.js +4 -4
  153. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  154. package/dist/src/browser/stealth.js +1 -1
  155. package/dist/src/channels/attachments/inbound-persist.js +1 -1
  156. package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
  157. package/dist/src/channels/outbound/persist-store.js +1 -1
  158. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  159. package/dist/src/channels/pairing/pairing-store.js +2 -2
  160. package/dist/src/chat-commands/agent-edit.js +2 -2
  161. package/dist/src/chat-commands/builtins/config.js +2 -2
  162. package/dist/src/chat-commands/context.js +1 -1
  163. package/dist/src/cli/commands/config.js +1 -1
  164. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  165. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  166. package/dist/src/cli/commands/doctor/checks/session-integrity.js +32 -95
  167. package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +1 -1
  168. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  169. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  170. package/dist/src/cli/commands/extension-dev.js +1 -1
  171. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  172. package/dist/src/cli/commands/extension-pack.js +1 -1
  173. package/dist/src/cli/commands/gateway/logs.js +1 -1
  174. package/dist/src/cli/commands/image.js +1 -1
  175. package/dist/src/cli/commands/init.js +5 -7
  176. package/dist/src/cli/commands/init.js.map +1 -1
  177. package/dist/src/cli/commands/onboard.js +1 -1
  178. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  179. package/dist/src/commands/agents.config.js +1 -1
  180. package/dist/src/config/agent-profile.js +1 -1
  181. package/dist/src/config/gateway-bind.js +1 -1
  182. package/dist/src/config/index.js +7 -8
  183. package/dist/src/config/index.js.map +1 -1
  184. package/dist/src/config/loader.js +2 -2
  185. package/dist/src/config/models-json.js +2 -2
  186. package/dist/src/config/paths-state.d.ts +3 -0
  187. package/dist/src/config/paths-state.js +7 -3
  188. package/dist/src/config/paths-state.js.map +1 -1
  189. package/dist/src/config/paths.d.ts +5 -35
  190. package/dist/src/config/paths.js +6 -50
  191. package/dist/src/config/paths.js.map +1 -1
  192. package/dist/src/config/profile.js +2 -2
  193. package/dist/src/config/schema.d.ts +15 -0
  194. package/dist/src/config/schema.js +11 -0
  195. package/dist/src/config/schema.js.map +1 -1
  196. package/dist/src/config/workspace-path.js +1 -1
  197. package/dist/src/cron/execution-types.d.ts +42 -0
  198. package/dist/src/cron/executor.js +2 -2
  199. package/dist/src/cron/persistence.js +1 -1
  200. package/dist/src/cron/run-log-store.d.ts +4 -8
  201. package/dist/src/cron/run-log-store.js +26 -78
  202. package/dist/src/cron/run-log-store.js.map +1 -1
  203. package/dist/src/cron/service.d.ts +3 -3
  204. package/dist/src/cron/service.js +2 -2
  205. package/dist/src/cron/service.js.map +1 -1
  206. package/dist/src/cron/types.d.ts +1 -42
  207. package/dist/src/daemon/constants.js +1 -1
  208. package/dist/src/daemon/install-plan.js +2 -2
  209. package/dist/src/daemon/launchd.js +2 -2
  210. package/dist/src/daemon/schtasks.js +2 -2
  211. package/dist/src/daemon/systemd.js +2 -2
  212. package/dist/src/extensions/bundle-mcp.js +1 -1
  213. package/dist/src/extensions/discover-extensions.js +1 -1
  214. package/dist/src/extensions/health.js +1 -1
  215. package/dist/src/extensions/loader.js +1 -1
  216. package/dist/src/extensions/lockfile.js +2 -2
  217. package/dist/src/extensions/update.js +1 -1
  218. package/dist/src/gateway/agents-admin.js +8 -3
  219. package/dist/src/gateway/agents-admin.js.map +1 -1
  220. package/dist/src/gateway/file-path-classifier.d.ts +0 -1
  221. package/dist/src/gateway/file-path-classifier.js +2 -8
  222. package/dist/src/gateway/file-path-classifier.js.map +1 -1
  223. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  224. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  225. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  226. package/dist/src/gateway/hono/oauth.js +1 -1
  227. package/dist/src/gateway/hono/routes/agents.js +1 -1
  228. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  229. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  230. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  231. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  232. package/dist/src/gateway/hono/routes/models.js +1 -1
  233. package/dist/src/gateway/hono/routes/shares.js +1 -1
  234. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  235. package/dist/src/gateway/lock.js +3 -3
  236. package/dist/src/gateway/ports.js +1 -1
  237. package/dist/src/gateway/service/agent-runner.js +2 -2
  238. package/dist/src/gateway/service/marketplace-service.js +2 -2
  239. package/dist/src/gateway/service.js +5 -1
  240. package/dist/src/gateway/service.js.map +1 -1
  241. package/dist/src/gateway/session-reset-service.d.ts +1 -1
  242. package/dist/src/gateway/session-reset-service.js +1 -1
  243. package/dist/src/gateway/session-reset-service.js.map +1 -1
  244. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  245. package/dist/src/infra/brew.js +1 -1
  246. package/dist/src/infra/node-sqlite.d.ts +1 -0
  247. package/dist/src/infra/node-sqlite.js +17 -0
  248. package/dist/src/infra/node-sqlite.js.map +1 -0
  249. package/dist/src/infra/package-json.js +1 -1
  250. package/dist/src/infra/package-update-steps.js +1 -1
  251. package/dist/src/infra/path-env.js +2 -2
  252. package/dist/src/infra/restart.js +2 -2
  253. package/dist/src/infra/sqlite-errors.d.ts +1 -0
  254. package/dist/src/infra/sqlite-errors.js +77 -0
  255. package/dist/src/infra/sqlite-errors.js.map +1 -0
  256. package/dist/src/infra/stable-node-path.js +1 -1
  257. package/dist/src/infra/unhandled-rejections.d.ts +1 -0
  258. package/dist/src/infra/unhandled-rejections.js +25 -0
  259. package/dist/src/infra/unhandled-rejections.js.map +1 -0
  260. package/dist/src/infra/update-check.js +1 -1
  261. package/dist/src/infra/update-global.js +1 -1
  262. package/dist/src/infra/update-lock.js +3 -3
  263. package/dist/src/infra/update-runner.js +1 -1
  264. package/dist/src/infra/update-startup.js +2 -2
  265. package/dist/src/infra/warning-filter.d.ts +7 -0
  266. package/dist/src/infra/warning-filter.js +59 -0
  267. package/dist/src/infra/warning-filter.js.map +1 -0
  268. package/dist/src/infra/write-file-atomic.js +2 -2
  269. package/dist/src/notes/store.d.ts +3 -9
  270. package/dist/src/notes/store.js +22 -196
  271. package/dist/src/notes/store.js.map +1 -1
  272. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  273. package/dist/src/providers/index.js +2 -2
  274. package/dist/src/providers/model-registry.js +1 -1
  275. package/dist/src/session/config-store.d.ts +6 -75
  276. package/dist/src/session/config-store.js +38 -144
  277. package/dist/src/session/config-store.js.map +1 -1
  278. package/dist/src/session/config-types.d.ts +15 -0
  279. package/dist/src/session/config-types.js +1 -0
  280. package/dist/src/session/index.d.ts +1 -3
  281. package/dist/src/session/index.js +3 -5
  282. package/dist/src/session/init-session-turn.d.ts +0 -6
  283. package/dist/src/session/init-session-turn.js +18 -18
  284. package/dist/src/session/init-session-turn.js.map +1 -1
  285. package/dist/src/session/lifecycle-timestamps.d.ts +5 -2
  286. package/dist/src/session/lifecycle-timestamps.js.map +1 -1
  287. package/dist/src/session/{parity/load-jsonl-entries.js → load-jsonl-entries.js} +1 -1
  288. package/dist/src/session/load-jsonl-entries.js.map +1 -0
  289. package/dist/src/session/manager.d.ts +5 -3
  290. package/dist/src/session/manager.js +1 -5
  291. package/dist/src/session/manager.js.map +1 -1
  292. package/dist/src/session/resolve-session.d.ts +3 -6
  293. package/dist/src/session/resolve-session.js +26 -31
  294. package/dist/src/session/resolve-session.js.map +1 -1
  295. package/dist/src/session/session-context-for-llm.js +5 -1
  296. package/dist/src/session/session-context-for-llm.js.map +1 -1
  297. package/dist/src/session/session-id.js +12 -0
  298. package/dist/src/session/session-id.js.map +1 -0
  299. package/dist/src/session/session-title.js +2 -2
  300. package/dist/src/session/session-workspace.d.ts +1 -1
  301. package/dist/src/session/session-workspace.js.map +1 -1
  302. package/dist/src/session/store.d.ts +14 -63
  303. package/dist/src/session/store.js +172 -847
  304. package/dist/src/session/store.js.map +1 -1
  305. package/dist/src/session/stored-rows-to-file-entries.d.ts +11 -0
  306. package/dist/src/session/stored-rows-to-file-entries.js +95 -0
  307. package/dist/src/session/stored-rows-to-file-entries.js.map +1 -0
  308. package/dist/src/session/transcript-events.d.ts +1 -2
  309. package/dist/src/session/transcript-events.js +5 -12
  310. package/dist/src/session/transcript-events.js.map +1 -1
  311. package/dist/src/session/transcript-format.d.ts +1 -1
  312. package/dist/src/session/transcript-format.js.map +1 -1
  313. package/dist/src/session/transcript-stats.d.ts +1 -0
  314. package/dist/src/session/transcript-stats.js +10 -0
  315. package/dist/src/session/transcript-stats.js.map +1 -0
  316. package/dist/src/share/share-auto.js +2 -2
  317. package/dist/src/share/share-store.js +3 -3
  318. package/dist/src/share/share-thumbnail.js +2 -2
  319. package/dist/src/share/share-zip.js +1 -1
  320. package/dist/src/share/site-share-store.js +3 -3
  321. package/dist/src/share/site-static-serve.js +1 -1
  322. package/dist/src/storage/sqlite/config-repository.d.ts +6 -0
  323. package/dist/src/storage/sqlite/config-repository.js +56 -0
  324. package/dist/src/storage/sqlite/config-repository.js.map +1 -0
  325. package/dist/src/storage/sqlite/connection.d.ts +38 -0
  326. package/dist/src/storage/sqlite/connection.js +258 -0
  327. package/dist/src/storage/sqlite/connection.js.map +1 -0
  328. package/dist/src/storage/sqlite/cron-run-repository.d.ts +5 -0
  329. package/dist/src/storage/sqlite/cron-run-repository.js +97 -0
  330. package/dist/src/storage/sqlite/cron-run-repository.js.map +1 -0
  331. package/dist/src/storage/sqlite/fts.d.ts +2 -0
  332. package/dist/src/storage/sqlite/fts.js +11 -0
  333. package/dist/src/storage/sqlite/fts.js.map +1 -0
  334. package/dist/src/storage/sqlite/index.d.ts +12 -0
  335. package/dist/src/storage/sqlite/index.js +13 -0
  336. package/dist/src/storage/sqlite/memory-index-repository.d.ts +18 -0
  337. package/dist/src/storage/sqlite/memory-index-repository.js +132 -0
  338. package/dist/src/storage/sqlite/memory-index-repository.js.map +1 -0
  339. package/dist/src/storage/sqlite/notes-repository.d.ts +11 -0
  340. package/dist/src/storage/sqlite/notes-repository.js +191 -0
  341. package/dist/src/storage/sqlite/notes-repository.js.map +1 -0
  342. package/dist/src/storage/sqlite/paths.d.ts +1 -0
  343. package/dist/src/storage/sqlite/paths.js +7 -0
  344. package/dist/src/storage/sqlite/paths.js.map +1 -0
  345. package/dist/src/storage/sqlite/row-mappers.d.ts +82 -0
  346. package/dist/src/storage/sqlite/row-mappers.js +164 -0
  347. package/dist/src/storage/sqlite/row-mappers.js.map +1 -0
  348. package/dist/src/storage/sqlite/schema.d.ts +5 -0
  349. package/dist/src/storage/sqlite/schema.js +43 -0
  350. package/dist/src/storage/sqlite/schema.js.map +1 -0
  351. package/dist/src/storage/sqlite/schema.sql +195 -0
  352. package/dist/src/storage/sqlite/session-metadata.d.ts +8 -0
  353. package/dist/src/storage/sqlite/session-metadata.js +83 -0
  354. package/dist/src/storage/sqlite/session-metadata.js.map +1 -0
  355. package/dist/src/storage/sqlite/session-repository.d.ts +29 -0
  356. package/dist/src/storage/sqlite/session-repository.js +268 -0
  357. package/dist/src/storage/sqlite/session-repository.js.map +1 -0
  358. package/dist/src/storage/sqlite/transaction.d.ts +11 -0
  359. package/dist/src/storage/sqlite/transaction.js +115 -0
  360. package/dist/src/storage/sqlite/transaction.js.map +1 -0
  361. package/dist/src/storage/sqlite/transcript-repository.d.ts +34 -0
  362. package/dist/src/storage/sqlite/transcript-repository.js +241 -0
  363. package/dist/src/storage/sqlite/transcript-repository.js.map +1 -0
  364. package/dist/src/tui/clipboard-image.js +3 -3
  365. package/dist/src/tui/theme-manager.js +1 -1
  366. package/dist/src/tui/tui-keybindings-file.js +1 -1
  367. package/dist/src/tui/tui-scoped-models.js +2 -2
  368. package/dist/src/tui/tui-settings.js +1 -1
  369. package/dist/src/tui/tui.js +3 -3
  370. package/dist/src/tunnel/frpc-binary.js +3 -3
  371. package/dist/src/tunnel/frpc-config.js +1 -1
  372. package/dist/src/tunnel/frpc-extract.js +1 -1
  373. package/dist/src/tunnel/tunnel-state.js +1 -1
  374. package/dist/src/utils/logger/audit.js +1 -1
  375. package/dist/src/utils/logger/log-store.js +1 -1
  376. package/dist/src/utils/logger/rotation.js +1 -1
  377. package/dist/src/voice/tts/audio.js +1 -1
  378. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  379. package/dist/src/workflows/service/workflow-session-bridge.js +41 -64
  380. package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
  381. package/dist/src/workflows/store/event-store.js +1 -1
  382. package/dist/src/workflows/store/run-store.js +1 -1
  383. package/package.json +2 -2
  384. package/dist/gateway/static/root/assets/index-Bj_l8QDp.css +0 -1
  385. package/dist/gateway/static/root/assets/url-BHHmdJYc.js +0 -3
  386. package/dist/src/agent/embedded/session-manager-cache.d.ts +0 -19
  387. package/dist/src/agent/embedded/session-manager-cache.js +0 -48
  388. package/dist/src/agent/embedded/session-manager-cache.js.map +0 -1
  389. package/dist/src/session/parity/artifacts.d.ts +0 -16
  390. package/dist/src/session/parity/artifacts.js +0 -80
  391. package/dist/src/session/parity/artifacts.js.map +0 -1
  392. package/dist/src/session/parity/jsonl-transcript-io.d.ts +0 -54
  393. package/dist/src/session/parity/jsonl-transcript-io.js +0 -236
  394. package/dist/src/session/parity/jsonl-transcript-io.js.map +0 -1
  395. package/dist/src/session/parity/load-jsonl-entries.js.map +0 -1
  396. package/dist/src/session/parity/session-id.js +0 -18
  397. package/dist/src/session/parity/session-id.js.map +0 -1
  398. package/dist/src/session/parity/sessions-json-cache.d.ts +0 -14
  399. package/dist/src/session/parity/sessions-json-cache.js +0 -98
  400. package/dist/src/session/parity/sessions-json-cache.js.map +0 -1
  401. package/dist/src/session/parity/sessions-json-file-read.d.ts +0 -6
  402. package/dist/src/session/parity/sessions-json-file-read.js +0 -19
  403. package/dist/src/session/parity/sessions-json-file-read.js.map +0 -1
  404. package/dist/src/session/parity/sessions-json-file.d.ts +0 -11
  405. package/dist/src/session/parity/sessions-json-file.js +0 -52
  406. package/dist/src/session/parity/sessions-json-file.js.map +0 -1
  407. package/dist/src/session/parity/sessions-json-patch.d.ts +0 -14
  408. package/dist/src/session/parity/sessions-json-patch.js +0 -40
  409. package/dist/src/session/parity/sessions-json-patch.js.map +0 -1
  410. package/dist/src/session/parity/transcript-file-lock.d.ts +0 -22
  411. package/dist/src/session/parity/transcript-file-lock.js +0 -142
  412. package/dist/src/session/parity/transcript-file-lock.js.map +0 -1
  413. package/dist/src/session/parity/transcript-pagination.d.ts +0 -29
  414. package/dist/src/session/parity/transcript-pagination.js +0 -132
  415. package/dist/src/session/parity/transcript-pagination.js.map +0 -1
  416. package/dist/src/session/parity/transcript-paths.d.ts +0 -13
  417. package/dist/src/session/parity/transcript-paths.js +0 -64
  418. package/dist/src/session/parity/transcript-paths.js.map +0 -1
  419. package/dist/src/session/parity/xopc-session-disk-entry.d.ts +0 -22
  420. package/dist/src/session/search-index-cache.d.ts +0 -6
  421. package/dist/src/session/search-index-cache.js +0 -44
  422. package/dist/src/session/search-index-cache.js.map +0 -1
  423. package/dist/src/session/search-index.d.ts +0 -20
  424. package/dist/src/session/search-index.js +0 -124
  425. package/dist/src/session/search-index.js.map +0 -1
  426. /package/dist/src/{session/parity/xopc-session-disk-entry.js → cron/execution-types.js} +0 -0
  427. /package/dist/src/session/{parity/load-jsonl-entries.d.ts → load-jsonl-entries.d.ts} +0 -0
  428. /package/dist/src/session/{parity/session-id.d.ts → session-id.d.ts} +0 -0
@@ -1,22 +0,0 @@
1
- import type { SessionMetadata } from '../types.js';
2
- /**
3
- * One value in `sessions.json` (OpenClaw SessionEntry–shaped subset + xopc metadata bag).
4
- */
5
- export interface XopcSessionDiskEntry extends Record<string, unknown> {
6
- sessionId: string;
7
- updatedAt: number;
8
- sessionStartedAt?: number;
9
- /** Last user/channel interaction (ms) — extends idle reset lifetime. */
10
- lastInteractionAt?: number;
11
- /** Persisted thinking level (OpenClaw SessionEntry parity). */
12
- thinkingLevel?: string;
13
- /** Persisted verbose level (OpenClaw SessionEntry parity). */
14
- verboseLevel?: string;
15
- sessionFile?: string;
16
- pluginExtensions?: {
17
- xopc?: {
18
- /** Full {@link SessionMetadata} including `key`. */
19
- metadata: SessionMetadata;
20
- };
21
- };
22
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Shared cache for {@link SessionSearchIndex} builds (invalidated on session writes).
3
- */
4
- import { SessionSearchIndex } from './search-index.js';
5
- export declare function invalidateSessionSearchIndexCache(): void;
6
- export declare function getOrLoadSessionSearchIndex(sessionsRoot: string): Promise<SessionSearchIndex>;
@@ -1,44 +0,0 @@
1
- import { FILENAMES, init_paths } from "../config/paths.js";
2
- import { SessionSearchIndex } from "./search-index.js";
3
- import { join } from "node:path";
4
- import { stat } from "node:fs/promises";
5
- //#region src/session/search-index-cache.ts
6
- /**
7
- * Shared cache for {@link SessionSearchIndex} builds (invalidated on session writes).
8
- */
9
- init_paths();
10
- const INDEX_CACHE_TTL_MS = 9e4;
11
- let indexCache = null;
12
- function invalidateSessionSearchIndexCache() {
13
- indexCache = null;
14
- }
15
- async function getOrLoadSessionSearchIndex(sessionsRoot) {
16
- const indexPath = join(sessionsRoot, FILENAMES.SESSIONS_MAP);
17
- let mtime = 0;
18
- try {
19
- mtime = (await stat(indexPath)).mtimeMs;
20
- } catch {
21
- mtime = 0;
22
- }
23
- const now = Date.now();
24
- if (indexCache && indexCache.root === sessionsRoot && indexCache.indexFileMtime === mtime && now - indexCache.builtAt < INDEX_CACHE_TTL_MS) return indexCache.index;
25
- const idx = new SessionSearchIndex();
26
- await idx.buildIndex(sessionsRoot);
27
- let m2 = mtime;
28
- try {
29
- m2 = (await stat(indexPath)).mtimeMs;
30
- } catch {
31
- m2 = Date.now();
32
- }
33
- indexCache = {
34
- root: sessionsRoot,
35
- index: idx,
36
- indexFileMtime: m2,
37
- builtAt: Date.now()
38
- };
39
- return idx;
40
- }
41
- //#endregion
42
- export { getOrLoadSessionSearchIndex, invalidateSessionSearchIndexCache };
43
-
44
- //# sourceMappingURL=search-index-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-index-cache.js","names":[],"sources":["../../../src/session/search-index-cache.ts"],"sourcesContent":["/**\n * Shared cache for {@link SessionSearchIndex} builds (invalidated on session writes).\n */\n\nimport { stat } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport { FILENAMES } from '../config/paths.js';\nimport { SessionSearchIndex } from './search-index.js';\n\nconst INDEX_CACHE_TTL_MS = 90_000;\n\nlet indexCache: {\n root: string;\n index: SessionSearchIndex;\n indexFileMtime: number;\n builtAt: number;\n} | null = null;\n\nexport function invalidateSessionSearchIndexCache(): void {\n indexCache = null;\n}\n\nexport async function getOrLoadSessionSearchIndex(sessionsRoot: string): Promise<SessionSearchIndex> {\n const indexPath = join(sessionsRoot, FILENAMES.SESSIONS_MAP);\n let mtime = 0;\n try {\n mtime = (await stat(indexPath)).mtimeMs;\n } catch {\n mtime = 0;\n }\n const now = Date.now();\n if (\n indexCache &&\n indexCache.root === sessionsRoot &&\n indexCache.indexFileMtime === mtime &&\n now - indexCache.builtAt < INDEX_CACHE_TTL_MS\n ) {\n return indexCache.index;\n }\n\n const idx = new SessionSearchIndex();\n await idx.buildIndex(sessionsRoot);\n\n let m2 = mtime;\n try {\n m2 = (await stat(indexPath)).mtimeMs;\n } catch {\n m2 = Date.now();\n }\n\n indexCache = {\n root: sessionsRoot,\n index: idx,\n indexFileMtime: m2,\n builtAt: Date.now(),\n };\n return idx;\n}\n"],"mappings":";;;;;;;;YAO+C;AAG/C,MAAM,qBAAqB;AAE3B,IAAI,aAKO;AAEX,SAAgB,oCAA0C;AACxD,cAAa;;AAGf,eAAsB,4BAA4B,cAAmD;CACnG,MAAM,YAAY,KAAK,cAAc,UAAU,aAAa;CAC5D,IAAI,QAAQ;AACZ,KAAI;AACF,WAAS,MAAM,KAAK,UAAU,EAAE;SAC1B;AACN,UAAQ;;CAEV,MAAM,MAAM,KAAK,KAAK;AACtB,KACE,cACA,WAAW,SAAS,gBACpB,WAAW,mBAAmB,SAC9B,MAAM,WAAW,UAAU,mBAE3B,QAAO,WAAW;CAGpB,MAAM,MAAM,IAAI,oBAAoB;AACpC,OAAM,IAAI,WAAW,aAAa;CAElC,IAAI,KAAK;AACT,KAAI;AACF,QAAM,MAAM,KAAK,UAAU,EAAE;SACvB;AACN,OAAK,KAAK,KAAK;;AAGjB,cAAa;EACX,MAAM;EACN,OAAO;EACP,gBAAgB;EAChB,SAAS,KAAK,KAAK;EACpB;AACD,QAAO"}
@@ -1,20 +0,0 @@
1
- /**
2
- * In-memory inverted index over session transcripts (`sessions.json` + JSONL).
3
- */
4
- import type { AgentMessage } from '@earendil-works/pi-agent-core';
5
- export declare class SessionSearchIndex {
6
- private sessions;
7
- private globalWordIndex;
8
- /**
9
- * Scan `sessionsRoot` (flat `sessions.json` + per-session `.jsonl` transcripts).
10
- */
11
- buildIndex(sessionsRoot: string): Promise<void>;
12
- search(query: string, limit?: number): Array<{
13
- key: string;
14
- score: number;
15
- }>;
16
- getSessionMessages(key: string): AgentMessage[];
17
- private buildWordIndex;
18
- private mergeContextTextIntoWordIndex;
19
- private mergeIntoGlobalIndex;
20
- }
@@ -1,124 +0,0 @@
1
- import { init_transcript_paths, resolveSessionFilePath } from "./parity/transcript-paths.js";
2
- import { FILENAMES, init_paths } from "../config/paths.js";
3
- import { isTranscriptContextEntry } from "./session-context-for-llm.js";
4
- import { readTranscriptRowsFromFile, rowsToLlmMessages } from "./parity/jsonl-transcript-io.js";
5
- import { join } from "node:path";
6
- import { readFile } from "node:fs/promises";
7
- //#region src/session/search-index.ts
8
- /**
9
- * In-memory inverted index over session transcripts (`sessions.json` + JSONL).
10
- */
11
- init_paths();
12
- init_transcript_paths();
13
- var SessionSearchIndex = class {
14
- sessions = /* @__PURE__ */ new Map();
15
- globalWordIndex = /* @__PURE__ */ new Map();
16
- /**
17
- * Scan `sessionsRoot` (flat `sessions.json` + per-session `.jsonl` transcripts).
18
- */
19
- async buildIndex(sessionsRoot) {
20
- this.sessions.clear();
21
- this.globalWordIndex.clear();
22
- const mapPath = join(sessionsRoot, FILENAMES.SESSIONS_MAP);
23
- let raw;
24
- try {
25
- raw = await readFile(mapPath, "utf-8");
26
- } catch {
27
- return;
28
- }
29
- let map;
30
- try {
31
- const parsed = JSON.parse(raw);
32
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return;
33
- map = parsed;
34
- } catch {
35
- return;
36
- }
37
- for (const [sessionKey, entry] of Object.entries(map)) {
38
- if (!entry?.sessionId) continue;
39
- try {
40
- const rows = await readTranscriptRowsFromFile(resolveSessionFilePath(entry.sessionId, entry, { sessionsDir: sessionsRoot }));
41
- const messages = rowsToLlmMessages(rows);
42
- const wordIndex = this.buildWordIndex(messages);
43
- this.mergeContextTextIntoWordIndex(wordIndex, rows, messages.length);
44
- const indexed = {
45
- key: sessionKey,
46
- messages,
47
- wordIndex
48
- };
49
- this.sessions.set(sessionKey, indexed);
50
- this.mergeIntoGlobalIndex(sessionKey, wordIndex);
51
- } catch {}
52
- }
53
- }
54
- search(query, limit = 10) {
55
- const queryWords = tokenizeWords(query);
56
- if (queryWords.length === 0) return [];
57
- const scores = /* @__PURE__ */ new Map();
58
- for (const word of queryWords) {
59
- const matchingSessions = this.globalWordIndex.get(word);
60
- if (!matchingSessions) continue;
61
- for (const sessionKey of matchingSessions) scores.set(sessionKey, (scores.get(sessionKey) || 0) + 1);
62
- }
63
- return Array.from(scores.entries()).map(([key, score]) => ({
64
- key,
65
- score: score / queryWords.length
66
- })).sort((a, b) => b.score - a.score).slice(0, limit);
67
- }
68
- getSessionMessages(key) {
69
- return this.sessions.get(key)?.messages ?? [];
70
- }
71
- buildWordIndex(messages) {
72
- const index = /* @__PURE__ */ new Map();
73
- for (let i = 0; i < messages.length; i++) {
74
- const words = tokenizeWords(extractIndexableText(messages[i].content));
75
- for (const word of words) {
76
- if (!index.has(word)) index.set(word, /* @__PURE__ */ new Set());
77
- index.get(word).add(i);
78
- }
79
- }
80
- return index;
81
- }
82
- mergeContextTextIntoWordIndex(wordIndex, rows, llmMessageCount) {
83
- let slot = 0;
84
- for (const r of rows) {
85
- if (!isTranscriptContextEntry(r)) continue;
86
- const parts = [];
87
- if (typeof r.text === "string" && r.text.trim()) parts.push(r.text);
88
- if (typeof r.id === "string" && r.id.trim()) parts.push(r.id);
89
- const blob = parts.join(" ");
90
- if (!blob.trim()) continue;
91
- const words = tokenizeWords(blob);
92
- const idx = llmMessageCount + slot;
93
- slot += 1;
94
- for (const word of words) {
95
- if (!wordIndex.has(word)) wordIndex.set(word, /* @__PURE__ */ new Set());
96
- wordIndex.get(word).add(idx);
97
- }
98
- }
99
- }
100
- mergeIntoGlobalIndex(sessionKey, wordIndex) {
101
- for (const word of wordIndex.keys()) {
102
- if (!this.globalWordIndex.has(word)) this.globalWordIndex.set(word, /* @__PURE__ */ new Set());
103
- this.globalWordIndex.get(word).add(sessionKey);
104
- }
105
- }
106
- };
107
- function tokenizeWords(text) {
108
- return text.toLowerCase().split(/[\W_]+/).map((w) => w.trim()).filter(Boolean);
109
- }
110
- function extractIndexableText(content) {
111
- if (typeof content === "string") return content;
112
- if (!Array.isArray(content)) return "";
113
- const parts = [];
114
- for (const item of content) {
115
- if (typeof item !== "object" || item === null || !("type" in item)) continue;
116
- const c = item;
117
- if (c.type === "text" && typeof c.text === "string") parts.push(c.text);
118
- }
119
- return parts.join(" ");
120
- }
121
- //#endregion
122
- export { SessionSearchIndex };
123
-
124
- //# sourceMappingURL=search-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-index.js","names":[],"sources":["../../../src/session/search-index.ts"],"sourcesContent":["/**\n * In-memory inverted index over session transcripts (`sessions.json` + JSONL).\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\n\nimport { FILENAMES } from '../config/paths.js';\nimport { resolveSessionFilePath } from './parity/transcript-paths.js';\nimport { readTranscriptRowsFromFile, rowsToLlmMessages } from './parity/jsonl-transcript-io.js';\nimport { isTranscriptContextEntry, type TranscriptStoredRow } from './session-context-for-llm.js';\nimport type { XopcSessionDiskEntry } from './parity/xopc-session-disk-entry.js';\n\ninterface IndexedSession {\n key: string;\n messages: AgentMessage[];\n wordIndex: Map<string, Set<number>>;\n}\n\nexport class SessionSearchIndex {\n private sessions = new Map<string, IndexedSession>();\n private globalWordIndex = new Map<string, Set<string>>();\n\n /**\n * Scan `sessionsRoot` (flat `sessions.json` + per-session `.jsonl` transcripts).\n */\n async buildIndex(sessionsRoot: string): Promise<void> {\n this.sessions.clear();\n this.globalWordIndex.clear();\n\n const mapPath = join(sessionsRoot, FILENAMES.SESSIONS_MAP);\n let raw: string;\n try {\n raw = await readFile(mapPath, 'utf-8');\n } catch {\n return;\n }\n let map: Record<string, XopcSessionDiskEntry>;\n try {\n const parsed = JSON.parse(raw) as unknown;\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n return;\n }\n map = parsed as Record<string, XopcSessionDiskEntry>;\n } catch {\n return;\n }\n\n for (const [sessionKey, entry] of Object.entries(map)) {\n if (!entry?.sessionId) {\n continue;\n }\n try {\n const transcriptPath = resolveSessionFilePath(entry.sessionId, entry, { sessionsDir: sessionsRoot });\n const rows = await readTranscriptRowsFromFile(transcriptPath);\n const messages = rowsToLlmMessages(rows);\n const wordIndex = this.buildWordIndex(messages);\n this.mergeContextTextIntoWordIndex(wordIndex, rows, messages.length);\n const indexed: IndexedSession = { key: sessionKey, messages, wordIndex };\n this.sessions.set(sessionKey, indexed);\n this.mergeIntoGlobalIndex(sessionKey, wordIndex);\n } catch {\n /* skip */\n }\n }\n }\n\n search(query: string, limit = 10): Array<{ key: string; score: number }> {\n const queryWords = tokenizeWords(query);\n if (queryWords.length === 0) {\n return [];\n }\n const scores = new Map<string, number>();\n for (const word of queryWords) {\n const matchingSessions = this.globalWordIndex.get(word);\n if (!matchingSessions) {\n continue;\n }\n for (const sessionKey of matchingSessions) {\n scores.set(sessionKey, (scores.get(sessionKey) || 0) + 1);\n }\n }\n return Array.from(scores.entries())\n .map(([key, score]) => ({ key, score: score / queryWords.length }))\n .sort((a, b) => b.score - a.score)\n .slice(0, limit);\n }\n\n getSessionMessages(key: string): AgentMessage[] {\n return this.sessions.get(key)?.messages ?? [];\n }\n\n private buildWordIndex(messages: AgentMessage[]): Map<string, Set<number>> {\n const index = new Map<string, Set<number>>();\n for (let i = 0; i < messages.length; i++) {\n const text = extractIndexableText((messages[i] as { content?: unknown }).content);\n const words = tokenizeWords(text);\n for (const word of words) {\n if (!index.has(word)) {\n index.set(word, new Set());\n }\n index.get(word)!.add(i);\n }\n }\n return index;\n }\n\n private mergeContextTextIntoWordIndex(\n wordIndex: Map<string, Set<number>>,\n rows: TranscriptStoredRow[],\n llmMessageCount: number,\n ): void {\n let slot = 0;\n for (const r of rows) {\n if (!isTranscriptContextEntry(r)) {\n continue;\n }\n const parts: string[] = [];\n if (typeof r.text === 'string' && r.text.trim()) {\n parts.push(r.text);\n }\n if (typeof r.id === 'string' && r.id.trim()) {\n parts.push(r.id);\n }\n const blob = parts.join(' ');\n if (!blob.trim()) {\n continue;\n }\n const words = tokenizeWords(blob);\n const idx = llmMessageCount + slot;\n slot += 1;\n for (const word of words) {\n if (!wordIndex.has(word)) {\n wordIndex.set(word, new Set());\n }\n wordIndex.get(word)!.add(idx);\n }\n }\n }\n\n private mergeIntoGlobalIndex(sessionKey: string, wordIndex: Map<string, Set<number>>): void {\n for (const word of wordIndex.keys()) {\n if (!this.globalWordIndex.has(word)) {\n this.globalWordIndex.set(word, new Set());\n }\n this.globalWordIndex.get(word)!.add(sessionKey);\n }\n }\n}\n\nfunction tokenizeWords(text: string): string[] {\n return text\n .toLowerCase()\n .split(/[\\W_]+/)\n .map((w) => w.trim())\n .filter(Boolean);\n}\n\nfunction extractIndexableText(content: unknown): string {\n if (typeof content === 'string') {\n return content;\n }\n if (!Array.isArray(content)) {\n return '';\n }\n const parts: string[] = [];\n for (const item of content) {\n if (typeof item !== 'object' || item === null || !('type' in item)) {\n continue;\n }\n const c = item as { type?: string; text?: string };\n if (c.type === 'text' && typeof c.text === 'string') {\n parts.push(c.text);\n }\n }\n return parts.join(' ');\n}\n"],"mappings":"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"}