初始提交:Codex Pets 相容的 Claude Code 桌面寵物
摘要: Electron 桌面寵物,透過 Claude Code hooks 即時反映工作狀態(思考、等待授權、失敗、完成),並支援 16 方向追視游標。 根本原因: 專案尚未納入版控,需要建立初始 repo 以便後續追蹤與協作。 影響: 建立 main 分支的第一個版本,包含完整可執行的程式碼與內附寵物「小念」。 修法: 納入以下內容: - main.js / preload.js:Electron 主程序、透明置頂視窗、系統匣選單、HTTP 事件伺服器、游標輪詢與拖曳 - renderer/:Codex V2 spritesheet 幀動畫播放器、session 狀態機、氣泡、alpha 點穿判定 - hook/claude-pet-hook.js:Claude Code hook 端,stdin → POST /event,永遠 exit 0 - lib/、scripts/:hooks 安裝/移除、Windows 開機自動啟動 - pets/xiao-nian:內附寵物包(pet.json + spritesheet.webp) - README.md、docs/states.png:使用說明與狀態總覽圖 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
const { contextBridge, ipcRenderer } = require("electron");
|
||||
|
||||
const SEND = new Set([
|
||||
"pet:ready",
|
||||
"pet:ignore-mouse",
|
||||
"pet:drag-start",
|
||||
"pet:drag-end",
|
||||
"pet:context-menu",
|
||||
"pet:tray-icon",
|
||||
"pet:state",
|
||||
"pet:log",
|
||||
]);
|
||||
|
||||
const ON = new Set([
|
||||
"pet:init",
|
||||
"pet:load",
|
||||
"pet:scale",
|
||||
"pet:settings",
|
||||
"pet:event",
|
||||
"pet:cursor",
|
||||
"pet:drag-move",
|
||||
]);
|
||||
|
||||
contextBridge.exposeInMainWorld("pet", {
|
||||
send(channel, data) {
|
||||
if (SEND.has(channel)) ipcRenderer.send(channel, data);
|
||||
},
|
||||
on(channel, callback) {
|
||||
if (!ON.has(channel)) return () => {};
|
||||
const listener = (_event, data) => callback(data);
|
||||
ipcRenderer.on(channel, listener);
|
||||
return () => ipcRenderer.removeListener(channel, listener);
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user