ztestoctop 10.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- octop/__init__.py +11 -0
- octop/__main__.py +8 -0
- octop/api/__init__.py +1 -0
- octop/api/app.py +341 -0
- octop/api/bridge_peer.py +111 -0
- octop/api/common/__init__.py +1 -0
- octop/api/common/agent.py +79 -0
- octop/api/common/agent_runtime.py +32 -0
- octop/api/common/agent_workspace.py +19 -0
- octop/api/common/attachments.py +69 -0
- octop/api/common/client_ip.py +56 -0
- octop/api/common/content_disposition.py +35 -0
- octop/api/common/memory_client.py +228 -0
- octop/api/common/public_base.py +29 -0
- octop/api/common/sso_cookie.py +37 -0
- octop/api/common/upload_limit.py +54 -0
- octop/api/common/usage_xlsx.py +563 -0
- octop/api/common/validators.py +87 -0
- octop/api/common/workspace.py +135 -0
- octop/api/deps.py +199 -0
- octop/api/middleware/__init__.py +1 -0
- octop/api/middleware/bridge_proxy.py +313 -0
- octop/api/middleware/jwt_auth.py +72 -0
- octop/api/middleware/setup_lockdown.py +41 -0
- octop/api/openapi_meta.py +214 -0
- octop/api/routers/__init__.py +1 -0
- octop/api/routers/acp.py +303 -0
- octop/api/routers/admin.py +90 -0
- octop/api/routers/agent_files.py +390 -0
- octop/api/routers/agent_mcp.py +92 -0
- octop/api/routers/agent_tools.py +303 -0
- octop/api/routers/agents.py +585 -0
- octop/api/routers/auth.py +299 -0
- octop/api/routers/auth_ldap.py +220 -0
- octop/api/routers/auth_oauth.py +233 -0
- octop/api/routers/auth_oidc.py +182 -0
- octop/api/routers/backup.py +432 -0
- octop/api/routers/bridge.py +535 -0
- octop/api/routers/browser/__init__.py +20 -0
- octop/api/routers/browser/env.py +174 -0
- octop/api/routers/browser/harness.py +367 -0
- octop/api/routers/browser/record_replay.py +324 -0
- octop/api/routers/browser/stream.py +482 -0
- octop/api/routers/browser/uninstall.py +34 -0
- octop/api/routers/channels.py +1108 -0
- octop/api/routers/chat/__init__.py +20 -0
- octop/api/routers/chat/history.py +658 -0
- octop/api/routers/chat/models.py +252 -0
- octop/api/routers/chat/notify_ws.py +76 -0
- octop/api/routers/chat/routes.py +350 -0
- octop/api/routers/chat/serialize.py +1048 -0
- octop/api/routers/chat/sse.py +32 -0
- octop/api/routers/chat/trajectory.py +400 -0
- octop/api/routers/chat/turn.py +358 -0
- octop/api/routers/chat/ws.py +771 -0
- octop/api/routers/connectors.py +1598 -0
- octop/api/routers/cron.py +255 -0
- octop/api/routers/decision.py +198 -0
- octop/api/routers/desktop/__init__.py +20 -0
- octop/api/routers/desktop/install.py +38 -0
- octop/api/routers/desktop/settings.py +49 -0
- octop/api/routers/desktop/status.py +38 -0
- octop/api/routers/desktop/stream.py +379 -0
- octop/api/routers/desktop/uninstall.py +34 -0
- octop/api/routers/envs.py +134 -0
- octop/api/routers/experts.py +928 -0
- octop/api/routers/filesystem.py +250 -0
- octop/api/routers/health.py +28 -0
- octop/api/routers/i18n.py +47 -0
- octop/api/routers/internal_mcp.py +150 -0
- octop/api/routers/invites.py +178 -0
- octop/api/routers/knowledge_bases.py +970 -0
- octop/api/routers/mbti.py +770 -0
- octop/api/routers/media_generation.py +204 -0
- octop/api/routers/memory.py +973 -0
- octop/api/routers/memory_portable.py +303 -0
- octop/api/routers/memory_storage.py +254 -0
- octop/api/routers/mobile/__init__.py +18 -0
- octop/api/routers/mobile/install.py +29 -0
- octop/api/routers/mobile/shell_ws.py +171 -0
- octop/api/routers/mobile/status.py +112 -0
- octop/api/routers/mobile/stream.py +653 -0
- octop/api/routers/observability.py +87 -0
- octop/api/routers/ollama_download_store.py +130 -0
- octop/api/routers/ollama_models.py +403 -0
- octop/api/routers/onnx_models.py +219 -0
- octop/api/routers/plugins.py +508 -0
- octop/api/routers/preferences.py +215 -0
- octop/api/routers/proactive_care.py +145 -0
- octop/api/routers/providers.py +544 -0
- octop/api/routers/search.py +52 -0
- octop/api/routers/security.py +204 -0
- octop/api/routers/settings.py +284 -0
- octop/api/routers/setup.py +437 -0
- octop/api/routers/skill_packages.py +840 -0
- octop/api/routers/skills.py +1607 -0
- octop/api/routers/slash.py +79 -0
- octop/api/routers/storage_backends.py +372 -0
- octop/api/routers/subagents.py +244 -0
- octop/api/routers/teams.py +174 -0
- octop/api/routers/terminal.py +787 -0
- octop/api/routers/tls.py +112 -0
- octop/api/routers/update.py +443 -0
- octop/api/routers/update_store.py +85 -0
- octop/api/routers/uploads.py +83 -0
- octop/api/routers/usage.py +313 -0
- octop/api/routers/user_roles.py +399 -0
- octop/api/routers/users.py +601 -0
- octop/api/routers/voice.py +442 -0
- octop/api/routers/workspace.py +579 -0
- octop/cli/__init__.py +1 -0
- octop/cli/commands/__init__.py +1 -0
- octop/cli/commands/acp.py +63 -0
- octop/cli/commands/admin.py +122 -0
- octop/cli/commands/agent.py +251 -0
- octop/cli/commands/backup.py +188 -0
- octop/cli/commands/bridge.py +405 -0
- octop/cli/commands/captcha.py +35 -0
- octop/cli/commands/channel.py +571 -0
- octop/cli/commands/chats.py +442 -0
- octop/cli/commands/clean.py +44 -0
- octop/cli/commands/completion.py +58 -0
- octop/cli/commands/config.py +40 -0
- octop/cli/commands/cron.py +121 -0
- octop/cli/commands/init.py +133 -0
- octop/cli/commands/memory.py +275 -0
- octop/cli/commands/models.py +251 -0
- octop/cli/commands/plugin.py +80 -0
- octop/cli/commands/provider.py +107 -0
- octop/cli/commands/run.py +194 -0
- octop/cli/commands/service.py +214 -0
- octop/cli/commands/skills.py +138 -0
- octop/cli/commands/update.py +80 -0
- octop/cli/commands/user.py +148 -0
- octop/cli/commands/version.py +17 -0
- octop/cli/main.py +130 -0
- octop/cli/registry.py +38 -0
- octop/cli/repl/__init__.py +1 -0
- octop/cli/repl/embedded_session.py +42 -0
- octop/cli/repl/render.py +352 -0
- octop/cli/repl/runtime.py +133 -0
- octop/cli/repl/session.py +59 -0
- octop/cli/repl/toolbar.py +18 -0
- octop/cli/repl/turn.py +13 -0
- octop/cli/support/__init__.py +1 -0
- octop/cli/support/acting.py +30 -0
- octop/cli/support/ctx.py +68 -0
- octop/cli/support/db.py +150 -0
- octop/cli/support/embedded_ops.py +326 -0
- octop/cli/support/errors.py +14 -0
- octop/cli/support/feishu_creator.py +73 -0
- octop/cli/support/offline_ops.py +606 -0
- octop/cli/support/prompts.py +49 -0
- octop/cli/support/qr.py +167 -0
- octop/cli/support/skills.py +46 -0
- octop/cli/support/state.py +53 -0
- octop/cli/support/stub.py +24 -0
- octop/config.py +633 -0
- octop/dashboard/apple-touch-icon.png +0 -0
- octop/dashboard/assets/AgentPluginsPanel.BJlhPlDN.js +11 -0
- octop/dashboard/assets/AgentPluginsPanel.voOybFnP.css +1 -0
- octop/dashboard/assets/AuthFileDownloadLink.DQC9rSmW.js +1 -0
- octop/dashboard/assets/CardSkeleton.BOEc71GJ.js +1 -0
- octop/dashboard/assets/CopyableResourceId.8y3Y_8uc.js +1 -0
- octop/dashboard/assets/CopyableResourceId.DcPg4LkZ.css +1 -0
- octop/dashboard/assets/EditAgentDrawer.BKiWLT__.css +1 -0
- octop/dashboard/assets/EditAgentDrawer.w674TDCV.js +3 -0
- octop/dashboard/assets/KaTeX_AMS-Regular.BQhdFMY1.woff2 +0 -0
- octop/dashboard/assets/KaTeX_AMS-Regular.DMm9YOAa.woff +0 -0
- octop/dashboard/assets/KaTeX_AMS-Regular.DRggAlZN.ttf +0 -0
- octop/dashboard/assets/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf +0 -0
- octop/dashboard/assets/KaTeX_Caligraphic-Bold.BEiXGLvX.woff +0 -0
- octop/dashboard/assets/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Caligraphic-Regular.CTRA-rTL.woff +0 -0
- octop/dashboard/assets/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Caligraphic-Regular.wX97UBjC.ttf +0 -0
- octop/dashboard/assets/KaTeX_Fraktur-Bold.BdnERNNW.ttf +0 -0
- octop/dashboard/assets/KaTeX_Fraktur-Bold.BsDP51OF.woff +0 -0
- octop/dashboard/assets/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Fraktur-Regular.CB_wures.ttf +0 -0
- octop/dashboard/assets/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Fraktur-Regular.Dxdc4cR9.woff +0 -0
- octop/dashboard/assets/KaTeX_Main-Bold.Cx986IdX.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Main-Bold.Jm3AIy58.woff +0 -0
- octop/dashboard/assets/KaTeX_Main-Bold.waoOVXN0.ttf +0 -0
- octop/dashboard/assets/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Main-BoldItalic.DzxPMmG6.ttf +0 -0
- octop/dashboard/assets/KaTeX_Main-BoldItalic.SpSLRI95.woff +0 -0
- octop/dashboard/assets/KaTeX_Main-Italic.3WenGoN9.ttf +0 -0
- octop/dashboard/assets/KaTeX_Main-Italic.BMLOBm91.woff +0 -0
- octop/dashboard/assets/KaTeX_Main-Italic.NWA7e6Wa.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Main-Regular.B22Nviop.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Main-Regular.Dr94JaBh.woff +0 -0
- octop/dashboard/assets/KaTeX_Main-Regular.ypZvNtVU.ttf +0 -0
- octop/dashboard/assets/KaTeX_Math-BoldItalic.B3XSjfu4.ttf +0 -0
- octop/dashboard/assets/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Math-BoldItalic.iY-2wyZ7.woff +0 -0
- octop/dashboard/assets/KaTeX_Math-Italic.DA0__PXp.woff +0 -0
- octop/dashboard/assets/KaTeX_Math-Italic.flOr_0UB.ttf +0 -0
- octop/dashboard/assets/KaTeX_Math-Italic.t53AETM-.woff2 +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Bold.CFMepnvq.ttf +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Bold.DbIhKOiC.woff +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Italic.DN2j7dab.woff +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Regular.BNo7hRIc.ttf +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Regular.CS6fqUqJ.woff +0 -0
- octop/dashboard/assets/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Script-Regular.C5JkGWo-.ttf +0 -0
- octop/dashboard/assets/KaTeX_Script-Regular.D3wIWfF6.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Script-Regular.D5yQViql.woff +0 -0
- octop/dashboard/assets/KaTeX_Size1-Regular.C195tn64.woff +0 -0
- octop/dashboard/assets/KaTeX_Size1-Regular.Dbsnue_I.ttf +0 -0
- octop/dashboard/assets/KaTeX_Size1-Regular.mCD8mA8B.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Size2-Regular.B7gKUWhC.ttf +0 -0
- octop/dashboard/assets/KaTeX_Size2-Regular.Dy4dx90m.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Size2-Regular.oD1tc_U0.woff +0 -0
- octop/dashboard/assets/KaTeX_Size3-Regular.CTq5MqoE.woff +0 -0
- octop/dashboard/assets/KaTeX_Size3-Regular.DgpXs0kz.ttf +0 -0
- octop/dashboard/assets/KaTeX_Size4-Regular.BF-4gkZK.woff +0 -0
- octop/dashboard/assets/KaTeX_Size4-Regular.DWFBv043.ttf +0 -0
- octop/dashboard/assets/KaTeX_Size4-Regular.Dl5lxZxV.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Typewriter-Regular.C0xS9mPB.woff +0 -0
- octop/dashboard/assets/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 +0 -0
- octop/dashboard/assets/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf +0 -0
- octop/dashboard/assets/LazyMarkdown.xHp3di3S.js +2 -0
- octop/dashboard/assets/NotFoundPage.CqDvdQeL.js +1 -0
- octop/dashboard/assets/NotFoundPage.DRS7wjz-.css +1 -0
- octop/dashboard/assets/PageShell.8ngNwS9L.js +1 -0
- octop/dashboard/assets/PageShell.BgrZ6oXn.css +1 -0
- octop/dashboard/assets/PeerOnlyRemoteAlert.B0srpEt9.js +1 -0
- octop/dashboard/assets/PieChart.B6MMA9GE.js +83 -0
- octop/dashboard/assets/SkillHubTab.ByYOm00n.js +7 -0
- octop/dashboard/assets/SkillHubTab.D5WeJoju.css +1 -0
- octop/dashboard/assets/SkillsTabs.BwL6T1Jc.js +7 -0
- octop/dashboard/assets/SkillsTabs.VxEVpMV5.css +1 -0
- octop/dashboard/assets/StreamSetupGuide.BX4_ZFvD.js +1 -0
- octop/dashboard/assets/StreamSetupGuide.DmLDVh1D.css +1 -0
- octop/dashboard/assets/TabBar.DHfji3ca.js +1 -0
- octop/dashboard/assets/TabPanelHeader.BXWWcA2I.css +1 -0
- octop/dashboard/assets/TabPanelHeader.DSqqHepQ.js +1 -0
- octop/dashboard/assets/WorkspaceDrawer.Cc8YzXoV.js +1 -0
- octop/dashboard/assets/admin.BJmj3OMW.png +0 -0
- octop/dashboard/assets/agentBackendForm.Cyogjd5F.js +1 -0
- octop/dashboard/assets/agentChat.BPMckKf8.js +1 -0
- octop/dashboard/assets/agentRuntimeConfig.VJnO6pld.js +1 -0
- octop/dashboard/assets/aiden0z-pptx-renderer.es.FsOErv6n.js +130 -0
- octop/dashboard/assets/anthropic.hp89qtrg.png +0 -0
- octop/dashboard/assets/arc.C4lJrdy6.js +1 -0
- octop/dashboard/assets/architectureDiagram-3BPJPVTR.TMyKZ9uQ.js +36 -0
- octop/dashboard/assets/band.CudBVStT.js +1 -0
- octop/dashboard/assets/bash.C7aaPQPZ.js +1 -0
- octop/dashboard/assets/blockDiagram-GPEHLZMM.DjrwR_5e.js +132 -0
- octop/dashboard/assets/boss.CPpLkNXR.png +0 -0
- octop/dashboard/assets/bridge.CS4EPjYd.js +1 -0
- octop/dashboard/assets/builtinToolIcons.BB0yeh2V.js +1 -0
- octop/dashboard/assets/c.BgpyoaDV.js +1 -0
- octop/dashboard/assets/c.Ji4TZplN.js +1 -0
- octop/dashboard/assets/c4Diagram-AAUBKEIU.DWxB1Q0G.js +10 -0
- octop/dashboard/assets/channel.C81DwWXg.js +1 -0
- octop/dashboard/assets/chunk-2J33WTMH.BrNdWQtV.js +1 -0
- octop/dashboard/assets/chunk-4BX2VUAB.Dt5z7Z0k.js +1 -0
- octop/dashboard/assets/chunk-55IACEB6.DA3zh9g7.js +1 -0
- octop/dashboard/assets/chunk-727SXJPM.BHbb6I-3.js +206 -0
- octop/dashboard/assets/chunk-AQP2D5EJ.CQ3jAq8F.js +231 -0
- octop/dashboard/assets/chunk-FMBD7UC4.e8ytq19x.js +15 -0
- octop/dashboard/assets/chunk-ND2GUHAM.DmIRSVQy.js +1 -0
- octop/dashboard/assets/chunk-QZHKN3VN.DMi7aXHr.js +1 -0
- octop/dashboard/assets/classDiagram-4FO5ZUOK.CJWgUZ5M.js +1 -0
- octop/dashboard/assets/classDiagram-v2-Q7XG4LA2.CJWgUZ5M.js +1 -0
- octop/dashboard/assets/clike.CPA0YzTK.js +1 -0
- octop/dashboard/assets/codebuddy.CQQPq5E1.png +0 -0
- octop/dashboard/assets/confirmModal.DXH0-jZp.js +1 -0
- octop/dashboard/assets/connectorDefs.Cu4tm4IW.css +1 -0
- octop/dashboard/assets/connectorDefs.D69XOP1x.js +1 -0
- octop/dashboard/assets/connectors.BOgw8HEB.js +1 -0
- octop/dashboard/assets/copyText.31kHvk1y.js +1 -0
- octop/dashboard/assets/cose-bilkent-S5V4N54A.BIn02t04.js +1 -0
- octop/dashboard/assets/cpp.Bh3md360.js +1 -0
- octop/dashboard/assets/css.Dn-1w2Q4.js +1 -0
- octop/dashboard/assets/ctrip-wendao.xsDDzyDE.png +0 -0
- octop/dashboard/assets/cursor.B5jS275Y.png +0 -0
- octop/dashboard/assets/customMcpUtils.XVuTpzYg.js +13 -0
- octop/dashboard/assets/cytoscape.esm.DqnC6J6I.js +331 -0
- octop/dashboard/assets/dagre-BM42HDAG.DPz6OBSV.js +4 -0
- octop/dashboard/assets/dashscope.ClgxyOUM.png +0 -0
- octop/dashboard/assets/deepseek.BfIKgrKz.png +0 -0
- octop/dashboard/assets/defaultLocale.CcTwRAjA.js +1 -0
- octop/dashboard/assets/detailRequestGate.CAwTyMBp.js +1 -0
- octop/dashboard/assets/detailRequestGate.DuK91rVc.css +1 -0
- octop/dashboard/assets/diagram-2AECGRRQ.rNUm64G3.js +43 -0
- octop/dashboard/assets/diagram-5GNKFQAL.KNYjOxDK.js +10 -0
- octop/dashboard/assets/diagram-KO2AKTUF.BBLMeyGA.js +3 -0
- octop/dashboard/assets/diagram-LMA3HP47.CaGVZ4wJ.js +24 -0
- octop/dashboard/assets/diagram-OG6HWLK6.Ce4peo31.js +24 -0
- octop/dashboard/assets/diff.BYE4s9y_.js +3 -0
- octop/dashboard/assets/docKind.DxmOLsrX.js +1 -0
- octop/dashboard/assets/docker.-fJRh9XC.js +1 -0
- octop/dashboard/assets/doctor.HfeCK8-G.png +0 -0
- octop/dashboard/assets/docx-preview.Dms6UQRC.js +27 -0
- octop/dashboard/assets/en.CaWe8dRV.js +90 -0
- octop/dashboard/assets/ensureBuiltins.FqYeL7_D.js +1 -0
- octop/dashboard/assets/erDiagram-TEJ5UH35.CC6xdiq5.js +85 -0
- octop/dashboard/assets/expertMarket.Drt0Z0gb.js +1 -0
- octop/dashboard/assets/feishu.yzJIGqLk.svg +1 -0
- octop/dashboard/assets/fileKind.Ce-W68us.js +1 -0
- octop/dashboard/assets/fileTreeIcon.0systHJG.css +1 -0
- octop/dashboard/assets/fileTreeIcon.QTgjm1tj.js +13 -0
- octop/dashboard/assets/fileTreeNodes.BjDCEnE-.js +1 -0
- octop/dashboard/assets/finance.BoZ3Sw4O.png +0 -0
- octop/dashboard/assets/flowDiagram-I6XJVG4X.Dy5i77Up.js +162 -0
- octop/dashboard/assets/formDraft.d8WbgDpb.js +1 -0
- octop/dashboard/assets/formatMessageTime.C9oWSxOW.js +1 -0
- octop/dashboard/assets/ganttDiagram-6RSMTGT7.2QLA4LMv.js +292 -0
- octop/dashboard/assets/gitGraphDiagram-PVQCEYII.DvYmEEY7.js +106 -0
- octop/dashboard/assets/go.Camj7avl.js +1 -0
- octop/dashboard/assets/graph.Bad5vU0y.js +1 -0
- octop/dashboard/assets/groq.DxjL3oyr.png +0 -0
- octop/dashboard/assets/index.7t8MmVD3.js +27 -0
- octop/dashboard/assets/index.B63AzAzb.js +6 -0
- octop/dashboard/assets/index.BB2TACFT.js +7 -0
- octop/dashboard/assets/index.BDgsFf1o.js +1 -0
- octop/dashboard/assets/index.BGKpDfUo.js +1 -0
- octop/dashboard/assets/index.BOSlOnE5.css +1 -0
- octop/dashboard/assets/index.BQ1HUqpX.css +1 -0
- octop/dashboard/assets/index.Bexwf9h5.js +9 -0
- octop/dashboard/assets/index.Bf2P8KOW.css +1 -0
- octop/dashboard/assets/index.BnR0UZNm.css +1 -0
- octop/dashboard/assets/index.BqxIKm3E.css +1 -0
- octop/dashboard/assets/index.BsYGCvv_.js +72 -0
- octop/dashboard/assets/index.BsfH4C6q.css +1 -0
- octop/dashboard/assets/index.Bxr_iAco.js +2 -0
- octop/dashboard/assets/index.C03jfRo1.js +5 -0
- octop/dashboard/assets/index.C1PiI6iC.css +1 -0
- octop/dashboard/assets/index.C1lMbskB.js +3 -0
- octop/dashboard/assets/index.C2dl2LAE.css +1 -0
- octop/dashboard/assets/index.C4yxPFQf.css +1 -0
- octop/dashboard/assets/index.CC_uo9wK.css +1 -0
- octop/dashboard/assets/index.CUATZ323.css +1 -0
- octop/dashboard/assets/index.CcscnKYC.js +5 -0
- octop/dashboard/assets/index.Cjc4TCPe.css +1 -0
- octop/dashboard/assets/index.Cl5Q7N4w.css +1 -0
- octop/dashboard/assets/index.CrSjNUub.js +1 -0
- octop/dashboard/assets/index.Cz7IYLwr.js +5 -0
- octop/dashboard/assets/index.D-iyj8DH.js +8 -0
- octop/dashboard/assets/index.D4OCT0Yt.css +1 -0
- octop/dashboard/assets/index.D6xoRuBe.js +1 -0
- octop/dashboard/assets/index.D7nEM7nv.css +1 -0
- octop/dashboard/assets/index.DCrcvDUN.css +1 -0
- octop/dashboard/assets/index.DH7bXiZ0.js +2 -0
- octop/dashboard/assets/index.DRfjDAAF.css +1 -0
- octop/dashboard/assets/index.DWqAV4n3.js +12 -0
- octop/dashboard/assets/index.DWyIhCFK.js +10 -0
- octop/dashboard/assets/index.DZrflTr9.css +1 -0
- octop/dashboard/assets/index.Dd4k5Ti-.js +1 -0
- octop/dashboard/assets/index.DjpO9Zui.js +1 -0
- octop/dashboard/assets/index.DkFEuo4I.js +1 -0
- octop/dashboard/assets/index.Dpb1ICSh.css +1 -0
- octop/dashboard/assets/index.Ds_DN6_-.css +1 -0
- octop/dashboard/assets/index.Fzwav60h.css +1 -0
- octop/dashboard/assets/index.G9_xhF8C.js +9 -0
- octop/dashboard/assets/index.GTq9IEDq.js +1 -0
- octop/dashboard/assets/index.IcHPDMJY.js +7 -0
- octop/dashboard/assets/index.U8WmVql_.css +1 -0
- octop/dashboard/assets/index.XeflAzh6.js +11 -0
- octop/dashboard/assets/index.bLemDvv8.js +1 -0
- octop/dashboard/assets/index.ev1UC638.js +1 -0
- octop/dashboard/assets/index.module.B9de4inW.js +1 -0
- octop/dashboard/assets/index.o73Ap-yM.js +1 -0
- octop/dashboard/assets/index.wE0QXcyN.css +1 -0
- octop/dashboard/assets/infoDiagram-5YYISTIA.B5DCRsIU.js +2 -0
- octop/dashboard/assets/init.DDlSWoZO.js +1 -0
- octop/dashboard/assets/ishikawaDiagram-YF4QCWOH.BMqclxra.js +70 -0
- octop/dashboard/assets/java.CLDpgQbZ.js +1 -0
- octop/dashboard/assets/javascript.BCEfN6Kw.js +1 -0
- octop/dashboard/assets/javascript.C0YHZvne.js +1 -0
- octop/dashboard/assets/jev.B-V1Gp3c.png +0 -0
- octop/dashboard/assets/journeyDiagram-JHISSGLW.DKhU2Q9D.js +139 -0
- octop/dashboard/assets/json.P74dTKQ0.js +1 -0
- octop/dashboard/assets/kanban-definition-UN3LZRKU.QKkipNYE.js +89 -0
- octop/dashboard/assets/knowledgeCitationDisplay.DMM3mIg7.js +1 -0
- octop/dashboard/assets/knowledgeDocPreview.CRXKTGi6.js +1 -0
- octop/dashboard/assets/laya.BrsDQXb7.png +0 -0
- octop/dashboard/assets/layout.CYcqwDbi.js +1 -0
- octop/dashboard/assets/linear.CJtCR-3w.js +1 -0
- octop/dashboard/assets/markdown.C2jwThto.js +1 -0
- octop/dashboard/assets/markup.BNAwpkfj.js +1 -0
- octop/dashboard/assets/mbti/ENFJ.svg +2 -0
- octop/dashboard/assets/mbti/ENFP.svg +2 -0
- octop/dashboard/assets/mbti/ENTJ.svg +2 -0
- octop/dashboard/assets/mbti/ENTP.svg +2 -0
- octop/dashboard/assets/mbti/ESFJ.svg +2 -0
- octop/dashboard/assets/mbti/ESFP.svg +2 -0
- octop/dashboard/assets/mbti/ESTJ.svg +2 -0
- octop/dashboard/assets/mbti/ESTP.svg +2 -0
- octop/dashboard/assets/mbti/INFJ.svg +2 -0
- octop/dashboard/assets/mbti/INFP.svg +2 -0
- octop/dashboard/assets/mbti/INTJ.svg +2 -0
- octop/dashboard/assets/mbti/INTP.svg +2 -0
- octop/dashboard/assets/mbti/ISFJ.svg +2 -0
- octop/dashboard/assets/mbti/ISFP.svg +2 -0
- octop/dashboard/assets/mbti/ISTJ.svg +2 -0
- octop/dashboard/assets/mbti/ISTP.svg +2 -0
- octop/dashboard/assets/mermaid.core.Bg-GuoUs.js +309 -0
- octop/dashboard/assets/mimo.pbhfe3Fd.svg +17 -0
- octop/dashboard/assets/mindmap-definition-RKZ34NQL.DLAZa5J4.js +96 -0
- octop/dashboard/assets/minimax.B0Eo-1V9.png +0 -0
- octop/dashboard/assets/modelOptions.BrFzajT7.js +1 -0
- octop/dashboard/assets/modelscope.CJyewHiF.png +0 -0
- octop/dashboard/assets/moonshot.5dnp7eVM.png +0 -0
- octop/dashboard/assets/moonshot.DRX5773U.webp +0 -0
- octop/dashboard/assets/mqtt.IKSdJE9d.png +0 -0
- octop/dashboard/assets/nurse.BW7VUALZ.png +0 -0
- octop/dashboard/assets/obsidian-cli.JedF1cy3.svg +51 -0
- octop/dashboard/assets/octop.tjp5Yqxl.svg +113 -0
- octop/dashboard/assets/ollama.BiKnEc5r.png +0 -0
- octop/dashboard/assets/one-dark.1LAQk5Ty.js +1 -0
- octop/dashboard/assets/one-light.CMyozx7s.js +1 -0
- octop/dashboard/assets/openai.-2_yMGcs.png +0 -0
- octop/dashboard/assets/openalex.DnywkSp7.svg +145 -0
- octop/dashboard/assets/openrouter.CT0jBAsT.png +0 -0
- octop/dashboard/assets/ops.CcZlHhfj.png +0 -0
- octop/dashboard/assets/ordinal.djD5ulR0.js +1 -0
- octop/dashboard/assets/pdf.worker.min.qwK7q_zL.mjs +28 -0
- octop/dashboard/assets/pieDiagram-4H26LBE5.BMmfnM-m.js +30 -0
- octop/dashboard/assets/plugins.CKG7_ncx.js +1 -0
- octop/dashboard/assets/postgres.N6c1xTVB.svg +21 -0
- octop/dashboard/assets/prism-light.BOOS0CO3.js +5 -0
- octop/dashboard/assets/python.DtXtXTKX.js +1 -0
- octop/dashboard/assets/quadrantDiagram-W4KKPZXB.B9GuMtQb.js +7 -0
- octop/dashboard/assets/requirementDiagram-4Y6WPE33.D9OCdpGT.js +84 -0
- octop/dashboard/assets/rust.5cgPugzK.js +1 -0
- octop/dashboard/assets/sankeyDiagram-5OEKKPKP.DwG1hQlh.js +40 -0
- octop/dashboard/assets/saveBlobAsFile.Bq4VCdIR.js +1 -0
- octop/dashboard/assets/sequenceDiagram-3UESZ5HK.C8JwDwZu.js +162 -0
- octop/dashboard/assets/shellCodeBlock.BHtT7p-E.js +1 -0
- octop/dashboard/assets/showApiToast.BwqXoOxP.js +1 -0
- octop/dashboard/assets/skillDisplayNames.ClhQkBfn.js +1 -0
- octop/dashboard/assets/sql.x1lYX_si.js +1 -0
- octop/dashboard/assets/staff.CYK1Sglf.png +0 -0
- octop/dashboard/assets/stateDiagram-AJRCARHV.BQu2cU7D.js +1 -0
- octop/dashboard/assets/stateDiagram-v2-BHNVJYJU.BF4LUSzE.js +1 -0
- octop/dashboard/assets/string.C-vk08Zt.js +1 -0
- octop/dashboard/assets/student.CCx1FvhV.png +0 -0
- octop/dashboard/assets/support.BDskL7hI.png +0 -0
- octop/dashboard/assets/sw-register.BB5nh-x9.js +1 -0
- octop/dashboard/assets/teacher.t6gMsB_T.png +0 -0
- octop/dashboard/assets/teams.CdSyvhZG.js +1 -0
- octop/dashboard/assets/tencent-ardot.CWlfHmKV.png +0 -0
- octop/dashboard/assets/tencent-ima.DBik34z0.png +0 -0
- octop/dashboard/assets/tencent-lexiang.DQ8U6HGW.png +0 -0
- octop/dashboard/assets/terminalThemes.0aI4bBTI.js +1 -0
- octop/dashboard/assets/time.DyOCc4Rp.js +1 -0
- octop/dashboard/assets/timeline-definition-PNZ67QCA.Dkge0DhL.js +120 -0
- octop/dashboard/assets/tiny-invariant.KZqkzbCb.js +1 -0
- octop/dashboard/assets/toolPluginIndex.Bt1q0eH2.js +2 -0
- octop/dashboard/assets/tsx.SFJiIzlP.js +1 -0
- octop/dashboard/assets/typescript.B-ryfxa4.js +1 -0
- octop/dashboard/assets/typescript.TG2tIqnY.js +1 -0
- octop/dashboard/assets/useAsyncResource.DfHlgN-i.js +1 -0
- octop/dashboard/assets/useCardTableView.BF_3-RaS.js +1 -0
- octop/dashboard/assets/useGatedSearchTabs.BYgxOL9j.js +1 -0
- octop/dashboard/assets/useHorizontalResize.BlO2xrI3.js +1 -0
- octop/dashboard/assets/useLandscapeFullscreen.BHCFxZ6c.js +1 -0
- octop/dashboard/assets/useLandscapeFullscreen.D9T5ieL9.css +1 -0
- octop/dashboard/assets/usePathTabs.FsA2xXjw.js +1 -0
- octop/dashboard/assets/useServerTimezone.BFsDQWJx.js +1 -0
- octop/dashboard/assets/useStorageBackends.OFPZoX4n.js +1 -0
- octop/dashboard/assets/vendor-antd.CTwSf1Lt.js +454 -0
- octop/dashboard/assets/vendor-icons.D5K817Wm.js +1246 -0
- octop/dashboard/assets/vendor-markdown.8x0SH759.js +291 -0
- octop/dashboard/assets/vendor-markdown.DVjVcbQd.css +1 -0
- octop/dashboard/assets/vendor-react.DWWhhpb4.js +51 -0
- octop/dashboard/assets/vendor-utils.Bxy7mX_Z.js +20 -0
- octop/dashboard/assets/vendor-xterm.BnL5uhB6.js +9 -0
- octop/dashboard/assets/vendor-xterm.DYP7pi_n.css +32 -0
- octop/dashboard/assets/vennDiagram-CIIHVFJN.Bxcrb0E8.js +34 -0
- octop/dashboard/assets/wardley-L42UT6IY.CDxYcuri.js +173 -0
- octop/dashboard/assets/wardleyDiagram-YWT4CUSO.ebCeL3XK.js +78 -0
- octop/dashboard/assets/workspacePath.B1xlGfEs.js +2 -0
- octop/dashboard/assets/workspacePath.C83dq62S.css +1 -0
- octop/dashboard/assets/xiaoyi.sDsAd89K.png +0 -0
- octop/dashboard/assets/xlsx.CHiiUxq-.js +105 -0
- octop/dashboard/assets/xychartDiagram-2RQKCTM6.B2keBDWP.js +7 -0
- octop/dashboard/assets/yaml.BOXLgM6u.js +1 -0
- octop/dashboard/assets/yuque-mcp.AbtXyfSM.png +0 -0
- octop/dashboard/assets/zh.D-7HvP3m.js +90 -0
- octop/dashboard/assets/zhipu.CFgqzqwQ.png +0 -0
- octop/dashboard/experts/avatars/ai-coding-coach.svg +34 -0
- octop/dashboard/experts/avatars/ai-safety-guardian.svg +34 -0
- octop/dashboard/experts/avatars/business-operations.svg +37 -0
- octop/dashboard/experts/avatars/clinical-learning-subscription.svg +34 -0
- octop/dashboard/experts/avatars/cvm-ai-doctor.svg +34 -0
- octop/dashboard/experts/avatars/cvm-cluster-doctor.svg +34 -0
- octop/dashboard/experts/avatars/default.svg +34 -0
- octop/dashboard/experts/avatars/general-assistant.svg +34 -0
- octop/dashboard/experts/avatars/karpathy-knowledge-base.svg +34 -0
- octop/dashboard/experts/avatars/meituan-living-assistant.svg +34 -0
- octop/dashboard/experts/avatars/multi-agent-orchestrator.svg +34 -0
- octop/dashboard/experts/avatars/news-trend.svg +34 -0
- octop/dashboard/experts/avatars/office-automation.svg +34 -0
- octop/dashboard/experts/avatars/ops-engineer.svg +34 -0
- octop/dashboard/experts/avatars/parenting-companion.svg +34 -0
- octop/dashboard/experts/avatars/scene-academic.svg +28 -0
- octop/dashboard/experts/avatars/scene-content-creation.svg +28 -0
- octop/dashboard/experts/avatars/scene-data.svg +28 -0
- octop/dashboard/experts/avatars/scene-default.svg +28 -0
- octop/dashboard/experts/avatars/scene-design.svg +28 -0
- octop/dashboard/experts/avatars/scene-ecommerce.svg +28 -0
- octop/dashboard/experts/avatars/scene-education.svg +28 -0
- octop/dashboard/experts/avatars/scene-finance.svg +28 -0
- octop/dashboard/experts/avatars/scene-healthcare.svg +28 -0
- octop/dashboard/experts/avatars/scene-hr.svg +28 -0
- octop/dashboard/experts/avatars/scene-legal.svg +28 -0
- octop/dashboard/experts/avatars/scene-lifestyle.svg +28 -0
- octop/dashboard/experts/avatars/scene-marketing.svg +28 -0
- octop/dashboard/experts/avatars/scene-media.svg +28 -0
- octop/dashboard/experts/avatars/scene-mysticism.svg +28 -0
- octop/dashboard/experts/avatars/scene-office.svg +28 -0
- octop/dashboard/experts/avatars/scene-tech.svg +28 -0
- octop/dashboard/experts/avatars/stock-assistant.svg +34 -0
- octop/dashboard/experts/avatars/superpowers-methodology.svg +34 -0
- octop/dashboard/experts/avatars/team-host.svg +53 -0
- octop/dashboard/experts/avatars/tencentcloud-api.svg +34 -0
- octop/dashboard/experts/avatars/wechat-ops.svg +34 -0
- octop/dashboard/favico.svg +35 -0
- octop/dashboard/fonts/FSPixelSansUnicode-Regular.ttf +0 -0
- octop/dashboard/index.html +319 -0
- octop/dashboard/logo_horizontal_dark.png +0 -0
- octop/dashboard/logo_horizontal_white.png +0 -0
- octop/dashboard/logo_vertical_dark.svg +61 -0
- octop/dashboard/logo_vertical_white.svg +61 -0
- octop/dashboard/manifest.json +41 -0
- octop/dashboard/octop-mascot-empty.png +0 -0
- octop/dashboard/octop-mascot-peek.webm +0 -0
- octop/dashboard/octop-mascot-peek.webp +0 -0
- octop/dashboard/octop-mascot-tasks.png +0 -0
- octop/dashboard/octop-mascot-type.webm +0 -0
- octop/dashboard/octop-mascot-type.webp +0 -0
- octop/dashboard/offline.html +77 -0
- octop/dashboard/pcm-processor.js +67 -0
- octop/dashboard/pwa-192.png +0 -0
- octop/dashboard/pwa-512.png +0 -0
- octop/dashboard/sw.js +1 -0
- octop/dashboard/workbox-f0bb1bde.js +1 -0
- octop/i18n/__init__.py +45 -0
- octop/i18n/domains/__init__.py +61 -0
- octop/i18n/domains/agents.py +93 -0
- octop/i18n/domains/attachment.py +56 -0
- octop/i18n/domains/channel.py +41 -0
- octop/i18n/domains/errors.py +12 -0
- octop/i18n/domains/skills.py +28 -0
- octop/i18n/domains/slash.py +23 -0
- octop/i18n/domains/stream.py +290 -0
- octop/i18n/domains/tls.py +9 -0
- octop/i18n/domains/tools.py +122 -0
- octop/i18n/domains/voice.py +61 -0
- octop/i18n/en.json +997 -0
- octop/i18n/loader.py +64 -0
- octop/i18n/zh.json +997 -0
- octop/infra/__init__.py +30 -0
- octop/infra/agent_mcp/__init__.py +5 -0
- octop/infra/agent_mcp/protocol.py +195 -0
- octop/infra/agent_mcp/service.py +316 -0
- octop/infra/agents/builtin_skills/__init__.py +94 -0
- octop/infra/agents/builtin_skills/skill-manager/SKILL.md +71 -0
- octop/infra/agents/builtin_skills/skill-manager/scripts/manage_skills.py +683 -0
- octop/infra/agents/conversation_mode.py +168 -0
- octop/infra/agents/experts/avatar.py +267 -0
- octop/infra/agents/experts/catalog.py +961 -0
- octop/infra/agents/experts/composer_files.py +286 -0
- octop/infra/agents/experts/default_agent.py +107 -0
- octop/infra/agents/experts/library/LICENSE +212 -0
- octop/infra/agents/experts/library/README.md +9 -0
- octop/infra/agents/experts/library/ai-coding-coach/SOUL.md +34 -0
- octop/infra/agents/experts/library/ai-coding-coach/manifest.json +82 -0
- octop/infra/agents/experts/library/ai-coding-coach/skills/cheatsheet/SKILL.md +49 -0
- octop/infra/agents/experts/library/ai-safety-guardian/SOUL.md +42 -0
- octop/infra/agents/experts/library/ai-safety-guardian/manifest.json +82 -0
- octop/infra/agents/experts/library/ai-safety-guardian/skills/security-guide/SKILL.md +55 -0
- octop/infra/agents/experts/library/business-operations/AGENTS.md +39 -0
- octop/infra/agents/experts/library/business-operations/BOOTSTRAP.md +7 -0
- octop/infra/agents/experts/library/business-operations/IDENTITY.md +16 -0
- octop/infra/agents/experts/library/business-operations/README.md +233 -0
- octop/infra/agents/experts/library/business-operations/SOUL.md +13 -0
- octop/infra/agents/experts/library/business-operations/manifest.json +139 -0
- octop/infra/agents/experts/library/business-operations/skills/bo-process-doc/SKILL.md +27 -0
- octop/infra/agents/experts/library/business-operations/skills/bo-process-optimization/SKILL.md +35 -0
- octop/infra/agents/experts/library/business-operations/skills/bo-risk-assessment/SKILL.md +27 -0
- octop/infra/agents/experts/library/business-operations/skills/bo-runbook/SKILL.md +35 -0
- octop/infra/agents/experts/library/business-operations/skills/bo-status-report/SKILL.md +29 -0
- octop/infra/agents/experts/library/business-operations/skills/bo-vendor-review/SKILL.md +22 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/AGENTS.md +51 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/BOOTSTRAP.md +91 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/SOUL.md +39 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/USER.md +51 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/agents/guideline-learning-designer.md +34 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/agents/medical-learning-safety-reviewer.md +32 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/manifest.json +346 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/compliance-boundary.md +73 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/cron-presets.json +71 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/daily-learning-template.md +57 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/department-queues.md +22 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/international-guideline-source-routes.yaml +96 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/learning-diagnosis-template.md +55 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/learning-operations.md +117 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/learning-track-template.md +45 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/output-templates.md +189 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/professional-society-source-routes.yaml +174 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/source-policy.yaml +420 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/references/verified-source-entrypoints.yaml +55 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/scripts/clinical_profile.py +2608 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/scripts/simulate_weixin_flow.py +238 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/scripts/validate_output.py +513 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/clinical-q-and-a/SKILL.md +50 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/doctor-registration/SKILL.md +97 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/exam-material-recommendation/SKILL.md +77 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/guideline-learning/SKILL.md +58 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/guideline-learning-diagnosis/SKILL.md +119 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/guideline-section-expansion/SKILL.md +107 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/guideline-update-reminder/SKILL.md +100 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/insurance-policy-learning/SKILL.md +107 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/intent-routing/SKILL.md +30 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/medical-source-failover/SKILL.md +98 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/medical-source-failover/references/document-identity.md +97 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/medical-source-failover/references/domestic-source-registry.md +83 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/medical-source-failover/references/failover-policy.md +93 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/output-format/SKILL.md +89 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/source-verify/SKILL.md +181 -0
- octop/infra/agents/experts/library/clinical-learning-subscription/skills/subscription-setup/SKILL.md +70 -0
- octop/infra/agents/experts/library/cowork-plugin-management/AGENTS.md +27 -0
- octop/infra/agents/experts/library/cowork-plugin-management/SOUL.md +18 -0
- octop/infra/agents/experts/library/cowork-plugin-management/manifest.json +88 -0
- octop/infra/agents/experts/library/cowork-plugin-management/skills/cowork-plugin-customizer/SKILL.md +150 -0
- octop/infra/agents/experts/library/cowork-plugin-management/skills/cowork-plugin-customizer/examples/customized-mcp.json +40 -0
- octop/infra/agents/experts/library/cowork-plugin-management/skills/cowork-plugin-customizer/references/mcp-servers.md +93 -0
- octop/infra/agents/experts/library/cowork-plugin-management/skills/cowork-plugin-customizer/references/search-strategies.md +51 -0
- octop/infra/agents/experts/library/cowork-plugin-management/skills/create-cowork-plugin/SKILL.md +268 -0
- octop/infra/agents/experts/library/cowork-plugin-management/skills/create-cowork-plugin/references/component-schemas.md +396 -0
- octop/infra/agents/experts/library/cowork-plugin-management/skills/create-cowork-plugin/references/example-plugins.md +352 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/HEARTBEAT.md +225 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/IDENTITY.md +38 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/SOUL.md +123 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/USER.md +48 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/manifest.json +138 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/API.md +167 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/AUDIT-INDEX.txt +171 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/AUDIT-REPORT-2026-05-09.md +410 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/AUDIT-SUMMARY.txt +270 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/COMMAND-SAMPLING-AUDIT.txt +175 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/README.md +161 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/SKILL.md +469 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_archived/SKILL-v1-original.md.bak +1136 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_archived/SKILL-v3-lean.md +420 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_backup/00-quick-reference.md +186 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_backup/00-scenario-index.md +1251 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_backup/disk-smart.md +573 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_backup/hardware-other.md +943 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_backup/resource-saturation.md +848 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_backup/system-logs.md +709 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/_backup/time-sync.md +675 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/cli-seeders/ai-clis.md +3 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/cli-seeders/evaltools.md +7 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/local-ai/audit-local-ai-packages.md +97 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/local-ai/comfyui/setup-comfyui.md +75 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/local-ai/gpu-ai-ml-assessment.md +441 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/local-ai/ollama/prune-ollama.md +14 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/local-ai/ollama/setup-ollama.md +57 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/local-ai/ollama/suggest-ollama-models.md +78 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/mcp/manage-mcp-servers.md +104 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/ai/stt/setup-speech-to-text.md +112 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/audio/mic-always-100.md +5 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/audio/set-as-default-mic.md +2 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/backup/identify-backup-targets.md +109 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/bluetooth/reset-bluetooth.md +330 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/bluetooth/troubleshoot-bluetooth.md +300 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/bash/add-bash-alias.md +9 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/bash/validate-bashrc.md +99 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/check-path.md +209 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/git/check-git-config.md +103 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/git/check-global-gitignore.md +145 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/permissions/debug-folder-permissions.md +234 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/ssh/list-ssh-connections.md +91 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/configuration/ssh/manage-ssh-keys.md +91 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/debugging/boot/check-boot-logs.md +43 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/debugging/boot/failed-boot-services.md +7 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/debugging/boot/review-boot.md +75 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/debugging/diagnose-crash.md +157 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/debugging/diagnose-slowdown.md +155 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/docker/setup-docker.md +258 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/ides/optimize-vscode-installation.md +131 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/node/node-version-check.md +1 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/node/npm-install.md +1 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/python/conda/manage-conda-environments.md +368 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/python/conda/setup-conda-data-analysis.md +88 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/python/conda/setup-conda-llm-finetune.md +108 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/python/conda/setup-conda-rocm.md +86 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/python/conda/setup-conda-stt-finetune.md +103 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/python/identify-python-environments.md +89 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/python/pyenv/setup-pyenv.md +52 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/sdks/sdk-check.md +2 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/suggest-ides.md +115 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/yadm/check-yadm.md +51 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/dev-tools/yadm/manually-update-yadm.md +49 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/display/capture-current-config.md +8 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/display/list-connected-displays.md +72 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/display/optimize-display-scaling.md +135 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/display/setup-multi-monitor.md +90 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/display/switch-display-profile.md +172 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fonts/install-google-fonts.md +80 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fonts/list-fonts.md +79 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/chunk/chunk-this-dir.md +5 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/consolidate/consolidate-folders.md +46 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/flatten/flatten.md +7 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/idate/suggest-folder-structure.md +52 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/separate/separate-by-filetype.md +3 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/separate/separate-photos-and-video.md +5 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/tidy-up/desktop-tidy.md +9 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/fs-optimisation/tidy-up/organize-loose-files.md +32 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/check-gpu-os-optimization.md +84 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/evaluate-wake-devices.md +75 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/hardware-profilers/by-component/profile-cpu.md +420 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/hardware-profilers/by-component/profile-gpu.md +357 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/hardware-profilers/by-component/profile-motherboard.md +456 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/hardware-profilers/by-component/profile-ram.md +278 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/hardware-profilers/hardware-identity.md +139 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/hardware-profilers/hardware-profile.md +245 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/hardware/review-gpu-settings.md +104 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/install-brew.md +123 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/install-gh-cli.md +309 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/install-pipx.md +321 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/install-sdkman.md +180 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/install-yadm.md +111 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/setup-aws-cli.md +40 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/setup-b2-cli.md +40 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/clis/setup-rclone.md +41 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/guis/input-remapper.md +1 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/install-from-gh.md +7 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/installation/install-this.md +3 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/kde/backup-kde-settings.md +248 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/kde/list-kde-shortcuts.md +291 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/kde/optimize-kde-performance.md +288 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/kde/reset-plasma-config.md +249 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/logging/analyze-journal-errors.md +118 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/logging/check-failed-units.md +204 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/logging/monitor-system-resources.md +139 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/logging/tail-system-logs.md +115 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/media/check-codecs.md +89 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/network/diagnose-network-issues.md +87 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/network/lan/diagnose-lan-connectivity.md +80 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/network/lan/lan-ssh-setup.md +11 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/network/lan/scan-lan.md +47 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/network/lan/smart-arp.md +17 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/optimisation/large-files.md +7 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/optimisation/optimize-boot-speed.md +73 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/package-management/check-apt-health.md +183 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/package-management/check-third-party-repos.md +54 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/package-management/configure-auto-updates.md +186 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/package-management/evaluate-installed-software.md +50 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/package-management/identify-unused-packages.md +55 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/package-management/install-brew.md +1 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/peripherals/evtest.md +3 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/peripherals/list-usb-devices.md +277 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/power-mgmt/hibernation.md +1 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/power-mgmt/wol-setup.md +14 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/program-management/install-github-program.md +50 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/repositories/delete-old-repos.md +15 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/repositories/organise-repos.md +17 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/security/audits/probe-vulnerabilities.md +59 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/security/audits/write-audit.md +13 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/security/auth/yubi-setup.md +7 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/security/av/install-clamav.md +89 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/security/detect-spyware.md +62 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/security/firewall/analyze-firewall.md +286 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/security/posture-diagnostics/security-posture-check.md +98 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/storage/health-checks/btrfs-snapper-health.md +41 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/storage/health-checks/check-drive-health.md +117 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/storage/health-checks/smart-status.md +43 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/storage/network-mounts/setup-nfs-mounts.md +154 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/storage/network-mounts/setup-smb-mounts.md +201 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/storage/raid/check-raid-config.md +54 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/storage/storage-deep-dive.md +88 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/system-health/optimize-pipewire.md +57 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/system-health/review-startup-services.md +102 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/system-health/system-health-checkup.md +118 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/system-health/system-upgrade.md +21 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/utilities/diagnose-printers.md +54 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/video/codecs.md +1 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/commands/virtualization/check-virtualization.md +318 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/docs/architecture.md +409 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/docs/cvm-doctor-report.html +851 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/docs/scenario-decision-guide.md +302 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/docs/scenario-index-maintenance.md +208 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/examples/cron-job-spec.json +34 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/00-scenario-index.md +457 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/cluster-deep-analysis.md +463 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/cluster-discovery.md +169 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/cluster-health-score.md +173 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/cluster-quick-check.md +230 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/cluster-remediation.md +215 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/cvm-self-diagnosis-repair.md +219 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/disk-smart-deep.md +209 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/disk-smart-quick.md +145 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/hardware-health-deep.md +276 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/hardware-health-quick.md +236 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/resource-saturation-deep-combined.md +345 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/resource-saturation-deep-cpu.md +278 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/resource-saturation-deep-disk.md +343 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/resource-saturation-deep-memory.md +282 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/resource-saturation-deep-network.md +297 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/resource-saturation-quick.md +342 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/skill-collaboration-tencentcloud.md +276 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/skill-collaboration.md +223 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/system-logs-deep-auth.md +111 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/system-logs-deep-fs.md +106 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/system-logs-deep-kernel.md +196 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/system-logs-deep-oom.md +176 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/system-logs-deep-service.md +102 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/system-logs-quick.md +327 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/references/time-sync.md +675 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/README.md +141 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/analyze_stats.sh +287 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_deep_cpu.sh +55 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_deep_disk.sh +56 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_deep_memory.sh +50 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_deep_network.sh +58 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_deep_ssh.sh +53 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_os_snapshot.sh +39 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_patrol_record.py +171 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_patrol_server.py +226 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/cluster_score.sh +292 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/combined_analysis.sh +259 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/deep_scan.sh +452 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/generate_promo.py +53 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/log_stats.sh +36 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/patrol.sh +453 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/patrol_server.py +139 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/quick_scan.ps1 +182 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/quick_scan.sh +415 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/serve_dashboard.sh +57 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/setup-lightclaw-cron.sh +199 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/sync_skill.sh +136 -0
- octop/infra/agents/experts/library/cvm-ai-doctor/skills/cvm-ai-doctor/version.ini +12 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/HEARTBEAT.md +221 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/IDENTITY.md +53 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/SOUL.md +151 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/USER.md +53 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/manifest.json +142 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/SKILL.md +565 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/_meta.json +6 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/references/auto-check-resource.md +90 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/references/cbs-bindto-cvm.md +437 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/references/cloud-service-healthcheck.md +688 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/references/cvm-security-check.md +192 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/references/lighthouse-app-deploy.md +516 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/references/lighthouse-openclaw-setup.md +154 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/references/lighthouse-website-setup.md +308 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/scripts/tccli-oauth-helper.py +361 -0
- octop/infra/agents/experts/library/cvm-cluster-doctor/skills/tencentcloud-infra/scripts/whoami.sh +17 -0
- octop/infra/agents/experts/library/default/AGENTS.md +22 -0
- octop/infra/agents/experts/library/default/manifest.json +32 -0
- octop/infra/agents/experts/library/design/AGENTS.md +27 -0
- octop/infra/agents/experts/library/design/CONNECTORS.md +18 -0
- octop/infra/agents/experts/library/design/SOUL.md +23 -0
- octop/infra/agents/experts/library/design/manifest.json +88 -0
- octop/infra/agents/experts/library/design/skills/accessibility-review/SKILL.md +128 -0
- octop/infra/agents/experts/library/design/skills/design-critique/SKILL.md +118 -0
- octop/infra/agents/experts/library/design/skills/design-handoff/SKILL.md +131 -0
- octop/infra/agents/experts/library/design/skills/design-system/SKILL.md +190 -0
- octop/infra/agents/experts/library/design/skills/research-synthesis/SKILL.md +92 -0
- octop/infra/agents/experts/library/design/skills/user-research/SKILL.md +41 -0
- octop/infra/agents/experts/library/design/skills/ux-copy/SKILL.md +107 -0
- octop/infra/agents/experts/library/engineering/AGENTS.md +27 -0
- octop/infra/agents/experts/library/engineering/CONNECTORS.md +19 -0
- octop/infra/agents/experts/library/engineering/SOUL.md +26 -0
- octop/infra/agents/experts/library/engineering/manifest.json +88 -0
- octop/infra/agents/experts/library/engineering/skills/architecture/SKILL.md +85 -0
- octop/infra/agents/experts/library/engineering/skills/code-review/SKILL.md +118 -0
- octop/infra/agents/experts/library/engineering/skills/debug/SKILL.md +95 -0
- octop/infra/agents/experts/library/engineering/skills/deploy-checklist/SKILL.md +78 -0
- octop/infra/agents/experts/library/engineering/skills/documentation/SKILL.md +49 -0
- octop/infra/agents/experts/library/engineering/skills/incident-response/SKILL.md +158 -0
- octop/infra/agents/experts/library/engineering/skills/standup/SKILL.md +75 -0
- octop/infra/agents/experts/library/engineering/skills/system-design/SKILL.md +42 -0
- octop/infra/agents/experts/library/engineering/skills/tech-debt/SKILL.md +32 -0
- octop/infra/agents/experts/library/engineering/skills/testing-strategy/SKILL.md +33 -0
- octop/infra/agents/experts/library/general-assistant/SOUL.md +48 -0
- octop/infra/agents/experts/library/general-assistant/manifest.json +226 -0
- octop/infra/agents/experts/library/general-assistant/skills/octop-assistant/SKILL.md +666 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/AGENTS.md +66 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/BOOTSTRAP.md +16 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/MEMORY.md +36 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/SOUL.md +20 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/knowledge-base/raw/README.md +11 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/knowledge-base/wiki/index.md +29 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/knowledge-base/wiki/log.md +8 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/knowledge-base/wiki/overview.md +27 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/manifest.json +122 -0
- octop/infra/agents/experts/library/karpathy-knowledge-base/skills/llm-wiki/SKILL.md +97 -0
- octop/infra/agents/experts/library/meituan-living-assistant/SOUL.md +28 -0
- octop/infra/agents/experts/library/meituan-living-assistant/manifest.json +136 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/SKILL.md +742 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/references/DOCTOR.md +224 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/references/mt_login.png +0 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/auth.py +224 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/config.json +3 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/diag_auth_log.py +111 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/diag_issue_log.py +78 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/mtuser-pt-passport-0.1.4.tgz +0 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/package-lock.json +40 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/package.json +5 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/plugin_version_lite.py +308 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/qr_local.py +70 -0
- octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/run.js +1275 -0
- octop/infra/agents/experts/library/multi-agent-orchestrator/AGENTS.md +64 -0
- octop/infra/agents/experts/library/multi-agent-orchestrator/SOUL.md +48 -0
- octop/infra/agents/experts/library/multi-agent-orchestrator/manifest.json +67 -0
- octop/infra/agents/experts/library/news-trend/HEARTBEAT.md +38 -0
- octop/infra/agents/experts/library/news-trend/IDENTITY.md +53 -0
- octop/infra/agents/experts/library/news-trend/SOUL.md +314 -0
- octop/infra/agents/experts/library/news-trend/USER.md +53 -0
- octop/infra/agents/experts/library/news-trend/manifest.json +138 -0
- octop/infra/agents/experts/library/news-trend/skills/daily-hot-news/SKILL.md +256 -0
- octop/infra/agents/experts/library/news-trend/skills/daily-hot-news/references/api-formats.md +105 -0
- octop/infra/agents/experts/library/news-trend/skills/daily-hot-news/references/dailyhot-api.md +183 -0
- octop/infra/agents/experts/library/news-trend/skills/daily-hot-news/references/sources.md +640 -0
- octop/infra/agents/experts/library/news-trend/skills/daily-hot-news/scripts/fetch_dailyhot.mjs +41 -0
- octop/infra/agents/experts/library/office-automation/IDENTITY.md +38 -0
- octop/infra/agents/experts/library/office-automation/SOUL.md +23 -0
- octop/infra/agents/experts/library/office-automation/USER.md +38 -0
- octop/infra/agents/experts/library/office-automation/manifest.json +137 -0
- octop/infra/agents/experts/library/office-automation/skills/file_reader/SKILL.md +66 -0
- octop/infra/agents/experts/library/office-automation/skills/news/SKILL.md +55 -0
- octop/infra/agents/experts/library/ops-engineer/IDENTITY.md +24 -0
- octop/infra/agents/experts/library/ops-engineer/SOUL.md +23 -0
- octop/infra/agents/experts/library/ops-engineer/USER.md +24 -0
- octop/infra/agents/experts/library/ops-engineer/manifest.json +137 -0
- octop/infra/agents/experts/library/parenting-companion/AGENTS.md +168 -0
- octop/infra/agents/experts/library/parenting-companion/BOOTSTRAP.md +98 -0
- octop/infra/agents/experts/library/parenting-companion/HEARTBEAT.md +127 -0
- octop/infra/agents/experts/library/parenting-companion/IDENTITY.md +59 -0
- octop/infra/agents/experts/library/parenting-companion/SOUL.md +33 -0
- octop/infra/agents/experts/library/parenting-companion/USER.md +59 -0
- octop/infra/agents/experts/library/parenting-companion/manifest.json +139 -0
- octop/infra/agents/experts/library/parenting-companion/scripts/check_memory_freshness.sh +81 -0
- octop/infra/agents/experts/library/productivity/AGENTS.md +31 -0
- octop/infra/agents/experts/library/productivity/CONNECTORS.md +18 -0
- octop/infra/agents/experts/library/productivity/SOUL.md +22 -0
- octop/infra/agents/experts/library/productivity/manifest.json +88 -0
- octop/infra/agents/experts/library/productivity/skills/dashboard.html +3112 -0
- octop/infra/agents/experts/library/productivity/skills/memory-management/SKILL.md +323 -0
- octop/infra/agents/experts/library/productivity/skills/start/SKILL.md +158 -0
- octop/infra/agents/experts/library/productivity/skills/task-management/SKILL.md +91 -0
- octop/infra/agents/experts/library/productivity/skills/update/SKILL.md +168 -0
- octop/infra/agents/experts/library/stock-assistant/HEARTBEAT.md +79 -0
- octop/infra/agents/experts/library/stock-assistant/IDENTITY.md +37 -0
- octop/infra/agents/experts/library/stock-assistant/SOUL.md +252 -0
- octop/infra/agents/experts/library/stock-assistant/USER.md +37 -0
- octop/infra/agents/experts/library/stock-assistant/manifest.json +138 -0
- octop/infra/agents/experts/library/stock-assistant/skills/stock-info/SKILL.md +163 -0
- octop/infra/agents/experts/library/stock-assistant/skills/stock-info/references/examples.md +65 -0
- octop/infra/agents/experts/library/stock-assistant/skills/stock-info/references/known-issues.md +35 -0
- octop/infra/agents/experts/library/superpowers-methodology/SOUL.md +33 -0
- octop/infra/agents/experts/library/superpowers-methodology/manifest.json +82 -0
- octop/infra/agents/experts/library/superpowers-methodology/skills/engineering-workflow/SKILL.md +61 -0
- octop/infra/agents/experts/library/tencentcloud-api/SOUL.md +88 -0
- octop/infra/agents/experts/library/tencentcloud-api/manifest.json +136 -0
- octop/infra/agents/experts/library/tencentcloud-api/skills/tcapi/SKILL.md +391 -0
- octop/infra/agents/experts/library/tencentcloud-api/skills/tcapi/references/auth.md +117 -0
- octop/infra/agents/experts/library/tencentcloud-api/skills/tcapi/references/install.md +48 -0
- octop/infra/agents/experts/library/tencentcloud-api/skills/tcapi/references/refs.md +49 -0
- octop/infra/agents/experts/library/wechat-ops/IDENTITY.md +62 -0
- octop/infra/agents/experts/library/wechat-ops/SOUL.md +39 -0
- octop/infra/agents/experts/library/wechat-ops/USER.md +62 -0
- octop/infra/agents/experts/library/wechat-ops/manifest.json +137 -0
- octop/infra/agents/experts/library/wechat-ops/skills/publisher-multi-platform/IDENTITY.md +45 -0
- octop/infra/agents/experts/library/wechat-ops/skills/publisher-multi-platform/SKILL.md +453 -0
- octop/infra/agents/experts/library/wechat-ops/skills/publisher-multi-platform/SOUL.md +39 -0
- octop/infra/agents/experts/library/wechat-ops/skills/publisher-multi-platform/manifest.yaml +11 -0
- octop/infra/agents/experts/library/wechat-ops/skills/publisher-multi-platform/scripts/setup_server.sh +112 -0
- octop/infra/agents/experts/library/wechat-ops/skills/publisher-multi-platform/scripts/wechat_publish.py +1097 -0
- octop/infra/agents/experts/library/wechat-ops/skills/publisher-multi-platform/scripts/xhs_publish.py +592 -0
- octop/infra/agents/experts/manifest_generator.py +653 -0
- octop/infra/agents/experts/manifest_generator_skill.md +144 -0
- octop/infra/agents/experts/market_creation.py +406 -0
- octop/infra/agents/experts/publish.py +293 -0
- octop/infra/agents/experts/published_creation.py +427 -0
- octop/infra/agents/experts/skillhub_market.py +1355 -0
- octop/infra/agents/manager.py +4187 -0
- octop/infra/agents/memory/__init__.py +21 -0
- octop/infra/agents/memory/backend.py +87 -0
- octop/infra/agents/memory/compact_store.py +50 -0
- octop/infra/agents/memory/postgres_storage.py +220 -0
- octop/infra/agents/memory/slim.py +553 -0
- octop/infra/agents/memory/slim_control.py +176 -0
- octop/infra/agents/memory/sqlite_restore.py +129 -0
- octop/infra/agents/memory/sqlite_storage.py +102 -0
- octop/infra/agents/memory/storage.py +47 -0
- octop/infra/agents/memory/thread_cleanup.py +933 -0
- octop/infra/agents/middleware/binary_read_guard.py +128 -0
- octop/infra/agents/middleware/browser_profile.py +71 -0
- octop/infra/agents/middleware/model_failover.py +203 -0
- octop/infra/agents/middleware/octop_ui_offload.py +88 -0
- octop/infra/agents/middleware/reasoning.py +50 -0
- octop/infra/agents/middleware/thread_artifacts.py +199 -0
- octop/infra/agents/middleware/token_quota.py +48 -0
- octop/infra/agents/middleware/workspace_image.py +88 -0
- octop/infra/agents/persona/__init__.py +21 -0
- octop/infra/agents/persona/loader.py +83 -0
- octop/infra/agents/persona/mbti_profiles.py +596 -0
- octop/infra/agents/plugins/__init__.py +25 -0
- octop/infra/agents/plugins/bundled/__init__.py +13 -0
- octop/infra/agents/plugins/bundled/air-quality/icon.svg +6 -0
- octop/infra/agents/plugins/bundled/air-quality/main.py +105 -0
- octop/infra/agents/plugins/bundled/air-quality/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/air-quality/ui/index.js +38 -0
- octop/infra/agents/plugins/bundled/air-quality/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/arxiv-search/README.md +34 -0
- octop/infra/agents/plugins/bundled/arxiv-search/icon.svg +12 -0
- octop/infra/agents/plugins/bundled/arxiv-search/main.py +186 -0
- octop/infra/agents/plugins/bundled/arxiv-search/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/arxiv-search/ui/index.js +194 -0
- octop/infra/agents/plugins/bundled/arxiv-search/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/bilibili-anime/icon.svg +7 -0
- octop/infra/agents/plugins/bundled/bilibili-anime/main.py +207 -0
- octop/infra/agents/plugins/bundled/bilibili-anime/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/bilibili-anime/ui/index.js +203 -0
- octop/infra/agents/plugins/bundled/bilibili-anime/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/color-convert/icon.svg +6 -0
- octop/infra/agents/plugins/bundled/color-convert/main.py +88 -0
- octop/infra/agents/plugins/bundled/color-convert/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/color-convert/ui/index.js +37 -0
- octop/infra/agents/plugins/bundled/color-convert/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/daily-english/icon.svg +4 -0
- octop/infra/agents/plugins/bundled/daily-english/main.py +115 -0
- octop/infra/agents/plugins/bundled/daily-english/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/daily-english/ui/index.js +32 -0
- octop/infra/agents/plugins/bundled/daily-english/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/fortune/icon.svg +8 -0
- octop/infra/agents/plugins/bundled/fortune/main.py +116 -0
- octop/infra/agents/plugins/bundled/fortune/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/fortune/ui/index.js +106 -0
- octop/infra/agents/plugins/bundled/fortune/ui/manifest.json +5 -0
- octop/infra/agents/plugins/bundled/fun-facts/icon.svg +5 -0
- octop/infra/agents/plugins/bundled/fun-facts/main.py +71 -0
- octop/infra/agents/plugins/bundled/fun-facts/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/fun-facts/ui/index.js +34 -0
- octop/infra/agents/plugins/bundled/fun-facts/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/github-trending/icon.svg +4 -0
- octop/infra/agents/plugins/bundled/github-trending/main.py +88 -0
- octop/infra/agents/plugins/bundled/github-trending/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/github-trending/ui/index.js +59 -0
- octop/infra/agents/plugins/bundled/github-trending/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/hot-topics/icon.svg +6 -0
- octop/infra/agents/plugins/bundled/hot-topics/main.py +155 -0
- octop/infra/agents/plugins/bundled/hot-topics/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/hot-topics/ui/index.js +98 -0
- octop/infra/agents/plugins/bundled/hot-topics/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/ip-lookup/icon.svg +6 -0
- octop/infra/agents/plugins/bundled/ip-lookup/main.py +54 -0
- octop/infra/agents/plugins/bundled/ip-lookup/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/ip-lookup/ui/index.js +32 -0
- octop/infra/agents/plugins/bundled/ip-lookup/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/market-quotes/icon.svg +6 -0
- octop/infra/agents/plugins/bundled/market-quotes/main.py +163 -0
- octop/infra/agents/plugins/bundled/market-quotes/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/market-quotes/ui/index.js +82 -0
- octop/infra/agents/plugins/bundled/market-quotes/ui/manifest.json +8 -0
- octop/infra/agents/plugins/bundled/meme-maker/icon.svg +7 -0
- octop/infra/agents/plugins/bundled/meme-maker/main.py +92 -0
- octop/infra/agents/plugins/bundled/meme-maker/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/meme-maker/ui/index.js +40 -0
- octop/infra/agents/plugins/bundled/meme-maker/ui/manifest.json +6 -0
- octop/infra/agents/plugins/bundled/mini-games/icon.svg +8 -0
- octop/infra/agents/plugins/bundled/mini-games/main.py +106 -0
- octop/infra/agents/plugins/bundled/mini-games/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/mini-games/ui/index.js +94 -0
- octop/infra/agents/plugins/bundled/mini-games/ui/manifest.json +5 -0
- octop/infra/agents/plugins/bundled/movie-search/icon.svg +5 -0
- octop/infra/agents/plugins/bundled/movie-search/main.py +87 -0
- octop/infra/agents/plugins/bundled/movie-search/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/movie-search/ui/index.js +54 -0
- octop/infra/agents/plugins/bundled/movie-search/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/parcel-tracker/icon.svg +8 -0
- octop/infra/agents/plugins/bundled/parcel-tracker/main.py +105 -0
- octop/infra/agents/plugins/bundled/parcel-tracker/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/parcel-tracker/ui/index.js +101 -0
- octop/infra/agents/plugins/bundled/parcel-tracker/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/pomodoro/icon.svg +6 -0
- octop/infra/agents/plugins/bundled/pomodoro/main.py +61 -0
- octop/infra/agents/plugins/bundled/pomodoro/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/pomodoro/ui/index.js +176 -0
- octop/infra/agents/plugins/bundled/pomodoro/ui/manifest.json +5 -0
- octop/infra/agents/plugins/bundled/qrcode/icon.svg +9 -0
- octop/infra/agents/plugins/bundled/qrcode/main.py +50 -0
- octop/infra/agents/plugins/bundled/qrcode/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/qrcode/ui/index.js +49 -0
- octop/infra/agents/plugins/bundled/qrcode/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/server-status/icon.svg +8 -0
- octop/infra/agents/plugins/bundled/server-status/main.py +159 -0
- octop/infra/agents/plugins/bundled/server-status/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/server-status/ui/index.js +76 -0
- octop/infra/agents/plugins/bundled/server-status/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/short-link/icon.svg +4 -0
- octop/infra/agents/plugins/bundled/short-link/main.py +49 -0
- octop/infra/agents/plugins/bundled/short-link/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/short-link/ui/index.js +33 -0
- octop/infra/agents/plugins/bundled/short-link/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/slack-calendar/icon.svg +8 -0
- octop/infra/agents/plugins/bundled/slack-calendar/main.py +92 -0
- octop/infra/agents/plugins/bundled/slack-calendar/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/slack-calendar/ui/index.js +97 -0
- octop/infra/agents/plugins/bundled/slack-calendar/ui/manifest.json +5 -0
- octop/infra/agents/plugins/bundled/sports-scores/icon.svg +5 -0
- octop/infra/agents/plugins/bundled/sports-scores/main.py +66 -0
- octop/infra/agents/plugins/bundled/sports-scores/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/sports-scores/ui/index.js +48 -0
- octop/infra/agents/plugins/bundled/sports-scores/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/tetris/icon.svg +7 -0
- octop/infra/agents/plugins/bundled/tetris/main.py +30 -0
- octop/infra/agents/plugins/bundled/tetris/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/tetris/ui/index.js +426 -0
- octop/infra/agents/plugins/bundled/tetris/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/travel-inspire/icon.svg +4 -0
- octop/infra/agents/plugins/bundled/travel-inspire/main.py +132 -0
- octop/infra/agents/plugins/bundled/travel-inspire/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/travel-inspire/ui/index.js +34 -0
- octop/infra/agents/plugins/bundled/travel-inspire/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/unit-convert/icon.svg +4 -0
- octop/infra/agents/plugins/bundled/unit-convert/main.py +99 -0
- octop/infra/agents/plugins/bundled/unit-convert/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/unit-convert/ui/index.js +28 -0
- octop/infra/agents/plugins/bundled/unit-convert/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/weather/icon.svg +6 -0
- octop/infra/agents/plugins/bundled/weather/main.py +215 -0
- octop/infra/agents/plugins/bundled/weather/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/weather/ui/index.js +132 -0
- octop/infra/agents/plugins/bundled/weather/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/what-to-eat/icon.svg +5 -0
- octop/infra/agents/plugins/bundled/what-to-eat/main.py +52 -0
- octop/infra/agents/plugins/bundled/what-to-eat/plugin.yaml +11 -0
- octop/infra/agents/plugins/bundled/what-to-eat/ui/index.js +27 -0
- octop/infra/agents/plugins/bundled/what-to-eat/ui/manifest.json +3 -0
- octop/infra/agents/plugins/bundled/wiki-summary/icon.svg +4 -0
- octop/infra/agents/plugins/bundled/wiki-summary/main.py +83 -0
- octop/infra/agents/plugins/bundled/wiki-summary/plugin.yaml +13 -0
- octop/infra/agents/plugins/bundled/wiki-summary/ui/index.js +39 -0
- octop/infra/agents/plugins/bundled/wiki-summary/ui/manifest.json +3 -0
- octop/infra/agents/plugins/legacy_imports.py +87 -0
- octop/infra/agents/plugins/manager.py +809 -0
- octop/infra/agents/plugins/plugin_tool_defaults.py +118 -0
- octop/infra/agents/plugins/plugin_tool_names.py +104 -0
- octop/infra/agents/plugins/seed.py +107 -0
- octop/infra/agents/providers/__init__.py +15 -0
- octop/infra/agents/providers/codex_apply.py +67 -0
- octop/infra/agents/providers/codex_oauth.py +298 -0
- octop/infra/agents/providers/harness_factory.py +47 -0
- octop/infra/agents/providers/health.py +205 -0
- octop/infra/agents/providers/model_flags.py +176 -0
- octop/infra/agents/providers/onnx_catalog.py +179 -0
- octop/infra/agents/providers/onnx_download.py +457 -0
- octop/infra/agents/providers/onnx_service.py +664 -0
- octop/infra/agents/providers/opencode_session.py +95 -0
- octop/infra/agents/providers/presets.py +279 -0
- octop/infra/agents/providers/probe.py +341 -0
- octop/infra/agents/providers/reasoning.py +235 -0
- octop/infra/agents/providers/resolved.py +49 -0
- octop/infra/agents/providers/store.py +416 -0
- octop/infra/agents/security/__init__.py +23 -0
- octop/infra/agents/security/hitl_session.py +286 -0
- octop/infra/agents/security/policy_store.py +65 -0
- octop/infra/agents/security/tool_guard_rules.py +60 -0
- octop/infra/agents/settings/__init__.py +29 -0
- octop/infra/agents/settings/acp.py +144 -0
- octop/infra/agents/settings/decision.py +332 -0
- octop/infra/agents/settings/langfuse.py +166 -0
- octop/infra/agents/settings/laya_runtime.py +531 -0
- octop/infra/agents/settings/media_generation.py +628 -0
- octop/infra/agents/settings/profile.py +153 -0
- octop/infra/agents/settings/runtime_limits.py +182 -0
- octop/infra/agents/settings/tool_catalog.py +226 -0
- octop/infra/agents/subagents/catalog.py +557 -0
- octop/infra/agents/subagents/library/README.md +9 -0
- octop/infra/agents/subagents/library/en/academic/academic-anthropologist.md +125 -0
- octop/infra/agents/subagents/library/en/academic/academic-geographer.md +127 -0
- octop/infra/agents/subagents/library/en/academic/academic-historian.md +123 -0
- octop/infra/agents/subagents/library/en/academic/academic-narratologist.md +118 -0
- octop/infra/agents/subagents/library/en/academic/academic-psychologist.md +118 -0
- octop/infra/agents/subagents/library/en/design/design-brand-guardian.md +322 -0
- octop/infra/agents/subagents/library/en/design/design-image-prompt-engineer.md +236 -0
- octop/infra/agents/subagents/library/en/design/design-inclusive-visuals-specialist.md +71 -0
- octop/infra/agents/subagents/library/en/design/design-persona-walkthrough.md +272 -0
- octop/infra/agents/subagents/library/en/design/design-ui-designer.md +383 -0
- octop/infra/agents/subagents/library/en/design/design-ux-architect.md +469 -0
- octop/infra/agents/subagents/library/en/design/design-ux-researcher.md +329 -0
- octop/infra/agents/subagents/library/en/design/design-visual-storyteller.md +149 -0
- octop/infra/agents/subagents/library/en/design/design-whimsy-injector.md +438 -0
- octop/infra/agents/subagents/library/en/divisions.json +21 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-ai-data-remediation-engineer.md +211 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-ai-engineer.md +146 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-autonomous-optimization-architect.md +107 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-backend-architect.md +236 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-cms-developer.md +536 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-code-reviewer.md +76 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-codebase-onboarding-engineer.md +173 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-data-engineer.md +306 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-database-optimizer.md +176 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-devops-automator.md +376 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-drupal-shopping-cart.md +360 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-email-intelligence-engineer.md +353 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-embedded-firmware-engineer.md +173 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-feishu-integration-developer.md +598 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-filament-optimization-specialist.md +283 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-frontend-developer.md +225 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-git-workflow-master.md +84 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-incident-response-commander.md +444 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-it-service-manager.md +561 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-minimal-change-engineer.md +207 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-mobile-app-builder.md +493 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-multi-agent-systems-architect.md +600 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-orgscript-engineer.md +113 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-prompt-engineer.md +202 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-rapid-prototyper.md +462 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-senior-developer.md +176 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-software-architect.md +112 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-sre.md +90 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-technical-writer.md +393 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-voice-ai-integration-engineer.md +561 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-wechat-mini-program-developer.md +350 -0
- octop/infra/agents/subagents/library/en/engineering/engineering-wordpress-shopping-cart.md +346 -0
- octop/infra/agents/subagents/library/en/finance/finance-bookkeeper-controller.md +260 -0
- octop/infra/agents/subagents/library/en/finance/finance-financial-analyst.md +234 -0
- octop/infra/agents/subagents/library/en/finance/finance-fpa-analyst.md +263 -0
- octop/infra/agents/subagents/library/en/finance/finance-investment-researcher.md +272 -0
- octop/infra/agents/subagents/library/en/finance/finance-tax-strategist.md +239 -0
- octop/infra/agents/subagents/library/en/game-development/game-audio-engineer.md +264 -0
- octop/infra/agents/subagents/library/en/game-development/game-designer.md +167 -0
- octop/infra/agents/subagents/library/en/game-development/level-designer.md +208 -0
- octop/infra/agents/subagents/library/en/game-development/narrative-designer.md +243 -0
- octop/infra/agents/subagents/library/en/game-development/technical-artist.md +229 -0
- octop/infra/agents/subagents/library/en/gis/gis-3d-scene-developer.md +111 -0
- octop/infra/agents/subagents/library/en/gis/gis-analyst.md +91 -0
- octop/infra/agents/subagents/library/en/gis/gis-bim-specialist.md +108 -0
- octop/infra/agents/subagents/library/en/gis/gis-cartography-designer.md +150 -0
- octop/infra/agents/subagents/library/en/gis/gis-drone-reality-mapping.md +120 -0
- octop/infra/agents/subagents/library/en/gis/gis-geoai-ml-engineer.md +105 -0
- octop/infra/agents/subagents/library/en/gis/gis-geoprocessing-specialist.md +97 -0
- octop/infra/agents/subagents/library/en/gis/gis-qa-engineer.md +133 -0
- octop/infra/agents/subagents/library/en/gis/gis-solution-engineer.md +101 -0
- octop/infra/agents/subagents/library/en/gis/gis-spatial-data-engineer.md +97 -0
- octop/infra/agents/subagents/library/en/gis/gis-spatial-data-scientist.md +111 -0
- octop/infra/agents/subagents/library/en/gis/gis-technical-consultant.md +86 -0
- octop/infra/agents/subagents/library/en/gis/gis-web-gis-developer.md +108 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-aeo-foundations.md +264 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-agentic-search-optimizer.md +311 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-ai-citation-strategist.md +170 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-app-store-optimizer.md +321 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-baidu-seo-specialist.md +226 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-bilibili-content-strategist.md +199 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-book-co-author.md +110 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-carousel-growth-engine.md +199 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-china-ecommerce-operator.md +283 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-china-market-localization-strategist.md +283 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-content-creator.md +54 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-cross-border-ecommerce.md +259 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-douyin-strategist.md +149 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-email-strategist.md +249 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-global-podcast-strategist.md +206 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-growth-hacker.md +54 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-instagram-curator.md +113 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-kuaishou-strategist.md +223 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-linkedin-content-creator.md +214 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-livestream-commerce-coach.md +305 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-multi-platform-publisher.md +217 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-podcast-strategist.md +277 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-pr-communications-manager.md +473 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-private-domain-operator.md +308 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-reddit-community-builder.md +123 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-seo-specialist.md +321 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-short-video-editing-coach.md +412 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-social-media-strategist.md +125 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-tiktok-strategist.md +125 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-twitter-engager.md +126 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-video-optimization-specialist.md +119 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-wechat-official-account.md +145 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-weibo-strategist.md +240 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-x-twitter-intelligence-analyst.md +161 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-xiaohongshu-specialist.md +138 -0
- octop/infra/agents/subagents/library/en/marketing/marketing-zhihu-strategist.md +162 -0
- octop/infra/agents/subagents/library/en/paid-media/paid-media-auditor.md +71 -0
- octop/infra/agents/subagents/library/en/paid-media/paid-media-creative-strategist.md +71 -0
- octop/infra/agents/subagents/library/en/paid-media/paid-media-paid-social-strategist.md +71 -0
- octop/infra/agents/subagents/library/en/paid-media/paid-media-ppc-strategist.md +71 -0
- octop/infra/agents/subagents/library/en/paid-media/paid-media-programmatic-buyer.md +71 -0
- octop/infra/agents/subagents/library/en/paid-media/paid-media-search-query-analyst.md +71 -0
- octop/infra/agents/subagents/library/en/paid-media/paid-media-tracking-specialist.md +71 -0
- octop/infra/agents/subagents/library/en/product/product-behavioral-nudge-engine.md +80 -0
- octop/infra/agents/subagents/library/en/product/product-feedback-synthesizer.md +119 -0
- octop/infra/agents/subagents/library/en/product/product-manager.md +469 -0
- octop/infra/agents/subagents/library/en/product/product-sprint-prioritizer.md +154 -0
- octop/infra/agents/subagents/library/en/product/product-trend-researcher.md +159 -0
- octop/infra/agents/subagents/library/en/project-management/project-management-experiment-tracker.md +198 -0
- octop/infra/agents/subagents/library/en/project-management/project-management-jira-workflow-steward.md +230 -0
- octop/infra/agents/subagents/library/en/project-management/project-management-meeting-notes-specialist.md +95 -0
- octop/infra/agents/subagents/library/en/project-management/project-management-project-shepherd.md +194 -0
- octop/infra/agents/subagents/library/en/project-management/project-management-studio-operations.md +200 -0
- octop/infra/agents/subagents/library/en/project-management/project-management-studio-producer.md +203 -0
- octop/infra/agents/subagents/library/en/project-management/project-manager-senior.md +135 -0
- octop/infra/agents/subagents/library/en/sales/sales-account-strategist.md +227 -0
- octop/infra/agents/subagents/library/en/sales/sales-coach.md +271 -0
- octop/infra/agents/subagents/library/en/sales/sales-deal-strategist.md +180 -0
- octop/infra/agents/subagents/library/en/sales/sales-discovery-coach.md +225 -0
- octop/infra/agents/subagents/library/en/sales/sales-engineer.md +182 -0
- octop/infra/agents/subagents/library/en/sales/sales-offer-lead-gen-strategist.md +257 -0
- octop/infra/agents/subagents/library/en/sales/sales-outbound-strategist.md +201 -0
- octop/infra/agents/subagents/library/en/sales/sales-pipeline-analyst.md +267 -0
- octop/infra/agents/subagents/library/en/sales/sales-proposal-strategist.md +217 -0
- octop/infra/agents/subagents/library/en/security/security-appsec-engineer.md +491 -0
- octop/infra/agents/subagents/library/en/security/security-architect.md +304 -0
- octop/infra/agents/subagents/library/en/security/security-blockchain-security-auditor.md +463 -0
- octop/infra/agents/subagents/library/en/security/security-cloud-security-architect.md +523 -0
- octop/infra/agents/subagents/library/en/security/security-compliance-auditor.md +158 -0
- octop/infra/agents/subagents/library/en/security/security-incident-responder.md +437 -0
- octop/infra/agents/subagents/library/en/security/security-penetration-tester.md +399 -0
- octop/infra/agents/subagents/library/en/security/security-senior-secops.md +750 -0
- octop/infra/agents/subagents/library/en/security/security-threat-detection-engineer.md +534 -0
- octop/infra/agents/subagents/library/en/security/security-threat-intelligence-analyst.md +644 -0
- octop/infra/agents/subagents/library/en/spatial-computing/macos-spatial-metal-engineer.md +337 -0
- octop/infra/agents/subagents/library/en/spatial-computing/terminal-integration-specialist.md +70 -0
- octop/infra/agents/subagents/library/en/spatial-computing/visionos-spatial-engineer.md +54 -0
- octop/infra/agents/subagents/library/en/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
- octop/infra/agents/subagents/library/en/spatial-computing/xr-immersive-developer.md +32 -0
- octop/infra/agents/subagents/library/en/spatial-computing/xr-interface-architect.md +32 -0
- octop/infra/agents/subagents/library/en/specialized/accounts-payable-agent.md +185 -0
- octop/infra/agents/subagents/library/en/specialized/agentic-identity-trust.md +387 -0
- octop/infra/agents/subagents/library/en/specialized/agents-orchestrator.md +367 -0
- octop/infra/agents/subagents/library/en/specialized/automation-governance-architect.md +216 -0
- octop/infra/agents/subagents/library/en/specialized/business-strategist.md +488 -0
- octop/infra/agents/subagents/library/en/specialized/change-management-consultant.md +497 -0
- octop/infra/agents/subagents/library/en/specialized/chief-financial-officer.md +388 -0
- octop/infra/agents/subagents/library/en/specialized/corporate-training-designer.md +192 -0
- octop/infra/agents/subagents/library/en/specialized/customer-service.md +398 -0
- octop/infra/agents/subagents/library/en/specialized/customer-success-manager.md +460 -0
- octop/infra/agents/subagents/library/en/specialized/data-consolidation-agent.md +60 -0
- octop/infra/agents/subagents/library/en/specialized/data-privacy-officer.md +412 -0
- octop/infra/agents/subagents/library/en/specialized/esg-sustainability-officer.md +396 -0
- octop/infra/agents/subagents/library/en/specialized/government-digital-presales-consultant.md +363 -0
- octop/infra/agents/subagents/library/en/specialized/grant-writer.md +511 -0
- octop/infra/agents/subagents/library/en/specialized/healthcare-customer-service.md +389 -0
- octop/infra/agents/subagents/library/en/specialized/healthcare-marketing-compliance.md +395 -0
- octop/infra/agents/subagents/library/en/specialized/hospitality-guest-services.md +603 -0
- octop/infra/agents/subagents/library/en/specialized/hr-onboarding.md +451 -0
- octop/infra/agents/subagents/library/en/specialized/identity-graph-operator.md +260 -0
- octop/infra/agents/subagents/library/en/specialized/language-translator.md +264 -0
- octop/infra/agents/subagents/library/en/specialized/legal-billing-time-tracking.md +569 -0
- octop/infra/agents/subagents/library/en/specialized/legal-client-intake.md +492 -0
- octop/infra/agents/subagents/library/en/specialized/legal-document-review.md +454 -0
- octop/infra/agents/subagents/library/en/specialized/loan-officer-assistant.md +555 -0
- octop/infra/agents/subagents/library/en/specialized/lsp-index-engineer.md +314 -0
- octop/infra/agents/subagents/library/en/specialized/ma-integration-manager.md +427 -0
- octop/infra/agents/subagents/library/en/specialized/medical-billing-coding-specialist.md +491 -0
- octop/infra/agents/subagents/library/en/specialized/operations-manager.md +399 -0
- octop/infra/agents/subagents/library/en/specialized/organizational-psychologist.md +391 -0
- octop/infra/agents/subagents/library/en/specialized/personal-growth-mentor.md +159 -0
- octop/infra/agents/subagents/library/en/specialized/real-estate-buyer-seller.md +596 -0
- octop/infra/agents/subagents/library/en/specialized/recruitment-specialist.md +509 -0
- octop/infra/agents/subagents/library/en/specialized/report-distribution-agent.md +65 -0
- octop/infra/agents/subagents/library/en/specialized/retail-customer-returns.md +566 -0
- octop/infra/agents/subagents/library/en/specialized/sales-data-extraction-agent.md +67 -0
- octop/infra/agents/subagents/library/en/specialized/sales-outreach.md +425 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-chief-of-staff.md +279 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-civil-engineer.md +356 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-cultural-intelligence-strategist.md +88 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-developer-advocate.md +317 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-document-generator.md +55 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-french-consulting-market.md +192 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-korean-business-navigator.md +216 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-mcp-builder.md +248 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-model-qa.md +488 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-pricing-analyst.md +243 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-salesforce-architect.md +180 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-strategy-duel-agent.md +130 -0
- octop/infra/agents/subagents/library/en/specialized/specialized-workflow-architect.md +597 -0
- octop/infra/agents/subagents/library/en/specialized/study-abroad-advisor.md +282 -0
- octop/infra/agents/subagents/library/en/specialized/supply-chain-strategist.md +582 -0
- octop/infra/agents/subagents/library/en/specialized/zk-steward.md +211 -0
- octop/infra/agents/subagents/library/en/support/support-analytics-reporter.md +365 -0
- octop/infra/agents/subagents/library/en/support/support-executive-summary-generator.md +212 -0
- octop/infra/agents/subagents/library/en/support/support-finance-tracker.md +442 -0
- octop/infra/agents/subagents/library/en/support/support-infrastructure-maintainer.md +618 -0
- octop/infra/agents/subagents/library/en/support/support-legal-compliance-checker.md +588 -0
- octop/infra/agents/subagents/library/en/support/support-support-responder.md +585 -0
- octop/infra/agents/subagents/library/en/testing/testing-accessibility-auditor.md +316 -0
- octop/infra/agents/subagents/library/en/testing/testing-api-tester.md +306 -0
- octop/infra/agents/subagents/library/en/testing/testing-evidence-collector.md +210 -0
- octop/infra/agents/subagents/library/en/testing/testing-performance-benchmarker.md +268 -0
- octop/infra/agents/subagents/library/en/testing/testing-reality-checker.md +236 -0
- octop/infra/agents/subagents/library/en/testing/testing-test-results-analyzer.md +305 -0
- octop/infra/agents/subagents/library/en/testing/testing-tool-evaluator.md +394 -0
- octop/infra/agents/subagents/library/en/testing/testing-workflow-optimizer.md +450 -0
- octop/infra/agents/subagents/library/zh/academic/academic-anthropologist.md +125 -0
- octop/infra/agents/subagents/library/zh/academic/academic-geographer.md +127 -0
- octop/infra/agents/subagents/library/zh/academic/academic-historian.md +124 -0
- octop/infra/agents/subagents/library/zh/academic/academic-narratologist.md +118 -0
- octop/infra/agents/subagents/library/zh/academic/academic-psychologist.md +118 -0
- octop/infra/agents/subagents/library/zh/academic/academic-study-planner.md +262 -0
- octop/infra/agents/subagents/library/zh/design/design-brand-guardian.md +322 -0
- octop/infra/agents/subagents/library/zh/design/design-image-prompt-engineer.md +236 -0
- octop/infra/agents/subagents/library/zh/design/design-inclusive-visuals-specialist.md +78 -0
- octop/infra/agents/subagents/library/zh/design/design-persona-walkthrough.md +266 -0
- octop/infra/agents/subagents/library/zh/design/design-ui-designer.md +383 -0
- octop/infra/agents/subagents/library/zh/design/design-ux-architect.md +470 -0
- octop/infra/agents/subagents/library/zh/design/design-ux-researcher.md +329 -0
- octop/infra/agents/subagents/library/zh/design/design-visual-storyteller.md +155 -0
- octop/infra/agents/subagents/library/zh/design/design-whimsy-injector.md +435 -0
- octop/infra/agents/subagents/library/zh/divisions.json +100 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-ai-data-remediation-engineer.md +210 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-ai-engineer.md +146 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-autonomous-optimization-architect.md +107 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-backend-architect.md +219 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-cms-developer.md +261 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-code-reviewer.md +76 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-codebase-onboarding-engineer.md +173 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-data-engineer.md +306 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-database-optimizer.md +176 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-devops-automator.md +376 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-dingtalk-integration-developer.md +574 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-drupal-shopping-cart.md +230 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-email-intelligence-engineer.md +181 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-embedded-firmware-engineer.md +163 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-embedded-linux-driver-engineer.md +255 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-feishu-integration-developer.md +178 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-filament-optimization-specialist.md +197 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-fpga-digital-design-engineer.md +227 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-frontend-developer.md +68 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-git-workflow-master.md +93 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-incident-response-commander.md +98 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-iot-solution-architect.md +220 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-it-service-manager.md +95 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-mechanical-design-engineer.md +311 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-minimal-change-engineer.md +142 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-mobile-app-builder.md +288 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-multi-agent-systems-architect.md +600 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-network-engineer-china.md +162 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-orgscript-engineer.md +124 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-pc-host-engineer.md +231 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-prompt-engineer.md +205 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-rapid-prototyper.md +462 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-security-engineer.md +303 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-senior-developer.md +176 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-software-architect.md +112 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-sre.md +90 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-technical-writer.md +317 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-threat-detection-engineer.md +553 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-voice-ai-integration-engineer.md +562 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-wechat-mini-program-developer.md +350 -0
- octop/infra/agents/subagents/library/zh/engineering/engineering-wordpress-shopping-cart.md +346 -0
- octop/infra/agents/subagents/library/zh/finance/finance-bookkeeper-controller.md +130 -0
- octop/infra/agents/subagents/library/zh/finance/finance-financial-analyst.md +119 -0
- octop/infra/agents/subagents/library/zh/finance/finance-financial-forecaster.md +213 -0
- octop/infra/agents/subagents/library/zh/finance/finance-fpa-analyst.md +118 -0
- octop/infra/agents/subagents/library/zh/finance/finance-fraud-detector.md +241 -0
- octop/infra/agents/subagents/library/zh/finance/finance-hk-stock-compliance-reviewer.md +316 -0
- octop/infra/agents/subagents/library/zh/finance/finance-investment-researcher.md +121 -0
- octop/infra/agents/subagents/library/zh/finance/finance-invoice-manager.md +242 -0
- octop/infra/agents/subagents/library/zh/finance/finance-tax-strategist.md +235 -0
- octop/infra/agents/subagents/library/zh/game-development/blender-addon-engineer.md +233 -0
- octop/infra/agents/subagents/library/zh/game-development/game-audio-engineer.md +264 -0
- octop/infra/agents/subagents/library/zh/game-development/game-designer.md +167 -0
- octop/infra/agents/subagents/library/zh/game-development/godot-gameplay-scripter.md +335 -0
- octop/infra/agents/subagents/library/zh/game-development/godot-multiplayer-engineer.md +296 -0
- octop/infra/agents/subagents/library/zh/game-development/godot-shader-developer.md +267 -0
- octop/infra/agents/subagents/library/zh/game-development/level-designer.md +208 -0
- octop/infra/agents/subagents/library/zh/game-development/narrative-designer.md +243 -0
- octop/infra/agents/subagents/library/zh/game-development/roblox-avatar-creator.md +298 -0
- octop/infra/agents/subagents/library/zh/game-development/roblox-experience-designer.md +306 -0
- octop/infra/agents/subagents/library/zh/game-development/roblox-systems-scripter.md +325 -0
- octop/infra/agents/subagents/library/zh/game-development/technical-artist.md +229 -0
- octop/infra/agents/subagents/library/zh/game-development/unity-architect.md +272 -0
- octop/infra/agents/subagents/library/zh/game-development/unity-editor-tool-developer.md +300 -0
- octop/infra/agents/subagents/library/zh/game-development/unity-multiplayer-engineer.md +238 -0
- octop/infra/agents/subagents/library/zh/game-development/unity-shader-graph-artist.md +270 -0
- octop/infra/agents/subagents/library/zh/game-development/unreal-multiplayer-architect.md +314 -0
- octop/infra/agents/subagents/library/zh/game-development/unreal-systems-engineer.md +311 -0
- octop/infra/agents/subagents/library/zh/game-development/unreal-technical-artist.md +256 -0
- octop/infra/agents/subagents/library/zh/game-development/unreal-world-builder.md +274 -0
- octop/infra/agents/subagents/library/zh/gis/gis-3d-scene-developer.md +111 -0
- octop/infra/agents/subagents/library/zh/gis/gis-analyst.md +91 -0
- octop/infra/agents/subagents/library/zh/gis/gis-bim-specialist.md +107 -0
- octop/infra/agents/subagents/library/zh/gis/gis-cartography-designer.md +150 -0
- octop/infra/agents/subagents/library/zh/gis/gis-drone-reality-mapping.md +120 -0
- octop/infra/agents/subagents/library/zh/gis/gis-geoai-ml-engineer.md +105 -0
- octop/infra/agents/subagents/library/zh/gis/gis-geoprocessing-specialist.md +97 -0
- octop/infra/agents/subagents/library/zh/gis/gis-qa-engineer.md +133 -0
- octop/infra/agents/subagents/library/zh/gis/gis-solution-engineer.md +100 -0
- octop/infra/agents/subagents/library/zh/gis/gis-spatial-data-engineer.md +97 -0
- octop/infra/agents/subagents/library/zh/gis/gis-spatial-data-scientist.md +111 -0
- octop/infra/agents/subagents/library/zh/gis/gis-technical-consultant.md +85 -0
- octop/infra/agents/subagents/library/zh/gis/gis-web-gis-developer.md +107 -0
- octop/infra/agents/subagents/library/zh/hr/hr-performance-reviewer.md +248 -0
- octop/infra/agents/subagents/library/zh/hr/hr-recruiter.md +232 -0
- octop/infra/agents/subagents/library/zh/legal/legal-contract-reviewer.md +240 -0
- octop/infra/agents/subagents/library/zh/legal/legal-policy-writer.md +308 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-aeo-foundations.md +261 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-agentic-search-optimizer.md +313 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-ai-citation-strategist.md +170 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-app-store-optimizer.md +310 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-baidu-seo-specialist.md +226 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-bilibili-content-strategist.md +199 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-bilibili-strategist.md +194 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-book-co-author.md +108 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-carousel-growth-engine.md +196 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-china-ecommerce-operator.md +283 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-china-market-localization-strategist.md +283 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-content-creator.md +54 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-cross-border-ecommerce.md +259 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-daily-news-briefing.md +303 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-douyin-strategist.md +150 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-ecommerce-operator.md +216 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-email-strategist.md +249 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-global-podcast-strategist.md +199 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-growth-hacker.md +54 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-instagram-curator.md +112 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-knowledge-commerce-strategist.md +384 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-kuaishou-strategist.md +223 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-linkedin-content-creator.md +211 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-livestream-commerce-coach.md +301 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-multi-platform-publisher.md +215 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-podcast-strategist.md +276 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-pr-communications-manager.md +461 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-private-domain-operator.md +336 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-reddit-community-builder.md +122 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-seo-specialist.md +321 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-short-video-editing-coach.md +438 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-social-media-strategist.md +125 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-tiktok-strategist.md +124 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-twitter-engager.md +125 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-video-optimization-specialist.md +118 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-wechat-official-account.md +145 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-wechat-operator.md +156 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-weibo-strategist.md +240 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-weixin-channels-strategist.md +297 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-x-twitter-intelligence-analyst.md +159 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-xiaohongshu-operator.md +139 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-xiaohongshu-specialist.md +145 -0
- octop/infra/agents/subagents/library/zh/marketing/marketing-zhihu-strategist.md +171 -0
- octop/infra/agents/subagents/library/zh/paid-media/paid-media-auditor.md +71 -0
- octop/infra/agents/subagents/library/zh/paid-media/paid-media-creative-strategist.md +71 -0
- octop/infra/agents/subagents/library/zh/paid-media/paid-media-paid-social-strategist.md +71 -0
- octop/infra/agents/subagents/library/zh/paid-media/paid-media-ppc-strategist.md +71 -0
- octop/infra/agents/subagents/library/zh/paid-media/paid-media-programmatic-buyer.md +71 -0
- octop/infra/agents/subagents/library/zh/paid-media/paid-media-search-query-analyst.md +71 -0
- octop/infra/agents/subagents/library/zh/paid-media/paid-media-tracking-specialist.md +71 -0
- octop/infra/agents/subagents/library/zh/product/product-behavioral-nudge-engine.md +80 -0
- octop/infra/agents/subagents/library/zh/product/product-feedback-synthesizer.md +119 -0
- octop/infra/agents/subagents/library/zh/product/product-manager.md +470 -0
- octop/infra/agents/subagents/library/zh/product/product-sprint-prioritizer.md +154 -0
- octop/infra/agents/subagents/library/zh/product/product-trend-researcher.md +159 -0
- octop/infra/agents/subagents/library/zh/project-management/project-management-experiment-tracker.md +197 -0
- octop/infra/agents/subagents/library/zh/project-management/project-management-jira-workflow-steward.md +228 -0
- octop/infra/agents/subagents/library/zh/project-management/project-management-meeting-notes-specialist.md +94 -0
- octop/infra/agents/subagents/library/zh/project-management/project-management-project-shepherd.md +193 -0
- octop/infra/agents/subagents/library/zh/project-management/project-management-studio-operations.md +199 -0
- octop/infra/agents/subagents/library/zh/project-management/project-management-studio-producer.md +202 -0
- octop/infra/agents/subagents/library/zh/project-management/project-manager-senior.md +134 -0
- octop/infra/agents/subagents/library/zh/sales/sales-account-strategist.md +223 -0
- octop/infra/agents/subagents/library/zh/sales/sales-coach.md +267 -0
- octop/infra/agents/subagents/library/zh/sales/sales-deal-strategist.md +180 -0
- octop/infra/agents/subagents/library/zh/sales/sales-discovery-coach.md +220 -0
- octop/infra/agents/subagents/library/zh/sales/sales-engineer.md +191 -0
- octop/infra/agents/subagents/library/zh/sales/sales-offer-lead-gen-strategist.md +256 -0
- octop/infra/agents/subagents/library/zh/sales/sales-outbound-strategist.md +200 -0
- octop/infra/agents/subagents/library/zh/sales/sales-pipeline-analyst.md +261 -0
- octop/infra/agents/subagents/library/zh/sales/sales-proposal-strategist.md +217 -0
- octop/infra/agents/subagents/library/zh/security/security-appsec-engineer.md +491 -0
- octop/infra/agents/subagents/library/zh/security/security-architect.md +75 -0
- octop/infra/agents/subagents/library/zh/security/security-blockchain-security-auditor.md +463 -0
- octop/infra/agents/subagents/library/zh/security/security-cloud-security-architect.md +69 -0
- octop/infra/agents/subagents/library/zh/security/security-compliance-auditor.md +54 -0
- octop/infra/agents/subagents/library/zh/security/security-incident-responder.md +436 -0
- octop/infra/agents/subagents/library/zh/security/security-penetration-tester.md +400 -0
- octop/infra/agents/subagents/library/zh/security/security-senior-secops.md +749 -0
- octop/infra/agents/subagents/library/zh/security/security-threat-detection-engineer.md +75 -0
- octop/infra/agents/subagents/library/zh/security/security-threat-intelligence-analyst.md +72 -0
- octop/infra/agents/subagents/library/zh/spatial-computing/macos-spatial-metal-engineer.md +335 -0
- octop/infra/agents/subagents/library/zh/spatial-computing/terminal-integration-specialist.md +70 -0
- octop/infra/agents/subagents/library/zh/spatial-computing/visionos-spatial-engineer.md +54 -0
- octop/infra/agents/subagents/library/zh/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
- octop/infra/agents/subagents/library/zh/spatial-computing/xr-immersive-developer.md +32 -0
- octop/infra/agents/subagents/library/zh/spatial-computing/xr-interface-architect.md +32 -0
- octop/infra/agents/subagents/library/zh/specialized/accounts-payable-agent.md +184 -0
- octop/infra/agents/subagents/library/zh/specialized/agentic-identity-trust.md +384 -0
- octop/infra/agents/subagents/library/zh/specialized/agents-orchestrator.md +364 -0
- octop/infra/agents/subagents/library/zh/specialized/automation-governance-architect.md +215 -0
- octop/infra/agents/subagents/library/zh/specialized/business-strategist.md +482 -0
- octop/infra/agents/subagents/library/zh/specialized/change-management-consultant.md +489 -0
- octop/infra/agents/subagents/library/zh/specialized/chief-financial-officer.md +382 -0
- octop/infra/agents/subagents/library/zh/specialized/corporate-training-designer.md +189 -0
- octop/infra/agents/subagents/library/zh/specialized/customer-service.md +396 -0
- octop/infra/agents/subagents/library/zh/specialized/customer-success-manager.md +453 -0
- octop/infra/agents/subagents/library/zh/specialized/data-consolidation-agent.md +60 -0
- octop/infra/agents/subagents/library/zh/specialized/data-privacy-officer.md +418 -0
- octop/infra/agents/subagents/library/zh/specialized/esg-sustainability-officer.md +390 -0
- octop/infra/agents/subagents/library/zh/specialized/gaokao-college-advisor.md +333 -0
- octop/infra/agents/subagents/library/zh/specialized/government-digital-presales-consultant.md +360 -0
- octop/infra/agents/subagents/library/zh/specialized/grant-writer.md +504 -0
- octop/infra/agents/subagents/library/zh/specialized/healthcare-customer-service.md +376 -0
- octop/infra/agents/subagents/library/zh/specialized/healthcare-marketing-compliance.md +389 -0
- octop/infra/agents/subagents/library/zh/specialized/hospitality-guest-services.md +571 -0
- octop/infra/agents/subagents/library/zh/specialized/hr-onboarding.md +450 -0
- octop/infra/agents/subagents/library/zh/specialized/identity-graph-operator.md +257 -0
- octop/infra/agents/subagents/library/zh/specialized/language-translator.md +256 -0
- octop/infra/agents/subagents/library/zh/specialized/legal-billing-time-tracking.md +524 -0
- octop/infra/agents/subagents/library/zh/specialized/legal-client-intake.md +462 -0
- octop/infra/agents/subagents/library/zh/specialized/legal-document-review.md +450 -0
- octop/infra/agents/subagents/library/zh/specialized/livestock-archive-auditor.md +135 -0
- octop/infra/agents/subagents/library/zh/specialized/loan-officer-assistant.md +541 -0
- octop/infra/agents/subagents/library/zh/specialized/lsp-index-engineer.md +312 -0
- octop/infra/agents/subagents/library/zh/specialized/ma-integration-manager.md +419 -0
- octop/infra/agents/subagents/library/zh/specialized/medical-billing-coding-specialist.md +484 -0
- octop/infra/agents/subagents/library/zh/specialized/operations-manager.md +393 -0
- octop/infra/agents/subagents/library/zh/specialized/organizational-psychologist.md +346 -0
- octop/infra/agents/subagents/library/zh/specialized/personal-growth-mentor.md +158 -0
- octop/infra/agents/subagents/library/zh/specialized/prompt-engineer.md +176 -0
- octop/infra/agents/subagents/library/zh/specialized/real-estate-buyer-seller.md +587 -0
- octop/infra/agents/subagents/library/zh/specialized/recruitment-specialist.md +509 -0
- octop/infra/agents/subagents/library/zh/specialized/report-distribution-agent.md +65 -0
- octop/infra/agents/subagents/library/zh/specialized/retail-customer-returns.md +545 -0
- octop/infra/agents/subagents/library/zh/specialized/sales-data-extraction-agent.md +67 -0
- octop/infra/agents/subagents/library/zh/specialized/sales-outreach.md +417 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-ai-policy-writer.md +217 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-chief-of-staff.md +276 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-civil-engineer.md +349 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-cultural-intelligence-strategist.md +87 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-developer-advocate.md +303 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-document-generator.md +56 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-french-consulting-market.md +190 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-korean-business-navigator.md +214 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-mcp-builder.md +246 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-meeting-assistant.md +236 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-model-qa.md +482 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-pricing-analyst.md +241 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-pricing-optimizer.md +254 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-risk-assessor.md +240 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-salesforce-architect.md +178 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-strategy-duel-agent.md +129 -0
- octop/infra/agents/subagents/library/zh/specialized/specialized-workflow-architect.md +593 -0
- octop/infra/agents/subagents/library/zh/specialized/study-abroad-advisor.md +280 -0
- octop/infra/agents/subagents/library/zh/specialized/supply-chain-strategist.md +576 -0
- octop/infra/agents/subagents/library/zh/specialized/technical-translator-agent.md +167 -0
- octop/infra/agents/subagents/library/zh/specialized/zk-steward.md +210 -0
- octop/infra/agents/subagents/library/zh/supply-chain/supply-chain-garment-factory-planning-engineer.md +262 -0
- octop/infra/agents/subagents/library/zh/supply-chain/supply-chain-inventory-forecaster.md +212 -0
- octop/infra/agents/subagents/library/zh/supply-chain/supply-chain-route-optimizer.md +224 -0
- octop/infra/agents/subagents/library/zh/supply-chain/supply-chain-strategist.md +581 -0
- octop/infra/agents/subagents/library/zh/supply-chain/supply-chain-vendor-evaluator.md +232 -0
- octop/infra/agents/subagents/library/zh/support/support-analytics-reporter.md +364 -0
- octop/infra/agents/subagents/library/zh/support/support-executive-summary-generator.md +212 -0
- octop/infra/agents/subagents/library/zh/support/support-finance-tracker.md +441 -0
- octop/infra/agents/subagents/library/zh/support/support-infrastructure-maintainer.md +617 -0
- octop/infra/agents/subagents/library/zh/support/support-legal-compliance-checker.md +587 -0
- octop/infra/agents/subagents/library/zh/support/support-recruitment-specialist.md +508 -0
- octop/infra/agents/subagents/library/zh/support/support-support-responder.md +584 -0
- octop/infra/agents/subagents/library/zh/testing/testing-accessibility-auditor.md +316 -0
- octop/infra/agents/subagents/library/zh/testing/testing-api-tester.md +306 -0
- octop/infra/agents/subagents/library/zh/testing/testing-embedded-qa-engineer.md +258 -0
- octop/infra/agents/subagents/library/zh/testing/testing-evidence-collector.md +210 -0
- octop/infra/agents/subagents/library/zh/testing/testing-performance-benchmarker.md +268 -0
- octop/infra/agents/subagents/library/zh/testing/testing-reality-checker.md +238 -0
- octop/infra/agents/subagents/library/zh/testing/testing-test-results-analyzer.md +305 -0
- octop/infra/agents/subagents/library/zh/testing/testing-tool-evaluator.md +394 -0
- octop/infra/agents/subagents/library/zh/testing/testing-workflow-optimizer.md +450 -0
- octop/infra/agents/teams/__init__.py +41 -0
- octop/infra/agents/teams/jobs.py +77 -0
- octop/infra/agents/teams/service.py +348 -0
- octop/infra/agents/teams/team_manager.py +2384 -0
- octop/infra/agents/teams/template/AGENTS.md +32 -0
- octop/infra/agents/teams/template/MEMORY.md +21 -0
- octop/infra/agents/teams/template/SOUL.md +36 -0
- octop/infra/agents/teams/template/manifest.json +9 -0
- octop/infra/agents/teams/welcome.py +127 -0
- octop/infra/agents/threads/__init__.py +29 -0
- octop/infra/agents/threads/artifact.py +310 -0
- octop/infra/agents/threads/context_breakdown.py +264 -0
- octop/infra/agents/threads/fork.py +289 -0
- octop/infra/agents/workspace/__init__.py +21 -0
- octop/infra/agents/workspace/dir.py +530 -0
- octop/infra/agents/workspace/execute_env.py +138 -0
- octop/infra/auth/__init__.py +1 -0
- octop/infra/auth/captcha/__init__.py +57 -0
- octop/infra/auth/captcha/config.py +85 -0
- octop/infra/auth/captcha/providers.py +425 -0
- octop/infra/auth/captcha/store.py +357 -0
- octop/infra/auth/captcha/verify.py +76 -0
- octop/infra/auth/ldap/__init__.py +5 -0
- octop/infra/auth/ldap/client.py +411 -0
- octop/infra/auth/ldap/config.py +355 -0
- octop/infra/auth/ldap/service.py +312 -0
- octop/infra/auth/ldap/throttle.py +120 -0
- octop/infra/auth/sso/__init__.py +5 -0
- octop/infra/auth/sso/crypto.py +24 -0
- octop/infra/auth/sso/discovery.py +48 -0
- octop/infra/auth/sso/id_token.py +58 -0
- octop/infra/auth/sso/pkce.py +14 -0
- octop/infra/auth/sso/providers/__init__.py +27 -0
- octop/infra/auth/sso/providers/base.py +39 -0
- octop/infra/auth/sso/providers/dingtalk.py +138 -0
- octop/infra/auth/sso/providers/feishu.py +159 -0
- octop/infra/auth/sso/providers/oidc.py +88 -0
- octop/infra/auth/sso/providers/wecom.py +182 -0
- octop/infra/auth/sso/public_base.py +41 -0
- octop/infra/auth/sso/redirect_after.py +17 -0
- octop/infra/auth/sso/service.py +496 -0
- octop/infra/auth/tokens.py +45 -0
- octop/infra/backend/__init__.py +17 -0
- octop/infra/backend/adapter.py +172 -0
- octop/infra/backend/browse.py +312 -0
- octop/infra/backend/compat.py +333 -0
- octop/infra/backend/docker_spec.py +91 -0
- octop/infra/backend/grep_safety.py +362 -0
- octop/infra/backend/opensandbox_deps.py +37 -0
- octop/infra/backend/postgres_spec.py +167 -0
- octop/infra/backend/probe.py +231 -0
- octop/infra/backend/resolver.py +227 -0
- octop/infra/backend/shell_output.py +101 -0
- octop/infra/backend/tree_listing.py +41 -0
- octop/infra/backup/__init__.py +33 -0
- octop/infra/backup/auto.py +290 -0
- octop/infra/backup/chats.py +381 -0
- octop/infra/backup/manifest.py +100 -0
- octop/infra/backup/pg_dump.py +68 -0
- octop/infra/backup/snapshot.py +349 -0
- octop/infra/backup/store.py +249 -0
- octop/infra/backup/system_archive.py +657 -0
- octop/infra/backup/workspace_archive.py +269 -0
- octop/infra/bridge/__init__.py +19 -0
- octop/infra/bridge/crypto.py +28 -0
- octop/infra/bridge/http_tunnel.py +109 -0
- octop/infra/bridge/icons.py +62 -0
- octop/infra/bridge/ids.py +219 -0
- octop/infra/bridge/manager.py +2552 -0
- octop/infra/bridge/peer_auth.py +149 -0
- octop/infra/bridge/peer_turn.py +88 -0
- octop/infra/bridge/transport.py +455 -0
- octop/infra/bridge/tunnel_policy.py +97 -0
- octop/infra/browser/__init__.py +19 -0
- octop/infra/browser/setup.py +531 -0
- octop/infra/connectors/__init__.py +1 -0
- octop/infra/connectors/builder.py +732 -0
- octop/infra/connectors/catalog.json +765 -0
- octop/infra/connectors/catalog.py +316 -0
- octop/infra/connectors/crypto.py +28 -0
- octop/infra/connectors/custom_mcp.py +433 -0
- octop/infra/connectors/default_open.py +57 -0
- octop/infra/connectors/gateway/__init__.py +11 -0
- octop/infra/connectors/gateway/adapters/__init__.py +1 -0
- octop/infra/connectors/gateway/adapters/agently_cli.py +443 -0
- octop/infra/connectors/gateway/adapters/baidu_map.py +113 -0
- octop/infra/connectors/gateway/adapters/ctrip_wendao.py +79 -0
- octop/infra/connectors/gateway/adapters/dingtalk_cli.py +109 -0
- octop/infra/connectors/gateway/adapters/feishu_cli.py +279 -0
- octop/infra/connectors/gateway/adapters/fliggy.py +213 -0
- octop/infra/connectors/gateway/adapters/meituan_travel.py +98 -0
- octop/infra/connectors/gateway/adapters/obsidian_cli.py +475 -0
- octop/infra/connectors/gateway/adapters/qq_mail.py +242 -0
- octop/infra/connectors/gateway/adapters/qq_music.py +145 -0
- octop/infra/connectors/gateway/adapters/tencent_ima.py +508 -0
- octop/infra/connectors/gateway/adapters/tencent_news.py +101 -0
- octop/infra/connectors/gateway/adapters/wechat_reading.py +90 -0
- octop/infra/connectors/gateway/adapters/wecom_cli.py +212 -0
- octop/infra/connectors/gateway/adapters/weknora.py +239 -0
- octop/infra/connectors/gateway/adapters/yuandian.py +221 -0
- octop/infra/connectors/gateway/agently_auth.py +321 -0
- octop/infra/connectors/gateway/agently_watch.py +140 -0
- octop/infra/connectors/gateway/cli_dirs.py +65 -0
- octop/infra/connectors/gateway/cli_fingerprint.py +15 -0
- octop/infra/connectors/gateway/cli_install.py +506 -0
- octop/infra/connectors/gateway/cli_runner.py +96 -0
- octop/infra/connectors/gateway/feishu_creds.py +104 -0
- octop/infra/connectors/gateway/feishu_user_auth.py +223 -0
- octop/infra/connectors/gateway/langchain.py +80 -0
- octop/infra/connectors/gateway/protocol.py +78 -0
- octop/infra/connectors/gateway/registry.py +83 -0
- octop/infra/connectors/gateway/wecom_creds.py +156 -0
- octop/infra/connectors/mail_servers.py +90 -0
- octop/infra/connectors/mcp_tool_cache.py +94 -0
- octop/infra/connectors/oauth/__init__.py +33 -0
- octop/infra/connectors/oauth/builtin.py +36 -0
- octop/infra/connectors/oauth/discovery.py +219 -0
- octop/infra/connectors/oauth/mcp.py +247 -0
- octop/infra/connectors/oauth/pkce.py +18 -0
- octop/infra/connectors/oauth/registry.py +401 -0
- octop/infra/connectors/probe.py +602 -0
- octop/infra/connectors/qcc.py +181 -0
- octop/infra/connectors/service.py +798 -0
- octop/infra/cron/__init__.py +1 -0
- octop/infra/cron/delivery.py +361 -0
- octop/infra/cron/job.py +118 -0
- octop/infra/cron/manager.py +505 -0
- octop/infra/cron/task_type.py +53 -0
- octop/infra/cron/tools.py +267 -0
- octop/infra/cron/trigger.py +140 -0
- octop/infra/db/__init__.py +1 -0
- octop/infra/db/factory.py +44 -0
- octop/infra/db/migrate.py +2110 -0
- octop/infra/db/migrations/001_initial.pg.sql +264 -0
- octop/infra/db/migrations/001_initial.sql +270 -0
- octop/infra/db/migrations/002_cron_mcp_and_skill_packages.pg.sql +21 -0
- octop/infra/db/migrations/002_cron_mcp_and_skill_packages.sql +20 -0
- octop/infra/db/migrations/003_repair_legacy_thread_titles.pg.sql +3 -0
- octop/infra/db/migrations/003_repair_legacy_thread_titles.sql +3 -0
- octop/infra/db/migrations/004_thread_composer_preferences.pg.sql +6 -0
- octop/infra/db/migrations/004_thread_composer_preferences.sql +6 -0
- octop/infra/db/migrations/005_shared_experts_sso_knowledge.pg.sql +100 -0
- octop/infra/db/migrations/005_shared_experts_sso_knowledge.sql +147 -0
- octop/infra/db/migrations/006_user_permissions.pg.sql +3 -0
- octop/infra/db/migrations/006_user_permissions.sql +3 -0
- octop/infra/db/migrations/007_resource_identity_and_profile.pg.sql +124 -0
- octop/infra/db/migrations/007_resource_identity_and_profile.sql +131 -0
- octop/infra/db/migrations/008_usage_cache_tokens.pg.sql +14 -0
- octop/infra/db/migrations/008_usage_cache_tokens.sql +14 -0
- octop/infra/db/migrations/009_user_invites.pg.sql +17 -0
- octop/infra/db/migrations/009_user_invites.sql +17 -0
- octop/infra/db/migrations/010_thread_message_projection.pg.sql +39 -0
- octop/infra/db/migrations/010_thread_message_projection.sql +36 -0
- octop/infra/db/migrations/011_cron_job_names.pg.sql +5 -0
- octop/infra/db/migrations/011_cron_job_names.sql +7 -0
- octop/infra/db/migrations/012_trajectory_events.pg.sql +22 -0
- octop/infra/db/migrations/012_trajectory_events.sql +22 -0
- octop/infra/db/migrations/013_connector_instances.pg.sql +23 -0
- octop/infra/db/migrations/013_connector_instances.sql +52 -0
- octop/infra/db/migrations/014_user_policy.pg.sql +19 -0
- octop/infra/db/migrations/014_user_policy.sql +18 -0
- octop/infra/db/migrations/015_sso_provider_kind.pg.sql +23 -0
- octop/infra/db/migrations/015_sso_provider_kind.sql +23 -0
- octop/infra/db/migrations/016_agent_teams.pg.sql +6 -0
- octop/infra/db/migrations/016_agent_teams.sql +6 -0
- octop/infra/db/migrations/017_thread_conversation_mode.pg.sql +7 -0
- octop/infra/db/migrations/017_thread_conversation_mode.sql +7 -0
- octop/infra/db/migrations/018_user_role.pg.sql +21 -0
- octop/infra/db/migrations/018_user_role.sql +23 -0
- octop/infra/db/migrations/019_bridge_connections.pg.sql +30 -0
- octop/infra/db/migrations/019_bridge_connections.sql +30 -0
- octop/infra/db/migrations/020_skill_copy_policy.pg.sql +5 -0
- octop/infra/db/migrations/020_skill_copy_policy.sql +5 -0
- octop/infra/db/migrations/021_skill_package_download.pg.sql +5 -0
- octop/infra/db/migrations/021_skill_package_download.sql +5 -0
- octop/infra/db/pool.py +176 -0
- octop/infra/db/probe.py +49 -0
- octop/infra/db/rebind.py +150 -0
- octop/infra/db/repos/__init__.py +1 -0
- octop/infra/db/repos/_base.py +81 -0
- octop/infra/db/repos/agents.py +312 -0
- octop/infra/db/repos/audit.py +113 -0
- octop/infra/db/repos/backends.py +154 -0
- octop/infra/db/repos/bridge_connections.py +347 -0
- octop/infra/db/repos/care_push.py +71 -0
- octop/infra/db/repos/channels.py +121 -0
- octop/infra/db/repos/connectors.py +291 -0
- octop/infra/db/repos/cron.py +282 -0
- octop/infra/db/repos/invites.py +240 -0
- octop/infra/db/repos/knowledge.py +508 -0
- octop/infra/db/repos/proactive_care_config.py +127 -0
- octop/infra/db/repos/providers.py +151 -0
- octop/infra/db/repos/published_experts.py +153 -0
- octop/infra/db/repos/secrets.py +41 -0
- octop/infra/db/repos/sessions.py +310 -0
- octop/infra/db/repos/settings.py +38 -0
- octop/infra/db/repos/skill_packages.py +140 -0
- octop/infra/db/repos/sso.py +345 -0
- octop/infra/db/repos/thread_messages.py +317 -0
- octop/infra/db/repos/threads.py +347 -0
- octop/infra/db/repos/trajectory_events.py +194 -0
- octop/infra/db/repos/usage.py +501 -0
- octop/infra/db/repos/user_policies.py +116 -0
- octop/infra/db/repos/user_roles.py +277 -0
- octop/infra/db/repos/users.py +389 -0
- octop/infra/db/repos/voice_providers.py +140 -0
- octop/infra/db/services.py +217 -0
- octop/infra/desktop/__init__.py +5 -0
- octop/infra/desktop/capture.py +266 -0
- octop/infra/desktop/input.py +450 -0
- octop/infra/desktop/scripts/linux/v1.0/check.sh +117 -0
- octop/infra/desktop/scripts/linux/v1.0/install.sh +1150 -0
- octop/infra/desktop/scripts/linux/v1.0/resize.sh +67 -0
- octop/infra/desktop/scripts/linux/v1.0/start-menu.png +0 -0
- octop/infra/desktop/scripts/linux/v1.0/start.sh +44 -0
- octop/infra/desktop/scripts/linux/v1.0/stop.sh +15 -0
- octop/infra/desktop/scripts/linux/v1.0/wallpaper.png +0 -0
- octop/infra/desktop/session.py +129 -0
- octop/infra/desktop/setup.py +1069 -0
- octop/infra/errors.py +357 -0
- octop/infra/gateway/__init__.py +1 -0
- octop/infra/gateway/bot_creators/__init__.py +1 -0
- octop/infra/gateway/bot_creators/feishu_runner.py +123 -0
- octop/infra/gateway/channels/__init__.py +1 -0
- octop/infra/gateway/channels/dingtalk_registration.py +57 -0
- octop/infra/gateway/channels/qr_bind.py +136 -0
- octop/infra/gateway/cli/__init__.py +11 -0
- octop/infra/gateway/cli/cli_channel.py +176 -0
- octop/infra/gateway/cli/events.py +46 -0
- octop/infra/gateway/cli/turn.py +75 -0
- octop/infra/gateway/gateway.py +789 -0
- octop/infra/gateway/history_backfill.py +66 -0
- octop/infra/gateway/hitl/__init__.py +24 -0
- octop/infra/gateway/hitl/coordinator.py +646 -0
- octop/infra/gateway/hitl/format.py +315 -0
- octop/infra/gateway/hitl/store.py +322 -0
- octop/infra/gateway/hitl/stream_compat.py +86 -0
- octop/infra/gateway/media/__init__.py +11 -0
- octop/infra/gateway/media/attachment_hints.py +632 -0
- octop/infra/gateway/media/backend_files.py +573 -0
- octop/infra/gateway/media/constants.py +4 -0
- octop/infra/gateway/media/inbound_store.py +459 -0
- octop/infra/gateway/media/ingress.py +49 -0
- octop/infra/gateway/media/tool_media.py +944 -0
- octop/infra/gateway/plugin_channels.py +223 -0
- octop/infra/gateway/process/__init__.py +31 -0
- octop/infra/gateway/process/agent_resolve.py +40 -0
- octop/infra/gateway/process/channel_thinking.py +32 -0
- octop/infra/gateway/process/harness_request.py +375 -0
- octop/infra/gateway/process/message_keys.py +203 -0
- octop/infra/gateway/process/processor.py +1835 -0
- octop/infra/gateway/process/response_mode.py +202 -0
- octop/infra/gateway/process/stream_project.py +269 -0
- octop/infra/gateway/process/usage_record.py +276 -0
- octop/infra/gateway/slash/__init__.py +18 -0
- octop/infra/gateway/slash/catalog.py +332 -0
- octop/infra/gateway/slash/ctx.py +169 -0
- octop/infra/gateway/slash/dispatcher.py +88 -0
- octop/infra/gateway/slash/formatting.py +63 -0
- octop/infra/gateway/slash/handlers/__init__.py +28 -0
- octop/infra/gateway/slash/handlers/composite.py +365 -0
- octop/infra/gateway/slash/handlers/hitl.py +28 -0
- octop/infra/gateway/slash/handlers/memory.py +187 -0
- octop/infra/gateway/slash/handlers/platform.py +168 -0
- octop/infra/gateway/slash/handlers/session.py +173 -0
- octop/infra/gateway/slash/help.py +25 -0
- octop/infra/gateway/slash/parser.py +20 -0
- octop/infra/gateway/slash/runner.py +46 -0
- octop/infra/gateway/slash/runtime_bridge.py +72 -0
- octop/infra/gateway/slash/types.py +17 -0
- octop/infra/gateway/steer/__init__.py +47 -0
- octop/infra/gateway/steer/coordinator.py +702 -0
- octop/infra/gateway/steer/types.py +141 -0
- octop/infra/gateway/threads.py +520 -0
- octop/infra/gateway/ws/__init__.py +14 -0
- octop/infra/gateway/ws/ws_channel.py +584 -0
- octop/infra/gateway/ws/ws_hub.py +167 -0
- octop/infra/history/__init__.py +1 -0
- octop/infra/history/legacy.py +30 -0
- octop/infra/history/projection.py +240 -0
- octop/infra/history/reader.py +113 -0
- octop/infra/history/recorder.py +485 -0
- octop/infra/history/service.py +272 -0
- octop/infra/history/store.py +273 -0
- octop/infra/history/trajectory/__init__.py +6 -0
- octop/infra/history/trajectory/live.py +31 -0
- octop/infra/history/trajectory/metrics.py +108 -0
- octop/infra/history/trajectory/projector.py +320 -0
- octop/infra/history/trajectory/service.py +409 -0
- octop/infra/history/trajectory/settings.py +79 -0
- octop/infra/history/trajectory/store.py +63 -0
- octop/infra/history/trajectory/turn_context.py +128 -0
- octop/infra/history/trajectory/types.py +29 -0
- octop/infra/history/trajectory_compat.py +96 -0
- octop/infra/knowledge/__init__.py +1 -0
- octop/infra/knowledge/chunk.py +21 -0
- octop/infra/knowledge/citations.py +66 -0
- octop/infra/knowledge/default_open.py +63 -0
- octop/infra/knowledge/embed.py +70 -0
- octop/infra/knowledge/files.py +37 -0
- octop/infra/knowledge/gate.py +170 -0
- octop/infra/knowledge/hint.py +119 -0
- octop/infra/knowledge/index.py +134 -0
- octop/infra/knowledge/jobs.py +87 -0
- octop/infra/knowledge/ocr.py +355 -0
- octop/infra/knowledge/params.py +115 -0
- octop/infra/knowledge/parse.py +314 -0
- octop/infra/knowledge/relpath.py +58 -0
- octop/infra/knowledge/retrieve.py +132 -0
- octop/infra/knowledge/service.py +463 -0
- octop/infra/knowledge/tools.py +120 -0
- octop/infra/metrics.py +37 -0
- octop/infra/mobile/__init__.py +1 -0
- octop/infra/mobile/__main__.py +22 -0
- octop/infra/mobile/adb.py +682 -0
- octop/infra/mobile/agent_control.py +56 -0
- octop/infra/mobile/config_probe.py +56 -0
- octop/infra/mobile/docker_install.py +387 -0
- octop/infra/mobile/h264.py +97 -0
- octop/infra/mobile/probe.py +72 -0
- octop/infra/mobile/scripts/linux/v1.0/install-docker.sh +857 -0
- octop/infra/mobile/scripts/linux/v1.0/install.sh +112 -0
- octop/infra/mobile/setup.py +259 -0
- octop/infra/mobile/tools.py +253 -0
- octop/infra/proactive/__init__.py +18 -0
- octop/infra/proactive/picker.py +217 -0
- octop/infra/proactive/scheduler.py +396 -0
- octop/infra/proactive/service.py +282 -0
- octop/infra/server.py +810 -0
- octop/infra/setup/__init__.py +1 -0
- octop/infra/setup/password_file.py +81 -0
- octop/infra/setup/self_update.py +1188 -0
- octop/infra/setup/service.py +963 -0
- octop/infra/setup/tls/__init__.py +7 -0
- octop/infra/setup/tls/acme_issue.py +135 -0
- octop/infra/setup/tls/challenge.py +28 -0
- octop/infra/setup/tls/http_companion.py +43 -0
- octop/infra/setup/tls/listeners.py +62 -0
- octop/infra/setup/tls/manager.py +257 -0
- octop/infra/setup/tls/modes.py +54 -0
- octop/infra/setup/tls/preflight.py +269 -0
- octop/infra/setup/tls/renewal.py +88 -0
- octop/infra/setup/tls/store.py +95 -0
- octop/infra/setup/wizard_tokens.py +67 -0
- octop/infra/skills/__init__.py +41 -0
- octop/infra/skills/install.py +221 -0
- octop/infra/skills/presentation.py +95 -0
- octop/infra/skills/skill_archive.py +48 -0
- octop/infra/skills/skill_package_from_skillhub.py +132 -0
- octop/infra/skills/skill_package_store.py +229 -0
- octop/infra/skills/skill_packages.py +209 -0
- octop/infra/skills/skill_transfer.py +222 -0
- octop/infra/skills/skillhub_common.py +24 -0
- octop/infra/skills/skillhub_market.py +447 -0
- octop/infra/skills/skills_hub.py +1493 -0
- octop/infra/skills/workspace_catalog.py +176 -0
- octop/infra/users/__init__.py +9 -0
- octop/infra/users/acting.py +42 -0
- octop/infra/users/email.py +34 -0
- octop/infra/users/identity.py +31 -0
- octop/infra/users/invites.py +279 -0
- octop/infra/users/manager.py +887 -0
- octop/infra/users/password.py +70 -0
- octop/infra/users/permissions.py +319 -0
- octop/infra/users/preferences.py +312 -0
- octop/infra/users/profile_avatar.py +100 -0
- octop/infra/users/resource_policy.py +207 -0
- octop/infra/utils/__init__.py +1 -0
- octop/infra/utils/accept_errors.py +67 -0
- octop/infra/utils/anydoc_convert.py +85 -0
- octop/infra/utils/browser_media.py +154 -0
- octop/infra/utils/bwrap.py +215 -0
- octop/infra/utils/doc_edit.py +335 -0
- octop/infra/utils/docker_env.py +411 -0
- octop/infra/utils/download_links.py +73 -0
- octop/infra/utils/env_file.py +176 -0
- octop/infra/utils/frontmatter.py +94 -0
- octop/infra/utils/host_dirs.py +403 -0
- octop/infra/utils/httpx_proxy.py +152 -0
- octop/infra/utils/json_file.py +109 -0
- octop/infra/utils/llm_text.py +128 -0
- octop/infra/utils/locale.py +83 -0
- octop/infra/utils/ollama_manager.py +411 -0
- octop/infra/utils/paths.py +160 -0
- octop/infra/utils/posix_compat.py +118 -0
- octop/infra/utils/process_resources.py +50 -0
- octop/infra/utils/runtime_packages.py +284 -0
- octop/infra/utils/search_probe.py +221 -0
- octop/infra/utils/ssl_errors.py +18 -0
- octop/infra/utils/ssrf_guard.py +221 -0
- octop/infra/utils/subprocess_io.py +49 -0
- octop/infra/utils/subprocess_io_win.py +26 -0
- octop/infra/utils/tencent_asr_sign.py +70 -0
- octop/infra/utils/tencent_sign.py +60 -0
- octop/infra/utils/thread_artifact.py +119 -0
- octop/infra/utils/turn_failure.py +158 -0
- octop/infra/utils/ulid.py +44 -0
- octop/infra/utils/url.py +19 -0
- octop/infra/utils/user_downloads.py +108 -0
- octop/infra/utils/utf8_text.py +156 -0
- octop/infra/utils/weixin_context.py +60 -0
- octop/infra/voice/__init__.py +1 -0
- octop/infra/voice/adapters.py +571 -0
- octop/infra/voice/manager.py +251 -0
- octop/infra/voice/presets.py +73 -0
- octop/infra/voice/realtime.py +217 -0
- octop/launch.py +166 -0
- ztestoctop-10.0.0.dist-info/METADATA +1524 -0
- ztestoctop-10.0.0.dist-info/RECORD +2087 -0
- ztestoctop-10.0.0.dist-info/WHEEL +4 -0
- ztestoctop-10.0.0.dist-info/entry_points.txt +2 -0
- ztestoctop-10.0.0.dist-info/licenses/LICENSE +21 -0
octop/__init__.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""Octop — smarter self-hosted AI assistant (multi-user, multi-agent)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from octop.infra.utils.httpx_proxy import install_httpx_cidr_no_proxy
|
|
6
|
+
|
|
7
|
+
__version__ = "10.0.0"
|
|
8
|
+
|
|
9
|
+
# httpx 0.28 treats NO_PROXY CIDR as an exact IP (see issue #1347). Patch once
|
|
10
|
+
# at import so CLI, ``octop run``, and in-process harness clients all honor it.
|
|
11
|
+
install_httpx_cidr_no_proxy()
|
octop/__main__.py
ADDED
octop/api/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
octop/api/app.py
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
"""FastAPI app factory."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
from collections.abc import Sequence
|
|
7
|
+
from dataclasses import dataclass
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from fastapi import FastAPI, HTTPException, Request
|
|
12
|
+
from fastapi.middleware.cors import CORSMiddleware
|
|
13
|
+
from fastapi.responses import FileResponse, HTMLResponse, JSONResponse, PlainTextResponse
|
|
14
|
+
from scalar_fastapi import get_scalar_api_reference
|
|
15
|
+
|
|
16
|
+
from octop.api.middleware.jwt_auth import install as install_jwt_auth
|
|
17
|
+
from octop.api.middleware.setup_lockdown import install as install_setup_lockdown
|
|
18
|
+
from octop.api.openapi_meta import API_DESCRIPTION, OPENAPI_TAGS, configure_openapi
|
|
19
|
+
from octop.infra.errors import ErrorCode, OctopError
|
|
20
|
+
from octop.infra.server import OctopServer
|
|
21
|
+
from octop.infra.utils.locale import resolve_request_locale
|
|
22
|
+
|
|
23
|
+
logger = logging.getLogger(__name__)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass(frozen=True)
|
|
27
|
+
class _RouterMount:
|
|
28
|
+
router: Any
|
|
29
|
+
prefix: str
|
|
30
|
+
tags: Sequence[str]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
_NO_CACHE_DASHBOARD_NAMES = frozenset({"sw.js", "manifest.json", "index.html"})
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def dashboard_cache_control(full_path: str) -> str | None:
|
|
37
|
+
"""Cache-Control for a dashboard SPA path, or ``None`` to leave unset."""
|
|
38
|
+
name = Path(full_path).name.lower() if full_path else "index.html"
|
|
39
|
+
if not full_path or name in _NO_CACHE_DASHBOARD_NAMES:
|
|
40
|
+
return "no-cache"
|
|
41
|
+
# Vite emits content-hashed files under assets/ — safe to pin forever.
|
|
42
|
+
if full_path.startswith("assets/"):
|
|
43
|
+
return "public, max-age=31536000, immutable"
|
|
44
|
+
return None
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _dashboard_response(path: Path, full_path: str) -> FileResponse:
|
|
48
|
+
response = FileResponse(path)
|
|
49
|
+
cache_control = dashboard_cache_control(full_path)
|
|
50
|
+
if cache_control is not None:
|
|
51
|
+
response.headers["Cache-Control"] = cache_control
|
|
52
|
+
return response
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def is_dashboard_asset_path(full_path: str) -> bool:
|
|
56
|
+
"""True for hashed build artifacts that must 404 instead of falling back."""
|
|
57
|
+
return full_path.startswith("assets/")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def _dashboard_fallback(index_file: Path, full_path: str) -> FileResponse:
|
|
61
|
+
"""Serve the SPA shell for routes; 404 for a missing hashed asset.
|
|
62
|
+
|
|
63
|
+
Answering ``/assets/index.<old-hash>.js`` with ``index.html`` makes the
|
|
64
|
+
browser reject HTML as a module script ("not a valid JavaScript MIME
|
|
65
|
+
type"), which hides the real cause — a stale shell after an upgrade.
|
|
66
|
+
"""
|
|
67
|
+
if is_dashboard_asset_path(full_path):
|
|
68
|
+
raise HTTPException(status_code=404, detail="Not Found")
|
|
69
|
+
return _dashboard_response(index_file, "")
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _mount_routers(app: FastAPI, mounts: Sequence[_RouterMount]) -> None:
|
|
73
|
+
for spec in mounts:
|
|
74
|
+
app.include_router(spec.router, prefix=spec.prefix, tags=list(spec.tags))
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def _install_exception_handlers(app: FastAPI) -> None:
|
|
78
|
+
@app.exception_handler(OctopError)
|
|
79
|
+
async def _octop(request: Request, exc: OctopError) -> JSONResponse:
|
|
80
|
+
# Client responses are locale-localized; log the original English message
|
|
81
|
+
# so INTERNAL_ERROR (and other 5xx) remain diagnosable in ~/.octop/logs.
|
|
82
|
+
if exc.status >= 500:
|
|
83
|
+
logger.error(
|
|
84
|
+
"OctopError %s in %s: %s",
|
|
85
|
+
exc.code.value,
|
|
86
|
+
request.url.path,
|
|
87
|
+
exc.message,
|
|
88
|
+
exc_info=exc,
|
|
89
|
+
)
|
|
90
|
+
locale = resolve_request_locale(request)
|
|
91
|
+
return JSONResponse(status_code=exc.status, content=exc.to_envelope(locale=locale))
|
|
92
|
+
|
|
93
|
+
@app.exception_handler(Exception)
|
|
94
|
+
async def _unhandled(request: Request, exc: Exception) -> JSONResponse:
|
|
95
|
+
logger.exception("unhandled exception in %s", request.url.path)
|
|
96
|
+
locale = resolve_request_locale(request)
|
|
97
|
+
err = OctopError.localized(ErrorCode.INTERNAL_ERROR, locale)
|
|
98
|
+
return JSONResponse(status_code=err.status, content=err.to_envelope())
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def build_app(server: OctopServer) -> FastAPI:
|
|
102
|
+
cfg = server.services.config if server.services else getattr(server, "config", None)
|
|
103
|
+
enable_dashboard = cfg.enable_dashboard if cfg else True
|
|
104
|
+
enable_api_docs = cfg.enable_api_docs if cfg else False
|
|
105
|
+
enable_mobile = (
|
|
106
|
+
cfg.capabilities.mobile.enabled if cfg and cfg.capabilities.mobile.enabled else False
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
app = FastAPI(
|
|
110
|
+
title="Octop API",
|
|
111
|
+
version="0.1.0",
|
|
112
|
+
description=API_DESCRIPTION,
|
|
113
|
+
openapi_url="/api/openapi.json" if enable_api_docs else None,
|
|
114
|
+
openapi_tags=OPENAPI_TAGS,
|
|
115
|
+
)
|
|
116
|
+
configure_openapi(app)
|
|
117
|
+
app.state.octop_server = server
|
|
118
|
+
_install_exception_handlers(app)
|
|
119
|
+
|
|
120
|
+
if cfg and cfg.cors_origins:
|
|
121
|
+
from octop.api.deps import ACCESS_TOKEN_RESPONSE_HEADER
|
|
122
|
+
|
|
123
|
+
app.add_middleware(
|
|
124
|
+
CORSMiddleware,
|
|
125
|
+
allow_origins=cfg.cors_origins,
|
|
126
|
+
allow_credentials=True,
|
|
127
|
+
allow_methods=["*"],
|
|
128
|
+
allow_headers=["*"],
|
|
129
|
+
expose_headers=[ACCESS_TOKEN_RESPONSE_HEADER],
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
from octop.api.middleware.bridge_proxy import install as install_bridge_proxy
|
|
133
|
+
|
|
134
|
+
# Bridge proxy must sit inside JWT auth so ``request.state.octop_user`` is set
|
|
135
|
+
# (Starlette runs the last-added middleware first).
|
|
136
|
+
install_bridge_proxy(app, server)
|
|
137
|
+
install_jwt_auth(app, server)
|
|
138
|
+
install_setup_lockdown(app, server)
|
|
139
|
+
|
|
140
|
+
if server.app_runtime is not None and server.app_runtime.bridge_manager is not None:
|
|
141
|
+
from octop.api.bridge_peer import prepare_peer_dashboard_turn
|
|
142
|
+
from octop.api.routers.browser.stream import run_browser_stream_session
|
|
143
|
+
|
|
144
|
+
server.app_runtime.bridge_manager.bind_asgi_app(
|
|
145
|
+
app,
|
|
146
|
+
peer_turn_runner=prepare_peer_dashboard_turn,
|
|
147
|
+
peer_browser_runner=run_browser_stream_session,
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
from octop.infra.setup.tls.challenge import challenge_store
|
|
151
|
+
|
|
152
|
+
@app.get("/.well-known/acme-challenge/{token}", include_in_schema=False)
|
|
153
|
+
async def acme_http01_challenge(token: str) -> PlainTextResponse:
|
|
154
|
+
body = challenge_store.get(token)
|
|
155
|
+
if body is None:
|
|
156
|
+
raise HTTPException(status_code=404, detail="challenge not found")
|
|
157
|
+
return PlainTextResponse(body)
|
|
158
|
+
|
|
159
|
+
from octop.api.routers import (
|
|
160
|
+
acp,
|
|
161
|
+
admin,
|
|
162
|
+
agent_files,
|
|
163
|
+
agent_mcp,
|
|
164
|
+
agent_tools,
|
|
165
|
+
agents,
|
|
166
|
+
auth,
|
|
167
|
+
auth_ldap,
|
|
168
|
+
auth_oauth,
|
|
169
|
+
auth_oidc,
|
|
170
|
+
backup,
|
|
171
|
+
bridge,
|
|
172
|
+
browser,
|
|
173
|
+
channels,
|
|
174
|
+
chat,
|
|
175
|
+
connectors,
|
|
176
|
+
cron,
|
|
177
|
+
desktop,
|
|
178
|
+
envs,
|
|
179
|
+
experts,
|
|
180
|
+
health,
|
|
181
|
+
i18n,
|
|
182
|
+
internal_mcp,
|
|
183
|
+
invites,
|
|
184
|
+
knowledge_bases,
|
|
185
|
+
mbti,
|
|
186
|
+
media_generation,
|
|
187
|
+
memory,
|
|
188
|
+
memory_portable,
|
|
189
|
+
memory_storage,
|
|
190
|
+
mobile,
|
|
191
|
+
ollama_models,
|
|
192
|
+
onnx_models,
|
|
193
|
+
plugins,
|
|
194
|
+
preferences,
|
|
195
|
+
proactive_care,
|
|
196
|
+
providers,
|
|
197
|
+
search,
|
|
198
|
+
settings,
|
|
199
|
+
setup,
|
|
200
|
+
skill_packages,
|
|
201
|
+
skills,
|
|
202
|
+
slash,
|
|
203
|
+
subagents,
|
|
204
|
+
teams,
|
|
205
|
+
terminal,
|
|
206
|
+
update,
|
|
207
|
+
uploads,
|
|
208
|
+
usage,
|
|
209
|
+
user_roles,
|
|
210
|
+
users,
|
|
211
|
+
voice,
|
|
212
|
+
workspace,
|
|
213
|
+
)
|
|
214
|
+
from octop.api.routers.decision import router as decision_router
|
|
215
|
+
from octop.api.routers.filesystem import router as filesystem_router
|
|
216
|
+
from octop.api.routers.observability import router as observability_router
|
|
217
|
+
from octop.api.routers.providers import admin_router as admin_providers_router
|
|
218
|
+
from octop.api.routers.security import router as security_router
|
|
219
|
+
from octop.api.routers.storage_backends import admin_router as admin_storage_router
|
|
220
|
+
from octop.api.routers.storage_backends import user_router as storage_backends_user_router
|
|
221
|
+
from octop.api.routers.tls import router as tls_router
|
|
222
|
+
from octop.api.routers.voice import admin_router as admin_voice_router
|
|
223
|
+
|
|
224
|
+
_mount_routers(
|
|
225
|
+
app,
|
|
226
|
+
[
|
|
227
|
+
_RouterMount(setup.router, "/api", ["setup"]),
|
|
228
|
+
_RouterMount(auth.router, "/api/auth", ["auth"]),
|
|
229
|
+
_RouterMount(auth_oidc.router, "/api/auth", ["auth"]),
|
|
230
|
+
_RouterMount(auth_oauth.router, "/api/auth", ["auth"]),
|
|
231
|
+
_RouterMount(auth_ldap.router, "/api/auth", ["auth"]),
|
|
232
|
+
_RouterMount(invites.public_router, "/api/auth/invite", ["auth"]),
|
|
233
|
+
_RouterMount(preferences.router, "/api", ["auth"]),
|
|
234
|
+
_RouterMount(i18n.router, "/api", ["i18n"]),
|
|
235
|
+
_RouterMount(health.router, "/api/health", ["health"]),
|
|
236
|
+
_RouterMount(invites.admin_router, "/api/users/invites", ["users"]),
|
|
237
|
+
_RouterMount(user_roles.router, "/api/users/roles", ["users"]),
|
|
238
|
+
_RouterMount(users.router, "/api/users", ["users"]),
|
|
239
|
+
_RouterMount(agents.router, "/api/agents", ["agents"]),
|
|
240
|
+
_RouterMount(agent_tools.router, "/api", ["agents"]),
|
|
241
|
+
_RouterMount(acp.router, "/api", ["agents"]),
|
|
242
|
+
_RouterMount(agent_mcp.router, "/api", ["agent-mcp"]),
|
|
243
|
+
_RouterMount(chat.router, "/api", ["chat"]),
|
|
244
|
+
_RouterMount(slash.router, "/api", ["slash"]),
|
|
245
|
+
_RouterMount(connectors.router, "/api", ["connectors"]),
|
|
246
|
+
_RouterMount(bridge.router, "/api", ["bridge"]),
|
|
247
|
+
_RouterMount(knowledge_bases.router, "/api", ["knowledge"]),
|
|
248
|
+
_RouterMount(internal_mcp.router, "/api", ["internal-mcp"]),
|
|
249
|
+
_RouterMount(channels.router, "/api", ["channels"]),
|
|
250
|
+
_RouterMount(cron.router, "/api", ["cron"]),
|
|
251
|
+
_RouterMount(settings.router, "/api", ["settings"]),
|
|
252
|
+
_RouterMount(decision_router, "/api", ["settings"]),
|
|
253
|
+
_RouterMount(envs.router, "/api", ["envs"]),
|
|
254
|
+
_RouterMount(search.router, "/api", ["search"]),
|
|
255
|
+
_RouterMount(providers.router, "/api/providers", ["providers"]),
|
|
256
|
+
_RouterMount(voice.router, "/api/voice", ["voice"]),
|
|
257
|
+
_RouterMount(admin.router, "/api/admin", ["admin"]),
|
|
258
|
+
_RouterMount(backup.router, "/api/admin", ["admin"]),
|
|
259
|
+
_RouterMount(admin_providers_router, "/api/admin/providers", ["admin"]),
|
|
260
|
+
_RouterMount(admin_voice_router, "/api/admin/voice/providers", ["admin"]),
|
|
261
|
+
_RouterMount(observability_router, "/api/admin/observability", ["observability"]),
|
|
262
|
+
_RouterMount(
|
|
263
|
+
media_generation.router,
|
|
264
|
+
"/api/admin/media-generation",
|
|
265
|
+
["providers"],
|
|
266
|
+
),
|
|
267
|
+
_RouterMount(tls_router, "/api/admin/tls", ["tls"]),
|
|
268
|
+
_RouterMount(security_router, "/api/admin/security", ["security"]),
|
|
269
|
+
_RouterMount(admin_storage_router, "/api/admin/storage-backends", ["admin"]),
|
|
270
|
+
_RouterMount(
|
|
271
|
+
storage_backends_user_router, "/api/storage-backends", ["storage-backends"]
|
|
272
|
+
),
|
|
273
|
+
_RouterMount(filesystem_router, "/api/filesystem", ["filesystem"]),
|
|
274
|
+
_RouterMount(mbti.router, "/api", ["mbti"]),
|
|
275
|
+
_RouterMount(experts.router, "/api", ["experts"]),
|
|
276
|
+
_RouterMount(teams.router, "/api", ["teams"]),
|
|
277
|
+
_RouterMount(workspace.router, "/api", ["workspace"]),
|
|
278
|
+
_RouterMount(agent_files.router, "/api", ["agent_files"]),
|
|
279
|
+
_RouterMount(memory.router, "/api", ["memory"]),
|
|
280
|
+
_RouterMount(memory_portable.router, "/api", ["memory"]),
|
|
281
|
+
_RouterMount(memory_storage.router, "/api", ["memory"]),
|
|
282
|
+
_RouterMount(proactive_care.router, "/api", ["proactive-care"]),
|
|
283
|
+
_RouterMount(usage.router, "/api", ["usage"]),
|
|
284
|
+
_RouterMount(usage.admin_router, "/api/admin", ["admin"]),
|
|
285
|
+
_RouterMount(skill_packages.router, "/api", ["skill-packages"]),
|
|
286
|
+
_RouterMount(skills.router, "/api", ["skills"]),
|
|
287
|
+
_RouterMount(subagents.router, "/api", ["subagents"]),
|
|
288
|
+
_RouterMount(terminal.router, "/api", ["terminal"]),
|
|
289
|
+
_RouterMount(uploads.router, "/api", ["chat"]),
|
|
290
|
+
_RouterMount(update.router, "/api", ["update"]),
|
|
291
|
+
_RouterMount(browser.router, "/api", ["browser"]),
|
|
292
|
+
_RouterMount(desktop.router, "/api", ["desktop"]),
|
|
293
|
+
_RouterMount(ollama_models.router, "/api", ["ollama"]),
|
|
294
|
+
_RouterMount(onnx_models.router, "/api", ["onnx"]),
|
|
295
|
+
_RouterMount(plugins.router, "/api", ["plugins"]),
|
|
296
|
+
],
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
if enable_mobile:
|
|
300
|
+
_mount_routers(
|
|
301
|
+
app,
|
|
302
|
+
[
|
|
303
|
+
_RouterMount(mobile.router, "/api", ["mobile"]),
|
|
304
|
+
],
|
|
305
|
+
)
|
|
306
|
+
|
|
307
|
+
if enable_api_docs:
|
|
308
|
+
|
|
309
|
+
@app.get("/api/docs", include_in_schema=False)
|
|
310
|
+
async def api_docs() -> HTMLResponse:
|
|
311
|
+
return get_scalar_api_reference(
|
|
312
|
+
openapi_url=app.openapi_url,
|
|
313
|
+
title="Octop API",
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
if enable_dashboard:
|
|
317
|
+
dashboard_dir = Path(__file__).parent.parent / "dashboard"
|
|
318
|
+
index_file = dashboard_dir / "index.html"
|
|
319
|
+
if index_file.exists():
|
|
320
|
+
|
|
321
|
+
@app.get("/{full_path:path}", include_in_schema=False)
|
|
322
|
+
async def spa_fallback(full_path: str) -> FileResponse:
|
|
323
|
+
if full_path.startswith(("api/", "ws/")):
|
|
324
|
+
raise HTTPException(status_code=404, detail="Not Found")
|
|
325
|
+
|
|
326
|
+
if full_path:
|
|
327
|
+
raw_path = Path(full_path)
|
|
328
|
+
# Reject absolute paths and parent-dir references before
|
|
329
|
+
# joining, so user input never drives a path expression.
|
|
330
|
+
if raw_path.is_absolute() or ".." in raw_path.parts:
|
|
331
|
+
return _dashboard_fallback(index_file, full_path)
|
|
332
|
+
candidate = (dashboard_dir / Path(*raw_path.parts)).resolve()
|
|
333
|
+
try:
|
|
334
|
+
candidate.relative_to(dashboard_dir.resolve())
|
|
335
|
+
except ValueError:
|
|
336
|
+
return _dashboard_fallback(index_file, full_path)
|
|
337
|
+
if candidate.is_file():
|
|
338
|
+
return _dashboard_response(candidate, full_path)
|
|
339
|
+
return _dashboard_fallback(index_file, full_path)
|
|
340
|
+
|
|
341
|
+
return app
|
octop/api/bridge_peer.py
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""ASGI-layer helpers that Bridge calls for local dashboard turns.
|
|
2
|
+
|
|
3
|
+
Wired from ``build_app`` so ``infra.bridge`` never imports ``api/``.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from octop.api.routers.chat.models import UserTurnWsFrame
|
|
12
|
+
from octop.api.routers.chat.turn import (
|
|
13
|
+
build_dashboard_inbound,
|
|
14
|
+
prepare_dashboard_turn,
|
|
15
|
+
turn_has_content,
|
|
16
|
+
)
|
|
17
|
+
from octop.infra.bridge.peer_turn import PeerTurnRejected, bridge_turn_ws_payload
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass(frozen=True)
|
|
21
|
+
class PreparedPeerTurn:
|
|
22
|
+
thread_id: str
|
|
23
|
+
inbound: Any
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
async def prepare_peer_dashboard_turn(
|
|
27
|
+
*,
|
|
28
|
+
server: Any,
|
|
29
|
+
user: Any,
|
|
30
|
+
agent_id: str,
|
|
31
|
+
payload: dict[str, Any],
|
|
32
|
+
ws_connection_id: str,
|
|
33
|
+
) -> PreparedPeerTurn:
|
|
34
|
+
"""Validate a peer ``turn.start`` and build the gateway inbound.
|
|
35
|
+
|
|
36
|
+
When the room is already busy, admit a mid-turn steer and return
|
|
37
|
+
``inbound=None`` so the peer does not enqueue a second turn.
|
|
38
|
+
"""
|
|
39
|
+
frame = UserTurnWsFrame.model_validate(bridge_turn_ws_payload(payload))
|
|
40
|
+
turn = frame.to_turn_body()
|
|
41
|
+
if not turn_has_content(turn):
|
|
42
|
+
raise PeerTurnRejected("empty message")
|
|
43
|
+
prepared = await prepare_dashboard_turn(
|
|
44
|
+
server,
|
|
45
|
+
agent_id=agent_id,
|
|
46
|
+
user=user,
|
|
47
|
+
turn=turn,
|
|
48
|
+
)
|
|
49
|
+
if await _admit_peer_steer(
|
|
50
|
+
server,
|
|
51
|
+
agent_id=agent_id,
|
|
52
|
+
thread_id=prepared.thread_id,
|
|
53
|
+
turn=turn,
|
|
54
|
+
):
|
|
55
|
+
return PreparedPeerTurn(thread_id=prepared.thread_id, inbound=None)
|
|
56
|
+
inbound = build_dashboard_inbound(
|
|
57
|
+
agent_id=agent_id,
|
|
58
|
+
user_id=user.id,
|
|
59
|
+
prepared=prepared,
|
|
60
|
+
turn=turn,
|
|
61
|
+
ws_connection_id=ws_connection_id,
|
|
62
|
+
user_is_admin=bool(getattr(user, "is_admin", False)),
|
|
63
|
+
)
|
|
64
|
+
return PreparedPeerTurn(thread_id=prepared.thread_id, inbound=inbound)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
async def _admit_peer_steer(
|
|
68
|
+
server: Any,
|
|
69
|
+
*,
|
|
70
|
+
agent_id: str,
|
|
71
|
+
thread_id: str,
|
|
72
|
+
turn: Any,
|
|
73
|
+
) -> bool:
|
|
74
|
+
"""Push steer.ack / queued onto the live turn subscriber when busy."""
|
|
75
|
+
rt = getattr(server, "app_runtime", None)
|
|
76
|
+
gateway = getattr(rt, "gateway", None) if rt is not None else None
|
|
77
|
+
if gateway is None:
|
|
78
|
+
return False
|
|
79
|
+
from octop.api.routers.chat.ws import ( # noqa: PLC0415
|
|
80
|
+
_maybe_admit_steer,
|
|
81
|
+
_plain_text_from_turn,
|
|
82
|
+
_steer_blocks_from_turn,
|
|
83
|
+
_thread_hitl_paused,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
hub = gateway.ws_hub
|
|
87
|
+
delivery = turn.delivery or "auto"
|
|
88
|
+
# Team members speak after the host WS turn goes idle. A leftover steer
|
|
89
|
+
# coordinator row must not swallow the next user_turn as a queued insert.
|
|
90
|
+
if (
|
|
91
|
+
delivery != "steer"
|
|
92
|
+
and not hub.is_turn_active(thread_id)
|
|
93
|
+
and not _thread_hitl_paused(gateway, thread_id, agent_id)
|
|
94
|
+
):
|
|
95
|
+
return False
|
|
96
|
+
|
|
97
|
+
async def send_via_hub(steer_frame: dict[str, Any]) -> None:
|
|
98
|
+
await hub.push_to_thread(thread_id, steer_frame)
|
|
99
|
+
|
|
100
|
+
return await _maybe_admit_steer(
|
|
101
|
+
text=(turn.text or "").strip() or _plain_text_from_turn(turn),
|
|
102
|
+
thread_id=thread_id,
|
|
103
|
+
delivery=delivery,
|
|
104
|
+
client_pending_id=turn.client_pending_id,
|
|
105
|
+
expected_turn_id=turn.expected_turn_id,
|
|
106
|
+
steer=gateway.steer,
|
|
107
|
+
hub=hub,
|
|
108
|
+
send_frame=send_via_hub,
|
|
109
|
+
hitl_paused=_thread_hitl_paused(gateway, thread_id, agent_id),
|
|
110
|
+
content_blocks=_steer_blocks_from_turn(turn),
|
|
111
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Shared router helpers — agent access, workspace glue, request validation."""
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"""Shared agent ownership / existence checks for HTTP routers."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from octop.infra.errors import ErrorCode, OctopError
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def agent_is_shared(row: Any) -> bool:
|
|
11
|
+
return int(getattr(row, "is_shared", 0) or 0) == 1
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def user_owns_agent(row: Any, user: Any) -> bool:
|
|
15
|
+
return row.user_id is not None and row.user_id == user.id
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def assert_agent_owner(row: Any, user: Any) -> None:
|
|
19
|
+
"""Raise if the user may not mutate this agent row (admin bypasses)."""
|
|
20
|
+
if user.is_admin:
|
|
21
|
+
return
|
|
22
|
+
if row.user_id is None or row.user_id != user.id:
|
|
23
|
+
raise OctopError(ErrorCode.FORBIDDEN, "agent not owned by user")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _user_may_access(row: Any, user: Any) -> bool:
|
|
27
|
+
if user.is_admin:
|
|
28
|
+
return True
|
|
29
|
+
if row.user_id is not None and row.user_id == user.id:
|
|
30
|
+
return True
|
|
31
|
+
return bool(agent_is_shared(row))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def assert_agent_access_row(row: Any, user: Any) -> None:
|
|
35
|
+
if not _user_may_access(row, user):
|
|
36
|
+
raise OctopError(ErrorCode.FORBIDDEN, "agent not accessible to user")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def require_agent_row(
|
|
40
|
+
agent_id: str,
|
|
41
|
+
*,
|
|
42
|
+
user: Any,
|
|
43
|
+
as_user: int | None,
|
|
44
|
+
server: Any,
|
|
45
|
+
) -> Any:
|
|
46
|
+
"""Load an agent row after owner / shared-agent / admin ``as_user`` checks."""
|
|
47
|
+
assert server.app_runtime is not None
|
|
48
|
+
row = server.app_runtime.agent_registry.get_row(agent_id)
|
|
49
|
+
if row is None:
|
|
50
|
+
raise OctopError(ErrorCode.AGENT_NOT_FOUND, f"agent {agent_id!r} not found")
|
|
51
|
+
if as_user is not None and as_user != user.id:
|
|
52
|
+
if not user.is_admin:
|
|
53
|
+
raise OctopError(ErrorCode.FORBIDDEN, "as_user requires admin")
|
|
54
|
+
target = server.user_manager.get_by_id(as_user)
|
|
55
|
+
if target is None:
|
|
56
|
+
raise OctopError(ErrorCode.NOT_FOUND, f"user {as_user} not found")
|
|
57
|
+
if row.user_id is not None and row.user_id != as_user:
|
|
58
|
+
raise OctopError(ErrorCode.FORBIDDEN, "agent not owned by as_user")
|
|
59
|
+
else:
|
|
60
|
+
assert_agent_access_row(row, user)
|
|
61
|
+
return row
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def require_agent_owner_row(
|
|
65
|
+
agent_id: str,
|
|
66
|
+
*,
|
|
67
|
+
user: Any,
|
|
68
|
+
as_user: int | None,
|
|
69
|
+
server: Any,
|
|
70
|
+
) -> Any:
|
|
71
|
+
"""Load an agent row and require owner-level access."""
|
|
72
|
+
row = require_agent_row(agent_id, user=user, as_user=as_user, server=server)
|
|
73
|
+
assert_agent_owner(row, user)
|
|
74
|
+
return row
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def assert_agent_access(server: Any, agent_id: str, user: Any) -> None:
|
|
78
|
+
"""Ensure agent exists and is accessible to the current user."""
|
|
79
|
+
require_agent_row(agent_id, user=user, as_user=None, server=server)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Typed API fields for per-agent runtime and model settings."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, Field
|
|
8
|
+
|
|
9
|
+
from octop.infra.agents.settings.runtime_limits import AGENT_RUNTIME_CONFIG_KEYS
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AgentRuntimeFields(BaseModel):
|
|
13
|
+
"""First-class create/edit fields persisted in the agent's config storage."""
|
|
14
|
+
|
|
15
|
+
max_iters: int | None = Field(default=None, ge=1)
|
|
16
|
+
max_input_length: int | None = Field(default=None, ge=1_000)
|
|
17
|
+
temperature: float | None = Field(default=None, ge=0, le=2)
|
|
18
|
+
top_p: float | None = Field(default=None, ge=0, le=1)
|
|
19
|
+
max_tokens: int | None = Field(default=None, ge=1)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def runtime_field_updates(
|
|
23
|
+
model: BaseModel,
|
|
24
|
+
*,
|
|
25
|
+
exclude_unset: bool,
|
|
26
|
+
) -> dict[str, Any]:
|
|
27
|
+
"""Extract runtime fields from an API body without leaking unrelated fields."""
|
|
28
|
+
dumped = model.model_dump(exclude_unset=exclude_unset)
|
|
29
|
+
return {key: dumped[key] for key in AGENT_RUNTIME_CONFIG_KEYS if key in dumped}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
__all__ = ["AgentRuntimeFields", "runtime_field_updates"]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""Resolve agent ``workspace_dir`` for API handlers."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Any, cast
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def resolve_agent_workspace_dir(server: Any, agent_id: str) -> Path:
|
|
10
|
+
"""Prefer ``config.workspace_dir`` via agent registry; else Octop default layout."""
|
|
11
|
+
runtime = getattr(server, "app_runtime", None)
|
|
12
|
+
registry = getattr(runtime, "agent_registry", None) if runtime is not None else None
|
|
13
|
+
if registry is not None and hasattr(registry, "resolve_workspace_dir"):
|
|
14
|
+
return cast(Path, registry.resolve_workspace_dir(agent_id))
|
|
15
|
+
paths = getattr(server, "paths", None) or server.services.paths
|
|
16
|
+
return cast(Path, paths.ensure_agent_workspace(agent_id))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
__all__ = ["resolve_agent_workspace_dir"]
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"""Chat attachment HTTP helpers — thin wrappers over :mod:`inbound_store`."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
from urllib.parse import quote
|
|
8
|
+
|
|
9
|
+
from octop.infra.gateway.media.attachment_hints import is_preview_media_type
|
|
10
|
+
from octop.infra.gateway.media.inbound_store import InboundFile, write_inbound
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from octop_harness.backends.workspace import BackendWorkspace
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@dataclass(frozen=True)
|
|
17
|
+
class StoredAttachment:
|
|
18
|
+
filename: str
|
|
19
|
+
media_type: str
|
|
20
|
+
size: int
|
|
21
|
+
data_path: str
|
|
22
|
+
owner_id: int = 0
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _stored_from_inbound(inbound: InboundFile, *, owner_id: int = 0) -> StoredAttachment:
|
|
26
|
+
return StoredAttachment(
|
|
27
|
+
owner_id=owner_id,
|
|
28
|
+
filename=inbound.filename,
|
|
29
|
+
media_type=inbound.media_type,
|
|
30
|
+
size=inbound.size,
|
|
31
|
+
data_path=inbound.path,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def dashboard_inbound_preview_url(
|
|
36
|
+
agent_id: str,
|
|
37
|
+
workspace_path: str,
|
|
38
|
+
*,
|
|
39
|
+
media_type: str = "",
|
|
40
|
+
) -> str:
|
|
41
|
+
"""JWT-protected preview/download URL for dashboard UI (not for LLM)."""
|
|
42
|
+
rel = workspace_path.lstrip("/")
|
|
43
|
+
aid = quote(agent_id, safe="")
|
|
44
|
+
if is_preview_media_type(media_type):
|
|
45
|
+
params = f"source={quote(rel, safe='')}"
|
|
46
|
+
if media_type:
|
|
47
|
+
params += f"&mime_type={quote(media_type, safe='')}"
|
|
48
|
+
return f"/api/agents/{aid}/media/preview?{params}"
|
|
49
|
+
return f"/api/agents/{aid}/workspace/download?path={quote(rel, safe='')}"
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
async def save_attachment(
|
|
53
|
+
workspace: BackendWorkspace,
|
|
54
|
+
*,
|
|
55
|
+
owner_id: int,
|
|
56
|
+
filename: str,
|
|
57
|
+
media_type: str,
|
|
58
|
+
data: bytes,
|
|
59
|
+
max_bytes: int | None = None,
|
|
60
|
+
) -> StoredAttachment:
|
|
61
|
+
del owner_id # access control is JWT + agent scope at download time
|
|
62
|
+
inbound = await write_inbound(
|
|
63
|
+
workspace,
|
|
64
|
+
data,
|
|
65
|
+
filename=filename,
|
|
66
|
+
media_type=media_type,
|
|
67
|
+
max_bytes=max_bytes,
|
|
68
|
+
)
|
|
69
|
+
return _stored_from_inbound(inbound)
|