forge-openclaw-plugin 0.3.15 → 0.3.16

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 (362) hide show
  1. package/README.md +6 -6
  2. package/dist/assets/{action-bar-B9MYlps2.js → action-bar-DgrmzFrI.js} +1 -1
  3. package/dist/assets/{activity-page-DbzbChcE.js → activity-page-CF451ueg.js} +1 -1
  4. package/dist/assets/{ai-surface-workspace-CF0257Hs.js → ai-surface-workspace-DtwybxJB.js} +1 -1
  5. package/dist/assets/{atlas-panel-CO3RYAKn.js → atlas-panel-CB3uYk_K.js} +1 -1
  6. package/dist/assets/{calendar-page-BuuHKEHC.js → calendar-page-BYsDuLnh.js} +1 -1
  7. package/dist/assets/{calendar-rules-DKftgNx5.js → calendar-rules-DXuOv2J-.js} +1 -1
  8. package/dist/assets/{calendar-week-toolbar-ChIpkT-G.js → calendar-week-toolbar-8PJmiUE_.js} +1 -1
  9. package/dist/assets/{companion-sync-lab-page-BZRX4Btw.js → companion-sync-lab-page-DzWNOaBh.js} +1 -1
  10. package/dist/assets/{daily-metrics-dashboard-CXDsaAQd.js → daily-metrics-dashboard-CHcYxDhs.js} +1 -1
  11. package/dist/assets/{define-workbench-box-CpG0Zb1L.js → define-workbench-box-DcI0_QKW.js} +1 -1
  12. package/dist/assets/{entity-link-multiselect-Dl4rZqdg.js → entity-link-multiselect-C--AiCMb.js} +1 -1
  13. package/dist/assets/{entity-note-count-link-Bs1aKYyD.js → entity-note-count-link-xne6mshj.js} +1 -1
  14. package/dist/assets/{entity-notes-surface-B56XSw7M.js → entity-notes-surface-jy6Psist.js} +1 -1
  15. package/dist/assets/{execution-board-D66C_ikW.js → execution-board-BSUZCIIx.js} +1 -1
  16. package/dist/assets/{faceted-token-search-Dg2rjknH.js → faceted-token-search-BMQ1Wwzt.js} +1 -1
  17. package/dist/assets/{flagship-signal-deck-C6KVPhmM.js → flagship-signal-deck-DjcskRwF.js} +1 -1
  18. package/dist/assets/{floating-action-menu-DAFAEBcA.js → floating-action-menu-cGhbJ2tc.js} +1 -1
  19. package/dist/assets/{generic-node-view-C6DK5hJ6.js → generic-node-view-DNVwfqqq.js} +1 -1
  20. package/dist/assets/{goal-detail-page-CC4VXud6.js → goal-detail-page-dAbyCilO.js} +1 -1
  21. package/dist/assets/{goal-dialog-15hD8EBp.js → goal-dialog-DH50D0tP.js} +1 -1
  22. package/dist/assets/{goals-page-CQ2lJMzI.js → goals-page-DkMy9mPD.js} +1 -1
  23. package/dist/assets/{habits-page-a7KVPaQp.js → habits-page-CCQR8rg6.js} +1 -1
  24. package/dist/assets/{health-boxes-DqgvIYoL.js → health-boxes-BPTgGM6G.js} +1 -1
  25. package/dist/assets/index-VzCGTBS_.css +1 -0
  26. package/dist/assets/{index-FpGANF9S.js → index-izRKx6JK.js} +2 -2
  27. package/dist/assets/{inline-note-fields-COgzxr_7.js → inline-note-fields-D4mCM1gO.js} +1 -1
  28. package/dist/assets/{insight-flow-dialog-Dmb6NSGp.js → insight-flow-dialog-Btp6bkbV.js} +1 -1
  29. package/dist/assets/{insights-page-OnqR4cYI.js → insights-page-1qM4mxjS.js} +1 -1
  30. package/dist/assets/{kanban-boxes-BWUzntCV.js → kanban-boxes-u_A-UJG-.js} +1 -1
  31. package/dist/assets/{kanban-page-BI16Gzp_.js → kanban-page-CKCa_3Qb.js} +1 -1
  32. package/dist/assets/{knowledge-graph-page-DxEBaEke.js → knowledge-graph-page-BZOxRv19.js} +1 -1
  33. package/dist/assets/{life-force-page-CDEXEQai.js → life-force-page-BZlyA144.js} +1 -1
  34. package/dist/assets/{life-force-workspace-C7UOnJEf.js → life-force-workspace-CtAWZXNw.js} +1 -1
  35. package/dist/assets/{metric-tile-boeHB1R1.js → metric-tile-Bkx2btO2.js} +1 -1
  36. package/dist/assets/{movement-boxes-BUSqaTL2.js → movement-boxes-QZ2EIS9q.js} +1 -1
  37. package/dist/assets/{movement-page-DcbO0497.js → movement-page-B-3ihggI.js} +1 -1
  38. package/dist/assets/{note-markdown-DXXI3W3V.js → note-markdown-BWedRE3c.js} +1 -1
  39. package/dist/assets/{note-tags-input-CYh3TVW2.js → note-tags-input-DZkCqI1w.js} +1 -1
  40. package/dist/assets/{notes-boxes-CMJXX2K0.js → notes-boxes-DGFmt7Dp.js} +1 -1
  41. package/dist/assets/{notes-page-DvHMcQey.js → notes-page-DYkn04tz.js} +1 -1
  42. package/dist/assets/{open-in-graph-button-4UYrp1XP.js → open-in-graph-button-CjvkEj1P.js} +1 -1
  43. package/dist/assets/{orbit-map-BwK7sDaC.js → orbit-map-CRHSPenk.js} +1 -1
  44. package/dist/assets/{overview-page-Z5vaUTm3.js → overview-page-D6LsjPWe.js} +1 -1
  45. package/dist/assets/{page-hero-DvrM83_C.js → page-hero-BLhM8FF3.js} +1 -1
  46. package/dist/assets/{pill-cluster-DYI3Ibj8.js → pill-cluster-B5bYs_e2.js} +1 -1
  47. package/dist/assets/{preference-entity-handoff-button-C2ATjvws.js → preference-entity-handoff-button-CfCQl3cW.js} +1 -1
  48. package/dist/assets/{preferences-page-BAexXHye.js → preferences-page-OltGdsQ2.js} +1 -1
  49. package/dist/assets/{project-collections-B9nr-Ts-.js → project-collections-FfBIVwXu.js} +1 -1
  50. package/dist/assets/{project-detail-page-B9PqyPu9.js → project-detail-page-CCm3iZPQ.js} +1 -1
  51. package/dist/assets/{project-dialog-CBA-D65n.js → project-dialog-B_J1ESMk.js} +1 -1
  52. package/dist/assets/{project-management-hierarchy-page-DXK14jn0.js → project-management-hierarchy-page-BNzvtNZj.js} +1 -1
  53. package/dist/assets/{project-management-section-nav-DJ3QKCtr.js → project-management-section-nav-DBNHt9p5.js} +1 -1
  54. package/dist/assets/{projects-boxes-iBu_PRqe.js → projects-boxes-BvlVsO5q.js} +1 -1
  55. package/dist/assets/{projects-page-CdAk-ByT.js → projects-page-BUf7KV-_.js} +1 -1
  56. package/dist/assets/{psyche-behaviors-page-CbhhTfU2.js → psyche-behaviors-page-jtyhdpJ1.js} +1 -1
  57. package/dist/assets/{psyche-flashcards-page-DQaw_vUQ.js → psyche-flashcards-page-05606-97.js} +1 -1
  58. package/dist/assets/{psyche-goal-map-page-C-ZTVOEP.js → psyche-goal-map-page-Cw-aqS3Y.js} +1 -1
  59. package/dist/assets/{psyche-graph-DYzeClxn.js → psyche-graph-0E22QHPe.js} +1 -1
  60. package/dist/assets/{psyche-metrics-page-C9hKn10A.js → psyche-metrics-page-DBFVPeMa.js} +1 -1
  61. package/dist/assets/{psyche-mode-guide-page-CR8e984W.js → psyche-mode-guide-page-DI-LNEDT.js} +1 -1
  62. package/dist/assets/psyche-modes-page-CaMupyfi.js +1 -0
  63. package/dist/assets/{psyche-page-CTdIDkw9.js → psyche-page-CFBq0YKf.js} +1 -1
  64. package/dist/assets/{psyche-patterns-page-Drgm-f7I.js → psyche-patterns-page-sp4ikoef.js} +1 -1
  65. package/dist/assets/{psyche-questionnaire-builder-page-gRwdGXde.js → psyche-questionnaire-builder-page-DEt0UDsz.js} +1 -1
  66. package/dist/assets/{psyche-questionnaire-detail-page-CIP9b2UI.js → psyche-questionnaire-detail-page-BXQbOE6A.js} +1 -1
  67. package/dist/assets/{psyche-questionnaire-run-detail-page-SYndwtF3.js → psyche-questionnaire-run-detail-page-Cd3ClsSK.js} +1 -1
  68. package/dist/assets/{psyche-questionnaire-run-page-CXiJyd5i.js → psyche-questionnaire-run-page-D_EokOQm.js} +1 -1
  69. package/dist/assets/{psyche-questionnaires-page-CFPKwA3O.js → psyche-questionnaires-page-D1Ov2L4n.js} +1 -1
  70. package/dist/assets/{psyche-report-detail-page-dU30a2WE.js → psyche-report-detail-page-9HyPr8BJ.js} +1 -1
  71. package/dist/assets/{psyche-reports-page-Cn0EBndy.js → psyche-reports-page-BeyJg5fb.js} +1 -1
  72. package/dist/assets/{psyche-schemas-beliefs-page-Bab4xSWv.js → psyche-schemas-beliefs-page-DNmf-Vma.js} +1 -1
  73. package/dist/assets/{psyche-screen-time-page-lIe6GQxJ.js → psyche-screen-time-page-DJMDR5oo.js} +1 -1
  74. package/dist/assets/{psyche-self-observation-page-BTE3KfIl.js → psyche-self-observation-page-DFKXG1Yv.js} +1 -1
  75. package/dist/assets/{psyche-values-page-DclBZ9xw.js → psyche-values-page-TWKth89J.js} +1 -1
  76. package/dist/assets/{question-flow-dialog-Ded2E85L.js → question-flow-dialog-D-_EvoAt.js} +1 -1
  77. package/dist/assets/{report-chain-fields-DY640iqL.js → report-chain-fields-Dy-jBQDn.js} +1 -1
  78. package/dist/assets/{rewards-page-FxUXB76B.js → rewards-page-D3ymEd2X.js} +1 -1
  79. package/dist/assets/{scheduling-rules-editor-jakFfxqF.js → scheduling-rules-editor-CAd290IE.js} +1 -1
  80. package/dist/assets/{schema-badge-30B5syHA.js → schema-badge-BLaVI1D7.js} +1 -1
  81. package/dist/assets/{schemas-Db29G8NU.js → schemas-B0Pa-V-A.js} +1 -1
  82. package/dist/assets/{select-menu-BF2zI3RW.js → select-menu-DcS4Ukjf.js} +1 -1
  83. package/dist/assets/{settings-agents-page-Bh-Bv6FQ.js → settings-agents-page-Bt38HhEJ.js} +1 -1
  84. package/dist/assets/{settings-bin-page-DT8JJero.js → settings-bin-page-DqyVI1i1.js} +1 -1
  85. package/dist/assets/{settings-calendar-page-BA4_Qqiu.js → settings-calendar-page-DPSSZV3s.js} +1 -1
  86. package/dist/assets/{settings-data-page-K4kpmQJY.js → settings-data-page-BdHsD1C_.js} +1 -1
  87. package/dist/assets/{settings-logs-page-DkuNPAZo.js → settings-logs-page-D9OnWoFq.js} +1 -1
  88. package/dist/assets/{settings-mobile-page-4pCNwD91.js → settings-mobile-page-DFpsXA4M.js} +1 -1
  89. package/dist/assets/{settings-models-page-CZHG3t7W.js → settings-models-page-DaFXLp-O.js} +1 -1
  90. package/dist/assets/{settings-page-B_Be0vOY.js → settings-page-m_3iYPwU.js} +1 -1
  91. package/dist/assets/{settings-rewards-page-C6nFTWJu.js → settings-rewards-page-B2aBm-dA.js} +1 -1
  92. package/dist/assets/{settings-section-nav-Lo-VKCfZ.js → settings-section-nav-CMeU19Rx.js} +1 -1
  93. package/dist/assets/{settings-users-page-CVzNp4-m.js → settings-users-page-D8jyewJl.js} +1 -1
  94. package/dist/assets/{settings-wiki-page-DXM--7BB.js → settings-wiki-page-DjOgQJAh.js} +1 -1
  95. package/dist/assets/{sleep-page-DvPdZMKx.js → sleep-page-D8-dA4bE.js} +1 -1
  96. package/dist/assets/{sports-page-DjuZlOur.js → sports-page-CK3PgPKB.js} +1 -1
  97. package/dist/assets/{strategies-page-PE1IlatS.js → strategies-page-aFpJath-.js} +1 -1
  98. package/dist/assets/{strategy-detail-page-C4KiEGCI.js → strategy-detail-page-CobF5qLv.js} +1 -1
  99. package/dist/assets/{strategy-dialog-Cwf7Y3P5.js → strategy-dialog-Fgoaoob5.js} +1 -1
  100. package/dist/assets/{surface-ubuOfukq.js → surface-D0dqgX-k.js} +1 -1
  101. package/dist/assets/{task-detail-page-B3SMFZQ3.js → task-detail-page-CDK79bzk.js} +1 -1
  102. package/dist/assets/{task-dialog-CI_Fy_FW.js → task-dialog-eCDTF8xe.js} +4 -4
  103. package/dist/assets/{timebox-planning-dialog-BtFuVoA1.js → timebox-planning-dialog-CNZIGSpd.js} +1 -1
  104. package/dist/assets/{today-boxes-CYuxSkZf.js → today-boxes-CYfskVrM.js} +1 -1
  105. package/dist/assets/{today-page-CHGpLEZ3.js → today-page-Bnh8wopq.js} +1 -1
  106. package/dist/assets/{training-load-page-GZJF-Yy5.js → training-load-page-C7lq-jqy.js} +1 -1
  107. package/dist/assets/{user-badge-ByhC6bMU.js → user-badge-MEZuJiir.js} +1 -1
  108. package/dist/assets/{utility-widgets-ilORjDmg.js → utility-widgets-h5eG2jvc.js} +1 -1
  109. package/dist/assets/{vitals-page-mdEqIm_9.js → vitals-page-eoFnQ3XL.js} +1 -1
  110. package/dist/assets/{weekly-review-page-C8W-yg5r.js → weekly-review-page-C7BU1gkK.js} +1 -1
  111. package/dist/assets/{weight-loss-page-BApTknCn.js → weight-loss-page-Cc7Do3XY.js} +1 -1
  112. package/dist/assets/{wiki-article-markdown-DBccllQg.js → wiki-article-markdown-CCKoSptz.js} +1 -1
  113. package/dist/assets/{wiki-editor-page-BfRfH1O3.js → wiki-editor-page-BpbxZrgz.js} +1 -1
  114. package/dist/assets/{wiki-ingest-history-page-C-6H3MU6.js → wiki-ingest-history-page-D5Wfr8pc.js} +1 -1
  115. package/dist/assets/{wiki-ingest-modal-DnlhByD_.js → wiki-ingest-modal-DhRVsEwC.js} +1 -1
  116. package/dist/assets/{wiki-page-DPZ55e3x.js → wiki-page-1vf-HErs.js} +1 -1
  117. package/dist/assets/{workbench-flow-page-_-NKIx5R.js → workbench-flow-page-y9FxDbKO.js} +1 -1
  118. package/dist/assets/{workbench-page-NIAzggwX.js → workbench-page-Da16AZvN.js} +1 -1
  119. package/dist/assets/{workout-detail-page-3fxr6HL4.js → workout-detail-page-Cq0YamXF.js} +1 -1
  120. package/dist/index.html +2 -2
  121. package/dist/openclaw/api-client.js +28 -2
  122. package/dist/openclaw/local-runtime.js +31 -14
  123. package/dist/server/{server → apps/api}/src/app.js +1 -1
  124. package/dist/server/{server → apps/api}/src/connectors/box-registry.js +3 -3
  125. package/dist/server/{server → apps/api}/src/db.js +23 -4
  126. package/dist/server/{server → apps/api}/src/health-weight-loss.js +1 -1
  127. package/dist/server/{server → apps/api}/src/questionnaire-seeds.js +1 -1
  128. package/dist/server/{server → apps/api}/src/repositories/ai-connectors.js +1 -1
  129. package/dist/server/{server → apps/api}/src/repositories/habits.js +1 -1
  130. package/dist/server/{server → apps/api}/src/services/companion-iroh.js +4 -1
  131. package/dist/server/{server → apps/api}/src/services/doctor.js +3 -3
  132. package/dist/server/{server → apps/api}/src/services/gamification-assets.js +1 -1
  133. package/dist/server/{server → apps/api}/src/services/gamification.js +1 -1
  134. package/dist/server/{server → apps/api}/src/services/knowledge-graph.js +3 -3
  135. package/dist/server/{server → apps/api}/src/types.js +2 -2
  136. package/dist/server/{server → apps/api}/src/watch-mobile.js +1 -1
  137. package/openclaw.plugin.json +1 -1
  138. package/package.json +3 -3
  139. package/server/index.js +3 -3
  140. package/skills/forge-openclaw/SKILL.md +5 -5
  141. package/dist/assets/index-ClJbJhca.css +0 -1
  142. package/dist/assets/psyche-modes-page-lQdpAcY3.js +0 -1
  143. /package/dist/server/{server → apps/api}/migrations/001_core.sql +0 -0
  144. /package/dist/server/{server → apps/api}/migrations/002_psyche.sql +0 -0
  145. /package/dist/server/{server → apps/api}/migrations/003_habits.sql +0 -0
  146. /package/dist/server/{server → apps/api}/migrations/004_habit_links.sql +0 -0
  147. /package/dist/server/{server → apps/api}/migrations/005_habit_psyche_links.sql +0 -0
  148. /package/dist/server/{server → apps/api}/migrations/006_work_adjustments.sql +0 -0
  149. /package/dist/server/{server → apps/api}/migrations/007_weekly_review_closures.sql +0 -0
  150. /package/dist/server/{server → apps/api}/migrations/008_calendar_execution.sql +0 -0
  151. /package/dist/server/{server → apps/api}/migrations/009_true_calendar_events.sql +0 -0
  152. /package/dist/server/{server → apps/api}/migrations/010_calendar_selection_state.sql +0 -0
  153. /package/dist/server/{server → apps/api}/migrations/011_calendar_timezone_backfill.sql +0 -0
  154. /package/dist/server/{server → apps/api}/migrations/012_work_block_ranges.sql +0 -0
  155. /package/dist/server/{server → apps/api}/migrations/013_microsoft_local_auth_settings.sql +0 -0
  156. /package/dist/server/{server → apps/api}/migrations/014_note_tags_and_ephemeral.sql +0 -0
  157. /package/dist/server/{server → apps/api}/migrations/015_multi_user_and_strategies.sql +0 -0
  158. /package/dist/server/{server → apps/api}/migrations/016_health_companion.sql +0 -0
  159. /package/dist/server/{server → apps/api}/migrations/016_strategy_contracts_and_user_graph.sql +0 -0
  160. /package/dist/server/{server → apps/api}/migrations/017_preferences.sql +0 -0
  161. /package/dist/server/{server → apps/api}/migrations/018_preference_catalogs.sql +0 -0
  162. /package/dist/server/{server → apps/api}/migrations/019_wiki_memory.sql +0 -0
  163. /package/dist/server/{server → apps/api}/migrations/020_wiki_page_hierarchy.sql +0 -0
  164. /package/dist/server/{server → apps/api}/migrations/021_hide_evidence_from_wiki_index.sql +0 -0
  165. /package/dist/server/{server → apps/api}/migrations/022_wiki_ingest_background.sql +0 -0
  166. /package/dist/server/{server → apps/api}/migrations/023_diagnostic_logs.sql +0 -0
  167. /package/dist/server/{server → apps/api}/migrations/024_questionnaires.sql +0 -0
  168. /package/dist/server/{server → apps/api}/migrations/025_ai_model_connections.sql +0 -0
  169. /package/dist/server/{server → apps/api}/migrations/026_custom_theme_settings.sql +0 -0
  170. /package/dist/server/{server → apps/api}/migrations/027_ai_processors.sql +0 -0
  171. /package/dist/server/{server → apps/api}/migrations/028_movement_domain.sql +0 -0
  172. /package/dist/server/{server → apps/api}/migrations/029_watch_micro_capture.sql +0 -0
  173. /package/dist/server/{server → apps/api}/migrations/030_surface_layouts.sql +0 -0
  174. /package/dist/server/{server → apps/api}/migrations/031_ai_processor_runtime_upgrades.sql +0 -0
  175. /package/dist/server/{server → apps/api}/migrations/032_ai_connectors.sql +0 -0
  176. /package/dist/server/{server → apps/api}/migrations/033_movement_trip_point_sync.sql +0 -0
  177. /package/dist/server/{server → apps/api}/migrations/034_movement_segment_sync.sql +0 -0
  178. /package/dist/server/{server → apps/api}/migrations/035_google_local_auth_settings.sql +0 -0
  179. /package/dist/server/{server → apps/api}/migrations/036_google_local_auth_client_secret.sql +0 -0
  180. /package/dist/server/{server → apps/api}/migrations/037_workbench_public_inputs_and_run_inputs.sql +0 -0
  181. /package/dist/server/{server → apps/api}/migrations/038_data_management_settings.sql +0 -0
  182. /package/dist/server/{server → apps/api}/migrations/039_life_force_and_action_points.sql +0 -0
  183. /package/dist/server/{server → apps/api}/migrations/040_screen_time_domain.sql +0 -0
  184. /package/dist/server/{server → apps/api}/migrations/041_companion_source_states.sql +0 -0
  185. /package/dist/server/{server → apps/api}/migrations/042_movement_boxes.sql +0 -0
  186. /package/dist/server/{server → apps/api}/migrations/043_movement_box_overlap_overrides.sql +0 -0
  187. /package/dist/server/{server → apps/api}/migrations/044_macos_local_calendar_provider.sql +0 -0
  188. /package/dist/server/{server → apps/api}/migrations/045_sleep_nights_and_raw_segments.sql +0 -0
  189. /package/dist/server/{server → apps/api}/migrations/046_work_item_hierarchy.sql +0 -0
  190. /package/dist/server/{server → apps/api}/migrations/047_sleep_source_records.sql +0 -0
  191. /package/dist/server/{server → apps/api}/migrations/048_task_run_git_context.sql +0 -0
  192. /package/dist/server/{server → apps/api}/migrations/049_agent_runtime_sessions.sql +0 -0
  193. /package/dist/server/{server → apps/api}/migrations/050_agent_token_bootstrap_policy.sql +0 -0
  194. /package/dist/server/{server → apps/api}/migrations/051_agent_token_scope_policy.sql +0 -0
  195. /package/dist/server/{server → apps/api}/migrations/052_agent_identity_tightening.sql +0 -0
  196. /package/dist/server/{server → apps/api}/migrations/053_agent_runtime_session_canonical_labels.sql +0 -0
  197. /package/dist/server/{server → apps/api}/migrations/054_sqlite_backed_wiki_memory.sql +0 -0
  198. /package/dist/server/{server → apps/api}/migrations/055_gamification_progression.sql +0 -0
  199. /package/dist/server/{server → apps/api}/migrations/056_gamification_equipment.sql +0 -0
  200. /package/dist/server/{server → apps/api}/migrations/057_gamification_catalog_cleanup.sql +0 -0
  201. /package/dist/server/{server → apps/api}/migrations/058_gamification_theme_preference.sql +0 -0
  202. /package/dist/server/{server → apps/api}/migrations/059_data_backup_retention.sql +0 -0
  203. /package/dist/server/{server → apps/api}/migrations/060_psyche_devrage_metrics.sql +0 -0
  204. /package/dist/server/{server → apps/api}/migrations/061_health_workout_raw_evidence.sql +0 -0
  205. /package/dist/server/{server → apps/api}/migrations/062_health_mobile_sync_sessions.sql +0 -0
  206. /package/dist/server/{server → apps/api}/migrations/063_psyche_flashcards.sql +0 -0
  207. /package/dist/server/{server → apps/api}/migrations/064_health_workout_time_series_identity.sql +0 -0
  208. /package/dist/server/{server → apps/api}/migrations/065_weight_loss_nutrition_insights.sql +0 -0
  209. /package/dist/server/{server → apps/api}/migrations/066_watch_action_receipts.sql +0 -0
  210. /package/dist/server/{server → apps/api}/migrations/067_weight_loss_daily_active_overrides.sql +0 -0
  211. /package/dist/server/{server → apps/api}/migrations/068_remove_generated_movement_wiki_logs.sql +0 -0
  212. /package/dist/server/{server → apps/api}/migrations/069_psyche_devrage_cumulative_rage.sql +0 -0
  213. /package/dist/server/{server → apps/api}/migrations/070_health_mobile_sync_completion_index.sql +0 -0
  214. /package/dist/server/{server → apps/api}/migrations/071_agent_runtime_claude_identity.sql +0 -0
  215. /package/dist/server/{server → apps/api}/src/data-management-types.js +0 -0
  216. /package/dist/server/{server → apps/api}/src/debug.js +0 -0
  217. /package/dist/server/{server → apps/api}/src/demo-data.js +0 -0
  218. /package/dist/server/{server → apps/api}/src/discovery-advertiser.js +0 -0
  219. /package/dist/server/{server → apps/api}/src/e2e-server.js +0 -0
  220. /package/dist/server/{server → apps/api}/src/errors.js +0 -0
  221. /package/dist/server/{server → apps/api}/src/health-workout-adapters.js +0 -0
  222. /package/dist/server/{server → apps/api}/src/health-workout-analytics.js +0 -0
  223. /package/dist/server/{server → apps/api}/src/health.js +0 -0
  224. /package/dist/server/{server → apps/api}/src/index.js +0 -0
  225. /package/dist/server/{server → apps/api}/src/managers/base.js +0 -0
  226. /package/dist/server/{server → apps/api}/src/managers/contracts.js +0 -0
  227. /package/dist/server/{server → apps/api}/src/managers/platform/api-gateway-manager.js +0 -0
  228. /package/dist/server/{server → apps/api}/src/managers/platform/audit-manager.js +0 -0
  229. /package/dist/server/{server → apps/api}/src/managers/platform/authentication-manager.js +0 -0
  230. /package/dist/server/{server → apps/api}/src/managers/platform/authorization-manager.js +0 -0
  231. /package/dist/server/{server → apps/api}/src/managers/platform/background-job-manager.js +0 -0
  232. /package/dist/server/{server → apps/api}/src/managers/platform/configuration-manager.js +0 -0
  233. /package/dist/server/{server → apps/api}/src/managers/platform/database-manager.js +0 -0
  234. /package/dist/server/{server → apps/api}/src/managers/platform/event-bus-manager.js +0 -0
  235. /package/dist/server/{server → apps/api}/src/managers/platform/external-service-manager.js +0 -0
  236. /package/dist/server/{server → apps/api}/src/managers/platform/health-manager.js +0 -0
  237. /package/dist/server/{server → apps/api}/src/managers/platform/llm-manager.js +0 -0
  238. /package/dist/server/{server → apps/api}/src/managers/platform/migration-manager.js +0 -0
  239. /package/dist/server/{server → apps/api}/src/managers/platform/mock-workbench-provider.js +0 -0
  240. /package/dist/server/{server → apps/api}/src/managers/platform/openai-responses-provider.js +0 -0
  241. /package/dist/server/{server → apps/api}/src/managers/platform/search-index-manager.js +0 -0
  242. /package/dist/server/{server → apps/api}/src/managers/platform/secrets-manager.js +0 -0
  243. /package/dist/server/{server → apps/api}/src/managers/platform/session-manager.js +0 -0
  244. /package/dist/server/{server → apps/api}/src/managers/platform/storage-manager.js +0 -0
  245. /package/dist/server/{server → apps/api}/src/managers/platform/token-manager.js +0 -0
  246. /package/dist/server/{server → apps/api}/src/managers/platform/transaction-manager.js +0 -0
  247. /package/dist/server/{server → apps/api}/src/managers/platform/trusted-network.js +0 -0
  248. /package/dist/server/{server → apps/api}/src/managers/runtime.js +0 -0
  249. /package/dist/server/{server → apps/api}/src/managers/type-guards.js +0 -0
  250. /package/dist/server/{server → apps/api}/src/movement.js +0 -0
  251. /package/dist/server/{server → apps/api}/src/openapi.js +0 -0
  252. /package/dist/server/{server → apps/api}/src/preferences-seeds.js +0 -0
  253. /package/dist/server/{server → apps/api}/src/preferences-types.js +0 -0
  254. /package/dist/server/{server → apps/api}/src/psyche-types.js +0 -0
  255. /package/dist/server/{server → apps/api}/src/questionnaire-flow.js +0 -0
  256. /package/dist/server/{server → apps/api}/src/questionnaire-types.js +0 -0
  257. /package/dist/server/{server → apps/api}/src/repositories/activity-events.js +0 -0
  258. /package/dist/server/{server → apps/api}/src/repositories/agent-runtime-sessions.js +0 -0
  259. /package/dist/server/{server → apps/api}/src/repositories/ai-processors.js +0 -0
  260. /package/dist/server/{server → apps/api}/src/repositories/calendar.js +0 -0
  261. /package/dist/server/{server → apps/api}/src/repositories/collaboration.js +0 -0
  262. /package/dist/server/{server → apps/api}/src/repositories/deleted-entities.js +0 -0
  263. /package/dist/server/{server → apps/api}/src/repositories/diagnostic-logs.js +0 -0
  264. /package/dist/server/{server → apps/api}/src/repositories/domains.js +0 -0
  265. /package/dist/server/{server → apps/api}/src/repositories/entity-ownership.js +0 -0
  266. /package/dist/server/{server → apps/api}/src/repositories/event-log.js +0 -0
  267. /package/dist/server/{server → apps/api}/src/repositories/gamification.js +0 -0
  268. /package/dist/server/{server → apps/api}/src/repositories/goals.js +0 -0
  269. /package/dist/server/{server → apps/api}/src/repositories/model-settings.js +0 -0
  270. /package/dist/server/{server → apps/api}/src/repositories/notes.js +0 -0
  271. /package/dist/server/{server → apps/api}/src/repositories/preferences.js +0 -0
  272. /package/dist/server/{server → apps/api}/src/repositories/projects.js +0 -0
  273. /package/dist/server/{server → apps/api}/src/repositories/psyche.js +0 -0
  274. /package/dist/server/{server → apps/api}/src/repositories/questionnaires.js +0 -0
  275. /package/dist/server/{server → apps/api}/src/repositories/rewards.js +0 -0
  276. /package/dist/server/{server → apps/api}/src/repositories/settings.js +0 -0
  277. /package/dist/server/{server → apps/api}/src/repositories/strategies.js +0 -0
  278. /package/dist/server/{server → apps/api}/src/repositories/surface-layouts.js +0 -0
  279. /package/dist/server/{server → apps/api}/src/repositories/tags.js +0 -0
  280. /package/dist/server/{server → apps/api}/src/repositories/task-runs.js +0 -0
  281. /package/dist/server/{server → apps/api}/src/repositories/tasks.js +0 -0
  282. /package/dist/server/{server → apps/api}/src/repositories/users.js +0 -0
  283. /package/dist/server/{server → apps/api}/src/repositories/weekly-reviews.js +0 -0
  284. /package/dist/server/{server → apps/api}/src/repositories/wiki-memory.js +0 -0
  285. /package/dist/server/{server → apps/api}/src/repositories/work-adjustments.js +0 -0
  286. /package/dist/server/{server → apps/api}/src/runtime-data-root.js +0 -0
  287. /package/dist/server/{server → apps/api}/src/screen-time.js +0 -0
  288. /package/dist/server/{server → apps/api}/src/seed-demo.js +0 -0
  289. /package/dist/server/{server → apps/api}/src/services/calendar-runtime.js +0 -0
  290. /package/dist/server/{server → apps/api}/src/services/context.js +0 -0
  291. /package/dist/server/{server → apps/api}/src/services/dashboard.js +0 -0
  292. /package/dist/server/{server → apps/api}/src/services/data-management.js +0 -0
  293. /package/dist/server/{server → apps/api}/src/services/devrage-scanner.js +0 -0
  294. /package/dist/server/{server → apps/api}/src/services/devrage.js +0 -0
  295. /package/dist/server/{server → apps/api}/src/services/entity-crud.js +0 -0
  296. /package/dist/server/{server → apps/api}/src/services/git-helper.js +0 -0
  297. /package/dist/server/{server → apps/api}/src/services/google-calendar-oauth-config.js +0 -0
  298. /package/dist/server/{server → apps/api}/src/services/insights.js +0 -0
  299. /package/dist/server/{server → apps/api}/src/services/legacy-wiki-markdown-import.js +0 -0
  300. /package/dist/server/{server → apps/api}/src/services/life-force-model.js +0 -0
  301. /package/dist/server/{server → apps/api}/src/services/life-force.js +0 -0
  302. /package/dist/server/{server → apps/api}/src/services/macos-calendar-helper.js +0 -0
  303. /package/dist/server/{server → apps/api}/src/services/openai-codex-oauth.js +0 -0
  304. /package/dist/server/{server → apps/api}/src/services/projects.js +0 -0
  305. /package/dist/server/{server → apps/api}/src/services/psyche-observation-calendar.js +0 -0
  306. /package/dist/server/{server → apps/api}/src/services/psyche.js +0 -0
  307. /package/dist/server/{server → apps/api}/src/services/relations.js +0 -0
  308. /package/dist/server/{server → apps/api}/src/services/reviews.js +0 -0
  309. /package/dist/server/{server → apps/api}/src/services/run-recovery.js +0 -0
  310. /package/dist/server/{server → apps/api}/src/services/tagging.js +0 -0
  311. /package/dist/server/{server → apps/api}/src/services/task-run-watchdog.js +0 -0
  312. /package/dist/server/{server → apps/api}/src/services/work-time.js +0 -0
  313. /package/dist/server/{server → apps/api}/src/web.js +0 -0
  314. /package/dist/server/{src → apps/web/src}/components/customization/utility-widgets.js +0 -0
  315. /package/dist/server/{src → apps/web/src}/components/ui/info-tooltip.js +0 -0
  316. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/calendar/calendar-boxes.js +0 -0
  317. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/goals/goals-boxes.js +0 -0
  318. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/habits/habits-boxes.js +0 -0
  319. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/health/health-boxes.js +0 -0
  320. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/insights/insights-boxes.js +0 -0
  321. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/kanban/kanban-boxes.js +0 -0
  322. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/movement/movement-boxes.js +0 -0
  323. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/notes/notes-boxes.js +0 -0
  324. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/overview/overview-boxes.js +0 -0
  325. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/preferences/preferences-boxes.js +0 -0
  326. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/projects/projects-boxes.js +0 -0
  327. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/psyche/psyche-boxes.js +0 -0
  328. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/questionnaires/questionnaires-boxes.js +0 -0
  329. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/review/review-boxes.js +0 -0
  330. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/shared/define-workbench-box.js +0 -0
  331. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/shared/generic-node-view.js +0 -0
  332. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/strategies/strategies-boxes.js +0 -0
  333. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/tasks/tasks-boxes.js +0 -0
  334. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/today/today-boxes.js +0 -0
  335. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/wiki/wiki-boxes.js +0 -0
  336. /package/dist/server/{src → apps/web/src}/lib/api-error.js +0 -0
  337. /package/dist/server/{src → apps/web/src}/lib/api.js +0 -0
  338. /package/dist/server/{src → apps/web/src}/lib/calendar-name-deduper.js +0 -0
  339. /package/dist/server/{src → apps/web/src}/lib/data-management-types.js +0 -0
  340. /package/dist/server/{src → apps/web/src}/lib/date-keys.js +0 -0
  341. /package/dist/server/{src → apps/web/src}/lib/diagnostics.js +0 -0
  342. /package/dist/server/{src → apps/web/src}/lib/entity-visuals.js +0 -0
  343. /package/dist/server/{src → apps/web/src}/lib/gamification-catalog.js +0 -0
  344. /package/dist/server/{src → apps/web/src}/lib/knowledge-graph-types.js +0 -0
  345. /package/dist/server/{src → apps/web/src}/lib/knowledge-graph.js +0 -0
  346. /package/dist/server/{src → apps/web/src}/lib/psyche-schemas.js +0 -0
  347. /package/dist/server/{src → apps/web/src}/lib/psyche-types.js +0 -0
  348. /package/dist/server/{src → apps/web/src}/lib/questionnaire-types.js +0 -0
  349. /package/dist/server/{src → apps/web/src}/lib/runtime-paths.js +0 -0
  350. /package/dist/server/{src → apps/web/src}/lib/schemas.js +0 -0
  351. /package/dist/server/{src → apps/web/src}/lib/snapshot-normalizer.js +0 -0
  352. /package/dist/server/{src → apps/web/src}/lib/theme-system.js +0 -0
  353. /package/dist/server/{src → apps/web/src}/lib/types.js +0 -0
  354. /package/dist/server/{src → apps/web/src}/lib/utils.js +0 -0
  355. /package/dist/server/{src → apps/web/src}/lib/weight-loss-energy-model.js +0 -0
  356. /package/dist/server/{src → apps/web/src}/lib/weight-loss-types.js +0 -0
  357. /package/dist/server/{src → apps/web/src}/lib/workbench/boxes.js +0 -0
  358. /package/dist/server/{src → apps/web/src}/lib/workbench/contracts.js +0 -0
  359. /package/dist/server/{src → apps/web/src}/lib/workbench/nodes.js +0 -0
  360. /package/dist/server/{src → apps/web/src}/lib/workbench/registry.js +0 -0
  361. /package/dist/server/{src → apps/web/src}/lib/workbench/runtime.js +0 -0
  362. /package/dist/server/{src → apps/web/src}/lib/workbench/tool-catalog.js +0 -0
@@ -15,10 +15,29 @@ function dateOffsetIso(days) {
15
15
  date.setUTCDate(date.getUTCDate() + days);
16
16
  return date.toISOString().slice(0, 10);
17
17
  }
18
- const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
19
- const migrationsDir = path.join(projectRoot, "server", "migrations");
20
- const monorepoForgeDataRoot = path.resolve(projectRoot, "..", "..", "data", "forge");
18
+ const moduleDir = path.dirname(fileURLToPath(import.meta.url));
19
+ const apiRoot = path.resolve(moduleDir, "..");
20
+ const migrationsDir = path.join(apiRoot, "migrations");
21
21
  const userSharedForgeDataRoot = path.join(os.homedir(), ".forge");
22
+ function findSourceProjectRoot(startDir) {
23
+ let current = path.resolve(startDir);
24
+ while (true) {
25
+ if (existsSync(path.join(current, "package.json")) &&
26
+ existsSync(path.join(current, "apps", "api", "migrations")) &&
27
+ existsSync(path.join(current, "apps", "web", "src"))) {
28
+ return current;
29
+ }
30
+ const parent = path.dirname(current);
31
+ if (parent === current) {
32
+ return null;
33
+ }
34
+ current = parent;
35
+ }
36
+ }
37
+ const sourceProjectRoot = findSourceProjectRoot(apiRoot);
38
+ const monorepoForgeDataRoot = sourceProjectRoot
39
+ ? path.resolve(sourceProjectRoot, "..", "..", "data", "forge")
40
+ : null;
22
41
  function resolveCanonicalDataDir(root = dataRoot) {
23
42
  return path.resolve(root);
24
43
  }
@@ -72,7 +91,7 @@ export function resolveDefaultDataRoot(currentWorkingDir = process.cwd()) {
72
91
  // Inside the private monorepo, prefer the tracked shared Forge data root so
73
92
  // the local app, Hermes, OpenClaw, and repo-managed data all point at the
74
93
  // same state by default.
75
- if (existsSync(monorepoForgeDataRoot)) {
94
+ if (monorepoForgeDataRoot && existsSync(monorepoForgeDataRoot)) {
76
95
  return monorepoForgeDataRoot;
77
96
  }
78
97
  return path.resolve(userSharedForgeDataRoot || currentWorkingDir);
@@ -4,7 +4,7 @@ import { getDatabase, runInTransaction } from "./db.js";
4
4
  import { getSettings } from "./repositories/settings.js";
5
5
  import { getDefaultUser, resolveUserForMutation } from "./repositories/users.js";
6
6
  import { readEncryptedSecret } from "./repositories/calendar.js";
7
- import { hallNiddkWeeklyRateKgToDailyEnergyAdjustment } from "../../src/lib/weight-loss-energy-model.js";
7
+ import { hallNiddkWeeklyRateKgToDailyEnergyAdjustment } from "../../web/src/lib/weight-loss-energy-model.js";
8
8
  const ACTIVE_BASELINE_WINDOW_DAYS = 7;
9
9
  const optionalNumberSchema = z
10
10
  .union([z.coerce.number().finite(), z.null()])
@@ -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;
@@ -11,7 +11,7 @@ import { recordActivityEvent } from "./activity-events.js";
11
11
  import { filterDeletedEntities, filterDeletedIds, isEntityDeleted } from "./deleted-entities.js";
12
12
  import { recordHabitCheckInReward, reverseLatestHabitCheckInReward } from "./rewards.js";
13
13
  import { createHabitCheckInSchema, createHabitSchema, habitCheckInSchema, habitSchema, updateHabitSchema } from "../types.js";
14
- import { formatLocalDateKey } from "../../../src/lib/date-keys.js";
14
+ import { formatLocalDateKey } from "../../../web/src/lib/date-keys.js";
15
15
  function todayKey(now = new Date()) {
16
16
  return formatLocalDateKey(now);
17
17
  }
@@ -317,19 +317,22 @@ function candidateIrohBinaries() {
317
317
  const binaryName = process.platform === "win32" ? "forge-companion-iroh.exe" : "forge-companion-iroh";
318
318
  const platformKey = `${process.platform}-${process.arch}`;
319
319
  return candidateIrohAssetRoots().flatMap((root) => [
320
+ path.join(root, "packages", "companion-iroh", "target", "release", binaryName),
321
+ path.join(root, "packages", "companion-iroh", "target", "debug", binaryName),
320
322
  path.join(root, "companion-iroh", "target", "release", binaryName),
321
323
  path.join(root, "companion-iroh", "target", "debug", binaryName),
322
324
  path.join(root, "companion-iroh-src", "target", "release", binaryName),
323
325
  path.join(root, "companion-iroh-src", "target", "debug", binaryName),
324
326
  path.join(root, "dist", "companion-iroh-src", "target", "release", binaryName),
325
327
  path.join(root, "dist", "companion-iroh-src", "target", "debug", binaryName),
326
- path.join(root, "openclaw-plugin", "dist", "companion-iroh", platformKey, binaryName),
328
+ path.join(root, "plugins/openclaw", "dist", "companion-iroh", platformKey, binaryName),
327
329
  path.join(root, "companion-iroh", platformKey, binaryName),
328
330
  path.join(root, "companion-iroh", binaryName)
329
331
  ]);
330
332
  }
331
333
  function resolveCompanionIrohManifestPath() {
332
334
  const candidates = candidateIrohAssetRoots().flatMap((root) => [
335
+ path.join(root, "packages", "companion-iroh", "Cargo.toml"),
333
336
  path.join(root, "companion-iroh", "Cargo.toml"),
334
337
  path.join(root, "companion-iroh-src", "Cargo.toml"),
335
338
  path.join(root, "dist", "companion-iroh-src", "Cargo.toml")
@@ -2,9 +2,9 @@ import { access, readdir } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { getDatabase, runInTransaction } from "../db.js";
5
- import { GAMIFICATION_CATALOG } from "../../../src/lib/gamification-catalog.js";
6
- const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "..");
7
- const migrationsDir = path.join(projectRoot, "server", "migrations");
5
+ import { GAMIFICATION_CATALOG } from "../../../web/src/lib/gamification-catalog.js";
6
+ const apiRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
7
+ const migrationsDir = path.join(apiRoot, "migrations");
8
8
  const safeIntegrityRefreshFix = {
9
9
  id: "settings.integrity.refresh",
10
10
  kind: "safe_auto_fix",
@@ -5,7 +5,7 @@ import { access, mkdir, readFile, rm, writeFile } from "node:fs/promises";
5
5
  import path from "node:path";
6
6
  import AdmZip from "adm-zip";
7
7
  import { getEffectiveDataRoot } from "../db.js";
8
- import { GAMIFICATION_CATALOG, GAMIFICATION_MASCOT_KEYS } from "../../../src/lib/gamification-catalog.js";
8
+ import { GAMIFICATION_CATALOG, GAMIFICATION_MASCOT_KEYS } from "../../../web/src/lib/gamification-catalog.js";
9
9
  const assetVersion = "0.2.59";
10
10
  const defaultReleaseBaseUrl = "https://github.com/albertbuchard/forge/releases/download/forge-gamification-assets-v0.2.59";
11
11
  const styleDefinitions = [
@@ -2,7 +2,7 @@ import { getDatabase } from "../db.js";
2
2
  import { enqueueGamificationCelebration, getGamificationEquipment, insertGamificationUnlock, listGamificationDailyActivity, listGamificationUnlocks, listUnseenGamificationCelebrations, replaceGamificationDailyActivity, upsertGamificationEquipment } from "../repositories/gamification.js";
3
3
  import { getDailyAmbientXp, listRewardRules, recordEntityCreationReward } from "../repositories/rewards.js";
4
4
  import { getDefaultUser, listUsers, listUsersByIds } from "../repositories/users.js";
5
- import { GAMIFICATION_CATALOG, GAMIFICATION_STREAK_AWAY_DAY_KEYS, GAMIFICATION_STREAK_POWER_DAY_KEYS } from "../../../src/lib/gamification-catalog.js";
5
+ import { GAMIFICATION_CATALOG, GAMIFICATION_STREAK_AWAY_DAY_KEYS, GAMIFICATION_STREAK_POWER_DAY_KEYS } from "../../../web/src/lib/gamification-catalog.js";
6
6
  import { achievementSignalSchema, gamificationCatalogPayloadSchema, gamificationProfileSchema, milestoneRewardSchema } from "../types.js";
7
7
  const XP_CURVE_VERSION = "smith-forge";
8
8
  const ENTITY_CREATION_REWARD_SOURCES = [
@@ -12,9 +12,9 @@ import { listTasks } from "../repositories/tasks.js";
12
12
  import { listWikiSpaces } from "../repositories/wiki-memory.js";
13
13
  import { listProjectSummaries } from "./projects.js";
14
14
  import { listAiConnectors } from "../repositories/ai-connectors.js";
15
- import { buildKnowledgeGraphFacets, buildKnowledgeGraphFocusPayload, filterKnowledgeGraphData, selectKnowledgeGraphVisibleNodeIds } from "../../../src/lib/knowledge-graph.js";
16
- import { getEntityVisual } from "../../../src/lib/entity-visuals.js";
17
- import { KNOWLEDGE_GRAPH_RELATION_FAMILY_MAP, buildKnowledgeGraphFocusHref, buildKnowledgeGraphNodeId, getKnowledgeGraphEntityHref } from "../../../src/lib/knowledge-graph-types.js";
15
+ import { buildKnowledgeGraphFacets, buildKnowledgeGraphFocusPayload, filterKnowledgeGraphData, selectKnowledgeGraphVisibleNodeIds } from "../../../web/src/lib/knowledge-graph.js";
16
+ import { getEntityVisual } from "../../../web/src/lib/entity-visuals.js";
17
+ import { KNOWLEDGE_GRAPH_RELATION_FAMILY_MAP, buildKnowledgeGraphFocusHref, buildKnowledgeGraphNodeId, getKnowledgeGraphEntityHref } from "../../../web/src/lib/knowledge-graph-types.js";
18
18
  const GRAPH_RANGE = {
19
19
  from: "2000-01-01T00:00:00.000Z",
20
20
  to: "2100-01-01T00:00:00.000Z"
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
- import { LEGACY_WORKBENCH_PORT_KINDS, WORKBENCH_PORT_KINDS, normalizeWorkbenchPortKind } from "../../src/lib/workbench/nodes.js";
3
- import { formatLocalDateKey } from "../../src/lib/date-keys.js";
2
+ import { LEGACY_WORKBENCH_PORT_KINDS, WORKBENCH_PORT_KINDS, normalizeWorkbenchPortKind } from "../../web/src/lib/workbench/nodes.js";
3
+ import { formatLocalDateKey } from "../../web/src/lib/date-keys.js";
4
4
  export const taskStatusSchema = z.enum([
5
5
  "backlog",
6
6
  "focus",
@@ -11,7 +11,7 @@ import { listProjectSummaries } from "./services/projects.js";
11
11
  import { listTasks, updateTask } from "./repositories/tasks.js";
12
12
  import { claimTaskRun, completeTaskRun, focusTaskRun, heartbeatTaskRun, listTaskRuns, releaseTaskRun } from "./repositories/task-runs.js";
13
13
  import { createTriggerReport, listBehaviorPatterns, listBehaviors, listEmotionDefinitions, listEventTypes, listModeProfiles, listPsycheValues, listTriggerReports } from "./repositories/psyche.js";
14
- import { formatLocalDateKey } from "../../src/lib/date-keys.js";
14
+ import { formatLocalDateKey } from "../../web/src/lib/date-keys.js";
15
15
  const watchHistoryStateSchema = z.enum(["aligned", "unaligned", "unknown"]);
16
16
  const watchPromptKindSchema = z.enum([
17
17
  "new_place",
@@ -2,7 +2,7 @@
2
2
  "id": "forge-openclaw-plugin",
3
3
  "name": "Forge",
4
4
  "description": "Curated OpenClaw adapter for the Forge collaboration API, UI entrypoint, and localhost auto-start runtime.",
5
- "version": "0.3.15",
5
+ "version": "0.3.16",
6
6
  "activation": {
7
7
  "onStartup": true,
8
8
  "onCapabilities": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forge-openclaw-plugin",
3
- "version": "0.3.15",
3
+ "version": "0.3.16",
4
4
  "description": "Curated OpenClaw adapter for the Forge collaboration API, UI entrypoint, and localhost auto-start runtime.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -8,9 +8,9 @@
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/albertbuchard/forge.git",
11
- "directory": "openclaw-plugin"
11
+ "directory": "plugins/openclaw"
12
12
  },
13
- "homepage": "https://github.com/albertbuchard/forge/tree/main/openclaw-plugin#readme",
13
+ "homepage": "https://github.com/albertbuchard/forge/tree/main/plugins/openclaw#readme",
14
14
  "bugs": {
15
15
  "url": "https://github.com/albertbuchard/forge/issues"
16
16
  },
package/server/index.js CHANGED
@@ -4,9 +4,9 @@ import path from "node:path";
4
4
  import { fileURLToPath, pathToFileURL } from "node:url";
5
5
 
6
6
  const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
7
- const repoRoot = path.resolve(packageRoot, "..");
8
- const builtRuntimeEntry = path.join(packageRoot, "dist", "server", "server", "src", "index.js");
9
- const devRuntimeEntry = path.join(repoRoot, "server", "src", "index.ts");
7
+ const repoRoot = path.resolve(packageRoot, "..", "..");
8
+ const builtRuntimeEntry = path.join(packageRoot, "dist", "server", "apps", "api", "src", "index.js");
9
+ const devRuntimeEntry = path.join(repoRoot, "apps", "api", "src", "index.ts");
10
10
  const devDataRootWrapper = path.join(
11
11
  repoRoot,
12
12
  "scripts",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: forge-openclaw-plugin
3
- description: use when the user wants to save, search, update, review, start, stop, reward, explain, compare, or run Forge records, or when the conversation is clearly about a Forge entity or domain surface such as a goal, project, strategy, task, habit, note, wiki_page, calendar_event, calendar_connection, work_block_template, task_timebox, task_run, work_adjustment, insight, preference item, preference context, preference catalog, preference judgment, preference signal, questionnaire instrument, questionnaire run, self observation, movement, life_force, workbench, psyche_value, behavior_pattern, behavior, belief_entry, mode_profile, mode_guide_session, flashcard, trigger_report, event_type, emotion_definition, sleep_session, workout_session, or training_load. identify the exact Forge object or specialized surface, keep the main conversation natural, guide psyche intake with active listening before storing it, and for psyche issues that need understanding first usually begin with one exploratory question before any formulation or save suggestion.
3
+ description: use when the user wants to save, search, update, review, start, stop, reward, explain, compare, or run Forge records, or when the conversation is clearly about a Forge entity or domain surface such as a goal, project, strategy, task, habit, note, wiki_page, calendar_event, calendar_connection, work_block_template, task_timebox, task_run, work_adjustment, insight, preference item, preference context, preference catalog, preference judgment, preference signal, questionnaire instrument, questionnaire run, self observation, operator_overview, operator_context, calendar_overview, sleep_overview, sports_overview, training_load, weight_loss, movement, life_force, workbench, psyche_value, behavior_pattern, behavior, belief_entry, mode_profile, mode_guide_session, flashcard, trigger_report, event_type, emotion_definition, sleep_session, or workout_session. identify the exact Forge object or specialized surface, keep the main conversation natural, guide psyche intake with active listening before storing it, and for psyche issues that need understanding first usually begin with one exploratory question before any formulation or save suggestion.
4
4
  ---
5
5
 
6
6
  Forge is the user's structured system for planning work, doing work, reflecting on patterns, and keeping a truthful record of what is happening. Use it when the user is clearly working inside that system, or when they are describing something that naturally belongs there and would benefit from being stored, updated, reviewed, or acted on in Forge. Keep the conversation natural first. Do not turn every message into intake. When a real Forge entity is clearly present, name the exact entity type plainly, help with the substance of the conversation, and then offer Forge once, lightly, if storing it would genuinely help.
@@ -59,7 +59,7 @@ PM surface rule:
59
59
  human/bot ownership filters.
60
60
  - Guided modal flows handle create, edit, move, link, and closeout actions.
61
61
 
62
- Forge has four major stored-entity surfaces and three specialized domain surfaces. The planning side covers goals, projects, strategies, tasks, habits, notes, calendar events, recurring work blocks, task timeboxes, live work sessions, and agent-authored insights. The Health side covers sleep sessions, sports and workout sessions, the read-only training-load surface for cardiovascular load and HR zone review, companion pairing, and habit-generated workout records that should still stay linked to the broader Forge graph. The Preferences side covers contextual taste modeling, pairwise comparisons, direct signals, editable concept libraries, and preference items that can come from Forge entities or seeded concept domains such as food, activities, places, countries, fashion, people, media, and tools. The Psyche side covers values, patterns, behaviors, beliefs, modes, guided mode sessions, flashcards, trigger reports, event types, and reusable emotion definitions. The specialized domain surfaces are Movement, Life Force, and Workbench; agents must use their dedicated route families instead of forcing them through batch CRUD. Forge also has a SQLite-backed Wiki memory layer with explicit spaces, Markdown content in database rows, backlinks, optional embeddings, and structured links back to Forge entities. Forge is also multi-user: every entity can belong to a typed `human` or `bot` user through `userId`, and read routes can scope to one or many users with `userId` or repeated `userIds`. The current access posture is configurable through a directional user graph, but the live default is still permissive: Forge can list users directly, every relationship edge starts open, and a user can read or affect another user's linked records when the route explicitly asks for them. Use `forge_get_user_directory` when owner identity or cross-user access matters. Strategies can also be locked into a contract with `isLocked`; once locked, do not mutate the graph or target structure unless the user explicitly wants the strategy unlocked first. The model should use the real entity names, not vague substitutes. Say `project`, not “initiative”. Say `behavior_pattern`, not “theme”. Say `trigger_report`, not “incident note”.
62
+ Forge has four major stored-entity surfaces, read-model surfaces, and three specialized domain surfaces. The planning side covers goals, projects, strategies, tasks, habits, notes, calendar events, recurring work blocks, task timeboxes, live work sessions, and agent-authored insights. The Health side covers sleep sessions, sports and workout sessions, the read-only training-load surface for cardiovascular load and HR zone review, the weight-loss and nutrition workflow, companion pairing, and habit-generated workout records that should still stay linked to the broader Forge graph. The Preferences side covers contextual taste modeling, pairwise comparisons, direct signals, editable concept libraries, and preference items that can come from Forge entities or seeded concept domains such as food, activities, places, countries, fashion, people, media, and tools. The Psyche side covers values, patterns, behaviors, beliefs, modes, guided mode sessions, flashcards, trigger reports, event types, reusable emotion definitions, questionnaire instruments, questionnaire runs, and the note-backed self-observation calendar. Read-model surfaces include `operator_overview`, `operator_context`, `calendar_overview`, `sleep_overview`, `sports_overview`, `training_load`, `weight_loss`, and the self-observation calendar; ask what practical decision the read should support before adding write-shaped questions. The specialized domain surfaces are Movement, Life Force, and Workbench; agents must use their dedicated route families instead of forcing them through batch CRUD. Forge also has a SQLite-backed Wiki memory layer with explicit spaces, Markdown content in database rows, backlinks, optional embeddings, and structured links back to Forge entities. Forge is also multi-user: every entity can belong to a typed `human` or `bot` user through `userId`, and read routes can scope to one or many users with `userId` or repeated `userIds`. The current access posture is configurable through a directional user graph, but the live default is still permissive: Forge can list users directly, every relationship edge starts open, and a user can read or affect another user's linked records when the route explicitly asks for them. Use `forge_get_user_directory` when owner identity or cross-user access matters. Strategies can also be locked into a contract with `isLocked`; once locked, do not mutate the graph or target structure unless the user explicitly wants the strategy unlocked first. The model should use the real entity names, not vague substitutes. Say `project`, not “initiative”. Say `behavior_pattern`, not “theme”. Say `trigger_report`, not “incident note”.
63
63
  Habits are a first-class recurring entity in the planning side.
64
64
  NEGATIVE HABIT CHECK-IN RULE: for a `negative` habit, the correct aligned/resisted outcome is `missed`. `missed` means the bad habit was resisted, the user stayed aligned, and the habit should award its XP bonus.
65
65
 
@@ -252,12 +252,12 @@ Health rule:
252
252
  `forge_parse_food_log_with_chatgpt` must use Forge's configured `openai-codex`
253
253
  ChatGPT subscription connection, not a metered OpenAI Platform API path.
254
254
  - In `forge_get_agent_onboarding.entityRouteModel.readModelOnlySurfaces`, operator,
255
- calendar, self-observation, sleep, sports, and training-load read models are published with
255
+ calendar, self-observation, sleep, sports, training-load, and weight-loss read models are published with
256
256
  both camelCase names and entity-style aliases where useful, including
257
257
  `operatorOverview`, `operatorContext`, `calendarOverview`, `sleepOverview`,
258
- `sportsOverview`, `trainingLoad`, `operator_overview`, `operator_context`,
258
+ `sportsOverview`, `trainingLoad`, `weightLoss`, `operator_overview`, `operator_context`,
259
259
  `calendar_overview`, `self_observation`, `sleep_overview`,
260
- `sports_overview`, and `training_load`. Treat those as read-only surfaces,
260
+ `sports_overview`, `training_load`, and `weight_loss`. Treat those as read-only surfaces,
261
261
  not batch CRUD entities.
262
262
  - Use `forge_get_operator_overview` for a broad Forge status read, `forge_get_operator_context`
263
263
  for current work and risk, and `forge_get_calendar_overview` before calendar-aware