AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
一个本地优先、以对话为中心的桌面 AI coding agent。 Jai Mono 是 PandaWork 的 TypeScript monorepo。它同时包含底层的 provider、agent 和 coding 能力,以及基于 Electron 的桌面应用。PandaWork 直接理解并操作用户选择的项目目录,但它不是 IDE:agent 负责执行工作,用户仍可使用自己习惯的编辑器查看和修改产出。 项目仍处于早期开发阶段。当前 workspace 中的包均为 private、0.0.0 版本,尚未作为稳定 npm 包发布。檢視完整 README ↗
Jai Mono 是 PandaWork 的 TypeScript monorepo。它同时包含底层的 provider、agent 和 coding 能力,以及基于 Electron 的桌面应用。PandaWork 直接理解并操作用户选择的项目目录,但它不是 IDE:agent 负责执行工作,用户仍可使用自己习惯的编辑器查看和修改产出。
[!NOTE] 项目仍处于早期开发阶段。当前 workspace 中的包均为 private、
0.0.0版本,尚未作为稳定 npm 包发布。
read、write、edit、bash 工具,以及由 Runtime Host 装配的 find、grepprefers-reduced-motion 的支持PandaWork Desktop (Electron + React) ──┐
jai CLI (TTY / subprocess) ├── Product hosts: config, model catalog,
WorkBuddy harness ┘ session layout, plugin discovery and UI
|
v
@jai/coding-agent Public Coding Agent SDK: Agent lifecycle, built-in tools,
permissions, sessions, extensions, state and canonical events
|
v
@jai/agent Agent loop, harness, hooks, compaction and durable sessions
|
v
@jai/ai Provider-neutral messages, streaming events and model registry
|
v
Anthropic / OpenAI / OpenAI-compatible APIs
Desktop、CLI 和 WorkBuddy 都通过 @jai/coding-agent 的公开创建接口运行 Agent;它们分别负责 UI/IPC、TTY/subprocess 和 benchmark 环境,不复制 Agent loop、内置工具、权限或 session runtime。SDK 接收模型引用、可选 provider 配置、cwd、session、审批回调和 extensions,并把 canonical events 投影为自己的公开 DTO。Jai config、模型目录、插件发现和数据目录约定留在各产品宿主,不形成额外的共享产品 package。
git clone https://github.com/jiahao-jayden/jai-mono.git
cd jai-mono
bun install
bun run desktop:dev
首次启动后:
Settings → Providers,添加 provider,填写 API key 和可选的 Base URL。bun run cli -- --help
cat task.md | bun run cli -- -p --output-format stream-json --no-session-persistence
发布后的包提供同名 jai binary;WorkBuddy、CI 和其他 subprocess host 只需要调用这个普通 CLI,不需要导入 Desktop 或 SDK。
需要为隔离容器准备固定安装包时,可运行:
bun run cli:pack
桌面端内置 Anthropic、OpenAI、DeepSeek、MiniMax 和 Kimi provider preset,也可以添加自定义 OpenAI-compatible provider。配置、会话和项目索引保存在本地应用数据目录中。
| Path | Purpose |
|---|---|
app/desktop | Electron desktop application and React UI |
app/cli | Headless jai CLI for interactive and automation hosts |
app/docs | Blume docs site, published at /docs on the marketing site |
packages/ai | Provider-neutral model types, streaming protocol and provider adapters |
packages/agent | Core agent loop, harness, tools, hooks, sessions and compaction |
packages/coding-agent | Public Coding Agent SDK used by Desktop, CLI and external hosts |
packages/extension | Official Connector and Agent Plugins extensions for the public SDK |
docs/build-agent | Agent framework design notes and implementation specifications |
docs/build-coding-agent | Coding-agent configuration and product-layer specifications |
PRODUCT.md | Product positioning, users, capabilities and constraints |
DESIGN.md | PandaWork Desktop design system and interaction principles |
Format and lint the repository from its root:
bun run lint
bun run format
Run package tests and type checks with the package-local scripts:
(cd packages/ai && bun test)
(cd packages/agent && bun test)
(cd packages/coding-agent && bun test)
(cd packages/ai && bun run typecheck)
(cd packages/agent && bun run typecheck)
(cd packages/coding-agent && bun run typecheck)
bun test app/desktop/test
The AI integration tests are opt-in and require provider credentials. For example, Anthropic and OpenAI integration tests read ANTHROPIC_API_KEY and OPENAI_API_KEY; test models and base URLs can be overridden with the corresponding environment variables. Run them from packages/ai with:
AI_E2E=1 bun run test:e2e
@jai/aiDefines common messages, content blocks, tool schemas, model metadata, usage and fine-grained streaming events. AnthropicProvider, OpenAIProvider, OpenAIResponsesProvider and ModelRegistry let the agent layer use one provider-neutral contract.
@jai/agentProvides the Agent facade and lower-level CoreAgent, including invocation, streaming, steering, follow-ups and abort. The harness adds Node execution environments, workspace tools, hooks, session stores and context compaction. Tools and hooks are assembled explicitly when an Agent is constructed; the package has no runtime Extension registry. Durable session persistence lives in the Runtime Host SQLite adapter, not @jai/agent.
@jai/coding-agentThe public SDK covers Agent creation, model-string/provider configuration, session execution, permissions, tool selection, extensions and JSON-safe event/state/error DTOs. Jai product defaults — user/project configuration, provider catalog, plugin discovery and data-directory conventions — live in Desktop, CLI and other product hosts. There is no @jai/coding-agent/jai-host or shared product package.
PandaWork is local-first, but choosing a remote model sends the relevant conversation and project context to that provider. Local models and compatible endpoints can be configured when the data should stay within a local service.
The bash tool runs commands as the current user. Workspace path checks, permission rules and approval prompts reduce accidental access and dangerous actions, but they are not an OS-level sandbox. Use a container or another operating-system isolation boundary when running untrusted instructions or repositories.
The provider and agent foundations are implemented. @jai/coding-agent is the shared SDK for the Desktop and headless jai CLI, and the CLI has a stable print/JSON contract for subprocess hosts such as WorkBuddy-Bench. The next implementation phase is provider-backed smoke testing and the four WorkBuddy harness suites; browser capability packaging and richer TTY workflows remain incremental work on top of the same SDK boundary.
More detailed decisions and implementation history live in docs/build-agent/overview.md.