Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/architecture/rust-build-dependency-boundaries.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ Plugin Source 和完整 domain feature 集合一起带回 Agent Runtime。产品
编译”的 owner 返回类型化错误。`agent-runtime` 基线计划只选择 `Basic` 与 `AgentControl`;
它不是隐式 Delivery Profile,也不得从当前二进制已编译的 feature union 反推产品能力。

图像查看与分析由 `tools-image-analysis` 独立选择;`tools-image-generation` 承载生成工具、
配置驱动的 AI client 和生图协议适配。检查图片的窄消费者不应因此启用生成请求。完整产品和
需要生图的 CLI、ACP、SDK Host 显式选择这两个 owner,工具 provider 与注册顺序保持稳定。

### 3.3 Workspace dependency 只提供共同底座

- workspace 声明负责版本和真正跨产品共享的最小 feature;
Expand Down
16 changes: 8 additions & 8 deletions docs/interactive-capabilities/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<!-- generated by scripts/generate-interactive-capabilities.mjs; do not edit -->
# OpenBitFun 功能与设置目录 / OpenBitFun Features & Settings

OpenBitFun Playbook 当前包含 **23 个功能**和 **21 个设置页**,共 **44 个**用户可理解的条目、**333 项**有源码证据的子能力。每个条目有独立 Markdown,并直接服务于说明书网站、OpenBitFun 全局搜索和 `OpenBitFunControl` 智能体工具。
OpenBitFun Playbook 当前包含 **23 个功能**和 **21 个设置页**,共 **44 个**用户可理解的条目、**334 项**有源码证据的子能力。每个条目有独立 Markdown,并直接服务于说明书网站、OpenBitFun 全局搜索和 `OpenBitFunControl` 智能体工具。

OpenBitFun Playbook currently contains **23 features**, **21 settings pages**, and **333** source-backed sub-capabilities across **44** user-facing entries. Every entry has its own Markdown page and directly powers the website, in-app global search, and the `OpenBitFunControl` agent tool.
OpenBitFun Playbook currently contains **23 features**, **21 settings pages**, and **334** source-backed sub-capabilities across **44** user-facing entries. Every entry has its own Markdown page and directly powers the website, in-app global search, and the `OpenBitFunControl` agent tool.

## 唯一事实源 / Single source of truth

Expand All @@ -27,20 +27,20 @@ OpenBitFun Playbook currently contains **23 features**, **21 settings pages**, a
- Generated per-item interaction audit: `docs/interactive-capabilities/technical/product-control-open-audit.json`
- Generated low-level audit map: `docs/interactive-capabilities/technical/tauri-command-map.json`

说明书、网站、搜索和智能体只看“功能 + 设置 + 子能力”。每项子能力都必须引用已注册 Tauri Command 或可解析的源码标记;这些证据不会进入公开目录。当前 **701** 个 Tauri 命令只用于实现覆盖审计。产品 UI 交互源码会在生成和检查时扫描并校验,但不会保存成随普通 UI 改动频繁变化的版本化快照。
说明书、网站、搜索和智能体只看“功能 + 设置 + 子能力”。每项子能力都必须引用已注册 Tauri Command 或可解析的源码标记;这些证据不会进入公开目录。当前 **702** 个 Tauri 命令只用于实现覆盖审计。产品 UI 交互源码会在生成和检查时扫描并校验,但不会保存成随普通 UI 改动频繁变化的版本化快照。

Docs, website, search, and agents see only features, settings, and documented sub-capabilities. Every sub-capability must reference a registered Tauri command or a resolvable source marker; evidence is stripped from public projections. The **701** Tauri commands remain implementation-audit evidence only. Product UI interaction sources are scanned and validated during generation and checks, but are not stored as a versioned snapshot that churns with ordinary UI changes.
Docs, website, search, and agents see only features, settings, and documented sub-capabilities. Every sub-capability must reference a registered Tauri command or a resolvable source marker; evidence is stripped from public projections. The **702** Tauri commands remain implementation-audit evidence only. Product UI interaction sources are scanned and validated during generation and checks, but are not stored as a versioned snapshot that churns with ordinary UI changes.

## 控制边界 / Control boundary

- 每个子能力都明确标记为直接控制、委托给专用智能体工具、需交互打开或不支持;“打开页面”不会再被统计成“智能体已控制”。当前覆盖:直接 **52**、委托 **65**、需交互 **216**、不支持 **0**。
- 每个子能力都明确标记为直接控制、委托给专用智能体工具、需交互打开或不支持;“打开页面”不会再被统计成“智能体已控制”。当前覆盖:直接 **52**、委托 **66**、需交互 **216**、不支持 **0**。
- 稳定行为声明为带 JSON 输入契约的 `operations` 或 `options`,并绑定原生产品控制 Provider;智能体不接触原始 Tauri Command。
- `OpenBitFunControl list` 和 `search` 都返回带 `nextCursor` 的精简分页结果;目录可持续增长,不靠固定总量上限。完整目录和 333 项子能力都不会写入 system prompt。
- `OpenBitFunControl list` 和 `search` 都返回带 `nextCursor` 的精简分页结果;目录可持续增长,不靠固定总量上限。完整目录和 334 项子能力都不会写入 system prompt。
- 目录发现与契约读取不依赖 React 或可见窗口。普通配置型 option 统一由 Product Assembly 的共享 ConfigService 执行器读、写并回读,因此 Desktop、CLI 与 Headless 表面走同一份实现;只有宿主原生 operation/provider option 和界面导航按表面注册适配器,缺失时必须明确返回不可用,禁止静默回退本机。只读智能体只能发现和读取目录。

- Every documented item is classified as direct control, delegated Agent control, interactive opening, or unsupported; opening a page is never counted as direct control. Current coverage is **52 direct**, **65 delegated**, **216 interactive**, and **0 unsupported**.
- Every documented item is classified as direct control, delegated Agent control, interactive opening, or unsupported; opening a page is never counted as direct control. Current coverage is **52 direct**, **66 delegated**, **216 interactive**, and **0 unsupported**.
- Stable behavior becomes a typed `operation` or `option` with a JSON input contract and a native product-control provider. Agents never receive raw Tauri commands.
- `OpenBitFunControl list` and `search` return compact pages with a `nextCursor`; the catalog can grow without a fixed total-size ceiling. Neither the full catalog nor its 333 documented items enters the system prompt.
- `OpenBitFunControl list` and `search` return compact pages with a `nextCursor`; the catalog can grow without a fixed total-size ceiling. Neither the full catalog nor its 334 documented items enters the system prompt.
- Discovery and contract lookup do not depend on React or a visible window. Ordinary config-backed options are read, written, and read back by one Product Assembly ConfigService executor shared by Desktop, CLI, and headless surfaces. Only host-native operations/provider options and presentation routes install surface adapters; missing adapters return explicit unavailability without local fallback. Read-only agents may only discover and inspect entries.

## 防腐化门禁 / Anti-drift gates
Expand Down
106 changes: 97 additions & 9 deletions docs/interactive-capabilities/capabilities.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@
"title": "OpenBitFun Playbook",
"origin": "https://playbook.openbitfun.com",
"source": "src/shared/interactive-capabilities/catalog.json",
"digest": "65f1a11c6d994c382da25f2b9ad995ad0f443a5d352c2eafa10a8b9bcbf849e5",
"digest": "64bbd3571c458cdd0b67ba9337820e88f9b52d5edf4aefc8320874643dce7a77",
"ownerDigest": "4e1ace270088acecbd333d2c8aced0547dddb0fd6bae778bec24f2b0fb48ea91",
"searchAcceptance": [
{
"id": "native-image-generation",
"query": "generate_image",
"expectedFirstCapabilityId": "feature.ai-assistant",
"expectedCapabilityIds": [
"feature.ai-assistant"
],
"expectedItem": {
"capabilityId": "feature.ai-assistant",
"itemId": "image-generation"
}
},
{
"id": "companion-pet-mixed",
"query": "宠物 pet mascot 桌面宠物",
Expand Down Expand Up @@ -147,10 +159,10 @@
"features": 23,
"settings": 21,
"userFacing": 44,
"documentedItems": 333,
"documentedItems": 334,
"controlCoverage": {
"direct": 52,
"delegated": 65,
"delegated": 66,
"interactive": 216,
"unsupported": 0
}
Expand Down Expand Up @@ -202,6 +214,7 @@
"session-lifecycle",
"model-mode-permissions",
"creative-frontend-authoring",
"image-generation",
"turn-control",
"permission-mailbox",
"history-search",
Expand Down Expand Up @@ -443,6 +456,51 @@
"sceneId": "session"
}
},
{
"id": "feature.ai-assistant:delegate:image-generation",
"capabilityId": "feature.ai-assistant",
"itemIds": [
"image-generation"
],
"kind": "delegate",
"risk": "execute",
"executionHost": "workspaceHost",
"availability": {
"desktop": {
"available": true
},
"cli": {
"available": true
},
"peer": {
"available": true,
"requiredCapabilities": [
"product_control_v1"
]
},
"remoteControl": {
"available": true
},
"detachedDispatch": {
"available": true
}
},
"inputSchema": {
"type": "object",
"additionalProperties": true
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"delegateTools": [
"generate_image"
],
"presentationTarget": {
"kind": "scene",
"sceneId": "session"
}
},
{
"id": "feature.ai-assistant:open:turn-control",
"capabilityId": "feature.ai-assistant",
Expand Down Expand Up @@ -19823,6 +19881,27 @@
]
}
},
{
"id": "image-generation",
"titleZh": "通过已配置的默认图像模型生成图片",
"titleEn": "Generate images with the configured default image model",
"control": {
"kind": "delegate",
"tools": [
"generate_image"
],
"workflowZh": [
"使用 generate_image 按用户描述生成图片,默认省略 service_id 以使用已配置的默认图像模型",
"按需指定数量和尺寸,通过返回的文件路径交付图片;远程工作区文件通过当前工作区数据面读写",
"缺少配置、认证失败或额度不足时明确报告,不自动切换到其他服务"
],
"workflowEn": [
"Use generate_image to create images from the user's description; omit service_id to use the configured default image model",
"Specify count and size when needed and deliver the returned file paths; access remote workspace files through the active workspace data plane",
"Report missing configuration, authentication failures, or quota limits explicitly without automatically switching services"
]
}
},
{
"id": "turn-control",
"titleZh": "开始、引导、打断、取消或恢复一次智能体运行",
Expand Down Expand Up @@ -20085,6 +20164,8 @@
"Choose the model, work mode, memory mode, and permission mode per session",
"让创造模式扩展客户端界面与运行时能力",
"Extend client UI and runtime capabilities in Creative mode",
"通过已配置的默认图像模型生成图片",
"Generate images with the configured default image model",
"开始、引导、打断、取消或恢复一次智能体运行",
"Start, steer, interrupt, cancel, or recover an agent turn",
"查看并逐个或批量回答等待中的权限请求",
Expand Down Expand Up @@ -20125,6 +20206,13 @@
"Call FrontendWorkbench prepare on the local Desktop in Creative mode, read the packaged API, and edit only draft CSS, JavaScript and owned assets without source or build tools",
"Apply with the original draft ID; the host starts the immutable review window's 15-second countdown only after the real shell and customization activate, and apply waits for a final confirmed or rolled_back outcome",
"Compose commands, state and events into reusable capabilities; use FrontendWorkbench inspect to discover schemas and diagnostics, then invoke to verify execution",
"generate_image",
"使用 generate_image 按用户描述生成图片,默认省略 service_id 以使用已配置的默认图像模型",
"按需指定数量和尺寸,通过返回的文件路径交付图片;远程工作区文件通过当前工作区数据面读写",
"缺少配置、认证失败或额度不足时明确报告,不自动切换到其他服务",
"Use generate_image to create images from the user's description; omit service_id to use the configured default image model",
"Specify count and size when needed and deliver the returned file paths; access remote workspace files through the active workspace data plane",
"Report missing configuration, authentication failures, or quota limits explicitly without automatically switching services",
"ListWorkspaces",
"SessionControl",
"SessionHistory",
Expand Down Expand Up @@ -27559,13 +27647,13 @@
},
{
"id": "connection-test",
"titleZh": "保存前测试供应商或模型连接并刷新运行时客户端",
"titleEn": "Test provider or model connectivity before saving and refresh the runtime client",
"titleZh": "测试模型连接或图像生成,并刷新运行时客户端",
"titleEn": "Test model connections or image generation and refresh the runtime client",
"control": {
"kind": "open",
"reasonCode": "unstructuredInteraction",
"reasonZh": "“保存前测试供应商或模型连接并刷新运行时客户端”由多个实时状态相关步骤组成,目前没有一个能确定完成整个流程的单一结构化 Command;智能体会打开精确入口,并把后续交互保留在用户可见界面。",
"reasonEn": "“Test provider or model connectivity before saving and refresh the runtime client” spans multiple live-state-dependent steps and currently has no single structured Command that can deterministically complete the whole workflow; the Agent opens the exact entry and keeps the remaining interaction visible to the user."
"reasonZh": "“测试模型连接或图像生成,并刷新运行时客户端”需要用户在配置表单中选择服务并主动发起;图像服务测试会实际生成图片并可能消耗额度,智能体只能打开对应设置入口。",
"reasonEn": "“Test model connections or image generation and refresh the runtime client” requires the user to select a configuration and start the test from its form; image-service tests generate an actual image and may consume quota, so the Agent can only open the settings entry."
}
},
{
Expand Down Expand Up @@ -27679,8 +27767,8 @@
"Inspect models.dev catalog status, refresh it manually, and reveal its local cache",
"为供应商添加自定义 Header、请求体字段与 SSL 行为",
"Add custom headers, request-body fields, and SSL behavior per provider",
"保存前测试供应商或模型连接并刷新运行时客户端",
"Test provider or model connectivity before saving and refresh the runtime client",
"测试模型连接或图像生成,并刷新运行时客户端",
"Test model connections or image generation and refresh the runtime client",
"管理模型池、路由策略与会话模型选择",
"Manage model pools, routing strategies, and session model selection",
"打开模型设置",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ Work with AI in project context, create sessions, continue tasks, answer permiss
- Choose the model, work mode, memory mode, and permission mode per session
- **由专用智能体工具控制 / Delegated Agent tool** · `FrontendWorkbench` / `Read` / `Write` / `Edit` · 让创造模式扩展客户端界面与运行时能力
- Extend client UI and runtime capabilities in Creative mode
- **由专用智能体工具控制 / Delegated Agent tool** · `generate_image` · 通过已配置的默认图像模型生成图片
- Generate images with the configured default image model
- **智能体可定位入口,需交互完成 / Agent opens; interaction required** · 开始、引导、打断、取消或恢复一次智能体运行
- Start, steer, interrupt, cancel, or recover an agent turn
- **智能体可定位入口,需交互完成 / Agent opens; interaction required** · 查看并逐个或批量回答等待中的权限请求
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ Add AI providers and models, choose defaults, and configure proxy, subscription,
- Inspect models.dev catalog status, refresh it manually, and reveal its local cache
- **智能体可定位入口,需交互完成 / Agent opens; interaction required** · 为供应商添加自定义 Header、请求体字段与 SSL 行为
- Add custom headers, request-body fields, and SSL behavior per provider
- **智能体可定位入口,需交互完成 / Agent opens; interaction required** · 保存前测试供应商或模型连接并刷新运行时客户端
- Test provider or model connectivity before saving and refresh the runtime client
- **智能体可定位入口,需交互完成 / Agent opens; interaction required** · 测试模型连接或图像生成,并刷新运行时客户端
- Test model connections or image generation and refresh the runtime client
- **智能体可定位入口,需交互完成 / Agent opens; interaction required** · 管理模型池、路由策略与会话模型选择
- Manage model pools, routing strategies, and session model selection

Expand Down
Loading
Loading