@scemoon/cdh 1.0.8 → 1.0.9-beta.2
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.
- package/ai-dlc-skill/SKILL.md +106 -0
- package/ai-dlc-skill/architecture/project-structure.md +78 -0
- package/ai-dlc-skill/brownfield/README.md +36 -0
- package/ai-dlc-skill/brownfield/entry.md +45 -0
- package/ai-dlc-skill/brownfield/generate-context.sh +64 -0
- package/ai-dlc-skill/brownfield/scripts/deps.sh +27 -0
- package/ai-dlc-skill/brownfield/scripts/discover.sh +34 -0
- package/ai-dlc-skill/brownfield/scripts/extract-api.sh +45 -0
- package/ai-dlc-skill/components/backend.md +47 -0
- package/ai-dlc-skill/components/desktop.md +63 -0
- package/ai-dlc-skill/components/mya.md +219 -0
- package/ai-dlc-skill/components/native.md +73 -0
- package/ai-dlc-skill/components/tta.md +235 -0
- package/ai-dlc-skill/components/web.md +77 -0
- package/ai-dlc-skill/components/wxa.md +219 -0
- package/ai-dlc-skill/contracts/README.md +25 -0
- package/ai-dlc-skill/core/adaptive-flow.md +107 -0
- package/ai-dlc-skill/core/security.md +29 -0
- package/ai-dlc-skill/core/task-registry.md +153 -0
- package/ai-dlc-skill/cross-tool/README.md +20 -0
- package/ai-dlc-skill/cross-tool/cline/export.sh +38 -0
- package/ai-dlc-skill/cross-tool/copilot/export.sh +41 -0
- package/ai-dlc-skill/cross-tool/cursor/export.sh +53 -0
- package/ai-dlc-skill/cross-tool/onecode/export.sh +27 -0
- package/ai-dlc-skill/cross-tool/opencode/export.sh +38 -0
- package/ai-dlc-skill/phases/debug/entry.md +48 -0
- package/ai-dlc-skill/phases/debug/lifecycle.md +284 -0
- package/ai-dlc-skill/phases/deliver/entry.md +35 -0
- package/ai-dlc-skill/phases/deliver/lifecycle.md +185 -0
- package/ai-dlc-skill/phases/deliver/prompt.md +54 -0
- package/ai-dlc-skill/phases/deliver/rules.md +61 -0
- package/ai-dlc-skill/phases/plan/design_system/accessibility.md +268 -0
- package/ai-dlc-skill/phases/plan/design_system/atomic_design.md +341 -0
- package/ai-dlc-skill/phases/plan/design_system/component_spec.md +398 -0
- package/ai-dlc-skill/phases/plan/design_system/design_tokens.md +190 -0
- package/ai-dlc-skill/phases/plan/design_system/iconography.md +299 -0
- package/ai-dlc-skill/phases/plan/design_system/platform_ui/desktop.md +318 -0
- package/ai-dlc-skill/phases/plan/design_system/platform_ui/mya.md +354 -0
- package/ai-dlc-skill/phases/plan/design_system/platform_ui/native.md +328 -0
- package/ai-dlc-skill/phases/plan/design_system/platform_ui/tta.md +394 -0
- package/ai-dlc-skill/phases/plan/design_system/platform_ui/web.md +287 -0
- package/ai-dlc-skill/phases/plan/design_system/platform_ui/wxa.md +374 -0
- package/ai-dlc-skill/phases/plan/design_system/theme_system.md +318 -0
- package/ai-dlc-skill/phases/plan/entry.md +33 -0
- package/ai-dlc-skill/phases/plan/lifecycle.md +260 -0
- package/ai-dlc-skill/phases/plan/prompt.md +75 -0
- package/ai-dlc-skill/phases/plan/rules.md +60 -0
- package/ai-dlc-skill/phases/understand/entry.md +36 -0
- package/ai-dlc-skill/phases/understand/lifecycle.md +184 -0
- package/ai-dlc-skill/phases/understand/prompt.md +58 -0
- package/ai-dlc-skill/phases/understand/rules.md +49 -0
- package/ai-dlc-skill/phases/verify/config/base_url.md +65 -0
- package/ai-dlc-skill/phases/verify/entry.md +59 -0
- package/ai-dlc-skill/phases/verify/gates/browser_e2e.md +96 -0
- package/ai-dlc-skill/phases/verify/lifecycle.md +217 -0
- package/ai-dlc-skill/phases/verify/prompt.md +73 -0
- package/ai-dlc-skill/phases/verify/rules.md +91 -0
- package/ai-dlc-skill/phases/verify/runners/playwright_local.md +103 -0
- package/ai-dlc-skill/practices/bdd.md +119 -0
- package/ai-dlc-skill/practices/sdd.md +84 -0
- package/ai-dlc-skill/practices/tdd.md +128 -0
- package/ai-dlc-skill/providers/README.md +114 -0
- package/ai-dlc-skill/providers/aliyun/SKILL.md +204 -0
- package/ai-dlc-skill/providers/aliyun/api/rest-api.md +214 -0
- package/ai-dlc-skill/providers/aliyun/api/sdk.md +307 -0
- package/ai-dlc-skill/providers/aliyun/best-practices/database-design.md +363 -0
- package/ai-dlc-skill/providers/aliyun/best-practices/function-design.md +424 -0
- package/ai-dlc-skill/providers/aliyun/best-practices/troubleshooting.md +258 -0
- package/ai-dlc-skill/providers/aliyun/cli/database.md +263 -0
- package/ai-dlc-skill/providers/aliyun/cli/functions.md +263 -0
- package/ai-dlc-skill/providers/aliyun/cli/hosting.md +226 -0
- package/ai-dlc-skill/providers/aliyun/cli/setup.md +235 -0
- package/ai-dlc-skill/providers/aliyun/cli/storage.md +315 -0
- package/ai-dlc-skill/providers/aliyun/deployment.yaml +66 -0
- package/ai-dlc-skill/providers/aliyun/integration/ci-cd.md +288 -0
- package/ai-dlc-skill/providers/aliyun/preview.yaml +84 -0
- package/ai-dlc-skill/providers/aliyun/provider.yaml +160 -0
- package/ai-dlc-skill/providers/aliyun/security/authentication.md +254 -0
- package/ai-dlc-skill/providers/aliyun/services/cdn-hosting.md +220 -0
- package/ai-dlc-skill/providers/aliyun/services/database.md +319 -0
- package/ai-dlc-skill/providers/aliyun/services/function-compute.md +273 -0
- package/ai-dlc-skill/providers/aliyun/services/overview.md +163 -0
- package/ai-dlc-skill/providers/aliyun/services/serverless-app-engine.md +266 -0
- package/ai-dlc-skill/providers/aliyun/services/storage.md +269 -0
- package/ai-dlc-skill/providers/tcb/SKILL.md +208 -0
- package/ai-dlc-skill/providers/tcb/api/rest-api.md +338 -0
- package/ai-dlc-skill/providers/tcb/api/sdk.md +288 -0
- package/ai-dlc-skill/providers/tcb/best-practices/database-design.md +452 -0
- package/ai-dlc-skill/providers/tcb/best-practices/function-design.md +502 -0
- package/ai-dlc-skill/providers/tcb/best-practices/troubleshooting.md +462 -0
- package/ai-dlc-skill/providers/tcb/cli/cls.md +133 -0
- package/ai-dlc-skill/providers/tcb/cli/database.md +230 -0
- package/ai-dlc-skill/providers/tcb/cli/env.md +207 -0
- package/ai-dlc-skill/providers/tcb/cli/functions.md +276 -0
- package/ai-dlc-skill/providers/tcb/cli/hosting.md +219 -0
- package/ai-dlc-skill/providers/tcb/cli/setup.md +218 -0
- package/ai-dlc-skill/providers/tcb/cli/storage.md +233 -0
- package/ai-dlc-skill/providers/tcb/deployment.yaml +111 -0
- package/ai-dlc-skill/providers/tcb/integration/ci-cd.md +309 -0
- package/ai-dlc-skill/providers/tcb/integration/mcp-server.md +371 -0
- package/ai-dlc-skill/providers/tcb/preview.yaml +83 -0
- package/ai-dlc-skill/providers/tcb/provider.yaml +172 -0
- package/ai-dlc-skill/providers/tcb/security/authentication.md +241 -0
- package/ai-dlc-skill/providers/tcb/services/cloud-database.md +299 -0
- package/ai-dlc-skill/providers/tcb/services/cloud-functions.md +265 -0
- package/ai-dlc-skill/providers/tcb/services/cloud-hosting.md +264 -0
- package/ai-dlc-skill/providers/tcb/services/cloud-run.md +285 -0
- package/ai-dlc-skill/providers/tcb/services/cloud-storage.md +245 -0
- package/ai-dlc-skill/providers/tcb/services/overview.md +174 -0
- package/ai-dlc-skill/pybdd/README.md +41 -0
- package/ai-dlc-skill/pybdd/conftest.py +17 -0
- package/ai-dlc-skill/pybdd/example/auth/login.feature +32 -0
- package/ai-dlc-skill/pybdd/pytest.ini +5 -0
- package/ai-dlc-skill/pybdd/steps/.gitkeep +1 -0
- package/ai-dlc-skill/pybdd/steps/test_example_steps.py +65 -0
- package/ai-dlc-skill/requirements.md +140 -0
- package/ai-dlc-skill/skill.yaml +135 -0
- package/ai-dlc-skill/templates/brownfield/context.md +78 -0
- package/ai-dlc-skill/templates/integration/CHANGELOG.md +41 -0
- package/ai-dlc-skill/templates/integration/asyncapi.yaml +43 -0
- package/ai-dlc-skill/templates/integration/contract-diff.md +63 -0
- package/ai-dlc-skill/templates/integration/contract-spec.md +49 -0
- package/ai-dlc-skill/templates/integration/openapi.yaml +18 -0
- package/ai-dlc-skill/templates/integration/runtime-contract.yaml +36 -0
- package/ai-dlc-skill/templates/plan/design.md +49 -0
- package/ai-dlc-skill/templates/plan/task-list.md +32 -0
- package/ai-dlc-skill/templates/project/README.md +126 -0
- package/ai-dlc-skill/templates/project/template.md +119 -0
- package/ai-dlc-skill/templates/understand/feature.feature +30 -0
- package/ai-dlc-skill/templates/understand/intent.md +29 -0
- package/ai-dlc-skill/templates/understand/spec-delta.md +47 -0
- package/ai-dlc-skill/templates/verify/test-unit.py +27 -0
- package/ai-dlc-skill/walkthrough/collect.sh +50 -0
- package/ai-dlc-skill/walkthrough/template.md +54 -0
- package/cdh/__init__.py +0 -0
- package/cdh/__main__.py +4 -0
- package/cdh/__pycache__/__init__.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cli.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cli_logging.cpython-314.pyc +0 -0
- package/cdh/__pycache__/config.cpython-314.pyc +0 -0
- package/cdh/__pycache__/project_loader.cpython-314.pyc +0 -0
- package/cdh/__pycache__/scaffold.cpython-314.pyc +0 -0
- package/cdh/__pycache__/session_store.cpython-314.pyc +0 -0
- package/cdh/cdh_session_aggregator.py +258 -0
- package/cdh/cli.py +3000 -0
- package/cdh/cli_logging.py +45 -0
- package/cdh/config.py +28 -0
- package/cdh/event_loop/__init__.py +7 -0
- package/cdh/event_loop/bus.py +123 -0
- package/cdh/event_loop/events.py +25 -0
- package/cdh/event_loop/runner.py +28 -0
- package/cdh/event_loop/scheduler.py +158 -0
- package/cdh/generators/__init__.py +35 -0
- package/cdh/generators/_runtime.py +176 -0
- package/cdh/generators/ada/MANIFEST.toml +14 -0
- package/cdh/generators/ada/template.ads.tmpl +7 -0
- package/cdh/generators/bash/MANIFEST.toml +14 -0
- package/cdh/generators/bash/template.sh.tmpl +16 -0
- package/cdh/generators/builtin_index.json +590 -0
- package/cdh/generators/c/MANIFEST.toml +14 -0
- package/cdh/generators/c/template.h.tmpl +20 -0
- package/cdh/generators/cli.py +379 -0
- package/cdh/generators/clojure/MANIFEST.toml +14 -0
- package/cdh/generators/clojure/template.clj.tmpl +13 -0
- package/cdh/generators/cobol/MANIFEST.toml +14 -0
- package/cdh/generators/cobol/template.cbl.tmpl +14 -0
- package/cdh/generators/cpp/MANIFEST.toml +14 -0
- package/cdh/generators/cpp/template.hpp.tmpl +32 -0
- package/cdh/generators/crystal/MANIFEST.toml +14 -0
- package/cdh/generators/crystal/template.cr.tmpl +11 -0
- package/cdh/generators/csharp/MANIFEST.toml +23 -0
- package/cdh/generators/csharp/template.cs.tmpl +14 -0
- package/cdh/generators/cython/MANIFEST.toml +14 -0
- package/cdh/generators/cython/template.pyx.tmpl +17 -0
- package/cdh/generators/d/MANIFEST.toml +14 -0
- package/cdh/generators/d/template.d.tmpl +24 -0
- package/cdh/generators/dart/MANIFEST.toml +17 -0
- package/cdh/generators/dart/template.dart.tmpl +27 -0
- package/cdh/generators/elixir/MANIFEST.toml +17 -0
- package/cdh/generators/elixir/template.ex.tmpl +27 -0
- package/cdh/generators/elm/MANIFEST.toml +14 -0
- package/cdh/generators/elm/template.elm.tmpl +20 -0
- package/cdh/generators/erlang/MANIFEST.toml +14 -0
- package/cdh/generators/erlang/template.erl.tmpl +18 -0
- package/cdh/generators/fortran/MANIFEST.toml +14 -0
- package/cdh/generators/fortran/template.f90.tmpl +24 -0
- package/cdh/generators/fsharp/MANIFEST.toml +14 -0
- package/cdh/generators/fsharp/template.fs.tmpl +17 -0
- package/cdh/generators/go/MANIFEST.toml +18 -0
- package/cdh/generators/go/imports.go.tmpl +3 -0
- package/cdh/generators/go/template.go.tmpl +9 -0
- package/cdh/generators/graphql-schema/MANIFEST.toml +18 -0
- package/cdh/generators/graphql-schema/template.graphqls.tmpl +12 -0
- package/cdh/generators/groovy/MANIFEST.toml +14 -0
- package/cdh/generators/groovy/template.groovy.tmpl +28 -0
- package/cdh/generators/hack/MANIFEST.toml +14 -0
- package/cdh/generators/hack/template.hh.tmpl +24 -0
- package/cdh/generators/haskell/MANIFEST.toml +14 -0
- package/cdh/generators/haskell/template.hs.tmpl +20 -0
- package/cdh/generators/haxe/MANIFEST.toml +14 -0
- package/cdh/generators/haxe/template.hx.tmpl +20 -0
- package/cdh/generators/idris/MANIFEST.toml +14 -0
- package/cdh/generators/idris/template.idr.tmpl +22 -0
- package/cdh/generators/java/MANIFEST.toml +18 -0
- package/cdh/generators/java/template.java.tmpl +13 -0
- package/cdh/generators/julia/MANIFEST.toml +14 -0
- package/cdh/generators/julia/template.jl.tmpl +27 -0
- package/cdh/generators/kotlin/MANIFEST.toml +18 -0
- package/cdh/generators/kotlin/template.kt.tmpl +12 -0
- package/cdh/generators/lua/MANIFEST.toml +14 -0
- package/cdh/generators/lua/template.lua.tmpl +27 -0
- package/cdh/generators/matlab/MANIFEST.toml +14 -0
- package/cdh/generators/matlab/template.m.tmpl +26 -0
- package/cdh/generators/nim/MANIFEST.toml +14 -0
- package/cdh/generators/nim/template.nim.tmpl +12 -0
- package/cdh/generators/nix/MANIFEST.toml +14 -0
- package/cdh/generators/nix/template.nix.tmpl +8 -0
- package/cdh/generators/objective-c/MANIFEST.toml +14 -0
- package/cdh/generators/objective-c/template.m.tmpl +31 -0
- package/cdh/generators/ocaml/MANIFEST.toml +14 -0
- package/cdh/generators/ocaml/template.ml.tmpl +13 -0
- package/cdh/generators/pascal/MANIFEST.toml +14 -0
- package/cdh/generators/pascal/template.pas.tmpl +5 -0
- package/cdh/generators/perl/MANIFEST.toml +14 -0
- package/cdh/generators/perl/template.pm.tmpl +27 -0
- package/cdh/generators/php/MANIFEST.toml +17 -0
- package/cdh/generators/php/template.php.tmpl +31 -0
- package/cdh/generators/powershell/MANIFEST.toml +14 -0
- package/cdh/generators/powershell/template.ps1.tmpl +20 -0
- package/cdh/generators/protobuf/MANIFEST.toml +18 -0
- package/cdh/generators/protobuf/template.proto.tmpl +13 -0
- package/cdh/generators/python/MANIFEST.toml +18 -0
- package/cdh/generators/python/template.py.tmpl +12 -0
- package/cdh/generators/r/MANIFEST.toml +14 -0
- package/cdh/generators/r/template.R.tmpl +29 -0
- package/cdh/generators/racket/MANIFEST.toml +14 -0
- package/cdh/generators/racket/template.rkt.tmpl +15 -0
- package/cdh/generators/registry.py +211 -0
- package/cdh/generators/ruby/MANIFEST.toml +17 -0
- package/cdh/generators/ruby/template.rb.tmpl +27 -0
- package/cdh/generators/rust/MANIFEST.toml +18 -0
- package/cdh/generators/rust/template.rs.tmpl +16 -0
- package/cdh/generators/scala/MANIFEST.toml +20 -0
- package/cdh/generators/scala/template.scala.tmpl +13 -0
- package/cdh/generators/scheme/MANIFEST.toml +14 -0
- package/cdh/generators/scheme/template.scm.tmpl +16 -0
- package/cdh/generators/solidity/MANIFEST.toml +14 -0
- package/cdh/generators/solidity/template.sol.tmpl +24 -0
- package/cdh/generators/swift/MANIFEST.toml +18 -0
- package/cdh/generators/swift/template.swift.tmpl +10 -0
- package/cdh/generators/typescript/MANIFEST.toml +18 -0
- package/cdh/generators/typescript/template.ts.tmpl +7 -0
- package/cdh/generators/version.py +214 -0
- package/cdh/generators/zig/MANIFEST.toml +14 -0
- package/cdh/generators/zig/template.zig.tmpl +20 -0
- package/cdh/logging.py +314 -0
- package/cdh/optimizer/__init__.py +7 -0
- package/cdh/optimizer/loop.py +201 -0
- package/cdh/optimizer/mutation.py +85 -0
- package/cdh/optimizer/reward.py +51 -0
- package/cdh/optimizer/tracker.py +118 -0
- package/cdh/project_loader.py +1022 -0
- package/cdh/rules/patterns.yaml +132 -0
- package/cdh/rules/spectral.yaml +301 -0
- package/cdh/scaffold.py +1436 -0
- package/cdh/session_store.py +221 -0
- package/cdh/state_schema.py +127 -0
- package/cdh/tools/__init__.py +57 -0
- package/cdh/tools/cls_search.py +406 -0
- package/cdh/tools/contract_diff.py +644 -0
- package/cdh/tools/deploy_stack.py +590 -0
- package/cdh/tools/generate_shared.py +300 -0
- package/cdh/tools/iac_gen.py +224 -0
- package/cdh/tools/otel_export.py +125 -0
- package/cdh/tools/pattern_detect.py +451 -0
- package/cdh/tools/retrofit_labels.py +505 -0
- package/cdh/trace/__init__.py +101 -0
- package/cdh/trace/__pycache__/__init__.cpython-314.pyc +0 -0
- package/cdh/trace/dashboard/__init__.py +61 -0
- package/cdh/trace/dashboard/api.py +1032 -0
- package/cdh/trace/dashboard/app.html +1321 -0
- package/cdh/trace/dashboard/server.py +310 -0
- package/cdh/trace/otel_exporter.py +462 -0
- package/cdh/trace/otel_tracer.py +281 -0
- package/cdh/tui.py +1084 -0
- package/cdh/validators/__init__.py +16 -0
- package/cdh/validators/__pycache__/__init__.cpython-314.pyc +0 -0
- package/cdh/validators/__pycache__/bdd.cpython-314.pyc +0 -0
- package/cdh/validators/__pycache__/dag.cpython-314.pyc +0 -0
- package/cdh/validators/__pycache__/ears.cpython-314.pyc +0 -0
- package/cdh/validators/__pycache__/fr_namespace.cpython-314.pyc +0 -0
- package/cdh/validators/bdd.py +144 -0
- package/cdh/validators/dag.py +179 -0
- package/cdh/validators/ears.py +452 -0
- package/cdh/validators/fr_namespace.py +143 -0
- package/cdh/validators/spectral.py +475 -0
- package/cdh/verification/__init__.py +3 -0
- package/cdh/verification/aggregation.py +53 -0
- package/cdh/verification/gates/__init__.py +5 -0
- package/cdh/verification/gates/base.py +18 -0
- package/cdh/verification/gates/lint_gate.py +37 -0
- package/cdh/verification/gates/test_gate.py +41 -0
- package/cdh/verification/loop.py +93 -0
- package/cdh/verification/policy.py +24 -0
- package/onecode/__init__.py +1 -0
- package/onecode/__main__.py +4 -0
- package/onecode/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/__pycache__/cli.cpython-314.pyc +0 -0
- package/onecode/__pycache__/commands.cpython-314.pyc +0 -0
- package/onecode/__pycache__/config.cpython-314.pyc +0 -0
- package/onecode/__pycache__/migrate.cpython-314.pyc +0 -0
- package/onecode/agent/__init__.py +0 -0
- package/onecode/agent/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/cdh_loader.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/checkpoint.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/context.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/engine.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/hooks.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/onecode_agent_acp.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/permissions.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/permissions_store.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/project_doc.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/session.cpython-314.pyc +0 -0
- package/onecode/agent/__pycache__/turn_record.cpython-314.pyc +0 -0
- package/onecode/agent/agents/__init__.py +29 -0
- package/onecode/agent/agents/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/agent/agents/__pycache__/types.cpython-314.pyc +0 -0
- package/onecode/agent/agents/prompts/build-agent.md +50 -0
- package/onecode/agent/agents/prompts/compaction-instructions.md +12 -0
- package/onecode/agent/agents/prompts/explore-agent.md +42 -0
- package/onecode/agent/agents/prompts/plan-agent.md +44 -0
- package/onecode/agent/agents/prompts/plan-gate-hard.md +4 -0
- package/onecode/agent/agents/prompts/plan-gate-soft.md +3 -0
- package/onecode/agent/agents/prompts/solo-agent.md +57 -0
- package/onecode/agent/agents/prompts/subagent-constraints.md +10 -0
- package/onecode/agent/agents/prompts/summary-instructions.md +7 -0
- package/onecode/agent/agents/prompts/title-instructions.md +3 -0
- package/onecode/agent/agents/prompts/tool-descriptions.md +129 -0
- package/onecode/agent/agents/types.py +786 -0
- package/onecode/agent/attachments.py +112 -0
- package/onecode/agent/cdh_loader.py +3 -0
- package/onecode/agent/checkpoint.py +285 -0
- package/onecode/agent/context.py +465 -0
- package/onecode/agent/engine.py +3547 -0
- package/onecode/agent/event_bridge.py +75 -0
- package/onecode/agent/hooks.py +86 -0
- package/onecode/agent/onecode_agent_acp.py +2993 -0
- package/onecode/agent/permissions.py +150 -0
- package/onecode/agent/permissions_store.py +73 -0
- package/onecode/agent/project_doc.py +19 -0
- package/onecode/agent/question_detect.py +230 -0
- package/onecode/agent/session.py +3 -0
- package/onecode/agent/snapshot.py +144 -0
- package/onecode/agent/tools/__init__.py +17 -0
- package/onecode/agent/tools/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/agent_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/apply_patch_tool.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/bash_tool.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/communication_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/config_tool.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/cron_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/errors.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/file_ops.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/file_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/git_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/lsp_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/mcp_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/permission_handler.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/permissions.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/protocol.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/registry.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/sandbox.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/schema_validation.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/skill_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/todo_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/__pycache__/web_tools.cpython-314.pyc +0 -0
- package/onecode/agent/tools/agent_tools.py +128 -0
- package/onecode/agent/tools/apply_patch_tool.py +138 -0
- package/onecode/agent/tools/bash_tool.py +121 -0
- package/onecode/agent/tools/communication_tools.py +154 -0
- package/onecode/agent/tools/config_tool.py +130 -0
- package/onecode/agent/tools/cron_tools.py +178 -0
- package/onecode/agent/tools/errors.py +17 -0
- package/onecode/agent/tools/file_ops.py +221 -0
- package/onecode/agent/tools/file_tools.py +225 -0
- package/onecode/agent/tools/git_tools.py +88 -0
- package/onecode/agent/tools/lsp_tools.py +404 -0
- package/onecode/agent/tools/mcp_tools.py +211 -0
- package/onecode/agent/tools/permission_handler.py +46 -0
- package/onecode/agent/tools/permissions.py +77 -0
- package/onecode/agent/tools/protocol.py +20 -0
- package/onecode/agent/tools/registry.py +210 -0
- package/onecode/agent/tools/sandbox.py +460 -0
- package/onecode/agent/tools/schema_validation.py +100 -0
- package/onecode/agent/tools/skill_tools.py +52 -0
- package/onecode/agent/tools/todo_tools.py +208 -0
- package/onecode/agent/tools/web_tools.py +530 -0
- package/onecode/agent/turn_record.py +28 -0
- package/onecode/builtin_skills/agent-browser/SKILL.md +212 -0
- package/onecode/builtin_skills/agent-browser/skill.yaml +8 -0
- package/onecode/builtin_skills/cloudbase/SKILL.md +162 -0
- package/onecode/builtin_skills/cloudbase/skill.yaml +7 -0
- package/onecode/builtin_skills/git/SKILL.md +64 -0
- package/onecode/builtin_skills/git/skill.yaml +7 -0
- package/onecode/builtin_skills/shell/SKILL.md +58 -0
- package/onecode/builtin_skills/shell/skill.yaml +8 -0
- package/onecode/builtin_skills/skill-creator/SKILL.md +106 -0
- package/onecode/builtin_skills/skill-creator/skill.yaml +8 -0
- package/onecode/cli.py +1325 -0
- package/onecode/codebase/__init__.py +69 -0
- package/onecode/codebase/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/codebase/__pycache__/chunker.cpython-314.pyc +0 -0
- package/onecode/codebase/__pycache__/indexer.cpython-314.pyc +0 -0
- package/onecode/codebase/__pycache__/retriever.cpython-314.pyc +0 -0
- package/onecode/codebase/__pycache__/storage.cpython-314.pyc +0 -0
- package/onecode/codebase/__pycache__/tools.cpython-314.pyc +0 -0
- package/onecode/codebase/chunker.py +125 -0
- package/onecode/codebase/indexer.py +154 -0
- package/onecode/codebase/retriever.py +240 -0
- package/onecode/codebase/storage.py +153 -0
- package/onecode/codebase/tools.py +59 -0
- package/onecode/commands.py +673 -0
- package/onecode/config.py +539 -0
- package/onecode/config_screen.py +486 -0
- package/onecode/cron/__init__.py +3 -0
- package/onecode/lsp/__init__.py +3 -0
- package/onecode/mcp/__init__.py +11 -0
- package/onecode/mcp/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/mcp/__pycache__/client.cpython-314.pyc +0 -0
- package/onecode/mcp/__pycache__/cloudbase.cpython-314.pyc +0 -0
- package/onecode/mcp/__pycache__/config.cpython-314.pyc +0 -0
- package/onecode/mcp/__pycache__/manager.cpython-314.pyc +0 -0
- package/onecode/mcp/__pycache__/oauth.cpython-314.pyc +0 -0
- package/onecode/mcp/client.py +305 -0
- package/onecode/mcp/cloudbase.py +188 -0
- package/onecode/mcp/config.py +363 -0
- package/onecode/mcp/manager.py +603 -0
- package/onecode/mcp/oauth.py +199 -0
- package/onecode/memory/__init__.py +106 -0
- package/onecode/memory/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/memory/__pycache__/backend.cpython-314.pyc +0 -0
- package/onecode/memory/__pycache__/pyramid.cpython-314.pyc +0 -0
- package/onecode/memory/__pycache__/recall.cpython-314.pyc +0 -0
- package/onecode/memory/backend.py +179 -0
- package/onecode/memory/pyramid.py +145 -0
- package/onecode/memory/recall.py +322 -0
- package/onecode/migrate.py +122 -0
- package/onecode/models/__init__.py +4 -0
- package/onecode/models/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/models/__pycache__/errors.cpython-314.pyc +0 -0
- package/onecode/models/__pycache__/messages.cpython-314.pyc +0 -0
- package/onecode/models/__pycache__/ollama_manager.cpython-314.pyc +0 -0
- package/onecode/models/__pycache__/provider.cpython-314.pyc +0 -0
- package/onecode/models/__pycache__/registry.cpython-314.pyc +0 -0
- package/onecode/models/errors.py +104 -0
- package/onecode/models/messages.py +750 -0
- package/onecode/models/ollama_manager.py +167 -0
- package/onecode/models/provider.py +730 -0
- package/onecode/models/providers/__init__.py +17 -0
- package/onecode/models/providers/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/models/providers/__pycache__/anthropic_provider.cpython-314.pyc +0 -0
- package/onecode/models/providers/__pycache__/deepseek_provider.cpython-314.pyc +0 -0
- package/onecode/models/providers/__pycache__/glm_provider.cpython-314.pyc +0 -0
- package/onecode/models/providers/__pycache__/minimax_provider.cpython-314.pyc +0 -0
- package/onecode/models/providers/__pycache__/minimaxi_provider.cpython-314.pyc +0 -0
- package/onecode/models/providers/__pycache__/ollama_provider.cpython-314.pyc +0 -0
- package/onecode/models/providers/__pycache__/openai_provider.cpython-314.pyc +0 -0
- package/onecode/models/providers/anthropic_provider.py +286 -0
- package/onecode/models/providers/deepseek_provider.py +221 -0
- package/onecode/models/providers/glm_provider.py +219 -0
- package/onecode/models/providers/minimax_provider.py +182 -0
- package/onecode/models/providers/minimaxi_provider.py +426 -0
- package/onecode/models/providers/ollama_provider.py +183 -0
- package/onecode/models/providers/openai_provider.py +234 -0
- package/onecode/models/registry.py +349 -0
- package/onecode/server/__init__.py +3 -0
- package/onecode/server/app.py +251 -0
- package/onecode/skills/__init__.py +11 -0
- package/onecode/skills/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/skills/__pycache__/argument_substitution.cpython-314.pyc +0 -0
- package/onecode/skills/__pycache__/bootstrap.cpython-314.pyc +0 -0
- package/onecode/skills/__pycache__/create.cpython-314.pyc +0 -0
- package/onecode/skills/__pycache__/frontmatter.cpython-314.pyc +0 -0
- package/onecode/skills/__pycache__/loader.cpython-314.pyc +0 -0
- package/onecode/skills/__pycache__/model.cpython-314.pyc +0 -0
- package/onecode/skills/argument_substitution.py +38 -0
- package/onecode/skills/bootstrap.py +37 -0
- package/onecode/skills/create.py +56 -0
- package/onecode/skills/frontmatter.py +33 -0
- package/onecode/skills/loader.py +215 -0
- package/onecode/skills/manager.py +75 -0
- package/onecode/skills/model.py +43 -0
- package/onecode/storage/__init__.py +0 -0
- package/onecode/storage/activity.py +63 -0
- package/onecode/storage/project.py +54 -0
- package/onecode/storage/session.py +112 -0
- package/onecode/tasks/__init__.py +26 -0
- package/onecode/tasks/manager.py +232 -0
- package/onecode/tasks/models.py +240 -0
- package/onecode/trace/__init__.py +0 -0
- package/onecode/trace/tracer.py +173 -0
- package/onecode/utils/__init__.py +0 -0
- package/onecode/utils/helpers.py +20 -0
- package/onecode/verification/__init__.py +5 -0
- package/onecode/verification/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/verification/__pycache__/aggregation.cpython-314.pyc +0 -0
- package/onecode/verification/__pycache__/loop.cpython-314.pyc +0 -0
- package/onecode/verification/__pycache__/policy.cpython-314.pyc +0 -0
- package/onecode/verification/aggregation.py +53 -0
- package/onecode/verification/gates/__init__.py +6 -0
- package/onecode/verification/gates/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/verification/gates/__pycache__/base.cpython-314.pyc +0 -0
- package/onecode/verification/gates/__pycache__/lint_gate.cpython-314.pyc +0 -0
- package/onecode/verification/gates/__pycache__/test_gate.cpython-314.pyc +0 -0
- package/onecode/verification/gates/__pycache__/type_gate.cpython-314.pyc +0 -0
- package/onecode/verification/gates/base.py +20 -0
- package/onecode/verification/gates/lint_gate.py +45 -0
- package/onecode/verification/gates/test_gate.py +62 -0
- package/onecode/verification/gates/type_gate.py +46 -0
- package/onecode/verification/loop.py +95 -0
- package/onecode/verification/policy.py +29 -0
- package/package.json +2 -2
- package/pyproject.toml +84 -0
- package/tui/__init__.py +46 -0
- package/tui/__main__.py +4 -0
- package/tui/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tui/__pycache__/_loop.cpython-314.pyc +0 -0
- package/tui/__pycache__/_path_fuzzy_search.cpython-314.pyc +0 -0
- package/tui/__pycache__/_path_match.cpython-314.pyc +0 -0
- package/tui/__pycache__/agent.cpython-314.pyc +0 -0
- package/tui/__pycache__/agent_schema.cpython-314.pyc +0 -0
- package/tui/__pycache__/agents.cpython-314.pyc +0 -0
- package/tui/__pycache__/answer.cpython-314.pyc +0 -0
- package/tui/__pycache__/app.cpython-314.pyc +0 -0
- package/tui/__pycache__/atomic.cpython-314.pyc +0 -0
- package/tui/__pycache__/complete.cpython-314.pyc +0 -0
- package/tui/__pycache__/constants.cpython-314.pyc +0 -0
- package/tui/__pycache__/conversation_markdown.cpython-314.pyc +0 -0
- package/tui/__pycache__/db.cpython-314.pyc +0 -0
- package/tui/__pycache__/dec.cpython-314.pyc +0 -0
- package/tui/__pycache__/directory.cpython-314.pyc +0 -0
- package/tui/__pycache__/directory_watcher.cpython-314.pyc +0 -0
- package/tui/__pycache__/format_path.cpython-314.pyc +0 -0
- package/tui/__pycache__/fuzzy.cpython-314.pyc +0 -0
- package/tui/__pycache__/fuzzy_index.cpython-314.pyc +0 -0
- package/tui/__pycache__/history.cpython-314.pyc +0 -0
- package/tui/__pycache__/jsonrpc.cpython-314.pyc +0 -0
- package/tui/__pycache__/menus.cpython-314.pyc +0 -0
- package/tui/__pycache__/message_log.cpython-314.pyc +0 -0
- package/tui/__pycache__/messages.cpython-314.pyc +0 -0
- package/tui/__pycache__/path_complete.cpython-314.pyc +0 -0
- package/tui/__pycache__/path_filter.cpython-314.pyc +0 -0
- package/tui/__pycache__/paths.cpython-314.pyc +0 -0
- package/tui/__pycache__/pill.cpython-314.pyc +0 -0
- package/tui/__pycache__/platform_commands.cpython-314.pyc +0 -0
- package/tui/__pycache__/protocol.cpython-314.pyc +0 -0
- package/tui/__pycache__/session_tracker.cpython-314.pyc +0 -0
- package/tui/__pycache__/settings.cpython-314.pyc +0 -0
- package/tui/__pycache__/settings_schema.cpython-314.pyc +0 -0
- package/tui/__pycache__/shell.cpython-314.pyc +0 -0
- package/tui/__pycache__/shell_read.cpython-314.pyc +0 -0
- package/tui/__pycache__/slash_command.cpython-314.pyc +0 -0
- package/tui/__pycache__/version.cpython-314.pyc +0 -0
- package/tui/_loop.py +86 -0
- package/tui/_path_fuzzy_search.py +48 -0
- package/tui/_path_match.py +141 -0
- package/tui/about.py +95 -0
- package/tui/acp/__pycache__/agent.cpython-314.pyc +0 -0
- package/tui/acp/__pycache__/api.cpython-314.pyc +0 -0
- package/tui/acp/__pycache__/encode_tool_call_id.cpython-314.pyc +0 -0
- package/tui/acp/__pycache__/event_tap.cpython-314.pyc +0 -0
- package/tui/acp/__pycache__/messages.cpython-314.pyc +0 -0
- package/tui/acp/__pycache__/prompt.cpython-314.pyc +0 -0
- package/tui/acp/__pycache__/protocol.cpython-314.pyc +0 -0
- package/tui/acp/agent.py +1212 -0
- package/tui/acp/api.py +79 -0
- package/tui/acp/encode_tool_call_id.py +12 -0
- package/tui/acp/event_tap.py +107 -0
- package/tui/acp/messages.py +222 -0
- package/tui/acp/prompt.py +53 -0
- package/tui/acp/protocol.py +551 -0
- package/tui/agent.py +70 -0
- package/tui/agent_schema.py +76 -0
- package/tui/agents.py +46 -0
- package/tui/ansi/__init__.py +1 -0
- package/tui/ansi/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tui/ansi/__pycache__/_ansi.cpython-314.pyc +0 -0
- package/tui/ansi/__pycache__/_ansi_colors.cpython-314.pyc +0 -0
- package/tui/ansi/__pycache__/_control_codes.cpython-314.pyc +0 -0
- package/tui/ansi/__pycache__/_keys.cpython-314.pyc +0 -0
- package/tui/ansi/__pycache__/_sgr_styles.cpython-314.pyc +0 -0
- package/tui/ansi/__pycache__/_stream_parser.cpython-314.pyc +0 -0
- package/tui/ansi/_ansi.py +1689 -0
- package/tui/ansi/_ansi_colors.py +264 -0
- package/tui/ansi/_control_codes.py +37 -0
- package/tui/ansi/_keys.py +251 -0
- package/tui/ansi/_sgr_styles.py +64 -0
- package/tui/ansi/_stream_parser.py +418 -0
- package/tui/answer.py +12 -0
- package/tui/app.py +1195 -0
- package/tui/atomic.py +37 -0
- package/tui/cli.py +208 -0
- package/tui/code_analyze.py +27 -0
- package/tui/complete.py +38 -0
- package/tui/constants.py +61 -0
- package/tui/conversation_markdown.py +30 -0
- package/tui/danger.py +372 -0
- package/tui/data/agents/ampcode.com.toml +52 -0
- package/tui/data/agents/augmentcode.com.toml +41 -0
- package/tui/data/agents/cdh.cloud-dev-harness.toml +23 -0
- package/tui/data/agents/claude.com.toml +41 -0
- package/tui/data/agents/copilot.github.com.toml +29 -0
- package/tui/data/agents/crowai.dev.toml +36 -0
- package/tui/data/agents/cursor.com.toml +38 -0
- package/tui/data/agents/deepagents.langchain.com +34 -0
- package/tui/data/agents/docker.com.toml +60 -0
- package/tui/data/agents/geminicli.com.toml +28 -0
- package/tui/data/agents/goose.ai.toml +52 -0
- package/tui/data/agents/inference.huggingface.co.toml +41 -0
- package/tui/data/agents/kimi.com.toml +35 -0
- package/tui/data/agents/kiro.dev.toml +43 -0
- package/tui/data/agents/onecode.dev.toml +22 -0
- package/tui/data/agents/openai.com.toml +53 -0
- package/tui/data/agents/openclaw.ai.toml +37 -0
- package/tui/data/agents/opencode.ai.toml +39 -0
- package/tui/data/agents/openhands.dev.toml +46 -0
- package/tui/data/agents/stakpak.dev.toml +62 -0
- package/tui/data/agents/vibe.mistral.ai.toml +31 -0
- package/tui/data/agents/vtcode.dev.toml +63 -0
- package/tui/data/images/frog.png +0 -0
- package/tui/data/sounds/question.wav +0 -0
- package/tui/data/sounds/turn-over.wav +0 -0
- package/tui/db.py +213 -0
- package/tui/dec.py +332 -0
- package/tui/diff_utils.py +131 -0
- package/tui/directory.py +234 -0
- package/tui/directory_suggester.py +93 -0
- package/tui/directory_watcher.py +231 -0
- package/tui/format_path.py +25 -0
- package/tui/fuzzy.py +140 -0
- package/tui/fuzzy_index.py +275 -0
- package/tui/gist.py +33 -0
- package/tui/history.py +138 -0
- package/tui/jsonrpc.py +599 -0
- package/tui/menus.py +14 -0
- package/tui/message_log.py +69 -0
- package/tui/messages.py +144 -0
- package/tui/option_content.py +51 -0
- package/tui/os.py +0 -0
- package/tui/path_complete.py +217 -0
- package/tui/path_filter.py +124 -0
- package/tui/paths.py +87 -0
- package/tui/pill.py +23 -0
- package/tui/platform_commands.py +52 -0
- package/tui/prompt/__pycache__/extract.cpython-314.pyc +0 -0
- package/tui/prompt/__pycache__/resource.cpython-314.pyc +0 -0
- package/tui/prompt/extract.py +19 -0
- package/tui/prompt/resource.py +68 -0
- package/tui/protocol.py +28 -0
- package/tui/screens/__init__.py +0 -0
- package/tui/screens/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/diff_screen.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/main.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/sessions.cpython-314.pyc +0 -0
- package/tui/screens/action_modal.py +94 -0
- package/tui/screens/agent_modal.py +175 -0
- package/tui/screens/command_edit_modal.py +74 -0
- package/tui/screens/diff_explorer_screen.py +419 -0
- package/tui/screens/diff_screen.py +84 -0
- package/tui/screens/ide_screen.py +461 -0
- package/tui/screens/main.py +397 -0
- package/tui/screens/main.tcss +662 -0
- package/tui/screens/permissions.py +404 -0
- package/tui/screens/permissions.tcss +72 -0
- package/tui/screens/projects.tcss +84 -0
- package/tui/screens/projects_app.py +341 -0
- package/tui/screens/projects_screen.py +277 -0
- package/tui/screens/session_resume_modal.py +172 -0
- package/tui/screens/session_resume_modal.tcss +35 -0
- package/tui/screens/sessions.py +171 -0
- package/tui/screens/sessions.tcss +119 -0
- package/tui/screens/settings.py +293 -0
- package/tui/screens/settings.tcss +113 -0
- package/tui/screens/store.py +502 -0
- package/tui/screens/store.tcss +274 -0
- package/tui/screens/tool_content_screen.py +59 -0
- package/tui/screens/trace.py +317 -0
- package/tui/session_tracker.py +123 -0
- package/tui/settings.py +353 -0
- package/tui/settings_schema.py +467 -0
- package/tui/shell.py +304 -0
- package/tui/shell_read.py +42 -0
- package/tui/slash_command.py +34 -0
- package/tui/tui.tcss +246 -0
- package/tui/twitter.py +38 -0
- package/tui/version.py +80 -0
- package/tui/visuals/__init__.py +0 -0
- package/tui/visuals/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tui/visuals/__pycache__/columns.cpython-314.pyc +0 -0
- package/tui/visuals/columns.py +272 -0
- package/tui/widgets/__init__.py +0 -0
- package/tui/widgets/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/agent_response.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/agent_thought.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/aidlc.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/ask_user.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/condensed_path.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/context_stats.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/conversation.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/diff_view.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/flash.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/future_text.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/grid_select.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/highlighted_textarea.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/load_more.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/menu.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/modified_files.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/non_selectable_label.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/note.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/path_search.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/pending_prompts.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/plan.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/project_directory_tree.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/prompt.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/question.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/session_grid_select.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/session_summary.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/session_tabs.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/shell_terminal.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/side_bar.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/slash_complete.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/strike_text.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/terminal.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/throbber.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/tool_call.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/user_input.cpython-314.pyc +0 -0
- package/tui/widgets/acp_content.py +70 -0
- package/tui/widgets/agent_response.py +76 -0
- package/tui/widgets/agent_thought.py +167 -0
- package/tui/widgets/aidlc.py +334 -0
- package/tui/widgets/ask_user.py +604 -0
- package/tui/widgets/command_pane.py +223 -0
- package/tui/widgets/condensed_path.py +115 -0
- package/tui/widgets/context_stats.py +66 -0
- package/tui/widgets/conversation.py +3235 -0
- package/tui/widgets/danger_warning.py +65 -0
- package/tui/widgets/diff_view.py +69 -0
- package/tui/widgets/directory_input.py +8 -0
- package/tui/widgets/edit_field.py +206 -0
- package/tui/widgets/flash.py +81 -0
- package/tui/widgets/future_text.py +126 -0
- package/tui/widgets/grid_select.py +234 -0
- package/tui/widgets/highlighted_textarea.py +183 -0
- package/tui/widgets/load_more.py +24 -0
- package/tui/widgets/mandelbrot.py +294 -0
- package/tui/widgets/markdown_note.py +13 -0
- package/tui/widgets/menu.py +147 -0
- package/tui/widgets/model_status.py +230 -0
- package/tui/widgets/modified_files.py +315 -0
- package/tui/widgets/non_selectable_label.py +5 -0
- package/tui/widgets/note.py +18 -0
- package/tui/widgets/path_search.py +492 -0
- package/tui/widgets/pending_prompts.py +36 -0
- package/tui/widgets/plan.py +285 -0
- package/tui/widgets/project_directory_tree.py +102 -0
- package/tui/widgets/project_grid_select.py +68 -0
- package/tui/widgets/project_summary.py +33 -0
- package/tui/widgets/prompt.py +935 -0
- package/tui/widgets/question.py +360 -0
- package/tui/widgets/session_grid_select.py +230 -0
- package/tui/widgets/session_summary.py +115 -0
- package/tui/widgets/session_tabs.py +194 -0
- package/tui/widgets/shell_result.py +35 -0
- package/tui/widgets/shell_terminal.py +40 -0
- package/tui/widgets/side_bar.py +124 -0
- package/tui/widgets/slash_complete.py +235 -0
- package/tui/widgets/strike_text.py +70 -0
- package/tui/widgets/subagent.py +287 -0
- package/tui/widgets/subagent_screen.py +715 -0
- package/tui/widgets/terminal.py +576 -0
- package/tui/widgets/terminal_tool.py +360 -0
- package/tui/widgets/throbber.py +100 -0
- package/tui/widgets/tool_call.py +432 -0
- package/tui/widgets/user_input.py +23 -0
- package/tui/widgets/version.py +5 -0
- package/tui/widgets/welcome.py +31 -0
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
# TCB Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
## Quick Diagnosis
|
|
4
|
+
|
|
5
|
+
Run these commands to diagnose common issues:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Check environment
|
|
9
|
+
tcb env info
|
|
10
|
+
|
|
11
|
+
# Check credentials
|
|
12
|
+
tcb env list
|
|
13
|
+
|
|
14
|
+
# List functions
|
|
15
|
+
tcb fn list --env $TCB_ENV_ID
|
|
16
|
+
|
|
17
|
+
# Get function logs
|
|
18
|
+
tcb fn logs --name <function-name> --limit 50 --env $TCB_ENV_ID
|
|
19
|
+
|
|
20
|
+
# Check hosting
|
|
21
|
+
tcb hosting detail --env $TCB_ENV_ID
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Function Issues
|
|
25
|
+
|
|
26
|
+
### Function Deployment Fails
|
|
27
|
+
|
|
28
|
+
| Error | Cause | Solution |
|
|
29
|
+
|-------|-------|----------|
|
|
30
|
+
| `Function not found` | Wrong function name or env | `tcb fn list` to verify |
|
|
31
|
+
| `Deploy timeout` | Network or package size | Check package size, reduce dependencies |
|
|
32
|
+
| `Code package too large` | > 256MB compressed | Minimize dependencies, use ES modules |
|
|
33
|
+
| `Invalid handler` | Handler path wrong | Check cloudbaserc.json handler setting |
|
|
34
|
+
| `Runtime not supported` | Wrong runtime | Use Nodejs16.13 or Python3.9 |
|
|
35
|
+
|
|
36
|
+
### Function Invocation Fails
|
|
37
|
+
|
|
38
|
+
| Error | Cause | Solution |
|
|
39
|
+
|-------|-------|----------|
|
|
40
|
+
| `Function timeout` | Execution > 60s | Optimize function, or use CloudBase Run |
|
|
41
|
+
| `Memory exceeded` | > 1536MB limit | Increase memory or optimize usage |
|
|
42
|
+
| `Concurrent limit` | > 100 instances | Request increase or implement throttling |
|
|
43
|
+
| `Permission denied` | No DB access | Check collection rules |
|
|
44
|
+
| `Handler not found` | Export name wrong | Export must be `exports.main` |
|
|
45
|
+
|
|
46
|
+
### Cold Start Issues
|
|
47
|
+
|
|
48
|
+
| Symptom | Cause | Solution |
|
|
49
|
+
|---------|-------|----------|
|
|
50
|
+
| First request slow | Cold start | Normal, 100-500ms expected |
|
|
51
|
+
| Every request slow | Large package | Minimize dependencies |
|
|
52
|
+
| Slow after idle | Container recycled | Use timer keep-warm trigger |
|
|
53
|
+
| Inconsistent latency | Cold starts | Increase memory (faster CPU) |
|
|
54
|
+
|
|
55
|
+
## Database Issues
|
|
56
|
+
|
|
57
|
+
### DocDB Query Fails
|
|
58
|
+
|
|
59
|
+
| Error | Cause | Solution |
|
|
60
|
+
|-------|-------|----------|
|
|
61
|
+
| `Collection not found` | Wrong name | `tcb db list` to see collections |
|
|
62
|
+
| `Query syntax error` | Invalid query | Check query syntax |
|
|
63
|
+
| `Permission denied` | No read permission | Check collection permissions |
|
|
64
|
+
| `Request limit exceeded` | Too many queries | Add indexes, reduce query frequency |
|
|
65
|
+
| `Document too large` | > 16MB | Split document into smaller parts |
|
|
66
|
+
|
|
67
|
+
### MySQL Issues
|
|
68
|
+
|
|
69
|
+
| Error | Cause | Solution |
|
|
70
|
+
|-------|-------|----------|
|
|
71
|
+
| `Connection refused` | Wrong host/port | Check MYSQL_HOST, MYSQL_PORT |
|
|
72
|
+
| `Access denied` | Wrong credentials | Verify username/password |
|
|
73
|
+
| `Unknown database` | Database doesn't exist | Create database first |
|
|
74
|
+
| `Table not found` | Migration not run | Run `tcb db migrate` |
|
|
75
|
+
| `Deadlock` | Concurrent writes | Retry with backoff |
|
|
76
|
+
| `Lock wait timeout` | Long transaction | Break into smaller transactions |
|
|
77
|
+
|
|
78
|
+
### Database Performance
|
|
79
|
+
|
|
80
|
+
| Symptom | Cause | Solution |
|
|
81
|
+
|---------|-------|----------|
|
|
82
|
+
| Slow queries | No index | Add indexes for WHERE/ORDER BY fields |
|
|
83
|
+
| Timeout | Large result set | Use pagination, limit results |
|
|
84
|
+
| High memory | Fetching too much | Add `.limit()`, project fields |
|
|
85
|
+
| Connection errors | Connection pool exhausted | Close connections, check pool size |
|
|
86
|
+
|
|
87
|
+
## Storage Issues
|
|
88
|
+
|
|
89
|
+
### File Upload/Download Fails
|
|
90
|
+
|
|
91
|
+
| Error | Cause | Solution |
|
|
92
|
+
|-------|-------|----------|
|
|
93
|
+
| `File not found` | Wrong path | Check path is case-sensitive |
|
|
94
|
+
| `Permission denied` | No write access | Check environment permissions |
|
|
95
|
+
| `Upload timeout` | File too large (>5MB via SDK) | Use server-side upload flow |
|
|
96
|
+
| `Invalid path` | Wrong format | Use `/folder/file.jpg` format |
|
|
97
|
+
| `Storage quota exceeded` | Environment limit | Clean up old files |
|
|
98
|
+
|
|
99
|
+
### Upload Best Practice for Large Files
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
// Instead of SDK upload (>5MB), use server-side upload
|
|
103
|
+
exports.main = async (event, context) => {
|
|
104
|
+
// Get upload credentials
|
|
105
|
+
const { url, token, fileID } = await app.uploadFile({
|
|
106
|
+
cloudPath: '/uploads/' + event.filename
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Return to client for direct upload to COS
|
|
110
|
+
return { uploadUrl: url, token, fileID };
|
|
111
|
+
};
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Hosting Issues
|
|
115
|
+
|
|
116
|
+
### Deployment Fails
|
|
117
|
+
|
|
118
|
+
| Error | Cause | Solution |
|
|
119
|
+
|-------|-------|----------|
|
|
120
|
+
| `No index.html` | Directory empty or wrong path | Check `--dir` path |
|
|
121
|
+
| `Build failed` | Local build error | Fix build, check logs |
|
|
122
|
+
| `Permission denied` | No hosting access | Check environment permissions |
|
|
123
|
+
| `Storage full` | Quota exceeded | Delete old files |
|
|
124
|
+
|
|
125
|
+
### SPA Routing 404
|
|
126
|
+
|
|
127
|
+
| Symptom | Cause | Solution |
|
|
128
|
+
|---------|-------|----------|
|
|
129
|
+
| 404 on direct URL | CDN caching | Deploy with `--force` |
|
|
130
|
+
| 404 on refresh | Routing not configured | CloudBase handles this automatically |
|
|
131
|
+
| Stale content | Old files cached | Deploy with `--force` |
|
|
132
|
+
| Missing assets | Wrong paths | Check build output paths |
|
|
133
|
+
|
|
134
|
+
### SSL/Certificate Issues
|
|
135
|
+
|
|
136
|
+
| Symptom | Cause | Solution |
|
|
137
|
+
|---------|-------|----------|
|
|
138
|
+
| Certificate not ready | New domain | Wait 1-5 minutes |
|
|
139
|
+
| Certificate expired | Auto-renewal failed | Re-add domain |
|
|
140
|
+
| Mixed content | HTTP resources | Use HTTPS for all resources |
|
|
141
|
+
|
|
142
|
+
## Authentication Issues
|
|
143
|
+
|
|
144
|
+
### Login/Permission Errors
|
|
145
|
+
|
|
146
|
+
| Error | Cause | Solution |
|
|
147
|
+
|-------|-------|----------|
|
|
148
|
+
| `Login required` | Not authenticated | Run `tcb login` or set env vars |
|
|
149
|
+
| `Invalid credentials` | Wrong secret ID/key | Verify in TCB console |
|
|
150
|
+
| `Permission denied` | Insufficient permissions | Grant more permissions in CAM |
|
|
151
|
+
| `Token expired` | STS token too old | Refresh credentials |
|
|
152
|
+
|
|
153
|
+
### Credential Troubleshooting
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Check if credentials are set
|
|
157
|
+
echo $TCB_SECRET_ID
|
|
158
|
+
echo $TCB_SECRET_KEY
|
|
159
|
+
|
|
160
|
+
# Verify credentials work
|
|
161
|
+
tcb env info
|
|
162
|
+
|
|
163
|
+
# If using MCP, check status
|
|
164
|
+
cdh cloudbase status
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## MCP Server Issues
|
|
168
|
+
|
|
169
|
+
### MCP Not Responding
|
|
170
|
+
|
|
171
|
+
| Symptom | Cause | Solution |
|
|
172
|
+
|---------|-------|----------|
|
|
173
|
+
| Timeout on MCP call | Server not running | Restart MCP server |
|
|
174
|
+
| `Invalid credentials` | Wrong env vars | Verify TCB_SECRET_ID/KEY |
|
|
175
|
+
| `Tool not found` | Wrong tool name | Check MCP server tool list |
|
|
176
|
+
| `Environment not found` | Wrong env ID | Verify TCB_ENV_ID |
|
|
177
|
+
|
|
178
|
+
### MCP Debugging
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# Check MCP status (live probe + tool count)
|
|
182
|
+
cdh cloudbase status
|
|
183
|
+
|
|
184
|
+
# Full diagnostic (config dump + auth state + live probe)
|
|
185
|
+
cdh mcp debug cloudbase
|
|
186
|
+
|
|
187
|
+
# Reconfigure MCP
|
|
188
|
+
cdh cloudbase init --secret-id xxx --secret-key xxx
|
|
189
|
+
|
|
190
|
+
# Clear credentials (logout)
|
|
191
|
+
cdh cloudbase logout
|
|
192
|
+
|
|
193
|
+
# Manual MCP test
|
|
194
|
+
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | npx @cloudbase/cloudbase-mcp
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Inspecting / Migrating the config
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Show current config (secret values masked)
|
|
201
|
+
cdh mcp list
|
|
202
|
+
|
|
203
|
+
# Inspect the raw JSON
|
|
204
|
+
cat ~/.onecode/mcp.json
|
|
205
|
+
|
|
206
|
+
# One-shot: migrate legacy mcps.yaml -> mcp.json (auto-backs up)
|
|
207
|
+
cdh mcp migrate
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Environment Issues
|
|
211
|
+
|
|
212
|
+
### Environment Not Found
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# List available environments
|
|
216
|
+
tcb env list
|
|
217
|
+
|
|
218
|
+
# Check if correct env is set
|
|
219
|
+
tcb env info
|
|
220
|
+
|
|
221
|
+
# Set correct environment
|
|
222
|
+
tcb env use env-xxxxx
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Quota Exceeded
|
|
226
|
+
|
|
227
|
+
| Resource | Limit | Solution |
|
|
228
|
+
|----------|-------|----------|
|
|
229
|
+
| Functions | 100 | Delete unused functions |
|
|
230
|
+
| Collections | 100 | Clean up old collections |
|
|
231
|
+
| Storage | 50GB | Delete old files |
|
|
232
|
+
| DocDB | 2GB | Archive or delete old data |
|
|
233
|
+
| MySQL | 20GB | Clean up old data |
|
|
234
|
+
|
|
235
|
+
## Network Issues
|
|
236
|
+
|
|
237
|
+
### Function Can't Reach External API
|
|
238
|
+
|
|
239
|
+
```javascript
|
|
240
|
+
// Check if outbound network is allowed
|
|
241
|
+
// TCB functions can access internet by default
|
|
242
|
+
|
|
243
|
+
// If behind firewall, use TCB VPC or internal services
|
|
244
|
+
const result = await app.callFunction({
|
|
245
|
+
name: 'target-function'
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### CORS Errors
|
|
250
|
+
|
|
251
|
+
```javascript
|
|
252
|
+
// In function, set CORS headers
|
|
253
|
+
exports.main = async (event, context) => {
|
|
254
|
+
return {
|
|
255
|
+
statusCode: 200,
|
|
256
|
+
headers: {
|
|
257
|
+
'Access-Control-Allow-Origin': '*',
|
|
258
|
+
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
|
|
259
|
+
'Access-Control-Allow-Headers': 'Content-Type, Authorization'
|
|
260
|
+
},
|
|
261
|
+
body: JSON.stringify(result)
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## CI/CD Issues
|
|
267
|
+
|
|
268
|
+
### GitHub Actions Deployment Fails
|
|
269
|
+
|
|
270
|
+
| Error | Cause | Solution |
|
|
271
|
+
|-------|-------|----------|
|
|
272
|
+
| `Login required` | Secrets not set | Add TCB secrets to GitHub |
|
|
273
|
+
| `Environment not found` | Wrong env ID | Check GitHub secrets |
|
|
274
|
+
| `Deploy timeout` | Build takes too long | Optimize build, increase timeout |
|
|
275
|
+
| `E2E tests fail` | Deployment issue | Check function logs |
|
|
276
|
+
|
|
277
|
+
### Debug CI/CD
|
|
278
|
+
|
|
279
|
+
```yaml
|
|
280
|
+
- name: Debug
|
|
281
|
+
run: |
|
|
282
|
+
echo "TCB_ENV_ID: ${{ secrets.TCB_ENV_ID }}"
|
|
283
|
+
tcb env info
|
|
284
|
+
tcb fn list
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Performance Issues
|
|
288
|
+
|
|
289
|
+
### Function Performance
|
|
290
|
+
|
|
291
|
+
| Symptom | Cause | Solution |
|
|
292
|
+
|---------|-------|----------|
|
|
293
|
+
| High latency | Cold start | Increase memory, keep-warm |
|
|
294
|
+
| Memory pressure | Large variables | Minimize in-memory data |
|
|
295
|
+
| Timeout | Long execution | Optimize, increase timeout |
|
|
296
|
+
| Inconsistent | Cold starts | Normal, expect variance |
|
|
297
|
+
|
|
298
|
+
### Database Performance
|
|
299
|
+
|
|
300
|
+
| Symptom | Cause | Solution |
|
|
301
|
+
|---------|-------|----------|
|
|
302
|
+
| Slow queries | Missing index | Add indexes |
|
|
303
|
+
| Timeout | Large result | Paginate, limit |
|
|
304
|
+
| High memory | Fetching too much | Project fields, limit |
|
|
305
|
+
|
|
306
|
+
## Getting Help
|
|
307
|
+
|
|
308
|
+
### Collect Debug Info
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
# Environment info
|
|
312
|
+
tcb env info > env-info.txt
|
|
313
|
+
|
|
314
|
+
# Function list and configs
|
|
315
|
+
tcb fn list --env $TCB_ENV_ID > functions.txt
|
|
316
|
+
|
|
317
|
+
# Recent logs
|
|
318
|
+
tcb fn logs --name <function> --limit 100 --env $TCB_ENV_ID > logs.txt
|
|
319
|
+
|
|
320
|
+
# Hosting info
|
|
321
|
+
tcb hosting detail --env $TCB_ENV_ID > hosting.txt
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Common Solutions Summary
|
|
325
|
+
|
|
326
|
+
1. **Deployment fails** → Check env ID, credentials, package size
|
|
327
|
+
2. **Function timeout** → Optimize code, increase timeout, or use CloudBase Run
|
|
328
|
+
3. **Database error** → Check indexes, pagination, permissions
|
|
329
|
+
4. **Permission denied** → Verify credentials, check collection rules
|
|
330
|
+
5. **Stale content** → Deploy with `--force`, clear CDN cache
|
|
331
|
+
6. **MCP not working** → Re-run `cdh cloudbase init`, check credentials
|
|
332
|
+
|
|
333
|
+
### Useful Commands
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# Full environment status
|
|
337
|
+
tcb env info
|
|
338
|
+
|
|
339
|
+
# Function debugging
|
|
340
|
+
tcb fn detail --name <function> --env $TCB_ENV_ID
|
|
341
|
+
tcb fn logs --name <function> --tail --env $TCB_ENV_ID
|
|
342
|
+
|
|
343
|
+
# Database debugging
|
|
344
|
+
tcb db list --env $TCB_ENV_ID
|
|
345
|
+
tcb db query "SELECT * FROM users LIMIT 1" --env $TCB_ENV_ID
|
|
346
|
+
|
|
347
|
+
# Storage debugging
|
|
348
|
+
tcb storage list --path / --env $TCB_ENV_ID
|
|
349
|
+
|
|
350
|
+
# MCP debugging
|
|
351
|
+
cdh cloudbase status
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## CLS 日志服务集成 (requestId 追踪)
|
|
355
|
+
|
|
356
|
+
腾讯云 SCF 自2021年1月29日起自动将函数日志投递至日志服务 CLS,支持通过 `requestId` 进行调用链追踪。
|
|
357
|
+
|
|
358
|
+
### CLS 日志字段
|
|
359
|
+
|
|
360
|
+
| 字段名 | 类型 | 含义 |
|
|
361
|
+
|--------|------|------|
|
|
362
|
+
| `SCF_RequestId` | text | 请求 ID(调用链追踪键) |
|
|
363
|
+
| `SCF_FunctionName` | text | 函数名称 |
|
|
364
|
+
| `SCF_Namespace` | text | 命名空间 |
|
|
365
|
+
| `SCF_Message` | text | 日志内容 |
|
|
366
|
+
| `SCF_StartTime` | long | 调用开始时间 (Unix ms) |
|
|
367
|
+
| `SCF_Duration` | long | 运行时间 (ms) |
|
|
368
|
+
| `SCF_StatusCode` | long | HTTP 状态码 |
|
|
369
|
+
| `SCF_Level` | text | 日志级别 (INFO/WARN/ERROR) |
|
|
370
|
+
| `SCF_MemUsage` | double | 内存使用 (bytes) |
|
|
371
|
+
|
|
372
|
+
### 通过 requestId 查询日志
|
|
373
|
+
|
|
374
|
+
#### 方法1: CLS 控制台 (推荐手动排查)
|
|
375
|
+
|
|
376
|
+
1. 登录 [腾讯云日志服务控制台](https://console.cloud.tencent.com/cls)
|
|
377
|
+
2. 选择与 SCF 函数相同的地域
|
|
378
|
+
3. 进入 `SCF_logset` 日志集
|
|
379
|
+
4. 选择日志主题:`SCF_logtopic_{函数名}_{命名空间}`
|
|
380
|
+
5. 检索条件:`SCF_RequestId:<requestId>`
|
|
381
|
+
|
|
382
|
+
#### 方法2: SCF 控制台
|
|
383
|
+
|
|
384
|
+
1. 进入 [SCF 控制台](https://console.cloud.tencent.com/scf)
|
|
385
|
+
2. 选择函数 → 日志页签 → **高级检索**
|
|
386
|
+
3. 检索条件:`SCF_RequestId:<requestId>`
|
|
387
|
+
|
|
388
|
+
#### 方法3: cdh cls CLI (自动化)
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# 安装/更新
|
|
392
|
+
pip install -U cdh
|
|
393
|
+
|
|
394
|
+
# 通过 requestId 查询
|
|
395
|
+
cdh cls search --request-id req-xxxxx --function hello --env $TCB_ENV_ID
|
|
396
|
+
|
|
397
|
+
# 关键词查询
|
|
398
|
+
cdh cls search --function hello --keyword error --limit 100 --env $TCB_ENV_ID
|
|
399
|
+
|
|
400
|
+
# 时间范围查询
|
|
401
|
+
cdh cls search --function hello --start-time "2026-08-04 10:00:00" --end-time "2026-08-04 12:00:00"
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
#### 方法4: Python API
|
|
405
|
+
|
|
406
|
+
```python
|
|
407
|
+
from cdh.tools.cls_search import CLSLogSearcher
|
|
408
|
+
|
|
409
|
+
searcher = CLSLogSearcher(region="ap-shanghai")
|
|
410
|
+
|
|
411
|
+
# 通过 requestId 查询
|
|
412
|
+
logs = searcher.search_by_request_id(
|
|
413
|
+
request_id="req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
414
|
+
function_name="hello",
|
|
415
|
+
namespace="default"
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
for log in logs:
|
|
419
|
+
print(f"[{log['time']}] {log['message']}")
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### 常见检索模式
|
|
423
|
+
|
|
424
|
+
| 场景 | 检索条件 |
|
|
425
|
+
|------|----------|
|
|
426
|
+
| 特定请求追踪 | `SCF_RequestId:<requestId>` |
|
|
427
|
+
| 错误日志 | `SCF_Message:error OR SCF_Level:ERROR` |
|
|
428
|
+
| 超时请求 (>60s) | `SCF_Duration:>60000` |
|
|
429
|
+
| 内存超限 (>1.5GB) | `SCF_MemUsage:>1610612736` |
|
|
430
|
+
| HTTP 5xx | `SCF_StatusCode:>=500` |
|
|
431
|
+
| 特定函数 | `SCF_FunctionName:hello` |
|
|
432
|
+
| 特定命名空间 | `SCF_Namespace:default` |
|
|
433
|
+
| 时间范围 | `SCF_StartTime:>1722756000000 AND SCF_StartTime:<1722763200000` |
|
|
434
|
+
|
|
435
|
+
### 权限要求
|
|
436
|
+
|
|
437
|
+
| 操作 | 所需权限 |
|
|
438
|
+
|------|----------|
|
|
439
|
+
| 查看 CLS 日志 (控制台) | `QcloudCLSReadOnlyAccess` |
|
|
440
|
+
| 调用 CLS API | `QcloudCLSReadOnlyAccess` |
|
|
441
|
+
| SCF 默认日志 | 已自动配置(无需额外设置)|
|
|
442
|
+
|
|
443
|
+
### 计费说明
|
|
444
|
+
|
|
445
|
+
- CLS 有免费额度(10U/月,约10元)
|
|
446
|
+
- SCF 专用日志主题会占用 CLS 免费额度
|
|
447
|
+
- 日志默认保留7天
|
|
448
|
+
|
|
449
|
+
### CLS 日志集/主题命名
|
|
450
|
+
|
|
451
|
+
| 类型 | 命名规则 |
|
|
452
|
+
|------|----------|
|
|
453
|
+
| 日志集 | `SCF_logset` (SCF 专用) |
|
|
454
|
+
| 日志主题 | `SCF_logtopic_{函数名}_{命名空间}` |
|
|
455
|
+
|
|
456
|
+
### 注意事项
|
|
457
|
+
|
|
458
|
+
1. **requestId 获取**:通常在函数响应、错误信息或客户端日志中可以找到
|
|
459
|
+
2. **时间范围**:建议结合 `SCF_StartTime` 缩小查询范围
|
|
460
|
+
3. **跨地域**:CLS 日志集地域需与 SCF 函数地域一致
|
|
461
|
+
4. **索引配置**:新建 SCF 函数时会自动配置索引,无需手动开启
|
|
462
|
+
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# TCB CLI: CLS Log Search
|
|
2
|
+
|
|
3
|
+
## When to Use CLS Commands
|
|
4
|
+
|
|
5
|
+
| Goal | Command | Notes |
|
|
6
|
+
|------|---------|-------|
|
|
7
|
+
| Search by requestId | `cdh cls search --request-id <id>` | Full call chain tracing |
|
|
8
|
+
| Search by keyword | `cdh cls search --function <name> --keyword <kw>` | Error/search logs |
|
|
9
|
+
| Time-range search | `cdh cls search --function <name> --start-time ... --end-time ...` | Narrow down timeframe |
|
|
10
|
+
| List log topics | `cdh cls topics --function <name>` | Find available topics |
|
|
11
|
+
|
|
12
|
+
**Note**: `tcb fn logs` does NOT support requestId search. Use CLS for request tracing.
|
|
13
|
+
|
|
14
|
+
## Why CLS?
|
|
15
|
+
|
|
16
|
+
腾讯云 SCF logs are automatically shipped to Cloud Log Service (CLS) since 2021-01-29.
|
|
17
|
+
CLS supports:
|
|
18
|
+
- `SCF_RequestId` field for call chain tracing
|
|
19
|
+
- Full-text search on `SCF_Message`
|
|
20
|
+
- Time-range queries
|
|
21
|
+
- Advanced filtering
|
|
22
|
+
|
|
23
|
+
## Setup
|
|
24
|
+
|
|
25
|
+
### Install Dependency
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip install tencentcloud-sdk-python
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Set Credentials
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
export TENCENTCLOUD_SECRETID=your-secret-id
|
|
35
|
+
export TENCENTCLOUD_SECRETKEY=your-secret-key
|
|
36
|
+
# Or use TCB-specific credentials:
|
|
37
|
+
export TCB_SECRET_ID=your-secret-id
|
|
38
|
+
export TCB_SECRET_KEY=your-secret-key
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## cdh cls search
|
|
42
|
+
|
|
43
|
+
### Search by RequestId (Call Chain Tracing)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cdh cls search --request-id req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --function hello --env $TCB_ENV_ID
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Output:
|
|
50
|
+
```
|
|
51
|
+
[2024-01-15T10:30:00Z] req-xxxxxxxx-xxxx-... hello [INFO] 45ms 200
|
|
52
|
+
Function started
|
|
53
|
+
[2024-01-15T10:30:00Z] req-xxxxxxxx-xxxx-... hello [INFO] 45ms 200
|
|
54
|
+
Database query completed: SELECT * FROM users
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Search Errors
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
cdh cls search --function hello --keyword error --limit 50 --env $TCB_ENV_ID
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Time Range Search
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
cdh cls search --function hello \
|
|
67
|
+
--start-time "2024-01-15 10:00:00" \
|
|
68
|
+
--end-time "2024-01-15 11:00:00" \
|
|
69
|
+
--env $TCB_ENV_ID
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### JSON Output
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cdh cls search --request-id req-xxxxx --function hello --json | jq .
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## CLS Log Fields
|
|
79
|
+
|
|
80
|
+
| Field | Type | Description |
|
|
81
|
+
|-------|------|-------------|
|
|
82
|
+
| `SCF_RequestId` | text | Request ID (call chain key) |
|
|
83
|
+
| `SCF_FunctionName` | text | Function name |
|
|
84
|
+
| `SCF_Namespace` | text | Namespace |
|
|
85
|
+
| `SCF_Message` | text | Log message content |
|
|
86
|
+
| `SCF_StartTime` | long | Call start time (Unix ms) |
|
|
87
|
+
| `SCF_Duration` | long | Duration (ms) |
|
|
88
|
+
| `SCF_StatusCode` | long | HTTP status code |
|
|
89
|
+
| `SCF_Level` | text | Log level (INFO/WARN/ERROR) |
|
|
90
|
+
| `SCF_MemUsage` | double | Memory usage (bytes) |
|
|
91
|
+
| `SCF_RetryNum` | long | Retry count |
|
|
92
|
+
|
|
93
|
+
## Common Queries
|
|
94
|
+
|
|
95
|
+
### Slow Requests (>5s)
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
cdh cls search --function hello --keyword "SCF_Duration:>5000"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Memory Issues
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cdh cls search --function hello --keyword "SCF_MemUsage:>1500000000"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### HTTP 5xx Errors
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
cdh cls search --function hello --keyword "SCF_StatusCode:>=500"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Specific User Request
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
cdh cls search --request-id req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --function hello
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Troubleshooting
|
|
120
|
+
|
|
121
|
+
| Issue | Cause | Solution |
|
|
122
|
+
|-------|-------|----------|
|
|
123
|
+
| `tencentcloud-sdk-python not found` | Missing package | `pip install tencentcloud-sdk-python` |
|
|
124
|
+
| `SCF_logset not found` | Logging not enabled | Enable via SCF console |
|
|
125
|
+
| `No topic found` | Wrong function/namespace | Check function name and namespace |
|
|
126
|
+
| `Credentials error` | Wrong env vars | Verify TENCENTCLOUD_SECRETID/SECRETKEY |
|
|
127
|
+
| `Region mismatch` | Wrong region | Set `--region` to match SCF function region |
|
|
128
|
+
|
|
129
|
+
## Related
|
|
130
|
+
|
|
131
|
+
- [CLS Console](https://console.cloud.tencent.com/cls) - Web-based log viewer
|
|
132
|
+
- [SCF Console](https://console.cloud.tencent.com/scf) - Function logs tab
|
|
133
|
+
- [troubleshooting.md](../best-practices/troubleshooting.md) - Full troubleshooting guide
|