@xopcai/xopc 0.0.170 → 0.0.172

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 (242) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-CkUp1qvf.js → activity-store-C3Y-bESI.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DDuem4HM.js → agent-avatar-dicebear-CPyev9P7.js} +1 -1
  5. package/dist/gateway/static/root/assets/agents-Bf_kK2Ay.js +2 -0
  6. package/dist/gateway/static/root/assets/{api-BnuPQhJW.js → api-B7qEr_Rw.js} +1 -1
  7. package/dist/gateway/static/root/assets/{app-management-settings-panel-DdZw8Hi1.js → app-management-settings-panel-Br_9-7fs.js} +1 -1
  8. package/dist/gateway/static/root/assets/{appearance-settings-BN8Vk2bX.js → appearance-settings-uyLcRPai.js} +1 -1
  9. package/dist/gateway/static/root/assets/apps-page-DXFCP5-1.js +1 -0
  10. package/dist/gateway/static/root/assets/{archive-plugin-C82MaDQj.js → archive-plugin-B19REnR5.js} +1 -1
  11. package/dist/gateway/static/root/assets/{attachment-load-uilrwSdW.js → attachment-load-DLWCC4Yi.js} +1 -1
  12. package/dist/gateway/static/root/assets/{automation-suggestion-card-CkDZjAmy.js → automation-suggestion-card-ky5S5lly.js} +1 -1
  13. package/dist/gateway/static/root/assets/automations-page-D8pT1o2O.js +6 -0
  14. package/dist/gateway/static/root/assets/{binary-plugins-B7NTL0_T.js → binary-plugins-CtPEzLlo.js} +1 -1
  15. package/dist/gateway/static/root/assets/{block-editor-D_LDNlB-.js → block-editor-CQVR4Xij.js} +32 -32
  16. package/dist/gateway/static/root/assets/browser-settings-page-Bav_skKN.js +8 -0
  17. package/dist/gateway/static/root/assets/{browser-workflow-inputs-UFVUzn4v.js → browser-workflow-inputs-CimCGbhq.js} +1 -1
  18. package/dist/gateway/static/root/assets/{browser-workflows-page-CGgC0N92.js → browser-workflows-page-DewuCw3p.js} +2 -2
  19. package/dist/gateway/static/root/assets/capabilities-settings-panel-BHaYYo9E.js +7 -0
  20. package/dist/gateway/static/root/assets/{capability-presets-api-DUIorGUd.js → capability-presets-api-B5RTs-Az.js} +1 -1
  21. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-PTz00nR4.js → capability-presets-settings-panel-BgchTh81.js} +1 -1
  22. package/dist/gateway/static/root/assets/{channel-recipient-api-BYwSB8c6.js → channel-recipient-api-Czu0YzIZ.js} +1 -1
  23. package/dist/gateway/static/root/assets/channels-settings-BP0e62wt.js +1 -0
  24. package/dist/gateway/static/root/assets/channels-status-swr-DBWKfeGe.js +1 -0
  25. package/dist/gateway/static/root/assets/connector-logo-Di3gnR_D.js +1 -0
  26. package/dist/gateway/static/root/assets/connectors-page-CC5kh0de.js +2 -0
  27. package/dist/gateway/static/root/assets/{desktop-pet-CkT98fPT.js → desktop-pet-D-ZUNHhn.js} +1 -1
  28. package/dist/gateway/static/root/assets/{desktop-pet-settings-DkbIzdA3.js → desktop-pet-settings-C3L6AI8_.js} +1 -1
  29. package/dist/gateway/static/root/assets/{directory-picker-path-field-dBQvj1sG.js → directory-picker-path-field-Dvq4iG6P.js} +1 -1
  30. package/dist/gateway/static/root/assets/dreaming-settings-D9i54kWO.js +3 -0
  31. package/dist/gateway/static/root/assets/{extension-debug-page-BfxoIiNo.js → extension-debug-page-BecQjU0J.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-page-EIJ3wIb7.js → extension-page-BeVkPSm-.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-settings-page-DBBec51N.js → extension-settings-page-DMoo2mKx.js} +1 -1
  34. package/dist/gateway/static/root/assets/{gateway-config-api-4_u53Ufq.js → gateway-config-api-Bthb3_6v.js} +1 -1
  35. package/dist/gateway/static/root/assets/{gateway-settings-v9kJM59H.js → gateway-settings-Bh8nPvJQ.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-CXITih5d.js → gateway-startup-retry-D3USVm9D.js} +1 -1
  37. package/dist/gateway/static/root/assets/goal-create-dialog-Dp0AyDHI.js +1 -0
  38. package/dist/gateway/static/root/assets/goal-detail-page-CNt7nrdS.js +4 -0
  39. package/dist/gateway/static/root/assets/{goals-config-api-D54YQPon.js → goals-config-api-C_2QWBtb.js} +1 -1
  40. package/dist/gateway/static/root/assets/goals-page-Bm_NZFiZ.js +2 -0
  41. package/dist/gateway/static/root/assets/{goals-settings-DDezXaVi.js → goals-settings-DhL643tc.js} +1 -1
  42. package/dist/gateway/static/root/assets/{heartbeat-settings-CRsIUeZN.js → heartbeat-settings-COVFwp7C.js} +1 -1
  43. package/dist/gateway/static/root/assets/{image-generation-api-CY6cQUHL.js → image-generation-api-BNQlnwpU.js} +1 -1
  44. package/dist/gateway/static/root/assets/index-C_XSKOH6.css +1 -0
  45. package/dist/gateway/static/root/assets/{index-Dfq2laZe.js → index-DUasAutC.js} +67 -67
  46. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D9k7EDdY.js → keyboard-shortcuts-settings-DfdJRJVy.js} +1 -1
  47. package/dist/gateway/static/root/assets/local-app-workbench-page-DZwkD1co.js +2 -0
  48. package/dist/gateway/static/root/assets/{local-apps-page-DbaiBolh.js → local-apps-page-BvCPOgoi.js} +1 -1
  49. package/dist/gateway/static/root/assets/{locale-store-Dqp9H2Uf.js → locale-store-BP0vD37A.js} +1 -1
  50. package/dist/gateway/static/root/assets/{logs-page-DoCY0Mm9.js → logs-page-dNL0Y1dA.js} +3 -3
  51. package/dist/gateway/static/root/assets/{markdown-split-BGlQR-Be.js → markdown-split-YO1rDk9m.js} +1 -1
  52. package/dist/gateway/static/root/assets/{media-plugins-BpaeV6f_.js → media-plugins-CU_RRf-q.js} +1 -1
  53. package/dist/gateway/static/root/assets/messages-BWtP5TFz.js +3 -0
  54. package/dist/gateway/static/root/assets/{notes-page-Cd2HpciM.js → notes-page-CeFiOK3S.js} +1 -1
  55. package/dist/gateway/static/root/assets/notes-workbench-B8MKxpZb.js +4 -0
  56. package/dist/gateway/static/root/assets/{page-tabs-DyimBUp_.js → page-tabs-tiHmRJUA.js} +1 -1
  57. package/dist/gateway/static/root/assets/{preview-open-alternatives-BKZulEYr.js → preview-open-alternatives-CU6XgaCz.js} +1 -1
  58. package/dist/gateway/static/root/assets/{product-open-page-Bjz9BxBY.js → product-open-page-Dn4_qor4.js} +1 -1
  59. package/dist/gateway/static/root/assets/project-detail-page-CWBuuX-S.js +1 -0
  60. package/dist/gateway/static/root/assets/projects-page-BJSsLsXH.js +1 -0
  61. package/dist/gateway/static/root/assets/remote-access-hub-DXJDb8vB.js +1 -0
  62. package/dist/gateway/static/root/assets/{save-bar-controls-BPTqb2_r.js → save-bar-controls-edDUIbXo.js} +1 -1
  63. package/dist/gateway/static/root/assets/{schedule-field-YN0D81Dk.js → schedule-field-DqJO_5Yb.js} +1 -1
  64. package/dist/gateway/static/root/assets/{schema-form-BmY5PSS2.js → schema-form-CMh0jzy5.js} +1 -1
  65. package/dist/gateway/static/root/assets/sessions-page-DeHpWgxM.js +1 -0
  66. package/dist/gateway/static/root/assets/settings-advanced-gate-Cf-TEYUd.js +1 -0
  67. package/dist/gateway/static/root/assets/{settings-form-section-B-RhgD_p.js → settings-form-section-Bb0Bc3nJ.js} +1 -1
  68. package/dist/gateway/static/root/assets/{settings-loading-skeleton-DkPupX2B.js → settings-loading-skeleton-DQhADvz1.js} +1 -1
  69. package/dist/gateway/static/root/assets/{settings-page-2QBMvaxj.js → settings-page-b0M5HukN.js} +1 -1
  70. package/dist/gateway/static/root/assets/{settings-page-layout-CtrW-LD6.js → settings-page-layout-hvjtIjvh.js} +1 -1
  71. package/dist/gateway/static/root/assets/setup-status-panel-BFyfed_g.js +1 -0
  72. package/dist/gateway/static/root/assets/{share-preview-page-BezIW1n9.js → share-preview-page-rbeaOpTg.js} +1 -1
  73. package/dist/gateway/static/root/assets/shares-settings-CYnH9sTt.js +1 -0
  74. package/dist/gateway/static/root/assets/skill-reload-api-Cr8_m-jS.js +1 -0
  75. package/dist/gateway/static/root/assets/skills-page-Chtc1xDO.js +2 -0
  76. package/dist/gateway/static/root/assets/{system-settings-panel-WAFhKyAu.js → system-settings-panel-BHo_hgnL.js} +1 -1
  77. package/dist/gateway/static/root/assets/{theme-store-BiC0gIBa.js → theme-store-C3KnnjcU.js} +1 -1
  78. package/dist/gateway/static/root/assets/time-picker-D-G-uwVJ.js +1 -0
  79. package/dist/gateway/static/root/assets/{typed-models-lib-WAQO3F_8.js → typed-models-lib-DtRnG-YI.js} +1 -1
  80. package/dist/gateway/static/root/assets/{use-channel-catalog-CKlfsSeU.js → use-channel-catalog-CWWItX2g.js} +1 -1
  81. package/dist/gateway/static/root/assets/user-context-page-D7qMR26X.js +1 -0
  82. package/dist/gateway/static/root/assets/{voice-api-key-field-BAFHF0_v.js → voice-api-key-field-BTnltQHZ.js} +1 -1
  83. package/dist/gateway/static/root/assets/work-discovery-page-CpqFZze9.js +1 -0
  84. package/dist/gateway/static/root/assets/work-item-detail-page-t4dXpGC0.js +1 -0
  85. package/dist/gateway/static/root/assets/work-page-BXwDKiMZ.js +1 -0
  86. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-1OP4HyvS.js → workflow-run-setup-panel-D7vKChFZ.js} +2 -2
  87. package/dist/gateway/static/root/assets/workflows-page-Bos9HyqT.js +11 -0
  88. package/dist/gateway/static/root/index.html +7 -7
  89. package/dist/package.js +1 -1
  90. package/dist/src/agent/embedded/run-for-session.js +71 -24
  91. package/dist/src/agent/embedded/run-turn.js +68 -4
  92. package/dist/src/agent/inbound/inbound-loop.d.ts +0 -2
  93. package/dist/src/agent/inbound/inbound-loop.js +0 -2
  94. package/dist/src/agent/memory/builtin-provider.js +4 -4
  95. package/dist/src/agent/memory/compaction-planner.d.ts +16 -0
  96. package/dist/src/agent/memory/compaction-planner.js +152 -0
  97. package/dist/src/agent/memory/compaction-policy.d.ts +10 -0
  98. package/dist/src/agent/memory/compaction-policy.js +24 -0
  99. package/dist/src/agent/memory/compaction.d.ts +21 -22
  100. package/dist/src/agent/memory/compaction.js +220 -194
  101. package/dist/src/agent/memory/context-budget.d.ts +40 -0
  102. package/dist/src/agent/memory/context-budget.js +106 -0
  103. package/dist/src/agent/memory/manager.d.ts +4 -1
  104. package/dist/src/agent/memory/manager.js +8 -3
  105. package/dist/src/agent/memory/understanding/service.d.ts +2 -0
  106. package/dist/src/agent/memory/understanding/service.js +11 -9
  107. package/dist/src/agent/orchestration/context-overflow.d.ts +1 -0
  108. package/dist/src/agent/orchestration/context-overflow.js +19 -0
  109. package/dist/src/agent/orchestration/loop-guard.js +13 -9
  110. package/dist/src/agent/reply/post-compaction-context.d.ts +4 -0
  111. package/dist/src/agent/reply/post-compaction-context.js +5 -3
  112. package/dist/src/agent/service/process-direct-one-shot.js +1 -2
  113. package/dist/src/agent/service/process-direct-streaming.js +1 -2
  114. package/dist/src/agent/service.d.ts +1 -2
  115. package/dist/src/agent/service.js +16 -44
  116. package/dist/src/agent/session/session-inspector.js +10 -2
  117. package/dist/src/automations/domain/validation.d.ts +8 -8
  118. package/dist/src/automations/draft/automation-draft-validator.d.ts +1 -1
  119. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  120. package/dist/src/config/schema.d.ts +17 -1
  121. package/dist/src/connectors/composio-sessions.d.ts +1 -0
  122. package/dist/src/connectors/composio-sessions.js +14 -5
  123. package/dist/src/connectors/composio-triggers.d.ts +1 -1
  124. package/dist/src/connectors/composio-triggers.js +4 -3
  125. package/dist/src/connectors/composio.js +1 -0
  126. package/dist/src/connectors/{connector-memory-sync.d.ts → connected-source-ingestion.d.ts} +11 -4
  127. package/dist/src/connectors/{connector-memory-sync.js → connected-source-ingestion.js} +49 -101
  128. package/dist/src/connectors/connected-source-normalizers.d.ts +15 -0
  129. package/dist/src/connectors/connected-source-normalizers.js +186 -0
  130. package/dist/src/connectors/connector-identity.d.ts +2 -0
  131. package/dist/src/connectors/connector-identity.js +29 -0
  132. package/dist/src/connectors/learning-coordinator.d.ts +25 -0
  133. package/dist/src/connectors/learning-coordinator.js +214 -0
  134. package/dist/src/connectors/learning-recipes.d.ts +22 -0
  135. package/dist/src/connectors/learning-recipes.js +121 -0
  136. package/dist/src/connectors/runtime-status.d.ts +1 -8
  137. package/dist/src/connectors/runtime-status.js +4 -29
  138. package/dist/src/gateway/hono/lib/config-payload.d.ts +23 -0
  139. package/dist/src/gateway/hono/lib/config-payload.js +3 -0
  140. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  141. package/dist/src/gateway/hono/routes/config-patch/misc.js +28 -0
  142. package/dist/src/gateway/hono/routes/connectors.js +76 -118
  143. package/dist/src/gateway/hono/routes/models.js +24 -0
  144. package/dist/src/gateway/hono/routes/public-gateway.js +3 -2
  145. package/dist/src/gateway/hono/routes/sessions.js +17 -42
  146. package/dist/src/gateway/hono/routes/you.js +86 -5
  147. package/dist/src/gateway/service/sessions-api.d.ts +2 -3
  148. package/dist/src/gateway/service/sessions-api.js +4 -7
  149. package/dist/src/gateway/service.d.ts +5 -2
  150. package/dist/src/gateway/service.js +16 -11
  151. package/dist/src/knowledge/connected-understanding-pipeline.d.ts +19 -0
  152. package/dist/src/knowledge/connected-understanding-pipeline.js +268 -0
  153. package/dist/src/knowledge/index.d.ts +1 -0
  154. package/dist/src/knowledge/index.js +2 -1
  155. package/dist/src/knowledge/ingestion-service.d.ts +6 -4
  156. package/dist/src/knowledge/ingestion-service.js +13 -10
  157. package/dist/src/knowledge/local-folder-adapter.js +1 -0
  158. package/dist/src/knowledge/people-graph.js +43 -110
  159. package/dist/src/knowledge/types.d.ts +3 -0
  160. package/dist/src/providers/xopc-cloud-account-service.d.ts +40 -0
  161. package/dist/src/providers/xopc-cloud-account-service.js +65 -0
  162. package/dist/src/session/index.d.ts +1 -2
  163. package/dist/src/session/index.js +1 -2
  164. package/dist/src/session/init-session-turn.d.ts +0 -1
  165. package/dist/src/session/init-session-turn.js +1 -2
  166. package/dist/src/session/manager.d.ts +11 -17
  167. package/dist/src/session/manager.js +11 -14
  168. package/dist/src/session/session-context-for-llm.d.ts +19 -1
  169. package/dist/src/session/session-context-for-llm.js +87 -129
  170. package/dist/src/session/store.d.ts +28 -23
  171. package/dist/src/session/store.js +94 -83
  172. package/dist/src/session/transcript-format.d.ts +2 -8
  173. package/dist/src/session/types.d.ts +8 -6
  174. package/dist/src/session/user-round-delete.d.ts +3 -6
  175. package/dist/src/session/user-round-delete.js +12 -16
  176. package/dist/src/storage/sqlite/connector-learning-repository.d.ts +47 -0
  177. package/dist/src/storage/sqlite/connector-learning-repository.js +110 -0
  178. package/dist/src/storage/sqlite/index.d.ts +4 -2
  179. package/dist/src/storage/sqlite/index.js +5 -3
  180. package/dist/src/storage/sqlite/knowledge-repository.d.ts +4 -2
  181. package/dist/src/storage/sqlite/knowledge-repository.js +24 -13
  182. package/dist/src/storage/sqlite/migrations/060_remove_runtime_transcript_messages.sql +45 -0
  183. package/dist/src/storage/sqlite/migrations/061_drop_compaction_checkpoints.sql +2 -0
  184. package/dist/src/storage/sqlite/migrations/062_connector_learning_jobs.sql +27 -0
  185. package/dist/src/storage/sqlite/migrations/063_knowledge_collection_scopes.sql +14 -0
  186. package/dist/src/storage/sqlite/migrations/064_user_claims.sql +60 -0
  187. package/dist/src/storage/sqlite/migrations/065_knowledge_item_scope_identity.sql +116 -0
  188. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  189. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  190. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  191. package/dist/src/storage/sqlite/schema.js +1 -1
  192. package/dist/src/storage/sqlite/schema.sql +0 -19
  193. package/dist/src/storage/sqlite/transcript-repository.d.ts +6 -11
  194. package/dist/src/storage/sqlite/transcript-repository.js +90 -84
  195. package/dist/src/storage/sqlite/user-claims-repository.d.ts +101 -0
  196. package/dist/src/storage/sqlite/user-claims-repository.js +241 -0
  197. package/dist/src/user-context/config.d.ts +67 -2
  198. package/dist/src/user-context/config.js +36 -3
  199. package/dist/src/user-context/projection.d.ts +36 -1
  200. package/dist/src/user-context/projection.js +84 -6
  201. package/dist/src/work-discovery/service.js +1 -0
  202. package/package.json +1 -1
  203. package/dist/gateway/static/root/assets/agents-BiaQhiQp.js +0 -2
  204. package/dist/gateway/static/root/assets/apps-page-CuL8Q4yF.js +0 -1
  205. package/dist/gateway/static/root/assets/automations-page-TZOluRNp.js +0 -6
  206. package/dist/gateway/static/root/assets/browser-settings-page-C-l6O68Z.js +0 -8
  207. package/dist/gateway/static/root/assets/capabilities-settings-panel-BW8c0xPp.js +0 -7
  208. package/dist/gateway/static/root/assets/channels-settings-h9CsE0GT.js +0 -1
  209. package/dist/gateway/static/root/assets/channels-status-swr-C058Mcfr.js +0 -1
  210. package/dist/gateway/static/root/assets/connector-logo-CsbegNqi.js +0 -1
  211. package/dist/gateway/static/root/assets/connectors-page-BWALafGW.js +0 -2
  212. package/dist/gateway/static/root/assets/dreaming-settings-DkdnKMZx.js +0 -3
  213. package/dist/gateway/static/root/assets/goal-create-dialog-y2Y3p7_k.js +0 -1
  214. package/dist/gateway/static/root/assets/goal-detail-page-DuzL-alv.js +0 -4
  215. package/dist/gateway/static/root/assets/goals-page-OeLtfKI2.js +0 -2
  216. package/dist/gateway/static/root/assets/index-o4uaOGKT.css +0 -1
  217. package/dist/gateway/static/root/assets/local-app-workbench-page-3ssYIEK6.js +0 -2
  218. package/dist/gateway/static/root/assets/messages-KEk-hTFt.js +0 -3
  219. package/dist/gateway/static/root/assets/notes-workbench-CatZNAPc.js +0 -4
  220. package/dist/gateway/static/root/assets/project-detail-page-DJUOgqm4.js +0 -1
  221. package/dist/gateway/static/root/assets/projects-page-BQQAD_nu.js +0 -1
  222. package/dist/gateway/static/root/assets/remote-access-hub-fIGXTTnA.js +0 -1
  223. package/dist/gateway/static/root/assets/sessions-page-BuU-8FCe.js +0 -1
  224. package/dist/gateway/static/root/assets/settings-advanced-gate-DlKoeZm3.js +0 -1
  225. package/dist/gateway/static/root/assets/setup-status-panel-BSUcDFnb.js +0 -1
  226. package/dist/gateway/static/root/assets/shares-settings-Bk2-SwGJ.js +0 -1
  227. package/dist/gateway/static/root/assets/skill-reload-api-e_Fx1kVC.js +0 -1
  228. package/dist/gateway/static/root/assets/skills-page-D_cCADfj.js +0 -2
  229. package/dist/gateway/static/root/assets/time-picker-fqRXpNJV.js +0 -1
  230. package/dist/gateway/static/root/assets/user-context-page-9Ov4htPW.js +0 -1
  231. package/dist/gateway/static/root/assets/work-discovery-page-DGN2FxWv.js +0 -1
  232. package/dist/gateway/static/root/assets/work-item-detail-page-HmyWSgUo.js +0 -1
  233. package/dist/gateway/static/root/assets/work-page-D3iKVjFq.js +0 -1
  234. package/dist/gateway/static/root/assets/workflows-page-B5L4SFw4.js +0 -11
  235. package/dist/src/agent/lifecycle/handlers/compaction.d.ts +0 -13
  236. package/dist/src/agent/lifecycle/handlers/compaction.js +0 -18
  237. package/dist/src/connectors/memory-sync-coordinator.d.ts +0 -28
  238. package/dist/src/connectors/memory-sync-coordinator.js +0 -162
  239. package/dist/src/connectors/memory-sync-profile.d.ts +0 -13
  240. package/dist/src/connectors/memory-sync-profile.js +0 -73
  241. package/dist/src/session/compaction-checkpoints.d.ts +0 -8
  242. package/dist/src/session/compaction-checkpoints.js +0 -19
@@ -1,13 +0,0 @@
1
- import type { AgentContext } from '../../service.types.js';
2
- import type { LifecycleHandler, LifecycleEventData, LLMResponsePayload } from '../types.js';
3
- export interface CompactionHandlerConfig {
4
- minMessages: number;
5
- maxTokens: number;
6
- preserveReasoning: boolean;
7
- accumulateUsage: boolean;
8
- }
9
- export declare class CompactionLifecycleHandler implements LifecycleHandler<LLMResponsePayload> {
10
- readonly name = "CompactionLifecycleHandler";
11
- constructor(_config?: Partial<CompactionHandlerConfig>);
12
- handle(event: LifecycleEventData<LLMResponsePayload>, _context: AgentContext): Promise<void>;
13
- }
@@ -1,18 +0,0 @@
1
- import { createLogger } from "../../../utils/logger/index.js";
2
- import { init_logger } from "../../../utils/logger.js";
3
- //#region src/agent/lifecycle/handlers/compaction.ts
4
- init_logger();
5
- const logger = createLogger("Agent:LifecycleCompaction");
6
- var CompactionLifecycleHandler = class {
7
- name = "CompactionLifecycleHandler";
8
- constructor(_config) {}
9
- async handle(event, _context) {
10
- const { sessionKey } = event;
11
- logger.debug({
12
- sessionKey,
13
- messageCount: event.payload?.usage?.total
14
- }, "Compaction lifecycle event received");
15
- }
16
- };
17
- //#endregion
18
- export { CompactionLifecycleHandler };
@@ -1,28 +0,0 @@
1
- import type { Config } from '../config/schema.js';
2
- import { syncComposioResultToMemory, syncLocalFolderToMemory } from './connector-memory-sync.js';
3
- export type ConnectorMemorySyncCoordinator = {
4
- runNow(options?: {
5
- toolkit?: string;
6
- force?: boolean;
7
- }): Promise<void>;
8
- stop(): void;
9
- };
10
- export declare function syncDueMemorySources(options: {
11
- config: Config;
12
- agentId: string;
13
- nowMs?: number;
14
- toolkit?: string;
15
- force?: boolean;
16
- syncLocalSource?: typeof syncLocalFolderToMemory;
17
- syncComposioSource?: typeof syncComposioResultToMemory;
18
- }): Promise<{
19
- eligible: number;
20
- synced: number;
21
- failed: number;
22
- }>;
23
- export declare function startConnectorMemorySyncCoordinator(options: {
24
- getConfig: () => Config;
25
- resolveAgentId: () => string;
26
- intervalMs?: number;
27
- initialDelayMs?: number;
28
- }): ConnectorMemorySyncCoordinator;
@@ -1,162 +0,0 @@
1
- import { createLogger } from "../utils/logger/index.js";
2
- import { init_logger } from "../utils/logger.js";
3
- import { listKnowledgeSyncRuns } from "../storage/sqlite/knowledge-repository.js";
4
- import { listConnectorConnections } from "../storage/sqlite/connector-repository.js";
5
- import "../storage/sqlite/index.js";
6
- import { getConnectorDefinition } from "./catalog.js";
7
- import { listConnectorInstances } from "./instances.js";
8
- import { syncComposioResultToMemory, syncLocalFolderToMemory } from "./connector-memory-sync.js";
9
- import { getComposioMemorySyncProfile } from "./memory-sync-profile.js";
10
- //#region src/connectors/memory-sync-coordinator.ts
11
- init_logger();
12
- const log = createLogger("ConnectorMemorySync");
13
- const DEFAULT_SYNC_INTERVAL_MINUTES = 15;
14
- async function syncDueMemorySources(options) {
15
- const nowMs = options.nowMs ?? Date.now();
16
- const syncLocalSource = options.syncLocalSource ?? syncLocalFolderToMemory;
17
- const syncComposioSource = options.syncComposioSource ?? syncComposioResultToMemory;
18
- let eligible = 0;
19
- let synced = 0;
20
- let failed = 0;
21
- for (const instance of listConnectorInstances(options.config)) {
22
- if (!instance.enabled) continue;
23
- const definition = getConnectorDefinition(instance.connectorId);
24
- if (definition?.runtime.type === "memorySource" && definition.runtime.sourceKind === "local-folder") {
25
- if (options.toolkit || instance.config?.autoSync === false) continue;
26
- eligible += 1;
27
- const configuredMinutes = Number(instance.config?.syncIntervalMinutes ?? DEFAULT_SYNC_INTERVAL_MINUTES);
28
- const intervalMinutes = Number.isFinite(configuredMinutes) ? Math.max(5, Math.min(configuredMinutes, 1440)) : DEFAULT_SYNC_INTERVAL_MINUTES;
29
- const sourceInstanceId = `local-folder:${definition.id}`;
30
- const latestRun = listKnowledgeSyncRuns({
31
- sourceInstanceId,
32
- limit: 1
33
- })[0];
34
- if (!options.force && latestRun && nowMs - Date.parse(latestRun.startedAt) < intervalMinutes * 6e4) continue;
35
- try {
36
- await syncLocalSource({
37
- config: options.config,
38
- connectorId: definition.id,
39
- agentId: options.agentId
40
- });
41
- synced += 1;
42
- } catch (err) {
43
- failed += 1;
44
- const errorMessage = err instanceof Error ? err.message : String(err);
45
- log.warn({
46
- err,
47
- connectorId: definition.id,
48
- sourceInstanceId
49
- }, `Automatic connector memory sync failed: ${errorMessage}`);
50
- }
51
- continue;
52
- }
53
- if (definition?.runtime.type !== "composio" || definition.runtime.role !== "toolkit") continue;
54
- if (options.toolkit && definition.runtime.toolkit !== options.toolkit) continue;
55
- const profile = getComposioMemorySyncProfile(options.config, definition.id);
56
- if (!profile?.enabled || options.force && options.toolkit && !profile.triggerSync) continue;
57
- eligible += 1;
58
- const activeConnections = listConnectorConnections({ connectorId: definition.id }).filter((candidate) => candidate.status === "active");
59
- const connection = profile.connectionId ? activeConnections.find((candidate) => candidate.id === profile.connectionId) : activeConnections.find((candidate) => candidate.isDefault) ?? activeConnections[0];
60
- if (!connection) continue;
61
- const sourceInstanceId = `composio:${definition.id}:${connection.id}`;
62
- const latestRun = listKnowledgeSyncRuns({
63
- sourceInstanceId,
64
- limit: 1
65
- })[0];
66
- if (!options.force && latestRun && nowMs - Date.parse(latestRun.startedAt) < profile.intervalMinutes * 6e4) continue;
67
- try {
68
- await syncComposioSource({
69
- config: options.config,
70
- connectorId: definition.id,
71
- actionId: profile.actionId,
72
- arguments: profile.arguments,
73
- agentId: profile.agentId,
74
- connectionId: connection.id
75
- });
76
- synced += 1;
77
- } catch (err) {
78
- failed += 1;
79
- const errorMessage = err instanceof Error ? err.message : String(err);
80
- log.warn({
81
- err,
82
- connectorId: definition.id,
83
- sourceInstanceId
84
- }, `Automatic Composio memory sync failed: ${errorMessage}`);
85
- }
86
- }
87
- return {
88
- eligible,
89
- synced,
90
- failed
91
- };
92
- }
93
- function startConnectorMemorySyncCoordinator(options) {
94
- const intervalMs = Math.max(1e4, Math.min(options.intervalMs ?? 6e4, 30 * 6e4));
95
- let timer = null;
96
- let running = false;
97
- let stopped = false;
98
- let pendingAll = false;
99
- let pendingForce = false;
100
- const pendingToolkits = /* @__PURE__ */ new Set();
101
- async function runNow(runOptions) {
102
- if (stopped) return;
103
- if (running) {
104
- if (runOptions?.toolkit) pendingToolkits.add(runOptions.toolkit);
105
- else pendingAll = true;
106
- pendingForce ||= runOptions?.force === true;
107
- return;
108
- }
109
- running = true;
110
- try {
111
- const result = await syncDueMemorySources({
112
- config: options.getConfig(),
113
- agentId: options.resolveAgentId(),
114
- toolkit: runOptions?.toolkit,
115
- force: runOptions?.force
116
- });
117
- if (result.synced > 0 || result.failed > 0) log.info(result, "Automatic connector memory sync cycle completed");
118
- } catch (err) {
119
- const errorMessage = err instanceof Error ? err.message : String(err);
120
- log.warn({ err }, `Automatic connector memory sync cycle failed: ${errorMessage}`);
121
- } finally {
122
- running = false;
123
- if (!stopped && (pendingAll || pendingToolkits.size > 0)) {
124
- const runAll = pendingAll;
125
- const force = pendingForce;
126
- const toolkits = [...pendingToolkits];
127
- pendingAll = false;
128
- pendingForce = false;
129
- pendingToolkits.clear();
130
- queueMicrotask(() => {
131
- if (runAll) runNow({ force });
132
- else toolkits.reduce(async (previous, toolkit) => {
133
- await previous;
134
- await runNow({
135
- toolkit,
136
- force
137
- });
138
- }, Promise.resolve());
139
- });
140
- }
141
- }
142
- }
143
- timer = setTimeout(() => {
144
- runNow();
145
- timer = setInterval(() => void runNow(), intervalMs);
146
- timer.unref?.();
147
- }, Math.max(0, options.initialDelayMs ?? 1e4));
148
- timer.unref?.();
149
- return {
150
- runNow,
151
- stop() {
152
- stopped = true;
153
- if (timer) {
154
- clearTimeout(timer);
155
- clearInterval(timer);
156
- timer = null;
157
- }
158
- }
159
- };
160
- }
161
- //#endregion
162
- export { startConnectorMemorySyncCoordinator, syncDueMemorySources };
@@ -1,13 +0,0 @@
1
- import type { Config } from '../config/schema.js';
2
- export type ComposioMemorySyncProfile = {
3
- enabled: boolean;
4
- actionId: string;
5
- arguments: Record<string, unknown>;
6
- agentId: string;
7
- connectionId?: string;
8
- intervalMinutes: number;
9
- triggerSync: boolean;
10
- updatedAt: string;
11
- };
12
- export declare function getComposioMemorySyncProfile(config: Config, connectorId: string): ComposioMemorySyncProfile | undefined;
13
- export declare function updateComposioMemorySyncProfile(config: Config, connectorId: string, input: Omit<ComposioMemorySyncProfile, 'updatedAt'>): ComposioMemorySyncProfile;
@@ -1,73 +0,0 @@
1
- import { scopeForComposioAction } from "./composio.js";
2
- import { getConnectorDefinition } from "./catalog.js";
3
- import { COMPOSIO_MEMORY_SOURCE_TOOLKITS } from "./connector-memory-sync.js";
4
- //#region src/connectors/memory-sync-profile.ts
5
- const SENSITIVE_ARGUMENT_KEY = /(?:api[-_]?key|authorization|cookie|password|secret|token)/i;
6
- function asRecord(value) {
7
- return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
8
- }
9
- function assertNoPersistedSecrets(value, depth = 0) {
10
- if (depth > 12) throw new Error("Memory sync arguments are nested too deeply.");
11
- if (Array.isArray(value)) {
12
- for (const item of value) assertNoPersistedSecrets(item, depth + 1);
13
- return;
14
- }
15
- const record = asRecord(value);
16
- if (!record) return;
17
- for (const [key, nested] of Object.entries(record)) {
18
- if (SENSITIVE_ARGUMENT_KEY.test(key)) throw new Error(`Memory sync arguments cannot persist sensitive field "${key}".`);
19
- assertNoPersistedSecrets(nested, depth + 1);
20
- }
21
- }
22
- function markerFor(config, connectorId) {
23
- return asRecord(config.connectors?.instances?.[connectorId]?.xopcConnector);
24
- }
25
- function getComposioMemorySyncProfile(config, connectorId) {
26
- const raw = asRecord(asRecord(markerFor(config, connectorId)?.config)?.memorySync);
27
- if (!raw) return void 0;
28
- const actionId = typeof raw.actionId === "string" ? raw.actionId.trim() : "";
29
- const agentId = typeof raw.agentId === "string" ? raw.agentId.trim() : "";
30
- if (!actionId || !agentId) return void 0;
31
- const interval = Number(raw.intervalMinutes);
32
- return {
33
- enabled: raw.enabled === true,
34
- actionId,
35
- arguments: asRecord(raw.arguments) ?? {},
36
- agentId,
37
- connectionId: typeof raw.connectionId === "string" && raw.connectionId.trim() ? raw.connectionId.trim() : void 0,
38
- intervalMinutes: Number.isFinite(interval) ? Math.max(5, Math.min(interval, 1440)) : 15,
39
- triggerSync: raw.triggerSync !== false,
40
- updatedAt: typeof raw.updatedAt === "string" ? raw.updatedAt : (/* @__PURE__ */ new Date(0)).toISOString()
41
- };
42
- }
43
- function updateComposioMemorySyncProfile(config, connectorId, input) {
44
- const definition = getConnectorDefinition(connectorId);
45
- if (definition?.runtime.type !== "composio" || definition.runtime.role !== "toolkit") throw new Error("Memory sync profiles require an installed Composio toolkit connector.");
46
- const toolkit = definition.runtime.toolkit;
47
- if (!COMPOSIO_MEMORY_SOURCE_TOOLKITS.has(toolkit)) throw new Error(`Memory sync is not supported for the ${toolkit} connector.`);
48
- const marker = markerFor(config, connectorId);
49
- if (!marker || marker.managed !== true || marker.enabled === false) throw new Error(`Connector is not installed and enabled: ${connectorId}`);
50
- const actionId = input.actionId.trim();
51
- const agentId = input.agentId.trim();
52
- const risk = scopeForComposioAction(actionId);
53
- if (!actionId || risk.toolkit !== toolkit || risk.scope !== "read" || !risk.curated) throw new Error("Memory sync profiles require a curated read-only action from the same toolkit.");
54
- if (!agentId) throw new Error("Memory sync profile requires an agentId.");
55
- assertNoPersistedSecrets(input.arguments);
56
- const profile = {
57
- enabled: input.enabled,
58
- actionId,
59
- arguments: structuredClone(input.arguments),
60
- agentId,
61
- connectionId: input.connectionId?.trim() || void 0,
62
- intervalMinutes: Math.max(5, Math.min(Number(input.intervalMinutes) || 15, 1440)),
63
- triggerSync: input.triggerSync,
64
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
65
- };
66
- marker.config = {
67
- ...asRecord(marker.config) ?? {},
68
- memorySync: profile
69
- };
70
- return profile;
71
- }
72
- //#endregion
73
- export { getComposioMemorySyncProfile, updateComposioMemorySyncProfile };
@@ -1,8 +0,0 @@
1
- /**
2
- * Pre-compaction transcript snapshots ({safeKey}.compaction-backup.{uuid}.json).
3
- * OpenClaw-style listing and id normalization for gateway APIs.
4
- */
5
- /**
6
- * Accept raw uuid or full backup filename stem; returns lowercase uuid or null.
7
- */
8
- export declare function normalizeCompactionCheckpointId(raw: string): string | null;
@@ -1,19 +0,0 @@
1
- //#region src/session/compaction-checkpoints.ts
2
- /**
3
- * Pre-compaction transcript snapshots ({safeKey}.compaction-backup.{uuid}.json).
4
- * OpenClaw-style listing and id normalization for gateway APIs.
5
- */
6
- const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
7
- /**
8
- * Accept raw uuid or full backup filename stem; returns lowercase uuid or null.
9
- */
10
- function normalizeCompactionCheckpointId(raw) {
11
- const t = raw.trim();
12
- if (!t) return null;
13
- if (UUID_RE.test(t)) return t.toLowerCase();
14
- const m = t.match(/\.compaction-backup\.([0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})\.json$/i);
15
- if (m?.[1] && UUID_RE.test(m[1])) return m[1].toLowerCase();
16
- return null;
17
- }
18
- //#endregion
19
- export { normalizeCompactionCheckpointId };