forge-openclaw-plugin 0.3.15 → 0.3.17

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 (415) hide show
  1. package/README.md +6 -6
  2. package/dist/assets/{action-bar-B9MYlps2.js → action-bar-D3CEYlj4.js} +1 -1
  3. package/dist/assets/{activity-page-DbzbChcE.js → activity-page-Ce1pHIu5.js} +1 -1
  4. package/dist/assets/{ai-surface-workspace-CF0257Hs.js → ai-surface-workspace-DEliwOjF.js} +1 -1
  5. package/dist/assets/artifacts-page-BgyFVIVM.js +2 -0
  6. package/dist/assets/{atlas-panel-CO3RYAKn.js → atlas-panel-VZOnJa1c.js} +1 -1
  7. package/dist/assets/{board-CuxQRKPJ.js → board-DprRipIG.js} +1 -1
  8. package/dist/assets/{calendar-page-BuuHKEHC.js → calendar-page-Zstsn4uG.js} +1 -1
  9. package/dist/assets/{calendar-rules-DKftgNx5.js → calendar-rules-BGIBuEDk.js} +1 -1
  10. package/dist/assets/{calendar-week-toolbar-ChIpkT-G.js → calendar-week-toolbar-DXFkMkbq.js} +1 -1
  11. package/dist/assets/{charts-BzT4pUPg.js → charts-C5S0-BL7.js} +1 -1
  12. package/dist/assets/{companion-sync-lab-page-BZRX4Btw.js → companion-sync-lab-page-DIPPLFKt.js} +1 -1
  13. package/dist/assets/{daily-metrics-dashboard-CXDsaAQd.js → daily-metrics-dashboard-CG-OOCJz.js} +1 -1
  14. package/dist/assets/{define-workbench-box-CpG0Zb1L.js → define-workbench-box-BEEdtBkQ.js} +1 -1
  15. package/dist/assets/{entity-link-multiselect-Dl4rZqdg.js → entity-link-multiselect-BfDAROHB.js} +1 -1
  16. package/dist/assets/{entity-note-count-link-Bs1aKYyD.js → entity-note-count-link-BGOiaash.js} +1 -1
  17. package/dist/assets/{entity-notes-surface-B56XSw7M.js → entity-notes-surface-DPsJwqQa.js} +1 -1
  18. package/dist/assets/execution-board-Dg-2GSKv.js +1 -0
  19. package/dist/assets/{faceted-token-search-Dg2rjknH.js → faceted-token-search-DV7MSVYb.js} +1 -1
  20. package/dist/assets/{flagship-signal-deck-C6KVPhmM.js → flagship-signal-deck-D3wVL3bC.js} +1 -1
  21. package/dist/assets/{floating-action-menu-DAFAEBcA.js → floating-action-menu-BUs382px.js} +1 -1
  22. package/dist/assets/{forms-D1qJ3oOP.js → forms-ByKjodjN.js} +1 -1
  23. package/dist/assets/{generic-node-view-C6DK5hJ6.js → generic-node-view-BY5dbPXJ.js} +1 -1
  24. package/dist/assets/{goal-detail-page-CC4VXud6.js → goal-detail-page-MYr6j2B4.js} +1 -1
  25. package/dist/assets/{goal-dialog-15hD8EBp.js → goal-dialog-nkdME5Uy.js} +1 -1
  26. package/dist/assets/goals-page-BsFeBzU1.js +1 -0
  27. package/dist/assets/{graph-BF4IsheG.js → graph-CHVj0Z7n.js} +1 -1
  28. package/dist/assets/habits-page-wO461EVU.js +1 -0
  29. package/dist/assets/{health-boxes-DqgvIYoL.js → health-boxes-BphMeSJj.js} +1 -1
  30. package/dist/assets/index-CSd8ylsy.css +1 -0
  31. package/dist/assets/index-gmPaoLN-.js +2 -0
  32. package/dist/assets/{inline-note-fields-COgzxr_7.js → inline-note-fields-BvQwmMAv.js} +1 -1
  33. package/dist/assets/{insight-flow-dialog-Dmb6NSGp.js → insight-flow-dialog-H_eaOmst.js} +1 -1
  34. package/dist/assets/{insights-page-OnqR4cYI.js → insights-page-DINYe3cB.js} +3 -3
  35. package/dist/assets/{kanban-boxes-BWUzntCV.js → kanban-boxes-oACOTDYG.js} +1 -1
  36. package/dist/assets/{kanban-page-BI16Gzp_.js → kanban-page-BGLXH91f.js} +1 -1
  37. package/dist/assets/knowledge-graph-page-VfMvw5jL.js +1 -0
  38. package/dist/assets/{life-force-page-CDEXEQai.js → life-force-page-DQPb6UL-.js} +1 -1
  39. package/dist/assets/{life-force-workspace-C7UOnJEf.js → life-force-workspace-BJ1aI3JE.js} +1 -1
  40. package/dist/assets/{maps-BTVHALP8.js → maps-CvEHVkBk.js} +1 -1
  41. package/dist/assets/{metric-tile-boeHB1R1.js → metric-tile-CbEe19Gd.js} +1 -1
  42. package/dist/assets/{motion-DcgUnXhY.js → motion-BibSzp57.js} +1 -1
  43. package/dist/assets/{movement-boxes-BUSqaTL2.js → movement-boxes-dtDYhw5c.js} +1 -1
  44. package/dist/assets/{movement-page-DcbO0497.js → movement-page-BhmwCHjs.js} +1 -1
  45. package/dist/assets/{note-markdown-DXXI3W3V.js → note-markdown-CG8u2d6p.js} +1 -1
  46. package/dist/assets/{note-tags-input-CYh3TVW2.js → note-tags-input-D_conqDO.js} +1 -1
  47. package/dist/assets/{notes-boxes-CMJXX2K0.js → notes-boxes-BLKucFqW.js} +1 -1
  48. package/dist/assets/notes-page-CafVxWjb.js +1 -0
  49. package/dist/assets/{open-in-graph-button-4UYrp1XP.js → open-in-graph-button-DFQ4r6SN.js} +1 -1
  50. package/dist/assets/{orbit-map-BwK7sDaC.js → orbit-map-DsEl3ori.js} +1 -1
  51. package/dist/assets/overview-page-BffcX-pM.js +1 -0
  52. package/dist/assets/page-hero-U603l9rQ.js +1 -0
  53. package/dist/assets/pill-cluster-BYVFNppV.js +1 -0
  54. package/dist/assets/{preference-entity-handoff-button-C2ATjvws.js → preference-entity-handoff-button-cPrTpHsV.js} +1 -1
  55. package/dist/assets/{preferences-page-BAexXHye.js → preferences-page-DQjFIOmt.js} +1 -1
  56. package/dist/assets/{project-collections-B9nr-Ts-.js → project-collections-B9OGHGqm.js} +1 -1
  57. package/dist/assets/project-detail-page-r1Sw2kcO.js +1 -0
  58. package/dist/assets/{project-dialog-CBA-D65n.js → project-dialog-B2_PcXAf.js} +1 -1
  59. package/dist/assets/project-management-hierarchy-page-qLNG8hsh.js +1 -0
  60. package/dist/assets/{project-management-section-nav-DJ3QKCtr.js → project-management-section-nav-DFUlmMEB.js} +1 -1
  61. package/dist/assets/{projects-boxes-iBu_PRqe.js → projects-boxes-BA7_XaqX.js} +1 -1
  62. package/dist/assets/projects-page-B6ggXWFw.js +1 -0
  63. package/dist/assets/psyche-behaviors-page-ByWpXlLq.js +5 -0
  64. package/dist/assets/{psyche-flashcards-page-DQaw_vUQ.js → psyche-flashcards-page-B9nSc0mk.js} +1 -1
  65. package/dist/assets/{psyche-goal-map-page-C-ZTVOEP.js → psyche-goal-map-page-BQU7qI88.js} +1 -1
  66. package/dist/assets/{psyche-graph-DYzeClxn.js → psyche-graph-DCeP7r2b.js} +1 -1
  67. package/dist/assets/{psyche-metrics-page-C9hKn10A.js → psyche-metrics-page-DD2lOP-J.js} +1 -1
  68. package/dist/assets/psyche-mode-guide-page-DbtZgnjr.js +1 -0
  69. package/dist/assets/psyche-modes-page-3zFJWFQf.js +1 -0
  70. package/dist/assets/psyche-page-D5vXYkfB.js +1 -0
  71. package/dist/assets/psyche-patterns-page-BneAAeKS.js +5 -0
  72. package/dist/assets/{psyche-questionnaire-builder-page-gRwdGXde.js → psyche-questionnaire-builder-page-BH1la5C9.js} +1 -1
  73. package/dist/assets/{psyche-questionnaire-detail-page-CIP9b2UI.js → psyche-questionnaire-detail-page-DYav634P.js} +1 -1
  74. package/dist/assets/psyche-questionnaire-run-detail-page-9VaijhJm.js +1 -0
  75. package/dist/assets/{psyche-questionnaire-run-page-CXiJyd5i.js → psyche-questionnaire-run-page-e1T6k_dS.js} +1 -1
  76. package/dist/assets/{psyche-questionnaires-page-CFPKwA3O.js → psyche-questionnaires-page-Dyv367z9.js} +1 -1
  77. package/dist/assets/{psyche-report-detail-page-dU30a2WE.js → psyche-report-detail-page-hqxHIXw2.js} +3 -3
  78. package/dist/assets/psyche-reports-page-DhIfcGbt.js +1 -0
  79. package/dist/assets/{psyche-schemas-DDol0j-g.js → psyche-schemas-Cg51Ztxz.js} +1 -1
  80. package/dist/assets/psyche-schemas-beliefs-page-Dgb5o9vx.js +9 -0
  81. package/dist/assets/{psyche-screen-time-page-lIe6GQxJ.js → psyche-screen-time-page-D6MnJGNa.js} +1 -1
  82. package/dist/assets/{psyche-self-observation-page-BTE3KfIl.js → psyche-self-observation-page-C1Vyezbv.js} +1 -1
  83. package/dist/assets/{psyche-values-page-DclBZ9xw.js → psyche-values-page-B_JWVw1Q.js} +2 -2
  84. package/dist/assets/{question-flow-dialog-Ded2E85L.js → question-flow-dialog-yMYVk998.js} +2 -2
  85. package/dist/assets/{report-chain-fields-DY640iqL.js → report-chain-fields-D4NM9a6I.js} +1 -1
  86. package/dist/assets/rewards-page-B5-bcL4R.js +1 -0
  87. package/dist/assets/{scheduling-rules-editor-jakFfxqF.js → scheduling-rules-editor-De72IUax.js} +1 -1
  88. package/dist/assets/{schema-badge-30B5syHA.js → schema-badge-jX28kUa6.js} +1 -1
  89. package/dist/assets/{schemas-Db29G8NU.js → schemas-BlFy-uPR.js} +1 -1
  90. package/dist/assets/{select-menu-BF2zI3RW.js → select-menu-BXv1rsVc.js} +1 -1
  91. package/dist/assets/{settings-agents-page-Bh-Bv6FQ.js → settings-agents-page-DN_np10S.js} +1 -1
  92. package/dist/assets/settings-bin-page-BM5BpK_i.js +1 -0
  93. package/dist/assets/{settings-calendar-page-BA4_Qqiu.js → settings-calendar-page-Cg0gSSFs.js} +3 -3
  94. package/dist/assets/{settings-data-page-K4kpmQJY.js → settings-data-page-Dwmp2rLy.js} +1 -1
  95. package/dist/assets/{settings-logs-page-DkuNPAZo.js → settings-logs-page-DQNM21Re.js} +1 -1
  96. package/dist/assets/{settings-mobile-page-4pCNwD91.js → settings-mobile-page-DQdiRa-a.js} +1 -1
  97. package/dist/assets/settings-models-page-CAEPpuHF.js +1 -0
  98. package/dist/assets/{settings-page-B_Be0vOY.js → settings-page-Cl2KiCFg.js} +1 -1
  99. package/dist/assets/{settings-rewards-page-C6nFTWJu.js → settings-rewards-page-DoIUumhe.js} +1 -1
  100. package/dist/assets/{settings-section-nav-Lo-VKCfZ.js → settings-section-nav-D_N87IG0.js} +1 -1
  101. package/dist/assets/{settings-users-page-CVzNp4-m.js → settings-users-page-CPesR62N.js} +1 -1
  102. package/dist/assets/{settings-wiki-page-DXM--7BB.js → settings-wiki-page-BxMQM5Vi.js} +1 -1
  103. package/dist/assets/{sleep-page-DvPdZMKx.js → sleep-page-DUYmQKrg.js} +1 -1
  104. package/dist/assets/{sports-page-DjuZlOur.js → sports-page-Bzi5TF9T.js} +1 -1
  105. package/dist/assets/{state-Bpe5dF3T.js → state-BFyKSULP.js} +1 -1
  106. package/dist/assets/{strategies-page-PE1IlatS.js → strategies-page-C-T2MZx4.js} +1 -1
  107. package/dist/assets/{strategy-detail-page-C4KiEGCI.js → strategy-detail-page-3tYuSZu-.js} +1 -1
  108. package/dist/assets/{strategy-dialog-Cwf7Y3P5.js → strategy-dialog-BWm4slo4.js} +1 -1
  109. package/dist/assets/{surface-ubuOfukq.js → surface-BJObZeRw.js} +1 -1
  110. package/dist/assets/{table-U7otr5go.js → table-CTLroJKN.js} +1 -1
  111. package/dist/assets/task-detail-page-ZZOXSpSF.js +1 -0
  112. package/dist/assets/{task-dialog-CI_Fy_FW.js → task-dialog-2wy0xI7f.js} +5 -5
  113. package/dist/assets/timebox-planning-dialog-C6h0Hp71.js +1 -0
  114. package/dist/assets/{today-boxes-CYuxSkZf.js → today-boxes-B_TdgSDz.js} +1 -1
  115. package/dist/assets/today-page-Dipns9tl.js +1 -0
  116. package/dist/assets/training-load-page-B78e1-o-.js +1 -0
  117. package/dist/assets/{ui-B9TWEtCx.js → ui-uo_bNP7c.js} +1 -1
  118. package/dist/assets/{use-anchored-overlay-position-BY4kNzPj.js → use-anchored-overlay-position-BSxFX6Hi.js} +1 -1
  119. package/dist/assets/{use-psyche-focus-target-BhNedCZB.js → use-psyche-focus-target-1GLkhYiv.js} +1 -1
  120. package/dist/assets/{user-badge-ByhC6bMU.js → user-badge-C4eZu1e_.js} +1 -1
  121. package/dist/assets/{user-select-field-fx129Uh6.js → user-select-field-CmKwcbZt.js} +1 -1
  122. package/dist/assets/{utility-widgets-ilORjDmg.js → utility-widgets-B06wQFrd.js} +2 -2
  123. package/dist/assets/{vendor-BwL6m4SE.js → vendor-B7FKSwHK.js} +222 -212
  124. package/dist/assets/{vitals-page-mdEqIm_9.js → vitals-page-BC7QFsm2.js} +1 -1
  125. package/dist/assets/{weekly-review-page-C8W-yg5r.js → weekly-review-page-BjNsNoWj.js} +1 -1
  126. package/dist/assets/{weight-loss-page-BApTknCn.js → weight-loss-page-BOahGY9r.js} +1 -1
  127. package/dist/assets/{wiki-article-markdown-DBccllQg.js → wiki-article-markdown-DO47HnZf.js} +2 -2
  128. package/dist/assets/{wiki-editor-page-BfRfH1O3.js → wiki-editor-page-OWRUHl4O.js} +5 -5
  129. package/dist/assets/{wiki-ingest-history-page-C-6H3MU6.js → wiki-ingest-history-page-CuHpg2lZ.js} +1 -1
  130. package/dist/assets/{wiki-ingest-modal-DnlhByD_.js → wiki-ingest-modal-EZ3kX-vA.js} +1 -1
  131. package/dist/assets/wiki-page-BPV3HIgu.js +1 -0
  132. package/dist/assets/{workbench-flow-page-_-NKIx5R.js → workbench-flow-page-C53KueEz.js} +3 -3
  133. package/dist/assets/{workbench-page-NIAzggwX.js → workbench-page-DJ7nT2JQ.js} +1 -1
  134. package/dist/assets/workout-detail-page-Dhyu0q7o.js +2 -0
  135. package/dist/index.html +8 -8
  136. package/dist/openclaw/api-client.js +28 -2
  137. package/dist/openclaw/local-runtime.js +31 -14
  138. package/dist/openclaw/parity.d.ts +1 -1
  139. package/dist/openclaw/parity.js +10 -0
  140. package/dist/openclaw/routes.js +78 -0
  141. package/dist/openclaw/tools.js +42 -0
  142. package/dist/server/apps/api/migrations/072_artifact_store.sql +106 -0
  143. package/dist/server/{server → apps/api}/src/app.js +365 -4
  144. package/dist/server/{server → apps/api}/src/connectors/box-registry.js +3 -3
  145. package/dist/server/{server → apps/api}/src/db.js +23 -4
  146. package/dist/server/{server → apps/api}/src/health-weight-loss.js +1 -1
  147. package/dist/server/{server → apps/api}/src/openapi.js +570 -1
  148. package/dist/server/{server → apps/api}/src/questionnaire-seeds.js +1 -1
  149. package/dist/server/{server → apps/api}/src/repositories/ai-connectors.js +1 -1
  150. package/dist/server/apps/api/src/repositories/entity-links.js +66 -0
  151. package/dist/server/{server → apps/api}/src/repositories/habits.js +1 -1
  152. package/dist/server/apps/api/src/services/artifacts.js +1059 -0
  153. package/dist/server/{server → apps/api}/src/services/companion-iroh.js +4 -1
  154. package/dist/server/{server → apps/api}/src/services/doctor.js +3 -3
  155. package/dist/server/{server → apps/api}/src/services/entity-crud.js +22 -0
  156. package/dist/server/{server → apps/api}/src/services/gamification-assets.js +1 -1
  157. package/dist/server/{server → apps/api}/src/services/gamification.js +1 -1
  158. package/dist/server/{server → apps/api}/src/services/knowledge-graph.js +48 -3
  159. package/dist/server/{server → apps/api}/src/services/psyche-observation-calendar.js +1 -0
  160. package/dist/server/{server → apps/api}/src/types.js +4 -2
  161. package/dist/server/{server → apps/api}/src/watch-mobile.js +1 -1
  162. package/dist/server/{src → apps/web/src}/lib/api.js +69 -0
  163. package/dist/server/{src → apps/web/src}/lib/entity-visuals.js +10 -1
  164. package/dist/server/{src → apps/web/src}/lib/knowledge-graph-types.js +9 -0
  165. package/openclaw.plugin.json +2 -1
  166. package/package.json +3 -3
  167. package/server/index.js +3 -3
  168. package/server/migrations/072_artifact_store.sql +106 -0
  169. package/skills/forge-openclaw/SKILL.md +60 -7
  170. package/skills/forge-openclaw/entity_conversation_playbooks.md +212 -14
  171. package/skills/forge-openclaw/psyche_entity_playbooks.md +20 -0
  172. package/dist/assets/execution-board-D66C_ikW.js +0 -1
  173. package/dist/assets/goals-page-CQ2lJMzI.js +0 -1
  174. package/dist/assets/habits-page-a7KVPaQp.js +0 -1
  175. package/dist/assets/index-ClJbJhca.css +0 -1
  176. package/dist/assets/index-FpGANF9S.js +0 -2
  177. package/dist/assets/knowledge-graph-page-DxEBaEke.js +0 -1
  178. package/dist/assets/notes-page-DvHMcQey.js +0 -1
  179. package/dist/assets/overview-page-Z5vaUTm3.js +0 -1
  180. package/dist/assets/page-hero-DvrM83_C.js +0 -1
  181. package/dist/assets/pill-cluster-DYI3Ibj8.js +0 -1
  182. package/dist/assets/project-detail-page-B9PqyPu9.js +0 -1
  183. package/dist/assets/project-management-hierarchy-page-DXK14jn0.js +0 -1
  184. package/dist/assets/projects-page-CdAk-ByT.js +0 -1
  185. package/dist/assets/psyche-behaviors-page-CbhhTfU2.js +0 -5
  186. package/dist/assets/psyche-mode-guide-page-CR8e984W.js +0 -1
  187. package/dist/assets/psyche-modes-page-lQdpAcY3.js +0 -1
  188. package/dist/assets/psyche-page-CTdIDkw9.js +0 -1
  189. package/dist/assets/psyche-patterns-page-Drgm-f7I.js +0 -5
  190. package/dist/assets/psyche-questionnaire-run-detail-page-SYndwtF3.js +0 -1
  191. package/dist/assets/psyche-reports-page-Cn0EBndy.js +0 -1
  192. package/dist/assets/psyche-schemas-beliefs-page-Bab4xSWv.js +0 -9
  193. package/dist/assets/rewards-page-FxUXB76B.js +0 -1
  194. package/dist/assets/settings-bin-page-DT8JJero.js +0 -1
  195. package/dist/assets/settings-models-page-CZHG3t7W.js +0 -1
  196. package/dist/assets/task-detail-page-B3SMFZQ3.js +0 -1
  197. package/dist/assets/timebox-planning-dialog-BtFuVoA1.js +0 -1
  198. package/dist/assets/today-page-CHGpLEZ3.js +0 -1
  199. package/dist/assets/training-load-page-GZJF-Yy5.js +0 -1
  200. package/dist/assets/wiki-page-DPZ55e3x.js +0 -1
  201. package/dist/assets/workout-detail-page-3fxr6HL4.js +0 -2
  202. /package/dist/server/{server → apps/api}/migrations/001_core.sql +0 -0
  203. /package/dist/server/{server → apps/api}/migrations/002_psyche.sql +0 -0
  204. /package/dist/server/{server → apps/api}/migrations/003_habits.sql +0 -0
  205. /package/dist/server/{server → apps/api}/migrations/004_habit_links.sql +0 -0
  206. /package/dist/server/{server → apps/api}/migrations/005_habit_psyche_links.sql +0 -0
  207. /package/dist/server/{server → apps/api}/migrations/006_work_adjustments.sql +0 -0
  208. /package/dist/server/{server → apps/api}/migrations/007_weekly_review_closures.sql +0 -0
  209. /package/dist/server/{server → apps/api}/migrations/008_calendar_execution.sql +0 -0
  210. /package/dist/server/{server → apps/api}/migrations/009_true_calendar_events.sql +0 -0
  211. /package/dist/server/{server → apps/api}/migrations/010_calendar_selection_state.sql +0 -0
  212. /package/dist/server/{server → apps/api}/migrations/011_calendar_timezone_backfill.sql +0 -0
  213. /package/dist/server/{server → apps/api}/migrations/012_work_block_ranges.sql +0 -0
  214. /package/dist/server/{server → apps/api}/migrations/013_microsoft_local_auth_settings.sql +0 -0
  215. /package/dist/server/{server → apps/api}/migrations/014_note_tags_and_ephemeral.sql +0 -0
  216. /package/dist/server/{server → apps/api}/migrations/015_multi_user_and_strategies.sql +0 -0
  217. /package/dist/server/{server → apps/api}/migrations/016_health_companion.sql +0 -0
  218. /package/dist/server/{server → apps/api}/migrations/016_strategy_contracts_and_user_graph.sql +0 -0
  219. /package/dist/server/{server → apps/api}/migrations/017_preferences.sql +0 -0
  220. /package/dist/server/{server → apps/api}/migrations/018_preference_catalogs.sql +0 -0
  221. /package/dist/server/{server → apps/api}/migrations/019_wiki_memory.sql +0 -0
  222. /package/dist/server/{server → apps/api}/migrations/020_wiki_page_hierarchy.sql +0 -0
  223. /package/dist/server/{server → apps/api}/migrations/021_hide_evidence_from_wiki_index.sql +0 -0
  224. /package/dist/server/{server → apps/api}/migrations/022_wiki_ingest_background.sql +0 -0
  225. /package/dist/server/{server → apps/api}/migrations/023_diagnostic_logs.sql +0 -0
  226. /package/dist/server/{server → apps/api}/migrations/024_questionnaires.sql +0 -0
  227. /package/dist/server/{server → apps/api}/migrations/025_ai_model_connections.sql +0 -0
  228. /package/dist/server/{server → apps/api}/migrations/026_custom_theme_settings.sql +0 -0
  229. /package/dist/server/{server → apps/api}/migrations/027_ai_processors.sql +0 -0
  230. /package/dist/server/{server → apps/api}/migrations/028_movement_domain.sql +0 -0
  231. /package/dist/server/{server → apps/api}/migrations/029_watch_micro_capture.sql +0 -0
  232. /package/dist/server/{server → apps/api}/migrations/030_surface_layouts.sql +0 -0
  233. /package/dist/server/{server → apps/api}/migrations/031_ai_processor_runtime_upgrades.sql +0 -0
  234. /package/dist/server/{server → apps/api}/migrations/032_ai_connectors.sql +0 -0
  235. /package/dist/server/{server → apps/api}/migrations/033_movement_trip_point_sync.sql +0 -0
  236. /package/dist/server/{server → apps/api}/migrations/034_movement_segment_sync.sql +0 -0
  237. /package/dist/server/{server → apps/api}/migrations/035_google_local_auth_settings.sql +0 -0
  238. /package/dist/server/{server → apps/api}/migrations/036_google_local_auth_client_secret.sql +0 -0
  239. /package/dist/server/{server → apps/api}/migrations/037_workbench_public_inputs_and_run_inputs.sql +0 -0
  240. /package/dist/server/{server → apps/api}/migrations/038_data_management_settings.sql +0 -0
  241. /package/dist/server/{server → apps/api}/migrations/039_life_force_and_action_points.sql +0 -0
  242. /package/dist/server/{server → apps/api}/migrations/040_screen_time_domain.sql +0 -0
  243. /package/dist/server/{server → apps/api}/migrations/041_companion_source_states.sql +0 -0
  244. /package/dist/server/{server → apps/api}/migrations/042_movement_boxes.sql +0 -0
  245. /package/dist/server/{server → apps/api}/migrations/043_movement_box_overlap_overrides.sql +0 -0
  246. /package/dist/server/{server → apps/api}/migrations/044_macos_local_calendar_provider.sql +0 -0
  247. /package/dist/server/{server → apps/api}/migrations/045_sleep_nights_and_raw_segments.sql +0 -0
  248. /package/dist/server/{server → apps/api}/migrations/046_work_item_hierarchy.sql +0 -0
  249. /package/dist/server/{server → apps/api}/migrations/047_sleep_source_records.sql +0 -0
  250. /package/dist/server/{server → apps/api}/migrations/048_task_run_git_context.sql +0 -0
  251. /package/dist/server/{server → apps/api}/migrations/049_agent_runtime_sessions.sql +0 -0
  252. /package/dist/server/{server → apps/api}/migrations/050_agent_token_bootstrap_policy.sql +0 -0
  253. /package/dist/server/{server → apps/api}/migrations/051_agent_token_scope_policy.sql +0 -0
  254. /package/dist/server/{server → apps/api}/migrations/052_agent_identity_tightening.sql +0 -0
  255. /package/dist/server/{server → apps/api}/migrations/053_agent_runtime_session_canonical_labels.sql +0 -0
  256. /package/dist/server/{server → apps/api}/migrations/054_sqlite_backed_wiki_memory.sql +0 -0
  257. /package/dist/server/{server → apps/api}/migrations/055_gamification_progression.sql +0 -0
  258. /package/dist/server/{server → apps/api}/migrations/056_gamification_equipment.sql +0 -0
  259. /package/dist/server/{server → apps/api}/migrations/057_gamification_catalog_cleanup.sql +0 -0
  260. /package/dist/server/{server → apps/api}/migrations/058_gamification_theme_preference.sql +0 -0
  261. /package/dist/server/{server → apps/api}/migrations/059_data_backup_retention.sql +0 -0
  262. /package/dist/server/{server → apps/api}/migrations/060_psyche_devrage_metrics.sql +0 -0
  263. /package/dist/server/{server → apps/api}/migrations/061_health_workout_raw_evidence.sql +0 -0
  264. /package/dist/server/{server → apps/api}/migrations/062_health_mobile_sync_sessions.sql +0 -0
  265. /package/dist/server/{server → apps/api}/migrations/063_psyche_flashcards.sql +0 -0
  266. /package/dist/server/{server → apps/api}/migrations/064_health_workout_time_series_identity.sql +0 -0
  267. /package/dist/server/{server → apps/api}/migrations/065_weight_loss_nutrition_insights.sql +0 -0
  268. /package/dist/server/{server → apps/api}/migrations/066_watch_action_receipts.sql +0 -0
  269. /package/dist/server/{server → apps/api}/migrations/067_weight_loss_daily_active_overrides.sql +0 -0
  270. /package/dist/server/{server → apps/api}/migrations/068_remove_generated_movement_wiki_logs.sql +0 -0
  271. /package/dist/server/{server → apps/api}/migrations/069_psyche_devrage_cumulative_rage.sql +0 -0
  272. /package/dist/server/{server → apps/api}/migrations/070_health_mobile_sync_completion_index.sql +0 -0
  273. /package/dist/server/{server → apps/api}/migrations/071_agent_runtime_claude_identity.sql +0 -0
  274. /package/dist/server/{server → apps/api}/src/data-management-types.js +0 -0
  275. /package/dist/server/{server → apps/api}/src/debug.js +0 -0
  276. /package/dist/server/{server → apps/api}/src/demo-data.js +0 -0
  277. /package/dist/server/{server → apps/api}/src/discovery-advertiser.js +0 -0
  278. /package/dist/server/{server → apps/api}/src/e2e-server.js +0 -0
  279. /package/dist/server/{server → apps/api}/src/errors.js +0 -0
  280. /package/dist/server/{server → apps/api}/src/health-workout-adapters.js +0 -0
  281. /package/dist/server/{server → apps/api}/src/health-workout-analytics.js +0 -0
  282. /package/dist/server/{server → apps/api}/src/health.js +0 -0
  283. /package/dist/server/{server → apps/api}/src/index.js +0 -0
  284. /package/dist/server/{server → apps/api}/src/managers/base.js +0 -0
  285. /package/dist/server/{server → apps/api}/src/managers/contracts.js +0 -0
  286. /package/dist/server/{server → apps/api}/src/managers/platform/api-gateway-manager.js +0 -0
  287. /package/dist/server/{server → apps/api}/src/managers/platform/audit-manager.js +0 -0
  288. /package/dist/server/{server → apps/api}/src/managers/platform/authentication-manager.js +0 -0
  289. /package/dist/server/{server → apps/api}/src/managers/platform/authorization-manager.js +0 -0
  290. /package/dist/server/{server → apps/api}/src/managers/platform/background-job-manager.js +0 -0
  291. /package/dist/server/{server → apps/api}/src/managers/platform/configuration-manager.js +0 -0
  292. /package/dist/server/{server → apps/api}/src/managers/platform/database-manager.js +0 -0
  293. /package/dist/server/{server → apps/api}/src/managers/platform/event-bus-manager.js +0 -0
  294. /package/dist/server/{server → apps/api}/src/managers/platform/external-service-manager.js +0 -0
  295. /package/dist/server/{server → apps/api}/src/managers/platform/health-manager.js +0 -0
  296. /package/dist/server/{server → apps/api}/src/managers/platform/llm-manager.js +0 -0
  297. /package/dist/server/{server → apps/api}/src/managers/platform/migration-manager.js +0 -0
  298. /package/dist/server/{server → apps/api}/src/managers/platform/mock-workbench-provider.js +0 -0
  299. /package/dist/server/{server → apps/api}/src/managers/platform/openai-responses-provider.js +0 -0
  300. /package/dist/server/{server → apps/api}/src/managers/platform/search-index-manager.js +0 -0
  301. /package/dist/server/{server → apps/api}/src/managers/platform/secrets-manager.js +0 -0
  302. /package/dist/server/{server → apps/api}/src/managers/platform/session-manager.js +0 -0
  303. /package/dist/server/{server → apps/api}/src/managers/platform/storage-manager.js +0 -0
  304. /package/dist/server/{server → apps/api}/src/managers/platform/token-manager.js +0 -0
  305. /package/dist/server/{server → apps/api}/src/managers/platform/transaction-manager.js +0 -0
  306. /package/dist/server/{server → apps/api}/src/managers/platform/trusted-network.js +0 -0
  307. /package/dist/server/{server → apps/api}/src/managers/runtime.js +0 -0
  308. /package/dist/server/{server → apps/api}/src/managers/type-guards.js +0 -0
  309. /package/dist/server/{server → apps/api}/src/movement.js +0 -0
  310. /package/dist/server/{server → apps/api}/src/preferences-seeds.js +0 -0
  311. /package/dist/server/{server → apps/api}/src/preferences-types.js +0 -0
  312. /package/dist/server/{server → apps/api}/src/psyche-types.js +0 -0
  313. /package/dist/server/{server → apps/api}/src/questionnaire-flow.js +0 -0
  314. /package/dist/server/{server → apps/api}/src/questionnaire-types.js +0 -0
  315. /package/dist/server/{server → apps/api}/src/repositories/activity-events.js +0 -0
  316. /package/dist/server/{server → apps/api}/src/repositories/agent-runtime-sessions.js +0 -0
  317. /package/dist/server/{server → apps/api}/src/repositories/ai-processors.js +0 -0
  318. /package/dist/server/{server → apps/api}/src/repositories/calendar.js +0 -0
  319. /package/dist/server/{server → apps/api}/src/repositories/collaboration.js +0 -0
  320. /package/dist/server/{server → apps/api}/src/repositories/deleted-entities.js +0 -0
  321. /package/dist/server/{server → apps/api}/src/repositories/diagnostic-logs.js +0 -0
  322. /package/dist/server/{server → apps/api}/src/repositories/domains.js +0 -0
  323. /package/dist/server/{server → apps/api}/src/repositories/entity-ownership.js +0 -0
  324. /package/dist/server/{server → apps/api}/src/repositories/event-log.js +0 -0
  325. /package/dist/server/{server → apps/api}/src/repositories/gamification.js +0 -0
  326. /package/dist/server/{server → apps/api}/src/repositories/goals.js +0 -0
  327. /package/dist/server/{server → apps/api}/src/repositories/model-settings.js +0 -0
  328. /package/dist/server/{server → apps/api}/src/repositories/notes.js +0 -0
  329. /package/dist/server/{server → apps/api}/src/repositories/preferences.js +0 -0
  330. /package/dist/server/{server → apps/api}/src/repositories/projects.js +0 -0
  331. /package/dist/server/{server → apps/api}/src/repositories/psyche.js +0 -0
  332. /package/dist/server/{server → apps/api}/src/repositories/questionnaires.js +0 -0
  333. /package/dist/server/{server → apps/api}/src/repositories/rewards.js +0 -0
  334. /package/dist/server/{server → apps/api}/src/repositories/settings.js +0 -0
  335. /package/dist/server/{server → apps/api}/src/repositories/strategies.js +0 -0
  336. /package/dist/server/{server → apps/api}/src/repositories/surface-layouts.js +0 -0
  337. /package/dist/server/{server → apps/api}/src/repositories/tags.js +0 -0
  338. /package/dist/server/{server → apps/api}/src/repositories/task-runs.js +0 -0
  339. /package/dist/server/{server → apps/api}/src/repositories/tasks.js +0 -0
  340. /package/dist/server/{server → apps/api}/src/repositories/users.js +0 -0
  341. /package/dist/server/{server → apps/api}/src/repositories/weekly-reviews.js +0 -0
  342. /package/dist/server/{server → apps/api}/src/repositories/wiki-memory.js +0 -0
  343. /package/dist/server/{server → apps/api}/src/repositories/work-adjustments.js +0 -0
  344. /package/dist/server/{server → apps/api}/src/runtime-data-root.js +0 -0
  345. /package/dist/server/{server → apps/api}/src/screen-time.js +0 -0
  346. /package/dist/server/{server → apps/api}/src/seed-demo.js +0 -0
  347. /package/dist/server/{server → apps/api}/src/services/calendar-runtime.js +0 -0
  348. /package/dist/server/{server → apps/api}/src/services/context.js +0 -0
  349. /package/dist/server/{server → apps/api}/src/services/dashboard.js +0 -0
  350. /package/dist/server/{server → apps/api}/src/services/data-management.js +0 -0
  351. /package/dist/server/{server → apps/api}/src/services/devrage-scanner.js +0 -0
  352. /package/dist/server/{server → apps/api}/src/services/devrage.js +0 -0
  353. /package/dist/server/{server → apps/api}/src/services/git-helper.js +0 -0
  354. /package/dist/server/{server → apps/api}/src/services/google-calendar-oauth-config.js +0 -0
  355. /package/dist/server/{server → apps/api}/src/services/insights.js +0 -0
  356. /package/dist/server/{server → apps/api}/src/services/legacy-wiki-markdown-import.js +0 -0
  357. /package/dist/server/{server → apps/api}/src/services/life-force-model.js +0 -0
  358. /package/dist/server/{server → apps/api}/src/services/life-force.js +0 -0
  359. /package/dist/server/{server → apps/api}/src/services/macos-calendar-helper.js +0 -0
  360. /package/dist/server/{server → apps/api}/src/services/openai-codex-oauth.js +0 -0
  361. /package/dist/server/{server → apps/api}/src/services/projects.js +0 -0
  362. /package/dist/server/{server → apps/api}/src/services/psyche.js +0 -0
  363. /package/dist/server/{server → apps/api}/src/services/relations.js +0 -0
  364. /package/dist/server/{server → apps/api}/src/services/reviews.js +0 -0
  365. /package/dist/server/{server → apps/api}/src/services/run-recovery.js +0 -0
  366. /package/dist/server/{server → apps/api}/src/services/tagging.js +0 -0
  367. /package/dist/server/{server → apps/api}/src/services/task-run-watchdog.js +0 -0
  368. /package/dist/server/{server → apps/api}/src/services/work-time.js +0 -0
  369. /package/dist/server/{server → apps/api}/src/web.js +0 -0
  370. /package/dist/server/{src → apps/web/src}/components/customization/utility-widgets.js +0 -0
  371. /package/dist/server/{src → apps/web/src}/components/ui/info-tooltip.js +0 -0
  372. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/calendar/calendar-boxes.js +0 -0
  373. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/goals/goals-boxes.js +0 -0
  374. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/habits/habits-boxes.js +0 -0
  375. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/health/health-boxes.js +0 -0
  376. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/insights/insights-boxes.js +0 -0
  377. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/kanban/kanban-boxes.js +0 -0
  378. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/movement/movement-boxes.js +0 -0
  379. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/notes/notes-boxes.js +0 -0
  380. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/overview/overview-boxes.js +0 -0
  381. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/preferences/preferences-boxes.js +0 -0
  382. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/projects/projects-boxes.js +0 -0
  383. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/psyche/psyche-boxes.js +0 -0
  384. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/questionnaires/questionnaires-boxes.js +0 -0
  385. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/review/review-boxes.js +0 -0
  386. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/shared/define-workbench-box.js +0 -0
  387. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/shared/generic-node-view.js +0 -0
  388. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/strategies/strategies-boxes.js +0 -0
  389. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/tasks/tasks-boxes.js +0 -0
  390. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/today/today-boxes.js +0 -0
  391. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/wiki/wiki-boxes.js +0 -0
  392. /package/dist/server/{src → apps/web/src}/lib/api-error.js +0 -0
  393. /package/dist/server/{src → apps/web/src}/lib/calendar-name-deduper.js +0 -0
  394. /package/dist/server/{src → apps/web/src}/lib/data-management-types.js +0 -0
  395. /package/dist/server/{src → apps/web/src}/lib/date-keys.js +0 -0
  396. /package/dist/server/{src → apps/web/src}/lib/diagnostics.js +0 -0
  397. /package/dist/server/{src → apps/web/src}/lib/gamification-catalog.js +0 -0
  398. /package/dist/server/{src → apps/web/src}/lib/knowledge-graph.js +0 -0
  399. /package/dist/server/{src → apps/web/src}/lib/psyche-schemas.js +0 -0
  400. /package/dist/server/{src → apps/web/src}/lib/psyche-types.js +0 -0
  401. /package/dist/server/{src → apps/web/src}/lib/questionnaire-types.js +0 -0
  402. /package/dist/server/{src → apps/web/src}/lib/runtime-paths.js +0 -0
  403. /package/dist/server/{src → apps/web/src}/lib/schemas.js +0 -0
  404. /package/dist/server/{src → apps/web/src}/lib/snapshot-normalizer.js +0 -0
  405. /package/dist/server/{src → apps/web/src}/lib/theme-system.js +0 -0
  406. /package/dist/server/{src → apps/web/src}/lib/types.js +0 -0
  407. /package/dist/server/{src → apps/web/src}/lib/utils.js +0 -0
  408. /package/dist/server/{src → apps/web/src}/lib/weight-loss-energy-model.js +0 -0
  409. /package/dist/server/{src → apps/web/src}/lib/weight-loss-types.js +0 -0
  410. /package/dist/server/{src → apps/web/src}/lib/workbench/boxes.js +0 -0
  411. /package/dist/server/{src → apps/web/src}/lib/workbench/contracts.js +0 -0
  412. /package/dist/server/{src → apps/web/src}/lib/workbench/nodes.js +0 -0
  413. /package/dist/server/{src → apps/web/src}/lib/workbench/registry.js +0 -0
  414. /package/dist/server/{src → apps/web/src}/lib/workbench/runtime.js +0 -0
  415. /package/dist/server/{src → apps/web/src}/lib/workbench/tool-catalog.js +0 -0
@@ -165,6 +165,10 @@ const API_TAGS = [
165
165
  name: "Wiki",
166
166
  description: "SQLite-backed wiki settings, pages, ingest, sync, health, and search."
167
167
  },
168
+ {
169
+ name: "Artifacts",
170
+ description: "Trusted file artifact storage, metadata, static safety scans, human-only downloads, links, versions, and audit events."
171
+ },
168
172
  {
169
173
  name: "Preferences",
170
174
  description: "Preference profiles, comparisons, concepts, contexts, and learned scores."
@@ -232,7 +236,7 @@ const API_TAG_GROUPS = [
232
236
  },
233
237
  {
234
238
  name: "Knowledge And Reflection",
235
- tags: ["Wiki", "Preferences", "Psyche", "Questionnaires"]
239
+ tags: ["Wiki", "Artifacts", "Preferences", "Psyche", "Questionnaires"]
236
240
  },
237
241
  {
238
242
  name: "Platform And Agents",
@@ -289,6 +293,9 @@ function resolveTagsForPath(path) {
289
293
  if (path.startsWith("/api/v1/wiki")) {
290
294
  return ["Wiki"];
291
295
  }
296
+ if (path.startsWith("/api/v1/artifacts")) {
297
+ return ["Artifacts"];
298
+ }
292
299
  if (path.startsWith("/api/v1/preferences")) {
293
300
  return ["Preferences"];
294
301
  }
@@ -5503,6 +5510,265 @@ export function buildOpenApiDocument() {
5503
5510
  dataQuality: { type: "object", additionalProperties: true }
5504
5511
  }
5505
5512
  };
5513
+ const entityLink = {
5514
+ type: "object",
5515
+ required: [
5516
+ "sourceEntityType",
5517
+ "sourceEntityId",
5518
+ "targetEntityType",
5519
+ "targetEntityId",
5520
+ "anchorKey",
5521
+ "relationship",
5522
+ "createdByActor",
5523
+ "createdAt"
5524
+ ],
5525
+ properties: {
5526
+ sourceEntityType: { type: "string" },
5527
+ sourceEntityId: { type: "string" },
5528
+ targetEntityType: { type: "string" },
5529
+ targetEntityId: { type: "string" },
5530
+ anchorKey: nullable({ type: "string" }),
5531
+ relationship: { type: "string" },
5532
+ createdByActor: nullable({ type: "string" }),
5533
+ createdAt: { type: "string", format: "date-time" }
5534
+ }
5535
+ };
5536
+ const entityLinkInput = {
5537
+ type: "object",
5538
+ required: ["entityType", "entityId"],
5539
+ properties: {
5540
+ entityType: { type: "string" },
5541
+ entityId: { type: "string" },
5542
+ anchorKey: { type: "string" },
5543
+ relationship: { type: "string", default: "related" }
5544
+ }
5545
+ };
5546
+ const artifactScanFinding = {
5547
+ type: "object",
5548
+ required: ["code", "severity", "message"],
5549
+ properties: {
5550
+ code: { type: "string" },
5551
+ severity: {
5552
+ type: "string",
5553
+ enum: ["info", "low", "moderate", "high", "blocked"]
5554
+ },
5555
+ message: { type: "string" }
5556
+ }
5557
+ };
5558
+ const artifactScanResult = {
5559
+ type: "object",
5560
+ required: [
5561
+ "scannedAt",
5562
+ "scannerVersion",
5563
+ "declaredExtension",
5564
+ "detectedMimeType",
5565
+ "extensionAllowed",
5566
+ "byteSize",
5567
+ "findings",
5568
+ "extractedTextSample",
5569
+ "extractedTextTruncated"
5570
+ ],
5571
+ properties: {
5572
+ scannedAt: { type: "string", format: "date-time" },
5573
+ scannerVersion: { type: "string" },
5574
+ declaredExtension: { type: "string" },
5575
+ detectedMimeType: { type: "string" },
5576
+ extensionAllowed: { type: "boolean" },
5577
+ byteSize: { type: "integer" },
5578
+ findings: arrayOf(artifactScanFinding),
5579
+ extractedTextSample: { type: "string" },
5580
+ extractedTextTruncated: { type: "boolean" }
5581
+ }
5582
+ };
5583
+ const artifact = {
5584
+ type: "object",
5585
+ required: [
5586
+ "id",
5587
+ "title",
5588
+ "shortDescription",
5589
+ "description",
5590
+ "originalFileName",
5591
+ "storageKey",
5592
+ "storagePath",
5593
+ "contentSha256",
5594
+ "byteSize",
5595
+ "detectedExtension",
5596
+ "declaredMimeType",
5597
+ "detectedMimeType",
5598
+ "formatFamily",
5599
+ "sourceKind",
5600
+ "sourceLabel",
5601
+ "uploadedByUserId",
5602
+ "uploadedByAgentId",
5603
+ "actingForUserId",
5604
+ "artifactState",
5605
+ "dangerScore",
5606
+ "dangerLevel",
5607
+ "downloadPolicy",
5608
+ "scanResults",
5609
+ "enrichmentResults",
5610
+ "metadata",
5611
+ "links",
5612
+ "createdAt",
5613
+ "updatedAt"
5614
+ ],
5615
+ properties: {
5616
+ id: { type: "string" },
5617
+ title: { type: "string" },
5618
+ shortDescription: { type: "string" },
5619
+ description: { type: "string" },
5620
+ originalFileName: { type: "string" },
5621
+ storageKey: { type: "string" },
5622
+ storagePath: { type: "string" },
5623
+ contentSha256: { type: "string" },
5624
+ byteSize: { type: "integer" },
5625
+ detectedExtension: { type: "string" },
5626
+ declaredMimeType: { type: "string" },
5627
+ detectedMimeType: { type: "string" },
5628
+ formatFamily: {
5629
+ type: "string",
5630
+ enum: [
5631
+ "spreadsheet",
5632
+ "document",
5633
+ "presentation",
5634
+ "pdf",
5635
+ "text",
5636
+ "structured_text",
5637
+ "image"
5638
+ ]
5639
+ },
5640
+ sourceKind: {
5641
+ type: "string",
5642
+ enum: ["upload", "agent_upload", "wiki_ingest", "external_reference", "manual"]
5643
+ },
5644
+ sourceLabel: { type: "string" },
5645
+ uploadedByUserId: nullable({ type: "string" }),
5646
+ uploadedByAgentId: nullable({ type: "string" }),
5647
+ actingForUserId: nullable({ type: "string" }),
5648
+ artifactState: {
5649
+ type: "string",
5650
+ enum: ["active", "quarantined", "blocked", "archived", "metadata_only"]
5651
+ },
5652
+ dangerScore: { type: "integer", minimum: 0, maximum: 100 },
5653
+ dangerLevel: { type: "string", enum: ["low", "moderate", "high", "blocked"] },
5654
+ downloadPolicy: { type: "string", enum: ["human_only", "disabled"] },
5655
+ scanResults: artifactScanResult,
5656
+ enrichmentResults: { type: "object", additionalProperties: true },
5657
+ metadata: { type: "object", additionalProperties: true },
5658
+ links: arrayOf(entityLink),
5659
+ createdAt: { type: "string", format: "date-time" },
5660
+ updatedAt: { type: "string", format: "date-time" }
5661
+ }
5662
+ };
5663
+ const artifactUploadInput = {
5664
+ type: "object",
5665
+ required: ["originalFileName", "contentBase64"],
5666
+ properties: {
5667
+ title: { type: "string" },
5668
+ shortDescription: { type: "string" },
5669
+ description: { type: "string" },
5670
+ originalFileName: { type: "string" },
5671
+ declaredMimeType: { type: "string" },
5672
+ contentBase64: {
5673
+ type: "string",
5674
+ description: "Base64 file bytes. Forge stores and statically scans bytes; agents must not execute or open file contents."
5675
+ },
5676
+ sourceKind: {
5677
+ type: "string",
5678
+ enum: ["upload", "agent_upload", "wiki_ingest", "external_reference", "manual"]
5679
+ },
5680
+ sourceLabel: { type: "string" },
5681
+ uploadedByUserId: nullable({ type: "string" }),
5682
+ uploadedByAgentId: nullable({ type: "string" }),
5683
+ actingForUserId: nullable({ type: "string" }),
5684
+ downloadPolicy: { type: "string", enum: ["human_only", "disabled"] },
5685
+ links: arrayOf(entityLinkInput),
5686
+ metadata: { type: "object", additionalProperties: true },
5687
+ useLlmEnrichment: { type: "boolean" },
5688
+ llmProfileId: { type: "string" }
5689
+ }
5690
+ };
5691
+ const artifactMetadataPatchInput = {
5692
+ type: "object",
5693
+ properties: {
5694
+ title: { type: "string" },
5695
+ shortDescription: { type: "string" },
5696
+ description: { type: "string" },
5697
+ sourceLabel: { type: "string" },
5698
+ artifactState: {
5699
+ type: "string",
5700
+ enum: ["active", "quarantined", "blocked", "archived", "metadata_only"]
5701
+ },
5702
+ downloadPolicy: { type: "string", enum: ["human_only", "disabled"] },
5703
+ links: arrayOf(entityLinkInput),
5704
+ metadata: { type: "object", additionalProperties: true }
5705
+ }
5706
+ };
5707
+ const artifactTrustPatchInput = {
5708
+ type: "object",
5709
+ required: ["artifactState", "reason"],
5710
+ properties: {
5711
+ artifactState: {
5712
+ type: "string",
5713
+ enum: ["active", "quarantined", "blocked", "archived", "metadata_only"]
5714
+ },
5715
+ reason: { type: "string" },
5716
+ downloadPolicy: { type: "string", enum: ["human_only", "disabled"] }
5717
+ }
5718
+ };
5719
+ const artifactEnrichmentInput = {
5720
+ type: "object",
5721
+ properties: {
5722
+ llmProfileId: { type: "string" },
5723
+ fillMissingOnly: { type: "boolean", default: true },
5724
+ explicitApiKey: {
5725
+ type: "string",
5726
+ description: "Optional transient key for the selected LLM provider. It is not persisted by Forge."
5727
+ }
5728
+ }
5729
+ };
5730
+ const artifactVersion = {
5731
+ type: "object",
5732
+ required: [
5733
+ "id",
5734
+ "artifactId",
5735
+ "versionNumber",
5736
+ "contentSha256",
5737
+ "storageKey",
5738
+ "byteSize",
5739
+ "originalFileName",
5740
+ "scanResults",
5741
+ "enrichmentResults",
5742
+ "createdByActor",
5743
+ "createdAt"
5744
+ ],
5745
+ properties: {
5746
+ id: { type: "string" },
5747
+ artifactId: { type: "string" },
5748
+ versionNumber: { type: "integer" },
5749
+ contentSha256: { type: "string" },
5750
+ storageKey: { type: "string" },
5751
+ byteSize: { type: "integer" },
5752
+ originalFileName: { type: "string" },
5753
+ scanResults: { type: "object", additionalProperties: true },
5754
+ enrichmentResults: { type: "object", additionalProperties: true },
5755
+ createdByActor: nullable({ type: "string" }),
5756
+ createdAt: { type: "string", format: "date-time" }
5757
+ }
5758
+ };
5759
+ const artifactAuditEvent = {
5760
+ type: "object",
5761
+ required: ["id", "artifactId", "eventType", "actor", "source", "metadata", "createdAt"],
5762
+ properties: {
5763
+ id: { type: "string" },
5764
+ artifactId: { type: "string" },
5765
+ eventType: { type: "string" },
5766
+ actor: nullable({ type: "string" }),
5767
+ source: { type: "string", enum: ["ui", "openclaw", "agent", "system"] },
5768
+ metadata: { type: "object", additionalProperties: true },
5769
+ createdAt: { type: "string", format: "date-time" }
5770
+ }
5771
+ };
5506
5772
  const document = {
5507
5773
  openapi: "3.1.0",
5508
5774
  info: {
@@ -5609,6 +5875,17 @@ export function buildOpenApiDocument() {
5609
5875
  Note: note,
5610
5876
  NoteSummary: noteSummary,
5611
5877
  NotesSummaryByEntity: notesSummaryByEntity,
5878
+ EntityLink: entityLink,
5879
+ EntityLinkInput: entityLinkInput,
5880
+ ArtifactScanFinding: artifactScanFinding,
5881
+ ArtifactScanResult: artifactScanResult,
5882
+ Artifact: artifact,
5883
+ ArtifactUploadInput: artifactUploadInput,
5884
+ ArtifactMetadataPatchInput: artifactMetadataPatchInput,
5885
+ ArtifactTrustPatchInput: artifactTrustPatchInput,
5886
+ ArtifactEnrichmentInput: artifactEnrichmentInput,
5887
+ ArtifactVersion: artifactVersion,
5888
+ ArtifactAuditEvent: artifactAuditEvent,
5612
5889
  HealthLink: healthLink,
5613
5890
  SleepSession: sleepSession,
5614
5891
  WorkoutSession: workoutSession,
@@ -5645,6 +5922,298 @@ export function buildOpenApiDocument() {
5645
5922
  }
5646
5923
  },
5647
5924
  paths: {
5925
+ "/api/v1/artifacts": {
5926
+ get: {
5927
+ summary: "List artifact metadata",
5928
+ description: "Lists stored file artifacts and their metadata, scan state, danger score, and generic entity links. This route does not return file bytes.",
5929
+ parameters: [
5930
+ { name: "query", in: "query", schema: { type: "string" } },
5931
+ {
5932
+ name: "artifactState",
5933
+ in: "query",
5934
+ schema: {
5935
+ type: "string",
5936
+ enum: ["active", "quarantined", "blocked", "archived", "metadata_only"]
5937
+ }
5938
+ },
5939
+ {
5940
+ name: "dangerLevel",
5941
+ in: "query",
5942
+ schema: { type: "string", enum: ["low", "moderate", "high", "blocked"] }
5943
+ },
5944
+ {
5945
+ name: "formatFamily",
5946
+ in: "query",
5947
+ schema: {
5948
+ type: "string",
5949
+ enum: [
5950
+ "spreadsheet",
5951
+ "document",
5952
+ "presentation",
5953
+ "pdf",
5954
+ "text",
5955
+ "structured_text",
5956
+ "image"
5957
+ ]
5958
+ }
5959
+ },
5960
+ { name: "linkedEntityType", in: "query", schema: { type: "string" } },
5961
+ { name: "linkedEntityId", in: "query", schema: { type: "string" } },
5962
+ { name: "limit", in: "query", schema: { type: "integer", minimum: 1, maximum: 500 } }
5963
+ ],
5964
+ responses: {
5965
+ "200": jsonResponse({
5966
+ type: "object",
5967
+ required: ["artifacts"],
5968
+ properties: { artifacts: arrayOf({ $ref: "#/components/schemas/Artifact" }) }
5969
+ }, "Artifact list"),
5970
+ default: { $ref: "#/components/responses/Error" }
5971
+ }
5972
+ },
5973
+ post: {
5974
+ summary: "Upload a trusted file artifact",
5975
+ description: "Stores base64 file bytes only for trusted human sessions or trusted/autonomous agent tokens with artifact upload scopes. Forge statically scans and stores the file for human download; it does not execute or autonomously open the file.",
5976
+ requestBody: {
5977
+ required: true,
5978
+ content: {
5979
+ "application/json": {
5980
+ schema: { $ref: "#/components/schemas/ArtifactUploadInput" }
5981
+ }
5982
+ }
5983
+ },
5984
+ responses: {
5985
+ "201": jsonResponse({
5986
+ type: "object",
5987
+ required: ["artifact"],
5988
+ properties: { artifact: { $ref: "#/components/schemas/Artifact" } }
5989
+ }, "Created artifact"),
5990
+ default: { $ref: "#/components/responses/Error" }
5991
+ }
5992
+ }
5993
+ },
5994
+ "/api/v1/artifacts/{id}": {
5995
+ parameters: [
5996
+ {
5997
+ name: "id",
5998
+ in: "path",
5999
+ required: true,
6000
+ schema: { type: "string" }
6001
+ }
6002
+ ],
6003
+ get: {
6004
+ summary: "Get artifact metadata",
6005
+ responses: {
6006
+ "200": jsonResponse({
6007
+ type: "object",
6008
+ required: ["artifact"],
6009
+ properties: { artifact: { $ref: "#/components/schemas/Artifact" } }
6010
+ }, "Artifact metadata"),
6011
+ default: { $ref: "#/components/responses/Error" }
6012
+ }
6013
+ },
6014
+ patch: {
6015
+ summary: "Patch artifact metadata",
6016
+ requestBody: {
6017
+ required: true,
6018
+ content: {
6019
+ "application/json": {
6020
+ schema: { $ref: "#/components/schemas/ArtifactMetadataPatchInput" }
6021
+ }
6022
+ }
6023
+ },
6024
+ responses: {
6025
+ "200": jsonResponse({
6026
+ type: "object",
6027
+ required: ["artifact"],
6028
+ properties: { artifact: { $ref: "#/components/schemas/Artifact" } }
6029
+ }, "Updated artifact"),
6030
+ default: { $ref: "#/components/responses/Error" }
6031
+ }
6032
+ }
6033
+ },
6034
+ "/api/v1/artifacts/{id}/download": {
6035
+ parameters: [
6036
+ {
6037
+ name: "id",
6038
+ in: "path",
6039
+ required: true,
6040
+ schema: { type: "string" }
6041
+ }
6042
+ ],
6043
+ get: {
6044
+ summary: "Download artifact bytes for a human operator",
6045
+ description: "Returns the stored file bytes only to an authenticated human/operator session. Agent tokens are not allowed to download artifacts.",
6046
+ responses: {
6047
+ "200": {
6048
+ description: "Artifact file bytes",
6049
+ content: {
6050
+ "application/octet-stream": {
6051
+ schema: { type: "string", format: "binary" }
6052
+ }
6053
+ }
6054
+ },
6055
+ default: { $ref: "#/components/responses/Error" }
6056
+ }
6057
+ }
6058
+ },
6059
+ "/api/v1/artifacts/{id}/scan": {
6060
+ parameters: [
6061
+ {
6062
+ name: "id",
6063
+ in: "path",
6064
+ required: true,
6065
+ schema: { type: "string" }
6066
+ }
6067
+ ],
6068
+ post: {
6069
+ summary: "Rescan an artifact with the static safety scanner",
6070
+ responses: {
6071
+ "200": jsonResponse({
6072
+ type: "object",
6073
+ required: ["artifact"],
6074
+ properties: { artifact: { $ref: "#/components/schemas/Artifact" } }
6075
+ }, "Rescanned artifact"),
6076
+ default: { $ref: "#/components/responses/Error" }
6077
+ }
6078
+ }
6079
+ },
6080
+ "/api/v1/artifacts/{id}/enrich": {
6081
+ parameters: [
6082
+ {
6083
+ name: "id",
6084
+ in: "path",
6085
+ required: true,
6086
+ schema: { type: "string" }
6087
+ }
6088
+ ],
6089
+ post: {
6090
+ summary: "Use a configured LLM to fill missing artifact metadata",
6091
+ description: "LLM enrichment receives only safe metadata, scan findings, and static text samples. It may propose title, short description, description, tags, and a danger score, but Forge never lowers the deterministic scanner danger score.",
6092
+ requestBody: {
6093
+ required: false,
6094
+ content: {
6095
+ "application/json": {
6096
+ schema: { $ref: "#/components/schemas/ArtifactEnrichmentInput" }
6097
+ }
6098
+ }
6099
+ },
6100
+ responses: {
6101
+ "200": jsonResponse({
6102
+ type: "object",
6103
+ required: ["artifact"],
6104
+ properties: { artifact: { $ref: "#/components/schemas/Artifact" } }
6105
+ }, "Enriched artifact"),
6106
+ default: { $ref: "#/components/responses/Error" }
6107
+ }
6108
+ }
6109
+ },
6110
+ "/api/v1/artifacts/{id}/links": {
6111
+ parameters: [
6112
+ {
6113
+ name: "id",
6114
+ in: "path",
6115
+ required: true,
6116
+ schema: { type: "string" }
6117
+ }
6118
+ ],
6119
+ post: {
6120
+ summary: "Replace generic entity links for an artifact",
6121
+ description: "Stores artifact relationships through Forge's reusable entity_links model. Use this to connect artifacts to goals, projects, tasks, wiki-backed notes, Psyche records, calendar entities, and other supported Forge entities.",
6122
+ requestBody: {
6123
+ required: true,
6124
+ content: {
6125
+ "application/json": {
6126
+ schema: {
6127
+ type: "object",
6128
+ required: ["links"],
6129
+ properties: {
6130
+ links: arrayOf({ $ref: "#/components/schemas/EntityLinkInput" })
6131
+ }
6132
+ }
6133
+ }
6134
+ }
6135
+ },
6136
+ responses: {
6137
+ "200": jsonResponse({
6138
+ type: "object",
6139
+ required: ["artifact"],
6140
+ properties: { artifact: { $ref: "#/components/schemas/Artifact" } }
6141
+ }, "Relinked artifact"),
6142
+ default: { $ref: "#/components/responses/Error" }
6143
+ }
6144
+ }
6145
+ },
6146
+ "/api/v1/artifacts/{id}/trust": {
6147
+ parameters: [
6148
+ {
6149
+ name: "id",
6150
+ in: "path",
6151
+ required: true,
6152
+ schema: { type: "string" }
6153
+ }
6154
+ ],
6155
+ post: {
6156
+ summary: "Apply a trusted artifact state override",
6157
+ requestBody: {
6158
+ required: true,
6159
+ content: {
6160
+ "application/json": {
6161
+ schema: { $ref: "#/components/schemas/ArtifactTrustPatchInput" }
6162
+ }
6163
+ }
6164
+ },
6165
+ responses: {
6166
+ "200": jsonResponse({
6167
+ type: "object",
6168
+ required: ["artifact"],
6169
+ properties: { artifact: { $ref: "#/components/schemas/Artifact" } }
6170
+ }, "Trust-updated artifact"),
6171
+ default: { $ref: "#/components/responses/Error" }
6172
+ }
6173
+ }
6174
+ },
6175
+ "/api/v1/artifacts/{id}/versions": {
6176
+ parameters: [
6177
+ {
6178
+ name: "id",
6179
+ in: "path",
6180
+ required: true,
6181
+ schema: { type: "string" }
6182
+ }
6183
+ ],
6184
+ get: {
6185
+ summary: "List artifact versions",
6186
+ responses: {
6187
+ "200": jsonResponse({
6188
+ type: "object",
6189
+ required: ["versions"],
6190
+ properties: { versions: arrayOf({ $ref: "#/components/schemas/ArtifactVersion" }) }
6191
+ }, "Artifact versions"),
6192
+ default: { $ref: "#/components/responses/Error" }
6193
+ }
6194
+ }
6195
+ },
6196
+ "/api/v1/artifacts/{id}/audit": {
6197
+ parameters: [
6198
+ {
6199
+ name: "id",
6200
+ in: "path",
6201
+ required: true,
6202
+ schema: { type: "string" }
6203
+ }
6204
+ ],
6205
+ get: {
6206
+ summary: "List artifact audit events",
6207
+ responses: {
6208
+ "200": jsonResponse({
6209
+ type: "object",
6210
+ required: ["events"],
6211
+ properties: { events: arrayOf({ $ref: "#/components/schemas/ArtifactAuditEvent" }) }
6212
+ }, "Artifact audit events"),
6213
+ default: { $ref: "#/components/responses/Error" }
6214
+ }
6215
+ }
6216
+ },
5648
6217
  "/api/v1/health": {
5649
6218
  get: {
5650
6219
  summary: "Get Forge API health and watchdog status",
@@ -649,7 +649,7 @@ const QUESTIONNAIRE_SEEDS = [
649
649
  },
650
650
  {
651
651
  label: "WHO AUDIT manual PDF",
652
- url: "https://iris.who.int/server/api/core/bitstreams/c57d9855-5450-4c46-84b1-c88a6df4192c/content",
652
+ url: "https://iris.who.int/apps/api/api/core/bitstreams/c57d9855-5450-4c46-84b1-c88a6df4192c/content",
653
653
  citation: "World Health Organization. AUDIT manual and self-report questionnaire appendix.",
654
654
  notes: "WHO manual permits free review, reproduction, and translation for non-commercial use."
655
655
  }
@@ -8,7 +8,7 @@ import { createAiConnectorSchema, aiConnectorConversationSchema, aiConnectorRunR
8
8
  import { FORGE_DEFAULT_AGENT_ID, getAiModelConnectionById, listAiModelConnections, readModelConnectionCredential } from "./model-settings.js";
9
9
  import { getAiProcessorById, listAiProcessorLinks, listAiProcessors } from "./ai-processors.js";
10
10
  import { buildConnectorOutputCatalogEntry, executeForgeBoxTool, resolveForgeBoxSnapshot } from "../connectors/box-registry.js";
11
- import { normalizeWorkbenchPortDefinition } from "../../../src/lib/workbench/nodes.js";
11
+ import { normalizeWorkbenchPortDefinition } from "../../../web/src/lib/workbench/nodes.js";
12
12
  const execFile = promisify(execFileCallback);
13
13
  const MAX_TOOL_STEPS = 6;
14
14
  const MAX_RUN_HISTORY = 20;