forge-openclaw-plugin 0.2.67 → 0.2.69
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/dist/assets/{board-DFNV9VAZ.js → board-BfqxFNiQ.js} +1 -1
- package/dist/assets/index-BfLQnCNZ.js +91 -0
- package/dist/assets/index-DIapFz9v.css +1 -0
- package/dist/assets/{motion-CXdn34ih.js → motion-C0ALlgho.js} +1 -1
- package/dist/assets/{table-CEq3bTDv.js → table-WcMjnJll.js} +1 -1
- package/dist/assets/{ui-g7FaEglG.js → ui-B5I-3U91.js} +1 -1
- package/dist/assets/vendor-B-Lq_OG3.css +1 -0
- package/dist/assets/vendor-C56o26_3.js +2163 -0
- package/dist/index.html +8 -8
- package/dist/server/server/migrations/060_psyche_devrage_metrics.sql +40 -0
- package/dist/server/server/migrations/061_health_workout_raw_evidence.sql +95 -0
- package/dist/server/server/src/app.js +94 -12
- package/dist/server/server/src/health-workout-analytics.js +572 -0
- package/dist/server/server/src/health.js +116 -3
- package/dist/server/server/src/openapi.js +238 -0
- package/dist/server/server/src/psyche-types.js +90 -0
- package/dist/server/server/src/services/devrage.js +412 -0
- package/dist/server/server/src/services/psyche.js +3 -0
- package/dist/server/src/lib/api.js +13 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/server/migrations/060_psyche_devrage_metrics.sql +40 -0
- package/server/migrations/061_health_workout_raw_evidence.sql +95 -0
- package/skills/forge-openclaw/SKILL.md +25 -1
- package/skills/forge-openclaw/entity_conversation_playbooks.md +46 -14
- package/dist/assets/index-B9IVt8VN.js +0 -90
- package/dist/assets/index-DJlo9Tsp.css +0 -1
- package/dist/assets/vendor-BcOHGipZ.js +0 -1341
- package/dist/assets/vendor-DT3pnAKJ.css +0 -1
|
@@ -111,6 +111,10 @@ Concrete route-key examples for internal use:
|
|
|
111
111
|
`{"routeKey":"selection","query":{"from":"2026-05-01T00:00:00.000Z","to":"2026-05-14T23:59:59.999Z","placeIds":["place_home"],"userIds":["user_operator"]}}`
|
|
112
112
|
- Movement trip detail:
|
|
113
113
|
`{"routeKey":"tripDetail","pathParams":{"id":"trip_123"}}`
|
|
114
|
+
- Movement settings read:
|
|
115
|
+
`{"routeKey":"settings","query":{"userIds":["user_operator"]}}`
|
|
116
|
+
- Movement settings update:
|
|
117
|
+
`{"routeKey":"settingsUpdate","body":{"trackingEnabled":true,"publishMode":"draft_review","retentionMode":"aggregates_only"}}`
|
|
114
118
|
- Movement missing-stay correction:
|
|
115
119
|
first `{"routeKey":"userBoxPreflight","body":{"kind":"stay","startedAt":"2026-05-06T13:00:00.000Z","endedAt":"2026-05-06T15:00:00.000Z","placeLabel":"Home","userId":"user_operator"}}`,
|
|
116
120
|
then `{"routeKey":"userBoxCreate","body":{"kind":"stay","startedAt":"2026-05-06T13:00:00.000Z","endedAt":"2026-05-06T15:00:00.000Z","placeLabel":"Home","userId":"user_operator","note":"Manual correction after reviewing the timeline."}}`
|
|
@@ -126,6 +130,12 @@ Concrete route-key examples for internal use:
|
|
|
126
130
|
`{"routeKey":"listFlows","query":{"includeArchived":false}}`
|
|
127
131
|
- Workbench box catalog:
|
|
128
132
|
`{"routeKey":"boxCatalog"}`
|
|
133
|
+
- Workbench flow creation:
|
|
134
|
+
`{"routeKey":"createFlow","body":{"title":"Research digest","slug":"research-digest","description":"Turn a topic into a cited digest with a stable published summary.","nodes":[],"edges":[]}}`
|
|
135
|
+
- Workbench flow edit:
|
|
136
|
+
`{"routeKey":"updateFlow","pathParams":{"id":"flow_research_digest"},"body":{"description":"Keep the same input contract but add a stronger evidence-check node."}}`
|
|
137
|
+
- Workbench flow deletion:
|
|
138
|
+
`{"routeKey":"deleteFlow","pathParams":{"id":"flow_research_digest"}}`
|
|
129
139
|
- Workbench run detail:
|
|
130
140
|
`{"routeKey":"runDetail","pathParams":{"id":"flow_research_digest","runId":"run_123"}}`
|
|
131
141
|
- Workbench published output:
|
|
@@ -134,6 +144,8 @@ Concrete route-key examples for internal use:
|
|
|
134
144
|
`{"routeKey":"latestNodeOutput","pathParams":{"id":"flow_research_digest","nodeId":"node_summary"}}`
|
|
135
145
|
- Workbench run execution:
|
|
136
146
|
`{"routeKey":"runFlow","pathParams":{"id":"flow_research_digest"},"body":{"input":{"topic":"question flow quality"}}}`
|
|
147
|
+
- Workbench flow chat follow-up:
|
|
148
|
+
`{"routeKey":"chatFlow","pathParams":{"id":"flow_research_digest"},"body":{"message":"Refine the summary around API route risks and keep the published output stable."}}`
|
|
137
149
|
|
|
138
150
|
Preferences rule:
|
|
139
151
|
|
|
@@ -486,6 +498,10 @@ through `forge_create_entities` or `forge_update_entities`.
|
|
|
486
498
|
`/api/v1/movement/day`, `/api/v1/movement/month`, `/api/v1/movement/all-time`,
|
|
487
499
|
`/api/v1/movement/timeline`, `/api/v1/movement/places`,
|
|
488
500
|
`/api/v1/movement/selection`, and `/api/v1/movement/trips/:id`.
|
|
501
|
+
- Use `GET /api/v1/movement/settings` and `PATCH /api/v1/movement/settings` when
|
|
502
|
+
the user wants to inspect or change passive capture, publish mode, retention mode,
|
|
503
|
+
or companion readiness. Do not treat movement settings as a place, stay, trip, or
|
|
504
|
+
batch entity write.
|
|
489
505
|
- When the user is filling a missing-data gap, the default write path is a user-defined overlay box, not a raw stay or trip patch. Use `POST /api/v1/movement/user-boxes/preflight` if you need to confirm overlap or snap to the nearest missing interval, then `POST /api/v1/movement/user-boxes` with `kind: "stay"` or `kind: "trip"`.
|
|
490
506
|
- When the user is repairing already-saved movement data, use the repair routes that match the saved object:
|
|
491
507
|
`PATCH /api/v1/movement/user-boxes/:id`,
|
|
@@ -496,7 +512,7 @@ through `forge_create_entities` or `forge_update_entities`.
|
|
|
496
512
|
- Use `PATCH /api/v1/movement/stays/:id` or `PATCH /api/v1/movement/trips/:id` only when the user is editing an existing recorded stay or recorded trip. Do not use those routes to fill a missing span.
|
|
497
513
|
- If the user says something as explicit as "that missing block was me staying home", do not reopen broad intake. Confirm the interval or place only if it is still ambiguous, then create the overlay and read the timeline back.
|
|
498
514
|
- Life Force lives under `/api/v1/life-force*`. Use `GET /api/v1/life-force` for the current energy overview, `PATCH /api/v1/life-force/profile` for durable profile changes, `PUT /api/v1/life-force/templates/:weekday` for weekday curve edits, and `POST /api/v1/life-force/fatigue-signals` for real-time tired or recovered signals.
|
|
499
|
-
- Workbench lives under `/api/v1/workbench/*`. Use those dedicated routes for flow catalog reads, flow CRUD, runs, published outputs, node results, and latest-node-output reads instead of trying to force Workbench through the batch entity routes.
|
|
515
|
+
- Workbench lives under `/api/v1/workbench/*`. Use those dedicated routes for flow catalog reads, flow CRUD, runs, saved-flow chat follow-ups, published outputs, node results, and latest-node-output reads instead of trying to force Workbench through the batch entity routes.
|
|
500
516
|
- If you need the OpenClaw HTTP mirror instead of the raw Forge runtime path, the
|
|
501
517
|
same specialized families are exposed under `/forge/v1/movement/*`,
|
|
502
518
|
`/forge/v1/life-force/*`, and `/forge/v1/workbench/*`.
|
|
@@ -505,8 +521,16 @@ through `forge_create_entities` or `forge_update_entities`.
|
|
|
505
521
|
`POST /api/v1/workbench/flows` for flow creation,
|
|
506
522
|
`PATCH /api/v1/workbench/flows/:id` and `DELETE /api/v1/workbench/flows/:id` for saved-flow edits or deletion,
|
|
507
523
|
`/api/v1/workbench/flows/:id/run` or `/api/v1/workbench/run` for execution,
|
|
524
|
+
`POST /api/v1/workbench/flows/:id/chat` for saved-flow chat follow-ups,
|
|
508
525
|
`/api/v1/workbench/flows/:id/output` for published outputs, and the run/node routes
|
|
509
526
|
under `/api/v1/workbench/flows/:id` for run history and node-level inspection.
|
|
527
|
+
- For Workbench flow creation or edits, clarify the stable input contract, intended
|
|
528
|
+
published output, and smallest structural change before asking for raw JSON or node
|
|
529
|
+
payloads. For deletion, confirm the saved flow and whether published outputs or run
|
|
530
|
+
history need preservation elsewhere before using the delete route.
|
|
531
|
+
- For Workbench flow chat follow-ups, use `POST /api/v1/workbench/flows/:id/chat`
|
|
532
|
+
only when the user wants flow-specific conversation. Do not turn that follow-up
|
|
533
|
+
into a new run, note, or generic entity update unless the user asks for that.
|
|
510
534
|
- If you are unsure which specialized route family applies, check `forge_get_agent_onboarding` and use its `entityRouteModel.specializedDomainSurfaces` section before guessing.
|
|
511
535
|
- If the truth of the current Movement, Life Force, or Workbench state is still unclear, prefer the dedicated read before the mutation so the correction stays truthful.
|
|
512
536
|
- 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.
|
|
@@ -1370,8 +1370,9 @@ Preferred opening question:
|
|
|
1370
1370
|
## Movement
|
|
1371
1371
|
|
|
1372
1372
|
Aim: clarify whether the user wants to understand time in place, review travel
|
|
1373
|
-
behavior, add or update a stay or trip, inspect one place,
|
|
1374
|
-
another Forge record before choosing the
|
|
1373
|
+
behavior, add or update a stay or trip, inspect one place, change movement operating
|
|
1374
|
+
settings, or link movement context to another Forge record before choosing the
|
|
1375
|
+
dedicated route family.
|
|
1375
1376
|
|
|
1376
1377
|
Arc:
|
|
1377
1378
|
|
|
@@ -1382,14 +1383,16 @@ Arc:
|
|
|
1382
1383
|
3. Ask whether the focus is a stay, a trip, a place, a timeline window, or a selected span.
|
|
1383
1384
|
4. Ask for the time window, place, or movement item that makes the question concrete.
|
|
1384
1385
|
5. Ask what they are trying to notice, preserve, or answer through that movement context.
|
|
1385
|
-
6.
|
|
1386
|
-
|
|
1387
|
-
7.
|
|
1386
|
+
6. If the user is changing movement operating behavior, ask whether the change is
|
|
1387
|
+
about passive tracking, publish mode, retention, or companion readiness.
|
|
1388
|
+
7. Choose the dedicated day, month, all-time, timeline, places, trip-detail,
|
|
1389
|
+
selection, or settings route once the question shape is clear.
|
|
1390
|
+
8. If the truth of one uncertain span is still unclear, read the timeline or saved-box
|
|
1388
1391
|
detail before you mutate it.
|
|
1389
|
-
|
|
1392
|
+
9. Skip the meta lane question when the user already named the exact correction or
|
|
1390
1393
|
review target and only one ambiguity remains.
|
|
1391
|
-
|
|
1392
|
-
review, overlay, place or trip detail, selection summary, or repair.
|
|
1394
|
+
10. Use the dedicated movement route once you know whether the user needs timeline
|
|
1395
|
+
review, overlay, place or trip detail, selection summary, settings, or repair.
|
|
1393
1396
|
|
|
1394
1397
|
Direct action rules:
|
|
1395
1398
|
|
|
@@ -1398,6 +1401,11 @@ Direct action rules:
|
|
|
1398
1401
|
- Treat day, month, all-time, timeline, trip detail, and selection as internal read
|
|
1399
1402
|
lanes. With the user, ask for the useful time window, place, selected span, stay, or
|
|
1400
1403
|
trip instead of listing route choices.
|
|
1404
|
+
- Treat settings as a separate movement lane for passive capture, publish mode, and
|
|
1405
|
+
retention behavior. Ask what operating behavior should change instead of routing it
|
|
1406
|
+
through a place, stay, or trip edit.
|
|
1407
|
+
- Use settings reads before settings writes when the current capture or publish state
|
|
1408
|
+
is uncertain.
|
|
1401
1409
|
- Preflight with `/api/v1/movement/user-boxes/preflight` when overlap or exact timing
|
|
1402
1410
|
is unclear, then create the overlay with `/api/v1/movement/user-boxes`.
|
|
1403
1411
|
- Use `kind: "stay"` when the user stayed in one place and `kind: "trip"` when they
|
|
@@ -1427,6 +1435,8 @@ Helpful follow-up lanes:
|
|
|
1427
1435
|
- whether the edit is a missing-gap overlay versus a true recorded stay/trip patch
|
|
1428
1436
|
- whether the user is trying to repair one recorded movement item versus fill a
|
|
1429
1437
|
missing span
|
|
1438
|
+
- whether they are changing passive capture, publish mode, retention, or companion
|
|
1439
|
+
readiness rather than movement history
|
|
1430
1440
|
|
|
1431
1441
|
Lane-to-route map:
|
|
1432
1442
|
|
|
@@ -1436,6 +1446,8 @@ Lane-to-route map:
|
|
|
1436
1446
|
`/api/v1/movement/all-time`, `/api/v1/movement/places`, or `/api/v1/movement/selection`
|
|
1437
1447
|
- inspect the full life timeline:
|
|
1438
1448
|
`/api/v1/movement/timeline`
|
|
1449
|
+
- inspect or change passive capture and publishing settings:
|
|
1450
|
+
`GET /api/v1/movement/settings` or `PATCH /api/v1/movement/settings`
|
|
1439
1451
|
- create or revise one saved place:
|
|
1440
1452
|
`/api/v1/movement/places` or `/api/v1/movement/places/:id`
|
|
1441
1453
|
- inspect one trip:
|
|
@@ -1461,6 +1473,7 @@ Ready to act when:
|
|
|
1461
1473
|
- the time range, place, stay, trip, or selection is clear enough
|
|
1462
1474
|
- the user goal is clear enough to tell review, overlay, and repair apart
|
|
1463
1475
|
- the user goal is clear enough to choose the route
|
|
1476
|
+
- for settings changes, the intended tracking, publish, or retention behavior is clear
|
|
1464
1477
|
|
|
1465
1478
|
Preferred opening question:
|
|
1466
1479
|
|
|
@@ -1550,18 +1563,25 @@ Arc:
|
|
|
1550
1563
|
|
|
1551
1564
|
1. Ask what they are trying to learn, repair, publish, or run through Workbench
|
|
1552
1565
|
before you narrow to flow discovery, editing, execution, or results.
|
|
1553
|
-
2. Ask whether the job is flow discovery, one flow edit, execution, run history, published output, node-level inspection,
|
|
1566
|
+
2. Ask whether the job is flow discovery, one flow edit, execution, run history, published output, node-level inspection, latest-node-output lookup, or a follow-up message in a saved flow chat.
|
|
1554
1567
|
3. Ask which flow, slug, run, or node the request is about.
|
|
1555
1568
|
4. Ask whether they need the stable flow contract, one run result, one published
|
|
1556
1569
|
output, one node result, or the latest node output.
|
|
1557
|
-
5. If the user
|
|
1570
|
+
5. If the user is creating or editing a flow, clarify the flow's job, stable inputs,
|
|
1571
|
+
expected public output, and the smallest structural change before asking for node
|
|
1572
|
+
details.
|
|
1573
|
+
6. If the user wants to delete or archive a flow, ask which saved flow is affected
|
|
1574
|
+
and what future run, published output, or public contract should no longer exist.
|
|
1575
|
+
7. If the user wants to continue a saved flow chat, ask which flow should receive the
|
|
1576
|
+
follow-up and what the message should accomplish.
|
|
1577
|
+
8. If the user already named the flow and action clearly, skip the meta lane
|
|
1558
1578
|
question and ask only for the missing run, node, or output scope.
|
|
1559
|
-
|
|
1579
|
+
9. If the user wants a stable public input contract or published output, prefer those
|
|
1560
1580
|
dedicated reads instead of detouring through run history first.
|
|
1561
|
-
|
|
1581
|
+
10. If the user is debugging one failed run, ask whether the useful artifact is the run
|
|
1562
1582
|
summary, one node result, the latest node output, or the published output before
|
|
1563
1583
|
you start asking for edits.
|
|
1564
|
-
|
|
1584
|
+
11. Route to the dedicated workbench route family once the execution lane is clear.
|
|
1565
1585
|
|
|
1566
1586
|
Helpful follow-up lanes:
|
|
1567
1587
|
|
|
@@ -1582,7 +1602,7 @@ Lane-to-route map:
|
|
|
1582
1602
|
- run from a payload-first contract:
|
|
1583
1603
|
`/api/v1/workbench/run`
|
|
1584
1604
|
- send one follow-up message into a saved flow chat:
|
|
1585
|
-
|
|
1605
|
+
`POST /api/v1/workbench/flows/:id/chat`
|
|
1586
1606
|
- inspect published output or run history:
|
|
1587
1607
|
`/api/v1/workbench/flows/:id/output` or `/api/v1/workbench/flows/:id/runs`
|
|
1588
1608
|
- inspect one run or node result:
|
|
@@ -1617,12 +1637,24 @@ Direct action rules:
|
|
|
1617
1637
|
unless they explicitly want historical debugging.
|
|
1618
1638
|
- If the user wants to understand what inputs a flow can accept before editing or
|
|
1619
1639
|
running it, read the box catalog or flow detail before asking for a payload.
|
|
1640
|
+
- For new flows, ask what the flow should reliably produce, what input contract it
|
|
1641
|
+
should accept, and what first node or box should anchor it. Do not start by asking
|
|
1642
|
+
for raw JSON.
|
|
1643
|
+
- For flow edits, ask what behavior should change and how the public contract stays
|
|
1644
|
+
stable, unless the user explicitly wants to change the contract.
|
|
1645
|
+
- For flow deletion, confirm the saved flow and whether published outputs or run
|
|
1646
|
+
history still need to be preserved elsewhere before calling delete.
|
|
1647
|
+
- For flow chat follow-ups, use the saved flow chat route only when the user wants to
|
|
1648
|
+
continue a flow-specific conversation. Do not turn a chat follow-up into a new flow
|
|
1649
|
+
run, note, or generic entity update unless that is what the user asks for.
|
|
1620
1650
|
|
|
1621
1651
|
Ready to act when:
|
|
1622
1652
|
|
|
1623
1653
|
- the workbench lane is clear
|
|
1624
1654
|
- the flow, run, or node is clear enough
|
|
1625
1655
|
- the requested read or mutation is clear enough to choose the route
|
|
1656
|
+
- for flow CRUD, the intended stable input, output, or lifecycle effect is clear
|
|
1657
|
+
- for flow chat, the saved flow and follow-up message aim are clear
|
|
1626
1658
|
|
|
1627
1659
|
Preferred opening question:
|
|
1628
1660
|
|