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
8 changes: 5 additions & 3 deletions docs/architecture/core-decomposition.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Rust 编译和链接面。
| `bitfun-agent-tools` | 轻量 tool DTO / contract、portable tool context facts / provider、runtime restriction、host path normalization / runtime artifact URI / remote POSIX path pure contract、provider-neutral tool path resolution / absolute-path check / runtime artifact reference assembly、file guidance marker、file-read freshness comparison、oversized tool-result preview/rendering policy、tool execution result/error/invalid-call presentation policy、allowed-list / collapsed-tool execution gate policy、provider-neutral path policy root matching / denial message、pure manifest/exposure and GetToolSpec presentation/schema/static metadata/detail/result assembly / execution-plan contract、provider-backed tool catalog / GetToolSpec runtime facade、provider-backed GetToolSpec execution result helper / Tool-result vector adapter、generic contextual manifest resolver、generic catalog snapshot provider / GetToolSpec catalog provider、generic registry / static-provider / dynamic-provider / decorator-ref / snapshot-decorator adapter / runtime assembly container、generic readonly/enabled snapshot filter | partial:product registry snapshot access、`ToolUseContext` adapter、session file-read state storage、tool-result filesystem writes、`GetToolSpec` Tool impl 和 concrete tools 仍在 core,并由 core `tools/product_runtime.rs` 作为单一 product runtime owner 组装;core 当前从 `bitfun-tool-packs` provider plan 物化内置工具列表,static-provider 安装 assembly、decorator reference、generic snapshot decorator adapter、provider-backed catalog runtime facade、readonly/enabled 过滤规则、provider-neutral tool path resolution / runtime artifact reference assembly、file guidance/freshness policy、oversized result rendering、tool execution presentation 与 path policy 判定已委托给 `bitfun-agent-tools` |
| `bitfun-tool-packs` | 由 feature group 隔离的工具 provider plan | partial:提供 basic / git / mcp / browser-web / computer-use / image-analysis / miniapp / agent-control feature-group 元数据和 product provider group plan;不得声明 concrete tools 已迁移 |
| `bitfun-services-core` | Config、session、workspace、storage、filesystem、system services | partial:部分 pure helper 已迁出;通用本地 filesystem operations/tree/search/listing/service facade 已迁入;config/workspace/runtime/persistence 以及 filesystem 的 remote overlay、product runtime binding 仍在 core |
| `bitfun-services-integrations` | Git、MCP、remote SSH、remote connect、file watch integrations | partial:MCP runtime 已迁入;remote SSH 仍只迁移低风险 contracts/helpers;remote-connect 已拥有 wire DTO、request builder、tracker state / registry lifecycle、tracker event reduction、dialog submission orchestration port/provider、file IO/path resolution helper、remote file command / response assembly、dialog/cancel/execution accepted response helper、workspace/session response assembly helper、remote model selection policy、remote chat history presentation assembly helper 与 image-context adapter contract;concrete scheduler/session restore/terminal adapter、workspace-root source、persistence/workspace service reads 与 product execution 仍在 core |
| `bitfun-services-integrations` | Git、MCP、remote SSH、remote connect、file watch integrations | partial:MCP runtime 已迁入;remote SSH 仍只迁移低风险 contracts/helpers;remote-connect 已拥有 wire DTO、request builder、tracker state / registry lifecycle、tracker event reduction、dialog submission orchestration port/provider、workspace/session/initial-sync/poll/interaction command orchestration、file IO/path resolution helper、remote file command / response assembly、dialog/cancel/execution accepted response helper、workspace/session response assembly helper、remote model selection policy、remote chat history presentation assembly helper 与 image-context adapter contract;concrete scheduler/session restore/terminal adapter、workspace-root source、persistence/workspace service reads 与 product execution 仍在 core |
| `bitfun-product-domains` | Miniapp 和 function-agent 产品子域 | partial:pure decision、port、MiniApp create/update/draft/apply/import state transition、storage/builtin contract、imported meta timestamp policy、seed meta timestamp policy、runtime detection concrete owner、worker/host/export 纯决策已迁入;filesystem IO、worker process、host dispatch execution、built-in asset seeding、export skeleton 与 Git/AI service runtime 仍在 core |
| `terminal-core` | 已有 terminal package,移动到 workspace 顶层 `src/crates/terminal` 路径 | done:已在 workspace 顶层 |
| `tool-runtime` | 已有 tool runtime,移动到 workspace 顶层路径 | done:已在 workspace 顶层 |
Expand Down Expand Up @@ -102,6 +102,7 @@ owner 边界,否则不要把一个 feature group 继续拆成更小的 crate
tracker state / registry lifecycle、remote tool preview slimming、remote model selection policy、legacy image context fallback /
preference、restore target decision、cancel decision、cancel-task orchestration、
RemoteRelay/Bot dialog submission orchestration port/provider、dialog scheduler outcome assembly、
workspace/session/initial-sync/poll/interaction command orchestration、
remote workspace path/MIME/full-read/chunk/info helper、
remote file command / response assembly、dialog/cancel/execution accepted response helper 与 remote file transfer
size/chunk/name policy、workspace/session response assembly helper、remote chat history presentation assembly helper 可由
Expand Down Expand Up @@ -325,12 +326,13 @@ owner 边界,否则不要把一个 feature group 继续拆成更小的 crate
`src/crates/core/src/product_domain_runtime.rs`,不改变实际执行路径。
- H3:remaining service/runtime owner。remote-connect 已把 dialog submission
orchestration、cancel-task orchestration、terminal pre-warm decision、remote workspace file IO/path helper、
workspace/session response assembly helper 与 image-context adapter contract 收敛到 owner crate port/provider;
workspace/session response assembly helper、workspace/session/initial-sync/poll/interaction
command orchestration 与 image-context adapter contract 收敛到 owner crate port/provider;
concrete scheduler/session restore/terminal adapter、workspace-root source、
persistence/workspace service reads、remote-SSH runtime、agent registry/scheduler 等仍必须
另起 port/provider 设计和等价评审;HR3 进一步把这些仍 core-owned 的
service/agent runtime 绑定入口集中到 `src/crates/core/src/service_agent_runtime.rs`:
remote dialog/cancel/file/tracker host adapter、remote model catalog/session-model
remote dialog/cancel/file/workspace/session/poll/interaction/tracker host adapter、remote model catalog/session-model
selection adapter、remote chat history persistence/projection adapter、
remote image-context conversion 和 coordinator runtime-port binding 均由该入口承载,不改变 remote-connect、
remote-SSH 或 scheduler 执行路径。
Expand Down
9 changes: 9 additions & 0 deletions docs/plans/core-decomposition-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -1806,6 +1806,11 @@ HR3:service / agent runtime deep owner migration 的主要风险和控制点
`bitfun-services-integrations`。core 只投影 concrete `DialogSubmitOutcome` 为 owner fact,
scheduler submit、queue policy 映射和 terminal pre-warm 仍留在 core adapter,避免改变
restore -> prewarm -> submit 的执行顺序。
- 当前 service/agent 深迁移新增完成项:remote workspace、session、initial-sync、poll
与 tool/question interaction command orchestration 已迁入 `bitfun-services-integrations`。
core 只通过 `CoreServiceAgentRuntime` 提供 workspace service、persistence/session restore、
coordinator、tracker、model catalog 和 user-input host adapter,不改变 response shape、
poll persistence dirty 判定、默认 reject/cancel reason 或 session/workspace 错误边界。
- 当前 HR-C 结论:portable contract closure 已完成,新增迁移范围限于
runtime-ports 可承载的 DTO/trait/fact;concrete remote/runtime 执行路径仍按上方 HR3
风险门禁作为后续可选深迁移主题处理。
Expand Down Expand Up @@ -2080,6 +2085,10 @@ owner 深迁移混入本里程碑。
- 已迁移的 remote model policy:remote session model id normalization、model selection
alias handling 与 config-reference resolution policy 由 `bitfun-services-integrations` 提供;
core adapter 只负责读取 `AIConfig` 并注入 resolver,保持原有 config service 缺失错误。
- 已迁移的 remote command orchestration:workspace、session、initial-sync、poll 与
interaction command handler 由 `bitfun-services-integrations` 拥有;core adapter 只注入
workspace service、persistence/session restore、coordinator、tracker、model catalog 与
user-input manager,并继续保留 concrete runtime 生命周期。
- concrete scheduler/session restore、workspace-root source、persistence/workspace service reads、
`ImageContextData` concrete impl、remote-SSH runtime、terminal adapter、agent registry/scheduler、
round injection buffer、goal-mode coordinator binding、request-context assembly 与 prompt compression runtime 继续
Expand Down
80 changes: 36 additions & 44 deletions scripts/check-core-boundaries.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -3674,56 +3674,28 @@ const requiredContentRules = [
message: 'missing remote cancel response assembly delegation',
},
{
regex: /\bremote_interaction_accepted_response\b/,
message: 'missing remote interaction response assembly delegation',
regex: /\bhandle_remote_interaction_command\b/,
message: 'missing remote interaction command owner orchestration delegation',
},
{
regex: /\bremote_answer_question_response\b/,
message: 'missing remote answer response assembly delegation',
regex: /\bgenerate_remote_initial_sync\b/,
message: 'missing remote initial-sync owner orchestration delegation',
},
{
regex: /\bremote_workspace_info_response\b/,
message: 'missing remote workspace-info response assembly delegation',
regex: /\bhandle_remote_workspace_command\b/,
message: 'missing remote workspace command owner orchestration delegation',
},
{
regex: /\bremote_recent_workspaces_response\b/,
message: 'missing remote recent-workspaces response assembly delegation',
regex: /\bhandle_remote_session_command\b/,
message: 'missing remote session command owner orchestration delegation',
},
{
regex: /\bremote_assistant_list_response\b/,
message: 'missing remote assistant-list response assembly delegation',
regex: /\bhandle_remote_poll_command\b/,
message: 'missing remote poll command owner orchestration delegation',
},
{
regex: /\bremote_workspace_updated_response\b/,
message: 'missing remote workspace-updated response assembly delegation',
},
{
regex: /\bremote_assistant_updated_response\b/,
message: 'missing remote assistant-updated response assembly delegation',
},
{
regex: /\bremote_session_list_response\b/,
message: 'missing remote session-list response assembly delegation',
},
{
regex: /\bremote_initial_sync_response\b/,
message: 'missing remote initial-sync response assembly delegation',
},
{
regex: /\bremote_session_created_response\b/,
message: 'missing remote session-created response assembly delegation',
},
{
regex: /\bremote_session_model_updated_response\b/,
message: 'missing remote session-model response assembly delegation',
},
{
regex: /\bremote_messages_response\b/,
message: 'missing remote messages response assembly delegation',
},
{
regex: /\bremote_session_deleted_response\b/,
message: 'missing remote session-deleted response assembly delegation',
regex: /\bhandle_remote_interaction_command\b/,
message: 'missing remote interaction command owner orchestration delegation',
},
{
regex: /\bremote_image_context\b/,
Expand Down Expand Up @@ -7099,6 +7071,10 @@ function runManifestParserSelfTest() {
'CoreRemoteDialogRuntimeHost',
'CoreRemoteCancelRuntimeHost',
'CoreRemoteWorkspaceFileRuntimeHost',
'CoreRemoteWorkspaceRuntimeHost',
'CoreRemoteSessionRuntimeHost',
'CoreRemotePollRuntimeHost',
'CoreRemoteInteractionRuntimeHost',
'CoreRemoteSessionTrackerHost',
'RemoteExecutionDispatcher',
'ImageContextData',
Expand Down Expand Up @@ -7146,10 +7122,25 @@ function runManifestParserSelfTest() {
'remote_workspace_info_response',
'remote_recent_workspaces_response',
'remote_assistant_list_response',
'RemoteWorkspaceRuntimeHost',
'handle_remote_workspace_command',
'remote_workspace_handler_preserves_response_shapes',
'RemoteInitialSyncRuntimeHost',
'generate_remote_initial_sync',
'remote_session_info',
'remote_session_list_response',
'remote_initial_sync_response',
'remote_messages_response',
'RemoteSessionRuntimeHost',
'handle_remote_session_command',
'remote_session_handler_preserves_list_and_create_policy',
'remote_session_handler_removes_tracker_after_delete_success',
'RemotePollRuntimeHost',
'handle_remote_poll_command',
'remote_poll_handler_preserves_missing_workspace_error',
'RemoteInteractionRuntimeHost',
'handle_remote_interaction_command',
'remote_interaction_handler_preserves_default_reject_reason',
'RemoteDefaultModelsConfig',
'RemoteModelConfig',
'RemoteModelCatalog',
Expand Down Expand Up @@ -7203,10 +7194,11 @@ function runManifestParserSelfTest() {
contracts: [
'CoreServiceAgentRuntime',
'remote_image_context',
'remote_workspace_info_response',
'remote_session_list_response',
'remote_initial_sync_response',
'remote_messages_response',
'handle_remote_workspace_command',
'handle_remote_session_command',
'generate_remote_initial_sync',
'handle_remote_poll_command',
'handle_remote_interaction_command',
'core_service_agent_runtime_owner_maps_remote_image_context',
'remote_execution_prefers_unified_image_contexts_over_legacy_images',
'remote_cancel_decision_preserves_current_turn_boundaries',
Expand Down
Loading
Loading