@scemoon/cdh 1.0.5 → 1.0.7
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/package.json +2 -2
- package/run.js +68 -14
- package/ai-dlc-skill/SKILL.md +0 -77
- package/ai-dlc-skill/agents/deliver-agent.md +0 -24
- package/ai-dlc-skill/agents/master.md +0 -50
- package/ai-dlc-skill/agents/plan-agent.md +0 -23
- package/ai-dlc-skill/agents/understand-agent.md +0 -23
- package/ai-dlc-skill/agents/verify-agent.md +0 -27
- package/ai-dlc-skill/architecture/project-structure.md +0 -78
- package/ai-dlc-skill/brownfield/README.md +0 -30
- package/ai-dlc-skill/brownfield/generate-context.sh +0 -64
- package/ai-dlc-skill/brownfield/scripts/deps.sh +0 -27
- package/ai-dlc-skill/brownfield/scripts/discover.sh +0 -34
- package/ai-dlc-skill/brownfield/scripts/extract-api.sh +0 -45
- package/ai-dlc-skill/components/backend.md +0 -34
- package/ai-dlc-skill/components/desktop.md +0 -30
- package/ai-dlc-skill/components/mya.md +0 -29
- package/ai-dlc-skill/components/native.md +0 -30
- package/ai-dlc-skill/components/tta.md +0 -29
- package/ai-dlc-skill/components/web.md +0 -31
- package/ai-dlc-skill/components/wxa.md +0 -29
- package/ai-dlc-skill/contracts/README.md +0 -25
- package/ai-dlc-skill/core/adaptive-flow.md +0 -36
- package/ai-dlc-skill/core/security.md +0 -29
- package/ai-dlc-skill/cross-tool/cline/export.sh +0 -31
- package/ai-dlc-skill/cross-tool/copilot/export.sh +0 -47
- package/ai-dlc-skill/cross-tool/cursor/export.sh +0 -32
- package/ai-dlc-skill/cross-tool/export.sh +0 -22
- package/ai-dlc-skill/cross-tool/onecode/config.yaml.tpl +0 -17
- package/ai-dlc-skill/cross-tool/onecode/export-skills.sh +0 -35
- package/ai-dlc-skill/cross-tool/onecode/export.sh +0 -54
- package/ai-dlc-skill/phases/deliver/entry.md +0 -26
- package/ai-dlc-skill/phases/deliver/lifecycle.md +0 -185
- package/ai-dlc-skill/phases/deliver/prompt.md +0 -40
- package/ai-dlc-skill/phases/deliver/rules.md +0 -61
- package/ai-dlc-skill/phases/plan/entry.md +0 -25
- package/ai-dlc-skill/phases/plan/lifecycle.md +0 -204
- package/ai-dlc-skill/phases/plan/prompt.md +0 -38
- package/ai-dlc-skill/phases/plan/rules.md +0 -25
- package/ai-dlc-skill/phases/understand/entry.md +0 -26
- package/ai-dlc-skill/phases/understand/lifecycle.md +0 -184
- package/ai-dlc-skill/phases/understand/prompt.md +0 -41
- package/ai-dlc-skill/phases/understand/rules.md +0 -37
- package/ai-dlc-skill/phases/verify/entry.md +0 -26
- package/ai-dlc-skill/phases/verify/lifecycle.md +0 -192
- package/ai-dlc-skill/phases/verify/prompt.md +0 -43
- package/ai-dlc-skill/phases/verify/rules.md +0 -73
- package/ai-dlc-skill/practices/bdd.md +0 -91
- package/ai-dlc-skill/practices/sdd.md +0 -84
- package/ai-dlc-skill/practices/tdd.md +0 -95
- package/ai-dlc-skill/providers/README.md +0 -114
- package/ai-dlc-skill/providers/aliyun/deployment.yaml +0 -66
- package/ai-dlc-skill/providers/aliyun/preview.yaml +0 -84
- package/ai-dlc-skill/providers/aliyun/provider.yaml +0 -160
- package/ai-dlc-skill/providers/tcb/deployment.yaml +0 -69
- package/ai-dlc-skill/providers/tcb/preview.yaml +0 -83
- package/ai-dlc-skill/providers/tcb/provider.yaml +0 -172
- package/ai-dlc-skill/requirements.md +0 -140
- package/ai-dlc-skill/skill.yaml +0 -147
- package/ai-dlc-skill/templates/integration/CHANGELOG.md +0 -41
- package/ai-dlc-skill/templates/integration/asyncapi.yaml +0 -43
- package/ai-dlc-skill/templates/integration/contract-diff.md +0 -63
- package/ai-dlc-skill/templates/integration/contract-spec.md +0 -49
- package/ai-dlc-skill/templates/integration/openapi.yaml +0 -18
- package/ai-dlc-skill/templates/integration/runtime-contract.yaml +0 -36
- package/ai-dlc-skill/templates/plan/design.md +0 -49
- package/ai-dlc-skill/templates/plan/task-list.md +0 -32
- package/ai-dlc-skill/templates/project/README.md +0 -126
- package/ai-dlc-skill/templates/project/template.md +0 -119
- package/ai-dlc-skill/templates/understand/feature.feature +0 -23
- package/ai-dlc-skill/templates/understand/intent.md +0 -29
- package/ai-dlc-skill/templates/understand/spec-delta.md +0 -47
- package/ai-dlc-skill/templates/verify/test-unit.py +0 -27
- package/ai-dlc-skill/walkthrough/collect.sh +0 -50
- package/ai-dlc-skill/walkthrough/template.md +0 -54
- package/ai-dlc-skill/workflows/ai-dlc.yaml +0 -110
- package/ai-dlc-skill/workflows/deployment.yaml +0 -199
- package/cdh/__init__.py +0 -0
- package/cdh/__main__.py +0 -4
- package/cdh/__pycache__/__init__.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cdh_mcp_injector.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cdh_mcp_loader.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cdh_mcp_manager.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cdh_session_aggregator.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cdh_skill_loader.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cdh_skill_manager.cpython-314.pyc +0 -0
- package/cdh/__pycache__/cli.cpython-313.pyc +0 -0
- package/cdh/__pycache__/cli.cpython-314.pyc +0 -0
- package/cdh/__pycache__/scaffold.cpython-314.pyc +0 -0
- package/cdh/cdh_mcp_injector.py +0 -115
- package/cdh/cdh_mcp_loader.py +0 -67
- package/cdh/cdh_mcp_manager.py +0 -73
- package/cdh/cdh_session_aggregator.py +0 -258
- package/cdh/cdh_skill_manager.py +0 -105
- package/cdh/cli.py +0 -758
- package/cdh/scaffold.py +0 -728
- package/onecode/__init__.py +0 -1
- package/onecode/__main__.py +0 -4
- 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__/config_screen.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__/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/agents/__init__.py +0 -29
- 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/types.py +0 -589
- package/onecode/agent/attachments.py +0 -112
- package/onecode/agent/cdh_loader.py +0 -267
- package/onecode/agent/context.py +0 -343
- package/onecode/agent/engine.py +0 -2700
- package/onecode/agent/hooks.py +0 -86
- package/onecode/agent/onecode_agent_acp.py +0 -2743
- package/onecode/agent/onecode_agent_acp.py.bak +0 -2447
- package/onecode/agent/permissions.py +0 -150
- package/onecode/agent/permissions_store.py +0 -62
- package/onecode/agent/project_doc.py +0 -19
- package/onecode/agent/session.py +0 -195
- package/onecode/agent/snapshot.py +0 -144
- package/onecode/agent/tools/__init__.py +0 -17
- 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 +0 -132
- package/onecode/agent/tools/apply_patch_tool.py +0 -138
- package/onecode/agent/tools/bash_tool.py +0 -111
- package/onecode/agent/tools/communication_tools.py +0 -148
- package/onecode/agent/tools/config_tool.py +0 -130
- package/onecode/agent/tools/cron_tools.py +0 -178
- package/onecode/agent/tools/errors.py +0 -17
- package/onecode/agent/tools/file_ops.py +0 -221
- package/onecode/agent/tools/file_tools.py +0 -225
- package/onecode/agent/tools/git_tools.py +0 -88
- package/onecode/agent/tools/lsp_tools.py +0 -404
- package/onecode/agent/tools/mcp_tools.py +0 -127
- package/onecode/agent/tools/permission_handler.py +0 -46
- package/onecode/agent/tools/permissions.py +0 -77
- package/onecode/agent/tools/protocol.py +0 -20
- package/onecode/agent/tools/registry.py +0 -201
- package/onecode/agent/tools/sandbox.py +0 -358
- package/onecode/agent/tools/schema_validation.py +0 -100
- package/onecode/agent/tools/skill_tools.py +0 -52
- package/onecode/agent/tools/todo_tools.py +0 -207
- package/onecode/agent/tools/web_tools.py +0 -169
- package/onecode/builtin_skills/agent-browser/SKILL.md +0 -212
- package/onecode/builtin_skills/agent-browser/skill.yaml +0 -8
- package/onecode/builtin_skills/git/SKILL.md +0 -64
- package/onecode/builtin_skills/git/skill.yaml +0 -7
- package/onecode/builtin_skills/shell/SKILL.md +0 -58
- package/onecode/builtin_skills/shell/skill.yaml +0 -8
- package/onecode/builtin_skills/skill-creator/SKILL.md +0 -106
- package/onecode/builtin_skills/skill-creator/skill.yaml +0 -8
- package/onecode/cli.py +0 -935
- package/onecode/cloud/__init__.py +0 -0
- package/onecode/cloud/base.py +0 -20
- package/onecode/codebase/__init__.py +0 -69
- 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 +0 -125
- package/onecode/codebase/indexer.py +0 -149
- package/onecode/codebase/retriever.py +0 -203
- package/onecode/codebase/storage.py +0 -131
- package/onecode/codebase/tools.py +0 -59
- package/onecode/commands.py +0 -596
- package/onecode/config.py +0 -314
- package/onecode/config_screen.py +0 -600
- package/onecode/cron/__init__.py +0 -3
- package/onecode/lsp/__init__.py +0 -3
- package/onecode/mcp/__init__.py +0 -4
- package/onecode/mcp/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/mcp/__pycache__/client.cpython-314.pyc +0 -0
- package/onecode/mcp/__pycache__/manager.cpython-314.pyc +0 -0
- package/onecode/mcp/client.py +0 -193
- package/onecode/mcp/manager.py +0 -190
- package/onecode/memory/__init__.py +0 -49
- package/onecode/memory/__pycache__/__init__.cpython-314.pyc +0 -0
- package/onecode/memory/__pycache__/backend.cpython-314.pyc +0 -0
- package/onecode/memory/__pycache__/offload.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/__pycache__/symbolic.cpython-314.pyc +0 -0
- package/onecode/memory/backend.py +0 -159
- package/onecode/memory/pyramid.py +0 -133
- package/onecode/memory/recall.py +0 -203
- package/onecode/migrate.py +0 -122
- package/onecode/models/__init__.py +0 -4
- 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__/provider.cpython-314.pyc +0 -0
- package/onecode/models/__pycache__/registry.cpython-314.pyc +0 -0
- package/onecode/models/errors.py +0 -104
- package/onecode/models/messages.py +0 -739
- package/onecode/models/provider.py +0 -699
- package/onecode/models/providers/__init__.py +0 -17
- 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 +0 -273
- package/onecode/models/providers/deepseek_provider.py +0 -212
- package/onecode/models/providers/glm_provider.py +0 -195
- package/onecode/models/providers/minimax_provider.py +0 -158
- package/onecode/models/providers/minimaxi_provider.py +0 -417
- package/onecode/models/providers/ollama_provider.py +0 -100
- package/onecode/models/providers/openai_provider.py +0 -237
- package/onecode/models/registry.py +0 -212
- package/onecode/server/__init__.py +0 -3
- package/onecode/server/app.py +0 -224
- package/onecode/skills/__init__.py +0 -11
- 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__/manager.cpython-314.pyc +0 -0
- package/onecode/skills/__pycache__/model.cpython-314.pyc +0 -0
- package/onecode/skills/argument_substitution.py +0 -38
- package/onecode/skills/bootstrap.py +0 -124
- package/onecode/skills/create.py +0 -56
- package/onecode/skills/frontmatter.py +0 -33
- package/onecode/skills/loader.py +0 -139
- package/onecode/skills/manager.py +0 -75
- package/onecode/skills/model.py +0 -43
- package/onecode/storage/__init__.py +0 -0
- package/onecode/storage/activity.py +0 -63
- package/onecode/storage/project.py +0 -54
- package/onecode/storage/session.py +0 -112
- package/onecode/tasks/__init__.py +0 -26
- package/onecode/tasks/manager.py +0 -232
- package/onecode/tasks/models.py +0 -240
- package/onecode/trace/__init__.py +0 -0
- package/onecode/trace/tracer.py +0 -173
- package/onecode/utils/__init__.py +0 -0
- package/onecode/utils/helpers.py +0 -20
- package/pyproject.toml +0 -74
- package/tui/__init__.py +0 -46
- package/tui/__main__.py +0 -4
- 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__/about.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-313.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__/danger.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_suggester.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 +0 -86
- package/tui/_path_fuzzy_search.py +0 -48
- package/tui/_path_match.py +0 -141
- package/tui/about.py +0 -95
- 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__/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 +0 -1002
- package/tui/acp/api.py +0 -73
- package/tui/acp/encode_tool_call_id.py +0 -12
- package/tui/acp/messages.py +0 -203
- package/tui/acp/prompt.py +0 -53
- package/tui/acp/protocol.py +0 -499
- package/tui/agent.py +0 -70
- package/tui/agent_schema.py +0 -76
- package/tui/agents.py +0 -46
- package/tui/ansi/__init__.py +0 -1
- 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 +0 -1689
- package/tui/ansi/_ansi_colors.py +0 -264
- package/tui/ansi/_control_codes.py +0 -37
- package/tui/ansi/_keys.py +0 -251
- package/tui/ansi/_sgr_styles.py +0 -64
- package/tui/ansi/_stream_parser.py +0 -418
- package/tui/answer.py +0 -12
- package/tui/app.py +0 -1266
- package/tui/atomic.py +0 -37
- package/tui/cli.py +0 -313
- package/tui/code_analyze.py +0 -27
- package/tui/complete.py +0 -38
- package/tui/constants.py +0 -61
- package/tui/conversation_markdown.py +0 -30
- package/tui/danger.py +0 -372
- package/tui/data/agents/ampcode.com.toml +0 -52
- package/tui/data/agents/augmentcode.com.toml +0 -41
- package/tui/data/agents/cdh.cloud-dev-harness.toml +0 -23
- package/tui/data/agents/claude.com.toml +0 -41
- package/tui/data/agents/copilot.github.com.toml +0 -29
- package/tui/data/agents/crowai.dev.toml +0 -36
- package/tui/data/agents/cursor.com.toml +0 -38
- package/tui/data/agents/deepagents.langchain.com +0 -34
- package/tui/data/agents/docker.com.toml +0 -60
- package/tui/data/agents/geminicli.com.toml +0 -28
- package/tui/data/agents/goose.ai.toml +0 -52
- package/tui/data/agents/inference.huggingface.co.toml +0 -41
- package/tui/data/agents/kimi.com.toml +0 -35
- package/tui/data/agents/kiro.dev.toml +0 -43
- package/tui/data/agents/onecode.dev.toml +0 -22
- package/tui/data/agents/openai.com.toml +0 -53
- package/tui/data/agents/openclaw.ai.toml +0 -37
- package/tui/data/agents/opencode.ai.toml +0 -39
- package/tui/data/agents/openhands.dev.toml +0 -46
- package/tui/data/agents/stakpak.dev.toml +0 -62
- package/tui/data/agents/vibe.mistral.ai.toml +0 -31
- package/tui/data/agents/vtcode.dev.toml +0 -63
- 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 +0 -213
- package/tui/dec.py +0 -332
- package/tui/directory.py +0 -234
- package/tui/directory_suggester.py +0 -93
- package/tui/directory_watcher.py +0 -231
- package/tui/format_path.py +0 -25
- package/tui/fuzzy.py +0 -140
- package/tui/fuzzy_index.py +0 -275
- package/tui/gist.py +0 -33
- package/tui/history.py +0 -138
- package/tui/jsonrpc.py +0 -578
- package/tui/menus.py +0 -14
- package/tui/message_log.py +0 -69
- package/tui/messages.py +0 -144
- package/tui/option_content.py +0 -51
- package/tui/os.py +0 -0
- package/tui/path_complete.py +0 -217
- package/tui/path_filter.py +0 -124
- package/tui/paths.py +0 -87
- package/tui/pill.py +0 -23
- package/tui/platform_commands.py +0 -52
- 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 +0 -19
- package/tui/prompt/resource.py +0 -68
- package/tui/protocol.py +0 -28
- package/tui/screens/__init__.py +0 -0
- package/tui/screens/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/agent_modal.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/component_picker.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/diff_screen.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/log.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/main.cpython-313.pyc +0 -0
- package/tui/screens/__pycache__/main.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/permissions.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/projects_app.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/projects_screen.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/sessions.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/store.cpython-314.pyc +0 -0
- package/tui/screens/__pycache__/tool_content_screen.cpython-314.pyc +0 -0
- package/tui/screens/action_modal.py +0 -94
- package/tui/screens/agent_modal.py +0 -175
- package/tui/screens/command_edit_modal.py +0 -74
- package/tui/screens/component_picker.py +0 -168
- package/tui/screens/diff_screen.py +0 -84
- package/tui/screens/log.py +0 -553
- package/tui/screens/main.py +0 -385
- package/tui/screens/main.tcss +0 -655
- package/tui/screens/permissions.py +0 -404
- package/tui/screens/permissions.tcss +0 -72
- package/tui/screens/projects.tcss +0 -80
- package/tui/screens/projects_app.py +0 -347
- package/tui/screens/projects_screen.py +0 -284
- package/tui/screens/session_resume_modal.py +0 -172
- package/tui/screens/session_resume_modal.tcss +0 -35
- package/tui/screens/sessions.py +0 -164
- package/tui/screens/sessions.tcss +0 -119
- package/tui/screens/settings.py +0 -254
- package/tui/screens/settings.tcss +0 -101
- package/tui/screens/store.py +0 -500
- package/tui/screens/store.tcss +0 -274
- package/tui/screens/tool_content_screen.py +0 -59
- package/tui/session_tracker.py +0 -123
- package/tui/settings.py +0 -353
- package/tui/settings_schema.py +0 -431
- package/tui/shell.py +0 -304
- package/tui/shell_read.py +0 -42
- package/tui/slash_command.py +0 -34
- package/tui/tui.tcss +0 -246
- package/tui/twitter.py +0 -38
- package/tui/version.py +0 -80
- 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 +0 -272
- package/tui/widgets/__init__.py +0 -0
- package/tui/widgets/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/acp_content.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__/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__/directory_input.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__/mandelbrot.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/markdown_note.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__/plan.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/project_directory_tree.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/project_grid_select.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/project_summary.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_result.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__/subagent.cpython-314.pyc +0 -0
- package/tui/widgets/__pycache__/subagent_screen.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 +0 -70
- package/tui/widgets/agent_response.py +0 -76
- package/tui/widgets/agent_thought.py +0 -167
- package/tui/widgets/ask_user.py +0 -264
- package/tui/widgets/command_pane.py +0 -223
- package/tui/widgets/condensed_path.py +0 -115
- package/tui/widgets/context_stats.py +0 -66
- package/tui/widgets/conversation.py +0 -2641
- package/tui/widgets/danger_warning.py +0 -65
- package/tui/widgets/diff_view.py +0 -69
- package/tui/widgets/directory_input.py +0 -8
- package/tui/widgets/flash.py +0 -81
- package/tui/widgets/future_text.py +0 -126
- package/tui/widgets/grid_select.py +0 -234
- package/tui/widgets/highlighted_textarea.py +0 -180
- package/tui/widgets/load_more.py +0 -24
- package/tui/widgets/mandelbrot.py +0 -294
- package/tui/widgets/markdown_note.py +0 -13
- package/tui/widgets/menu.py +0 -147
- package/tui/widgets/modified_files.py +0 -306
- package/tui/widgets/non_selectable_label.py +0 -5
- package/tui/widgets/note.py +0 -18
- package/tui/widgets/path_search.py +0 -492
- package/tui/widgets/plan.py +0 -285
- package/tui/widgets/project_directory_tree.py +0 -102
- package/tui/widgets/project_grid_select.py +0 -64
- package/tui/widgets/project_summary.py +0 -33
- package/tui/widgets/prompt.py +0 -795
- package/tui/widgets/question.py +0 -360
- package/tui/widgets/session_grid_select.py +0 -230
- package/tui/widgets/session_summary.py +0 -115
- package/tui/widgets/session_tabs.py +0 -188
- package/tui/widgets/shell_result.py +0 -35
- package/tui/widgets/shell_terminal.py +0 -40
- package/tui/widgets/side_bar.py +0 -124
- package/tui/widgets/slash_complete.py +0 -235
- package/tui/widgets/strike_text.py +0 -70
- package/tui/widgets/subagent.py +0 -287
- package/tui/widgets/subagent_screen.py +0 -709
- package/tui/widgets/terminal.py +0 -576
- package/tui/widgets/terminal_tool.py +0 -360
- package/tui/widgets/throbber.py +0 -100
- package/tui/widgets/tool_call.py +0 -398
- package/tui/widgets/user_input.py +0 -23
- package/tui/widgets/version.py +0 -5
- package/tui/widgets/welcome.py +0 -31
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# TCB Stack Preview
|
|
2
|
-
|
|
3
|
-
Preview deployment for the unified stack (backend + all clients: web, native, desktop, wxa, mya, tta). URL resolution is dynamic per platform; `BACKEND_URL` is injected into client builds at build time.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
`deploy_stack --preview --provider tcb` deploys the full stack to an isolated preview environment and exports the stack URL. Used for per-component e2e AND cross-stack e2e verification before staging or production.
|
|
8
|
-
|
|
9
|
-
## Preview Flow
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
git push feature branch
|
|
13
|
-
→ deploy_stack --preview --provider tcb
|
|
14
|
-
→ STACK_URL = BACKEND_URL = https://{env-id}.tcb-preview.com
|
|
15
|
-
→ WEB_URL = https://{env-id}-{project}.tcb-preview.com
|
|
16
|
-
→ NATIVE_DIST_URL = internal distribution URL
|
|
17
|
-
→ DESKTOP_DIST_URL = internal distribution URL
|
|
18
|
-
→ WXA_URL / MYA_URL / TTA_URL = mini-program preview QR
|
|
19
|
-
→ Per-component e2e: pytest apps/{comp}/tests/e2e/ --base-url $URL
|
|
20
|
-
→ Cross-stack e2e: pytest aidlc/tests/cross-stack/ --stack-url $STACK_URL
|
|
21
|
-
→ TTL: 24h → auto cleanup
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Configuration
|
|
25
|
-
|
|
26
|
-
```yaml
|
|
27
|
-
preview:
|
|
28
|
-
orchestrator: deploy_stack
|
|
29
|
-
strategy: unified
|
|
30
|
-
ttl: 24h
|
|
31
|
-
auto_cleanup: true
|
|
32
|
-
db_sandbox: true # isolated database per preview
|
|
33
|
-
url_pattern: "https://{env-id}.tcb-preview.com"
|
|
34
|
-
build_env:
|
|
35
|
-
web:
|
|
36
|
-
- BACKEND_URL
|
|
37
|
-
- STACK_URL
|
|
38
|
-
native:
|
|
39
|
-
- BACKEND_URL
|
|
40
|
-
desktop:
|
|
41
|
-
- BACKEND_URL
|
|
42
|
-
wxa:
|
|
43
|
-
- BACKEND_URL
|
|
44
|
-
mya:
|
|
45
|
-
- BACKEND_URL
|
|
46
|
-
tta:
|
|
47
|
-
- BACKEND_URL
|
|
48
|
-
env:
|
|
49
|
-
- STACK_URL # = BACKEND_URL (gateway)
|
|
50
|
-
- BACKEND_URL
|
|
51
|
-
- WEB_URL
|
|
52
|
-
- NATIVE_DIST_URL
|
|
53
|
-
- DESKTOP_DIST_URL
|
|
54
|
-
- WXA_URL
|
|
55
|
-
- MYA_URL
|
|
56
|
-
- TTA_URL
|
|
57
|
-
- DATABASE_URL (sandbox)
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## BDD E2E Integration
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
# Deploy unified stack preview
|
|
64
|
-
export STACK_URL=$(deploy_stack --preview --provider tcb --output url)
|
|
65
|
-
export BACKEND_URL=$STACK_URL
|
|
66
|
-
export WEB_URL=$(deploy_stack --preview --provider tcb --output web_url)
|
|
67
|
-
export NATIVE_DIST_URL=$(deploy_stack --preview --provider tcb --output native_url)
|
|
68
|
-
export DESKTOP_DIST_URL=$(deploy_stack --preview --provider tcb --output desktop_url)
|
|
69
|
-
|
|
70
|
-
# Per-component e2e
|
|
71
|
-
pytest apps/backend/tests/e2e/ --base-url $BACKEND_URL
|
|
72
|
-
pytest apps/web/tests/e2e/ --base-url $WEB_URL --api-url $BACKEND_URL
|
|
73
|
-
pytest apps/native/tests/e2e/ --backend-url $BACKEND_URL
|
|
74
|
-
pytest apps/desktop/tests/e2e/ --backend-url $BACKEND_URL
|
|
75
|
-
pytest apps/wxa/tests/e2e/ --backend-url $BACKEND_URL
|
|
76
|
-
pytest apps/mya/tests/e2e/ --backend-url $BACKEND_URL
|
|
77
|
-
pytest apps/tta/tests/e2e/ --backend-url $BACKEND_URL
|
|
78
|
-
|
|
79
|
-
# Cross-stack e2e
|
|
80
|
-
pytest aidlc/tests/cross-stack/ --stack-url $STACK_URL
|
|
81
|
-
|
|
82
|
-
# Cleanup (automatic after TTL)
|
|
83
|
-
```
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
# TCB Provider (Stack-aware)
|
|
2
|
-
|
|
3
|
-
Default cloud development platform. Supports the unified stack deploy (backend + all clients: web, native, desktop, wxa, mya, tta) and per-component deploys (for isolated dev sandboxes only).
|
|
4
|
-
|
|
5
|
-
## Metadata
|
|
6
|
-
|
|
7
|
-
```yaml
|
|
8
|
-
provider:
|
|
9
|
-
name: tcb
|
|
10
|
-
display_name: Tencent CloudBase
|
|
11
|
-
default: true
|
|
12
|
-
version: 3.0.0
|
|
13
|
-
website: https://cloud.tencent.com/product/tcb
|
|
14
|
-
|
|
15
|
-
stack:
|
|
16
|
-
components:
|
|
17
|
-
- id: backend
|
|
18
|
-
deploy_order: 1
|
|
19
|
-
exposes: BACKEND_URL
|
|
20
|
-
- id: web
|
|
21
|
-
deploy_order: 2
|
|
22
|
-
consumes: BACKEND_URL
|
|
23
|
-
- id: native
|
|
24
|
-
deploy_order: 2
|
|
25
|
-
consumes: BACKEND_URL
|
|
26
|
-
- id: desktop
|
|
27
|
-
deploy_order: 2
|
|
28
|
-
consumes: BACKEND_URL
|
|
29
|
-
- id: wxa
|
|
30
|
-
deploy_order: 2
|
|
31
|
-
consumes: BACKEND_URL
|
|
32
|
-
- id: mya
|
|
33
|
-
deploy_order: 2
|
|
34
|
-
consumes: BACKEND_URL
|
|
35
|
-
- id: tta
|
|
36
|
-
deploy_order: 2
|
|
37
|
-
consumes: BACKEND_URL
|
|
38
|
-
|
|
39
|
-
regions:
|
|
40
|
-
- id: ap-shanghai
|
|
41
|
-
name: Shanghai
|
|
42
|
-
- id: ap-beijing
|
|
43
|
-
name: Beijing
|
|
44
|
-
- id: ap-guangzhou
|
|
45
|
-
name: Guangzhou
|
|
46
|
-
- id: ap-singapore
|
|
47
|
-
name: Singapore
|
|
48
|
-
|
|
49
|
-
services:
|
|
50
|
-
- functions: cloudbase
|
|
51
|
-
- database: cloudbase
|
|
52
|
-
- storage: cloudbase
|
|
53
|
-
- hosting: cloudbase
|
|
54
|
-
|
|
55
|
-
limits:
|
|
56
|
-
function_timeout: 60s
|
|
57
|
-
function_memory: 1536MB
|
|
58
|
-
max_instances: 100
|
|
59
|
-
|
|
60
|
-
compute_modes:
|
|
61
|
-
- id: cloudbase-functions
|
|
62
|
-
type: faas
|
|
63
|
-
default: true
|
|
64
|
-
description: "CloudBase Functions (SCF) — event-driven functions"
|
|
65
|
-
limits:
|
|
66
|
-
timeout: 60s
|
|
67
|
-
memory: 1536MB
|
|
68
|
-
max_instances: 100
|
|
69
|
-
- id: cloudbase-run
|
|
70
|
-
type: caas
|
|
71
|
-
description: "CloudBase Run — container hosting"
|
|
72
|
-
limits:
|
|
73
|
-
timeout: 3600s
|
|
74
|
-
memory: 4096MB
|
|
75
|
-
|
|
76
|
-
capabilities:
|
|
77
|
-
- serverless_functions
|
|
78
|
-
- static_hosting
|
|
79
|
-
- serverless_database
|
|
80
|
-
- serverless_storage
|
|
81
|
-
- preview_deploy
|
|
82
|
-
- ssl_cert
|
|
83
|
-
- custom_domain
|
|
84
|
-
- cdn_acceleration
|
|
85
|
-
- stack_deploy
|
|
86
|
-
- build_env_injection
|
|
87
|
-
- container_hosting
|
|
88
|
-
|
|
89
|
-
storage:
|
|
90
|
-
object_storage: cloudbase-storage
|
|
91
|
-
document_db: docdb
|
|
92
|
-
relational_db: mysql
|
|
93
|
-
cdn: tencent-cloud-cdn
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Stack Deploy (recommended for shared environments)
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
# Unified stack preview (returns STACK_URL = BACKEND_URL + per-component URLs)
|
|
100
|
-
deploy_stack --preview --provider tcb
|
|
101
|
-
# → backend: tcb fn deploy --env preview
|
|
102
|
-
# → backend: tcb db migrate --env preview
|
|
103
|
-
# → web: tcb hosting deploy --env preview --build-env BACKEND_URL=${STACK_URL}
|
|
104
|
-
# → native: build with BACKEND_URL injected; upload to internal distribution
|
|
105
|
-
# → desktop: build with BACKEND_URL injected; upload to internal distribution
|
|
106
|
-
# → wxa: build with BACKEND_URL injected; upload to mini-program platform
|
|
107
|
-
# → mya: build with BACKEND_URL injected; upload to mini-program platform
|
|
108
|
-
# → tta: build with BACKEND_URL injected; upload to mini-program platform
|
|
109
|
-
# → STACK_URL = https://{env-id}.tcb-preview.com
|
|
110
|
-
|
|
111
|
-
# Stack staging
|
|
112
|
-
deploy_stack --env staging --provider tcb
|
|
113
|
-
|
|
114
|
-
# Stack production (after human approval)
|
|
115
|
-
deploy_stack --env production --provider tcb
|
|
116
|
-
|
|
117
|
-
# Stack rollback
|
|
118
|
-
deploy_stack --rollback ${LAST_STABLE_STACK_VERSION} --provider tcb
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Per-Component Deploy (dev sandboxes only)
|
|
122
|
-
|
|
123
|
-
For isolated dev work on a single component, per-component deploy is allowed into a personal sandbox env.
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
# Functions
|
|
127
|
-
tcb fn deploy --name hello --dir ./functions
|
|
128
|
-
tcb fn invoke --name hello --params '{}'
|
|
129
|
-
tcb fn logs --name hello
|
|
130
|
-
|
|
131
|
-
# Database
|
|
132
|
-
tcb db query "SELECT * FROM users"
|
|
133
|
-
tcb db migrate
|
|
134
|
-
|
|
135
|
-
# Hosting (web only)
|
|
136
|
-
tcb hosting deploy --env dev-<user>
|
|
137
|
-
|
|
138
|
-
# Environment
|
|
139
|
-
tcb env list
|
|
140
|
-
tcb env use <env-id>
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
> Per-component deploys to shared environments (preview, staging, production) are forbidden (STK-004). Use `deploy_stack`.
|
|
144
|
-
|
|
145
|
-
## URL Resolution
|
|
146
|
-
|
|
147
|
-
| Component | Pattern |
|
|
148
|
-
|-----------|---------|
|
|
149
|
-
| `STACK_URL` / `BACKEND_URL` | `https://{env-id}.tcb-preview.com` |
|
|
150
|
-
| `WEB_URL` | `https://{env-id}-{project}.tcb-preview.com` |
|
|
151
|
-
| `NATIVE_DIST_URL` | internal distribution URL |
|
|
152
|
-
| `DESKTOP_DIST_URL` | internal distribution URL |
|
|
153
|
-
| `WXA_URL` | mini-program preview QR |
|
|
154
|
-
| `MYA_URL` | mini-program preview QR |
|
|
155
|
-
| `TTA_URL` | mini-program preview QR |
|
|
156
|
-
|
|
157
|
-
## Build Config Injection
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
tcb hosting deploy --env preview --build-env BACKEND_URL=$STACK_URL
|
|
161
|
-
# web reads process.env.BACKEND_URL at build time
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
## Environment Variables
|
|
165
|
-
|
|
166
|
-
| Variable | Description |
|
|
167
|
-
|----------|-------------|
|
|
168
|
-
| TCB_SECRET_ID | Tencent Cloud secret ID |
|
|
169
|
-
| TCB_SECRET_KEY | Tencent Cloud secret key |
|
|
170
|
-
| TCB_ENV_ID | CloudBase environment ID |
|
|
171
|
-
| BACKEND_URL | Stack URL injected at build time |
|
|
172
|
-
| STACK_URL | Alias of BACKEND_URL (gateway) |
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
# AI-DLC Skill — Requirements
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
This skill implements the AI-Driven Development Lifecycle for **monorepo multi-component stacks** (native + desktop + web + backend + wxa + mya + tta) with four core phases — Understand (SDD+BDD), Plan (SDD+TDD), Verify (BDD+TDD), Deliver (SDD+Cloud) — plus a first-class **Integration** discipline that governs cross-component contracts (API, events, shared types).
|
|
6
|
-
|
|
7
|
-
## Topology
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
┌──────────────────── Monorepo Root ─────────────────────┐
|
|
11
|
-
│ │
|
|
12
|
-
│ apps/native apps/desktop apps/web apps/backend │
|
|
13
|
-
│ (NATIVE-FR-) (DESKTOP-FR-) (WEB-FR-) (BE-FR-) │
|
|
14
|
-
│ apps/wxa apps/mya apps/tta │
|
|
15
|
-
│ (WXA-FR-) (MYA-FR-) (TTA-FR-) │
|
|
16
|
-
│ │ │ │ │
|
|
17
|
-
│ └──────┬───────┴─────┬─────┘ │
|
|
18
|
-
│ │ │ │
|
|
19
|
-
│ aidlc/contracts/ aidlc/packages/shared/ │
|
|
20
|
-
│ (INT-FR-*) (generated types) │
|
|
21
|
-
│ │
|
|
22
|
-
│ aidlc/features/ tests/ aidlc/openspec/ aidlc/providers/ │
|
|
23
|
-
└────────────────────────────────────────────────────────┘
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
FR namespaces:
|
|
27
|
-
|
|
28
|
-
| Prefix | Owner | Scope |
|
|
29
|
-
|--------|-------|-------|
|
|
30
|
-
| `NATIVE-*` | `apps/native` | Native mobile behavior |
|
|
31
|
-
| `DESKTOP-*` | `apps/desktop` | Desktop client behavior |
|
|
32
|
-
| `WEB-*` | `apps/web` | Browser frontend behavior |
|
|
33
|
-
| `BE-*` | `apps/backend` | Server/service behavior |
|
|
34
|
-
| `WXA-*` | `apps/wxa` | WeChat Mini Program behavior |
|
|
35
|
-
| `MYA-*` | `apps/mya` | Mini Program (e.g. Alipay) behavior |
|
|
36
|
-
| `TTA-*` | `apps/tta` | TikTok Mini Program behavior |
|
|
37
|
-
| `INT-*` | `aidlc/contracts/`, `aidlc/packages/shared/` | Cross-component contract & integration |
|
|
38
|
-
|
|
39
|
-
## Functional Requirements
|
|
40
|
-
|
|
41
|
-
### FR-001: Understand Phase
|
|
42
|
-
|
|
43
|
-
**Priority:** P0
|
|
44
|
-
|
|
45
|
-
**When** a developer starts a new feature (single-component or cross-cutting),
|
|
46
|
-
**the system SHALL** capture intent, produce an OpenSpec spec delta in EARS format, and write BDD feature files with Given/When/Then scenarios.
|
|
47
|
-
|
|
48
|
-
**Acceptance Criteria:**
|
|
49
|
-
- Intent documented before implementation
|
|
50
|
-
- Spec delta uses EARS (Ubiquitous/Event-Driven/State-Driven/Unwanted/Optional)
|
|
51
|
-
- Each FR tagged with `@FR-{PREFIX}-NNN` in `.feature` files
|
|
52
|
-
- Cross-component features use `INT-*` FRs in addition to per-component FRs
|
|
53
|
-
- Minimum 3 scenarios per FR: positive, negative, edge
|
|
54
|
-
- Scenarios reviewed and approved by human
|
|
55
|
-
|
|
56
|
-
### FR-002: Plan Phase
|
|
57
|
-
|
|
58
|
-
**Priority:** P0
|
|
59
|
-
|
|
60
|
-
**When** spec and feature files are approved,
|
|
61
|
-
**the system SHALL** produce a technical design, decompose work into units with dependency DAG, and write test plans.
|
|
62
|
-
|
|
63
|
-
**Acceptance Criteria:**
|
|
64
|
-
- Design doc includes architecture, data model, API contract, state machine
|
|
65
|
-
- Tasks have explicit dependencies (DAG), per-component and cross-component
|
|
66
|
-
- Cross-component tasks reference the relevant `INT-*` contract FR
|
|
67
|
-
- Test plan written per scenario before implementation
|
|
68
|
-
|
|
69
|
-
### FR-003: Verify Phase
|
|
70
|
-
|
|
71
|
-
**Priority:** P0
|
|
72
|
-
|
|
73
|
-
**When** design and tasks are approved,
|
|
74
|
-
**the system SHALL** execute TDD red-green-refactor per BDD scenario and verify all scenarios pass.
|
|
75
|
-
|
|
76
|
-
**Acceptance Criteria:**
|
|
77
|
-
- Tests written before implementation (Red)
|
|
78
|
-
- Tests fail initially (confirming assertion works)
|
|
79
|
-
- Minimum implementation written to pass (Green)
|
|
80
|
-
- Implementation refactored, all tests still pass
|
|
81
|
-
- All BDD scenarios pass via pytest-bdd (or equivalent per component)
|
|
82
|
-
- Quality gates enforced: coverage ≥80%, scenarios ≥90%, 0 vulns, no TODO
|
|
83
|
-
- Per-component unit, integration, and e2e layers are all green
|
|
84
|
-
- Cross-stack e2e scenarios pass against the unified preview URL
|
|
85
|
-
|
|
86
|
-
### FR-004: Deliver Phase
|
|
87
|
-
|
|
88
|
-
**Priority:** P1
|
|
89
|
-
|
|
90
|
-
**When** all scenarios pass quality gates,
|
|
91
|
-
**the system SHALL** deploy the full stack to preview, run cross-stack BDD e2e tests, and after human approval deploy to production with BVT verification.
|
|
92
|
-
|
|
93
|
-
**Acceptance Criteria:**
|
|
94
|
-
- Unified preview URL dynamically resolved per platform (TCB/Aliyun)
|
|
95
|
-
- BDD e2e tests run against preview URL for the component they target
|
|
96
|
-
- Cross-stack e2e tests run against the unified preview URL
|
|
97
|
-
- Production deploy requires human approval
|
|
98
|
-
- BVT (Build Verification Test) passes after production deploy
|
|
99
|
-
- Failed BVT triggers rollback
|
|
100
|
-
|
|
101
|
-
### FR-005: Cross-Component Contract Discipline
|
|
102
|
-
|
|
103
|
-
**Priority:** P0
|
|
104
|
-
|
|
105
|
-
**When** a feature spans more than one component (e.g. `WEB-*` + `BE-*`, or `NATIVE-*` + `BE-*`),
|
|
106
|
-
**the system SHALL** define and verify the contract between components before integration.
|
|
107
|
-
|
|
108
|
-
**Acceptance Criteria:**
|
|
109
|
-
- All public APIs and async events are described in `aidlc/contracts/` (OpenAPI/AsyncAPI) and tagged with `INT-FR-NNN`
|
|
110
|
-
- Contract changes require a contract-diff review (backward-compat by default)
|
|
111
|
-
- Shared types are generated from contracts, not hand-written, in `aidlc/packages/shared/`
|
|
112
|
-
- Contract tests run on every PR that touches `aidlc/contracts/` or any consumer
|
|
113
|
-
- A breaking contract change requires a major version bump and human approval
|
|
114
|
-
|
|
115
|
-
### FR-006: Monorepo Stack Awareness
|
|
116
|
-
|
|
117
|
-
**Priority:** P0
|
|
118
|
-
|
|
119
|
-
**When** the AI agent operates in a monorepo with multiple components,
|
|
120
|
-
**the system SHALL** be aware of which component(s) the current work affects and apply the right scope, tests, and deploy steps.
|
|
121
|
-
|
|
122
|
-
**Acceptance Criteria:**
|
|
123
|
-
- Spec delta, design doc, and task list each declare an `affects: [native, desktop, web, backend, wxa, mya, tta, contracts]` field
|
|
124
|
-
- Test plan enumerates the layers it covers: `unit`, `integration`, `e2e`, `cross-stack`
|
|
125
|
-
- Only the affected components are deployed in the unified preview (others reused or stubbed)
|
|
126
|
-
- BVT and rollback operate on the whole stack, not a single component
|
|
127
|
-
|
|
128
|
-
## Cross-Cutting Rules (summary)
|
|
129
|
-
|
|
130
|
-
See `rules/` for full definitions.
|
|
131
|
-
|
|
132
|
-
| Prefix | File | Phase | Scope |
|
|
133
|
-
|--------|------|-------|-------|
|
|
134
|
-
| UND | `rules/understand.md` | Understand | Single + multi-component |
|
|
135
|
-
| PLN | `rules/plan.md` | Plan | Single + multi-component |
|
|
136
|
-
| VRF | `rules/verify.md` | Verify | Single + multi-component |
|
|
137
|
-
| DLV | `rules/deliver.md` | Deliver | Stack deploy + rollback |
|
|
138
|
-
| INT | `rules/integration.md` | All phases | Cross-component contracts |
|
|
139
|
-
| STK | `rules/stack.md` | All phases | Monorepo / multi-component |
|
|
140
|
-
| SEC | `rules/security.md` | All phases | Security baseline |
|
package/ai-dlc-skill/skill.yaml
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
categories:
|
|
2
|
-
- ai-dlc
|
|
3
|
-
- development
|
|
4
|
-
- sdd
|
|
5
|
-
- bdd
|
|
6
|
-
- tdd
|
|
7
|
-
- specification
|
|
8
|
-
- cloud
|
|
9
|
-
- monorepo
|
|
10
|
-
- integration
|
|
11
|
-
description: >-
|
|
12
|
-
AI-Driven Development Lifecycle for monorepo multi-component stacks
|
|
13
|
-
(native + desktop + web + backend + wxa + mya + tta). Adaptive orchestration:
|
|
14
|
-
Master Agent evaluates complexity, delegates sub-tasks via CDHA Task tool.
|
|
15
|
-
Core phases: Understand (SDD+BDD) → Plan (SDD+TDD) → Verify (BDD+TDD) →
|
|
16
|
-
Deliver (SDD+Cloud), with cross-stack Integration rules governing
|
|
17
|
-
component boundaries. FR namespaces: NATIVE-*, DESKTOP-*, WEB-*, BE-*,
|
|
18
|
-
WXA-*, MYA-*, TTA-*, INT-*. Default cloud platform: TCB. Also supports Aliyun.
|
|
19
|
-
enabled: true
|
|
20
|
-
entry: SKILL.md
|
|
21
|
-
name: ai-dlc-skill
|
|
22
|
-
version: 4.0.0
|
|
23
|
-
|
|
24
|
-
stack:
|
|
25
|
-
topology: monorepo
|
|
26
|
-
components:
|
|
27
|
-
- id: native
|
|
28
|
-
kind: mobile
|
|
29
|
-
tech: react-native | flutter
|
|
30
|
-
default_language: dart
|
|
31
|
-
default_ui_framework: flutter-sdk
|
|
32
|
-
owns: apps/native
|
|
33
|
-
fr_prefix: NATIVE
|
|
34
|
-
- id: desktop
|
|
35
|
-
kind: desktop
|
|
36
|
-
tech: electron | tauri
|
|
37
|
-
default_language: typescript
|
|
38
|
-
default_ui_framework: electron-react
|
|
39
|
-
owns: apps/desktop
|
|
40
|
-
fr_prefix: DESKTOP
|
|
41
|
-
- id: web
|
|
42
|
-
kind: frontend
|
|
43
|
-
tech: react | vue | svelte
|
|
44
|
-
default_language: typescript
|
|
45
|
-
default_ui_framework: nextjs
|
|
46
|
-
owns: apps/web
|
|
47
|
-
fr_prefix: WEB
|
|
48
|
-
- id: backend
|
|
49
|
-
kind: service
|
|
50
|
-
tech: python | node | go
|
|
51
|
-
owns: apps/backend
|
|
52
|
-
fr_prefix: BE
|
|
53
|
-
- id: wxa
|
|
54
|
-
kind: mini-program
|
|
55
|
-
tech: miniprogram
|
|
56
|
-
default_language: javascript
|
|
57
|
-
default_ui_framework: vant-weapp
|
|
58
|
-
owns: apps/wxa
|
|
59
|
-
fr_prefix: WXA
|
|
60
|
-
- id: mya
|
|
61
|
-
kind: mini-program
|
|
62
|
-
tech: miniprogram
|
|
63
|
-
default_language: javascript
|
|
64
|
-
default_ui_framework: ant-design-mini
|
|
65
|
-
owns: apps/mya
|
|
66
|
-
fr_prefix: MYA
|
|
67
|
-
- id: tta
|
|
68
|
-
kind: mini-program
|
|
69
|
-
tech: miniprogram
|
|
70
|
-
default_language: typescript
|
|
71
|
-
owns: apps/tta
|
|
72
|
-
fr_prefix: TTA
|
|
73
|
-
cross_cutting:
|
|
74
|
-
fr_prefix: INT
|
|
75
|
-
owns:
|
|
76
|
-
- aidlc/contracts/
|
|
77
|
-
- aidlc/packages/shared/
|
|
78
|
-
e2e_layers:
|
|
79
|
-
- unit
|
|
80
|
-
- integration
|
|
81
|
-
- e2e
|
|
82
|
-
- cross-stack
|
|
83
|
-
storage:
|
|
84
|
-
default_provider: tcb
|
|
85
|
-
providers:
|
|
86
|
-
tcb:
|
|
87
|
-
object_storage: cloudbase-storage
|
|
88
|
-
document_db: docdb
|
|
89
|
-
relational_db: mysql
|
|
90
|
-
cdn: tencent-cloud-cdn
|
|
91
|
-
aliyun:
|
|
92
|
-
object_storage: oss
|
|
93
|
-
document_db: mongodb
|
|
94
|
-
relational_db: rds-mysql
|
|
95
|
-
cdn: aliyun-cdn
|
|
96
|
-
|
|
97
|
-
integration:
|
|
98
|
-
contract_first: true
|
|
99
|
-
contract_format: openapi-3.1
|
|
100
|
-
backward_compat: required
|
|
101
|
-
breaking_change_gate: human-approval
|
|
102
|
-
shared_types:
|
|
103
|
-
generator: openapi-typescript | openapi-python
|
|
104
|
-
output: aidlc/packages/shared/
|
|
105
|
-
publish: workspace-package
|
|
106
|
-
event_contract:
|
|
107
|
-
format: asyncapi | cloudevent
|
|
108
|
-
registry: aidlc/contracts/events/
|
|
109
|
-
version_strategy: semver-major-for-breaking
|
|
110
|
-
|
|
111
|
-
deploy:
|
|
112
|
-
preview:
|
|
113
|
-
strategy: unified
|
|
114
|
-
description: >-
|
|
115
|
-
Single stack preview deploys all components together.
|
|
116
|
-
PREVIEW_URL is the backend gateway; web, native, desktop,
|
|
117
|
-
and mini-programs receive it as a build-time/runtime config.
|
|
118
|
-
ttl: 24h
|
|
119
|
-
bdd_target: cross-stack
|
|
120
|
-
environments:
|
|
121
|
-
- preview
|
|
122
|
-
- staging
|
|
123
|
-
- production
|
|
124
|
-
|
|
125
|
-
quality_gates:
|
|
126
|
-
coverage_min: 80
|
|
127
|
-
bdd_pass_rate: 100
|
|
128
|
-
contract_diff: required
|
|
129
|
-
no_todo: true
|
|
130
|
-
no_secrets_in_diff: true
|
|
131
|
-
|
|
132
|
-
agents:
|
|
133
|
-
- name: ai-dlc-master
|
|
134
|
-
entry: SKILL.md
|
|
135
|
-
mode: primary
|
|
136
|
-
- name: ai-dlc-understand
|
|
137
|
-
entry: phases/understand/entry.md
|
|
138
|
-
mode: subagent
|
|
139
|
-
- name: ai-dlc-plan
|
|
140
|
-
entry: phases/plan/entry.md
|
|
141
|
-
mode: subagent
|
|
142
|
-
- name: ai-dlc-verify
|
|
143
|
-
entry: phases/verify/entry.md
|
|
144
|
-
mode: subagent
|
|
145
|
-
- name: ai-dlc-deliver
|
|
146
|
-
entry: phases/deliver/entry.md
|
|
147
|
-
mode: subagent
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Contracts Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to any contract in `aidlc/contracts/` are recorded here. Format follows
|
|
4
|
-
[Keep a Changelog](https://keepachangelog.com/) and the project uses [SemVer](https://semver.org/).
|
|
5
|
-
|
|
6
|
-
> **Breaking change rule (INT-002):** any MAJOR bump requires human approval and a
|
|
7
|
-
> Migration section. `aidlc/tools/contract_diff.py` flags breaking changes automatically.
|
|
8
|
-
|
|
9
|
-
## [Unreleased]
|
|
10
|
-
|
|
11
|
-
### Added
|
|
12
|
-
- _None yet_
|
|
13
|
-
|
|
14
|
-
### Changed
|
|
15
|
-
- _None yet_
|
|
16
|
-
|
|
17
|
-
### Removed
|
|
18
|
-
- _None yet_
|
|
19
|
-
|
|
20
|
-
### Migration
|
|
21
|
-
- _None yet_
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## {{version}} — {{date}} — {{change_id}}
|
|
26
|
-
|
|
27
|
-
**FRs:** {{list_of_frs}}
|
|
28
|
-
**Affects:** {{components}}
|
|
29
|
-
|
|
30
|
-
### Added
|
|
31
|
-
- {{new_endpoint_or_field}}
|
|
32
|
-
|
|
33
|
-
### Changed
|
|
34
|
-
- {{additive_change}}
|
|
35
|
-
|
|
36
|
-
### Removed
|
|
37
|
-
- {{breaking_removal}}
|
|
38
|
-
|
|
39
|
-
### Migration
|
|
40
|
-
1. {{step_1}}
|
|
41
|
-
2. {{step_2}}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
asyncapi: 3.0.0
|
|
2
|
-
info:
|
|
3
|
-
title: {{title}}
|
|
4
|
-
version: {{version}}
|
|
5
|
-
description: |
|
|
6
|
-
Async contract for INT-FR-{{int_fr_id}}.
|
|
7
|
-
Producer: {{producer}}
|
|
8
|
-
Consumers: {{consumers}}
|
|
9
|
-
x-change-id: {{change_id}}
|
|
10
|
-
x-fr: INT-FR-{{int_fr_id}}
|
|
11
|
-
|
|
12
|
-
channels:
|
|
13
|
-
{{channel_name}}:
|
|
14
|
-
address: {{channel_address}}
|
|
15
|
-
messages:
|
|
16
|
-
{{message_name}}:
|
|
17
|
-
$ref: '#/components/messages/{{MessageName}}'
|
|
18
|
-
|
|
19
|
-
operations:
|
|
20
|
-
{{operation_name}}:
|
|
21
|
-
action: {{send | receive}}
|
|
22
|
-
channel:
|
|
23
|
-
$ref: '#/channels/{{channel_name}}'
|
|
24
|
-
|
|
25
|
-
components:
|
|
26
|
-
messages:
|
|
27
|
-
{{MessageName}}:
|
|
28
|
-
name: {{message_name}}
|
|
29
|
-
title: {{message_title}}
|
|
30
|
-
contentType: application/cloudevents+json
|
|
31
|
-
payload:
|
|
32
|
-
$ref: '#/components/schemas/{{PayloadName}}'
|
|
33
|
-
schemas:
|
|
34
|
-
{{PayloadName}}:
|
|
35
|
-
type: object
|
|
36
|
-
required: [id, type, time, data]
|
|
37
|
-
properties:
|
|
38
|
-
id: { type: string, format: uuid }
|
|
39
|
-
type: { type: string }
|
|
40
|
-
source: { type: string }
|
|
41
|
-
time: { type: string, format: date-time }
|
|
42
|
-
specversion: { type: string, enum: ["1.0"] }
|
|
43
|
-
data: { type: object }
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# Contract Diff — {{change_id}}
|
|
2
|
-
|
|
3
|
-
> Auto-generated by `aidlc/tools/contract_diff.py`. Reviewed during Verify and Deliver.
|
|
4
|
-
|
|
5
|
-
## Summary
|
|
6
|
-
|
|
7
|
-
| Field | Value |
|
|
8
|
-
|-------|-------|
|
|
9
|
-
| Change ID | `{{change_id}}` |
|
|
10
|
-
| Base version | `{{base_version}}` |
|
|
11
|
-
| Head version | `{{head_version}}` |
|
|
12
|
-
| Breaking? | {{yes / no}} |
|
|
13
|
-
| Approval required | {{yes / no}} |
|
|
14
|
-
|
|
15
|
-
## Files Changed
|
|
16
|
-
|
|
17
|
-
| File | Old Version | New Version | Breaking |
|
|
18
|
-
|------|-------------|-------------|----------|
|
|
19
|
-
| `{{path}}` | `{{old}}` | `{{new}}` | {{y / n}} |
|
|
20
|
-
|
|
21
|
-
## OpenAPI Diff
|
|
22
|
-
|
|
23
|
-
```diff
|
|
24
|
-
--- a/aidlc/contracts/api/{{file}}.yaml
|
|
25
|
-
+++ b/aidlc/contracts/api/{{file}}.yaml
|
|
26
|
-
@@
|
|
27
|
-
- removed: {{field}}
|
|
28
|
-
+ added: {{field}}
|
|
29
|
-
~ changed: {{field}} ({{old_type}} → {{new_type}})
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## AsyncAPI Diff
|
|
33
|
-
|
|
34
|
-
```diff
|
|
35
|
-
--- a/aidlc/contracts/events/{{file}}.yaml
|
|
36
|
-
+++ b/aidlc/contracts/events/{{file}}.yaml
|
|
37
|
-
@@
|
|
38
|
-
- channel removed: {{name}}
|
|
39
|
-
+ channel added: {{name}}
|
|
40
|
-
~ payload field: {{field}}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Breaking Change Detail
|
|
44
|
-
|
|
45
|
-
> _Filled automatically. Each breaking change must link to a migration note in `aidlc/contracts/CHANGELOG.md`._
|
|
46
|
-
|
|
47
|
-
- {{breaking_change_1}}
|
|
48
|
-
- Migration: {{link}}
|
|
49
|
-
|
|
50
|
-
## Compat Check Result
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
$ aidlc/tools/contract_diff.py --base {{base}} --head {{head}}
|
|
54
|
-
RESULT: {{COMPATIBLE | BREAKING}}
|
|
55
|
-
EXIT: {{0 | 1}}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Sign-off
|
|
59
|
-
|
|
60
|
-
- [ ] Contracts owner reviewed
|
|
61
|
-
- [ ] Provider team reviewed
|
|
62
|
-
- [ ] Consumer teams reviewed
|
|
63
|
-
- [ ] (If breaking) Human approval received
|