gitextract_nwnf5167/ ├── .cargo/ │ └── audit.toml ├── .dockerignore ├── .env.example ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ └── feature_request.yml │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── ci.yml │ └── release.yml ├── .gitignore ├── CHANGELOG.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── Cargo.toml ├── Cross.toml ├── Dockerfile ├── LICENSE-APACHE ├── LICENSE-MIT ├── MIGRATION.md ├── README.md ├── SECURITY.md ├── agents/ │ ├── analyst/ │ │ └── agent.toml │ ├── architect/ │ │ └── agent.toml │ ├── assistant/ │ │ └── agent.toml │ ├── code-reviewer/ │ │ └── agent.toml │ ├── coder/ │ │ └── agent.toml │ ├── customer-support/ │ │ └── agent.toml │ ├── data-scientist/ │ │ └── agent.toml │ ├── debugger/ │ │ └── agent.toml │ ├── devops-lead/ │ │ └── agent.toml │ ├── doc-writer/ │ │ └── agent.toml │ ├── email-assistant/ │ │ └── agent.toml │ ├── health-tracker/ │ │ └── agent.toml │ ├── hello-world/ │ │ └── agent.toml │ ├── home-automation/ │ │ └── agent.toml │ ├── legal-assistant/ │ │ └── agent.toml │ ├── meeting-assistant/ │ │ └── agent.toml │ ├── ops/ │ │ └── agent.toml │ ├── orchestrator/ │ │ └── agent.toml │ ├── personal-finance/ │ │ └── agent.toml │ ├── planner/ │ │ └── agent.toml │ ├── recruiter/ │ │ └── agent.toml │ ├── researcher/ │ │ └── agent.toml │ ├── sales-assistant/ │ │ └── agent.toml │ ├── security-auditor/ │ │ └── agent.toml │ ├── social-media/ │ │ └── agent.toml │ ├── test-engineer/ │ │ └── agent.toml │ ├── translator/ │ │ └── agent.toml │ ├── travel-planner/ │ │ └── agent.toml │ ├── tutor/ │ │ └── agent.toml │ └── writer/ │ └── agent.toml ├── crates/ │ ├── openfang-api/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── channel_bridge.rs │ │ │ ├── lib.rs │ │ │ ├── middleware.rs │ │ │ ├── openai_compat.rs │ │ │ ├── rate_limiter.rs │ │ │ ├── routes.rs │ │ │ ├── server.rs │ │ │ ├── session_auth.rs │ │ │ ├── stream_chunker.rs │ │ │ ├── stream_dedup.rs │ │ │ ├── types.rs │ │ │ ├── webchat.rs │ │ │ └── ws.rs │ │ ├── static/ │ │ │ ├── css/ │ │ │ │ ├── components.css │ │ │ │ ├── layout.css │ │ │ │ └── theme.css │ │ │ ├── index_body.html │ │ │ ├── index_head.html │ │ │ ├── js/ │ │ │ │ ├── api.js │ │ │ │ ├── app.js │ │ │ │ ├── katex.js │ │ │ │ └── pages/ │ │ │ │ ├── agents.js │ │ │ │ ├── approvals.js │ │ │ │ ├── channels.js │ │ │ │ ├── chat.js │ │ │ │ ├── comms.js │ │ │ │ ├── hands.js │ │ │ │ ├── logs.js │ │ │ │ ├── overview.js │ │ │ │ ├── runtime.js │ │ │ │ ├── scheduler.js │ │ │ │ ├── sessions.js │ │ │ │ ├── settings.js │ │ │ │ ├── skills.js │ │ │ │ ├── usage.js │ │ │ │ ├── wizard.js │ │ │ │ ├── workflow-builder.js │ │ │ │ └── workflows.js │ │ │ ├── manifest.json │ │ │ └── sw.js │ │ └── tests/ │ │ ├── api_integration_test.rs │ │ ├── daemon_lifecycle_test.rs │ │ └── load_test.rs │ ├── openfang-channels/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── bluesky.rs │ │ │ ├── bridge.rs │ │ │ ├── dingtalk.rs │ │ │ ├── dingtalk_stream.rs │ │ │ ├── discord.rs │ │ │ ├── discourse.rs │ │ │ ├── email.rs │ │ │ ├── feishu.rs │ │ │ ├── flock.rs │ │ │ ├── formatter.rs │ │ │ ├── gitter.rs │ │ │ ├── google_chat.rs │ │ │ ├── gotify.rs │ │ │ ├── guilded.rs │ │ │ ├── irc.rs │ │ │ ├── keybase.rs │ │ │ ├── lib.rs │ │ │ ├── line.rs │ │ │ ├── linkedin.rs │ │ │ ├── mastodon.rs │ │ │ ├── matrix.rs │ │ │ ├── mattermost.rs │ │ │ ├── messenger.rs │ │ │ ├── mumble.rs │ │ │ ├── nextcloud.rs │ │ │ ├── nostr.rs │ │ │ ├── ntfy.rs │ │ │ ├── pumble.rs │ │ │ ├── reddit.rs │ │ │ ├── revolt.rs │ │ │ ├── rocketchat.rs │ │ │ ├── router.rs │ │ │ ├── signal.rs │ │ │ ├── slack.rs │ │ │ ├── teams.rs │ │ │ ├── telegram.rs │ │ │ ├── threema.rs │ │ │ ├── twist.rs │ │ │ ├── twitch.rs │ │ │ ├── types.rs │ │ │ ├── viber.rs │ │ │ ├── webex.rs │ │ │ ├── webhook.rs │ │ │ ├── wecom.rs │ │ │ ├── whatsapp.rs │ │ │ ├── xmpp.rs │ │ │ └── zulip.rs │ │ └── tests/ │ │ └── bridge_integration_test.rs │ ├── openfang-cli/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── bundled_agents.rs │ │ ├── dotenv.rs │ │ ├── launcher.rs │ │ ├── main.rs │ │ ├── mcp.rs │ │ ├── progress.rs │ │ ├── table.rs │ │ ├── templates.rs │ │ ├── tui/ │ │ │ ├── chat_runner.rs │ │ │ ├── event.rs │ │ │ ├── mod.rs │ │ │ ├── screens/ │ │ │ │ ├── agents.rs │ │ │ │ ├── audit.rs │ │ │ │ ├── channels.rs │ │ │ │ ├── chat.rs │ │ │ │ ├── comms.rs │ │ │ │ ├── dashboard.rs │ │ │ │ ├── extensions.rs │ │ │ │ ├── hands.rs │ │ │ │ ├── init_wizard.rs │ │ │ │ ├── logs.rs │ │ │ │ ├── memory.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── peers.rs │ │ │ │ ├── security.rs │ │ │ │ ├── sessions.rs │ │ │ │ ├── settings.rs │ │ │ │ ├── skills.rs │ │ │ │ ├── templates.rs │ │ │ │ ├── triggers.rs │ │ │ │ ├── usage.rs │ │ │ │ ├── welcome.rs │ │ │ │ ├── wizard.rs │ │ │ │ └── workflows.rs │ │ │ └── theme.rs │ │ └── ui.rs │ ├── openfang-desktop/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── capabilities/ │ │ │ └── default.json │ │ ├── gen/ │ │ │ └── schemas/ │ │ │ ├── acl-manifests.json │ │ │ ├── capabilities.json │ │ │ ├── desktop-schema.json │ │ │ └── windows-schema.json │ │ ├── src/ │ │ │ ├── commands.rs │ │ │ ├── lib.rs │ │ │ ├── main.rs │ │ │ ├── server.rs │ │ │ ├── shortcuts.rs │ │ │ ├── tray.rs │ │ │ └── updater.rs │ │ └── tauri.conf.json │ ├── openfang-extensions/ │ │ ├── Cargo.toml │ │ ├── integrations/ │ │ │ ├── aws.toml │ │ │ ├── azure-mcp.toml │ │ │ ├── bitbucket.toml │ │ │ ├── brave-search.toml │ │ │ ├── discord-mcp.toml │ │ │ ├── dropbox.toml │ │ │ ├── elasticsearch.toml │ │ │ ├── exa-search.toml │ │ │ ├── gcp-mcp.toml │ │ │ ├── github.toml │ │ │ ├── gitlab.toml │ │ │ ├── gmail.toml │ │ │ ├── google-calendar.toml │ │ │ ├── google-drive.toml │ │ │ ├── jira.toml │ │ │ ├── linear.toml │ │ │ ├── mongodb.toml │ │ │ ├── notion.toml │ │ │ ├── postgresql.toml │ │ │ ├── redis.toml │ │ │ ├── sentry.toml │ │ │ ├── slack.toml │ │ │ ├── sqlite-mcp.toml │ │ │ ├── teams-mcp.toml │ │ │ └── todoist.toml │ │ └── src/ │ │ ├── bundled.rs │ │ ├── credentials.rs │ │ ├── health.rs │ │ ├── installer.rs │ │ ├── lib.rs │ │ ├── oauth.rs │ │ ├── registry.rs │ │ └── vault.rs │ ├── openfang-hands/ │ │ ├── Cargo.toml │ │ ├── bundled/ │ │ │ ├── browser/ │ │ │ │ ├── HAND.toml │ │ │ │ └── SKILL.md │ │ │ ├── clip/ │ │ │ │ ├── HAND.toml │ │ │ │ └── SKILL.md │ │ │ ├── collector/ │ │ │ │ ├── HAND.toml │ │ │ │ └── SKILL.md │ │ │ ├── lead/ │ │ │ │ ├── HAND.toml │ │ │ │ └── SKILL.md │ │ │ ├── predictor/ │ │ │ │ ├── HAND.toml │ │ │ │ └── SKILL.md │ │ │ ├── researcher/ │ │ │ │ ├── HAND.toml │ │ │ │ └── SKILL.md │ │ │ ├── trader/ │ │ │ │ ├── HAND.toml │ │ │ │ └── SKILL.md │ │ │ └── twitter/ │ │ │ ├── HAND.toml │ │ │ └── SKILL.md │ │ └── src/ │ │ ├── bundled.rs │ │ ├── lib.rs │ │ └── registry.rs │ ├── openfang-kernel/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── approval.rs │ │ │ ├── auth.rs │ │ │ ├── auto_reply.rs │ │ │ ├── background.rs │ │ │ ├── capabilities.rs │ │ │ ├── config.rs │ │ │ ├── config_reload.rs │ │ │ ├── cron.rs │ │ │ ├── error.rs │ │ │ ├── event_bus.rs │ │ │ ├── heartbeat.rs │ │ │ ├── kernel.rs │ │ │ ├── lib.rs │ │ │ ├── metering.rs │ │ │ ├── pairing.rs │ │ │ ├── registry.rs │ │ │ ├── scheduler.rs │ │ │ ├── supervisor.rs │ │ │ ├── triggers.rs │ │ │ ├── whatsapp_gateway.rs │ │ │ ├── wizard.rs │ │ │ └── workflow.rs │ │ └── tests/ │ │ ├── integration_test.rs │ │ ├── multi_agent_test.rs │ │ ├── wasm_agent_integration_test.rs │ │ └── workflow_integration_test.rs │ ├── openfang-memory/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── consolidation.rs │ │ ├── knowledge.rs │ │ ├── lib.rs │ │ ├── migration.rs │ │ ├── semantic.rs │ │ ├── session.rs │ │ ├── structured.rs │ │ ├── substrate.rs │ │ └── usage.rs │ ├── openfang-migrate/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── lib.rs │ │ │ ├── openclaw.rs │ │ │ └── report.rs │ │ └── tests/ │ │ ├── provider_json5_agents.rs │ │ ├── provider_json5_default_model.rs │ │ ├── provider_json5_provider_catalog.rs │ │ └── provider_legacy_yaml.rs │ ├── openfang-runtime/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── a2a.rs │ │ ├── agent_loop.rs │ │ ├── apply_patch.rs │ │ ├── audit.rs │ │ ├── auth_cooldown.rs │ │ ├── browser.rs │ │ ├── command_lane.rs │ │ ├── compactor.rs │ │ ├── context_budget.rs │ │ ├── context_overflow.rs │ │ ├── copilot_oauth.rs │ │ ├── docker_sandbox.rs │ │ ├── drivers/ │ │ │ ├── anthropic.rs │ │ │ ├── claude_code.rs │ │ │ ├── copilot.rs │ │ │ ├── fallback.rs │ │ │ ├── gemini.rs │ │ │ ├── mod.rs │ │ │ ├── openai.rs │ │ │ └── qwen_code.rs │ │ ├── embedding.rs │ │ ├── graceful_shutdown.rs │ │ ├── hooks.rs │ │ ├── host_functions.rs │ │ ├── image_gen.rs │ │ ├── kernel_handle.rs │ │ ├── lib.rs │ │ ├── link_understanding.rs │ │ ├── llm_driver.rs │ │ ├── llm_errors.rs │ │ ├── loop_guard.rs │ │ ├── mcp.rs │ │ ├── mcp_server.rs │ │ ├── media_understanding.rs │ │ ├── model_catalog.rs │ │ ├── process_manager.rs │ │ ├── prompt_builder.rs │ │ ├── provider_health.rs │ │ ├── python_runtime.rs │ │ ├── reply_directives.rs │ │ ├── retry.rs │ │ ├── routing.rs │ │ ├── sandbox.rs │ │ ├── session_repair.rs │ │ ├── shell_bleed.rs │ │ ├── str_utils.rs │ │ ├── subprocess_sandbox.rs │ │ ├── think_filter.rs │ │ ├── tool_policy.rs │ │ ├── tool_runner.rs │ │ ├── tts.rs │ │ ├── web_cache.rs │ │ ├── web_content.rs │ │ ├── web_fetch.rs │ │ ├── web_search.rs │ │ ├── workspace_context.rs │ │ └── workspace_sandbox.rs │ ├── openfang-skills/ │ │ ├── Cargo.toml │ │ ├── bundled/ │ │ │ ├── ansible/ │ │ │ │ └── SKILL.md │ │ │ ├── api-tester/ │ │ │ │ └── SKILL.md │ │ │ ├── aws/ │ │ │ │ └── SKILL.md │ │ │ ├── azure/ │ │ │ │ └── SKILL.md │ │ │ ├── ci-cd/ │ │ │ │ └── SKILL.md │ │ │ ├── code-reviewer/ │ │ │ │ └── SKILL.md │ │ │ ├── compliance/ │ │ │ │ └── SKILL.md │ │ │ ├── confluence/ │ │ │ │ └── SKILL.md │ │ │ ├── crypto-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── css-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── data-analyst/ │ │ │ │ └── SKILL.md │ │ │ ├── data-pipeline/ │ │ │ │ └── SKILL.md │ │ │ ├── docker/ │ │ │ │ └── SKILL.md │ │ │ ├── elasticsearch/ │ │ │ │ └── SKILL.md │ │ │ ├── email-writer/ │ │ │ │ └── SKILL.md │ │ │ ├── figma-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── gcp/ │ │ │ │ └── SKILL.md │ │ │ ├── git-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── github/ │ │ │ │ └── SKILL.md │ │ │ ├── golang-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── graphql-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── helm/ │ │ │ │ └── SKILL.md │ │ │ ├── interview-prep/ │ │ │ │ └── SKILL.md │ │ │ ├── jira/ │ │ │ │ └── SKILL.md │ │ │ ├── kubernetes/ │ │ │ │ └── SKILL.md │ │ │ ├── linear-tools/ │ │ │ │ └── SKILL.md │ │ │ ├── linux-networking/ │ │ │ │ └── SKILL.md │ │ │ ├── llm-finetuning/ │ │ │ │ └── SKILL.md │ │ │ ├── ml-engineer/ │ │ │ │ └── SKILL.md │ │ │ ├── mongodb/ │ │ │ │ └── SKILL.md │ │ │ ├── nextjs-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── nginx/ │ │ │ │ └── SKILL.md │ │ │ ├── notion/ │ │ │ │ └── SKILL.md │ │ │ ├── oauth-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── openapi-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── pdf-reader/ │ │ │ │ └── SKILL.md │ │ │ ├── postgres-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── presentation/ │ │ │ │ └── SKILL.md │ │ │ ├── project-manager/ │ │ │ │ └── SKILL.md │ │ │ ├── prometheus/ │ │ │ │ └── SKILL.md │ │ │ ├── prompt-engineer/ │ │ │ │ └── SKILL.md │ │ │ ├── python-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── react-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── redis-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── regex-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── rust-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── security-audit/ │ │ │ │ └── SKILL.md │ │ │ ├── sentry/ │ │ │ │ └── SKILL.md │ │ │ ├── shell-scripting/ │ │ │ │ └── SKILL.md │ │ │ ├── slack-tools/ │ │ │ │ └── SKILL.md │ │ │ ├── sql-analyst/ │ │ │ │ └── SKILL.md │ │ │ ├── sqlite-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── sysadmin/ │ │ │ │ └── SKILL.md │ │ │ ├── technical-writer/ │ │ │ │ └── SKILL.md │ │ │ ├── terraform/ │ │ │ │ └── SKILL.md │ │ │ ├── typescript-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── vector-db/ │ │ │ │ └── SKILL.md │ │ │ ├── wasm-expert/ │ │ │ │ └── SKILL.md │ │ │ ├── web-search/ │ │ │ │ └── SKILL.md │ │ │ └── writing-coach/ │ │ │ └── SKILL.md │ │ └── src/ │ │ ├── bundled.rs │ │ ├── clawhub.rs │ │ ├── lib.rs │ │ ├── loader.rs │ │ ├── marketplace.rs │ │ ├── openclaw_compat.rs │ │ ├── registry.rs │ │ └── verify.rs │ ├── openfang-types/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── agent.rs │ │ ├── approval.rs │ │ ├── capability.rs │ │ ├── comms.rs │ │ ├── config.rs │ │ ├── error.rs │ │ ├── event.rs │ │ ├── lib.rs │ │ ├── manifest_signing.rs │ │ ├── media.rs │ │ ├── memory.rs │ │ ├── message.rs │ │ ├── model_catalog.rs │ │ ├── scheduler.rs │ │ ├── serde_compat.rs │ │ ├── taint.rs │ │ ├── tool.rs │ │ ├── tool_compat.rs │ │ └── webhook.rs │ └── openfang-wire/ │ ├── Cargo.toml │ └── src/ │ ├── lib.rs │ ├── message.rs │ ├── peer.rs │ └── registry.rs ├── deploy/ │ └── openfang.service ├── docker-compose.yml ├── docs/ │ ├── README.md │ ├── agent-templates.md │ ├── api-reference.md │ ├── architecture.md │ ├── channel-adapters.md │ ├── cli-reference.md │ ├── configuration.md │ ├── desktop.md │ ├── getting-started.md │ ├── launch-roadmap.md │ ├── mcp-a2a.md │ ├── production-checklist.md │ ├── providers.md │ ├── security.md │ ├── skill-development.md │ ├── troubleshooting.md │ └── workflows.md ├── flake.nix ├── openfang.toml.example ├── packages/ │ └── whatsapp-gateway/ │ ├── .gitignore │ ├── index.js │ └── package.json ├── rust-toolchain.toml ├── rustfmt.toml ├── scripts/ │ ├── docker/ │ │ └── install-smoke.Dockerfile │ ├── install.ps1 │ └── install.sh ├── sdk/ │ ├── javascript/ │ │ ├── examples/ │ │ │ ├── basic.js │ │ │ └── streaming.js │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ └── python/ │ ├── examples/ │ │ ├── client_basic.py │ │ ├── client_streaming.py │ │ └── echo_agent.py │ ├── openfang_client.py │ ├── openfang_sdk.py │ └── setup.py └── xtask/ ├── Cargo.toml └── src/ └── main.rs