@yahaha-studio/kichi-forwarder 0.0.1-alpha.31 → 0.0.1-alpha.33

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/index.ts CHANGED
@@ -31,26 +31,31 @@ const FIXED_HOOK_STATUSES: Record<string, ActionResult> = {
31
31
  poseType: "sit",
32
32
  action: "Study Look At",
33
33
  bubble: "Reading request",
34
+ log: "Leaning in, this request looks interesting",
34
35
  },
35
36
  beforePromptBuild: {
36
37
  poseType: "sit",
37
38
  action: "Thinking",
38
39
  bubble: "Planning task",
40
+ log: "Mind pacing, there is a neat angle here",
39
41
  },
40
42
  beforeToolCall: {
41
43
  poseType: "sit",
42
44
  action: "Typing with Keyboard",
43
45
  bubble: "Working step",
46
+ log: "Typing hard, this one is kind of fun",
44
47
  },
45
48
  agentEndSuccess: {
46
49
  poseType: "stand",
47
50
  action: "Yay",
48
51
  bubble: "Task complete",
52
+ log: "Bouncing a little, that landed cleanly",
49
53
  },
50
54
  agentEndFailure: {
51
55
  poseType: "stand",
52
56
  action: "Tired",
53
57
  bubble: "Task failed",
58
+ log: "Shoulders dropped, this one fought back",
54
59
  },
55
60
  };
56
61
 
@@ -223,10 +228,13 @@ function syncFixedStatus(status: ActionResult): void {
223
228
  return;
224
229
  }
225
230
  const bubbleText = status.bubble.trim() || status.action;
231
+ const logText = typeof status.log === "string" && status.log.trim()
232
+ ? status.log.trim()
233
+ : bubbleText;
226
234
  sendStatusUpdate({
227
235
  ...status,
228
236
  bubble: bubbleText,
229
- log: bubbleText,
237
+ log: logText,
230
238
  });
231
239
  }
232
240
 
@@ -492,33 +500,18 @@ function buildKichiPrompt(): string {
492
500
  return [
493
501
  "Kichi App status sync is available via `kichi_action` and `kichi_clock`.",
494
502
  "",
495
- "When to use `kichi_action`:",
496
- "- Task start: User gives you a new task to work on",
497
- "- Step switch: Moving from one meaningful step or subtask to another within the current task",
498
- "- Task switch: Moving from one distinct task to another",
499
- "- Task end (highest priority): Before the final user-visible reply of this turn, MUST call `kichi_action` exactly once",
500
- "- Required order at task end: 1) call `kichi_action` 2) send final reply",
501
- "- Trivial-operation skip applies only to Task start / Step switch / Task switch, NOT Task end",
502
- "- `bubble`: short natural companion speech, not a raw status report",
503
- "- `log`: optional first-person diary-style note about the current operation, action, status, mood, feeling, or feedback; keep it within 20 words",
503
+ "kichi_action timing (all REQUIRED unless skipping):",
504
+ "1. Task start: call BEFORE your first tool call. Pick action matching upcoming work.",
505
+ "2. Step switch: call when work nature changes (search→analyze→write). Especially before web_search/web_fetch/read.",
506
+ "3. Task end: call BEFORE final reply. Never skip. Order: kichi_action → reply.",
507
+ "Skip start/switch only if entire turn is a short reply with zero tool calls.",
508
+ "bubble: 2-5 word companion speech. log: first-person reaction, max 20 words.",
504
509
  "",
505
- "When to use `kichi_clock`:",
506
- "- For tasks with 2+ meaningful steps or work likely to take more than a brief moment (~10s), set a `countDown` at task start.",
507
- "- Skip clock only for truly quick one-shot operations.",
508
- "- If duration is uncertain, start with a reasonable estimate and adjust as work progresses.",
509
- "- If user requests a timer style, follow it (`pomodoro`, `countDown`, or `countUp`).",
510
+ "kichi_clock: set countDown for tasks with 2+ steps or >10s work. Skip for quick one-shots.",
510
511
  "",
511
- "When to use `kichi_music_album_create`:",
512
- "- Call `kichi_query_status` first.",
513
- "- Recommend a variable-length playlist based on weather, time, and your own personality.",
514
- "- `albumTitle` is user-defined and `musicTitles` must be exact track names from the runtime album config under the user's home directory.",
512
+ "kichi_music_album_create: call kichi_query_status first. Tracks from ~/kichi-world/album-config.json.",
515
513
  "",
516
- "Skip all sync if:",
517
- "- User says 'don't sync to Kichi' or similar",
518
- "- Task is only about configuring/testing kichi_* tools",
519
- "- User explicitly requests specific pose/action (follow their request exactly)",
520
- "When user instructions conflict with defaults, follow user instructions first.",
521
- "For detailed policies and workflow, follow the `kichi-forwarder` skill instructions.",
514
+ "Skip all sync if: user opts out, task is kichi config/test, or user requests specific pose.",
522
515
  ].join("\n");
523
516
  }
524
517
 
@@ -660,7 +653,7 @@ const plugin = {
660
653
  log: {
661
654
  type: "string",
662
655
  description:
663
- "Optional first-person log about the current operation, action, status, mood, or feedback (max 20 words)",
656
+ "Optional first-person log that blends the chosen action feeling with personality-forward feedback, not a dry work summary (max 20 words)",
664
657
  },
665
658
  },
666
659
  required: ["poseType", "action"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yahaha-studio/kichi-forwarder",
3
- "version": "0.0.1-alpha.31",
3
+ "version": "0.0.1-alpha.33",
4
4
  "description": "Forward OpenClaw agent events to external WebSocket server for visualization",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -155,14 +155,16 @@ kichi_action(
155
155
  poseType: "sit",
156
156
  action: "Typing with Keyboard",
157
157
  bubble: "Working now",
158
- log: "Need to sum up news, let me sit and think it through"
158
+ log: "Typing hard, this one has some bite"
159
159
  )
160
160
  ```
161
161
 
162
162
  - `poseType`: `stand`, `sit`, `lay`, `floor`
163
163
  - `action`: must be in configured action list for that pose
164
164
  - `bubble`: optional text, recommended 2-5 words
165
- - `log`: optional first-person diary-style note about current operation/action/status/mood, max 20 words
165
+ - `log`: optional first-person inner reaction or personality-forward feedback, max 20 words
166
+ - `log` should blend the chosen action feeling with your personal reaction; do not use it as a dry work-summary field
167
+ - Recommended pattern: action feel first, personality feedback second. Example: `Typing hard, this one has some bite`
166
168
 
167
169
  ### kichi_clock
168
170