forge-openclaw-plugin 0.2.40 → 0.2.43

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 (31) hide show
  1. package/README.md +6 -0
  2. package/dist/assets/{board-C3BJqvZu.js → board-CAszQU7Y.js} +2 -2
  3. package/dist/assets/{board-C3BJqvZu.js.map → board-CAszQU7Y.js.map} +1 -1
  4. package/dist/assets/index-Bqqi_RSB.js +91 -0
  5. package/dist/assets/index-Bqqi_RSB.js.map +1 -0
  6. package/dist/assets/index-IrxlatFN.css +1 -0
  7. package/dist/assets/{motion-Cv9HdOn4.js → motion-CU5aNClV.js} +2 -2
  8. package/dist/assets/{motion-Cv9HdOn4.js.map → motion-CU5aNClV.js.map} +1 -1
  9. package/dist/assets/{table-B1MDOEFp.js → table-CK0KcPYW.js} +2 -2
  10. package/dist/assets/{table-B1MDOEFp.js.map → table-CK0KcPYW.js.map} +1 -1
  11. package/dist/assets/{ui-CQzq3TE5.js → ui-B5MjRjKe.js} +2 -2
  12. package/dist/assets/{ui-CQzq3TE5.js.map → ui-B5MjRjKe.js.map} +1 -1
  13. package/dist/assets/{vendor-DK-mJFy6.js → vendor-D_NZFJze.js} +2 -2
  14. package/dist/assets/{vendor-DK-mJFy6.js.map → vendor-D_NZFJze.js.map} +1 -1
  15. package/dist/index.html +7 -7
  16. package/dist/openclaw/plugin-sdk-types.d.ts +6 -0
  17. package/dist/openclaw/routes.js +10 -1
  18. package/dist/server/server/src/app.js +95 -37
  19. package/dist/server/server/src/health.js +49 -0
  20. package/dist/server/server/src/movement.js +79 -5
  21. package/dist/server/src/components/ui/info-tooltip.js +1 -1
  22. package/dist/server/src/lib/knowledge-graph.js +2 -2
  23. package/dist/server/src/lib/schemas.js +1 -1
  24. package/openclaw.plugin.json +1 -1
  25. package/package.json +43 -2
  26. package/skills/forge-openclaw/SKILL.md +2 -0
  27. package/skills/forge-openclaw/entity_conversation_playbooks.md +29 -3
  28. package/skills/forge-openclaw/psyche_entity_playbooks.md +18 -3
  29. package/dist/assets/index-46NL_IaJ.js +0 -91
  30. package/dist/assets/index-46NL_IaJ.js.map +0 -1
  31. package/dist/assets/index-Dj8vB0vh.css +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forge-openclaw-plugin",
3
- "version": "0.2.40",
3
+ "version": "0.2.43",
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": "MIT",
@@ -44,17 +44,58 @@
44
44
  "openclaw": "2026.4.15"
45
45
  },
46
46
  "dependencies": {
47
+ "@dnd-kit/core": "^6.3.1",
48
+ "@dnd-kit/sortable": "^10.0.0",
49
+ "@dnd-kit/utilities": "^3.2.2",
47
50
  "@azure/msal-node": "^5.1.2",
48
51
  "@fastify/cors": "^10.0.1",
49
52
  "@fastify/multipart": "^9.4.0",
53
+ "@fontsource-variable/plus-jakarta-sans": "^5.2.8",
54
+ "@fontsource-variable/sora": "^5.2.8",
55
+ "@fontsource/space-grotesk": "^5.2.10",
56
+ "@hookform/resolvers": "^5.1.1",
57
+ "@mariozechner/pi-ai": "^0.66.1",
58
+ "@radix-ui/react-dialog": "^1.1.14",
59
+ "@reduxjs/toolkit": "^2.11.2",
50
60
  "@sinclair/typebox": "^0.34.48",
61
+ "@tanstack/react-query": "^5.80.10",
62
+ "@tanstack/react-table": "^8.21.3",
63
+ "@tanstack/react-virtual": "^3.13.12",
64
+ "@tauri-apps/api": "^2.8.0",
65
+ "@tiptap/react": "^2.15.0",
66
+ "@tiptap/starter-kit": "^2.15.0",
67
+ "@types/react-grid-layout": "^1.3.6",
68
+ "@xyflow/react": "^12.10.2",
51
69
  "adm-zip": "^0.5.17",
70
+ "bonjour-service": "^1.3.0",
71
+ "class-variance-authority": "^0.7.1",
72
+ "clsx": "^2.1.1",
73
+ "cron-parser": "^5.5.0",
52
74
  "fastify": "^5.8.5",
75
+ "framer-motion": "^12.16.0",
76
+ "graphology": "^0.26.0",
77
+ "graphology-layout": "^0.6.1",
78
+ "graphology-layout-forceatlas2": "^0.10.1",
79
+ "lucide-react": "^0.525.0",
53
80
  "node-ical": "^0.20.1",
81
+ "qrcode": "^1.5.4",
82
+ "react": "^19.1.0",
83
+ "react-arborist": "^3.4.3",
84
+ "react-dom": "^19.1.0",
85
+ "react-grid-layout": "^2.2.3",
86
+ "react-hook-form": "^7.57.0",
87
+ "react-is": "^19.2.5",
88
+ "react-redux": "^9.2.0",
89
+ "react-router-dom": "^7.13.1",
90
+ "recharts": "^3.1.0",
91
+ "sigma": "^3.0.2",
92
+ "tailwind-merge": "^3.3.1",
54
93
  "tsdav": "^2.1.8",
55
- "zod": "^3.25.67"
94
+ "zod": "^3.25.67",
95
+ "zustand": "^5.0.5"
56
96
  },
57
97
  "overrides": {
98
+ "basic-ftp": "^5.3.0",
58
99
  "axios": "^1.15.0",
59
100
  "follow-redirects": "^1.16.0",
60
101
  "hono": "4.12.14"
@@ -141,6 +141,7 @@ Psyche interview rule:
141
141
  - Sound professionally warm and therapist-like: grounded, accurate, reflective, and intentional, not clinical, vague, or lecture-like.
142
142
  - After the first real answer, choose one follow-up lane at a time: situation, sequence, meaning, protection, cost, longing/value, or tentative name.
143
143
  - For Psyche updates, start with what feels newly true, newly visible, or newly inaccurate, then ask what should stay true before changing the formulation.
144
+ - If a fresh episode is what made a Psyche update visible, anchor in that episode before renaming the durable belief, pattern, mode, or value.
144
145
  - If the user says they want help understanding a Psyche issue before saving it, ask one orienting question first instead of jumping straight into a full interpretation, diagnosis-like label, save suggestion, replacement belief, or suggested title.
145
146
  - In that first exploratory turn, keep the reflection to one or two short sentences, avoid numbered lists or schema dumps, and wait for the user's answer before offering a fuller formulation.
146
147
  - In that first exploratory turn, stay in plain prose, end with one question, and do not mention Forge fields or save formatting yet unless the user interrupts to save immediately.
@@ -386,6 +387,7 @@ Use the dedicated domain routes for specialized surfaces that are not simple bat
386
387
  `/api/v1/workbench/flows/:id/output` for published outputs, and the run/node routes
387
388
  under `/api/v1/workbench/flows/:id` for run history and node-level inspection.
388
389
  - If you are unsure which specialized route family applies, check `forge_get_agent_onboarding` and use its `entityRouteModel.specializedDomainSurfaces` section before guessing.
390
+ - After a concrete Movement, Life Force, or Workbench correction, read the relevant specialized view back when the user is trying to understand the result rather than only store it.
389
391
 
390
392
  Use live work tools for `task_run`:
391
393
  `forge_log_work`, `forge_start_task_run`, `forge_heartbeat_task_run`, `forge_focus_task_run`, `forge_complete_task_run`, `forge_release_task_run`
@@ -416,6 +416,15 @@ Use this when the user is updating an existing record rather than creating a new
416
416
  If the current title or shape may no longer fit, offer one revised formulation yourself
417
417
  before asking the user to rewrite it from scratch.
418
418
 
419
+ ## Update-first openers
420
+
421
+ Use these when the user is correcting or revising something that already exists.
422
+
423
+ - "What feels different enough now that this record needs to change?"
424
+ - "What still feels right and should stay intact while we update it?"
425
+ - "If this is really one correction rather than a full rethink, what is the exact part you want changed?"
426
+ - "I can stay narrow here. What is the one thing that no longer fits?"
427
+
419
428
  ## Goal
420
429
 
421
430
  Aim: clarify the direction and why it matters, not just produce a title.
@@ -1016,6 +1025,11 @@ Direct action rules:
1016
1025
  traveled.
1017
1026
  - Use raw `PATCH /api/v1/movement/stays/:id` or `/api/v1/movement/trips/:id` only for
1018
1027
  editing an already-recorded stay or trip, not for filling a missing span.
1028
+ - If the user wants to undo or remove one manual overlay, delete the saved
1029
+ user-defined box instead of patching a recorded stay or trip.
1030
+ - If the user wants to inspect one already-saved movement correction before editing
1031
+ it, read the box detail first so the follow-up write stays grounded in the saved
1032
+ object.
1019
1033
  - When the user has already given the real answer, for example "I stayed home during
1020
1034
  that missing block", do not ask a broad review question again. Confirm only the
1021
1035
  interval or place if that is still ambiguous, then act.
@@ -1045,14 +1059,20 @@ Lane-to-route map:
1045
1059
  `/api/v1/movement/places` or `/api/v1/movement/places/:id`
1046
1060
  - inspect one trip:
1047
1061
  `/api/v1/movement/trips/:id`
1062
+ - inspect one saved movement box before repairing it:
1063
+ `/api/v1/movement/boxes/:id`
1048
1064
  - fill a missing span:
1049
1065
  `/api/v1/movement/user-boxes/preflight` then `/api/v1/movement/user-boxes`
1050
1066
  - repair or revise one saved overlay:
1051
1067
  `/api/v1/movement/user-boxes/:id`
1068
+ - delete one saved overlay:
1069
+ `DELETE /api/v1/movement/user-boxes/:id`
1052
1070
  - repair one recorded automatic box:
1053
1071
  `/api/v1/movement/automatic-boxes/:id/invalidate`
1054
1072
  - edit an already-recorded stay, trip, or trip point:
1055
1073
  `/api/v1/movement/stays/:id`, `/api/v1/movement/trips/:id`, or `/api/v1/movement/trips/:id/points/:pointId`
1074
+ - delete an already-recorded stay, trip, or trip point:
1075
+ `DELETE /api/v1/movement/stays/:id`, `DELETE /api/v1/movement/trips/:id`, or `DELETE /api/v1/movement/trips/:id/points/:pointId`
1056
1076
 
1057
1077
  Ready to act when:
1058
1078
 
@@ -1063,7 +1083,7 @@ Ready to act when:
1063
1083
 
1064
1084
  Preferred opening question:
1065
1085
 
1066
- - "What are you trying to make clearer or correct about where you stayed and traveled?"
1086
+ - "What are you trying to understand, correct, or preserve about where you stayed and traveled?"
1067
1087
 
1068
1088
  ## Life Force
1069
1089
 
@@ -1109,6 +1129,8 @@ Direct action rules:
1109
1129
  template instead of editing the profile.
1110
1130
  - If the user is describing right-now depletion or recovery, post a fatigue signal and
1111
1131
  then read the overview back if they want to see the updated picture.
1132
+ - After a profile or weekday-template change, read the overview back when the user is
1133
+ trying to understand the practical impact of the change, not just store it silently.
1112
1134
 
1113
1135
  Ready to act when:
1114
1136
 
@@ -1118,7 +1140,7 @@ Ready to act when:
1118
1140
 
1119
1141
  Preferred opening question:
1120
1142
 
1121
- - "What feels most off, important, or worth tracking in your energy picture right now?"
1143
+ - "What feels most off, important, or worth understanding in your energy picture right now?"
1122
1144
 
1123
1145
  ## Workbench
1124
1146
 
@@ -1153,6 +1175,8 @@ Lane-to-route map:
1153
1175
  `/api/v1/workbench/flows/:id/run`
1154
1176
  - run from a payload-first contract:
1155
1177
  `/api/v1/workbench/run`
1178
+ - send one follow-up message into a saved flow chat:
1179
+ `/api/v1/workbench/flows/:id/chat`
1156
1180
  - inspect published output or run history:
1157
1181
  `/api/v1/workbench/flows/:id/output` or `/api/v1/workbench/flows/:id/runs`
1158
1182
  - inspect one run or node result:
@@ -1173,6 +1197,8 @@ Direct action rules:
1173
1197
  `/api/v1/workbench/run`.
1174
1198
  - If the user wants one node's latest successful output, do not browse old runs first
1175
1199
  unless they explicitly want historical debugging.
1200
+ - If the user wants to understand what inputs a flow can accept before editing or
1201
+ running it, read the box catalog or flow detail before asking for a payload.
1176
1202
 
1177
1203
  Ready to act when:
1178
1204
 
@@ -1182,7 +1208,7 @@ Ready to act when:
1182
1208
 
1183
1209
  Preferred opening question:
1184
1210
 
1185
- - "What are you trying to inspect a flow, change it, run it, or publish from Workbench?"
1211
+ - "What are you trying to inspect, change, run, or publish through Workbench?"
1186
1212
 
1187
1213
  ## Preference Catalog
1188
1214
 
@@ -350,6 +350,9 @@ If the entity is already clear:
350
350
 
351
351
  - reflect briefly
352
352
  - name the core meaning in the user's language
353
+ - if the user already gave a serviceable belief sentence, mode name, value phrase, or
354
+ pattern title, stay inside that wording long enough to reflect the live stake before
355
+ you ask for the one missing structural detail
353
356
  - keep the user's own wording when it is already serviceable and only refine one
354
357
  phrase if needed
355
358
  - ask only for the one missing structural detail
@@ -376,6 +379,10 @@ If the entity is not yet clear:
376
379
  replacing it with a more polished label unless they ask for help wording it.
377
380
  - When the user says the current wording misses, say what seems newly true before you
378
381
  ask whether the old name still fits.
382
+ - Before you revise a durable formulation, say what the old wording was trying to
383
+ hold and what the new episode or evidence changes.
384
+ - If a recent charged episode is what made the update visible, anchor in that episode
385
+ before you rename the durable belief, pattern, mode, or value.
379
386
  - If another belief, value, pattern, mode, or note becomes visible, name it gently but
380
387
  do not switch containers unless the user wants to.
381
388
 
@@ -386,9 +393,11 @@ from scratch.
386
393
 
387
394
  1. Ask what feels newly true, newly visible, or newly inaccurate.
388
395
  2. Ask what still feels essentially right and should not be lost.
389
- 3. Re-check the name only if the old wording no longer fits the lived experience.
390
- 4. Ask for one concrete recent example if the update is abstract or sweeping.
391
- 5. Then change only the parts the new understanding actually affects.
396
+ 3. If the update was triggered by one recent charged episode, anchor in that episode
397
+ before you re-check the durable formulation.
398
+ 4. Re-check the name only if the old wording no longer fits the lived experience.
399
+ 5. Ask for one concrete recent example if the update is abstract or sweeping.
400
+ 6. Then change only the parts the new understanding actually affects.
392
401
 
393
402
  If the update is mostly about wording, offer one revised sentence yourself and ask
394
403
  whether it lands more accurately before you reopen the whole exploration.
@@ -397,6 +406,12 @@ Good update opener:
397
406
 
398
407
  - "Before we change it, what feels newly true about this now, and what still feels basically right?"
399
408
 
409
+ Other strong update openers:
410
+
411
+ - "What about the old wording no longer lands, and what still feels true inside it?"
412
+ - "If this update comes from one fresh moment, what happened there that changed how this record feels?"
413
+ - "Do you want to revise the whole formulation, or only the part that now feels inaccurate?"
414
+
400
415
  ## Safety rule
401
416
 
402
417
  If the user shows imminent risk of self-harm, suicide, violence, inability to stay