forge-openclaw-plugin 0.2.61 → 0.2.65

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 +28 -5
  2. package/dist/assets/{board-DThHV1D8.js → board-DUwMfZvN.js} +1 -1
  3. package/dist/assets/index-B9VOpR7r.css +1 -0
  4. package/dist/assets/{index-_Cn6Prym.js → index-DoHjjze2.js} +39 -39
  5. package/dist/assets/{motion-BtTJtHCw.js → motion-Crg3QyXD.js} +1 -1
  6. package/dist/assets/{table-Bnw6pcwN.js → table-CTlDeYRs.js} +1 -1
  7. package/dist/assets/{ui-CnVxFkj0.js → ui-CJPaElbj.js} +1 -1
  8. package/dist/assets/{vendor-BgZ3YrRd.js → vendor-BdrT2htV.js} +213 -208
  9. package/dist/companion-iroh/darwin-arm64/forge-companion-iroh +0 -0
  10. package/dist/companion-iroh/darwin-x64/forge-companion-iroh +0 -0
  11. package/dist/companion-iroh/linux-x64/forge-companion-iroh +0 -0
  12. package/dist/companion-iroh-src/Cargo.lock +4559 -0
  13. package/dist/companion-iroh-src/Cargo.toml +37 -0
  14. package/dist/companion-iroh-src/src/lib.rs +279 -0
  15. package/dist/companion-iroh-src/src/main.rs +478 -0
  16. package/dist/companion-iroh-src/src/protocol.rs +129 -0
  17. package/dist/index.html +7 -7
  18. package/dist/server/server/src/app.js +163 -18
  19. package/dist/server/server/src/discovery-advertiser.js +13 -0
  20. package/dist/server/server/src/health.js +18 -3
  21. package/dist/server/server/src/movement.js +16 -1
  22. package/dist/server/server/src/openapi.js +12 -2
  23. package/dist/server/server/src/services/companion-iroh.js +425 -0
  24. package/dist/server/server/src/services/life-force.js +166 -25
  25. package/dist/server/server/src/web.js +88 -12
  26. package/openclaw.plugin.json +1 -1
  27. package/package.json +3 -3
  28. package/skills/forge-openclaw/SKILL.md +44 -2
  29. package/skills/forge-openclaw/entity_conversation_playbooks.md +217 -17
  30. package/skills/forge-openclaw/psyche_entity_playbooks.md +59 -0
  31. package/dist/assets/index-7gvVCqnV.css +0 -1
@@ -114,6 +114,24 @@ With the user, say the human thing:
114
114
  The API path still matters, but it should not leak into the question unless the user
115
115
  is explicitly asking about implementation.
116
116
 
117
+ ## Dedicated surface lane translation
118
+
119
+ Use this when Movement, Life Force, or Workbench work needs a route choice. The route
120
+ choice is an internal classification step, not a user-facing menu.
121
+
122
+ - Translate "day, month, all-time, timeline, trip detail, or selection" into "which
123
+ time window or specific stay/trip should we look at?"
124
+ - Translate "overview, profile, weekdayTemplate, or fatigueSignal" into "is this about
125
+ your current state, a durable assumption, a repeated weekday rhythm, or how you feel
126
+ right now?"
127
+ - Translate "listFlows, boxCatalog, runDetail, nodeResult, latestNodeOutput, or
128
+ publishedOutput" into "do you need the saved flow, its inputs, one run, one node, or
129
+ the public result?"
130
+ - If the user already gave the concrete object, time window, weekday, flow, run, or
131
+ node, skip the route menu entirely and ask only for the missing product detail.
132
+ - Once the lane is selected, use the exact route key internally and do not invent a
133
+ friendlier path.
134
+
117
135
  ## Psyche and memory routing
118
136
 
119
137
  Self-observation is not the default container for psychological material. Use it only
@@ -219,6 +237,10 @@ Use this quick split before the conversation gets too detailed.
219
237
  `preference_signal`, and `self_observation` are action workflows. Start from what
220
238
  the user is trying to do, then use the dedicated action tool or note-backed write
221
239
  model.
240
+ - `sleep_overview` and `sports_overview` are read-model-only surfaces. Use them when
241
+ the user wants to review nights, workouts, training load, recovery context, or
242
+ health patterns before deciding whether one stored `sleep_session` or
243
+ `workout_session` needs enrichment.
222
244
  - Movement, Life Force, and Workbench are specialized domain areas. Use their
223
245
  dedicated route families for timelines and overlays, energy profile/templates and
224
246
  fatigue signals, and Workbench flow execution or result artifacts. When available,
@@ -231,6 +253,63 @@ Use this quick split before the conversation gets too detailed.
231
253
  - If the tool schema and live onboarding disagree about a specialized route key or
232
254
  path, treat that as a contract mismatch to fix. Do not guess a nearby route.
233
255
 
256
+ ## Full Route Posture Matrix
257
+
258
+ Use this as an internal checklist when simulating or handling an entity flow. Do not
259
+ read this table to the user. It exists so the agent can ask natural questions while
260
+ still knowing the exact write/read family before it acts.
261
+
262
+ - `goal`, `project`, `strategy`, `task`, `habit`, `tag`, `note`, `insight`,
263
+ `calendar_event`, `work_block_template`, and `task_timebox`: normal stored Forge
264
+ entities. Search, create, update, delete, and restore through the shared batch
265
+ entity routes.
266
+ - `preference_catalog`, `preference_catalog_item`, `preference_context`, and
267
+ `preference_item`: normal stored Preferences records. Use shared batch entity
268
+ routes for CRUD; switch to Preferences action routes only for judgments, signals,
269
+ game starts, merges, entity seeding, or explicit score overrides.
270
+ - `questionnaire_instrument`: normal stored questionnaire CRUD for ordinary authoring
271
+ and edits. Use questionnaire action routes only for clone, draft, and publish
272
+ state.
273
+ - `sleep_session` and `workout_session`: normal stored health records for ordinary
274
+ CRUD. Use health overview/read helpers for review and reflective update helpers only
275
+ when enriching one already-known record after review.
276
+ - `psyche_value`, `behavior_pattern`, `behavior`, `belief_entry`, `mode_profile`,
277
+ `mode_guide_session`, `trigger_report`, `event_type`, and `emotion_definition`:
278
+ psychologically meaningful records, but normal stored entities for API purposes.
279
+ Search and mutate through shared batch entity routes after the formulation is clear.
280
+ - `wiki_page`: specialized CRUD. Use wiki page/search/upsert routes so page rows,
281
+ backlinks, spaces, aliases, and metadata stay coherent.
282
+ - `calendar_connection`: specialized CRUD. Use provider discovery, connection CRUD,
283
+ selected-calendar rediscovery, sync, and delete routes rather than batch entity
284
+ tools.
285
+ - `task_run`: action workflow. Use task-run start, heartbeat, focus, complete, and
286
+ release routes; never treat status changes as proof of live work.
287
+ - `work_adjustment`: action workflow. Use the signed work-adjustment route for real
288
+ minutes that happened outside a live run.
289
+ - `preference_judgment` and `preference_signal`: action workflows. Use the dedicated
290
+ Preferences judgment and signal routes, not batch CRUD.
291
+ - `questionnaire_run`: action workflow. Use questionnaire run start, read, update, and
292
+ complete routes.
293
+ - `self_observation`: read-model and note-backed workflow. Read the self-observation
294
+ calendar, then create or update an observed `note` with `frontmatter.observedAt`
295
+ only when a lightweight episode observation is the right container.
296
+ - `sleep_overview`: read-model-only health surface. Use the sleep overview route or
297
+ `forge_get_sleep_overview` when the user wants to review recent nights, regularity,
298
+ score, stages, or recovery patterns before deciding whether a specific
299
+ `sleep_session` needs reflective enrichment.
300
+ - `sports_overview`: read-model-only health surface. Use the sports overview route or
301
+ `forge_get_sports_overview` when the user wants to review workouts, training load,
302
+ effort, type distribution, or recovery context before deciding whether a specific
303
+ `workout_session` needs reflective enrichment.
304
+ - `movement`: specialized domain surface. Use the dedicated movement routes for day,
305
+ month, all-time, timeline, places, trip detail, selection aggregates, manual
306
+ overlays, and repair actions.
307
+ - `life_force`: specialized domain surface. Use the dedicated Life Force routes for
308
+ overview, profile updates, weekday templates, and fatigue signals.
309
+ - `workbench`: specialized domain surface. Use the dedicated Workbench routes for
310
+ flow catalog/detail, flow CRUD, execution, run history, published output, node
311
+ result, and latest-node-output work.
312
+
234
313
  ## Active-listening patterns
235
314
 
236
315
  Use one of these shapes when the user is not yet precise.
@@ -1096,6 +1175,82 @@ Preferred opening question:
1096
1175
 
1097
1176
  - "What about this workout feels most worth remembering or connecting?"
1098
1177
 
1178
+ ## Sleep Overview
1179
+
1180
+ Aim: review sleep patterns before deciding whether one night needs a reflective update
1181
+ or a planning follow-up.
1182
+
1183
+ Arc:
1184
+
1185
+ 1. Ask what the user wants to understand from the sleep picture: one night, a recent
1186
+ trend, regularity, recovery, stages, or links to work and Psyche context.
1187
+ 2. Read the sleep overview before asking the user to reconstruct metrics from memory.
1188
+ 3. Reflect the practical question the user is trying to answer from the overview.
1189
+ 4. Move to `sleep_session` enrichment only when one specific night needs context,
1190
+ tags, notes, or links.
1191
+
1192
+ Helpful follow-up lanes:
1193
+
1194
+ - which night or date range matters
1195
+ - whether the question is recovery, regularity, stages, schedule drift, or links
1196
+ - what decision the sleep review should help with
1197
+
1198
+ Route note:
1199
+
1200
+ - `sleep_overview` is a read-model-only surface. Use `forge_get_sleep_overview` or
1201
+ `/api/v1/health/sleep` for review. Do not create, update, or delete
1202
+ `sleep_overview` through batch CRUD.
1203
+ - If the review reveals that one night needs reflective context, switch to the stored
1204
+ `sleep_session` batch route or reflective update helper for that known session.
1205
+
1206
+ Ready to review when:
1207
+
1208
+ - the user's practical sleep question is clear
1209
+ - the relevant night or date range is clear enough
1210
+
1211
+ Preferred opening question:
1212
+
1213
+ - "What are you trying to understand from your sleep picture right now?"
1214
+
1215
+ ## Sports Overview
1216
+
1217
+ Aim: review workout and training-load context before deciding whether one workout
1218
+ needs a reflective update or recovery follow-up.
1219
+
1220
+ Arc:
1221
+
1222
+ 1. Ask what the user wants to understand from the sports picture: one workout, a
1223
+ recent training trend, effort, volume, type mix, recovery, or links to mood and
1224
+ goals.
1225
+ 2. Read the sports overview before asking the user to reconstruct metrics from memory.
1226
+ 3. Reflect the practical decision the review should support.
1227
+ 4. Move to `workout_session` enrichment only when one specific workout needs context,
1228
+ tags, notes, or links.
1229
+
1230
+ Helpful follow-up lanes:
1231
+
1232
+ - which workout or date range matters
1233
+ - whether the question is load, effort, activity type, recovery, mood, or links
1234
+ - what decision the sports review should help with
1235
+
1236
+ Route note:
1237
+
1238
+ - `sports_overview` is a read-model-only surface. Use `forge_get_sports_overview` or
1239
+ `/api/v1/health/fitness` for review. Do not create, update, or delete
1240
+ `sports_overview` through batch CRUD.
1241
+ - If the review reveals that one workout needs reflective context, switch to the
1242
+ stored `workout_session` batch route or reflective update helper for that known
1243
+ session.
1244
+
1245
+ Ready to review when:
1246
+
1247
+ - the user's practical training or recovery question is clear
1248
+ - the relevant workout or date range is clear enough
1249
+
1250
+ Preferred opening question:
1251
+
1252
+ - "What are you trying to understand from your workout picture right now?"
1253
+
1099
1254
  ## Calendar Connection
1100
1255
 
1101
1256
  Aim: connect the right provider deliberately without turning setup into a credential
@@ -1240,6 +1395,9 @@ Direct action rules:
1240
1395
 
1241
1396
  - If the user is clearly talking about a missing-data gap that should become a stay or
1242
1397
  trip, use a user-defined movement box.
1398
+ - Treat day, month, all-time, timeline, trip detail, and selection as internal read
1399
+ lanes. With the user, ask for the useful time window, place, selected span, stay, or
1400
+ trip instead of listing route choices.
1243
1401
  - Preflight with `/api/v1/movement/user-boxes/preflight` when overlap or exact timing
1244
1402
  is unclear, then create the overlay with `/api/v1/movement/user-boxes`.
1245
1403
  - Use `kind: "stay"` when the user stayed in one place and `kind: "trip"` when they
@@ -1354,6 +1512,12 @@ Direct action rules:
1354
1512
  - In onboarding, this surface may be keyed as `lifeForce` and also as the entity-style
1355
1513
  alias `life_force`. Treat both names as the same dedicated Life Force route family,
1356
1514
  not as batch CRUD.
1515
+ - Treat overview, profile, weekday-template, and fatigue-signal lanes as internal
1516
+ route choices. With the user, ask whether this is a current read, a durable
1517
+ assumption, a repeated weekday rhythm, or a right-now state instead of reciting route
1518
+ names.
1519
+ - The overview route key is `overview` and the concrete runtime path is
1520
+ `GET /api/v1/life-force`. Do not invent `/api/v1/life-force/overview`.
1357
1521
  - If the user is describing a durable baseline such as work capacity, recovery style,
1358
1522
  or action-point assumptions, patch the profile instead of logging a fatigue signal.
1359
1523
  - If the user is describing a repeatable weekday rhythm, update that weekday template
@@ -1434,6 +1598,13 @@ Direct action rules:
1434
1598
 
1435
1599
  - If the user needs the stable public contract of a flow, prefer the flow detail or
1436
1600
  published-output routes before a run-history read.
1601
+ - Treat saved-flow catalog, box catalog, run history, run detail, node result, latest
1602
+ node output, and published output as internal read lanes. With the user, ask whether
1603
+ they need the saved flow, its input contract, one run, one node, or the public
1604
+ result instead of listing route keys.
1605
+ - For flow catalog questions, use `GET /api/v1/workbench/flows`; for available box
1606
+ inputs, use `GET /api/v1/workbench/catalog/boxes`. Do not blur those into one vague
1607
+ "catalog" read when the user needs a runnable flow versus an input-box contract.
1437
1608
  - If the user wants to execute a known saved flow, use `/api/v1/workbench/flows/:id/run`.
1438
1609
  - If the user wants payload-first execution without depending on a saved flow id, use
1439
1610
  `/api/v1/workbench/run`.
@@ -1670,26 +1841,38 @@ Preferred opening question:
1670
1841
 
1671
1842
  ## Event Type
1672
1843
 
1673
- Aim: create a reusable incident category that will actually help future reports stay
1674
- consistent.
1844
+ Aim: bridge into the Psyche playbook for a reusable incident category without
1845
+ flattening the lived episode into cold taxonomy. `event_type` is a Psyche taxonomy
1846
+ record: use the deeper Event Type guidance in `psyche_entity_playbooks.md` when the
1847
+ user is exploring meaning, and keep this section as the route and handoff reminder.
1675
1848
 
1676
1849
  Arc:
1677
1850
 
1678
- 1. Ask what kind of moment or incident this label should capture in lived terms.
1679
- 2. Reflect the repeated moment back in plain language before narrowing the wording.
1680
- 3. Ask how narrow or broad it should be.
1681
- 4. Ask what would count as inside versus outside the category if that boundary is
1682
- still fuzzy.
1683
- 5. Offer a concise label if the lived meaning is clearer than the wording.
1684
- 6. Ask for a short description only if the label could be ambiguous later.
1851
+ 1. Ask what kind of emotionally meaningful moment keeps recurring and why naming it
1852
+ consistently would help future trigger reports.
1853
+ 2. Reflect the repeated moment back in plain language by naming the emotional or
1854
+ relational stake before narrowing the wording.
1855
+ 3. Ask for one recent example if the boundary is still abstract.
1856
+ 4. Clarify what belongs inside this event type and what should stay outside it.
1857
+ 5. Offer one concise candidate label once the repeated moment is clear.
1858
+ 6. Link it to trigger reports, beliefs, patterns, modes, or emotion definitions only
1859
+ after the category itself feels accurate.
1685
1860
 
1686
1861
  If the user already offered a candidate label, keep the wording provisional and ask
1687
1862
  what kinds of moments belong inside it before you ask whether the label is right.
1688
1863
 
1864
+ Route note:
1865
+
1866
+ - `event_type` is psychologically meaningful but still uses shared batch CRUD for
1867
+ storage. Search and mutate it through the shared entity routes after the lived
1868
+ category, boundary, and wording are clear enough. Do not treat it as a generic tag
1869
+ or route it through `self_observation`.
1870
+
1689
1871
  Ready to save when:
1690
1872
 
1691
- - the label is stable
1692
- - the intended category is clear enough that future reports will use it consistently
1873
+ - the repeated moment is understandable in plain language
1874
+ - the boundary is clear enough for future reports to use consistently
1875
+ - the label feels accurate enough or has one candidate wording to confirm
1693
1876
 
1694
1877
  Preferred opening question:
1695
1878
 
@@ -1697,25 +1880,42 @@ Preferred opening question:
1697
1880
 
1698
1881
  ## Emotion Definition
1699
1882
 
1700
- Aim: define one reusable emotion entry clearly enough that future reports stay precise.
1883
+ Aim: `emotion_definition` is a Psyche taxonomy record, so bridge into the Psyche
1884
+ playbook for a reusable emotion entry by its lived signature, not by a dictionary
1885
+ definition. Use the deeper Emotion Definition guidance in
1886
+ `psyche_entity_playbooks.md` when the user is exploring the feeling.
1701
1887
 
1702
1888
  Arc:
1703
1889
 
1704
- 1. Ask what this feeling is like in lived terms when the user says it.
1705
- 2. Reflect the felt signature back in plain language before you settle the label.
1890
+ 1. Ask when this feeling was present recently and what made it recognizable.
1891
+ 2. Reflect the felt signature back in plain language before asking for category or
1892
+ label polish.
1706
1893
  3. Ask what distinguishes it from nearby emotions if that matters.
1707
- 4. Offer a concise label if the felt meaning is clearer than the wording.
1708
- 5. Ask for a short description only if later reports would benefit from it.
1894
+ 4. Ask what the feeling tends to signal, protect, warn about, long for, or demand.
1895
+ 5. Offer one concise definition in the user's language and invite correction.
1896
+ 6. Link it to trigger reports, modes, beliefs, or patterns only after the definition
1897
+ feels steady.
1709
1898
 
1710
1899
  Helpful follow-up lanes:
1711
1900
 
1712
1901
  - what tells the user this is that feeling and not a nearby one
1902
+ - body signal, urge, image, thought, or relational meaning that identifies it
1713
1903
  - what kind of moments this emotion name should be used for later
1904
+ - what the feeling usually warns about, longs for, protects, or demands
1905
+
1906
+ Route note:
1907
+
1908
+ - `emotion_definition` is psychologically meaningful but still uses shared batch CRUD
1909
+ for storage. Search and mutate it through the shared entity routes after the felt
1910
+ signature, boundary, and wording are clear enough. Do not treat it as a generic
1911
+ dictionary item.
1714
1912
 
1715
1913
  Ready to save when:
1716
1914
 
1717
1915
  - the label is clear
1718
- - the meaning is clear enough to reuse later
1916
+ - the felt signature is clear enough to recognize later
1917
+ - the boundary from nearby feelings is clear enough when it matters
1918
+ - the definition can be written in language the user recognizes
1719
1919
 
1720
1920
  Preferred opening question:
1721
1921
 
@@ -188,6 +188,65 @@ material without a usable formulation.
188
188
  defending the formulation.
189
189
  - Do not use hypotheses as diagnosis, certainty, or replacement belief work. They are
190
190
  collaborative formulations that can be saved, revised, or discarded.
191
+ - Hypotheses are not decorative reassurance. Use them when they help the user see a
192
+ function, prediction, protection, payoff, cost, or value conflict that their own
193
+ example already supports.
194
+ - If a user is circling around a behavior pattern, mode, belief, or trigger report
195
+ after one concrete example is visible, offer one careful hypothesis and then one
196
+ question that tests or corrects it.
197
+ - Do not make the user supply every interpretation alone. If the sequence is clear
198
+ enough, do the formulation work in plain language and invite correction.
199
+
200
+ ## Hypothesis To Record Bridge
201
+
202
+ Once a hypothesis lands or is corrected, turn it into a saveable Forge shape instead
203
+ of leaving it as warm reflective prose.
204
+
205
+ - Name what the hypothesis is becoming: a belief sentence, functional loop, behavior,
206
+ mode, trigger report, value, event type, or emotion definition.
207
+ - Translate the accepted hypothesis into the smallest useful record fields: title,
208
+ core sentence, cue, protection, payoff, cost, preferred response, fear, body signal,
209
+ or linked episode.
210
+ - Ask one confirmation question about accuracy, not another broad exploration
211
+ question.
212
+ - If the user corrects the hypothesis, revise the formulation once in their language
213
+ and then ask whether that corrected version is true enough to save.
214
+ - If adjacent Psyche records became visible, mention them as optional links after the
215
+ primary record is stable. Do not switch containers midstream unless the user wants
216
+ that.
217
+ - Save through shared batch entity routes only after the user accepts the working
218
+ wording or explicitly asks to save.
219
+
220
+ ## Psyche Hypothesis Map
221
+
222
+ Use these shapes after at least one concrete example is clear. The hypothesis should
223
+ help the user understand function, meaning, protection, cost, or connection. Keep it
224
+ short, tentative, and correctable.
225
+
226
+ - `psyche_value`: hypothesize about the longing or pain that makes the value alive
227
+ now, and what ordinary behavior would show movement toward it.
228
+ - `behavior_pattern`: hypothesize about the cue, body/emotion shift, meaning,
229
+ behavior or urge, short-term payoff, long-term cost, and what a replacement response
230
+ would still need to protect.
231
+ - `behavior`: hypothesize about the immediate problem the move solves, the cue or
232
+ urge that pulls it online, and whether it functions as away, committed, or recovery
233
+ behavior.
234
+ - `belief_entry`: hypothesize about the rule, prediction, or self/other/world sentence
235
+ the moment seems to activate, then ask whether that wording lands.
236
+ - `mode_profile`: hypothesize about the protective job, feared danger, burden, and
237
+ possible mode family only after the part's lived voice or posture is visible.
238
+ - `mode_guide_session`: hypothesize about what the active part is trying to stop,
239
+ force, prevent, or secure right now while keeping candidate mode labels provisional.
240
+ - `trigger_report`: hypothesize about the episode chain only after the situation,
241
+ felt stake, meaning, action, and consequence are at least partly visible.
242
+ - `event_type`: hypothesize about the repeated emotional or relational stake that
243
+ makes future reports need the same category.
244
+ - `emotion_definition`: hypothesize about the feeling's body signature, urge, warning,
245
+ protection, or longing, and what distinguishes it from nearby emotions.
246
+ - schema themes: hypothesize through the concrete container that best fits the
247
+ material: belief sentence, recurring functional loop, active mode, one trigger
248
+ episode, or durable wiki explanation. Do not flatten schema work into a loose
249
+ self-observation.
191
250
 
192
251
  ## Therapeutic Direction Check
193
252