@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 +19 -26
- package/package.json +1 -1
- package/skills/kichi-forwarder/SKILL.md +4 -2
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:
|
|
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
|
-
"
|
|
496
|
-
"
|
|
497
|
-
"
|
|
498
|
-
"
|
|
499
|
-
"
|
|
500
|
-
"-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
|
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
|
@@ -155,14 +155,16 @@ kichi_action(
|
|
|
155
155
|
poseType: "sit",
|
|
156
156
|
action: "Typing with Keyboard",
|
|
157
157
|
bubble: "Working now",
|
|
158
|
-
log: "
|
|
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
|
|
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
|
|