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.
- package/README.md +6 -0
- package/dist/assets/{board-C3BJqvZu.js → board-CAszQU7Y.js} +2 -2
- package/dist/assets/{board-C3BJqvZu.js.map → board-CAszQU7Y.js.map} +1 -1
- package/dist/assets/index-Bqqi_RSB.js +91 -0
- package/dist/assets/index-Bqqi_RSB.js.map +1 -0
- package/dist/assets/index-IrxlatFN.css +1 -0
- package/dist/assets/{motion-Cv9HdOn4.js → motion-CU5aNClV.js} +2 -2
- package/dist/assets/{motion-Cv9HdOn4.js.map → motion-CU5aNClV.js.map} +1 -1
- package/dist/assets/{table-B1MDOEFp.js → table-CK0KcPYW.js} +2 -2
- package/dist/assets/{table-B1MDOEFp.js.map → table-CK0KcPYW.js.map} +1 -1
- package/dist/assets/{ui-CQzq3TE5.js → ui-B5MjRjKe.js} +2 -2
- package/dist/assets/{ui-CQzq3TE5.js.map → ui-B5MjRjKe.js.map} +1 -1
- package/dist/assets/{vendor-DK-mJFy6.js → vendor-D_NZFJze.js} +2 -2
- package/dist/assets/{vendor-DK-mJFy6.js.map → vendor-D_NZFJze.js.map} +1 -1
- package/dist/index.html +7 -7
- package/dist/openclaw/plugin-sdk-types.d.ts +6 -0
- package/dist/openclaw/routes.js +10 -1
- package/dist/server/server/src/app.js +95 -37
- package/dist/server/server/src/health.js +49 -0
- package/dist/server/server/src/movement.js +79 -5
- package/dist/server/src/components/ui/info-tooltip.js +1 -1
- package/dist/server/src/lib/knowledge-graph.js +2 -2
- package/dist/server/src/lib/schemas.js +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +43 -2
- package/skills/forge-openclaw/SKILL.md +2 -0
- package/skills/forge-openclaw/entity_conversation_playbooks.md +29 -3
- package/skills/forge-openclaw/psyche_entity_playbooks.md +18 -3
- package/dist/assets/index-46NL_IaJ.js +0 -91
- package/dist/assets/index-46NL_IaJ.js.map +0 -1
- 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.
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
390
|
-
|
|
391
|
-
|
|
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
|