@xopcai/xopc 0.0.125 → 0.0.127

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 (386) hide show
  1. package/README.md +56 -102
  2. package/README.zh-CN.md +51 -98
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/feishu/src/schema/config-schema.d.ts +6 -6
  5. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  6. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  7. package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
  8. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  9. package/dist/extensions/telegram/src/plugin.js +1 -1
  10. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  11. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  12. package/dist/extensions/telegram/xopc.extension.json +1 -1
  13. package/dist/extensions/weixin/src/api/api.js +1 -1
  14. package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
  15. package/dist/extensions/weixin/src/plugin.js +1 -1
  16. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  17. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BKDKICZV.js → agent-avatar-dicebear-CgGgO4OV.js} +1 -1
  18. package/dist/gateway/static/root/assets/agents-k59l7NMb.js +2 -0
  19. package/dist/gateway/static/root/assets/{app-management-settings-panel-DI4BqHKW.js → app-management-settings-panel-DeQsTsyy.js} +1 -1
  20. package/dist/gateway/static/root/assets/{appearance-settings-6_ie3NQ4.js → appearance-settings-BnHQW7Hv.js} +1 -1
  21. package/dist/gateway/static/root/assets/apps-page-BG9b4abG.js +1 -0
  22. package/dist/gateway/static/root/assets/{archive-plugin-kUHEJ1HK.js → archive-plugin-5NXT7Zqv.js} +1 -1
  23. package/dist/gateway/static/root/assets/{attachment-load-Dm-9prpU.js → attachment-load-DghwhYe0.js} +1 -1
  24. package/dist/gateway/static/root/assets/{automation-suggestion-card-OTxQTPnC.js → automation-suggestion-card-DYmESgwl.js} +1 -1
  25. package/dist/gateway/static/root/assets/automations-page-De8mVutL.js +4 -0
  26. package/dist/gateway/static/root/assets/{binary-plugins-DllA_jQ0.js → binary-plugins-DSbPKdWX.js} +1 -1
  27. package/dist/gateway/static/root/assets/{block-editor-Cm6CWNj1.js → block-editor-CoZ-_np-.js} +28 -28
  28. package/dist/gateway/static/root/assets/browser-settings-page-C_ZRa4LF.js +8 -0
  29. package/dist/gateway/static/root/assets/{capability-presets-api-VJ89b6I2.js → capability-presets-api-hny224j-.js} +1 -1
  30. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-BaPj8wC2.js → capability-presets-settings-panel-Drc0qLsw.js} +1 -1
  31. package/dist/gateway/static/root/assets/{channel-recipient-api-B5PwBEUx.js → channel-recipient-api-DAlOHxKJ.js} +1 -1
  32. package/dist/gateway/static/root/assets/channels-settings-CA20zBV9.js +1 -0
  33. package/dist/gateway/static/root/assets/connectors-page-qMyMB5te.js +2 -0
  34. package/dist/gateway/static/root/assets/desktop-pet-XG6Vb_fZ.js +1 -0
  35. package/dist/gateway/static/root/assets/desktop-pet-settings-npJ0Oh5p.js +1 -0
  36. package/dist/gateway/static/root/assets/desktop-pet-sprite-DqZ6fbIj.js +1 -0
  37. package/dist/gateway/static/root/assets/directory-picker-path-field-BR2ItBuf.js +1 -0
  38. package/dist/gateway/static/root/assets/dreaming-settings-CkUZ997f.js +3 -0
  39. package/dist/gateway/static/root/assets/{extension-debug-page-BaM0FpW7.js → extension-debug-page-Tl0f1rNv.js} +1 -1
  40. package/dist/gateway/static/root/assets/{extension-page-DuZWVOGA.js → extension-page-Ck7QuwE3.js} +1 -1
  41. package/dist/gateway/static/root/assets/{extension-settings-page-DarVtbmJ.js → extension-settings-page-3RMhQtZ3.js} +1 -1
  42. package/dist/gateway/static/root/assets/{fetch-NFKfkqrd.js → fetch-pg2ErdAk.js} +1 -1
  43. package/dist/gateway/static/root/assets/{gateway-config-api-CFEm9rgy.js → gateway-config-api-DbG97ia2.js} +1 -1
  44. package/dist/gateway/static/root/assets/gateway-settings-B8cyqKk-.js +1 -0
  45. package/dist/gateway/static/root/assets/{gateway-startup-retry-Dtwh_yGg.js → gateway-startup-retry-Yh8h3hkj.js} +1 -1
  46. package/dist/gateway/static/root/assets/{goal-create-dialog-BKP7ylcG.js → goal-create-dialog-DmeW7Zz3.js} +1 -1
  47. package/dist/gateway/static/root/assets/goal-detail-page-DrTyGbVD.js +1 -0
  48. package/dist/gateway/static/root/assets/{goals-config-api-DTWZNA_Y.js → goals-config-api-CxCWGIBB.js} +1 -1
  49. package/dist/gateway/static/root/assets/goals-page-DV1bJhIh.js +2 -0
  50. package/dist/gateway/static/root/assets/{goals-settings-Bhct0ZT-.js → goals-settings-9DrfOkP5.js} +1 -1
  51. package/dist/gateway/static/root/assets/{heartbeat-settings-C-UxSU4a.js → heartbeat-settings-KaDpZrv0.js} +1 -1
  52. package/dist/gateway/static/root/assets/index-C2F0Clvm.js +256 -0
  53. package/dist/gateway/static/root/assets/index-COQSX5d_.css +1 -0
  54. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DCjy2y4d.js → keyboard-shortcuts-settings-CfQrt_Rb.js} +1 -1
  55. package/dist/gateway/static/root/assets/logs-page-C9dpiNTF.js +2 -0
  56. package/dist/gateway/static/root/assets/{markdown-split-BaqxP-GQ.js → markdown-split-BwiMdCf_.js} +1 -1
  57. package/dist/gateway/static/root/assets/{media-plugins-DQ_EXloK.js → media-plugins-DhoizyZv.js} +1 -1
  58. package/dist/gateway/static/root/assets/messages-DmnbiNxU.js +3 -0
  59. package/dist/gateway/static/root/assets/models-hub-panel-zdCdmBmH.js +2 -0
  60. package/dist/gateway/static/root/assets/notes-page-MpGeFfPt.js +1 -0
  61. package/dist/gateway/static/root/assets/notes-workbench-DYCM3yd2.js +2 -0
  62. package/dist/gateway/static/root/assets/{page-tabs-EIZhLppK.js → page-tabs-DDC2t4Z8.js} +1 -1
  63. package/dist/gateway/static/root/assets/{preview-open-alternatives-r_uB4Epr.js → preview-open-alternatives-BTmk-XDM.js} +1 -1
  64. package/dist/gateway/static/root/assets/project-detail-page-Cu0ElRnS.js +1 -0
  65. package/dist/gateway/static/root/assets/projects-page-DakNaUjZ.js +1 -0
  66. package/dist/gateway/static/root/assets/remote-access-hub-DYKjt7L9.js +1 -0
  67. package/dist/gateway/static/root/assets/{save-bar-controls-B132Uf-2.js → save-bar-controls-DqU-yKIh.js} +1 -1
  68. package/dist/gateway/static/root/assets/{schedule-field-B5qshALm.js → schedule-field-CUttkoSB.js} +1 -1
  69. package/dist/gateway/static/root/assets/{schema-form-CvLmkdS9.js → schema-form-CVSQA9nI.js} +1 -1
  70. package/dist/gateway/static/root/assets/sessions-page-CcGHDsz1.js +1 -0
  71. package/dist/gateway/static/root/assets/settings-advanced-gate-CuFdeKNu.js +1 -0
  72. package/dist/gateway/static/root/assets/{settings-collapsible-section-pRlvqsAf.js → settings-collapsible-section-CK7ogS-P.js} +1 -1
  73. package/dist/gateway/static/root/assets/settings-form-section-Bugp38Fa.js +1 -0
  74. package/dist/gateway/static/root/assets/settings-page-0AJoUvxi.js +1 -0
  75. package/dist/gateway/static/root/assets/settings-page-layout-DBRWwdhh.js +1 -0
  76. package/dist/gateway/static/root/assets/setup-status-panel-D6a_hEk7.js +1 -0
  77. package/dist/gateway/static/root/assets/{share-preview-page-v6-IOp8t.js → share-preview-page-BtsuETKF.js} +1 -1
  78. package/dist/gateway/static/root/assets/shares-settings-CcEFT7S9.js +1 -0
  79. package/dist/gateway/static/root/assets/skill-reload-api-BcN_RuTD.js +1 -0
  80. package/dist/gateway/static/root/assets/skills-page-BbRZZZA5.js +2 -0
  81. package/dist/gateway/static/root/assets/{system-settings-panel-HUU2FFjM.js → system-settings-panel-DJ6YuLqR.js} +1 -1
  82. package/dist/gateway/static/root/assets/{typed-models-lib-AH160QHh.js → typed-models-lib-B0T7N8Km.js} +1 -1
  83. package/dist/gateway/static/root/assets/{use-channel-catalog-BXzDmjCQ.js → use-channel-catalog-C6vrxdzZ.js} +1 -1
  84. package/dist/gateway/static/root/assets/{user-profile-settings-panel-DxwnQvQ3.js → user-profile-settings-panel-DZ0nKMgj.js} +1 -1
  85. package/dist/gateway/static/root/assets/{utils-i5POEtqd.js → utils-CehXcWAY.js} +1 -1
  86. package/dist/gateway/static/root/assets/voice-api-key-field-2QKflCx8.js +1 -0
  87. package/dist/gateway/static/root/assets/work-item-detail-page-DfJnuWq1.js +1 -0
  88. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-ClVVMgN-.js → workflow-run-setup-panel-c4jeaohQ.js} +2 -2
  89. package/dist/gateway/static/root/assets/{workflow-start-dialog-Dv4ZA1T0.js → workflow-start-dialog-ENRHjoqa.js} +1 -1
  90. package/dist/gateway/static/root/assets/workflows-page-BJwwFTm_.js +18 -0
  91. package/dist/gateway/static/root/index.html +5 -5
  92. package/dist/package.js +1 -1
  93. package/dist/src/activity/context.d.ts +11 -0
  94. package/dist/src/activity/context.js +36 -0
  95. package/dist/src/activity/context.js.map +1 -0
  96. package/dist/src/activity/emitter.d.ts +6 -0
  97. package/dist/src/activity/emitter.js +43 -0
  98. package/dist/src/activity/emitter.js.map +1 -0
  99. package/dist/src/activity/index.d.ts +3 -0
  100. package/dist/src/activity/index.js +3 -0
  101. package/dist/src/activity/service.d.ts +12 -0
  102. package/dist/src/activity/service.js +59 -0
  103. package/dist/src/activity/service.js.map +1 -0
  104. package/dist/src/activity/types.d.ts +109 -0
  105. package/dist/src/activity/types.js +1 -0
  106. package/dist/src/agent/agent-instance-gateway.d.ts +5 -0
  107. package/dist/src/agent/agent-manager.d.ts +21 -0
  108. package/dist/src/agent/agent-manager.js +118 -6
  109. package/dist/src/agent/agent-manager.js.map +1 -1
  110. package/dist/src/agent/capabilities/definitions.d.ts +153 -0
  111. package/dist/src/agent/capabilities/definitions.js +156 -0
  112. package/dist/src/agent/capabilities/definitions.js.map +1 -0
  113. package/dist/src/agent/capabilities/index.d.ts +2 -0
  114. package/dist/src/agent/capabilities/index.js +3 -0
  115. package/dist/src/agent/capabilities/registry.d.ts +10 -0
  116. package/dist/src/agent/capabilities/registry.js +51 -0
  117. package/dist/src/agent/capabilities/registry.js.map +1 -0
  118. package/dist/src/agent/context/project-context.js +2 -2
  119. package/dist/src/agent/context/workspace-seed.js +2 -2
  120. package/dist/src/agent/embedded/run-for-session.js +1 -1
  121. package/dist/src/agent/goals/post-turn.js +2 -2
  122. package/dist/src/agent/ipc/bus.js +1 -1
  123. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  124. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  125. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  126. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  127. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  128. package/dist/src/agent/models/manager.js +1 -1
  129. package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
  130. package/dist/src/agent/service/process-direct-one-shot.js +5 -3
  131. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  132. package/dist/src/agent/service/process-direct-streaming.js +4 -3
  133. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  134. package/dist/src/agent/service.d.ts +2 -0
  135. package/dist/src/agent/service.js +9 -3
  136. package/dist/src/agent/service.js.map +1 -1
  137. package/dist/src/agent/service.types.d.ts +7 -0
  138. package/dist/src/agent/session/session-inspector.js +1 -1
  139. package/dist/src/agent/skills/hub-pull.js +1 -1
  140. package/dist/src/agent/skills/parse-skill-metadata.js +9 -1
  141. package/dist/src/agent/skills/parse-skill-metadata.js.map +1 -1
  142. package/dist/src/agent/skills/skill-manager.d.ts +4 -0
  143. package/dist/src/agent/skills/skill-manager.js +17 -0
  144. package/dist/src/agent/skills/skill-manager.js.map +1 -1
  145. package/dist/src/agent/skills/types.d.ts +5 -0
  146. package/dist/src/agent/tool-manuals/index.js +15 -6
  147. package/dist/src/agent/tool-manuals/index.js.map +1 -1
  148. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -0
  149. package/dist/src/agent/tool-manuals/xopc-use.js +204 -0
  150. package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -0
  151. package/dist/src/agent/tools/desktop-pet-tool.d.ts +24 -0
  152. package/dist/src/agent/tools/desktop-pet-tool.js +90 -0
  153. package/dist/src/agent/tools/desktop-pet-tool.js.map +1 -0
  154. package/dist/src/agent/tools/factory.d.ts +9 -0
  155. package/dist/src/agent/tools/factory.js +26 -0
  156. package/dist/src/agent/tools/factory.js.map +1 -1
  157. package/dist/src/agent/tools/goal-tool.js +2 -2
  158. package/dist/src/agent/tools/index.d.ts +2 -0
  159. package/dist/src/agent/tools/index.js +3 -1
  160. package/dist/src/agent/tools/workflow-tool.js +1 -1
  161. package/dist/src/agent/tools/xopc-use-tool.d.ts +34 -0
  162. package/dist/src/agent/tools/xopc-use-tool.js +636 -0
  163. package/dist/src/agent/tools/xopc-use-tool.js.map +1 -0
  164. package/dist/src/agent-manifest/schema.d.ts +27 -27
  165. package/dist/src/automations/api/routes.js +1 -1
  166. package/dist/src/automations/domain/validation.d.ts +55 -55
  167. package/dist/src/automations/draft/automation-draft-service.js +1 -1
  168. package/dist/src/automations/draft/automation-draft-validator.d.ts +25 -25
  169. package/dist/src/automations/service/action-executor.js +2 -2
  170. package/dist/src/browser/cdp-local-launcher.js +1 -1
  171. package/dist/src/browser/providers/browser-ext-install.js +3 -3
  172. package/dist/src/browser/providers/cloakbrowser.js +2 -2
  173. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  174. package/dist/src/browser/stealth.js +1 -1
  175. package/dist/src/chat-commands/agent-edit.js +1 -1
  176. package/dist/src/chat-commands/builtins/config.js +1 -1
  177. package/dist/src/chat-commands/builtins/goal.js +2 -2
  178. package/dist/src/chat-commands/context.js +1 -1
  179. package/dist/src/cli/commands/agent.js +3 -3
  180. package/dist/src/cli/commands/doctor/checks/database-schema.js +2 -2
  181. package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
  182. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  183. package/dist/src/cli/commands/extension-pack.js +1 -1
  184. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  185. package/dist/src/cli/commands/goal.js +3 -3
  186. package/dist/src/cli/commands/init.js +1 -1
  187. package/dist/src/cli/commands/models.js +1 -1
  188. package/dist/src/cli/commands/onboard.js +1 -1
  189. package/dist/src/cli/commands/profile.js +1 -1
  190. package/dist/src/cli/commands/project.js +4 -4
  191. package/dist/src/cli/commands/tunnel.js +1 -1
  192. package/dist/src/cli/commands/update.js +1 -1
  193. package/dist/src/cli/extension-cli-register.js +1 -1
  194. package/dist/src/config/agent-profile.js +1 -1
  195. package/dist/src/config/gateway-bind.js +1 -1
  196. package/dist/src/config/index.js +2 -2
  197. package/dist/src/config/loader.js +1 -1
  198. package/dist/src/config/models-json.d.ts +14 -14
  199. package/dist/src/config/models-json.js +1 -1
  200. package/dist/src/config/schema.d.ts +60 -60
  201. package/dist/src/daemon/launchd.js +1 -1
  202. package/dist/src/daemon/systemd.js +1 -1
  203. package/dist/src/extensions/discover-extensions.js +1 -1
  204. package/dist/src/extensions/loader.js +2 -2
  205. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  206. package/dist/src/gateway/agent-builtin-tools.js +1 -0
  207. package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
  208. package/dist/src/gateway/agents-admin.js +1 -1
  209. package/dist/src/gateway/hono/lib/config-payload.d.ts +14 -14
  210. package/dist/src/gateway/hono/lib/static-ui.js +1 -1
  211. package/dist/src/gateway/hono/middleware/log-context.js +8 -1
  212. package/dist/src/gateway/hono/middleware/log-context.js.map +1 -1
  213. package/dist/src/gateway/hono/routes/activity.d.ts +14 -0
  214. package/dist/src/gateway/hono/routes/activity.js +72 -0
  215. package/dist/src/gateway/hono/routes/activity.js.map +1 -0
  216. package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
  217. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  218. package/dist/src/gateway/hono/routes/goals.js +1 -1
  219. package/dist/src/gateway/hono/routes/index.js +2 -0
  220. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  221. package/dist/src/gateway/hono/routes/lazy-bundles.js +2 -1
  222. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  223. package/dist/src/gateway/hono/routes/memory.js +2 -2
  224. package/dist/src/gateway/hono/routes/projects.js +93 -15
  225. package/dist/src/gateway/hono/routes/projects.js.map +1 -1
  226. package/dist/src/gateway/hono/routes/sessions.js +101 -2
  227. package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
  228. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  229. package/dist/src/gateway/lock.js +1 -1
  230. package/dist/src/gateway/ports.js +1 -1
  231. package/dist/src/gateway/run-loop.js +1 -1
  232. package/dist/src/gateway/service/run-gateway-agent.js +6 -2
  233. package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
  234. package/dist/src/gateway/service/sessions-api.d.ts +10 -0
  235. package/dist/src/gateway/service/sessions-api.js +31 -0
  236. package/dist/src/gateway/service/sessions-api.js.map +1 -1
  237. package/dist/src/gateway/service.js +12 -9
  238. package/dist/src/gateway/service.js.map +1 -1
  239. package/dist/src/goals/goal-store.js +1 -1
  240. package/dist/src/goals/goal-store.js.map +1 -1
  241. package/dist/src/goals/goal-workflow-judge.js +1 -1
  242. package/dist/src/infra/ports.js +1 -1
  243. package/dist/src/infra/ssh-tunnel.js +1 -1
  244. package/dist/src/infra/update-check.js +1 -1
  245. package/dist/src/infra/update-restart.js +1 -1
  246. package/dist/src/migrations/runner.js +1 -1
  247. package/dist/src/notes/service.js +65 -6
  248. package/dist/src/notes/service.js.map +1 -1
  249. package/dist/src/notes/store.js +1 -1
  250. package/dist/src/pets/factory.d.ts +25 -0
  251. package/dist/src/pets/factory.js +327 -0
  252. package/dist/src/pets/factory.js.map +1 -0
  253. package/dist/src/pets/manifest.d.ts +2 -0
  254. package/dist/src/pets/manifest.js +16 -0
  255. package/dist/src/pets/manifest.js.map +1 -0
  256. package/dist/src/pets/validator.d.ts +12 -0
  257. package/dist/src/pets/validator.js +175 -0
  258. package/dist/src/pets/validator.js.map +1 -0
  259. package/dist/src/projects/project-service.d.ts +4 -1
  260. package/dist/src/projects/project-service.js +65 -2
  261. package/dist/src/projects/project-service.js.map +1 -1
  262. package/dist/src/projects/project-store.d.ts +3 -1
  263. package/dist/src/projects/project-store.js +56 -6
  264. package/dist/src/projects/project-store.js.map +1 -1
  265. package/dist/src/projects/types.d.ts +12 -0
  266. package/dist/src/projects/workspace.js +1 -1
  267. package/dist/src/routing/agent-session-key.js +1 -1
  268. package/dist/src/routing/resolve-route.js +1 -1
  269. package/dist/src/routing/resolve-tui-session-key.js +1 -1
  270. package/dist/src/session/client-history.d.ts +3 -0
  271. package/dist/src/session/client-history.js +24 -9
  272. package/dist/src/session/client-history.js.map +1 -1
  273. package/dist/src/session/init-session-turn.js +1 -1
  274. package/dist/src/session/resolve-session.js +1 -1
  275. package/dist/src/session/session-title.js +24 -4
  276. package/dist/src/session/session-title.js.map +1 -1
  277. package/dist/src/session/store.js +1 -1
  278. package/dist/src/session/types.d.ts +4 -0
  279. package/dist/src/session/types.js.map +1 -1
  280. package/dist/src/storage/sqlite/activity-repository.d.ts +8 -0
  281. package/dist/src/storage/sqlite/activity-repository.js +208 -0
  282. package/dist/src/storage/sqlite/activity-repository.js.map +1 -0
  283. package/dist/src/storage/sqlite/connection.js +1 -1
  284. package/dist/src/storage/sqlite/index.d.ts +1 -0
  285. package/dist/src/storage/sqlite/index.js +2 -1
  286. package/dist/src/storage/sqlite/migrations/024_activity_events.sql +62 -0
  287. package/dist/src/storage/sqlite/migrations/025_project_pinned_at.sql +5 -0
  288. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  289. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  290. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  291. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  292. package/dist/src/storage/sqlite/row-mappers.js +1 -1
  293. package/dist/src/storage/sqlite/schema.js +1 -1
  294. package/dist/src/storage/sqlite/schema.sql +63 -0
  295. package/dist/src/storage/sqlite/session-repository.js +11 -0
  296. package/dist/src/storage/sqlite/session-repository.js.map +1 -1
  297. package/dist/src/tui/backends/embedded-backend.d.ts +13 -0
  298. package/dist/src/tui/backends/embedded-backend.js +76 -7
  299. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  300. package/dist/src/tui/backends/gateway-sse-backend.d.ts +13 -0
  301. package/dist/src/tui/backends/gateway-sse-backend.js +53 -0
  302. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  303. package/dist/src/tui/chat-history.js +16 -3
  304. package/dist/src/tui/chat-history.js.map +1 -1
  305. package/dist/src/tui/clipboard-image.js +1 -1
  306. package/dist/src/tui/components/chat-log.d.ts +23 -3
  307. package/dist/src/tui/components/chat-log.js +68 -9
  308. package/dist/src/tui/components/chat-log.js.map +1 -1
  309. package/dist/src/tui/components/tui-bottom-bar.js +9 -5
  310. package/dist/src/tui/components/tui-bottom-bar.js.map +1 -1
  311. package/dist/src/tui/tui-backend.d.ts +16 -0
  312. package/dist/src/tui/tui-command-formatters.js +2 -2
  313. package/dist/src/tui/tui-commands.d.ts +9 -0
  314. package/dist/src/tui/tui-commands.js +95 -6
  315. package/dist/src/tui/tui-commands.js.map +1 -1
  316. package/dist/src/tui/tui-picker-overlay.d.ts +1 -0
  317. package/dist/src/tui/tui-picker-overlay.js +36 -1
  318. package/dist/src/tui/tui-picker-overlay.js.map +1 -1
  319. package/dist/src/tui/tui-picker-services.d.ts +13 -0
  320. package/dist/src/tui/tui-run-state.js +11 -0
  321. package/dist/src/tui/tui-run-state.js.map +1 -1
  322. package/dist/src/tui/tui-run-status-format.d.ts +3 -0
  323. package/dist/src/tui/tui-run-status-format.js +33 -0
  324. package/dist/src/tui/tui-run-status-format.js.map +1 -0
  325. package/dist/src/tui/tui-session-actions.d.ts +5 -0
  326. package/dist/src/tui/tui-session-actions.js +24 -0
  327. package/dist/src/tui/tui-session-actions.js.map +1 -1
  328. package/dist/src/tui/tui-timeline-picker.d.ts +19 -0
  329. package/dist/src/tui/tui-timeline-picker.js +81 -0
  330. package/dist/src/tui/tui-timeline-picker.js.map +1 -0
  331. package/dist/src/tui/tui-timeline.d.ts +15 -0
  332. package/dist/src/tui/tui-timeline.js +65 -0
  333. package/dist/src/tui/tui-timeline.js.map +1 -0
  334. package/dist/src/tui/tui-types.d.ts +1 -0
  335. package/dist/src/tui/tui-types.js +1 -0
  336. package/dist/src/tui/tui-types.js.map +1 -1
  337. package/dist/src/tui/tui.js +31 -25
  338. package/dist/src/tui/tui.js.map +1 -1
  339. package/dist/src/utils/index.js +1 -1
  340. package/dist/src/utils/logger/index.js +1 -1
  341. package/dist/src/utils/logger/stats.d.ts +3 -3
  342. package/dist/src/utils/logger.js +1 -1
  343. package/dist/src/work-items/agent-context.d.ts +5 -1
  344. package/dist/src/work-items/agent-context.js +39 -3
  345. package/dist/src/work-items/agent-context.js.map +1 -1
  346. package/dist/src/work-items/work-item-service.d.ts +2 -0
  347. package/dist/src/work-items/work-item-service.js +97 -0
  348. package/dist/src/work-items/work-item-service.js.map +1 -1
  349. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  350. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  351. package/package.json +5 -5
  352. package/skills/creative/hatch-pet/SKILL.md +63 -0
  353. package/dist/gateway/static/root/assets/agents-BnTB7-c5.js +0 -2
  354. package/dist/gateway/static/root/assets/apps-page-B6bG65SW.js +0 -1
  355. package/dist/gateway/static/root/assets/automations-page-1lVbo0dS.js +0 -1
  356. package/dist/gateway/static/root/assets/browser-settings-page-CzDBlOK0.js +0 -8
  357. package/dist/gateway/static/root/assets/channels-settings-Df4m7p1k.js +0 -1
  358. package/dist/gateway/static/root/assets/connectors-page-BMTphmHS.js +0 -2
  359. package/dist/gateway/static/root/assets/directory-picker-path-field-DySMzOF6.js +0 -1
  360. package/dist/gateway/static/root/assets/dist-By6Rh2ee.js +0 -1
  361. package/dist/gateway/static/root/assets/dreaming-settings-D_AjSnV_.js +0 -3
  362. package/dist/gateway/static/root/assets/gateway-settings-BMk2S5td.js +0 -1
  363. package/dist/gateway/static/root/assets/goal-detail-page-C2cTxf71.js +0 -1
  364. package/dist/gateway/static/root/assets/goals-page-CTmA3hWK.js +0 -2
  365. package/dist/gateway/static/root/assets/index-BNHDd2j1.css +0 -1
  366. package/dist/gateway/static/root/assets/index-BPXLPMuY.js +0 -193
  367. package/dist/gateway/static/root/assets/logs-page-CGc3_CQU.js +0 -2
  368. package/dist/gateway/static/root/assets/messages-CjuIJcZl.js +0 -3
  369. package/dist/gateway/static/root/assets/models-hub-panel-Drz4UQMb.js +0 -2
  370. package/dist/gateway/static/root/assets/notes-page-CY1ylng1.js +0 -1
  371. package/dist/gateway/static/root/assets/notes-workbench-X7IaD--t.js +0 -2
  372. package/dist/gateway/static/root/assets/project-detail-page-DE5adRBE.js +0 -1
  373. package/dist/gateway/static/root/assets/projects-page-CuOb1k6F.js +0 -1
  374. package/dist/gateway/static/root/assets/remote-access-hub-BOxNrUVA.js +0 -1
  375. package/dist/gateway/static/root/assets/sessions-page-CY0IQcGW.js +0 -1
  376. package/dist/gateway/static/root/assets/settings-advanced-gate-D4NBNVCB.js +0 -1
  377. package/dist/gateway/static/root/assets/settings-form-section-BBYUDLVd.js +0 -1
  378. package/dist/gateway/static/root/assets/settings-page-DaO7zYZM.js +0 -1
  379. package/dist/gateway/static/root/assets/settings-page-layout-D8g9PAek.js +0 -1
  380. package/dist/gateway/static/root/assets/setup-status-panel-Bks0CLLT.js +0 -1
  381. package/dist/gateway/static/root/assets/shares-settings-CEZsKm9r.js +0 -1
  382. package/dist/gateway/static/root/assets/skill-reload-api-oTkHbb9W.js +0 -1
  383. package/dist/gateway/static/root/assets/skills-page-DigsbZ6K.js +0 -2
  384. package/dist/gateway/static/root/assets/voice-api-key-field-CEJklEgb.js +0 -1
  385. package/dist/gateway/static/root/assets/work-item-detail-page-CD6FL_Rs.js +0 -1
  386. package/dist/gateway/static/root/assets/workflows-page-OLQiUpoW.js +0 -18
@@ -1,11 +1,14 @@
1
- import { buildSessionKey, init_session_key } from "../../../routing/session-key.js";
2
1
  import { getSqliteDatabase } from "../../../storage/sqlite/transaction.js";
3
- import { GoalService } from "../../../goals/goal-service.js";
4
- import "../../../goals/index.js";
5
2
  import { getSessionMetadata } from "../../../storage/sqlite/session-repository.js";
6
3
  import { loadTranscriptRowsForSession } from "../../../storage/sqlite/transcript-repository.js";
7
4
  import { listMemoryRecords, upsertMemoryRecord } from "../../../storage/sqlite/memory-records-repository.js";
8
5
  import "../../../storage/sqlite/index.js";
6
+ import { ActivityService } from "../../../activity/service.js";
7
+ import "../../../activity/index.js";
8
+ import { buildSessionKey, init_session_key } from "../../../routing/session-key.js";
9
+ import { resolveEffectiveAgentProfile } from "../../../config/agent-profile.js";
10
+ import { GoalService } from "../../../goals/goal-service.js";
11
+ import "../../../goals/index.js";
9
12
  import { ProjectWorkspaceConflictError, ProjectWorkspaceMissingError } from "../../../projects/workspace-project.js";
10
13
  import { isValidProjectAgentId, normalizeProjectAgentId, resolveProjectAgentId } from "../../../projects/project-agent.js";
11
14
  import { inferProjectKind } from "../../../projects/project-kind.js";
@@ -16,6 +19,7 @@ import { WORK_ITEM_ATTACHMENT_MAX_BYTES, WorkItemService } from "../../../work-i
16
19
  import { buildWorkItemAgentContext } from "../../../work-items/agent-context.js";
17
20
  import "../../../work-items/index.js";
18
21
  import { createGatewayRouteLogger } from "../lib/route-logger.js";
22
+ import { parseActivityIncludeRelated, parseActivityQuery } from "./activity.js";
19
23
  import * as path$1 from "node:path";
20
24
  import { readFile, readdir, realpath, stat, writeFile } from "node:fs/promises";
21
25
  //#region src/gateway/hono/routes/projects.ts
@@ -41,6 +45,23 @@ function optionalTextField(body, key) {
41
45
  const value = body[key];
42
46
  return typeof value === "string" ? value : null;
43
47
  }
48
+ function resolveEffectiveWorkspaceRoot(service, project) {
49
+ const fixedRoot = project.workspaceRoot?.trim();
50
+ if (fixedRoot) return fixedRoot;
51
+ const agentId = resolveProjectAgentId({
52
+ config: service.currentConfig,
53
+ projects: service.projects,
54
+ projectId: project.id
55
+ });
56
+ return resolveEffectiveAgentProfile(service.currentConfig, agentId).resolvedWorkspacePath;
57
+ }
58
+ function enrichProjectWorkspace(service, project) {
59
+ return {
60
+ ...project,
61
+ workspaceMode: project.workspaceRoot?.trim() ? "fixed" : "followAgent",
62
+ effectiveWorkspaceRoot: resolveEffectiveWorkspaceRoot(service, project)
63
+ };
64
+ }
44
65
  function finiteNumberField(value) {
45
66
  if (typeof value === "number" && Number.isFinite(value)) return value;
46
67
  if (typeof value === "string" && value.trim()) {
@@ -136,13 +157,14 @@ async function resolveProjectWorkspaceRoot(service, projectId) {
136
157
  status: 404,
137
158
  error: "Project not found"
138
159
  };
139
- if (!project.workspaceRoot?.trim()) return {
160
+ const workspaceRoot = resolveEffectiveWorkspaceRoot(service, project);
161
+ if (!workspaceRoot?.trim()) return {
140
162
  ok: false,
141
163
  status: 400,
142
164
  error: "Project workspace root is not set"
143
165
  };
144
166
  try {
145
- const root = await realpath(project.workspaceRoot);
167
+ const root = await realpath(workspaceRoot);
146
168
  if (!(await stat(root)).isDirectory()) return {
147
169
  ok: false,
148
170
  status: 400,
@@ -157,7 +179,7 @@ async function resolveProjectWorkspaceRoot(service, projectId) {
157
179
  log.warn({
158
180
  err,
159
181
  projectId: project.id,
160
- path: project.workspaceRoot
182
+ path: workspaceRoot
161
183
  }, "project workspace root unavailable");
162
184
  return {
163
185
  ok: false,
@@ -348,6 +370,7 @@ function projectDigestMemoryRecordId(projectId) {
348
370
  }
349
371
  function registerProjectsRoutes(authenticated, deps) {
350
372
  const { service } = deps;
373
+ const activity = new ActivityService();
351
374
  const goals = new GoalService();
352
375
  const workItems = new WorkItemService();
353
376
  authenticated.post("/api/projects", async (c) => {
@@ -384,7 +407,7 @@ function registerProjectsRoutes(authenticated, deps) {
384
407
  });
385
408
  return c.json({
386
409
  ok: true,
387
- project
410
+ project: enrichProjectWorkspace(service, project)
388
411
  }, 201);
389
412
  } catch (error) {
390
413
  if (error instanceof ProjectWorkspaceConflictError) return c.json({
@@ -417,7 +440,8 @@ function registerProjectsRoutes(authenticated, deps) {
417
440
  });
418
441
  return c.json({
419
442
  ok: true,
420
- ...result
443
+ ...result,
444
+ items: result.items.map((project) => enrichProjectWorkspace(service, project))
421
445
  });
422
446
  });
423
447
  authenticated.get("/api/projects/suggestions", async (c) => {
@@ -523,7 +547,7 @@ function registerProjectsRoutes(authenticated, deps) {
523
547
  return c.json({
524
548
  ok: true,
525
549
  overview: {
526
- project,
550
+ project: enrichProjectWorkspace(service, project),
527
551
  stats: {
528
552
  sessionCount: project.sessionCount,
529
553
  goalCount: project.goalCount,
@@ -547,6 +571,22 @@ function registerProjectsRoutes(authenticated, deps) {
547
571
  }
548
572
  });
549
573
  });
574
+ authenticated.get("/api/projects/:id/activity", (c) => {
575
+ const project = service.projects.get(c.req.param("id"));
576
+ if (!project) return c.json({
577
+ ok: false,
578
+ error: "Project not found"
579
+ }, 404);
580
+ const result = activity.listForProject({
581
+ projectId: project.id,
582
+ includeRelated: parseActivityIncludeRelated(c.req.query("includeRelated")),
583
+ ...parseActivityQuery(c)
584
+ });
585
+ return c.json({
586
+ ok: true,
587
+ ...result
588
+ });
589
+ });
550
590
  authenticated.get("/api/projects/:id/work-items", async (c) => {
551
591
  const project = service.projects.get(c.req.param("id"));
552
592
  if (!project) return c.json({
@@ -928,6 +968,15 @@ function registerProjectsRoutes(authenticated, deps) {
928
968
  ok: false,
929
969
  error: "Project not found"
930
970
  }, 404);
971
+ const attachments = await workItems.snapshotAttachmentsForGoal(item.id);
972
+ if (!attachments) return c.json({
973
+ ok: false,
974
+ error: "Work item not found"
975
+ }, 404);
976
+ const context = await buildWorkItemAgentContext(item, {
977
+ attachments,
978
+ includeImages: false
979
+ });
931
980
  const goal = goals.create({
932
981
  title: item.title,
933
982
  description: item.description || item.nextAction,
@@ -937,10 +986,11 @@ function registerProjectsRoutes(authenticated, deps) {
937
986
  source: "api",
938
987
  config: service.currentConfig
939
988
  });
940
- goals.setContextMessage({
989
+ const goalWithContext = goals.setContextMessage({
941
990
  goalId: goal.id,
942
- text: buildWorkItemAgentContext(item).text
943
- });
991
+ text: context.text,
992
+ attachments
993
+ }) ?? goal;
944
994
  workItems.addLink(item.id, {
945
995
  kind: "goal",
946
996
  targetId: goal.id,
@@ -950,7 +1000,7 @@ function registerProjectsRoutes(authenticated, deps) {
950
1000
  const updated = item.status === "todo" || item.status === "backlog" ? workItems.updateWorkItem(item.id, { status: "in_progress" }) : workItems.getWorkItem(item.id);
951
1001
  return c.json({
952
1002
  ok: true,
953
- goal,
1003
+ goal: goalWithContext,
954
1004
  item: updated
955
1005
  }, 201);
956
1006
  });
@@ -1036,6 +1086,34 @@ function registerProjectsRoutes(authenticated, deps) {
1036
1086
  goal: blocked ?? goals.get(goal.id)
1037
1087
  }, 201);
1038
1088
  });
1089
+ authenticated.post("/api/projects/:id/pin", async (c) => {
1090
+ try {
1091
+ const project = service.projects.pin(c.req.param("id"));
1092
+ return c.json({
1093
+ ok: true,
1094
+ project: enrichProjectWorkspace(service, project)
1095
+ });
1096
+ } catch (error) {
1097
+ return c.json({
1098
+ ok: false,
1099
+ error: error instanceof Error ? error.message : String(error)
1100
+ }, 404);
1101
+ }
1102
+ });
1103
+ authenticated.post("/api/projects/:id/unpin", async (c) => {
1104
+ try {
1105
+ const project = service.projects.unpin(c.req.param("id"));
1106
+ return c.json({
1107
+ ok: true,
1108
+ project: enrichProjectWorkspace(service, project)
1109
+ });
1110
+ } catch (error) {
1111
+ return c.json({
1112
+ ok: false,
1113
+ error: error instanceof Error ? error.message : String(error)
1114
+ }, 404);
1115
+ }
1116
+ });
1039
1117
  authenticated.get("/api/projects/:id", async (c) => {
1040
1118
  const project = service.projects.getWithDetails(c.req.param("id"));
1041
1119
  if (!project) return c.json({
@@ -1044,7 +1122,7 @@ function registerProjectsRoutes(authenticated, deps) {
1044
1122
  }, 404);
1045
1123
  return c.json({
1046
1124
  ok: true,
1047
- project
1125
+ project: enrichProjectWorkspace(service, project)
1048
1126
  });
1049
1127
  });
1050
1128
  authenticated.patch("/api/projects/:id", async (c) => {
@@ -1069,7 +1147,7 @@ function registerProjectsRoutes(authenticated, deps) {
1069
1147
  });
1070
1148
  return c.json({
1071
1149
  ok: true,
1072
- project
1150
+ project: enrichProjectWorkspace(service, project)
1073
1151
  });
1074
1152
  } catch (error) {
1075
1153
  if (error instanceof ProjectWorkspaceConflictError) return c.json({