New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@cjhyy/code-shell-pet

Package Overview
Dependencies
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cjhyy/code-shell-pet

Pet (top-level personal assistant) capability for CodeShell — projection state machine, DelegateWork contract, Mimi behavior profile.

latest
Source
npmnpm
Version
0.9.46
Version published
Maintainers
1
Created
Source

@cjhyy/code-shell-pet

CodeShell 的 Mimi(项目工作状态助理 / 桌面 Pet)领域能力包。它只依赖 @cjhyy/code-shell-core/extension,由宿主显式加载,不把 Pet 字面量和产品规则重新写回 core。

为什么单独成包

Mimi 与普通 Work Session 的职责不同:

  • Mimi 负责澄清、汇总、路由和跨 Workspace 协调;
  • Work Session 负责读文件、运行工具和完成执行任务;
  • Desktop 负责窗口、导航、磁盘会话目录和具体 UI。

因此 Pet 包只拥有可跨宿主复用的领域规则和投影协议。Electron 窗口、React 组件、磁盘目录 扫描等宿主能力留在 packages/desktop;通用引擎、工具系统和协议生命周期留在 packages/core。

模块边界

模块职责
capability.ts唯一组合根:注册行为 profile、DelegateWork、投影 observer 和参数校验
profile.tsMimi 的系统边界、允许工具和单轮委托服务
delegation.ts / delegate-work.tsWorkspace、可复用 Session 与结构化委托工具
run-params.ts宿主输入的有界校验、规范化和 fail-closed 快照
gateway.ts / host-actions.ts渠道只读发现与当前会话回复,不接收任意 target
outbound-message.ts使用宿主不透明目标的主动消息请求;工具接受不等于发送成功
follow-ups.ts读取/处理 Desktop 同一份“需要跟进”,不建立第二套 Todo
sessions-tool.ts / session-control.tsSession 渐进读取与精确归档选择器
current-time.ts宿主时间原子能力,不让 Mimi 猜 epoch 或调用 shell
team.ts历史兼容的数字人团队纯数据契约;Pet runtime 不消费
session-index.tsWork Session 的纯状态机与安全摘要
pending-decision-index.ts跨 Session 待决策读模型,不持有 resolver 或原始问题正文
projection-extension.ts把 core 的通用生命周期事件投影为 Pet snapshot/delta
protocol.ts / types.tsPet 专属 wire shape 和领域类型
long-task.ts长程任务状态机、事件协议、恢复提示和有界经理上下文

这种拆分让状态机、输入边界和协议适配可以分别测试,也让 Desktop 以后更换呈现方式时不必改 Mimi 的安全规则。

公共入口

Pet 保持为一个 npm 包,不把 projection 和能力工厂继续拆成多个独立发布单元。新代码 应按职责使用两个最小子入口:

import { createPetCapability } from "@cjhyy/code-shell-pet/capability";
import {
  PET_PROJECTION_DELTA_METHOD,
  type PetProjectionDelta,
  type PetProjectionSnapshotResult,
} from "@cjhyy/code-shell-pet/protocol";
入口稳定职责不包含
@cjhyy/code-shell-pet/capability宿主组合用的 createPetCapabilityprompt、工具实现、状态机
@cjhyy/code-shell-pet/protocolsnapshot/delta 方法名和投影 wire typesSessionIndex、pending 状态机、observer 实现
@cjhyy/code-shell-pet/team仅历史兼容;新消费方应使用 Desktop 共享契约Pet runtime 或 core 扩展逻辑

根入口 @cjhyy/code-shell-pet 为现有 Desktop 和动态 capability loader 保持兼容;它不会被 移除,但新消费方不应为了一个协议类型或团队 parser 依赖整个兼容 barrel。包不提供通配 deep import,未列出的源码模块均为内部实现。

必须保持的约束

  • Mimi 不能获得 Workspace 执行工具;执行工作只能通过 DelegateWork。
  • Workspace 和可复用 Session 必须来自宿主本轮提供的闭集。
  • Pet 不接收、保存或路由数字人 / 数字人团队 id;数字人工作归项目 Session。
  • pet Session 不得出现在普通 Work Session 列表或待决策列表。
  • 投影不得包含 resolver、工具参数、原始 AskUser 正文、命令或凭证。
  • 畸形宿主输入必须隐藏委托能力或返回错误,不能降级为不受限执行。
  • Pet 包不得运行时依赖 Desktop、TUI、Server、Web 或其他产品包。
  • DelegateWork 的启动回执不等于完成;只有真实 Work Session 终态才能关闭长程任务。
  • GatewayReply、SendMessage 和其他宿主动作只登记请求;成功/失败措辞只能来自宿主执行回执。
  • Mimi 管理回合最多执行 6 个模型工具轮次;参数纠错耗尽预算后停止,执行任务仍交给 Work Session。
  • “需要跟进”只有一个 canonical service 和 durable state;不得重新增加独立 Todo store/tool/UI。

长程任务宿主契约

long-task.ts 只定义可移植的领域状态机。Desktop 当前负责把它接到真实运行时:

  • 每次委派先原子写入 pet/long-tasks.json,再启动 Work Session;
  • Work Session 默认运行普通回合;只有显式启用 Goal 的任务使用 core Goal 模式持续执行,Pet 不复制第二套执行循环;
  • 顶层 stream event 提供 checkpoint 和可信的 goal_progress(met/exhausted) 终态,Pet projection 提供待审批/断线状态;
  • 暂停会停止当前 turn;启用 Goal 时同时持久化其 paused 状态,恢复/重试继续同一 durable Session;
  • 进程重启后,未观察到终态的任务进入 interrupted,用户可从原 Session 恢复;
  • 终态先写入去重的工作记忆,再确认交付;中途崩溃会在启动时安全重放;
  • 每个 Mimi turn 只注入有界 longTasks 摘要,不回灌完整 transcript 或工具参数。

验证

bun test packages/pet/src
bun run --cwd packages/pet build
bunx eslint packages/pet/src --max-warnings=0

build 会先清空 dist/,避免删除或重命名源码后把陈旧产物发布出去。

engine.chat-replay.test.ts 用脚本替换 LLM,保留真实 Engine 历史、Sessions/FollowUps 读取、委托校验和宿主请求记录,回放多轮续聊、错误项目纠正、列表参数纠正、重复错误上限, 以及报时转发、记忆、远程遥控和会话完成通知等历史输入。 这类测试不连接微信或真实模型,也不执行宿主副作用;它验证接线与状态契约,不能代替真实 模型的语言理解评估。修改 core 后先构建 core,因为这些集成测试从公开包入口加载它。

FAQs

Package last updated on 22 Oct 2026

Related posts