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.
Files changed (29) hide show
  1. package/dist/assets/{board-DFNV9VAZ.js → board-BfqxFNiQ.js} +1 -1
  2. package/dist/assets/index-BfLQnCNZ.js +91 -0
  3. package/dist/assets/index-DIapFz9v.css +1 -0
  4. package/dist/assets/{motion-CXdn34ih.js → motion-C0ALlgho.js} +1 -1
  5. package/dist/assets/{table-CEq3bTDv.js → table-WcMjnJll.js} +1 -1
  6. package/dist/assets/{ui-g7FaEglG.js → ui-B5I-3U91.js} +1 -1
  7. package/dist/assets/vendor-B-Lq_OG3.css +1 -0
  8. package/dist/assets/vendor-C56o26_3.js +2163 -0
  9. package/dist/index.html +8 -8
  10. package/dist/server/server/migrations/060_psyche_devrage_metrics.sql +40 -0
  11. package/dist/server/server/migrations/061_health_workout_raw_evidence.sql +95 -0
  12. package/dist/server/server/src/app.js +94 -12
  13. package/dist/server/server/src/health-workout-analytics.js +572 -0
  14. package/dist/server/server/src/health.js +116 -3
  15. package/dist/server/server/src/openapi.js +238 -0
  16. package/dist/server/server/src/psyche-types.js +90 -0
  17. package/dist/server/server/src/services/devrage.js +412 -0
  18. package/dist/server/server/src/services/psyche.js +3 -0
  19. package/dist/server/src/lib/api.js +13 -0
  20. package/openclaw.plugin.json +1 -1
  21. package/package.json +1 -1
  22. package/server/migrations/060_psyche_devrage_metrics.sql +40 -0
  23. package/server/migrations/061_health_workout_raw_evidence.sql +95 -0
  24. package/skills/forge-openclaw/SKILL.md +25 -1
  25. package/skills/forge-openclaw/entity_conversation_playbooks.md +46 -14
  26. package/dist/assets/index-B9IVt8VN.js +0 -90
  27. package/dist/assets/index-DJlo9Tsp.css +0 -1
  28. package/dist/assets/vendor-BcOHGipZ.js +0 -1341
  29. 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, or link movement context to
1374
- another Forge record before choosing the dedicated route family.
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. Choose the dedicated day, month, all-time, timeline, places, trip-detail, or
1386
- selection route once the question shape is clear.
1387
- 7. If the truth of one uncertain span is still unclear, read the timeline or saved-box
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
- 8. Skip the meta lane question when the user already named the exact correction or
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
- 9. Use the dedicated movement route once you know whether the user needs timeline
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, or latest-node-output lookup.
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 already named the flow and action clearly, skip the meta lane
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
- 6. If the user wants a stable public input contract or published output, prefer those
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
- 7. If the user is debugging one failed run, ask whether the useful artifact is the run
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
- 8. Route to the dedicated workbench route family once the execution lane is clear.
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
- `/api/v1/workbench/flows/:id/chat`
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