@xopcai/xopc 0.0.111 → 0.0.113

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 (443) hide show
  1. package/dist/browser-ext/icons/icon-128.png +0 -0
  2. package/dist/browser-ext/icons/icon-16.png +0 -0
  3. package/dist/browser-ext/icons/icon-32.png +0 -0
  4. package/dist/browser-ext/icons/icon-48.png +0 -0
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  7. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  8. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  9. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  10. package/dist/extensions/telegram/src/plugin.js +1 -1
  11. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  12. package/dist/extensions/telegram/src/update-offset-store.js +1 -1
  13. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  14. package/dist/extensions/telegram/xopc.extension.json +1 -1
  15. package/dist/extensions/weixin/src/api/api.js +2 -2
  16. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  17. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  18. package/dist/extensions/weixin/src/delivery-to.d.ts +3 -3
  19. package/dist/extensions/weixin/src/delivery-to.js.map +1 -1
  20. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  21. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  22. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  23. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  24. package/dist/extensions/weixin/src/plugin.js +1 -1
  25. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  26. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  27. package/dist/gateway/static/root/apple-touch-icon.png +0 -0
  28. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-zlx9l5Yp.js → agent-avatar-dicebear-CBlklyNr.js} +1 -1
  29. package/dist/gateway/static/root/assets/agent-browser-settings-page-rGbKc2Hh.js +6 -0
  30. package/dist/gateway/static/root/assets/{agent-defaults-tabbed-page-Bz7JWjRM.js → agent-defaults-tabbed-page-CtwVbjOA.js} +1 -1
  31. package/dist/gateway/static/root/assets/agents-CCBmGcwc.js +71 -0
  32. package/dist/gateway/static/root/assets/{app-management-settings-panel-DaQwdeCq.js → app-management-settings-panel-28E_WfMe.js} +1 -1
  33. package/dist/gateway/static/root/assets/{appearance-settings-D2zv6r3P.js → appearance-settings-Do1z0XgJ.js} +1 -1
  34. package/dist/gateway/static/root/assets/{apps-page-BIppe_jj.js → apps-page-xwCsJS15.js} +1 -1
  35. package/dist/gateway/static/root/assets/{archive-plugin-DEmu8eH7.js → archive-plugin-BAFlsov_.js} +1 -1
  36. package/dist/gateway/static/root/assets/{attachment-load-B98lJoN5.js → attachment-load-V3qGPC3x.js} +1 -1
  37. package/dist/gateway/static/root/assets/{binary-plugins-CL9QKmyo.js → binary-plugins-DT8NvA6W.js} +1 -1
  38. package/dist/gateway/static/root/assets/{block-editor-BOAhMAhT.js → block-editor-CdLMEcHd.js} +1 -1
  39. package/dist/gateway/static/root/assets/{channels-settings-Br8iRnXp.js → channels-settings-C044DcYk.js} +1 -1
  40. package/dist/gateway/static/root/assets/{config-api-0o1WYdz2.js → config-api-Bf5mjpu7.js} +1 -1
  41. package/dist/gateway/static/root/assets/config-reload-event-Bjh2zoKp.js +1 -0
  42. package/dist/gateway/static/root/assets/connectors-settings-8VEWUOTj.js +2 -0
  43. package/dist/gateway/static/root/assets/cron-api--pAB_rps.js +1 -0
  44. package/dist/gateway/static/root/assets/cron-page-DqmNGNOy.js +3 -0
  45. package/dist/gateway/static/root/assets/dreaming-settings-6UZE1FSK.js +1 -0
  46. package/dist/gateway/static/root/assets/{extension-debug-page-Cjx6pZVz.js → extension-debug-page-BGhE7msg.js} +1 -1
  47. package/dist/gateway/static/root/assets/{extension-page-BSPNL90V.js → extension-page-CvpI45WG.js} +1 -1
  48. package/dist/gateway/static/root/assets/extension-settings-page-DAmR5FUe.js +1 -0
  49. package/dist/gateway/static/root/assets/{fetch-Bs7in_4F.js → fetch-NZmjSXLl.js} +1 -1
  50. package/dist/gateway/static/root/assets/format-cron-label-BsotZDO5.js +2 -0
  51. package/dist/gateway/static/root/assets/{format-interval-label-CftJ5uXu.js → format-interval-label-qhth3BMV.js} +1 -1
  52. package/dist/gateway/static/root/assets/{gateway-config-api-Clfck-hW.js → gateway-config-api-CaXBt-9R.js} +1 -1
  53. package/dist/gateway/static/root/assets/gateway-settings-DphpbLBc.js +1 -0
  54. package/dist/gateway/static/root/assets/{gateway-startup-retry-BkjVJc38.js → gateway-startup-retry-Be1omjh3.js} +1 -1
  55. package/dist/gateway/static/root/assets/{goal-detail-page-kqJue0sE.js → goal-detail-page-bv0VRDaf.js} +1 -1
  56. package/dist/gateway/static/root/assets/goals-page-1Ywnt4Cb.js +2 -0
  57. package/dist/gateway/static/root/assets/{goals-settings-CJnzNSDo.js → goals-settings-ceEBjnfc.js} +1 -1
  58. package/dist/gateway/static/root/assets/{heartbeat-config-api-Cp7CPuIn.js → heartbeat-config-api-BzO6G4fD.js} +1 -1
  59. package/dist/gateway/static/root/assets/{heartbeat-settings-ifSI1Wbh.js → heartbeat-settings-DCST9-du.js} +1 -1
  60. package/dist/gateway/static/root/assets/index-Cxm6xsps.js +122 -0
  61. package/dist/gateway/static/root/assets/index-b_R4tKqt.css +1 -0
  62. package/dist/gateway/static/root/assets/interval-presets-DJmshV8n.js +1 -0
  63. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings--MI1rYl7.js → keyboard-shortcuts-settings-9AUUlQ5Q.js} +1 -1
  64. package/dist/gateway/static/root/assets/{logs-page-BwrVNlyW.js → logs-page-B_wrxhee.js} +1 -1
  65. package/dist/gateway/static/root/assets/{markdown-split-B_oc9lJe.js → markdown-split-CYYELqAr.js} +1 -1
  66. package/dist/gateway/static/root/assets/{media-plugins-DLPvB5H3.js → media-plugins-BEcMR2M8.js} +1 -1
  67. package/dist/gateway/static/root/assets/messages-CkT-lcgP.js +3 -0
  68. package/dist/gateway/static/root/assets/models-hub-panel-D0JDSbNu.js +2 -0
  69. package/dist/gateway/static/root/assets/note-detail-page-DpFV-EO6.js +2 -0
  70. package/dist/gateway/static/root/assets/{note-image-lightbox-rSqAgOi9.js → note-image-lightbox-DNAoPcmm.js} +1 -1
  71. package/dist/gateway/static/root/assets/{notes-page-C9ACGEty.js → notes-page-CdkjTch8.js} +1 -1
  72. package/dist/gateway/static/root/assets/{preview-open-alternatives-Bw_N2oZi.js → preview-open-alternatives-BPLz0AIv.js} +1 -1
  73. package/dist/gateway/static/root/assets/{remote-access-hub-BhcWIKuM.js → remote-access-hub-DSYVAi96.js} +1 -1
  74. package/dist/gateway/static/root/assets/{save-bar-controls-CNP2jmw0.js → save-bar-controls-CrWwWRVK.js} +1 -1
  75. package/dist/gateway/static/root/assets/schedule-field-CF2sadvN.js +1 -0
  76. package/dist/gateway/static/root/assets/{schema-form-CDPzua9q.js → schema-form-Di5cKjYE.js} +1 -1
  77. package/dist/gateway/static/root/assets/{sessions-page-DzkpSDZr.js → sessions-page-CenkcVjF.js} +1 -1
  78. package/dist/gateway/static/root/assets/settings-advanced-gate-D9sva86V.js +1 -0
  79. package/dist/gateway/static/root/assets/{settings-collapsible-section-C9bff85B.js → settings-collapsible-section-Chh282jW.js} +1 -1
  80. package/dist/gateway/static/root/assets/settings-form-section-Dq-83cQd.js +1 -0
  81. package/dist/gateway/static/root/assets/{settings-page-DWK4Zo7s.js → settings-page-DL35U0x0.js} +1 -1
  82. package/dist/gateway/static/root/assets/setup-status-panel-Ctwbp9Er.js +1 -0
  83. package/dist/gateway/static/root/assets/{share-preview-page-DnutoY_S.js → share-preview-page-0FXYnSUA.js} +1 -1
  84. package/dist/gateway/static/root/assets/{shares-settings-6oRgJMpn.js → shares-settings-DIM3JNsr.js} +1 -1
  85. package/dist/gateway/static/root/assets/skill-reload-api-DAlNaNzL.js +1 -0
  86. package/dist/gateway/static/root/assets/skills-page-CLrHVzAt.js +2 -0
  87. package/dist/gateway/static/root/assets/{system-settings-panel-qP1JDtDd.js → system-settings-panel-W1pTcojB.js} +1 -1
  88. package/dist/gateway/static/root/assets/use-agent-defaults-form-BVRvkK7m.js +1 -0
  89. package/dist/gateway/static/root/assets/{use-channel-catalog-C4mg1hjD.js → use-channel-catalog-CgJibfMM.js} +1 -1
  90. package/dist/gateway/static/root/assets/{use-settings-tab-guard-F6C0mpJt.js → use-settings-tab-guard-Bw_qkRQE.js} +1 -1
  91. package/dist/gateway/static/root/assets/{voice-api-key-field-BnDDb6qO.js → voice-api-key-field-vYAO71Gn.js} +1 -1
  92. package/dist/gateway/static/root/assets/{voice-player-store-B2EwIhtY.js → voice-player-store-C7lziaAx.js} +1 -1
  93. package/dist/gateway/static/root/assets/{workflow-page.utils-CRB7WX9l.js → workflow-page.utils-sgHjOXOm.js} +1 -1
  94. package/dist/gateway/static/root/assets/{workflows-page-2Fptr0je.js → workflows-page-DYyOTmFx.js} +1 -1
  95. package/dist/gateway/static/root/favicon-16x16.png +0 -0
  96. package/dist/gateway/static/root/favicon-32x32.png +0 -0
  97. package/dist/gateway/static/root/favicon-icon.svg +1 -0
  98. package/dist/gateway/static/root/favicon.ico +0 -0
  99. package/dist/gateway/static/root/favicon.png +0 -0
  100. package/dist/gateway/static/root/favicon.svg +24 -15
  101. package/dist/gateway/static/root/index.html +11 -10
  102. package/dist/gateway/static/root/logo-dark.svg +23 -15
  103. package/dist/gateway/static/root/logo.svg +23 -16
  104. package/dist/package.js +1 -1
  105. package/dist/src/agent/agent-manager.d.ts +28 -2
  106. package/dist/src/agent/agent-manager.js +82 -11
  107. package/dist/src/agent/agent-manager.js.map +1 -1
  108. package/dist/src/agent/agent-scope.js +1 -1
  109. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  110. package/dist/src/agent/context/workspace-seed.js +2 -2
  111. package/dist/src/agent/context/workspace-state.js +1 -1
  112. package/dist/src/agent/context/workspace.js +1 -1
  113. package/dist/src/agent/goals/goal-locale.js +2 -2
  114. package/dist/src/agent/goals/persistent-goal-service.js +1 -1
  115. package/dist/src/agent/goals/post-turn.js +3 -3
  116. package/dist/src/agent/image/load-image-media.js +2 -2
  117. package/dist/src/agent/ipc/inbox.js +3 -3
  118. package/dist/src/agent/ipc/socket.js +1 -1
  119. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  120. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  121. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  122. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  123. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  124. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  125. package/dist/src/agent/memory/dreaming/events.js +1 -1
  126. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  127. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  128. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  129. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  130. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  131. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  132. package/dist/src/agent/memory/memory-flush.js +1 -1
  133. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  134. package/dist/src/agent/messaging/command-handler.d.ts +3 -0
  135. package/dist/src/agent/messaging/command-handler.js +5 -0
  136. package/dist/src/agent/messaging/command-handler.js.map +1 -1
  137. package/dist/src/agent/models/manager.js +1 -1
  138. package/dist/src/agent/prompt/memory/index.js +1 -1
  139. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  140. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  141. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  142. package/dist/src/agent/sandbox/path-policy.js +2 -2
  143. package/dist/src/agent/service/process-direct-streaming.js +9 -4
  144. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  145. package/dist/src/agent/service/reconcile-dreaming-cron.js +8 -5
  146. package/dist/src/agent/service/reconcile-dreaming-cron.js.map +1 -1
  147. package/dist/src/agent/service.d.ts +2 -1
  148. package/dist/src/agent/service.js +10 -5
  149. package/dist/src/agent/service.js.map +1 -1
  150. package/dist/src/agent/service.types.d.ts +4 -0
  151. package/dist/src/agent/session/session-config-service.d.ts +8 -0
  152. package/dist/src/agent/session/session-config-service.js +20 -0
  153. package/dist/src/agent/session/session-config-service.js.map +1 -1
  154. package/dist/src/agent/session/session-inspector.js +1 -1
  155. package/dist/src/agent/skills/config.js +2 -2
  156. package/dist/src/agent/skills/filesystem-watcher.d.ts +19 -0
  157. package/dist/src/agent/skills/filesystem-watcher.js +182 -0
  158. package/dist/src/agent/skills/filesystem-watcher.js.map +1 -0
  159. package/dist/src/agent/skills/hub-hash.js +2 -2
  160. package/dist/src/agent/skills/hub-lock.js +1 -1
  161. package/dist/src/agent/skills/hub-pull.js +30 -36
  162. package/dist/src/agent/skills/hub-pull.js.map +1 -1
  163. package/dist/src/agent/skills/index.js +82 -38
  164. package/dist/src/agent/skills/index.js.map +1 -1
  165. package/dist/src/agent/skills/installer.js +2 -2
  166. package/dist/src/agent/skills/managed-store.d.ts +19 -0
  167. package/dist/src/agent/skills/managed-store.js +97 -38
  168. package/dist/src/agent/skills/managed-store.js.map +1 -1
  169. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  170. package/dist/src/agent/skills/skill-manager.d.ts +16 -6
  171. package/dist/src/agent/skills/skill-manager.js +79 -24
  172. package/dist/src/agent/skills/skill-manager.js.map +1 -1
  173. package/dist/src/agent/skills/skill-view-path.js +1 -1
  174. package/dist/src/agent/skills/test-framework.js +1 -1
  175. package/dist/src/agent/skills/types.d.ts +11 -0
  176. package/dist/src/agent/skills/watcher.js +1 -1
  177. package/dist/src/agent/starter-agents.js +1 -1
  178. package/dist/src/agent/tools/cronjob-tool.d.ts +6 -3
  179. package/dist/src/agent/tools/cronjob-tool.js +58 -23
  180. package/dist/src/agent/tools/cronjob-tool.js.map +1 -1
  181. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  182. package/dist/src/agent/tools/factory.js +1 -1
  183. package/dist/src/agent/tools/find.js +1 -1
  184. package/dist/src/agent/tools/grep.js +1 -1
  185. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  186. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  187. package/dist/src/agent/tools/workflow-tool.js +1 -1
  188. package/dist/src/agent/workflow/catalog.js +1 -1
  189. package/dist/src/agent/workspace-runtime/registry.d.ts +5 -0
  190. package/dist/src/agent/workspace-runtime/registry.js +7 -0
  191. package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
  192. package/dist/src/ai-assist/text-assist.d.ts +42 -0
  193. package/dist/src/ai-assist/text-assist.js +252 -0
  194. package/dist/src/ai-assist/text-assist.js.map +1 -0
  195. package/dist/src/auth/credentials.js +2 -2
  196. package/dist/src/auth/profiles/store.js +2 -2
  197. package/dist/src/auth/sync-provider-auth.js +1 -1
  198. package/dist/src/browser/cache-dir-policy.js +1 -1
  199. package/dist/src/browser/cdp-local-launcher.js +2 -2
  200. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  201. package/dist/src/browser/providers/cloakbrowser.js +5 -5
  202. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  203. package/dist/src/browser/stealth.js +1 -1
  204. package/dist/src/channels/outbound/persist-store.js +1 -1
  205. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  206. package/dist/src/channels/pairing/pairing-store.js +2 -2
  207. package/dist/src/channels/plugins/types.adapters.d.ts +2 -2
  208. package/dist/src/chat-commands/agent-edit.js +2 -2
  209. package/dist/src/chat-commands/builtins/config.js +3 -3
  210. package/dist/src/chat-commands/builtins/system.js +11 -4
  211. package/dist/src/chat-commands/builtins/system.js.map +1 -1
  212. package/dist/src/chat-commands/context.d.ts +3 -0
  213. package/dist/src/chat-commands/context.js +7 -0
  214. package/dist/src/chat-commands/context.js.map +1 -1
  215. package/dist/src/chat-commands/types.d.ts +2 -0
  216. package/dist/src/cli/commands/config.js +1 -1
  217. package/dist/src/cli/commands/cron.js +55 -16
  218. package/dist/src/cli/commands/cron.js.map +1 -1
  219. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  220. package/dist/src/cli/commands/doctor/checks/cron-health.js +2 -83
  221. package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -1
  222. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  223. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  224. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  225. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  226. package/dist/src/cli/commands/extension-create.js +1 -1
  227. package/dist/src/cli/commands/extension-dev.js +2 -2
  228. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  229. package/dist/src/cli/commands/extension-pack.js +2 -2
  230. package/dist/src/cli/commands/extension.js +3 -3
  231. package/dist/src/cli/commands/gateway/logs.js +1 -1
  232. package/dist/src/cli/commands/image.js +1 -1
  233. package/dist/src/cli/commands/init.js +2 -2
  234. package/dist/src/cli/commands/models.js +1 -1
  235. package/dist/src/cli/commands/skills-test.js +1 -1
  236. package/dist/src/cli/templates.js +1 -1
  237. package/dist/src/cli/utils/gateway-client.js +1 -1
  238. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  239. package/dist/src/config/agent-profile.js +1 -1
  240. package/dist/src/config/agent-typed-models.js +1 -1
  241. package/dist/src/config/gateway-bind.js +1 -1
  242. package/dist/src/config/index.js +7 -7
  243. package/dist/src/config/loader.js +4 -4
  244. package/dist/src/config/models-json.js +2 -2
  245. package/dist/src/config/paths-state.js +1 -1
  246. package/dist/src/config/paths.js +1 -1
  247. package/dist/src/config/profile.js +1 -1
  248. package/dist/src/config/reload.js +1 -1
  249. package/dist/src/config/schema.d.ts +0 -2
  250. package/dist/src/config/schema.js +0 -3
  251. package/dist/src/config/schema.js.map +1 -1
  252. package/dist/src/config/web-patch.d.ts +0 -1
  253. package/dist/src/config/web-patch.js +0 -2
  254. package/dist/src/config/web-patch.js.map +1 -1
  255. package/dist/src/config/workspace-path.js +1 -1
  256. package/dist/src/cron/executor.js +102 -71
  257. package/dist/src/cron/executor.js.map +1 -1
  258. package/dist/src/cron/index.d.ts +1 -1
  259. package/dist/src/cron/index.js +3 -3
  260. package/dist/src/cron/run-log-store.d.ts +1 -0
  261. package/dist/src/cron/run-log-store.js +4 -2
  262. package/dist/src/cron/run-log-store.js.map +1 -1
  263. package/dist/src/cron/schedule.d.ts +10 -0
  264. package/dist/src/cron/schedule.js +85 -0
  265. package/dist/src/cron/schedule.js.map +1 -0
  266. package/dist/src/cron/service.d.ts +34 -77
  267. package/dist/src/cron/service.js +327 -264
  268. package/dist/src/cron/service.js.map +1 -1
  269. package/dist/src/cron/types.d.ts +80 -50
  270. package/dist/src/cron/validation.d.ts +358 -90
  271. package/dist/src/cron/validation.js +152 -132
  272. package/dist/src/cron/validation.js.map +1 -1
  273. package/dist/src/cron/workflow-run-completion.js +1 -1
  274. package/dist/src/daemon/constants.js +1 -1
  275. package/dist/src/daemon/install-plan.js +2 -2
  276. package/dist/src/daemon/launchd.js +2 -2
  277. package/dist/src/daemon/schtasks.js +2 -2
  278. package/dist/src/daemon/systemd.js +2 -2
  279. package/dist/src/extensions/bundle-mcp.js +1 -1
  280. package/dist/src/extensions/discover-extensions.js +2 -2
  281. package/dist/src/extensions/health.js +1 -1
  282. package/dist/src/extensions/install.js +2 -2
  283. package/dist/src/extensions/loader.js +2 -2
  284. package/dist/src/extensions/lockfile.js +3 -3
  285. package/dist/src/extensions/security.js +1 -1
  286. package/dist/src/extensions/update.js +2 -2
  287. package/dist/src/gateway/agents-admin.js +2 -2
  288. package/dist/src/gateway/chat-stream/mapper.d.ts +1 -0
  289. package/dist/src/gateway/chat-stream/mapper.js +6 -2
  290. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  291. package/dist/src/gateway/chat-stream/protocol.d.ts +2 -0
  292. package/dist/src/gateway/file-path-classifier.js +2 -2
  293. package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -1
  294. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  295. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  296. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  297. package/dist/src/gateway/hono/oauth-async.js +1 -1
  298. package/dist/src/gateway/hono/routes/agents.js +1 -1
  299. package/dist/src/gateway/hono/routes/ai-assist.d.ts +3 -0
  300. package/dist/src/gateway/hono/routes/ai-assist.js +66 -0
  301. package/dist/src/gateway/hono/routes/ai-assist.js.map +1 -0
  302. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  303. package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
  304. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  305. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  306. package/dist/src/gateway/hono/routes/cron.js +24 -5
  307. package/dist/src/gateway/hono/routes/cron.js.map +1 -1
  308. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  309. package/dist/src/gateway/hono/routes/home.js +5 -3
  310. package/dist/src/gateway/hono/routes/home.js.map +1 -1
  311. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  312. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  313. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  314. package/dist/src/gateway/hono/routes/models.js +1 -1
  315. package/dist/src/gateway/hono/routes/shares.js +1 -1
  316. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  317. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  318. package/dist/src/gateway/lock.js +3 -3
  319. package/dist/src/gateway/ports.js +1 -1
  320. package/dist/src/gateway/service/agent-runner.js +2 -2
  321. package/dist/src/gateway/service/config-coordinator.js +1 -1
  322. package/dist/src/gateway/service/marketplace-service.d.ts +22 -10
  323. package/dist/src/gateway/service/marketplace-service.js +46 -5
  324. package/dist/src/gateway/service/marketplace-service.js.map +1 -1
  325. package/dist/src/gateway/service.js +11 -5
  326. package/dist/src/gateway/service.js.map +1 -1
  327. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  328. package/dist/src/goals/goal-notifications.js +1 -1
  329. package/dist/src/goals/goal-workflow-judge.js +3 -3
  330. package/dist/src/i18n/goals-bundle.js +1 -1
  331. package/dist/src/i18n/index.js +1 -1
  332. package/dist/src/i18n/share-tool-bundle.js +2 -2
  333. package/dist/src/infra/brew.js +1 -1
  334. package/dist/src/infra/package-json.js +1 -1
  335. package/dist/src/infra/package-update-steps.js +1 -1
  336. package/dist/src/infra/path-env.js +2 -2
  337. package/dist/src/infra/restart.js +1 -1
  338. package/dist/src/infra/stable-node-path.js +1 -1
  339. package/dist/src/infra/update-check.js +1 -1
  340. package/dist/src/infra/update-global.js +1 -1
  341. package/dist/src/infra/update-lock.js +2 -2
  342. package/dist/src/infra/update-restart.js +1 -1
  343. package/dist/src/infra/update-runner.js +1 -1
  344. package/dist/src/infra/update-startup.js +1 -1
  345. package/dist/src/infra/write-file-atomic.js +2 -2
  346. package/dist/src/media/store.js +1 -1
  347. package/dist/src/notes/agent-context.js +1 -1
  348. package/dist/src/notes/service.js +1 -1
  349. package/dist/src/notes/store.js +2 -2
  350. package/dist/src/project-trust/trust-store.js +2 -2
  351. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  352. package/dist/src/providers/index.js +1 -1
  353. package/dist/src/providers/model-registry.js +4 -4
  354. package/dist/src/session/init-session-turn.js +2 -2
  355. package/dist/src/session/resolve-session.js +3 -3
  356. package/dist/src/session/session-title.js +2 -2
  357. package/dist/src/session/store-reader.d.ts +5 -0
  358. package/dist/src/session/store-reader.js +1 -0
  359. package/dist/src/session/store.js +1 -1
  360. package/dist/src/share/share-auto.js +2 -2
  361. package/dist/src/share/share-store.js +3 -3
  362. package/dist/src/share/share-thumbnail.js +2 -2
  363. package/dist/src/share/share-zip.js +1 -1
  364. package/dist/src/share/site-share-store.js +3 -3
  365. package/dist/src/share/site-static-serve.js +1 -1
  366. package/dist/src/storage/sqlite/connection.js +1 -1
  367. package/dist/src/storage/sqlite/cron-job-repository.d.ts +6 -0
  368. package/dist/src/storage/sqlite/cron-job-repository.js +70 -0
  369. package/dist/src/storage/sqlite/cron-job-repository.js.map +1 -0
  370. package/dist/src/storage/sqlite/cron-run-repository.js +0 -1
  371. package/dist/src/storage/sqlite/cron-run-repository.js.map +1 -1
  372. package/dist/src/storage/sqlite/index.d.ts +1 -0
  373. package/dist/src/storage/sqlite/index.js +2 -1
  374. package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
  375. package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +24 -0
  376. package/dist/src/storage/sqlite/migrations/discover.js +1 -1
  377. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  378. package/dist/src/storage/sqlite/migrations/runner.js +4 -4
  379. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  380. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  381. package/dist/src/storage/sqlite/schema.js +2 -2
  382. package/dist/src/storage/sqlite/schema.sql +25 -0
  383. package/dist/src/tui/clipboard-image.js +3 -3
  384. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  385. package/dist/src/tui/theme-manager.js +1 -1
  386. package/dist/src/tui/tui-command-formatters.js +4 -4
  387. package/dist/src/tui/tui-commands.js +2 -2
  388. package/dist/src/tui/tui-keybindings-file.js +1 -1
  389. package/dist/src/tui/tui-scoped-models.js +2 -2
  390. package/dist/src/tui/tui-settings.js +1 -1
  391. package/dist/src/tui/tui-startup-resources.js +1 -1
  392. package/dist/src/tui/tui.js +6 -6
  393. package/dist/src/tunnel/frpc-binary.js +4 -4
  394. package/dist/src/tunnel/frpc-config.js +1 -1
  395. package/dist/src/tunnel/frpc-extract.js +1 -1
  396. package/dist/src/tunnel/tunnel-state.js +1 -1
  397. package/dist/src/utils/logger/audit.js +1 -1
  398. package/dist/src/utils/logger/log-store.js +1 -1
  399. package/dist/src/utils/logger/rotation.js +1 -1
  400. package/dist/src/utils/logger/streams.js +1 -1
  401. package/dist/src/voice/tts/audio.js +1 -1
  402. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  403. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  404. package/dist/src/workflows/engine/projector.js +23 -14
  405. package/dist/src/workflows/engine/projector.js.map +1 -1
  406. package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
  407. package/dist/src/workflows/engine/workflow-engine.js +36 -0
  408. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  409. package/dist/src/workflows/index.js +1 -1
  410. package/dist/src/workflows/service/workflow-run-service.js +2 -2
  411. package/dist/src/workflows/service/workflow-session-bridge.js +2 -2
  412. package/dist/src/workflows/store/event-store.js +1 -1
  413. package/dist/src/workflows/store/run-store.js +1 -1
  414. package/package.json +2 -3
  415. package/dist/gateway/static/root/assets/agent-browser-settings-page-B-0zGjt8.js +0 -6
  416. package/dist/gateway/static/root/assets/agents-DwDnJlXT.js +0 -71
  417. package/dist/gateway/static/root/assets/connectors-settings-DDvHo9in.js +0 -2
  418. package/dist/gateway/static/root/assets/cron-api-Dj_UZKST.js +0 -1
  419. package/dist/gateway/static/root/assets/cron-page-Dv7GII9G.js +0 -1
  420. package/dist/gateway/static/root/assets/cron-schedule-picker-DH10KgD6.js +0 -1
  421. package/dist/gateway/static/root/assets/dreaming-settings-L2rgZDQl.js +0 -1
  422. package/dist/gateway/static/root/assets/extension-settings-page-m_UQYkVc.js +0 -1
  423. package/dist/gateway/static/root/assets/gateway-settings-CS177xni.js +0 -1
  424. package/dist/gateway/static/root/assets/goals-page-C0FujUB5.js +0 -2
  425. package/dist/gateway/static/root/assets/index-COkF54xv.js +0 -121
  426. package/dist/gateway/static/root/assets/index-DIaSNGEO.css +0 -1
  427. package/dist/gateway/static/root/assets/interval-presets-B29Ss_2y.js +0 -2
  428. package/dist/gateway/static/root/assets/messages-Csef1aW7.js +0 -3
  429. package/dist/gateway/static/root/assets/models-hub-panel-DHGiTIvf.js +0 -2
  430. package/dist/gateway/static/root/assets/note-detail-page-BM7zlDiT.js +0 -2
  431. package/dist/gateway/static/root/assets/schedule-field-BPAWui3P.js +0 -1
  432. package/dist/gateway/static/root/assets/schedule-summary-B-hdSRdR.js +0 -1
  433. package/dist/gateway/static/root/assets/settings-advanced-gate-BYS-rpzn.js +0 -1
  434. package/dist/gateway/static/root/assets/settings-form-section-BsrK7TBF.js +0 -1
  435. package/dist/gateway/static/root/assets/setup-status-panel-DJiksNu4.js +0 -1
  436. package/dist/gateway/static/root/assets/skill-reload-api-CU9i0nJV.js +0 -1
  437. package/dist/gateway/static/root/assets/skills-page-ERbdWENm.js +0 -2
  438. package/dist/gateway/static/root/assets/use-agent-defaults-form-D3FGVLZb.js +0 -1
  439. package/dist/gateway/static/root/favicon-16.png +0 -0
  440. package/dist/gateway/static/root/favicon-32.png +0 -0
  441. package/dist/src/cron/persistence.d.ts +0 -62
  442. package/dist/src/cron/persistence.js +0 -188
  443. package/dist/src/cron/persistence.js.map +0 -1
@@ -1,18 +1,27 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none" aria-hidden="true">
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="10 10 80 80" fill="none" aria-hidden="true">
2
2
  <title>xopc</title>
3
- <rect x="5" y="5" width="90" height="90" rx="20" fill="#ffffff" />
4
- <rect x="5.75" y="5.75" width="88.5" height="88.5" rx="19.25" stroke="#111827" stroke-opacity="0.18" stroke-width="1.5" />
5
- <g stroke="#111827" stroke-width="5.5" fill="none">
6
- <path d="M 84 50 C 84 68.778 68.778 84 50 84 C 31.222 84 16 68.778 16 50 C 16 31.222 31.222 16 50 16 C 68.778 16 84 31.222 84 50" />
7
- <path d="M 74 50 C 74 63.255 63.255 74 50 74 C 36.745 74 26 63.255 26 50 C 26 36.745 36.745 26 50 26 C 63.255 26 74 36.745 74 50" />
3
+ <rect x="10" y="10" width="80" height="80" rx="18" fill="#ffffff" />
4
+ <g transform="translate(50 50) scale(0.92) translate(-50 -50)">
5
+ <!-- Goal loop: outer system boundary + inner feedback loop -->
6
+ <g stroke-linecap="round" fill="none">
7
+ <g stroke="#000000" stroke-width="4">
8
+ <path d="M 29.375 23.602 A 33.5 33.5 0 0 1 70.625 23.602" />
9
+ <path d="M 76.398 29.375 A 33.5 33.5 0 0 1 76.398 70.625" />
10
+ <path d="M 70.625 76.398 A 33.5 33.5 0 0 1 29.375 76.398" />
11
+ <path d="M 23.602 70.625 A 33.5 33.5 0 0 1 23.602 29.375" />
12
+ </g>
13
+ <g stroke="#000000" stroke-width="3.2" transform="rotate(45 50 50)">
14
+ <path d="M 35.011 29.370 A 25.5 25.5 0 0 1 64.989 29.370" />
15
+ <path d="M 70.630 35.011 A 25.5 25.5 0 0 1 70.630 64.989" />
16
+ <path d="M 64.989 70.630 A 25.5 25.5 0 0 1 35.011 70.630" />
17
+ <path d="M 29.370 64.989 A 25.5 25.5 0 0 1 29.370 35.011" />
18
+ </g>
19
+ </g>
20
+ <!-- Central hub -->
21
+ <path
22
+ fill="#000000"
23
+ transform="translate(50 50) scale(0.72) translate(-50 -50)"
24
+ d="M 61.000 50.000 L 61.159 50.548 L 61.629 51.145 L 62.381 51.837 L 63.374 52.660 L 64.550 53.645 L 65.843 54.806 L 67.178 56.146 L 68.478 57.654 L 69.667 59.302 L 70.676 61.051 L 71.443 62.853 L 71.921 64.647 L 72.075 66.372 L 71.888 67.963 L 71.359 69.359 L 70.506 70.506 L 69.359 71.359 L 67.963 71.888 L 66.372 72.075 L 64.647 71.921 L 62.853 71.443 L 61.051 70.676 L 59.302 69.667 L 57.654 68.478 L 56.146 67.178 L 54.806 65.843 L 53.645 64.550 L 52.660 63.374 L 51.837 62.381 L 51.145 61.629 L 50.548 61.159 L 50.000 61.000 L 49.452 61.159 L 48.855 61.629 L 48.163 62.381 L 47.340 63.374 L 46.355 64.550 L 45.194 65.843 L 43.854 67.178 L 42.346 68.478 L 40.698 69.667 L 38.949 70.676 L 37.147 71.443 L 35.353 71.921 L 33.628 72.075 L 32.037 71.888 L 30.641 71.359 L 29.494 70.506 L 28.641 69.359 L 28.112 67.963 L 27.925 66.372 L 28.079 64.647 L 28.557 62.853 L 29.324 61.051 L 30.333 59.302 L 31.522 57.654 L 32.822 56.146 L 34.157 54.806 L 35.450 53.645 L 36.626 52.660 L 37.619 51.837 L 38.371 51.145 L 38.841 50.548 L 39.000 50.000 L 38.841 49.452 L 38.371 48.855 L 37.619 48.163 L 36.626 47.340 L 35.450 46.355 L 34.157 45.194 L 32.822 43.854 L 31.522 42.346 L 30.333 40.698 L 29.324 38.949 L 28.557 37.147 L 28.079 35.353 L 27.925 33.628 L 28.112 32.037 L 28.641 30.641 L 29.494 29.494 L 30.641 28.641 L 32.037 28.112 L 33.628 27.925 L 35.353 28.079 L 37.147 28.557 L 38.949 29.324 L 40.698 30.333 L 42.346 31.522 L 43.854 32.822 L 45.194 34.157 L 46.355 35.450 L 47.340 36.626 L 48.163 37.619 L 48.855 38.371 L 49.452 38.841 L 50.000 39.000 L 50.548 38.841 L 51.145 38.371 L 51.837 37.619 L 52.660 36.626 L 53.645 35.450 L 54.806 34.157 L 56.146 32.822 L 57.654 31.522 L 59.302 30.333 L 61.051 29.324 L 62.853 28.557 L 64.647 28.079 L 66.372 27.925 L 67.963 28.112 L 69.359 28.641 L 70.506 29.494 L 71.359 30.641 L 71.888 32.037 L 72.075 33.628 L 71.921 35.353 L 71.443 37.147 L 70.676 38.949 L 69.667 40.698 L 68.478 42.346 L 67.178 43.854 L 65.843 45.194 L 64.550 46.355 L 63.374 47.340 L 62.381 48.163 L 61.629 48.855 L 61.159 49.452 L 61.000 50.000 Z"
25
+ />
8
26
  </g>
9
- <path
10
- transform="translate(50 50) scale(0.92) translate(-50 -50)"
11
- fill="#111827"
12
- stroke="#ffffff"
13
- stroke-width="5"
14
- stroke-linejoin="round"
15
- paint-order="stroke fill"
16
- d="M 61.000 50.000 L 61.159 50.548 L 61.629 51.145 L 62.381 51.837 L 63.374 52.660 L 64.550 53.645 L 65.843 54.806 L 67.178 56.146 L 68.478 57.654 L 69.667 59.302 L 70.676 61.051 L 71.443 62.853 L 71.921 64.647 L 72.075 66.372 L 71.888 67.963 L 71.359 69.359 L 70.506 70.506 L 69.359 71.359 L 67.963 71.888 L 66.372 72.075 L 64.647 71.921 L 62.853 71.443 L 61.051 70.676 L 59.302 69.667 L 57.654 68.478 L 56.146 67.178 L 54.806 65.843 L 53.645 64.550 L 52.660 63.374 L 51.837 62.381 L 51.145 61.629 L 50.548 61.159 L 50.000 61.000 L 49.452 61.159 L 48.855 61.629 L 48.163 62.381 L 47.340 63.374 L 46.355 64.550 L 45.194 65.843 L 43.854 67.178 L 42.346 68.478 L 40.698 69.667 L 38.949 70.676 L 37.147 71.443 L 35.353 71.921 L 33.628 72.075 L 32.037 71.888 L 30.641 71.359 L 29.494 70.506 L 28.641 69.359 L 28.112 67.963 L 27.925 66.372 L 28.079 64.647 L 28.557 62.853 L 29.324 61.051 L 30.333 59.302 L 31.522 57.654 L 32.822 56.146 L 34.157 54.806 L 35.450 53.645 L 36.626 52.660 L 37.619 51.837 L 38.371 51.145 L 38.841 50.548 L 39.000 50.000 L 38.841 49.452 L 38.371 48.855 L 37.619 48.163 L 36.626 47.340 L 35.450 46.355 L 34.157 45.194 L 32.822 43.854 L 31.522 42.346 L 30.333 40.698 L 29.324 38.949 L 28.557 37.147 L 28.079 35.353 L 27.925 33.628 L 28.112 32.037 L 28.641 30.641 L 29.494 29.494 L 30.641 28.641 L 32.037 28.112 L 33.628 27.925 L 35.353 28.079 L 37.147 28.557 L 38.949 29.324 L 40.698 30.333 L 42.346 31.522 L 43.854 32.822 L 45.194 34.157 L 46.355 35.450 L 47.340 36.626 L 48.163 37.619 L 48.855 38.371 L 49.452 38.841 L 50.000 39.000 L 50.548 38.841 L 51.145 38.371 L 51.837 37.619 L 52.660 36.626 L 53.645 35.450 L 54.806 34.157 L 56.146 32.822 L 57.654 31.522 L 59.302 30.333 L 61.051 29.324 L 62.853 28.557 L 64.647 28.079 L 66.372 27.925 L 67.963 28.112 L 69.359 28.641 L 70.506 29.494 L 71.359 30.641 L 71.888 32.037 L 72.075 33.628 L 71.921 35.353 L 71.443 37.147 L 70.676 38.949 L 69.667 40.698 L 68.478 42.346 L 67.178 43.854 L 65.843 45.194 L 64.550 46.355 L 63.374 47.340 L 62.381 48.163 L 61.629 48.855 L 61.159 49.452 L 61.000 50.000 Z"
17
- />
18
27
  </svg>
@@ -4,13 +4,13 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="color-scheme" content="light dark" />
7
- <link rel="icon" href="/favicon.ico?v=20260621-4" sizes="any" />
8
- <link rel="icon" type="image/svg+xml" href="/favicon.svg?v=20260621-4" />
9
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png?v=20260621-4" />
10
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png?v=20260621-4" />
11
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260621-4" />
7
+ <link rel="icon" href="/favicon.ico?v=20260623-2" sizes="any" />
8
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg?v=20260623-2" />
9
+ <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=20260623-2" />
10
+ <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.pngv=20260623-2" />
11
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260623-2" />
12
12
  <title>xopc</title>
13
- <script type="module" crossorigin src="/assets/index-COkF54xv.js"></script>
13
+ <script type="module" crossorigin src="/assets/index-Cxm6xsps.js"></script>
14
14
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
@@ -22,12 +22,13 @@
22
22
  <link rel="modulepreload" crossorigin href="/assets/createLucideIcon-DPHK1VkS.js">
23
23
  <link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
24
24
  <link rel="modulepreload" crossorigin href="/assets/locale-store-DjbfSsfA.js">
25
- <link rel="modulepreload" crossorigin href="/assets/messages-Csef1aW7.js">
26
- <link rel="modulepreload" crossorigin href="/assets/fetch-Bs7in_4F.js">
27
- <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-BkjVJc38.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/config-reload-event-Bjh2zoKp.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/messages-CkT-lcgP.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/fetch-NZmjSXLl.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-Be1omjh3.js">
28
29
  <link rel="modulepreload" crossorigin href="/assets/toast-z0toXu32.js">
29
30
  <link rel="modulepreload" crossorigin href="/assets/theme-store-CD2wtgZV.js">
30
- <link rel="stylesheet" crossorigin href="/assets/index-DIaSNGEO.css">
31
+ <link rel="stylesheet" crossorigin href="/assets/index-b_R4tKqt.css">
31
32
  </head>
32
33
  <body>
33
34
  <div id="root"></div>
@@ -1,18 +1,26 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="14.5 14.5 71 71" fill="none" aria-hidden="true">
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="10 10 80 80" fill="none" aria-hidden="true">
2
2
  <title>xopc</title>
3
- <!-- Dark UI: brighter cyan rings + light hub for contrast on #1c1c1e / #2c2c2e -->
4
- <g stroke="#5ec8ff" stroke-width="3.2" stroke-linecap="round" fill="none">
5
- <path d="M 29.375 23.602 A 33.5 33.5 0 0 1 70.625 23.602" />
6
- <path d="M 76.398 29.375 A 33.5 33.5 0 0 1 76.398 70.625" />
7
- <path d="M 70.625 76.398 A 33.5 33.5 0 0 1 29.375 76.398" />
8
- <path d="M 23.602 70.625 A 33.5 33.5 0 0 1 23.602 29.375" />
9
- <path d="M 35.011 29.370 A 25.5 25.5 0 0 1 64.989 29.370" />
10
- <path d="M 70.630 35.011 A 25.5 25.5 0 0 1 70.630 64.989" />
11
- <path d="M 64.989 70.630 A 25.5 25.5 0 0 1 35.011 70.630" />
12
- <path d="M 29.370 64.989 A 25.5 25.5 0 0 1 29.370 35.011" />
3
+ <g transform="translate(50 50) scale(0.92) translate(-50 -50)">
4
+ <!-- Goal loop: outer system boundary + inner feedback loop -->
5
+ <g stroke-linecap="round" fill="none">
6
+ <g stroke="#ffffff" stroke-width="4">
7
+ <path d="M 29.375 23.602 A 33.5 33.5 0 0 1 70.625 23.602" />
8
+ <path d="M 76.398 29.375 A 33.5 33.5 0 0 1 76.398 70.625" />
9
+ <path d="M 70.625 76.398 A 33.5 33.5 0 0 1 29.375 76.398" />
10
+ <path d="M 23.602 70.625 A 33.5 33.5 0 0 1 23.602 29.375" />
11
+ </g>
12
+ <g stroke="#ffffff" stroke-width="3.2" transform="rotate(45 50 50)">
13
+ <path d="M 35.011 29.370 A 25.5 25.5 0 0 1 64.989 29.370" />
14
+ <path d="M 70.630 35.011 A 25.5 25.5 0 0 1 70.630 64.989" />
15
+ <path d="M 64.989 70.630 A 25.5 25.5 0 0 1 35.011 70.630" />
16
+ <path d="M 29.370 64.989 A 25.5 25.5 0 0 1 29.370 35.011" />
17
+ </g>
18
+ </g>
19
+ <!-- Central hub -->
20
+ <path
21
+ fill="#ffffff"
22
+ transform="translate(50 50) scale(0.72) translate(-50 -50)"
23
+ d="M 61.000 50.000 L 61.159 50.548 L 61.629 51.145 L 62.381 51.837 L 63.374 52.660 L 64.550 53.645 L 65.843 54.806 L 67.178 56.146 L 68.478 57.654 L 69.667 59.302 L 70.676 61.051 L 71.443 62.853 L 71.921 64.647 L 72.075 66.372 L 71.888 67.963 L 71.359 69.359 L 70.506 70.506 L 69.359 71.359 L 67.963 71.888 L 66.372 72.075 L 64.647 71.921 L 62.853 71.443 L 61.051 70.676 L 59.302 69.667 L 57.654 68.478 L 56.146 67.178 L 54.806 65.843 L 53.645 64.550 L 52.660 63.374 L 51.837 62.381 L 51.145 61.629 L 50.548 61.159 L 50.000 61.000 L 49.452 61.159 L 48.855 61.629 L 48.163 62.381 L 47.340 63.374 L 46.355 64.550 L 45.194 65.843 L 43.854 67.178 L 42.346 68.478 L 40.698 69.667 L 38.949 70.676 L 37.147 71.443 L 35.353 71.921 L 33.628 72.075 L 32.037 71.888 L 30.641 71.359 L 29.494 70.506 L 28.641 69.359 L 28.112 67.963 L 27.925 66.372 L 28.079 64.647 L 28.557 62.853 L 29.324 61.051 L 30.333 59.302 L 31.522 57.654 L 32.822 56.146 L 34.157 54.806 L 35.450 53.645 L 36.626 52.660 L 37.619 51.837 L 38.371 51.145 L 38.841 50.548 L 39.000 50.000 L 38.841 49.452 L 38.371 48.855 L 37.619 48.163 L 36.626 47.340 L 35.450 46.355 L 34.157 45.194 L 32.822 43.854 L 31.522 42.346 L 30.333 40.698 L 29.324 38.949 L 28.557 37.147 L 28.079 35.353 L 27.925 33.628 L 28.112 32.037 L 28.641 30.641 L 29.494 29.494 L 30.641 28.641 L 32.037 28.112 L 33.628 27.925 L 35.353 28.079 L 37.147 28.557 L 38.949 29.324 L 40.698 30.333 L 42.346 31.522 L 43.854 32.822 L 45.194 34.157 L 46.355 35.450 L 47.340 36.626 L 48.163 37.619 L 48.855 38.371 L 49.452 38.841 L 50.000 39.000 L 50.548 38.841 L 51.145 38.371 L 51.837 37.619 L 52.660 36.626 L 53.645 35.450 L 54.806 34.157 L 56.146 32.822 L 57.654 31.522 L 59.302 30.333 L 61.051 29.324 L 62.853 28.557 L 64.647 28.079 L 66.372 27.925 L 67.963 28.112 L 69.359 28.641 L 70.506 29.494 L 71.359 30.641 L 71.888 32.037 L 72.075 33.628 L 71.921 35.353 L 71.443 37.147 L 70.676 38.949 L 69.667 40.698 L 68.478 42.346 L 67.178 43.854 L 65.843 45.194 L 64.550 46.355 L 63.374 47.340 L 62.381 48.163 L 61.629 48.855 L 61.159 49.452 L 61.000 50.000 Z"
24
+ />
13
25
  </g>
14
- <path
15
- fill="#ebebef"
16
- d="M 61.000 50.000 L 61.159 50.548 L 61.629 51.145 L 62.381 51.837 L 63.374 52.660 L 64.550 53.645 L 65.843 54.806 L 67.178 56.146 L 68.478 57.654 L 69.667 59.302 L 70.676 61.051 L 71.443 62.853 L 71.921 64.647 L 72.075 66.372 L 71.888 67.963 L 71.359 69.359 L 70.506 70.506 L 69.359 71.359 L 67.963 71.888 L 66.372 72.075 L 64.647 71.921 L 62.853 71.443 L 61.051 70.676 L 59.302 69.667 L 57.654 68.478 L 56.146 67.178 L 54.806 65.843 L 53.645 64.550 L 52.660 63.374 L 51.837 62.381 L 51.145 61.629 L 50.548 61.159 L 50.000 61.000 L 49.452 61.159 L 48.855 61.629 L 48.163 62.381 L 47.340 63.374 L 46.355 64.550 L 45.194 65.843 L 43.854 67.178 L 42.346 68.478 L 40.698 69.667 L 38.949 70.676 L 37.147 71.443 L 35.353 71.921 L 33.628 72.075 L 32.037 71.888 L 30.641 71.359 L 29.494 70.506 L 28.641 69.359 L 28.112 67.963 L 27.925 66.372 L 28.079 64.647 L 28.557 62.853 L 29.324 61.051 L 30.333 59.302 L 31.522 57.654 L 32.822 56.146 L 34.157 54.806 L 35.450 53.645 L 36.626 52.660 L 37.619 51.837 L 38.371 51.145 L 38.841 50.548 L 39.000 50.000 L 38.841 49.452 L 38.371 48.855 L 37.619 48.163 L 36.626 47.340 L 35.450 46.355 L 34.157 45.194 L 32.822 43.854 L 31.522 42.346 L 30.333 40.698 L 29.324 38.949 L 28.557 37.147 L 28.079 35.353 L 27.925 33.628 L 28.112 32.037 L 28.641 30.641 L 29.494 29.494 L 30.641 28.641 L 32.037 28.112 L 33.628 27.925 L 35.353 28.079 L 37.147 28.557 L 38.949 29.324 L 40.698 30.333 L 42.346 31.522 L 43.854 32.822 L 45.194 34.157 L 46.355 35.450 L 47.340 36.626 L 48.163 37.619 L 48.855 38.371 L 49.452 38.841 L 50.000 39.000 L 50.548 38.841 L 51.145 38.371 L 51.837 37.619 L 52.660 36.626 L 53.645 35.450 L 54.806 34.157 L 56.146 32.822 L 57.654 31.522 L 59.302 30.333 L 61.051 29.324 L 62.853 28.557 L 64.647 28.079 L 66.372 27.925 L 67.963 28.112 L 69.359 28.641 L 70.506 29.494 L 71.359 30.641 L 71.888 32.037 L 72.075 33.628 L 71.921 35.353 L 71.443 37.147 L 70.676 38.949 L 69.667 40.698 L 68.478 42.346 L 67.178 43.854 L 65.843 45.194 L 64.550 46.355 L 63.374 47.340 L 62.381 48.163 L 61.629 48.855 L 61.159 49.452 L 61.000 50.000 Z"
17
- />
18
26
  </svg>
@@ -1,19 +1,26 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="14.5 14.5 71 71" fill="none" aria-hidden="true">
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="10 10 80 80" fill="none" aria-hidden="true">
2
2
  <title>xopc</title>
3
- <!-- Blue rings (drawn under the hub) -->
4
- <g stroke="#0080c8" stroke-width="3.2" stroke-linecap="round" fill="none">
5
- <path d="M 29.375 23.602 A 33.5 33.5 0 0 1 70.625 23.602" />
6
- <path d="M 76.398 29.375 A 33.5 33.5 0 0 1 76.398 70.625" />
7
- <path d="M 70.625 76.398 A 33.5 33.5 0 0 1 29.375 76.398" />
8
- <path d="M 23.602 70.625 A 33.5 33.5 0 0 1 23.602 29.375" />
9
- <path d="M 35.011 29.370 A 25.5 25.5 0 0 1 64.989 29.370" />
10
- <path d="M 70.630 35.011 A 25.5 25.5 0 0 1 70.630 64.989" />
11
- <path d="M 64.989 70.630 A 25.5 25.5 0 0 1 35.011 70.630" />
12
- <path d="M 29.370 64.989 A 25.5 25.5 0 0 1 29.370 35.011" />
13
- </g>
14
- <!-- Central hub -->
15
- <path
16
- fill="#374151"
3
+ <g transform="translate(50 50) scale(0.92) translate(-50 -50)">
4
+ <!-- Goal loop: outer system boundary + inner feedback loop -->
5
+ <g stroke-linecap="round" fill="none">
6
+ <g stroke="#000000" stroke-width="4">
7
+ <path d="M 29.375 23.602 A 33.5 33.5 0 0 1 70.625 23.602" />
8
+ <path d="M 76.398 29.375 A 33.5 33.5 0 0 1 76.398 70.625" />
9
+ <path d="M 70.625 76.398 A 33.5 33.5 0 0 1 29.375 76.398" />
10
+ <path d="M 23.602 70.625 A 33.5 33.5 0 0 1 23.602 29.375" />
11
+ </g>
12
+ <g stroke="#000000" stroke-width="3.2" transform="rotate(45 50 50)">
13
+ <path d="M 35.011 29.370 A 25.5 25.5 0 0 1 64.989 29.370" />
14
+ <path d="M 70.630 35.011 A 25.5 25.5 0 0 1 70.630 64.989" />
15
+ <path d="M 64.989 70.630 A 25.5 25.5 0 0 1 35.011 70.630" />
16
+ <path d="M 29.370 64.989 A 25.5 25.5 0 0 1 29.370 35.011" />
17
+ </g>
18
+ </g>
19
+ <!-- Central hub -->
20
+ <path
21
+ fill="#000000"
22
+ transform="translate(50 50) scale(0.72) translate(-50 -50)"
17
23
  d="M 61.000 50.000 L 61.159 50.548 L 61.629 51.145 L 62.381 51.837 L 63.374 52.660 L 64.550 53.645 L 65.843 54.806 L 67.178 56.146 L 68.478 57.654 L 69.667 59.302 L 70.676 61.051 L 71.443 62.853 L 71.921 64.647 L 72.075 66.372 L 71.888 67.963 L 71.359 69.359 L 70.506 70.506 L 69.359 71.359 L 67.963 71.888 L 66.372 72.075 L 64.647 71.921 L 62.853 71.443 L 61.051 70.676 L 59.302 69.667 L 57.654 68.478 L 56.146 67.178 L 54.806 65.843 L 53.645 64.550 L 52.660 63.374 L 51.837 62.381 L 51.145 61.629 L 50.548 61.159 L 50.000 61.000 L 49.452 61.159 L 48.855 61.629 L 48.163 62.381 L 47.340 63.374 L 46.355 64.550 L 45.194 65.843 L 43.854 67.178 L 42.346 68.478 L 40.698 69.667 L 38.949 70.676 L 37.147 71.443 L 35.353 71.921 L 33.628 72.075 L 32.037 71.888 L 30.641 71.359 L 29.494 70.506 L 28.641 69.359 L 28.112 67.963 L 27.925 66.372 L 28.079 64.647 L 28.557 62.853 L 29.324 61.051 L 30.333 59.302 L 31.522 57.654 L 32.822 56.146 L 34.157 54.806 L 35.450 53.645 L 36.626 52.660 L 37.619 51.837 L 38.371 51.145 L 38.841 50.548 L 39.000 50.000 L 38.841 49.452 L 38.371 48.855 L 37.619 48.163 L 36.626 47.340 L 35.450 46.355 L 34.157 45.194 L 32.822 43.854 L 31.522 42.346 L 30.333 40.698 L 29.324 38.949 L 28.557 37.147 L 28.079 35.353 L 27.925 33.628 L 28.112 32.037 L 28.641 30.641 L 29.494 29.494 L 30.641 28.641 L 32.037 28.112 L 33.628 27.925 L 35.353 28.079 L 37.147 28.557 L 38.949 29.324 L 40.698 30.333 L 42.346 31.522 L 43.854 32.822 L 45.194 34.157 L 46.355 35.450 L 47.340 36.626 L 48.163 37.619 L 48.855 38.371 L 49.452 38.841 L 50.000 39.000 L 50.548 38.841 L 51.145 38.371 L 51.837 37.619 L 52.660 36.626 L 53.645 35.450 L 54.806 34.157 L 56.146 32.822 L 57.654 31.522 L 59.302 30.333 L 61.051 29.324 L 62.853 28.557 L 64.647 28.079 L 66.372 27.925 L 67.963 28.112 L 69.359 28.641 L 70.506 29.494 L 71.359 30.641 L 71.888 32.037 L 72.075 33.628 L 71.921 35.353 L 71.443 37.147 L 70.676 38.949 L 69.667 40.698 L 68.478 42.346 L 67.178 43.854 L 65.843 45.194 L 64.550 46.355 L 63.374 47.340 L 62.381 48.163 L 61.629 48.855 L 61.159 49.452 L 61.000 50.000 Z"
18
- />
24
+ />
25
+ </g>
19
26
  </svg>
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "0.0.111";
2
+ var version = "0.0.113";
3
3
  //#endregion
4
4
  export { version };
5
5
 
@@ -15,7 +15,7 @@ import type { MessageBus } from '../infra/bus/index.js';
15
15
  import type { CronService } from '../cron/index.js';
16
16
  import type { SessionStore } from '../session/store.js';
17
17
  import type { SessionContext } from './session/session-context.js';
18
- import type { Skill, SkillMarkdownPreviewPayload } from './skills/types.js';
18
+ import type { Skill, SkillDiagnostic, SkillMarkdownPreviewPayload, SkillRuntimeStatus } from './skills/types.js';
19
19
  import { type SkillHubLockEntry } from './skills/hub-lock.js';
20
20
  import type { MemoryManager } from './memory/manager.js';
21
21
  export interface SkillCatalogEntry {
@@ -33,6 +33,15 @@ export interface SkillCatalogEntry {
33
33
  /** Hub install provenance when under ~/.xopc/skills and listed in skills-lock.json. */
34
34
  hub?: SkillHubLockEntry;
35
35
  }
36
+ export interface SkillCatalogRuntimeMeta {
37
+ version: string;
38
+ loadedAt: number;
39
+ diagnostics: SkillDiagnostic[];
40
+ status: SkillRuntimeStatus;
41
+ }
42
+ export interface SkillCatalogSnapshot extends SkillCatalogRuntimeMeta {
43
+ catalog: SkillCatalogEntry[];
44
+ }
36
45
  export type AgentSkillUnavailableReason = 'agent-denied' | 'disabled' | 'requirements-unmet' | 'model-invocation-disabled';
37
46
  export interface AgentSkillAvailabilityEntry extends SkillCatalogEntry {
38
47
  availableForCurrentAgent: boolean;
@@ -40,6 +49,10 @@ export interface AgentSkillAvailabilityEntry extends SkillCatalogEntry {
40
49
  }
41
50
  export interface AgentSkillAvailabilityPayload {
42
51
  agentId: string;
52
+ version: string;
53
+ loadedAt: number;
54
+ diagnostics: SkillDiagnostic[];
55
+ status: SkillRuntimeStatus;
43
56
  defaultsAllowlist?: string[];
44
57
  agentAllowlist?: string[];
45
58
  effectiveAllowlist?: string[];
@@ -67,6 +80,10 @@ export interface AgentManagerConfig {
67
80
  getCronService?: () => CronService | undefined;
68
81
  /** Gateway: starts persisted workflow runs (dedicated chat session per run). */
69
82
  getWorkflowRunService?: () => import('../workflows/service/workflow-run-service.types.js').WorkflowRunServiceLike | undefined;
83
+ /** Runtime notification for UI/CLI shells that cache skill catalogs. */
84
+ onSkillsUpdated?: (payload: {
85
+ reason: 'disk' | 'config';
86
+ }) => void;
70
87
  }
71
88
  export interface AgentInstance {
72
89
  agent: Agent;
@@ -95,6 +112,12 @@ export declare class AgentManager implements AgentInstanceGateway {
95
112
  private workspaceRuntimes;
96
113
  private memoryPrefetch;
97
114
  private backgroundReview;
115
+ private skillFilesystemWatcher;
116
+ private skillDiskRefreshInProgress;
117
+ private skillDiskRefreshPending;
118
+ private lastExplicitSkillDiskRefreshAt;
119
+ private skillsUpdatedTimer;
120
+ private pendingSkillsUpdatedReason;
98
121
  constructor(config: AgentManagerConfig);
99
122
  private computeBaseWorkspacePath;
100
123
  /**
@@ -159,6 +182,7 @@ export declare class AgentManager implements AgentInstanceGateway {
159
182
  private resolveContextFilesForSession;
160
183
  private skillCatalogEntryFromSkill;
161
184
  getSkillCatalog(): SkillCatalogEntry[];
185
+ getSkillCatalogSnapshot(): SkillCatalogSnapshot;
162
186
  getAgentSkillAvailability(agentId: string): AgentSkillAvailabilityPayload;
163
187
  /**
164
188
  * After ~/.xopc/skills.json changes (enable/disable), refresh `<available_skills>` on active agents.
@@ -167,7 +191,9 @@ export declare class AgentManager implements AgentInstanceGateway {
167
191
  /**
168
192
  * Reload skills from disk and refresh system prompt on all active Agent instances.
169
193
  */
170
- refreshSkillsAfterDiskChange(): void;
194
+ refreshSkillsAfterDiskChange(source?: 'explicit' | 'watch'): void;
195
+ private scheduleSkillsUpdated;
196
+ private applySkillsAfterDiskChange;
171
197
  /**
172
198
  * Get or create an Agent instance for a session
173
199
  */
@@ -1,16 +1,16 @@
1
- import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
2
- import { applyConfigOverrides } from "../config/runtime-overrides.js";
3
1
  import { resolveStateDir } from "../config/paths-state.js";
4
2
  import { expandWorkspacePathString, init_workspace_path } from "../config/workspace-path.js";
5
3
  import { init_agent_scope, resolveAgentProfileDir } from "./agent-scope.js";
6
- import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
4
+ import { init_paths, resolveBundledSkillsDir } from "../config/paths.js";
7
5
  import { createLogger } from "../utils/logger/index.js";
8
6
  import { init_logger } from "../utils/logger.js";
9
- import { init_paths, resolveBundledSkillsDir } from "../config/paths.js";
10
- import { init_sync_provider_auth, resolveProviderApiKeySync } from "../auth/sync-provider-auth.js";
11
7
  import { CredentialResolver, init_credentials } from "../auth/credentials.js";
8
+ import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
9
+ import { init_sync_provider_auth, resolveProviderApiKeySync } from "../auth/sync-provider-auth.js";
12
10
  import { getApiKeySync, getDefaultModelSync, init_providers, resolveModel } from "../providers/index.js";
13
11
  import { createExtensionAwareStreamFn } from "../providers/extension-stream-bridge.js";
12
+ import { applyConfigOverrides } from "../config/runtime-overrides.js";
13
+ import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
14
14
  import { extractTextContent, loadProfileMarkdownFiles } from "./context/workspace.js";
15
15
  import { clearBootstrapSnapshot } from "./bootstrap/bootstrap-cache.js";
16
16
  import { resolveBootstrapContextSync } from "./bootstrap/bootstrap-files.js";
@@ -28,8 +28,9 @@ import { MemoryPrefetchCoordinator } from "./memory/prefetch-coordinator.js";
28
28
  import { WorkspaceRuntimeRegistry } from "./workspace-runtime/registry.js";
29
29
  import { BackgroundReviewCoordinator } from "./background-review/coordinator.js";
30
30
  import { maybeRequestChannelExecApproval } from "../channels/exec-approval-runtime.js";
31
- import { Agent } from "@earendil-works/pi-agent-core";
31
+ import { SkillFilesystemWatcher } from "./skills/filesystem-watcher.js";
32
32
  import { basename, resolve, sep } from "node:path";
33
+ import { Agent } from "@earendil-works/pi-agent-core";
33
34
  //#region src/agent/agent-manager.ts
34
35
  /**
35
36
  * Agent Manager - Manages Agent instances per session
@@ -64,12 +65,26 @@ var AgentManager = class {
64
65
  workspaceRuntimes;
65
66
  memoryPrefetch;
66
67
  backgroundReview;
68
+ skillFilesystemWatcher;
69
+ skillDiskRefreshInProgress = false;
70
+ skillDiskRefreshPending = false;
71
+ lastExplicitSkillDiskRefreshAt = 0;
72
+ skillsUpdatedTimer;
73
+ pendingSkillsUpdatedReason;
67
74
  constructor(config) {
68
75
  this.config = config;
69
76
  this.baseWorkspacePath = this.computeBaseWorkspacePath();
77
+ this.skillFilesystemWatcher = new SkillFilesystemWatcher({ onChange: (event) => {
78
+ log.info({ changedPath: event.changedPath }, "Skill filesystem changed; refreshing skills");
79
+ this.refreshSkillsAfterDiskChange("watch");
80
+ } });
81
+ this.skillFilesystemWatcher.refreshPrimaryWorkspace(this.baseWorkspacePath);
70
82
  this.workspaceRuntimes = new WorkspaceRuntimeRegistry({
71
83
  getConfig: () => this.config.config,
72
- bundledSkillsDir: resolveBundledSkillsDir()
84
+ bundledSkillsDir: resolveBundledSkillsDir(),
85
+ onRuntimeCreated: (resolvedPath) => {
86
+ this.skillFilesystemWatcher.watchWorkspace(resolvedPath);
87
+ }
73
88
  });
74
89
  this.memoryPrefetch = new MemoryPrefetchCoordinator({
75
90
  getConfig: () => this.config.config,
@@ -78,7 +93,7 @@ var AgentManager = class {
78
93
  });
79
94
  this.backgroundReview = new BackgroundReviewCoordinator({
80
95
  getConfig: () => this.mergedConfig(),
81
- onSkillsFilesystemMutate: () => this.refreshSkillsAfterDiskChange()
96
+ onSkillsFilesystemMutate: () => this.refreshSkillsAfterDiskChange("explicit")
82
97
  });
83
98
  this.toolsFactory = new AgentToolsFactory(this.buildToolsFactoryDeps());
84
99
  this.defaultModel = config.model || getDefaultModelSync(config.config);
@@ -152,6 +167,7 @@ var AgentManager = class {
152
167
  this.config.model = ref;
153
168
  this.defaultModel = ref || getDefaultModelSync(config);
154
169
  this.baseWorkspacePath = this.computeBaseWorkspacePath();
170
+ this.skillFilesystemWatcher.refreshPrimaryWorkspace(this.baseWorkspacePath);
155
171
  this.toolsFactory.shutdownBrowser();
156
172
  this.workspaceRuntimes.clearAll();
157
173
  }
@@ -185,7 +201,7 @@ var AgentManager = class {
185
201
  };
186
202
  },
187
203
  onSkillsFilesystemMutate: () => {
188
- this.refreshSkillsAfterDiskChange();
204
+ this.refreshSkillsAfterDiskChange("explicit");
189
205
  },
190
206
  getSkillPassthroughEnvVarNames: () => {
191
207
  const ctx = this.config.getCurrentContext?.();
@@ -313,9 +329,19 @@ var AgentManager = class {
313
329
  };
314
330
  }
315
331
  getSkillCatalog() {
332
+ return this.getSkillCatalogSnapshot().catalog;
333
+ }
334
+ getSkillCatalogSnapshot() {
316
335
  const skillsConfig = createSkillConfigManager(resolveStateDir()).load();
317
336
  const lock = loadSkillsLock();
318
- return this.workspaceRuntimes.getOrCreate(this.baseWorkspacePath).skillManager.getSkills().map((s) => this.skillCatalogEntryFromSkill(s, skillsConfig, lock));
337
+ const rt = this.workspaceRuntimes.getOrCreate(this.baseWorkspacePath);
338
+ return {
339
+ catalog: rt.skillManager.getSkills().map((s) => this.skillCatalogEntryFromSkill(s, skillsConfig, lock)),
340
+ version: rt.skillManager.getVersion(),
341
+ loadedAt: rt.skillManager.getLoadedAt(),
342
+ diagnostics: rt.skillManager.getDiagnostics(),
343
+ status: rt.skillManager.getStatus()
344
+ };
319
345
  }
320
346
  getAgentSkillAvailability(agentId) {
321
347
  const cfg = this.config.config;
@@ -340,6 +366,10 @@ var AgentManager = class {
340
366
  });
341
367
  return {
342
368
  agentId: profile.agentId,
369
+ version: rt.skillManager.getVersion(),
370
+ loadedAt: rt.skillManager.getLoadedAt(),
371
+ diagnostics: rt.skillManager.getDiagnostics(),
372
+ status: rt.skillManager.getStatus(),
343
373
  ...defaultsAllowlist !== void 0 ? { defaultsAllowlist: [...defaultsAllowlist] } : {},
344
374
  ...entry?.skills !== void 0 ? { agentAllowlist: [...entry.skills] } : {},
345
375
  ...profile.skillsAllowlist !== void 0 ? { effectiveAllowlist: [...profile.skillsAllowlist] } : {},
@@ -352,6 +382,10 @@ var AgentManager = class {
352
382
  refreshSkillsAfterSkillConfigChange() {
353
383
  const cfg = this.config.config;
354
384
  const touched = /* @__PURE__ */ new Set();
385
+ for (const [resolvedPath, rt] of this.workspaceRuntimes.entries()) {
386
+ rt.skillManager.refreshPromptFromConfig();
387
+ touched.add(resolvedPath);
388
+ }
355
389
  for (const instance of this.agents.values()) {
356
390
  const rt = this.workspaceRuntimes.getOrCreate(instance.resolvedWorkspacePath);
357
391
  if (!touched.has(instance.resolvedWorkspacePath)) {
@@ -374,11 +408,46 @@ var AgentManager = class {
374
408
  instance.agent.state.systemPrompt = newPrompt;
375
409
  }
376
410
  log.info({ agents: this.agents.size }, "Skill toggles applied; system prompt updated");
411
+ this.scheduleSkillsUpdated("config");
377
412
  }
378
413
  /**
379
414
  * Reload skills from disk and refresh system prompt on all active Agent instances.
380
415
  */
381
- refreshSkillsAfterDiskChange() {
416
+ refreshSkillsAfterDiskChange(source = "explicit") {
417
+ const now = Date.now();
418
+ if (source === "watch" && now - this.lastExplicitSkillDiskRefreshAt < 2500) {
419
+ log.debug({ changedWithinMs: now - this.lastExplicitSkillDiskRefreshAt }, "Ignoring skill watcher echo after explicit refresh");
420
+ return;
421
+ }
422
+ if (source === "explicit") this.lastExplicitSkillDiskRefreshAt = now;
423
+ if (this.skillDiskRefreshInProgress) {
424
+ this.skillDiskRefreshPending = true;
425
+ return;
426
+ }
427
+ this.skillDiskRefreshInProgress = true;
428
+ let refreshed = false;
429
+ try {
430
+ do {
431
+ this.skillDiskRefreshPending = false;
432
+ this.applySkillsAfterDiskChange();
433
+ refreshed = true;
434
+ } while (this.skillDiskRefreshPending);
435
+ } finally {
436
+ this.skillDiskRefreshInProgress = false;
437
+ }
438
+ if (refreshed) this.scheduleSkillsUpdated("disk");
439
+ }
440
+ scheduleSkillsUpdated(reason) {
441
+ this.pendingSkillsUpdatedReason = reason === "disk" ? "disk" : this.pendingSkillsUpdatedReason ?? "config";
442
+ if (this.skillsUpdatedTimer) clearTimeout(this.skillsUpdatedTimer);
443
+ this.skillsUpdatedTimer = setTimeout(() => {
444
+ const nextReason = this.pendingSkillsUpdatedReason ?? reason;
445
+ this.pendingSkillsUpdatedReason = void 0;
446
+ this.skillsUpdatedTimer = void 0;
447
+ this.config.onSkillsUpdated?.({ reason: nextReason });
448
+ }, 250);
449
+ }
450
+ applySkillsAfterDiskChange() {
382
451
  const cfg = this.config.config;
383
452
  for (const rt of this.workspaceRuntimes.values()) rt.skillManager.reload();
384
453
  const touched = /* @__PURE__ */ new Set();
@@ -538,6 +607,8 @@ var AgentManager = class {
538
607
  * Dispose all agents
539
608
  */
540
609
  dispose() {
610
+ if (this.skillsUpdatedTimer) clearTimeout(this.skillsUpdatedTimer);
611
+ this.skillFilesystemWatcher.dispose();
541
612
  this.toolsFactory.shutdownBrowser();
542
613
  disposeAllSessionMcpRuntimes().catch(() => {});
543
614
  evictAllEmbeddedSessionRunners("agent_manager_dispose");