From 5e8a0c6e3da4e76cecec723d9c0e0a62f12a8010 Mon Sep 17 00:00:00 2001 From: limityan Date: Fri, 5 Jun 2026 19:24:04 +0800 Subject: [PATCH] refactor(core): organize crates into six ownership layers --- AGENTS-CN.md | 30 +- AGENTS.md | 35 ++- BitFun-Installer/src-tauri/Cargo.toml | 2 +- CONTRIBUTING.md | 8 +- CONTRIBUTING_CN.md | 8 +- Cargo.toml | 22 +- MiniApp/Skills/miniapp-dev/SKILL.md | 14 +- MiniApp/Skills/miniapp-dev/design-playbook.md | 8 +- README.md | 13 +- README.zh-CN.md | 13 +- .../agent-runtime-services-design.md | 84 +++--- .../cache-friendly-message-structure.md | 24 +- docs/architecture/core-decomposition.md | 233 ++++++--------- docs/architecture/deep-review.md | 24 +- docs/architecture/i18n.md | 4 +- .../architecture/model-request-cache-reuse.md | 70 ++--- .../session-runtime-usage-report-design.md | 66 ++--- docs/plans/core-decomposition-completed.md | 143 +++------- docs/plans/core-decomposition-plan.md | 114 +++----- .../core-boundaries/rules/crate-layout.mjs | 29 +- .../core-boundaries/rules/feature-rules.mjs | 10 +- .../rules/source/facade-rules.mjs | 36 +-- .../rules/source/forbidden-rules.mjs | 136 ++++----- .../rules/source/required-rules.mjs | 204 ++++++------- scripts/core-boundaries/self-test.mjs | 270 +++++++++--------- scripts/generate-i18n-contract.mjs | 2 +- scripts/i18n-audit.mjs | 6 +- scripts/i18n-contract.test.mjs | 12 +- src/apps/cli/Cargo.toml | 4 +- src/apps/desktop/AGENTS-CN.md | 2 +- src/apps/desktop/AGENTS.md | 2 +- src/apps/desktop/Cargo.toml | 8 +- src/crates/adapters/AGENTS-CN.md | 26 ++ src/crates/adapters/AGENTS.md | 35 +++ .../ai-adapters/AGENTS.md | 4 +- .../ai-adapters/Cargo.toml | 0 .../ai-adapters/README.md | 0 .../ai-adapters/src/client.rs | 0 .../ai-adapters/src/client/format.rs | 0 .../ai-adapters/src/client/healthcheck.rs | 0 .../ai-adapters/src/client/http.rs | 0 .../ai-adapters/src/client/quirks.rs | 0 .../src/client/response_aggregator.rs | 0 .../ai-adapters/src/client/sse.rs | 0 .../ai-adapters/src/client/utils.rs | 0 .../ai-adapters/src/diagnostics.rs | 0 .../ai-adapters/src/lib.rs | 0 .../src/providers/anthropic/discovery.rs | 0 .../providers/anthropic/message_converter.rs | 0 .../src/providers/anthropic/mod.rs | 0 .../src/providers/anthropic/request.rs | 0 .../src/providers/gemini/code_assist.rs | 0 .../src/providers/gemini/discovery.rs | 0 .../src/providers/gemini/message_converter.rs | 0 .../ai-adapters/src/providers/gemini/mod.rs | 0 .../src/providers/gemini/request.rs | 0 .../ai-adapters/src/providers/mod.rs | 0 .../ai-adapters/src/providers/openai/chat.rs | 0 .../src/providers/openai/codex_chatgpt.rs | 0 .../src/providers/openai/common.rs | 0 .../src/providers/openai/message_converter.rs | 0 .../ai-adapters/src/providers/openai/mod.rs | 0 .../src/providers/openai/responses.rs | 0 .../ai-adapters/src/providers/shared.rs | 0 .../ai-adapters/src/stream/mod.rs | 0 .../src/stream/stream_handler/anthropic.rs | 0 .../src/stream/stream_handler/gemini.rs | 0 .../src/stream/stream_handler/inline_think.rs | 0 .../src/stream/stream_handler/mod.rs | 0 .../src/stream/stream_handler/openai.rs | 0 .../src/stream/stream_handler/responses.rs | 0 .../src/stream/stream_handler/stream_stats.rs | 0 .../ai-adapters/src/stream/types/anthropic.rs | 0 .../ai-adapters/src/stream/types/gemini.rs | 0 .../ai-adapters/src/stream/types/mod.rs | 0 .../ai-adapters/src/stream/types/openai.rs | 0 .../ai-adapters/src/stream/types/responses.rs | 0 .../ai-adapters/src/stream/types/unified.rs | 0 .../ai-adapters/src/tool_call_accumulator.rs | 0 .../ai-adapters/src/types/ai.rs | 0 .../ai-adapters/src/types/config.rs | 0 .../ai-adapters/src/types/message.rs | 0 .../ai-adapters/src/types/mod.rs | 0 .../ai-adapters/src/types/tool.rs | 0 .../src}/types/tool_image_attachment.rs | 0 .../api-layer/AGENTS.md | 2 +- .../api-layer/Cargo.toml | 0 .../api-layer/src/dto.rs | 0 .../api-layer/src/handlers.rs | 0 .../api-layer/src/lib.rs | 0 .../transport/AGENTS.md | 2 +- .../transport/Cargo.toml | 0 .../transport/src/adapters/cli.rs | 0 .../transport/src/adapters/mod.rs | 0 .../transport/src/adapters/tauri.rs | 0 .../transport/src/adapters/websocket.rs | 0 .../transport/src/emitter.rs | 0 .../transport/src/event_bus.rs | 0 .../transport/src/events.rs | 0 .../transport/src/lib.rs | 0 .../transport/src/traits.rs | 0 .../webdriver/AGENTS.md | 2 +- .../webdriver/Cargo.toml | 0 .../webdriver/src/executor/element/actions.rs | 0 .../webdriver/src/executor/element/lookup.rs | 0 .../webdriver/src/executor/element/mod.rs | 0 .../webdriver/src/executor/element/read.rs | 0 .../webdriver/src/executor/element/shadow.rs | 0 .../webdriver/src/executor/interaction.rs | 0 .../webdriver/src/executor/mod.rs | 0 .../webdriver/src/executor/navigation.rs | 0 .../webdriver/src/executor/session.rs | 0 .../webdriver/src/executor/window.rs | 0 .../webdriver/src/lib.rs | 0 .../webdriver/src/platform/capture.rs | 0 .../webdriver/src/platform/evaluator/macos.rs | 0 .../webdriver/src/platform/evaluator/mod.rs | 0 .../src/platform/evaluator/windows.rs | 0 .../webdriver/src/platform/image.rs | 0 .../webdriver/src/platform/mod.rs | 0 .../webdriver/src/platform/types.rs | 0 .../webdriver/src/runtime/api/element.rs | 0 .../webdriver/src/runtime/api/interaction.rs | 0 .../webdriver/src/runtime/api/mod.rs | 0 .../webdriver/src/runtime/api/navigation.rs | 0 .../webdriver/src/runtime/mod.rs | 0 .../webdriver/src/runtime/script.rs | 0 .../src/runtime/script/core/alert.rs | 0 .../src/runtime/script/core/context.rs | 0 .../src/runtime/script/core/cookie.rs | 0 .../src/runtime/script/core/execution.rs | 0 .../src/runtime/script/core/locator.rs | 0 .../webdriver/src/runtime/script/core/mod.rs | 0 .../src/runtime/script/core/runtime.rs | 0 .../src/runtime/script/core/shadow.rs | 0 .../src/runtime/script/core/store.rs | 0 .../src/runtime/script/core/visibility.rs | 0 .../webdriver/src/runtime/script/input.rs | 0 .../src/runtime/script/keyboard/edit.rs | 0 .../src/runtime/script/keyboard/event.rs | 0 .../src/runtime/script/keyboard/focus.rs | 0 .../src/runtime/script/keyboard/mapping.rs | 0 .../src/runtime/script/keyboard/mod.rs | 0 .../src/runtime/script/pointer/key_source.rs | 0 .../src/runtime/script/pointer/mod.rs | 0 .../src/runtime/script/pointer/mouse.rs | 0 .../src/runtime/script/pointer/perform.rs | 0 .../runtime/script/pointer/pointer_source.rs | 0 .../src/runtime/script/pointer/release.rs | 0 .../src/runtime/script/pointer/wheel.rs | 0 .../runtime/script/pointer/wheel_source.rs | 0 .../webdriver/src/server/handlers/actions.rs | 0 .../webdriver/src/server/handlers/alert.rs | 0 .../webdriver/src/server/handlers/cookie.rs | 0 .../webdriver/src/server/handlers/element.rs | 0 .../webdriver/src/server/handlers/frame.rs | 0 .../webdriver/src/server/handlers/logs.rs | 0 .../webdriver/src/server/handlers/mod.rs | 0 .../src/server/handlers/navigation.rs | 0 .../webdriver/src/server/handlers/print.rs | 0 .../src/server/handlers/screenshot.rs | 0 .../webdriver/src/server/handlers/script.rs | 0 .../webdriver/src/server/handlers/session.rs | 0 .../webdriver/src/server/handlers/shadow.rs | 0 .../webdriver/src/server/handlers/timeouts.rs | 0 .../webdriver/src/server/handlers/window.rs | 0 .../webdriver/src/server/mod.rs | 0 .../webdriver/src/server/response.rs | 0 .../webdriver/src/server/router.rs | 0 .../webdriver/src/webdriver/element.rs | 0 .../webdriver/src/webdriver/locator.rs | 0 .../webdriver/src/webdriver/mod.rs | 0 .../webdriver/src/webdriver/session.rs | 0 src/crates/assembly/AGENTS-CN.md | 26 ++ src/crates/assembly/AGENTS.md | 41 +++ .../{facade => assembly}/core/AGENTS-CN.md | 12 +- .../{facade => assembly}/core/AGENTS.md | 22 +- .../{facade => assembly}/core/Cargo.toml | 14 +- src/crates/{facade => assembly}/core/build.rs | 2 +- .../browser_data_extraction.yaml | 0 .../builtin_playbooks/browser_form_fill.yaml | 0 .../builtin_playbooks/browser_screenshot.yaml | 0 .../desktop_app_automation.yaml | 0 .../builtin_playbooks/im_send_message.yaml | 0 .../builtin_skills/agent-browser/SKILL.md | 0 .../references/authentication.md | 0 .../agent-browser/references/commands.md | 0 .../agent-browser/references/profiling.md | 0 .../agent-browser/references/proxy-support.md | 0 .../references/session-management.md | 0 .../agent-browser/references/snapshot-refs.md | 0 .../references/video-recording.md | 0 .../templates/authenticated-session.sh | 0 .../templates/capture-workflow.sh | 0 .../templates/form-automation.sh | 0 .../core/builtin_skills/docx/LICENSE.txt | 0 .../core/builtin_skills/docx/SKILL.md | 0 .../builtin_skills/docx/scripts/__init__.py | 0 .../docx/scripts/accept_changes.py | 0 .../builtin_skills/docx/scripts/comment.py | 0 .../docx/scripts/office/helpers/__init__.py | 0 .../docx/scripts/office/helpers/merge_runs.py | 0 .../office/helpers/simplify_redlines.py | 0 .../docx/scripts/office/pack.py | 0 .../schemas/ISO-IEC29500-4_2016/dml-chart.xsd | 0 .../ISO-IEC29500-4_2016/dml-chartDrawing.xsd | 0 .../ISO-IEC29500-4_2016/dml-diagram.xsd | 0 .../ISO-IEC29500-4_2016/dml-lockedCanvas.xsd | 0 .../schemas/ISO-IEC29500-4_2016/dml-main.xsd | 0 .../ISO-IEC29500-4_2016/dml-picture.xsd | 0 .../dml-spreadsheetDrawing.xsd | 0 .../dml-wordprocessingDrawing.xsd | 0 .../schemas/ISO-IEC29500-4_2016/pml.xsd | 0 .../shared-additionalCharacteristics.xsd | 0 .../shared-bibliography.xsd | 0 .../shared-commonSimpleTypes.xsd | 0 .../shared-customXmlDataProperties.xsd | 0 .../shared-customXmlSchemaProperties.xsd | 0 .../shared-documentPropertiesCustom.xsd | 0 .../shared-documentPropertiesExtended.xsd | 0 .../shared-documentPropertiesVariantTypes.xsd | 0 .../ISO-IEC29500-4_2016/shared-math.xsd | 0 .../shared-relationshipReference.xsd | 0 .../schemas/ISO-IEC29500-4_2016/sml.xsd | 0 .../schemas/ISO-IEC29500-4_2016/vml-main.xsd | 0 .../ISO-IEC29500-4_2016/vml-officeDrawing.xsd | 0 .../vml-presentationDrawing.xsd | 0 .../vml-spreadsheetDrawing.xsd | 0 .../vml-wordprocessingDrawing.xsd | 0 .../schemas/ISO-IEC29500-4_2016/wml.xsd | 0 .../schemas/ISO-IEC29500-4_2016/xml.xsd | 0 .../ecma/fouth-edition/opc-contentTypes.xsd | 0 .../ecma/fouth-edition/opc-coreProperties.xsd | 0 .../schemas/ecma/fouth-edition/opc-digSig.xsd | 0 .../ecma/fouth-edition/opc-relationships.xsd | 0 .../docx/scripts/office/schemas/mce/mc.xsd | 0 .../office/schemas/microsoft/wml-2010.xsd | 0 .../office/schemas/microsoft/wml-2012.xsd | 0 .../office/schemas/microsoft/wml-2018.xsd | 0 .../office/schemas/microsoft/wml-cex-2018.xsd | 0 .../office/schemas/microsoft/wml-cid-2016.xsd | 0 .../microsoft/wml-sdtdatahash-2020.xsd | 0 .../schemas/microsoft/wml-symex-2015.xsd | 0 .../docx/scripts/office/soffice.py | 0 .../docx/scripts/office/unpack.py | 0 .../docx/scripts/office/validate.py | 0 .../scripts/office/validators/__init__.py | 0 .../docx/scripts/office/validators/base.py | 0 .../docx/scripts/office/validators/docx.py | 0 .../docx/scripts/office/validators/pptx.py | 0 .../scripts/office/validators/redlining.py | 0 .../docx/scripts/templates/comments.xml | 0 .../scripts/templates/commentsExtended.xml | 0 .../scripts/templates/commentsExtensible.xml | 0 .../docx/scripts/templates/commentsIds.xml | 0 .../docx/scripts/templates/people.xml | 0 .../core/builtin_skills/find-skills/SKILL.md | 0 .../builtin_skills/gstack-autoplan/SKILL.md | 0 .../core/builtin_skills/gstack-cso/SKILL.md | 0 .../gstack-design-consultation/SKILL.md | 0 .../gstack-design-review/SKILL.md | 0 .../gstack-document-release/SKILL.md | 0 .../gstack-investigate/SKILL.md | 0 .../gstack-office-hours/SKILL.md | 0 .../gstack-plan-ceo-review/SKILL.md | 0 .../gstack-plan-design-review/SKILL.md | 0 .../gstack-plan-eng-review/SKILL.md | 0 .../builtin_skills/gstack-qa-only/SKILL.md | 0 .../core/builtin_skills/gstack-qa/SKILL.md | 0 .../core/builtin_skills/gstack-retro/SKILL.md | 0 .../builtin_skills/gstack-review/SKILL.md | 0 .../core/builtin_skills/gstack-ship/SKILL.md | 0 .../core/builtin_skills/pdf/LICENSE.txt | 0 .../core/builtin_skills/pdf/SKILL.md | 0 .../core/builtin_skills/pdf/forms.md | 0 .../core/builtin_skills/pdf/reference.md | 0 .../pdf/scripts/check_bounding_boxes.py | 0 .../pdf/scripts/check_fillable_fields.py | 0 .../pdf/scripts/convert_pdf_to_images.py | 0 .../pdf/scripts/create_validation_image.py | 0 .../pdf/scripts/extract_form_field_info.py | 0 .../pdf/scripts/extract_form_structure.py | 0 .../pdf/scripts/fill_fillable_fields.py | 0 .../scripts/fill_pdf_form_with_annotations.py | 0 .../core/builtin_skills/pptx/LICENSE.txt | 0 .../core/builtin_skills/pptx/SKILL.md | 0 .../core/builtin_skills/pptx/editing.md | 0 .../core/builtin_skills/pptx/pptxgenjs.md | 0 .../builtin_skills/pptx/scripts/__init__.py | 0 .../builtin_skills/pptx/scripts/add_slide.py | 0 .../core/builtin_skills/pptx/scripts/clean.py | 0 .../pptx/scripts/office/helpers/__init__.py | 0 .../pptx/scripts/office/helpers/merge_runs.py | 0 .../office/helpers/simplify_redlines.py | 0 .../pptx/scripts/office/pack.py | 0 .../schemas/ISO-IEC29500-4_2016/dml-chart.xsd | 0 .../ISO-IEC29500-4_2016/dml-chartDrawing.xsd | 0 .../ISO-IEC29500-4_2016/dml-diagram.xsd | 0 .../ISO-IEC29500-4_2016/dml-lockedCanvas.xsd | 0 .../schemas/ISO-IEC29500-4_2016/dml-main.xsd | 0 .../ISO-IEC29500-4_2016/dml-picture.xsd | 0 .../dml-spreadsheetDrawing.xsd | 0 .../dml-wordprocessingDrawing.xsd | 0 .../schemas/ISO-IEC29500-4_2016/pml.xsd | 0 .../shared-additionalCharacteristics.xsd | 0 .../shared-bibliography.xsd | 0 .../shared-commonSimpleTypes.xsd | 0 .../shared-customXmlDataProperties.xsd | 0 .../shared-customXmlSchemaProperties.xsd | 0 .../shared-documentPropertiesCustom.xsd | 0 .../shared-documentPropertiesExtended.xsd | 0 .../shared-documentPropertiesVariantTypes.xsd | 0 .../ISO-IEC29500-4_2016/shared-math.xsd | 0 .../shared-relationshipReference.xsd | 0 .../schemas/ISO-IEC29500-4_2016/sml.xsd | 0 .../schemas/ISO-IEC29500-4_2016/vml-main.xsd | 0 .../ISO-IEC29500-4_2016/vml-officeDrawing.xsd | 0 .../vml-presentationDrawing.xsd | 0 .../vml-spreadsheetDrawing.xsd | 0 .../vml-wordprocessingDrawing.xsd | 0 .../schemas/ISO-IEC29500-4_2016/wml.xsd | 0 .../schemas/ISO-IEC29500-4_2016/xml.xsd | 0 .../ecma/fouth-edition/opc-contentTypes.xsd | 0 .../ecma/fouth-edition/opc-coreProperties.xsd | 0 .../schemas/ecma/fouth-edition/opc-digSig.xsd | 0 .../ecma/fouth-edition/opc-relationships.xsd | 0 .../pptx/scripts/office/schemas/mce/mc.xsd | 0 .../office/schemas/microsoft/wml-2010.xsd | 0 .../office/schemas/microsoft/wml-2012.xsd | 0 .../office/schemas/microsoft/wml-2018.xsd | 0 .../office/schemas/microsoft/wml-cex-2018.xsd | 0 .../office/schemas/microsoft/wml-cid-2016.xsd | 0 .../microsoft/wml-sdtdatahash-2020.xsd | 0 .../schemas/microsoft/wml-symex-2015.xsd | 0 .../pptx/scripts/office/soffice.py | 0 .../pptx/scripts/office/unpack.py | 0 .../pptx/scripts/office/validate.py | 0 .../scripts/office/validators/__init__.py | 0 .../pptx/scripts/office/validators/base.py | 0 .../pptx/scripts/office/validators/docx.py | 0 .../pptx/scripts/office/validators/pptx.py | 0 .../scripts/office/validators/redlining.py | 0 .../builtin_skills/pptx/scripts/thumbnail.py | 0 .../builtin_skills/writing-skills/SKILL.md | 0 .../anthropic-best-practices.md | 0 .../examples/CLAUDE_MD_TESTING.md | 0 .../writing-skills/graphviz-conventions.dot | 0 .../writing-skills/persuasion-principles.md | 0 .../writing-skills/render-graphs.js | 0 .../testing-skills-with-subagents.md | 0 .../core/builtin_skills/xlsx/LICENSE.txt | 0 .../core/builtin_skills/xlsx/SKILL.md | 0 .../xlsx/scripts/office/helpers/__init__.py | 0 .../xlsx/scripts/office/helpers/merge_runs.py | 0 .../office/helpers/simplify_redlines.py | 0 .../xlsx/scripts/office/pack.py | 0 .../schemas/ISO-IEC29500-4_2016/dml-chart.xsd | 0 .../ISO-IEC29500-4_2016/dml-chartDrawing.xsd | 0 .../ISO-IEC29500-4_2016/dml-diagram.xsd | 0 .../ISO-IEC29500-4_2016/dml-lockedCanvas.xsd | 0 .../schemas/ISO-IEC29500-4_2016/dml-main.xsd | 0 .../ISO-IEC29500-4_2016/dml-picture.xsd | 0 .../dml-spreadsheetDrawing.xsd | 0 .../dml-wordprocessingDrawing.xsd | 0 .../schemas/ISO-IEC29500-4_2016/pml.xsd | 0 .../shared-additionalCharacteristics.xsd | 0 .../shared-bibliography.xsd | 0 .../shared-commonSimpleTypes.xsd | 0 .../shared-customXmlDataProperties.xsd | 0 .../shared-customXmlSchemaProperties.xsd | 0 .../shared-documentPropertiesCustom.xsd | 0 .../shared-documentPropertiesExtended.xsd | 0 .../shared-documentPropertiesVariantTypes.xsd | 0 .../ISO-IEC29500-4_2016/shared-math.xsd | 0 .../shared-relationshipReference.xsd | 0 .../schemas/ISO-IEC29500-4_2016/sml.xsd | 0 .../schemas/ISO-IEC29500-4_2016/vml-main.xsd | 0 .../ISO-IEC29500-4_2016/vml-officeDrawing.xsd | 0 .../vml-presentationDrawing.xsd | 0 .../vml-spreadsheetDrawing.xsd | 0 .../vml-wordprocessingDrawing.xsd | 0 .../schemas/ISO-IEC29500-4_2016/wml.xsd | 0 .../schemas/ISO-IEC29500-4_2016/xml.xsd | 0 .../ecma/fouth-edition/opc-contentTypes.xsd | 0 .../ecma/fouth-edition/opc-coreProperties.xsd | 0 .../schemas/ecma/fouth-edition/opc-digSig.xsd | 0 .../ecma/fouth-edition/opc-relationships.xsd | 0 .../xlsx/scripts/office/schemas/mce/mc.xsd | 0 .../office/schemas/microsoft/wml-2010.xsd | 0 .../office/schemas/microsoft/wml-2012.xsd | 0 .../office/schemas/microsoft/wml-2018.xsd | 0 .../office/schemas/microsoft/wml-cex-2018.xsd | 0 .../office/schemas/microsoft/wml-cid-2016.xsd | 0 .../microsoft/wml-sdtdatahash-2020.xsd | 0 .../schemas/microsoft/wml-symex-2015.xsd | 0 .../xlsx/scripts/office/soffice.py | 0 .../xlsx/scripts/office/unpack.py | 0 .../xlsx/scripts/office/validate.py | 0 .../scripts/office/validators/__init__.py | 0 .../xlsx/scripts/office/validators/base.py | 0 .../xlsx/scripts/office/validators/docx.py | 0 .../xlsx/scripts/office/validators/pptx.py | 0 .../scripts/office/validators/redlining.py | 0 .../builtin_skills/xlsx/scripts/recalc.py | 0 .../core/locales/en-US.ftl | 0 .../core/locales/zh-CN.ftl | 0 .../core/locales/zh-TW.ftl | 0 .../src/agentic/agents/citation_renumber.rs | 0 .../agentic/agents/definitions/custom/mod.rs | 0 .../agents/definitions/custom/subagent.rs | 0 .../agents/definitions/hidden/code_review.rs | 0 .../agents/definitions/hidden/deep_review.rs | 0 .../agents/definitions/hidden/generate_doc.rs | 0 .../agentic/agents/definitions/hidden/mod.rs | 0 .../src/agentic/agents/definitions/mod.rs | 0 .../agents/definitions/modes/agentic.rs | 0 .../agentic/agents/definitions/modes/claw.rs | 0 .../agents/definitions/modes/cowork.rs | 0 .../agentic/agents/definitions/modes/debug.rs | 0 .../agents/definitions/modes/deep_research.rs | 0 .../agentic/agents/definitions/modes/mod.rs | 0 .../agents/definitions/modes/multitask.rs | 0 .../agentic/agents/definitions/modes/plan.rs | 0 .../agentic/agents/definitions/modes/team.rs | 0 .../agentic/agents/definitions/review/mod.rs | 0 .../agents/definitions/review/review_fixer.rs | 0 .../definitions/review/review_specialists.rs | 0 .../agentic/agents/definitions/shared/mod.rs | 0 .../agents/definitions/shared/readonly.rs | 0 .../definitions/subagents/computer_use.rs | 0 .../agents/definitions/subagents/explore.rs | 0 .../definitions/subagents/file_finder.rs | 0 .../definitions/subagents/general_purpose.rs | 0 .../agents/definitions/subagents/mod.rs | 0 .../subagents/research_specialist.rs | 0 .../core/src/agentic/agents/mod.rs | 0 .../src/agentic/agents/prompt_builder/mod.rs | 0 .../prompt_builder/prompt_builder_impl.rs | 0 .../agents/prompt_builder/user_context.rs | 0 .../agentic/agents/prompts/agentic_mode.md | 0 .../agentic_mode_first_entry_reminder.md | 0 .../src/agentic/agents/prompts/claw_mode.md | 0 .../src/agentic/agents/prompts/code_review.md | 0 .../agents/prompts/computer_use_mode.md | 0 .../src/agentic/agents/prompts/cowork_mode.md | 0 .../debug_mode_first_entry_reminder.md | 0 .../prompts/debug_mode_ongoing_reminder.md | 0 .../agents/prompts/deep_research_agent.md | 0 .../agents/prompts/deep_review_agent.md | 0 .../agentic/agents/prompts/explore_agent.md | 0 .../agents/prompts/file_finder_agent.md | 0 .../agents/prompts/general_purpose_agent.md | 0 .../agents/prompts/generate_doc_agent.md | 0 .../multitask_mode_first_entry_reminder.md | 0 .../multitask_mode_ongoing_reminder.md | 0 .../prompts/plan_mode_first_entry_reminder.md | 0 .../prompts/plan_mode_ongoing_reminder.md | 0 .../prompts/research_specialist_agent.md | 0 .../prompts/review_architecture_agent.md | 0 .../prompts/review_business_logic_agent.md | 0 .../agents/prompts/review_fixer_agent.md | 0 .../agents/prompts/review_frontend_agent.md | 0 .../prompts/review_performance_agent.md | 0 .../prompts/review_quality_gate_agent.md | 0 .../agents/prompts/review_security_agent.md | 0 .../src/agentic/agents/prompts/team_mode.md | 0 .../agentic/agents/registry/availability.rs | 0 .../src/agentic/agents/registry/builtin.rs | 0 .../src/agentic/agents/registry/catalog.rs | 0 .../src/agentic/agents/registry/custom.rs | 0 .../core/src/agentic/agents/registry/mod.rs | 0 .../core/src/agentic/agents/registry/query.rs | 0 .../src/agentic/agents/registry/resolution.rs | 0 .../src/agentic/agents/registry/support.rs | 0 .../core/src/agentic/agents/registry/tests.rs | 0 .../core/src/agentic/agents/registry/types.rs | 0 .../src/agentic/agents/registry/visibility.rs | 0 .../core/src/agentic/context_profile.rs | 0 .../src/agentic/coordination/coordinator.rs | 0 .../core/src/agentic/coordination/mod.rs | 0 .../src/agentic/coordination/scheduler.rs | 0 .../src/agentic/coordination/state_manager.rs | 0 .../src/agentic/coordination/turn_outcome.rs | 0 .../core/src/agentic/core/dialog_turn.rs | 0 .../core/src/agentic/core/message.rs | 0 .../core/src/agentic/core/messages_helper.rs | 0 .../core/src/agentic/core/mod.rs | 0 .../core/src/agentic/core/prompt_markup.rs | 0 .../core/src/agentic/core/session.rs | 0 .../core/src/agentic/core/state.rs | 0 .../core/src/agentic/deep_review/AGENTS.md | 2 +- .../src/agentic/deep_review/CONTRIBUTING.md | 2 +- .../core/src/agentic/deep_review/budget.rs | 0 .../agentic/deep_review/concurrency_policy.rs | 0 .../core/src/agentic/deep_review/constants.rs | 0 .../src/agentic/deep_review/diagnostics.rs | 0 .../agentic/deep_review/execution_policy.rs | 0 .../agentic/deep_review/incremental_cache.rs | 0 .../core/src/agentic/deep_review/manifest.rs | 8 +- .../core/src/agentic/deep_review/mod.rs | 0 .../core/src/agentic/deep_review/queue.rs | 0 .../core/src/agentic/deep_review/report.rs | 0 .../src/agentic/deep_review/shared_context.rs | 0 .../src/agentic/deep_review/task_adapter.rs | 0 .../agentic/deep_review/team_definition.rs | 0 .../src/agentic/deep_review/tool_context.rs | 0 .../agentic/deep_review/tool_measurement.rs | 0 .../core/src/agentic/deep_review_policy.rs | 0 .../core/src/agentic/events/mod.rs | 0 .../core/src/agentic/events/queue.rs | 0 .../core/src/agentic/events/router.rs | 0 .../core/src/agentic/events/types.rs | 0 .../core/src/agentic/execution/AGENTS.md | 0 .../src/agentic/execution/execution_engine.rs | 0 .../core/src/agentic/execution/mod.rs | 0 .../src/agentic/execution/round_executor.rs | 0 .../src/agentic/execution/stream_processor.rs | 0 .../core/src/agentic/execution/types.rs | 0 .../execution/write_content_sanitizer.rs | 0 .../core/src/agentic/fork_agent/mod.rs | 0 .../core/src/agentic/goal_mode/mod.rs | 0 .../src/agentic/goal_mode/token_subscriber.rs | 0 .../core/src/agentic/harness.rs | 0 .../src/agentic/image_analysis/enhancer.rs | 0 .../image_analysis/image_processing.rs | 0 .../core/src/agentic/image_analysis/mod.rs | 0 .../src/agentic/image_analysis/processor.rs | 0 .../core/src/agentic/image_analysis/types.rs | 0 .../core/src/agentic/init_agents_md.rs | 0 .../core/src/agentic/insights/cancellation.rs | 0 .../core/src/agentic/insights/collector.rs | 0 .../core/src/agentic/insights/facet_cache.rs | 0 .../core/src/agentic/insights/html.rs | 0 .../core/src/agentic/insights/mod.rs | 0 .../src/agentic/insights/prompt_context.rs | 0 .../src/agentic/insights/prompts/areas.md | 0 .../agentic/insights/prompts/at_a_glance.md | 0 .../insights/prompts/facet_extraction.md | 0 .../src/agentic/insights/prompts/friction.md | 0 .../agentic/insights/prompts/fun_ending.md | 0 .../src/agentic/insights/prompts/horizon.md | 0 .../insights/prompts/interaction_style.md | 0 .../agentic/insights/prompts/suggestions.md | 0 .../core/src/agentic/insights/prompts/wins.md | 0 .../core/src/agentic/insights/service.rs | 0 .../src/agentic/insights/session_paths.rs | 0 .../core/src/agentic/insights/types.rs | 0 .../core/src/agentic/mod.rs | 0 .../core/src/agentic/persistence/manager.rs | 0 .../core/src/agentic/persistence/mod.rs | 0 .../src/agentic/persistence/session_branch.rs | 0 .../src/agentic/prompts/init_agents_md.md | 0 .../core/src/agentic/round_preempt.rs | 0 .../agentic/session/compression/compressor.rs | 0 .../session/compression/fallback/builder.rs | 0 .../session/compression/fallback/mod.rs | 0 .../session/compression/fallback/payload.rs | 0 .../session/compression/fallback/render.rs | 0 .../session/compression/fallback/sanitize.rs | 0 .../session/compression/fallback/tests.rs | 0 .../session/compression/fallback/types.rs | 0 .../src/agentic/session/compression/mod.rs | 0 .../core/src/agentic/session/context_store.rs | 0 .../src/agentic/session/evidence_ledger.rs | 0 .../src/agentic/session/file_read_state.rs | 0 .../core/src/agentic/session/mod.rs | 0 .../core/src/agentic/session/prompt_cache.rs | 0 .../src/agentic/session/session_manager.rs | 0 .../src/agentic/session/session_store_port.rs | 0 .../turn_skill_agent_snapshot_store.rs | 0 .../core/src/agentic/side_question.rs | 0 .../core/src/agentic/skill_agent_snapshot.rs | 0 .../core/src/agentic/subagent_runtime/mod.rs | 0 .../agentic/subagent_runtime/queue_timing.rs | 0 .../core/src/agentic/system.rs | 0 .../src/agentic/tools/agent-tool-exposure.md | 0 .../agentic/tools/browser_control/actions.rs | 0 .../tools/browser_control/browser_launcher.rs | 0 .../tools/browser_control/cdp_client.rs | 0 .../src/agentic/tools/browser_control/mod.rs | 0 .../tools/browser_control/session_registry.rs | 0 .../agentic/tools/computer_use_capability.rs | 0 .../src/agentic/tools/computer_use_host.rs | 0 .../agentic/tools/computer_use_optimizer.rs | 0 .../tools/computer_use_verification.rs | 0 .../agentic/tools/file_read_state_runtime.rs | 0 .../src/agentic/tools/file_tool_guidance.rs | 0 .../core/src/agentic/tools/framework.rs | 0 .../core/src/agentic/tools/image_context.rs | 0 .../implementations/ask_user_question_tool.rs | 0 .../tools/implementations/bash_tool.rs | 0 .../tools/implementations/code_review_tool.rs | 0 .../implementations/computer_use_actions.rs | 0 .../implementations/computer_use_input.rs | 0 .../implementations/computer_use_locate.rs | 0 .../computer_use_mouse_click_tool.rs | 0 .../computer_use_mouse_precise_tool.rs | 0 .../computer_use_mouse_step_tool.rs | 0 .../implementations/computer_use_result.rs | 0 .../implementations/computer_use_tool.rs | 0 .../implementations/control_hub/errors.rs | 0 .../tools/implementations/control_hub/mod.rs | 0 .../implementations/control_hub/result.rs | 0 .../tools/implementations/control_hub_tool.rs | 0 .../tools/implementations/create_plan_tool.rs | 0 .../tools/implementations/cron_tool.rs | 0 .../tools/implementations/delete_file_tool.rs | 0 .../tools/implementations/file_edit_tool.rs | 0 .../tools/implementations/file_read_tool.rs | 0 .../tools/implementations/file_write_tool.rs | 0 .../implementations/generative_ui_tool.rs | 2 +- .../implementations/get_file_diff_tool.rs | 0 .../agentic/tools/implementations/git_tool.rs | 0 .../tools/implementations/glob_tool.rs | 0 .../tools/implementations/grep_tool.rs | 0 .../agentic/tools/implementations/log_tool.rs | 0 .../agentic/tools/implementations/ls_tool.rs | 0 .../tools/implementations/mcp_tools.rs | 0 .../implementations/miniapp_init_tool.rs | 0 .../src/agentic/tools/implementations/mod.rs | 0 .../tools/implementations/playbook_tool.rs | 0 .../implementations/review_platform_tool.rs | 0 .../implementations/session_control_tool.rs | 0 .../implementations/session_history_tool.rs | 0 .../implementations/session_message_tool.rs | 0 .../tools/implementations/skill_tool.rs | 0 .../tools/implementations/skills/builtin.rs | 0 .../tools/implementations/skills/catalog.rs | 0 .../tools/implementations/skills/mod.rs | 0 .../implementations/skills/mode_overrides.rs | 0 .../tools/implementations/skills/policy.rs | 0 .../tools/implementations/skills/registry.rs | 0 .../tools/implementations/skills/resolver.rs | 0 .../tools/implementations/skills/types.rs | 0 .../tools/implementations/task_tool.rs | 42 +-- .../implementations/terminal_control_tool.rs | 0 .../implementations/thread_goal_tools.rs | 0 .../tools/implementations/todo_write_tool.rs | 0 .../src/agentic/tools/implementations/util.rs | 0 .../tools/implementations/web_tools.rs | 0 .../src/agentic/tools/manifest_resolver.rs | 0 .../core/src/agentic/tools/mod.rs | 0 .../core/src/agentic/tools/pipeline/mod.rs | 0 .../agentic/tools/pipeline/state_manager.rs | 0 .../agentic/tools/pipeline/tool_pipeline.rs | 0 .../core/src/agentic/tools/pipeline/types.rs | 0 .../core/src/agentic/tools/post_call_hooks.rs | 0 .../core/src/agentic/tools/product_runtime.rs | 0 .../agentic/tools/product_runtime/catalog.rs | 0 .../product_runtime/get_tool_spec_tool.rs | 0 .../tools/product_runtime/materialization.rs | 0 .../agentic/tools/product_runtime/snapshot.rs | 0 .../tools/product_runtime/unlock_state.rs | 0 .../core/src/agentic/tools/registry.rs | 0 .../core/src/agentic/tools/restrictions.rs | 0 .../core/src/agentic/tools/tool_adapter.rs | 0 .../src/agentic/tools/tool_context_runtime.rs | 0 .../src/agentic/tools/tool_result_storage.rs | 0 .../src/agentic/tools/user_input_manager.rs | 0 .../core/src/agentic/tools/workspace_paths.rs | 0 .../core/src/agentic/util/mod.rs | 0 .../agentic/util/remote_workspace_layout.rs | 0 .../core/src/agentic/workspace.rs | 0 .../git-func-agent/ai_service.rs | 0 .../git-func-agent/commit_generator.rs | 0 .../git-func-agent/context_analyzer.rs | 0 .../src/function_agents/git-func-agent/mod.rs | 0 .../function_agents/git-func-agent/utils.rs | 0 .../core/src/function_agents/mod.rs | 0 .../core/src/function_agents/port_adapters.rs | 0 .../src/function_agents/runtime_services.rs | 0 .../startchat-func-agent/ai_service.rs | 0 .../startchat-func-agent/mod.rs | 0 .../startchat-func-agent/utils.rs | 0 .../work_state_analyzer.rs | 0 .../src/infrastructure/ai/client_factory.rs | 0 .../core/src/infrastructure/ai/mod.rs | 0 .../ai/tool_call_accumulator.rs | 0 .../core/src/infrastructure/app_paths/mod.rs | 0 .../infrastructure/app_paths/path_manager.rs | 0 .../infrastructure/cli_credentials/codex.rs | 0 .../infrastructure/cli_credentials/gemini.rs | 0 .../src/infrastructure/cli_credentials/mod.rs | 0 .../infrastructure/debug_log/http_server.rs | 0 .../core/src/infrastructure/debug_log/mod.rs | 0 .../src/infrastructure/debug_log/types.rs | 0 .../core/src/infrastructure/events/emitter.rs | 0 .../src/infrastructure/events/event_system.rs | 0 .../core/src/infrastructure/events/mod.rs | 0 .../core/src/infrastructure/filesystem/mod.rs | 0 .../core/src/infrastructure/mod.rs | 0 .../src/infrastructure/storage/cleanup.rs | 0 .../core/src/infrastructure/storage/mod.rs | 0 .../src/infrastructure/storage/persistence.rs | 0 .../{facade => assembly}/core/src/lib.rs | 0 .../core/src/miniapp/builtin/mod.rs | 0 .../core/src/miniapp/compiler.rs | 0 .../core/src/miniapp/exporter.rs | 0 .../core/src/miniapp/host_dispatch.rs | 0 .../core/src/miniapp/js_worker.rs | 0 .../core/src/miniapp/js_worker_pool.rs | 0 .../core/src/miniapp/manager.rs | 0 .../core/src/miniapp/mod.rs | 0 .../core/src/miniapp/runtime_detect.rs | 0 .../core/src/miniapp/storage.rs | 0 .../core/src/product_assembly.rs | 0 .../core/src/product_domain_runtime.rs | 0 .../core/src/product_runtime.rs | 0 .../src/product_runtime/runtime_services.rs | 0 .../src/service/agent_memory/auto_memory.rs | 0 .../agent_memory/instruction_context.rs | 0 .../core/src/service/agent_memory/mod.rs | 0 .../features/en-US/shortcuts_v0_2_2.md | 0 .../features/zh-CN/shortcuts_v0_2_2.md | 0 .../features/zh-TW/shortcuts_v0_2_2.md | 0 .../tips/en-US/001_vibe_describe_task.md | 0 .../tips/en-US/002_quick_scene_switch.md | 0 .../tips/en-US/003_vibe_file_reference.md | 0 .../content/tips/en-US/004_slash_commands.md | 0 .../tips/en-US/005_vibe_break_tasks.md | 0 .../tips/en-US/006_drag_file_context.md | 0 .../content/tips/en-US/007_vibe_iterate.md | 0 .../content/tips/en-US/008_git_ai_commit.md | 0 .../content/tips/en-US/009_vibe_multi_turn.md | 0 .../content/tips/en-US/010_multi_model.md | 0 .../content/tips/en-US/011_vibe_explain.md | 0 .../tips/en-US/012_vibe_context_window.md | 0 .../content/tips/en-US/013_miniapp.md | 0 .../tips/en-US/014_vibe_prompt_patterns.md | 0 .../tips/en-US/015_snapshot_rollback.md | 0 .../tips/en-US/016_vibe_review_output.md | 0 .../tips/en-US/017_terminal_shortcut.md | 0 .../content/tips/en-US/020_lsp_diagnostics.md | 0 .../content/tips/en-US/021_session_history.md | 0 .../tips/zh-CN/001_vibe_describe_task.md | 0 .../tips/zh-CN/002_quick_scene_switch.md | 0 .../tips/zh-CN/003_vibe_file_reference.md | 0 .../content/tips/zh-CN/004_slash_commands.md | 0 .../tips/zh-CN/005_vibe_break_tasks.md | 0 .../tips/zh-CN/006_drag_file_context.md | 0 .../content/tips/zh-CN/007_vibe_iterate.md | 0 .../content/tips/zh-CN/008_git_ai_commit.md | 0 .../content/tips/zh-CN/009_vibe_multi_turn.md | 0 .../content/tips/zh-CN/010_multi_model.md | 0 .../content/tips/zh-CN/011_vibe_explain.md | 0 .../tips/zh-CN/012_vibe_context_window.md | 0 .../content/tips/zh-CN/013_miniapp.md | 0 .../tips/zh-CN/014_vibe_prompt_patterns.md | 0 .../tips/zh-CN/015_snapshot_rollback.md | 0 .../tips/zh-CN/016_vibe_review_output.md | 0 .../tips/zh-CN/017_terminal_shortcut.md | 0 .../content/tips/zh-CN/020_lsp_diagnostics.md | 0 .../content/tips/zh-CN/021_session_history.md | 0 .../tips/zh-TW/001_vibe_describe_task.md | 0 .../tips/zh-TW/002_quick_scene_switch.md | 0 .../tips/zh-TW/003_vibe_file_reference.md | 0 .../content/tips/zh-TW/004_slash_commands.md | 0 .../tips/zh-TW/005_vibe_break_tasks.md | 0 .../tips/zh-TW/006_drag_file_context.md | 0 .../content/tips/zh-TW/007_vibe_iterate.md | 0 .../content/tips/zh-TW/008_git_ai_commit.md | 0 .../content/tips/zh-TW/009_vibe_multi_turn.md | 0 .../content/tips/zh-TW/010_multi_model.md | 0 .../content/tips/zh-TW/011_vibe_explain.md | 0 .../tips/zh-TW/012_vibe_context_window.md | 0 .../content/tips/zh-TW/013_miniapp.md | 0 .../tips/zh-TW/014_vibe_prompt_patterns.md | 0 .../tips/zh-TW/015_snapshot_rollback.md | 0 .../tips/zh-TW/016_vibe_review_output.md | 0 .../tips/zh-TW/017_terminal_shortcut.md | 0 .../content/tips/zh-TW/020_lsp_diagnostics.md | 0 .../content/tips/zh-TW/021_session_history.md | 0 .../service/announcement/content_loader.rs | 0 .../core/src/service/announcement/mod.rs | 0 .../core/src/service/announcement/registry.rs | 0 .../core/src/service/announcement/remote.rs | 0 .../src/service/announcement/scheduler.rs | 0 .../src/service/announcement/state_store.rs | 0 .../src/service/announcement/tips_pool.rs | 0 .../core/src/service/announcement/types.rs | 0 .../src/service/bootstrap/bootstrap_impl.rs | 0 .../core/src/service/bootstrap/mod.rs | 0 .../service/bootstrap/templates/BOOTSTRAP.md | 0 .../service/bootstrap/templates/IDENTITY.md | 0 .../src/service/bootstrap/templates/SOUL.md | 0 .../src/service/bootstrap/templates/USER.md | 0 .../config/agent_profile_project_store.rs | 0 .../core/src/service/config/app_language.rs | 0 .../core/src/service/config/factory.rs | 0 .../core/src/service/config/global.rs | 0 .../core/src/service/config/manager.rs | 0 .../core/src/service/config/mod.rs | 0 .../config/mode_config_canonicalizer.rs | 0 .../core/src/service/config/providers.rs | 0 .../core/src/service/config/service.rs | 0 .../core/src/service/config/types.rs | 0 .../core/src/service/cron/mod.rs | 0 .../core/src/service/cron/schedule.rs | 0 .../core/src/service/cron/service.rs | 0 .../core/src/service/cron/store.rs | 0 .../core/src/service/cron/subscriber.rs | 0 .../core/src/service/cron/types.rs | 0 .../core/src/service/filesystem/factory.rs | 0 .../core/src/service/filesystem/listing.rs | 0 .../core/src/service/filesystem/mod.rs | 0 .../core/src/service/filesystem/service.rs | 0 .../core/src/service/filesystem/types.rs | 0 .../core/src/service/git/git_service.rs | 0 .../core/src/service/git/git_types.rs | 0 .../core/src/service/git/git_utils.rs | 0 .../core/src/service/git/graph.rs | 0 .../core/src/service/git/mod.rs | 0 .../service/i18n/generated_locale_contract.rs | 0 .../core/src/service/i18n/locale_registry.rs | 0 .../core/src/service/i18n/mod.rs | 0 .../core/src/service/i18n/model_copy.rs | 0 .../core/src/service/i18n/service.rs | 0 .../core/src/service/i18n/types.rs | 0 .../core/src/service/lsp/config_watcher.rs | 0 .../core/src/service/lsp/debouncer.rs | 0 .../core/src/service/lsp/file_sync.rs | 0 .../core/src/service/lsp/global.rs | 0 .../core/src/service/lsp/manager.rs | 0 .../core/src/service/lsp/mod.rs | 0 .../core/src/service/lsp/plugin_loader.rs | 0 .../core/src/service/lsp/process.rs | 0 .../core/src/service/lsp/project_detector.rs | 0 .../core/src/service/lsp/protocol.rs | 0 .../core/src/service/lsp/registry.rs | 0 .../core/src/service/lsp/types.rs | 0 .../core/src/service/lsp/workspace_manager.rs | 0 .../core/src/service/mcp/adapter/context.rs | 0 .../core/src/service/mcp/adapter/mod.rs | 0 .../core/src/service/mcp/adapter/prompt.rs | 0 .../core/src/service/mcp/adapter/resource.rs | 0 .../core/src/service/mcp/adapter/tool.rs | 0 .../core/src/service/mcp/auth.rs | 0 .../src/service/mcp/config/cursor_format.rs | 0 .../src/service/mcp/config/json_config.rs | 0 .../core/src/service/mcp/config/location.rs | 0 .../core/src/service/mcp/config/mod.rs | 0 .../core/src/service/mcp/config/service.rs | 0 .../core/src/service/mcp/mod.rs | 0 .../core/src/service/mcp/protocol/jsonrpc.rs | 0 .../core/src/service/mcp/protocol/mod.rs | 0 .../src/service/mcp/protocol/transport.rs | 0 .../service/mcp/protocol/transport_remote.rs | 0 .../core/src/service/mcp/protocol/types.rs | 0 .../core/src/service/mcp/server/config.rs | 0 .../core/src/service/mcp/server/connection.rs | 0 .../src/service/mcp/server/manager/auth.rs | 0 .../src/service/mcp/server/manager/catalog.rs | 0 .../service/mcp/server/manager/interaction.rs | 0 .../service/mcp/server/manager/lifecycle.rs | 0 .../src/service/mcp/server/manager/mod.rs | 0 .../service/mcp/server/manager/reconnect.rs | 0 .../src/service/mcp/server/manager/tests.rs | 0 .../src/service/mcp/server/manager/tools.rs | 0 .../core/src/service/mcp/server/mod.rs | 0 .../core/src/service/mcp/server/process.rs | 0 .../core/src/service/mcp/server/registry.rs | 0 .../core/src/service/mcp/tool_info.rs | 0 .../core/src/service/mcp/tool_name.rs | 0 .../core/src/service/mod.rs | 0 .../project_context/builtin_documents.rs | 0 .../service/project_context/cancellation.rs | 0 .../project_context/document_template.rs | 0 .../project_context/generation_prompt.rs | 0 .../core/src/service/project_context/mod.rs | 0 .../src/service/project_context/service.rs | 0 .../core/src/service/project_context/types.rs | 0 .../remote_connect/bot/command_router.rs | 0 .../src/service/remote_connect/bot/feishu.rs | 0 .../src/service/remote_connect/bot/locale.rs | 0 .../src/service/remote_connect/bot/menu.rs | 0 .../src/service/remote_connect/bot/mod.rs | 0 .../service/remote_connect/bot/telegram.rs | 0 .../src/service/remote_connect/bot/weixin.rs | 0 .../core/src/service/remote_connect/device.rs | 0 .../service/remote_connect/embedded_relay.rs | 0 .../src/service/remote_connect/encryption.rs | 0 .../core/src/service/remote_connect/lan.rs | 0 .../core/src/service/remote_connect/mod.rs | 0 .../core/src/service/remote_connect/ngrok.rs | 0 .../src/service/remote_connect/pairing.rs | 0 .../service/remote_connect/qr_generator.rs | 0 .../service/remote_connect/relay_client.rs | 0 .../service/remote_connect/remote_server.rs | 0 .../core/src/service/remote_ssh/disabled.rs | 0 .../core/src/service/remote_ssh/manager.rs | 0 .../core/src/service/remote_ssh/mod.rs | 0 .../src/service/remote_ssh/password_vault.rs | 0 .../core/src/service/remote_ssh/remote_fs.rs | 0 .../src/service/remote_ssh/remote_terminal.rs | 0 .../core/src/service/remote_ssh/types.rs | 0 .../src/service/remote_ssh/workspace_state.rs | 0 .../core/src/service/review_platform/mod.rs | 0 .../core/src/service/runtime/mod.rs | 0 .../src/service/search/flashgrep/client.rs | 0 .../src/service/search/flashgrep/error.rs | 0 .../core/src/service/search/flashgrep/mod.rs | 0 .../src/service/search/flashgrep/protocol.rs | 0 .../service/search/flashgrep/repo_session.rs | 0 .../service/search/flashgrep/rpc_client.rs | 0 .../src/service/search/flashgrep/types.rs | 0 .../core/src/service/search/mod.rs | 0 .../core/src/service/search/remote.rs | 0 .../src/service/search/remote_disabled.rs | 0 .../core/src/service/search/service.rs | 0 .../core/src/service/search/types.rs | 0 .../core/src/service/session/mod.rs | 0 .../core/src/service/session_usage/mod.rs | 0 .../core/src/service/session_usage/service.rs | 0 .../core/src/service/snapshot/events.rs | 0 .../src/service/snapshot/file_lock_manager.rs | 0 .../src/service/snapshot/isolation_manager.rs | 0 .../core/src/service/snapshot/manager.rs | 0 .../core/src/service/snapshot/mod.rs | 0 .../core/src/service/snapshot/service.rs | 0 .../src/service/snapshot/snapshot_core.rs | 0 .../src/service/snapshot/snapshot_system.rs | 0 .../core/src/service/snapshot/types.rs | 0 .../core/src/service/token_usage/mod.rs | 0 .../core/src/service/token_usage/service.rs | 0 .../src/service/token_usage/subscriber.rs | 0 .../core/src/service/workspace/factory.rs | 0 .../src/service/workspace/identity_watch.rs | 0 .../core/src/service/workspace/manager.rs | 0 .../core/src/service/workspace/mod.rs | 0 .../core/src/service/workspace/provider.rs | 0 .../core/src/service/workspace/service.rs | 0 .../core/src/service/workspace_runtime/mod.rs | 0 .../src/service/workspace_runtime/service.rs | 0 .../src/service/workspace_runtime/types.rs | 0 .../core/src/service_agent_runtime.rs | 0 .../core/src/util/errors.rs | 0 .../core/src/util/front_matter_markdown.rs | 0 .../core/src/util/json_extract.rs | 0 .../{facade => assembly}/core/src/util/mod.rs | 0 .../core/src/util/plain_output.rs | 0 .../core/src/util/timing.rs | 0 .../core/src/util/token_counter.rs | 0 .../core/src/util/types/ai.rs | 0 .../core/src/util/types/config.rs | 0 .../core/src/util/types/core.rs | 0 .../core/src/util/types/event.rs | 0 .../core/src/util/types/message.rs | 0 .../core/src/util/types/mod.rs | 0 .../core/src/util/types/tool.rs | 0 .../src/util}/types/tool_image_attachment.rs | 0 .../core/tests/context_profile.rs | 0 .../core/tests/git_contracts.rs | 0 .../core/tests/product_assembly.rs | 0 .../core/tests/remote_mcp_streamable_http.rs | 0 .../product-capabilities/AGENTS.md | 2 +- .../product-capabilities/Cargo.toml | 2 +- .../product-capabilities/src/lib.rs | 0 .../tests/product_capabilities.rs | 0 src/crates/contracts/AGENTS-CN.md | 11 +- src/crates/contracts/AGENTS.md | 11 +- .../product-domains/AGENTS-CN.md | 2 +- .../product-domains/AGENTS.md | 2 +- .../product-domains/Cargo.toml | 0 .../src/function_agents/common.rs | 0 .../git_func_agent/context_analyzer.rs | 0 .../src/function_agents/git_func_agent/mod.rs | 0 .../git_func_agent/prompts/commit_message.md | 0 .../function_agents/git_func_agent/types.rs | 0 .../function_agents/git_func_agent/utils.rs | 0 .../src/function_agents/mod.rs | 0 .../src/function_agents/ports.rs | 0 .../startchat_func_agent/mod.rs | 0 .../prompts/work_state_analysis.md | 0 .../startchat_func_agent/types.rs | 0 .../startchat_func_agent/utils.rs | 0 .../product-domains/src/lib.rs | 0 .../src/miniapp/bridge_builder.rs | 0 .../product-domains/src/miniapp/builtin.rs | 0 .../builtin/assets/coding-selfie/index.html | 0 .../builtin/assets/coding-selfie/meta.json | 0 .../builtin/assets/coding-selfie/style.css | 0 .../builtin/assets/coding-selfie/ui.js | 0 .../builtin/assets/coding-selfie/worker.js | 0 .../builtin/assets/divination/index.html | 0 .../builtin/assets/divination/meta.json | 0 .../builtin/assets/divination/style.css | 0 .../miniapp/builtin/assets/divination/ui.js | 0 .../builtin/assets/divination/worker.js | 0 .../miniapp/builtin/assets/gomoku/index.html | 0 .../miniapp/builtin/assets/gomoku/meta.json | 0 .../miniapp/builtin/assets/gomoku/style.css | 0 .../src/miniapp/builtin/assets/gomoku/ui.js | 0 .../miniapp/builtin/assets/gomoku/worker.js | 0 .../builtin/assets/pr-review/index.html | 0 .../builtin/assets/pr-review/meta.json | 0 .../builtin/assets/pr-review/style.css | 0 .../miniapp/builtin/assets/pr-review/ui.js | 0 .../builtin/assets/pr-review/worker.js | 0 .../assets/regex-playground/index.html | 0 .../builtin/assets/regex-playground/meta.json | 0 .../builtin/assets/regex-playground/style.css | 0 .../builtin/assets/regex-playground/ui.js | 0 .../builtin/assets/regex-playground/worker.js | 0 .../product-domains/src/miniapp/compiler.rs | 0 .../src/miniapp/customization.rs | 0 .../product-domains/src/miniapp/draft.rs | 0 .../product-domains/src/miniapp/exporter.rs | 0 .../src/miniapp/host_routing.rs | 0 .../product-domains/src/miniapp/lifecycle.rs | 0 .../product-domains/src/miniapp/mod.rs | 0 .../src/miniapp/permission_policy.rs | 0 .../product-domains/src/miniapp/ports.rs | 0 .../product-domains/src/miniapp/runtime.rs | 0 .../product-domains/src/miniapp/storage.rs | 0 .../product-domains/src/miniapp/types.rs | 0 .../product-domains/src/miniapp/worker.rs | 0 .../tests/function_agent_contracts.rs | 6 +- .../tests/miniapp_contracts.rs | 0 src/crates/execution/AGENTS-CN.md | 17 +- src/crates/execution/AGENTS.md | 24 +- src/crates/execution/agent-stream/Cargo.toml | 2 +- .../execution/runtime-services/AGENTS.md | 2 +- .../{agent-tools => tool-contracts}/AGENTS.md | 9 +- .../Cargo.toml | 0 .../src/execution_gate.rs | 0 .../src/file_guidance.rs | 0 .../src/file_read_freshness.rs | 0 .../src/framework.rs | 0 .../src/input_validator.rs | 0 .../src/lib.rs | 0 .../src/tool_execution_presentation.rs | 0 .../src/tool_result_storage.rs | 0 .../tests/tool_contracts.rs | 0 .../AGENTS.md | 9 +- .../Cargo.toml | 0 .../src/fs/backend.rs | 0 .../src/fs/delete_path.rs | 0 .../src/fs/edit_file.rs | 0 .../src/fs/list_dir.rs | 0 .../src/fs/mod.rs | 0 .../src/fs/read_file.rs | 0 .../src/fs/write_file.rs | 0 .../src/lib.rs | 0 .../src/search/glob_search.rs | 0 .../src/search/grep_search.rs | 0 .../src/search/mod.rs | 0 .../src/util/ansi_cleaner.rs | 0 .../src/util/mod.rs | 0 .../src/util/read_line_prefix.rs | 0 .../src/util/string.rs | 0 .../tests/tool_io_contracts.rs | 0 .../AGENTS.md | 4 +- .../Cargo.toml | 0 .../src/lib.rs | 0 src/crates/facade/AGENTS-CN.md | 26 -- src/crates/facade/AGENTS.md | 39 --- src/crates/integrations/AGENTS-CN.md | 26 -- src/crates/integrations/AGENTS.md | 34 --- src/crates/interfaces/AGENTS-CN.md | 22 ++ src/crates/interfaces/AGENTS.md | 29 ++ .../{surfaces => interfaces}/acp/AGENTS-CN.md | 2 +- .../{surfaces => interfaces}/acp/AGENTS.md | 2 +- .../{surfaces => interfaces}/acp/Cargo.toml | 2 +- .../acp/src/client/builtin_clients.rs | 0 .../acp/src/client/config.rs | 0 .../acp/src/client/manager.rs | 0 .../acp/src/client/mod.rs | 0 .../acp/src/client/remote_capability_store.rs | 0 .../acp/src/client/remote_session.rs | 0 .../acp/src/client/remote_shell.rs | 0 .../acp/src/client/requirements.rs | 0 .../acp/src/client/session_options.rs | 0 .../acp/src/client/session_persistence.rs | 0 .../acp/src/client/stream.rs | 0 .../acp/src/client/tool.rs | 0 .../acp/src/client/tool_card_bridge/mod.rs | 0 .../src/client/tool_card_bridge/tool_name.rs | 0 .../client/tool_card_bridge/tool_params.rs | 0 .../{surfaces => interfaces}/acp/src/lib.rs | 0 .../acp/src/runtime.rs | 0 .../acp/src/runtime/content.rs | 0 .../acp/src/runtime/events.rs | 0 .../acp/src/runtime/mcp.rs | 0 .../acp/src/runtime/model.rs | 0 .../acp/src/runtime/prompt.rs | 0 .../acp/src/runtime/session.rs | 0 .../acp/src/runtime/thinking.rs | 0 .../acp/src/server.rs | 0 src/crates/product/AGENTS-CN.md | 25 -- src/crates/product/AGENTS.md | 33 --- src/crates/services/AGENTS-CN.md | 24 +- src/crates/services/AGENTS.md | 45 ++- .../services/services-integrations/Cargo.toml | 2 +- src/crates/surfaces/AGENTS-CN.md | 22 -- src/crates/surfaces/AGENTS.md | 28 -- src/shared/i18n/contract/locales.json | 2 +- .../DeepReviewConsentDialog.test.tsx | 2 +- .../src/flow_chat/deep-review/AGENTS.md | 2 +- .../deep-review/launch/commandParser.test.ts | 4 +- .../deep-review/launch/targetResolver.test.ts | 2 +- .../services/DeepReviewService.test.ts | 12 +- .../utils/deepReviewContinuation.test.ts | 2 +- .../services/review-team/pathMetadata.test.ts | 18 +- .../services/review-team/pathMetadata.ts | 7 +- .../shared/services/review-team/risk.test.ts | 21 +- .../services/reviewTargetClassifier.test.ts | 16 +- .../shared/services/reviewTargetClassifier.ts | 21 +- .../shared/services/reviewTeamService.test.ts | 58 ++-- 1108 files changed, 1171 insertions(+), 1340 deletions(-) create mode 100644 src/crates/adapters/AGENTS-CN.md create mode 100644 src/crates/adapters/AGENTS.md rename src/crates/{integrations => adapters}/ai-adapters/AGENTS.md (90%) rename src/crates/{integrations => adapters}/ai-adapters/Cargo.toml (100%) rename src/crates/{integrations => adapters}/ai-adapters/README.md (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client/format.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client/healthcheck.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client/http.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client/quirks.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client/response_aggregator.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client/sse.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/client/utils.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/diagnostics.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/lib.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/anthropic/discovery.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/anthropic/message_converter.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/anthropic/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/anthropic/request.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/gemini/code_assist.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/gemini/discovery.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/gemini/message_converter.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/gemini/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/gemini/request.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/openai/chat.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/openai/codex_chatgpt.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/openai/common.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/openai/message_converter.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/openai/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/openai/responses.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/providers/shared.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/stream_handler/anthropic.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/stream_handler/gemini.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/stream_handler/inline_think.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/stream_handler/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/stream_handler/openai.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/stream_handler/responses.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/stream_handler/stream_stats.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/types/anthropic.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/types/gemini.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/types/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/types/openai.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/types/responses.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/stream/types/unified.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/tool_call_accumulator.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/types/ai.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/types/config.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/types/message.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/types/mod.rs (100%) rename src/crates/{integrations => adapters}/ai-adapters/src/types/tool.rs (100%) rename src/crates/{facade/core/src/util => adapters/ai-adapters/src}/types/tool_image_attachment.rs (100%) rename src/crates/{integrations => adapters}/api-layer/AGENTS.md (93%) rename src/crates/{integrations => adapters}/api-layer/Cargo.toml (100%) rename src/crates/{integrations => adapters}/api-layer/src/dto.rs (100%) rename src/crates/{integrations => adapters}/api-layer/src/handlers.rs (100%) rename src/crates/{integrations => adapters}/api-layer/src/lib.rs (100%) rename src/crates/{integrations => adapters}/transport/AGENTS.md (93%) rename src/crates/{integrations => adapters}/transport/Cargo.toml (100%) rename src/crates/{integrations => adapters}/transport/src/adapters/cli.rs (100%) rename src/crates/{integrations => adapters}/transport/src/adapters/mod.rs (100%) rename src/crates/{integrations => adapters}/transport/src/adapters/tauri.rs (100%) rename src/crates/{integrations => adapters}/transport/src/adapters/websocket.rs (100%) rename src/crates/{integrations => adapters}/transport/src/emitter.rs (100%) rename src/crates/{integrations => adapters}/transport/src/event_bus.rs (100%) rename src/crates/{integrations => adapters}/transport/src/events.rs (100%) rename src/crates/{integrations => adapters}/transport/src/lib.rs (100%) rename src/crates/{integrations => adapters}/transport/src/traits.rs (100%) rename src/crates/{integrations => adapters}/webdriver/AGENTS.md (92%) rename src/crates/{integrations => adapters}/webdriver/Cargo.toml (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/element/actions.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/element/lookup.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/element/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/element/read.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/element/shadow.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/interaction.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/navigation.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/session.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/executor/window.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/lib.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/platform/capture.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/platform/evaluator/macos.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/platform/evaluator/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/platform/evaluator/windows.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/platform/image.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/platform/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/platform/types.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/api/element.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/api/interaction.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/api/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/api/navigation.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/alert.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/context.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/cookie.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/execution.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/locator.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/runtime.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/shadow.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/store.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/core/visibility.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/input.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/keyboard/edit.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/keyboard/event.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/keyboard/focus.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/keyboard/mapping.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/keyboard/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/key_source.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/mouse.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/perform.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/pointer_source.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/release.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/wheel.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/runtime/script/pointer/wheel_source.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/actions.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/alert.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/cookie.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/element.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/frame.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/logs.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/navigation.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/print.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/screenshot.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/script.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/session.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/shadow.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/timeouts.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/handlers/window.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/response.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/server/router.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/webdriver/element.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/webdriver/locator.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/webdriver/mod.rs (100%) rename src/crates/{integrations => adapters}/webdriver/src/webdriver/session.rs (100%) create mode 100644 src/crates/assembly/AGENTS-CN.md create mode 100644 src/crates/assembly/AGENTS.md rename src/crates/{facade => assembly}/core/AGENTS-CN.md (90%) rename src/crates/{facade => assembly}/core/AGENTS.md (84%) rename src/crates/{facade => assembly}/core/Cargo.toml (91%) rename src/crates/{facade => assembly}/core/build.rs (99%) rename src/crates/{facade => assembly}/core/builtin_playbooks/browser_data_extraction.yaml (100%) rename src/crates/{facade => assembly}/core/builtin_playbooks/browser_form_fill.yaml (100%) rename src/crates/{facade => assembly}/core/builtin_playbooks/browser_screenshot.yaml (100%) rename src/crates/{facade => assembly}/core/builtin_playbooks/desktop_app_automation.yaml (100%) rename src/crates/{facade => assembly}/core/builtin_playbooks/im_send_message.yaml (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/references/authentication.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/references/commands.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/references/profiling.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/references/proxy-support.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/references/session-management.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/references/snapshot-refs.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/references/video-recording.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/templates/authenticated-session.sh (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/templates/capture-workflow.sh (100%) rename src/crates/{facade => assembly}/core/builtin_skills/agent-browser/templates/form-automation.sh (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/LICENSE.txt (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/accept_changes.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/comment.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/helpers/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/helpers/merge_runs.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/helpers/simplify_redlines.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/pack.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/mce/mc.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/soffice.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/unpack.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/validate.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/validators/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/validators/base.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/validators/docx.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/validators/pptx.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/office/validators/redlining.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/templates/comments.xml (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/templates/commentsExtended.xml (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/templates/commentsExtensible.xml (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/templates/commentsIds.xml (100%) rename src/crates/{facade => assembly}/core/builtin_skills/docx/scripts/templates/people.xml (100%) rename src/crates/{facade => assembly}/core/builtin_skills/find-skills/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-autoplan/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-cso/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-design-consultation/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-design-review/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-document-release/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-investigate/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-office-hours/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-plan-ceo-review/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-plan-design-review/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-plan-eng-review/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-qa-only/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-qa/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-retro/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-review/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/gstack-ship/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/LICENSE.txt (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/forms.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/reference.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/check_bounding_boxes.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/check_fillable_fields.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/convert_pdf_to_images.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/create_validation_image.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/extract_form_field_info.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/extract_form_structure.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/fill_fillable_fields.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pdf/scripts/fill_pdf_form_with_annotations.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/LICENSE.txt (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/editing.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/pptxgenjs.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/add_slide.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/clean.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/helpers/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/helpers/merge_runs.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/helpers/simplify_redlines.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/pack.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/mce/mc.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/soffice.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/unpack.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/validate.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/validators/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/validators/base.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/validators/docx.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/validators/pptx.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/office/validators/redlining.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/pptx/scripts/thumbnail.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/writing-skills/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/writing-skills/anthropic-best-practices.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/writing-skills/examples/CLAUDE_MD_TESTING.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/writing-skills/graphviz-conventions.dot (100%) rename src/crates/{facade => assembly}/core/builtin_skills/writing-skills/persuasion-principles.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/writing-skills/render-graphs.js (100%) rename src/crates/{facade => assembly}/core/builtin_skills/writing-skills/testing-skills-with-subagents.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/LICENSE.txt (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/SKILL.md (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/helpers/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/helpers/merge_runs.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/helpers/simplify_redlines.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/pack.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/mce/mc.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/soffice.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/unpack.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/validate.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/validators/__init__.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/validators/base.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/validators/docx.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/validators/pptx.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/office/validators/redlining.py (100%) rename src/crates/{facade => assembly}/core/builtin_skills/xlsx/scripts/recalc.py (100%) rename src/crates/{facade => assembly}/core/locales/en-US.ftl (100%) rename src/crates/{facade => assembly}/core/locales/zh-CN.ftl (100%) rename src/crates/{facade => assembly}/core/locales/zh-TW.ftl (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/citation_renumber.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/custom/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/custom/subagent.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/hidden/code_review.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/hidden/deep_review.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/hidden/generate_doc.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/hidden/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/agentic.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/claw.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/cowork.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/debug.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/deep_research.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/multitask.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/plan.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/modes/team.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/review/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/review/review_fixer.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/review/review_specialists.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/shared/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/shared/readonly.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/subagents/computer_use.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/subagents/explore.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/subagents/file_finder.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/subagents/general_purpose.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/subagents/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/definitions/subagents/research_specialist.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompt_builder/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompt_builder/prompt_builder_impl.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompt_builder/user_context.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/agentic_mode.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/agentic_mode_first_entry_reminder.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/claw_mode.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/code_review.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/computer_use_mode.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/cowork_mode.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/debug_mode_first_entry_reminder.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/debug_mode_ongoing_reminder.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/deep_research_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/deep_review_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/explore_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/file_finder_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/general_purpose_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/generate_doc_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/multitask_mode_first_entry_reminder.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/multitask_mode_ongoing_reminder.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/plan_mode_first_entry_reminder.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/plan_mode_ongoing_reminder.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/research_specialist_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/review_architecture_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/review_business_logic_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/review_fixer_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/review_frontend_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/review_performance_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/review_quality_gate_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/review_security_agent.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/prompts/team_mode.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/availability.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/builtin.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/catalog.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/custom.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/query.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/resolution.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/support.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/tests.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/agents/registry/visibility.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/context_profile.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/coordination/coordinator.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/coordination/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/coordination/scheduler.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/coordination/state_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/coordination/turn_outcome.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/core/dialog_turn.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/core/message.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/core/messages_helper.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/core/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/core/prompt_markup.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/core/session.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/core/state.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/AGENTS.md (93%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/CONTRIBUTING.md (86%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/budget.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/concurrency_policy.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/constants.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/diagnostics.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/execution_policy.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/incremental_cache.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/manifest.rs (98%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/queue.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/report.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/shared_context.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/task_adapter.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/team_definition.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/tool_context.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review/tool_measurement.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/deep_review_policy.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/events/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/events/queue.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/events/router.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/events/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/execution/AGENTS.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/execution/execution_engine.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/execution/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/execution/round_executor.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/execution/stream_processor.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/execution/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/execution/write_content_sanitizer.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/fork_agent/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/goal_mode/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/goal_mode/token_subscriber.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/harness.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/image_analysis/enhancer.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/image_analysis/image_processing.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/image_analysis/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/image_analysis/processor.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/image_analysis/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/init_agents_md.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/cancellation.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/collector.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/facet_cache.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/html.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompt_context.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/areas.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/at_a_glance.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/facet_extraction.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/friction.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/fun_ending.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/horizon.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/interaction_style.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/suggestions.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/prompts/wins.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/service.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/session_paths.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/insights/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/persistence/manager.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/persistence/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/persistence/session_branch.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/prompts/init_agents_md.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/round_preempt.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/compressor.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/fallback/builder.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/fallback/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/fallback/payload.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/fallback/render.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/fallback/sanitize.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/fallback/tests.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/fallback/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/compression/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/context_store.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/evidence_ledger.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/file_read_state.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/prompt_cache.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/session_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/session_store_port.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/session/turn_skill_agent_snapshot_store.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/side_question.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/skill_agent_snapshot.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/subagent_runtime/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/subagent_runtime/queue_timing.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/system.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/agent-tool-exposure.md (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/browser_control/actions.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/browser_control/browser_launcher.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/browser_control/cdp_client.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/browser_control/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/browser_control/session_registry.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/computer_use_capability.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/computer_use_host.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/computer_use_optimizer.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/computer_use_verification.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/file_read_state_runtime.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/file_tool_guidance.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/framework.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/image_context.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/ask_user_question_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/bash_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/code_review_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_actions.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_input.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_locate.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_mouse_click_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_mouse_precise_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_mouse_step_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_result.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/computer_use_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/control_hub/errors.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/control_hub/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/control_hub/result.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/control_hub_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/create_plan_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/cron_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/delete_file_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/file_edit_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/file_read_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/file_write_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/generative_ui_tool.rs (99%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/get_file_diff_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/git_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/glob_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/grep_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/log_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/ls_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/mcp_tools.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/miniapp_init_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/playbook_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/review_platform_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/session_control_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/session_history_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/session_message_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skill_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/builtin.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/catalog.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/mode_overrides.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/policy.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/registry.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/resolver.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/skills/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/task_tool.rs (99%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/terminal_control_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/thread_goal_tools.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/todo_write_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/util.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/implementations/web_tools.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/manifest_resolver.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/pipeline/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/pipeline/state_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/pipeline/tool_pipeline.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/pipeline/types.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/post_call_hooks.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/product_runtime.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/product_runtime/catalog.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/product_runtime/materialization.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/product_runtime/snapshot.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/product_runtime/unlock_state.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/registry.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/restrictions.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/tool_adapter.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/tool_context_runtime.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/tool_result_storage.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/user_input_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/tools/workspace_paths.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/util/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/util/remote_workspace_layout.rs (100%) rename src/crates/{facade => assembly}/core/src/agentic/workspace.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/git-func-agent/ai_service.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/git-func-agent/commit_generator.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/git-func-agent/context_analyzer.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/git-func-agent/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/git-func-agent/utils.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/port_adapters.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/runtime_services.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/startchat-func-agent/ai_service.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/startchat-func-agent/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/startchat-func-agent/utils.rs (100%) rename src/crates/{facade => assembly}/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/ai/client_factory.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/ai/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/ai/tool_call_accumulator.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/app_paths/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/app_paths/path_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/cli_credentials/codex.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/cli_credentials/gemini.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/cli_credentials/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/debug_log/http_server.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/debug_log/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/debug_log/types.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/events/emitter.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/events/event_system.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/events/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/filesystem/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/storage/cleanup.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/storage/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/infrastructure/storage/persistence.rs (100%) rename src/crates/{facade => assembly}/core/src/lib.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/builtin/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/compiler.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/exporter.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/host_dispatch.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/js_worker.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/js_worker_pool.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/manager.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/runtime_detect.rs (100%) rename src/crates/{facade => assembly}/core/src/miniapp/storage.rs (100%) rename src/crates/{facade => assembly}/core/src/product_assembly.rs (100%) rename src/crates/{facade => assembly}/core/src/product_domain_runtime.rs (100%) rename src/crates/{facade => assembly}/core/src/product_runtime.rs (100%) rename src/crates/{facade => assembly}/core/src/product_runtime/runtime_services.rs (100%) rename src/crates/{facade => assembly}/core/src/service/agent_memory/auto_memory.rs (100%) rename src/crates/{facade => assembly}/core/src/service/agent_memory/instruction_context.rs (100%) rename src/crates/{facade => assembly}/core/src/service/agent_memory/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/features/en-US/shortcuts_v0_2_2.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/features/zh-CN/shortcuts_v0_2_2.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/features/zh-TW/shortcuts_v0_2_2.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/001_vibe_describe_task.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/002_quick_scene_switch.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/003_vibe_file_reference.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/004_slash_commands.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/005_vibe_break_tasks.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/006_drag_file_context.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/007_vibe_iterate.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/008_git_ai_commit.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/009_vibe_multi_turn.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/010_multi_model.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/011_vibe_explain.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/012_vibe_context_window.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/013_miniapp.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/014_vibe_prompt_patterns.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/015_snapshot_rollback.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/016_vibe_review_output.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/017_terminal_shortcut.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/020_lsp_diagnostics.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/en-US/021_session_history.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/001_vibe_describe_task.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/002_quick_scene_switch.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/003_vibe_file_reference.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/004_slash_commands.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/005_vibe_break_tasks.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/006_drag_file_context.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/007_vibe_iterate.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/008_git_ai_commit.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/009_vibe_multi_turn.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/010_multi_model.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/011_vibe_explain.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/012_vibe_context_window.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/013_miniapp.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/014_vibe_prompt_patterns.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/015_snapshot_rollback.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/016_vibe_review_output.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/017_terminal_shortcut.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/020_lsp_diagnostics.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-CN/021_session_history.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/001_vibe_describe_task.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/002_quick_scene_switch.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/003_vibe_file_reference.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/004_slash_commands.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/005_vibe_break_tasks.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/006_drag_file_context.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/007_vibe_iterate.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/008_git_ai_commit.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/009_vibe_multi_turn.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/010_multi_model.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/011_vibe_explain.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/012_vibe_context_window.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/013_miniapp.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/014_vibe_prompt_patterns.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/015_snapshot_rollback.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/016_vibe_review_output.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/017_terminal_shortcut.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/020_lsp_diagnostics.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content/tips/zh-TW/021_session_history.md (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/content_loader.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/registry.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/remote.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/scheduler.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/state_store.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/tips_pool.rs (100%) rename src/crates/{facade => assembly}/core/src/service/announcement/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/bootstrap/bootstrap_impl.rs (100%) rename src/crates/{facade => assembly}/core/src/service/bootstrap/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/bootstrap/templates/BOOTSTRAP.md (100%) rename src/crates/{facade => assembly}/core/src/service/bootstrap/templates/IDENTITY.md (100%) rename src/crates/{facade => assembly}/core/src/service/bootstrap/templates/SOUL.md (100%) rename src/crates/{facade => assembly}/core/src/service/bootstrap/templates/USER.md (100%) rename src/crates/{facade => assembly}/core/src/service/config/agent_profile_project_store.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/app_language.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/factory.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/global.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/mode_config_canonicalizer.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/providers.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/config/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/cron/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/cron/schedule.rs (100%) rename src/crates/{facade => assembly}/core/src/service/cron/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/cron/store.rs (100%) rename src/crates/{facade => assembly}/core/src/service/cron/subscriber.rs (100%) rename src/crates/{facade => assembly}/core/src/service/cron/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/filesystem/factory.rs (100%) rename src/crates/{facade => assembly}/core/src/service/filesystem/listing.rs (100%) rename src/crates/{facade => assembly}/core/src/service/filesystem/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/filesystem/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/filesystem/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/git/git_service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/git/git_types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/git/git_utils.rs (100%) rename src/crates/{facade => assembly}/core/src/service/git/graph.rs (100%) rename src/crates/{facade => assembly}/core/src/service/git/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/i18n/generated_locale_contract.rs (100%) rename src/crates/{facade => assembly}/core/src/service/i18n/locale_registry.rs (100%) rename src/crates/{facade => assembly}/core/src/service/i18n/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/i18n/model_copy.rs (100%) rename src/crates/{facade => assembly}/core/src/service/i18n/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/i18n/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/config_watcher.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/debouncer.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/file_sync.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/global.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/plugin_loader.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/process.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/project_detector.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/protocol.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/registry.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/lsp/workspace_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/adapter/context.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/adapter/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/adapter/prompt.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/adapter/resource.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/adapter/tool.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/auth.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/config/cursor_format.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/config/json_config.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/config/location.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/config/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/config/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/protocol/jsonrpc.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/protocol/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/protocol/transport.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/protocol/transport_remote.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/protocol/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/config.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/connection.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/auth.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/catalog.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/interaction.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/lifecycle.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/reconnect.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/tests.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/manager/tools.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/process.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/server/registry.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/tool_info.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mcp/tool_name.rs (100%) rename src/crates/{facade => assembly}/core/src/service/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/project_context/builtin_documents.rs (100%) rename src/crates/{facade => assembly}/core/src/service/project_context/cancellation.rs (100%) rename src/crates/{facade => assembly}/core/src/service/project_context/document_template.rs (100%) rename src/crates/{facade => assembly}/core/src/service/project_context/generation_prompt.rs (100%) rename src/crates/{facade => assembly}/core/src/service/project_context/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/project_context/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/project_context/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/bot/command_router.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/bot/feishu.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/bot/locale.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/bot/menu.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/bot/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/bot/telegram.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/bot/weixin.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/device.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/embedded_relay.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/encryption.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/lan.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/ngrok.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/pairing.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/qr_generator.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/relay_client.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_connect/remote_server.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/disabled.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/password_vault.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/remote_fs.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/remote_terminal.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/remote_ssh/workspace_state.rs (100%) rename src/crates/{facade => assembly}/core/src/service/review_platform/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/runtime/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/flashgrep/client.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/flashgrep/error.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/flashgrep/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/flashgrep/protocol.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/flashgrep/repo_session.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/flashgrep/rpc_client.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/flashgrep/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/remote.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/remote_disabled.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/search/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/session/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/session_usage/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/session_usage/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/events.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/file_lock_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/isolation_manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/snapshot_core.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/snapshot_system.rs (100%) rename src/crates/{facade => assembly}/core/src/service/snapshot/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service/token_usage/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/token_usage/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/token_usage/subscriber.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace/factory.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace/identity_watch.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace/manager.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace/provider.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace_runtime/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace_runtime/service.rs (100%) rename src/crates/{facade => assembly}/core/src/service/workspace_runtime/types.rs (100%) rename src/crates/{facade => assembly}/core/src/service_agent_runtime.rs (100%) rename src/crates/{facade => assembly}/core/src/util/errors.rs (100%) rename src/crates/{facade => assembly}/core/src/util/front_matter_markdown.rs (100%) rename src/crates/{facade => assembly}/core/src/util/json_extract.rs (100%) rename src/crates/{facade => assembly}/core/src/util/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/util/plain_output.rs (100%) rename src/crates/{facade => assembly}/core/src/util/timing.rs (100%) rename src/crates/{facade => assembly}/core/src/util/token_counter.rs (100%) rename src/crates/{facade => assembly}/core/src/util/types/ai.rs (100%) rename src/crates/{facade => assembly}/core/src/util/types/config.rs (100%) rename src/crates/{facade => assembly}/core/src/util/types/core.rs (100%) rename src/crates/{facade => assembly}/core/src/util/types/event.rs (100%) rename src/crates/{facade => assembly}/core/src/util/types/message.rs (100%) rename src/crates/{facade => assembly}/core/src/util/types/mod.rs (100%) rename src/crates/{facade => assembly}/core/src/util/types/tool.rs (100%) rename src/crates/{integrations/ai-adapters/src => assembly/core/src/util}/types/tool_image_attachment.rs (100%) rename src/crates/{facade => assembly}/core/tests/context_profile.rs (100%) rename src/crates/{facade => assembly}/core/tests/git_contracts.rs (100%) rename src/crates/{facade => assembly}/core/tests/product_assembly.rs (100%) rename src/crates/{facade => assembly}/core/tests/remote_mcp_streamable_http.rs (100%) rename src/crates/{product => assembly}/product-capabilities/AGENTS.md (93%) rename src/crates/{product => assembly}/product-capabilities/Cargo.toml (79%) rename src/crates/{product => assembly}/product-capabilities/src/lib.rs (100%) rename src/crates/{product => assembly}/product-capabilities/tests/product_capabilities.rs (100%) rename src/crates/{product => contracts}/product-domains/AGENTS-CN.md (97%) rename src/crates/{product => contracts}/product-domains/AGENTS.md (96%) rename src/crates/{product => contracts}/product-domains/Cargo.toml (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/common.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/git_func_agent/context_analyzer.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/git_func_agent/mod.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/git_func_agent/prompts/commit_message.md (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/git_func_agent/types.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/git_func_agent/utils.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/mod.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/ports.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/startchat_func_agent/mod.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/startchat_func_agent/prompts/work_state_analysis.md (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/startchat_func_agent/types.rs (100%) rename src/crates/{product => contracts}/product-domains/src/function_agents/startchat_func_agent/utils.rs (100%) rename src/crates/{product => contracts}/product-domains/src/lib.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/bridge_builder.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/coding-selfie/index.html (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/coding-selfie/meta.json (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/coding-selfie/style.css (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/coding-selfie/ui.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/coding-selfie/worker.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/divination/index.html (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/divination/meta.json (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/divination/style.css (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/divination/ui.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/divination/worker.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/gomoku/index.html (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/gomoku/meta.json (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/gomoku/style.css (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/gomoku/ui.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/gomoku/worker.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/pr-review/index.html (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/pr-review/meta.json (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/pr-review/style.css (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/pr-review/ui.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/pr-review/worker.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/regex-playground/index.html (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/regex-playground/meta.json (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/regex-playground/style.css (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/regex-playground/ui.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/builtin/assets/regex-playground/worker.js (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/compiler.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/customization.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/draft.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/exporter.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/host_routing.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/lifecycle.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/mod.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/permission_policy.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/ports.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/runtime.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/storage.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/types.rs (100%) rename src/crates/{product => contracts}/product-domains/src/miniapp/worker.rs (100%) rename src/crates/{product => contracts}/product-domains/tests/function_agent_contracts.rs (99%) rename src/crates/{product => contracts}/product-domains/tests/miniapp_contracts.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/AGENTS.md (82%) rename src/crates/execution/{agent-tools => tool-contracts}/Cargo.toml (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/execution_gate.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/file_guidance.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/file_read_freshness.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/framework.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/input_validator.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/lib.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/tool_execution_presentation.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/src/tool_result_storage.rs (100%) rename src/crates/execution/{agent-tools => tool-contracts}/tests/tool_contracts.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/AGENTS.md (77%) rename src/crates/execution/{tool-runtime => tool-execution}/Cargo.toml (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/fs/backend.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/fs/delete_path.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/fs/edit_file.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/fs/list_dir.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/fs/mod.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/fs/read_file.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/fs/write_file.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/lib.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/search/glob_search.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/search/grep_search.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/search/mod.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/util/ansi_cleaner.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/util/mod.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/util/read_line_prefix.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/src/util/string.rs (100%) rename src/crates/execution/{tool-runtime => tool-execution}/tests/tool_io_contracts.rs (100%) rename src/crates/execution/{tool-packs => tool-provider-groups}/AGENTS.md (92%) rename src/crates/execution/{tool-packs => tool-provider-groups}/Cargo.toml (100%) rename src/crates/execution/{tool-packs => tool-provider-groups}/src/lib.rs (100%) delete mode 100644 src/crates/facade/AGENTS-CN.md delete mode 100644 src/crates/facade/AGENTS.md delete mode 100644 src/crates/integrations/AGENTS-CN.md delete mode 100644 src/crates/integrations/AGENTS.md create mode 100644 src/crates/interfaces/AGENTS-CN.md create mode 100644 src/crates/interfaces/AGENTS.md rename src/crates/{surfaces => interfaces}/acp/AGENTS-CN.md (95%) rename src/crates/{surfaces => interfaces}/acp/AGENTS.md (94%) rename src/crates/{surfaces => interfaces}/acp/Cargo.toml (86%) rename src/crates/{surfaces => interfaces}/acp/src/client/builtin_clients.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/config.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/manager.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/mod.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/remote_capability_store.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/remote_session.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/remote_shell.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/requirements.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/session_options.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/session_persistence.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/stream.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/tool.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/tool_card_bridge/mod.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/tool_card_bridge/tool_name.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/client/tool_card_bridge/tool_params.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/lib.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime/content.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime/events.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime/mcp.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime/model.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime/prompt.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime/session.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/runtime/thinking.rs (100%) rename src/crates/{surfaces => interfaces}/acp/src/server.rs (100%) delete mode 100644 src/crates/product/AGENTS-CN.md delete mode 100644 src/crates/product/AGENTS.md delete mode 100644 src/crates/surfaces/AGENTS-CN.md delete mode 100644 src/crates/surfaces/AGENTS.md diff --git a/AGENTS-CN.md b/AGENTS-CN.md index 99c6fa9ea..406b35169 100644 --- a/AGENTS-CN.md +++ b/AGENTS-CN.md @@ -15,27 +15,25 @@ BitFun 是一个由 Rust workspace 与 React 前端组成的项目。 ## 分层模块索引 -依赖关系按自上而下读取:某一行代码只能依赖更下方的层级。可复用行为放到能够拥有它的最低层;入口、协议外观和交付形态选择留在对应的最高入口层。 +依赖关系按自上而下读取:上层只能依赖下层,同层 crate 也应保持最小依赖。 | # | 层级 | 路径 | 职责 | 模块 / 入口 | 层级文档 | |---|---|---|---|---|---| -| 1 | 产品入口与协议入口层 | `src/apps/*`, `src/web-ui`, `src/mobile-web`, `BitFun-Installer`, `tests/e2e`, `src/crates/surfaces` | UI、命令、路由、交付形态、宿主集成、协议入口和跨形态测试 | desktop、CLI、server、relay、Web UI、mobile web、installer、E2E、`acp` | 最近的本地 `AGENTS.md`;[surfaces](src/crates/surfaces/AGENTS.md) | -| 2 | 门面与产品组装层 | `src/crates/facade` | 兼容导出、product-full 组装、交付形态接线和 provider 注册 | `core` | [AGENTS.md](src/crates/facade/AGENTS.md) | -| 3 | 具体适配实现层 | `src/crates/integrations` | 低层外部协议、provider、transport 和平台 adapter | `ai-adapters`, `api-layer`, `transport`, `webdriver` | [AGENTS.md](src/crates/integrations/AGENTS.md) | -| 4 | 可复用服务与服务适配层 | `src/crates/services` | 具体非 UI 服务实现,以及窄产品领域 port adapter | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) | -| 5 | 产品策略与能力层 | `src/crates/product` | 产品领域、feature facts、capability packs、非 UI 产品策略和窄领域 port | `product-domains`, `product-capabilities` | [AGENTS.md](src/crates/product/AGENTS.md) | -| 6 | 执行原语层 | `src/crates/execution` | provider-neutral 的 agent、tool、harness、stream 和 typed-service 构件 | `agent-runtime`, `agent-stream`, `agent-tools`, `harness`, `runtime-services`, `tool-packs`, `tool-runtime` | [AGENTS.md](src/crates/execution/AGENTS.md) | -| 7 | 稳定契约层 | `src/crates/contracts` | 跨层共享 DTO、事件形状和 port | `core-types`, `events`, `runtime-ports` | [AGENTS.md](src/crates/contracts/AGENTS.md) | +| 1 | 接口与入口层 | `src/apps/*`, `src/web-ui`, `src/mobile-web`, `BitFun-Installer`, `tests/e2e`, `src/crates/interfaces` | 产品宿主、命令、UI 入口、协议接口和跨形态测试 | desktop、CLI、server、relay、Web UI、mobile web、installer、E2E、`acp` | 最近的本地 `AGENTS.md`;[interfaces](src/crates/interfaces/AGENTS.md) | +| 2 | 产品组装层 | `src/crates/assembly` | 兼容导出、产品能力选择、product-full 接线和 adapter/service 注册 | `core`, `product-capabilities` | [AGENTS.md](src/crates/assembly/AGENTS.md) | +| 3 | 适配层 | `src/crates/adapters` | AI/API/transport/WebDriver 协议 adapter 和外部 provider 转换 | `ai-adapters`, `api-layer`, `transport`, `webdriver` | [AGENTS.md](src/crates/adapters/AGENTS.md) | +| 4 | 服务实现层 | `src/crates/services` | 可复用 OS、filesystem、terminal、MCP、remote、git、watch、process 和 network 实现 | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) | +| 5 | 执行原语层 | `src/crates/execution` | 可移植 agent、harness、stream、typed-service、tool-contract、tool-group 和 tool-execution 构件 | `agent-runtime`, `agent-stream`, `tool-contracts`, `harness`, `runtime-services`, `tool-provider-groups`, `tool-execution` | [AGENTS.md](src/crates/execution/AGENTS.md) | +| 6 | 稳定契约与产品领域层 | `src/crates/contracts` | 跨层共享 DTO、事件形状、runtime port、产品领域契约和策略 | `core-types`, `events`, `runtime-ports`, `product-domains` | [AGENTS.md](src/crates/contracts/AGENTS.md) | 边界规则: -- 产品入口与协议入口只选择交付形态并调用 facade 或 adapter API;可复用行为应下移。 -- facade 只负责兼容和产品组装接线,不实现 provider、protocol、OS 或 service 细节。 -- 具体适配实现只翻译外部系统;依赖已组装产品行为的协议入口应放入 `surfaces`。 -- 通用 service 不依赖产品 crate;feature-gated service adapter 只能实现窄 `product-domains` port。 -- product 拥有产品策略和能力事实,不拥有 UI、protocol、host 或具体 service 实现。 -- execution 只放可移植执行构件,不等同于完整产品 runtime 或宿主 runtime。 -- contracts 只放轻行为契约,不得向上依赖。 +- 接口与入口层暴露选定产品行为;可复用行为应下移。 +- 组装层只接线下层并选择产品能力事实,不实现具体 adapter、OS 或 service 细节。 +- 适配层翻译协议和外部系统,不拥有产品能力选择或可复用 OS service 行为。 +- 服务实现层负责可复用的 OS、process、terminal、MCP、remote、git 和 filesystem 能力。 +- 执行原语层只放可移植运行时构件,不拥有宿主或交付形态。 +- 契约层保持轻行为,不得向上依赖。 ## 常用命令 @@ -169,7 +167,7 @@ await api.invoke('your_command', { request: { ... } }); | `core`、`transport`、`api-layer` 或共享服务中的 Rust 逻辑 | `cargo check --workspace`;行为变化时再加最近的 focused `cargo test` | | 桌面端集成、Tauri API、browser/computer-use 或桌面专属行为 | `cargo check -p bitfun-desktop`;行为变化时再加 focused desktop tests | | 被桌面端 smoke/functional 流覆盖的行为 | 优先运行最近的 focused E2E/smoke check;除非改动影响构建,否则 broad build/test 交给 CI | -| `src/crates/integrations/ai-adapters` | 运行上面相关 Rust 检查;只有 stream contract 改动时再加 `cargo test -p bitfun-agent-stream` | +| `src/crates/adapters/ai-adapters` | 运行上面相关 Rust 检查;只有 stream contract 改动时再加 `cargo test -p bitfun-agent-stream` | | 不涉及打包的安装器前端或 i18n runtime | `pnpm --dir BitFun-Installer run type-check` | | 安装器 Tauri/Rust 改动 | `cargo check --manifest-path BitFun-Installer/src-tauri/Cargo.toml` | | 安装器打包、payload、安装/卸载流程或 native bundling | `pnpm run installer:build` | diff --git a/AGENTS.md b/AGENTS.md index d70453a56..e6771c974 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,28 +15,25 @@ Repository rule: **keep product logic platform-agnostic, then expose it through ## Layered Module Index -Dependencies flow top to bottom: code in a row may depend only on lower rows. -Put reusable behavior in the lowest layer that can own it; put entrypoint and -profile selection in the highest layer that owns the surface. +Dependencies flow top to bottom. A layer may depend on lower layers only; keep +crate dependencies inside each layer to the smallest set needed. | # | Layer | Path | Owns | Modules / entries | Layer doc | |---|---|---|---|---|---| -| 1 | Product surfaces and protocol surfaces | `src/apps/*`, `src/web-ui`, `src/mobile-web`, `BitFun-Installer`, `tests/e2e`, `src/crates/surfaces` | UI, commands, routes, delivery profiles, host integration, protocol entrypoints, and cross-surface tests | desktop, CLI, server, relay, Web UI, mobile web, installer, E2E, `acp` | nearest local `AGENTS.md`; [surfaces](src/crates/surfaces/AGENTS.md) | -| 2 | Facade and product assembly | `src/crates/facade` | Compatibility exports, product-full assembly, delivery-profile wiring, and provider registration | `core` | [AGENTS.md](src/crates/facade/AGENTS.md) | -| 3 | Concrete provider adapters | `src/crates/integrations` | Low-level external protocol, provider, transport, and platform adapters | `ai-adapters`, `api-layer`, `transport`, `webdriver` | [AGENTS.md](src/crates/integrations/AGENTS.md) | -| 4 | Reusable services and service adapters | `src/crates/services` | Concrete non-UI services and narrow product-domain port adapters | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) | -| 5 | Product policy and capabilities | `src/crates/product` | Product domains, feature facts, capability packs, product-owned non-UI policy, and narrow domain ports | `product-domains`, `product-capabilities` | [AGENTS.md](src/crates/product/AGENTS.md) | -| 6 | Execution primitives | `src/crates/execution` | Provider-neutral agent, tool, harness, stream, and typed-service building blocks | `agent-runtime`, `agent-stream`, `agent-tools`, `harness`, `runtime-services`, `tool-packs`, `tool-runtime` | [AGENTS.md](src/crates/execution/AGENTS.md) | -| 7 | Stable contracts | `src/crates/contracts` | Shared DTOs, event shapes, and ports | `core-types`, `events`, `runtime-ports` | [AGENTS.md](src/crates/contracts/AGENTS.md) | +| 1 | Interfaces and entrypoints | `src/apps/*`, `src/web-ui`, `src/mobile-web`, `BitFun-Installer`, `tests/e2e`, `src/crates/interfaces` | Product hosts, commands, UI entrypoints, protocol interfaces, and cross-surface tests | desktop, CLI, server, relay, Web UI, mobile web, installer, E2E, `acp` | nearest local `AGENTS.md`; [interfaces](src/crates/interfaces/AGENTS.md) | +| 2 | Product assembly | `src/crates/assembly` | Compatibility exports, product capability selection, product-full wiring, and adapter/service registration | `core`, `product-capabilities` | [AGENTS.md](src/crates/assembly/AGENTS.md) | +| 3 | Adapters | `src/crates/adapters` | AI/API/transport/WebDriver protocol adapters and external-provider translation | `ai-adapters`, `api-layer`, `transport`, `webdriver` | [AGENTS.md](src/crates/adapters/AGENTS.md) | +| 4 | Services | `src/crates/services` | Reusable OS, filesystem, terminal, MCP, remote, git, watch, process, and network implementations | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) | +| 5 | Execution primitives | `src/crates/execution` | Portable agent, harness, stream, typed-service, tool-contract, tool-group, and tool-execution building blocks | `agent-runtime`, `agent-stream`, `tool-contracts`, `harness`, `runtime-services`, `tool-provider-groups`, `tool-execution` | [AGENTS.md](src/crates/execution/AGENTS.md) | +| 6 | Stable contracts and product domains | `src/crates/contracts` | Shared DTOs, event shapes, runtime ports, and product domain contracts/policies | `core-types`, `events`, `runtime-ports`, `product-domains` | [AGENTS.md](src/crates/contracts/AGENTS.md) | Boundary rules: -- Surfaces and protocol surfaces choose delivery profiles and call facade or adapter APIs; reusable behavior moves down. -- Facade wires lower layers for compatibility and product assembly; it must not implement provider, protocol, OS, or service details. -- Concrete provider adapters translate external systems; product-facing protocol entrypoints that depend on assembled product behavior belong in `surfaces`. -- Generic services stay product-independent; feature-gated service adapters may implement narrow `product-domains` ports. -- Product owns product policy and capability facts, not UI, protocol, host, or concrete service implementations. -- Execution primitives are portable building blocks, not the full product runtime or host-specific runtime. +- Interfaces and app entrypoints expose selected product behavior; reusable behavior moves down. +- Assembly wires lower layers and selects product capability facts; it must not implement concrete adapter, OS, or service details. +- Adapters translate protocols and external systems; they should not own product capability selection or reusable OS service behavior. +- Services implement reusable concrete OS, process, terminal, MCP, remote, git, and filesystem capabilities. +- Execution crates are portable runtime building blocks, not host-specific or delivery-profile owners. - Contracts stay behavior-light and must not depend upward. @@ -135,7 +132,7 @@ await api.invoke('your_command', { request: { ... } }); ### Platform boundaries - Do not call Tauri APIs directly from UI components; go through the adapter/infrastructure layer. -- Desktop-only integrations belong in `src/apps/desktop`, then flow back through transport/API layers. +- Desktop-only host adapters belong in `src/apps/desktop`, then flow back through transport/API layers. - In shared core, avoid host-specific APIs such as `tauri::AppHandle`; use shared abstractions such as `bitfun_events::EventEmitter`. ### Remote compatibility @@ -180,10 +177,10 @@ change directly affects build, packaging, or CI cannot protect the path. | Locale contract or shared terms | `pnpm run i18n:generate && pnpm run i18n:contract:test && pnpm run i18n:audit` | | Web UI i18n runtime, namespace loading, or direct `i18nService.t(...)` usage | `pnpm run i18n:contract:test && pnpm run type-check:web && pnpm --dir src/web-ui run test:run src/infrastructure/i18n/core/I18nService.test.ts` | | Mobile web UI, state, pairing, disconnect, or reconnect behavior | `pnpm --dir src/mobile-web run type-check`; include manual pairing / reconnect notes when behavior changes | -| Shared Rust logic in `core`, `transport`, `api-layer`, or services | `cargo check --workspace`, plus the nearest focused `cargo test` when behavior changed | +| Shared Rust logic in `core`, `transport`, `api-layer`, adapters, or services | `cargo check --workspace`, plus the nearest focused `cargo test` when behavior changed | | Desktop integration, Tauri APIs, browser/computer-use, or desktop-only behavior | `cargo check -p bitfun-desktop`, plus focused desktop tests when behavior changed | | Behavior covered by desktop smoke/functional flows | Prefer the nearest focused E2E/smoke check; rely on CI for broad build/test coverage unless build behavior changed | -| `src/crates/integrations/ai-adapters` | Relevant Rust checks above; add `cargo test -p bitfun-agent-stream` only when stream contracts changed | +| `src/crates/adapters/ai-adapters` | Relevant Rust checks above; add `cargo test -p bitfun-agent-stream` only when stream contracts changed | | Installer frontend or i18n runtime without packaging changes | `pnpm --dir BitFun-Installer run type-check` | | Installer Tauri/Rust changes | `cargo check --manifest-path BitFun-Installer/src-tauri/Cargo.toml` | | Installer packaging, payload, install/uninstall flow, or native bundling | `pnpm run installer:build` | diff --git a/BitFun-Installer/src-tauri/Cargo.toml b/BitFun-Installer/src-tauri/Cargo.toml index 2a6583550..68d633d9d 100644 --- a/BitFun-Installer/src-tauri/Cargo.toml +++ b/BitFun-Installer/src-tauri/Cargo.toml @@ -35,7 +35,7 @@ reqwest = { version = "0.12", default-features = false, features = ["json", "rus urlencoding = "2" futures = "0.3" eventsource-stream = "0.2" -bitfun-ai-adapters = { path = "../../src/crates/integrations/ai-adapters" } +bitfun-ai-adapters = { path = "../../src/crates/adapters/ai-adapters" } [target.'cfg(windows)'.dependencies] winreg = "0.52" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2c192b709..c4b6f80e0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -94,10 +94,10 @@ We welcome contributions beyond standard feature or bug-fix PRs. Examples includ | Contribution area | Location / files | Example | | --- | --- | --- | -| Prompts | `src/crates/facade/core/src/agentic/agents/prompts/` | Add or refine prompts, and update related logic as needed | -| Tools | `src/crates/facade/core/src/agentic/tools/implementations/`, `src/crates/facade/core/src/agentic/tools/registry.rs` | Add tool implementations and register them in the tool registry | -| Subagents | `src/crates/facade/core/src/agentic/agents/custom_subagents/`, `src/crates/facade/core/src/agentic/agents/registry.rs` | Add subagent implementations and register them in the subagent registry | -| Mode contributions | `src/crates/facade/core/src/agentic/agents/*_mode.rs`, `src/crates/facade/core/src/agentic/agents/prompts/*_mode.md`, `src/web-ui/src/locales/*/settings/modes.json` | Add/improve agent modes (e.g. Plan/Debug/Agentic or custom modes) and keep prompts + UI copy in sync | +| Prompts | `src/crates/assembly/core/src/agentic/agents/prompts/` | Add or refine prompts, and update related logic as needed | +| Tools | `src/crates/assembly/core/src/agentic/tools/implementations/`, `src/crates/assembly/core/src/agentic/tools/registry.rs` | Add tool implementations and register them in the tool registry | +| Subagents | `src/crates/assembly/core/src/agentic/agents/custom_subagents/`, `src/crates/assembly/core/src/agentic/agents/registry.rs` | Add subagent implementations and register them in the subagent registry | +| Mode contributions | `src/crates/assembly/core/src/agentic/agents/*_mode.rs`, `src/crates/assembly/core/src/agentic/agents/prompts/*_mode.md`, `src/web-ui/src/locales/*/settings/modes.json` | Add/improve agent modes (e.g. Plan/Debug/Agentic or custom modes) and keep prompts + UI copy in sync | | Scenario guides for Code Agent and AIIde | `website/src/docs/` | Add workflows, playbooks, and real-world scenario docs (or link them from `README.md`) | ### Before you start diff --git a/CONTRIBUTING_CN.md b/CONTRIBUTING_CN.md index 6035c744a..d0aea1c0d 100644 --- a/CONTRIBUTING_CN.md +++ b/CONTRIBUTING_CN.md @@ -86,10 +86,10 @@ DevTools;`Cmd/Ctrl + Shift + I` 切换 BitFun 元素检查器,`Cmd/Ctrl + Sh | 贡献方向 | 位置/文件 | 示例说明 | | --- | --- | --- | -| Prompts | `src/crates/facade/core/src/agentic/agents/prompts/` | 新增或优化提示词,并按需更新相关逻辑 | -| Tools | `src/crates/facade/core/src/agentic/tools/implementations/`、`src/crates/facade/core/src/agentic/tools/registry.rs` | 新增工具实现,并在工具注册表中注册 | -| Subagents | `src/crates/facade/core/src/agentic/agents/custom_subagents/`、`src/crates/facade/core/src/agentic/agents/registry.rs` | 新增子代理实现,并在子代理注册表中注册 | -| 模式贡献 | `src/crates/facade/core/src/agentic/agents/*_mode.rs`、`src/crates/facade/core/src/agentic/agents/prompts/*_mode.md`、`src/web-ui/src/locales/*/settings/modes.json` | 新增/优化 Agent 模式(例如 Plan/Debug/Agentic 或自定义模式)的逻辑与提示词,并同步前端模式文案 | +| Prompts | `src/crates/assembly/core/src/agentic/agents/prompts/` | 新增或优化提示词,并按需更新相关逻辑 | +| Tools | `src/crates/assembly/core/src/agentic/tools/implementations/`、`src/crates/assembly/core/src/agentic/tools/registry.rs` | 新增工具实现,并在工具注册表中注册 | +| Subagents | `src/crates/assembly/core/src/agentic/agents/custom_subagents/`、`src/crates/assembly/core/src/agentic/agents/registry.rs` | 新增子代理实现,并在子代理注册表中注册 | +| 模式贡献 | `src/crates/assembly/core/src/agentic/agents/*_mode.rs`、`src/crates/assembly/core/src/agentic/agents/prompts/*_mode.md`、`src/web-ui/src/locales/*/settings/modes.json` | 新增/优化 Agent 模式(例如 Plan/Debug/Agentic 或自定义模式)的逻辑与提示词,并同步前端模式文案 | | Code Agent 与 AIIde 场景指南 | `website/src/docs/` | 补充流程、playbook 与真实场景说明(或从 `README.md` 链接) | ### 开始前 diff --git a/Cargo.toml b/Cargo.toml index b651e07e7..7c2f06a82 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,24 +4,24 @@ members = [ "src/apps/desktop", "src/apps/server", "src/apps/relay-server", - "src/crates/surfaces/acp", - "src/crates/facade/core", - "src/crates/integrations/ai-adapters", - "src/crates/integrations/webdriver", - "src/crates/integrations/api-layer", - "src/crates/integrations/transport", + "src/crates/interfaces/acp", + "src/crates/assembly/core", + "src/crates/adapters/ai-adapters", + "src/crates/adapters/webdriver", + "src/crates/adapters/api-layer", + "src/crates/adapters/transport", "src/crates/services/services-core", "src/crates/services/services-integrations", "src/crates/services/terminal", - "src/crates/product/product-capabilities", - "src/crates/product/product-domains", + "src/crates/assembly/product-capabilities", + "src/crates/contracts/product-domains", "src/crates/execution/agent-runtime", "src/crates/execution/agent-stream", - "src/crates/execution/agent-tools", + "src/crates/execution/tool-contracts", "src/crates/execution/harness", "src/crates/execution/runtime-services", - "src/crates/execution/tool-packs", - "src/crates/execution/tool-runtime", + "src/crates/execution/tool-provider-groups", + "src/crates/execution/tool-execution", "src/crates/contracts/core-types", "src/crates/contracts/events", "src/crates/contracts/runtime-ports", diff --git a/MiniApp/Skills/miniapp-dev/SKILL.md b/MiniApp/Skills/miniapp-dev/SKILL.md index e0ef375be..385749305 100644 --- a/MiniApp/Skills/miniapp-dev/SKILL.md +++ b/MiniApp/Skills/miniapp-dev/SKILL.md @@ -1,6 +1,6 @@ --- name: miniapp-dev -description: Develops, maintains, and generates BitFun MiniApps (Zero-Dialect Runtime). Use when (1) working on miniapp framework code under src/crates/facade/core/src/miniapp/ or src/web-ui/src/app/scenes/miniapps/; or (2) generating / creating / designing a NEW MiniApp for the user — including any request like "做一个小应用 / 生成 MiniApp / 写个 BitFun 小工具 / 创建 mini app". Also triggers on MiniApp, miniapps, bridge, zero-dialect, InitMiniApp, app.fs / app.shell / app.storage, or any work under MiniApp/Demo/ and MiniApp/Skills/. +description: Develops, maintains, and generates BitFun MiniApps (Zero-Dialect Runtime). Use when (1) working on miniapp framework code under src/crates/assembly/core/src/miniapp/ or src/web-ui/src/app/scenes/miniapps/; or (2) generating / creating / designing a NEW MiniApp for the user — including any request like "做一个小应用 / 生成 MiniApp / 写个 BitFun 小工具 / 创建 mini app". Also triggers on MiniApp, miniapps, bridge, zero-dialect, InitMiniApp, app.fs / app.shell / app.storage, or any work under MiniApp/Demo/ and MiniApp/Skills/. --- # BitFun MiniApp V2 指南 @@ -18,7 +18,7 @@ description: Develops, maintains, and generates BitFun MiniApps (Zero-Dialect Ru ### 流程 1. **先问,再做**:用户的目标 / 受众 / 是否需要 node mode / 权限边界 / 是否需要 Tweaks 变体 / 是否多语言 / 是否有视觉参考——任何一项含糊就用 `AskUserQuestion` 问。**不要替用户决定**。 -2. **找设计上下文**:先读 `MiniApp/Demo/` 与 `src/crates/product/product-domains/src/miniapp/builtin/assets/` 中**最贴近形态**的内置应用,复刻它的视觉语言(间距 / 圆角 / 卡片密度 / motif)。**从零 mock 是最后选择**。 +2. **找设计上下文**:先读 `MiniApp/Demo/` 与 `src/crates/contracts/product-domains/src/miniapp/builtin/assets/` 中**最贴近形态**的内置应用,复刻它的视觉语言(间距 / 圆角 / 卡片密度 / motif)。**从零 mock 是最后选择**。 3. **声明设计系统**:`style.css` 顶部用注释钉住 palette / typography / radius / motif(参见 playbook §1.3 模板),后续全应用复用。 4. **占位先行 → 早预览**:第一版用占位文本 / 占位图框 / fixture 数据,先在 Toolbox 里跑给用户看,再迭代。 5. **验证**:light/dark × zh/en 共 4 套截图都过;过 playbook §8 的 QA Checklist。 @@ -64,7 +64,7 @@ MiniApp 使用 **标准 Web API + window.app**:UI 侧为 ESM 模块(`ui.js` ### Rust 后端 ``` -src/crates/facade/core/src/miniapp/ +src/crates/assembly/core/src/miniapp/ ├── types.rs # MiniAppSource (ui_js/worker_js/esm_dependencies/npm_dependencies), NodePermissions ├── manager.rs # CRUD + recompile() + resolve_policy_for_app() ├── storage.rs # ui.js, worker.js, package.json, esm_dependencies.json @@ -94,7 +94,7 @@ src/apps/desktop/src/api/miniapp_api.rs ### Agent 工具 ``` -src/crates/facade/core/src/agentic/tools/implementations/ +src/crates/assembly/core/src/agentic/tools/implementations/ └── miniapp_init_tool.rs # InitMiniApp — 唯一工具,创建骨架目录供 AI 用通用文件工具编辑 ``` @@ -358,16 +358,16 @@ MiniApp 框架在 V2 之后内置 i18n 支持,开发者**必须**为多语言 ## 内置小应用(builtin/assets/*)维护规范 -内置小应用通过 `src/crates/product/product-domains/src/miniapp/builtin.rs` 中的 `BUILTIN_APPS` 数组以 `include_str!` 方式打包进 Rust 二进制;首次启动 / 升级时由 `seed_builtin_miniapps()` 把资源写入用户的 `miniapps_dir//`,并在该目录下写入 `.builtin-manifest.json` 主标记文件,同时兼容写入 `.builtin-version` legacy 标记。 +内置小应用通过 `src/crates/contracts/product-domains/src/miniapp/builtin.rs` 中的 `BUILTIN_APPS` 数组以 `include_str!` 方式打包进 Rust 二进制;首次启动 / 升级时由 `seed_builtin_miniapps()` 把资源写入用户的 `miniapps_dir//`,并在该目录下写入 `.builtin-manifest.json` 主标记文件,同时兼容写入 `.builtin-version` legacy 标记。 **只有当 bundled `version` / asset hash 与 on-disk `.builtin-manifest.json` 不一致时才会重新 seed**,否则启动时会跳过、用户看到的还是旧版本。 ### 修改流程(强制) -凡是修改了 `src/crates/product/product-domains/src/miniapp/builtin/assets//` 下任何文件(`index.html` / `style.css` / `ui.js` / `worker.js` / `meta.json`),**都必须**同步在 `builtin.rs` 的 `BUILTIN_APPS` 中把对应条目的 `version: N` → `N + 1`。 +凡是修改了 `src/crates/contracts/product-domains/src/miniapp/builtin/assets//` 下任何文件(`index.html` / `style.css` / `ui.js` / `worker.js` / `meta.json`),**都必须**同步在 `builtin.rs` 的 `BUILTIN_APPS` 中把对应条目的 `version: N` → `N + 1`。 ```rust -// src/crates/product/product-domains/src/miniapp/builtin.rs +// src/crates/contracts/product-domains/src/miniapp/builtin.rs BuiltinApp { id: "builtin-daily-divination", version: 14, // ← 改完资源就把这里 +1 diff --git a/MiniApp/Skills/miniapp-dev/design-playbook.md b/MiniApp/Skills/miniapp-dev/design-playbook.md index 9ca6da3f9..f240fdc02 100644 --- a/MiniApp/Skills/miniapp-dev/design-playbook.md +++ b/MiniApp/Skills/miniapp-dev/design-playbook.md @@ -26,7 +26,7 @@ 按优先级取上下文: 1. 用户提供的截图 / 品牌资料 / 现成代码 -2. `MiniApp/Demo/` 与 `src/crates/product/product-domains/src/miniapp/builtin/assets/` 中**最贴近形态**的内置应用——直接 `ls` + `Read` 拿到它的 `style.css`、`index.html`,识别它的视觉语言(间距、圆角、卡片密度、配色) +2. `MiniApp/Demo/` 与 `src/crates/contracts/product-domains/src/miniapp/builtin/assets/` 中**最贴近形态**的内置应用——直接 `ls` + `Read` 拿到它的 `style.css`、`index.html`,识别它的视觉语言(间距、圆角、卡片密度、配色) 3. `--bitfun-*` 主题变量(见 SKILL.md 的"主题集成"章节)——所有颜色都优先 `var(--bitfun-xxx, fallback)` **从零生成是最后选择**——它直接导致千篇一律的"AI 味"产出。 @@ -247,9 +247,9 @@ 完整体现以上原则的内置/示例小应用: -- `src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/` — 工具型,单 motif("/"包裹的 pattern row),克制配色 -- `src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/` — 数据可视化,使用 worker,i18n 完整 -- `src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/` — 交互型,主题切换 + i18n + 持久化范例 +- `src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/` — 工具型,单 motif("/"包裹的 pattern row),克制配色 +- `src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/` — 数据可视化,使用 worker,i18n 完整 +- `src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/` — 交互型,主题切换 + i18n + 持久化范例 - `MiniApp/Demo/git-graph/` — 复杂应用拆模块的范例(`ui/components`, `ui/panels`, `ui/services`) - `MiniApp/Demo/icon-design-system/` — 设计系统型应用范例 diff --git a/README.md b/README.md index 9e1b6a5f4..7c8d080f5 100644 --- a/README.md +++ b/README.md @@ -159,13 +159,12 @@ For more details, see the [Contributing guide](./CONTRIBUTING.md). ## Project structure at a glance ``` -src/crates/contracts/ # Stable DTOs, events, and runtime ports -src/crates/execution/ # Agent, tool, harness, and runtime-service owners -src/crates/services/ # Shared local service and terminal infrastructure -src/crates/product/ # Product capability and domain owners -src/crates/integrations/ # Low-level AI, API, transport, and WebDriver adapters -src/crates/surfaces/ # Product-facing protocol surfaces such as ACP -src/crates/facade/core # Compatibility facade and product runtime assembly +src/crates/interfaces/ # Product protocol interfaces such as ACP +src/crates/assembly/ # Compatibility facade and product capability assembly +src/crates/adapters/ # AI, API, transport, and WebDriver adapters +src/crates/services/ # Reusable OS, terminal, MCP, remote, git, and filesystem services +src/crates/execution/ # Agent, harness, stream, typed-service, and tool primitives +src/crates/contracts/ # Stable DTOs, events, runtime ports, and product domains src/apps/desktop # Tauri desktop host src/apps/server # Web server runtime src/apps/cli # CLI runtime diff --git a/README.zh-CN.md b/README.zh-CN.md index 9eb256046..90f2228b2 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -163,13 +163,12 @@ pnpm run desktop:build ## 项目结构一览 ``` -src/crates/contracts/ # 稳定 DTO、事件与 runtime ports -src/crates/execution/ # Agent、tool、harness 与 runtime-service owners -src/crates/services/ # 共享本地服务与 terminal 基础设施 -src/crates/product/ # 产品能力与领域 owners -src/crates/integrations/ # 低层 AI、API、transport 与 WebDriver adapters -src/crates/surfaces/ # ACP 等面向产品的协议入口 -src/crates/facade/core # 兼容门面与完整产品 runtime 组装点 +src/crates/interfaces/ # ACP 等产品协议接口 +src/crates/assembly/ # 兼容门面与产品能力组装 +src/crates/adapters/ # AI、API、transport 与 WebDriver adapter +src/crates/services/ # OS、terminal、MCP、remote、git 与 filesystem service +src/crates/execution/ # Agent、harness、stream、typed-service 与 tool 原语 +src/crates/contracts/ # 稳定 DTO、事件、runtime ports 与产品领域契约 src/apps/desktop # Tauri 桌面宿主 src/apps/server # Web 服务端运行时 src/apps/cli # CLI 运行时 diff --git a/docs/architecture/agent-runtime-services-design.md b/docs/architecture/agent-runtime-services-design.md index 41f4d76f6..b1b6ff88a 100644 --- a/docs/architecture/agent-runtime-services-design.md +++ b/docs/architecture/agent-runtime-services-design.md @@ -7,8 +7,8 @@ - Agent Runtime SDK 可被 Desktop、CLI、Server、Remote、ACP 等产品形态嵌入。 - Runtime 不感知平台差异、工具实现差异和构建形态差异。 -- Tool 使用通用接口和 provider 注册,不绑定底层实现。 -- 具体 service 实现由上层 Product Assembly 注入。 +- Tool 使用通用接口和 provider group 注册,不绑定底层实现。 +- 具体 adapter 与 service 实现由上层 Product Assembly 注入。 - Harness 可扩展,新增 SDD 等工作流不侵入 runtime kernel。 - 每个 crate 只依赖最小稳定集合,依赖方向可检查。 @@ -19,8 +19,9 @@ bitfun-core-types bitfun-events bitfun-runtime-ports bitfun-runtime-services # typed service bundle / capability availability -bitfun-agent-tools -tool-runtime +tool-contracts # Cargo package: bitfun-agent-tools +tool-provider-groups # Cargo package: bitfun-tool-packs +tool-execution # Cargo package: tool-runtime bitfun-agent-runtime # agent kernel contracts and portable runtime decisions bitfun-harness # workflow descriptor / provider / registry contracts bitfun-services-core @@ -42,25 +43,25 @@ Product Assembly -> product capability packs -> bitfun-agent-runtime -> bitfun-harness - -> tool-runtime + -> tool-contracts / tool-provider-groups / tool-execution -> bitfun-runtime-services - -> 具体 service crates + -> adapters / services Product Capability packs -> bitfun-harness -> bitfun-agent-runtime - -> tool-runtime + -> tool-provider-groups -> bitfun-product-domains bitfun-agent-runtime -> bitfun-runtime-ports -> bitfun-events -> bitfun-agent-stream - -> tool-runtime + -> tool-contracts -> bitfun-runtime-services -tool-runtime - -> bitfun-agent-tools +tool-execution + -> tool-contracts -> bitfun-runtime-ports -> bitfun-events @@ -68,7 +69,7 @@ bitfun-runtime-services -> bitfun-runtime-ports -> bitfun-core-types / bitfun-events(仅当 service DTO 或 event contract 需要时引入) -具体 service crates +adapters / services -> bitfun-runtime-ports -> bitfun-core-types -> 允许的 third-party 依赖 @@ -78,8 +79,8 @@ bitfun-runtime-services 禁止依赖: - `bitfun-runtime-ports` -> `bitfun-core` -- `bitfun-agent-tools` -> 具体 service crate -- `tool-runtime` -> 具体 tool 实现 crate +- `tool-contracts` -> 具体 service crate +- `tool-execution` -> 产品 registry / permission policy / 具体 tool 实现 crate - `bitfun-agent-runtime` -> `bitfun-core` - `bitfun-agent-runtime` -> Tauri / CLI / ACP protocol / Web UI - `bitfun-harness` -> 具体 filesystem / Git / terminal manager @@ -366,33 +367,38 @@ impl AgentRuntime { - `Task.fork_context` 禁止字段、prompt cache clone、context seeding 不漂移。 - DeepResearch citation renumber post-turn hook 保持 deterministic。 -### 3.2 Tool Runtime +### 3.2 Tool Primitives 所属 crate: -- `bitfun-agent-tools` -- `tool-runtime` -- `bitfun-tool-packs` +- `tool-contracts`(Cargo package: `bitfun-agent-tools`) +- `tool-provider-groups`(Cargo package: `bitfun-tool-packs`) +- `tool-execution`(Cargo package: `tool-runtime`) 目标职责: -- `bitfun-agent-tools`:tool DTO、manifest、exposure、schema、path policy、result policy。 -- `tool-runtime`:provider registry、permission gate、execution pipeline、hook。 -- `bitfun-tool-packs`:tool pack feature metadata 和 provider plan。 +- `tool-contracts`:tool DTO、manifest、exposure、schema、path policy、result policy、admission gate 和 provider-neutral registry assembly。 +- `tool-provider-groups`:tool provider group feature metadata 和 provider plan。 +- `tool-execution`:低层 file/search/tool IO helper,不拥有产品 registry、permission policy 或 agent-facing tool surface。 -建议 `tool-runtime` 模块: +建议模块: ```text -tool-runtime - runtime.rs - registry.rs - provider.rs - context.rs - permission.rs - execution.rs - hooks.rs - result.rs - catalog.rs +tool-contracts + framework.rs + restrictions.rs + file_guidance.rs + tool_result_storage.rs + tool_execution_presentation.rs + +tool-provider-groups + provider_groups.rs + +tool-execution + filesystem.rs + search.rs + remote.rs + result_window.rs ``` 核心接口: @@ -442,11 +448,11 @@ pub struct ToolExecutionContext { - `ToolExecutionContext` 不暴露具体 manager。 - `ToolContextFacts` 只包含 portable facts。 -- Tool Runtime 只消费 `ToolExecutionServices` 这样的窄 service 视图,不依赖完整 +- Tool primitives 只消费 `ToolExecutionServices` 这样的窄 service 视图,不依赖完整 `RuntimeServices` bundle。 -- path policy、runtime artifact ref、remote POSIX containment 由 `bitfun-agent-tools` 承载。 +- path policy、runtime artifact ref、remote POSIX containment 由 `tool-contracts` 承载。 - MCP tool 作为 external tool provider 注入,不内置在 Agent Runtime SDK。 -- `GetToolSpec` 是 tool runtime/catalog 能力,不是产品 UI。 +- `GetToolSpec` 是 tool catalog 能力,不是产品 UI。 必须保护: @@ -534,14 +540,14 @@ Product Assembly crate。 职责: -- 创建具体 service 实现。 +- 创建或接收具体 adapter / service 实现。 - 构建 `RuntimeServices`。 -- 注册 tool providers。 +- 注册 tool provider groups。 - 注册 harness providers。 - 注册 agent definitions、subagents、skills、prompt modules。 - 建立产品 feature matrix。 -- 把 surface 命令映射到 capability / harness / runtime request。 -- 根据交付形态选择 `DeliveryProfile`、`CapabilitySet` 和 service provider 集合。 +- 把 interface 命令映射到 capability / harness / runtime request。 +- 根据交付形态选择 `DeliveryProfile`、`CapabilitySet`、adapter 和 service provider 集合。 - 对不支持能力返回 typed unsupported / unavailable 错误,而不是让下层 runtime 判断产品形态。 建议模块: @@ -898,7 +904,7 @@ Product 测试: - `bitfun-agent-runtime` 能在不依赖 `bitfun-core` 的情况下构建 runtime kernel。 - `bitfun-runtime-services` 提供 typed service injection,并由 boundary check 保护。 -- `tool-runtime` 承担 provider registry 和 execution pipeline,具体 tool 通过 provider 注入。 +- `tool-contracts`、`tool-provider-groups` 和 `tool-execution` 分别承担 tool contract、provider group plan 和低层 execution helper;具体 tool 通过 Product Assembly 注册。 - `bitfun-harness` 支持工作流 provider 扩展。 - `bitfun-core` 只作为兼容 facade / product-full assembly。 - 所有产品形态通过 Product Assembly 显式启用能力。 diff --git a/docs/architecture/cache-friendly-message-structure.md b/docs/architecture/cache-friendly-message-structure.md index 7459c66d9..5188f5650 100644 --- a/docs/architecture/cache-friendly-message-structure.md +++ b/docs/architecture/cache-friendly-message-structure.md @@ -4,7 +4,7 @@ This note explains the cache-friendly request shape BitFun tries to preserve for long-running agent sessions, where each layer is stored, and which kinds of changes tend to preserve or break provider-side prefix cache reuse. -The implementation is mostly in `src/crates/facade/core/src/agentic/`. +The implementation is mostly in `src/crates/assembly/core/src/agentic/`. ## Request Shape @@ -30,11 +30,11 @@ Two details matter here: Relevant code: - request assembly: - `src/crates/facade/core/src/agentic/execution/execution_engine.rs` + `src/crates/assembly/core/src/agentic/execution/execution_engine.rs` - prepended reminder ordering: `src/crates/execution/agent-runtime/src/prompt.rs` - tool manifest resolution: - `src/crates/facade/core/src/agentic/tools/manifest_resolver.rs` + `src/crates/assembly/core/src/agentic/tools/manifest_resolver.rs` In practice the model-visible layout looks like this: @@ -91,9 +91,9 @@ Relevant code: - cache model: `src/crates/execution/agent-runtime/src/prompt_cache.rs` - cache lifecycle: - `src/crates/facade/core/src/agentic/session/session_manager.rs` + `src/crates/assembly/core/src/agentic/session/session_manager.rs` -The old core path `src/crates/facade/core/src/agentic/session/prompt_cache.rs` is now +The old core path `src/crates/assembly/core/src/agentic/session/prompt_cache.rs` is now a compatibility facade that re-exports the owner types from `bitfun-agent-runtime`. ### 2. Tool definitions @@ -206,11 +206,11 @@ Special rewrite path: Relevant code: - snapshot model and diffing: - `src/crates/facade/core/src/agentic/skill_agent_snapshot.rs` + `src/crates/assembly/core/src/agentic/skill_agent_snapshot.rs` - sparse snapshot store: - `src/crates/facade/core/src/agentic/session/turn_skill_agent_snapshot_store.rs` + `src/crates/assembly/core/src/agentic/session/turn_skill_agent_snapshot_store.rs` - baseline rebuild and cleanup: - `src/crates/facade/core/src/agentic/session/session_manager.rs` + `src/crates/assembly/core/src/agentic/session/session_manager.rs` ### 5. User context @@ -313,14 +313,14 @@ If you intentionally need to reset or rewrite the prefix: ## Implementation Map - request assembly: - `src/crates/facade/core/src/agentic/execution/execution_engine.rs` + `src/crates/assembly/core/src/agentic/execution/execution_engine.rs` - reminder ordering and prompt builder helpers: `src/crates/execution/agent-runtime/src/prompt.rs` - prompt cache model: `src/crates/execution/agent-runtime/src/prompt_cache.rs` - prompt cache lifecycle and listing baseline rebuild: - `src/crates/facade/core/src/agentic/session/session_manager.rs` + `src/crates/assembly/core/src/agentic/session/session_manager.rs` - listing snapshots and diffs: - `src/crates/facade/core/src/agentic/skill_agent_snapshot.rs` + `src/crates/assembly/core/src/agentic/skill_agent_snapshot.rs` - session persistence paths: - `src/crates/facade/core/src/agentic/persistence/manager.rs` + `src/crates/assembly/core/src/agentic/persistence/manager.rs` diff --git a/docs/architecture/core-decomposition.md b/docs/architecture/core-decomposition.md index 1b2dac965..bcc67d315 100644 --- a/docs/architecture/core-decomposition.md +++ b/docs/architecture/core-decomposition.md @@ -19,16 +19,16 @@ adapter。这个形态在功能上可运行,但会让 runtime 拆解持续面 目标形态不是在 `bitfun-core` 内继续扩张完整 `AgentRuntime`,而是形成可独立嵌入的 Agent Runtime SDK。稳定契约定义上层可依赖的接口,Product Assembly 负责注册具体实现, -Runtime Services、Tool Runtime 和 Harness Layer 分别隔离 service、tool、工作流和产品形态差异。 +Runtime Services、Tool primitives 和 Harness Layer 分别隔离 service、tool、工作流和产品形态差异。 目标状态必须保持产品行为、默认能力集合、权限语义、工具曝光、事件语义和 release 构建形态等价。 ## 2. 架构原则 - 依赖只能从产品入口 / 产品组装流向产品能力、具体适配、服务和执行原语,再流向稳定契约;下层不得感知上层产品形态。 -- 接口和实现必须分开:接口属于稳定契约、Runtime Services、Tool Runtime 或 Harness contract; - 具体实现属于 Product Assembly 或具体适配实现。 -- Product Surface 可以有差异,capability contract 必须收敛。不同产品入口可以选择不同能力集合, +- 接口和实现必须分开:接口属于稳定契约、Runtime Services、Tool primitives 或 Harness contract; + 具体实现属于 Product Assembly 的注册边界、Adapters 或 Services。 +- Product interface 可以有差异,capability contract 必须收敛。不同产品入口可以选择不同能力集合, 但不能通过下沉 UI、命令或协议逻辑来换取复用。 - `bitfun-core` 保留兼容 facade 和 `product-full` 组装边界;新 owner crate 不得依赖回 `bitfun-core`。 @@ -52,8 +52,8 @@ flowchart TB Ports["bitfun-runtime-ports
trait-only runtime 边界"] Stream["bitfun-agent-stream
stream 聚合"] AgentTools["bitfun-agent-tools
tool contract 与纯策略"] - ToolRuntime["tool-runtime
既有 tool runtime crate"] - ToolPacks["bitfun-tool-packs
feature group / provider plan"] + ToolRuntime["tool-execution
tool-runtime package / 低层 helper"] + ToolPacks["tool-provider-groups
bitfun-tool-packs package / provider plan"] ServicesCore["bitfun-services-core
基础 service helper / filesystem facade"] ServicesIntegrations["bitfun-services-integrations
MCP / Git / Remote helper owner"] ProductDomains["bitfun-product-domains
MiniApp / function-agent 纯 domain"] @@ -90,12 +90,12 @@ flowchart TB |---|---|---| | `bitfun-core` | 兼容 facade、agent runtime、tool runtime 组装、service 接线和完整产品能力集合 | 仍是事实上的 runtime owner,拆解必须先保护行为等价 | | `bitfun-runtime-ports` | 面向 runtime/service 边界的 DTO 和 trait | 只定义 contract,不拥有 runtime 实现 | -| `bitfun-agent-tools` | provider-neutral tool DTO、manifest、path/result policy、catalog contract 和 deterministic execution admission gate | 适合承接纯 tool runtime 策略,但不应拥有具体 IO tool | -| `tool-runtime` | 既有工具执行相关 crate | 目标是继续收敛 provider registry、permission gate 和 execution pipeline | +| `tool-contracts` / `bitfun-agent-tools` | provider-neutral tool DTO、manifest、path/result policy、catalog contract 和 deterministic execution admission gate | 适合承接纯 tool contract 策略,但不应拥有具体 IO tool | +| `tool-execution` / `tool-runtime` | 既有低层工具执行 helper crate | 目标是只承接低层 file/search/tool execution helper,不拥有产品 registry 或 permission policy | | `bitfun-services-core` | 基础 service helper、本地 filesystem facade、部分通用 service 逻辑 | 适合作为本地基础 service owner,但不能吸收产品 runtime 语义 | -| `bitfun-services-integrations` | MCP、Git、remote-connect、remote-SSH 等 integration helper | 适合拥有外部协议和重依赖 adapter,不应反向感知产品 surface | +| `bitfun-services-integrations` | MCP、Git、remote-connect、remote-SSH 等 integration helper | 适合拥有外部协议和重依赖 service implementation,不应反向感知产品 interface | | `bitfun-product-domains` | MiniApp、function-agent 等纯状态、策略、port 和部分决策逻辑 | 适合承接 pure domain,不应直接执行 filesystem/Git/AI concrete call | -| `bitfun-acp` | ACP protocol surface 和 client behavior | 应保持产品协议入口,不下沉到 Agent Runtime SDK | +| `bitfun-acp` | ACP protocol interface 和 client behavior | 应保持产品协议入口,不下沉到 Agent Runtime | | `transport` / `api-layer` | surface 到 runtime 的 API/transport adapter | 应保持传输层,不拥有 runtime owner | ## 4. 初始状态主要问题 @@ -121,8 +121,8 @@ Desktop、CLI、Server、Remote、ACP 和 Web 的入口差异较大,但初始 provider-neutral manifest、path policy、result policy、`ToolUseContext` runtime handle、collapsed unlock lifecycle、runtime artifact persistence 和 product registry materialization 在初始状态下与 concrete tool -execution 交织在 core 及其兼容路径中。目标状态下,Tool Runtime 应拥有 provider-neutral manifest / -catalog / permission / result / artifact contract,core 或具体 integration 只保留实际 IO tool adapter、 +execution 交织在 core 及其兼容路径中。目标状态下,tool contracts 应拥有 provider-neutral manifest / +catalog / permission / result / artifact contract,core、services 或 adapter 只保留实际 IO tool adapter、 state update、旧路径 facade 和有等价保护的拆解边界。工具 owner 拆解如果没有快照保护,容易改变 prompt-visible manifest、`GetToolSpec`、MCP/ACP catalog 或 oversized result 行为。 @@ -130,7 +130,7 @@ prompt-visible manifest、`GetToolSpec`、MCP/ACP catalog 或 oversized result MCP 和 ACP 是外部协议/能力接入,不应变成 Agent Runtime SDK 的内部协议依赖。Runtime kernel 只应看见 external capability、tool provider 或 service port;连接生命周期、鉴权、transport 和 timeout 策略应由 -integration owner 或 Product Assembly 管理。 +Adapters、Services 或 Product Assembly 管理。 ### 4.6 扩展点缺少统一语义 @@ -182,180 +182,135 @@ agents 分为 primary agents 和 subagents,可配置 prompt、model 与 tool a ## 6. 目标逻辑视图 -目标架构以层级为入口描述系统。每层只暴露本层 contract,具体 provider 或 adapter 由产品组装接入。 +目标架构以六个物理 owner 分区表达依赖方向。`interfaces` 只承载协议和宿主入口;`assembly` 负责产品能力选择与注册;`adapters` 负责协议、transport 和外部 provider 转换;`services` 负责本地系统与 runtime infrastructure 的可复用具体实现;`execution` 只放可移植执行原语;`contracts` 提供稳定事实、port 和产品领域规则。这样可以同时区分“协议适配”和“服务实现”,也避免把 execution 误解为完整运行时实现层。 ```mermaid flowchart TB - Surface["产品入口(Product Surfaces)
UI / command / protocol / route"] - Assembly["产品组装层(Product Assembly)
capability selection / provider registration"] - Capabilities["产品能力层(Product Capabilities)
feature-level capability packs"] - Harness["工作流编排层(Harness Layer)
workflow orchestration"] - AgentRuntime["Agent 运行时 SDK(Agent Runtime SDK)
session / turn / scheduler / prompt / subagent"] - ToolRuntime["工具运行时(Tool Runtime)
manifest / permission / execution / catalog"] - RuntimeServices["运行时服务层(Runtime Services)
typed service bundle / capability availability"] - Integrations["具体适配实现(Concrete Providers)
Tool / OS / Remote / Protocol providers"] - Contracts["稳定契约层(Stable Contracts)
DTO / event / permission / artifact / port"] - External["外部系统(External Systems)
OS / Git / MCP server / ACP client / AI provider"] - - Surface --> Assembly - Assembly --> Capabilities - Assembly --> AgentRuntime - Assembly --> ToolRuntime - Assembly --> RuntimeServices - Assembly --> Integrations - Capabilities --> Harness - Capabilities --> AgentRuntime - Capabilities --> ToolRuntime - Harness --> AgentRuntime - Harness --> ToolRuntime - Harness --> RuntimeServices - AgentRuntime --> ToolRuntime - AgentRuntime --> RuntimeServices - ToolRuntime --> Contracts - RuntimeServices --> Contracts - Integrations --> Contracts - Integrations --> External + Interfaces["接口与入口层(Interfaces and Entrypoints)
UI / command / protocol interface / delivery profile"] + Assembly["产品组装层(Product Assembly)
compatibility facade / capability selection / adapter and service registration"] + Adapters["适配层(Adapters)
AI / API / transport / WebDriver / external provider translation"] + Services["服务实现层(Services)
filesystem / git / terminal / MCP / remote / process / OS integration"] + Execution["执行原语层(Execution Primitives)
agent / harness / stream / typed-service / tool primitives"] + Contracts["稳定契约与产品领域层(Stable Contracts and Product Domains)
DTO / event / runtime port / product domain policy"] + External["外部系统(External Systems)
OS / Git / MCP server / ACP client / AI provider / remote host"] + + Interfaces --> Assembly + Interfaces --> Adapters + Assembly --> Adapters + Assembly --> Services + Assembly --> Execution + Assembly --> Contracts + Adapters --> Services + Adapters --> Execution + Adapters --> Contracts + Services --> Execution + Services --> Contracts + Execution --> Contracts + Adapters --> External + Services --> External ``` +依赖方向只允许从上到下。接口与入口层暴露产品形态;组装层选择能力集合并注册 adapter/service;适配层翻译协议和外部 provider;服务实现层接触 OS、process、filesystem、git、terminal、MCP 和 remote;执行原语层提供可复用 runtime building blocks;契约层提供稳定事实、port 和产品领域规则。任何下层 crate 反向读取产品入口、组装配置或 host state 都视为边界违规。 + ## 7. 目标层级 -目标层级以职责边界为入口。每层可以由多个 crate 承载,关键判断标准是依赖方向、接口归属和实现归属是否清楚。 +目标层级以物理 owner 分区为入口。每个分区可以包含多个 crate,但 crate 内部职责必须能够通过依赖、测试和边界脚本独立验证。 -### 7.1 产品入口(Product Surfaces) +### 7.1 接口与入口层(Interfaces and Entrypoints) -产品入口(Product Surfaces)是用户、协议或外部系统进入 BitFun 的入口,负责展示、路由、协议适配和命令外观。 -它不拥有共享 runtime 行为,只把请求转换为 capability、runtime request 或 transport DTO。 -对应范围是 `src/apps/*`、`src/web-ui` 和 `src/mobile-web`,这些入口可以有形态差异,但差异不能下沉到 runtime。 +接口与入口层是用户、协议或外部系统进入 BitFun 的入口,负责 UI、命令、路由、协议接口、交付形态选择和 host integration。对应范围包括 `src/apps/*`、`src/web-ui`、`src/mobile-web`、`BitFun-Installer`、`tests/e2e` 和 `src/crates/interfaces`。入口层可以选择 `DeliveryProfile` 并调用 assembly 或 adapter API,但不拥有共享 runtime 行为。 ### 7.2 产品组装层(Product Assembly) -产品组装层(Product Assembly)是唯一的组装入口,负责选择产品能力、tool pack、harness pack、agent definition、 -command provider 和 service provider,并把具体实现注册到稳定接口。初始状态可由 `bitfun-core` -facade 或产品入口承载组装职责;目标状态应收敛为独立 assembly crate 或清晰的 facade 模块。 - -### 7.3 产品能力层(Product Capabilities) - -产品能力层(Product Capabilities)描述 Code Agent、Deep Review、DeepResearch、MiniApp、Remote Control、MCP App、 -Computer Use 等能力的组合边界。它负责定义一个产品能力需要哪些 agent、tool、harness、domain policy -和 service capability,不负责 UI,也不直接执行 IO。初始状态下相关逻辑主要落在 `bitfun-product-domains` 和 -`bitfun-core` 的能力组装代码中;目标状态下应收敛为 capability pack 和 domain policy。 - -### 7.4 工作流编排层(Harness Layer) +产品组装层负责兼容导出、完整产品能力选择、feature group 到 capability set 的映射、adapter/service 注册和 product-full 接线。物理位置是 `src/crates/assembly`,当前包含 `bitfun-core` 兼容门面和 `bitfun-product-capabilities` 能力模型。`product-capabilities` 只描述 capability id、tool group、service requirement 和 harness selection,不执行 IO,也不承载产品领域状态机。 -工作流编排层(Harness Layer)承载多步骤工作流和策略编排,例如 SDD、Deep Review、DeepResearch、MiniApp 生成或更新流程。 -它可以调用 Agent Runtime SDK、Tool Runtime 和 Runtime Services,但不拥有 session manager 内部状态、 -具体 filesystem/Git/terminal manager 或产品 UI。`bitfun-harness` 目标上承接 workflow descriptor、route -plan 和 provider registry contract;descriptor-only / legacy-facade provider 只能表达 route,不代表 -目标状态已经具备 concrete workflow execution owner。 +### 7.3 适配层(Adapters) -### 7.5 Agent 运行时 SDK(Agent Runtime SDK) +适配层负责协议、transport、外部 provider 和宿主通信转换,物理位置是 `src/crates/adapters`。其中 `ai-adapters` 负责 AI provider 请求/响应与 stream 协议,`api-layer` 负责产品宿主共用的后端 API adapter,`transport` 负责事件投递和 host transport adapter,`webdriver` 负责 WebDriver 协议和浏览器自动化 adapter。适配层不拥有产品能力选择,也不承载可复用 OS service 实现。 -Agent 运行时 SDK(Agent Runtime SDK)是可嵌入的 agent kernel,负责 session、turn、scheduler、prompt loop、subagent、 -background task、permission coordination 和 runtime events。它只依赖稳定契约、tool runtime 和注入的 -service ports,不感知 Desktop、CLI、Remote、ACP、Tauri 或 Web UI。`bitfun-agent-runtime` 目标上承接 -agent kernel 的稳定事实、纯决策和运行时 contract;concrete scheduler lifecycle、session manager、 -concrete prompt assembly、concrete agent definition loading、custom subagent file IO / config adapter、 -metadata store、token subscriber、scheduler delivery adapter、product `Tool` handler、event delivery 和 -post-turn hook 在行为等价未证明前不得下沉。 +### 7.4 服务实现层(Services) -### 7.6 工具运行时(Tool Runtime) +服务实现层负责接触本地系统和 runtime infrastructure 的可复用具体实现,物理位置是 `src/crates/services`。其中 `services-core` 承载轻量 service primitive,`services-integrations` 承载 MCP、Git、remote、file watch 和产品领域 port 的具体实现,`terminal` 承载 PTY、shell integration 和 terminal session infrastructure。服务实现层可以实现 `contracts`、`execution` 或 `product-domains` 定义的 port,但不选择产品 profile,也不直接暴露 UI/协议入口。 -工具运行时(Tool Runtime)负责工具 manifest、catalog、permission gate、execution pipeline、tool hook 和结果归一化。 -它只消费 `ToolExecutionServices` 这类窄 service 视图,不直接创建 filesystem、Git、terminal、MCP 等具体实现。 -初始状态相关 crate 包括 `tool-runtime`、`bitfun-agent-tools`、`bitfun-tool-packs` 以及 `bitfun-core` -中的 tool materialization 代码。Tool Runtime 目标上承接 provider-neutral manifest、catalog、permission -gate、execution admission、result presentation、artifact policy 和 `GetToolSpec` catalog / detail contract。 -core 可以保留 concrete tool adapter、state update、registry lookup、input validation、confirmation、 -actual execution、hook 和旧路径 facade;目标状态要求只有在等价测试保护下才能移动这些行为。 +### 7.5 执行原语层(Execution Primitives) -### 7.7 运行时服务层(Runtime Services) +执行原语层提供 provider-neutral 的 runtime building blocks,物理位置是 `src/crates/execution`。`agent-runtime`、`agent-stream`、`harness`、`runtime-services`、`tool-contracts`、`tool-provider-groups` 和 `tool-execution` 分别定义 agent loop facts、stream normalization、workflow descriptor、typed service bundle、tool manifest / permission / result policy、tool group facts 和低层 tool execution helper。当前 Cargo package / lib 名保持兼容,但物理目录按职责命名。它们只能依赖稳定契约或明确的 provider-neutral DTO,不直接创建 Tauri handle、filesystem manager、Git provider、MCP client、AI client 或 host process。 -运行时服务层(Runtime Services)是 runtime 可消费的 typed service bundle 和 capability availability 层。它提供 -filesystem、workspace、session store、Git、terminal、network、MCP catalog、remote connection / projection -等端口,不执行产品命令, -不作为无类型 service locator,也不创建平台实现。初始状态相关 crate 包括 `bitfun-runtime-ports`、 -`bitfun-runtime-services`、`bitfun-services-core`、`bitfun-services-integrations` 和 `bitfun-core` 中的 service 接线代码。 -workspace file/shell、remote connection / projection、session store、Git、terminal、network 和 MCP catalog -等接口应以 stable port 表达;初始状态可保留旧路径 facade 和 concrete adapter,目标状态应由 typed service bundle -消费这些端口。 +### 7.6 稳定契约与产品领域层(Stable Contracts and Product Domains) -### 7.8 具体适配实现(Concrete Providers) +稳定契约与产品领域层是最低层,物理位置是 `src/crates/contracts`。它包含 `core-types`、`events`、`runtime-ports` 和 `product-domains`。`product-domains` 是 Product Domain Model,负责 MiniApp、function-agent 等领域 DTO、纯策略、状态规则和窄 port;具体 Git、filesystem、AI 或 worker execution 实现在 services、adapters 或 assembly/core 的兼容路径中,不得回流到 contracts。 -具体适配实现拥有外部系统连接和重依赖,但它不是一个混合大筐,需要按实现类型保持边界: -Tool 实现器负责具体 tool provider 和 tool pack;OS 实现器负责 filesystem、terminal、process、network、 -environment 等平台能力;协议实现器负责 MCP、AI provider、Git 等低层外部协议;ACP 这类依赖产品组装的协议入口属于 Product Surfaces / Protocol Surfaces;Remote 实现器负责 remote -connection、remote workspace projection 和 remote host capability。 +### 7.7 扩展点归属 -Remote 不应作为 Agent Runtime SDK 的内部能力,也不应只按 Desktop/CLI 入口区分。它的稳定接口应拆为 -remote connection、remote workspace、remote filesystem/terminal projection、remote capability facts 等 port; -SSH、relay、本地隧道、远端 OS 差异和认证方式属于具体 Remote provider,由 Product Assembly 按产品形态注册。 -初始状态相关 crate 包括 `bitfun-services-*`、`bitfun-ai-adapters`、`terminal-core` 和 app adapters;`bitfun-acp` 属于产品协议入口。 - -### 7.9 稳定契约层(Stable Contracts) - -稳定契约层提供跨层共享的数据结构和接口语言,包括 DTO、event、permission facts、artifact refs、identity -和 port traits。它只描述事实和能力,不包含 IO、网络、进程、UI、runtime manager 或产品策略。初始状态相关 -crate 包括 `bitfun-core-types`、`bitfun-events` 和 `bitfun-runtime-ports`。 -remote workspace facts、remote session metadata、remote workspace file projection DTO 和 remote workspace/projection -host trait 应归入稳定契约;integration crate 可保留旧路径 re-export 以维持兼容。 +- AI、API、transport 和 WebDriver 的协议转换属于 Adapters。 +- MCP、terminal、filesystem、git、remote 和 file watch 的可复用具体实现属于 Services。 +- Tool manifest、permission、execution admission、result / artifact policy 属于 Execution Primitives 的 `tool-contracts`。 +- Tool provider group facts 属于 Execution Primitives 的 `tool-provider-groups`;低层 filesystem/search helper 属于 `tool-execution`。 +- Agent、subagent、prompt module、scheduler、session / turn facts 和 hook routing 属于 Execution Primitives。 +- Harness workflow descriptor 和 route plan 属于 Execution Primitives;具体工作流 IO 留在 Services、Adapters 或兼容路径,直到有等价保护后再迁移。 +- Capability pack、delivery profile、adapter/service selection 和 product-full assembly 属于 Product Assembly。 +- 产品领域状态、规则、port 和 domain policy 属于 Stable Contracts and Product Domains。 ## 8. 接口与实现关系 -接口由稳定契约、Runtime Services、Tool Runtime 或 Harness contract 定义;具体实现由产品入口或具体适配实现创建; -注册动作只能发生在 Product Assembly。Agent Runtime SDK、Tool Runtime 和 Harness 只接收已经组装好的接口或 -provider registry,不直接创建平台实现。 +接口由稳定契约、Runtime Services、Tool Contracts 或 Harness contract 定义;具体实现由 adapter、service 或产品入口创建;注册动作只能发生在 Product Assembly。Agent Runtime、tool contracts、tool execution 和 Harness 只接收已经组装好的接口或 provider registry,不直接创建平台实现。 ```mermaid flowchart TB - Surface["产品入口(Product Surfaces)
选择入口和 DeliveryProfile"] + Interface["接口与入口层(Interfaces and Entrypoints)
选择入口和 DeliveryProfile"] Assembly["产品组装层(Product Assembly)
唯一注册点"] ServiceBuilder["运行时服务层(Runtime Services)
RuntimeServicesBuilder"] - ToolBuilder["工具运行时(Tool Runtime)
ToolRuntimeBuilder"] + ToolBuilder["工具执行原语(Tool Primitives)
tool contracts / groups / execution"] HarnessBuilder["工作流编排层(Harness Layer)
HarnessRegistryBuilder"] - AgentRegistry["Agent 运行时 SDK(Agent Runtime SDK)
AgentDefinitionRegistry"] - CommandRegistry["产品入口 / 产品组装层
ProductCommandRegistry"] - Runtime["Agent Runtime SDK / Tool Runtime / Harness
只消费接口"] - Impl["具体适配实现(Concrete Providers)
Tool / OS / Remote / Protocol providers"] - Contracts["稳定契约层(Stable Contracts)
DTO / event / port trait"] - - Surface --> Assembly + AgentRegistry["Agent 执行原语(Agent Runtime)
AgentDefinitionRegistry"] + CommandRegistry["接口 / 产品组装层
ProductCommandRegistry"] + Runtime["Agent / Tool / Harness primitives
只消费接口"] + Adapters["适配层(Adapters)
AI / API / transport / WebDriver adapters"] + Services["服务实现层(Services)
OS / filesystem / Git / terminal / MCP / remote services"] + Contracts["稳定契约与产品领域层(Stable Contracts and Product Domains)
DTO / event / port trait"] + + Interface --> Assembly Assembly --> ServiceBuilder Assembly --> ToolBuilder Assembly --> HarnessBuilder Assembly --> AgentRegistry Assembly --> CommandRegistry - Assembly --> Impl + Assembly --> Adapters + Assembly --> Services ServiceBuilder --> Runtime ToolBuilder --> Runtime HarnessBuilder --> Runtime AgentRegistry --> Runtime - CommandRegistry --> Surface + CommandRegistry --> Interface Runtime --> Contracts - Impl --> Contracts + Adapters --> Contracts + Services --> Contracts + Adapters --> Services ``` 注册器与前文目标层级的对应关系如下: | 注册器 / 组装点 | 所属目标层级 | 初始承载与目标承载 | 注册内容 | |---|---|---|---| -| `ProductAssembler` / `ProductAssemblyPlan` | 产品组装层(Product Assembly) | 初始可在 `bitfun-core` facade 或产品入口;目标可收敛为 assembly owner | `DeliveryProfile`、`CapabilitySet`、feature group、provider 选择 | -| `RuntimeServicesBuilder` | 运行时服务层(Runtime Services) | 目标在 `bitfun-runtime-services`;连接 `bitfun-runtime-ports`、`bitfun-services-*` 和初始 service wiring | filesystem、workspace、session store、Git、terminal、network、MCP catalog、remote connection / workspace / projection port | -| `ToolRuntimeBuilder` | 工具运行时(Tool Runtime) | `tool-runtime`、`bitfun-agent-tools`、`bitfun-tool-packs` | tool provider、tool pack、manifest、permission gate、tool hook | +| `ProductAssembler` / `ProductAssemblyPlan` | 产品组装层(Product Assembly) | 初始可在 `bitfun-core` facade 或产品入口;目标可收敛为 assembly owner | `DeliveryProfile`、`CapabilitySet`、feature group、adapter/service 选择 | +| `RuntimeServicesBuilder` | 执行原语层(Execution Primitives)与服务实现层(Services)的边界 | 目标在 `bitfun-runtime-services`;连接 `bitfun-runtime-ports`、`bitfun-services-*` 和初始 service wiring | filesystem、workspace、session store、Git、terminal、network、MCP catalog、remote connection / workspace / projection port | +| `ToolRuntimeBuilder` | 执行原语层(Execution Primitives) | `tool-execution`、`tool-contracts`、`tool-provider-groups`;Cargo package 名保持兼容 | tool provider、tool group、manifest、permission gate、tool hook | | `HarnessRegistryBuilder` | 工作流编排层(Harness Layer) | 目标在 `bitfun-harness`;初始可由 `bitfun-core::agentic::harness` 注册 legacy-facade provider | SDD、Deep Review、DeepResearch、MiniApp 等 harness provider | -| `AgentDefinitionRegistry` | Agent 运行时 SDK(Agent Runtime SDK) | 目标在 `bitfun-agent-runtime`;初始可由 `bitfun-core` agent definition 代码承载 | agent、subagent、prompt module、skill definition | -| `ProductCommandRegistry` | 产品入口(Product Surfaces)与产品组装层(Product Assembly)的边界 | 产品入口或 assembly 模块 | 输入框命令、审核入口、MiniApp 入口到 capability / harness / runtime request 的映射 | -| concrete provider set | 具体适配实现(Concrete Providers) | `bitfun-services-*`、`bitfun-ai-adapters`、`terminal-core`、app adapters;产品协议入口如 `bitfun-acp` 属于 Product Surfaces / Protocol Surfaces | Tool、OS、Remote、Protocol 的具体 provider;Remote provider 内部继续区分 SSH、relay、本地隧道、远端 OS 支持 | +| `AgentDefinitionRegistry` | 执行原语层(Execution Primitives) | 目标在 `bitfun-agent-runtime`;初始可由 `bitfun-core` agent definition 代码承载 | agent、subagent、prompt module、skill definition | +| `ProductCommandRegistry` | 接口与入口层(Interfaces and Entrypoints)与产品组装层(Product Assembly)的边界 | 产品入口或 assembly 模块 | 输入框命令、审核入口、MiniApp 入口到 capability / harness / runtime request 的映射 | +| adapter set | 适配层(Adapters) | `bitfun-ai-adapters`、`bitfun-api-layer`、`bitfun-transport`、`bitfun-webdriver`、app adapters | AI、API、transport、WebDriver 等协议或外部 provider adapter | +| service set | 服务实现层(Services) | `bitfun-services-*`、`terminal-core` 和具体 app service implementations | OS、filesystem、Git、terminal、MCP、remote 的具体 service;Remote service 内部继续区分 SSH、relay、本地隧道、远端 OS 支持 | 注册路径必须是显式、typed、可测试的: -- 产品入口(Product Surfaces)只选择 `DeliveryProfile` 和产品配置,不直接把 concrete manager 传入 runtime。 -- 产品组装层(Product Assembly)根据产品形态创建或接收具体 provider,并调用 typed builder 完成注册。 -- Tool、OS、Remote、Protocol provider 分别留在对应 app 或 integration owner 中,通过同一组 port 暴露。 -- Tauri 只能出现在 Desktop provider、transport/API adapter 或产品入口命令外观中;Agent Runtime SDK、 - Tool Runtime、Harness、Runtime Services contract 和 Product Capabilities 不得依赖 Tauri handle、 +- 接口与入口层(Interfaces and Entrypoints)只选择 `DeliveryProfile` 和产品配置,不直接把 concrete manager 传入 runtime。 +- 产品组装层(Product Assembly)根据产品形态创建或接收 adapter/service,并调用 typed builder 完成注册。 +- Tool、OS、Remote、Protocol provider 分别留在对应 app、Adapters 或 Services 中,通过同一组 port 暴露。 +- Tauri 只能出现在 Desktop app、transport/API adapter 或产品入口命令外观中;Agent Runtime、 + Tool primitives、Harness、Runtime Services contract 和 Product Capabilities 不得依赖 Tauri handle、 window、command macro 或 desktop app state。 - Remote provider 必须拆分稳定连接接口和具体远端 OS / transport 实现,避免把 SSH、relay 或远端平台差异泄漏到 runtime。 -- 不支持的能力在 assembly 的 capability availability 中显式返回 unsupported / unavailable,不在 runtime 内写产品分支。 +- 不支持的能力在 assembly 的 capability availability 中显式返回 unsupported / unavailable,不在 execution primitive 内写产品分支。 - 禁止使用无类型 `Any` service locator、全局 mutable registry 或下层 crate 反向读取产品配置。 ## 9. 风险 @@ -364,8 +319,8 @@ flowchart TB |---|---| | 产品组装层(Product Assembly)膨胀为新的全局状态中心 | assembly 只做构建期注册,输出不可变 runtime parts;产品状态仍归 surface 或 runtime owner | | 接口拆得过细,导致复杂度和动态分发成本上升 | 以 capability 和稳定用例定义 port 粒度,热路径避免运行时 map lookup,优先 builder-time 注入 | -| 平台实现泄漏到 Agent Runtime SDK、Tool Runtime 或 Harness | 依赖检查禁止 runtime owner 依赖 app crate、Tauri、CLI TUI、ACP protocol 和 concrete service crate | -| core 拆分后仍隐式绑定 Tauri | Tauri 只允许在 Desktop provider / adapter;向下层传递 typed port、DTO、event fact 和 capability availability | +| 平台实现泄漏到 Agent、Tool 或 Harness execution primitives | 依赖检查禁止 execution owner 依赖 app crate、Tauri、CLI TUI、ACP protocol 和 concrete service crate | +| core 拆分后仍隐式绑定 Tauri | Tauri 只允许在 Desktop app 或明确 feature-gated adapter;向下层传递 typed port、DTO、event fact 和 capability availability | | 不同产品形态能力矩阵漂移 | Product Assembly 维护 capability matrix;减少或替换能力时补产品入口验证和 unsupported 行为测试 | | Tool、MCP、ACP 的 manifest、permission 或事件语义拆解后不等价 | 保留旧路径兼容 facade,增加 manifest snapshot、permission 决策和事件映射等价测试 | | Harness provider 只做注册但被误认为已经拥有执行语义 | descriptor-only / legacy-facade provider 只能生成 route plan;执行语义移动必须单独证明行为等价 | @@ -375,10 +330,10 @@ flowchart TB ## 10. 目标状态判定 - `bitfun-core` 不再是事实上的完整 runtime owner,而是兼容 facade 和 `product-full` 组装边界。 -- Agent Runtime SDK、Tool Runtime、Runtime Services、Harness 和 Product Capabilities 分别拥有可审查的职责边界。 -- 稳定契约和各 runtime owner 定义接口;具体 Tool、OS、Remote、Protocol provider 留在具体适配实现。 +- Agent Runtime、Tool Contracts / Tool Provider Groups / Tool Execution、Runtime Services、Harness 和 Product Capabilities 分别拥有可审查的职责边界。 +- 稳定契约和各 execution owner 定义接口;具体 Tool、OS、Remote service 留在 Services,协议和外部 provider 转换留在 Adapters。 - 产品组装层(Product Assembly)是唯一注册点,通过 typed builder / registry 连接接口和具体实现。 -- Tauri 只属于 Desktop concrete provider / adapter,不进入 core、runtime owner 或 contract crate。 +- Tauri 只属于 Desktop app 或明确 feature-gated adapter,不进入 core、execution owner 或 contract crate。 - runtime 只依赖 remote connection、remote workspace、remote projection 和 capability facts 等 port;SSH、relay、 本地隧道、远端 OS 差异和认证方式属于具体 Remote provider。 - 产品形态差异通过 capability matrix 和 Product Assembly 表达,不通过下沉 UI、命令、协议或平台实现表达。 diff --git a/docs/architecture/deep-review.md b/docs/architecture/deep-review.md index 7d63d7957..ba5b275c1 100644 --- a/docs/architecture/deep-review.md +++ b/docs/architecture/deep-review.md @@ -6,15 +6,15 @@ DeepReview is a child-session workflow that runs a configurable Code Review Team - Frontend launch and UI orchestration in `src/web-ui`. - Platform adapter commands in `src/apps/desktop/src/api/agentic_api.rs`. -- Platform-agnostic runtime policy, task admission, queue state, retry metadata, and report enrichment in `src/crates/facade/core/src/agentic`. +- Platform-agnostic runtime policy, task admission, queue state, retry metadata, and report enrichment in `src/crates/assembly/core/src/agentic`. The backend does not choose the review target or build the launch manifest. The frontend builds the effective `ReviewTeamRunManifest`, persists it on the DeepReview child session, and sends it with the first user message. ## Runtime Roles -`src/crates/facade/core/src/agentic/agents/deep_review_agent.rs` defines the writable `DeepReview` orchestrator. It can call `Task`, read/search/git tools, `submit_code_review`, `AskUserQuestion`, and write/edit/bash tools for user-approved remediation. +`src/crates/assembly/core/src/agentic/agents/deep_review_agent.rs` defines the writable `DeepReview` orchestrator. It can call `Task`, read/search/git tools, `submit_code_review`, `AskUserQuestion`, and write/edit/bash tools for user-approved remediation. -`src/crates/facade/core/src/agentic/agents/review_specialist_agents.rs` defines read-only reviewer agents: +`src/crates/assembly/core/src/agentic/agents/review_specialist_agents.rs` defines read-only reviewer agents: - `ReviewBusinessLogic` - `ReviewPerformance` @@ -57,8 +57,8 @@ The default review team contract is mirrored in Rust and TypeScript. Rust source: -- `src/crates/facade/core/src/agentic/deep_review/team_definition.rs` -- `src/crates/facade/core/src/agentic/deep_review_policy.rs` +- `src/crates/assembly/core/src/agentic/deep_review/team_definition.rs` +- `src/crates/assembly/core/src/agentic/deep_review_policy.rs` - `src/apps/desktop/src/api/agentic_api.rs` Frontend source: @@ -147,7 +147,7 @@ If the included file count exceeds the reviewer file-split threshold and same-ro ## Backend Policy and Admission -`DeepReviewExecutionPolicy` in `src/crates/facade/core/src/agentic/deep_review/execution_policy.rs` parses runtime policy from config and classifies subagent launches. +`DeepReviewExecutionPolicy` in `src/crates/assembly/core/src/agentic/deep_review/execution_policy.rs` parses runtime policy from config and classifies subagent launches. Allowed DeepReview runtime launches are: @@ -169,10 +169,10 @@ Rejected launches include: The generic `Task` tool is adapted for DeepReview in: -- `src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs` -- `src/crates/facade/core/src/agentic/deep_review/task_adapter.rs` -- `src/crates/facade/core/src/agentic/deep_review/queue.rs` -- `src/crates/facade/core/src/agentic/deep_review/budget.rs` +- `src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs` +- `src/crates/assembly/core/src/agentic/deep_review/task_adapter.rs` +- `src/crates/assembly/core/src/agentic/deep_review/queue.rs` +- `src/crates/assembly/core/src/agentic/deep_review/budget.rs` DeepReview task execution uses the manifest and tool context to: @@ -234,7 +234,7 @@ The frontend listens through `AgentAPI.onDeepReviewQueueStateChanged` on `agenti ## Report Submission -Review results are submitted through `submit_code_review` in `src/crates/facade/core/src/agentic/tools/implementations/code_review_tool.rs`. +Review results are submitted through `submit_code_review` in `src/crates/assembly/core/src/agentic/tools/implementations/code_review_tool.rs`. In DeepReview context, the tool requires the deep-review fields in addition to the standard summary/issues/positive-points shape: @@ -243,7 +243,7 @@ In DeepReview context, the tool requires the deep-review fields in addition to t - `reviewers` - `remediation_plan` -DeepReview report enrichment lives in `src/crates/facade/core/src/agentic/deep_review/report.rs`. It fills missing reviewer packet metadata when a unique packet can be inferred, adds runtime diagnostics, updates incremental cache data, and adds reliability signals for cache hits, cache misses, partial coverage, capacity skips, retry guidance, queue waits, reduced scope, and evidence-pack metadata. +DeepReview report enrichment lives in `src/crates/assembly/core/src/agentic/deep_review/report.rs`. It fills missing reviewer packet metadata when a unique packet can be inferred, adds runtime diagnostics, updates incremental cache data, and adds reliability signals for cache hits, cache misses, partial coverage, capacity skips, retry guidance, queue waits, reduced scope, and evidence-pack metadata. Report enrichment is guarded by the tool context. Standard Code Review output should not receive DeepReview-only metadata unless the active tool context proves `agent_type == 'DeepReview'`. diff --git a/docs/architecture/i18n.md b/docs/architecture/i18n.md index 86c758d02..4d43ae96b 100644 --- a/docs/architecture/i18n.md +++ b/docs/architecture/i18n.md @@ -32,7 +32,7 @@ Generated outputs: - `src/web-ui/src/infrastructure/i18n/presets/generatedLocaleContract.ts` - `src/mobile-web/src/i18n/generatedLocaleContract.ts` - `BitFun-Installer/src/i18n/generatedLocaleContract.ts` -- `src/crates/facade/core/src/service/i18n/generated_locale_contract.rs` +- `src/crates/assembly/core/src/service/i18n/generated_locale_contract.rs` - `BitFun-Installer/src-tauri/src/installer/generated_locale_contract.rs` - `src/apps/relay-server/static/homepage/i18n.shared.json` @@ -46,7 +46,7 @@ Do not edit generated files manually. | Web UI | `src/web-ui/src/locales//**/*.json` | Eagerly loads bootstrap namespaces only; route and feature copy loads lazily | | Mobile Web | `src/mobile-web/src/i18n/messages.ts` | Owns mobile-only messages; no Web UI catalog imports | | Installer | `BitFun-Installer/src/i18n/locales/*.json` | Owns installer-only messages; no app runtime catalog imports | -| Backend | `src/crates/facade/core/locales/*.ftl` | Uses generated locale helpers and Fluent resources | +| Backend | `src/crates/assembly/core/locales/*.ftl` | Uses generated locale helpers and Fluent resources | | Relay static homepage | `src/apps/relay-server/static/homepage` | Self-contained static resources plus generated page-scoped shared terms | Shared contract does not mean shared bundle. Smaller product shapes must not pay diff --git a/docs/architecture/model-request-cache-reuse.md b/docs/architecture/model-request-cache-reuse.md index 01de1f00c..5d99515be 100644 --- a/docs/architecture/model-request-cache-reuse.md +++ b/docs/architecture/model-request-cache-reuse.md @@ -5,7 +5,7 @@ cache reuse and to avoid unnecessary cache invalidation across long-running agent sessions. The implementation is mostly in the shared Rust runtime under -`src/crates/facade/core/src/agentic/`. +`src/crates/assembly/core/src/agentic/`. ## The Core Idea @@ -34,7 +34,7 @@ Instead, it separates two relatively stable layers: The cache model lives in `src/crates/execution/agent-runtime/src/prompt_cache.rs`. -Core still exposes `src/crates/facade/core/src/agentic/session/prompt_cache.rs`, but +Core still exposes `src/crates/assembly/core/src/agentic/session/prompt_cache.rs`, but that file is now a compatibility facade that re-exports the owner types from `bitfun-agent-runtime`. @@ -48,7 +48,7 @@ Key details: (`DEFAULT_PROMPT_CACHE_PERSISTENCE_TTL`) Session-level loading, saving, invalidation, and cloning live in -`src/crates/facade/core/src/agentic/session/session_manager.rs`. +`src/crates/assembly/core/src/agentic/session/session_manager.rs`. The test coverage in that file also explicitly exercises: @@ -64,7 +64,7 @@ Persistence details: memory Request assembly uses the cache in -`src/crates/facade/core/src/agentic/execution/execution_engine.rs`: +`src/crates/assembly/core/src/agentic/execution/execution_engine.rs`: - `resolve_cached_system_prompt(...)` reuses a cached system prompt when the scope key still matches @@ -81,7 +81,7 @@ stable while still handling workspace-dependent context separately. ### Session branching Persisted session branching is implemented in -`src/crates/facade/core/src/agentic/persistence/session_branch.rs`. +`src/crates/assembly/core/src/agentic/persistence/session_branch.rs`. When BitFun branches a session from an existing turn, it copies more than turn text: @@ -107,9 +107,9 @@ Relevant code: `src/apps/desktop/src/api/btw_api.rs` - child-session creation: `ConversationCoordinator::ensure_hidden_btw_session(...)` in - `src/crates/facade/core/src/agentic/coordination/coordinator.rs` + `src/crates/assembly/core/src/agentic/coordination/coordinator.rs` - side-question prompt wrapper: - `src/crates/facade/core/src/agentic/side_question.rs` + `src/crates/assembly/core/src/agentic/side_question.rs` The parent context snapshot is not limited to a hot in-memory session. When needed, `load_session_context_messages(...)` restores the parent session from @@ -139,11 +139,11 @@ Forked subagents reuse even more. Relevant code: - snapshot model: - `src/crates/facade/core/src/agentic/fork_agent/mod.rs` + `src/crates/assembly/core/src/agentic/fork_agent/mod.rs` - request validation and tool contract: - `src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs` + `src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs` - execution and prompt-cache cloning: - `src/crates/facade/core/src/agentic/coordination/coordinator.rs` + `src/crates/assembly/core/src/agentic/coordination/coordinator.rs` When `Task` is called with `fork_context=true`, BitFun: @@ -187,7 +187,7 @@ Relevant code: - shared constants and tests: `src/crates/execution/agent-runtime/src/agents.rs` - mode definitions: - `src/crates/facade/core/src/agentic/agents/definitions/modes/{agentic,plan,debug,multitask}.rs` + `src/crates/assembly/core/src/agentic/agents/definitions/modes/{agentic,plan,debug,multitask}.rs` Why they reuse cache: @@ -218,7 +218,7 @@ force a base prompt cache reset. The frontend also knows about this compatibility: - `AgentInfo.prompt_cache_scope_key` is produced in - `src/crates/facade/core/src/agentic/agents/registry/types.rs` + `src/crates/assembly/core/src/agentic/agents/registry/types.rs` - `ChatInput.tsx` only shows a prompt-cache warning when the next mode's scope key differs from the last submitted mode's scope key @@ -233,12 +233,12 @@ BitFun explicitly avoids baking that surface into one permanently rebuilt prompt Relevant code: - snapshot and diff model: - `src/crates/facade/core/src/agentic/skill_agent_snapshot.rs` + `src/crates/assembly/core/src/agentic/skill_agent_snapshot.rs` - sparse snapshot store: - `src/crates/facade/core/src/agentic/session/turn_skill_agent_snapshot_store.rs` + `src/crates/assembly/core/src/agentic/session/turn_skill_agent_snapshot_store.rs` - fork baseline override persistence: `snapshots/skill-agent-baseline-override.json` via - `src/crates/facade/core/src/agentic/persistence/manager.rs` + `src/crates/assembly/core/src/agentic/persistence/manager.rs` - turn-time diff injection: `ConversationCoordinator::wrap_user_input(...)` - baseline reminder reuse: @@ -293,10 +293,10 @@ BitFun does allow tool customization at the agent/profile level: Relevant code: - mode/profile tool overrides: - `src/crates/facade/core/src/service/config/types.rs` - and `src/crates/facade/core/src/service/config/mode_config_canonicalizer.rs` + `src/crates/assembly/core/src/service/config/types.rs` + and `src/crates/assembly/core/src/service/config/mode_config_canonicalizer.rs` - runtime resolution of effective agent tool policy: - `src/crates/facade/core/src/agentic/agents/registry/query.rs` + `src/crates/assembly/core/src/agentic/agents/registry/query.rs` However, tool manifests are still recomputed per turn/request, not diff-patched like skill and subagent listings. @@ -312,12 +312,12 @@ More precisely: Relevant code: - request-time tool manifest resolution: - `src/crates/facade/core/src/agentic/execution/execution_engine.rs` + `src/crates/assembly/core/src/agentic/execution/execution_engine.rs` - tool definitions included in token estimation: - `src/crates/facade/core/src/util/token_counter.rs` + `src/crates/assembly/core/src/util/token_counter.rs` - provider request-body tool attachment: - `src/crates/integrations/ai-adapters/src/providers/openai/responses.rs` - and `src/crates/integrations/ai-adapters/src/providers/openai/codex_chatgpt.rs` + `src/crates/adapters/ai-adapters/src/providers/openai/responses.rs` + and `src/crates/adapters/ai-adapters/src/providers/openai/codex_chatgpt.rs` This is why tool changes cannot currently be handled the same way as skill/subagent listing updates. @@ -374,9 +374,9 @@ BitFun's cache-hit strategy. Relevant code: - compression flow: - `src/crates/facade/core/src/agentic/execution/execution_engine.rs` + `src/crates/assembly/core/src/agentic/execution/execution_engine.rs` - compressor: - `src/crates/facade/core/src/agentic/session/compression/` + `src/crates/assembly/core/src/agentic/session/compression/` There are two different cache-reuse stories around compression: @@ -443,13 +443,13 @@ measured instead of guessed. Relevant code: - unified usage types: - `src/crates/integrations/ai-adapters/src/stream/types/unified.rs` + `src/crates/adapters/ai-adapters/src/stream/types/unified.rs` - Anthropic mapping: - `src/crates/integrations/ai-adapters/src/stream/types/anthropic.rs` + `src/crates/adapters/ai-adapters/src/stream/types/anthropic.rs` - OpenAI / DeepSeek mapping: - `src/crates/integrations/ai-adapters/src/stream/types/openai.rs` + `src/crates/adapters/ai-adapters/src/stream/types/openai.rs` - runtime event emission: - `src/crates/facade/core/src/agentic/execution/round_executor.rs` + `src/crates/assembly/core/src/agentic/execution/round_executor.rs` Two fields matter: @@ -483,19 +483,19 @@ The most important implementation choices are: - Prompt cache model: `src/crates/execution/agent-runtime/src/prompt_cache.rs` - Prompt cache lifecycle: - `src/crates/facade/core/src/agentic/session/session_manager.rs` + `src/crates/assembly/core/src/agentic/session/session_manager.rs` - Request assembly and cache hits: - `src/crates/facade/core/src/agentic/execution/execution_engine.rs` + `src/crates/assembly/core/src/agentic/execution/execution_engine.rs` - Fork snapshot model: - `src/crates/facade/core/src/agentic/fork_agent/mod.rs` + `src/crates/assembly/core/src/agentic/fork_agent/mod.rs` - Session branching: - `src/crates/facade/core/src/agentic/persistence/session_branch.rs` + `src/crates/assembly/core/src/agentic/persistence/session_branch.rs` - Side-question child sessions: - `src/crates/facade/core/src/agentic/coordination/coordinator.rs` + `src/crates/assembly/core/src/agentic/coordination/coordinator.rs` and `src/apps/desktop/src/api/btw_api.rs` - Shared coding-mode identities: `src/crates/execution/agent-runtime/src/agents.rs` - Dynamic skill/agent listing snapshots: - `src/crates/facade/core/src/agentic/skill_agent_snapshot.rs` + `src/crates/assembly/core/src/agentic/skill_agent_snapshot.rs` - Provider cache telemetry: - `src/crates/integrations/ai-adapters/src/stream/types/` + `src/crates/adapters/ai-adapters/src/stream/types/` diff --git a/docs/features/session-runtime-usage-report-design.md b/docs/features/session-runtime-usage-report-design.md index 71792c4e3..792381cb3 100644 --- a/docs/features/session-runtime-usage-report-design.md +++ b/docs/features/session-runtime-usage-report-design.md @@ -173,10 +173,10 @@ BitFun can reuse several existing surfaces. | Capability | Current anchor | | --- | --- | | Agentic event definitions | `src/crates/contracts/events/src/agentic.rs` | -| Token usage persistence and aggregation | `src/crates/facade/core/src/service/token_usage/{types.rs,service.rs,subscriber.rs}` | -| Model stream timing currently logged/held during execution | `src/crates/facade/core/src/agentic/execution/{round_executor.rs,stream_processor.rs}` | -| Context compression events and tool-like UI item | `src/crates/facade/core/src/agentic/execution/execution_engine.rs`, `src/web-ui/src/flow_chat/tool-cards/ContextCompressionDisplay.tsx` | -| Tool lifecycle and total duration | `src/crates/facade/core/src/agentic/tools/pipeline/{tool_pipeline.rs,state_manager.rs}` | +| Token usage persistence and aggregation | `src/crates/assembly/core/src/service/token_usage/{types.rs,service.rs,subscriber.rs}` | +| Model stream timing currently logged/held during execution | `src/crates/assembly/core/src/agentic/execution/{round_executor.rs,stream_processor.rs}` | +| Context compression events and tool-like UI item | `src/crates/assembly/core/src/agentic/execution/execution_engine.rs`, `src/web-ui/src/flow_chat/tool-cards/ContextCompressionDisplay.tsx` | +| Tool lifecycle and total duration | `src/crates/assembly/core/src/agentic/tools/pipeline/{tool_pipeline.rs,state_manager.rs}` | | CLI slash command handling | `src/apps/cli/src/modes/chat.rs` | | CLI session/tool persistence | `src/apps/cli/src/session.rs`, `src/apps/cli/src/agent/core_adapter.rs` | | Desktop token/compression event routing | `src/web-ui/src/flow_chat/services/flow-chat-manager/EventHandlerModule.ts` | @@ -234,7 +234,7 @@ considered complete. | Area | Current status | Code evidence | Remaining work | | --- | --- | --- | --- | -| Shared report service | Done | `src/crates/facade/core/src/service/session_usage/{service.rs,types.rs,render.rs}` and `SessionAPI.getSessionUsageReport` | Keep the API contract stable while adding future report fields. | +| Shared report service | Done | `src/crates/assembly/core/src/service/session_usage/{service.rs,types.rs,render.rs}` and `SessionAPI.getSessionUsageReport` | Keep the API contract stable while adding future report fields. | | Durable local report message | Done | `DialogTurnKind::LocalCommand`, `localCommandKind: 'usage_report'`, `modelVisible: false` | Keep usage report snapshots model-invisible through future history, export, and transcript changes. | | CLI `/usage` coverage | Done for interactive CLI | CLI `usage_*` coverage and the shared renderer | Top-level `bitfun usage --session` is outside the closed product scope. | | Model timing | Mostly done | Optional event and persisted fields for duration, provider/model identity, first chunk, visible output, stream duration, attempts, failure category, and token details | Throughput/TPS and provider-latency claims are outside the closed product scope. | @@ -765,13 +765,13 @@ Executable implementation plan: P1 must move `/usage` from P0 approximation toward factual runtime accounting without changing the report command contract. The implementation order below is test-first and split by ownership boundary so each step can be reviewed independently. 1. Persist runtime facts already owned by the runtime. - - Files: `src/crates/facade/core/src/service/session/types.rs`, `src/crates/facade/core/src/agentic/session/session_manager.rs`, `src/crates/facade/core/src/agentic/coordination/coordinator.rs`, and the tool/model execution call sites that construct persisted session items. + - Files: `src/crates/assembly/core/src/service/session/types.rs`, `src/crates/assembly/core/src/agentic/session/session_manager.rs`, `src/crates/assembly/core/src/agentic/coordination/coordinator.rs`, and the tool/model execution call sites that construct persisted session items. - Add optional fields to persisted model rounds for provider/model identity, first chunk latency, first visible output latency, stream duration, attempt count, failure category, token details, and total duration. - Add optional tool phase durations to persisted tool items: queue wait, preflight, confirmation wait, and execution. - Acceptance: old session JSON still deserializes, new session JSON round-trips with these fields, and missing fields never fail report generation. 2. Consume persisted facts in the usage service. - - File: `src/crates/facade/core/src/service/session_usage/service.rs`. + - File: `src/crates/assembly/core/src/service/session_usage/service.rs`. - Prefer persisted model/tool duration fields when present; fall back to existing start/end or result durations only when facts are missing. - Compute active time as a union of known active intervals so overlapping spans do not double-count the denominator. - Exclude `local_command` usage-report turns from scope, wall/active time, model/tool/file/error rows, and slowest spans so generating a report cannot affect the next report. @@ -780,7 +780,7 @@ P1 must move `/usage` from P0 approximation toward factual runtime accounting wi - Acceptance: model rows can exist from runtime span facts even when token records are absent, tool rows expose phase subtotals, slowest spans include model rounds and tools, and the coverage panel explains missing facts conservatively. 3. Keep file-change correlation conservative. - - File: `src/crates/facade/core/src/service/session_usage/service.rs`. + - File: `src/crates/assembly/core/src/service/session_usage/service.rs`. - Keep snapshot operations as the highest-trust source for file rows, including remote sessions when cached snapshot summaries are present, then use tool-call metadata as a fallback only for recognized edit/write/delete operations. - Preserve operation ids and turn indexes for later UI navigation, but do not invent line counts when no snapshot or diff fact exists. - Acceptance: remote sessions with cached snapshot summaries show file/line rows; remote sessions that only have tool metadata show edited files with unknown line counts instead of "unavailable"; files without trustworthy evidence remain omitted. @@ -963,7 +963,7 @@ Files: - Read: `session-runtime-usage-report-design.md` - Read: `AGENTS.md` - Read: `src/web-ui/AGENTS.md` -- Read: `src/crates/facade/core/AGENTS.md` +- Read: `src/crates/assembly/core/AGENTS.md` Steps: @@ -1000,10 +1000,10 @@ Goal: define the stable structured contract used by CLI, Desktop, and future ser Files: -- Create: `src/crates/facade/core/src/service/session_usage/types.rs` -- Create: `src/crates/facade/core/src/service/session_usage/mod.rs` -- Modify: `src/crates/facade/core/src/service/mod.rs` -- Test: `src/crates/facade/core/src/service/session_usage/types.rs` or nearby module tests +- Create: `src/crates/assembly/core/src/service/session_usage/types.rs` +- Create: `src/crates/assembly/core/src/service/session_usage/mod.rs` +- Modify: `src/crates/assembly/core/src/service/mod.rs` +- Test: `src/crates/assembly/core/src/service/session_usage/types.rs` or nearby module tests Steps: @@ -1046,8 +1046,8 @@ Goal: give Desktop `/usage` a durable chat representation without polluting futu Files: -- Modify: `src/crates/facade/core/src/service/session/types.rs` -- Modify: `src/crates/facade/core/src/agentic/session/session_manager.rs` +- Modify: `src/crates/assembly/core/src/service/session/types.rs` +- Modify: `src/crates/assembly/core/src/agentic/session/session_manager.rs` - Modify: `src/web-ui/src/flow_chat/types/flow-chat.ts` - Modify: `src/web-ui/src/flow_chat/store/FlowChatStore.ts` - Test: session serialization/deserialization tests near existing session tests @@ -1090,13 +1090,13 @@ Goal: produce a useful `/usage` report without changing runtime event production Files: -- Create: `src/crates/facade/core/src/service/session_usage/service.rs` -- Modify: `src/crates/facade/core/src/service/session_usage/mod.rs` -- Modify: `src/crates/facade/core/src/service/mod.rs` -- Read/reuse: `src/crates/facade/core/src/service/token_usage/service.rs` -- Read/reuse: `src/crates/facade/core/src/service/session/types.rs` -- Read/reuse: `src/crates/facade/core/src/service/snapshot/service.rs` -- Test: `src/crates/facade/core/src/service/session_usage/service.rs` +- Create: `src/crates/assembly/core/src/service/session_usage/service.rs` +- Modify: `src/crates/assembly/core/src/service/session_usage/mod.rs` +- Modify: `src/crates/assembly/core/src/service/mod.rs` +- Read/reuse: `src/crates/assembly/core/src/service/token_usage/service.rs` +- Read/reuse: `src/crates/assembly/core/src/service/session/types.rs` +- Read/reuse: `src/crates/assembly/core/src/service/snapshot/service.rs` +- Test: `src/crates/assembly/core/src/service/session_usage/service.rs` Steps: @@ -1143,8 +1143,8 @@ Goal: render the same report as CLI terminal text and Desktop Markdown without d Files: -- Create: `src/crates/facade/core/src/service/session_usage/render.rs` -- Modify: `src/crates/facade/core/src/service/session_usage/mod.rs` +- Create: `src/crates/assembly/core/src/service/session_usage/render.rs` +- Modify: `src/crates/assembly/core/src/service/session_usage/mod.rs` - Test: renderer snapshot or exact-output tests in Rust Steps: @@ -1324,10 +1324,10 @@ Goal: make model speed and wait-time metrics accurate after the minimal report i Files: - Modify: `src/crates/contracts/events/src/agentic.rs` -- Modify: `src/crates/facade/core/src/agentic/execution/round_executor.rs` -- Modify: `src/crates/facade/core/src/agentic/execution/stream_processor.rs` -- Modify: `src/crates/integrations/transport/src/adapters/tauri.rs` -- Modify: `src/crates/integrations/transport/src/adapters/websocket.rs` +- Modify: `src/crates/assembly/core/src/agentic/execution/round_executor.rs` +- Modify: `src/crates/assembly/core/src/agentic/execution/stream_processor.rs` +- Modify: `src/crates/adapters/transport/src/adapters/tauri.rs` +- Modify: `src/crates/adapters/transport/src/adapters/websocket.rs` - Test: Rust event serialization and stream/round executor tests Steps: @@ -1371,8 +1371,8 @@ Goal: explain tool-heavy sessions without relying on logs. Files: - Modify: `src/crates/contracts/events/src/agentic.rs` -- Modify: `src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs` -- Modify: `src/crates/facade/core/src/agentic/tools/pipeline/state_manager.rs` +- Modify: `src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs` +- Modify: `src/crates/assembly/core/src/agentic/tools/pipeline/state_manager.rs` - Modify: transport adapters for new optional timing fields - Test: tool pipeline/state manager tests @@ -1414,8 +1414,8 @@ Goal: connect usage reports with existing file diff affordances without changing Files: -- Modify: `src/crates/facade/core/src/service/session_usage/service.rs` -- Read/reuse: `src/crates/facade/core/src/service/snapshot/service.rs` +- Modify: `src/crates/assembly/core/src/service/session_usage/service.rs` +- Read/reuse: `src/crates/assembly/core/src/service/snapshot/service.rs` - Read/reuse: `src/web-ui/src/infrastructure/api/service-api/SnapshotAPI.ts` - Modify later UI: `src/web-ui/src/flow_chat/tool-cards/FileOperationToolCard.tsx` only for report link integration - Test: report aggregation tests with snapshot operation summaries @@ -1549,7 +1549,7 @@ Goal: keep `/usage` focused on current-session observability and prevent scope d Files: -- Harden: `src/crates/facade/core/src/service/session_usage/render.rs` +- Harden: `src/crates/assembly/core/src/service/session_usage/render.rs` - Harden: `src/apps/cli/src/main.rs` - Update: `session-runtime-usage-report-design.md` - Test: current-session report and top-level CLI scope tests diff --git a/docs/plans/core-decomposition-completed.md b/docs/plans/core-decomposition-completed.md index 133093b0a..f52714bea 100644 --- a/docs/plans/core-decomposition-completed.md +++ b/docs/plans/core-decomposition-completed.md @@ -1,9 +1,10 @@ # BitFun Core 拆解已完成内容归档 -本文只记录已完成事实摘要,不作为后续执行计划。后续执行口径以 +本文只记录已完成事实摘要,不作为后续执行计划。后续执行路径以 [`core-decomposition-plan.md`](core-decomposition-plan.md) 为准;稳定架构目标以 [`core-decomposition.md`](../architecture/core-decomposition.md) 和 -[`agent-runtime-services-design.md`](../architecture/agent-runtime-services-design.md) 为准。 +[`agent-runtime-services-design.md`](../architecture/agent-runtime-services-design.md) +为准。 ## 1. 已完成主线摘要 @@ -11,109 +12,51 @@ - 已建立 `product-full` 作为完整产品能力保护开关,产品入口显式启用完整能力。 - 已将原 nested `terminal-core`、`tool-runtime` 移到 workspace 顶层,保持旧 package / lib 语义。 -- 已抽出 `bitfun-core-types`、`bitfun-agent-stream`、`bitfun-runtime-ports` 等基础契约与轻量 owner。 -- 已建立 `bitfun-services-core`、`bitfun-services-integrations`、`bitfun-agent-tools`、`bitfun-tool-packs`、 - `bitfun-product-domains`、`bitfun-runtime-services`、`bitfun-agent-runtime`、`bitfun-harness`、 - `bitfun-product-capabilities` 等 owner crate 基线。 -- `bitfun-core` 已通过 facade / re-export 保持旧路径兼容,并逐步形成 `product_runtime`、 - `product_domain_runtime`、`service_agent_runtime` 等迁移期组装入口。 - -### 1.2 稳定契约与 Runtime Services 基线 - -- `runtime-ports` 已承接 workspace、session store、remote workspace/projection、tool runtime handles、 - thread goal DTO、scheduled-job state 等稳定接口或事实。 -- `runtime-services` 已建立 typed service bundle、builder、capability availability、provider 注册和 fake provider - 测试基础。 -- remote workspace facts、remote session metadata、remote file projection DTO、remote workspace/projection host - trait 已归入稳定接口层,并保留旧路径 re-export。 -- session restore 的 storage path resolution、turn-load request、restore timing facts 已进入 Runtime Services / - Runtime Ports 边界;core 仍保留具体 persistence IO。 -- `bitfun-core::product_runtime::CoreRuntimeServicesProvider` 已把现有 core session store path resolution、 - remote workspace/projection adapter,以及当前完整产品能力需要的 terminal / Git / Network / MCP catalog - capability marker 注册到 `RuntimeServicesBuilder` 组合中;`bitfun-core::product_assembly` 只保留旧路径兼容导出。 - -### 1.3 Tool Runtime 与 Product Capability 基线 - -- `agent-tools` 已承接 provider-neutral tool DTO、manifest/catalog 策略、execution admission gate、 - collapsed unlock gate、static provider materialization 和 plan-to-registry assembly。 -- `tool-runtime` 已承接本地 Write / Edit / Delete / Glob 的低风险 concrete IO primitive;core 保留 agent-facing - `Tool` adapter、权限、checkpoint、file-read freshness、remote fallback 和具体 tool context。 -- `tool-runtime` 已承接远程 Delete / Read / LS / Glob / Grep 的命令规划、stdout/stderr 规整、marker 解析、 - path display 和 offset/limit windowing 等低层 execution helper;core 仍负责 workspace shell 执行和 ToolResult 包装。 -- GetToolSpec concrete adapter、manifest resolver、visible tools、readonly catalog、snapshot wrapper、collapsed unlock - message-derived state 已收敛到 product/tool runtime owner 边界。 -- `tool-packs` 已承接 tool provider group plan、按 id 选择和 unknown provider group 校验。 -- `product-capabilities` 已承接 capability id、required service capability、tool provider group selection 和 - harness provider selection 等 assembly facts。 -- Product Assembly 已承接 `DeliveryProfile`、`CapabilitySet`、完整 product-full provider plan、service availability - report 和 profile-scoped harness registry 入口;core tool runtime 与 harness facade 已改为消费显式 Product Assembly plan, - 并保持旧 facade 输出等价。 - -### 1.4 Agent Runtime 与 Harness 契约基线 - -- `agent-runtime` 已承接 scheduler/background delivery 的纯决策、turn outcome lifecycle plan、thread goal runtime 的 - accounting / mutation / continuation plan、subagent visibility / availability、prompt cache facts、mode/source presentation facts、 - scheduled-job lifecycle state、custom subagent schema/default/markdown IO/discovery/loading、post-call hook routing、 - tool confirmation plan、goal/user-question tool wire contract、`SessionControl` 输入契约 / cancel route / 结果文案、 - builtin agent catalog 和部分 event fact 映射。 -- core 仍保留 concrete session manager、metadata/persistence IO、scheduler lifecycle、event emitter、 - permission UI/channel wait、concrete prompt assembly、product `Tool` adapter 和具体 hook side effect。 -- `harness` 已建立 workflow descriptor、legacy route plan、provider registry,并注册 Deep Review、DeepResearch、 - MiniApp 的 legacy-facade provider。 -- Harness 当前只证明 route/descriptor 边界,不代表 concrete workflow execution 已迁移。 - -### 1.5 Product Domain 与 function-agent / MiniApp 边界 - -- `product-domains` 已承接 MiniApp 的纯状态、runtime detection policy、worker capacity / idle / LRU policy、 - host method、`fs.*` / `shell.exec` host call plan、fs access / shell token / cwd / timeout / env 等纯决策, - 以及 function-agent prompt / parser / response policy / ports。 -- 内置 MiniApp bundle identity、版本和 embedded source assets 已归入 `product-domains`。 -- function-agent Git concrete snapshot、no-HEAD diff fallback、非 Git workspace fallback、ahead/behind/last-commit - fallback 和 project context lookup 已迁入 `services-integrations::function_agents`。 -- function-agent AI provider acquisition、AI transport error mapping、MiniApp worker process、host side-effect dispatch、 - `net.fetch` / `os.info` runtime execution、PathManager integration、marker IO 和 seed 写盘仍留在 core concrete path。 - -### 1.6 M5 feature matrix 与 workspace crate 分层 - -- Desktop、CLI 与 ACP 入口均显式以 `default-features = false` + `product-full` 依赖 `bitfun-core`,继续保护完整产品能力集合。 -- Server、Web UI 与 Mobile Web 当前不直接依赖 `bitfun-core`,通过 app / API / transport 边界消费能力。 -- Remote 能力仍作为完整产品集合中的 capability / service integration 组合存在,主要由 `service-integrations` 与 `ssh-remote` - feature group 表达,不声明为独立交付 crate。 -- `src/crates` 已按 `surfaces/`、`facade/`、`integrations/`、`services/`、`product/`、`execution/`、`contracts/` 物理分层; - package name、crate name 和产品功能语义保持不变。 -- `cargo metadata --no-deps`、`cargo tree` 与 `cargo check --workspace` 已证明迁移后的 workspace path 和 product-full - feature graph 可解析。当前 `bitfun-core` no-default 依赖树为 649 行,product-full 为 1228 行。 -- AGENTS module index、README / Contributing 路径说明、i18n contract、DeepReview path classifier 和 core boundary rules - 已同步到分层路径。 - -### 1.7 Product Assembly / Core Facade 收口 - -- `bitfun-core::product_assembly` 已收敛为兼容 facade,provider-neutral assembly facts 由 - `bitfun-product-capabilities` 提供,core-specific runtime service provider 移到 `bitfun-core::product_runtime`。 -- `agentic::harness` 不再在 core 内重新构造 Product Assembly plan,profile-scoped harness registry 入口由 - `bitfun-product-capabilities` 提供,旧 core 路径继续 re-export 保持兼容。 -- boundary check 已禁止 `product_assembly` 重新承载 concrete provider 注册,以及 core harness facade 重新构造 product assembly plan。 +- 已抽取 `bitfun-core-types`、`bitfun-events`、`bitfun-agent-stream`、`bitfun-runtime-ports` 等基础契约与轻量 owner。 +- 已建立 `bitfun-services-core`、`bitfun-services-integrations`、`bitfun-agent-tools`、`bitfun-tool-packs`、`bitfun-product-domains`、`bitfun-runtime-services`、`bitfun-agent-runtime`、`bitfun-harness`、`bitfun-product-capabilities` 等 owner crate 基线。 +- `bitfun-core` 已通过 facade / re-export 保持旧路径兼容,并逐步形成 `product_runtime`、`product_domain_runtime`、`service_agent_runtime` 等迁移期组装入口。 + +### 1.2 Runtime Services 与 ports + +- `runtime-ports` 已承接 workspace、session store、remote workspace/projection、tool runtime handles、thread goal DTO、scheduled-job state 等稳定接口或事实。 +- `runtime-services` 已建立 typed service bundle、builder、capability availability、provider 注册和 fake provider 测试基础。 +- remote workspace facts、remote session metadata、remote file projection DTO、remote workspace/projection host trait 已归入稳定接口层,并保留旧路径 re-export。 +- session restore 的 storage path resolution、turn-load request、restore timing facts 已进入 Runtime Services / Runtime Ports 边界;core 仍保留具体 persistence IO。 + +### 1.3 Tool 与 Product Capability 基线 + +- `tool-contracts`(Cargo package `bitfun-agent-tools`)已承接 provider-neutral tool DTO、manifest/catalog 策略、execution admission gate、collapsed unlock gate、static provider materialization 和 plan-to-registry assembly。 +- `tool-execution`(Cargo package `tool-runtime`)已承接本地 Write / Edit / Delete / Glob 以及远程 Delete / Read / LS / Glob / Grep 的部分低层 execution helper;core 仍负责 agent-facing adapter、权限、checkpoint、remote shell 和 result 包装。 +- `tool-provider-groups`(Cargo package `bitfun-tool-packs`)已承接 tool provider group plan、按 id 选择和 unknown provider group 校验。 +- `product-capabilities` 已承接 capability id、required service capability、tool provider group selection 和 harness provider selection 等 assembly facts。 +- Product Assembly 已承接 `DeliveryProfile`、`CapabilitySet`、product-full provider plan、service availability report 和 profile-scoped harness registry 入口。 + +### 1.4 Agent Runtime、Harness 与 Product Domain + +- `agent-runtime` 已承接 scheduler/background delivery 纯决策、turn outcome lifecycle plan、thread goal runtime、subagent visibility、prompt cache facts、mode/source presentation facts、scheduled-job lifecycle state、custom subagent schema/default/markdown IO/discovery/loading、post-call hook routing、tool confirmation plan、goal/user-question tool wire contract、SessionControl 输入契约和部分 event fact 映射。 +- core 仍保留 concrete session manager、metadata/persistence IO、scheduler lifecycle、event emitter、permission UI/channel wait、concrete prompt assembly、product `Tool` adapter 和具体 hook side effect。 +- `harness` 已建立 workflow descriptor、legacy route plan、provider registry,并注册 Deep Review、DeepResearch、MiniApp 的 legacy-facade provider;当前只证明 route/descriptor 边界,不代表 concrete workflow execution 已迁移。 +- `product-domains` 已承接 MiniApp 纯状态、runtime detection policy、worker capacity / idle / LRU policy、host method、`fs.*` / `shell.exec` host call plan、function-agent prompt / parser / response policy / ports,以及部分 MiniApp bundle identity 和 function-agent Git snapshot/fallback 逻辑。 + +### 1.5 六层 workspace 布局 + +- `src/crates` 已按六层物理布局整理:`interfaces/`、`assembly/`、`adapters/`、`services/`、`execution/`、`contracts/`。 +- 旧 `surfaces` 和 `providers` 目标层级已被移除:协议入口归入 `interfaces`,协议/transport/provider 转换归入 `adapters`,OS/runtime infrastructure 具体实现归入 `services`。 +- execution 下 tool 相关目录已按职责命名:`tool-contracts`、`tool-provider-groups`、`tool-execution`。Cargo package / lib 名保持兼容。 +- AGENTS、README、DeepReview path classifier、core boundary rules 和 Cargo workspace path 已同步到当前分层。 ## 2. 已建立的保护 - owner crate 不得依赖回 `bitfun-core`。 - `product-full` 继续保护完整产品能力集合。 -- boundary check 已覆盖多个 owner crate 的禁止依赖、旧路径 facade-only、回流约束、Product Assembly facade 收口和物理 crate layout。 -- 已有 focused baseline 覆盖 tool manifest、GetToolSpec、execution admission、MiniApp storage / builtin asset、 - remote workspace fallback、MCP config/catalog、agent-runtime prompt cache、custom subagent、thread-goal tools、 - AskUserQuestion、DeepReview hook measurement、tool confirmation、product capability pack、session restore、 - local/remote tool IO helper、function-agent Git、scheduled-job state 等路径。 -- 构建脚本、installer 和发布形态不是 core decomposition 迁移的默认修改范围。 +- boundary check 覆盖 owner crate 禁止依赖、旧路径 facade-only、回流约束、Product Assembly facade 收口和物理 crate layout。 +- DeepReview 路径分类按六层物理 crate 解析,避免把同层多个 crate 合并成一个风险 area。 +- focused baseline 已覆盖 tool manifest、GetToolSpec、execution admission、MiniApp storage / builtin asset、remote workspace fallback、MCP config/catalog、agent-runtime prompt cache、custom subagent、thread-goal tools、AskUserQuestion、DeepReview hook measurement、tool confirmation、product capability pack、session restore、local/remote tool IO helper、function-agent Git、scheduled-job state 等路径。 ## 3. 明确未完成边界 -- `bitfun-core` 仍是完整产品 runtime 组装点,不能声明已经退化为纯 compatibility facade;本次只完成 Product Assembly facade - 与 core product runtime adapter 的边界收口。 -- 产品入口仍主要通过 `bitfun-core` 的 `product-full` 获取完整能力;Product Assembly 已可表达当前完整能力集合, - 但尚未真正按交付形态裁剪 default feature / dependency。 -- concrete session manager、scheduler lifecycle、event delivery、permission UI/channel wait、prompt assembly、 - session persistence IO、AI client factory / provider acquisition 仍在 core。 -- Bash tool orchestration、terminal lifecycle / PTY、indexed workspace search service owner、remote shell executor abstraction、 - remote terminal concrete impl、MiniApp worker / host / seed / marker IO、Deep Review / DeepResearch / MiniApp concrete workflow execution - 仍未完成 owner 迁移。 -- no-default 与 product-full 的依赖边界已有数据基线,但 no-default 仍包含较多 concrete 依赖;不能声称各交付形态已达到最小依赖。 +- `bitfun-core` 仍是完整产品 runtime 组装点,不能声称已经退化为纯 compatibility facade。 +- 产品入口仍主要通过 `bitfun-core/product-full` 获取完整能力;Product Assembly 已可表达当前完整能力集合,但尚未真正按交付形态裁剪 default feature / dependency。 +- concrete session manager、scheduler lifecycle、event delivery、permission UI/channel wait、prompt assembly、session persistence IO、AI client factory / provider acquisition 仍在 core。 +- Bash tool orchestration、terminal lifecycle / PTY、indexed workspace search service owner、remote shell executor abstraction、remote terminal concrete impl、MiniApp worker / host / seed / marker IO、Deep Review / DeepResearch / MiniApp concrete workflow execution 仍未完成 owner 迁移。 +- no-default 与 product-full 的依赖边界已有数据基线,但 no-default 仍包含较大 concrete 依赖;不能声称各交付形态已达到最小依赖。 diff --git a/docs/plans/core-decomposition-plan.md b/docs/plans/core-decomposition-plan.md index ef6500e63..5647d39a0 100644 --- a/docs/plans/core-decomposition-plan.md +++ b/docs/plans/core-decomposition-plan.md @@ -1,90 +1,56 @@ # BitFun Core 拆解与运行时迁移执行计划 -本文是活跃执行计划。计划只从 Issue #970 原始目标、当前代码状态和两篇设计文档推导,不再沿用历史阶段标签 -作为事实口径。已完成事实只归档在 +本文是活跃执行计划。稳定目标以 +[`core-decomposition.md`](../architecture/core-decomposition.md) 和 +[`agent-runtime-services-design.md`](../architecture/agent-runtime-services-design.md) +为准;已完成事实归档在 [`core-decomposition-completed.md`](core-decomposition-completed.md)。 -稳定设计基线: - -- [`core-decomposition.md`](../architecture/core-decomposition.md):初始状态、目标状态、分层和风险。 -- [`agent-runtime-services-design.md`](../architecture/agent-runtime-services-design.md):目标接口、crate 内部职责和质量保护。 - ## 1. 执行原则 -- 最终目标是让 `bitfun-core` 从 concrete runtime / product logic 中心收敛为 compatibility facade 与产品组装边界。 -- 依赖方向保持为:Product Surfaces / Protocol Surfaces -> Facade / Product Assembly - -> Product Capabilities / Concrete Provider Adapters / Services -> Execution Primitives - -> Stable Contracts / External Providers。 -- 新增抽象必须同时删除、迁移或显著简化既有 core 路径;纯 facade、纯 guard、纯文档或只新增空接口不算 owner 迁移完成。 -- 设计文档保持稳定,只在目标架构判断本身需要修正时修改;阶段状态和执行节奏只写入本计划和 completed 归档。 +- 最终目标是让 `bitfun-core` 从完整 runtime / product logic 中心收敛为 compatibility facade 与 Product Assembly 边界。 +- `src/crates` 采用六层物理布局:`interfaces -> assembly -> adapters -> services -> execution -> contracts`。依赖只能自上而下。 +- `adapters` 负责协议、transport、外部 provider 和宿主通信转换;`services` 负责 OS、filesystem、terminal、MCP、remote、git、watch、process 等可复用具体实现。 +- `execution` 是执行原语层,不是完整运行时实现层。Agent、Harness、stream、typed-service、tool contracts、tool provider groups 和 tool execution helper 分别保持清晰 owner。 +- 新增抽象必须同时删除、迁移或显著简化现有 core 路径;纯 facade、纯 guard、纯文档或空接口不算 owner 迁移完成。 - 任何可能改变产品行为、权限语义、工具曝光、事件语义、session 生命周期、remote 行为、MiniApp 行为或发布形态的变更必须暂停并单独评审。 +- 设计文档默认不随 PR 更新。只有目标架构本身需要修正时,才修改设计文档;阶段状态只写入本计划、completed 归档和 issue。 ## 2. 当前代码基线判断 -当前代码基线已包含 M1-M4 的 owner 迁移与 M5 的 workspace 分层整理。但当前代码仍未达到设计文档的最终目标状态: - -- 产品入口仍通过 `bitfun-core` 的 `product-full` 获得完整能力;Desktop / CLI / ACP 已显式选择完整能力集合, - Server / Web / Mobile Web 不直接依赖 core,但尚未完成按交付形态裁剪 default feature / dependency。 -- `src/crates` 已按 `surfaces/`、`facade/`、`integrations/`、`services/`、`product/`、`execution/`、`contracts/` 分层, - 并由 boundary check 保护;package 名称和产品功能语义保持不变。 -- `runtime-services` 已有 typed builder、capability availability 和 core product runtime provider adapter 组合; - `product_assembly` 已收敛为兼容 facade,但许多 concrete provider 仍在 core 创建或持有。 -- core 仍持有 `SessionManager`、`ExecutionEngine`、`PersistenceManager`、`CronService`、`MiniAppManager`、 - `RemoteFileService`、`RemoteTerminalManager`、`WorkspaceSearchService`、AI client factory 和大量 concrete tool adapter。 -- `tool-runtime` 已迁移部分低风险本地 IO primitive,但 Bash、terminal lifecycle、indexed search、remote shell、 - permission UI/channel wait、checkpoint orchestration 和完整 execution pipeline 仍不是独立 Tool Runtime owner。 -- `harness` 当前主要承接 descriptor / route plan / registry contract,Deep Review、DeepResearch、MiniApp 的 concrete workflow execution - 仍留在 core 或产品路径。 -- feature / dependency 已有 no-default 与 product-full 的基线数据,但 no-default 仍包含较多 concrete 依赖, - 不能声称不同交付形态已经可以按最小依赖组合。 +- 物理目录已按六层展开,旧 `surfaces` 和 `providers` 层级不再作为目标层级存在。 +- Cargo package / lib 名保持兼容;例如 `tool-contracts` 仍发布为 `bitfun-agent-tools`,`tool-provider-groups` 仍发布为 `bitfun-tool-packs`,`tool-execution` 仍发布为 `tool-runtime`。 +- Desktop / CLI / ACP 仍通过 `bitfun-core/product-full` 获取完整能力;Server / Web / Mobile Web 不直接依赖 core,但尚未完成按交付形态裁剪最小 feature / dependency。 +- `runtime-services` 已有 typed builder、capability availability 和 core product runtime provider adapter,但不少 concrete provider 仍在 core 创建或持有。 +- `tool-contracts` 已承接 provider-neutral tool manifest、admission、catalog、result policy 等纯策略;`tool-execution` 只承接部分低层 IO/search helper;Bash、terminal lifecycle、indexed search、remote shell、permission wait、checkpoint orchestration 和完整 execution pipeline 仍未完全迁移。 +- `harness` 当前主要承接 descriptor / route plan / registry contract;Deep Review、DeepResearch、MiniApp 的 concrete workflow execution 仍在 core 或产品路径。 +- `product-domains` 已承接 MiniApp / function-agent 的部分纯领域逻辑;worker、host side effect、AI acquisition、marker IO 等 concrete path 仍未完成 owner 迁移。 ## 3. PR 准出门禁 每个迁移 PR 必须同时满足: - 有完整 owner 主题,且范围足够迁移真实逻辑主体。 -- 保留旧路径兼容,删除或明显简化对应 core 主体路径。 +- 保留旧路径兼容,并删除、迁移或显著简化对应 core 主体路径。 - 有 focused regression、snapshot、contract test 或产品入口验证证明行为等价。 - boundary check 覆盖新 owner 和旧路径 facade,禁止反向依赖、Tauri 下沉、无类型 service locator 和全局 mutable registry 膨胀。 - PR 描述只说明本次 diff 的变更、风险、验证和剩余边界,不写过程信息。 不满足上述门禁时,不允许把变更作为独立 PR 提交。 -## 4. 当前计划闭环 - -M1-M5 已完成当前计划中的低风险边界收敛、保护基线和目录分层工作。 -[`core-decomposition-completed.md`](core-decomposition-completed.md) 保留已完成事实与明确未完成边界。 +## 4. 后续执行节奏 -| 阶段 | 已完成内容 | 未闭合边界 | +| 阶段 | 目标 | 准出标准 | |---|---|---| -| M1 Product Assembly / Runtime Services | 建立 product-full provider plan、capability availability 和 service provider 基线;Product Assembly facade 已收口到兼容导出 | 具体 provider 构造仍大量留在 core product runtime adapter | -| M2 Tool Runtime IO/search helper | 将低层 filesystem/search 规划与 helper 迁入 `tool-runtime` | Bash、checkpoint、UI/channel 与 workspace shell 仍由 core adapter 组装 | -| M3 Agent Runtime lifecycle | turn outcome、SessionControl、thread goal、scheduler 决策等 runtime 纯逻辑进入 `agent-runtime` | concrete session manager、event emitter、permission wait 与 prompt assembly 仍在 core | -| M4 Harness / Product Domain | MiniApp 纯决策、bundle facts、function-agent Git concrete snapshot 等进入 owner crate | MiniApp worker/IO、AI provider acquisition 与 DeepReview concrete workflow 仍未完成迁移 | -| M5 feature matrix / directory layout | `src/crates` 已物理分层,feature matrix 与 no-default/product-full 数据基线已更新 | no-default 仍包含较多 concrete 依赖,产品形态尚未达到最小依赖闭环 | - -### 4.1 M5 capability / feature matrix - -| 产品形态 | 当前依赖 / feature 状态 | 判断 | -|---|---|---| -| Desktop | `src/apps/desktop` 以 `default-features = false` + `product-full` 依赖 `bitfun-core` | 保持完整产品能力;Tauri / WebDriver 仍属于 app / integration 层 | -| CLI | `src/apps/cli` 以 `default-features = false` + `product-full` 依赖 `bitfun-core`,并启用 ACP 协议入口 | 保持现有能力集合;后续可继续收敛 CLI feature set | -| ACP | `src/crates/surfaces/acp` 当前依赖 `bitfun-core/product-full` | ACP 是产品协议入口,不是 execution/runtime owner | -| Server | `src/apps/server` 当前不直接依赖 `bitfun-core` | 维持 server route / static runtime 边界 | -| Remote | 通过 `service-integrations`、`ssh-remote` 和 runtime ports 表达 | 属于能力组合和 provider 实现,不是独立产品 crate | -| Web / Mobile Web | 当前不直接依赖 Rust core crate,通过 API / transport / event DTO 消费能力 | 分层路径迁移不应改变前端行为 | - -M5 已通过 `cargo metadata --no-deps` 验证 workspace 结构;`bitfun-core` no-default 依赖树为 649 行,`product-full` 为 1228 行。 -`cargo check --workspace`、`node scripts/check-core-boundaries.mjs` 和 repo hygiene 已验证通过。 - -## 5. 执行节奏 - -M1-M5 已作为当前计划闭环。后续如继续推进设计文档中的 runtime / service / product owner 深迁移,需要从 Issue #970 -和稳定设计文档重新确认 owner 边界;如果发现风险超过单 PR 可控范围,只允许按 owner 边界拆分,不允许拆成 facade / guard / helper 小 PR。 +| M6 Service / Adapter owner 深迁移 | 将 core 中仍直接持有的 service、remote、MCP、Git、terminal、AI/API/transport adapter 创建路径继续下沉到 `services` 或 `adapters` | core 对应路径明显删除或简化;service/adapter 依赖不反向指向 assembly;产品行为等价测试覆盖 | +| M7 Tool execution 深迁移 | 将 Bash、indexed search、remote shell、checkpoint/permission 边界和 tool execution pipeline 的可复用主体迁入 `tool-contracts` / `tool-execution` / `services` | prompt-visible manifest、permission、GetToolSpec、remote/local IO、oversized result 与 cancellation 行为等价 | +| M8 Harness / Agent runtime 收口 | 将 Deep Review / DeepResearch / MiniApp workflow concrete execution、scheduler lifecycle、event delivery、prompt assembly 和 session side effect 继续从 core 收敛到 owner 边界 | workflow route 与 side effect 有 focused tests;agent runtime 不依赖 service/app concrete impl | +| M9 Product shape / feature trimming | 基于 capability matrix 裁剪 no-default/product-full 和不同交付形态依赖 | cargo metadata / cargo tree 有对比数据;各产品形态构建与关键入口验证通过 | +| M10 Core facade 收口 | 将 `bitfun-core` 限定为 compatibility facade、product-full assembly 和少量迁移期 adapter | core 不再是事实 runtime owner;边界脚本阻止 owner 逻辑回流 | -每个里程碑固定流程: +## 5. 固定执行流程 -1. 同步最新 `main`,检查主干新增的 tool、remote、session、scheduler、CLI、mobile-web、ACP 或 product surface 变更。 +1. 同步最新 `main`,检查主干新增的 tool、remote、session、scheduler、CLI、mobile-web、ACP 或 product interface 变更。 2. 对照 Issue #970 和设计文档确认本次 owner 边界,不从旧 plan 标签继承完成判断。 3. 先补等价保护,再迁移实现主体。 4. 删除、迁移或显著简化 core 中对应旧路径。 @@ -94,34 +60,30 @@ M1-M5 已作为当前计划闭环。后续如继续推进设计文档中的 runt ## 6. 验证矩阵 -| 触碰范围 | 最小验证 | +| 触达范围 | 最小验证 | |---|---| -| docs / boundary script | `pnpm run check:repo-hygiene`,必要时 `node scripts/check-core-boundaries.mjs` | +| docs / boundary script / layout | `pnpm run check:repo-hygiene`,`node --test scripts/check-core-boundaries.test.mjs`,`node scripts/check-core-boundaries.mjs` | +| Workspace layout / Cargo path | `cargo metadata --no-deps --format-version 1` | | Runtime Services / ports | `cargo test -p bitfun-runtime-services`,`cargo check -p bitfun-core --features product-full` | -| Tool Runtime | `cargo test -p bitfun-agent-tools`,`cargo test -p bitfun-tool-runtime`,tool focused tests | +| Tool primitives | `cargo test -p bitfun-agent-tools`,`cargo test -p tool-runtime`,tool focused tests | | Agent Runtime | `cargo test -p bitfun-agent-runtime`,core session / scheduler / goal / subagent focused tests | | Harness | `cargo test -p bitfun-harness`,core harness focused tests | | Product Domains | `cargo test -p bitfun-product-domains`,MiniApp / function-agent focused tests | -| Desktop / Tauri/API | `cargo check -p bitfun-desktop`,并确认 Tauri 未下沉到 runtime owner | +| Desktop / Tauri/API | `cargo check -p bitfun-desktop`,并确认 Tauri 未下沉到 execution 或 contracts | | 大范围 owner 迁移 | `cargo check --workspace`,必要时补 `cargo test --workspace` | | feature / dependency 收益 | `cargo metadata`,`cargo tree`,对应 build/check 对比 | ## 7. 暂停条件 -- 迁移必须改变用户可见行为、权限策略、工具 schema、默认能力集合或 release 构建形态才能继续。 +- 迁移必须改变用户可见行为、权限策略、工具 schema、默认能力集合或 release 构建形态。 - 新 owner crate 必须依赖回 `bitfun-core` 才能编译或测试。 -- Runtime / contract crate 开始吸收 Tauri、CLI/TUI、process execution、network client、Git provider、AI provider、MCP client 等 concrete dependency。 +- Execution / contract crate 开始吸收 Tauri、CLI/TUI、process execution、network client、Git provider、AI provider、MCP client 等 concrete dependency。 - Product Assembly 变成无类型 service locator 或全局 mutable app state。 -- `bitfun-core::product_assembly` 重新承载 concrete provider 注册、harness registry 构造或非兼容 facade 逻辑。 -- 无法为 remote、tool、MiniApp、function-agent、scheduler、session lifecycle 迁移提供等价测试或可复核 snapshot。 -- PR 只新增抽象而没有迁移、删除或显著简化旧 core 主体路径。 +- PR 只新增抽象,没有迁移、删除或显著简化旧 core 主体路径。 ## 8. 完成标准 -- `bitfun-core` 只保留 compatibility facade 与 product-full / Product Assembly 兼容边界;Product Assembly 事实由 owner crate - 提供,core-specific adapter 留在清晰的 product runtime 边界内。 -- Agent Runtime SDK、Runtime Services、Tool Runtime、Harness、Product Capabilities、Product Domains、Concrete Provider Adapters 和 Services - 的职责边界可被代码结构、依赖检查和测试证明。 -- 产品入口通过 Product Assembly / capability matrix 显式选择能力和 provider,不再被完整 core 隐式牵引。 -- 高风险路径具备旧路径兼容、等价保护、明确回滚边界和产品形态验证。 +- `bitfun-core` 只保留 compatibility facade、product-full / Product Assembly 兼容边界和清晰的迁移期 adapter。 +- Agent Runtime、Runtime Services、Tool Contracts、Tool Provider Groups、Tool Execution、Harness、Product Capabilities、Product Domains、Adapters 和 Services 的职责边界可由代码结构、依赖检查和测试证明。 +- 产品入口通过 Product Assembly / capability matrix 显式选择能力,不再被完整 core 隐式牵引。 - feature / dependency trimming 有数据证明,且不以功能缺失、权限漂移或性能劣化换取构建收益。 diff --git a/scripts/core-boundaries/rules/crate-layout.mjs b/scripts/core-boundaries/rules/crate-layout.mjs index 7e959b6d5..21fcbabd7 100644 --- a/scripts/core-boundaries/rules/crate-layout.mjs +++ b/scripts/core-boundaries/rules/crate-layout.mjs @@ -4,38 +4,37 @@ export const crateLayoutRules = [ { crateName: 'core-types', layer: 'contracts', path: 'src/crates/contracts/core-types' }, { crateName: 'events', layer: 'contracts', path: 'src/crates/contracts/events' }, + { crateName: 'product-domains', layer: 'contracts', path: 'src/crates/contracts/product-domains' }, { crateName: 'runtime-ports', layer: 'contracts', path: 'src/crates/contracts/runtime-ports' }, { crateName: 'agent-runtime', layer: 'execution', path: 'src/crates/execution/agent-runtime' }, { crateName: 'agent-stream', layer: 'execution', path: 'src/crates/execution/agent-stream' }, - { crateName: 'agent-tools', layer: 'execution', path: 'src/crates/execution/agent-tools' }, + { crateName: 'agent-tools', layer: 'execution', path: 'src/crates/execution/tool-contracts' }, { crateName: 'harness', layer: 'execution', path: 'src/crates/execution/harness' }, { crateName: 'runtime-services', layer: 'execution', path: 'src/crates/execution/runtime-services' }, - { crateName: 'tool-packs', layer: 'execution', path: 'src/crates/execution/tool-packs' }, - { crateName: 'tool-runtime', layer: 'execution', path: 'src/crates/execution/tool-runtime' }, + { crateName: 'tool-packs', layer: 'execution', path: 'src/crates/execution/tool-provider-groups' }, + { crateName: 'tool-runtime', layer: 'execution', path: 'src/crates/execution/tool-execution' }, - { crateName: 'product-capabilities', layer: 'product', path: 'src/crates/product/product-capabilities' }, - { crateName: 'product-domains', layer: 'product', path: 'src/crates/product/product-domains' }, + { crateName: 'product-capabilities', layer: 'assembly', path: 'src/crates/assembly/product-capabilities' }, { crateName: 'services-core', layer: 'services', path: 'src/crates/services/services-core' }, { crateName: 'services-integrations', layer: 'services', path: 'src/crates/services/services-integrations' }, { crateName: 'terminal', layer: 'services', path: 'src/crates/services/terminal' }, - { crateName: 'acp', layer: 'surfaces', path: 'src/crates/surfaces/acp' }, - { crateName: 'ai-adapters', layer: 'integrations', path: 'src/crates/integrations/ai-adapters' }, - { crateName: 'api-layer', layer: 'integrations', path: 'src/crates/integrations/api-layer' }, - { crateName: 'transport', layer: 'integrations', path: 'src/crates/integrations/transport' }, - { crateName: 'webdriver', layer: 'integrations', path: 'src/crates/integrations/webdriver' }, + { crateName: 'acp', layer: 'interfaces', path: 'src/crates/interfaces/acp' }, + { crateName: 'ai-adapters', layer: 'adapters', path: 'src/crates/adapters/ai-adapters' }, + { crateName: 'api-layer', layer: 'adapters', path: 'src/crates/adapters/api-layer' }, + { crateName: 'transport', layer: 'adapters', path: 'src/crates/adapters/transport' }, + { crateName: 'webdriver', layer: 'adapters', path: 'src/crates/adapters/webdriver' }, - { crateName: 'core', layer: 'facade', path: 'src/crates/facade/core' }, + { crateName: 'core', layer: 'assembly', path: 'src/crates/assembly/core' }, ]; export const crateLayoutLayerNames = [ - 'surfaces', - 'facade', - 'integrations', + 'interfaces', + 'assembly', + 'adapters', 'services', - 'product', 'execution', 'contracts', ]; diff --git a/scripts/core-boundaries/rules/feature-rules.mjs b/scripts/core-boundaries/rules/feature-rules.mjs index f30cf9a57..b13b3fa94 100644 --- a/scripts/core-boundaries/rules/feature-rules.mjs +++ b/scripts/core-boundaries/rules/feature-rules.mjs @@ -98,7 +98,7 @@ export const productCoreFeatureAssemblyRules = [ reason: 'CLI must explicitly assemble the full bitfun-core product runtime', }, { - manifestPath: 'src/crates/surfaces/acp/Cargo.toml', + manifestPath: 'src/crates/interfaces/acp/Cargo.toml', dependencyName: 'bitfun-core', requiredFeatures: ['product-full'], reason: 'ACP must explicitly assemble the full bitfun-core product runtime', @@ -107,11 +107,11 @@ export const productCoreFeatureAssemblyRules = [ export const productCoreFeatureAssemblyScanRoots = [ 'src/apps', - 'src/crates/surfaces/acp', + 'src/crates/interfaces/acp', ]; export const coreProductFullFeatureAssemblyRule = { - manifestPath: 'src/crates/facade/core/Cargo.toml', + manifestPath: 'src/crates/assembly/core/Cargo.toml', featureName: 'product-full', requiredFeatureRefs: [ 'ssh-remote', @@ -125,7 +125,7 @@ export const coreProductFullFeatureAssemblyRule = { export const ownerCrateFeatureAssemblyRules = [ { - manifestPath: 'src/crates/execution/tool-packs/Cargo.toml', + manifestPath: 'src/crates/execution/tool-provider-groups/Cargo.toml', reason: 'tool-packs must keep product feature groups explicit and default-light', requiredProductFullFeatures: [ 'basic', @@ -152,7 +152,7 @@ export const ownerCrateFeatureAssemblyRules = [ ], }, { - manifestPath: 'src/crates/product/product-domains/Cargo.toml', + manifestPath: 'src/crates/contracts/product-domains/Cargo.toml', reason: 'product-domains must keep product domain feature groups explicit and default-light', requiredProductFullFeatures: ['miniapp', 'function-agents'], }, diff --git a/scripts/core-boundaries/rules/source/facade-rules.mjs b/scripts/core-boundaries/rules/source/facade-rules.mjs index 19387531e..659e74e70 100644 --- a/scripts/core-boundaries/rules/source/facade-rules.mjs +++ b/scripts/core-boundaries/rules/source/facade-rules.mjs @@ -2,92 +2,92 @@ export const facadeOnlyFiles = [ { - path: 'src/crates/facade/core/src/infrastructure/filesystem/mod.rs', + path: 'src/crates/assembly/core/src/infrastructure/filesystem/mod.rs', importPrefix: 'bitfun_services_core::filesystem', reason: 'core filesystem infrastructure facade must only re-export the services-core owner crate', }, { - path: 'src/crates/facade/core/src/service/filesystem/listing.rs', + path: 'src/crates/assembly/core/src/service/filesystem/listing.rs', importPrefix: 'bitfun_services_core::filesystem', reason: 'core filesystem listing facade must only re-export the services-core owner crate', }, { - path: 'src/crates/facade/core/src/service/filesystem/types.rs', + path: 'src/crates/assembly/core/src/service/filesystem/types.rs', importPrefix: 'bitfun_services_core::filesystem', reason: 'core filesystem DTO facade must only re-export the services-core owner crate', }, { - path: 'src/crates/facade/core/src/service/git/git_service.rs', + path: 'src/crates/assembly/core/src/service/git/git_service.rs', importPrefix: 'bitfun_services_integrations::git', reason: 'core git service facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/git/git_types.rs', + path: 'src/crates/assembly/core/src/service/git/git_types.rs', importPrefix: 'bitfun_services_integrations::git', reason: 'core git types facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/git/git_utils.rs', + path: 'src/crates/assembly/core/src/service/git/git_utils.rs', importPrefix: 'bitfun_services_integrations::git', reason: 'core git utils facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/git/graph.rs', + path: 'src/crates/assembly/core/src/service/git/graph.rs', importPrefix: 'bitfun_services_integrations::git', reason: 'core git graph facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/remote_ssh/types.rs', + path: 'src/crates/assembly/core/src/service/remote_ssh/types.rs', importPrefix: 'bitfun_services_integrations::remote_ssh', reason: 'core remote SSH types facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/tool_info.rs', + path: 'src/crates/assembly/core/src/service/mcp/tool_info.rs', importPrefix: 'bitfun_services_integrations::mcp', reason: 'core MCP tool info facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/tool_name.rs', + path: 'src/crates/assembly/core/src/service/mcp/tool_name.rs', importPrefix: 'bitfun_services_integrations::mcp', reason: 'core MCP tool name facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/protocol/types.rs', + path: 'src/crates/assembly/core/src/service/mcp/protocol/types.rs', importPrefix: 'bitfun_services_integrations::mcp', reason: 'core MCP protocol types facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/protocol/transport.rs', + path: 'src/crates/assembly/core/src/service/mcp/protocol/transport.rs', importPrefix: 'bitfun_services_integrations::mcp::protocol', reason: 'core MCP stdio transport facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/protocol/transport_remote.rs', + path: 'src/crates/assembly/core/src/service/mcp/protocol/transport_remote.rs', importPrefix: 'bitfun_services_integrations::mcp::protocol', reason: 'core MCP remote transport facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/server/connection.rs', + path: 'src/crates/assembly/core/src/service/mcp/server/connection.rs', importPrefix: 'bitfun_services_integrations::mcp::server', reason: 'core MCP connection facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/config/location.rs', + path: 'src/crates/assembly/core/src/service/mcp/config/location.rs', importPrefix: 'bitfun_services_integrations::mcp', reason: 'core MCP config location facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/adapter/resource.rs', + path: 'src/crates/assembly/core/src/service/mcp/adapter/resource.rs', importPrefix: 'bitfun_services_integrations::mcp', reason: 'core MCP resource adapter facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/mcp/adapter/prompt.rs', + path: 'src/crates/assembly/core/src/service/mcp/adapter/prompt.rs', importPrefix: 'bitfun_services_integrations::mcp', reason: 'core MCP prompt adapter facade must only re-export the integrations owner crate', }, { - path: 'src/crates/facade/core/src/service/announcement/types.rs', + path: 'src/crates/assembly/core/src/service/announcement/types.rs', importPrefix: 'bitfun_services_integrations::announcement', reason: 'core announcement types facade must only re-export the integrations owner crate', }, diff --git a/scripts/core-boundaries/rules/source/forbidden-rules.mjs b/scripts/core-boundaries/rules/source/forbidden-rules.mjs index 48d85feff..6e9147a62 100644 --- a/scripts/core-boundaries/rules/source/forbidden-rules.mjs +++ b/scripts/core-boundaries/rules/source/forbidden-rules.mjs @@ -2,7 +2,7 @@ export const forbiddenContentRules = [ { - path: 'src/crates/facade/core/src/product_assembly.rs', + path: 'src/crates/assembly/core/src/product_assembly.rs', patterns: [ { regex: /\bpub struct CoreRuntimeServicesProvider\b/, @@ -22,7 +22,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/harness.rs', + path: 'src/crates/assembly/core/src/agentic/harness.rs', patterns: [ { regex: /\bproduct_assembly_plan_for_profile\b/, @@ -37,7 +37,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/runtime_services.rs', + path: 'src/crates/assembly/core/src/function_agents/runtime_services.rs', patterns: [ { regex: /\bCoreFunctionAgentGitService\b/, @@ -62,7 +62,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/product/product-capabilities/src/lib.rs', + path: 'src/crates/assembly/product-capabilities/src/lib.rs', patterns: [ { regex: /\bpub struct HarnessProviderDescriptor\b/, @@ -92,7 +92,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/filesystem/service.rs', + path: 'src/crates/assembly/core/src/service/filesystem/service.rs', patterns: [ { regex: /\btokio::fs::/, @@ -122,7 +122,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/runtime_detect.rs', + path: 'src/crates/assembly/core/src/miniapp/runtime_detect.rs', patterns: [ { regex: /\bCoreMiniAppRuntimeProbe\b/, @@ -147,7 +147,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/prompt_builder/user_context.rs', + path: 'src/crates/assembly/core/src/agentic/agents/prompt_builder/user_context.rs', patterns: [ { regex: /\bpub\s+enum\s+UserContextSection\b/, @@ -162,7 +162,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/mod.rs', + path: 'src/crates/assembly/core/src/agentic/agents/mod.rs', patterns: [ { regex: /\bpub const SHARED_CODING_MODE_PROMPT_TEMPLATE\b/, @@ -202,7 +202,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/query.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/query.rs', patterns: [ { regex: /"agentic"\s*=>\s*0[\s\S]*"Cowork"\s*=>\s*1/, @@ -217,7 +217,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/types.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/types.rs', patterns: [ { regex: /\bpub enum SubAgentSource\b/, @@ -227,7 +227,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/session/prompt_cache.rs', + path: 'src/crates/assembly/core/src/agentic/session/prompt_cache.rs', patterns: [ { regex: /\bpub const PROMPT_CACHE_SCHEMA_VERSION\b/, @@ -262,7 +262,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/prompt_builder/prompt_builder_impl.rs', + path: 'src/crates/assembly/core/src/agentic/agents/prompt_builder/prompt_builder_impl.rs', patterns: [ { regex: /\bpub\s+struct\s+ToolListingSections\b/, @@ -277,7 +277,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/execution/types.rs', + path: 'src/crates/assembly/core/src/agentic/execution/types.rs', patterns: [ { regex: /\bpub\s+enum\s+FinishReason\b/, @@ -287,7 +287,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/events/types.rs', + path: 'src/crates/assembly/core/src/agentic/events/types.rs', patterns: [ { regex: /SessionState::Idle\s*=>\s*"idle"/, @@ -307,7 +307,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', patterns: [ { regex: /\bconst\s+MAX_QUEUE_DEPTH\b/, @@ -372,7 +372,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/framework.rs', + path: 'src/crates/assembly/core/src/agentic/tools/framework.rs', patterns: [ { regex: /\bpub struct DynamicMcpToolInfo\b/, @@ -450,7 +450,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs', + path: 'src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -485,7 +485,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/definitions/custom/subagent.rs', + path: 'src/crates/assembly/core/src/agentic/agents/definitions/custom/subagent.rs', patterns: [ { regex: /\bFrontMatterMarkdown\b/, @@ -500,7 +500,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/custom.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/custom.rs', patterns: [ { regex: /\bCustomSubagentLoader\b/, @@ -520,7 +520,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/subagent_runtime/mod.rs', + path: 'src/crates/assembly/core/src/agentic/subagent_runtime/mod.rs', patterns: [ { regex: /\bstruct\s+DelegationPolicy\b/, @@ -535,7 +535,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/coordinator.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/coordinator.rs', patterns: [ { regex: /\benum\s+DialogTriggerSource\b/, @@ -545,7 +545,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', patterns: [ { regex: /\benum\s+DialogQueuePriority\b/, @@ -575,7 +575,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/round_preempt.rs', + path: 'src/crates/assembly/core/src/agentic/round_preempt.rs', patterns: [ { regex: /\btrait\s+DialogRoundPreemptSource\b/, @@ -615,7 +615,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/goal_mode/mod.rs', + path: 'src/crates/assembly/core/src/agentic/goal_mode/mod.rs', patterns: [ { regex: /\bconst\s+GOAL_MODE_METADATA_KEY\b/, @@ -676,7 +676,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/core/message.rs', + path: 'src/crates/assembly/core/src/agentic/core/message.rs', patterns: [ { regex: /\bstruct\s+CompressionContract\b/, @@ -693,7 +693,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/workspace/manager.rs', + path: 'src/crates/assembly/core/src/service/workspace/manager.rs', patterns: [ { regex: /\bstruct\s+RelatedPath\b/, @@ -702,7 +702,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/file_read_state_runtime.rs', + path: 'src/crates/assembly/core/src/agentic/tools/file_read_state_runtime.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -712,7 +712,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_result_storage.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_result_storage.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -722,7 +722,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/post_call_hooks.rs', + path: 'src/crates/assembly/core/src/agentic/tools/post_call_hooks.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -732,7 +732,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_adapter.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_adapter.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -742,7 +742,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -752,7 +752,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/catalog.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/catalog.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -762,7 +762,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -772,7 +772,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/manifest_resolver.rs', + path: 'src/crates/assembly/core/src/agentic/tools/manifest_resolver.rs', patterns: [ { regex: /framework::(?:\{[^}]*\bToolUseContext\b[^}]*\}|\bToolUseContext\b)/, @@ -802,7 +802,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/workspace.rs', + path: 'src/crates/assembly/core/src/agentic/workspace.rs', patterns: [ { regex: /\bpub\s+trait\s+WorkspaceFileSystem\b/, @@ -837,7 +837,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/execution/execution_engine.rs', + path: 'src/crates/assembly/core/src/agentic/execution/execution_engine.rs', patterns: [ { regex: /\bGetToolSpecLoadObservation\b/, @@ -857,7 +857,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/manager.rs', + path: 'src/crates/assembly/core/src/miniapp/manager.rs', patterns: [ { regex: /\bbuild_runtime_state\b/, @@ -887,7 +887,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/restrictions.rs', + path: 'src/crates/assembly/core/src/agentic/tools/restrictions.rs', patterns: [ { regex: /\bpub enum ToolPathOperation\b/, @@ -910,7 +910,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/workspace_paths.rs', + path: 'src/crates/assembly/core/src/agentic/tools/workspace_paths.rs', patterns: [ { regex: /\bpub const BITFUN_RUNTIME_URI_PREFIX\b/, @@ -935,7 +935,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/registry.rs', + path: 'src/crates/assembly/core/src/agentic/tools/registry.rs', patterns: [ { regex: /\bstruct DynamicToolMetadata\b/, @@ -955,7 +955,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/file_read_state_runtime.rs', + path: 'src/crates/assembly/core/src/agentic/tools/file_read_state_runtime.rs', patterns: [ { regex: /\bnormalize_string\b/, @@ -965,7 +965,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_result_storage.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_result_storage.rs', patterns: [ { regex: /\bfn\s+generate_preview\b/, @@ -990,7 +990,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/server/process.rs', + path: 'src/crates/assembly/core/src/service/mcp/server/process.rs', patterns: [ { regex: /\bpub enum MCPServerType\b/, @@ -1027,7 +1027,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/server/manager/mod.rs', + path: 'src/crates/assembly/core/src/service/mcp/server/manager/mod.rs', patterns: [ { regex: /\benum ListChangedKind\b/, @@ -1044,7 +1044,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/server/manager/reconnect.rs', + path: 'src/crates/assembly/core/src/service/mcp/server/manager/reconnect.rs', patterns: [ { regex: /\bfn compute_backoff_delay\b/, @@ -1053,7 +1053,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/server/manager/interaction.rs', + path: 'src/crates/assembly/core/src/service/mcp/server/manager/interaction.rs', patterns: [ { regex: /\bfn detect_list_changed_kind\b/, @@ -1062,7 +1062,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/adapter/tool.rs', + path: 'src/crates/assembly/core/src/service/mcp/adapter/tool.rs', patterns: [ { regex: /\bfn behavior_hints\b/, @@ -1083,7 +1083,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/adapter/context.rs', + path: 'src/crates/assembly/core/src/service/mcp/adapter/context.rs', patterns: [ { regex: /\bpub struct ContextEnhancerConfig\b/, @@ -1100,7 +1100,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/git-func-agent/commit_generator.rs', + path: 'src/crates/assembly/core/src/function_agents/git-func-agent/commit_generator.rs', patterns: [ { regex: /\bGitService::get_status\b/, @@ -1120,7 +1120,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs', + path: 'src/crates/assembly/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs', patterns: [ { regex: /\bAIWorkStateService::new_with_agent_config\b/, @@ -1135,7 +1135,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/server/config.rs', + path: 'src/crates/assembly/core/src/service/mcp/server/config.rs', patterns: [ { regex: /\bpub enum MCPServerTransport\b/, @@ -1168,7 +1168,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/config/cursor_format.rs', + path: 'src/crates/assembly/core/src/service/mcp/config/cursor_format.rs', patterns: [ { regex: /\bfn parse_source\b/, @@ -1185,7 +1185,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/config/json_config.rs', + path: 'src/crates/assembly/core/src/service/mcp/config/json_config.rs', patterns: [ { regex: /\bfn normalize_source\b/, @@ -1206,7 +1206,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/config/service.rs', + path: 'src/crates/assembly/core/src/service/mcp/config/service.rs', patterns: [ { regex: /\bconst AUTHORIZATION_KEYS\b/, @@ -1231,7 +1231,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/auth.rs', + path: 'src/crates/assembly/core/src/service/mcp/auth.rs', patterns: [ { regex: /\bstruct VaultFile\b/, @@ -1260,7 +1260,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/protocol/transport_remote.rs', + path: 'src/crates/assembly/core/src/service/mcp/protocol/transport_remote.rs', patterns: [ { regex: /\bfn normalize_authorization_value\b/, @@ -1321,7 +1321,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mcp/protocol/jsonrpc.rs', + path: 'src/crates/assembly/core/src/service/mcp/protocol/jsonrpc.rs', patterns: [ { regex: /\bfn serialize_params\b/, @@ -1362,7 +1362,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/remote_ssh/workspace_state.rs', + path: 'src/crates/assembly/core/src/service/remote_ssh/workspace_state.rs', patterns: [ { regex: /\bpub const LOCAL_WORKSPACE_SSH_HOST\b/, @@ -1435,7 +1435,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/remote_connect/remote_server.rs', + path: 'src/crates/assembly/core/src/service/remote_connect/remote_server.rs', patterns: [ { regex: /\bpub\(crate\) struct CoreRemoteDialogRuntimeHost\b/, @@ -1743,7 +1743,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/remote_connect/bot/mod.rs', + path: 'src/crates/assembly/core/src/service/remote_connect/bot/mod.rs', patterns: [ { regex: /\bfn strip_workspace_path_prefix\b/, @@ -1764,7 +1764,7 @@ export const forbiddenContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/announcement/state_store.rs', + path: 'src/crates/assembly/core/src/service/announcement/state_store.rs', patterns: [ { regex: /\btokio::fs\b/, @@ -1784,7 +1784,7 @@ export const forbiddenContentRules = [ export const forbiddenContentUnderRules = [ { - path: 'src/crates/facade/core/src', + path: 'src/crates/assembly/core/src', reason: 'core must use runtime-ports as the owner path for portable subagent contracts', patterns: [ @@ -1797,13 +1797,13 @@ export const forbiddenContentUnderRules = [ ], }, { - path: 'src/crates/product/product-domains/src', + path: 'src/crates/contracts/product-domains/src', reason: 'product-domains must not own IO/process/Git/AI/platform runtime behavior without an approved port/provider migration', patterns: [ { regex: /\bCommand::new\(/, - allowPaths: ['src/crates/product/product-domains/src/miniapp/runtime.rs'], + allowPaths: ['src/crates/contracts/product-domains/src/miniapp/runtime.rs'], message: 'product-domains must not spawn processes outside the reviewed MiniApp runtime detector owner', }, @@ -1860,7 +1860,7 @@ export const forbiddenContentUnderRules = [ ], }, { - path: 'src/crates/execution/agent-tools/src', + path: 'src/crates/execution/tool-contracts/src', reason: 'agent-tools may own pure tool manifest contracts, but not product manifest runtime or GetToolSpec execution without an approved provider migration', patterns: [ @@ -1883,7 +1883,7 @@ export const forbiddenContentUnderRules = [ ], }, { - path: 'src/crates/execution/tool-packs/src', + path: 'src/crates/execution/tool-provider-groups/src', reason: 'tool-packs may own provider group plans, but not product tool manifest/exposure or GetToolSpec runtime', patterns: [ @@ -1910,7 +1910,7 @@ export const forbiddenContentUnderRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/implementations', + path: 'src/crates/assembly/core/src/agentic/tools/implementations', reason: 'GetToolSpec concrete adapter belongs in the product tool runtime owner, not the generic concrete-tool implementations module', patterns: [ @@ -1921,7 +1921,7 @@ export const forbiddenContentUnderRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/pipeline', + path: 'src/crates/assembly/core/src/agentic/tools/pipeline', reason: 'core pipeline must delegate deterministic tool execution admission policy to bitfun-agent-tools', patterns: [ diff --git a/scripts/core-boundaries/rules/source/required-rules.mjs b/scripts/core-boundaries/rules/source/required-rules.mjs index 9a43a7821..882aee62d 100644 --- a/scripts/core-boundaries/rules/source/required-rules.mjs +++ b/scripts/core-boundaries/rules/source/required-rules.mjs @@ -159,7 +159,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-capabilities/src/lib.rs', + path: 'src/crates/assembly/product-capabilities/src/lib.rs', reason: 'product-capabilities must select harness descriptors from the harness owner instead of owning descriptor construction', patterns: [ @@ -908,7 +908,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/cron/types.rs', + path: 'src/crates/assembly/core/src/service/cron/types.rs', reason: 'core cron types must preserve old import and wire paths while bitfun-agent-runtime owns scheduled-job runtime state', patterns: [ @@ -927,7 +927,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/cron/service.rs', + path: 'src/crates/assembly/core/src/service/cron/service.rs', reason: 'core cron service may own concrete storage, schedule parsing, and scheduler dispatch, but scheduled-job lifecycle state transitions must delegate to agent-runtime', patterns: [ @@ -970,7 +970,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/definitions/custom/subagent.rs', + path: 'src/crates/assembly/core/src/agentic/agents/definitions/custom/subagent.rs', reason: 'core custom subagent path must stay a compatibility facade over agent-runtime schema/default and markdown IO decisions', patterns: [ @@ -993,7 +993,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/custom.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/custom.rs', reason: 'core custom subagent registry must delegate portable discovery/loading to agent-runtime while retaining validation and registry writes', patterns: [ @@ -1012,7 +1012,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/post_call_hooks.rs', + path: 'src/crates/assembly/core/src/agentic/tools/post_call_hooks.rs', reason: 'core post-call hooks must delegate portable hook routing to agent-runtime while retaining concrete hook execution', patterns: [ @@ -1027,7 +1027,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs', + path: 'src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs', reason: 'core tool pipeline must delegate portable confirmation planning and failure mapping to agent-runtime while retaining UI/channel side effects', patterns: [ @@ -1046,7 +1046,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/execution/types.rs', + path: 'src/crates/assembly/core/src/agentic/execution/types.rs', reason: 'core execution types must preserve legacy import path while agent-runtime owns finish-reason event facts', patterns: [ @@ -1057,7 +1057,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/events/types.rs', + path: 'src/crates/assembly/core/src/agentic/events/types.rs', reason: 'core event types must preserve legacy import path while agent-runtime owns session-state labels', patterns: [ @@ -1068,7 +1068,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/prompt_builder/user_context.rs', + path: 'src/crates/assembly/core/src/agentic/agents/prompt_builder/user_context.rs', reason: 'core prompt_builder user_context path must stay a compatibility facade over agent-runtime', patterns: [ @@ -1079,7 +1079,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/session/prompt_cache.rs', + path: 'src/crates/assembly/core/src/agentic/session/prompt_cache.rs', reason: 'core prompt_cache path must stay a compatibility facade over agent-runtime', patterns: [ @@ -1090,7 +1090,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/mod.rs', + path: 'src/crates/assembly/core/src/agentic/agents/mod.rs', reason: 'core agent mode module must keep old import paths while agent-runtime owns shared mode profile facts', patterns: [ @@ -1128,7 +1128,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/filesystem/service.rs', + path: 'src/crates/assembly/core/src/service/filesystem/service.rs', reason: 'core filesystem service may keep remote-workspace overlay and BitFunError compatibility, but local filesystem owner must remain services-core', patterns: [ @@ -1147,7 +1147,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/session/session_manager.rs', + path: 'src/crates/assembly/core/src/agentic/session/session_manager.rs', reason: 'core session manager must keep forked Task prompt-cache and existing-context turn baselines until session branch ownership migrates', patterns: [ @@ -1170,7 +1170,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs', + path: 'src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs', reason: 'core tool pipeline must keep latest-main truncation and per-tool denial behavior until tool runtime ownership migrates', patterns: [ @@ -1193,7 +1193,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/restrictions.rs', + path: 'src/crates/assembly/core/src/agentic/tools/restrictions.rs', reason: 'core tool restrictions facade must preserve per-tool denial messages while runtime restrictions live in agent-tools', patterns: [ @@ -1208,7 +1208,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_result_storage.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_result_storage.rs', reason: 'core tool-result storage must keep explicit file flush until runtime artifact ownership migrates', patterns: [ @@ -1269,13 +1269,13 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/Cargo.toml', + path: 'src/crates/assembly/core/Cargo.toml', reason: 'bitfun-core product-full must explicitly aggregate owner crate feature groups instead of forcing them through dependency declarations', patterns: [ { regex: - /bitfun-tool-packs = \{ path = "\.\.\/\.\.\/execution\/tool-packs", default-features = false, optional = true \}/, + /bitfun-tool-packs = \{ path = "\.\.\/\.\.\/execution\/tool-provider-groups", default-features = false, optional = true \}/, message: 'bitfun-tool-packs dependency must stay optional and not force product-full outside the core feature graph', }, { @@ -1286,13 +1286,13 @@ export const requiredContentRules = [ }, { regex: - /bitfun-product-domains = \{ path = "\.\.\/\.\.\/product\/product-domains", default-features = false, optional = true \}/, + /bitfun-product-domains = \{ path = "\.\.\/\.\.\/contracts\/product-domains", default-features = false, optional = true \}/, message: 'bitfun-product-domains dependency must stay optional and not force product-full outside the core feature graph', }, { regex: - /bitfun-product-capabilities = \{ path = "\.\.\/\.\.\/product\/product-capabilities", default-features = false, optional = true \}/, + /bitfun-product-capabilities = \{ path = "\.\.\/product-capabilities", default-features = false, optional = true \}/, message: 'bitfun-product-capabilities dependency must stay optional and not force product-full outside the core feature graph', }, @@ -1324,7 +1324,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/lib.rs', + path: 'src/crates/assembly/core/src/lib.rs', reason: 'no-default bitfun-core must keep product runtime surfaces behind explicit features', patterns: [ @@ -1347,7 +1347,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/mod.rs', + path: 'src/crates/assembly/core/src/service/mod.rs', reason: 'service integration and agent-runtime surfaces must not compile in no-default core builds', patterns: [ @@ -1374,7 +1374,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/config/mod.rs', + path: 'src/crates/assembly/core/src/service/config/mod.rs', reason: 'mode config canonicalization depends on product agent/tool registries and must stay out of no-default builds', patterns: [ @@ -1385,7 +1385,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/workspace/manager.rs', + path: 'src/crates/assembly/core/src/service/workspace/manager.rs', reason: 'workspace metadata may omit git worktree enrichment when service integrations are disabled', patterns: [ @@ -1400,7 +1400,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/workspace_runtime/service.rs', + path: 'src/crates/assembly/core/src/service/workspace_runtime/service.rs', reason: 'workspace runtime binding helpers may depend on agentic runtime only in full product builds', patterns: [ @@ -1415,7 +1415,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/remote_ssh/mod.rs', + path: 'src/crates/assembly/core/src/service/remote_ssh/mod.rs', reason: 'core remote SSH runtime must keep concrete SSH dependencies behind the ssh-remote feature while preserving lightweight workspace identity helpers', patterns: [ @@ -1442,7 +1442,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/remote_ssh/disabled.rs', + path: 'src/crates/assembly/core/src/service/remote_ssh/disabled.rs', reason: 'no-default core builds must expose explicit unsupported remote SSH stubs instead of compiling russh-backed runtime code', patterns: [ @@ -1724,7 +1724,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/subagent_runtime/mod.rs', + path: 'src/crates/assembly/core/src/agentic/subagent_runtime/mod.rs', reason: 'core subagent runtime must preserve legacy import path while runtime-ports owns portable subagent contracts', patterns: [ @@ -1739,7 +1739,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/execution/agent-tools/src/framework.rs', + path: 'src/crates/execution/tool-contracts/src/framework.rs', reason: 'agent-tools may own pure and generic prompt-visible tool contracts and provider-neutral execution gate policy without owning product registry or concrete execution', patterns: [ @@ -2026,7 +2026,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/execution/agent-tools/src/file_guidance.rs', + path: 'src/crates/execution/tool-contracts/src/file_guidance.rs', reason: 'agent-tools owns provider-neutral file tool guidance marker contracts', patterns: [ { @@ -2044,7 +2044,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/execution/agent-tools/src/file_read_freshness.rs', + path: 'src/crates/execution/tool-contracts/src/file_read_freshness.rs', reason: 'agent-tools owns pure file-read freshness policy for Read/Edit/Write guardrails', patterns: [ { @@ -2066,7 +2066,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/execution/agent-tools/src/tool_result_storage.rs', + path: 'src/crates/execution/tool-contracts/src/tool_result_storage.rs', reason: 'agent-tools owns pure oversized tool-result storage policy and rendering without session IO', patterns: [ @@ -2109,7 +2109,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/execution/agent-tools/src/tool_execution_presentation.rs', + path: 'src/crates/execution/tool-contracts/src/tool_execution_presentation.rs', reason: 'agent-tools owns provider-neutral tool execution result and error presentation helpers', patterns: [ @@ -2152,7 +2152,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/coordinator.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/coordinator.rs', reason: 'core must keep current coordinator port adapters and attachment guard until remote runtime migration is reviewed', patterns: [ @@ -2183,7 +2183,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', reason: 'core scheduler must preserve legacy submission policy import path while runtime-ports owns portable dialog policy contracts', patterns: [ @@ -2213,7 +2213,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/round_preempt.rs', + path: 'src/crates/assembly/core/src/agentic/round_preempt.rs', reason: 'core round preempt runtime must preserve legacy import paths while runtime-ports owns portable contracts and agent-runtime owns round-boundary state', patterns: [ @@ -2230,7 +2230,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/goal_mode/mod.rs', + path: 'src/crates/assembly/core/src/agentic/goal_mode/mod.rs', reason: 'core goal mode must preserve legacy import paths while runtime-ports owns portable contracts and agent-runtime owns runtime decisions', patterns: [ @@ -2247,7 +2247,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/core/message.rs', + path: 'src/crates/assembly/core/src/agentic/core/message.rs', reason: 'core message model must preserve legacy compression contract import path while runtime-ports owns portable compaction facts', patterns: [ @@ -2258,7 +2258,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/workspace/manager.rs', + path: 'src/crates/assembly/core/src/service/workspace/manager.rs', reason: 'core workspace manager must preserve legacy related-path import path while runtime-ports owns portable request-context facts', patterns: [ @@ -2269,7 +2269,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service_agent_runtime.rs', + path: 'src/crates/assembly/core/src/service_agent_runtime.rs', reason: 'core service/agent runtime owner must centralize concrete remote-connect and agent runtime port bindings without moving runtime behavior', patterns: [ @@ -2961,7 +2961,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/remote_connect/remote_server.rs', + path: 'src/crates/assembly/core/src/service/remote_connect/remote_server.rs', reason: 'core remote-connect server must remain a product runtime adapter around integrations-owned contracts', patterns: [ @@ -3048,7 +3048,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/remote_connect/bot/command_router.rs', + path: 'src/crates/assembly/core/src/service/remote_connect/bot/command_router.rs', reason: 'remote-connect bot must route concrete agent runtime port bindings through the core service/agent runtime owner', patterns: [ @@ -3067,7 +3067,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', reason: 'core scheduler keeps remote queue policy semantics until agent-runtime migration is reviewed', patterns: [ @@ -3078,7 +3078,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/registry.rs', + path: 'src/crates/assembly/core/src/agentic/tools/registry.rs', reason: 'core registry must stay a compatibility container that delegates product tool runtime assembly through the core owner module', patterns: [ @@ -3113,7 +3113,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime.rs', reason: 'core product tool runtime owner delegates generic registry assembly and only wires product plan, decorator, and compatibility facade', patterns: [ @@ -3144,7 +3144,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/materialization.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/materialization.rs', reason: 'product runtime materialization must keep only concrete tool construction and product plan adapter while delegating generic registry assembly to agent-tools', patterns: [ @@ -3183,7 +3183,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/snapshot.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/snapshot.rs', reason: 'product runtime snapshot wrapper must stay isolated from registry and catalog ownership', patterns: [ @@ -3202,7 +3202,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/catalog.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/catalog.rs', reason: 'product runtime catalog owner keeps manifest, snapshot, readonly, and GetToolSpec product facades explicit', patterns: [ @@ -3281,7 +3281,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_adapter.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_adapter.rs', reason: 'core must keep the product Tool-to-agent-tools adapters explicit until ToolUseContext and concrete tools migrate', patterns: [ @@ -3316,7 +3316,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/execution/agent-tools/src/framework.rs', + path: 'src/crates/execution/tool-contracts/src/framework.rs', reason: 'agent-tools owns portable tool facts plus generic registry and provider contracts', patterns: [ { @@ -3386,7 +3386,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/execution/tool-packs/src/lib.rs', + path: 'src/crates/execution/tool-provider-groups/src/lib.rs', reason: 'tool-packs must keep its feature-group scaffold explicit without owning concrete tools yet', patterns: [ @@ -3425,7 +3425,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/manifest_resolver.rs', + path: 'src/crates/assembly/core/src/agentic/tools/manifest_resolver.rs', reason: 'core must continue owning manifest resolver wrappers while delegating product catalog access and generic manifest assembly', patterns: [ @@ -3456,7 +3456,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs', reason: 'product runtime must own the GetToolSpec Tool adapter while delegating generic runtime surface to agent-tools', patterns: [ @@ -3487,7 +3487,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/framework.rs', + path: 'src/crates/assembly/core/src/agentic/tools/framework.rs', reason: 'core tool framework must keep compatibility re-exports while ToolUseContext is owned by tool_context_runtime', patterns: [ @@ -3502,7 +3502,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_context_runtime.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_context_runtime.rs', reason: 'core must keep ToolUseContext runtime/service bindings centralized while ToolUseContext and concrete tools remain core-owned', patterns: [ @@ -3625,7 +3625,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs', + path: 'src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs', reason: 'core must continue carrying collapsed-tool unlock state while delegating provider-neutral execution gate policy to agent-tools', patterns: [ @@ -3664,7 +3664,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/execution/execution_engine.rs', + path: 'src/crates/assembly/core/src/agentic/execution/execution_engine.rs', reason: 'core execution must pass collapsed-tool unlock state through product runtime owner and keep DeepResearch post-turn hooks', patterns: [ @@ -3691,7 +3691,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/unlock_state.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/unlock_state.rs', reason: 'product runtime owns collapsed-tool unlock observation adaptation while preserving generic agent-tools policy', patterns: [ @@ -3714,7 +3714,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/availability.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/availability.rs', reason: 'core agent registry must adapt config and AgentEntry facts while bitfun-agent-runtime owns mode-scoped subagent availability decisions', patterns: [ @@ -3741,7 +3741,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/types.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/types.rs', reason: 'core agent registry must preserve legacy DTO fields while bitfun-agent-runtime owns query scope and availability reason contracts', patterns: [ @@ -3764,7 +3764,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/definitions/modes/mod.rs', + path: 'src/crates/assembly/core/src/agentic/agents/definitions/modes/mod.rs', reason: 'core agent mode definitions must continue exposing Multitask mode until an approved agent-runtime migration preserves mode registration semantics', patterns: [ @@ -3779,7 +3779,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/definitions/subagents/mod.rs', + path: 'src/crates/assembly/core/src/agentic/agents/definitions/subagents/mod.rs', reason: 'core subagent definitions must continue exposing the built-in GeneralPurpose subagent until registry ownership migration has equivalence coverage', patterns: [ @@ -3794,7 +3794,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/builtin.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/builtin.rs', reason: 'core builtin registry must delegate builtin default model facts to agent-runtime while preserving latest-main compatibility', patterns: [ @@ -3832,7 +3832,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs', + path: 'src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs', reason: 'core Task tool must continue owning fork-aware background subagent launch semantics until a reviewed agent-runtime port preserves delivery behavior', patterns: [ @@ -3875,7 +3875,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', reason: 'core scheduler keeps concrete background delivery entry points while bitfun-agent-runtime owns running-turn injection construction', patterns: [ @@ -3948,7 +3948,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/citation_renumber.rs', + path: 'src/crates/assembly/core/src/agentic/agents/citation_renumber.rs', reason: 'core DeepResearch runtime must continue owning citation renumber post-processing until agent-runtime migration is reviewed', patterns: [ @@ -3971,7 +3971,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/workspace/service.rs', + path: 'src/crates/assembly/core/src/service/workspace/service.rs', reason: 'core workspace runtime must continue owning startup remote-workspace guards until workspace service migration is reviewed', patterns: [ @@ -3994,7 +3994,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/search/service.rs', + path: 'src/crates/assembly/core/src/service/search/service.rs', reason: 'core search runtime must continue owning local flashgrep fallback and preview mapping until search migration is reviewed', patterns: [ @@ -4017,7 +4017,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/search/remote.rs', + path: 'src/crates/assembly/core/src/service/search/remote.rs', reason: 'core remote search runtime must continue owning remote flashgrep fallback/session behavior until search migration is reviewed', patterns: [ @@ -4040,7 +4040,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/search/mod.rs', + path: 'src/crates/assembly/core/src/service/search/mod.rs', reason: 'remote workspace search must route to the real implementation only when ssh-remote is enabled', patterns: [ @@ -4059,7 +4059,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/service/search/remote_disabled.rs', + path: 'src/crates/assembly/core/src/service/search/remote_disabled.rs', reason: 'no-default core builds must keep remote search unavailable with an explicit diagnostic', patterns: [ @@ -4078,7 +4078,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/surfaces/acp/src/client/manager.rs', + path: 'src/crates/interfaces/acp/src/client/manager.rs', reason: 'ACP surface runtime must continue owning startup timeout diagnostics until ACP migration is reviewed', patterns: [ @@ -4258,7 +4258,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/storage.rs', + path: 'src/crates/assembly/core/src/miniapp/storage.rs', reason: 'core must continue owning MiniApp storage runtime adapter until storage IO migration is reviewed', patterns: [ @@ -4269,7 +4269,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/builtin/mod.rs', + path: 'src/crates/assembly/core/src/miniapp/builtin/mod.rs', reason: 'core must continue owning built-in MiniApp seeding IO, marker writes, and recompilation while product-domains owns bundle assets', patterns: [ @@ -4340,7 +4340,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/host_dispatch.rs', + path: 'src/crates/assembly/core/src/miniapp/host_dispatch.rs', reason: 'core must continue owning MiniApp host-dispatch execution until host/runtime migration is reviewed', patterns: [ @@ -4426,7 +4426,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/storage.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/storage.rs', reason: 'product-domains owns MiniApp storage shape contracts while core/adapters keep filesystem IO', patterns: [ @@ -4477,7 +4477,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/lifecycle.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/lifecycle.rs', reason: 'product-domains owns pure MiniApp lifecycle state transitions while core keeps compile, storage IO, and runtime execution', patterns: [ @@ -4544,7 +4544,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/draft.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/draft.rs', reason: 'product-domains owns MiniApp draft DTO and response shape while core keeps draft filesystem IO', patterns: [ @@ -4567,7 +4567,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/runtime.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/runtime.rs', reason: 'product-domains owns MiniApp runtime detection, including the reviewed concrete PATH/fs/version probe', patterns: [ @@ -4614,7 +4614,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/worker.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/worker.rs', reason: 'product-domains owns MiniApp worker pool policy and install-deps planning while core keeps worker process execution', patterns: [ @@ -4653,7 +4653,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/host_routing.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/host_routing.rs', reason: 'product-domains owns MiniApp host-routing and allowlist decision policy while core keeps host execution', patterns: [ @@ -4756,7 +4756,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/exporter.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/exporter.rs', reason: 'product-domains owns MiniApp export check result policy while core keeps runtime detection', patterns: [ @@ -4775,7 +4775,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/exporter.rs', + path: 'src/crates/assembly/core/src/miniapp/exporter.rs', reason: 'core MiniApp exporter must delegate export check result policy while retaining runtime detection and export skeleton', patterns: [ @@ -4794,7 +4794,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/customization.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/customization.rs', reason: 'product-domains owns MiniApp customization metadata, built-in update policy, and permission-diff contracts while core keeps draft storage/runtime', patterns: [ @@ -4833,7 +4833,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/manager.rs', + path: 'src/crates/assembly/core/src/miniapp/manager.rs', reason: 'core MiniApp manager must use product-domain policy/facade helpers while retaining compile, storage IO, and built-in source-hash lookup', patterns: [ @@ -4916,7 +4916,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/ports.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/ports.rs', reason: 'product-domains owns MiniApp runtime-state port facade while core keeps concrete storage IO, compile, worker, and host execution', patterns: [ @@ -4939,7 +4939,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/runtime_services.rs', + path: 'src/crates/assembly/core/src/function_agents/runtime_services.rs', reason: 'core function-agent runtime services must continue owning AI concrete calls while product-domains owns prompt, parser, and facade policy', patterns: [ @@ -5056,7 +5056,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/git-func-agent/ai_service.rs', + path: 'src/crates/assembly/core/src/function_agents/git-func-agent/ai_service.rs', reason: 'legacy Git function-agent AI service path must remain a compatibility re-export only', patterns: [ @@ -5067,7 +5067,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/startchat-func-agent/ai_service.rs', + path: 'src/crates/assembly/core/src/function_agents/startchat-func-agent/ai_service.rs', reason: 'legacy Startchat AI service path must remain a compatibility re-export only', patterns: [ @@ -5078,7 +5078,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/git-func-agent/commit_generator.rs', + path: 'src/crates/assembly/core/src/function_agents/git-func-agent/commit_generator.rs', reason: 'legacy Git commit generator must delegate to the core product-domain runtime owner', patterns: [ @@ -5093,7 +5093,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/builtin.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/builtin.rs', reason: 'product-domains owns built-in MiniApp bundle assets, marker, hash, and seed-decision contracts while core keeps asset seeding IO and recompilation', patterns: [ @@ -5176,7 +5176,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs', + path: 'src/crates/assembly/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs', reason: 'legacy Startchat work-state analyzer must delegate to the core product-domain runtime owner', patterns: [ @@ -5191,9 +5191,9 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/function_agents/ports.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/ports.rs', reason: - 'product-domains owns port-backed function-agent facade orchestration while integrations/core keep concrete Git/AI runtime calls', + 'product-domains owns port-backed function-agent facade orchestration while providers/core keep concrete Git/AI runtime calls', patterns: [ { regex: /\bpub struct FunctionAgentRuntimeFacade\b/, @@ -5222,7 +5222,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/function_agents/common.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/common.rs', reason: 'product-domains owns function-agent AI response JSON extraction while core keeps concrete AI clients', patterns: [ @@ -5237,7 +5237,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/function_agents/startchat_func_agent/utils.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/utils.rs', reason: 'product-domains owns Startchat function-agent prompt and response policy while core keeps AI calls', patterns: [ @@ -5272,7 +5272,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/product/product-domains/src/function_agents/git_func_agent/utils.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/git_func_agent/utils.rs', reason: 'product-domains owns Git function-agent prompt and response policy while core keeps AI calls', patterns: [ @@ -5311,7 +5311,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/runtime_detect.rs', + path: 'src/crates/assembly/core/src/miniapp/runtime_detect.rs', reason: 'core MiniApp runtime detection must be a compatibility facade over product-domain runtime detection', patterns: [ @@ -5326,7 +5326,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/miniapp/js_worker_pool.rs', + path: 'src/crates/assembly/core/src/miniapp/js_worker_pool.rs', reason: 'core must continue owning MiniApp worker runtime adapter until process/runtime migration is reviewed', patterns: [ @@ -5353,7 +5353,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/function_agents/port_adapters.rs', + path: 'src/crates/assembly/core/src/function_agents/port_adapters.rs', reason: 'core function-agent port adapters must stay thin adapters over integration Git services and core AI services', patterns: [ @@ -5396,7 +5396,7 @@ export const requiredContentRules = [ ], }, { - path: 'src/crates/facade/core/src/product_domain_runtime.rs', + path: 'src/crates/assembly/core/src/product_domain_runtime.rs', reason: 'core product-domain runtime owner must centralize concrete MiniApp and function-agent runtime port bindings without moving runtime behavior', patterns: [ diff --git a/scripts/core-boundaries/self-test.mjs b/scripts/core-boundaries/self-test.mjs index 433702be0..8485d7164 100644 --- a/scripts/core-boundaries/self-test.mjs +++ b/scripts/core-boundaries/self-test.mjs @@ -113,7 +113,7 @@ export function runManifestParserSelfTest({ for (const manifestPath of [ 'src/apps/desktop/Cargo.toml', 'src/apps/cli/Cargo.toml', - 'src/crates/surfaces/acp/Cargo.toml', + 'src/crates/interfaces/acp/Cargo.toml', ]) { if (!productCoreRulePaths.has(manifestPath)) { throw new Error(`product core feature assembly rule must cover ${manifestPath}`); @@ -139,27 +139,27 @@ export function runManifestParserSelfTest({ { manifestPath: 'src/apps/desktop/Cargo.toml', text: - '[dependencies]\nbitfun-core = { path = "../../crates/facade/core", default-features = false, features = ["product-full"] }', + '[dependencies]\nbitfun-core = { path = "../../crates/assembly/core", default-features = false, features = ["product-full"] }', }, { manifestPath: 'src/apps/server/Cargo.toml', text: '[dependencies]\naxum = { workspace = true }', }, { - manifestPath: 'src/crates/surfaces/acp/Cargo.toml', - text: '[dependencies."bitfun-core"]\npath = "../../facade/core"\ndefault-features = false\nfeatures = ["product-full"]', + manifestPath: 'src/crates/interfaces/acp/Cargo.toml', + text: '[dependencies."bitfun-core"]\npath = "../../assembly/core"\ndefault-features = false\nfeatures = ["product-full"]', }, ]); - if (discoveredProductCoreManifests.join(',') !== 'src/apps/desktop/Cargo.toml,src/crates/surfaces/acp/Cargo.toml') { + if (discoveredProductCoreManifests.join(',') !== 'src/apps/desktop/Cargo.toml,src/crates/interfaces/acp/Cargo.toml') { throw new Error('product core dependency scanner must discover only manifests that depend on bitfun-core'); } const ownerFeatureRulePaths = new Set( ownerCrateFeatureAssemblyRules.map((rule) => rule.manifestPath), ); for (const manifestPath of [ - 'src/crates/execution/tool-packs/Cargo.toml', + 'src/crates/execution/tool-provider-groups/Cargo.toml', 'src/crates/services/services-integrations/Cargo.toml', - 'src/crates/product/product-domains/Cargo.toml', + 'src/crates/contracts/product-domains/Cargo.toml', ]) { if (!ownerFeatureRulePaths.has(manifestPath)) { throw new Error(`owner crate feature assembly rule must cover ${manifestPath}`); @@ -250,7 +250,7 @@ export function runManifestParserSelfTest({ throw new Error('agent-tools lightweight boundary must forbid bitfun-ai-adapters'); } const coreToolFrameworkRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/tools/framework.rs', + 'src/crates/assembly/core/src/agentic/tools/framework.rs', ); if (!coreToolFrameworkRuleText) { throw new Error('missing core tool framework boundary rule'); @@ -274,7 +274,7 @@ export function runManifestParserSelfTest({ } } const coreToolRestrictionRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/tools/restrictions.rs', + 'src/crates/assembly/core/src/agentic/tools/restrictions.rs', ); if (!coreToolRestrictionRuleText) { throw new Error('missing core tool restrictions boundary rule'); @@ -291,7 +291,7 @@ export function runManifestParserSelfTest({ } } const agentToolsFrameworkRule = requiredContentRules.find( - (rule) => rule.path === 'src/crates/execution/agent-tools/src/framework.rs', + (rule) => rule.path === 'src/crates/execution/tool-contracts/src/framework.rs', ); if (!agentToolsFrameworkRule) { throw new Error('missing agent-tools framework boundary rule'); @@ -313,7 +313,7 @@ export function runManifestParserSelfTest({ } } const coreWorkspacePathRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/tools/workspace_paths.rs', + 'src/crates/assembly/core/src/agentic/tools/workspace_paths.rs', ); if (!coreWorkspacePathRuleText) { throw new Error('missing core workspace path boundary rule'); @@ -330,7 +330,7 @@ export function runManifestParserSelfTest({ } } const coreToolRegistryRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/tools/registry.rs', + 'src/crates/assembly/core/src/agentic/tools/registry.rs', ); if (!coreToolRegistryRuleText) { throw new Error('missing core tool registry boundary rule'); @@ -346,7 +346,7 @@ export function runManifestParserSelfTest({ } } const coreSubagentRuntimeRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/subagent_runtime/mod.rs', + 'src/crates/assembly/core/src/agentic/subagent_runtime/mod.rs', ); if (!coreSubagentRuntimeRuleText) { throw new Error('missing core subagent runtime boundary rule'); @@ -357,7 +357,7 @@ export function runManifestParserSelfTest({ } } const coreCoordinatorRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/coordination/coordinator.rs', + 'src/crates/assembly/core/src/agentic/coordination/coordinator.rs', ); if (!coreCoordinatorRuleText) { throw new Error('missing core coordinator boundary rule'); @@ -366,7 +366,7 @@ export function runManifestParserSelfTest({ throw new Error('core coordinator boundary rule must forbid DialogTriggerSource redefinition'); } const coreSchedulerRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', ); if (!coreSchedulerRuleText) { throw new Error('missing core scheduler boundary rule'); @@ -383,7 +383,7 @@ export function runManifestParserSelfTest({ } } const coreRoundPreemptRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/round_preempt.rs', + 'src/crates/assembly/core/src/agentic/round_preempt.rs', ); if (!coreRoundPreemptRuleText) { throw new Error('missing core round preempt boundary rule'); @@ -400,7 +400,7 @@ export function runManifestParserSelfTest({ } } const coreGoalModeTypesRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/goal_mode/mod.rs', + 'src/crates/assembly/core/src/agentic/goal_mode/mod.rs', ); if (!coreGoalModeTypesRuleText) { throw new Error('missing core goal mode types boundary rule'); @@ -420,7 +420,7 @@ export function runManifestParserSelfTest({ } } const coreMessageRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/agentic/core/message.rs', + 'src/crates/assembly/core/src/agentic/core/message.rs', ); if (!coreMessageRuleText) { throw new Error('missing core message boundary rule'); @@ -431,7 +431,7 @@ export function runManifestParserSelfTest({ } } const coreWorkspaceRuleText = forbiddenRuleTextForPath( - 'src/crates/facade/core/src/service/workspace/manager.rs', + 'src/crates/assembly/core/src/service/workspace/manager.rs', ); if (!coreWorkspaceRuleText) { throw new Error('missing core workspace manager boundary rule'); @@ -440,7 +440,7 @@ export function runManifestParserSelfTest({ throw new Error('core workspace manager boundary rule must forbid contract: RelatedPath'); } const coreSubagentRuntimeOwnerPathRule = forbiddenContentUnderRules.find( - (rule) => rule.path === 'src/crates/facade/core/src', + (rule) => rule.path === 'src/crates/assembly/core/src', ); if (!coreSubagentRuntimeOwnerPathRule) { throw new Error('missing core subagent runtime owner-path boundary rule'); @@ -515,7 +515,7 @@ export function runManifestParserSelfTest({ } } const productDomainRuntimeRule = forbiddenContentUnderRules.find( - (rule) => rule.path === 'src/crates/product/product-domains/src', + (rule) => rule.path === 'src/crates/contracts/product-domains/src', ); if (!productDomainRuntimeRule) { throw new Error('missing product-domains runtime-owner boundary rule'); @@ -540,7 +540,7 @@ export function runManifestParserSelfTest({ ); if ( !productDomainCommandRule?.allowPaths?.includes( - 'src/crates/product/product-domains/src/miniapp/runtime.rs', + 'src/crates/contracts/product-domains/src/miniapp/runtime.rs', ) ) { throw new Error('product-domains Command::new exception must stay scoped to MiniApp runtime detection'); @@ -606,7 +606,7 @@ export function runManifestParserSelfTest({ throw new Error('product-capabilities dependency profile must forbid bitfun-core'); } const agentToolsManifestRule = forbiddenContentUnderRules.find( - (rule) => rule.path === 'src/crates/execution/agent-tools/src', + (rule) => rule.path === 'src/crates/execution/tool-contracts/src', ); if (!agentToolsManifestRule) { throw new Error('missing agent-tools manifest-owner boundary rule'); @@ -626,7 +626,7 @@ export function runManifestParserSelfTest({ } } const toolPacksManifestRule = forbiddenContentUnderRules.find( - (rule) => rule.path === 'src/crates/execution/tool-packs/src', + (rule) => rule.path === 'src/crates/execution/tool-provider-groups/src', ); if (!toolPacksManifestRule) { throw new Error('missing tool-packs manifest-owner boundary rule'); @@ -998,7 +998,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/service/cron/types.rs', + path: 'src/crates/assembly/core/src/service/cron/types.rs', contracts: [ 'ScheduledJobRuntimeState as CronJobState', 'ScheduledJobRunStatus as CronJobRunStatus', @@ -1006,7 +1006,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/service/cron/service.rs', + path: 'src/crates/assembly/core/src/service/cron/service.rs', contracts: [ 'mark_manual_trigger', 'apply_due_scheduled_trigger', @@ -1020,19 +1020,19 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/execution/types.rs', + path: 'src/crates/assembly/core/src/agentic/execution/types.rs', contracts: ['bitfun_agent_runtime::events::FinishReason'], }, { - path: 'src/crates/facade/core/src/agentic/events/types.rs', + path: 'src/crates/assembly/core/src/agentic/events/types.rs', contracts: ['bitfun_agent_runtime::events::session_state_label'], }, { - path: 'src/crates/facade/core/src/agentic/agents/prompt_builder/user_context.rs', + path: 'src/crates/assembly/core/src/agentic/agents/prompt_builder/user_context.rs', contracts: ['bitfun_agent_runtime::prompt'], }, { - path: 'src/crates/facade/core/src/agentic/subagent_runtime/mod.rs', + path: 'src/crates/assembly/core/src/agentic/subagent_runtime/mod.rs', contracts: [ 'bitfun_runtime_ports', 'DelegationPolicy', @@ -1041,7 +1041,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/session/session_manager.rs', + path: 'src/crates/assembly/core/src/agentic/session/session_manager.rs', contracts: [ 'clone_prompt_cache', 'start_dialog_turn_with_existing_context', @@ -1050,7 +1050,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs', + path: 'src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs', contracts: [ 'build_truncation_recovery_notice', 'truncation_notice_for_interactive_tools_does_not_claim_file_write', @@ -1059,11 +1059,11 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/restrictions.rs', + path: 'src/crates/assembly/core/src/agentic/tools/restrictions.rs', contracts: ['denied_tool_messages', 'custom_deny_message_overrides_generic_runtime_error'], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_result_storage.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_result_storage.rs', contracts: ['write_once', 'file\\.flush\\(\\)\\.await'], }, { @@ -1082,7 +1082,7 @@ export function runManifestParserSelfTest({ contracts: ['send_request_with_id', '\\.flush\\(\\)\\s*\\.await'], }, { - path: 'src/crates/execution/agent-tools/src/framework.rs', + path: 'src/crates/execution/tool-contracts/src/framework.rs', contracts: [ 'GET_TOOL_SPEC_TOOL_NAME', 'ToolExposure', @@ -1138,7 +1138,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/execution/agent-tools/src/file_guidance.rs', + path: 'src/crates/execution/tool-contracts/src/file_guidance.rs', contracts: [ 'FILE_TOOL_GUIDANCE_PREFIX', 'file_tool_guidance_message', @@ -1146,7 +1146,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/execution/agent-tools/src/file_read_freshness.rs', + path: 'src/crates/execution/tool-contracts/src/file_read_freshness.rs', contracts: [ 'FileReadFreshnessFacts', 'normalize_tool_file_content', @@ -1155,7 +1155,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/execution/agent-tools/src/tool_result_storage.rs', + path: 'src/crates/execution/tool-contracts/src/tool_result_storage.rs', contracts: [ 'ToolResultStoragePolicy', 'PersistedToolOutput', @@ -1169,7 +1169,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/execution/agent-tools/src/tool_execution_presentation.rs', + path: 'src/crates/execution/tool-contracts/src/tool_execution_presentation.rs', contracts: [ 'TOOL_ERROR_ARGUMENTS_PREVIEW_BYTES', 'USER_STEERING_INTERRUPTED_MESSAGE', @@ -1183,7 +1183,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/coordinator.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/coordinator.rs', contracts: [ 'AgentSubmissionPort', 'SessionTranscriptReader', @@ -1194,7 +1194,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', contracts: [ 'AgentSessionReplyRoute', 'DialogQueuePriority', @@ -1220,7 +1220,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/round_preempt.rs', + path: 'src/crates/assembly/core/src/agentic/round_preempt.rs', contracts: [ 'bitfun_agent_runtime', 'bitfun_runtime_ports', @@ -1234,7 +1234,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/goal_mode/mod.rs', + path: 'src/crates/assembly/core/src/agentic/goal_mode/mod.rs', contracts: [ 'bitfun_runtime_ports', 'SetThreadGoalResult', @@ -1246,15 +1246,15 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/core/message.rs', + path: 'src/crates/assembly/core/src/agentic/core/message.rs', contracts: ['bitfun_runtime_ports', 'CompressionContract', 'CompressionContractItem'], }, { - path: 'src/crates/facade/core/src/service/workspace/manager.rs', + path: 'src/crates/assembly/core/src/service/workspace/manager.rs', contracts: ['bitfun_runtime_ports', 'RelatedPath'], }, { - path: 'src/crates/facade/core/src/service_agent_runtime.rs', + path: 'src/crates/assembly/core/src/service_agent_runtime.rs', contracts: [ 'CoreServiceAgentRuntime', 'remote_dialog_host', @@ -1403,7 +1403,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/service/remote_connect/remote_server.rs', + path: 'src/crates/assembly/core/src/service/remote_connect/remote_server.rs', contracts: [ 'CoreServiceAgentRuntime', 'remote_image_context', @@ -1421,11 +1421,11 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', contracts: ['remote_queue_policy_preserves_interactive_preempt_and_confirmation_boundary'], }, { - path: 'src/crates/facade/core/src/agentic/tools/registry.rs', + path: 'src/crates/assembly/core/src/agentic/tools/registry.rs', contracts: [ 'from_inner', 'ProductToolDecoratorRef', @@ -1435,7 +1435,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime.rs', contracts: [ 'ProductToolRuntime', 'SnapshotToolDecorator', @@ -1446,7 +1446,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/snapshot.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/snapshot.rs', contracts: [ 'ProductSnapshotToolWrapper', 'SnapshotToolWrapper', @@ -1454,7 +1454,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/catalog.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/catalog.rs', contracts: [ 'ProductToolCatalogProvider', 'ToolCatalogSnapshotProvider', @@ -1475,7 +1475,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/materialization.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/materialization.rs', contracts: [ 'ProductConcreteToolFactory', 'StaticToolProviderFactory', @@ -1488,7 +1488,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/execution/agent-tools/src/framework.rs', + path: 'src/crates/execution/tool-contracts/src/framework.rs', contracts: [ 'ToolContextFacts', 'PortableToolContextProvider', @@ -1517,7 +1517,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/execution/tool-packs/src/lib.rs', + path: 'src/crates/execution/tool-provider-groups/src/lib.rs', contracts: [ 'ToolPackFeatureGroup', 'ToolProviderGroupPlan', @@ -1530,7 +1530,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_adapter.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_adapter.rs', contracts: [ 'ToolRegistryItem', 'ContextualToolManifestItem', @@ -1542,7 +1542,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/manifest_resolver.rs', + path: 'src/crates/assembly/core/src/agentic/tools/manifest_resolver.rs', contracts: [ 'resolve_tool_manifest', 'GET_TOOL_SPEC_TOOL_NAME', @@ -1552,7 +1552,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs', contracts: [ 'GetToolSpecTool', 'build_collapsed_tools_context_section', @@ -1563,7 +1563,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/framework.rs', + path: 'src/crates/assembly/core/src/agentic/tools/framework.rs', contracts: [ 'ToolExposure', 'ToolUseContext', @@ -1571,7 +1571,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/tool_context_runtime.rs', + path: 'src/crates/assembly/core/src/agentic/tools/tool_context_runtime.rs', contracts: [ 'pub struct ToolUseContext', 'to_tool_context_facts', @@ -1599,7 +1599,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs', + path: 'src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs', contracts: [ 'validate_tool_execution_admission', 'unlocked_collapsed_tools', @@ -1611,7 +1611,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/execution/execution_engine.rs', + path: 'src/crates/assembly/core/src/agentic/execution/execution_engine.rs', contracts: [ 'collect_product_unlocked_collapsed_tools', 'unlocked_collapsed_tools', @@ -1621,7 +1621,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/tools/product_runtime/unlock_state.rs', + path: 'src/crates/assembly/core/src/agentic/tools/product_runtime/unlock_state.rs', contracts: [ 'collect_product_unlocked_collapsed_tools', 'GetToolSpecLoadObservation', @@ -1630,7 +1630,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/availability.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/availability.rs', contracts: [ 'resolve_availability', 'resolve_override_layers', @@ -1639,23 +1639,23 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/types.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/types.rs', contracts: ['SubagentQueryContext', 'SubagentListScope', 'default_enabled', 'effective_enabled', 'SubagentStateReason'], }, { - path: 'src/crates/facade/core/src/agentic/agents/definitions/modes/mod.rs', + path: 'src/crates/assembly/core/src/agentic/agents/definitions/modes/mod.rs', contracts: ['mod multitask', 'MultitaskMode'], }, { - path: 'src/crates/facade/core/src/agentic/agents/definitions/subagents/mod.rs', + path: 'src/crates/assembly/core/src/agentic/agents/definitions/subagents/mod.rs', contracts: ['mod general_purpose', 'GeneralPurposeAgent'], }, { - path: 'src/crates/facade/core/src/agentic/agents/registry/builtin.rs', + path: 'src/crates/assembly/core/src/agentic/agents/registry/builtin.rs', contracts: ['builtin_agent_specs', 'runtime_agents::default_model_id_for_builtin_agent'], }, { - path: 'src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs', + path: 'src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs', contracts: [ 'fork_context', 'SubagentContextMode::Fork', @@ -1669,7 +1669,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/coordination/scheduler.rs', + path: 'src/crates/assembly/core/src/agentic/coordination/scheduler.rs', contracts: [ 'deliver_background_result', 'BackgroundResult', @@ -1697,36 +1697,36 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/agentic/agents/citation_renumber.rs', + path: 'src/crates/assembly/core/src/agentic/agents/citation_renumber.rs', contracts: ['run_for_session_workspace', 'try_renumber_research_report', 'display_map', 'REJECTED'], }, { - path: 'src/crates/facade/core/src/service/workspace/service.rs', + path: 'src/crates/assembly/core/src/service/workspace/service.rs', contracts: ['prepare_startup_restored_workspaces', 'WorkspaceKind::Remote', 'ensure_remote_workspace_runtime', 'sshHost'], }, { - path: 'src/crates/facade/core/src/service/search/service.rs', + path: 'src/crates/assembly/core/src/service/search/service.rs', contracts: ['with_scan_fallback', 'convert_hits_to_file_search_results', 'split_preview', 'preview_inside'], }, { - path: 'src/crates/facade/core/src/service/search/remote.rs', + path: 'src/crates/assembly/core/src/service/search/remote.rs', contracts: ['remote_workspace_search_service_for_path', 'lookup_remote_connection_with_hint', 'allow_scan_fallback', 'fallback_query'], }, { - path: 'src/crates/facade/core/src/service/search/mod.rs', + path: 'src/crates/assembly/core/src/service/search/mod.rs', contracts: ['mod remote_disabled', 'feature = "ssh-remote"', 'pub use remote_disabled'], }, { - path: 'src/crates/facade/core/src/service/search/remote_disabled.rs', + path: 'src/crates/assembly/core/src/service/search/remote_disabled.rs', contracts: ['Remote SSH search is disabled', 'RemoteWorkspaceSearchService', 'remote_workspace_search_service_for_path'], }, { - path: 'src/crates/facade/core/Cargo.toml', + path: 'src/crates/assembly/core/Cargo.toml', contracts: [ - 'bitfun-product-capabilities = \\{ path = "\\.\\.\\/\\.\\.\\/product\\/product-capabilities", default-features = false, optional = true \\}', - 'bitfun-tool-packs = \\{ path = "\\.\\.\\/\\.\\.\\/execution\\/tool-packs", default-features = false, optional = true \\}', + 'bitfun-product-capabilities = \\{ path = "\\.\\.\\/product-capabilities", default-features = false, optional = true \\}', + 'bitfun-tool-packs = \\{ path = "\\.\\.\\/\\.\\.\\/execution\\/tool-provider-groups", default-features = false, optional = true \\}', 'bitfun-services-integrations = \\{ path = "\\.\\.\\/\\.\\.\\/services\\/services-integrations", default-features = false, features = \\["remote-ssh"\\] \\}', - 'bitfun-product-domains = \\{ path = "\\.\\.\\/\\.\\.\\/product\\/product-domains", default-features = false, optional = true \\}', + 'bitfun-product-domains = \\{ path = "\\.\\.\\/\\.\\.\\/contracts\\/product-domains", default-features = false, optional = true \\}', 'dep:bitfun-product-capabilities', 'dep:bitfun-tool-packs', 'bitfun-tool-packs\\/product-full', @@ -1736,7 +1736,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/lib.rs', + path: 'src/crates/assembly/core/src/lib.rs', contracts: [ 'feature = "product-full"', 'pub mod agentic', @@ -1748,7 +1748,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/service/mod.rs', + path: 'src/crates/assembly/core/src/service/mod.rs', contracts: [ 'feature = "service-integrations"', 'pub mod git', @@ -1760,19 +1760,19 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/service/config/mod.rs', + path: 'src/crates/assembly/core/src/service/config/mod.rs', contracts: ['feature = "product-full"', 'mode_config_canonicalizer'], }, { - path: 'src/crates/facade/core/src/service/workspace/manager.rs', + path: 'src/crates/assembly/core/src/service/workspace/manager.rs', contracts: ['feature = "service-integrations"', 'GitService', 'return None'], }, { - path: 'src/crates/facade/core/src/service/workspace_runtime/service.rs', + path: 'src/crates/assembly/core/src/service/workspace_runtime/service.rs', contracts: ['feature = "product-full"', 'WorkspaceBinding', 'ensure_runtime_for_workspace_binding'], }, { - path: 'src/crates/surfaces/acp/src/client/manager.rs', + path: 'src/crates/interfaces/acp/src/client/manager.rs', contracts: ['CLIENT_STARTUP_TIMEOUT_SECS', 'startup_timeout_error_message', 'formats_startup_timeout_error_message'], }, { @@ -1816,11 +1816,11 @@ export function runManifestParserSelfTest({ contracts: ['historical_session_hydrate_request', 'Load history in the background', "historyState: 'ready'"], }, { - path: 'src/crates/facade/core/src/miniapp/storage.rs', + path: 'src/crates/assembly/core/src/miniapp/storage.rs', contracts: ['MiniAppStoragePort'], }, { - path: 'src/crates/facade/core/src/miniapp/builtin/mod.rs', + path: 'src/crates/assembly/core/src/miniapp/builtin/mod.rs', contracts: [ 'BUILTIN_APPS', 'builtin_content_hash', @@ -1841,7 +1841,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/builtin.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/builtin.rs', contracts: [ 'builtin-pr-review', 'BUILTIN_APPS', @@ -1865,7 +1865,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/miniapp/host_dispatch.rs', + path: 'src/crates/assembly/core/src/miniapp/host_dispatch.rs', contracts: [ 'dispatch_host', 'split_host_method', @@ -1882,7 +1882,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/miniapp/js_worker_pool.rs', + path: 'src/crates/assembly/core/src/miniapp/js_worker_pool.rs', contracts: [ 'MiniAppRuntimePort', 'plan_install_deps', @@ -1892,7 +1892,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/function_agents/port_adapters.rs', + path: 'src/crates/assembly/core/src/function_agents/port_adapters.rs', contracts: [ 'CoreFunctionAgentGitAdapter', 'FunctionAgentGitPort', @@ -1903,7 +1903,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/service/remote_connect/bot/command_router.rs', + path: 'src/crates/assembly/core/src/service/remote_connect/bot/command_router.rs', contracts: [ 'CoreServiceAgentRuntime', 'agent_submission_port', @@ -1911,7 +1911,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/product_domain_runtime.rs', + path: 'src/crates/assembly/core/src/product_domain_runtime.rs', contracts: [ 'CoreProductDomainRuntime', 'miniapp_runtime_facade', @@ -1928,11 +1928,11 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/service/remote_ssh/mod.rs', + path: 'src/crates/assembly/core/src/service/remote_ssh/mod.rs', contracts: ['mod disabled', 'pub mod manager', 'pub mod remote_fs', 'pub mod remote_terminal', 'pub mod workspace_state'], }, { - path: 'src/crates/facade/core/src/service/remote_ssh/disabled.rs', + path: 'src/crates/assembly/core/src/service/remote_ssh/disabled.rs', contracts: ['Remote SSH support is disabled', 'SSHConnectionManager', 'RemoteFileService', 'RemoteTerminalManager'], }, { @@ -1947,7 +1947,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/ports.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/ports.rs', contracts: [ 'MiniAppRuntimeFacade', 'mark_deps_installed_state', @@ -1956,7 +1956,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/storage.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/storage.rs', contracts: [ 'MiniAppStorageLayout', 'META_JSON', @@ -1972,7 +1972,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/lifecycle.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/lifecycle.rs', contracts: [ 'MiniAppCreateInput', 'MiniAppUpdatePatch', @@ -1992,11 +1992,11 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/draft.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/draft.rs', contracts: ['MiniAppDraftManifest', 'MiniAppDraft', 'build_draft_manifest', 'build_draft_response'], }, { - path: 'src/crates/product/product-domains/src/miniapp/runtime.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/runtime.rs', contracts: [ 'runtime_lookup_order', 'detect_runtime', @@ -2011,7 +2011,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/worker.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/worker.rs', contracts: [ 'InstallDepsPlan', 'plan_install_deps', @@ -2022,7 +2022,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/host_routing.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/host_routing.rs', contracts: [ 'split_host_method', 'FsAccessMode', @@ -2045,15 +2045,15 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/miniapp/exporter.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/exporter.rs', contracts: ['MISSING_JS_RUNTIME_MESSAGE', 'export_runtime_label', 'build_export_check_result'], }, { - path: 'src/crates/facade/core/src/miniapp/exporter.rs', + path: 'src/crates/assembly/core/src/miniapp/exporter.rs', contracts: ['detect_runtime', 'build_export_check_result', 'Export not yet implemented'], }, { - path: 'src/crates/product/product-domains/src/miniapp/customization.rs', + path: 'src/crates/contracts/product-domains/src/miniapp/customization.rs', contracts: [ 'MiniAppCustomizationMetadata', 'MiniAppDeclinedBuiltinUpdate', @@ -2066,7 +2066,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/miniapp/manager.rs', + path: 'src/crates/assembly/core/src/miniapp/manager.rs', contracts: [ 'apply_draft_customization_metadata', 'mark_builtin_update_available_metadata', @@ -2090,7 +2090,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/function_agents/runtime_services.rs', + path: 'src/crates/assembly/core/src/function_agents/runtime_services.rs', contracts: [ 'prepare_commit_ai_prompt', 'parse_commit_ai_response', @@ -2126,23 +2126,23 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/function_agents/git-func-agent/ai_service.rs', + path: 'src/crates/assembly/core/src/function_agents/git-func-agent/ai_service.rs', contracts: ['CoreCommitAiAnalysisService as AIAnalysisService'], }, { - path: 'src/crates/facade/core/src/function_agents/startchat-func-agent/ai_service.rs', + path: 'src/crates/assembly/core/src/function_agents/startchat-func-agent/ai_service.rs', contracts: ['CoreWorkStateAiAnalysisService as AIWorkStateService'], }, { - path: 'src/crates/facade/core/src/function_agents/git-func-agent/commit_generator.rs', + path: 'src/crates/assembly/core/src/function_agents/git-func-agent/commit_generator.rs', contracts: ['CoreProductDomainRuntime', 'generate_function_agent_commit_message'], }, { - path: 'src/crates/facade/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs', + path: 'src/crates/assembly/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs', contracts: ['CoreProductDomainRuntime', 'analyze_function_agent_work_state'], }, { - path: 'src/crates/product/product-domains/src/function_agents/ports.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/ports.rs', contracts: [ 'FunctionAgentRuntimeFacade', 'generate_commit_message', @@ -2153,11 +2153,11 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/function_agents/common.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/common.rs', contracts: ['extract_json_from_ai_response', 'try_repair_json'], }, { - path: 'src/crates/product/product-domains/src/function_agents/startchat_func_agent/utils.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/utils.rs', contracts: [ 'WORK_STATE_ANALYSIS_PROMPT', 'build_work_state_analysis_prompt', @@ -2168,7 +2168,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/product/product-domains/src/function_agents/git_func_agent/utils.rs', + path: 'src/crates/contracts/product-domains/src/function_agents/git_func_agent/utils.rs', contracts: [ 'COMMIT_MESSAGE_PROMPT', 'parse_commit_analysis_value', @@ -2180,7 +2180,7 @@ export function runManifestParserSelfTest({ ], }, { - path: 'src/crates/facade/core/src/miniapp/runtime_detect.rs', + path: 'src/crates/assembly/core/src/miniapp/runtime_detect.rs', contracts: ['pub use bitfun_product_domains::miniapp::runtime::{', 'detect_runtime'], }, ]; @@ -2201,7 +2201,7 @@ export function runManifestParserSelfTest({ } const remoteWorkspaceRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/remote_ssh/workspace_state.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/remote_ssh/workspace_state.rs', ); if (!remoteWorkspaceRule) { throw new Error('missing remote SSH workspace_state boundary rule'); @@ -2233,14 +2233,14 @@ export function runManifestParserSelfTest({ } const announcementStateStoreRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/announcement/state_store.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/announcement/state_store.rs', ); if (!announcementStateStoreRule) { throw new Error('missing announcement state store boundary rule'); } const mcpProcessRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/server/process.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/server/process.rs', ); if (!mcpProcessRule) { throw new Error('missing MCP server process boundary rule'); @@ -2265,7 +2265,7 @@ export function runManifestParserSelfTest({ } const mcpManagerRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/server/manager/mod.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/server/manager/mod.rs', ); if (!mcpManagerRule) { throw new Error('missing MCP server manager boundary rule'); @@ -2285,7 +2285,7 @@ export function runManifestParserSelfTest({ } const mcpReconnectRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/server/manager/reconnect.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/server/manager/reconnect.rs', ); if (!mcpReconnectRule) { throw new Error('missing MCP reconnect boundary rule'); @@ -2300,7 +2300,7 @@ export function runManifestParserSelfTest({ } const mcpInteractionRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/server/manager/interaction.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/server/manager/interaction.rs', ); if (!mcpInteractionRule) { throw new Error('missing MCP interaction boundary rule'); @@ -2315,7 +2315,7 @@ export function runManifestParserSelfTest({ } const mcpToolAdapterRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/adapter/tool.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/adapter/tool.rs', ); if (!mcpToolAdapterRule) { throw new Error('missing MCP tool adapter boundary rule'); @@ -2336,7 +2336,7 @@ export function runManifestParserSelfTest({ } const mcpContextAdapterRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/adapter/context.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/adapter/context.rs', ); if (!mcpContextAdapterRule) { throw new Error('missing MCP context adapter boundary rule'); @@ -2356,7 +2356,7 @@ export function runManifestParserSelfTest({ } const mcpJsonConfigRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/config/json_config.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/config/json_config.rs', ); if (!mcpJsonConfigRule) { throw new Error('missing MCP JSON config boundary rule'); @@ -2377,7 +2377,7 @@ export function runManifestParserSelfTest({ } const mcpConfigServiceRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/config/service.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/config/service.rs', ); if (!mcpConfigServiceRule) { throw new Error('missing MCP config service boundary rule'); @@ -2399,7 +2399,7 @@ export function runManifestParserSelfTest({ } const mcpAuthRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/auth.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/auth.rs', ); if (!mcpAuthRule) { throw new Error('missing MCP auth boundary rule'); @@ -2420,7 +2420,7 @@ export function runManifestParserSelfTest({ } const mcpRemoteTransportRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/protocol/transport_remote.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/protocol/transport_remote.rs', ); if (!mcpRemoteTransportRule) { throw new Error('missing MCP remote transport boundary rule'); @@ -2451,7 +2451,7 @@ export function runManifestParserSelfTest({ } const mcpJsonrpcRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/protocol/jsonrpc.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/protocol/jsonrpc.rs', ); if (!mcpJsonrpcRule) { throw new Error('missing MCP JSON-RPC boundary rule'); @@ -2477,7 +2477,7 @@ export function runManifestParserSelfTest({ } const mcpServerConfigRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/mcp/server/config.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/mcp/server/config.rs', ); if (!mcpServerConfigRule) { throw new Error('missing MCP server config boundary rule'); @@ -2510,7 +2510,7 @@ export function runManifestParserSelfTest({ } const remoteConnectRule = forbiddenContentRules.find( - (rule) => rule.path === 'src/crates/facade/core/src/service/remote_connect/remote_server.rs', + (rule) => rule.path === 'src/crates/assembly/core/src/service/remote_connect/remote_server.rs', ); if (!remoteConnectRule) { throw new Error('missing remote-connect remote_server boundary rule'); @@ -2590,9 +2590,9 @@ export function runManifestParserSelfTest({ const facadePaths = new Set(facadeOnlyFiles.map((facade) => facade.path)); for (const path of [ - 'src/crates/facade/core/src/service/mcp/protocol/transport.rs', - 'src/crates/facade/core/src/service/mcp/protocol/transport_remote.rs', - 'src/crates/facade/core/src/service/mcp/server/connection.rs', + 'src/crates/assembly/core/src/service/mcp/protocol/transport.rs', + 'src/crates/assembly/core/src/service/mcp/protocol/transport_remote.rs', + 'src/crates/assembly/core/src/service/mcp/server/connection.rs', ]) { if (!facadePaths.has(path)) { throw new Error(`missing MCP runtime facade-only rule for ${path}`); diff --git a/scripts/generate-i18n-contract.mjs b/scripts/generate-i18n-contract.mjs index 0d153c24e..d4f389d66 100644 --- a/scripts/generate-i18n-contract.mjs +++ b/scripts/generate-i18n-contract.mjs @@ -20,7 +20,7 @@ const outputs = [ generate: generateInstallerLocaleContract, }, { - path: path.join(root, 'src', 'crates', 'facade', 'core', 'src', 'service', 'i18n', 'generated_locale_contract.rs'), + path: path.join(root, 'src', 'crates', 'assembly', 'core', 'src', 'service', 'i18n', 'generated_locale_contract.rs'), generate: generateCoreRustLocaleContract, }, { diff --git a/scripts/i18n-audit.mjs b/scripts/i18n-audit.mjs index 1e16bf388..06b03a53a 100644 --- a/scripts/i18n-audit.mjs +++ b/scripts/i18n-audit.mjs @@ -29,7 +29,7 @@ const mobileWebSourceDir = path.join(root, 'src', 'mobile-web', 'src'); const mobileWebMessagesPath = path.join(mobileWebSourceDir, 'i18n', 'messages.ts'); const installerSourceDir = path.join(root, 'BitFun-Installer', 'src'); const installerLocalesDir = path.join(installerSourceDir, 'i18n', 'locales'); -const coreLocalesDir = path.join(root, 'src', 'crates', 'facade', 'core', 'locales'); +const coreLocalesDir = path.join(root, 'src', 'crates', 'assembly', 'core', 'locales'); const relayHomepageDir = path.join(root, 'src', 'apps', 'relay-server', 'static', 'homepage'); const relayHomepageI18nPath = path.join(relayHomepageDir, 'i18n.json'); const supportedLocales = fs @@ -1115,7 +1115,7 @@ function collectI18nResourceEntries(namespaces) { locale, key, value, - file: `src/crates/facade/core/locales/${locale}.ftl`, + file: `src/crates/assembly/core/locales/${locale}.ftl`, }); } } @@ -2172,7 +2172,7 @@ function createLocaleFormatScanSpecs() { }, { surface: 'core-miniapp', - root: path.join(root, 'src', 'crates', 'product', 'product-domains', 'src', 'miniapp', 'builtin', 'assets'), + root: path.join(root, 'src', 'crates', 'contracts', 'product-domains', 'src', 'miniapp', 'builtin', 'assets'), predicate: (file) => file.endsWith('.js'), }, ]; diff --git a/scripts/i18n-contract.test.mjs b/scripts/i18n-contract.test.mjs index 36e47794d..13821d249 100644 --- a/scripts/i18n-contract.test.mjs +++ b/scripts/i18n-contract.test.mjs @@ -14,7 +14,7 @@ const expectedGeneratedFiles = [ 'src/web-ui/src/infrastructure/i18n/presets/generatedLocaleContract.ts', 'src/mobile-web/src/i18n/generatedLocaleContract.ts', 'BitFun-Installer/src/i18n/generatedLocaleContract.ts', - 'src/crates/facade/core/src/service/i18n/generated_locale_contract.rs', + 'src/crates/assembly/core/src/service/i18n/generated_locale_contract.rs', 'BitFun-Installer/src-tauri/src/installer/generated_locale_contract.rs', ]; const expectedGeneratedJsonFiles = [ @@ -154,7 +154,7 @@ test('shared i18n terms exist for every canonical locale with matching keys', () }); test('core runtime uses the generated locale contract for language identity', () => { - const typesSource = readText('src/crates/facade/core/src/service/i18n/types.rs'); + const typesSource = readText('src/crates/assembly/core/src/service/i18n/types.rs'); assert.match( typesSource, /generated_locale_contract::\{[\s\S]*GENERATED_LOCALE_CONTRACT/, @@ -166,7 +166,7 @@ test('core runtime uses the generated locale contract for language identity', () 'types.rs must not read language identity from the backend resource registry', ); - const resourceRegistrySource = readText('src/crates/facade/core/src/service/i18n/locale_registry.rs'); + const resourceRegistrySource = readText('src/crates/assembly/core/src/service/i18n/locale_registry.rs'); assert.doesNotMatch( resourceRegistrySource, /\b(name|english_name|native_name|rtl|model_language_name|short_model_instruction|aliases):/, @@ -184,7 +184,7 @@ test('shared i18n terms are consumed by each product surface runtime', () => { const installerLanguagesSource = readText('BitFun-Installer/src/i18n/languages.ts'); assert.match(installerLanguagesSource, /SHARED_TERMS_BY_APP_LANGUAGE/, 'installer should merge shared terms into its i18next resources'); - const coreServiceSource = readText('src/crates/facade/core/src/service/i18n/service.rs'); + const coreServiceSource = readText('src/crates/assembly/core/src/service/i18n/service.rs'); assert.match(coreServiceSource, /generated_shared_term/, 'core i18n service should resolve generated shared terms'); }); @@ -841,11 +841,11 @@ auditIntegrationTest('core and relay static homepage reuse shared product and fe ); for (const locale of ['en-US', 'zh-CN', 'zh-TW']) { - const fluentSource = readText(`src/crates/facade/core/locales/${locale}.ftl`); + const fluentSource = readText(`src/crates/assembly/core/locales/${locale}.ftl`); assert.doesNotMatch(fluentSource, /^app-name\s*=/m, `${locale}.ftl should not copy shared.product.name`); } - const coreServiceSource = readText('src/crates/facade/core/src/service/i18n/service.rs'); + const coreServiceSource = readText('src/crates/assembly/core/src/service/i18n/service.rs'); assert.match( coreServiceSource, /legacy_shared_term_key/, diff --git a/src/apps/cli/Cargo.toml b/src/apps/cli/Cargo.toml index 37817ce78..6954e8024 100644 --- a/src/apps/cli/Cargo.toml +++ b/src/apps/cli/Cargo.toml @@ -11,9 +11,9 @@ path = "src/main.rs" [dependencies] # Internal crates -bitfun-core = { path = "../../crates/facade/core", default-features = false, features = ["product-full"] } +bitfun-core = { path = "../../crates/assembly/core", default-features = false, features = ["product-full"] } bitfun-events = { path = "../../crates/contracts/events" } -bitfun-acp = { path = "../../crates/surfaces/acp" } +bitfun-acp = { path = "../../crates/interfaces/acp" } # CLI framework clap = { workspace = true } diff --git a/src/apps/desktop/AGENTS-CN.md b/src/apps/desktop/AGENTS-CN.md index 9fcaa9a26..b65282c15 100644 --- a/src/apps/desktop/AGENTS-CN.md +++ b/src/apps/desktop/AGENTS-CN.md @@ -16,7 +16,7 @@ - `src/lib.rs`、`src/main.rs`:应用启动与装配 - `src/computer_use/`:操作系统相关自动化支持 -如果改动影响多个运行时共享的产品行为,真正实现通常应放在 `src/crates/facade/core`。 +如果改动影响多个运行时共享的产品行为,真正实现通常应放在 `src/crates/assembly/core`。 ## 本模块规则 diff --git a/src/apps/desktop/AGENTS.md b/src/apps/desktop/AGENTS.md index f6b296f42..fdd80453d 100644 --- a/src/apps/desktop/AGENTS.md +++ b/src/apps/desktop/AGENTS.md @@ -16,7 +16,7 @@ Main areas: - `src/lib.rs`, `src/main.rs`: app setup and wiring - `src/computer_use/`: OS-specific automation support -If a change affects shared product behavior across runtimes, the implementation likely belongs in `src/crates/facade/core`. +If a change affects shared product behavior across runtimes, the implementation likely belongs in `src/crates/assembly/core`. ## Local rules diff --git a/src/apps/desktop/Cargo.toml b/src/apps/desktop/Cargo.toml index 885469035..65656d963 100644 --- a/src/apps/desktop/Cargo.toml +++ b/src/apps/desktop/Cargo.toml @@ -19,10 +19,10 @@ serde_json = { workspace = true } [dependencies] # Internal crates -bitfun-core = { path = "../../crates/facade/core", default-features = false, features = ["product-full"] } -bitfun-transport = { path = "../../crates/integrations/transport", features = ["tauri-adapter"] } -bitfun-webdriver = { path = "../../crates/integrations/webdriver" } -bitfun-acp = { path = "../../crates/surfaces/acp" } +bitfun-core = { path = "../../crates/assembly/core", default-features = false, features = ["product-full"] } +bitfun-transport = { path = "../../crates/adapters/transport", features = ["tauri-adapter"] } +bitfun-webdriver = { path = "../../crates/adapters/webdriver" } +bitfun-acp = { path = "../../crates/interfaces/acp" } # Tauri tauri = { workspace = true } diff --git a/src/crates/adapters/AGENTS-CN.md b/src/crates/adapters/AGENTS-CN.md new file mode 100644 index 000000000..7b42f35d5 --- /dev/null +++ b/src/crates/adapters/AGENTS-CN.md @@ -0,0 +1,26 @@ +**中文** | [English](AGENTS.md) + +# 适配层 + +本层负责协议、transport、外部 provider 与宿主通信相关的 adapter crate。Adapter 在产品/runtime 契约与具体协议之间做转换,不拥有产品策略,也不承载可复用 OS service 实现。 + +## 模块 + +| Crate | 职责 | 本地文档 | +|---|---|---| +| `ai-adapters` | AI provider 请求/响应 adapter 与 stream protocol glue | [AGENTS.md](ai-adapters/AGENTS.md) | +| `api-layer` | 产品宿主共用的后端 API adapter surface | [AGENTS.md](api-layer/AGENTS.md) | +| `transport` | Event transport emitter 与宿主 transport adapter | [AGENTS.md](transport/AGENTS.md) | +| `webdriver` | Embedded WebDriver protocol 与浏览器自动化 adapter | [AGENTS.md](webdriver/AGENTS.md) | + +## 放置规则 + +- 协议序列化、transport projection、外部 provider 请求整形、宿主通信 adapter 放在这里。 +- OS、filesystem、terminal、MCP、remote、git、watch 等可复用实现放在 `services`,除非代码只是协议转换。 +- 交付 profile 选择和 adapter 注册属于 `assembly`。 + +## 依赖边界 + +- Adapter 可以依赖 `contracts`、`execution`,必要时可窄依赖 `services` 以通过协议暴露 service 能力。 +- Adapter 不得依赖 `assembly/core`、产品 UI、app command handler 或 Tauri API,除非该宿主边界有明确 feature gate。 +- 优先通过稳定契约解耦 adapter。Adapter 之间直接依赖必须有明确边界理由。 diff --git a/src/crates/adapters/AGENTS.md b/src/crates/adapters/AGENTS.md new file mode 100644 index 000000000..6ec7041d2 --- /dev/null +++ b/src/crates/adapters/AGENTS.md @@ -0,0 +1,35 @@ +[中文](AGENTS-CN.md) | **English** + +# Adapter Layer + +This layer owns protocol, transport, external-provider, and host-facing adapter +crates. Adapters translate between product/runtime contracts and concrete +protocols; they should not become owners of product policy or reusable OS +services. + +## Modules + +| Crate | Responsibility | Local doc | +|---|---|---| +| `ai-adapters` | AI provider request/response adapters and stream protocol glue | [AGENTS.md](ai-adapters/AGENTS.md) | +| `api-layer` | Backend API adapter surface shared by product hosts | [AGENTS.md](api-layer/AGENTS.md) | +| `transport` | Event transport emitters and host transport adapters | [AGENTS.md](transport/AGENTS.md) | +| `webdriver` | Embedded WebDriver protocol and browser automation adapter | [AGENTS.md](webdriver/AGENTS.md) | + +## Placement Rules + +- Put protocol serialization, transport projection, external provider request + shaping, and host communication adapters here. +- Keep OS, filesystem, terminal, MCP, remote, git, and watch implementations in + `services` unless the code is purely protocol translation. +- Keep delivery-profile selection and adapter registration in `assembly`. + +## Dependency Boundaries + +- Adapters may depend on `contracts`, `execution`, and narrowly on `services` + when an adapter must expose a service capability through a protocol. +- Adapters must not depend on `assembly/core`, product UI code, app command + handlers, or Tauri APIs unless the crate is explicitly feature-gated for that + host boundary. +- Prefer stable contracts over adapter-to-adapter coupling. Cross-adapter + dependencies require a clear boundary reason. diff --git a/src/crates/integrations/ai-adapters/AGENTS.md b/src/crates/adapters/ai-adapters/AGENTS.md similarity index 90% rename from src/crates/integrations/ai-adapters/AGENTS.md rename to src/crates/adapters/ai-adapters/AGENTS.md index bcf20fe71..20fc6686f 100644 --- a/src/crates/integrations/ai-adapters/AGENTS.md +++ b/src/crates/adapters/ai-adapters/AGENTS.md @@ -1,6 +1,6 @@ # AI Adapters Agent Guide -Scope: this guide applies to `src/crates/integrations/ai-adapters`. +Scope: this guide applies to `src/crates/adapters/ai-adapters`. `bitfun-ai-adapters` owns provider-specific request/response mapping and stream normalization. Keep provider quirks here instead of leaking them into core tool @@ -25,4 +25,4 @@ cargo test -p bitfun-ai-adapters ``` If stream behavior affects core integration, also run the relevant tests in -`src/crates/facade/core/tests`. +`src/crates/assembly/core/tests`. diff --git a/src/crates/integrations/ai-adapters/Cargo.toml b/src/crates/adapters/ai-adapters/Cargo.toml similarity index 100% rename from src/crates/integrations/ai-adapters/Cargo.toml rename to src/crates/adapters/ai-adapters/Cargo.toml diff --git a/src/crates/integrations/ai-adapters/README.md b/src/crates/adapters/ai-adapters/README.md similarity index 100% rename from src/crates/integrations/ai-adapters/README.md rename to src/crates/adapters/ai-adapters/README.md diff --git a/src/crates/integrations/ai-adapters/src/client.rs b/src/crates/adapters/ai-adapters/src/client.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client.rs rename to src/crates/adapters/ai-adapters/src/client.rs diff --git a/src/crates/integrations/ai-adapters/src/client/format.rs b/src/crates/adapters/ai-adapters/src/client/format.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client/format.rs rename to src/crates/adapters/ai-adapters/src/client/format.rs diff --git a/src/crates/integrations/ai-adapters/src/client/healthcheck.rs b/src/crates/adapters/ai-adapters/src/client/healthcheck.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client/healthcheck.rs rename to src/crates/adapters/ai-adapters/src/client/healthcheck.rs diff --git a/src/crates/integrations/ai-adapters/src/client/http.rs b/src/crates/adapters/ai-adapters/src/client/http.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client/http.rs rename to src/crates/adapters/ai-adapters/src/client/http.rs diff --git a/src/crates/integrations/ai-adapters/src/client/quirks.rs b/src/crates/adapters/ai-adapters/src/client/quirks.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client/quirks.rs rename to src/crates/adapters/ai-adapters/src/client/quirks.rs diff --git a/src/crates/integrations/ai-adapters/src/client/response_aggregator.rs b/src/crates/adapters/ai-adapters/src/client/response_aggregator.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client/response_aggregator.rs rename to src/crates/adapters/ai-adapters/src/client/response_aggregator.rs diff --git a/src/crates/integrations/ai-adapters/src/client/sse.rs b/src/crates/adapters/ai-adapters/src/client/sse.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client/sse.rs rename to src/crates/adapters/ai-adapters/src/client/sse.rs diff --git a/src/crates/integrations/ai-adapters/src/client/utils.rs b/src/crates/adapters/ai-adapters/src/client/utils.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/client/utils.rs rename to src/crates/adapters/ai-adapters/src/client/utils.rs diff --git a/src/crates/integrations/ai-adapters/src/diagnostics.rs b/src/crates/adapters/ai-adapters/src/diagnostics.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/diagnostics.rs rename to src/crates/adapters/ai-adapters/src/diagnostics.rs diff --git a/src/crates/integrations/ai-adapters/src/lib.rs b/src/crates/adapters/ai-adapters/src/lib.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/lib.rs rename to src/crates/adapters/ai-adapters/src/lib.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/anthropic/discovery.rs b/src/crates/adapters/ai-adapters/src/providers/anthropic/discovery.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/anthropic/discovery.rs rename to src/crates/adapters/ai-adapters/src/providers/anthropic/discovery.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/anthropic/message_converter.rs b/src/crates/adapters/ai-adapters/src/providers/anthropic/message_converter.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/anthropic/message_converter.rs rename to src/crates/adapters/ai-adapters/src/providers/anthropic/message_converter.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/anthropic/mod.rs b/src/crates/adapters/ai-adapters/src/providers/anthropic/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/anthropic/mod.rs rename to src/crates/adapters/ai-adapters/src/providers/anthropic/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/anthropic/request.rs b/src/crates/adapters/ai-adapters/src/providers/anthropic/request.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/anthropic/request.rs rename to src/crates/adapters/ai-adapters/src/providers/anthropic/request.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/gemini/code_assist.rs b/src/crates/adapters/ai-adapters/src/providers/gemini/code_assist.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/gemini/code_assist.rs rename to src/crates/adapters/ai-adapters/src/providers/gemini/code_assist.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/gemini/discovery.rs b/src/crates/adapters/ai-adapters/src/providers/gemini/discovery.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/gemini/discovery.rs rename to src/crates/adapters/ai-adapters/src/providers/gemini/discovery.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/gemini/message_converter.rs b/src/crates/adapters/ai-adapters/src/providers/gemini/message_converter.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/gemini/message_converter.rs rename to src/crates/adapters/ai-adapters/src/providers/gemini/message_converter.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/gemini/mod.rs b/src/crates/adapters/ai-adapters/src/providers/gemini/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/gemini/mod.rs rename to src/crates/adapters/ai-adapters/src/providers/gemini/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/gemini/request.rs b/src/crates/adapters/ai-adapters/src/providers/gemini/request.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/gemini/request.rs rename to src/crates/adapters/ai-adapters/src/providers/gemini/request.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/mod.rs b/src/crates/adapters/ai-adapters/src/providers/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/mod.rs rename to src/crates/adapters/ai-adapters/src/providers/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/openai/chat.rs b/src/crates/adapters/ai-adapters/src/providers/openai/chat.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/openai/chat.rs rename to src/crates/adapters/ai-adapters/src/providers/openai/chat.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/openai/codex_chatgpt.rs b/src/crates/adapters/ai-adapters/src/providers/openai/codex_chatgpt.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/openai/codex_chatgpt.rs rename to src/crates/adapters/ai-adapters/src/providers/openai/codex_chatgpt.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/openai/common.rs b/src/crates/adapters/ai-adapters/src/providers/openai/common.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/openai/common.rs rename to src/crates/adapters/ai-adapters/src/providers/openai/common.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/openai/message_converter.rs b/src/crates/adapters/ai-adapters/src/providers/openai/message_converter.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/openai/message_converter.rs rename to src/crates/adapters/ai-adapters/src/providers/openai/message_converter.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/openai/mod.rs b/src/crates/adapters/ai-adapters/src/providers/openai/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/openai/mod.rs rename to src/crates/adapters/ai-adapters/src/providers/openai/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/openai/responses.rs b/src/crates/adapters/ai-adapters/src/providers/openai/responses.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/openai/responses.rs rename to src/crates/adapters/ai-adapters/src/providers/openai/responses.rs diff --git a/src/crates/integrations/ai-adapters/src/providers/shared.rs b/src/crates/adapters/ai-adapters/src/providers/shared.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/providers/shared.rs rename to src/crates/adapters/ai-adapters/src/providers/shared.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/mod.rs b/src/crates/adapters/ai-adapters/src/stream/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/mod.rs rename to src/crates/adapters/ai-adapters/src/stream/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/stream_handler/anthropic.rs b/src/crates/adapters/ai-adapters/src/stream/stream_handler/anthropic.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/stream_handler/anthropic.rs rename to src/crates/adapters/ai-adapters/src/stream/stream_handler/anthropic.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/stream_handler/gemini.rs b/src/crates/adapters/ai-adapters/src/stream/stream_handler/gemini.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/stream_handler/gemini.rs rename to src/crates/adapters/ai-adapters/src/stream/stream_handler/gemini.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/stream_handler/inline_think.rs b/src/crates/adapters/ai-adapters/src/stream/stream_handler/inline_think.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/stream_handler/inline_think.rs rename to src/crates/adapters/ai-adapters/src/stream/stream_handler/inline_think.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/stream_handler/mod.rs b/src/crates/adapters/ai-adapters/src/stream/stream_handler/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/stream_handler/mod.rs rename to src/crates/adapters/ai-adapters/src/stream/stream_handler/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/stream_handler/openai.rs b/src/crates/adapters/ai-adapters/src/stream/stream_handler/openai.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/stream_handler/openai.rs rename to src/crates/adapters/ai-adapters/src/stream/stream_handler/openai.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/stream_handler/responses.rs b/src/crates/adapters/ai-adapters/src/stream/stream_handler/responses.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/stream_handler/responses.rs rename to src/crates/adapters/ai-adapters/src/stream/stream_handler/responses.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/stream_handler/stream_stats.rs b/src/crates/adapters/ai-adapters/src/stream/stream_handler/stream_stats.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/stream_handler/stream_stats.rs rename to src/crates/adapters/ai-adapters/src/stream/stream_handler/stream_stats.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/types/anthropic.rs b/src/crates/adapters/ai-adapters/src/stream/types/anthropic.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/types/anthropic.rs rename to src/crates/adapters/ai-adapters/src/stream/types/anthropic.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/types/gemini.rs b/src/crates/adapters/ai-adapters/src/stream/types/gemini.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/types/gemini.rs rename to src/crates/adapters/ai-adapters/src/stream/types/gemini.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/types/mod.rs b/src/crates/adapters/ai-adapters/src/stream/types/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/types/mod.rs rename to src/crates/adapters/ai-adapters/src/stream/types/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/types/openai.rs b/src/crates/adapters/ai-adapters/src/stream/types/openai.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/types/openai.rs rename to src/crates/adapters/ai-adapters/src/stream/types/openai.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/types/responses.rs b/src/crates/adapters/ai-adapters/src/stream/types/responses.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/types/responses.rs rename to src/crates/adapters/ai-adapters/src/stream/types/responses.rs diff --git a/src/crates/integrations/ai-adapters/src/stream/types/unified.rs b/src/crates/adapters/ai-adapters/src/stream/types/unified.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/stream/types/unified.rs rename to src/crates/adapters/ai-adapters/src/stream/types/unified.rs diff --git a/src/crates/integrations/ai-adapters/src/tool_call_accumulator.rs b/src/crates/adapters/ai-adapters/src/tool_call_accumulator.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/tool_call_accumulator.rs rename to src/crates/adapters/ai-adapters/src/tool_call_accumulator.rs diff --git a/src/crates/integrations/ai-adapters/src/types/ai.rs b/src/crates/adapters/ai-adapters/src/types/ai.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/types/ai.rs rename to src/crates/adapters/ai-adapters/src/types/ai.rs diff --git a/src/crates/integrations/ai-adapters/src/types/config.rs b/src/crates/adapters/ai-adapters/src/types/config.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/types/config.rs rename to src/crates/adapters/ai-adapters/src/types/config.rs diff --git a/src/crates/integrations/ai-adapters/src/types/message.rs b/src/crates/adapters/ai-adapters/src/types/message.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/types/message.rs rename to src/crates/adapters/ai-adapters/src/types/message.rs diff --git a/src/crates/integrations/ai-adapters/src/types/mod.rs b/src/crates/adapters/ai-adapters/src/types/mod.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/types/mod.rs rename to src/crates/adapters/ai-adapters/src/types/mod.rs diff --git a/src/crates/integrations/ai-adapters/src/types/tool.rs b/src/crates/adapters/ai-adapters/src/types/tool.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/types/tool.rs rename to src/crates/adapters/ai-adapters/src/types/tool.rs diff --git a/src/crates/facade/core/src/util/types/tool_image_attachment.rs b/src/crates/adapters/ai-adapters/src/types/tool_image_attachment.rs similarity index 100% rename from src/crates/facade/core/src/util/types/tool_image_attachment.rs rename to src/crates/adapters/ai-adapters/src/types/tool_image_attachment.rs diff --git a/src/crates/integrations/api-layer/AGENTS.md b/src/crates/adapters/api-layer/AGENTS.md similarity index 93% rename from src/crates/integrations/api-layer/AGENTS.md rename to src/crates/adapters/api-layer/AGENTS.md index 2e757a0ba..5b80d2a01 100644 --- a/src/crates/integrations/api-layer/AGENTS.md +++ b/src/crates/adapters/api-layer/AGENTS.md @@ -1,6 +1,6 @@ # api-layer Agent Guide -Scope: this guide applies to `src/crates/integrations/api-layer`. +Scope: this guide applies to `src/crates/adapters/api-layer`. `bitfun-api-layer` owns platform-agnostic API DTOs and handler coordination. It is the stable boundary between app entrypoints and lower transport/runtime diff --git a/src/crates/integrations/api-layer/Cargo.toml b/src/crates/adapters/api-layer/Cargo.toml similarity index 100% rename from src/crates/integrations/api-layer/Cargo.toml rename to src/crates/adapters/api-layer/Cargo.toml diff --git a/src/crates/integrations/api-layer/src/dto.rs b/src/crates/adapters/api-layer/src/dto.rs similarity index 100% rename from src/crates/integrations/api-layer/src/dto.rs rename to src/crates/adapters/api-layer/src/dto.rs diff --git a/src/crates/integrations/api-layer/src/handlers.rs b/src/crates/adapters/api-layer/src/handlers.rs similarity index 100% rename from src/crates/integrations/api-layer/src/handlers.rs rename to src/crates/adapters/api-layer/src/handlers.rs diff --git a/src/crates/integrations/api-layer/src/lib.rs b/src/crates/adapters/api-layer/src/lib.rs similarity index 100% rename from src/crates/integrations/api-layer/src/lib.rs rename to src/crates/adapters/api-layer/src/lib.rs diff --git a/src/crates/integrations/transport/AGENTS.md b/src/crates/adapters/transport/AGENTS.md similarity index 93% rename from src/crates/integrations/transport/AGENTS.md rename to src/crates/adapters/transport/AGENTS.md index dff687c1b..da0ea7446 100644 --- a/src/crates/integrations/transport/AGENTS.md +++ b/src/crates/adapters/transport/AGENTS.md @@ -1,6 +1,6 @@ # transport Agent Guide -Scope: this guide applies to `src/crates/integrations/transport`. +Scope: this guide applies to `src/crates/adapters/transport`. `bitfun-transport` owns cross-platform communication contracts and adapters. It bridges product/API events to concrete delivery channels without owning product diff --git a/src/crates/integrations/transport/Cargo.toml b/src/crates/adapters/transport/Cargo.toml similarity index 100% rename from src/crates/integrations/transport/Cargo.toml rename to src/crates/adapters/transport/Cargo.toml diff --git a/src/crates/integrations/transport/src/adapters/cli.rs b/src/crates/adapters/transport/src/adapters/cli.rs similarity index 100% rename from src/crates/integrations/transport/src/adapters/cli.rs rename to src/crates/adapters/transport/src/adapters/cli.rs diff --git a/src/crates/integrations/transport/src/adapters/mod.rs b/src/crates/adapters/transport/src/adapters/mod.rs similarity index 100% rename from src/crates/integrations/transport/src/adapters/mod.rs rename to src/crates/adapters/transport/src/adapters/mod.rs diff --git a/src/crates/integrations/transport/src/adapters/tauri.rs b/src/crates/adapters/transport/src/adapters/tauri.rs similarity index 100% rename from src/crates/integrations/transport/src/adapters/tauri.rs rename to src/crates/adapters/transport/src/adapters/tauri.rs diff --git a/src/crates/integrations/transport/src/adapters/websocket.rs b/src/crates/adapters/transport/src/adapters/websocket.rs similarity index 100% rename from src/crates/integrations/transport/src/adapters/websocket.rs rename to src/crates/adapters/transport/src/adapters/websocket.rs diff --git a/src/crates/integrations/transport/src/emitter.rs b/src/crates/adapters/transport/src/emitter.rs similarity index 100% rename from src/crates/integrations/transport/src/emitter.rs rename to src/crates/adapters/transport/src/emitter.rs diff --git a/src/crates/integrations/transport/src/event_bus.rs b/src/crates/adapters/transport/src/event_bus.rs similarity index 100% rename from src/crates/integrations/transport/src/event_bus.rs rename to src/crates/adapters/transport/src/event_bus.rs diff --git a/src/crates/integrations/transport/src/events.rs b/src/crates/adapters/transport/src/events.rs similarity index 100% rename from src/crates/integrations/transport/src/events.rs rename to src/crates/adapters/transport/src/events.rs diff --git a/src/crates/integrations/transport/src/lib.rs b/src/crates/adapters/transport/src/lib.rs similarity index 100% rename from src/crates/integrations/transport/src/lib.rs rename to src/crates/adapters/transport/src/lib.rs diff --git a/src/crates/integrations/transport/src/traits.rs b/src/crates/adapters/transport/src/traits.rs similarity index 100% rename from src/crates/integrations/transport/src/traits.rs rename to src/crates/adapters/transport/src/traits.rs diff --git a/src/crates/integrations/webdriver/AGENTS.md b/src/crates/adapters/webdriver/AGENTS.md similarity index 92% rename from src/crates/integrations/webdriver/AGENTS.md rename to src/crates/adapters/webdriver/AGENTS.md index 67645f4b6..c327936a2 100644 --- a/src/crates/integrations/webdriver/AGENTS.md +++ b/src/crates/adapters/webdriver/AGENTS.md @@ -1,6 +1,6 @@ # webdriver Agent Guide -Scope: this guide applies to `src/crates/integrations/webdriver`. +Scope: this guide applies to `src/crates/adapters/webdriver`. `bitfun-webdriver` owns the embedded desktop WebDriver bridge. It is a platform-integration crate, not a product runtime or tool-policy owner. diff --git a/src/crates/integrations/webdriver/Cargo.toml b/src/crates/adapters/webdriver/Cargo.toml similarity index 100% rename from src/crates/integrations/webdriver/Cargo.toml rename to src/crates/adapters/webdriver/Cargo.toml diff --git a/src/crates/integrations/webdriver/src/executor/element/actions.rs b/src/crates/adapters/webdriver/src/executor/element/actions.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/element/actions.rs rename to src/crates/adapters/webdriver/src/executor/element/actions.rs diff --git a/src/crates/integrations/webdriver/src/executor/element/lookup.rs b/src/crates/adapters/webdriver/src/executor/element/lookup.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/element/lookup.rs rename to src/crates/adapters/webdriver/src/executor/element/lookup.rs diff --git a/src/crates/integrations/webdriver/src/executor/element/mod.rs b/src/crates/adapters/webdriver/src/executor/element/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/element/mod.rs rename to src/crates/adapters/webdriver/src/executor/element/mod.rs diff --git a/src/crates/integrations/webdriver/src/executor/element/read.rs b/src/crates/adapters/webdriver/src/executor/element/read.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/element/read.rs rename to src/crates/adapters/webdriver/src/executor/element/read.rs diff --git a/src/crates/integrations/webdriver/src/executor/element/shadow.rs b/src/crates/adapters/webdriver/src/executor/element/shadow.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/element/shadow.rs rename to src/crates/adapters/webdriver/src/executor/element/shadow.rs diff --git a/src/crates/integrations/webdriver/src/executor/interaction.rs b/src/crates/adapters/webdriver/src/executor/interaction.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/interaction.rs rename to src/crates/adapters/webdriver/src/executor/interaction.rs diff --git a/src/crates/integrations/webdriver/src/executor/mod.rs b/src/crates/adapters/webdriver/src/executor/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/mod.rs rename to src/crates/adapters/webdriver/src/executor/mod.rs diff --git a/src/crates/integrations/webdriver/src/executor/navigation.rs b/src/crates/adapters/webdriver/src/executor/navigation.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/navigation.rs rename to src/crates/adapters/webdriver/src/executor/navigation.rs diff --git a/src/crates/integrations/webdriver/src/executor/session.rs b/src/crates/adapters/webdriver/src/executor/session.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/session.rs rename to src/crates/adapters/webdriver/src/executor/session.rs diff --git a/src/crates/integrations/webdriver/src/executor/window.rs b/src/crates/adapters/webdriver/src/executor/window.rs similarity index 100% rename from src/crates/integrations/webdriver/src/executor/window.rs rename to src/crates/adapters/webdriver/src/executor/window.rs diff --git a/src/crates/integrations/webdriver/src/lib.rs b/src/crates/adapters/webdriver/src/lib.rs similarity index 100% rename from src/crates/integrations/webdriver/src/lib.rs rename to src/crates/adapters/webdriver/src/lib.rs diff --git a/src/crates/integrations/webdriver/src/platform/capture.rs b/src/crates/adapters/webdriver/src/platform/capture.rs similarity index 100% rename from src/crates/integrations/webdriver/src/platform/capture.rs rename to src/crates/adapters/webdriver/src/platform/capture.rs diff --git a/src/crates/integrations/webdriver/src/platform/evaluator/macos.rs b/src/crates/adapters/webdriver/src/platform/evaluator/macos.rs similarity index 100% rename from src/crates/integrations/webdriver/src/platform/evaluator/macos.rs rename to src/crates/adapters/webdriver/src/platform/evaluator/macos.rs diff --git a/src/crates/integrations/webdriver/src/platform/evaluator/mod.rs b/src/crates/adapters/webdriver/src/platform/evaluator/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/platform/evaluator/mod.rs rename to src/crates/adapters/webdriver/src/platform/evaluator/mod.rs diff --git a/src/crates/integrations/webdriver/src/platform/evaluator/windows.rs b/src/crates/adapters/webdriver/src/platform/evaluator/windows.rs similarity index 100% rename from src/crates/integrations/webdriver/src/platform/evaluator/windows.rs rename to src/crates/adapters/webdriver/src/platform/evaluator/windows.rs diff --git a/src/crates/integrations/webdriver/src/platform/image.rs b/src/crates/adapters/webdriver/src/platform/image.rs similarity index 100% rename from src/crates/integrations/webdriver/src/platform/image.rs rename to src/crates/adapters/webdriver/src/platform/image.rs diff --git a/src/crates/integrations/webdriver/src/platform/mod.rs b/src/crates/adapters/webdriver/src/platform/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/platform/mod.rs rename to src/crates/adapters/webdriver/src/platform/mod.rs diff --git a/src/crates/integrations/webdriver/src/platform/types.rs b/src/crates/adapters/webdriver/src/platform/types.rs similarity index 100% rename from src/crates/integrations/webdriver/src/platform/types.rs rename to src/crates/adapters/webdriver/src/platform/types.rs diff --git a/src/crates/integrations/webdriver/src/runtime/api/element.rs b/src/crates/adapters/webdriver/src/runtime/api/element.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/api/element.rs rename to src/crates/adapters/webdriver/src/runtime/api/element.rs diff --git a/src/crates/integrations/webdriver/src/runtime/api/interaction.rs b/src/crates/adapters/webdriver/src/runtime/api/interaction.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/api/interaction.rs rename to src/crates/adapters/webdriver/src/runtime/api/interaction.rs diff --git a/src/crates/integrations/webdriver/src/runtime/api/mod.rs b/src/crates/adapters/webdriver/src/runtime/api/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/api/mod.rs rename to src/crates/adapters/webdriver/src/runtime/api/mod.rs diff --git a/src/crates/integrations/webdriver/src/runtime/api/navigation.rs b/src/crates/adapters/webdriver/src/runtime/api/navigation.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/api/navigation.rs rename to src/crates/adapters/webdriver/src/runtime/api/navigation.rs diff --git a/src/crates/integrations/webdriver/src/runtime/mod.rs b/src/crates/adapters/webdriver/src/runtime/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/mod.rs rename to src/crates/adapters/webdriver/src/runtime/mod.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script.rs b/src/crates/adapters/webdriver/src/runtime/script.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script.rs rename to src/crates/adapters/webdriver/src/runtime/script.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/alert.rs b/src/crates/adapters/webdriver/src/runtime/script/core/alert.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/alert.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/alert.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/context.rs b/src/crates/adapters/webdriver/src/runtime/script/core/context.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/context.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/context.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/cookie.rs b/src/crates/adapters/webdriver/src/runtime/script/core/cookie.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/cookie.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/cookie.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/execution.rs b/src/crates/adapters/webdriver/src/runtime/script/core/execution.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/execution.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/execution.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/locator.rs b/src/crates/adapters/webdriver/src/runtime/script/core/locator.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/locator.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/locator.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/mod.rs b/src/crates/adapters/webdriver/src/runtime/script/core/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/mod.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/mod.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/runtime.rs b/src/crates/adapters/webdriver/src/runtime/script/core/runtime.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/runtime.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/runtime.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/shadow.rs b/src/crates/adapters/webdriver/src/runtime/script/core/shadow.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/shadow.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/shadow.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/store.rs b/src/crates/adapters/webdriver/src/runtime/script/core/store.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/store.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/store.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/core/visibility.rs b/src/crates/adapters/webdriver/src/runtime/script/core/visibility.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/core/visibility.rs rename to src/crates/adapters/webdriver/src/runtime/script/core/visibility.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/input.rs b/src/crates/adapters/webdriver/src/runtime/script/input.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/input.rs rename to src/crates/adapters/webdriver/src/runtime/script/input.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/keyboard/edit.rs b/src/crates/adapters/webdriver/src/runtime/script/keyboard/edit.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/keyboard/edit.rs rename to src/crates/adapters/webdriver/src/runtime/script/keyboard/edit.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/keyboard/event.rs b/src/crates/adapters/webdriver/src/runtime/script/keyboard/event.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/keyboard/event.rs rename to src/crates/adapters/webdriver/src/runtime/script/keyboard/event.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/keyboard/focus.rs b/src/crates/adapters/webdriver/src/runtime/script/keyboard/focus.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/keyboard/focus.rs rename to src/crates/adapters/webdriver/src/runtime/script/keyboard/focus.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/keyboard/mapping.rs b/src/crates/adapters/webdriver/src/runtime/script/keyboard/mapping.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/keyboard/mapping.rs rename to src/crates/adapters/webdriver/src/runtime/script/keyboard/mapping.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/keyboard/mod.rs b/src/crates/adapters/webdriver/src/runtime/script/keyboard/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/keyboard/mod.rs rename to src/crates/adapters/webdriver/src/runtime/script/keyboard/mod.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/key_source.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/key_source.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/key_source.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/key_source.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/mod.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/mod.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/mod.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/mouse.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/mouse.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/mouse.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/mouse.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/perform.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/perform.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/perform.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/perform.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/pointer_source.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/pointer_source.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/pointer_source.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/pointer_source.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/release.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/release.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/release.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/release.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/wheel.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/wheel.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/wheel.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/wheel.rs diff --git a/src/crates/integrations/webdriver/src/runtime/script/pointer/wheel_source.rs b/src/crates/adapters/webdriver/src/runtime/script/pointer/wheel_source.rs similarity index 100% rename from src/crates/integrations/webdriver/src/runtime/script/pointer/wheel_source.rs rename to src/crates/adapters/webdriver/src/runtime/script/pointer/wheel_source.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/actions.rs b/src/crates/adapters/webdriver/src/server/handlers/actions.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/actions.rs rename to src/crates/adapters/webdriver/src/server/handlers/actions.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/alert.rs b/src/crates/adapters/webdriver/src/server/handlers/alert.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/alert.rs rename to src/crates/adapters/webdriver/src/server/handlers/alert.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/cookie.rs b/src/crates/adapters/webdriver/src/server/handlers/cookie.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/cookie.rs rename to src/crates/adapters/webdriver/src/server/handlers/cookie.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/element.rs b/src/crates/adapters/webdriver/src/server/handlers/element.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/element.rs rename to src/crates/adapters/webdriver/src/server/handlers/element.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/frame.rs b/src/crates/adapters/webdriver/src/server/handlers/frame.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/frame.rs rename to src/crates/adapters/webdriver/src/server/handlers/frame.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/logs.rs b/src/crates/adapters/webdriver/src/server/handlers/logs.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/logs.rs rename to src/crates/adapters/webdriver/src/server/handlers/logs.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/mod.rs b/src/crates/adapters/webdriver/src/server/handlers/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/mod.rs rename to src/crates/adapters/webdriver/src/server/handlers/mod.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/navigation.rs b/src/crates/adapters/webdriver/src/server/handlers/navigation.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/navigation.rs rename to src/crates/adapters/webdriver/src/server/handlers/navigation.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/print.rs b/src/crates/adapters/webdriver/src/server/handlers/print.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/print.rs rename to src/crates/adapters/webdriver/src/server/handlers/print.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/screenshot.rs b/src/crates/adapters/webdriver/src/server/handlers/screenshot.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/screenshot.rs rename to src/crates/adapters/webdriver/src/server/handlers/screenshot.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/script.rs b/src/crates/adapters/webdriver/src/server/handlers/script.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/script.rs rename to src/crates/adapters/webdriver/src/server/handlers/script.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/session.rs b/src/crates/adapters/webdriver/src/server/handlers/session.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/session.rs rename to src/crates/adapters/webdriver/src/server/handlers/session.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/shadow.rs b/src/crates/adapters/webdriver/src/server/handlers/shadow.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/shadow.rs rename to src/crates/adapters/webdriver/src/server/handlers/shadow.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/timeouts.rs b/src/crates/adapters/webdriver/src/server/handlers/timeouts.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/timeouts.rs rename to src/crates/adapters/webdriver/src/server/handlers/timeouts.rs diff --git a/src/crates/integrations/webdriver/src/server/handlers/window.rs b/src/crates/adapters/webdriver/src/server/handlers/window.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/handlers/window.rs rename to src/crates/adapters/webdriver/src/server/handlers/window.rs diff --git a/src/crates/integrations/webdriver/src/server/mod.rs b/src/crates/adapters/webdriver/src/server/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/mod.rs rename to src/crates/adapters/webdriver/src/server/mod.rs diff --git a/src/crates/integrations/webdriver/src/server/response.rs b/src/crates/adapters/webdriver/src/server/response.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/response.rs rename to src/crates/adapters/webdriver/src/server/response.rs diff --git a/src/crates/integrations/webdriver/src/server/router.rs b/src/crates/adapters/webdriver/src/server/router.rs similarity index 100% rename from src/crates/integrations/webdriver/src/server/router.rs rename to src/crates/adapters/webdriver/src/server/router.rs diff --git a/src/crates/integrations/webdriver/src/webdriver/element.rs b/src/crates/adapters/webdriver/src/webdriver/element.rs similarity index 100% rename from src/crates/integrations/webdriver/src/webdriver/element.rs rename to src/crates/adapters/webdriver/src/webdriver/element.rs diff --git a/src/crates/integrations/webdriver/src/webdriver/locator.rs b/src/crates/adapters/webdriver/src/webdriver/locator.rs similarity index 100% rename from src/crates/integrations/webdriver/src/webdriver/locator.rs rename to src/crates/adapters/webdriver/src/webdriver/locator.rs diff --git a/src/crates/integrations/webdriver/src/webdriver/mod.rs b/src/crates/adapters/webdriver/src/webdriver/mod.rs similarity index 100% rename from src/crates/integrations/webdriver/src/webdriver/mod.rs rename to src/crates/adapters/webdriver/src/webdriver/mod.rs diff --git a/src/crates/integrations/webdriver/src/webdriver/session.rs b/src/crates/adapters/webdriver/src/webdriver/session.rs similarity index 100% rename from src/crates/integrations/webdriver/src/webdriver/session.rs rename to src/crates/adapters/webdriver/src/webdriver/session.rs diff --git a/src/crates/assembly/AGENTS-CN.md b/src/crates/assembly/AGENTS-CN.md new file mode 100644 index 000000000..08cab04f8 --- /dev/null +++ b/src/crates/assembly/AGENTS-CN.md @@ -0,0 +1,26 @@ +**中文** | [English](AGENTS.md) + +# 产品组装层 + +本层负责产品组装、兼容导出、能力选择和 runtime 注册。它为不同交付形态把下层能力接线起来,但不拥有具体 adapter 行为、可复用 service 实现、OS 集成或稳定产品领域契约。 + +## 模块 + +| Crate | 职责 | 本地文档 | +|---|---|---| +| `core` | `bitfun-core` 兼容门面与 product-full 组装 | [AGENTS.md](core/AGENTS.md) | +| `product-capabilities` | 产品能力 profile、tool group facts、service requirements 与 harness selection | [AGENTS.md](product-capabilities/AGENTS.md) | + +## 放置规则 + +- product-full 接线、兼容 shim、能力 profile 选择和 adapter/service 注册放在这里。 +- 产品领域规则属于 `contracts/product-domains`;组装层可以选择这些事实,但不拥有它们。 +- 稳定 owner 逻辑下移到 `contracts`,可移植执行逻辑下移到 `execution`,协议适配下移到 `adapters`,可复用实现下移到 `services`。 +- 保持现有 public import path,除非迁移明确移除并补充兼容说明和测试。 + +## 依赖边界 + +- `assembly/core` 可以依赖下层 owner 来组装当前产品 runtime。 +- 组装层可以依赖 adapter 与 service crate,但不实现它们的协议序列化、认证、transport 或平台细节。 +- 避免在组装层直接使用宿主 API;Tauri 支持必须保持 feature-gated,并尽可能由 app 或 adapter 拥有。 +- interface crate 可以调用组装 API;adapter 和 service 不得依赖组装层。 diff --git a/src/crates/assembly/AGENTS.md b/src/crates/assembly/AGENTS.md new file mode 100644 index 000000000..b26854719 --- /dev/null +++ b/src/crates/assembly/AGENTS.md @@ -0,0 +1,41 @@ +[中文](AGENTS-CN.md) | **English** + +# Product Assembly Layer + +This layer owns product assembly, compatibility exports, capability selection, +and runtime registration. It wires lower layers together for a delivery form; +it does not own concrete adapter behavior, reusable service implementations, OS +integration, or stable product-domain contracts. + +## Modules + +| Crate | Responsibility | Local doc | +|---|---|---| +| `core` | `bitfun-core` compatibility facade and product-full assembly | [AGENTS.md](core/AGENTS.md) | +| `product-capabilities` | Product capability profiles, tool group facts, service requirements, and harness selections | [AGENTS.md](product-capabilities/AGENTS.md) | + +## Placement Rules + +- Put product-full wiring, compatibility shims, capability profile selection, + and adapter/service registration here. +- Keep product-domain rules in `contracts/product-domains`; assembly may select + those facts but must not become their owner. +- Move stable owner logic to `contracts`, portable execution logic to + `execution`, concrete protocol adaptation to `adapters`, and reusable + implementation behavior to `services` when a lower layer can own it. +- Preserve existing public import paths unless a migration explicitly removes + them with compatibility notes and tests. +- Keep assembly additions small and traceable; broad feature growth here is a + sign that ownership has not been pushed down far enough. + +## Dependency Boundaries + +- `assembly/core` may depend on lower owner layers to assemble the current product + runtime. +- Assembly may depend on adapter and service crates for selected delivery forms, + but should not implement their protocol serialization, authentication, + transport, or platform details. +- Avoid direct host APIs in assembly code; Tauri support must remain feature-gated + and should be owned by app or adapter code when possible. +- Interface crates may call assembly APIs, but adapters and services must not + depend on assembly. diff --git a/src/crates/facade/core/AGENTS-CN.md b/src/crates/assembly/core/AGENTS-CN.md similarity index 90% rename from src/crates/facade/core/AGENTS-CN.md rename to src/crates/assembly/core/AGENTS-CN.md index d8aa57bad..7dd051a7f 100644 --- a/src/crates/facade/core/AGENTS-CN.md +++ b/src/crates/assembly/core/AGENTS-CN.md @@ -4,7 +4,7 @@ ## 适用范围 -本文件适用于 `src/crates/facade/core`。仓库级规则请看顶层 `AGENTS.md`;进入更具体目录后,优先遵循更近的局部指南。 +本文件适用于 `src/crates/assembly/core`。仓库级规则请看顶层 `AGENTS.md`;进入更具体目录后,优先遵循更近的局部指南。 ## 定位 @@ -41,7 +41,7 @@ SessionManager -> Session -> DialogTurn -> ModelRound port/provider 设计与行为等价测试前继续留在 core。 - Tool 改动必须保持 expanded/collapsed exposure、prompt-visible manifest、`GetToolSpec`、权限行为、 `ToolUseContext` 语义,以及 desktop/MCP/ACP catalog 行为等价。 -- Runtime owner 迁移在目标 owner 具备评审过的 port/provider 设计和行为等价测试前,不应移动 concrete lifecycle、IO、event delivery、permission orchestration 或 remote/platform provider。 +- Runtime owner 迁移在目标 owner 具备评审过的 port/provider 设计和行为等价测试前,不应移动 concrete lifecycle、IO、event delivery、permission orchestration 或 remote/platform implementation。 - Product-domain 改动可以在有等价保护时迁移纯产品领域计划;filesystem writes、worker/host side effect、 Git/AI concrete calls、marker IO 和 path-manager integration 仍留在 core,除非有经过评审的 owner 设计。 - Remote/service 改动必须保持 external protocol lifecycle、workspace projection、scheduler/session restore、 @@ -55,17 +55,17 @@ SessionManager -> Session -> DialogTurn -> ModelRound - `docs/architecture/core-decomposition.md` - `docs/architecture/agent-runtime-services-design.md` - `src/crates/execution/agent-runtime/AGENTS.md` -- `src/crates/execution/agent-tools/AGENTS.md` +- `src/crates/execution/tool-contracts/AGENTS.md` - `src/crates/execution/harness/AGENTS.md` -- `src/crates/product/product-domains/AGENTS.md` +- `src/crates/contracts/product-domains/AGENTS.md` - `src/crates/contracts/runtime-ports/` 与 `src/crates/execution/runtime-services/` 源码说明 - `src/crates/services/services-core/AGENTS.md` - `src/crates/services/services-integrations/AGENTS.md` -- `src/crates/execution/tool-packs/AGENTS.md` +- `src/crates/execution/tool-provider-groups/AGENTS.md` 部分子目录已有更细指南: -- `src/crates/integrations/ai-adapters/AGENTS.md` +- `src/crates/adapters/ai-adapters/AGENTS.md` - `src/agentic/execution/AGENTS.md` - `src/agentic/deep_review/AGENTS.md` diff --git a/src/crates/facade/core/AGENTS.md b/src/crates/assembly/core/AGENTS.md similarity index 84% rename from src/crates/facade/core/AGENTS.md rename to src/crates/assembly/core/AGENTS.md index 3f164db7f..9128906a8 100644 --- a/src/crates/facade/core/AGENTS.md +++ b/src/crates/assembly/core/AGENTS.md @@ -4,7 +4,7 @@ ## Scope -This file applies to `src/crates/facade/core`. Use the top-level `AGENTS.md` for +This file applies to `src/crates/assembly/core`. Use the top-level `AGENTS.md` for repository-wide rules and the nearest narrower guide when one exists. ## Role @@ -32,7 +32,7 @@ SessionManager -> Session -> DialogTurn -> ModelRound - Keep shared core platform-agnostic. Avoid host-specific APIs such as `tauri::AppHandle`; use shared abstractions such as `bitfun_events::EventEmitter`. -- Desktop-only integrations belong in `src/apps/desktop`, then flow through +- Desktop-only host adapters belong in `src/apps/desktop`, then flow through transport/API layers. - Do not add new cross-layer references from `service` to `agentic` without a narrow port/interface boundary. @@ -47,15 +47,15 @@ SessionManager -> Session -> DialogTurn -> ModelRound not as the preferred home for new stable contracts. - Put stable DTOs, facts, ports, and pure decisions in the matching owner crate where a clear owner exists. Keep concrete managers, IO, platform adapters, and - product execution in core until a reviewed port/provider design and behavior - equivalence tests exist. + product execution in core until a reviewed port/adapter/service design and + behavior equivalence tests exist. - Tool changes must preserve expanded/collapsed exposure, prompt-visible manifests, `GetToolSpec`, permission behavior, `ToolUseContext` semantics, and desktop/MCP/ACP catalog behavior. - Runtime-owner migrations must keep concrete lifecycle, IO, event delivery, - permission orchestration, and remote/platform providers in core until the - target owner has a reviewed port/provider design plus behavior-equivalence - tests. + permission orchestration, and remote/platform implementations in core until + the target owner has a reviewed port/adapter/service design plus + behavior-equivalence tests. - Product-domain changes may move pure product-domain plans with equivalence coverage, but filesystem writes, worker/host side effects, Git/AI concrete calls, marker IO, and path-manager integration stay in core unless a reviewed @@ -74,17 +74,17 @@ Use these files for ownership details instead of expanding this guide: - `docs/architecture/core-decomposition.md` - `docs/architecture/agent-runtime-services-design.md` - `src/crates/execution/agent-runtime/AGENTS.md` -- `src/crates/execution/agent-tools/AGENTS.md` +- `src/crates/execution/tool-contracts/AGENTS.md` - `src/crates/execution/harness/AGENTS.md` -- `src/crates/product/product-domains/AGENTS.md` +- `src/crates/contracts/product-domains/AGENTS.md` - `src/crates/contracts/runtime-ports/` and `src/crates/execution/runtime-services/` source docs - `src/crates/services/services-core/AGENTS.md` - `src/crates/services/services-integrations/AGENTS.md` -- `src/crates/execution/tool-packs/AGENTS.md` +- `src/crates/execution/tool-provider-groups/AGENTS.md` Narrower local guides already exist for some subtrees: -- `src/crates/integrations/ai-adapters/AGENTS.md` +- `src/crates/adapters/ai-adapters/AGENTS.md` - `src/agentic/execution/AGENTS.md` - `src/agentic/deep_review/AGENTS.md` diff --git a/src/crates/facade/core/Cargo.toml b/src/crates/assembly/core/Cargo.toml similarity index 91% rename from src/crates/facade/core/Cargo.toml rename to src/crates/assembly/core/Cargo.toml index 4e6ab831d..62258fdfa 100644 --- a/src/crates/facade/core/Cargo.toml +++ b/src/crates/assembly/core/Cargo.toml @@ -73,7 +73,7 @@ rmcp = { workspace = true, features = [ sse-stream = { workspace = true, optional = true } # Shared AI protocol adapters -bitfun-ai-adapters = { path = "../../integrations/ai-adapters" } +bitfun-ai-adapters = { path = "../../adapters/ai-adapters" } # Lightweight agent stream processing bitfun-agent-stream = { path = "../../execution/agent-stream" } @@ -85,13 +85,13 @@ bitfun-agent-runtime = { path = "../../execution/agent-runtime" } bitfun-harness = { path = "../../execution/harness" } # Product capability pack contracts -bitfun-product-capabilities = { path = "../../product/product-capabilities", default-features = false, optional = true } +bitfun-product-capabilities = { path = "../product-capabilities", default-features = false, optional = true } # Agent tool contracts -bitfun-agent-tools = { path = "../../execution/agent-tools" } +bitfun-agent-tools = { path = "../../execution/tool-contracts" } # Tool pack provider plan -bitfun-tool-packs = { path = "../../execution/tool-packs", default-features = false, optional = true } +bitfun-tool-packs = { path = "../../execution/tool-provider-groups", default-features = false, optional = true } # Core service owner crate bitfun-services-core = { path = "../../services/services-core" } @@ -100,10 +100,10 @@ bitfun-services-core = { path = "../../services/services-core" } bitfun-services-integrations = { path = "../../services/services-integrations", default-features = false, features = ["remote-ssh"] } # Product domain owner crate -bitfun-product-domains = { path = "../../product/product-domains", default-features = false, optional = true } +bitfun-product-domains = { path = "../../contracts/product-domains", default-features = false, optional = true } # Tool runtime -tool-runtime = { path = "../../execution/tool-runtime", optional = true } +tool-runtime = { path = "../../execution/tool-execution", optional = true } # terminal terminal-core = { path = "../../services/terminal" } @@ -146,7 +146,7 @@ bitfun-runtime-ports = { path = "../../contracts/runtime-ports" } bitfun-runtime-services = { path = "../../execution/runtime-services", optional = true } # Transport layer dependency -bitfun-transport = { path = "../../integrations/transport" } +bitfun-transport = { path = "../../adapters/transport" } # Tauri dependency (optional, enabled only when needed) tauri = { workspace = true, optional = true } diff --git a/src/crates/facade/core/build.rs b/src/crates/assembly/core/build.rs similarity index 99% rename from src/crates/facade/core/build.rs rename to src/crates/assembly/core/build.rs index 60b0229bc..d018b1906 100644 --- a/src/crates/facade/core/build.rs +++ b/src/crates/assembly/core/build.rs @@ -114,7 +114,7 @@ fn embed_agents_prompt_data() -> Result<(), Box> { println!("cargo:rerun-if-changed=src/agentic/agents/prompts"); println!("cargo:rerun-if-changed=src/agentic/prompts"); - // Get CARGO_MANIFEST_DIR (i.e. src/crates/facade/core directory) + // Get CARGO_MANIFEST_DIR (i.e. src/crates/assembly/core directory) let manifest_dir = std::env::var("CARGO_MANIFEST_DIR")?; let mut prompts = HashMap::new(); diff --git a/src/crates/facade/core/builtin_playbooks/browser_data_extraction.yaml b/src/crates/assembly/core/builtin_playbooks/browser_data_extraction.yaml similarity index 100% rename from src/crates/facade/core/builtin_playbooks/browser_data_extraction.yaml rename to src/crates/assembly/core/builtin_playbooks/browser_data_extraction.yaml diff --git a/src/crates/facade/core/builtin_playbooks/browser_form_fill.yaml b/src/crates/assembly/core/builtin_playbooks/browser_form_fill.yaml similarity index 100% rename from src/crates/facade/core/builtin_playbooks/browser_form_fill.yaml rename to src/crates/assembly/core/builtin_playbooks/browser_form_fill.yaml diff --git a/src/crates/facade/core/builtin_playbooks/browser_screenshot.yaml b/src/crates/assembly/core/builtin_playbooks/browser_screenshot.yaml similarity index 100% rename from src/crates/facade/core/builtin_playbooks/browser_screenshot.yaml rename to src/crates/assembly/core/builtin_playbooks/browser_screenshot.yaml diff --git a/src/crates/facade/core/builtin_playbooks/desktop_app_automation.yaml b/src/crates/assembly/core/builtin_playbooks/desktop_app_automation.yaml similarity index 100% rename from src/crates/facade/core/builtin_playbooks/desktop_app_automation.yaml rename to src/crates/assembly/core/builtin_playbooks/desktop_app_automation.yaml diff --git a/src/crates/facade/core/builtin_playbooks/im_send_message.yaml b/src/crates/assembly/core/builtin_playbooks/im_send_message.yaml similarity index 100% rename from src/crates/facade/core/builtin_playbooks/im_send_message.yaml rename to src/crates/assembly/core/builtin_playbooks/im_send_message.yaml diff --git a/src/crates/facade/core/builtin_skills/agent-browser/SKILL.md b/src/crates/assembly/core/builtin_skills/agent-browser/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/SKILL.md rename to src/crates/assembly/core/builtin_skills/agent-browser/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/references/authentication.md b/src/crates/assembly/core/builtin_skills/agent-browser/references/authentication.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/references/authentication.md rename to src/crates/assembly/core/builtin_skills/agent-browser/references/authentication.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/references/commands.md b/src/crates/assembly/core/builtin_skills/agent-browser/references/commands.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/references/commands.md rename to src/crates/assembly/core/builtin_skills/agent-browser/references/commands.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/references/profiling.md b/src/crates/assembly/core/builtin_skills/agent-browser/references/profiling.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/references/profiling.md rename to src/crates/assembly/core/builtin_skills/agent-browser/references/profiling.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/references/proxy-support.md b/src/crates/assembly/core/builtin_skills/agent-browser/references/proxy-support.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/references/proxy-support.md rename to src/crates/assembly/core/builtin_skills/agent-browser/references/proxy-support.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/references/session-management.md b/src/crates/assembly/core/builtin_skills/agent-browser/references/session-management.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/references/session-management.md rename to src/crates/assembly/core/builtin_skills/agent-browser/references/session-management.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/references/snapshot-refs.md b/src/crates/assembly/core/builtin_skills/agent-browser/references/snapshot-refs.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/references/snapshot-refs.md rename to src/crates/assembly/core/builtin_skills/agent-browser/references/snapshot-refs.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/references/video-recording.md b/src/crates/assembly/core/builtin_skills/agent-browser/references/video-recording.md similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/references/video-recording.md rename to src/crates/assembly/core/builtin_skills/agent-browser/references/video-recording.md diff --git a/src/crates/facade/core/builtin_skills/agent-browser/templates/authenticated-session.sh b/src/crates/assembly/core/builtin_skills/agent-browser/templates/authenticated-session.sh similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/templates/authenticated-session.sh rename to src/crates/assembly/core/builtin_skills/agent-browser/templates/authenticated-session.sh diff --git a/src/crates/facade/core/builtin_skills/agent-browser/templates/capture-workflow.sh b/src/crates/assembly/core/builtin_skills/agent-browser/templates/capture-workflow.sh similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/templates/capture-workflow.sh rename to src/crates/assembly/core/builtin_skills/agent-browser/templates/capture-workflow.sh diff --git a/src/crates/facade/core/builtin_skills/agent-browser/templates/form-automation.sh b/src/crates/assembly/core/builtin_skills/agent-browser/templates/form-automation.sh similarity index 100% rename from src/crates/facade/core/builtin_skills/agent-browser/templates/form-automation.sh rename to src/crates/assembly/core/builtin_skills/agent-browser/templates/form-automation.sh diff --git a/src/crates/facade/core/builtin_skills/docx/LICENSE.txt b/src/crates/assembly/core/builtin_skills/docx/LICENSE.txt similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/LICENSE.txt rename to src/crates/assembly/core/builtin_skills/docx/LICENSE.txt diff --git a/src/crates/facade/core/builtin_skills/docx/SKILL.md b/src/crates/assembly/core/builtin_skills/docx/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/SKILL.md rename to src/crates/assembly/core/builtin_skills/docx/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/__init__.py b/src/crates/assembly/core/builtin_skills/docx/scripts/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/__init__.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/__init__.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/accept_changes.py b/src/crates/assembly/core/builtin_skills/docx/scripts/accept_changes.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/accept_changes.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/accept_changes.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/comment.py b/src/crates/assembly/core/builtin_skills/docx/scripts/comment.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/comment.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/comment.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/helpers/__init__.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/helpers/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/helpers/__init__.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/helpers/__init__.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/helpers/merge_runs.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/helpers/merge_runs.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/helpers/merge_runs.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/helpers/merge_runs.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/helpers/simplify_redlines.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/helpers/simplify_redlines.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/helpers/simplify_redlines.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/helpers/simplify_redlines.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/pack.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/pack.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/pack.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/pack.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/mce/mc.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/mce/mc.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/mce/mc.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/mce/mc.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd b/src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/soffice.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/soffice.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/soffice.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/soffice.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/unpack.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/unpack.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/unpack.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/unpack.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/validate.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/validate.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/validate.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/validate.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/validators/__init__.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/validators/__init__.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/__init__.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/validators/base.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/base.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/validators/base.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/base.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/validators/docx.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/docx.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/validators/docx.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/docx.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/validators/pptx.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/pptx.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/validators/pptx.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/pptx.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/office/validators/redlining.py b/src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/redlining.py similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/office/validators/redlining.py rename to src/crates/assembly/core/builtin_skills/docx/scripts/office/validators/redlining.py diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/templates/comments.xml b/src/crates/assembly/core/builtin_skills/docx/scripts/templates/comments.xml similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/templates/comments.xml rename to src/crates/assembly/core/builtin_skills/docx/scripts/templates/comments.xml diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/templates/commentsExtended.xml b/src/crates/assembly/core/builtin_skills/docx/scripts/templates/commentsExtended.xml similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/templates/commentsExtended.xml rename to src/crates/assembly/core/builtin_skills/docx/scripts/templates/commentsExtended.xml diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/templates/commentsExtensible.xml b/src/crates/assembly/core/builtin_skills/docx/scripts/templates/commentsExtensible.xml similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/templates/commentsExtensible.xml rename to src/crates/assembly/core/builtin_skills/docx/scripts/templates/commentsExtensible.xml diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/templates/commentsIds.xml b/src/crates/assembly/core/builtin_skills/docx/scripts/templates/commentsIds.xml similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/templates/commentsIds.xml rename to src/crates/assembly/core/builtin_skills/docx/scripts/templates/commentsIds.xml diff --git a/src/crates/facade/core/builtin_skills/docx/scripts/templates/people.xml b/src/crates/assembly/core/builtin_skills/docx/scripts/templates/people.xml similarity index 100% rename from src/crates/facade/core/builtin_skills/docx/scripts/templates/people.xml rename to src/crates/assembly/core/builtin_skills/docx/scripts/templates/people.xml diff --git a/src/crates/facade/core/builtin_skills/find-skills/SKILL.md b/src/crates/assembly/core/builtin_skills/find-skills/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/find-skills/SKILL.md rename to src/crates/assembly/core/builtin_skills/find-skills/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-autoplan/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-autoplan/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-autoplan/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-autoplan/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-cso/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-cso/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-cso/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-cso/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-design-consultation/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-design-consultation/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-design-consultation/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-design-consultation/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-design-review/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-design-review/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-design-review/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-design-review/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-document-release/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-document-release/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-document-release/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-document-release/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-investigate/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-investigate/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-investigate/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-investigate/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-office-hours/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-office-hours/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-office-hours/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-office-hours/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-plan-ceo-review/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-plan-ceo-review/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-plan-ceo-review/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-plan-ceo-review/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-plan-design-review/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-plan-design-review/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-plan-design-review/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-plan-design-review/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-plan-eng-review/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-plan-eng-review/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-plan-eng-review/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-plan-eng-review/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-qa-only/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-qa-only/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-qa-only/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-qa-only/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-qa/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-qa/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-qa/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-qa/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-retro/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-retro/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-retro/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-retro/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-review/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-review/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-review/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-review/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/gstack-ship/SKILL.md b/src/crates/assembly/core/builtin_skills/gstack-ship/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/gstack-ship/SKILL.md rename to src/crates/assembly/core/builtin_skills/gstack-ship/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/pdf/LICENSE.txt b/src/crates/assembly/core/builtin_skills/pdf/LICENSE.txt similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/LICENSE.txt rename to src/crates/assembly/core/builtin_skills/pdf/LICENSE.txt diff --git a/src/crates/facade/core/builtin_skills/pdf/SKILL.md b/src/crates/assembly/core/builtin_skills/pdf/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/SKILL.md rename to src/crates/assembly/core/builtin_skills/pdf/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/pdf/forms.md b/src/crates/assembly/core/builtin_skills/pdf/forms.md similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/forms.md rename to src/crates/assembly/core/builtin_skills/pdf/forms.md diff --git a/src/crates/facade/core/builtin_skills/pdf/reference.md b/src/crates/assembly/core/builtin_skills/pdf/reference.md similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/reference.md rename to src/crates/assembly/core/builtin_skills/pdf/reference.md diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/check_bounding_boxes.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/check_bounding_boxes.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/check_bounding_boxes.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/check_bounding_boxes.py diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/check_fillable_fields.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/check_fillable_fields.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/check_fillable_fields.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/check_fillable_fields.py diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/convert_pdf_to_images.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/convert_pdf_to_images.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/convert_pdf_to_images.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/convert_pdf_to_images.py diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/create_validation_image.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/create_validation_image.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/create_validation_image.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/create_validation_image.py diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/extract_form_field_info.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/extract_form_field_info.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/extract_form_field_info.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/extract_form_field_info.py diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/extract_form_structure.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/extract_form_structure.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/extract_form_structure.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/extract_form_structure.py diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/fill_fillable_fields.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/fill_fillable_fields.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/fill_fillable_fields.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/fill_fillable_fields.py diff --git a/src/crates/facade/core/builtin_skills/pdf/scripts/fill_pdf_form_with_annotations.py b/src/crates/assembly/core/builtin_skills/pdf/scripts/fill_pdf_form_with_annotations.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pdf/scripts/fill_pdf_form_with_annotations.py rename to src/crates/assembly/core/builtin_skills/pdf/scripts/fill_pdf_form_with_annotations.py diff --git a/src/crates/facade/core/builtin_skills/pptx/LICENSE.txt b/src/crates/assembly/core/builtin_skills/pptx/LICENSE.txt similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/LICENSE.txt rename to src/crates/assembly/core/builtin_skills/pptx/LICENSE.txt diff --git a/src/crates/facade/core/builtin_skills/pptx/SKILL.md b/src/crates/assembly/core/builtin_skills/pptx/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/SKILL.md rename to src/crates/assembly/core/builtin_skills/pptx/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/pptx/editing.md b/src/crates/assembly/core/builtin_skills/pptx/editing.md similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/editing.md rename to src/crates/assembly/core/builtin_skills/pptx/editing.md diff --git a/src/crates/facade/core/builtin_skills/pptx/pptxgenjs.md b/src/crates/assembly/core/builtin_skills/pptx/pptxgenjs.md similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/pptxgenjs.md rename to src/crates/assembly/core/builtin_skills/pptx/pptxgenjs.md diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/__init__.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/__init__.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/__init__.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/add_slide.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/add_slide.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/add_slide.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/add_slide.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/clean.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/clean.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/clean.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/clean.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/helpers/__init__.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/helpers/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/helpers/__init__.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/helpers/__init__.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/helpers/merge_runs.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/helpers/merge_runs.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/helpers/merge_runs.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/helpers/merge_runs.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/helpers/simplify_redlines.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/helpers/simplify_redlines.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/helpers/simplify_redlines.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/helpers/simplify_redlines.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/pack.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/pack.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/pack.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/pack.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/mce/mc.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/mce/mc.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/mce/mc.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/mce/mc.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/soffice.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/soffice.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/soffice.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/soffice.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/unpack.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/unpack.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/unpack.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/unpack.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/validate.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/validate.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/validate.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/validate.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/__init__.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/__init__.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/__init__.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/base.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/base.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/base.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/base.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/docx.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/docx.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/docx.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/docx.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/pptx.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/pptx.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/pptx.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/pptx.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/redlining.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/redlining.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/office/validators/redlining.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/office/validators/redlining.py diff --git a/src/crates/facade/core/builtin_skills/pptx/scripts/thumbnail.py b/src/crates/assembly/core/builtin_skills/pptx/scripts/thumbnail.py similarity index 100% rename from src/crates/facade/core/builtin_skills/pptx/scripts/thumbnail.py rename to src/crates/assembly/core/builtin_skills/pptx/scripts/thumbnail.py diff --git a/src/crates/facade/core/builtin_skills/writing-skills/SKILL.md b/src/crates/assembly/core/builtin_skills/writing-skills/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/writing-skills/SKILL.md rename to src/crates/assembly/core/builtin_skills/writing-skills/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/writing-skills/anthropic-best-practices.md b/src/crates/assembly/core/builtin_skills/writing-skills/anthropic-best-practices.md similarity index 100% rename from src/crates/facade/core/builtin_skills/writing-skills/anthropic-best-practices.md rename to src/crates/assembly/core/builtin_skills/writing-skills/anthropic-best-practices.md diff --git a/src/crates/facade/core/builtin_skills/writing-skills/examples/CLAUDE_MD_TESTING.md b/src/crates/assembly/core/builtin_skills/writing-skills/examples/CLAUDE_MD_TESTING.md similarity index 100% rename from src/crates/facade/core/builtin_skills/writing-skills/examples/CLAUDE_MD_TESTING.md rename to src/crates/assembly/core/builtin_skills/writing-skills/examples/CLAUDE_MD_TESTING.md diff --git a/src/crates/facade/core/builtin_skills/writing-skills/graphviz-conventions.dot b/src/crates/assembly/core/builtin_skills/writing-skills/graphviz-conventions.dot similarity index 100% rename from src/crates/facade/core/builtin_skills/writing-skills/graphviz-conventions.dot rename to src/crates/assembly/core/builtin_skills/writing-skills/graphviz-conventions.dot diff --git a/src/crates/facade/core/builtin_skills/writing-skills/persuasion-principles.md b/src/crates/assembly/core/builtin_skills/writing-skills/persuasion-principles.md similarity index 100% rename from src/crates/facade/core/builtin_skills/writing-skills/persuasion-principles.md rename to src/crates/assembly/core/builtin_skills/writing-skills/persuasion-principles.md diff --git a/src/crates/facade/core/builtin_skills/writing-skills/render-graphs.js b/src/crates/assembly/core/builtin_skills/writing-skills/render-graphs.js similarity index 100% rename from src/crates/facade/core/builtin_skills/writing-skills/render-graphs.js rename to src/crates/assembly/core/builtin_skills/writing-skills/render-graphs.js diff --git a/src/crates/facade/core/builtin_skills/writing-skills/testing-skills-with-subagents.md b/src/crates/assembly/core/builtin_skills/writing-skills/testing-skills-with-subagents.md similarity index 100% rename from src/crates/facade/core/builtin_skills/writing-skills/testing-skills-with-subagents.md rename to src/crates/assembly/core/builtin_skills/writing-skills/testing-skills-with-subagents.md diff --git a/src/crates/facade/core/builtin_skills/xlsx/LICENSE.txt b/src/crates/assembly/core/builtin_skills/xlsx/LICENSE.txt similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/LICENSE.txt rename to src/crates/assembly/core/builtin_skills/xlsx/LICENSE.txt diff --git a/src/crates/facade/core/builtin_skills/xlsx/SKILL.md b/src/crates/assembly/core/builtin_skills/xlsx/SKILL.md similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/SKILL.md rename to src/crates/assembly/core/builtin_skills/xlsx/SKILL.md diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/helpers/__init__.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/helpers/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/helpers/__init__.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/helpers/__init__.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/helpers/merge_runs.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/helpers/merge_runs.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/helpers/merge_runs.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/helpers/merge_runs.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/helpers/simplify_redlines.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/helpers/simplify_redlines.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/helpers/simplify_redlines.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/helpers/simplify_redlines.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/pack.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/pack.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/pack.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/pack.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/mce/mc.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/mce/mc.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/mce/mc.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/mce/mc.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/soffice.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/soffice.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/soffice.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/soffice.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/unpack.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/unpack.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/unpack.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/unpack.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/validate.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validate.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/validate.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validate.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/__init__.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/__init__.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/__init__.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/__init__.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/base.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/base.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/base.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/base.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/docx.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/docx.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/docx.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/docx.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/pptx.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/pptx.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/pptx.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/pptx.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/redlining.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/redlining.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/office/validators/redlining.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/office/validators/redlining.py diff --git a/src/crates/facade/core/builtin_skills/xlsx/scripts/recalc.py b/src/crates/assembly/core/builtin_skills/xlsx/scripts/recalc.py similarity index 100% rename from src/crates/facade/core/builtin_skills/xlsx/scripts/recalc.py rename to src/crates/assembly/core/builtin_skills/xlsx/scripts/recalc.py diff --git a/src/crates/facade/core/locales/en-US.ftl b/src/crates/assembly/core/locales/en-US.ftl similarity index 100% rename from src/crates/facade/core/locales/en-US.ftl rename to src/crates/assembly/core/locales/en-US.ftl diff --git a/src/crates/facade/core/locales/zh-CN.ftl b/src/crates/assembly/core/locales/zh-CN.ftl similarity index 100% rename from src/crates/facade/core/locales/zh-CN.ftl rename to src/crates/assembly/core/locales/zh-CN.ftl diff --git a/src/crates/facade/core/locales/zh-TW.ftl b/src/crates/assembly/core/locales/zh-TW.ftl similarity index 100% rename from src/crates/facade/core/locales/zh-TW.ftl rename to src/crates/assembly/core/locales/zh-TW.ftl diff --git a/src/crates/facade/core/src/agentic/agents/citation_renumber.rs b/src/crates/assembly/core/src/agentic/agents/citation_renumber.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/citation_renumber.rs rename to src/crates/assembly/core/src/agentic/agents/citation_renumber.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/custom/mod.rs b/src/crates/assembly/core/src/agentic/agents/definitions/custom/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/custom/mod.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/custom/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/custom/subagent.rs b/src/crates/assembly/core/src/agentic/agents/definitions/custom/subagent.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/custom/subagent.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/custom/subagent.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/hidden/code_review.rs b/src/crates/assembly/core/src/agentic/agents/definitions/hidden/code_review.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/hidden/code_review.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/hidden/code_review.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/hidden/deep_review.rs b/src/crates/assembly/core/src/agentic/agents/definitions/hidden/deep_review.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/hidden/deep_review.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/hidden/deep_review.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/hidden/generate_doc.rs b/src/crates/assembly/core/src/agentic/agents/definitions/hidden/generate_doc.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/hidden/generate_doc.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/hidden/generate_doc.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/hidden/mod.rs b/src/crates/assembly/core/src/agentic/agents/definitions/hidden/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/hidden/mod.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/hidden/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/mod.rs b/src/crates/assembly/core/src/agentic/agents/definitions/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/mod.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/agentic.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/agentic.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/agentic.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/agentic.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/claw.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/claw.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/claw.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/claw.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/cowork.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/cowork.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/cowork.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/cowork.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/debug.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/debug.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/debug.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/debug.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/deep_research.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/deep_research.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/deep_research.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/deep_research.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/mod.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/mod.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/multitask.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/multitask.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/multitask.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/multitask.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/plan.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/plan.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/plan.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/plan.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/modes/team.rs b/src/crates/assembly/core/src/agentic/agents/definitions/modes/team.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/modes/team.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/modes/team.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/review/mod.rs b/src/crates/assembly/core/src/agentic/agents/definitions/review/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/review/mod.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/review/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/review/review_fixer.rs b/src/crates/assembly/core/src/agentic/agents/definitions/review/review_fixer.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/review/review_fixer.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/review/review_fixer.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/review/review_specialists.rs b/src/crates/assembly/core/src/agentic/agents/definitions/review/review_specialists.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/review/review_specialists.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/review/review_specialists.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/shared/mod.rs b/src/crates/assembly/core/src/agentic/agents/definitions/shared/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/shared/mod.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/shared/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/shared/readonly.rs b/src/crates/assembly/core/src/agentic/agents/definitions/shared/readonly.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/shared/readonly.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/shared/readonly.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/subagents/computer_use.rs b/src/crates/assembly/core/src/agentic/agents/definitions/subagents/computer_use.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/subagents/computer_use.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/subagents/computer_use.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/subagents/explore.rs b/src/crates/assembly/core/src/agentic/agents/definitions/subagents/explore.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/subagents/explore.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/subagents/explore.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/subagents/file_finder.rs b/src/crates/assembly/core/src/agentic/agents/definitions/subagents/file_finder.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/subagents/file_finder.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/subagents/file_finder.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/subagents/general_purpose.rs b/src/crates/assembly/core/src/agentic/agents/definitions/subagents/general_purpose.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/subagents/general_purpose.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/subagents/general_purpose.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/subagents/mod.rs b/src/crates/assembly/core/src/agentic/agents/definitions/subagents/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/subagents/mod.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/subagents/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/definitions/subagents/research_specialist.rs b/src/crates/assembly/core/src/agentic/agents/definitions/subagents/research_specialist.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/definitions/subagents/research_specialist.rs rename to src/crates/assembly/core/src/agentic/agents/definitions/subagents/research_specialist.rs diff --git a/src/crates/facade/core/src/agentic/agents/mod.rs b/src/crates/assembly/core/src/agentic/agents/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/mod.rs rename to src/crates/assembly/core/src/agentic/agents/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/prompt_builder/mod.rs b/src/crates/assembly/core/src/agentic/agents/prompt_builder/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompt_builder/mod.rs rename to src/crates/assembly/core/src/agentic/agents/prompt_builder/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/prompt_builder/prompt_builder_impl.rs b/src/crates/assembly/core/src/agentic/agents/prompt_builder/prompt_builder_impl.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompt_builder/prompt_builder_impl.rs rename to src/crates/assembly/core/src/agentic/agents/prompt_builder/prompt_builder_impl.rs diff --git a/src/crates/facade/core/src/agentic/agents/prompt_builder/user_context.rs b/src/crates/assembly/core/src/agentic/agents/prompt_builder/user_context.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompt_builder/user_context.rs rename to src/crates/assembly/core/src/agentic/agents/prompt_builder/user_context.rs diff --git a/src/crates/facade/core/src/agentic/agents/prompts/agentic_mode.md b/src/crates/assembly/core/src/agentic/agents/prompts/agentic_mode.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/agentic_mode.md rename to src/crates/assembly/core/src/agentic/agents/prompts/agentic_mode.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/agentic_mode_first_entry_reminder.md b/src/crates/assembly/core/src/agentic/agents/prompts/agentic_mode_first_entry_reminder.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/agentic_mode_first_entry_reminder.md rename to src/crates/assembly/core/src/agentic/agents/prompts/agentic_mode_first_entry_reminder.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/claw_mode.md b/src/crates/assembly/core/src/agentic/agents/prompts/claw_mode.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/claw_mode.md rename to src/crates/assembly/core/src/agentic/agents/prompts/claw_mode.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/code_review.md b/src/crates/assembly/core/src/agentic/agents/prompts/code_review.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/code_review.md rename to src/crates/assembly/core/src/agentic/agents/prompts/code_review.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/computer_use_mode.md b/src/crates/assembly/core/src/agentic/agents/prompts/computer_use_mode.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/computer_use_mode.md rename to src/crates/assembly/core/src/agentic/agents/prompts/computer_use_mode.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/cowork_mode.md b/src/crates/assembly/core/src/agentic/agents/prompts/cowork_mode.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/cowork_mode.md rename to src/crates/assembly/core/src/agentic/agents/prompts/cowork_mode.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/debug_mode_first_entry_reminder.md b/src/crates/assembly/core/src/agentic/agents/prompts/debug_mode_first_entry_reminder.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/debug_mode_first_entry_reminder.md rename to src/crates/assembly/core/src/agentic/agents/prompts/debug_mode_first_entry_reminder.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/debug_mode_ongoing_reminder.md b/src/crates/assembly/core/src/agentic/agents/prompts/debug_mode_ongoing_reminder.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/debug_mode_ongoing_reminder.md rename to src/crates/assembly/core/src/agentic/agents/prompts/debug_mode_ongoing_reminder.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/deep_research_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/deep_research_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/deep_research_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/deep_research_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/deep_review_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/deep_review_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/deep_review_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/deep_review_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/explore_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/explore_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/explore_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/explore_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/file_finder_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/file_finder_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/file_finder_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/file_finder_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/general_purpose_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/general_purpose_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/general_purpose_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/general_purpose_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/generate_doc_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/generate_doc_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/generate_doc_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/generate_doc_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/multitask_mode_first_entry_reminder.md b/src/crates/assembly/core/src/agentic/agents/prompts/multitask_mode_first_entry_reminder.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/multitask_mode_first_entry_reminder.md rename to src/crates/assembly/core/src/agentic/agents/prompts/multitask_mode_first_entry_reminder.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/multitask_mode_ongoing_reminder.md b/src/crates/assembly/core/src/agentic/agents/prompts/multitask_mode_ongoing_reminder.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/multitask_mode_ongoing_reminder.md rename to src/crates/assembly/core/src/agentic/agents/prompts/multitask_mode_ongoing_reminder.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/plan_mode_first_entry_reminder.md b/src/crates/assembly/core/src/agentic/agents/prompts/plan_mode_first_entry_reminder.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/plan_mode_first_entry_reminder.md rename to src/crates/assembly/core/src/agentic/agents/prompts/plan_mode_first_entry_reminder.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/plan_mode_ongoing_reminder.md b/src/crates/assembly/core/src/agentic/agents/prompts/plan_mode_ongoing_reminder.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/plan_mode_ongoing_reminder.md rename to src/crates/assembly/core/src/agentic/agents/prompts/plan_mode_ongoing_reminder.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/research_specialist_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/research_specialist_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/research_specialist_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/research_specialist_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/review_architecture_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/review_architecture_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/review_architecture_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/review_architecture_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/review_business_logic_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/review_business_logic_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/review_business_logic_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/review_business_logic_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/review_fixer_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/review_fixer_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/review_fixer_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/review_fixer_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/review_frontend_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/review_frontend_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/review_frontend_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/review_frontend_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/review_performance_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/review_performance_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/review_performance_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/review_performance_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/review_quality_gate_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/review_quality_gate_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/review_quality_gate_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/review_quality_gate_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/review_security_agent.md b/src/crates/assembly/core/src/agentic/agents/prompts/review_security_agent.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/review_security_agent.md rename to src/crates/assembly/core/src/agentic/agents/prompts/review_security_agent.md diff --git a/src/crates/facade/core/src/agentic/agents/prompts/team_mode.md b/src/crates/assembly/core/src/agentic/agents/prompts/team_mode.md similarity index 100% rename from src/crates/facade/core/src/agentic/agents/prompts/team_mode.md rename to src/crates/assembly/core/src/agentic/agents/prompts/team_mode.md diff --git a/src/crates/facade/core/src/agentic/agents/registry/availability.rs b/src/crates/assembly/core/src/agentic/agents/registry/availability.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/availability.rs rename to src/crates/assembly/core/src/agentic/agents/registry/availability.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/builtin.rs b/src/crates/assembly/core/src/agentic/agents/registry/builtin.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/builtin.rs rename to src/crates/assembly/core/src/agentic/agents/registry/builtin.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/catalog.rs b/src/crates/assembly/core/src/agentic/agents/registry/catalog.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/catalog.rs rename to src/crates/assembly/core/src/agentic/agents/registry/catalog.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/custom.rs b/src/crates/assembly/core/src/agentic/agents/registry/custom.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/custom.rs rename to src/crates/assembly/core/src/agentic/agents/registry/custom.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/mod.rs b/src/crates/assembly/core/src/agentic/agents/registry/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/mod.rs rename to src/crates/assembly/core/src/agentic/agents/registry/mod.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/query.rs b/src/crates/assembly/core/src/agentic/agents/registry/query.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/query.rs rename to src/crates/assembly/core/src/agentic/agents/registry/query.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/resolution.rs b/src/crates/assembly/core/src/agentic/agents/registry/resolution.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/resolution.rs rename to src/crates/assembly/core/src/agentic/agents/registry/resolution.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/support.rs b/src/crates/assembly/core/src/agentic/agents/registry/support.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/support.rs rename to src/crates/assembly/core/src/agentic/agents/registry/support.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/tests.rs b/src/crates/assembly/core/src/agentic/agents/registry/tests.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/tests.rs rename to src/crates/assembly/core/src/agentic/agents/registry/tests.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/types.rs b/src/crates/assembly/core/src/agentic/agents/registry/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/types.rs rename to src/crates/assembly/core/src/agentic/agents/registry/types.rs diff --git a/src/crates/facade/core/src/agentic/agents/registry/visibility.rs b/src/crates/assembly/core/src/agentic/agents/registry/visibility.rs similarity index 100% rename from src/crates/facade/core/src/agentic/agents/registry/visibility.rs rename to src/crates/assembly/core/src/agentic/agents/registry/visibility.rs diff --git a/src/crates/facade/core/src/agentic/context_profile.rs b/src/crates/assembly/core/src/agentic/context_profile.rs similarity index 100% rename from src/crates/facade/core/src/agentic/context_profile.rs rename to src/crates/assembly/core/src/agentic/context_profile.rs diff --git a/src/crates/facade/core/src/agentic/coordination/coordinator.rs b/src/crates/assembly/core/src/agentic/coordination/coordinator.rs similarity index 100% rename from src/crates/facade/core/src/agentic/coordination/coordinator.rs rename to src/crates/assembly/core/src/agentic/coordination/coordinator.rs diff --git a/src/crates/facade/core/src/agentic/coordination/mod.rs b/src/crates/assembly/core/src/agentic/coordination/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/coordination/mod.rs rename to src/crates/assembly/core/src/agentic/coordination/mod.rs diff --git a/src/crates/facade/core/src/agentic/coordination/scheduler.rs b/src/crates/assembly/core/src/agentic/coordination/scheduler.rs similarity index 100% rename from src/crates/facade/core/src/agentic/coordination/scheduler.rs rename to src/crates/assembly/core/src/agentic/coordination/scheduler.rs diff --git a/src/crates/facade/core/src/agentic/coordination/state_manager.rs b/src/crates/assembly/core/src/agentic/coordination/state_manager.rs similarity index 100% rename from src/crates/facade/core/src/agentic/coordination/state_manager.rs rename to src/crates/assembly/core/src/agentic/coordination/state_manager.rs diff --git a/src/crates/facade/core/src/agentic/coordination/turn_outcome.rs b/src/crates/assembly/core/src/agentic/coordination/turn_outcome.rs similarity index 100% rename from src/crates/facade/core/src/agentic/coordination/turn_outcome.rs rename to src/crates/assembly/core/src/agentic/coordination/turn_outcome.rs diff --git a/src/crates/facade/core/src/agentic/core/dialog_turn.rs b/src/crates/assembly/core/src/agentic/core/dialog_turn.rs similarity index 100% rename from src/crates/facade/core/src/agentic/core/dialog_turn.rs rename to src/crates/assembly/core/src/agentic/core/dialog_turn.rs diff --git a/src/crates/facade/core/src/agentic/core/message.rs b/src/crates/assembly/core/src/agentic/core/message.rs similarity index 100% rename from src/crates/facade/core/src/agentic/core/message.rs rename to src/crates/assembly/core/src/agentic/core/message.rs diff --git a/src/crates/facade/core/src/agentic/core/messages_helper.rs b/src/crates/assembly/core/src/agentic/core/messages_helper.rs similarity index 100% rename from src/crates/facade/core/src/agentic/core/messages_helper.rs rename to src/crates/assembly/core/src/agentic/core/messages_helper.rs diff --git a/src/crates/facade/core/src/agentic/core/mod.rs b/src/crates/assembly/core/src/agentic/core/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/core/mod.rs rename to src/crates/assembly/core/src/agentic/core/mod.rs diff --git a/src/crates/facade/core/src/agentic/core/prompt_markup.rs b/src/crates/assembly/core/src/agentic/core/prompt_markup.rs similarity index 100% rename from src/crates/facade/core/src/agentic/core/prompt_markup.rs rename to src/crates/assembly/core/src/agentic/core/prompt_markup.rs diff --git a/src/crates/facade/core/src/agentic/core/session.rs b/src/crates/assembly/core/src/agentic/core/session.rs similarity index 100% rename from src/crates/facade/core/src/agentic/core/session.rs rename to src/crates/assembly/core/src/agentic/core/session.rs diff --git a/src/crates/facade/core/src/agentic/core/state.rs b/src/crates/assembly/core/src/agentic/core/state.rs similarity index 100% rename from src/crates/facade/core/src/agentic/core/state.rs rename to src/crates/assembly/core/src/agentic/core/state.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/AGENTS.md b/src/crates/assembly/core/src/agentic/deep_review/AGENTS.md similarity index 93% rename from src/crates/facade/core/src/agentic/deep_review/AGENTS.md rename to src/crates/assembly/core/src/agentic/deep_review/AGENTS.md index 9dafe73ac..a89d5d230 100644 --- a/src/crates/facade/core/src/agentic/deep_review/AGENTS.md +++ b/src/crates/assembly/core/src/agentic/deep_review/AGENTS.md @@ -13,7 +13,7 @@ This file applies to DeepReview runtime internals in this directory. this directory owns validation, queue/retry state, task adaptation, and report enrichment. - Keep default team/runtime contracts aligned with `deep_review_policy.rs` and - reviewer agents in `src/crates/facade/core/src/agentic/agents`. + reviewer agents in `src/crates/assembly/core/src/agentic/agents`. - Reviewer subagents stay read-only; `ReviewFixer` is not part of the review pass. - When queue or report fields change, update the matching frontend DTOs and diff --git a/src/crates/facade/core/src/agentic/deep_review/CONTRIBUTING.md b/src/crates/assembly/core/src/agentic/deep_review/CONTRIBUTING.md similarity index 86% rename from src/crates/facade/core/src/agentic/deep_review/CONTRIBUTING.md rename to src/crates/assembly/core/src/agentic/deep_review/CONTRIBUTING.md index f1bd662fa..ade726067 100644 --- a/src/crates/facade/core/src/agentic/deep_review/CONTRIBUTING.md +++ b/src/crates/assembly/core/src/agentic/deep_review/CONTRIBUTING.md @@ -1,6 +1,6 @@ # DeepReview Runtime Contributions -Use this guide for backend DeepReview changes in `src/crates/facade/core`. +Use this guide for backend DeepReview changes in `src/crates/assembly/core`. - Runtime changes belong in shared core, without Tauri or desktop-only APIs. - Keep policy, manifest gate, queue state, retry behavior, task adapter, and diff --git a/src/crates/facade/core/src/agentic/deep_review/budget.rs b/src/crates/assembly/core/src/agentic/deep_review/budget.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/budget.rs rename to src/crates/assembly/core/src/agentic/deep_review/budget.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/concurrency_policy.rs b/src/crates/assembly/core/src/agentic/deep_review/concurrency_policy.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/concurrency_policy.rs rename to src/crates/assembly/core/src/agentic/deep_review/concurrency_policy.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/constants.rs b/src/crates/assembly/core/src/agentic/deep_review/constants.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/constants.rs rename to src/crates/assembly/core/src/agentic/deep_review/constants.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/diagnostics.rs b/src/crates/assembly/core/src/agentic/deep_review/diagnostics.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/diagnostics.rs rename to src/crates/assembly/core/src/agentic/deep_review/diagnostics.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/execution_policy.rs b/src/crates/assembly/core/src/agentic/deep_review/execution_policy.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/execution_policy.rs rename to src/crates/assembly/core/src/agentic/deep_review/execution_policy.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/incremental_cache.rs b/src/crates/assembly/core/src/agentic/deep_review/incremental_cache.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/incremental_cache.rs rename to src/crates/assembly/core/src/agentic/deep_review/incremental_cache.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/manifest.rs b/src/crates/assembly/core/src/agentic/deep_review/manifest.rs similarity index 98% rename from src/crates/facade/core/src/agentic/deep_review/manifest.rs rename to src/crates/assembly/core/src/agentic/deep_review/manifest.rs index 75f4add89..ccb13f339 100644 --- a/src/crates/facade/core/src/agentic/deep_review/manifest.rs +++ b/src/crates/assembly/core/src/agentic/deep_review/manifest.rs @@ -761,7 +761,7 @@ mod tests { "evidencePack": { "version": 1, "source": "target_manifest", - "changedFiles": ["src/crates/integrations/api-layer/src/review.rs"], + "changedFiles": ["src/crates/adapters/api-layer/src/review.rs"], "diffStat": { "fileCount": 1, "totalChangedLines": 4, @@ -772,7 +772,7 @@ mod tests { "packetIds": ["reviewer:ReviewArchitecture", "judge:ReviewJudge"], "hunkHints": [ { - "filePath": "src/crates/integrations/api-layer/src/review.rs", + "filePath": "src/crates/adapters/api-layer/src/review.rs", "changedLineCount": 4, "lineCountSource": "diff_stat" } @@ -780,7 +780,7 @@ mod tests { "contractHints": [ { "kind": "api_contract", - "filePath": "src/crates/integrations/api-layer/src/review.rs", + "filePath": "src/crates/adapters/api-layer/src/review.rs", "source": "path_classifier" } ], @@ -822,7 +822,7 @@ mod tests { .iter() .map(String::as_str) .collect::>(), - vec!["src/crates/integrations/api-layer/src/review.rs"] + vec!["src/crates/adapters/api-layer/src/review.rs"] ); assert_eq!( pack.packet_ids() diff --git a/src/crates/facade/core/src/agentic/deep_review/mod.rs b/src/crates/assembly/core/src/agentic/deep_review/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/mod.rs rename to src/crates/assembly/core/src/agentic/deep_review/mod.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/queue.rs b/src/crates/assembly/core/src/agentic/deep_review/queue.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/queue.rs rename to src/crates/assembly/core/src/agentic/deep_review/queue.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/report.rs b/src/crates/assembly/core/src/agentic/deep_review/report.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/report.rs rename to src/crates/assembly/core/src/agentic/deep_review/report.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/shared_context.rs b/src/crates/assembly/core/src/agentic/deep_review/shared_context.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/shared_context.rs rename to src/crates/assembly/core/src/agentic/deep_review/shared_context.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/task_adapter.rs b/src/crates/assembly/core/src/agentic/deep_review/task_adapter.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/task_adapter.rs rename to src/crates/assembly/core/src/agentic/deep_review/task_adapter.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/team_definition.rs b/src/crates/assembly/core/src/agentic/deep_review/team_definition.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/team_definition.rs rename to src/crates/assembly/core/src/agentic/deep_review/team_definition.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/tool_context.rs b/src/crates/assembly/core/src/agentic/deep_review/tool_context.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/tool_context.rs rename to src/crates/assembly/core/src/agentic/deep_review/tool_context.rs diff --git a/src/crates/facade/core/src/agentic/deep_review/tool_measurement.rs b/src/crates/assembly/core/src/agentic/deep_review/tool_measurement.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review/tool_measurement.rs rename to src/crates/assembly/core/src/agentic/deep_review/tool_measurement.rs diff --git a/src/crates/facade/core/src/agentic/deep_review_policy.rs b/src/crates/assembly/core/src/agentic/deep_review_policy.rs similarity index 100% rename from src/crates/facade/core/src/agentic/deep_review_policy.rs rename to src/crates/assembly/core/src/agentic/deep_review_policy.rs diff --git a/src/crates/facade/core/src/agentic/events/mod.rs b/src/crates/assembly/core/src/agentic/events/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/events/mod.rs rename to src/crates/assembly/core/src/agentic/events/mod.rs diff --git a/src/crates/facade/core/src/agentic/events/queue.rs b/src/crates/assembly/core/src/agentic/events/queue.rs similarity index 100% rename from src/crates/facade/core/src/agentic/events/queue.rs rename to src/crates/assembly/core/src/agentic/events/queue.rs diff --git a/src/crates/facade/core/src/agentic/events/router.rs b/src/crates/assembly/core/src/agentic/events/router.rs similarity index 100% rename from src/crates/facade/core/src/agentic/events/router.rs rename to src/crates/assembly/core/src/agentic/events/router.rs diff --git a/src/crates/facade/core/src/agentic/events/types.rs b/src/crates/assembly/core/src/agentic/events/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/events/types.rs rename to src/crates/assembly/core/src/agentic/events/types.rs diff --git a/src/crates/facade/core/src/agentic/execution/AGENTS.md b/src/crates/assembly/core/src/agentic/execution/AGENTS.md similarity index 100% rename from src/crates/facade/core/src/agentic/execution/AGENTS.md rename to src/crates/assembly/core/src/agentic/execution/AGENTS.md diff --git a/src/crates/facade/core/src/agentic/execution/execution_engine.rs b/src/crates/assembly/core/src/agentic/execution/execution_engine.rs similarity index 100% rename from src/crates/facade/core/src/agentic/execution/execution_engine.rs rename to src/crates/assembly/core/src/agentic/execution/execution_engine.rs diff --git a/src/crates/facade/core/src/agentic/execution/mod.rs b/src/crates/assembly/core/src/agentic/execution/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/execution/mod.rs rename to src/crates/assembly/core/src/agentic/execution/mod.rs diff --git a/src/crates/facade/core/src/agentic/execution/round_executor.rs b/src/crates/assembly/core/src/agentic/execution/round_executor.rs similarity index 100% rename from src/crates/facade/core/src/agentic/execution/round_executor.rs rename to src/crates/assembly/core/src/agentic/execution/round_executor.rs diff --git a/src/crates/facade/core/src/agentic/execution/stream_processor.rs b/src/crates/assembly/core/src/agentic/execution/stream_processor.rs similarity index 100% rename from src/crates/facade/core/src/agentic/execution/stream_processor.rs rename to src/crates/assembly/core/src/agentic/execution/stream_processor.rs diff --git a/src/crates/facade/core/src/agentic/execution/types.rs b/src/crates/assembly/core/src/agentic/execution/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/execution/types.rs rename to src/crates/assembly/core/src/agentic/execution/types.rs diff --git a/src/crates/facade/core/src/agentic/execution/write_content_sanitizer.rs b/src/crates/assembly/core/src/agentic/execution/write_content_sanitizer.rs similarity index 100% rename from src/crates/facade/core/src/agentic/execution/write_content_sanitizer.rs rename to src/crates/assembly/core/src/agentic/execution/write_content_sanitizer.rs diff --git a/src/crates/facade/core/src/agentic/fork_agent/mod.rs b/src/crates/assembly/core/src/agentic/fork_agent/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/fork_agent/mod.rs rename to src/crates/assembly/core/src/agentic/fork_agent/mod.rs diff --git a/src/crates/facade/core/src/agentic/goal_mode/mod.rs b/src/crates/assembly/core/src/agentic/goal_mode/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/goal_mode/mod.rs rename to src/crates/assembly/core/src/agentic/goal_mode/mod.rs diff --git a/src/crates/facade/core/src/agentic/goal_mode/token_subscriber.rs b/src/crates/assembly/core/src/agentic/goal_mode/token_subscriber.rs similarity index 100% rename from src/crates/facade/core/src/agentic/goal_mode/token_subscriber.rs rename to src/crates/assembly/core/src/agentic/goal_mode/token_subscriber.rs diff --git a/src/crates/facade/core/src/agentic/harness.rs b/src/crates/assembly/core/src/agentic/harness.rs similarity index 100% rename from src/crates/facade/core/src/agentic/harness.rs rename to src/crates/assembly/core/src/agentic/harness.rs diff --git a/src/crates/facade/core/src/agentic/image_analysis/enhancer.rs b/src/crates/assembly/core/src/agentic/image_analysis/enhancer.rs similarity index 100% rename from src/crates/facade/core/src/agentic/image_analysis/enhancer.rs rename to src/crates/assembly/core/src/agentic/image_analysis/enhancer.rs diff --git a/src/crates/facade/core/src/agentic/image_analysis/image_processing.rs b/src/crates/assembly/core/src/agentic/image_analysis/image_processing.rs similarity index 100% rename from src/crates/facade/core/src/agentic/image_analysis/image_processing.rs rename to src/crates/assembly/core/src/agentic/image_analysis/image_processing.rs diff --git a/src/crates/facade/core/src/agentic/image_analysis/mod.rs b/src/crates/assembly/core/src/agentic/image_analysis/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/image_analysis/mod.rs rename to src/crates/assembly/core/src/agentic/image_analysis/mod.rs diff --git a/src/crates/facade/core/src/agentic/image_analysis/processor.rs b/src/crates/assembly/core/src/agentic/image_analysis/processor.rs similarity index 100% rename from src/crates/facade/core/src/agentic/image_analysis/processor.rs rename to src/crates/assembly/core/src/agentic/image_analysis/processor.rs diff --git a/src/crates/facade/core/src/agentic/image_analysis/types.rs b/src/crates/assembly/core/src/agentic/image_analysis/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/image_analysis/types.rs rename to src/crates/assembly/core/src/agentic/image_analysis/types.rs diff --git a/src/crates/facade/core/src/agentic/init_agents_md.rs b/src/crates/assembly/core/src/agentic/init_agents_md.rs similarity index 100% rename from src/crates/facade/core/src/agentic/init_agents_md.rs rename to src/crates/assembly/core/src/agentic/init_agents_md.rs diff --git a/src/crates/facade/core/src/agentic/insights/cancellation.rs b/src/crates/assembly/core/src/agentic/insights/cancellation.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/cancellation.rs rename to src/crates/assembly/core/src/agentic/insights/cancellation.rs diff --git a/src/crates/facade/core/src/agentic/insights/collector.rs b/src/crates/assembly/core/src/agentic/insights/collector.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/collector.rs rename to src/crates/assembly/core/src/agentic/insights/collector.rs diff --git a/src/crates/facade/core/src/agentic/insights/facet_cache.rs b/src/crates/assembly/core/src/agentic/insights/facet_cache.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/facet_cache.rs rename to src/crates/assembly/core/src/agentic/insights/facet_cache.rs diff --git a/src/crates/facade/core/src/agentic/insights/html.rs b/src/crates/assembly/core/src/agentic/insights/html.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/html.rs rename to src/crates/assembly/core/src/agentic/insights/html.rs diff --git a/src/crates/facade/core/src/agentic/insights/mod.rs b/src/crates/assembly/core/src/agentic/insights/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/mod.rs rename to src/crates/assembly/core/src/agentic/insights/mod.rs diff --git a/src/crates/facade/core/src/agentic/insights/prompt_context.rs b/src/crates/assembly/core/src/agentic/insights/prompt_context.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompt_context.rs rename to src/crates/assembly/core/src/agentic/insights/prompt_context.rs diff --git a/src/crates/facade/core/src/agentic/insights/prompts/areas.md b/src/crates/assembly/core/src/agentic/insights/prompts/areas.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/areas.md rename to src/crates/assembly/core/src/agentic/insights/prompts/areas.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/at_a_glance.md b/src/crates/assembly/core/src/agentic/insights/prompts/at_a_glance.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/at_a_glance.md rename to src/crates/assembly/core/src/agentic/insights/prompts/at_a_glance.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/facet_extraction.md b/src/crates/assembly/core/src/agentic/insights/prompts/facet_extraction.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/facet_extraction.md rename to src/crates/assembly/core/src/agentic/insights/prompts/facet_extraction.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/friction.md b/src/crates/assembly/core/src/agentic/insights/prompts/friction.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/friction.md rename to src/crates/assembly/core/src/agentic/insights/prompts/friction.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/fun_ending.md b/src/crates/assembly/core/src/agentic/insights/prompts/fun_ending.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/fun_ending.md rename to src/crates/assembly/core/src/agentic/insights/prompts/fun_ending.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/horizon.md b/src/crates/assembly/core/src/agentic/insights/prompts/horizon.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/horizon.md rename to src/crates/assembly/core/src/agentic/insights/prompts/horizon.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/interaction_style.md b/src/crates/assembly/core/src/agentic/insights/prompts/interaction_style.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/interaction_style.md rename to src/crates/assembly/core/src/agentic/insights/prompts/interaction_style.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/suggestions.md b/src/crates/assembly/core/src/agentic/insights/prompts/suggestions.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/suggestions.md rename to src/crates/assembly/core/src/agentic/insights/prompts/suggestions.md diff --git a/src/crates/facade/core/src/agentic/insights/prompts/wins.md b/src/crates/assembly/core/src/agentic/insights/prompts/wins.md similarity index 100% rename from src/crates/facade/core/src/agentic/insights/prompts/wins.md rename to src/crates/assembly/core/src/agentic/insights/prompts/wins.md diff --git a/src/crates/facade/core/src/agentic/insights/service.rs b/src/crates/assembly/core/src/agentic/insights/service.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/service.rs rename to src/crates/assembly/core/src/agentic/insights/service.rs diff --git a/src/crates/facade/core/src/agentic/insights/session_paths.rs b/src/crates/assembly/core/src/agentic/insights/session_paths.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/session_paths.rs rename to src/crates/assembly/core/src/agentic/insights/session_paths.rs diff --git a/src/crates/facade/core/src/agentic/insights/types.rs b/src/crates/assembly/core/src/agentic/insights/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/insights/types.rs rename to src/crates/assembly/core/src/agentic/insights/types.rs diff --git a/src/crates/facade/core/src/agentic/mod.rs b/src/crates/assembly/core/src/agentic/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/mod.rs rename to src/crates/assembly/core/src/agentic/mod.rs diff --git a/src/crates/facade/core/src/agentic/persistence/manager.rs b/src/crates/assembly/core/src/agentic/persistence/manager.rs similarity index 100% rename from src/crates/facade/core/src/agentic/persistence/manager.rs rename to src/crates/assembly/core/src/agentic/persistence/manager.rs diff --git a/src/crates/facade/core/src/agentic/persistence/mod.rs b/src/crates/assembly/core/src/agentic/persistence/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/persistence/mod.rs rename to src/crates/assembly/core/src/agentic/persistence/mod.rs diff --git a/src/crates/facade/core/src/agentic/persistence/session_branch.rs b/src/crates/assembly/core/src/agentic/persistence/session_branch.rs similarity index 100% rename from src/crates/facade/core/src/agentic/persistence/session_branch.rs rename to src/crates/assembly/core/src/agentic/persistence/session_branch.rs diff --git a/src/crates/facade/core/src/agentic/prompts/init_agents_md.md b/src/crates/assembly/core/src/agentic/prompts/init_agents_md.md similarity index 100% rename from src/crates/facade/core/src/agentic/prompts/init_agents_md.md rename to src/crates/assembly/core/src/agentic/prompts/init_agents_md.md diff --git a/src/crates/facade/core/src/agentic/round_preempt.rs b/src/crates/assembly/core/src/agentic/round_preempt.rs similarity index 100% rename from src/crates/facade/core/src/agentic/round_preempt.rs rename to src/crates/assembly/core/src/agentic/round_preempt.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/compressor.rs b/src/crates/assembly/core/src/agentic/session/compression/compressor.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/compressor.rs rename to src/crates/assembly/core/src/agentic/session/compression/compressor.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/fallback/builder.rs b/src/crates/assembly/core/src/agentic/session/compression/fallback/builder.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/fallback/builder.rs rename to src/crates/assembly/core/src/agentic/session/compression/fallback/builder.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/fallback/mod.rs b/src/crates/assembly/core/src/agentic/session/compression/fallback/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/fallback/mod.rs rename to src/crates/assembly/core/src/agentic/session/compression/fallback/mod.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/fallback/payload.rs b/src/crates/assembly/core/src/agentic/session/compression/fallback/payload.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/fallback/payload.rs rename to src/crates/assembly/core/src/agentic/session/compression/fallback/payload.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/fallback/render.rs b/src/crates/assembly/core/src/agentic/session/compression/fallback/render.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/fallback/render.rs rename to src/crates/assembly/core/src/agentic/session/compression/fallback/render.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/fallback/sanitize.rs b/src/crates/assembly/core/src/agentic/session/compression/fallback/sanitize.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/fallback/sanitize.rs rename to src/crates/assembly/core/src/agentic/session/compression/fallback/sanitize.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/fallback/tests.rs b/src/crates/assembly/core/src/agentic/session/compression/fallback/tests.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/fallback/tests.rs rename to src/crates/assembly/core/src/agentic/session/compression/fallback/tests.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/fallback/types.rs b/src/crates/assembly/core/src/agentic/session/compression/fallback/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/fallback/types.rs rename to src/crates/assembly/core/src/agentic/session/compression/fallback/types.rs diff --git a/src/crates/facade/core/src/agentic/session/compression/mod.rs b/src/crates/assembly/core/src/agentic/session/compression/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/compression/mod.rs rename to src/crates/assembly/core/src/agentic/session/compression/mod.rs diff --git a/src/crates/facade/core/src/agentic/session/context_store.rs b/src/crates/assembly/core/src/agentic/session/context_store.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/context_store.rs rename to src/crates/assembly/core/src/agentic/session/context_store.rs diff --git a/src/crates/facade/core/src/agentic/session/evidence_ledger.rs b/src/crates/assembly/core/src/agentic/session/evidence_ledger.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/evidence_ledger.rs rename to src/crates/assembly/core/src/agentic/session/evidence_ledger.rs diff --git a/src/crates/facade/core/src/agentic/session/file_read_state.rs b/src/crates/assembly/core/src/agentic/session/file_read_state.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/file_read_state.rs rename to src/crates/assembly/core/src/agentic/session/file_read_state.rs diff --git a/src/crates/facade/core/src/agentic/session/mod.rs b/src/crates/assembly/core/src/agentic/session/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/mod.rs rename to src/crates/assembly/core/src/agentic/session/mod.rs diff --git a/src/crates/facade/core/src/agentic/session/prompt_cache.rs b/src/crates/assembly/core/src/agentic/session/prompt_cache.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/prompt_cache.rs rename to src/crates/assembly/core/src/agentic/session/prompt_cache.rs diff --git a/src/crates/facade/core/src/agentic/session/session_manager.rs b/src/crates/assembly/core/src/agentic/session/session_manager.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/session_manager.rs rename to src/crates/assembly/core/src/agentic/session/session_manager.rs diff --git a/src/crates/facade/core/src/agentic/session/session_store_port.rs b/src/crates/assembly/core/src/agentic/session/session_store_port.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/session_store_port.rs rename to src/crates/assembly/core/src/agentic/session/session_store_port.rs diff --git a/src/crates/facade/core/src/agentic/session/turn_skill_agent_snapshot_store.rs b/src/crates/assembly/core/src/agentic/session/turn_skill_agent_snapshot_store.rs similarity index 100% rename from src/crates/facade/core/src/agentic/session/turn_skill_agent_snapshot_store.rs rename to src/crates/assembly/core/src/agentic/session/turn_skill_agent_snapshot_store.rs diff --git a/src/crates/facade/core/src/agentic/side_question.rs b/src/crates/assembly/core/src/agentic/side_question.rs similarity index 100% rename from src/crates/facade/core/src/agentic/side_question.rs rename to src/crates/assembly/core/src/agentic/side_question.rs diff --git a/src/crates/facade/core/src/agentic/skill_agent_snapshot.rs b/src/crates/assembly/core/src/agentic/skill_agent_snapshot.rs similarity index 100% rename from src/crates/facade/core/src/agentic/skill_agent_snapshot.rs rename to src/crates/assembly/core/src/agentic/skill_agent_snapshot.rs diff --git a/src/crates/facade/core/src/agentic/subagent_runtime/mod.rs b/src/crates/assembly/core/src/agentic/subagent_runtime/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/subagent_runtime/mod.rs rename to src/crates/assembly/core/src/agentic/subagent_runtime/mod.rs diff --git a/src/crates/facade/core/src/agentic/subagent_runtime/queue_timing.rs b/src/crates/assembly/core/src/agentic/subagent_runtime/queue_timing.rs similarity index 100% rename from src/crates/facade/core/src/agentic/subagent_runtime/queue_timing.rs rename to src/crates/assembly/core/src/agentic/subagent_runtime/queue_timing.rs diff --git a/src/crates/facade/core/src/agentic/system.rs b/src/crates/assembly/core/src/agentic/system.rs similarity index 100% rename from src/crates/facade/core/src/agentic/system.rs rename to src/crates/assembly/core/src/agentic/system.rs diff --git a/src/crates/facade/core/src/agentic/tools/agent-tool-exposure.md b/src/crates/assembly/core/src/agentic/tools/agent-tool-exposure.md similarity index 100% rename from src/crates/facade/core/src/agentic/tools/agent-tool-exposure.md rename to src/crates/assembly/core/src/agentic/tools/agent-tool-exposure.md diff --git a/src/crates/facade/core/src/agentic/tools/browser_control/actions.rs b/src/crates/assembly/core/src/agentic/tools/browser_control/actions.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/browser_control/actions.rs rename to src/crates/assembly/core/src/agentic/tools/browser_control/actions.rs diff --git a/src/crates/facade/core/src/agentic/tools/browser_control/browser_launcher.rs b/src/crates/assembly/core/src/agentic/tools/browser_control/browser_launcher.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/browser_control/browser_launcher.rs rename to src/crates/assembly/core/src/agentic/tools/browser_control/browser_launcher.rs diff --git a/src/crates/facade/core/src/agentic/tools/browser_control/cdp_client.rs b/src/crates/assembly/core/src/agentic/tools/browser_control/cdp_client.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/browser_control/cdp_client.rs rename to src/crates/assembly/core/src/agentic/tools/browser_control/cdp_client.rs diff --git a/src/crates/facade/core/src/agentic/tools/browser_control/mod.rs b/src/crates/assembly/core/src/agentic/tools/browser_control/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/browser_control/mod.rs rename to src/crates/assembly/core/src/agentic/tools/browser_control/mod.rs diff --git a/src/crates/facade/core/src/agentic/tools/browser_control/session_registry.rs b/src/crates/assembly/core/src/agentic/tools/browser_control/session_registry.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/browser_control/session_registry.rs rename to src/crates/assembly/core/src/agentic/tools/browser_control/session_registry.rs diff --git a/src/crates/facade/core/src/agentic/tools/computer_use_capability.rs b/src/crates/assembly/core/src/agentic/tools/computer_use_capability.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/computer_use_capability.rs rename to src/crates/assembly/core/src/agentic/tools/computer_use_capability.rs diff --git a/src/crates/facade/core/src/agentic/tools/computer_use_host.rs b/src/crates/assembly/core/src/agentic/tools/computer_use_host.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/computer_use_host.rs rename to src/crates/assembly/core/src/agentic/tools/computer_use_host.rs diff --git a/src/crates/facade/core/src/agentic/tools/computer_use_optimizer.rs b/src/crates/assembly/core/src/agentic/tools/computer_use_optimizer.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/computer_use_optimizer.rs rename to src/crates/assembly/core/src/agentic/tools/computer_use_optimizer.rs diff --git a/src/crates/facade/core/src/agentic/tools/computer_use_verification.rs b/src/crates/assembly/core/src/agentic/tools/computer_use_verification.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/computer_use_verification.rs rename to src/crates/assembly/core/src/agentic/tools/computer_use_verification.rs diff --git a/src/crates/facade/core/src/agentic/tools/file_read_state_runtime.rs b/src/crates/assembly/core/src/agentic/tools/file_read_state_runtime.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/file_read_state_runtime.rs rename to src/crates/assembly/core/src/agentic/tools/file_read_state_runtime.rs diff --git a/src/crates/facade/core/src/agentic/tools/file_tool_guidance.rs b/src/crates/assembly/core/src/agentic/tools/file_tool_guidance.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/file_tool_guidance.rs rename to src/crates/assembly/core/src/agentic/tools/file_tool_guidance.rs diff --git a/src/crates/facade/core/src/agentic/tools/framework.rs b/src/crates/assembly/core/src/agentic/tools/framework.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/framework.rs rename to src/crates/assembly/core/src/agentic/tools/framework.rs diff --git a/src/crates/facade/core/src/agentic/tools/image_context.rs b/src/crates/assembly/core/src/agentic/tools/image_context.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/image_context.rs rename to src/crates/assembly/core/src/agentic/tools/image_context.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/ask_user_question_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/ask_user_question_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/ask_user_question_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/ask_user_question_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/bash_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/bash_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/bash_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/bash_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/code_review_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/code_review_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/code_review_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/code_review_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_actions.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_actions.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_actions.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_actions.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_input.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_input.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_input.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_input.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_locate.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_locate.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_locate.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_locate.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_mouse_click_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_mouse_click_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_mouse_click_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_mouse_click_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_mouse_precise_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_mouse_precise_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_mouse_precise_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_mouse_precise_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_mouse_step_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_mouse_step_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_mouse_step_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_mouse_step_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_result.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_result.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_result.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_result.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/computer_use_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/computer_use_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/computer_use_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/computer_use_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/control_hub/errors.rs b/src/crates/assembly/core/src/agentic/tools/implementations/control_hub/errors.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/control_hub/errors.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/control_hub/errors.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/control_hub/mod.rs b/src/crates/assembly/core/src/agentic/tools/implementations/control_hub/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/control_hub/mod.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/control_hub/mod.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/control_hub/result.rs b/src/crates/assembly/core/src/agentic/tools/implementations/control_hub/result.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/control_hub/result.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/control_hub/result.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/control_hub_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/control_hub_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/control_hub_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/control_hub_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/create_plan_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/create_plan_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/create_plan_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/create_plan_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/cron_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/cron_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/cron_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/cron_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/delete_file_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/delete_file_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/delete_file_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/delete_file_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/file_edit_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/file_edit_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/file_edit_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/file_edit_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/file_read_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/file_read_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/file_read_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/file_read_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/file_write_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/file_write_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/file_write_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/file_write_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/generative_ui_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/generative_ui_tool.rs similarity index 99% rename from src/crates/facade/core/src/agentic/tools/implementations/generative_ui_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/generative_ui_tool.rs index c004012ba..2b1e22e84 100644 --- a/src/crates/facade/core/src/agentic/tools/implementations/generative_ui_tool.rs +++ b/src/crates/assembly/core/src/agentic/tools/implementations/generative_ui_tool.rs @@ -305,7 +305,7 @@ Input rules: 14. Do not use `parent.postMessage(...)` or custom `onclick` protocols for file opening when `data-file-path` can be attached directly to the clickable element. 15. CRITICAL for codebase maps, repo overviews, and architecture diagrams: NEVER guess or invent paths. Every clickable `data-file-path` MUST point to a REAL file that exists in the workspace. 16. For clickable file navigation, add `data-file-path` on the clickable element itself, and add `data-line` for the exact definition or anchor line whenever the node represents code. -17. `data-file-path` may be workspace-relative such as `src/crates/facade/core/src/lib.rs`, or absolute when already verified, but it MUST resolve to a file, not a directory. +17. `data-file-path` may be workspace-relative such as `src/crates/assembly/core/src/lib.rs`, or absolute when already verified, but it MUST resolve to a file, not a directory. 18. Do NOT attach `data-file-path` to abstract grouping nodes such as "Core", "Frontend", "Agent System", or module containers unless that node intentionally opens one specific real file. 19. For codebase architecture diagrams, prefer one clickable node per concrete file. If a node represents a broader concept, package, or directory, leave it non-clickable instead of pointing it at a folder. 20. Workflow for architecture widgets: first verify candidate files with Glob or LS, then use Read with line numbers when needed, and only then emit clickable nodes with verified file paths and lines. diff --git a/src/crates/facade/core/src/agentic/tools/implementations/get_file_diff_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/get_file_diff_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/get_file_diff_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/get_file_diff_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/git_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/git_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/git_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/git_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/glob_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/glob_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/glob_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/glob_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/grep_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/grep_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/grep_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/grep_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/log_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/log_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/log_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/log_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/ls_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/ls_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/ls_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/ls_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/mcp_tools.rs b/src/crates/assembly/core/src/agentic/tools/implementations/mcp_tools.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/mcp_tools.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/mcp_tools.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/miniapp_init_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/miniapp_init_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/miniapp_init_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/miniapp_init_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/mod.rs b/src/crates/assembly/core/src/agentic/tools/implementations/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/mod.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/mod.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/playbook_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/playbook_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/playbook_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/playbook_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/review_platform_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/review_platform_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/review_platform_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/review_platform_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/session_control_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/session_control_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/session_control_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/session_control_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/session_history_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/session_history_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/session_history_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/session_history_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/session_message_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/session_message_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/session_message_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/session_message_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skill_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skill_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skill_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skill_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/builtin.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/builtin.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/builtin.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/builtin.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/catalog.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/catalog.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/catalog.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/catalog.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/mod.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/mod.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/mod.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/mode_overrides.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/mode_overrides.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/mode_overrides.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/mode_overrides.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/policy.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/policy.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/policy.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/policy.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/registry.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/registry.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/registry.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/registry.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/resolver.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/resolver.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/resolver.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/resolver.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/skills/types.rs b/src/crates/assembly/core/src/agentic/tools/implementations/skills/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/skills/types.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/skills/types.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs similarity index 99% rename from src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs index 29c42fb93..e94ab64b2 100644 --- a/src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs +++ b/src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs @@ -2812,8 +2812,8 @@ mod tests { "timeoutSeconds": 600, "assignedScope": { "files": [ - "src/crates/facade/core/src/auth.rs", - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/auth.rs", + "src/crates/assembly/core/src/token.rs" ] } } @@ -2841,8 +2841,8 @@ mod tests { "timeoutSeconds": 600, "assignedScope": { "files": [ - "src/crates/facade/core/src/auth.rs", - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/auth.rs", + "src/crates/assembly/core/src/token.rs" ] } } @@ -2855,11 +2855,11 @@ mod tests { "source_packet_id": "reviewer:ReviewSecurity:group-1-of-1", "source_status": "partial_timeout", "covered_files": [ - "src/crates/facade/core/src/auth.rs" + "src/crates/assembly/core/src/auth.rs" ], "retry_scope_files": [ - "src/crates/facade/core/src/auth.rs", - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/auth.rs", + "src/crates/assembly/core/src/token.rs" ] } }); @@ -2882,8 +2882,8 @@ mod tests { "timeoutSeconds": 600, "assignedScope": { "files": [ - "src/crates/facade/core/src/auth.rs", - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/auth.rs", + "src/crates/assembly/core/src/token.rs" ] } } @@ -2896,10 +2896,10 @@ mod tests { "source_packet_id": "reviewer:ReviewSecurity:group-1-of-1", "source_status": "partial_timeout", "covered_files": [ - "src/crates/facade/core/src/auth.rs" + "src/crates/assembly/core/src/auth.rs" ], "retry_scope_files": [ - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/token.rs" ] } }); @@ -2922,8 +2922,8 @@ mod tests { "timeoutSeconds": 600, "assignedScope": { "files": [ - "src/crates/facade/core/src/auth.rs", - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/auth.rs", + "src/crates/assembly/core/src/token.rs" ] } } @@ -2937,7 +2937,7 @@ mod tests { "capacity_reason": "auth_error", "covered_files": [], "retry_scope_files": [ - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/token.rs" ] } }); @@ -3348,8 +3348,8 @@ mod tests { "timeoutSeconds": 600, "assignedScope": { "files": [ - "src/crates/facade/core/src/auth.rs", - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/auth.rs", + "src/crates/assembly/core/src/token.rs" ] } } @@ -3362,10 +3362,10 @@ mod tests { "source_packet_id": "reviewer:ReviewSecurity:group-1-of-1", "source_status": "partial_timeout", "covered_files": [ - "src/crates/facade/core/src/auth.rs" + "src/crates/assembly/core/src/auth.rs" ], "retry_scope_files": [ - "src/crates/facade/core/src/token.rs" + "src/crates/assembly/core/src/token.rs" ] } }); @@ -3374,19 +3374,19 @@ mod tests { TaskTool::ensure_deep_review_retry_coverage(&input, "ReviewSecurity", Some(&manifest)) .expect("reduced retry scope should be accepted"); - assert_eq!(retry_scope, vec!["src/crates/facade/core/src/token.rs"]); + assert_eq!(retry_scope, vec!["src/crates/assembly/core/src/token.rs"]); } #[test] fn deep_review_retry_scope_prompt_prepend_bounds_review_files() { let prompt = TaskTool::prompt_with_deep_review_retry_scope( "Continue the security review.", - &["src/crates/facade/core/src/token.rs".to_string()], + &["src/crates/assembly/core/src/token.rs".to_string()], ); assert!(prompt.starts_with("")); assert!(prompt.contains("Review only the following retry_scope_files")); - assert!(prompt.contains("- src/crates/facade/core/src/token.rs")); + assert!(prompt.contains("- src/crates/assembly/core/src/token.rs")); assert!(prompt.ends_with("Continue the security review.")); } } diff --git a/src/crates/facade/core/src/agentic/tools/implementations/terminal_control_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/terminal_control_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/terminal_control_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/terminal_control_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/thread_goal_tools.rs b/src/crates/assembly/core/src/agentic/tools/implementations/thread_goal_tools.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/thread_goal_tools.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/thread_goal_tools.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/todo_write_tool.rs b/src/crates/assembly/core/src/agentic/tools/implementations/todo_write_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/todo_write_tool.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/todo_write_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/util.rs b/src/crates/assembly/core/src/agentic/tools/implementations/util.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/util.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/util.rs diff --git a/src/crates/facade/core/src/agentic/tools/implementations/web_tools.rs b/src/crates/assembly/core/src/agentic/tools/implementations/web_tools.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/implementations/web_tools.rs rename to src/crates/assembly/core/src/agentic/tools/implementations/web_tools.rs diff --git a/src/crates/facade/core/src/agentic/tools/manifest_resolver.rs b/src/crates/assembly/core/src/agentic/tools/manifest_resolver.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/manifest_resolver.rs rename to src/crates/assembly/core/src/agentic/tools/manifest_resolver.rs diff --git a/src/crates/facade/core/src/agentic/tools/mod.rs b/src/crates/assembly/core/src/agentic/tools/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/mod.rs rename to src/crates/assembly/core/src/agentic/tools/mod.rs diff --git a/src/crates/facade/core/src/agentic/tools/pipeline/mod.rs b/src/crates/assembly/core/src/agentic/tools/pipeline/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/pipeline/mod.rs rename to src/crates/assembly/core/src/agentic/tools/pipeline/mod.rs diff --git a/src/crates/facade/core/src/agentic/tools/pipeline/state_manager.rs b/src/crates/assembly/core/src/agentic/tools/pipeline/state_manager.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/pipeline/state_manager.rs rename to src/crates/assembly/core/src/agentic/tools/pipeline/state_manager.rs diff --git a/src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs b/src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/pipeline/tool_pipeline.rs rename to src/crates/assembly/core/src/agentic/tools/pipeline/tool_pipeline.rs diff --git a/src/crates/facade/core/src/agentic/tools/pipeline/types.rs b/src/crates/assembly/core/src/agentic/tools/pipeline/types.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/pipeline/types.rs rename to src/crates/assembly/core/src/agentic/tools/pipeline/types.rs diff --git a/src/crates/facade/core/src/agentic/tools/post_call_hooks.rs b/src/crates/assembly/core/src/agentic/tools/post_call_hooks.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/post_call_hooks.rs rename to src/crates/assembly/core/src/agentic/tools/post_call_hooks.rs diff --git a/src/crates/facade/core/src/agentic/tools/product_runtime.rs b/src/crates/assembly/core/src/agentic/tools/product_runtime.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/product_runtime.rs rename to src/crates/assembly/core/src/agentic/tools/product_runtime.rs diff --git a/src/crates/facade/core/src/agentic/tools/product_runtime/catalog.rs b/src/crates/assembly/core/src/agentic/tools/product_runtime/catalog.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/product_runtime/catalog.rs rename to src/crates/assembly/core/src/agentic/tools/product_runtime/catalog.rs diff --git a/src/crates/facade/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs b/src/crates/assembly/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs rename to src/crates/assembly/core/src/agentic/tools/product_runtime/get_tool_spec_tool.rs diff --git a/src/crates/facade/core/src/agentic/tools/product_runtime/materialization.rs b/src/crates/assembly/core/src/agentic/tools/product_runtime/materialization.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/product_runtime/materialization.rs rename to src/crates/assembly/core/src/agentic/tools/product_runtime/materialization.rs diff --git a/src/crates/facade/core/src/agentic/tools/product_runtime/snapshot.rs b/src/crates/assembly/core/src/agentic/tools/product_runtime/snapshot.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/product_runtime/snapshot.rs rename to src/crates/assembly/core/src/agentic/tools/product_runtime/snapshot.rs diff --git a/src/crates/facade/core/src/agentic/tools/product_runtime/unlock_state.rs b/src/crates/assembly/core/src/agentic/tools/product_runtime/unlock_state.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/product_runtime/unlock_state.rs rename to src/crates/assembly/core/src/agentic/tools/product_runtime/unlock_state.rs diff --git a/src/crates/facade/core/src/agentic/tools/registry.rs b/src/crates/assembly/core/src/agentic/tools/registry.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/registry.rs rename to src/crates/assembly/core/src/agentic/tools/registry.rs diff --git a/src/crates/facade/core/src/agentic/tools/restrictions.rs b/src/crates/assembly/core/src/agentic/tools/restrictions.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/restrictions.rs rename to src/crates/assembly/core/src/agentic/tools/restrictions.rs diff --git a/src/crates/facade/core/src/agentic/tools/tool_adapter.rs b/src/crates/assembly/core/src/agentic/tools/tool_adapter.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/tool_adapter.rs rename to src/crates/assembly/core/src/agentic/tools/tool_adapter.rs diff --git a/src/crates/facade/core/src/agentic/tools/tool_context_runtime.rs b/src/crates/assembly/core/src/agentic/tools/tool_context_runtime.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/tool_context_runtime.rs rename to src/crates/assembly/core/src/agentic/tools/tool_context_runtime.rs diff --git a/src/crates/facade/core/src/agentic/tools/tool_result_storage.rs b/src/crates/assembly/core/src/agentic/tools/tool_result_storage.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/tool_result_storage.rs rename to src/crates/assembly/core/src/agentic/tools/tool_result_storage.rs diff --git a/src/crates/facade/core/src/agentic/tools/user_input_manager.rs b/src/crates/assembly/core/src/agentic/tools/user_input_manager.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/user_input_manager.rs rename to src/crates/assembly/core/src/agentic/tools/user_input_manager.rs diff --git a/src/crates/facade/core/src/agentic/tools/workspace_paths.rs b/src/crates/assembly/core/src/agentic/tools/workspace_paths.rs similarity index 100% rename from src/crates/facade/core/src/agentic/tools/workspace_paths.rs rename to src/crates/assembly/core/src/agentic/tools/workspace_paths.rs diff --git a/src/crates/facade/core/src/agentic/util/mod.rs b/src/crates/assembly/core/src/agentic/util/mod.rs similarity index 100% rename from src/crates/facade/core/src/agentic/util/mod.rs rename to src/crates/assembly/core/src/agentic/util/mod.rs diff --git a/src/crates/facade/core/src/agentic/util/remote_workspace_layout.rs b/src/crates/assembly/core/src/agentic/util/remote_workspace_layout.rs similarity index 100% rename from src/crates/facade/core/src/agentic/util/remote_workspace_layout.rs rename to src/crates/assembly/core/src/agentic/util/remote_workspace_layout.rs diff --git a/src/crates/facade/core/src/agentic/workspace.rs b/src/crates/assembly/core/src/agentic/workspace.rs similarity index 100% rename from src/crates/facade/core/src/agentic/workspace.rs rename to src/crates/assembly/core/src/agentic/workspace.rs diff --git a/src/crates/facade/core/src/function_agents/git-func-agent/ai_service.rs b/src/crates/assembly/core/src/function_agents/git-func-agent/ai_service.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/git-func-agent/ai_service.rs rename to src/crates/assembly/core/src/function_agents/git-func-agent/ai_service.rs diff --git a/src/crates/facade/core/src/function_agents/git-func-agent/commit_generator.rs b/src/crates/assembly/core/src/function_agents/git-func-agent/commit_generator.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/git-func-agent/commit_generator.rs rename to src/crates/assembly/core/src/function_agents/git-func-agent/commit_generator.rs diff --git a/src/crates/facade/core/src/function_agents/git-func-agent/context_analyzer.rs b/src/crates/assembly/core/src/function_agents/git-func-agent/context_analyzer.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/git-func-agent/context_analyzer.rs rename to src/crates/assembly/core/src/function_agents/git-func-agent/context_analyzer.rs diff --git a/src/crates/facade/core/src/function_agents/git-func-agent/mod.rs b/src/crates/assembly/core/src/function_agents/git-func-agent/mod.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/git-func-agent/mod.rs rename to src/crates/assembly/core/src/function_agents/git-func-agent/mod.rs diff --git a/src/crates/facade/core/src/function_agents/git-func-agent/utils.rs b/src/crates/assembly/core/src/function_agents/git-func-agent/utils.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/git-func-agent/utils.rs rename to src/crates/assembly/core/src/function_agents/git-func-agent/utils.rs diff --git a/src/crates/facade/core/src/function_agents/mod.rs b/src/crates/assembly/core/src/function_agents/mod.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/mod.rs rename to src/crates/assembly/core/src/function_agents/mod.rs diff --git a/src/crates/facade/core/src/function_agents/port_adapters.rs b/src/crates/assembly/core/src/function_agents/port_adapters.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/port_adapters.rs rename to src/crates/assembly/core/src/function_agents/port_adapters.rs diff --git a/src/crates/facade/core/src/function_agents/runtime_services.rs b/src/crates/assembly/core/src/function_agents/runtime_services.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/runtime_services.rs rename to src/crates/assembly/core/src/function_agents/runtime_services.rs diff --git a/src/crates/facade/core/src/function_agents/startchat-func-agent/ai_service.rs b/src/crates/assembly/core/src/function_agents/startchat-func-agent/ai_service.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/startchat-func-agent/ai_service.rs rename to src/crates/assembly/core/src/function_agents/startchat-func-agent/ai_service.rs diff --git a/src/crates/facade/core/src/function_agents/startchat-func-agent/mod.rs b/src/crates/assembly/core/src/function_agents/startchat-func-agent/mod.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/startchat-func-agent/mod.rs rename to src/crates/assembly/core/src/function_agents/startchat-func-agent/mod.rs diff --git a/src/crates/facade/core/src/function_agents/startchat-func-agent/utils.rs b/src/crates/assembly/core/src/function_agents/startchat-func-agent/utils.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/startchat-func-agent/utils.rs rename to src/crates/assembly/core/src/function_agents/startchat-func-agent/utils.rs diff --git a/src/crates/facade/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs b/src/crates/assembly/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs similarity index 100% rename from src/crates/facade/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs rename to src/crates/assembly/core/src/function_agents/startchat-func-agent/work_state_analyzer.rs diff --git a/src/crates/facade/core/src/infrastructure/ai/client_factory.rs b/src/crates/assembly/core/src/infrastructure/ai/client_factory.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/ai/client_factory.rs rename to src/crates/assembly/core/src/infrastructure/ai/client_factory.rs diff --git a/src/crates/facade/core/src/infrastructure/ai/mod.rs b/src/crates/assembly/core/src/infrastructure/ai/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/ai/mod.rs rename to src/crates/assembly/core/src/infrastructure/ai/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/ai/tool_call_accumulator.rs b/src/crates/assembly/core/src/infrastructure/ai/tool_call_accumulator.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/ai/tool_call_accumulator.rs rename to src/crates/assembly/core/src/infrastructure/ai/tool_call_accumulator.rs diff --git a/src/crates/facade/core/src/infrastructure/app_paths/mod.rs b/src/crates/assembly/core/src/infrastructure/app_paths/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/app_paths/mod.rs rename to src/crates/assembly/core/src/infrastructure/app_paths/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/app_paths/path_manager.rs b/src/crates/assembly/core/src/infrastructure/app_paths/path_manager.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/app_paths/path_manager.rs rename to src/crates/assembly/core/src/infrastructure/app_paths/path_manager.rs diff --git a/src/crates/facade/core/src/infrastructure/cli_credentials/codex.rs b/src/crates/assembly/core/src/infrastructure/cli_credentials/codex.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/cli_credentials/codex.rs rename to src/crates/assembly/core/src/infrastructure/cli_credentials/codex.rs diff --git a/src/crates/facade/core/src/infrastructure/cli_credentials/gemini.rs b/src/crates/assembly/core/src/infrastructure/cli_credentials/gemini.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/cli_credentials/gemini.rs rename to src/crates/assembly/core/src/infrastructure/cli_credentials/gemini.rs diff --git a/src/crates/facade/core/src/infrastructure/cli_credentials/mod.rs b/src/crates/assembly/core/src/infrastructure/cli_credentials/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/cli_credentials/mod.rs rename to src/crates/assembly/core/src/infrastructure/cli_credentials/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/debug_log/http_server.rs b/src/crates/assembly/core/src/infrastructure/debug_log/http_server.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/debug_log/http_server.rs rename to src/crates/assembly/core/src/infrastructure/debug_log/http_server.rs diff --git a/src/crates/facade/core/src/infrastructure/debug_log/mod.rs b/src/crates/assembly/core/src/infrastructure/debug_log/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/debug_log/mod.rs rename to src/crates/assembly/core/src/infrastructure/debug_log/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/debug_log/types.rs b/src/crates/assembly/core/src/infrastructure/debug_log/types.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/debug_log/types.rs rename to src/crates/assembly/core/src/infrastructure/debug_log/types.rs diff --git a/src/crates/facade/core/src/infrastructure/events/emitter.rs b/src/crates/assembly/core/src/infrastructure/events/emitter.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/events/emitter.rs rename to src/crates/assembly/core/src/infrastructure/events/emitter.rs diff --git a/src/crates/facade/core/src/infrastructure/events/event_system.rs b/src/crates/assembly/core/src/infrastructure/events/event_system.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/events/event_system.rs rename to src/crates/assembly/core/src/infrastructure/events/event_system.rs diff --git a/src/crates/facade/core/src/infrastructure/events/mod.rs b/src/crates/assembly/core/src/infrastructure/events/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/events/mod.rs rename to src/crates/assembly/core/src/infrastructure/events/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/filesystem/mod.rs b/src/crates/assembly/core/src/infrastructure/filesystem/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/filesystem/mod.rs rename to src/crates/assembly/core/src/infrastructure/filesystem/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/mod.rs b/src/crates/assembly/core/src/infrastructure/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/mod.rs rename to src/crates/assembly/core/src/infrastructure/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/storage/cleanup.rs b/src/crates/assembly/core/src/infrastructure/storage/cleanup.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/storage/cleanup.rs rename to src/crates/assembly/core/src/infrastructure/storage/cleanup.rs diff --git a/src/crates/facade/core/src/infrastructure/storage/mod.rs b/src/crates/assembly/core/src/infrastructure/storage/mod.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/storage/mod.rs rename to src/crates/assembly/core/src/infrastructure/storage/mod.rs diff --git a/src/crates/facade/core/src/infrastructure/storage/persistence.rs b/src/crates/assembly/core/src/infrastructure/storage/persistence.rs similarity index 100% rename from src/crates/facade/core/src/infrastructure/storage/persistence.rs rename to src/crates/assembly/core/src/infrastructure/storage/persistence.rs diff --git a/src/crates/facade/core/src/lib.rs b/src/crates/assembly/core/src/lib.rs similarity index 100% rename from src/crates/facade/core/src/lib.rs rename to src/crates/assembly/core/src/lib.rs diff --git a/src/crates/facade/core/src/miniapp/builtin/mod.rs b/src/crates/assembly/core/src/miniapp/builtin/mod.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/builtin/mod.rs rename to src/crates/assembly/core/src/miniapp/builtin/mod.rs diff --git a/src/crates/facade/core/src/miniapp/compiler.rs b/src/crates/assembly/core/src/miniapp/compiler.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/compiler.rs rename to src/crates/assembly/core/src/miniapp/compiler.rs diff --git a/src/crates/facade/core/src/miniapp/exporter.rs b/src/crates/assembly/core/src/miniapp/exporter.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/exporter.rs rename to src/crates/assembly/core/src/miniapp/exporter.rs diff --git a/src/crates/facade/core/src/miniapp/host_dispatch.rs b/src/crates/assembly/core/src/miniapp/host_dispatch.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/host_dispatch.rs rename to src/crates/assembly/core/src/miniapp/host_dispatch.rs diff --git a/src/crates/facade/core/src/miniapp/js_worker.rs b/src/crates/assembly/core/src/miniapp/js_worker.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/js_worker.rs rename to src/crates/assembly/core/src/miniapp/js_worker.rs diff --git a/src/crates/facade/core/src/miniapp/js_worker_pool.rs b/src/crates/assembly/core/src/miniapp/js_worker_pool.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/js_worker_pool.rs rename to src/crates/assembly/core/src/miniapp/js_worker_pool.rs diff --git a/src/crates/facade/core/src/miniapp/manager.rs b/src/crates/assembly/core/src/miniapp/manager.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/manager.rs rename to src/crates/assembly/core/src/miniapp/manager.rs diff --git a/src/crates/facade/core/src/miniapp/mod.rs b/src/crates/assembly/core/src/miniapp/mod.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/mod.rs rename to src/crates/assembly/core/src/miniapp/mod.rs diff --git a/src/crates/facade/core/src/miniapp/runtime_detect.rs b/src/crates/assembly/core/src/miniapp/runtime_detect.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/runtime_detect.rs rename to src/crates/assembly/core/src/miniapp/runtime_detect.rs diff --git a/src/crates/facade/core/src/miniapp/storage.rs b/src/crates/assembly/core/src/miniapp/storage.rs similarity index 100% rename from src/crates/facade/core/src/miniapp/storage.rs rename to src/crates/assembly/core/src/miniapp/storage.rs diff --git a/src/crates/facade/core/src/product_assembly.rs b/src/crates/assembly/core/src/product_assembly.rs similarity index 100% rename from src/crates/facade/core/src/product_assembly.rs rename to src/crates/assembly/core/src/product_assembly.rs diff --git a/src/crates/facade/core/src/product_domain_runtime.rs b/src/crates/assembly/core/src/product_domain_runtime.rs similarity index 100% rename from src/crates/facade/core/src/product_domain_runtime.rs rename to src/crates/assembly/core/src/product_domain_runtime.rs diff --git a/src/crates/facade/core/src/product_runtime.rs b/src/crates/assembly/core/src/product_runtime.rs similarity index 100% rename from src/crates/facade/core/src/product_runtime.rs rename to src/crates/assembly/core/src/product_runtime.rs diff --git a/src/crates/facade/core/src/product_runtime/runtime_services.rs b/src/crates/assembly/core/src/product_runtime/runtime_services.rs similarity index 100% rename from src/crates/facade/core/src/product_runtime/runtime_services.rs rename to src/crates/assembly/core/src/product_runtime/runtime_services.rs diff --git a/src/crates/facade/core/src/service/agent_memory/auto_memory.rs b/src/crates/assembly/core/src/service/agent_memory/auto_memory.rs similarity index 100% rename from src/crates/facade/core/src/service/agent_memory/auto_memory.rs rename to src/crates/assembly/core/src/service/agent_memory/auto_memory.rs diff --git a/src/crates/facade/core/src/service/agent_memory/instruction_context.rs b/src/crates/assembly/core/src/service/agent_memory/instruction_context.rs similarity index 100% rename from src/crates/facade/core/src/service/agent_memory/instruction_context.rs rename to src/crates/assembly/core/src/service/agent_memory/instruction_context.rs diff --git a/src/crates/facade/core/src/service/agent_memory/mod.rs b/src/crates/assembly/core/src/service/agent_memory/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/agent_memory/mod.rs rename to src/crates/assembly/core/src/service/agent_memory/mod.rs diff --git a/src/crates/facade/core/src/service/announcement/content/features/en-US/shortcuts_v0_2_2.md b/src/crates/assembly/core/src/service/announcement/content/features/en-US/shortcuts_v0_2_2.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/features/en-US/shortcuts_v0_2_2.md rename to src/crates/assembly/core/src/service/announcement/content/features/en-US/shortcuts_v0_2_2.md diff --git a/src/crates/facade/core/src/service/announcement/content/features/zh-CN/shortcuts_v0_2_2.md b/src/crates/assembly/core/src/service/announcement/content/features/zh-CN/shortcuts_v0_2_2.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/features/zh-CN/shortcuts_v0_2_2.md rename to src/crates/assembly/core/src/service/announcement/content/features/zh-CN/shortcuts_v0_2_2.md diff --git a/src/crates/facade/core/src/service/announcement/content/features/zh-TW/shortcuts_v0_2_2.md b/src/crates/assembly/core/src/service/announcement/content/features/zh-TW/shortcuts_v0_2_2.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/features/zh-TW/shortcuts_v0_2_2.md rename to src/crates/assembly/core/src/service/announcement/content/features/zh-TW/shortcuts_v0_2_2.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/001_vibe_describe_task.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/001_vibe_describe_task.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/001_vibe_describe_task.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/001_vibe_describe_task.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/002_quick_scene_switch.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/002_quick_scene_switch.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/002_quick_scene_switch.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/002_quick_scene_switch.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/003_vibe_file_reference.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/003_vibe_file_reference.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/003_vibe_file_reference.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/003_vibe_file_reference.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/004_slash_commands.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/004_slash_commands.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/004_slash_commands.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/004_slash_commands.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/005_vibe_break_tasks.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/005_vibe_break_tasks.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/005_vibe_break_tasks.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/005_vibe_break_tasks.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/006_drag_file_context.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/006_drag_file_context.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/006_drag_file_context.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/006_drag_file_context.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/007_vibe_iterate.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/007_vibe_iterate.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/007_vibe_iterate.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/007_vibe_iterate.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/008_git_ai_commit.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/008_git_ai_commit.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/008_git_ai_commit.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/008_git_ai_commit.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/009_vibe_multi_turn.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/009_vibe_multi_turn.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/009_vibe_multi_turn.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/009_vibe_multi_turn.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/010_multi_model.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/010_multi_model.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/010_multi_model.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/010_multi_model.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/011_vibe_explain.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/011_vibe_explain.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/011_vibe_explain.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/011_vibe_explain.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/012_vibe_context_window.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/012_vibe_context_window.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/012_vibe_context_window.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/012_vibe_context_window.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/013_miniapp.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/013_miniapp.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/013_miniapp.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/013_miniapp.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/014_vibe_prompt_patterns.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/014_vibe_prompt_patterns.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/014_vibe_prompt_patterns.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/014_vibe_prompt_patterns.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/015_snapshot_rollback.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/015_snapshot_rollback.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/015_snapshot_rollback.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/015_snapshot_rollback.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/016_vibe_review_output.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/016_vibe_review_output.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/016_vibe_review_output.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/016_vibe_review_output.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/017_terminal_shortcut.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/017_terminal_shortcut.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/017_terminal_shortcut.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/017_terminal_shortcut.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/020_lsp_diagnostics.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/020_lsp_diagnostics.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/020_lsp_diagnostics.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/020_lsp_diagnostics.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/en-US/021_session_history.md b/src/crates/assembly/core/src/service/announcement/content/tips/en-US/021_session_history.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/en-US/021_session_history.md rename to src/crates/assembly/core/src/service/announcement/content/tips/en-US/021_session_history.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/001_vibe_describe_task.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/001_vibe_describe_task.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/001_vibe_describe_task.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/001_vibe_describe_task.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/002_quick_scene_switch.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/002_quick_scene_switch.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/002_quick_scene_switch.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/002_quick_scene_switch.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/003_vibe_file_reference.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/003_vibe_file_reference.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/003_vibe_file_reference.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/003_vibe_file_reference.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/004_slash_commands.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/004_slash_commands.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/004_slash_commands.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/004_slash_commands.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/005_vibe_break_tasks.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/005_vibe_break_tasks.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/005_vibe_break_tasks.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/005_vibe_break_tasks.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/006_drag_file_context.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/006_drag_file_context.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/006_drag_file_context.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/006_drag_file_context.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/007_vibe_iterate.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/007_vibe_iterate.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/007_vibe_iterate.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/007_vibe_iterate.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/008_git_ai_commit.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/008_git_ai_commit.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/008_git_ai_commit.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/008_git_ai_commit.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/009_vibe_multi_turn.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/009_vibe_multi_turn.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/009_vibe_multi_turn.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/009_vibe_multi_turn.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/010_multi_model.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/010_multi_model.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/010_multi_model.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/010_multi_model.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/011_vibe_explain.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/011_vibe_explain.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/011_vibe_explain.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/011_vibe_explain.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/012_vibe_context_window.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/012_vibe_context_window.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/012_vibe_context_window.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/012_vibe_context_window.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/013_miniapp.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/013_miniapp.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/013_miniapp.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/013_miniapp.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/014_vibe_prompt_patterns.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/014_vibe_prompt_patterns.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/014_vibe_prompt_patterns.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/014_vibe_prompt_patterns.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/015_snapshot_rollback.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/015_snapshot_rollback.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/015_snapshot_rollback.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/015_snapshot_rollback.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/016_vibe_review_output.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/016_vibe_review_output.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/016_vibe_review_output.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/016_vibe_review_output.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/017_terminal_shortcut.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/017_terminal_shortcut.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/017_terminal_shortcut.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/017_terminal_shortcut.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/020_lsp_diagnostics.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/020_lsp_diagnostics.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/020_lsp_diagnostics.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/020_lsp_diagnostics.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-CN/021_session_history.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/021_session_history.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-CN/021_session_history.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-CN/021_session_history.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/001_vibe_describe_task.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/001_vibe_describe_task.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/001_vibe_describe_task.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/001_vibe_describe_task.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/002_quick_scene_switch.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/002_quick_scene_switch.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/002_quick_scene_switch.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/002_quick_scene_switch.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/003_vibe_file_reference.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/003_vibe_file_reference.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/003_vibe_file_reference.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/003_vibe_file_reference.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/004_slash_commands.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/004_slash_commands.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/004_slash_commands.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/004_slash_commands.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/005_vibe_break_tasks.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/005_vibe_break_tasks.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/005_vibe_break_tasks.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/005_vibe_break_tasks.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/006_drag_file_context.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/006_drag_file_context.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/006_drag_file_context.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/006_drag_file_context.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/007_vibe_iterate.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/007_vibe_iterate.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/007_vibe_iterate.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/007_vibe_iterate.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/008_git_ai_commit.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/008_git_ai_commit.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/008_git_ai_commit.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/008_git_ai_commit.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/009_vibe_multi_turn.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/009_vibe_multi_turn.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/009_vibe_multi_turn.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/009_vibe_multi_turn.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/010_multi_model.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/010_multi_model.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/010_multi_model.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/010_multi_model.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/011_vibe_explain.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/011_vibe_explain.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/011_vibe_explain.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/011_vibe_explain.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/012_vibe_context_window.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/012_vibe_context_window.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/012_vibe_context_window.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/012_vibe_context_window.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/013_miniapp.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/013_miniapp.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/013_miniapp.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/013_miniapp.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/014_vibe_prompt_patterns.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/014_vibe_prompt_patterns.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/014_vibe_prompt_patterns.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/014_vibe_prompt_patterns.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/015_snapshot_rollback.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/015_snapshot_rollback.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/015_snapshot_rollback.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/015_snapshot_rollback.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/016_vibe_review_output.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/016_vibe_review_output.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/016_vibe_review_output.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/016_vibe_review_output.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/017_terminal_shortcut.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/017_terminal_shortcut.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/017_terminal_shortcut.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/017_terminal_shortcut.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/020_lsp_diagnostics.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/020_lsp_diagnostics.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/020_lsp_diagnostics.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/020_lsp_diagnostics.md diff --git a/src/crates/facade/core/src/service/announcement/content/tips/zh-TW/021_session_history.md b/src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/021_session_history.md similarity index 100% rename from src/crates/facade/core/src/service/announcement/content/tips/zh-TW/021_session_history.md rename to src/crates/assembly/core/src/service/announcement/content/tips/zh-TW/021_session_history.md diff --git a/src/crates/facade/core/src/service/announcement/content_loader.rs b/src/crates/assembly/core/src/service/announcement/content_loader.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/content_loader.rs rename to src/crates/assembly/core/src/service/announcement/content_loader.rs diff --git a/src/crates/facade/core/src/service/announcement/mod.rs b/src/crates/assembly/core/src/service/announcement/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/mod.rs rename to src/crates/assembly/core/src/service/announcement/mod.rs diff --git a/src/crates/facade/core/src/service/announcement/registry.rs b/src/crates/assembly/core/src/service/announcement/registry.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/registry.rs rename to src/crates/assembly/core/src/service/announcement/registry.rs diff --git a/src/crates/facade/core/src/service/announcement/remote.rs b/src/crates/assembly/core/src/service/announcement/remote.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/remote.rs rename to src/crates/assembly/core/src/service/announcement/remote.rs diff --git a/src/crates/facade/core/src/service/announcement/scheduler.rs b/src/crates/assembly/core/src/service/announcement/scheduler.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/scheduler.rs rename to src/crates/assembly/core/src/service/announcement/scheduler.rs diff --git a/src/crates/facade/core/src/service/announcement/state_store.rs b/src/crates/assembly/core/src/service/announcement/state_store.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/state_store.rs rename to src/crates/assembly/core/src/service/announcement/state_store.rs diff --git a/src/crates/facade/core/src/service/announcement/tips_pool.rs b/src/crates/assembly/core/src/service/announcement/tips_pool.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/tips_pool.rs rename to src/crates/assembly/core/src/service/announcement/tips_pool.rs diff --git a/src/crates/facade/core/src/service/announcement/types.rs b/src/crates/assembly/core/src/service/announcement/types.rs similarity index 100% rename from src/crates/facade/core/src/service/announcement/types.rs rename to src/crates/assembly/core/src/service/announcement/types.rs diff --git a/src/crates/facade/core/src/service/bootstrap/bootstrap_impl.rs b/src/crates/assembly/core/src/service/bootstrap/bootstrap_impl.rs similarity index 100% rename from src/crates/facade/core/src/service/bootstrap/bootstrap_impl.rs rename to src/crates/assembly/core/src/service/bootstrap/bootstrap_impl.rs diff --git a/src/crates/facade/core/src/service/bootstrap/mod.rs b/src/crates/assembly/core/src/service/bootstrap/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/bootstrap/mod.rs rename to src/crates/assembly/core/src/service/bootstrap/mod.rs diff --git a/src/crates/facade/core/src/service/bootstrap/templates/BOOTSTRAP.md b/src/crates/assembly/core/src/service/bootstrap/templates/BOOTSTRAP.md similarity index 100% rename from src/crates/facade/core/src/service/bootstrap/templates/BOOTSTRAP.md rename to src/crates/assembly/core/src/service/bootstrap/templates/BOOTSTRAP.md diff --git a/src/crates/facade/core/src/service/bootstrap/templates/IDENTITY.md b/src/crates/assembly/core/src/service/bootstrap/templates/IDENTITY.md similarity index 100% rename from src/crates/facade/core/src/service/bootstrap/templates/IDENTITY.md rename to src/crates/assembly/core/src/service/bootstrap/templates/IDENTITY.md diff --git a/src/crates/facade/core/src/service/bootstrap/templates/SOUL.md b/src/crates/assembly/core/src/service/bootstrap/templates/SOUL.md similarity index 100% rename from src/crates/facade/core/src/service/bootstrap/templates/SOUL.md rename to src/crates/assembly/core/src/service/bootstrap/templates/SOUL.md diff --git a/src/crates/facade/core/src/service/bootstrap/templates/USER.md b/src/crates/assembly/core/src/service/bootstrap/templates/USER.md similarity index 100% rename from src/crates/facade/core/src/service/bootstrap/templates/USER.md rename to src/crates/assembly/core/src/service/bootstrap/templates/USER.md diff --git a/src/crates/facade/core/src/service/config/agent_profile_project_store.rs b/src/crates/assembly/core/src/service/config/agent_profile_project_store.rs similarity index 100% rename from src/crates/facade/core/src/service/config/agent_profile_project_store.rs rename to src/crates/assembly/core/src/service/config/agent_profile_project_store.rs diff --git a/src/crates/facade/core/src/service/config/app_language.rs b/src/crates/assembly/core/src/service/config/app_language.rs similarity index 100% rename from src/crates/facade/core/src/service/config/app_language.rs rename to src/crates/assembly/core/src/service/config/app_language.rs diff --git a/src/crates/facade/core/src/service/config/factory.rs b/src/crates/assembly/core/src/service/config/factory.rs similarity index 100% rename from src/crates/facade/core/src/service/config/factory.rs rename to src/crates/assembly/core/src/service/config/factory.rs diff --git a/src/crates/facade/core/src/service/config/global.rs b/src/crates/assembly/core/src/service/config/global.rs similarity index 100% rename from src/crates/facade/core/src/service/config/global.rs rename to src/crates/assembly/core/src/service/config/global.rs diff --git a/src/crates/facade/core/src/service/config/manager.rs b/src/crates/assembly/core/src/service/config/manager.rs similarity index 100% rename from src/crates/facade/core/src/service/config/manager.rs rename to src/crates/assembly/core/src/service/config/manager.rs diff --git a/src/crates/facade/core/src/service/config/mod.rs b/src/crates/assembly/core/src/service/config/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/config/mod.rs rename to src/crates/assembly/core/src/service/config/mod.rs diff --git a/src/crates/facade/core/src/service/config/mode_config_canonicalizer.rs b/src/crates/assembly/core/src/service/config/mode_config_canonicalizer.rs similarity index 100% rename from src/crates/facade/core/src/service/config/mode_config_canonicalizer.rs rename to src/crates/assembly/core/src/service/config/mode_config_canonicalizer.rs diff --git a/src/crates/facade/core/src/service/config/providers.rs b/src/crates/assembly/core/src/service/config/providers.rs similarity index 100% rename from src/crates/facade/core/src/service/config/providers.rs rename to src/crates/assembly/core/src/service/config/providers.rs diff --git a/src/crates/facade/core/src/service/config/service.rs b/src/crates/assembly/core/src/service/config/service.rs similarity index 100% rename from src/crates/facade/core/src/service/config/service.rs rename to src/crates/assembly/core/src/service/config/service.rs diff --git a/src/crates/facade/core/src/service/config/types.rs b/src/crates/assembly/core/src/service/config/types.rs similarity index 100% rename from src/crates/facade/core/src/service/config/types.rs rename to src/crates/assembly/core/src/service/config/types.rs diff --git a/src/crates/facade/core/src/service/cron/mod.rs b/src/crates/assembly/core/src/service/cron/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/cron/mod.rs rename to src/crates/assembly/core/src/service/cron/mod.rs diff --git a/src/crates/facade/core/src/service/cron/schedule.rs b/src/crates/assembly/core/src/service/cron/schedule.rs similarity index 100% rename from src/crates/facade/core/src/service/cron/schedule.rs rename to src/crates/assembly/core/src/service/cron/schedule.rs diff --git a/src/crates/facade/core/src/service/cron/service.rs b/src/crates/assembly/core/src/service/cron/service.rs similarity index 100% rename from src/crates/facade/core/src/service/cron/service.rs rename to src/crates/assembly/core/src/service/cron/service.rs diff --git a/src/crates/facade/core/src/service/cron/store.rs b/src/crates/assembly/core/src/service/cron/store.rs similarity index 100% rename from src/crates/facade/core/src/service/cron/store.rs rename to src/crates/assembly/core/src/service/cron/store.rs diff --git a/src/crates/facade/core/src/service/cron/subscriber.rs b/src/crates/assembly/core/src/service/cron/subscriber.rs similarity index 100% rename from src/crates/facade/core/src/service/cron/subscriber.rs rename to src/crates/assembly/core/src/service/cron/subscriber.rs diff --git a/src/crates/facade/core/src/service/cron/types.rs b/src/crates/assembly/core/src/service/cron/types.rs similarity index 100% rename from src/crates/facade/core/src/service/cron/types.rs rename to src/crates/assembly/core/src/service/cron/types.rs diff --git a/src/crates/facade/core/src/service/filesystem/factory.rs b/src/crates/assembly/core/src/service/filesystem/factory.rs similarity index 100% rename from src/crates/facade/core/src/service/filesystem/factory.rs rename to src/crates/assembly/core/src/service/filesystem/factory.rs diff --git a/src/crates/facade/core/src/service/filesystem/listing.rs b/src/crates/assembly/core/src/service/filesystem/listing.rs similarity index 100% rename from src/crates/facade/core/src/service/filesystem/listing.rs rename to src/crates/assembly/core/src/service/filesystem/listing.rs diff --git a/src/crates/facade/core/src/service/filesystem/mod.rs b/src/crates/assembly/core/src/service/filesystem/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/filesystem/mod.rs rename to src/crates/assembly/core/src/service/filesystem/mod.rs diff --git a/src/crates/facade/core/src/service/filesystem/service.rs b/src/crates/assembly/core/src/service/filesystem/service.rs similarity index 100% rename from src/crates/facade/core/src/service/filesystem/service.rs rename to src/crates/assembly/core/src/service/filesystem/service.rs diff --git a/src/crates/facade/core/src/service/filesystem/types.rs b/src/crates/assembly/core/src/service/filesystem/types.rs similarity index 100% rename from src/crates/facade/core/src/service/filesystem/types.rs rename to src/crates/assembly/core/src/service/filesystem/types.rs diff --git a/src/crates/facade/core/src/service/git/git_service.rs b/src/crates/assembly/core/src/service/git/git_service.rs similarity index 100% rename from src/crates/facade/core/src/service/git/git_service.rs rename to src/crates/assembly/core/src/service/git/git_service.rs diff --git a/src/crates/facade/core/src/service/git/git_types.rs b/src/crates/assembly/core/src/service/git/git_types.rs similarity index 100% rename from src/crates/facade/core/src/service/git/git_types.rs rename to src/crates/assembly/core/src/service/git/git_types.rs diff --git a/src/crates/facade/core/src/service/git/git_utils.rs b/src/crates/assembly/core/src/service/git/git_utils.rs similarity index 100% rename from src/crates/facade/core/src/service/git/git_utils.rs rename to src/crates/assembly/core/src/service/git/git_utils.rs diff --git a/src/crates/facade/core/src/service/git/graph.rs b/src/crates/assembly/core/src/service/git/graph.rs similarity index 100% rename from src/crates/facade/core/src/service/git/graph.rs rename to src/crates/assembly/core/src/service/git/graph.rs diff --git a/src/crates/facade/core/src/service/git/mod.rs b/src/crates/assembly/core/src/service/git/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/git/mod.rs rename to src/crates/assembly/core/src/service/git/mod.rs diff --git a/src/crates/facade/core/src/service/i18n/generated_locale_contract.rs b/src/crates/assembly/core/src/service/i18n/generated_locale_contract.rs similarity index 100% rename from src/crates/facade/core/src/service/i18n/generated_locale_contract.rs rename to src/crates/assembly/core/src/service/i18n/generated_locale_contract.rs diff --git a/src/crates/facade/core/src/service/i18n/locale_registry.rs b/src/crates/assembly/core/src/service/i18n/locale_registry.rs similarity index 100% rename from src/crates/facade/core/src/service/i18n/locale_registry.rs rename to src/crates/assembly/core/src/service/i18n/locale_registry.rs diff --git a/src/crates/facade/core/src/service/i18n/mod.rs b/src/crates/assembly/core/src/service/i18n/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/i18n/mod.rs rename to src/crates/assembly/core/src/service/i18n/mod.rs diff --git a/src/crates/facade/core/src/service/i18n/model_copy.rs b/src/crates/assembly/core/src/service/i18n/model_copy.rs similarity index 100% rename from src/crates/facade/core/src/service/i18n/model_copy.rs rename to src/crates/assembly/core/src/service/i18n/model_copy.rs diff --git a/src/crates/facade/core/src/service/i18n/service.rs b/src/crates/assembly/core/src/service/i18n/service.rs similarity index 100% rename from src/crates/facade/core/src/service/i18n/service.rs rename to src/crates/assembly/core/src/service/i18n/service.rs diff --git a/src/crates/facade/core/src/service/i18n/types.rs b/src/crates/assembly/core/src/service/i18n/types.rs similarity index 100% rename from src/crates/facade/core/src/service/i18n/types.rs rename to src/crates/assembly/core/src/service/i18n/types.rs diff --git a/src/crates/facade/core/src/service/lsp/config_watcher.rs b/src/crates/assembly/core/src/service/lsp/config_watcher.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/config_watcher.rs rename to src/crates/assembly/core/src/service/lsp/config_watcher.rs diff --git a/src/crates/facade/core/src/service/lsp/debouncer.rs b/src/crates/assembly/core/src/service/lsp/debouncer.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/debouncer.rs rename to src/crates/assembly/core/src/service/lsp/debouncer.rs diff --git a/src/crates/facade/core/src/service/lsp/file_sync.rs b/src/crates/assembly/core/src/service/lsp/file_sync.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/file_sync.rs rename to src/crates/assembly/core/src/service/lsp/file_sync.rs diff --git a/src/crates/facade/core/src/service/lsp/global.rs b/src/crates/assembly/core/src/service/lsp/global.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/global.rs rename to src/crates/assembly/core/src/service/lsp/global.rs diff --git a/src/crates/facade/core/src/service/lsp/manager.rs b/src/crates/assembly/core/src/service/lsp/manager.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/manager.rs rename to src/crates/assembly/core/src/service/lsp/manager.rs diff --git a/src/crates/facade/core/src/service/lsp/mod.rs b/src/crates/assembly/core/src/service/lsp/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/mod.rs rename to src/crates/assembly/core/src/service/lsp/mod.rs diff --git a/src/crates/facade/core/src/service/lsp/plugin_loader.rs b/src/crates/assembly/core/src/service/lsp/plugin_loader.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/plugin_loader.rs rename to src/crates/assembly/core/src/service/lsp/plugin_loader.rs diff --git a/src/crates/facade/core/src/service/lsp/process.rs b/src/crates/assembly/core/src/service/lsp/process.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/process.rs rename to src/crates/assembly/core/src/service/lsp/process.rs diff --git a/src/crates/facade/core/src/service/lsp/project_detector.rs b/src/crates/assembly/core/src/service/lsp/project_detector.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/project_detector.rs rename to src/crates/assembly/core/src/service/lsp/project_detector.rs diff --git a/src/crates/facade/core/src/service/lsp/protocol.rs b/src/crates/assembly/core/src/service/lsp/protocol.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/protocol.rs rename to src/crates/assembly/core/src/service/lsp/protocol.rs diff --git a/src/crates/facade/core/src/service/lsp/registry.rs b/src/crates/assembly/core/src/service/lsp/registry.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/registry.rs rename to src/crates/assembly/core/src/service/lsp/registry.rs diff --git a/src/crates/facade/core/src/service/lsp/types.rs b/src/crates/assembly/core/src/service/lsp/types.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/types.rs rename to src/crates/assembly/core/src/service/lsp/types.rs diff --git a/src/crates/facade/core/src/service/lsp/workspace_manager.rs b/src/crates/assembly/core/src/service/lsp/workspace_manager.rs similarity index 100% rename from src/crates/facade/core/src/service/lsp/workspace_manager.rs rename to src/crates/assembly/core/src/service/lsp/workspace_manager.rs diff --git a/src/crates/facade/core/src/service/mcp/adapter/context.rs b/src/crates/assembly/core/src/service/mcp/adapter/context.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/adapter/context.rs rename to src/crates/assembly/core/src/service/mcp/adapter/context.rs diff --git a/src/crates/facade/core/src/service/mcp/adapter/mod.rs b/src/crates/assembly/core/src/service/mcp/adapter/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/adapter/mod.rs rename to src/crates/assembly/core/src/service/mcp/adapter/mod.rs diff --git a/src/crates/facade/core/src/service/mcp/adapter/prompt.rs b/src/crates/assembly/core/src/service/mcp/adapter/prompt.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/adapter/prompt.rs rename to src/crates/assembly/core/src/service/mcp/adapter/prompt.rs diff --git a/src/crates/facade/core/src/service/mcp/adapter/resource.rs b/src/crates/assembly/core/src/service/mcp/adapter/resource.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/adapter/resource.rs rename to src/crates/assembly/core/src/service/mcp/adapter/resource.rs diff --git a/src/crates/facade/core/src/service/mcp/adapter/tool.rs b/src/crates/assembly/core/src/service/mcp/adapter/tool.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/adapter/tool.rs rename to src/crates/assembly/core/src/service/mcp/adapter/tool.rs diff --git a/src/crates/facade/core/src/service/mcp/auth.rs b/src/crates/assembly/core/src/service/mcp/auth.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/auth.rs rename to src/crates/assembly/core/src/service/mcp/auth.rs diff --git a/src/crates/facade/core/src/service/mcp/config/cursor_format.rs b/src/crates/assembly/core/src/service/mcp/config/cursor_format.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/config/cursor_format.rs rename to src/crates/assembly/core/src/service/mcp/config/cursor_format.rs diff --git a/src/crates/facade/core/src/service/mcp/config/json_config.rs b/src/crates/assembly/core/src/service/mcp/config/json_config.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/config/json_config.rs rename to src/crates/assembly/core/src/service/mcp/config/json_config.rs diff --git a/src/crates/facade/core/src/service/mcp/config/location.rs b/src/crates/assembly/core/src/service/mcp/config/location.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/config/location.rs rename to src/crates/assembly/core/src/service/mcp/config/location.rs diff --git a/src/crates/facade/core/src/service/mcp/config/mod.rs b/src/crates/assembly/core/src/service/mcp/config/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/config/mod.rs rename to src/crates/assembly/core/src/service/mcp/config/mod.rs diff --git a/src/crates/facade/core/src/service/mcp/config/service.rs b/src/crates/assembly/core/src/service/mcp/config/service.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/config/service.rs rename to src/crates/assembly/core/src/service/mcp/config/service.rs diff --git a/src/crates/facade/core/src/service/mcp/mod.rs b/src/crates/assembly/core/src/service/mcp/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/mod.rs rename to src/crates/assembly/core/src/service/mcp/mod.rs diff --git a/src/crates/facade/core/src/service/mcp/protocol/jsonrpc.rs b/src/crates/assembly/core/src/service/mcp/protocol/jsonrpc.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/protocol/jsonrpc.rs rename to src/crates/assembly/core/src/service/mcp/protocol/jsonrpc.rs diff --git a/src/crates/facade/core/src/service/mcp/protocol/mod.rs b/src/crates/assembly/core/src/service/mcp/protocol/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/protocol/mod.rs rename to src/crates/assembly/core/src/service/mcp/protocol/mod.rs diff --git a/src/crates/facade/core/src/service/mcp/protocol/transport.rs b/src/crates/assembly/core/src/service/mcp/protocol/transport.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/protocol/transport.rs rename to src/crates/assembly/core/src/service/mcp/protocol/transport.rs diff --git a/src/crates/facade/core/src/service/mcp/protocol/transport_remote.rs b/src/crates/assembly/core/src/service/mcp/protocol/transport_remote.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/protocol/transport_remote.rs rename to src/crates/assembly/core/src/service/mcp/protocol/transport_remote.rs diff --git a/src/crates/facade/core/src/service/mcp/protocol/types.rs b/src/crates/assembly/core/src/service/mcp/protocol/types.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/protocol/types.rs rename to src/crates/assembly/core/src/service/mcp/protocol/types.rs diff --git a/src/crates/facade/core/src/service/mcp/server/config.rs b/src/crates/assembly/core/src/service/mcp/server/config.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/config.rs rename to src/crates/assembly/core/src/service/mcp/server/config.rs diff --git a/src/crates/facade/core/src/service/mcp/server/connection.rs b/src/crates/assembly/core/src/service/mcp/server/connection.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/connection.rs rename to src/crates/assembly/core/src/service/mcp/server/connection.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/auth.rs b/src/crates/assembly/core/src/service/mcp/server/manager/auth.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/auth.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/auth.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/catalog.rs b/src/crates/assembly/core/src/service/mcp/server/manager/catalog.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/catalog.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/catalog.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/interaction.rs b/src/crates/assembly/core/src/service/mcp/server/manager/interaction.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/interaction.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/interaction.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/lifecycle.rs b/src/crates/assembly/core/src/service/mcp/server/manager/lifecycle.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/lifecycle.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/lifecycle.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/mod.rs b/src/crates/assembly/core/src/service/mcp/server/manager/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/mod.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/mod.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/reconnect.rs b/src/crates/assembly/core/src/service/mcp/server/manager/reconnect.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/reconnect.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/reconnect.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/tests.rs b/src/crates/assembly/core/src/service/mcp/server/manager/tests.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/tests.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/tests.rs diff --git a/src/crates/facade/core/src/service/mcp/server/manager/tools.rs b/src/crates/assembly/core/src/service/mcp/server/manager/tools.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/manager/tools.rs rename to src/crates/assembly/core/src/service/mcp/server/manager/tools.rs diff --git a/src/crates/facade/core/src/service/mcp/server/mod.rs b/src/crates/assembly/core/src/service/mcp/server/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/mod.rs rename to src/crates/assembly/core/src/service/mcp/server/mod.rs diff --git a/src/crates/facade/core/src/service/mcp/server/process.rs b/src/crates/assembly/core/src/service/mcp/server/process.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/process.rs rename to src/crates/assembly/core/src/service/mcp/server/process.rs diff --git a/src/crates/facade/core/src/service/mcp/server/registry.rs b/src/crates/assembly/core/src/service/mcp/server/registry.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/server/registry.rs rename to src/crates/assembly/core/src/service/mcp/server/registry.rs diff --git a/src/crates/facade/core/src/service/mcp/tool_info.rs b/src/crates/assembly/core/src/service/mcp/tool_info.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/tool_info.rs rename to src/crates/assembly/core/src/service/mcp/tool_info.rs diff --git a/src/crates/facade/core/src/service/mcp/tool_name.rs b/src/crates/assembly/core/src/service/mcp/tool_name.rs similarity index 100% rename from src/crates/facade/core/src/service/mcp/tool_name.rs rename to src/crates/assembly/core/src/service/mcp/tool_name.rs diff --git a/src/crates/facade/core/src/service/mod.rs b/src/crates/assembly/core/src/service/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/mod.rs rename to src/crates/assembly/core/src/service/mod.rs diff --git a/src/crates/facade/core/src/service/project_context/builtin_documents.rs b/src/crates/assembly/core/src/service/project_context/builtin_documents.rs similarity index 100% rename from src/crates/facade/core/src/service/project_context/builtin_documents.rs rename to src/crates/assembly/core/src/service/project_context/builtin_documents.rs diff --git a/src/crates/facade/core/src/service/project_context/cancellation.rs b/src/crates/assembly/core/src/service/project_context/cancellation.rs similarity index 100% rename from src/crates/facade/core/src/service/project_context/cancellation.rs rename to src/crates/assembly/core/src/service/project_context/cancellation.rs diff --git a/src/crates/facade/core/src/service/project_context/document_template.rs b/src/crates/assembly/core/src/service/project_context/document_template.rs similarity index 100% rename from src/crates/facade/core/src/service/project_context/document_template.rs rename to src/crates/assembly/core/src/service/project_context/document_template.rs diff --git a/src/crates/facade/core/src/service/project_context/generation_prompt.rs b/src/crates/assembly/core/src/service/project_context/generation_prompt.rs similarity index 100% rename from src/crates/facade/core/src/service/project_context/generation_prompt.rs rename to src/crates/assembly/core/src/service/project_context/generation_prompt.rs diff --git a/src/crates/facade/core/src/service/project_context/mod.rs b/src/crates/assembly/core/src/service/project_context/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/project_context/mod.rs rename to src/crates/assembly/core/src/service/project_context/mod.rs diff --git a/src/crates/facade/core/src/service/project_context/service.rs b/src/crates/assembly/core/src/service/project_context/service.rs similarity index 100% rename from src/crates/facade/core/src/service/project_context/service.rs rename to src/crates/assembly/core/src/service/project_context/service.rs diff --git a/src/crates/facade/core/src/service/project_context/types.rs b/src/crates/assembly/core/src/service/project_context/types.rs similarity index 100% rename from src/crates/facade/core/src/service/project_context/types.rs rename to src/crates/assembly/core/src/service/project_context/types.rs diff --git a/src/crates/facade/core/src/service/remote_connect/bot/command_router.rs b/src/crates/assembly/core/src/service/remote_connect/bot/command_router.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/bot/command_router.rs rename to src/crates/assembly/core/src/service/remote_connect/bot/command_router.rs diff --git a/src/crates/facade/core/src/service/remote_connect/bot/feishu.rs b/src/crates/assembly/core/src/service/remote_connect/bot/feishu.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/bot/feishu.rs rename to src/crates/assembly/core/src/service/remote_connect/bot/feishu.rs diff --git a/src/crates/facade/core/src/service/remote_connect/bot/locale.rs b/src/crates/assembly/core/src/service/remote_connect/bot/locale.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/bot/locale.rs rename to src/crates/assembly/core/src/service/remote_connect/bot/locale.rs diff --git a/src/crates/facade/core/src/service/remote_connect/bot/menu.rs b/src/crates/assembly/core/src/service/remote_connect/bot/menu.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/bot/menu.rs rename to src/crates/assembly/core/src/service/remote_connect/bot/menu.rs diff --git a/src/crates/facade/core/src/service/remote_connect/bot/mod.rs b/src/crates/assembly/core/src/service/remote_connect/bot/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/bot/mod.rs rename to src/crates/assembly/core/src/service/remote_connect/bot/mod.rs diff --git a/src/crates/facade/core/src/service/remote_connect/bot/telegram.rs b/src/crates/assembly/core/src/service/remote_connect/bot/telegram.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/bot/telegram.rs rename to src/crates/assembly/core/src/service/remote_connect/bot/telegram.rs diff --git a/src/crates/facade/core/src/service/remote_connect/bot/weixin.rs b/src/crates/assembly/core/src/service/remote_connect/bot/weixin.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/bot/weixin.rs rename to src/crates/assembly/core/src/service/remote_connect/bot/weixin.rs diff --git a/src/crates/facade/core/src/service/remote_connect/device.rs b/src/crates/assembly/core/src/service/remote_connect/device.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/device.rs rename to src/crates/assembly/core/src/service/remote_connect/device.rs diff --git a/src/crates/facade/core/src/service/remote_connect/embedded_relay.rs b/src/crates/assembly/core/src/service/remote_connect/embedded_relay.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/embedded_relay.rs rename to src/crates/assembly/core/src/service/remote_connect/embedded_relay.rs diff --git a/src/crates/facade/core/src/service/remote_connect/encryption.rs b/src/crates/assembly/core/src/service/remote_connect/encryption.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/encryption.rs rename to src/crates/assembly/core/src/service/remote_connect/encryption.rs diff --git a/src/crates/facade/core/src/service/remote_connect/lan.rs b/src/crates/assembly/core/src/service/remote_connect/lan.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/lan.rs rename to src/crates/assembly/core/src/service/remote_connect/lan.rs diff --git a/src/crates/facade/core/src/service/remote_connect/mod.rs b/src/crates/assembly/core/src/service/remote_connect/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/mod.rs rename to src/crates/assembly/core/src/service/remote_connect/mod.rs diff --git a/src/crates/facade/core/src/service/remote_connect/ngrok.rs b/src/crates/assembly/core/src/service/remote_connect/ngrok.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/ngrok.rs rename to src/crates/assembly/core/src/service/remote_connect/ngrok.rs diff --git a/src/crates/facade/core/src/service/remote_connect/pairing.rs b/src/crates/assembly/core/src/service/remote_connect/pairing.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/pairing.rs rename to src/crates/assembly/core/src/service/remote_connect/pairing.rs diff --git a/src/crates/facade/core/src/service/remote_connect/qr_generator.rs b/src/crates/assembly/core/src/service/remote_connect/qr_generator.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/qr_generator.rs rename to src/crates/assembly/core/src/service/remote_connect/qr_generator.rs diff --git a/src/crates/facade/core/src/service/remote_connect/relay_client.rs b/src/crates/assembly/core/src/service/remote_connect/relay_client.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/relay_client.rs rename to src/crates/assembly/core/src/service/remote_connect/relay_client.rs diff --git a/src/crates/facade/core/src/service/remote_connect/remote_server.rs b/src/crates/assembly/core/src/service/remote_connect/remote_server.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_connect/remote_server.rs rename to src/crates/assembly/core/src/service/remote_connect/remote_server.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/disabled.rs b/src/crates/assembly/core/src/service/remote_ssh/disabled.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/disabled.rs rename to src/crates/assembly/core/src/service/remote_ssh/disabled.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/manager.rs b/src/crates/assembly/core/src/service/remote_ssh/manager.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/manager.rs rename to src/crates/assembly/core/src/service/remote_ssh/manager.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/mod.rs b/src/crates/assembly/core/src/service/remote_ssh/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/mod.rs rename to src/crates/assembly/core/src/service/remote_ssh/mod.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/password_vault.rs b/src/crates/assembly/core/src/service/remote_ssh/password_vault.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/password_vault.rs rename to src/crates/assembly/core/src/service/remote_ssh/password_vault.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/remote_fs.rs b/src/crates/assembly/core/src/service/remote_ssh/remote_fs.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/remote_fs.rs rename to src/crates/assembly/core/src/service/remote_ssh/remote_fs.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/remote_terminal.rs b/src/crates/assembly/core/src/service/remote_ssh/remote_terminal.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/remote_terminal.rs rename to src/crates/assembly/core/src/service/remote_ssh/remote_terminal.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/types.rs b/src/crates/assembly/core/src/service/remote_ssh/types.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/types.rs rename to src/crates/assembly/core/src/service/remote_ssh/types.rs diff --git a/src/crates/facade/core/src/service/remote_ssh/workspace_state.rs b/src/crates/assembly/core/src/service/remote_ssh/workspace_state.rs similarity index 100% rename from src/crates/facade/core/src/service/remote_ssh/workspace_state.rs rename to src/crates/assembly/core/src/service/remote_ssh/workspace_state.rs diff --git a/src/crates/facade/core/src/service/review_platform/mod.rs b/src/crates/assembly/core/src/service/review_platform/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/review_platform/mod.rs rename to src/crates/assembly/core/src/service/review_platform/mod.rs diff --git a/src/crates/facade/core/src/service/runtime/mod.rs b/src/crates/assembly/core/src/service/runtime/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/runtime/mod.rs rename to src/crates/assembly/core/src/service/runtime/mod.rs diff --git a/src/crates/facade/core/src/service/search/flashgrep/client.rs b/src/crates/assembly/core/src/service/search/flashgrep/client.rs similarity index 100% rename from src/crates/facade/core/src/service/search/flashgrep/client.rs rename to src/crates/assembly/core/src/service/search/flashgrep/client.rs diff --git a/src/crates/facade/core/src/service/search/flashgrep/error.rs b/src/crates/assembly/core/src/service/search/flashgrep/error.rs similarity index 100% rename from src/crates/facade/core/src/service/search/flashgrep/error.rs rename to src/crates/assembly/core/src/service/search/flashgrep/error.rs diff --git a/src/crates/facade/core/src/service/search/flashgrep/mod.rs b/src/crates/assembly/core/src/service/search/flashgrep/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/search/flashgrep/mod.rs rename to src/crates/assembly/core/src/service/search/flashgrep/mod.rs diff --git a/src/crates/facade/core/src/service/search/flashgrep/protocol.rs b/src/crates/assembly/core/src/service/search/flashgrep/protocol.rs similarity index 100% rename from src/crates/facade/core/src/service/search/flashgrep/protocol.rs rename to src/crates/assembly/core/src/service/search/flashgrep/protocol.rs diff --git a/src/crates/facade/core/src/service/search/flashgrep/repo_session.rs b/src/crates/assembly/core/src/service/search/flashgrep/repo_session.rs similarity index 100% rename from src/crates/facade/core/src/service/search/flashgrep/repo_session.rs rename to src/crates/assembly/core/src/service/search/flashgrep/repo_session.rs diff --git a/src/crates/facade/core/src/service/search/flashgrep/rpc_client.rs b/src/crates/assembly/core/src/service/search/flashgrep/rpc_client.rs similarity index 100% rename from src/crates/facade/core/src/service/search/flashgrep/rpc_client.rs rename to src/crates/assembly/core/src/service/search/flashgrep/rpc_client.rs diff --git a/src/crates/facade/core/src/service/search/flashgrep/types.rs b/src/crates/assembly/core/src/service/search/flashgrep/types.rs similarity index 100% rename from src/crates/facade/core/src/service/search/flashgrep/types.rs rename to src/crates/assembly/core/src/service/search/flashgrep/types.rs diff --git a/src/crates/facade/core/src/service/search/mod.rs b/src/crates/assembly/core/src/service/search/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/search/mod.rs rename to src/crates/assembly/core/src/service/search/mod.rs diff --git a/src/crates/facade/core/src/service/search/remote.rs b/src/crates/assembly/core/src/service/search/remote.rs similarity index 100% rename from src/crates/facade/core/src/service/search/remote.rs rename to src/crates/assembly/core/src/service/search/remote.rs diff --git a/src/crates/facade/core/src/service/search/remote_disabled.rs b/src/crates/assembly/core/src/service/search/remote_disabled.rs similarity index 100% rename from src/crates/facade/core/src/service/search/remote_disabled.rs rename to src/crates/assembly/core/src/service/search/remote_disabled.rs diff --git a/src/crates/facade/core/src/service/search/service.rs b/src/crates/assembly/core/src/service/search/service.rs similarity index 100% rename from src/crates/facade/core/src/service/search/service.rs rename to src/crates/assembly/core/src/service/search/service.rs diff --git a/src/crates/facade/core/src/service/search/types.rs b/src/crates/assembly/core/src/service/search/types.rs similarity index 100% rename from src/crates/facade/core/src/service/search/types.rs rename to src/crates/assembly/core/src/service/search/types.rs diff --git a/src/crates/facade/core/src/service/session/mod.rs b/src/crates/assembly/core/src/service/session/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/session/mod.rs rename to src/crates/assembly/core/src/service/session/mod.rs diff --git a/src/crates/facade/core/src/service/session_usage/mod.rs b/src/crates/assembly/core/src/service/session_usage/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/session_usage/mod.rs rename to src/crates/assembly/core/src/service/session_usage/mod.rs diff --git a/src/crates/facade/core/src/service/session_usage/service.rs b/src/crates/assembly/core/src/service/session_usage/service.rs similarity index 100% rename from src/crates/facade/core/src/service/session_usage/service.rs rename to src/crates/assembly/core/src/service/session_usage/service.rs diff --git a/src/crates/facade/core/src/service/snapshot/events.rs b/src/crates/assembly/core/src/service/snapshot/events.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/events.rs rename to src/crates/assembly/core/src/service/snapshot/events.rs diff --git a/src/crates/facade/core/src/service/snapshot/file_lock_manager.rs b/src/crates/assembly/core/src/service/snapshot/file_lock_manager.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/file_lock_manager.rs rename to src/crates/assembly/core/src/service/snapshot/file_lock_manager.rs diff --git a/src/crates/facade/core/src/service/snapshot/isolation_manager.rs b/src/crates/assembly/core/src/service/snapshot/isolation_manager.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/isolation_manager.rs rename to src/crates/assembly/core/src/service/snapshot/isolation_manager.rs diff --git a/src/crates/facade/core/src/service/snapshot/manager.rs b/src/crates/assembly/core/src/service/snapshot/manager.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/manager.rs rename to src/crates/assembly/core/src/service/snapshot/manager.rs diff --git a/src/crates/facade/core/src/service/snapshot/mod.rs b/src/crates/assembly/core/src/service/snapshot/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/mod.rs rename to src/crates/assembly/core/src/service/snapshot/mod.rs diff --git a/src/crates/facade/core/src/service/snapshot/service.rs b/src/crates/assembly/core/src/service/snapshot/service.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/service.rs rename to src/crates/assembly/core/src/service/snapshot/service.rs diff --git a/src/crates/facade/core/src/service/snapshot/snapshot_core.rs b/src/crates/assembly/core/src/service/snapshot/snapshot_core.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/snapshot_core.rs rename to src/crates/assembly/core/src/service/snapshot/snapshot_core.rs diff --git a/src/crates/facade/core/src/service/snapshot/snapshot_system.rs b/src/crates/assembly/core/src/service/snapshot/snapshot_system.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/snapshot_system.rs rename to src/crates/assembly/core/src/service/snapshot/snapshot_system.rs diff --git a/src/crates/facade/core/src/service/snapshot/types.rs b/src/crates/assembly/core/src/service/snapshot/types.rs similarity index 100% rename from src/crates/facade/core/src/service/snapshot/types.rs rename to src/crates/assembly/core/src/service/snapshot/types.rs diff --git a/src/crates/facade/core/src/service/token_usage/mod.rs b/src/crates/assembly/core/src/service/token_usage/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/token_usage/mod.rs rename to src/crates/assembly/core/src/service/token_usage/mod.rs diff --git a/src/crates/facade/core/src/service/token_usage/service.rs b/src/crates/assembly/core/src/service/token_usage/service.rs similarity index 100% rename from src/crates/facade/core/src/service/token_usage/service.rs rename to src/crates/assembly/core/src/service/token_usage/service.rs diff --git a/src/crates/facade/core/src/service/token_usage/subscriber.rs b/src/crates/assembly/core/src/service/token_usage/subscriber.rs similarity index 100% rename from src/crates/facade/core/src/service/token_usage/subscriber.rs rename to src/crates/assembly/core/src/service/token_usage/subscriber.rs diff --git a/src/crates/facade/core/src/service/workspace/factory.rs b/src/crates/assembly/core/src/service/workspace/factory.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace/factory.rs rename to src/crates/assembly/core/src/service/workspace/factory.rs diff --git a/src/crates/facade/core/src/service/workspace/identity_watch.rs b/src/crates/assembly/core/src/service/workspace/identity_watch.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace/identity_watch.rs rename to src/crates/assembly/core/src/service/workspace/identity_watch.rs diff --git a/src/crates/facade/core/src/service/workspace/manager.rs b/src/crates/assembly/core/src/service/workspace/manager.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace/manager.rs rename to src/crates/assembly/core/src/service/workspace/manager.rs diff --git a/src/crates/facade/core/src/service/workspace/mod.rs b/src/crates/assembly/core/src/service/workspace/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace/mod.rs rename to src/crates/assembly/core/src/service/workspace/mod.rs diff --git a/src/crates/facade/core/src/service/workspace/provider.rs b/src/crates/assembly/core/src/service/workspace/provider.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace/provider.rs rename to src/crates/assembly/core/src/service/workspace/provider.rs diff --git a/src/crates/facade/core/src/service/workspace/service.rs b/src/crates/assembly/core/src/service/workspace/service.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace/service.rs rename to src/crates/assembly/core/src/service/workspace/service.rs diff --git a/src/crates/facade/core/src/service/workspace_runtime/mod.rs b/src/crates/assembly/core/src/service/workspace_runtime/mod.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace_runtime/mod.rs rename to src/crates/assembly/core/src/service/workspace_runtime/mod.rs diff --git a/src/crates/facade/core/src/service/workspace_runtime/service.rs b/src/crates/assembly/core/src/service/workspace_runtime/service.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace_runtime/service.rs rename to src/crates/assembly/core/src/service/workspace_runtime/service.rs diff --git a/src/crates/facade/core/src/service/workspace_runtime/types.rs b/src/crates/assembly/core/src/service/workspace_runtime/types.rs similarity index 100% rename from src/crates/facade/core/src/service/workspace_runtime/types.rs rename to src/crates/assembly/core/src/service/workspace_runtime/types.rs diff --git a/src/crates/facade/core/src/service_agent_runtime.rs b/src/crates/assembly/core/src/service_agent_runtime.rs similarity index 100% rename from src/crates/facade/core/src/service_agent_runtime.rs rename to src/crates/assembly/core/src/service_agent_runtime.rs diff --git a/src/crates/facade/core/src/util/errors.rs b/src/crates/assembly/core/src/util/errors.rs similarity index 100% rename from src/crates/facade/core/src/util/errors.rs rename to src/crates/assembly/core/src/util/errors.rs diff --git a/src/crates/facade/core/src/util/front_matter_markdown.rs b/src/crates/assembly/core/src/util/front_matter_markdown.rs similarity index 100% rename from src/crates/facade/core/src/util/front_matter_markdown.rs rename to src/crates/assembly/core/src/util/front_matter_markdown.rs diff --git a/src/crates/facade/core/src/util/json_extract.rs b/src/crates/assembly/core/src/util/json_extract.rs similarity index 100% rename from src/crates/facade/core/src/util/json_extract.rs rename to src/crates/assembly/core/src/util/json_extract.rs diff --git a/src/crates/facade/core/src/util/mod.rs b/src/crates/assembly/core/src/util/mod.rs similarity index 100% rename from src/crates/facade/core/src/util/mod.rs rename to src/crates/assembly/core/src/util/mod.rs diff --git a/src/crates/facade/core/src/util/plain_output.rs b/src/crates/assembly/core/src/util/plain_output.rs similarity index 100% rename from src/crates/facade/core/src/util/plain_output.rs rename to src/crates/assembly/core/src/util/plain_output.rs diff --git a/src/crates/facade/core/src/util/timing.rs b/src/crates/assembly/core/src/util/timing.rs similarity index 100% rename from src/crates/facade/core/src/util/timing.rs rename to src/crates/assembly/core/src/util/timing.rs diff --git a/src/crates/facade/core/src/util/token_counter.rs b/src/crates/assembly/core/src/util/token_counter.rs similarity index 100% rename from src/crates/facade/core/src/util/token_counter.rs rename to src/crates/assembly/core/src/util/token_counter.rs diff --git a/src/crates/facade/core/src/util/types/ai.rs b/src/crates/assembly/core/src/util/types/ai.rs similarity index 100% rename from src/crates/facade/core/src/util/types/ai.rs rename to src/crates/assembly/core/src/util/types/ai.rs diff --git a/src/crates/facade/core/src/util/types/config.rs b/src/crates/assembly/core/src/util/types/config.rs similarity index 100% rename from src/crates/facade/core/src/util/types/config.rs rename to src/crates/assembly/core/src/util/types/config.rs diff --git a/src/crates/facade/core/src/util/types/core.rs b/src/crates/assembly/core/src/util/types/core.rs similarity index 100% rename from src/crates/facade/core/src/util/types/core.rs rename to src/crates/assembly/core/src/util/types/core.rs diff --git a/src/crates/facade/core/src/util/types/event.rs b/src/crates/assembly/core/src/util/types/event.rs similarity index 100% rename from src/crates/facade/core/src/util/types/event.rs rename to src/crates/assembly/core/src/util/types/event.rs diff --git a/src/crates/facade/core/src/util/types/message.rs b/src/crates/assembly/core/src/util/types/message.rs similarity index 100% rename from src/crates/facade/core/src/util/types/message.rs rename to src/crates/assembly/core/src/util/types/message.rs diff --git a/src/crates/facade/core/src/util/types/mod.rs b/src/crates/assembly/core/src/util/types/mod.rs similarity index 100% rename from src/crates/facade/core/src/util/types/mod.rs rename to src/crates/assembly/core/src/util/types/mod.rs diff --git a/src/crates/facade/core/src/util/types/tool.rs b/src/crates/assembly/core/src/util/types/tool.rs similarity index 100% rename from src/crates/facade/core/src/util/types/tool.rs rename to src/crates/assembly/core/src/util/types/tool.rs diff --git a/src/crates/integrations/ai-adapters/src/types/tool_image_attachment.rs b/src/crates/assembly/core/src/util/types/tool_image_attachment.rs similarity index 100% rename from src/crates/integrations/ai-adapters/src/types/tool_image_attachment.rs rename to src/crates/assembly/core/src/util/types/tool_image_attachment.rs diff --git a/src/crates/facade/core/tests/context_profile.rs b/src/crates/assembly/core/tests/context_profile.rs similarity index 100% rename from src/crates/facade/core/tests/context_profile.rs rename to src/crates/assembly/core/tests/context_profile.rs diff --git a/src/crates/facade/core/tests/git_contracts.rs b/src/crates/assembly/core/tests/git_contracts.rs similarity index 100% rename from src/crates/facade/core/tests/git_contracts.rs rename to src/crates/assembly/core/tests/git_contracts.rs diff --git a/src/crates/facade/core/tests/product_assembly.rs b/src/crates/assembly/core/tests/product_assembly.rs similarity index 100% rename from src/crates/facade/core/tests/product_assembly.rs rename to src/crates/assembly/core/tests/product_assembly.rs diff --git a/src/crates/facade/core/tests/remote_mcp_streamable_http.rs b/src/crates/assembly/core/tests/remote_mcp_streamable_http.rs similarity index 100% rename from src/crates/facade/core/tests/remote_mcp_streamable_http.rs rename to src/crates/assembly/core/tests/remote_mcp_streamable_http.rs diff --git a/src/crates/product/product-capabilities/AGENTS.md b/src/crates/assembly/product-capabilities/AGENTS.md similarity index 93% rename from src/crates/product/product-capabilities/AGENTS.md rename to src/crates/assembly/product-capabilities/AGENTS.md index 0c2ff6836..07e3e16fe 100644 --- a/src/crates/product/product-capabilities/AGENTS.md +++ b/src/crates/assembly/product-capabilities/AGENTS.md @@ -1,6 +1,6 @@ # product-capabilities Agent Guide -Scope: this guide applies to `src/crates/product/product-capabilities`. +Scope: this guide applies to `src/crates/assembly/product-capabilities`. `bitfun-product-capabilities` owns product capability pack assembly facts: which runtime services, tool provider group ids, harness provider descriptors, and diff --git a/src/crates/product/product-capabilities/Cargo.toml b/src/crates/assembly/product-capabilities/Cargo.toml similarity index 79% rename from src/crates/product/product-capabilities/Cargo.toml rename to src/crates/assembly/product-capabilities/Cargo.toml index 2b01c5e03..e09ffca86 100644 --- a/src/crates/product/product-capabilities/Cargo.toml +++ b/src/crates/assembly/product-capabilities/Cargo.toml @@ -12,4 +12,4 @@ crate-type = ["rlib"] [dependencies] bitfun-harness = { path = "../../execution/harness" } bitfun-runtime-ports = { path = "../../contracts/runtime-ports" } -bitfun-tool-packs = { path = "../../execution/tool-packs", default-features = false } +bitfun-tool-packs = { path = "../../execution/tool-provider-groups", default-features = false } diff --git a/src/crates/product/product-capabilities/src/lib.rs b/src/crates/assembly/product-capabilities/src/lib.rs similarity index 100% rename from src/crates/product/product-capabilities/src/lib.rs rename to src/crates/assembly/product-capabilities/src/lib.rs diff --git a/src/crates/product/product-capabilities/tests/product_capabilities.rs b/src/crates/assembly/product-capabilities/tests/product_capabilities.rs similarity index 100% rename from src/crates/product/product-capabilities/tests/product_capabilities.rs rename to src/crates/assembly/product-capabilities/tests/product_capabilities.rs diff --git a/src/crates/contracts/AGENTS-CN.md b/src/crates/contracts/AGENTS-CN.md index 06cdce891..1ed5ce489 100644 --- a/src/crates/contracts/AGENTS-CN.md +++ b/src/crates/contracts/AGENTS-CN.md @@ -1,8 +1,8 @@ **中文** | [English](AGENTS.md) -# 契约层 +# 稳定契约与产品领域层 -本层负责可被 runtime、services、product、integrations、facade 和应用形态共享的稳定契约,不向上携带具体实现细节。 +本层负责可被 execution、services、adapters、assembly 和 interfaces 共享的稳定契约与产品领域模型,不向上携带具体实现细节。 ## 模块 @@ -10,17 +10,18 @@ |---|---|---| | `core-types` | 共享 DTO、错误、session/surface 数据和小型 value type | [AGENTS.md](core-types/AGENTS.md) | | `events` | 事件 payload 和 emitter 契约 | [AGENTS.md](events/AGENTS.md) | +| `product-domains` | 产品领域 DTO、规则、策略和窄 port | [AGENTS.md](product-domains/AGENTS.md) | | `runtime-ports` | runtime owner crate 使用的 trait 和 port | [AGENTS.md](runtime-ports/AGENTS.md) | ## 放置规则 -- 只有跨多个 owner layer 稳定复用的类型才放到这里。 +- 只有跨多个 owner layer 稳定复用的类型、领域规则或 port 才放到这里。 - 契约层应保持轻行为:允许少量校验 helper,不放 runtime、filesystem、network、UI 或平台行为。 - 优先定义窄 DTO 或 trait,不引入宽泛 facade object。 -- 如果类型只服务单个 runtime 或 product crate,先留在所属 crate 内,等出现第二个 owner 再提取。 +- 如果类型只服务单个 runtime、service 或 adapter crate,先留在所属 crate 内,等出现第二个 owner 再提取。 ## 依赖边界 - 本层可以依赖 workspace 基础库和其他 contract crate。 -- 本层不得依赖 `runtime`、`services`、`product`、`integrations`、`facade`、`src/apps`、前端包、Tauri 或 OS adapter。 +- 本层不得依赖 `execution`、`services`、`adapters`、`assembly`、`interfaces`、`src/apps`、前端包、Tauri 或 OS adapter。 - 新依赖必须服务契约形状本身,而不是为了实现层使用方便。 diff --git a/src/crates/contracts/AGENTS.md b/src/crates/contracts/AGENTS.md index 9186d4d19..73e1d2677 100644 --- a/src/crates/contracts/AGENTS.md +++ b/src/crates/contracts/AGENTS.md @@ -2,9 +2,9 @@ # Contracts Layer -This layer owns stable contracts that can be shared by runtime, services, -product, integrations, facade, and app surfaces without pulling implementation -details upward. +This layer owns stable contracts and product-domain models that can be shared by +execution, services, adapters, assembly, and interfaces without pulling +implementation details upward. ## Modules @@ -12,6 +12,7 @@ details upward. |---|---|---| | `core-types` | Shared DTOs, errors, session/surface data, and small value types | [AGENTS.md](core-types/AGENTS.md) | | `events` | Event payloads and emitter contracts | [AGENTS.md](events/AGENTS.md) | +| `product-domains` | Product domain DTOs, rules, policies, and narrow ports | [AGENTS.md](product-domains/AGENTS.md) | | `runtime-ports` | Runtime-facing traits and ports used by owner crates | [AGENTS.md](runtime-ports/AGENTS.md) | ## Placement Rules @@ -26,7 +27,7 @@ details upward. ## Dependency Boundaries - This layer may depend on workspace primitives and other contract crates. -- It must not depend on `runtime`, `services`, `product`, `integrations`, - `facade`, `src/apps`, frontend packages, Tauri, or OS-specific adapters. +- It must not depend on `execution`, `services`, `adapters`, `assembly`, + `interfaces`, `src/apps`, frontend packages, Tauri, or OS-specific adapters. - New dependencies must stay minimal and justified by contract shape, not by implementation convenience. diff --git a/src/crates/product/product-domains/AGENTS-CN.md b/src/crates/contracts/product-domains/AGENTS-CN.md similarity index 97% rename from src/crates/product/product-domains/AGENTS-CN.md rename to src/crates/contracts/product-domains/AGENTS-CN.md index 6f50a056b..7a5f57e6f 100644 --- a/src/crates/product/product-domains/AGENTS-CN.md +++ b/src/crates/contracts/product-domains/AGENTS-CN.md @@ -2,7 +2,7 @@ # Product Domains Agent 指南 -适用范围:`src/crates/product/product-domains`。 +适用范围:`src/crates/contracts/product-domains`。 `bitfun-product-domains` 承载可脱离完整 core runtime 编译的平台无关产品领域契约。这里应聚焦纯状态、DTO、策略和窄 ports;具体 runtime 行为不属于本 crate。 diff --git a/src/crates/product/product-domains/AGENTS.md b/src/crates/contracts/product-domains/AGENTS.md similarity index 96% rename from src/crates/product/product-domains/AGENTS.md rename to src/crates/contracts/product-domains/AGENTS.md index af893376e..368e035ba 100644 --- a/src/crates/product/product-domains/AGENTS.md +++ b/src/crates/contracts/product-domains/AGENTS.md @@ -2,7 +2,7 @@ # Product Domains Agent Guide -Scope: this guide applies to `src/crates/product/product-domains`. +Scope: this guide applies to `src/crates/contracts/product-domains`. `bitfun-product-domains` owns platform-agnostic product-domain contracts that can compile without the full core runtime. Keep it focused on pure state, DTOs, diff --git a/src/crates/product/product-domains/Cargo.toml b/src/crates/contracts/product-domains/Cargo.toml similarity index 100% rename from src/crates/product/product-domains/Cargo.toml rename to src/crates/contracts/product-domains/Cargo.toml diff --git a/src/crates/product/product-domains/src/function_agents/common.rs b/src/crates/contracts/product-domains/src/function_agents/common.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/common.rs rename to src/crates/contracts/product-domains/src/function_agents/common.rs diff --git a/src/crates/product/product-domains/src/function_agents/git_func_agent/context_analyzer.rs b/src/crates/contracts/product-domains/src/function_agents/git_func_agent/context_analyzer.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/git_func_agent/context_analyzer.rs rename to src/crates/contracts/product-domains/src/function_agents/git_func_agent/context_analyzer.rs diff --git a/src/crates/product/product-domains/src/function_agents/git_func_agent/mod.rs b/src/crates/contracts/product-domains/src/function_agents/git_func_agent/mod.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/git_func_agent/mod.rs rename to src/crates/contracts/product-domains/src/function_agents/git_func_agent/mod.rs diff --git a/src/crates/product/product-domains/src/function_agents/git_func_agent/prompts/commit_message.md b/src/crates/contracts/product-domains/src/function_agents/git_func_agent/prompts/commit_message.md similarity index 100% rename from src/crates/product/product-domains/src/function_agents/git_func_agent/prompts/commit_message.md rename to src/crates/contracts/product-domains/src/function_agents/git_func_agent/prompts/commit_message.md diff --git a/src/crates/product/product-domains/src/function_agents/git_func_agent/types.rs b/src/crates/contracts/product-domains/src/function_agents/git_func_agent/types.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/git_func_agent/types.rs rename to src/crates/contracts/product-domains/src/function_agents/git_func_agent/types.rs diff --git a/src/crates/product/product-domains/src/function_agents/git_func_agent/utils.rs b/src/crates/contracts/product-domains/src/function_agents/git_func_agent/utils.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/git_func_agent/utils.rs rename to src/crates/contracts/product-domains/src/function_agents/git_func_agent/utils.rs diff --git a/src/crates/product/product-domains/src/function_agents/mod.rs b/src/crates/contracts/product-domains/src/function_agents/mod.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/mod.rs rename to src/crates/contracts/product-domains/src/function_agents/mod.rs diff --git a/src/crates/product/product-domains/src/function_agents/ports.rs b/src/crates/contracts/product-domains/src/function_agents/ports.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/ports.rs rename to src/crates/contracts/product-domains/src/function_agents/ports.rs diff --git a/src/crates/product/product-domains/src/function_agents/startchat_func_agent/mod.rs b/src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/mod.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/startchat_func_agent/mod.rs rename to src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/mod.rs diff --git a/src/crates/product/product-domains/src/function_agents/startchat_func_agent/prompts/work_state_analysis.md b/src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/prompts/work_state_analysis.md similarity index 100% rename from src/crates/product/product-domains/src/function_agents/startchat_func_agent/prompts/work_state_analysis.md rename to src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/prompts/work_state_analysis.md diff --git a/src/crates/product/product-domains/src/function_agents/startchat_func_agent/types.rs b/src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/types.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/startchat_func_agent/types.rs rename to src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/types.rs diff --git a/src/crates/product/product-domains/src/function_agents/startchat_func_agent/utils.rs b/src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/utils.rs similarity index 100% rename from src/crates/product/product-domains/src/function_agents/startchat_func_agent/utils.rs rename to src/crates/contracts/product-domains/src/function_agents/startchat_func_agent/utils.rs diff --git a/src/crates/product/product-domains/src/lib.rs b/src/crates/contracts/product-domains/src/lib.rs similarity index 100% rename from src/crates/product/product-domains/src/lib.rs rename to src/crates/contracts/product-domains/src/lib.rs diff --git a/src/crates/product/product-domains/src/miniapp/bridge_builder.rs b/src/crates/contracts/product-domains/src/miniapp/bridge_builder.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/bridge_builder.rs rename to src/crates/contracts/product-domains/src/miniapp/bridge_builder.rs diff --git a/src/crates/product/product-domains/src/miniapp/builtin.rs b/src/crates/contracts/product-domains/src/miniapp/builtin.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin.rs rename to src/crates/contracts/product-domains/src/miniapp/builtin.rs diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/index.html b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/index.html similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/index.html rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/index.html diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/meta.json b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/meta.json similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/meta.json rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/meta.json diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/style.css b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/style.css similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/style.css rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/style.css diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/ui.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/ui.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/ui.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/ui.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/worker.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/worker.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/coding-selfie/worker.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/coding-selfie/worker.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/divination/index.html b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/index.html similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/divination/index.html rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/index.html diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/divination/meta.json b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/meta.json similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/divination/meta.json rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/meta.json diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/divination/style.css b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/style.css similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/divination/style.css rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/style.css diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/divination/ui.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/ui.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/divination/ui.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/ui.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/divination/worker.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/worker.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/divination/worker.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/divination/worker.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/index.html b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/index.html similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/index.html rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/index.html diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/meta.json b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/meta.json similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/meta.json rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/meta.json diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/style.css b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/style.css similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/style.css rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/style.css diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/ui.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/ui.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/ui.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/ui.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/worker.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/worker.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/gomoku/worker.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/gomoku/worker.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/index.html b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/index.html similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/index.html rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/index.html diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/meta.json b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/meta.json similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/meta.json rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/meta.json diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/style.css b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/style.css similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/style.css rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/style.css diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/ui.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/ui.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/ui.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/ui.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/worker.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/worker.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/pr-review/worker.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/pr-review/worker.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/index.html b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/index.html similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/index.html rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/index.html diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/meta.json b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/meta.json similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/meta.json rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/meta.json diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/style.css b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/style.css similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/style.css rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/style.css diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/ui.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/ui.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/ui.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/ui.js diff --git a/src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/worker.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/worker.js similarity index 100% rename from src/crates/product/product-domains/src/miniapp/builtin/assets/regex-playground/worker.js rename to src/crates/contracts/product-domains/src/miniapp/builtin/assets/regex-playground/worker.js diff --git a/src/crates/product/product-domains/src/miniapp/compiler.rs b/src/crates/contracts/product-domains/src/miniapp/compiler.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/compiler.rs rename to src/crates/contracts/product-domains/src/miniapp/compiler.rs diff --git a/src/crates/product/product-domains/src/miniapp/customization.rs b/src/crates/contracts/product-domains/src/miniapp/customization.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/customization.rs rename to src/crates/contracts/product-domains/src/miniapp/customization.rs diff --git a/src/crates/product/product-domains/src/miniapp/draft.rs b/src/crates/contracts/product-domains/src/miniapp/draft.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/draft.rs rename to src/crates/contracts/product-domains/src/miniapp/draft.rs diff --git a/src/crates/product/product-domains/src/miniapp/exporter.rs b/src/crates/contracts/product-domains/src/miniapp/exporter.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/exporter.rs rename to src/crates/contracts/product-domains/src/miniapp/exporter.rs diff --git a/src/crates/product/product-domains/src/miniapp/host_routing.rs b/src/crates/contracts/product-domains/src/miniapp/host_routing.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/host_routing.rs rename to src/crates/contracts/product-domains/src/miniapp/host_routing.rs diff --git a/src/crates/product/product-domains/src/miniapp/lifecycle.rs b/src/crates/contracts/product-domains/src/miniapp/lifecycle.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/lifecycle.rs rename to src/crates/contracts/product-domains/src/miniapp/lifecycle.rs diff --git a/src/crates/product/product-domains/src/miniapp/mod.rs b/src/crates/contracts/product-domains/src/miniapp/mod.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/mod.rs rename to src/crates/contracts/product-domains/src/miniapp/mod.rs diff --git a/src/crates/product/product-domains/src/miniapp/permission_policy.rs b/src/crates/contracts/product-domains/src/miniapp/permission_policy.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/permission_policy.rs rename to src/crates/contracts/product-domains/src/miniapp/permission_policy.rs diff --git a/src/crates/product/product-domains/src/miniapp/ports.rs b/src/crates/contracts/product-domains/src/miniapp/ports.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/ports.rs rename to src/crates/contracts/product-domains/src/miniapp/ports.rs diff --git a/src/crates/product/product-domains/src/miniapp/runtime.rs b/src/crates/contracts/product-domains/src/miniapp/runtime.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/runtime.rs rename to src/crates/contracts/product-domains/src/miniapp/runtime.rs diff --git a/src/crates/product/product-domains/src/miniapp/storage.rs b/src/crates/contracts/product-domains/src/miniapp/storage.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/storage.rs rename to src/crates/contracts/product-domains/src/miniapp/storage.rs diff --git a/src/crates/product/product-domains/src/miniapp/types.rs b/src/crates/contracts/product-domains/src/miniapp/types.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/types.rs rename to src/crates/contracts/product-domains/src/miniapp/types.rs diff --git a/src/crates/product/product-domains/src/miniapp/worker.rs b/src/crates/contracts/product-domains/src/miniapp/worker.rs similarity index 100% rename from src/crates/product/product-domains/src/miniapp/worker.rs rename to src/crates/contracts/product-domains/src/miniapp/worker.rs diff --git a/src/crates/product/product-domains/tests/function_agent_contracts.rs b/src/crates/contracts/product-domains/tests/function_agent_contracts.rs similarity index 99% rename from src/crates/product/product-domains/tests/function_agent_contracts.rs rename to src/crates/contracts/product-domains/tests/function_agent_contracts.rs index 35e3db18c..d3db55730 100644 --- a/src/crates/product/product-domains/tests/function_agent_contracts.rs +++ b/src/crates/contracts/product-domains/tests/function_agent_contracts.rs @@ -250,7 +250,7 @@ fn git_function_agent_prompt_helpers_preserve_ai_contract() { #[test] fn git_function_agent_summary_helpers_preserve_commit_shape() { let changed_files = vec![ - "src/crates/facade/core/lib.rs".to_string(), + "src/crates/assembly/core/lib.rs".to_string(), "README.md".to_string(), ]; let summary = build_changes_summary_from_paths(&changed_files, 2, 1); @@ -260,7 +260,7 @@ fn git_function_agent_summary_helpers_preserve_commit_shape() { assert_eq!(summary.files_changed, 2); assert_eq!( summary.file_changes[0].path, - "src/crates/facade/core/lib.rs" + "src/crates/assembly/core/lib.rs" ); assert_eq!(summary.file_changes[0].file_type, "rs"); assert!(summary.affected_modules.contains(&"core".to_string())); @@ -625,7 +625,7 @@ fn function_agent_runtime_facade_honors_disabled_git_state_boundary_and_preserve fn git_function_agent_utils_preserve_change_classification() { assert_eq!(infer_file_type("src/main.rs"), "rs"); assert_eq!( - extract_module_name("src/crates/facade/core/lib.rs").as_deref(), + extract_module_name("src/crates/assembly/core/lib.rs").as_deref(), Some("core") ); diff --git a/src/crates/product/product-domains/tests/miniapp_contracts.rs b/src/crates/contracts/product-domains/tests/miniapp_contracts.rs similarity index 100% rename from src/crates/product/product-domains/tests/miniapp_contracts.rs rename to src/crates/contracts/product-domains/tests/miniapp_contracts.rs diff --git a/src/crates/execution/AGENTS-CN.md b/src/crates/execution/AGENTS-CN.md index 355524ecb..49f94e74d 100644 --- a/src/crates/execution/AGENTS-CN.md +++ b/src/crates/execution/AGENTS-CN.md @@ -2,7 +2,7 @@ # 执行原语层 -本层负责可复用的 agent、tool、harness、stream 和 typed-service 执行原语。它不是完整 Agent Runtime SDK,也不是组装后的产品 runtime。由产品组装决定某个交付形态启用哪些 execution primitive、tool pack、harness provider 和 service provider。 +本层负责可复用的 agent、harness、stream、typed-service 和 tool 执行原语。它不是完整 Agent Runtime SDK,也不是组装后的产品 runtime。由产品组装决定某个交付形态启用哪些 execution primitive、tool provider group、harness provider、adapter 和 service。 ## 模块 @@ -10,21 +10,22 @@ |---|---|---| | `agent-runtime` | Agent registry、scheduler、prompt cache、hooks、goal 和 runtime control 契约 | [AGENTS.md](agent-runtime/AGENTS.md) | | `agent-stream` | Provider stream 归一化和 replay 契约 | [AGENTS.md](agent-stream/AGENTS.md) | -| `agent-tools` | Tool 契约、execution gate、input validation 和 result presentation 契约 | [AGENTS.md](agent-tools/AGENTS.md) | +| `tool-contracts` | Tool 契约、execution gate、input validation 和 result presentation 契约;Cargo package 仍为 `bitfun-agent-tools` | [AGENTS.md](tool-contracts/AGENTS.md) | | `harness` | Harness workflow 契约和 registry primitive | [AGENTS.md](harness/AGENTS.md) | | `runtime-services` | Typed runtime service assembly 和 service availability facts | [AGENTS.md](runtime-services/AGENTS.md) | -| `tool-packs` | Tool provider group facts 和 product-full tool-pack composition | [AGENTS.md](tool-packs/AGENTS.md) | -| `tool-runtime` | 底层 file/search/tool IO helper | [AGENTS.md](tool-runtime/AGENTS.md) | +| `tool-provider-groups` | Tool provider group facts 和 product-full tool group composition;Cargo package 仍为 `bitfun-tool-packs` | [AGENTS.md](tool-provider-groups/AGENTS.md) | +| `tool-execution` | 底层 file/search/tool IO helper;Cargo package 仍为 `tool-runtime` | [AGENTS.md](tool-execution/AGENTS.md) | ## 放置规则 - 可移植 execution 编排、agent lifecycle 契约、tool 契约和 provider-neutral execution facts 放到这里。 - 具体 filesystem、git、terminal、MCP server、remote SSH、OS 行为应放到 `services`,除非只是纯底层 tool primitive。 -- 产品 feature 选择和 delivery-profile 决策放到 `product` 或 `facade`,不要放入 execution primitive。 +- 协议 projection 与外部 provider 请求整形放到 `adapters`。 +- 产品 feature 选择和 delivery-profile 决策放到 `assembly`,不要放入 execution primitive。 - Tool packs 只描述 provider group 和所需服务;具体服务访问应通过 port 或 typed runtime service。 ## 依赖边界 -- Execution primitive crate 可以依赖 `contracts`,在 provider stream 归一化场景下可以窄依赖 integration DTO。 -- Execution primitive crate 不得依赖 `facade/core`、`src/apps`、前端代码、Tauri API 或产品形态 lifecycle。 -- 新增对 `services`、`product` 或 `integrations` 的依赖时,必须在最近的模块文档或 PR 描述里说明边界原因。 +- Execution primitive crate 可以依赖 `contracts`,在 provider stream 归一化场景下可以窄依赖 provider-neutral DTO。 +- Execution primitive crate 不得依赖 `assembly/core`、`src/apps`、前端代码、Tauri API 或产品形态 lifecycle。 +- 新增对 `adapters` 或 `services` 的依赖时,必须在最近的模块文档或 PR 描述里说明边界原因。 diff --git a/src/crates/execution/AGENTS.md b/src/crates/execution/AGENTS.md index dcdc0c6f1..dff1a5f41 100644 --- a/src/crates/execution/AGENTS.md +++ b/src/crates/execution/AGENTS.md @@ -2,10 +2,11 @@ # Execution Primitives Layer -This layer owns reusable agent, tool, harness, stream, and typed-service +This layer owns reusable agent, harness, stream, typed-service, and tool execution primitives. It is not the complete Agent Runtime SDK and not the assembled product runtime. Product assembly decides which primitives, tool -packs, harness providers, and service providers are active for a delivery form. +provider groups, harness providers, adapters, and services are active for a +delivery form. ## Modules @@ -13,11 +14,11 @@ packs, harness providers, and service providers are active for a delivery form. |---|---|---| | `agent-runtime` | Agent registry, scheduler, prompt cache, hooks, goals, and runtime control contracts | [AGENTS.md](agent-runtime/AGENTS.md) | | `agent-stream` | Provider stream normalization and stream replay contracts | [AGENTS.md](agent-stream/AGENTS.md) | -| `agent-tools` | Tool contracts, execution gates, input validation, and result presentation contracts | [AGENTS.md](agent-tools/AGENTS.md) | +| `tool-contracts` | Tool contracts, execution gates, input validation, and result presentation contracts. Cargo package remains `bitfun-agent-tools`. | [AGENTS.md](tool-contracts/AGENTS.md) | | `harness` | Harness workflow contracts and registry primitives | [AGENTS.md](harness/AGENTS.md) | | `runtime-services` | Typed runtime service assembly and service availability facts | [AGENTS.md](runtime-services/AGENTS.md) | -| `tool-packs` | Tool provider group facts and product-full tool-pack composition | [AGENTS.md](tool-packs/AGENTS.md) | -| `tool-runtime` | Low-level file/search/tool IO helpers | [AGENTS.md](tool-runtime/AGENTS.md) | +| `tool-provider-groups` | Tool provider group facts and product-full tool group composition. Cargo package remains `bitfun-tool-packs`. | [AGENTS.md](tool-provider-groups/AGENTS.md) | +| `tool-execution` | Low-level file/search/tool IO helpers. Cargo package remains `tool-runtime`. | [AGENTS.md](tool-execution/AGENTS.md) | ## Placement Rules @@ -25,16 +26,17 @@ packs, harness providers, and service providers are active for a delivery form. contracts, and provider-neutral execution facts here. - Keep concrete filesystem, git, terminal, MCP server, remote SSH, and OS behavior in `services` unless the code is a pure low-level tool primitive. -- Keep product feature selection and delivery-profile decisions in `product` or - `facade`, not in execution primitives. +- Keep protocol projection and external provider request shaping in `adapters`. +- Keep product feature selection and delivery-profile decisions in `assembly`, + not in execution primitives. - Tool packs should describe provider groups and required services; concrete service access should flow through ports or typed runtime services. ## Dependency Boundaries - Execution primitive crates may depend on `contracts` and narrowly scoped - integration DTOs when needed for provider stream normalization. -- Execution primitive crates must not depend on `facade/core`, `src/apps`, + provider-neutral DTOs when needed for stream normalization. +- Execution primitive crates must not depend on `assembly/core`, `src/apps`, frontend code, Tauri APIs, or product-surface lifecycle. -- Any new dependency on `services`, `product`, or `integrations` needs an - explicit boundary reason in the nearest module doc or PR description. +- Any new dependency on `adapters` or `services` needs an explicit boundary + reason in the nearest module doc or PR description. diff --git a/src/crates/execution/agent-stream/Cargo.toml b/src/crates/execution/agent-stream/Cargo.toml index 46088dbb4..265fced28 100644 --- a/src/crates/execution/agent-stream/Cargo.toml +++ b/src/crates/execution/agent-stream/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["rlib"] [dependencies] anyhow = { workspace = true } async-trait = { workspace = true } -bitfun-ai-adapters = { path = "../../integrations/ai-adapters" } +bitfun-ai-adapters = { path = "../../adapters/ai-adapters" } bitfun-events = { path = "../../contracts/events" } futures = { workspace = true } log = { workspace = true } diff --git a/src/crates/execution/runtime-services/AGENTS.md b/src/crates/execution/runtime-services/AGENTS.md index 83b6e0423..f90a74302 100644 --- a/src/crates/execution/runtime-services/AGENTS.md +++ b/src/crates/execution/runtime-services/AGENTS.md @@ -16,7 +16,7 @@ implementation layer. - Fake/test providers may live here only when they protect port behavior without pulling product runtime dependencies. - Concrete filesystem, terminal, network, Git, MCP, remote, or AI provider - implementations belong in service/integration owner crates or app adapters. + implementations belong in provider crates or app adapters. ## Verification diff --git a/src/crates/execution/agent-tools/AGENTS.md b/src/crates/execution/tool-contracts/AGENTS.md similarity index 82% rename from src/crates/execution/agent-tools/AGENTS.md rename to src/crates/execution/tool-contracts/AGENTS.md index b70d3f050..cb66be75c 100644 --- a/src/crates/execution/agent-tools/AGENTS.md +++ b/src/crates/execution/tool-contracts/AGENTS.md @@ -1,14 +1,15 @@ -# agent-tools Agent Guide +# tool-contracts Agent Guide -Scope: this guide applies to `src/crates/execution/agent-tools`. +Scope: this guide applies to `src/crates/execution/tool-contracts`. `bitfun-agent-tools` owns portable tool contracts. It must stay independent of the product tool runtime. ## Guardrails -- Do not depend on `bitfun-core`, concrete service crates, `tool-packs`, app - crates, Tauri, Git, MCP, network clients, or CLI UI dependencies. +- Do not depend on `bitfun-core`, concrete service crates, + `tool-provider-groups`, app crates, Tauri, Git, MCP, network clients, or CLI + UI dependencies. - This crate may own provider-neutral tool DTOs, validation/restriction facts, path and artifact contracts, pure manifest/catalog/exposure helpers, result presentation policy, deterministic admission policy, and portable tool context diff --git a/src/crates/execution/agent-tools/Cargo.toml b/src/crates/execution/tool-contracts/Cargo.toml similarity index 100% rename from src/crates/execution/agent-tools/Cargo.toml rename to src/crates/execution/tool-contracts/Cargo.toml diff --git a/src/crates/execution/agent-tools/src/execution_gate.rs b/src/crates/execution/tool-contracts/src/execution_gate.rs similarity index 100% rename from src/crates/execution/agent-tools/src/execution_gate.rs rename to src/crates/execution/tool-contracts/src/execution_gate.rs diff --git a/src/crates/execution/agent-tools/src/file_guidance.rs b/src/crates/execution/tool-contracts/src/file_guidance.rs similarity index 100% rename from src/crates/execution/agent-tools/src/file_guidance.rs rename to src/crates/execution/tool-contracts/src/file_guidance.rs diff --git a/src/crates/execution/agent-tools/src/file_read_freshness.rs b/src/crates/execution/tool-contracts/src/file_read_freshness.rs similarity index 100% rename from src/crates/execution/agent-tools/src/file_read_freshness.rs rename to src/crates/execution/tool-contracts/src/file_read_freshness.rs diff --git a/src/crates/execution/agent-tools/src/framework.rs b/src/crates/execution/tool-contracts/src/framework.rs similarity index 100% rename from src/crates/execution/agent-tools/src/framework.rs rename to src/crates/execution/tool-contracts/src/framework.rs diff --git a/src/crates/execution/agent-tools/src/input_validator.rs b/src/crates/execution/tool-contracts/src/input_validator.rs similarity index 100% rename from src/crates/execution/agent-tools/src/input_validator.rs rename to src/crates/execution/tool-contracts/src/input_validator.rs diff --git a/src/crates/execution/agent-tools/src/lib.rs b/src/crates/execution/tool-contracts/src/lib.rs similarity index 100% rename from src/crates/execution/agent-tools/src/lib.rs rename to src/crates/execution/tool-contracts/src/lib.rs diff --git a/src/crates/execution/agent-tools/src/tool_execution_presentation.rs b/src/crates/execution/tool-contracts/src/tool_execution_presentation.rs similarity index 100% rename from src/crates/execution/agent-tools/src/tool_execution_presentation.rs rename to src/crates/execution/tool-contracts/src/tool_execution_presentation.rs diff --git a/src/crates/execution/agent-tools/src/tool_result_storage.rs b/src/crates/execution/tool-contracts/src/tool_result_storage.rs similarity index 100% rename from src/crates/execution/agent-tools/src/tool_result_storage.rs rename to src/crates/execution/tool-contracts/src/tool_result_storage.rs diff --git a/src/crates/execution/agent-tools/tests/tool_contracts.rs b/src/crates/execution/tool-contracts/tests/tool_contracts.rs similarity index 100% rename from src/crates/execution/agent-tools/tests/tool_contracts.rs rename to src/crates/execution/tool-contracts/tests/tool_contracts.rs diff --git a/src/crates/execution/tool-runtime/AGENTS.md b/src/crates/execution/tool-execution/AGENTS.md similarity index 77% rename from src/crates/execution/tool-runtime/AGENTS.md rename to src/crates/execution/tool-execution/AGENTS.md index 09a57af97..38f2f3a29 100644 --- a/src/crates/execution/tool-runtime/AGENTS.md +++ b/src/crates/execution/tool-execution/AGENTS.md @@ -1,6 +1,6 @@ -# tool-runtime Agent Guide +# tool-execution Agent Guide -Scope: this guide applies to `src/crates/execution/tool-runtime`. +Scope: this guide applies to `src/crates/execution/tool-execution`. `tool-runtime` owns low-level reusable tool execution helpers such as filesystem and search utilities. It is not the product tool registry, permission model, or @@ -16,8 +16,9 @@ agent-facing tool surface. - Preserve existing filesystem/search behavior when moving helpers here. Do not change path containment, encoding, cancellation, or result presentation semantics as a side effect of refactoring. -- Provider-neutral contracts belong in `bitfun-agent-tools`; product provider - grouping belongs in `bitfun-tool-packs`. +- Provider-neutral contracts belong in `tool-contracts` (`bitfun-agent-tools`); + product provider grouping belongs in `tool-provider-groups` + (`bitfun-tool-packs`). ## Verification diff --git a/src/crates/execution/tool-runtime/Cargo.toml b/src/crates/execution/tool-execution/Cargo.toml similarity index 100% rename from src/crates/execution/tool-runtime/Cargo.toml rename to src/crates/execution/tool-execution/Cargo.toml diff --git a/src/crates/execution/tool-runtime/src/fs/backend.rs b/src/crates/execution/tool-execution/src/fs/backend.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/fs/backend.rs rename to src/crates/execution/tool-execution/src/fs/backend.rs diff --git a/src/crates/execution/tool-runtime/src/fs/delete_path.rs b/src/crates/execution/tool-execution/src/fs/delete_path.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/fs/delete_path.rs rename to src/crates/execution/tool-execution/src/fs/delete_path.rs diff --git a/src/crates/execution/tool-runtime/src/fs/edit_file.rs b/src/crates/execution/tool-execution/src/fs/edit_file.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/fs/edit_file.rs rename to src/crates/execution/tool-execution/src/fs/edit_file.rs diff --git a/src/crates/execution/tool-runtime/src/fs/list_dir.rs b/src/crates/execution/tool-execution/src/fs/list_dir.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/fs/list_dir.rs rename to src/crates/execution/tool-execution/src/fs/list_dir.rs diff --git a/src/crates/execution/tool-runtime/src/fs/mod.rs b/src/crates/execution/tool-execution/src/fs/mod.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/fs/mod.rs rename to src/crates/execution/tool-execution/src/fs/mod.rs diff --git a/src/crates/execution/tool-runtime/src/fs/read_file.rs b/src/crates/execution/tool-execution/src/fs/read_file.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/fs/read_file.rs rename to src/crates/execution/tool-execution/src/fs/read_file.rs diff --git a/src/crates/execution/tool-runtime/src/fs/write_file.rs b/src/crates/execution/tool-execution/src/fs/write_file.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/fs/write_file.rs rename to src/crates/execution/tool-execution/src/fs/write_file.rs diff --git a/src/crates/execution/tool-runtime/src/lib.rs b/src/crates/execution/tool-execution/src/lib.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/lib.rs rename to src/crates/execution/tool-execution/src/lib.rs diff --git a/src/crates/execution/tool-runtime/src/search/glob_search.rs b/src/crates/execution/tool-execution/src/search/glob_search.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/search/glob_search.rs rename to src/crates/execution/tool-execution/src/search/glob_search.rs diff --git a/src/crates/execution/tool-runtime/src/search/grep_search.rs b/src/crates/execution/tool-execution/src/search/grep_search.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/search/grep_search.rs rename to src/crates/execution/tool-execution/src/search/grep_search.rs diff --git a/src/crates/execution/tool-runtime/src/search/mod.rs b/src/crates/execution/tool-execution/src/search/mod.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/search/mod.rs rename to src/crates/execution/tool-execution/src/search/mod.rs diff --git a/src/crates/execution/tool-runtime/src/util/ansi_cleaner.rs b/src/crates/execution/tool-execution/src/util/ansi_cleaner.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/util/ansi_cleaner.rs rename to src/crates/execution/tool-execution/src/util/ansi_cleaner.rs diff --git a/src/crates/execution/tool-runtime/src/util/mod.rs b/src/crates/execution/tool-execution/src/util/mod.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/util/mod.rs rename to src/crates/execution/tool-execution/src/util/mod.rs diff --git a/src/crates/execution/tool-runtime/src/util/read_line_prefix.rs b/src/crates/execution/tool-execution/src/util/read_line_prefix.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/util/read_line_prefix.rs rename to src/crates/execution/tool-execution/src/util/read_line_prefix.rs diff --git a/src/crates/execution/tool-runtime/src/util/string.rs b/src/crates/execution/tool-execution/src/util/string.rs similarity index 100% rename from src/crates/execution/tool-runtime/src/util/string.rs rename to src/crates/execution/tool-execution/src/util/string.rs diff --git a/src/crates/execution/tool-runtime/tests/tool_io_contracts.rs b/src/crates/execution/tool-execution/tests/tool_io_contracts.rs similarity index 100% rename from src/crates/execution/tool-runtime/tests/tool_io_contracts.rs rename to src/crates/execution/tool-execution/tests/tool_io_contracts.rs diff --git a/src/crates/execution/tool-packs/AGENTS.md b/src/crates/execution/tool-provider-groups/AGENTS.md similarity index 92% rename from src/crates/execution/tool-packs/AGENTS.md rename to src/crates/execution/tool-provider-groups/AGENTS.md index 7c5b89424..f03026d77 100644 --- a/src/crates/execution/tool-packs/AGENTS.md +++ b/src/crates/execution/tool-provider-groups/AGENTS.md @@ -1,6 +1,6 @@ -# tool-packs Agent Guide +# tool-provider-groups Agent Guide -Scope: this guide applies to `src/crates/execution/tool-packs`. +Scope: this guide applies to `src/crates/execution/tool-provider-groups`. `bitfun-tool-packs` owns tool feature-group scaffold metadata, the product tool provider group plan, and provider-group plan selection by id. It does not own diff --git a/src/crates/execution/tool-packs/Cargo.toml b/src/crates/execution/tool-provider-groups/Cargo.toml similarity index 100% rename from src/crates/execution/tool-packs/Cargo.toml rename to src/crates/execution/tool-provider-groups/Cargo.toml diff --git a/src/crates/execution/tool-packs/src/lib.rs b/src/crates/execution/tool-provider-groups/src/lib.rs similarity index 100% rename from src/crates/execution/tool-packs/src/lib.rs rename to src/crates/execution/tool-provider-groups/src/lib.rs diff --git a/src/crates/facade/AGENTS-CN.md b/src/crates/facade/AGENTS-CN.md deleted file mode 100644 index 3048b5ba5..000000000 --- a/src/crates/facade/AGENTS-CN.md +++ /dev/null @@ -1,26 +0,0 @@ -**中文** | [English](AGENTS.md) - -# 门面与产品组装层 - -本层负责面向旧消费者的兼容导出和产品组装。它选择产品能力、交付形态和 provider 注册,并把下层 owner 接线起来。本层不应成为执行原语、服务实现、产品领域策略或协议实现的长期 owner。 - -## 模块 - -| Crate | 职责 | 本地文档 | -|---|---|---| -| `core` | 旧 `bitfun-core` facade、兼容 import 和 product-full 组装 | [AGENTS.md](core/AGENTS.md) | - -## 放置规则 - -- 旧 import 兼容、product-full 接线和 assembly shim 放在这里。 -- 与交付形态或旧 `bitfun-core` 兼容绑定的 provider 选择和注册可以放在这里。 -- 稳定 owner 逻辑应下移到 `contracts`、`execution`、`services`、`product` 或 `integrations`。 -- 保持现有 public import path,除非迁移明确移除它并补充兼容说明和测试。 -- facade 增量应小而可追踪;大块功能增长通常说明 owner 没有充分下移。 - -## 依赖边界 - -- `facade/core` 可以依赖下层 owner 来组装当前产品 runtime。 -- facade 可以依赖低层 integration adapter,但不实现协议序列化、认证、transport 或平台细节。 -- 产品入口型协议 surface 可以调用 facade;低层 integration adapter 不应调用 facade。 -- 避免在 facade 中直接使用宿主 API;Tauri 支持必须保持 feature-gated,并尽可能由 app 或 adapter 拥有。 diff --git a/src/crates/facade/AGENTS.md b/src/crates/facade/AGENTS.md deleted file mode 100644 index 7c81ffb4c..000000000 --- a/src/crates/facade/AGENTS.md +++ /dev/null @@ -1,39 +0,0 @@ -[中文](AGENTS-CN.md) | **English** - -# Facade Layer - -This layer owns compatibility exports and product assembly for legacy consumers. -It chooses product capabilities, delivery profiles, and provider registrations, -then wires lower layers together. It should not become the long-term owner of -new execution primitives, service implementations, product-domain policy, or -integration protocol behavior. - -## Modules - -| Crate | Responsibility | Local doc | -|---|---|---| -| `core` | Legacy `bitfun-core` facade, compatibility imports, and product-full assembly | [AGENTS.md](core/AGENTS.md) | - -## Placement Rules - -- Put old import compatibility, product-full wiring, and assembly shims here. -- Put provider selection and registration here when the decision is tied to a - delivery profile or legacy `bitfun-core` compatibility. -- Move stable owner logic to `contracts`, `execution`, `services`, `product`, or - `integrations` when a lower layer can own it. -- Preserve existing public import paths unless a migration explicitly removes - them with compatibility notes and tests. -- Keep facade additions small and traceable; broad feature growth here is a sign - that ownership has not been pushed down far enough. - -## Dependency Boundaries - -- `facade/core` may depend on lower owner layers to assemble the current product - runtime. -- Facade may depend on integration adapters, but should not implement their - protocol serialization, authentication, transport, or platform details. -- Avoid direct host APIs in facade code; Tauri support must remain feature-gated - and should be owned by app or adapter code when possible. -- Product-facing protocol surfaces may call the facade, but low-level - integration adapters must not. The facade should not absorb protocol - implementation details. diff --git a/src/crates/integrations/AGENTS-CN.md b/src/crates/integrations/AGENTS-CN.md deleted file mode 100644 index c68c8625d..000000000 --- a/src/crates/integrations/AGENTS-CN.md +++ /dev/null @@ -1,26 +0,0 @@ -**中文** | [English](AGENTS.md) - -# 具体适配实现层 - -本层负责低层外部协议、provider、transport 和平台 adapter。依赖 `facade/core` 暴露已组装产品行为的协议入口应放在 `src/crates/surfaces`,不要放在这里。 - -## 模块 - -| Crate | 职责 | 本地文档 | -|---|---|---| -| `ai-adapters` | AI provider DTO 和 provider-facing adapter helper | [AGENTS.md](ai-adapters/AGENTS.md) | -| `api-layer` | 基于 transport 抽象的平台无关 API handler | [AGENTS.md](api-layer/AGENTS.md) | -| `transport` | 跨平台通信 adapter 和 emitter | [AGENTS.md](transport/AGENTS.md) | -| `webdriver` | 内嵌 WebDriver 协议与 runtime 实现 | [AGENTS.md](webdriver/AGENTS.md) | - -## 放置规则 - -- 主要职责是连接 BitFun contract 与外部系统的协议、framework、provider adapter 放在这里。 -- 低层 adapter 可以依赖 contract 或窄 execution facts,不依赖产品组装。 -- 不要把产品策略、可复用服务实现或 agent/tool 编排放入本层。 - -## 依赖边界 - -- integration crate 可依赖 `contracts`、execution facts 和窄 provider 依赖。 -- integration crate 不得依赖 `facade/core`;产品入口型协议适配应移动到 `src/crates/surfaces`。 -- 平台特定依赖应尽可能 optional 或隔离,避免较小交付形态被迫编译无关 adapter。 diff --git a/src/crates/integrations/AGENTS.md b/src/crates/integrations/AGENTS.md deleted file mode 100644 index 251c3ffc4..000000000 --- a/src/crates/integrations/AGENTS.md +++ /dev/null @@ -1,34 +0,0 @@ -[中文](AGENTS-CN.md) | **English** - -# Concrete Provider Adapters Layer - -This layer owns low-level external protocol, provider, transport, and platform -adapters. Protocol surfaces that expose assembled product behavior belong in -`src/crates/surfaces`, not here. - -## Modules - -| Crate | Responsibility | Local doc | -|---|---|---| -| `ai-adapters` | AI provider DTOs and provider-facing adapter helpers | [AGENTS.md](ai-adapters/AGENTS.md) | -| `api-layer` | Platform-agnostic API handlers over transport abstractions | [AGENTS.md](api-layer/AGENTS.md) | -| `transport` | Cross-platform communication adapters and emitters | [AGENTS.md](transport/AGENTS.md) | -| `webdriver` | Embedded WebDriver protocol/runtime implementation | [AGENTS.md](webdriver/AGENTS.md) | - -## Placement Rules - -- Put protocol/framework/provider adapters here when their primary job is to - translate between BitFun contracts and an external system. -- Low-level adapters should depend on contracts or narrow execution facts, not - product assembly. -- Do not place product policy, reusable service implementation, or agent/tool - orchestration here. - -## Dependency Boundaries - -- Integrations may depend on `contracts`, execution facts, and narrowly scoped - provider dependencies. -- Integrations must not depend on `facade/core`; move product-facing protocol - entrypoints to `src/crates/surfaces`. -- Platform-specific dependencies must be optional or isolated when possible so - smaller delivery forms are not forced to compile unrelated adapters. diff --git a/src/crates/interfaces/AGENTS-CN.md b/src/crates/interfaces/AGENTS-CN.md new file mode 100644 index 000000000..5bc291527 --- /dev/null +++ b/src/crates/interfaces/AGENTS-CN.md @@ -0,0 +1,22 @@ +**中文** | [English](AGENTS.md) + +# 接口层 + +本层放置通过外部协议或宿主入口暴露已组装产品行为的 Rust crate。UI 应用和交付宿主仍位于 `src/apps`、`src/web-ui`、`src/mobile-web` 和 `BitFun-Installer`,并优先阅读离代码最近的 `AGENTS.md`。 + +## 模块 + +| Crate | 职责 | 本地文档 | +|---|---|---| +| `acp` | 基于已组装产品 runtime 的 Agent Client Protocol 接口 | [AGENTS.md](acp/AGENTS.md) | + +## 放置规则 + +- 依赖 `assembly/core` 或已组装产品 profile 的协议入口放在这里。 +- transport、协议转换和宿主通信 adapter 放在 `adapters`。 +- OS、filesystem、terminal、MCP、remote、git 等可复用实现放在 `services`。 + +## 依赖边界 + +- interface crate 可以依赖 `assembly/core` 暴露选定交付形态。 +- interface crate 不拥有产品策略、可复用服务、协议传输内部实现或执行原语。 diff --git a/src/crates/interfaces/AGENTS.md b/src/crates/interfaces/AGENTS.md new file mode 100644 index 000000000..cb39fa0d2 --- /dev/null +++ b/src/crates/interfaces/AGENTS.md @@ -0,0 +1,29 @@ +[中文](AGENTS-CN.md) | **English** + +# Interface Layer + +This layer owns Rust protocol or host-facing entrypoints that expose assembled +product behavior. UI apps and delivery hosts remain under `src/apps`, +`src/web-ui`, `src/mobile-web`, and `BitFun-Installer` with their nearest local +`AGENTS.md`. + +## Modules + +| Crate | Responsibility | Local doc | +|---|---|---| +| `acp` | Agent Client Protocol interface over the assembled product runtime | [AGENTS.md](acp/AGENTS.md) | + +## Placement Rules + +- Put protocol entrypoints here when they depend on `assembly/core` or an + assembled product profile. +- Keep transport/protocol adapters in `adapters`. +- Keep reusable OS, filesystem, terminal, MCP, remote, and git implementations + in `services`. + +## Dependency Boundaries + +- Interface crates may depend on `assembly/core` to expose a selected delivery + profile. +- Interface crates must not own product policy, reusable services, protocol + transport internals, or execution primitives. diff --git a/src/crates/surfaces/acp/AGENTS-CN.md b/src/crates/interfaces/acp/AGENTS-CN.md similarity index 95% rename from src/crates/surfaces/acp/AGENTS-CN.md rename to src/crates/interfaces/acp/AGENTS-CN.md index 91d029c6e..557838dcf 100644 --- a/src/crates/surfaces/acp/AGENTS-CN.md +++ b/src/crates/interfaces/acp/AGENTS-CN.md @@ -2,7 +2,7 @@ # ACP 协议入口指南 -适用范围:`src/crates/surfaces/acp`。 +适用范围:`src/crates/interfaces/acp`。 `bitfun-acp` 负责基于已组装产品 runtime 的 Agent Client Protocol 入口与 ACP client 行为。ACP protocol / client 细节留在这里或应用入口 adapter 中;跨层只共享稳定 capability facts。 diff --git a/src/crates/surfaces/acp/AGENTS.md b/src/crates/interfaces/acp/AGENTS.md similarity index 94% rename from src/crates/surfaces/acp/AGENTS.md rename to src/crates/interfaces/acp/AGENTS.md index ff3fcf809..4b082d7fc 100644 --- a/src/crates/surfaces/acp/AGENTS.md +++ b/src/crates/interfaces/acp/AGENTS.md @@ -2,7 +2,7 @@ # ACP Protocol Surface Guide -Scope: this guide applies to `src/crates/surfaces/acp`. +Scope: this guide applies to `src/crates/interfaces/acp`. `bitfun-acp` owns the Agent Client Protocol surface over the assembled product runtime. Keep ACP protocol/client details here or in app-surface adapters; diff --git a/src/crates/surfaces/acp/Cargo.toml b/src/crates/interfaces/acp/Cargo.toml similarity index 86% rename from src/crates/surfaces/acp/Cargo.toml rename to src/crates/interfaces/acp/Cargo.toml index 35b3894a0..35cebf862 100644 --- a/src/crates/surfaces/acp/Cargo.toml +++ b/src/crates/interfaces/acp/Cargo.toml @@ -9,7 +9,7 @@ description = "BitFun Agent Client Protocol surface" name = "bitfun_acp" [dependencies] -bitfun-core = { path = "../../facade/core", default-features = false, features = ["product-full"] } +bitfun-core = { path = "../../assembly/core", default-features = false, features = ["product-full"] } bitfun-events = { path = "../../contracts/events" } agent-client-protocol = { workspace = true } diff --git a/src/crates/surfaces/acp/src/client/builtin_clients.rs b/src/crates/interfaces/acp/src/client/builtin_clients.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/builtin_clients.rs rename to src/crates/interfaces/acp/src/client/builtin_clients.rs diff --git a/src/crates/surfaces/acp/src/client/config.rs b/src/crates/interfaces/acp/src/client/config.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/config.rs rename to src/crates/interfaces/acp/src/client/config.rs diff --git a/src/crates/surfaces/acp/src/client/manager.rs b/src/crates/interfaces/acp/src/client/manager.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/manager.rs rename to src/crates/interfaces/acp/src/client/manager.rs diff --git a/src/crates/surfaces/acp/src/client/mod.rs b/src/crates/interfaces/acp/src/client/mod.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/mod.rs rename to src/crates/interfaces/acp/src/client/mod.rs diff --git a/src/crates/surfaces/acp/src/client/remote_capability_store.rs b/src/crates/interfaces/acp/src/client/remote_capability_store.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/remote_capability_store.rs rename to src/crates/interfaces/acp/src/client/remote_capability_store.rs diff --git a/src/crates/surfaces/acp/src/client/remote_session.rs b/src/crates/interfaces/acp/src/client/remote_session.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/remote_session.rs rename to src/crates/interfaces/acp/src/client/remote_session.rs diff --git a/src/crates/surfaces/acp/src/client/remote_shell.rs b/src/crates/interfaces/acp/src/client/remote_shell.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/remote_shell.rs rename to src/crates/interfaces/acp/src/client/remote_shell.rs diff --git a/src/crates/surfaces/acp/src/client/requirements.rs b/src/crates/interfaces/acp/src/client/requirements.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/requirements.rs rename to src/crates/interfaces/acp/src/client/requirements.rs diff --git a/src/crates/surfaces/acp/src/client/session_options.rs b/src/crates/interfaces/acp/src/client/session_options.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/session_options.rs rename to src/crates/interfaces/acp/src/client/session_options.rs diff --git a/src/crates/surfaces/acp/src/client/session_persistence.rs b/src/crates/interfaces/acp/src/client/session_persistence.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/session_persistence.rs rename to src/crates/interfaces/acp/src/client/session_persistence.rs diff --git a/src/crates/surfaces/acp/src/client/stream.rs b/src/crates/interfaces/acp/src/client/stream.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/stream.rs rename to src/crates/interfaces/acp/src/client/stream.rs diff --git a/src/crates/surfaces/acp/src/client/tool.rs b/src/crates/interfaces/acp/src/client/tool.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/tool.rs rename to src/crates/interfaces/acp/src/client/tool.rs diff --git a/src/crates/surfaces/acp/src/client/tool_card_bridge/mod.rs b/src/crates/interfaces/acp/src/client/tool_card_bridge/mod.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/tool_card_bridge/mod.rs rename to src/crates/interfaces/acp/src/client/tool_card_bridge/mod.rs diff --git a/src/crates/surfaces/acp/src/client/tool_card_bridge/tool_name.rs b/src/crates/interfaces/acp/src/client/tool_card_bridge/tool_name.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/tool_card_bridge/tool_name.rs rename to src/crates/interfaces/acp/src/client/tool_card_bridge/tool_name.rs diff --git a/src/crates/surfaces/acp/src/client/tool_card_bridge/tool_params.rs b/src/crates/interfaces/acp/src/client/tool_card_bridge/tool_params.rs similarity index 100% rename from src/crates/surfaces/acp/src/client/tool_card_bridge/tool_params.rs rename to src/crates/interfaces/acp/src/client/tool_card_bridge/tool_params.rs diff --git a/src/crates/surfaces/acp/src/lib.rs b/src/crates/interfaces/acp/src/lib.rs similarity index 100% rename from src/crates/surfaces/acp/src/lib.rs rename to src/crates/interfaces/acp/src/lib.rs diff --git a/src/crates/surfaces/acp/src/runtime.rs b/src/crates/interfaces/acp/src/runtime.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime.rs rename to src/crates/interfaces/acp/src/runtime.rs diff --git a/src/crates/surfaces/acp/src/runtime/content.rs b/src/crates/interfaces/acp/src/runtime/content.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime/content.rs rename to src/crates/interfaces/acp/src/runtime/content.rs diff --git a/src/crates/surfaces/acp/src/runtime/events.rs b/src/crates/interfaces/acp/src/runtime/events.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime/events.rs rename to src/crates/interfaces/acp/src/runtime/events.rs diff --git a/src/crates/surfaces/acp/src/runtime/mcp.rs b/src/crates/interfaces/acp/src/runtime/mcp.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime/mcp.rs rename to src/crates/interfaces/acp/src/runtime/mcp.rs diff --git a/src/crates/surfaces/acp/src/runtime/model.rs b/src/crates/interfaces/acp/src/runtime/model.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime/model.rs rename to src/crates/interfaces/acp/src/runtime/model.rs diff --git a/src/crates/surfaces/acp/src/runtime/prompt.rs b/src/crates/interfaces/acp/src/runtime/prompt.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime/prompt.rs rename to src/crates/interfaces/acp/src/runtime/prompt.rs diff --git a/src/crates/surfaces/acp/src/runtime/session.rs b/src/crates/interfaces/acp/src/runtime/session.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime/session.rs rename to src/crates/interfaces/acp/src/runtime/session.rs diff --git a/src/crates/surfaces/acp/src/runtime/thinking.rs b/src/crates/interfaces/acp/src/runtime/thinking.rs similarity index 100% rename from src/crates/surfaces/acp/src/runtime/thinking.rs rename to src/crates/interfaces/acp/src/runtime/thinking.rs diff --git a/src/crates/surfaces/acp/src/server.rs b/src/crates/interfaces/acp/src/server.rs similarity index 100% rename from src/crates/surfaces/acp/src/server.rs rename to src/crates/interfaces/acp/src/server.rs diff --git a/src/crates/product/AGENTS-CN.md b/src/crates/product/AGENTS-CN.md deleted file mode 100644 index 576c311ac..000000000 --- a/src/crates/product/AGENTS-CN.md +++ /dev/null @@ -1,25 +0,0 @@ -**中文** | [English](AGENTS.md) - -# 产品层 - -本层负责不绑定 UI 形态、应用进程、外部协议或平台 adapter 的产品领域事实和能力组装信息。 - -## 模块 - -| Crate | 职责 | 本地文档 | -|---|---|---| -| `product-domains` | MiniApp、function-agent 等产品领域契约 | [AGENTS.md](product-domains/AGENTS.md) | -| `product-capabilities` | Capability packs、delivery-profile facts、tool provider groups 和 harness registry facts | [AGENTS.md](product-capabilities/AGENTS.md) | - -## 放置规则 - -- 被多个交付形态共享的产品概念、capability facts 和领域策略放到这里。 -- UI 文案、route state、协议 adapter、Tauri command、OS 服务实现不要进入 product crate。 -- Product capabilities 可以描述所需 runtime services 和 tool packs,但不实例化具体 service implementation。 -- 产品规则需要平台数据时,应依赖 contract 或 service API;不要在 product code 中直接读取 host state。 - -## 依赖边界 - -- Product crate 可以依赖 `contracts` 和用于描述能力的少量 `runtime` facts。 -- Product crate 不得依赖 `facade/core`、`src/apps`、前端代码或 Tauri。 -- 除非 product crate 拥有 service 所需的领域类型,否则避免依赖 `services`;具体行为优先留在 services。 diff --git a/src/crates/product/AGENTS.md b/src/crates/product/AGENTS.md deleted file mode 100644 index fdc9bc529..000000000 --- a/src/crates/product/AGENTS.md +++ /dev/null @@ -1,33 +0,0 @@ -[中文](AGENTS-CN.md) | **English** - -# Product Layer - -This layer owns product-domain facts and capability composition that are not tied -to a UI surface, app process, external protocol, or platform adapter. - -## Modules - -| Crate | Responsibility | Local doc | -|---|---|---| -| `product-domains` | Product-owned domains such as MiniApp and function-agent domain contracts | [AGENTS.md](product-domains/AGENTS.md) | -| `product-capabilities` | Capability packs, delivery-profile facts, tool provider groups, and harness registry facts | [AGENTS.md](product-capabilities/AGENTS.md) | - -## Placement Rules - -- Put product concepts, capability facts, and domain policies here when they are - shared by multiple delivery forms. -- Keep UI copy, route state, protocol adapters, Tauri commands, and OS service - implementations out of product crates. -- Product capabilities may describe required runtime services and tool packs, - but should not instantiate concrete service implementations. -- When a product rule needs platform data, depend on a contract or service API; - do not directly read host state from product code. - -## Dependency Boundaries - -- Product crates may depend on `contracts` and selected `runtime` facts needed - to describe capabilities. -- Product crates must not depend on `facade/core`, `src/apps`, frontend code, or - Tauri. -- Avoid dependencies on `services` unless the product crate owns the domain type - required by that service; prefer keeping concrete behavior in services. diff --git a/src/crates/services/AGENTS-CN.md b/src/crates/services/AGENTS-CN.md index 1ebd04803..4a0b9d068 100644 --- a/src/crates/services/AGENTS-CN.md +++ b/src/crates/services/AGENTS-CN.md @@ -1,27 +1,25 @@ **中文** | [English](AGENTS.md) -# 服务层 +# 服务实现层 -本层负责可复用的非 UI 服务实现和服务 adapter:filesystem、git、process/system、diagnostics、terminal、MCP、remote 以及持久化相关能力。通用服务应通过窄 API 或 port 被调用,而不是通过产品 facade 泄漏。产品特定 adapter 可以实现产品领域 port,但不得拥有产品策略。 +本层负责接触本地系统或 runtime infrastructure 的可复用具体实现:filesystem、git、file watch、terminal、MCP、remote connectivity、process lifecycle 以及类似 OS/network 能力。 ## 模块 | Crate | 职责 | 本地文档 | |---|---|---| -| `services-core` | filesystem、diff、diagnostics、session usage、token usage、system、process 等核心可复用服务 | [AGENTS.md](services-core/AGENTS.md) | -| `services-integrations` | announcement、file watch、function agents、git、MCP、remote connect、remote SSH 等具体集成服务 | [AGENTS.md](services-integrations/AGENTS.md) | -| `terminal` | Terminal API、PTY、shell integration 和 persistent terminal sessions | [AGENTS.md](terminal/AGENTS.md) | +| `services-core` | 不包含产品组装决策的本地 service primitive | [AGENTS.md](services-core/AGENTS.md) | +| `services-integrations` | MCP、git、remote、file watch 与产品领域 port 的具体实现 | [AGENTS.md](services-integrations/AGENTS.md) | +| `terminal` | PTY、shell integration 与 terminal session infrastructure | [AGENTS.md](terminal/AGENTS.md) | ## 放置规则 -- 可被多个产品或 runtime 路径复用的具体 host/service 行为放到这里。 -- UI 状态、产品 feature 选择和交付组装不要进入本层。 -- 优先提供小而清晰的 service API,不要做混合多种职责的大 manager。 -- 依赖平台能力的行为要通过 service module 或 feature gate 隔离。 +- 具体 OS、process、filesystem、git、terminal、MCP、remote SSH、file watch 和 network service 实现放在这里。 +- 需要具体依赖的 `contracts`、`execution` 或 `contracts/product-domains` port 实现在这里。 +- 协议/transport projection 放在 `adapters`,产品能力选择放在 `assembly`。 ## 依赖边界 -- 通用 service crate 不应依赖产品 crate。 -- service adapter 只有在 feature gate 后实现产品层定义的窄 port/DTO 时,才允许依赖 `product-domains`。当前例子是 `services-integrations` 为 `product-domains` function-agent ports 实现 Git snapshot。不要把这个例外扩展成 service 拥有产品策略。 -- Services 不得依赖 `facade/core`、`src/apps`、前端代码或 Tauri `AppHandle`。 -- Remote 和平台支持必须通过 typed service error 或明确 unsupported-state 处理失败,不要泛化成字符串错误。 +- Services 可以依赖 `contracts`,实现 runtime port 时可以窄依赖 provider-neutral 的 `execution` crate。 +- Services 不得依赖 `assembly/core`、interface crate、产品 UI 或 app command handler。 +- Service 之间直接依赖必须保持窄边界;可复用契约应下沉到 `contracts` 或 `execution`,避免形成大范围耦合。 diff --git a/src/crates/services/AGENTS.md b/src/crates/services/AGENTS.md index 7417afcbc..fb607c517 100644 --- a/src/crates/services/AGENTS.md +++ b/src/crates/services/AGENTS.md @@ -1,40 +1,33 @@ [中文](AGENTS-CN.md) | **English** -# Services Layer +# Service Layer -This layer owns reusable non-UI service implementations and service adapters: -filesystem, git, process/system, diagnostics, terminal, MCP, remote, and -persistence-adjacent capabilities. Generic services should be callable through -narrow APIs or ports rather than through product facades. Product-specific -adapters may implement product-domain ports, but must not own product policy. +This layer owns reusable concrete implementations that touch local systems or +runtime infrastructure: filesystem, git, file watch, terminal, MCP, remote +connectivity, process lifecycle, and similar OS/network capabilities. ## Modules | Crate | Responsibility | Local doc | |---|---|---| -| `services-core` | Core reusable services for filesystem, diff, diagnostics, session usage, token usage, system, and process concerns | [AGENTS.md](services-core/AGENTS.md) | -| `services-integrations` | Concrete integrations for announcement, file watch, function agents, git, MCP, remote connect, and remote SSH | [AGENTS.md](services-integrations/AGENTS.md) | -| `terminal` | Terminal API, PTY, shell integration, and persistent terminal sessions | [AGENTS.md](terminal/AGENTS.md) | +| `services-core` | Reusable local service primitives without product assembly decisions | [AGENTS.md](services-core/AGENTS.md) | +| `services-integrations` | Concrete MCP, git, remote, file-watch, and product-domain port implementations | [AGENTS.md](services-integrations/AGENTS.md) | +| `terminal` | PTY, shell integration, and terminal session infrastructure | [AGENTS.md](terminal/AGENTS.md) | ## Placement Rules -- Put concrete host/service behavior here when it is reusable by more than one - product or runtime path. -- Keep UI state, product feature selection, and delivery assembly out of this - layer. -- Prefer small service APIs over broad managers that mix unrelated concerns. -- If behavior depends on platform capabilities, isolate those details behind a - service module or feature gate. +- Put concrete OS, process, filesystem, git, terminal, MCP, remote SSH, + file-watch, and network service implementations here. +- Implement `contracts`, `execution`, or `contracts/product-domains` ports here + when the implementation needs concrete dependencies. +- Keep protocol/transport projection in `adapters`, and keep product capability + selection in `assembly`. ## Dependency Boundaries -- Generic service crates should not depend on product crates. -- A service adapter may depend on narrowly scoped `product-domains` port/DTO - types only when it implements a product-owned port behind a feature gate. - Current example: `services-integrations` implements function-agent Git - snapshots for `product-domains` function-agent ports. Do not generalize this - into service-owned product policy. -- Services must not depend on `facade/core`, `src/apps`, frontend code, or - Tauri `AppHandle`. -- Remote and platform support must fail through typed service errors or clear - unsupported-state handling, not generic string failures. +- Services may depend on `contracts` and narrowly on provider-neutral execution + crates when implementing runtime ports. +- Services must not depend on `assembly/core`, interface crates, product UI code, + or app command handlers. +- Service-to-service dependencies must stay narrow; reusable contracts should + move to `contracts` or `execution` instead of creating broad coupling. diff --git a/src/crates/services/services-integrations/Cargo.toml b/src/crates/services/services-integrations/Cargo.toml index f9b81408c..5c47f45b8 100644 --- a/src/crates/services/services-integrations/Cargo.toml +++ b/src/crates/services/services-integrations/Cargo.toml @@ -15,7 +15,7 @@ serde = { workspace = true } serde_json = { workspace = true } log = { workspace = true } bitfun-events = { path = "../../contracts/events" } -bitfun-product-domains = { path = "../../product/product-domains", default-features = false, optional = true } +bitfun-product-domains = { path = "../../contracts/product-domains", default-features = false, optional = true } bitfun-runtime-ports = { path = "../../contracts/runtime-ports", optional = true } aes-gcm = { workspace = true, optional = true } anyhow = { workspace = true, optional = true } diff --git a/src/crates/surfaces/AGENTS-CN.md b/src/crates/surfaces/AGENTS-CN.md deleted file mode 100644 index 7d0840ed8..000000000 --- a/src/crates/surfaces/AGENTS-CN.md +++ /dev/null @@ -1,22 +0,0 @@ -**中文** | [English](AGENTS.md) - -# 产品入口层 - -本层放置通过外部协议或宿主入口暴露已组装产品行为的 Rust crate。UI 应用和交付宿主仍优先阅读离代码最近的 `AGENTS.md`。 - -## 模块 - -| Crate | 职责 | 本地文档 | -|---|---|---| -| `acp` | 基于已组装产品 runtime 的 Agent Client Protocol 入口 | [AGENTS.md](acp/AGENTS.md) | - -## 放置规则 - -- 依赖 `facade/core` 或产品组装计划的协议入口放在这里。 -- provider DTO、transport emitter、平台 adapter 等低层适配留在 `integrations`。 -- 可复用服务实现留在 `services`。 - -## 依赖边界 - -- surface crate 可以依赖 `facade/core` 暴露选定交付形态。 -- surface crate 不拥有产品策略、可复用服务或执行原语。 diff --git a/src/crates/surfaces/AGENTS.md b/src/crates/surfaces/AGENTS.md deleted file mode 100644 index 192c24049..000000000 --- a/src/crates/surfaces/AGENTS.md +++ /dev/null @@ -1,28 +0,0 @@ -[中文](AGENTS-CN.md) | **English** - -# Product Surfaces Layer - -This layer owns Rust crates that expose assembled product behavior through an -external protocol or host-facing entrypoint. UI apps and delivery hosts still -keep their nearest local `AGENTS.md`. - -## Modules - -| Crate | Responsibility | Local doc | -|---|---|---| -| `acp` | Agent Client Protocol surface over the assembled product runtime | [AGENTS.md](acp/AGENTS.md) | - -## Placement Rules - -- Put protocol entrypoints here when they depend on `facade/core` or a product - assembly plan. -- Keep low-level provider DTOs, transport emitters, and platform adapters in - `integrations`. -- Keep reusable service implementations in `services`. - -## Dependency Boundaries - -- Surface crates may depend on `facade/core` to expose a selected delivery - profile. -- Surface crates must not become owners of product policy, reusable services, or - execution primitives. diff --git a/src/shared/i18n/contract/locales.json b/src/shared/i18n/contract/locales.json index bca9e21b5..d02837dcd 100644 --- a/src/shared/i18n/contract/locales.json +++ b/src/shared/i18n/contract/locales.json @@ -48,7 +48,7 @@ "loading": "surface-minimal" }, "core": { - "resourceRoot": "src/crates/facade/core/locales", + "resourceRoot": "src/crates/assembly/core/locales", "loading": "backend-service" }, "relay-static-homepage": { diff --git a/src/web-ui/src/flow_chat/components/DeepReviewConsentDialog.test.tsx b/src/web-ui/src/flow_chat/components/DeepReviewConsentDialog.test.tsx index 1580de41a..dd8926447 100644 --- a/src/web-ui/src/flow_chat/components/DeepReviewConsentDialog.test.tsx +++ b/src/web-ui/src/flow_chat/components/DeepReviewConsentDialog.test.tsx @@ -112,7 +112,7 @@ function buildPreview(): ReviewTeamRunManifest { source: 'session_files', resolution: 'resolved', tags: ['backend_core'], - files: ['src/crates/facade/core/src/service/config/types.rs'], + files: ['src/crates/assembly/core/src/service/config/types.rs'], warnings: [], }, strategyLevel: 'normal', diff --git a/src/web-ui/src/flow_chat/deep-review/AGENTS.md b/src/web-ui/src/flow_chat/deep-review/AGENTS.md index 7aad38184..bcf4875ec 100644 --- a/src/web-ui/src/flow_chat/deep-review/AGENTS.md +++ b/src/web-ui/src/flow_chat/deep-review/AGENTS.md @@ -21,4 +21,4 @@ This file applies to DeepReview launch, report, queue, and action UI code. Use the nearest focused Web UI test or `pnpm run type-check:web`. If the change updates manifest, queue, retry, or report contracts, also run the matching core -DeepReview check from `src/crates/facade/core/src/agentic/deep_review/AGENTS.md`. +DeepReview check from `src/crates/assembly/core/src/agentic/deep_review/AGENTS.md`. diff --git a/src/web-ui/src/flow_chat/deep-review/launch/commandParser.test.ts b/src/web-ui/src/flow_chat/deep-review/launch/commandParser.test.ts index 7bfa37201..e9ef396d0 100644 --- a/src/web-ui/src/flow_chat/deep-review/launch/commandParser.test.ts +++ b/src/web-ui/src/flow_chat/deep-review/launch/commandParser.test.ts @@ -28,11 +28,11 @@ describe('Deep Review launch command parser', () => { it('extracts explicit review file paths once and ignores prose tokens', () => { expect( extractExplicitReviewFilePaths( - 'please inspect `src/web-ui/src/App.tsx`, src/web-ui/src/App.tsx and src/crates/facade/core/src/lib.rs for risk', + 'please inspect `src/web-ui/src/App.tsx`, src/web-ui/src/App.tsx and src/crates/assembly/core/src/lib.rs for risk', ), ).toEqual([ 'src/web-ui/src/App.tsx', - 'src/crates/facade/core/src/lib.rs', + 'src/crates/assembly/core/src/lib.rs', ]); }); diff --git a/src/web-ui/src/flow_chat/deep-review/launch/targetResolver.test.ts b/src/web-ui/src/flow_chat/deep-review/launch/targetResolver.test.ts index 3b401210a..a8fc8446c 100644 --- a/src/web-ui/src/flow_chat/deep-review/launch/targetResolver.test.ts +++ b/src/web-ui/src/flow_chat/deep-review/launch/targetResolver.test.ts @@ -46,7 +46,7 @@ describe('Deep Review target resolver', () => { it('resolves explicit file targets before reading git state', async () => { const result = await resolveSlashCommandReviewTarget( - 'src/web-ui/src/App.tsx src/crates/facade/core/src/lib.rs for regressions', + 'src/web-ui/src/App.tsx src/crates/assembly/core/src/lib.rs for regressions', 'D:\\workspace\\repo', ); diff --git a/src/web-ui/src/flow_chat/services/DeepReviewService.test.ts b/src/web-ui/src/flow_chat/services/DeepReviewService.test.ts index 4d80b9af6..05153b614 100644 --- a/src/web-ui/src/flow_chat/services/DeepReviewService.test.ts +++ b/src/web-ui/src/flow_chat/services/DeepReviewService.test.ts @@ -119,7 +119,7 @@ describe('DeepReviewService slash command', () => { it('classifies explicit slash-command file paths before building the review team manifest', async () => { await buildDeepReviewPromptFromSlashCommand( - '/DeepReview src/web-ui/src/App.tsx src/crates/facade/core/src/service/config/types.rs for regressions', + '/DeepReview src/web-ui/src/App.tsx src/crates/assembly/core/src/service/config/types.rs for regressions', 'D:\\workspace\\repo', ); @@ -139,7 +139,7 @@ describe('DeepReviewService slash command', () => { it('classifies workspace diff files for a slash command without an explicit target', async () => { mockGitGetStatus.mockResolvedValueOnce({ staged: [{ path: 'src/web-ui/src/App.tsx', status: 'modified' }], - unstaged: [{ path: 'src/crates/facade/core/src/service/config/types.rs', status: 'modified' }], + unstaged: [{ path: 'src/crates/assembly/core/src/service/config/types.rs', status: 'modified' }], untracked: ['src/web-ui/src/newFeature.tsx'], conflicts: [], current_branch: 'main', @@ -169,7 +169,7 @@ describe('DeepReviewService slash command', () => { it('passes workspace diff line stats into the review manifest', async () => { mockGitGetStatus.mockResolvedValueOnce({ staged: [{ path: 'src/web-ui/src/App.tsx', status: 'modified' }], - unstaged: [{ path: 'src/crates/facade/core/src/service/config/types.rs', status: 'modified' }], + unstaged: [{ path: 'src/crates/assembly/core/src/service/config/types.rs', status: 'modified' }], untracked: [], conflicts: [], current_branch: 'main', @@ -177,7 +177,7 @@ describe('DeepReviewService slash command', () => { behind: 0, }); mockGitGetDiff.mockResolvedValueOnce([ - 'diff --git a/src/crates/facade/core/src/service/config/types.rs b/src/crates/facade/core/src/service/config/types.rs', + 'diff --git a/src/crates/assembly/core/src/service/config/types.rs b/src/crates/assembly/core/src/service/config/types.rs', '@@ -1,2 +1,3 @@', '-old core line', '+new core line', @@ -368,7 +368,7 @@ describe('DeepReviewService slash command', () => { it('classifies explicit ref ranges through the git changed-files API', async () => { mockGitGetChangedFiles.mockResolvedValueOnce([ { - path: 'src/crates/facade/core/src/service/config/types.rs', + path: 'src/crates/assembly/core/src/service/config/types.rs', old_path: undefined, status: 'modified', }, @@ -453,7 +453,7 @@ describe('DeepReviewService slash command', () => { vi.mocked(buildEffectiveReviewTeamManifest).mockReturnValueOnce(runManifest as any); const result = await buildDeepReviewPreviewFromSessionFiles( - ['src/crates/facade/core/src/service/config/types.rs'], + ['src/crates/assembly/core/src/service/config/types.rs'], 'D:\\workspace\\repo', ); diff --git a/src/web-ui/src/flow_chat/utils/deepReviewContinuation.test.ts b/src/web-ui/src/flow_chat/utils/deepReviewContinuation.test.ts index 91778cc61..c422c5ec2 100644 --- a/src/web-ui/src/flow_chat/utils/deepReviewContinuation.test.ts +++ b/src/web-ui/src/flow_chat/utils/deepReviewContinuation.test.ts @@ -248,7 +248,7 @@ describe('deepReviewContinuation', () => { status: 'error', userMessage: { id: 'user-1', - content: 'Run a deep review for src/crates/facade/core/src/lib.rs', + content: 'Run a deep review for src/crates/assembly/core/src/lib.rs', timestamp: 1, }, startTime: 1, diff --git a/src/web-ui/src/shared/services/review-team/pathMetadata.test.ts b/src/web-ui/src/shared/services/review-team/pathMetadata.test.ts index ee747a854..fcbc8ef51 100644 --- a/src/web-ui/src/shared/services/review-team/pathMetadata.test.ts +++ b/src/web-ui/src/shared/services/review-team/pathMetadata.test.ts @@ -7,10 +7,22 @@ describe('review-team path metadata', () => { 'src/crates/execution/agent-runtime/src/lib.rs', )).toBe('crate:agent-runtime'); expect(workspaceAreaForReviewPath( - 'src/crates/execution/agent-tools/src/lib.rs', - )).toBe('crate:agent-tools'); + 'src/crates/execution/tool-contracts/src/lib.rs', + )).toBe('crate:tool-contracts'); expect(workspaceAreaForReviewPath( - 'src/crates/facade/core/src/lib.rs', + 'src/crates/assembly/core/src/lib.rs', )).toBe('crate:core'); + expect(workspaceAreaForReviewPath( + 'src/crates/services/services-core/src/lib.rs', + )).toBe('crate:services-core'); + expect(workspaceAreaForReviewPath( + 'src/crates/adapters/api-layer/src/lib.rs', + )).toBe('crate:api-layer'); + expect(workspaceAreaForReviewPath( + 'src/crates/interfaces/acp/src/lib.rs', + )).toBe('crate:acp'); + expect(workspaceAreaForReviewPath( + 'src/crates/contracts/product-domains/src/lib.rs', + )).toBe('crate:product-domains'); }); }); diff --git a/src/web-ui/src/shared/services/review-team/pathMetadata.ts b/src/web-ui/src/shared/services/review-team/pathMetadata.ts index e0dc0942f..3583c1998 100644 --- a/src/web-ui/src/shared/services/review-team/pathMetadata.ts +++ b/src/web-ui/src/shared/services/review-team/pathMetadata.ts @@ -7,11 +7,10 @@ const SECURITY_SENSITIVE_PATH_PATTERN = /(^|[/._-])(auth|oauth|crypto|security|permission|permissions|secret|secrets|token|tokens|credential|credentials)([/._-]|$)/; const LAYERED_CRATE_ROOTS = new Set([ - 'surfaces', - 'facade', - 'integrations', + 'interfaces', + 'assembly', + 'adapters', 'services', - 'product', 'execution', 'contracts', ]); diff --git a/src/web-ui/src/shared/services/review-team/risk.test.ts b/src/web-ui/src/shared/services/review-team/risk.test.ts index 568c37a3c..3f05b6cc0 100644 --- a/src/web-ui/src/shared/services/review-team/risk.test.ts +++ b/src/web-ui/src/shared/services/review-team/risk.test.ts @@ -7,7 +7,26 @@ describe('review-team risk recommendation', () => { const target = classifyReviewTargetFromFiles( [ 'src/crates/execution/agent-runtime/src/lib.rs', - 'src/crates/execution/agent-tools/src/lib.rs', + 'src/crates/execution/tool-contracts/src/lib.rs', + ], + 'workspace_diff', + ); + + const recommendation = recommendBackendCompatibleStrategyForTarget(target, { + fileCount: 2, + totalLinesChanged: 40, + lineCountSource: 'diff_stat', + }); + + expect(recommendation.factors.crossCrateChanges).toBe(1); + expect(recommendation.score).toBe(4); + }); + + it('does not collapse service and adapter crates into one risk area', () => { + const target = classifyReviewTargetFromFiles( + [ + 'src/crates/services/services-core/src/lib.rs', + 'src/crates/adapters/api-layer/src/lib.rs', ], 'workspace_diff', ); diff --git a/src/web-ui/src/shared/services/reviewTargetClassifier.test.ts b/src/web-ui/src/shared/services/reviewTargetClassifier.test.ts index 2f704ac6f..ba31497d6 100644 --- a/src/web-ui/src/shared/services/reviewTargetClassifier.test.ts +++ b/src/web-ui/src/shared/services/reviewTargetClassifier.test.ts @@ -45,7 +45,7 @@ describe('reviewTargetClassifier', () => { it('classifies backend core files without frontend tags', () => { const target = classifyReviewTargetFromFiles( - ['src/crates/facade/core/src/service/config/types.rs'], + ['src/crates/assembly/core/src/service/config/types.rs'], 'session_files', ); @@ -58,11 +58,11 @@ describe('reviewTargetClassifier', () => { [ 'src/crates/contracts/runtime-ports/src/lib.rs', 'src/crates/execution/agent-runtime/src/lib.rs', - 'src/crates/execution/agent-tools/src/lib.rs', + 'src/crates/execution/tool-contracts/src/lib.rs', 'src/crates/services/services-core/src/lib.rs', - 'src/crates/product/product-capabilities/src/lib.rs', - 'src/crates/surfaces/acp/src/lib.rs', - 'src/crates/integrations/webdriver/src/lib.rs', + 'src/crates/assembly/product-capabilities/src/lib.rs', + 'src/crates/interfaces/acp/src/lib.rs', + 'src/crates/adapters/webdriver/src/lib.rs', ], 'session_files', ); @@ -74,7 +74,7 @@ describe('reviewTargetClassifier', () => { expect(target.tags).not.toContain('unknown'); expect(target.files.every((file) => !file.tags.includes('unknown'))).toBe(true); expect(target.files.find((file) => - file.normalizedPath === 'src/crates/surfaces/acp/src/lib.rs', + file.normalizedPath === 'src/crates/interfaces/acp/src/lib.rs', )?.tags).toEqual(expect.arrayContaining(['backend_core', 'transport'])); }); @@ -82,7 +82,7 @@ describe('reviewTargetClassifier', () => { const target = classifyReviewTargetFromFiles( [ 'src/web-ui/src/locales/zh-TW/flow-chat.json', - 'src/crates/facade/core/locales/zh-TW.ftl', + 'src/crates/assembly/core/locales/zh-TW.ftl', 'BitFun-Installer/src/i18n/locales/zh-TW.json', ], 'session_files', @@ -125,7 +125,7 @@ describe('reviewTargetClassifier', () => { it('evaluates conditional reviewer applicability from registry tags', () => { const backendTarget = classifyReviewTargetFromFiles( - ['src/crates/facade/core/src/service/config/types.rs'], + ['src/crates/assembly/core/src/service/config/types.rs'], 'session_files', ); const frontendTarget = classifyReviewTargetFromFiles( diff --git a/src/web-ui/src/shared/services/reviewTargetClassifier.ts b/src/web-ui/src/shared/services/reviewTargetClassifier.ts index 7b81ef957..057b73115 100644 --- a/src/web-ui/src/shared/services/reviewTargetClassifier.ts +++ b/src/web-ui/src/shared/services/reviewTargetClassifier.ts @@ -93,13 +93,12 @@ const REVIEWER_APPLICABILITY_RULES: ReviewerApplicabilityRule[] = [ ]; const LAYERED_BACKEND_CRATE_PREFIXES = [ - 'src/crates/surfaces/acp/', - 'src/crates/facade/', - 'src/crates/integrations/webdriver/', + 'src/crates/interfaces/acp/', + 'src/crates/assembly/', + 'src/crates/adapters/', + 'src/crates/services/', 'src/crates/contracts/', 'src/crates/execution/', - 'src/crates/services/', - 'src/crates/product/', ]; export function getReviewerApplicabilityRule( @@ -132,7 +131,7 @@ const PATH_TAG_RULES: PathTagRule[] = [ { id: 'core-locales', tags: ['frontend_i18n'], - match: { pathPrefixes: ['src/crates/facade/core/locales/'], extensions: ['.ftl'] }, + match: { pathPrefixes: ['src/crates/assembly/core/locales/'], extensions: ['.ftl'] }, evidence: 'Core locale file changed', }, { @@ -168,7 +167,7 @@ const PATH_TAG_RULES: PathTagRule[] = [ { id: 'api-layer-contract', tags: ['api_layer', 'frontend_contract'], - match: { pathPrefixes: ['src/crates/integrations/api-layer/'] }, + match: { pathPrefixes: ['src/crates/adapters/api-layer/'] }, evidence: 'API layer may affect frontend/backend contract', }, { @@ -180,13 +179,13 @@ const PATH_TAG_RULES: PathTagRule[] = [ { id: 'transport', tags: ['transport'], - match: { pathPrefixes: ['src/crates/integrations/transport/'] }, + match: { pathPrefixes: ['src/crates/adapters/transport/'] }, evidence: 'Transport layer changed', }, { id: 'acp-surface', tags: ['backend_core', 'transport'], - match: { pathPrefixes: ['src/crates/surfaces/acp/'] }, + match: { pathPrefixes: ['src/crates/interfaces/acp/'] }, evidence: 'ACP protocol surface changed', }, { @@ -198,13 +197,13 @@ const PATH_TAG_RULES: PathTagRule[] = [ { id: 'core', tags: ['backend_core'], - match: { pathPrefixes: ['src/crates/facade/core/'] }, + match: { pathPrefixes: ['src/crates/assembly/core/'] }, evidence: 'Core product logic changed', }, { id: 'ai-adapter', tags: ['ai_adapter'], - match: { pathPrefixes: ['src/crates/integrations/ai-adapters/'] }, + match: { pathPrefixes: ['src/crates/adapters/ai-adapters/'] }, evidence: 'AI adapter changed', }, { diff --git a/src/web-ui/src/shared/services/reviewTeamService.test.ts b/src/web-ui/src/shared/services/reviewTeamService.test.ts index 746e14949..9ef8fcf2a 100644 --- a/src/web-ui/src/shared/services/reviewTeamService.test.ts +++ b/src/web-ui/src/shared/services/reviewTeamService.test.ts @@ -728,7 +728,7 @@ describe('reviewTeamService', () => { storedConfigWithExtra([], { strategy_level: 'quick' }), ); const files = [ - 'src/crates/facade/core/src/agentic/deep_review/report.rs', + 'src/crates/assembly/core/src/agentic/deep_review/report.rs', 'src/apps/desktop/src/api/agentic_api.rs', 'src/web-ui/src/app/scenes/agents/components/ReviewTeamPage.tsx', ]; @@ -846,7 +846,7 @@ describe('reviewTeamService', () => { const target = classifyReviewTargetFromFiles( [ 'src/web-ui/src/locales/zh-TW/flow-chat.json', - 'src/crates/facade/core/locales/zh-TW.ftl', + 'src/crates/assembly/core/locales/zh-TW.ftl', 'BitFun-Installer/src/i18n/locales/zh-TW.json', ], 'session_files', @@ -897,8 +897,8 @@ describe('reviewTeamService', () => { 'src/web-ui/src/shared/services/reviewTeamService.ts', 'src/web-ui/src/app/scenes/agents/components/ReviewTeamPage.tsx', 'src/web-ui/src/locales/en-US/scenes/agents.json', - 'src/crates/facade/core/src/agentic/deep_review_policy.rs', - 'src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs', + 'src/crates/assembly/core/src/agentic/deep_review_policy.rs', + 'src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs', ], 'session_files', ); @@ -930,8 +930,8 @@ describe('reviewTeamService', () => { key: 'crate:core', fileCount: 2, sampleFiles: [ - 'src/crates/facade/core/src/agentic/deep_review_policy.rs', - 'src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs', + 'src/crates/assembly/core/src/agentic/deep_review_policy.rs', + 'src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs', ], }, ], @@ -954,7 +954,7 @@ describe('reviewTeamService', () => { const target = classifyReviewTargetFromFiles( [ 'src/web-ui/src/shared/services/reviewTeamService.ts', - 'src/crates/facade/core/src/agentic/deep_review_policy.rs', + 'src/crates/assembly/core/src/agentic/deep_review_policy.rs', ], 'session_files', ); @@ -1000,7 +1000,7 @@ describe('reviewTeamService', () => { const files = [ 'src/web-ui/src/locales/en-US/flow-chat.json', 'src/apps/desktop/src/api/agentic_api.rs', - 'src/crates/integrations/api-layer/src/review.rs', + 'src/crates/adapters/api-layer/src/review.rs', 'package.json', ]; @@ -1044,7 +1044,7 @@ describe('reviewTeamService', () => { }), expect.objectContaining({ kind: 'api_contract', - filePath: 'src/crates/integrations/api-layer/src/review.rs', + filePath: 'src/crates/adapters/api-layer/src/review.rs', }), expect.objectContaining({ kind: 'config_key', @@ -1075,7 +1075,7 @@ describe('reviewTeamService', () => { ); const files = [ 'src/web-ui/src/locales/en-US/flow-chat.json', - 'src/crates/integrations/api-layer/src/review.rs', + 'src/crates/adapters/api-layer/src/review.rs', ]; const manifest = buildEffectiveReviewTeamManifest(team, { target: classifyReviewTargetFromFiles(files, 'workspace_diff'), @@ -1107,7 +1107,7 @@ describe('reviewTeamService', () => { const target = classifyReviewTargetFromFiles( [ 'src/web-ui/src/shared/services/reviewTeamService.ts', - 'src/crates/facade/core/src/agentic/deep_review_policy.rs', + 'src/crates/assembly/core/src/agentic/deep_review_policy.rs', ], 'session_files', ); @@ -1124,7 +1124,7 @@ describe('reviewTeamService', () => { source: 'target_manifest', strategy: 'reuse_completed_packets_when_fingerprint_matches', filePaths: [ - 'src/crates/facade/core/src/agentic/deep_review_policy.rs', + 'src/crates/assembly/core/src/agentic/deep_review_policy.rs', 'src/web-ui/src/shared/services/reviewTeamService.ts', ], workspaceAreas: ['crate:core', 'web-ui'], @@ -1231,16 +1231,16 @@ describe('reviewTeamService', () => { const target = classifyReviewTargetFromFiles( [ 'src/web-ui/src/components/ReviewPanel.tsx', - 'src/crates/facade/core/src/agentic/deep_review_policy.rs', + 'src/crates/assembly/core/src/agentic/deep_review_policy.rs', 'src/apps/desktop/src/api/review.rs', 'src/web-ui/src/shared/services/reviewTeamService.ts', - 'src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs', + 'src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs', 'src/apps/desktop/src/api/agent.rs', 'src/web-ui/src/app/scenes/agents/components/ReviewTeamPage.tsx', - 'src/crates/facade/core/src/agentic/agents/deep_review_agent.rs', + 'src/crates/assembly/core/src/agentic/agents/deep_review_agent.rs', 'src/apps/desktop/src/api/config.rs', 'src/web-ui/src/locales/en-US/scenes/agents.json', - 'src/crates/facade/core/src/agentic/agents/prompts/deep_review_agent.md', + 'src/crates/assembly/core/src/agentic/agents/prompts/deep_review_agent.md', 'src/apps/desktop/src/api/subagent.rs', ], 'session_files', @@ -1266,10 +1266,10 @@ describe('reviewTeamService', () => { 'src/web-ui/src/locales/en-US/scenes/agents.json', ], [ - 'src/crates/facade/core/src/agentic/deep_review_policy.rs', - 'src/crates/facade/core/src/agentic/tools/implementations/task_tool.rs', - 'src/crates/facade/core/src/agentic/agents/deep_review_agent.rs', - 'src/crates/facade/core/src/agentic/agents/prompts/deep_review_agent.md', + 'src/crates/assembly/core/src/agentic/deep_review_policy.rs', + 'src/crates/assembly/core/src/agentic/tools/implementations/task_tool.rs', + 'src/crates/assembly/core/src/agentic/agents/deep_review_agent.rs', + 'src/crates/assembly/core/src/agentic/agents/prompts/deep_review_agent.md', ], [ 'src/apps/desktop/src/api/review.rs', @@ -1411,7 +1411,7 @@ describe('reviewTeamService', () => { const manifest = buildEffectiveReviewTeamManifest(team, { target: classifyReviewTargetFromFiles( - ['src/crates/facade/core/src/service/config/types.rs'], + ['src/crates/assembly/core/src/service/config/types.rs'], 'session_files', ), }); @@ -1440,7 +1440,7 @@ describe('reviewTeamService', () => { const manifest = buildEffectiveReviewTeamManifest(team, { workspacePath: WORKSPACE_PATH, - reviewTargetFilePaths: ['src/crates/facade/core/src/agentic/deep_review_policy.rs'], + reviewTargetFilePaths: ['src/crates/assembly/core/src/agentic/deep_review_policy.rs'], }); expect(manifest.coreReviewers.map((member) => member.subagentId)).toEqual([ @@ -1526,8 +1526,8 @@ describe('reviewTeamService', () => { ); const target = classifyReviewTargetFromFiles( [ - 'src/crates/facade/core/src/service/auth/token_store.rs', - 'src/crates/integrations/api-layer/src/review.rs', + 'src/crates/assembly/core/src/service/auth/token_store.rs', + 'src/crates/adapters/api-layer/src/review.rs', 'src/web-ui/src/components/ReviewPanel.tsx', ], 'workspace_diff', @@ -1585,7 +1585,7 @@ describe('reviewTeamService', () => { ); const files = Array.from( { length: 48 }, - (_, index) => `src/crates/facade/core/src/agentic/large_change_${index}.rs`, + (_, index) => `src/crates/assembly/core/src/agentic/large_change_${index}.rs`, ); const target = classifyReviewTargetFromFiles(files, 'workspace_diff'); @@ -1679,7 +1679,7 @@ describe('reviewTeamService', () => { ); const files = Array.from( { length: 6 }, - (_, index) => `src/crates/facade/core/src/agentic/large_change_${index}.rs`, + (_, index) => `src/crates/assembly/core/src/agentic/large_change_${index}.rs`, ); const target = classifyReviewTargetFromFiles(files, 'workspace_diff'); @@ -1734,7 +1734,7 @@ describe('reviewTeamService', () => { ); const files = Array.from( { length: 5 }, - (_, index) => `src/crates/facade/core/src/agentic/small_${index}.rs`, + (_, index) => `src/crates/assembly/core/src/agentic/small_${index}.rs`, ); const target = classifyReviewTargetFromFiles(files, 'workspace_diff'); @@ -1851,7 +1851,7 @@ describe('reviewTeamService', () => { ); const target = classifyReviewTargetFromFiles( [ - 'src/crates/facade/core/src/service/auth/token_store.rs', + 'src/crates/assembly/core/src/service/auth/token_store.rs', 'src/apps/desktop/src/api/agentic_api.rs', ...Array.from( { length: 18 }, @@ -1924,7 +1924,7 @@ describe('reviewTeamService', () => { [ ...Array.from( { length: 24 }, - (_, index) => `src/crates/facade/core/src/review/module_${index}.rs`, + (_, index) => `src/crates/assembly/core/src/review/module_${index}.rs`, ), ], 'workspace_diff',