gitextract_5vq11rbw/ ├── .agent/ │ └── workflows/ │ ├── feature-based-architecture.md │ └── governance-strategy.md ├── .babelrc.js ├── .codex/ │ └── skills/ │ └── project-os/ │ ├── .skild/ │ │ └── install.json │ ├── SKILL.md │ └── assets/ │ ├── AGENTS.template.md │ ├── commands/ │ │ └── commands.md │ └── docs/ │ └── workflows/ │ └── npm-release-process.md ├── .cursor/ │ ├── commands/ │ │ └── commit.md │ ├── cursorignore │ └── rules/ │ ├── README.md │ ├── agentverse-project.mdc │ ├── code-simplicity.mdc │ ├── commit.mdc │ ├── core.mdc │ ├── customization.mdc │ ├── file-organization.mdc │ ├── file-size-limits.mdc │ ├── generate-world-class-artistic-ui.mdc │ ├── naming-conventions.mdc │ ├── portal-service-bus-architecture.mdc │ ├── quick-commands.mdc │ ├── riper-workflow.mdc │ ├── start-phase.mdc │ └── state.mdc ├── .gitignore ├── .i18n-ally.yml ├── .npmrc ├── .ossutilconfig.example ├── AGENTS.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTORS.md ├── LICENSE ├── README.md ├── README_EN.md ├── babel.config.cjs ├── commands/ │ └── commands.md ├── components.json ├── docs/ │ ├── PAGE_STRUCTURE.md │ ├── agent-action.md │ ├── architecture/ │ │ ├── agent-architecture.md │ │ ├── agents-architecture.md │ │ ├── chat-discussion-features.md │ │ ├── diagrams/ │ │ │ └── architecture.mmd │ │ ├── discussions-architecture.md │ │ ├── extension-architecture.md │ │ └── system-design.md │ ├── character-templates.md │ ├── development/ │ │ ├── file-manager-architecture.md │ │ ├── file-manager-global-tree-design.md │ │ └── world-class-chat-html-preview-plan.md │ ├── development-guide.md │ ├── development-plan.md │ ├── features-overview.md │ ├── i18n-coverage-report.md │ ├── i18n-tools-guide.md │ ├── logs/ │ │ ├── README.md │ │ ├── TEMPLATE.md │ │ ├── v0.0.1-init/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.0-backend-ready/ │ │ │ ├── analysis.md │ │ │ └── iteration-notes.md │ │ ├── v0.1.1-notes-sidebar/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.10-stream-normalizer-robust/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.11-mention-self-guard/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.12-message-merge-safety/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.13-v2ex-post/ │ │ │ ├── iteration-notes.md │ │ │ └── v2ex-post.md │ │ ├── v0.1.14-sidebar-github/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.15-activitybar-github/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.16-readme-screenshots/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.17-dashscope-models/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.2-auth-email/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.3-auth-optional/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.4-auth-entry/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.5-poop-impact/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.6-stream-dedupe/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.7-streaming-delta-normalization/ │ │ │ └── iteration-notes.md │ │ ├── v0.1.8-streaming-mode-normalization/ │ │ │ └── iteration-notes.md │ │ └── v0.1.9-poop-impact-drama/ │ │ └── iteration-notes.md │ ├── mcp-integration.md │ ├── naming-research.md │ ├── project-standards.md │ ├── prompt-experiments.md │ ├── prompts/ │ │ └── generate-world-class-artistic-ui.md │ ├── references/ │ │ ├── agent-chat-tutorial.md │ │ ├── tsdown-docs/ │ │ │ ├── .vitepress/ │ │ │ │ ├── components/ │ │ │ │ │ ├── HomePage.vue │ │ │ │ │ ├── VideoModal.vue │ │ │ │ │ └── overrides/ │ │ │ │ │ └── vp-hero.vue │ │ │ │ ├── config/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── theme.ts │ │ │ │ ├── i18n/ │ │ │ │ │ ├── composable.ts │ │ │ │ │ ├── translate-map.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── scripts/ │ │ │ │ │ └── docs-generate.ts │ │ │ │ └── theme/ │ │ │ │ ├── Layout.vue │ │ │ │ ├── custom.css │ │ │ │ └── index.ts │ │ │ ├── advanced/ │ │ │ │ ├── benchmark.md │ │ │ │ ├── hooks.md │ │ │ │ ├── plugins.md │ │ │ │ ├── programmatic-usage.md │ │ │ │ └── rolldown-options.md │ │ │ ├── guide/ │ │ │ │ ├── faq.md │ │ │ │ ├── getting-started.md │ │ │ │ ├── index.md │ │ │ │ └── migrate-from-tsup.md │ │ │ ├── index.md │ │ │ ├── options/ │ │ │ │ ├── cleaning.md │ │ │ │ ├── config-file.md │ │ │ │ ├── dependencies.md │ │ │ │ ├── dts.md │ │ │ │ ├── entry.md │ │ │ │ ├── minification.md │ │ │ │ ├── output-directory.md │ │ │ │ ├── output-format.md │ │ │ │ ├── package-exports.md │ │ │ │ ├── platform.md │ │ │ │ ├── shims.md │ │ │ │ ├── silent-mode.md │ │ │ │ ├── sourcemap.md │ │ │ │ ├── target.md │ │ │ │ ├── tree-shaking.md │ │ │ │ ├── unbundle.md │ │ │ │ └── watch-mode.md │ │ │ ├── recipes/ │ │ │ │ └── vue-support.md │ │ │ ├── reference/ │ │ │ │ └── cli.md │ │ │ ├── vite.config.ts │ │ │ └── zh-CN/ │ │ │ ├── advanced/ │ │ │ │ ├── benchmark.md │ │ │ │ ├── hooks.md │ │ │ │ ├── plugins.md │ │ │ │ ├── programmatic-usage.md │ │ │ │ └── rolldown-options.md │ │ │ ├── guide/ │ │ │ │ ├── faq.md │ │ │ │ ├── getting-started.md │ │ │ │ ├── index.md │ │ │ │ └── migrate-from-tsup.md │ │ │ ├── index.md │ │ │ ├── options/ │ │ │ │ ├── cleaning.md │ │ │ │ ├── config-file.md │ │ │ │ ├── dependencies.md │ │ │ │ ├── dts.md │ │ │ │ ├── entry.md │ │ │ │ ├── minification.md │ │ │ │ ├── output-directory.md │ │ │ │ ├── output-format.md │ │ │ │ ├── package-exports.md │ │ │ │ ├── platform.md │ │ │ │ ├── shims.md │ │ │ │ ├── silent-mode.md │ │ │ │ ├── sourcemap.md │ │ │ │ ├── target.md │ │ │ │ ├── tree-shaking.md │ │ │ │ ├── unbundle.md │ │ │ │ └── watch-mode.md │ │ │ ├── recipes/ │ │ │ │ └── vue-support.md │ │ │ └── reference/ │ │ │ └── cli.md │ │ └── web-mcp-doc.md │ ├── scheduler-design.md │ ├── use-all-tools-example.md │ ├── v2ex-post.md │ └── workflows/ │ └── npm-release-process.md ├── eslint.config.js ├── functions/ │ ├── _lib/ │ │ ├── config.ts │ │ ├── crypto.ts │ │ ├── email.ts │ │ ├── http.ts │ │ ├── sessions.ts │ │ └── validators.ts │ ├── _types.ts │ └── api/ │ └── auth/ │ ├── login.ts │ ├── logout.ts │ ├── me.ts │ ├── register.ts │ ├── request-password-reset.ts │ ├── resend-verification.ts │ ├── reset-password.ts │ └── verify-email.ts ├── i18next-scanner.config.cjs ├── i18next-scanner.config.js ├── index.html ├── jest.config.cjs ├── migrations/ │ └── 0001_auth.sql ├── package.json ├── packages/ │ ├── rx-nested-bean/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── v2.ts │ │ └── tsconfig.json │ └── service-bus-portal/ │ ├── LICENSE │ ├── MIGRATION.md │ ├── MIGRATION_TO_TSDOWN.md │ ├── PACKAGE_SUMMARY.md │ ├── README.md │ ├── examples/ │ │ ├── README.md │ │ ├── basic-usage.ts │ │ ├── comprehensive-example.ts │ │ ├── iframe-example.ts │ │ └── worker-example.ts │ ├── package.json │ ├── scripts/ │ │ └── publish.sh │ ├── src/ │ │ ├── core.ts │ │ ├── factory.ts │ │ ├── index.ts │ │ ├── service-bus.ts │ │ └── types.ts │ ├── tsconfig.json │ └── tsdown.config.ts ├── pnpm-workspace.yaml ├── public/ │ ├── iframe-portal.html │ └── worker-portal.js ├── scripts/ │ ├── check-i18n-coverage.cjs │ ├── check-i18n-coverage.js │ ├── metrics/ │ │ ├── feature-structure.cjs │ │ └── top-loc.cjs │ └── rename-hooks-to-kebab-case.sh ├── src/ │ ├── App.tsx │ ├── common/ │ │ ├── components/ │ │ │ ├── common/ │ │ │ │ ├── breakpoint-provider.tsx │ │ │ │ ├── client-breakpoint-provider.tsx │ │ │ │ ├── icon-registry.tsx │ │ │ │ ├── language/ │ │ │ │ │ └── index.ts │ │ │ │ ├── language-toggle.tsx │ │ │ │ ├── logo.tsx │ │ │ │ ├── plugin-router.tsx │ │ │ │ ├── redirect.tsx │ │ │ │ ├── role-badge.tsx │ │ │ │ ├── status-indicator.tsx │ │ │ │ ├── theme/ │ │ │ │ │ ├── context.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── toggle.tsx │ │ │ │ └── theme-toggle.tsx │ │ │ ├── layout/ │ │ │ │ ├── page-container.tsx │ │ │ │ └── responsive-container.tsx │ │ │ ├── layouts/ │ │ │ │ └── scrollable-layout.tsx │ │ │ └── ui/ │ │ │ ├── alert-dialog.tsx │ │ │ ├── alert.tsx │ │ │ ├── auto-resize-textarea.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── dialog.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── markdown/ │ │ │ │ ├── code-block-container.tsx │ │ │ │ ├── code-block.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── error-boundary.tsx │ │ │ │ │ ├── mermaid-renderer.ts │ │ │ │ │ └── mermaid.tsx │ │ │ │ ├── copy-code-button.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── types.ts │ │ │ │ └── world-class-markdown.css │ │ │ ├── modal/ │ │ │ │ ├── context.tsx │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ ├── provider.tsx │ │ │ │ └── types.ts │ │ │ ├── popover.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── slider.tsx │ │ │ ├── smart-avatar.tsx │ │ │ ├── switch.tsx │ │ │ ├── tabs.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toast.tsx │ │ │ ├── toaster.tsx │ │ │ └── tooltip.tsx │ │ ├── features/ │ │ │ ├── agents/ │ │ │ │ ├── components/ │ │ │ │ │ ├── add-agent-dialog/ │ │ │ │ │ │ ├── add-agent-dialog-content.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── use-add-agent-dialog.tsx │ │ │ │ │ ├── agent-tools/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── agent-analysis.tool.ts │ │ │ │ │ │ ├── code-analysis.tool.ts │ │ │ │ │ │ ├── display-quick-actions.tool.ts │ │ │ │ │ │ ├── file-system.tool.ts │ │ │ │ │ │ ├── get-current-time.tool.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── network.tool.ts │ │ │ │ │ │ ├── tool-factories.ts │ │ │ │ │ │ └── update-agent.tool.tsx │ │ │ │ │ ├── avatars/ │ │ │ │ │ │ ├── clickable-agent-avatar.tsx │ │ │ │ │ │ └── use-avatar-interaction.ts │ │ │ │ │ ├── cards/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── agent-card.tsx │ │ │ │ │ │ ├── agent-chat-card.tsx │ │ │ │ │ │ ├── agent-group-card.tsx │ │ │ │ │ │ ├── agent-hover-card.tsx │ │ │ │ │ │ ├── agent-info-card.tsx │ │ │ │ │ │ ├── agent-select-card.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── modern-agent-card.tsx │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ ├── agent-configuration-assistant.tsx │ │ │ │ │ │ ├── agent-configuration-preview.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── use-agent-configuration-tools.tsx │ │ │ │ │ ├── dialogs/ │ │ │ │ │ │ ├── add-agent-dialog.tsx │ │ │ │ │ │ ├── custom-team-dialog.tsx │ │ │ │ │ │ ├── edit-agent-dialog.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── floating-agent-info.tsx │ │ │ │ │ ├── forms/ │ │ │ │ │ │ ├── agent-embedded-form.tsx │ │ │ │ │ │ ├── agent-form.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── lists/ │ │ │ │ │ │ ├── agent-combination-list.tsx │ │ │ │ │ │ ├── agent-list.tsx │ │ │ │ │ │ ├── agent-select-list.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── member-management.tsx │ │ │ │ │ └── preview/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── agent-preview-chat.tsx │ │ │ │ │ ├── agent-preview-tools.example.ts │ │ │ │ │ └── index.ts │ │ │ │ └── extensions/ │ │ │ │ └── index.tsx │ │ │ ├── all-in-one-agent/ │ │ │ │ ├── README.md │ │ │ │ ├── components/ │ │ │ │ │ ├── agent-tools/ │ │ │ │ │ │ ├── calculator.tool.ts │ │ │ │ │ │ ├── clear-suggestions.tool.ts │ │ │ │ │ │ ├── file-system.tool.ts │ │ │ │ │ │ ├── get-current-time.tool.ts │ │ │ │ │ │ ├── html-preview-from-file.tool.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── provide-next-steps.tool.ts │ │ │ │ │ │ ├── recommend-topics.tool.ts │ │ │ │ │ │ ├── request-user-choice.tool.ts │ │ │ │ │ │ ├── send-message-to-iframe.tool.tsx │ │ │ │ │ │ ├── subscribe-iframe-messages.tool.tsx │ │ │ │ │ │ └── weather.tool.ts │ │ │ │ │ ├── all-in-one-agent-dock.tsx │ │ │ │ │ └── smart-assistant-dialog.tsx │ │ │ │ ├── extensions/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ └── use-all-in-one-agent-mode.tsx │ │ │ │ ├── index.ts │ │ │ │ └── pages/ │ │ │ │ └── all-in-one-agent-page.tsx │ │ │ ├── app/ │ │ │ │ └── components/ │ │ │ │ ├── activity-bar.tsx │ │ │ │ ├── app-loading.tsx │ │ │ │ └── mobile-bottom-bar.tsx │ │ │ ├── auth/ │ │ │ │ ├── components/ │ │ │ │ │ ├── auth-gate.tsx │ │ │ │ │ ├── auth-routes.tsx │ │ │ │ │ └── auth-shell.tsx │ │ │ │ └── pages/ │ │ │ │ ├── forgot-password-page.tsx │ │ │ │ ├── login-page.tsx │ │ │ │ ├── reset-password-page.tsx │ │ │ │ └── verify-email-page.tsx │ │ │ ├── chat/ │ │ │ │ ├── components/ │ │ │ │ │ ├── agent-chat/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── agent-chat-container.tsx │ │ │ │ │ │ ├── agent-chat-header-with-info.tsx │ │ │ │ │ │ ├── agent-chat-header.tsx │ │ │ │ │ │ ├── agent-chat-input.tsx │ │ │ │ │ │ ├── agent-chat-messages.tsx │ │ │ │ │ │ ├── agent-chat-provider-wrapper.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── tool-call-renderer.tsx │ │ │ │ │ ├── chat-area.tsx │ │ │ │ │ ├── chat-empty-guide.tsx │ │ │ │ │ ├── chat-welcome-header.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mention-suggestions.tsx │ │ │ │ │ ├── message/ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── interaction-overlay.tsx │ │ │ │ │ │ ├── message-capture.tsx │ │ │ │ │ │ ├── message-content-blocks.tsx │ │ │ │ │ │ ├── message-item-wechat.tsx │ │ │ │ │ │ ├── message-item.tsx │ │ │ │ │ │ ├── message-list-desktop.tsx │ │ │ │ │ │ ├── message-list-mobile.tsx │ │ │ │ │ │ ├── message-list.tsx │ │ │ │ │ │ ├── message-markdown-content.tsx │ │ │ │ │ │ ├── message-preview-dialog.tsx │ │ │ │ │ │ └── tool-result-list.tsx │ │ │ │ │ ├── message-input-desktop.tsx │ │ │ │ │ ├── message-input-mobile.tsx │ │ │ │ │ ├── message-input.tsx │ │ │ │ │ ├── modern-chat-input.tsx │ │ │ │ │ └── suggestions/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── suggestion.types.ts │ │ │ │ │ └── suggestions-provider.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ └── use-poop-trigger.ts │ │ │ │ ├── managers/ │ │ │ │ │ └── chat-scroll.manager.ts │ │ │ │ └── stores/ │ │ │ │ ├── chat-scroll.store.ts │ │ │ │ └── interaction.store.ts │ │ │ ├── discussion/ │ │ │ │ └── components/ │ │ │ │ ├── control/ │ │ │ │ │ ├── clear-messages-button.tsx │ │ │ │ │ ├── discussion-controller.tsx │ │ │ │ │ └── use-discussion-control.ts │ │ │ │ ├── list/ │ │ │ │ │ ├── discussion-avatar.tsx │ │ │ │ │ ├── discussion-item.tsx │ │ │ │ │ ├── discussion-list-header.tsx │ │ │ │ │ ├── discussion-list.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── member/ │ │ │ │ │ ├── add-member-dialog.tsx │ │ │ │ │ ├── member-item.tsx │ │ │ │ │ ├── member-list.tsx │ │ │ │ │ ├── member-skeleton.tsx │ │ │ │ │ ├── member-toggle-button.tsx │ │ │ │ │ ├── mobile-member-drawer.tsx │ │ │ │ │ ├── mobile-member-list.tsx │ │ │ │ │ └── quick-member-selector.tsx │ │ │ │ ├── mobile/ │ │ │ │ │ ├── mobile-action-sheet.tsx │ │ │ │ │ └── mobile-header.tsx │ │ │ │ ├── notes/ │ │ │ │ │ └── discussion-notes-panel.tsx │ │ │ │ ├── settings/ │ │ │ │ │ ├── discussion-settings-button.tsx │ │ │ │ │ ├── discussion-settings-panel.tsx │ │ │ │ │ ├── setting-item.tsx │ │ │ │ │ ├── setting-select.tsx │ │ │ │ │ ├── setting-slider.tsx │ │ │ │ │ └── setting-switch.tsx │ │ │ │ └── sidebar/ │ │ │ │ └── discussion-sidebar.tsx │ │ │ ├── home/ │ │ │ │ └── components/ │ │ │ │ ├── agent-popover.tsx │ │ │ │ ├── initial-experience.tsx │ │ │ │ ├── initial-input.tsx │ │ │ │ ├── team-details-dialog.tsx │ │ │ │ └── welcome-header.tsx │ │ │ └── world-class-chat/ │ │ │ ├── components/ │ │ │ │ ├── settings-panel/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── memory-setting.tsx │ │ │ │ │ ├── prompt-setting.tsx │ │ │ │ │ ├── settings-registry.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── world-class-settings-panel.tsx │ │ │ │ └── world-class-chat-html-preview.tsx │ │ │ ├── copy-message-button.tsx │ │ │ ├── hooks/ │ │ │ │ ├── use-iframe-manager.ts │ │ │ │ ├── use-side-panel-manager.ts │ │ │ │ └── use-suggestions-manager.ts │ │ │ ├── index.ts │ │ │ ├── side-panel.tsx │ │ │ ├── stores/ │ │ │ │ ├── memory.store.ts │ │ │ │ └── world-class-chat-settings.store.ts │ │ │ ├── world-class-chat-container.tsx │ │ │ ├── world-class-chat-input-bar.tsx │ │ │ ├── world-class-chat-message-list.tsx │ │ │ ├── world-class-chat-top-bar.tsx │ │ │ └── world-class-tool-call-renderer.tsx │ │ ├── hooks/ │ │ │ ├── index.ts │ │ │ ├── use-agent-file-manager.ts │ │ │ ├── use-all-tools.ts │ │ │ ├── use-chat-auto-scroll.ts │ │ │ ├── use-chat-message-cache.ts │ │ │ ├── use-mcp-servers.ts │ │ │ ├── use-mention-position.ts │ │ │ ├── use-mention.ts │ │ │ └── use-provide-agent-tools.ts │ │ ├── lib/ │ │ │ ├── agent/ │ │ │ │ └── prompt/ │ │ │ │ ├── prompt-builder.ts │ │ │ │ └── prompts.ts │ │ │ ├── ai-service/ │ │ │ │ └── index.ts │ │ │ ├── capabilities/ │ │ │ │ └── index.ts │ │ │ ├── discussion/ │ │ │ │ └── message-utils.ts │ │ │ ├── env.ts │ │ │ ├── file-manager.service.ts │ │ │ ├── file-tree.service.ts │ │ │ ├── mcp/ │ │ │ │ ├── examples/ │ │ │ │ │ └── mock-server.ts │ │ │ │ ├── index.ts │ │ │ │ └── transports/ │ │ │ │ ├── event.ts │ │ │ │ ├── index.ts │ │ │ │ ├── postmessage.ts │ │ │ │ └── transport.ts │ │ │ ├── prompts/ │ │ │ │ └── index.ts │ │ │ ├── resource.ts │ │ │ ├── runnable-agent/ │ │ │ │ ├── README.md │ │ │ │ ├── agent-utils/ │ │ │ │ │ ├── handlers/ │ │ │ │ │ │ ├── text-message.handler.ts │ │ │ │ │ │ └── tool-call.handler.ts │ │ │ │ │ ├── openai-agent.ts │ │ │ │ │ ├── stream-processor.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── experimental-inbrowser-agent.ts │ │ │ │ ├── index.ts │ │ │ │ └── sse-json-decoder.ts │ │ │ ├── rx-event.ts │ │ │ ├── rx-state/ │ │ │ │ └── index.ts │ │ │ ├── service-bus/ │ │ │ │ └── index.ts │ │ │ ├── storage/ │ │ │ │ ├── index.ts │ │ │ │ ├── indexeddb.ts │ │ │ │ ├── local.ts │ │ │ │ ├── mock-http.ts │ │ │ │ └── types.ts │ │ │ ├── typed-bus/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── environment-bus.test.ts │ │ │ │ ├── base.ts │ │ │ │ ├── bus-proxy.ts │ │ │ │ ├── decorators.ts │ │ │ │ ├── implementations/ │ │ │ │ │ ├── capability-bus.ts │ │ │ │ │ ├── environment-bus.ts │ │ │ │ │ ├── event-bus.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── message-bus.ts │ │ │ │ │ ├── resource-bus.ts │ │ │ │ │ └── state-bus.ts │ │ │ │ ├── index.ts │ │ │ │ ├── key.ts │ │ │ │ ├── middleware-chain.ts │ │ │ │ └── types.ts │ │ │ ├── utils.ts │ │ │ └── with-event.ts │ │ └── types/ │ │ ├── agent-config.ts │ │ ├── agent.ts │ │ ├── ai.ts │ │ ├── auth.ts │ │ ├── chat.ts │ │ ├── discussion-member.ts │ │ ├── discussion.ts │ │ ├── guide.ts │ │ ├── route.ts │ │ └── storage.ts │ ├── core/ │ │ ├── bootstrap/ │ │ │ ├── agents.bootstrap.ts │ │ │ └── app.bootstrap.ts │ │ ├── config/ │ │ │ ├── agents/ │ │ │ │ ├── base-types.ts │ │ │ │ ├── index.ts │ │ │ │ ├── moderators/ │ │ │ │ │ ├── meta-cognitive-orchestrator.ts │ │ │ │ │ ├── structured-thinking-moderator.ts │ │ │ │ │ └── troll-moderator.ts │ │ │ │ ├── practical-agents/ │ │ │ │ │ ├── data-interpreter.ts │ │ │ │ │ ├── implementation-architect.ts │ │ │ │ │ └── startup-navigator.ts │ │ │ │ └── top-agents/ │ │ │ │ ├── cognitive-detective.ts │ │ │ │ ├── concept-alchemist.ts │ │ │ │ ├── decision-gardener.ts │ │ │ │ ├── emotion-meteorologist.ts │ │ │ │ ├── essence-perspectivist.ts │ │ │ │ ├── inspiration-archaeologist.ts │ │ │ │ ├── meaning-seeker.ts │ │ │ │ ├── multiverse-observer.ts │ │ │ │ ├── narrative-architect.ts │ │ │ │ ├── pattern-linguist.ts │ │ │ │ ├── psyche-time-traveler.ts │ │ │ │ ├── quantum-advisor.ts │ │ │ │ ├── structure-architect.ts │ │ │ │ ├── troll-attacker.ts │ │ │ │ ├── troll-cynic.ts │ │ │ │ ├── troll-hater.ts │ │ │ │ ├── troll-nonsense.ts │ │ │ │ ├── troll-picker.ts │ │ │ │ ├── troll-saboteur.ts │ │ │ │ └── troll-spammer.ts │ │ │ ├── ai.ts │ │ │ ├── guide-scenarios.ts │ │ │ ├── i18n.ts │ │ │ ├── module-order.ts │ │ │ ├── settings.ts │ │ │ ├── storage.ts │ │ │ └── ui-persist.ts │ │ ├── env.ts │ │ ├── events.ts │ │ ├── extension-manager.ts │ │ ├── hooks/ │ │ │ ├── use-agent-chat-page-helper.ts │ │ │ ├── use-app-bootstrap.ts │ │ │ ├── use-auth.ts │ │ │ ├── use-connect-navigation-store.ts │ │ │ ├── use-copy.ts │ │ │ ├── use-extensions.ts │ │ │ ├── use-i18n.ts │ │ │ ├── use-indexeddb-manager.ts │ │ │ ├── use-setup-app.ts │ │ │ ├── use-toast.ts │ │ │ ├── useAgentForm.ts │ │ │ ├── useAgents.ts │ │ │ ├── useAutoScroll.ts │ │ │ ├── useBreakpoint.ts │ │ │ ├── useCurrentDiscussionId.ts │ │ │ ├── useDiscussion.ts │ │ │ ├── useDiscussionMembers.ts │ │ │ ├── useDiscussionRuntime.ts │ │ │ ├── useDiscussionSettings.ts │ │ │ ├── useDiscussions.ts │ │ │ ├── useKeyboardExpandableList.ts │ │ │ ├── useMediaQuery.ts │ │ │ ├── useMemberSelection.ts │ │ │ ├── useMessageInput.ts │ │ │ ├── useMessageList.ts │ │ │ ├── useMessages.ts │ │ │ ├── useObservableState.ts │ │ │ ├── useOptimisticUpdate.ts │ │ │ ├── usePersistedState.ts │ │ │ ├── useViewportHeight.ts │ │ │ └── useWindowSize.ts │ │ ├── locales/ │ │ │ ├── en-US.json │ │ │ └── zh-CN.json │ │ ├── managers/ │ │ │ ├── activity-bar.manager.ts │ │ │ ├── agents.manager.ts │ │ │ ├── db-capabilities.ts │ │ │ ├── discussion/ │ │ │ │ ├── mention-resolver.ts │ │ │ │ ├── next-speaker.ts │ │ │ │ └── streaming-responder.ts │ │ │ ├── discussion-capabilities.ts │ │ │ ├── discussion-control.manager.ts │ │ │ ├── discussion-members.manager.ts │ │ │ ├── discussions.manager.ts │ │ │ ├── icon.manager.ts │ │ │ ├── index.ts │ │ │ ├── messages.manager.ts │ │ │ ├── navigation.manager.ts │ │ │ └── route-tree.manager.ts │ │ ├── presenter/ │ │ │ ├── index.ts │ │ │ ├── presenter-context.tsx │ │ │ └── presenter.ts │ │ ├── repositories/ │ │ │ ├── agent.repository.ts │ │ │ ├── ai.client.ts │ │ │ ├── data-providers.ts │ │ │ ├── discussion-member.repository.ts │ │ │ ├── discussion.repository.ts │ │ │ ├── index.ts │ │ │ ├── message.repository.ts │ │ │ └── shared.types.ts │ │ ├── stores/ │ │ │ ├── README.md │ │ │ ├── activity-bar.store.ts │ │ │ ├── agents.store.ts │ │ │ ├── auth.store.ts │ │ │ ├── discussion-members.store.ts │ │ │ ├── discussions.store.ts │ │ │ ├── icon.store.ts │ │ │ ├── mcp-server.store.ts │ │ │ ├── messages.store.ts │ │ │ ├── navigation.store.ts │ │ │ └── route-tree.store.ts │ │ ├── styles/ │ │ │ └── theme.css │ │ └── utils/ │ │ ├── auth-client.ts │ │ ├── common.util.ts │ │ ├── connect-router-with-activity-bar.ts │ │ ├── discussion-error.util.ts │ │ └── message.util.ts │ ├── desktop/ │ │ ├── desktop-app.tsx │ │ └── features/ │ │ ├── agents/ │ │ │ ├── components/ │ │ │ │ └── agent-profile-view.tsx │ │ │ ├── extensions/ │ │ │ │ └── index.tsx │ │ │ └── pages/ │ │ │ ├── agent-detail-page.tsx │ │ │ └── agents-page.tsx │ │ ├── chat/ │ │ │ ├── extensions/ │ │ │ │ └── index.tsx │ │ │ └── pages/ │ │ │ └── chat-page.tsx │ │ ├── file-manager/ │ │ │ ├── README.md │ │ │ ├── components/ │ │ │ │ ├── file-preview.tsx │ │ │ │ ├── file-tree.tsx │ │ │ │ └── pluggable-file-preview.tsx │ │ │ ├── extensions/ │ │ │ │ └── index.tsx │ │ │ ├── hooks/ │ │ │ │ ├── use-delayed-loading.ts │ │ │ │ ├── use-file-ops.ts │ │ │ │ ├── use-file-tree.ts │ │ │ │ ├── use-lightningfs-manager.ts │ │ │ │ └── use-working-directory.ts │ │ │ ├── pages/ │ │ │ │ └── file-manager-page.tsx │ │ │ ├── previewers/ │ │ │ │ ├── html-previewer.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── markdown-previewer.tsx │ │ │ │ └── text-previewer.tsx │ │ │ ├── services/ │ │ │ │ └── file-preview-registry.service.ts │ │ │ └── types/ │ │ │ └── file-preview.types.ts │ │ └── indexeddb/ │ │ ├── components/ │ │ │ ├── indexeddb-data-viewer.tsx │ │ │ ├── indexeddb-database-info.tsx │ │ │ └── indexeddb-store-manager.tsx │ │ ├── extensions/ │ │ │ └── index.tsx │ │ └── pages/ │ │ └── indexeddb-manager-page.tsx │ ├── index.css │ ├── main.tsx │ ├── mobile/ │ │ ├── features/ │ │ │ └── chat/ │ │ │ ├── extensions/ │ │ │ │ └── index.tsx │ │ │ ├── managers/ │ │ │ │ └── mobile-chat-scene.manager.ts │ │ │ ├── pages/ │ │ │ │ └── chat-page.tsx │ │ │ └── stores/ │ │ │ └── mobile-chat-scene.store.ts │ │ └── mobile-app.tsx │ └── vite-env.d.ts ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── wrangler.toml