@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,27 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Registers ai-dlc-skill for OneCode via symlink
|
|
3
|
+
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
CANONICAL_SKILL_DIR="${HOME}/.cdh/skills/ai-dlc-skill"
|
|
7
|
+
DEV_SKILL_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
8
|
+
|
|
9
|
+
if [ -d "$CANONICAL_SKILL_DIR" ]; then
|
|
10
|
+
SKILL_DIR="$CANONICAL_SKILL_DIR"
|
|
11
|
+
else
|
|
12
|
+
SKILL_DIR="$DEV_SKILL_DIR"
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
ONECODE_SKILLS_DIR="${HOME}/.onecode/skills"
|
|
16
|
+
SYMLINK_TARGET="$ONECODE_SKILLS_DIR/ai-dlc-skill"
|
|
17
|
+
|
|
18
|
+
mkdir -p "$ONECODE_SKILLS_DIR"
|
|
19
|
+
|
|
20
|
+
if [ ! -L "$SYMLINK_TARGET" ]; then
|
|
21
|
+
ln -s "$SKILL_DIR" "$SYMLINK_TARGET"
|
|
22
|
+
echo "Created symlink: $SYMLINK_TARGET -> $SKILL_DIR"
|
|
23
|
+
else
|
|
24
|
+
echo "Symlink already exists: $SYMLINK_TARGET"
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
echo "ai-dlc-skill registered for OneCode"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Registers ai-dlc-skill for OpenCode via symlink + config check
|
|
3
|
+
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
CANONICAL_SKILL_DIR="${HOME}/.cdh/skills/ai-dlc-skill"
|
|
7
|
+
DEV_SKILL_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
8
|
+
PROJECT_ROOT="$(cd "$DEV_SKILL_DIR/.." && pwd)"
|
|
9
|
+
|
|
10
|
+
if [ -d "$CANONICAL_SKILL_DIR" ]; then
|
|
11
|
+
SKILL_DIR="$CANONICAL_SKILL_DIR"
|
|
12
|
+
else
|
|
13
|
+
SKILL_DIR="$DEV_SKILL_DIR"
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
OPENCODE_DIR="$PROJECT_ROOT/.opencode"
|
|
17
|
+
SYMLINK_TARGET="$OPENCODE_DIR/skills/ai-dlc-skill"
|
|
18
|
+
|
|
19
|
+
mkdir -p "$OPENCODE_DIR/skills"
|
|
20
|
+
|
|
21
|
+
if [ ! -L "$SYMLINK_TARGET" ]; then
|
|
22
|
+
ln -s "$SKILL_DIR" "$SYMLINK_TARGET"
|
|
23
|
+
echo "Created symlink: $SYMLINK_TARGET -> $SKILL_DIR"
|
|
24
|
+
else
|
|
25
|
+
echo "Symlink already exists: $SYMLINK_TARGET"
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
CONFIG="$OPENCODE_DIR/config.json"
|
|
29
|
+
if [ -f "$CONFIG" ]; then
|
|
30
|
+
if grep -q '"skills"' "$CONFIG" 2>/dev/null; then
|
|
31
|
+
echo "skills.paths already configured in $CONFIG"
|
|
32
|
+
else
|
|
33
|
+
echo "WARNING: config.json missing skills.paths. Add:"
|
|
34
|
+
echo ' "skills": { "paths": [".opencode/skills"] }'
|
|
35
|
+
fi
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
echo "ai-dlc-skill registered for OpenCode"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-dlc-debug
|
|
3
|
+
description: "Debug Phase: TCB/云函数日志排查 → 问题定位与追踪"
|
|
4
|
+
entry_point: phases/debug/entry.md
|
|
5
|
+
triggers:
|
|
6
|
+
- debug
|
|
7
|
+
- tcb-debug
|
|
8
|
+
- tcb-logs
|
|
9
|
+
- 排查日志
|
|
10
|
+
- 日志排查
|
|
11
|
+
- requestId
|
|
12
|
+
- 调用链
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Debug Phase (调试)
|
|
16
|
+
|
|
17
|
+
TCB 云函数日志排查、requestId 追踪、CLS 日志检索。
|
|
18
|
+
|
|
19
|
+
## Lifecycle
|
|
20
|
+
|
|
21
|
+
See `lifecycle.md` for the full phase flow.
|
|
22
|
+
|
|
23
|
+
## 当被委派时
|
|
24
|
+
|
|
25
|
+
0. 确认排查目标(函数名、requestId、环境)
|
|
26
|
+
1. 收集环境信息 `tcb env info`
|
|
27
|
+
2. 列出函数 `tcb fn list --env $TCB_ENV_ID`
|
|
28
|
+
3. 基础日志查询 `tcb fn logs --name <fn> --limit 50`
|
|
29
|
+
4. **如有 requestId**:通过 CLS 控制台或 API 查询调用链
|
|
30
|
+
5. 分析日志输出,定位问题根因
|
|
31
|
+
6. 输出诊断报告与修复建议
|
|
32
|
+
|
|
33
|
+
## 产出
|
|
34
|
+
|
|
35
|
+
- 问题定位报告
|
|
36
|
+
- 相关日志片段
|
|
37
|
+
- 修复建议
|
|
38
|
+
|
|
39
|
+
## TCB Debug Decision Tree
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
需要排查 TCB 问题?
|
|
43
|
+
├── 函数部署/运行问题 → tcb fn logs / tcb fn invoke
|
|
44
|
+
├── 需要追踪特定请求 → CLS 日志检索 (requestId)
|
|
45
|
+
├── 数据库问题 → tcb db query
|
|
46
|
+
├── 托管/静态网站问题 → tcb hosting detail
|
|
47
|
+
└── MCP 连接问题 → cdh cloudbase status
|
|
48
|
+
```
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# AI-DLC Phase 5: Debug (调试)
|
|
2
|
+
|
|
3
|
+
TCB 云函数日志排查与 requestId 追踪。
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
通过系统化的日志排查流程,快速定位 TCB 云函数问题根因:
|
|
8
|
+
- 函数部署失败
|
|
9
|
+
- 函数执行异常/超时
|
|
10
|
+
- 特定请求调用链追踪
|
|
11
|
+
- 数据库/存储操作问题
|
|
12
|
+
|
|
13
|
+
## Flow
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
接收排查任务 (requestId / 函数名 / 环境)
|
|
17
|
+
│
|
|
18
|
+
▼
|
|
19
|
+
收集环境信息
|
|
20
|
+
- tcb env info
|
|
21
|
+
- tcb env list
|
|
22
|
+
│
|
|
23
|
+
▼
|
|
24
|
+
确认函数状态
|
|
25
|
+
- tcb fn list --env $TCB_ENV_ID
|
|
26
|
+
- tcb fn detail --name <fn> --env $TCB_ENV_ID
|
|
27
|
+
│
|
|
28
|
+
▼
|
|
29
|
+
基础日志查询 (无 requestId 时)
|
|
30
|
+
- tcb fn logs --name <fn> --limit 50 --env $TCB_ENV_ID
|
|
31
|
+
- tcb fn logs --name <fn> --keyword error --env $TCB_ENV_ID
|
|
32
|
+
│
|
|
33
|
+
▼
|
|
34
|
+
高级日志查询 (有 requestId 时) → CLS
|
|
35
|
+
- 控制台: SCF_logset → SCF_RequestId:<requestId>
|
|
36
|
+
- 或 API: cdh cls search --request-id <id> --function <fn>
|
|
37
|
+
│
|
|
38
|
+
▼
|
|
39
|
+
分析日志输出
|
|
40
|
+
- SCF_RequestId, SCF_Message, SCF_Duration, SCF_StatusCode
|
|
41
|
+
- 定位错误行、耗时、调用链
|
|
42
|
+
│
|
|
43
|
+
▼
|
|
44
|
+
输出诊断报告
|
|
45
|
+
- 问题根因
|
|
46
|
+
- 相关日志片段
|
|
47
|
+
- 修复建议
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Method 1: CLI 基础日志查询
|
|
51
|
+
|
|
52
|
+
### 环境检查
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
tcb env info
|
|
56
|
+
tcb env list
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 函数列表与详情
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
tcb fn list --env $TCB_ENV_ID
|
|
63
|
+
tcb fn detail --name <function-name> --env $TCB_ENV_ID
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 函数日志 (TCB CLI)
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
tcb fn logs --name <function-name> --env $TCB_ENV_ID
|
|
70
|
+
tcb fn logs --name <function-name> --limit 100 --env $TCB_ENV_ID
|
|
71
|
+
tcb fn logs --name <function-name> --keyword error --env $TCB_ENV_ID
|
|
72
|
+
tcb fn logs --name <function-name> --tail --env $TCB_ENV_ID
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**限制**: TCB CLI `tcb fn logs` 不支持通过 requestId 查询。
|
|
76
|
+
|
|
77
|
+
## Method 2: CLS 日志检索 (requestId 追踪)
|
|
78
|
+
|
|
79
|
+
### 为什么需要 CLS
|
|
80
|
+
|
|
81
|
+
腾讯云 SCF 日志自动投递至日志服务 CLS,支持:
|
|
82
|
+
- 通过 `SCF_RequestId` 检索特定调用
|
|
83
|
+
- 时间范围检索
|
|
84
|
+
- 多条件组合检索
|
|
85
|
+
- 调用链分析
|
|
86
|
+
|
|
87
|
+
### CLS 控制台查询 (手动)
|
|
88
|
+
|
|
89
|
+
1. 登录 [腾讯云日志服务控制台](https://console.cloud.tencent.com/cls)
|
|
90
|
+
2. 选择地域(与 SCF 函数相同)
|
|
91
|
+
3. 进入 `SCF_logset` 日志集
|
|
92
|
+
4. 选择对应的日志主题:`SCF_logtopic_{函数名}_{命名空间}`
|
|
93
|
+
5. 检索条件:
|
|
94
|
+
```
|
|
95
|
+
SCF_RequestId:req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### CLS 日志字段
|
|
99
|
+
|
|
100
|
+
| 字段名 | 类型 | 含义 |
|
|
101
|
+
|--------|------|------|
|
|
102
|
+
| `SCF_RequestId` | text | 请求 ID(调用链追踪键) |
|
|
103
|
+
| `SCF_FunctionName` | text | 函数名称 |
|
|
104
|
+
| `SCF_Namespace` | text | 命名空间 |
|
|
105
|
+
| `SCF_Message` | text | 日志内容 |
|
|
106
|
+
| `SCF_StartTime` | long | 调用开始时间 (Unix ms) |
|
|
107
|
+
| `SCF_Duration` | long | 运行时间 (ms) |
|
|
108
|
+
| `SCF_StatusCode` | long | HTTP 状态码 |
|
|
109
|
+
| `SCF_Level` | text | 日志级别 (INFO/WARN/ERROR) |
|
|
110
|
+
| `SCF_MemUsage` | double | 内存使用 (bytes) |
|
|
111
|
+
| `SCF_RetryNum` | long | 重试次数 |
|
|
112
|
+
|
|
113
|
+
### CLI + CLS API 查询 (自动化)
|
|
114
|
+
|
|
115
|
+
使用 `cdh cls search` 工具:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
cdh cls search --request-id req-xxxxx --function hello --env $TCB_ENV_ID
|
|
119
|
+
cdh cls search --function hello --keyword error --limit 100 --env $TCB_ENV_ID
|
|
120
|
+
cdh cls search --function hello --start-time "2026-08-04 10:00:00" --end-time "2026-08-04 12:00:00"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Python API 调用
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
from cdh.tools.cls_search import CLSLogSearcher
|
|
127
|
+
|
|
128
|
+
searcher = CLSLogSearcher(region="ap-shanghai")
|
|
129
|
+
|
|
130
|
+
# 通过 requestId 查询
|
|
131
|
+
logs = searcher.search_by_request_id(
|
|
132
|
+
request_id="req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
133
|
+
function_name="hello"
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
# 关键词查询
|
|
137
|
+
logs = searcher.search_scf_logs(
|
|
138
|
+
query="ERROR",
|
|
139
|
+
function_name="hello",
|
|
140
|
+
limit=100
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
for log in logs:
|
|
144
|
+
print(f"[{log['time']}] {log['message']}")
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Method 3: SCF 控制台查询
|
|
148
|
+
|
|
149
|
+
1. 进入 [SCF 控制台](https://console.cloud.tencent.com/scf)
|
|
150
|
+
2. 选择函数 → **日志页签**
|
|
151
|
+
3. 点击 **高级检索**
|
|
152
|
+
4. 输入检索条件:`SCF_RequestId:req-xxxxx`
|
|
153
|
+
|
|
154
|
+
## Debug Workflow Examples
|
|
155
|
+
|
|
156
|
+
### Workflow: 函数执行报错
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# 1. 获取函数详情
|
|
160
|
+
tcb fn detail --name hello --env $TCB_ENV_ID
|
|
161
|
+
|
|
162
|
+
# 2. 查看最近日志
|
|
163
|
+
tcb fn logs --name hello --limit 100 --env $TCB_ENV_ID
|
|
164
|
+
|
|
165
|
+
# 3. 查看错误日志
|
|
166
|
+
tcb fn logs --name hello --keyword error --env $TCB_ENV_ID
|
|
167
|
+
|
|
168
|
+
# 4. 重新调用并观察
|
|
169
|
+
tcb fn invoke --name hello --params '{}' --env $TCB_ENV_ID
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Workflow: 特定请求调用链追踪
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# 1. 获取 requestId(通常在错误响应或客户端日志中)
|
|
176
|
+
# 例如: req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
177
|
+
|
|
178
|
+
# 2. CLS 控制台查询
|
|
179
|
+
# 登录 https://console.cloud.tencent.com/cls
|
|
180
|
+
# 检索: SCF_RequestId:req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
181
|
+
|
|
182
|
+
# 3. 或使用 CLI/API
|
|
183
|
+
cdh cls search --request-id req-xxxxxxxx --function hello --limit 50
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Workflow: 性能问题排查
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# 1. 查看超时/慢请求日志
|
|
190
|
+
tcb fn logs --name hello --limit 100 --env $TCB_ENV_ID
|
|
191
|
+
|
|
192
|
+
# 2. 通过 CLS 查询耗时
|
|
193
|
+
# 检索条件: SCF_FunctionName:hello AND SCF_Duration:>5000
|
|
194
|
+
|
|
195
|
+
# 3. 查看内存使用
|
|
196
|
+
# 检索条件: SCF_FunctionName:hello AND SCF_MemUsage:>1000000000
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## MCP Tool 调用
|
|
200
|
+
|
|
201
|
+
当 MCP server 连接时,可使用:
|
|
202
|
+
|
|
203
|
+
```javascript
|
|
204
|
+
// 获取函数日志 (TCB MCP)
|
|
205
|
+
const logs = await MCPTool(server="cloudbase", tool="get_function_logs", arguments={
|
|
206
|
+
name: "hello",
|
|
207
|
+
envId: "env-xxxxx",
|
|
208
|
+
limit: 50
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
// CLS 日志检索 (需额外配置)
|
|
212
|
+
const traces = await MCPTool(server="cloudbase", tool="search_logs", arguments={
|
|
213
|
+
requestId: "req-xxxxx",
|
|
214
|
+
functionName: "hello",
|
|
215
|
+
region: "ap-shanghai"
|
|
216
|
+
});
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Output Template
|
|
220
|
+
|
|
221
|
+
```markdown
|
|
222
|
+
# TCB Debug Report
|
|
223
|
+
|
|
224
|
+
## 问题概述
|
|
225
|
+
- **函数**: <function-name>
|
|
226
|
+
- **环境**: <env-id>
|
|
227
|
+
- **时间**: <timestamp>
|
|
228
|
+
- **问题类型**: <deployment/ invocation/ timeout/ error>
|
|
229
|
+
|
|
230
|
+
## 环境信息
|
|
231
|
+
```
|
|
232
|
+
<tcb env info 输出>
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## 函数状态
|
|
236
|
+
```
|
|
237
|
+
<tcb fn detail 输出>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## 日志分析
|
|
241
|
+
### 基础日志
|
|
242
|
+
```
|
|
243
|
+
<相关日志片段>
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### CLS 调用链 (如有 requestId)
|
|
247
|
+
```
|
|
248
|
+
<requestId 关联日志>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## 根因分析
|
|
252
|
+
<问题根因描述>
|
|
253
|
+
|
|
254
|
+
## 修复建议
|
|
255
|
+
1. <建议1>
|
|
256
|
+
2. <建议2>
|
|
257
|
+
3. <建议3>
|
|
258
|
+
|
|
259
|
+
## 相关链接
|
|
260
|
+
- [SCF 控制台](https://console.cloud.tencent.com/scf)
|
|
261
|
+
- [CLS 日志服务](https://console.cloud.tencent.com/cls)
|
|
262
|
+
- [函数详情](https://console.cloud.tencent.com/scf/detail/<region>/<env-id>/<function-name>)
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## 常见问题快速检索
|
|
266
|
+
|
|
267
|
+
| 场景 | 检索条件 |
|
|
268
|
+
|------|----------|
|
|
269
|
+
| 特定请求追踪 | `SCF_RequestId:<requestId>` |
|
|
270
|
+
| 错误日志 | `SCF_Message:error OR SCF_Level:ERROR` |
|
|
271
|
+
| 超时请求 | `SCF_Duration:>60000` |
|
|
272
|
+
| 内存超限 | `SCF_MemUsage:>1536000000` |
|
|
273
|
+
| HTTP 5xx | `SCF_StatusCode:>=500` |
|
|
274
|
+
| 特定函数 | `SCF_FunctionName:<functionName>` |
|
|
275
|
+
| 特定命名空间 | `SCF_Namespace:<namespace>` |
|
|
276
|
+
|
|
277
|
+
## Gate
|
|
278
|
+
|
|
279
|
+
**排查完成标准:**
|
|
280
|
+
- [ ] 环境信息已确认
|
|
281
|
+
- [ ] 函数状态已确认
|
|
282
|
+
- [ ] 相关日志已获取
|
|
283
|
+
- [ ] 问题根因已定位
|
|
284
|
+
- [ ] 修复建议已给出
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-dlc-deliver
|
|
3
|
+
description: "Deliver Phase: Stack Preview → e2e → Production + BVT"
|
|
4
|
+
entry_point: phases/deliver/entry.md
|
|
5
|
+
triggers:
|
|
6
|
+
- deliver
|
|
7
|
+
- deploy
|
|
8
|
+
- release
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Deliver Phase (交付)
|
|
12
|
+
|
|
13
|
+
Deploy full stack, run cross-stack e2e, human approval, production BVT.
|
|
14
|
+
|
|
15
|
+
## Lifecycle
|
|
16
|
+
|
|
17
|
+
See `lifecycle.md` for the full phase flow.
|
|
18
|
+
See `rules.md` for enforceable rules (DLV-001 to DLV-004 + STK-001 to STK-006).
|
|
19
|
+
See `prompt.md` for the sub-agent delegation prompt template.
|
|
20
|
+
|
|
21
|
+
## 当被委派时
|
|
22
|
+
|
|
23
|
+
0. 先调用 `TodoClear` 清除上阶段遗留的 todos,确保从空白计划开始
|
|
24
|
+
1. `aidlc/tools/deploy_stack.sh --env preview` 统一部署
|
|
25
|
+
2. 运行 per-component e2e + cross-stack e2e
|
|
26
|
+
3. Staging 部署 + smoke test
|
|
27
|
+
4. Human approval gate
|
|
28
|
+
5. Production 部署 + BVT + 自动回滚
|
|
29
|
+
|
|
30
|
+
## 产出
|
|
31
|
+
|
|
32
|
+
- `STACK_URL` / `BACKEND_URL`
|
|
33
|
+
- 各组件 e2e 报告
|
|
34
|
+
- 跨栈 e2e 报告
|
|
35
|
+
- Stack BVT 报告
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# AI-DLC Phase 4: Deliver (交付)
|
|
2
|
+
|
|
3
|
+
Deploy the **full stack** together, verify per-component and cross-stack e2e against the unified preview, release with stack-level BVT.
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
Deliver verified code to production as a coherent stack with full confidence — preview environment, per-component e2e, cross-stack e2e, stack-level BVT, and rollback at the stack level.
|
|
8
|
+
|
|
9
|
+
## Flow
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
All Verify gates passed (per-component + contract + cross-stack)
|
|
13
|
+
│
|
|
14
|
+
▼
|
|
15
|
+
Unified Stack Preview Deploy (dynamic URL from cloud provider)
|
|
16
|
+
- backend (functions + DB migrate)
|
|
17
|
+
- web (hosting build with BACKEND_URL)
|
|
18
|
+
- native (build with BACKEND_URL; package + upload)
|
|
19
|
+
- desktop (build with BACKEND_URL; package + upload)
|
|
20
|
+
- wxa / mya / tta (build with BACKEND_URL; upload to mini-program platform)
|
|
21
|
+
│
|
|
22
|
+
▼
|
|
23
|
+
Per-component BDD e2e (against component preview URL or stack URL)
|
|
24
|
+
│
|
|
25
|
+
▼
|
|
26
|
+
Cross-stack e2e (full app ↔ web ↔ backend against unified stack URL)
|
|
27
|
+
│
|
|
28
|
+
▼
|
|
29
|
+
Staging Stack Deploy + Smoke
|
|
30
|
+
│
|
|
31
|
+
▼
|
|
32
|
+
Human Approval Gate
|
|
33
|
+
│
|
|
34
|
+
▼
|
|
35
|
+
Production Stack Deploy (whole stack as one unit)
|
|
36
|
+
│
|
|
37
|
+
▼
|
|
38
|
+
Stack BVT (Build Verification Test) — backend /health, app launch probe, web smoke, DB
|
|
39
|
+
│
|
|
40
|
+
▼
|
|
41
|
+
Archive: contract-diff.md + e2e reports + BVT report
|
|
42
|
+
│
|
|
43
|
+
▼
|
|
44
|
+
Gate: BVT pass → done | BVT fail → stack rollback
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Unified Stack Preview Deploy
|
|
48
|
+
|
|
49
|
+
The whole stack is deployed as one unit. The preview URL is the **backend gateway**; all client components (`web`, `native`, `desktop`, `wxa`, `mya`, `tta`) receive it as a build-time or runtime config.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# TCB (default)
|
|
53
|
+
deploy_stack --preview
|
|
54
|
+
# → backend: tcb fn deploy --env preview
|
|
55
|
+
# → backend: tcb db migrate --env preview
|
|
56
|
+
# → web: tcb hosting deploy --env preview --build-env BACKEND_URL=${STACK_URL}
|
|
57
|
+
# → native: build with BACKEND_URL=${STACK_URL}, upload to internal distribution
|
|
58
|
+
# → desktop: build with BACKEND_URL=${STACK_URL}, upload to internal distribution
|
|
59
|
+
# → wxa: build with BACKEND_URL=${STACK_URL}, upload to mini-program platform
|
|
60
|
+
# → mya: build with BACKEND_URL=${STACK_URL}, upload to mini-program platform
|
|
61
|
+
# → tta: build with BACKEND_URL=${STACK_URL}, upload to mini-program platform
|
|
62
|
+
# → STACK_URL = https://{env-id}.tcb-preview.com
|
|
63
|
+
|
|
64
|
+
# Aliyun
|
|
65
|
+
deploy_stack --preview
|
|
66
|
+
# → backend: fun deploy --env preview
|
|
67
|
+
# → web: oss + cdn deploy with build env
|
|
68
|
+
# → native: build with BACKEND_URL, package
|
|
69
|
+
# → desktop: build with BACKEND_URL, package
|
|
70
|
+
# → wxa: build with BACKEND_URL, upload to mini-program platform
|
|
71
|
+
# → mya: build with BACKEND_URL, upload to mini-program platform
|
|
72
|
+
# → tta: build with BACKEND_URL, upload to mini-program platform
|
|
73
|
+
# → STACK_URL = https://{gateway}.{region}.fc.devs.com
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The `deploy_stack` tool resolves the preview URL dynamically per platform and exports it as `STACK_URL` (or `BACKEND_URL` for components to consume).
|
|
77
|
+
|
|
78
|
+
## Per-Component BDD E2E
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
export STACK_URL=$(deploy_stack --preview --output url)
|
|
82
|
+
export BACKEND_URL=$STACK_URL
|
|
83
|
+
|
|
84
|
+
# Backend
|
|
85
|
+
pytest apps/backend/tests/e2e/ --base-url $BACKEND_URL
|
|
86
|
+
|
|
87
|
+
# Web (against web hosting URL; uses BACKEND_URL as API root)
|
|
88
|
+
export WEB_URL=$(deploy_stack --preview --output web_url)
|
|
89
|
+
pytest apps/web/tests/e2e/ --base-url $WEB_URL --api-url $BACKEND_URL
|
|
90
|
+
|
|
91
|
+
# Native (against installed package or emulator; uses BACKEND_URL)
|
|
92
|
+
pytest apps/native/tests/e2e/ --backend-url $BACKEND_URL
|
|
93
|
+
|
|
94
|
+
# Desktop (against installed package or emulator; uses BACKEND_URL)
|
|
95
|
+
pytest apps/desktop/tests/e2e/ --backend-url $BACKEND_URL
|
|
96
|
+
|
|
97
|
+
# Mini-programs (wxa, mya, tta) (against emulator or device; uses BACKEND_URL)
|
|
98
|
+
pytest apps/wxa/tests/e2e/ --backend-url $BACKEND_URL
|
|
99
|
+
pytest apps/mya/tests/e2e/ --backend-url $BACKEND_URL
|
|
100
|
+
pytest apps/tta/tests/e2e/ --backend-url $BACKEND_URL
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Cross-Stack E2E
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
pytest aidlc/tests/cross-stack/ --stack-url $STACK_URL --verbose
|
|
107
|
+
# Runs the full multi-client ↔ backend flow defined in aidlc/features/cross-stack/
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Rule STK-001:** All `cross-stack` scenarios must pass before staging or production.
|
|
111
|
+
|
|
112
|
+
## Staging
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
deploy_stack --env staging
|
|
116
|
+
export STAGING_URL=$(deploy_stack --env staging --output url)
|
|
117
|
+
pytest aidlc/tests/cross-stack/ --stack-url $STAGING_URL
|
|
118
|
+
smoke-test $STAGING_URL
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Human Approval
|
|
122
|
+
|
|
123
|
+
Production deployment requires explicit human approval. Approval is a **stack** decision — the reviewer sees the per-component e2e results, the cross-stack e2e results, the staging smoke, and the `contract-diff.md`.
|
|
124
|
+
|
|
125
|
+
## Production Stack Deploy
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
deploy_stack --env production
|
|
129
|
+
# → Same as preview/staging but with prod env IDs and production secrets
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Stack BVT (Build Verification Test)
|
|
133
|
+
|
|
134
|
+
Automated health and functionality checks against the **production stack**:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
bvt ${PRODUCTION_URL}
|
|
138
|
+
# Checks:
|
|
139
|
+
# 1. backend /health returns 200
|
|
140
|
+
# 2. web home page returns 200 (SSR) or shell loads (SPA)
|
|
141
|
+
# 3. native/desktop/mini-program launch probe (deep link resolves against BACKEND_URL)
|
|
142
|
+
# 4. Core end-to-end flow (login) succeeds
|
|
143
|
+
# 5. Database connectivity (probe query)
|
|
144
|
+
# 6. No error rate spikes (5xx < 0.1%, p99 < 500ms)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Rule DLV-003:** BVT must pass. If BVT fails, automatic **stack** rollback to the previous stable stack version.
|
|
148
|
+
|
|
149
|
+
## Stack Rollback
|
|
150
|
+
|
|
151
|
+
Rollback is at the stack level — all components revert together so the stack stays internally consistent.
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Automatic on BVT failure
|
|
155
|
+
deploy_stack --rollback ${LAST_STABLE_STACK_VERSION}
|
|
156
|
+
|
|
157
|
+
# Manual on demand
|
|
158
|
+
deploy_stack --rollback --stack-version v1.2.3
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
The previous stable stack version is identified by the `aidlc/contracts/CHANGELOG.md` version at the time of the last green BVT.
|
|
162
|
+
|
|
163
|
+
## Artifacts
|
|
164
|
+
|
|
165
|
+
| Artifact | Purpose |
|
|
166
|
+
|----------|---------|
|
|
167
|
+
| `STACK_URL` / `BACKEND_URL` | Dynamic, per-platform, per-env |
|
|
168
|
+
| Per-component e2e report | Scenario pass/fail per component |
|
|
169
|
+
| Cross-stack e2e report | Full flow pass/fail |
|
|
170
|
+
| `aidlc/openspec/changes/{id}/contract-diff.md` | Final contract change record |
|
|
171
|
+
| BVT report | Stack-level health check results |
|
|
172
|
+
| Deploy log | Stack version, timestamp, component versions |
|
|
173
|
+
|
|
174
|
+
## Gate
|
|
175
|
+
|
|
176
|
+
**Before marking complete:**
|
|
177
|
+
- [ ] Unified stack preview deploy succeeded; `STACK_URL` and `BACKEND_URL` resolved
|
|
178
|
+
- [ ] All per-component BDD e2e tests pass against their preview URLs
|
|
179
|
+
- [ ] All cross-stack e2e tests pass against the unified stack URL
|
|
180
|
+
- [ ] Staging smoke tests pass
|
|
181
|
+
- [ ] Human approval received (covers per-component + cross-stack + staging + contract diff)
|
|
182
|
+
- [ ] Production stack deploy succeeded
|
|
183
|
+
- [ ] Stack BVT passed
|
|
184
|
+
- [ ] (If BVT failed) Stack rollback executed and confirmed
|
|
185
|
+
- [ ] `aidlc/openspec/changes/{id}/contract-diff.md` archived
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Deliver Phase Agent Prompt
|
|
2
|
+
|
|
3
|
+
你是一个 AI-DLC Deliver Phase Agent。
|
|
4
|
+
由 Master Agent 委派处理部署交付。
|
|
5
|
+
|
|
6
|
+
## 输入
|
|
7
|
+
- `{spec_dir}/contract-diff.md`
|
|
8
|
+
- 所有 e2e 测试报告
|
|
9
|
+
|
|
10
|
+
## 路径约定
|
|
11
|
+
|
|
12
|
+
产物路径遵循 `aidlc/CONFIG.md` 中的变量定义。
|
|
13
|
+
|
|
14
|
+
## 任务
|
|
15
|
+
|
|
16
|
+
1. **Unified Stack Preview**
|
|
17
|
+
- `aidlc/tools/deploy_stack.sh --preview --provider {tcb|aliyun} [--compute-mode {fc|sae}]`
|
|
18
|
+
- 输出 STACK_URL + per-component URLs
|
|
19
|
+
|
|
20
|
+
2. **Per-Component e2e**
|
|
21
|
+
- 对每个 affected component 运行 e2e 测试
|
|
22
|
+
- 使用动态解析的 URL
|
|
23
|
+
|
|
24
|
+
3. **Cross-Stack e2e**
|
|
25
|
+
- `pytest {cross_test_dir}/ --stack-url ${STACK_URL}`
|
|
26
|
+
|
|
27
|
+
4. **Staging Deploy + Smoke**
|
|
28
|
+
- `aidlc/tools/deploy_stack.sh --env staging`
|
|
29
|
+
- 运行 smoke-test + health-check
|
|
30
|
+
|
|
31
|
+
5. **Production Gate + Deploy**
|
|
32
|
+
- 将预览和测试结果返回给 Master Agent,由 Master Agent 通过 AskUser 等待 Human Approval
|
|
33
|
+
- `aidlc/tools/deploy_stack.sh --env production`
|
|
34
|
+
- BVT 验证 + 自动回滚
|
|
35
|
+
|
|
36
|
+
## 输出产物
|
|
37
|
+
- 动态 URLs(STACK_URL / BACKEND_URL / WEB_URL)
|
|
38
|
+
- e2e 测试报告(per-component + cross-stack)
|
|
39
|
+
- BVT 报告
|
|
40
|
+
- 部署日志
|
|
41
|
+
|
|
42
|
+
## 约束
|
|
43
|
+
- 开始前先调用 `TodoClear` 清除可能遗留的 todos,确保从空白计划开始
|
|
44
|
+
- 遵守 DLV-001 到 DLV-004
|
|
45
|
+
- 遵守 STK-004 到 STK-006(统一部署 + 构建配置注入 + stack 级回滚)
|
|
46
|
+
|
|
47
|
+
## 完成报告
|
|
48
|
+
|
|
49
|
+
完成后返回以下信息给 Master Agent(用于写入 Registry):
|
|
50
|
+
- `phase: "deliver"`
|
|
51
|
+
- `status: "completed"`
|
|
52
|
+
- `artifacts: [部署URL、BVT报告路径列表]`
|
|
53
|
+
- `gatePassed: true/false`
|
|
54
|
+
- `deployUrl: 生产环境URL`
|