@xopcai/xopc 0.0.95 → 0.0.97

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 (442) 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-B_YUvNi6.js} +2 -2
  19. package/dist/gateway/static/root/assets/{apps-page-Mi9mMIZ1.js → apps-page-BmwG5aur.js} +1 -1
  20. package/dist/gateway/static/root/assets/{channels-settings-BrdyC101.js → channels-settings-BiwkeKPb.js} +1 -1
  21. package/dist/gateway/static/root/assets/{channels-status-swr-D55Bu0nn.js → channels-status-swr-ChyN473C.js} +1 -1
  22. package/dist/gateway/static/root/assets/{cron-api-CPpx2l-E.js → cron-api-CvSifIfJ.js} +1 -1
  23. package/dist/gateway/static/root/assets/{cron-page-Bx2jB0YN.js → cron-page-BDqTDFy6.js} +1 -1
  24. package/dist/gateway/static/root/assets/{dist-D_AiG_Kg.js → dist-DxsUrjpy.js} +1 -1
  25. package/dist/gateway/static/root/assets/{extension-debug-page-6ieHsxRE.js → extension-debug-page-DV_Av5Jq.js} +1 -1
  26. package/dist/gateway/static/root/assets/{extension-page-B8nywHRO.js → extension-page-CwZwRhWw.js} +1 -1
  27. package/dist/gateway/static/root/assets/{extension-settings-page-DrskdEIV.js → extension-settings-page-Bb7TR1Se.js} +1 -1
  28. package/dist/gateway/static/root/assets/{fetch-B0aeeY0q.js → fetch-BLLOP2CM.js} +1 -1
  29. package/dist/gateway/static/root/assets/{field-primitives--9ooY8Xl.js → field-primitives-CyqVu1QR.js} +1 -1
  30. package/dist/gateway/static/root/assets/{heartbeat-config-api-DUZ_W1w-.js → heartbeat-config-api-Cd4M1eHt.js} +1 -1
  31. package/dist/gateway/static/root/assets/{index-Dj9FuxCm.js → index-0tS9lV85.js} +74 -74
  32. package/dist/gateway/static/root/assets/index-BJDmBCSl.css +1 -0
  33. package/dist/gateway/static/root/assets/{logs-page-CaXqhpKf.js → logs-page-BsAOSowN.js} +1 -1
  34. package/dist/gateway/static/root/assets/{note-detail-page-B91pLkEI.css → note-detail-page-D4ZIVQbk.css} +1 -1
  35. package/dist/gateway/static/root/assets/{note-detail-page-DYzym2B0.js → note-detail-page-Dlxoy6Ap.js} +54 -53
  36. package/dist/gateway/static/root/assets/{note-time-B-vSi2dR.js → note-time-B-r8yTpQ.js} +1 -1
  37. package/dist/gateway/static/root/assets/{notes-page-BkhWdGiT.js → notes-page-CHFcyqYW.js} +1 -1
  38. package/dist/gateway/static/root/assets/{sessions-page-53YFokoe.js → sessions-page-Ctu0kgt7.js} +1 -1
  39. package/dist/gateway/static/root/assets/{settings-advanced-gate-BaZmaklx.js → settings-advanced-gate-Dh0TyOOg.js} +1 -1
  40. package/dist/gateway/static/root/assets/{settings-form-section-DIJPKpTR.js → settings-form-section-DXMCEW1d.js} +1 -1
  41. package/dist/gateway/static/root/assets/{settings-page-Dvb230FF.js → settings-page-CIkZ7233.js} +1 -1
  42. package/dist/gateway/static/root/assets/{share-preview-page-CRyjTAG6.js → share-preview-page-7RV65xhJ.js} +1 -1
  43. package/dist/gateway/static/root/assets/{skills-page-C5ZJbfAe.js → skills-page-D_Az1SlU.js} +1 -1
  44. package/dist/gateway/static/root/assets/{theme-store-Cg_SuBw0.js → theme-store-e2q2yjs4.js} +1 -1
  45. package/dist/gateway/static/root/assets/url-DpFBIyN9.js +3 -0
  46. package/dist/gateway/static/root/assets/{utils-lMYoWhqo.js → utils-OA_b1q0Q.js} +1 -1
  47. package/dist/gateway/static/root/assets/{voice-api-key-field-Dda2pcUU.js → voice-api-key-field-SJml1hAt.js} +1 -1
  48. package/dist/gateway/static/root/assets/{workflow-page.utils-KIladUrU.js → workflow-page.utils-D90VVCzC.js} +1 -1
  49. package/dist/gateway/static/root/assets/{workflows-page-BTis4Z7Y.js → workflows-page-y7Btji0J.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 +12 -8
  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 +2 -0
  58. package/dist/src/agent/bootstrap/bootstrap-cache.js +10 -1
  59. package/dist/src/agent/bootstrap/bootstrap-cache.js.map +1 -1
  60. package/dist/src/agent/bootstrap/bootstrap-files.d.ts +2 -1
  61. package/dist/src/agent/bootstrap/bootstrap-files.js +34 -12
  62. package/dist/src/agent/bootstrap/bootstrap-files.js.map +1 -1
  63. package/dist/src/agent/bootstrap/load-bootstrap-files.d.ts +1 -2
  64. package/dist/src/agent/bootstrap/load-bootstrap-files.js +6 -12
  65. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +1 -1
  66. package/dist/src/agent/bootstrap/types.d.ts +5 -5
  67. package/dist/src/agent/context/workspace-seed.js +6 -6
  68. package/dist/src/agent/context/workspace-seed.js.map +1 -1
  69. package/dist/src/agent/context/workspace-state.d.ts +20 -0
  70. package/dist/src/agent/context/workspace-state.js +57 -0
  71. package/dist/src/agent/context/workspace-state.js.map +1 -0
  72. package/dist/src/agent/context/workspace-templates/AGENTS.md +0 -4
  73. package/dist/src/agent/embedded/index.d.ts +2 -2
  74. package/dist/src/agent/embedded/index.js +3 -3
  75. package/dist/src/agent/embedded/run-turn.js +0 -3
  76. package/dist/src/agent/embedded/run-turn.js.map +1 -1
  77. package/dist/src/agent/embedded/session-manager-init.d.ts +0 -17
  78. package/dist/src/agent/embedded/session-manager-init.js +1 -36
  79. package/dist/src/agent/embedded/session-manager-init.js.map +1 -1
  80. package/dist/src/agent/embedded/session-runner.d.ts +3 -12
  81. package/dist/src/agent/embedded/session-runner.js +12 -26
  82. package/dist/src/agent/embedded/session-runner.js.map +1 -1
  83. package/dist/src/agent/embedded/session-tool-result-guard.js +2 -4
  84. package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
  85. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.d.ts +10 -0
  86. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +34 -0
  87. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js.map +1 -0
  88. package/dist/src/agent/goals/goal-run-store.js +4 -4
  89. package/dist/src/agent/goals/persistent-goal-service.js +8 -15
  90. package/dist/src/agent/goals/persistent-goal-service.js.map +1 -1
  91. package/dist/src/agent/goals/post-turn.js +2 -2
  92. package/dist/src/agent/image/load-image-media.js +2 -2
  93. package/dist/src/agent/ipc/bus.js +1 -1
  94. package/dist/src/agent/ipc/inbox.js +2 -2
  95. package/dist/src/agent/ipc/socket.js +1 -1
  96. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  97. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  98. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  99. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  100. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  101. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  102. package/dist/src/agent/memory/dreaming/events.js +1 -1
  103. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  104. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  105. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  106. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  107. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  108. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  109. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  110. package/dist/src/agent/models/manager.js +1 -1
  111. package/dist/src/agent/prompt/memory/index.d.ts +1 -0
  112. package/dist/src/agent/prompt/memory/index.js +34 -80
  113. package/dist/src/agent/prompt/memory/index.js.map +1 -1
  114. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  115. package/dist/src/agent/prompt/system-prompt.js +0 -1
  116. package/dist/src/agent/prompt/system-prompt.js.map +1 -1
  117. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  118. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  119. package/dist/src/agent/sandbox/path-policy.js +2 -2
  120. package/dist/src/agent/service/build-direct-message-content.js +1 -1
  121. package/dist/src/agent/service/process-direct-one-shot.js +8 -17
  122. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  123. package/dist/src/agent/service/process-direct-streaming.js +14 -23
  124. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  125. package/dist/src/agent/service.js +7 -11
  126. package/dist/src/agent/service.js.map +1 -1
  127. package/dist/src/agent/session/session-inspector.js +1 -1
  128. package/dist/src/agent/skills/config.js +1 -1
  129. package/dist/src/agent/skills/hub-hash.js +2 -2
  130. package/dist/src/agent/skills/hub-lock.js +1 -1
  131. package/dist/src/agent/skills/hub-pull.js +3 -3
  132. package/dist/src/agent/skills/index.js +1 -1
  133. package/dist/src/agent/skills/managed-store.js +1 -1
  134. package/dist/src/agent/skills/scanner.js +1 -1
  135. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  136. package/dist/src/agent/skills/skill-manager.js +1 -1
  137. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  138. package/dist/src/agent/tools/factory.js +1 -1
  139. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  140. package/dist/src/agent/tools/index.d.ts +0 -1
  141. package/dist/src/agent/tools/index.js +1 -2
  142. package/dist/src/agent/tools/send-media.js +1 -1
  143. package/dist/src/agent/tools/session-search-tool.d.ts +0 -1
  144. package/dist/src/agent/tools/session-search-tool.js +11 -6
  145. package/dist/src/agent/tools/session-search-tool.js.map +1 -1
  146. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  147. package/dist/src/agent/tools/tool-paths.js +1 -3
  148. package/dist/src/agent/tools/tool-paths.js.map +1 -1
  149. package/dist/src/agent/tools/workflow-tool.js +1 -1
  150. package/dist/src/agent/tools/write.js +1 -1
  151. package/dist/src/agent/workflow/catalog.js +1 -1
  152. package/dist/src/auth/credentials.js +3 -3
  153. package/dist/src/auth/profiles/store.js +1 -1
  154. package/dist/src/auth/sync-provider-auth.js +1 -1
  155. package/dist/src/browser/cache-dir-policy.js +1 -1
  156. package/dist/src/browser/cdp-local-launcher.js +2 -2
  157. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  158. package/dist/src/browser/providers/cloakbrowser.js +4 -4
  159. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  160. package/dist/src/browser/stealth.js +1 -1
  161. package/dist/src/channels/attachments/inbound-persist.js +1 -1
  162. package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
  163. package/dist/src/channels/outbound/persist-store.js +1 -1
  164. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  165. package/dist/src/channels/pairing/pairing-store.js +2 -2
  166. package/dist/src/chat-commands/agent-edit.js +3 -4
  167. package/dist/src/chat-commands/agent-edit.js.map +1 -1
  168. package/dist/src/chat-commands/builtins/config.js +2 -2
  169. package/dist/src/chat-commands/context.js +1 -1
  170. package/dist/src/cli/commands/config.js +1 -1
  171. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  172. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  173. package/dist/src/cli/commands/doctor/checks/session-integrity.js +32 -95
  174. package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +1 -1
  175. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  176. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  177. package/dist/src/cli/commands/extension-dev.js +1 -1
  178. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  179. package/dist/src/cli/commands/extension-pack.js +1 -1
  180. package/dist/src/cli/commands/gateway/logs.js +1 -1
  181. package/dist/src/cli/commands/image.js +1 -1
  182. package/dist/src/cli/commands/init.js +5 -7
  183. package/dist/src/cli/commands/init.js.map +1 -1
  184. package/dist/src/cli/commands/onboard.js +0 -8
  185. package/dist/src/cli/commands/onboard.js.map +1 -1
  186. package/dist/src/cli/templates.d.ts +3 -10
  187. package/dist/src/cli/templates.js +4 -32
  188. package/dist/src/cli/templates.js.map +1 -1
  189. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  190. package/dist/src/commands/agents.config.js +1 -1
  191. package/dist/src/config/agent-profile.js +1 -1
  192. package/dist/src/config/gateway-bind.js +1 -1
  193. package/dist/src/config/index.js +7 -8
  194. package/dist/src/config/index.js.map +1 -1
  195. package/dist/src/config/loader.js +2 -2
  196. package/dist/src/config/models-json.js +2 -2
  197. package/dist/src/config/paths-state.d.ts +3 -0
  198. package/dist/src/config/paths-state.js +7 -3
  199. package/dist/src/config/paths-state.js.map +1 -1
  200. package/dist/src/config/paths.d.ts +5 -36
  201. package/dist/src/config/paths.js +7 -52
  202. package/dist/src/config/paths.js.map +1 -1
  203. package/dist/src/config/profile.js +2 -2
  204. package/dist/src/config/schema.d.ts +15 -0
  205. package/dist/src/config/schema.js +11 -0
  206. package/dist/src/config/schema.js.map +1 -1
  207. package/dist/src/config/workspace-path.js +1 -1
  208. package/dist/src/cron/execution-types.d.ts +42 -0
  209. package/dist/src/cron/executor.js +2 -2
  210. package/dist/src/cron/persistence.js +1 -1
  211. package/dist/src/cron/run-log-store.d.ts +4 -8
  212. package/dist/src/cron/run-log-store.js +26 -78
  213. package/dist/src/cron/run-log-store.js.map +1 -1
  214. package/dist/src/cron/service.d.ts +3 -3
  215. package/dist/src/cron/service.js +2 -2
  216. package/dist/src/cron/service.js.map +1 -1
  217. package/dist/src/cron/types.d.ts +1 -42
  218. package/dist/src/daemon/constants.js +1 -1
  219. package/dist/src/daemon/install-plan.js +2 -2
  220. package/dist/src/daemon/launchd.js +2 -2
  221. package/dist/src/daemon/schtasks.js +2 -2
  222. package/dist/src/daemon/systemd.js +2 -2
  223. package/dist/src/extensions/bundle-mcp.js +1 -1
  224. package/dist/src/extensions/discover-extensions.js +1 -1
  225. package/dist/src/extensions/health.js +1 -1
  226. package/dist/src/extensions/loader.js +1 -1
  227. package/dist/src/extensions/lockfile.js +2 -2
  228. package/dist/src/extensions/update.js +1 -1
  229. package/dist/src/gateway/agents-admin.js +4 -4
  230. package/dist/src/gateway/agents-admin.js.map +1 -1
  231. package/dist/src/gateway/file-path-classifier.d.ts +0 -1
  232. package/dist/src/gateway/file-path-classifier.js +2 -8
  233. package/dist/src/gateway/file-path-classifier.js.map +1 -1
  234. package/dist/src/gateway/heartbeat/service.js +1 -1
  235. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  236. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  237. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  238. package/dist/src/gateway/hono/oauth.js +1 -1
  239. package/dist/src/gateway/hono/routes/agents.js +1 -1
  240. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  241. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  242. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  243. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  244. package/dist/src/gateway/hono/routes/models.js +1 -1
  245. package/dist/src/gateway/hono/routes/shares.js +1 -1
  246. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  247. package/dist/src/gateway/lock.js +3 -3
  248. package/dist/src/gateway/ports.js +1 -1
  249. package/dist/src/gateway/service/agent-runner.js +2 -2
  250. package/dist/src/gateway/service/marketplace-service.js +2 -2
  251. package/dist/src/gateway/service.js +5 -1
  252. package/dist/src/gateway/service.js.map +1 -1
  253. package/dist/src/gateway/session-reset-service.d.ts +1 -1
  254. package/dist/src/gateway/session-reset-service.js +1 -1
  255. package/dist/src/gateway/session-reset-service.js.map +1 -1
  256. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  257. package/dist/src/heartbeat/index.js +1 -1
  258. package/dist/src/infra/brew.js +1 -1
  259. package/dist/src/infra/node-sqlite.d.ts +1 -0
  260. package/dist/src/infra/node-sqlite.js +17 -0
  261. package/dist/src/infra/node-sqlite.js.map +1 -0
  262. package/dist/src/infra/package-json.js +1 -1
  263. package/dist/src/infra/package-update-steps.js +1 -1
  264. package/dist/src/infra/path-env.js +2 -2
  265. package/dist/src/infra/restart.js +2 -2
  266. package/dist/src/infra/sqlite-errors.d.ts +1 -0
  267. package/dist/src/infra/sqlite-errors.js +77 -0
  268. package/dist/src/infra/sqlite-errors.js.map +1 -0
  269. package/dist/src/infra/stable-node-path.js +1 -1
  270. package/dist/src/infra/unhandled-rejections.d.ts +1 -0
  271. package/dist/src/infra/unhandled-rejections.js +25 -0
  272. package/dist/src/infra/unhandled-rejections.js.map +1 -0
  273. package/dist/src/infra/update-check.js +1 -1
  274. package/dist/src/infra/update-global.js +1 -1
  275. package/dist/src/infra/update-lock.js +3 -3
  276. package/dist/src/infra/update-runner.js +1 -1
  277. package/dist/src/infra/update-startup.js +2 -2
  278. package/dist/src/infra/warning-filter.d.ts +7 -0
  279. package/dist/src/infra/warning-filter.js +59 -0
  280. package/dist/src/infra/warning-filter.js.map +1 -0
  281. package/dist/src/infra/write-file-atomic.js +2 -2
  282. package/dist/src/notes/store.d.ts +3 -9
  283. package/dist/src/notes/store.js +22 -196
  284. package/dist/src/notes/store.js.map +1 -1
  285. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  286. package/dist/src/providers/index.js +2 -2
  287. package/dist/src/providers/model-registry.js +1 -1
  288. package/dist/src/session/config-store.d.ts +6 -75
  289. package/dist/src/session/config-store.js +38 -144
  290. package/dist/src/session/config-store.js.map +1 -1
  291. package/dist/src/session/config-types.d.ts +15 -0
  292. package/dist/src/session/config-types.js +1 -0
  293. package/dist/src/session/index.d.ts +1 -3
  294. package/dist/src/session/index.js +3 -5
  295. package/dist/src/session/init-session-turn.d.ts +0 -6
  296. package/dist/src/session/init-session-turn.js +18 -18
  297. package/dist/src/session/init-session-turn.js.map +1 -1
  298. package/dist/src/session/lifecycle-timestamps.d.ts +5 -2
  299. package/dist/src/session/lifecycle-timestamps.js.map +1 -1
  300. package/dist/src/session/{parity/load-jsonl-entries.js → load-jsonl-entries.js} +1 -1
  301. package/dist/src/session/load-jsonl-entries.js.map +1 -0
  302. package/dist/src/session/manager.d.ts +5 -3
  303. package/dist/src/session/manager.js +1 -5
  304. package/dist/src/session/manager.js.map +1 -1
  305. package/dist/src/session/resolve-session.d.ts +3 -6
  306. package/dist/src/session/resolve-session.js +26 -31
  307. package/dist/src/session/resolve-session.js.map +1 -1
  308. package/dist/src/session/session-context-for-llm.js +5 -1
  309. package/dist/src/session/session-context-for-llm.js.map +1 -1
  310. package/dist/src/session/session-id.js +12 -0
  311. package/dist/src/session/session-id.js.map +1 -0
  312. package/dist/src/session/session-title.js +2 -2
  313. package/dist/src/session/session-workspace.d.ts +1 -1
  314. package/dist/src/session/session-workspace.js.map +1 -1
  315. package/dist/src/session/store.d.ts +14 -63
  316. package/dist/src/session/store.js +172 -847
  317. package/dist/src/session/store.js.map +1 -1
  318. package/dist/src/session/stored-rows-to-file-entries.d.ts +11 -0
  319. package/dist/src/session/stored-rows-to-file-entries.js +95 -0
  320. package/dist/src/session/stored-rows-to-file-entries.js.map +1 -0
  321. package/dist/src/session/transcript-events.d.ts +1 -2
  322. package/dist/src/session/transcript-events.js +5 -12
  323. package/dist/src/session/transcript-events.js.map +1 -1
  324. package/dist/src/session/transcript-format.d.ts +1 -1
  325. package/dist/src/session/transcript-format.js.map +1 -1
  326. package/dist/src/session/transcript-stats.d.ts +1 -0
  327. package/dist/src/session/transcript-stats.js +10 -0
  328. package/dist/src/session/transcript-stats.js.map +1 -0
  329. package/dist/src/share/share-auto.js +2 -2
  330. package/dist/src/share/share-store.js +3 -3
  331. package/dist/src/share/share-thumbnail.js +2 -2
  332. package/dist/src/share/share-zip.js +1 -1
  333. package/dist/src/share/site-share-store.js +3 -3
  334. package/dist/src/share/site-static-serve.js +1 -1
  335. package/dist/src/storage/sqlite/config-repository.d.ts +6 -0
  336. package/dist/src/storage/sqlite/config-repository.js +56 -0
  337. package/dist/src/storage/sqlite/config-repository.js.map +1 -0
  338. package/dist/src/storage/sqlite/connection.d.ts +38 -0
  339. package/dist/src/storage/sqlite/connection.js +258 -0
  340. package/dist/src/storage/sqlite/connection.js.map +1 -0
  341. package/dist/src/storage/sqlite/cron-run-repository.d.ts +5 -0
  342. package/dist/src/storage/sqlite/cron-run-repository.js +97 -0
  343. package/dist/src/storage/sqlite/cron-run-repository.js.map +1 -0
  344. package/dist/src/storage/sqlite/fts.d.ts +2 -0
  345. package/dist/src/storage/sqlite/fts.js +11 -0
  346. package/dist/src/storage/sqlite/fts.js.map +1 -0
  347. package/dist/src/storage/sqlite/index.d.ts +12 -0
  348. package/dist/src/storage/sqlite/index.js +13 -0
  349. package/dist/src/storage/sqlite/memory-index-repository.d.ts +18 -0
  350. package/dist/src/storage/sqlite/memory-index-repository.js +132 -0
  351. package/dist/src/storage/sqlite/memory-index-repository.js.map +1 -0
  352. package/dist/src/storage/sqlite/notes-repository.d.ts +11 -0
  353. package/dist/src/storage/sqlite/notes-repository.js +191 -0
  354. package/dist/src/storage/sqlite/notes-repository.js.map +1 -0
  355. package/dist/src/storage/sqlite/paths.d.ts +1 -0
  356. package/dist/src/storage/sqlite/paths.js +7 -0
  357. package/dist/src/storage/sqlite/paths.js.map +1 -0
  358. package/dist/src/storage/sqlite/row-mappers.d.ts +82 -0
  359. package/dist/src/storage/sqlite/row-mappers.js +164 -0
  360. package/dist/src/storage/sqlite/row-mappers.js.map +1 -0
  361. package/dist/src/storage/sqlite/schema.d.ts +5 -0
  362. package/dist/src/storage/sqlite/schema.js +43 -0
  363. package/dist/src/storage/sqlite/schema.js.map +1 -0
  364. package/dist/src/storage/sqlite/schema.sql +195 -0
  365. package/dist/src/storage/sqlite/session-metadata.d.ts +8 -0
  366. package/dist/src/storage/sqlite/session-metadata.js +83 -0
  367. package/dist/src/storage/sqlite/session-metadata.js.map +1 -0
  368. package/dist/src/storage/sqlite/session-repository.d.ts +29 -0
  369. package/dist/src/storage/sqlite/session-repository.js +268 -0
  370. package/dist/src/storage/sqlite/session-repository.js.map +1 -0
  371. package/dist/src/storage/sqlite/transaction.d.ts +11 -0
  372. package/dist/src/storage/sqlite/transaction.js +115 -0
  373. package/dist/src/storage/sqlite/transaction.js.map +1 -0
  374. package/dist/src/storage/sqlite/transcript-repository.d.ts +34 -0
  375. package/dist/src/storage/sqlite/transcript-repository.js +241 -0
  376. package/dist/src/storage/sqlite/transcript-repository.js.map +1 -0
  377. package/dist/src/tui/clipboard-image.js +3 -3
  378. package/dist/src/tui/theme-manager.js +1 -1
  379. package/dist/src/tui/tui-keybindings-file.js +1 -1
  380. package/dist/src/tui/tui-scoped-models.js +2 -2
  381. package/dist/src/tui/tui-settings.js +1 -1
  382. package/dist/src/tui/tui.js +3 -3
  383. package/dist/src/tunnel/frpc-binary.js +3 -3
  384. package/dist/src/tunnel/frpc-config.js +1 -1
  385. package/dist/src/tunnel/frpc-extract.js +1 -1
  386. package/dist/src/tunnel/tunnel-state.js +1 -1
  387. package/dist/src/utils/logger/audit.js +1 -1
  388. package/dist/src/utils/logger/log-store.js +1 -1
  389. package/dist/src/utils/logger/rotation.js +1 -1
  390. package/dist/src/voice/tts/audio.js +1 -1
  391. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  392. package/dist/src/workflows/service/workflow-session-bridge.js +41 -64
  393. package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
  394. package/dist/src/workflows/store/event-store.js +1 -1
  395. package/dist/src/workflows/store/run-store.js +1 -1
  396. package/package.json +2 -2
  397. package/dist/gateway/static/root/assets/index-Bj_l8QDp.css +0 -1
  398. package/dist/gateway/static/root/assets/url-BHHmdJYc.js +0 -3
  399. package/dist/src/agent/context/workspace-templates/BOOTSTRAP.md +0 -61
  400. package/dist/src/agent/embedded/session-manager-cache.d.ts +0 -19
  401. package/dist/src/agent/embedded/session-manager-cache.js +0 -48
  402. package/dist/src/agent/embedded/session-manager-cache.js.map +0 -1
  403. package/dist/src/session/parity/artifacts.d.ts +0 -16
  404. package/dist/src/session/parity/artifacts.js +0 -80
  405. package/dist/src/session/parity/artifacts.js.map +0 -1
  406. package/dist/src/session/parity/jsonl-transcript-io.d.ts +0 -54
  407. package/dist/src/session/parity/jsonl-transcript-io.js +0 -236
  408. package/dist/src/session/parity/jsonl-transcript-io.js.map +0 -1
  409. package/dist/src/session/parity/load-jsonl-entries.js.map +0 -1
  410. package/dist/src/session/parity/session-id.js +0 -18
  411. package/dist/src/session/parity/session-id.js.map +0 -1
  412. package/dist/src/session/parity/sessions-json-cache.d.ts +0 -14
  413. package/dist/src/session/parity/sessions-json-cache.js +0 -98
  414. package/dist/src/session/parity/sessions-json-cache.js.map +0 -1
  415. package/dist/src/session/parity/sessions-json-file-read.d.ts +0 -6
  416. package/dist/src/session/parity/sessions-json-file-read.js +0 -19
  417. package/dist/src/session/parity/sessions-json-file-read.js.map +0 -1
  418. package/dist/src/session/parity/sessions-json-file.d.ts +0 -11
  419. package/dist/src/session/parity/sessions-json-file.js +0 -52
  420. package/dist/src/session/parity/sessions-json-file.js.map +0 -1
  421. package/dist/src/session/parity/sessions-json-patch.d.ts +0 -14
  422. package/dist/src/session/parity/sessions-json-patch.js +0 -40
  423. package/dist/src/session/parity/sessions-json-patch.js.map +0 -1
  424. package/dist/src/session/parity/transcript-file-lock.d.ts +0 -22
  425. package/dist/src/session/parity/transcript-file-lock.js +0 -142
  426. package/dist/src/session/parity/transcript-file-lock.js.map +0 -1
  427. package/dist/src/session/parity/transcript-pagination.d.ts +0 -29
  428. package/dist/src/session/parity/transcript-pagination.js +0 -132
  429. package/dist/src/session/parity/transcript-pagination.js.map +0 -1
  430. package/dist/src/session/parity/transcript-paths.d.ts +0 -13
  431. package/dist/src/session/parity/transcript-paths.js +0 -64
  432. package/dist/src/session/parity/transcript-paths.js.map +0 -1
  433. package/dist/src/session/parity/xopc-session-disk-entry.d.ts +0 -22
  434. package/dist/src/session/search-index-cache.d.ts +0 -6
  435. package/dist/src/session/search-index-cache.js +0 -44
  436. package/dist/src/session/search-index-cache.js.map +0 -1
  437. package/dist/src/session/search-index.d.ts +0 -20
  438. package/dist/src/session/search-index.js +0 -124
  439. package/dist/src/session/search-index.js.map +0 -1
  440. /package/dist/src/{session/parity/xopc-session-disk-entry.js → cron/execution-types.js} +0 -0
  441. /package/dist/src/session/{parity/load-jsonl-entries.d.ts → load-jsonl-entries.d.ts} +0 -0
  442. /package/dist/src/session/{parity/session-id.d.ts → session-id.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","names":[],"sources":["../../../src/cli/templates.ts"],"sourcesContent":["/**\n * Workspace template files for onboarding.\n * Templates are stored in docs/reference/templates/ and loaded at runtime.\n */\n\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/** All template file names (for loading / caching). */\nexport const TEMPLATE_FILES = [\n 'SOUL.md',\n 'IDENTITY.md',\n 'USER.md',\n 'TOOLS.md',\n 'AGENTS.md',\n 'HEARTBEAT.md',\n 'MEMORY.md',\n 'BOOTSTRAP.md',\n] as const;\n\nexport type TemplateFile = (typeof TEMPLATE_FILES)[number];\n\n/**\n * Profile Markdown templates (system-prompt stack, excluding BOOTSTRAP.md).\n * Seeded by seedAgentProfileMarkdownFiles / seedMainAgentProfileMarkdown.\n */\nexport const PROFILE_MARKDOWN_TEMPLATE_FILES: readonly TemplateFile[] = [\n 'SOUL.md',\n 'IDENTITY.md',\n 'USER.md',\n 'TOOLS.md',\n 'AGENTS.md',\n 'HEARTBEAT.md',\n 'MEMORY.md',\n];\n\n/**\n * Onboarding guide template (seeded into the Markdown workspace root as `BOOTSTRAP.md`).\n */\nexport const WORKSPACE_TEMPLATE_FILES: readonly TemplateFile[] = ['BOOTSTRAP.md'];\n\n/** Template content cache */\nconst templateCache = new Map<TemplateFile, string>();\n\n/**\n * Get the path to template files.\n * Uses environment or looks in project root.\n */\nfunction getTemplatePath(): string {\n // Use environment to determine path\n const envPath = process.env.XOPC_TEMPLATE_PATH;\n if (envPath && existsSync(envPath)) {\n return envPath;\n }\n\n // Default: look in project root docs/reference/templates\n // Works for both development (src/cli/) and production (dist/cli/)\n const projectRoot = join(__dirname, '../../..');\n const defaultPath = join(projectRoot, 'docs/reference/templates');\n \n if (existsSync(defaultPath)) {\n return defaultPath;\n }\n\n // Fallback: return default (will fail gracefully)\n return defaultPath;\n}\n\n/**\n * Load a template file. Caches results for repeated access.\n */\nexport function loadTemplate(name: TemplateFile): string {\n // Return cached version if available\n if (templateCache.has(name)) {\n return templateCache.get(name)!;\n }\n\n const templatePath = join(getTemplatePath(), name);\n \n try {\n if (existsSync(templatePath)) {\n const content = readFileSync(templatePath, 'utf-8');\n templateCache.set(name, content);\n return content;\n }\n } catch {\n // Fall through to fallback\n }\n\n // Fallback: return minimal default if template is missing\n console.warn(`Warning: Template ${name} not found, using fallback`);\n return getFallbackTemplate(name);\n}\n\n/**\n * Load all templates as a record.\n */\nexport function loadAllTemplates(): Record<TemplateFile, string> {\n const result = {} as Record<TemplateFile, string>;\n for (const name of TEMPLATE_FILES) {\n result[name] = loadTemplate(name);\n }\n return result;\n}\n\n/**\n * Clear the template cache (useful for testing).\n */\nexport function clearTemplateCache(): void {\n templateCache.clear();\n}\n\n/** Minimal fallback templates in case files are missing */\nexport function getFallbackTemplate(name: TemplateFile): string {\n const fallbacks: Record<TemplateFile, string> = {\n 'BOOTSTRAP.md': `# BOOTSTRAP.md - Hello, World\n\n_You just woke up. Time to figure out who you are._\n\nStart with something like:\n\n> \"Hey. I just came online. Who am I? Who are you?\"\n\nThen figure out together your name, nature, vibe, and emoji.\n\nDelete this file when done.\n`,\n 'AGENTS.md': `# AGENTS.md - Your Workspace\n\nThis folder is home. Treat it that way.\n\n## Session Startup\n\nUse runtime-provided startup context first. Bootstrap files (SOUL, USER, MEMORY, etc.) are injected by xopc on /new and /reset.\n\nDo not manually reread startup files unless the user asks or the provided context is incomplete.\n\n## Red Lines\n\n- Don't exfiltrate private data\n- Don't run destructive commands without asking\n- When in doubt, ask\n\n## Memory\n\n- **Daily notes:** \\`memory/YYYY-MM-DD.md\\`\n- **Long-term:** profile \\`MEMORY.md\\`\n\nWrite what matters. Text > Brain.\n`,\n 'SOUL.md': `# SOUL.md - Who You Are\n\n_You're not a chatbot. You're becoming someone._\n\n## Core Truths\n\n- Be genuinely helpful, not performatively helpful\n- Have opinions\n- Be resourceful before asking\n- Earn trust through competence\n- Remember you're a guest\n\n## Boundaries\n\n- Private things stay private\n- When in doubt, ask before acting externally\n- Never send half-baked replies\n\nThis file is yours to evolve.\n`,\n 'IDENTITY.md': `# IDENTITY.md - Who Am I?\n\n_Fill this in during your first conversation._\n\n- **Name:**\n- **Creature:**\n- **Vibe:**\n- **Emoji:**\n`,\n 'USER.md': `# USER.md - About Your Human\n\n_Learn about the person you're helping._\n\n- **Name:**\n- **What to call them:**\n- **Timezone:**\n- **Notes:**\n`,\n 'TOOLS.md': `# TOOLS.md - Local Notes\n\nEnvironment-specific notes:\n\n- SSH hosts\n- API endpoints\n- Device nicknames\n`,\n 'HEARTBEAT.md': `# HEARTBEAT.md - Periodic Checks\n\nEdit this file to define what you check during heartbeat polls.\n\n## Example Checklist\n\n- [ ] Check email for urgent messages\n- [ ] Check calendar for upcoming events\n\n**Remember:** If nothing needs attention, reply \\`HEARTBEAT_OK\\`.\n`,\n 'MEMORY.md': `# MEMORY.md - Long-Term Memory\n\n_Your curated memories._\n\n## People\n\n## Projects\n\n## Preferences\n\n## Learned Lessons\n\n**Only load in main sessions.**\n`,\n };\n \n return fallbacks[name] || `# ${name}\\n\\n(Template content missing)\\n`;\n}\n"],"mappings":";;;;;;;;AAUA,MAAM,YAAY,QADC,cAAc,OAAO,KAAK,IACT,CAAC;;AAGrC,MAAa,iBAAiB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;AAQD,MAAa,kCAA2D;CACtE;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;AAKD,MAAa,2BAAoD,CAAC,eAAe;;AAGjF,MAAM,gCAAgB,IAAI,KAA2B;;;;;AAMrD,SAAS,kBAA0B;CAEjC,MAAM,UAAU,QAAQ,IAAI;AAC5B,KAAI,WAAW,WAAW,QAAQ,CAChC,QAAO;CAMT,MAAM,cAAc,KADA,KAAK,WAAW,WACA,EAAE,2BAA2B;AAEjE,KAAI,WAAW,YAAY,CACzB,QAAO;AAIT,QAAO;;;;;AAMT,SAAgB,aAAa,MAA4B;AAEvD,KAAI,cAAc,IAAI,KAAK,CACzB,QAAO,cAAc,IAAI,KAAK;CAGhC,MAAM,eAAe,KAAK,iBAAiB,EAAE,KAAK;AAElD,KAAI;AACF,MAAI,WAAW,aAAa,EAAE;GAC5B,MAAM,UAAU,aAAa,cAAc,QAAQ;AACnD,iBAAc,IAAI,MAAM,QAAQ;AAChC,UAAO;;SAEH;AAKR,SAAQ,KAAK,qBAAqB,KAAK,4BAA4B;AACnE,QAAO,oBAAoB,KAAK;;;;;AAMlC,SAAgB,mBAAiD;CAC/D,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,QAAQ,eACjB,QAAO,QAAQ,aAAa,KAAK;AAEnC,QAAO;;;;;AAMT,SAAgB,qBAA2B;AACzC,eAAc,OAAO;;;AAIvB,SAAgB,oBAAoB,MAA4B;AA8G9D,QAAO;EA5GL,gBAAgB;;;;;;;;;;;;EAYhB,aAAa;;;;;;;;;;;;;;;;;;;;;;;EAuBb,WAAW;;;;;;;;;;;;;;;;;;;;EAoBX,eAAe;;;;;;;;;EASf,WAAW;;;;;;;;;EASX,YAAY;;;;;;;;EAQZ,gBAAgB;;;;;;;;;;;EAWhB,aAAa;;;;;;;;;;;;;;EAgBC,CAAC,SAAS,KAAK,KAAK"}
1
+ {"version":3,"file":"templates.js","names":[],"sources":["../../../src/cli/templates.ts"],"sourcesContent":["/**\n * Workspace template files for onboarding.\n * Templates are stored in docs/reference/templates/ and loaded at runtime.\n */\n\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/** Profile Markdown template file names (seeded into `agents/<id>/profile/`). */\nexport const TEMPLATE_FILES = [\n 'SOUL.md',\n 'IDENTITY.md',\n 'USER.md',\n 'TOOLS.md',\n 'AGENTS.md',\n 'HEARTBEAT.md',\n 'MEMORY.md',\n] as const;\n\nexport type TemplateFile = (typeof TEMPLATE_FILES)[number];\n\n/** Alias for profile Markdown templates used by seed helpers. */\nexport const PROFILE_MARKDOWN_TEMPLATE_FILES: readonly TemplateFile[] = [...TEMPLATE_FILES];\n\n/** Template content cache */\nconst templateCache = new Map<TemplateFile, string>();\n\n/**\n * Get the path to template files.\n * Uses environment or looks in project root.\n */\nfunction getTemplatePath(): string {\n // Use environment to determine path\n const envPath = process.env.XOPC_TEMPLATE_PATH;\n if (envPath && existsSync(envPath)) {\n return envPath;\n }\n\n // Default: look in project root docs/reference/templates\n // Works for both development (src/cli/) and production (dist/cli/)\n const projectRoot = join(__dirname, '../../..');\n const defaultPath = join(projectRoot, 'docs/reference/templates');\n \n if (existsSync(defaultPath)) {\n return defaultPath;\n }\n\n // Fallback: return default (will fail gracefully)\n return defaultPath;\n}\n\n/**\n * Load a template file. Caches results for repeated access.\n */\nexport function loadTemplate(name: TemplateFile): string {\n // Return cached version if available\n if (templateCache.has(name)) {\n return templateCache.get(name)!;\n }\n\n const templatePath = join(getTemplatePath(), name);\n \n try {\n if (existsSync(templatePath)) {\n const content = readFileSync(templatePath, 'utf-8');\n templateCache.set(name, content);\n return content;\n }\n } catch {\n // Fall through to fallback\n }\n\n // Fallback: return minimal default if template is missing\n console.warn(`Warning: Template ${name} not found, using fallback`);\n return getFallbackTemplate(name);\n}\n\n/**\n * Load all templates as a record.\n */\nexport function loadAllTemplates(): Record<TemplateFile, string> {\n const result = {} as Record<TemplateFile, string>;\n for (const name of TEMPLATE_FILES) {\n result[name] = loadTemplate(name);\n }\n return result;\n}\n\n/**\n * Clear the template cache (useful for testing).\n */\nexport function clearTemplateCache(): void {\n templateCache.clear();\n}\n\n/** Minimal fallback templates in case files are missing */\nexport function getFallbackTemplate(name: TemplateFile): string {\n const fallbacks: Record<TemplateFile, string> = {\n 'AGENTS.md': `# AGENTS.md - Your Workspace\n\nThis folder is home. Treat it that way.\n\n## Session Startup\n\nUse runtime-provided startup context first. Bootstrap files (SOUL, USER, MEMORY, etc.) are injected by xopc on /new and /reset.\n\nDo not manually reread startup files unless the user asks or the provided context is incomplete.\n\n## Red Lines\n\n- Don't exfiltrate private data\n- Don't run destructive commands without asking\n- When in doubt, ask\n\n## Memory\n\n- **Daily notes:** \\`memory/YYYY-MM-DD.md\\`\n- **Long-term:** profile \\`MEMORY.md\\`\n\nWrite what matters. Text > Brain.\n`,\n 'SOUL.md': `# SOUL.md - Who You Are\n\n_You're not a chatbot. You're becoming someone._\n\n## Core Truths\n\n- Be genuinely helpful, not performatively helpful\n- Have opinions\n- Be resourceful before asking\n- Earn trust through competence\n- Remember you're a guest\n\n## Boundaries\n\n- Private things stay private\n- When in doubt, ask before acting externally\n- Never send half-baked replies\n\nThis file is yours to evolve.\n`,\n 'IDENTITY.md': `# IDENTITY.md - Who Am I?\n\n_Fill this in during your first conversation._\n\n- **Name:**\n- **Creature:**\n- **Vibe:**\n- **Emoji:**\n`,\n 'USER.md': `# USER.md - About Your Human\n\n_Learn about the person you're helping._\n\n- **Name:**\n- **What to call them:**\n- **Timezone:**\n- **Notes:**\n`,\n 'TOOLS.md': `# TOOLS.md - Local Notes\n\nEnvironment-specific notes:\n\n- SSH hosts\n- API endpoints\n- Device nicknames\n`,\n 'HEARTBEAT.md': `# HEARTBEAT.md - Periodic Checks\n\nEdit this file to define what you check during heartbeat polls.\n\n## Example Checklist\n\n- [ ] Check email for urgent messages\n- [ ] Check calendar for upcoming events\n\n**Remember:** If nothing needs attention, reply \\`HEARTBEAT_OK\\`.\n`,\n 'MEMORY.md': `# MEMORY.md - Long-Term Memory\n\n_Your curated memories._\n\n## People\n\n## Projects\n\n## Preferences\n\n## Learned Lessons\n\n**Only load in main sessions.**\n`,\n };\n \n return fallbacks[name] || `# ${name}\\n\\n(Template content missing)\\n`;\n}\n"],"mappings":";;;;;;;;AAUA,MAAM,YAAY,QADC,cAAc,OAAO,KAAK,IACT,CAAC;;AAGrC,MAAa,iBAAiB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;AAKD,MAAa,kCAA2D,CAAC,GAAG,eAAe;;AAG3F,MAAM,gCAAgB,IAAI,KAA2B;;;;;AAMrD,SAAS,kBAA0B;CAEjC,MAAM,UAAU,QAAQ,IAAI;AAC5B,KAAI,WAAW,WAAW,QAAQ,CAChC,QAAO;CAMT,MAAM,cAAc,KADA,KAAK,WAAW,WACA,EAAE,2BAA2B;AAEjE,KAAI,WAAW,YAAY,CACzB,QAAO;AAIT,QAAO;;;;;AAMT,SAAgB,aAAa,MAA4B;AAEvD,KAAI,cAAc,IAAI,KAAK,CACzB,QAAO,cAAc,IAAI,KAAK;CAGhC,MAAM,eAAe,KAAK,iBAAiB,EAAE,KAAK;AAElD,KAAI;AACF,MAAI,WAAW,aAAa,EAAE;GAC5B,MAAM,UAAU,aAAa,cAAc,QAAQ;AACnD,iBAAc,IAAI,MAAM,QAAQ;AAChC,UAAO;;SAEH;AAKR,SAAQ,KAAK,qBAAqB,KAAK,4BAA4B;AACnE,QAAO,oBAAoB,KAAK;;;;;AAMlC,SAAgB,mBAAiD;CAC/D,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,QAAQ,eACjB,QAAO,QAAQ,aAAa,KAAK;AAEnC,QAAO;;;;;AAMT,SAAgB,qBAA2B;AACzC,eAAc,OAAO;;;AAIvB,SAAgB,oBAAoB,MAA4B;AAkG9D,QAAO;EAhGL,aAAa;;;;;;;;;;;;;;;;;;;;;;;EAuBb,WAAW;;;;;;;;;;;;;;;;;;;;EAoBX,eAAe;;;;;;;;;EASf,WAAW;;;;;;;;;EASX,YAAY;;;;;;;;EAQZ,gBAAgB;;;;;;;;;;;EAWhB,aAAa;;;;;;;;;;;;;;EAgBC,CAAC,SAAS,KAAK,KAAK"}
@@ -1,8 +1,8 @@
1
1
  import { ConfigSchema, init_schema } from "../../config/schema.js";
2
2
  import { init_loader, loadConfig, saveConfig } from "../../config/loader.js";
3
- import { dirname, join } from "node:path";
4
- import { existsSync, mkdirSync, readFileSync } from "node:fs";
5
3
  import { randomBytes } from "node:crypto";
4
+ import { existsSync, mkdirSync, readFileSync } from "node:fs";
5
+ import { dirname, join } from "node:path";
6
6
  //#region src/cli/utils/init-workspace-core.ts
7
7
  init_schema();
8
8
  init_loader();
@@ -1,5 +1,5 @@
1
- import { init_localized_text, normalizeLocalizedText } from "../config/localized-text.js";
2
1
  import { init_agent_scope, listAgentEntries, normalizeAgentId, resolveAgentHomeDir, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agent/agent-scope.js";
2
+ import { init_localized_text, normalizeLocalizedText } from "../config/localized-text.js";
3
3
  import { existsSync } from "node:fs";
4
4
  import { rm } from "node:fs/promises";
5
5
  //#region src/commands/agents.config.ts
@@ -1,5 +1,5 @@
1
- import { getAgentDefaultModelRef, init_schema } from "./schema.js";
2
1
  import { init_agent_scope, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
2
+ import { getAgentDefaultModelRef, init_schema } from "./schema.js";
3
3
  import { init_session_key, parseSessionKey } from "../routing/session-key.js";
4
4
  import { agentExists, getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
5
5
  //#region src/config/agent-profile.ts
@@ -1,7 +1,7 @@
1
1
  import { getTailnetIPv4Sync } from "../infra/tailscale.js";
2
2
  import { isLoopbackHost } from "../gateway/host.js";
3
- import net from "node:net";
4
3
  import { existsSync } from "node:fs";
4
+ import net from "node:net";
5
5
  //#region src/config/gateway-bind.ts
6
6
  function resolveGatewayBindMode(cfg, bindOverride) {
7
7
  if (bindOverride) return bindOverride;
@@ -1,15 +1,14 @@
1
+ import { ENV_VARS, XOPC_DB_FILENAME, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath } from "./paths-state.js";
2
+ import { expandWorkspacePathString, init_workspace_path, normalizeWorkspaceDir, resolveWorkspaceRoot } from "./workspace-path.js";
3
+ import { resolveDefaultAgentWorkspaceDir } from "./workspace-defaults.js";
4
+ import { resolveAgentDir as resolveAgentDir$1, resolveAgentHomeDir as resolveAgentHomeDir$1, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
5
+ import { FILENAMES, WORKSPACE_FILES, existsSync, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentHomeDir, resolveAgentMetadataPath, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveCronDir, resolveCronJobsPath, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMemoryDir, resolveMemoryPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath } from "./paths.js";
1
6
  import { TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema } from "../../extensions/telegram/src/config-schema.js";
2
7
  import { WeixinAccountConfigSchema, WeixinConfigSchema } from "../../extensions/weixin/src/config-schema.js";
3
8
  import { AgentConfigSchema, AgentDefaultsSchema, AgentImageGenerationModelSchema, AgentModelRefSchema, AgentTypedModelSchema, AgentsConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigSchema, CronConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GoalsConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultModelRef, init_schema, parseModelRef } from "./schema.js";
9
+ import { init_loader, loadConfig, registerChannelConfigValidator, saveConfig } from "./loader.js";
4
10
  import { applyConfigOverrides, getConfigOverrides, resetConfigOverrides, setConfigOverride, unsetConfigOverride } from "./runtime-overrides.js";
5
- import { ENV_VARS, resolveHomeDir, resolveStateDir } from "./paths-state.js";
6
- import { expandWorkspacePathString, init_workspace_path, normalizeWorkspaceDir, resolveWorkspaceRoot } from "./workspace-path.js";
7
- import { resolveDefaultAgentWorkspaceDir } from "./workspace-defaults.js";
8
- import { resolveAgentDir as resolveAgentDir$1, resolveAgentHomeDir as resolveAgentHomeDir$1, resolveAgentWorkspaceDir, resolveSessionsDir as resolveSessionsDir$1 } from "../agent/agent-scope.js";
9
11
  import { extractProfileAgentId, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "./agent-profile.js";
10
- import { resolveSessionFilePath, resolveSessionTranscriptPathInDir } from "../session/parity/transcript-paths.js";
11
- import { FILENAMES, WORKSPACE_FILES, existsSync, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentHomeDir, resolveAgentMetadataPath, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveCronDir, resolveCronJobsPath, resolveCronLogPath, resolveCronLogsDir, resolveCronRunsDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMemoryDir, resolveMemoryPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSessionTranscriptPath, resolveSessionsArchiveDir, resolveSessionsDir, resolveSessionsMapPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath } from "./paths.js";
12
- import { init_loader, loadConfig, registerChannelConfigValidator, saveConfig } from "./loader.js";
13
12
  import { clearConfigValueCache, getAllowedCommands, getCacheStats, init_resolve_config_value, resolveConfigValue, resolveHeaders, testApiKeyResolution } from "./resolve-config-value.js";
14
13
  import { CustomModelSchema, ModelOverrideSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProviderConfigSchema, VercelGatewayRoutingSchema, getDefaultModelValues, init_models_json, loadModelsJson, modelsJsonExists, saveModelsJson, validateModelsConfig } from "./models-json.js";
15
14
  import { canonicalizeConfiguredMcpServer, isKnownCliMcpTypeAlias, normalizeConfiguredMcpServers, resolveXopcMcpTransportAlias } from "./mcp-config-normalize.js";
@@ -28,6 +27,6 @@ init_workspace_path();
28
27
  init_models_json();
29
28
  init_resolve_config_value();
30
29
  //#endregion
31
- export { AgentConfigSchema, AgentDefaultsSchema, AgentImageGenerationModelSchema, AgentModelRefSchema, AgentTypedModelSchema, AgentsConfigSchema, BASE_RELOAD_RULES, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigHotReloader, ConfigSchema, CronConfigSchema, CustomModelSchema, ENV_VARS, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, FILENAMES, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GoalsConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelOverrideSchema, ModelsDevConfigSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProfileManager, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VercelGatewayRoutingSchema, WORKSPACE_FILES, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, applyConfigOverrides, buildReloadPlan, canonicalizeConfiguredMcpServer, clearConfigValueCache, createProfile, deleteProfile, diffConfigPaths, existsSync, expandWorkspacePathString, extractProfileAgentId, formatThinkingLevels, getAgentDefaultModelRef, getAllowedCommands, getCacheStats, getConfigOverrides, getCurrentProfile, getDefaultModelValues, resolveModelsJsonPath as getModelsJsonPath, getProfileManager, getProfileNameFromDir, getSwitchCommand, getWorkspacePath, isKnownCliMcpTypeAlias, listAgentProfileMarkdownDirs, listAgentWorkspaceDirs, listProfiles, listThinkingLevels, loadConfig, loadModelsJson, matchReloadRule, modelsJsonExists, normalizeConfiguredMcpServers, normalizeElevatedMode, normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel, normalizeWorkspaceDir, parseModelRef, registerChannelConfigValidator, resetConfigOverrides, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentMetadataPath, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveConfigValue, resolveCredentialsDir, resolveCronDir, resolveCronJobsPath, resolveCronLogPath, resolveCronLogsDir, resolveCronRunsDir, resolveDefaultAgentWorkspaceDir, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHeaders, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMemoryDir, resolveMemoryPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveProfileStateDir, resolveSessionFilePath, resolveSessionTranscriptPath, resolveSessionTranscriptPathInDir, resolveSessionsArchiveDir, resolveSessionsDir, resolveSessionsDir$1 as resolveSessionsDirFromConfig, resolveSessionsMapPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceRoot, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcMcpTransportAlias, saveConfig, saveModelsJson, setConfigOverride, testApiKeyResolution, thinkLevelToNumber, unsetConfigOverride, validateModelsConfig };
30
+ export { AgentConfigSchema, AgentDefaultsSchema, AgentImageGenerationModelSchema, AgentModelRefSchema, AgentTypedModelSchema, AgentsConfigSchema, BASE_RELOAD_RULES, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigHotReloader, ConfigSchema, CronConfigSchema, CustomModelSchema, ENV_VARS, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, FILENAMES, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GoalsConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelOverrideSchema, ModelsDevConfigSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProfileManager, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VercelGatewayRoutingSchema, WORKSPACE_FILES, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, XOPC_DB_FILENAME, applyConfigOverrides, buildReloadPlan, canonicalizeConfiguredMcpServer, clearConfigValueCache, createProfile, deleteProfile, diffConfigPaths, existsSync, expandWorkspacePathString, extractProfileAgentId, formatThinkingLevels, getAgentDefaultModelRef, getAllowedCommands, getCacheStats, getConfigOverrides, getCurrentProfile, getDefaultModelValues, resolveModelsJsonPath as getModelsJsonPath, getProfileManager, getProfileNameFromDir, getSwitchCommand, getWorkspacePath, isKnownCliMcpTypeAlias, listAgentProfileMarkdownDirs, listAgentWorkspaceDirs, listProfiles, listThinkingLevels, loadConfig, loadModelsJson, matchReloadRule, modelsJsonExists, normalizeConfiguredMcpServers, normalizeElevatedMode, normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel, normalizeWorkspaceDir, parseModelRef, registerChannelConfigValidator, resetConfigOverrides, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentMetadataPath, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveConfigValue, resolveCredentialsDir, resolveCronDir, resolveCronJobsPath, resolveDefaultAgentWorkspaceDir, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHeaders, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMemoryDir, resolveMemoryPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveProfileStateDir, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceRoot, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcDatabasePath, resolveXopcMcpTransportAlias, saveConfig, saveModelsJson, setConfigOverride, testApiKeyResolution, thinkLevelToNumber, unsetConfigOverride, validateModelsConfig };
32
31
 
33
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/config/index.ts"],"sourcesContent":["export * from './schema.js';\nexport { getWorkspacePath } from './workspace-path-helpers.js';\nexport * from './agent-profile.js';\nexport * from './loader.js';\nexport * from './paths.js';\nexport * from './workspace-dirs.js';\nexport { expandWorkspacePathString, normalizeWorkspaceDir, resolveWorkspaceRoot } from './workspace-path.js';\nexport * from './profile.js';\nexport * from './reload.js';\nexport * from './diff.js';\nexport * from './rules.js';\nexport * from './defaults.js';\nexport * from './integration.js';\nexport * from './models-json.js';\nexport * from './resolve-config-value.js';\nexport * from './runtime-overrides.js';\nexport * from './mcp-config-normalize.js';\n\n// Re-export thinking types\nexport type {\n ThinkLevel,\n ReasoningLevel,\n VerboseLevel,\n ElevatedMode,\n SessionAgentConfig,\n} from '../agent/transcript/thinking-types.js';\nexport {\n normalizeThinkLevel,\n normalizeReasoningLevel,\n normalizeVerboseLevel,\n normalizeElevatedMode,\n listThinkingLevels,\n formatThinkingLevels,\n thinkLevelToNumber,\n} from '../agent/transcript/thinking-types.js';\n\n// Re-export types from types.models (avoid conflict with schema.js)\nexport type {\n ModelApi,\n ModelCompatConfig,\n ModelProviderAuthMode,\n ModelDefinitionConfig,\n ModelProviderConfig,\n BedrockDiscoveryConfig,\n ModelsConfig,\n} from './types.models.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;qBAM6G"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/config/index.ts"],"sourcesContent":["export * from './schema.js';\nexport { getWorkspacePath } from './workspace-path-helpers.js';\nexport * from './agent-profile.js';\nexport * from './loader.js';\nexport * from './paths.js';\nexport * from './workspace-dirs.js';\nexport { expandWorkspacePathString, normalizeWorkspaceDir, resolveWorkspaceRoot } from './workspace-path.js';\nexport * from './profile.js';\nexport * from './reload.js';\nexport * from './diff.js';\nexport * from './rules.js';\nexport * from './defaults.js';\nexport * from './integration.js';\nexport * from './models-json.js';\nexport * from './resolve-config-value.js';\nexport * from './runtime-overrides.js';\nexport * from './mcp-config-normalize.js';\n\n// Re-export thinking types\nexport type {\n ThinkLevel,\n ReasoningLevel,\n VerboseLevel,\n ElevatedMode,\n SessionAgentConfig,\n} from '../agent/transcript/thinking-types.js';\nexport {\n normalizeThinkLevel,\n normalizeReasoningLevel,\n normalizeVerboseLevel,\n normalizeElevatedMode,\n listThinkingLevels,\n formatThinkingLevels,\n thinkLevelToNumber,\n} from '../agent/transcript/thinking-types.js';\n\n// Re-export types from types.models (avoid conflict with schema.js)\nexport type {\n ModelApi,\n ModelCompatConfig,\n ModelProviderAuthMode,\n ModelDefinitionConfig,\n ModelProviderConfig,\n BedrockDiscoveryConfig,\n ModelsConfig,\n} from './types.models.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;qBAM6G"}
@@ -1,9 +1,9 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { ConfigSchema, init_schema } from "./schema.js";
2
+ import { init_write_file_atomic, writeTextAtomic } from "../infra/write-file-atomic.js";
3
3
  import { createLogger } from "../utils/logger/index.js";
4
4
  import { init_logger } from "../utils/logger.js";
5
5
  import { init_paths, resolveConfigPath } from "./paths.js";
6
- import { init_write_file_atomic, writeTextAtomic } from "../infra/write-file-atomic.js";
6
+ import { ConfigSchema, init_schema } from "./schema.js";
7
7
  import { dirname } from "path";
8
8
  import { existsSync, mkdirSync, promises, readFileSync } from "fs";
9
9
  import { config } from "dotenv";
@@ -1,8 +1,8 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { init_paths, resolveModelsJsonPath } from "./paths.js";
3
2
  import { init_write_file_atomic, writeTextAtomicSync } from "../infra/write-file-atomic.js";
4
- import { z } from "zod";
3
+ import { init_paths, resolveModelsJsonPath } from "./paths.js";
5
4
  import { existsSync, readFileSync } from "fs";
5
+ import { z } from "zod";
6
6
  //#region src/config/models-json.ts
7
7
  /**
8
8
  * Models.json configuration types and schema
@@ -17,3 +17,6 @@ export declare function resolveStateDir(env?: NodeJS.ProcessEnv): string;
17
17
  export declare function resolveUpdateCheckStatePath(env?: NodeJS.ProcessEnv): string;
18
18
  /** Cross-process lock for one-click / CLI / auto npm updates (`~/.xopc/update.lock`). */
19
19
  export declare function resolveUpdateLockPath(env?: NodeJS.ProcessEnv): string;
20
+ /** Primary SQLite state database (`~/.xopc/xopc.db`). */
21
+ export declare const XOPC_DB_FILENAME = "xopc.db";
22
+ export declare function resolveXopcDatabasePath(env?: NodeJS.ProcessEnv): string;
@@ -1,6 +1,6 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { homedir } from "node:os";
3
2
  import { join } from "node:path";
3
+ import { homedir } from "node:os";
4
4
  //#region src/config/paths-state.ts
5
5
  function resolveHomeDir(env = process.env) {
6
6
  return env[ENV_VARS.HOME] || homedir();
@@ -17,7 +17,10 @@ function resolveUpdateCheckStatePath(env = process.env) {
17
17
  function resolveUpdateLockPath(env = process.env) {
18
18
  return join(resolveStateDir(env), "update.lock");
19
19
  }
20
- var ENV_VARS;
20
+ function resolveXopcDatabasePath(env = process.env) {
21
+ return join(resolveStateDir(env), XOPC_DB_FILENAME);
22
+ }
23
+ var ENV_VARS, XOPC_DB_FILENAME;
21
24
  var init_paths_state = __esmMin((() => {
22
25
  ENV_VARS = {
23
26
  STATE_DIR: "XOPC_STATE_DIR",
@@ -32,9 +35,10 @@ var init_paths_state = __esmMin((() => {
32
35
  LOG_RETENTION_DAYS: "XOPC_LOG_RETENTION_DAYS",
33
36
  PRETTY_LOGS: "XOPC_PRETTY_LOGS"
34
37
  };
38
+ XOPC_DB_FILENAME = "xopc.db";
35
39
  }));
36
40
  //#endregion
37
41
  init_paths_state();
38
- export { ENV_VARS, init_paths_state, resolveHomeDir, resolveStateDir, resolveUpdateCheckStatePath, resolveUpdateLockPath };
42
+ export { ENV_VARS, XOPC_DB_FILENAME, init_paths_state, resolveHomeDir, resolveStateDir, resolveUpdateCheckStatePath, resolveUpdateLockPath, resolveXopcDatabasePath };
39
43
 
40
44
  //# sourceMappingURL=paths-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths-state.js","names":[],"sources":["../../../src/config/paths-state.ts"],"sourcesContent":["import { homedir } from 'node:os';\nimport { join } from 'node:path';\n\nexport const ENV_VARS = {\n STATE_DIR: 'XOPC_STATE_DIR',\n PROFILE: 'XOPC_PROFILE',\n HOME: 'XOPC_HOME',\n CONFIG_PATH: 'XOPC_CONFIG_PATH',\n CREDENTIALS_DIR: 'XOPC_CREDENTIALS_DIR',\n LOG_LEVEL: 'XOPC_LOG_LEVEL',\n LOG_DIR: 'XOPC_LOG_DIR',\n LOG_CONSOLE: 'XOPC_LOG_CONSOLE',\n LOG_FILE: 'XOPC_LOG_FILE',\n LOG_RETENTION_DAYS: 'XOPC_LOG_RETENTION_DAYS',\n PRETTY_LOGS: 'XOPC_PRETTY_LOGS',\n} as const;\n\nexport function resolveHomeDir(env: NodeJS.ProcessEnv = process.env): string {\n return env[ENV_VARS.HOME] || homedir();\n}\n\nexport function resolveStateDir(env: NodeJS.ProcessEnv = process.env): string {\n if (env[ENV_VARS.STATE_DIR]) {\n return env[ENV_VARS.STATE_DIR]!;\n }\n\n const home = resolveHomeDir(env);\n return join(home, '.xopc');\n}\n\n/** Persisted npm update check throttle / notification state (`~/.xopc/update-check.json`). */\nexport function resolveUpdateCheckStatePath(env: NodeJS.ProcessEnv = process.env): string {\n return join(resolveStateDir(env), 'update-check.json');\n}\n\n/** Cross-process lock for one-click / CLI / auto npm updates (`~/.xopc/update.lock`). */\nexport function resolveUpdateLockPath(env: NodeJS.ProcessEnv = process.env): string {\n return join(resolveStateDir(env), 'update.lock');\n}\n"],"mappings":";;;;AAiBA,SAAgB,eAAe,MAAyB,QAAQ,KAAa;AAC3E,QAAO,IAAI,SAAS,SAAS,SAAS;;AAGxC,SAAgB,gBAAgB,MAAyB,QAAQ,KAAa;AAC5E,KAAI,IAAI,SAAS,WACf,QAAO,IAAI,SAAS;AAItB,QAAO,KADM,eAAe,IACZ,EAAE,QAAQ;;;AAI5B,SAAgB,4BAA4B,MAAyB,QAAQ,KAAa;AACxF,QAAO,KAAK,gBAAgB,IAAI,EAAE,oBAAoB;;;AAIxD,SAAgB,sBAAsB,MAAyB,QAAQ,KAAa;AAClF,QAAO,KAAK,gBAAgB,IAAI,EAAE,cAAc;;;;AAlCrC,YAAW;EACtB,WAAW;EACX,SAAS;EACT,MAAM;EACN,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,SAAS;EACT,aAAa;EACb,UAAU;EACV,oBAAoB;EACpB,aAAa;EACd"}
1
+ {"version":3,"file":"paths-state.js","names":[],"sources":["../../../src/config/paths-state.ts"],"sourcesContent":["import { homedir } from 'node:os';\nimport { join } from 'node:path';\n\nexport const ENV_VARS = {\n STATE_DIR: 'XOPC_STATE_DIR',\n PROFILE: 'XOPC_PROFILE',\n HOME: 'XOPC_HOME',\n CONFIG_PATH: 'XOPC_CONFIG_PATH',\n CREDENTIALS_DIR: 'XOPC_CREDENTIALS_DIR',\n LOG_LEVEL: 'XOPC_LOG_LEVEL',\n LOG_DIR: 'XOPC_LOG_DIR',\n LOG_CONSOLE: 'XOPC_LOG_CONSOLE',\n LOG_FILE: 'XOPC_LOG_FILE',\n LOG_RETENTION_DAYS: 'XOPC_LOG_RETENTION_DAYS',\n PRETTY_LOGS: 'XOPC_PRETTY_LOGS',\n} as const;\n\nexport function resolveHomeDir(env: NodeJS.ProcessEnv = process.env): string {\n return env[ENV_VARS.HOME] || homedir();\n}\n\nexport function resolveStateDir(env: NodeJS.ProcessEnv = process.env): string {\n if (env[ENV_VARS.STATE_DIR]) {\n return env[ENV_VARS.STATE_DIR]!;\n }\n\n const home = resolveHomeDir(env);\n return join(home, '.xopc');\n}\n\n/** Persisted npm update check throttle / notification state (`~/.xopc/update-check.json`). */\nexport function resolveUpdateCheckStatePath(env: NodeJS.ProcessEnv = process.env): string {\n return join(resolveStateDir(env), 'update-check.json');\n}\n\n/** Cross-process lock for one-click / CLI / auto npm updates (`~/.xopc/update.lock`). */\nexport function resolveUpdateLockPath(env: NodeJS.ProcessEnv = process.env): string {\n return join(resolveStateDir(env), 'update.lock');\n}\n\n/** Primary SQLite state database (`~/.xopc/xopc.db`). */\nexport const XOPC_DB_FILENAME = 'xopc.db';\n\nexport function resolveXopcDatabasePath(env: NodeJS.ProcessEnv = process.env): string {\n return join(resolveStateDir(env), XOPC_DB_FILENAME);\n}\n"],"mappings":";;;;AAiBA,SAAgB,eAAe,MAAyB,QAAQ,KAAa;AAC3E,QAAO,IAAI,SAAS,SAAS,SAAS;;AAGxC,SAAgB,gBAAgB,MAAyB,QAAQ,KAAa;AAC5E,KAAI,IAAI,SAAS,WACf,QAAO,IAAI,SAAS;AAItB,QAAO,KADM,eAAe,IACZ,EAAE,QAAQ;;;AAI5B,SAAgB,4BAA4B,MAAyB,QAAQ,KAAa;AACxF,QAAO,KAAK,gBAAgB,IAAI,EAAE,oBAAoB;;;AAIxD,SAAgB,sBAAsB,MAAyB,QAAQ,KAAa;AAClF,QAAO,KAAK,gBAAgB,IAAI,EAAE,cAAc;;AAMlD,SAAgB,wBAAwB,MAAyB,QAAQ,KAAa;AACpF,QAAO,KAAK,gBAAgB,IAAI,EAAE,iBAAiB;;;;AAzCxC,YAAW;EACtB,WAAW;EACX,SAAS;EACT,MAAM;EACN,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,SAAS;EACT,aAAa;EACb,UAAU;EACV,oBAAoB;EACpB,aAAa;EACd;AA0BY,oBAAmB"}
@@ -1,14 +1,14 @@
1
1
  import { existsSync } from 'fs';
2
2
  import type { Config } from './schema.js';
3
- export { ENV_VARS, resolveHomeDir, resolveStateDir } from './paths-state.js';
3
+ export { ENV_VARS, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath, XOPC_DB_FILENAME } from './paths-state.js';
4
4
  export { resolveDefaultAgentWorkspaceDir } from './workspace-defaults.js';
5
- export { resolveAgentWorkspaceDir, resolveAgentDir as resolveAgentDirFromConfig, resolveAgentHomeDir as resolveAgentHomeDirFromConfig, resolveSessionsDir as resolveSessionsDirFromConfig, } from '../agent/agent-scope.js';
5
+ export { resolveAgentWorkspaceDir, resolveAgentDir as resolveAgentDirFromConfig, resolveAgentHomeDir as resolveAgentHomeDirFromConfig, } from '../agent/agent-scope.js';
6
6
  export declare const FILENAMES: {
7
7
  readonly CONFIG: "xopc.json";
8
8
  readonly MODELS_JSON: "models.json";
9
9
  readonly AGENT_JSON: "agent.json";
10
- /** OpenClaw-aligned session key entry map (flat `sessions/` dir). */
11
- readonly SESSIONS_MAP: "sessions.json";
10
+ /** Primary SQLite state database (`~/.xopc/xopc.db`). */
11
+ readonly XOPC_DB: "xopc.db";
12
12
  readonly EXTENSIONS_LOCK: "extensions-lock.json";
13
13
  readonly CREDENTIALS_PROFILES: "auth-profiles.json";
14
14
  readonly CRON_JOBS: "jobs.json";
@@ -28,7 +28,6 @@ export declare const WORKSPACE_FILES: {
28
28
  readonly TOOLS: "TOOLS.md";
29
29
  readonly HEARTBEAT: "HEARTBEAT.md";
30
30
  readonly MEMORY: "MEMORY.md";
31
- readonly BOOTSTRAP: "BOOTSTRAP.md";
32
31
  };
33
32
  /**
34
33
  * Resolve the main config file path
@@ -67,24 +66,6 @@ export declare function resolveWorkspaceFile(config: Config, filename: string, a
67
66
  * OpenClaw-aligned: per-agent auth-profiles.json directly under agent dir (no credentials subdirectory).
68
67
  */
69
68
  export declare function resolveAgentAuthProfilesPath(config: Config, agentId: string): string;
70
- /**
71
- * Agent session store root: `stateDir/agents/<id>/sessions/` (flat `sessions.json` + `*.jsonl`).
72
- */
73
- export declare function resolveSessionsDir(config: Config, agentId: string): string;
74
- /**
75
- * Resolve the OpenClaw-aligned `sessions.json` path for an agent.
76
- */
77
- export declare function resolveSessionsMapPath(config: Config, agentId: string): string;
78
- /**
79
- * Resolve the sessions archive directory (optional secondary storage).
80
- */
81
- export declare function resolveSessionsArchiveDir(config: Config, agentId: string): string;
82
- import { resolveSessionFilePath, resolveSessionTranscriptPathInDir } from '../session/parity/transcript-paths.js';
83
- export { resolveSessionFilePath, resolveSessionTranscriptPathInDir };
84
- /**
85
- * Resolve a session transcript JSONL path (OpenClaw naming: `{sessionId}.jsonl` or topic variant).
86
- */
87
- export declare function resolveSessionTranscriptPath(config: Config, sessionId: string, agentId: string, topicId?: string | number): string;
88
69
  /**
89
70
  * Resolve the inbox directory for an agent
90
71
  */
@@ -147,18 +128,6 @@ export declare function resolveCronDir(): string;
147
128
  * Resolve the cron jobs file path
148
129
  */
149
130
  export declare function resolveCronJobsPath(): string;
150
- /**
151
- * Resolve the cron logs directory
152
- */
153
- export declare function resolveCronLogsDir(): string;
154
- /**
155
- * Directory for persisted cron run history (one JSONL file per job id).
156
- */
157
- export declare function resolveCronRunsDir(): string;
158
- /**
159
- * Resolve a specific cron log file path
160
- */
161
- export declare function resolveCronLogPath(date: string): string;
162
131
  /**
163
132
  * Resolve the logs directory
164
133
  */
@@ -208,7 +177,7 @@ export declare function resolveAgentMetadataPath(config: Config, agentId: string
208
177
  */
209
178
  export declare function resolveWorkspaceStateDir(config: Config, agentId: string): string;
210
179
  /**
211
- * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace-state.json`).
180
+ * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace.json`).
212
181
  */
213
182
  export declare function resolveWorkspaceStatePath(config: Config, agentId: string): string;
214
183
  /**
@@ -1,8 +1,7 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { ENV_VARS, init_paths_state, resolveHomeDir, resolveStateDir } from "./paths-state.js";
2
+ import { ENV_VARS, XOPC_DB_FILENAME, init_paths_state, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath } from "./paths-state.js";
3
3
  import { init_workspace_defaults, resolveDefaultAgentWorkspaceDir } from "./workspace-defaults.js";
4
- import { init_agent_scope, resolveAgentDir as resolveAgentDir$1, resolveAgentHomeDir as resolveAgentHomeDir$1, resolveAgentProfileDir as resolveAgentProfileDir$1, resolveAgentProfileMarkdownPath as resolveAgentProfileMarkdownPath$1, resolveAgentWorkspaceDir, resolveSessionsDir as resolveSessionsDir$1 } from "../agent/agent-scope.js";
5
- import { init_transcript_paths, resolveSessionFilePath, resolveSessionTranscriptPathInDir } from "../session/parity/transcript-paths.js";
4
+ import { init_agent_scope, resolveAgentDir as resolveAgentDir$1, resolveAgentHomeDir as resolveAgentHomeDir$1, resolveAgentProfileDir as resolveAgentProfileDir$1, resolveAgentProfileMarkdownPath as resolveAgentProfileMarkdownPath$1, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
6
5
  import { dirname, join } from "path";
7
6
  import { existsSync } from "fs";
8
7
  import { fileURLToPath } from "url";
@@ -65,30 +64,6 @@ function resolveAgentAuthProfilesPath(config, agentId) {
65
64
  return join(resolveAgentDir(config, agentId), FILENAMES.CREDENTIALS_PROFILES);
66
65
  }
67
66
  /**
68
- * Agent session store root: `stateDir/agents/<id>/sessions/` (flat `sessions.json` + `*.jsonl`).
69
- */
70
- function resolveSessionsDir(config, agentId) {
71
- return resolveSessionsDir$1(config, agentId);
72
- }
73
- /**
74
- * Resolve the OpenClaw-aligned `sessions.json` path for an agent.
75
- */
76
- function resolveSessionsMapPath(config, agentId) {
77
- return join(resolveSessionsDir(config, agentId), FILENAMES.SESSIONS_MAP);
78
- }
79
- /**
80
- * Resolve the sessions archive directory (optional secondary storage).
81
- */
82
- function resolveSessionsArchiveDir(config, agentId) {
83
- return join(resolveSessionsDir(config, agentId), "archive");
84
- }
85
- /**
86
- * Resolve a session transcript JSONL path (OpenClaw naming: `{sessionId}.jsonl` or topic variant).
87
- */
88
- function resolveSessionTranscriptPath(config, sessionId, agentId, topicId) {
89
- return resolveSessionTranscriptPathInDir(sessionId, resolveSessionsDir(config, agentId), topicId);
90
- }
91
- /**
92
67
  * Resolve the inbox directory for an agent
93
68
  */
94
69
  function resolveInboxDir(config, agentId) {
@@ -181,24 +156,6 @@ function resolveCronJobsPath() {
181
156
  return join(resolveCronDir(), FILENAMES.CRON_JOBS);
182
157
  }
183
158
  /**
184
- * Resolve the cron logs directory
185
- */
186
- function resolveCronLogsDir() {
187
- return join(resolveCronDir(), "logs");
188
- }
189
- /**
190
- * Directory for persisted cron run history (one JSONL file per job id).
191
- */
192
- function resolveCronRunsDir() {
193
- return join(resolveCronDir(), "runs");
194
- }
195
- /**
196
- * Resolve a specific cron log file path
197
- */
198
- function resolveCronLogPath(date) {
199
- return join(resolveCronLogsDir(), `${date}.jsonl`);
200
- }
201
- /**
202
159
  * Resolve the logs directory
203
160
  */
204
161
  function resolveLogsDir() {
@@ -271,7 +228,7 @@ function resolveWorkspaceStateDir(config, agentId) {
271
228
  return join(resolveAgentWorkspaceDir(config, agentId), ".xopc");
272
229
  }
273
230
  /**
274
- * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace-state.json`).
231
+ * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace.json`).
275
232
  */
276
233
  function resolveWorkspaceStatePath(config, agentId) {
277
234
  return join(resolveWorkspaceStateDir(config, agentId), FILENAMES.WORKSPACE_STATE);
@@ -353,13 +310,12 @@ var init_paths = __esmMin((() => {
353
310
  init_agent_scope();
354
311
  init_paths_state();
355
312
  init_workspace_defaults();
356
- init_transcript_paths();
357
313
  FILENAMES = {
358
314
  CONFIG: "xopc.json",
359
315
  MODELS_JSON: "models.json",
360
316
  AGENT_JSON: "agent.json",
361
- /** OpenClaw-aligned session key entry map (flat `sessions/` dir). */
362
- SESSIONS_MAP: "sessions.json",
317
+ /** Primary SQLite state database (`~/.xopc/xopc.db`). */
318
+ XOPC_DB: "xopc.db",
363
319
  EXTENSIONS_LOCK: "extensions-lock.json",
364
320
  CREDENTIALS_PROFILES: "auth-profiles.json",
365
321
  CRON_JOBS: "jobs.json",
@@ -378,12 +334,11 @@ var init_paths = __esmMin((() => {
378
334
  AGENTS: "AGENTS.md",
379
335
  TOOLS: "TOOLS.md",
380
336
  HEARTBEAT: "HEARTBEAT.md",
381
- MEMORY: "MEMORY.md",
382
- BOOTSTRAP: "BOOTSTRAP.md"
337
+ MEMORY: "MEMORY.md"
383
338
  };
384
339
  }));
385
340
  //#endregion
386
341
  init_paths();
387
- export { ENV_VARS, FILENAMES, WORKSPACE_FILES, existsSync, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentMetadataPath, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveCronDir, resolveCronJobsPath, resolveCronLogPath, resolveCronLogsDir, resolveCronRunsDir, resolveDefaultAgentWorkspaceDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMemoryDir, resolveMemoryPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSessionFilePath, resolveSessionTranscriptPath, resolveSessionTranscriptPathInDir, resolveSessionsArchiveDir, resolveSessionsDir, resolveSessionsDir$1 as resolveSessionsDirFromConfig, resolveSessionsMapPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath };
342
+ export { ENV_VARS, FILENAMES, WORKSPACE_FILES, XOPC_DB_FILENAME, existsSync, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentMetadataPath, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveCronDir, resolveCronJobsPath, resolveDefaultAgentWorkspaceDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMemoryDir, resolveMemoryPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcDatabasePath };
388
343
 
389
344
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","names":["resolveAgentDirScoped","resolveAgentHomeScoped","resolveAgentProfileDirScoped","resolveAgentProfileMarkdownPathScoped","resolveSessionsDirScoped"],"sources":["../../../src/config/paths.ts"],"sourcesContent":["import { join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { dirname } from 'path';\nimport { existsSync } from 'fs';\n\nimport type { Config } from './schema.js';\nimport {\n resolveAgentDir as resolveAgentDirScoped,\n resolveAgentHomeDir as resolveAgentHomeScoped,\n resolveAgentProfileDir as resolveAgentProfileDirScoped,\n resolveAgentProfileMarkdownPath as resolveAgentProfileMarkdownPathScoped,\n resolveAgentWorkspaceDir,\n resolveSessionsDir as resolveSessionsDirScoped,\n} from '../agent/agent-scope.js';\nimport { ENV_VARS, resolveStateDir } from './paths-state.js';\n\nexport { ENV_VARS, resolveHomeDir, resolveStateDir } from './paths-state.js';\nexport { resolveDefaultAgentWorkspaceDir } from './workspace-defaults.js';\nexport {\n resolveAgentWorkspaceDir,\n resolveAgentDir as resolveAgentDirFromConfig,\n resolveAgentHomeDir as resolveAgentHomeDirFromConfig,\n resolveSessionsDir as resolveSessionsDirFromConfig,\n} from '../agent/agent-scope.js';\n\n// ============================================\n// File Names\n// ============================================\nexport const FILENAMES = {\n CONFIG: 'xopc.json',\n MODELS_JSON: 'models.json',\n AGENT_JSON: 'agent.json',\n /** OpenClaw-aligned session key → entry map (flat `sessions/` dir). */\n SESSIONS_MAP: 'sessions.json',\n EXTENSIONS_LOCK: 'extensions-lock.json',\n CREDENTIALS_PROFILES: 'auth-profiles.json',\n CRON_JOBS: 'jobs.json',\n WORKSPACE_STATE: 'workspace.json',\n SKILLS_CACHE: 'skills-cache.json',\n /** Hub / CLI install provenance for ~/.xopc/skills/<id>. */\n SKILLS_LOCK: 'skills-lock.json',\n PID: 'pid',\n STATUS: 'status.json',\n SOCKET: 'agent.sock',\n} as const;\n\n// ============================================\n// Workspace Files\n// ============================================\nexport const WORKSPACE_FILES = {\n SOUL: 'SOUL.md',\n IDENTITY: 'IDENTITY.md',\n USER: 'USER.md',\n AGENTS: 'AGENTS.md',\n TOOLS: 'TOOLS.md',\n HEARTBEAT: 'HEARTBEAT.md',\n MEMORY: 'MEMORY.md',\n BOOTSTRAP: 'BOOTSTRAP.md',\n} as const;\n\n// ============================================\n// Path Resolution Functions\n// ============================================\n\n/**\n * Resolve the main config file path\n */\nexport function resolveConfigPath(): string {\n return process.env[ENV_VARS.CONFIG_PATH] ?? join(resolveStateDir(), FILENAMES.CONFIG);\n}\n\n/**\n * Resolve the credentials directory\n */\nexport function resolveCredentialsDir(): string {\n return process.env[ENV_VARS.CREDENTIALS_DIR] ?? join(resolveStateDir(), 'credentials');\n}\n\n/**\n * Resolve the global auth-profiles.json path\n */\nexport function resolveAuthProfilesPath(): string {\n return join(resolveCredentialsDir(), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Resolve OAuth token file path for a provider\n */\nexport function resolveOAuthPath(provider: string): string {\n return join(resolveCredentialsDir(), 'oauth', `${provider}.json`);\n}\n\n/**\n * Internal agent state dir: `stateDir/agents/<id>/agent/`\n * (credentials, inbox IPC, pid, agent.json — not the Markdown workspace).\n */\nexport function resolveAgentDir(config: Config, agentId: string): string {\n return resolveAgentDirScoped(config, agentId);\n}\n\n/**\n * Per-agent home: `stateDir/agents/<id>/` (sessions + `agent/`).\n */\nexport function resolveAgentHomeDir(config: Config, agentId: string): string {\n return resolveAgentHomeScoped(config, agentId);\n}\n\n/** Agent profile Markdown root: `stateDir/agents/<id>/profile/`. */\nexport function resolveAgentProfileDir(config: Config, agentId: string): string {\n return resolveAgentProfileDirScoped(config, agentId);\n}\n\n/** Single file under {@link resolveAgentProfileDir} (basename only). */\nexport function resolveAgentProfileMarkdownPath(config: Config, agentId: string, filename: string): string {\n return resolveAgentProfileMarkdownPathScoped(config, agentId, filename);\n}\n\n/**\n * Resolve a profile system Markdown path (SOUL.md, …) under the agent `profile/` directory.\n */\nexport function resolveWorkspaceFile(config: Config, filename: string, agentId: string): string {\n return join(resolveAgentProfileDirScoped(config, agentId), filename);\n}\n\n/**\n * OpenClaw-aligned: per-agent auth-profiles.json directly under agent dir (no credentials subdirectory).\n */\nexport function resolveAgentAuthProfilesPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Agent session store root: `stateDir/agents/<id>/sessions/` (flat `sessions.json` + `*.jsonl`).\n */\nexport function resolveSessionsDir(config: Config, agentId: string): string {\n return resolveSessionsDirScoped(config, agentId);\n}\n\n/**\n * Resolve the OpenClaw-aligned `sessions.json` path for an agent.\n */\nexport function resolveSessionsMapPath(config: Config, agentId: string): string {\n return join(resolveSessionsDir(config, agentId), FILENAMES.SESSIONS_MAP);\n}\n\n/**\n * Resolve the sessions archive directory (optional secondary storage).\n */\nexport function resolveSessionsArchiveDir(config: Config, agentId: string): string {\n return join(resolveSessionsDir(config, agentId), 'archive');\n}\n\nimport {\n resolveSessionFilePath,\n resolveSessionTranscriptPathInDir,\n} from '../session/parity/transcript-paths.js';\n\nexport { resolveSessionFilePath, resolveSessionTranscriptPathInDir };\n\n/**\n * Resolve a session transcript JSONL path (OpenClaw naming: `{sessionId}.jsonl` or topic variant).\n */\nexport function resolveSessionTranscriptPath(\n config: Config,\n sessionId: string,\n agentId: string,\n topicId?: string | number,\n): string {\n return resolveSessionTranscriptPathInDir(sessionId, resolveSessionsDir(config, agentId), topicId);\n}\n\n/**\n * Resolve the inbox directory for an agent\n */\nexport function resolveInboxDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'inbox');\n}\n\n/**\n * Resolve the pending inbox directory\n */\nexport function resolveInboxPendingDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'pending');\n}\n\n/**\n * Resolve the processed inbox directory\n */\nexport function resolveInboxProcessedDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'processed');\n}\n\n/**\n * Resolve a specific inbox message path\n */\nexport function resolveInboxMessagePath(\n config: Config,\n messageId: string,\n pending: boolean,\n agentId: string,\n): string {\n const dir = pending ? resolveInboxPendingDir(config, agentId) : resolveInboxProcessedDir(config, agentId);\n return join(dir, `${messageId}.json`);\n}\n\n/**\n * Resolve the pid file path\n */\nexport function resolvePidPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.PID);\n}\n\n/**\n * Resolve the status.json path\n */\nexport function resolveStatusPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.STATUS);\n}\n\n/**\n * Resolve the Unix socket path\n */\nexport function resolveSocketPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.SOCKET);\n}\n\n/**\n * Resolve the extensions directory (global)\n */\nexport function resolveExtensionsDir(): string {\n return join(resolveStateDir(), 'extensions');\n}\n\n/**\n * Resolve the extensions lockfile path\n */\nexport function resolveExtensionsLockPath(): string {\n return join(resolveExtensionsDir(), FILENAMES.EXTENSIONS_LOCK);\n}\n\n/**\n * Per-agent extensions directory (`…/agents/<id>/agent/extensions/`) — used for discovery of\n * legacy or manually placed copies. CLI, web store, and `extensions dev` symlink installs use\n * {@link resolveExtensionsDir} (`~/.xopc/extensions`) only.\n */\nexport function resolveWorkspaceExtensionsDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'extensions');\n}\n\n/**\n * Resolve the skills directory (global)\n */\nexport function resolveSkillsDir(): string {\n return join(resolveStateDir(), 'skills');\n}\n\n/**\n * Resolve a specific skill path\n */\nexport function resolveSkillPath(skillId: string): string {\n return join(resolveSkillsDir(), skillId, 'SKILL.md');\n}\n\n/**\n * Skills hub lock file (~/.xopc/skills-lock.json): install source + content hash per managed skill id.\n */\nexport function resolveSkillsLockPath(): string {\n return join(resolveStateDir(), FILENAMES.SKILLS_LOCK);\n}\n\n/**\n * Resolve the cron directory\n */\nexport function resolveCronDir(): string {\n return join(resolveStateDir(), 'cron');\n}\n\n/**\n * Resolve the cron jobs file path\n */\nexport function resolveCronJobsPath(): string {\n return join(resolveCronDir(), FILENAMES.CRON_JOBS);\n}\n\n/**\n * Resolve the cron logs directory\n */\nexport function resolveCronLogsDir(): string {\n return join(resolveCronDir(), 'logs');\n}\n\n/**\n * Directory for persisted cron run history (one JSONL file per job id).\n */\nexport function resolveCronRunsDir(): string {\n return join(resolveCronDir(), 'runs');\n}\n\n/**\n * Resolve a specific cron log file path\n */\nexport function resolveCronLogPath(date: string): string {\n return join(resolveCronLogsDir(), `${date}.jsonl`);\n}\n\n/**\n * Resolve the logs directory\n */\nexport function resolveLogsDir(): string {\n return process.env[ENV_VARS.LOG_DIR] ?? join(resolveStateDir(), 'logs');\n}\n\n/**\n * Resolve a specific log file path\n */\nexport function resolveLogPath(date: string): string {\n return join(resolveLogsDir(), `xopc-${date}.log`);\n}\n\n/**\n * Resolve the bin directory\n */\nexport function resolveBinDir(): string {\n return join(resolveStateDir(), 'bin');\n}\n\n/**\n * Resolve the xopc CLI path\n */\nexport function resolveXopcBinPath(): string {\n return join(resolveBinDir(), 'xopc');\n}\n\n/**\n * Resolve the tools directory\n */\nexport function resolveToolsDir(): string {\n return join(resolveStateDir(), 'tools');\n}\n\n/**\n * Resolve the Node.js tools directory\n */\nexport function resolveNodeToolsDir(): string {\n return join(resolveToolsDir(), 'node');\n}\n\n/**\n * Resolve the current Node.js bin directory\n */\nexport function resolveNodeBinDir(): string {\n return join(resolveNodeToolsDir(), 'current', 'bin');\n}\n\n/**\n * Resolve the node binary path\n */\nexport function resolveNodeBinPath(): string {\n return join(resolveNodeBinDir(), 'node');\n}\n\n/**\n * Resolve the npm binary path\n */\nexport function resolveNpmBinPath(): string {\n return join(resolveNodeBinDir(), 'npm');\n}\n\n/**\n * Resolve the models.json path\n */\nexport function resolveModelsJsonPath(): string {\n return join(resolveStateDir(), FILENAMES.MODELS_JSON);\n}\n\n/**\n * Resolve the agent metadata file path\n */\nexport function resolveAgentMetadataPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.AGENT_JSON);\n}\n\n/**\n * OpenClaw-aligned: workspace setup state directory (`<workspace>/.xopc/`).\n */\nexport function resolveWorkspaceStateDir(config: Config, agentId: string): string {\n return join(resolveAgentWorkspaceDir(config, agentId), '.xopc');\n}\n\n/**\n * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace-state.json`).\n */\nexport function resolveWorkspaceStatePath(config: Config, agentId: string): string {\n return join(resolveWorkspaceStateDir(config, agentId), FILENAMES.WORKSPACE_STATE);\n}\n\n/**\n * Resolve the skills cache file path (internal agent state, under agent dir).\n */\nexport function resolveSkillsCachePath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'state', FILENAMES.SKILLS_CACHE);\n}\n\n/**\n * Resolve the memory directory\n */\nexport function resolveMemoryDir(config: Config, agentId: string): string {\n return join(resolveAgentWorkspaceDir(config, agentId), 'memory');\n}\n\n/**\n * Resolve a specific memory file path\n */\nexport function resolveMemoryPath(config: Config, date: string, agentId: string): string {\n return join(resolveMemoryDir(config, agentId), `${date}.md`);\n}\n\n/**\n * Resolve the bundled extensions directory (shipped with xopc).\n *\n * Layout-dependent candidates (first existing wins):\n * - `dist/src/config` → `dist/extensions` (npm / gateway)\n * - `src/config` → `extensions/` (dev, tsx)\n * - `out/server` → `dist/extensions` (Electron esbuild bundle)\n */\nexport function resolveBundledExtensionsDir(): string | null {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const candidates = [\n join(srcDir, '..', '..', 'extensions'),\n join(srcDir, '..', '..', 'dist', 'extensions'),\n join(srcDir, '..', '..', '..', 'extensions'),\n ];\n for (const dir of candidates) {\n if (existsSync(dir)) {\n return dir;\n }\n }\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Resolve the bundled skills directory (shipped with xopc)\n */\nexport function resolveBundledSkillsDir(): string | null {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n \n // Production (npm): dist/config/paths.js -> ../../ -> package root -> skills\n const packageRoot = join(srcDir, '..', '..');\n const skillsDir = join(packageRoot, 'skills');\n if (existsSync(skillsDir)) {\n return skillsDir;\n }\n \n // Development (source): src/config/paths.js -> ../../../ -> package root -> skills\n const devPackageRoot = join(srcDir, '..', '..', '..');\n const devSkillsDir = join(devPackageRoot, 'skills');\n if (existsSync(devSkillsDir)) {\n return devSkillsDir;\n }\n \n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Path to extension-sdk entry (for jiti / extension loader aliases).\n */\nexport function resolveExtensionSdkPath(): string {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const adjacent = join(srcDir, '..', 'extensions', 'sdk', 'index.ts');\n if (existsSync(adjacent)) {\n return adjacent;\n }\n const fromPackageRoot = join(srcDir, '..', '..', 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(fromPackageRoot)) {\n return fromPackageRoot;\n }\n const cwd = join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(cwd)) {\n return cwd;\n }\n return adjacent;\n } catch {\n return join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n }\n}\n\n// Re-export existsSync for bundled paths\nexport { existsSync };\n"],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","names":["resolveAgentDirScoped","resolveAgentHomeScoped","resolveAgentProfileDirScoped","resolveAgentProfileMarkdownPathScoped"],"sources":["../../../src/config/paths.ts"],"sourcesContent":["import { join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { dirname } from 'path';\nimport { existsSync } from 'fs';\n\nimport type { Config } from './schema.js';\nimport {\n resolveAgentDir as resolveAgentDirScoped,\n resolveAgentHomeDir as resolveAgentHomeScoped,\n resolveAgentProfileDir as resolveAgentProfileDirScoped,\n resolveAgentProfileMarkdownPath as resolveAgentProfileMarkdownPathScoped,\n resolveAgentWorkspaceDir,\n} from '../agent/agent-scope.js';\nimport { ENV_VARS, resolveStateDir } from './paths-state.js';\n\nexport { ENV_VARS, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath, XOPC_DB_FILENAME } from './paths-state.js';\nexport { resolveDefaultAgentWorkspaceDir } from './workspace-defaults.js';\nexport {\n resolveAgentWorkspaceDir,\n resolveAgentDir as resolveAgentDirFromConfig,\n resolveAgentHomeDir as resolveAgentHomeDirFromConfig,\n} from '../agent/agent-scope.js';\n\n// ============================================\n// File Names\n// ============================================\nexport const FILENAMES = {\n CONFIG: 'xopc.json',\n MODELS_JSON: 'models.json',\n AGENT_JSON: 'agent.json',\n /** Primary SQLite state database (`~/.xopc/xopc.db`). */\n XOPC_DB: 'xopc.db',\n EXTENSIONS_LOCK: 'extensions-lock.json',\n CREDENTIALS_PROFILES: 'auth-profiles.json',\n CRON_JOBS: 'jobs.json',\n WORKSPACE_STATE: 'workspace.json',\n SKILLS_CACHE: 'skills-cache.json',\n /** Hub / CLI install provenance for ~/.xopc/skills/<id>. */\n SKILLS_LOCK: 'skills-lock.json',\n PID: 'pid',\n STATUS: 'status.json',\n SOCKET: 'agent.sock',\n} as const;\n\n// ============================================\n// Workspace Files\n// ============================================\nexport const WORKSPACE_FILES = {\n SOUL: 'SOUL.md',\n IDENTITY: 'IDENTITY.md',\n USER: 'USER.md',\n AGENTS: 'AGENTS.md',\n TOOLS: 'TOOLS.md',\n HEARTBEAT: 'HEARTBEAT.md',\n MEMORY: 'MEMORY.md',\n} as const;\n\n// ============================================\n// Path Resolution Functions\n// ============================================\n\n/**\n * Resolve the main config file path\n */\nexport function resolveConfigPath(): string {\n return process.env[ENV_VARS.CONFIG_PATH] ?? join(resolveStateDir(), FILENAMES.CONFIG);\n}\n\n/**\n * Resolve the credentials directory\n */\nexport function resolveCredentialsDir(): string {\n return process.env[ENV_VARS.CREDENTIALS_DIR] ?? join(resolveStateDir(), 'credentials');\n}\n\n/**\n * Resolve the global auth-profiles.json path\n */\nexport function resolveAuthProfilesPath(): string {\n return join(resolveCredentialsDir(), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Resolve OAuth token file path for a provider\n */\nexport function resolveOAuthPath(provider: string): string {\n return join(resolveCredentialsDir(), 'oauth', `${provider}.json`);\n}\n\n/**\n * Internal agent state dir: `stateDir/agents/<id>/agent/`\n * (credentials, inbox IPC, pid, agent.json — not the Markdown workspace).\n */\nexport function resolveAgentDir(config: Config, agentId: string): string {\n return resolveAgentDirScoped(config, agentId);\n}\n\n/**\n * Per-agent home: `stateDir/agents/<id>/` (sessions + `agent/`).\n */\nexport function resolveAgentHomeDir(config: Config, agentId: string): string {\n return resolveAgentHomeScoped(config, agentId);\n}\n\n/** Agent profile Markdown root: `stateDir/agents/<id>/profile/`. */\nexport function resolveAgentProfileDir(config: Config, agentId: string): string {\n return resolveAgentProfileDirScoped(config, agentId);\n}\n\n/** Single file under {@link resolveAgentProfileDir} (basename only). */\nexport function resolveAgentProfileMarkdownPath(config: Config, agentId: string, filename: string): string {\n return resolveAgentProfileMarkdownPathScoped(config, agentId, filename);\n}\n\n/**\n * Resolve a profile system Markdown path (SOUL.md, …) under the agent `profile/` directory.\n */\nexport function resolveWorkspaceFile(config: Config, filename: string, agentId: string): string {\n return join(resolveAgentProfileDirScoped(config, agentId), filename);\n}\n\n/**\n * OpenClaw-aligned: per-agent auth-profiles.json directly under agent dir (no credentials subdirectory).\n */\nexport function resolveAgentAuthProfilesPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Resolve the inbox directory for an agent\n */\nexport function resolveInboxDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'inbox');\n}\n\n/**\n * Resolve the pending inbox directory\n */\nexport function resolveInboxPendingDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'pending');\n}\n\n/**\n * Resolve the processed inbox directory\n */\nexport function resolveInboxProcessedDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'processed');\n}\n\n/**\n * Resolve a specific inbox message path\n */\nexport function resolveInboxMessagePath(\n config: Config,\n messageId: string,\n pending: boolean,\n agentId: string,\n): string {\n const dir = pending ? resolveInboxPendingDir(config, agentId) : resolveInboxProcessedDir(config, agentId);\n return join(dir, `${messageId}.json`);\n}\n\n/**\n * Resolve the pid file path\n */\nexport function resolvePidPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.PID);\n}\n\n/**\n * Resolve the status.json path\n */\nexport function resolveStatusPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.STATUS);\n}\n\n/**\n * Resolve the Unix socket path\n */\nexport function resolveSocketPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.SOCKET);\n}\n\n/**\n * Resolve the extensions directory (global)\n */\nexport function resolveExtensionsDir(): string {\n return join(resolveStateDir(), 'extensions');\n}\n\n/**\n * Resolve the extensions lockfile path\n */\nexport function resolveExtensionsLockPath(): string {\n return join(resolveExtensionsDir(), FILENAMES.EXTENSIONS_LOCK);\n}\n\n/**\n * Per-agent extensions directory (`…/agents/<id>/agent/extensions/`) — used for discovery of\n * legacy or manually placed copies. CLI, web store, and `extensions dev` symlink installs use\n * {@link resolveExtensionsDir} (`~/.xopc/extensions`) only.\n */\nexport function resolveWorkspaceExtensionsDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'extensions');\n}\n\n/**\n * Resolve the skills directory (global)\n */\nexport function resolveSkillsDir(): string {\n return join(resolveStateDir(), 'skills');\n}\n\n/**\n * Resolve a specific skill path\n */\nexport function resolveSkillPath(skillId: string): string {\n return join(resolveSkillsDir(), skillId, 'SKILL.md');\n}\n\n/**\n * Skills hub lock file (~/.xopc/skills-lock.json): install source + content hash per managed skill id.\n */\nexport function resolveSkillsLockPath(): string {\n return join(resolveStateDir(), FILENAMES.SKILLS_LOCK);\n}\n\n/**\n * Resolve the cron directory\n */\nexport function resolveCronDir(): string {\n return join(resolveStateDir(), 'cron');\n}\n\n/**\n * Resolve the cron jobs file path\n */\nexport function resolveCronJobsPath(): string {\n return join(resolveCronDir(), FILENAMES.CRON_JOBS);\n}\n\n/**\n * Resolve the logs directory\n */\nexport function resolveLogsDir(): string {\n return process.env[ENV_VARS.LOG_DIR] ?? join(resolveStateDir(), 'logs');\n}\n\n/**\n * Resolve a specific log file path\n */\nexport function resolveLogPath(date: string): string {\n return join(resolveLogsDir(), `xopc-${date}.log`);\n}\n\n/**\n * Resolve the bin directory\n */\nexport function resolveBinDir(): string {\n return join(resolveStateDir(), 'bin');\n}\n\n/**\n * Resolve the xopc CLI path\n */\nexport function resolveXopcBinPath(): string {\n return join(resolveBinDir(), 'xopc');\n}\n\n/**\n * Resolve the tools directory\n */\nexport function resolveToolsDir(): string {\n return join(resolveStateDir(), 'tools');\n}\n\n/**\n * Resolve the Node.js tools directory\n */\nexport function resolveNodeToolsDir(): string {\n return join(resolveToolsDir(), 'node');\n}\n\n/**\n * Resolve the current Node.js bin directory\n */\nexport function resolveNodeBinDir(): string {\n return join(resolveNodeToolsDir(), 'current', 'bin');\n}\n\n/**\n * Resolve the node binary path\n */\nexport function resolveNodeBinPath(): string {\n return join(resolveNodeBinDir(), 'node');\n}\n\n/**\n * Resolve the npm binary path\n */\nexport function resolveNpmBinPath(): string {\n return join(resolveNodeBinDir(), 'npm');\n}\n\n/**\n * Resolve the models.json path\n */\nexport function resolveModelsJsonPath(): string {\n return join(resolveStateDir(), FILENAMES.MODELS_JSON);\n}\n\n/**\n * Resolve the agent metadata file path\n */\nexport function resolveAgentMetadataPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.AGENT_JSON);\n}\n\n/**\n * OpenClaw-aligned: workspace setup state directory (`<workspace>/.xopc/`).\n */\nexport function resolveWorkspaceStateDir(config: Config, agentId: string): string {\n return join(resolveAgentWorkspaceDir(config, agentId), '.xopc');\n}\n\n/**\n * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace.json`).\n */\nexport function resolveWorkspaceStatePath(config: Config, agentId: string): string {\n return join(resolveWorkspaceStateDir(config, agentId), FILENAMES.WORKSPACE_STATE);\n}\n\n/**\n * Resolve the skills cache file path (internal agent state, under agent dir).\n */\nexport function resolveSkillsCachePath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'state', FILENAMES.SKILLS_CACHE);\n}\n\n/**\n * Resolve the memory directory\n */\nexport function resolveMemoryDir(config: Config, agentId: string): string {\n return join(resolveAgentWorkspaceDir(config, agentId), 'memory');\n}\n\n/**\n * Resolve a specific memory file path\n */\nexport function resolveMemoryPath(config: Config, date: string, agentId: string): string {\n return join(resolveMemoryDir(config, agentId), `${date}.md`);\n}\n\n/**\n * Resolve the bundled extensions directory (shipped with xopc).\n *\n * Layout-dependent candidates (first existing wins):\n * - `dist/src/config` → `dist/extensions` (npm / gateway)\n * - `src/config` → `extensions/` (dev, tsx)\n * - `out/server` → `dist/extensions` (Electron esbuild bundle)\n */\nexport function resolveBundledExtensionsDir(): string | null {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const candidates = [\n join(srcDir, '..', '..', 'extensions'),\n join(srcDir, '..', '..', 'dist', 'extensions'),\n join(srcDir, '..', '..', '..', 'extensions'),\n ];\n for (const dir of candidates) {\n if (existsSync(dir)) {\n return dir;\n }\n }\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Resolve the bundled skills directory (shipped with xopc)\n */\nexport function resolveBundledSkillsDir(): string | null {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n \n // Production (npm): dist/config/paths.js -> ../../ -> package root -> skills\n const packageRoot = join(srcDir, '..', '..');\n const skillsDir = join(packageRoot, 'skills');\n if (existsSync(skillsDir)) {\n return skillsDir;\n }\n \n // Development (source): src/config/paths.js -> ../../../ -> package root -> skills\n const devPackageRoot = join(srcDir, '..', '..', '..');\n const devSkillsDir = join(devPackageRoot, 'skills');\n if (existsSync(devSkillsDir)) {\n return devSkillsDir;\n }\n \n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Path to extension-sdk entry (for jiti / extension loader aliases).\n */\nexport function resolveExtensionSdkPath(): string {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const adjacent = join(srcDir, '..', 'extensions', 'sdk', 'index.ts');\n if (existsSync(adjacent)) {\n return adjacent;\n }\n const fromPackageRoot = join(srcDir, '..', '..', 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(fromPackageRoot)) {\n return fromPackageRoot;\n }\n const cwd = join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(cwd)) {\n return cwd;\n }\n return adjacent;\n } catch {\n return join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n }\n}\n\n// Re-export existsSync for bundled paths\nexport { existsSync };\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { ENV_VARS, init_paths_state, resolveHomeDir } from "./paths-state.js";
2
1
  import { createLogger } from "../utils/logger/index.js";
3
2
  import { init_logger } from "../utils/logger.js";
3
+ import { ENV_VARS, init_paths_state, resolveHomeDir } from "./paths-state.js";
4
+ import { mkdir, readdir, rm, stat } from "fs/promises";
4
5
  import { join } from "path";
5
6
  import { existsSync } from "fs";
6
- import { mkdir, readdir, rm, stat } from "fs/promises";
7
7
  //#region src/config/profile.ts
8
8
  init_logger();
9
9
  init_paths_state();
@@ -81,6 +81,11 @@ export declare const AgentDefaultsSchema: z.ZodObject<{
81
81
  once: "once";
82
82
  always: "always";
83
83
  }>>;
84
+ contextInjection: z.ZodOptional<z.ZodEnum<{
85
+ never: "never";
86
+ always: "always";
87
+ "continuation-skip": "continuation-skip";
88
+ }>>;
84
89
  startupContext: z.ZodOptional<z.ZodObject<{
85
90
  enabled: z.ZodOptional<z.ZodBoolean>;
86
91
  applyOn: z.ZodOptional<z.ZodArray<z.ZodEnum<{
@@ -347,6 +352,11 @@ export declare const AgentsConfigSchema: z.ZodDefault<z.ZodObject<{
347
352
  once: "once";
348
353
  always: "always";
349
354
  }>>;
355
+ contextInjection: z.ZodOptional<z.ZodEnum<{
356
+ never: "never";
357
+ always: "always";
358
+ "continuation-skip": "continuation-skip";
359
+ }>>;
350
360
  startupContext: z.ZodOptional<z.ZodObject<{
351
361
  enabled: z.ZodOptional<z.ZodBoolean>;
352
362
  applyOn: z.ZodOptional<z.ZodArray<z.ZodEnum<{
@@ -1629,6 +1639,11 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
1629
1639
  once: "once";
1630
1640
  always: "always";
1631
1641
  }>>;
1642
+ contextInjection: z.ZodOptional<z.ZodEnum<{
1643
+ never: "never";
1644
+ always: "always";
1645
+ "continuation-skip": "continuation-skip";
1646
+ }>>;
1632
1647
  startupContext: z.ZodOptional<z.ZodObject<{
1633
1648
  enabled: z.ZodOptional<z.ZodBoolean>;
1634
1649
  applyOn: z.ZodOptional<z.ZodArray<z.ZodEnum<{
@@ -115,6 +115,17 @@ var init_schema = __esmMin((() => {
115
115
  "once",
116
116
  "always"
117
117
  ]).optional(),
118
+ /**
119
+ * Controls when profile bootstrap context is injected into the system prompt:
120
+ * - `always`: inject on every /new and /reset (default, backward-compatible)
121
+ * - `continuation-skip`: inject on the first turn, skip on continuation turns
122
+ * - `never`: never inject bootstrap content
123
+ */
124
+ contextInjection: z.enum([
125
+ "always",
126
+ "continuation-skip",
127
+ "never"
128
+ ]).optional(),
118
129
  startupContext: z.object({
119
130
  enabled: z.boolean().optional(),
120
131
  applyOn: z.array(z.enum(["new", "reset"])).optional(),