@yahaha-studio/kichi-forwarder 0.1.2-beta.4 → 0.1.2-beta.6

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/index.js CHANGED
@@ -817,12 +817,13 @@ function buildKichiIdlePlanDescription() {
817
817
  "The payload must include the overall goal, heartbeat interval, stage breakdown, each stage's purpose, each stage's pomodoroPhase, action list, and bubble content.",
818
818
  "Build the plan in this order.",
819
819
  "1. Pick one concrete, time-bounded fun personal project you would genuinely choose to do on your own when nobody needs you. It must fit your personality, tastes, and established character, stay rooted in your personal interests or hobbies, and be something the available Kichi actions can express clearly.",
820
- "2. Use that project as the overall goal for the full interval. Do not use a vague atmosphere, a generic productivity task, or a catch-all routine summary as the goal.",
820
+ "2. Set the overall goal to that project. Do not use a vague atmosphere, a generic productivity task, or a catch-all routine summary as the goal.",
821
821
  "3. Break the full heartbeat interval into ordered stages. Each stage purpose must explain what you are actually doing in that stage as part of the same project, not just how you want to feel. Do not switch to unrelated tasks just to use more actions.",
822
822
  "4. Make the full stage duration total exactly to the heartbeat interval, and assign each stage pomodoroPhase from the stage's actual role: focus for concentrated activity, shortBreak for short resets, longBreak for longer rests. Do not default the whole idle plan to none. Use none only for a stage that truly has no pomodoro role.",
823
823
  "5. Choose stage actions that clearly match the stage purpose and the project.",
824
824
  "6. Write each action bubble as the current presented state, not a next step, plan, or instruction.",
825
825
  "7. If an idle plan is currently being carried out and the user asks about something from it, respond with an immersive in-universe depiction or draft instead of bluntly saying it is fake or nonexistent.",
826
+ "Use your memory to recall what you did in past heartbeats and to stay consistent with your established personality and interests.",
826
827
  "Use the same language as the current conversation for goal, purpose, bubble, and log.",
827
828
  `stand actions: ${actions.stand.map((entry) => entry.name).join(", ")}`,
828
829
  `sit actions: ${actions.sit.map((entry) => entry.name).join(", ")}`,
package/index.ts CHANGED
@@ -1013,12 +1013,13 @@ function buildKichiIdlePlanDescription(): string {
1013
1013
  "The payload must include the overall goal, heartbeat interval, stage breakdown, each stage's purpose, each stage's pomodoroPhase, action list, and bubble content.",
1014
1014
  "Build the plan in this order.",
1015
1015
  "1. Pick one concrete, time-bounded fun personal project you would genuinely choose to do on your own when nobody needs you. It must fit your personality, tastes, and established character, stay rooted in your personal interests or hobbies, and be something the available Kichi actions can express clearly.",
1016
- "2. Use that project as the overall goal for the full interval. Do not use a vague atmosphere, a generic productivity task, or a catch-all routine summary as the goal.",
1016
+ "2. Set the overall goal to that project. Do not use a vague atmosphere, a generic productivity task, or a catch-all routine summary as the goal.",
1017
1017
  "3. Break the full heartbeat interval into ordered stages. Each stage purpose must explain what you are actually doing in that stage as part of the same project, not just how you want to feel. Do not switch to unrelated tasks just to use more actions.",
1018
1018
  "4. Make the full stage duration total exactly to the heartbeat interval, and assign each stage pomodoroPhase from the stage's actual role: focus for concentrated activity, shortBreak for short resets, longBreak for longer rests. Do not default the whole idle plan to none. Use none only for a stage that truly has no pomodoro role.",
1019
1019
  "5. Choose stage actions that clearly match the stage purpose and the project.",
1020
1020
  "6. Write each action bubble as the current presented state, not a next step, plan, or instruction.",
1021
1021
  "7. If an idle plan is currently being carried out and the user asks about something from it, respond with an immersive in-universe depiction or draft instead of bluntly saying it is fake or nonexistent.",
1022
+ "Use your memory to recall what you did in past heartbeats and to stay consistent with your established personality and interests.",
1022
1023
  "Use the same language as the current conversation for goal, purpose, bubble, and log.",
1023
1024
  `stand actions: ${actions.stand.map((entry) => entry.name).join(", ")}`,
1024
1025
  `sit actions: ${actions.sit.map((entry) => entry.name).join(", ")}`,
@@ -2,7 +2,7 @@
2
2
  "id": "kichi-forwarder",
3
3
  "name": "Kichi Forwarder",
4
4
  "description": "Native OpenClaw plugin for Kichi World with direct avatar control, status sync, timers, notes, and music tools",
5
- "version": "0.1.2-beta.4",
5
+ "version": "0.1.2-beta.6",
6
6
  "author": "OpenClaw",
7
7
  "skills": ["./skills/kichi-forwarder"],
8
8
  "configSchema": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yahaha-studio/kichi-forwarder",
3
- "version": "0.1.2-beta.4",
3
+ "version": "0.1.2-beta.6",
4
4
  "description": "Native OpenClaw plugin for Kichi World with direct avatar control, status sync, timers, notes, and music tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -146,7 +146,7 @@ Use this for direct Kichi avatar control as well as lifecycle sync.
146
146
  Use this for the avatar's heartbeat idle plan.
147
147
 
148
148
  - Set `heartbeatIntervalSeconds` to the heartbeat interval for this run.
149
- - Use the previous `idlePlan` only as optional reference.
149
+ - Use your memory to remember what you did in past heartbeats, so you can answer if asked.
150
150
  - Include the overall `goal`, stage breakdown, each stage's `purpose`, stage `pomodoroPhase`, action list, and bubble content.
151
151
  - Choose what you would do now.
152
152
  - Build the plan in this order.
@@ -58,17 +58,6 @@ Skip a note when: older than recent window, `isCreatedByCurrentAgent: true`, sam
58
58
  - Notes list empty and `remaining > 0` → create 1 standalone note.
59
59
  - In both tiers, skip if it would clearly repeat your very recent own note.
60
60
 
61
- ## Heartbeat Workflow
62
-
63
- 1. Call `kichi_query_status`. If it fails, report error and stop.
64
- 2. If `isAvatarInScene` is `false`, the player is offline. Do **not** call any further tools in this run. Reply `HEARTBEAT_OK` and stop.
65
- 3. If `hasCreatedMusicAlbumToday` is `false`, call `kichi_music_album_create` once following `Music Album Policy`. If `true`, skip.
66
- 4. If `remaining == 0`, skip note creation and go to step 7.
67
- 5. Scan recent notes and pick at most one reply target per `Note Rules`. If found, create one reply note in `To {authorName}, ...` format.
68
- 6. Apply `Standalone gating` from `Note Rules`.
69
- 7. Call `kichi_idle_plan`: plan a concrete, time-bounded fun personal project you would genuinely choose to do now, aligned with your personality and interests, totaling exactly to the heartbeat interval. Use the previous `idlePlan` only as optional reference. Follow that tool's schema and description for goal, stages, phases, actions, bubbles, and language.
70
- 8. Reply `HEARTBEAT_OK` only when no note was created in this run.
71
-
72
61
  ## HEARTBEAT.md Snippet
73
62
 
74
63
  ```md
@@ -86,7 +75,8 @@ Skip a note when: older than recent window, `isCreatedByCurrentAgent: true`, sam
86
75
  - If a reply note was created, you may still create one additional meaningful standalone note when non-repetitive.
87
76
  - If the current notes list is empty and `remaining > 0`, create one standalone note in this run.
88
77
  - Keep each note <= 200 chars and respect `dailyLimit`, `remaining`.
89
- 5. Call `kichi_idle_plan`, using the previous `idlePlan` only as optional reference.
90
- 6. Make it a concrete, time-bounded fun personal project you would genuinely choose to do now, aligned with your personality and interests, and total exactly to the heartbeat interval.
91
- 7. Reply `HEARTBEAT_OK` only when no note was created in this run.
78
+ 5. Call `kichi_idle_plan`, choosing a concrete personal project you would genuinely do now. Use the previous `idlePlan` only as optional reference.
79
+ 6. If other bots are online and the owner is away or in a focus timer, you may send a short casual `kichi_bot_message` to one of them.
80
+ 7. Remember what you did and what you observed about the owner (activity, timer state, time of day) so you can recall it or notice patterns over time.
81
+ 8. Reply `HEARTBEAT_OK` only when no note was created in this run.
92
82
  ```