forgex-cli 0.1.4__tar.gz → 0.1.5__tar.gz
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.
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/PKG-INFO +1 -1
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/__init__.py +1 -1
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/agents/architect.py +2 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/plan.py +14 -7
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/intent.py +1 -1
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/repl.py +4 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/.github/workflows/ci.yml +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/.github/workflows/release.yml +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/.gitignore +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/CHANGELOG.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/LICENSE +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/README.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/SECURITY.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/agents.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/architecture.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/configuration.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/decisions.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/providers.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/quickstart.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/sandbox.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/docs/security.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/examples/demo-project/README.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/examples/demo-project/pyproject.toml +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/examples/demo-project/src/demo/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/examples/demo-project/src/demo/calc.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/examples/demo-project/tests/test_calc.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/pyproject.toml +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/__main__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/agents/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/agents/base.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/agents/builder.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/agents/ensemble.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/agents/expert_coder.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/agents/supervisor.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/app.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/build_views.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/build.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/checkpoint.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/config.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/context.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/diff.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/do_cmd.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/doctor.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/fix.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/init.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/logs.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/models.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/review.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/rollback.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/run.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/status.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/supervise.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/task.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/tools.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/commands/verify.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/context_memory.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/progress.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/runtime.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/session.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/cli/ui.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/config/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/config/loader.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/config/schema.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/context/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/context/chunker.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/context/dependency_graph.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/context/indexer.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/context/manager.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/context/retriever.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/base.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/capabilities.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/factory.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/groq.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/local.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/openai_compatible.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/registry.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/models/router.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/checkpoints.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/engine.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/events.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/lockfile.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/retry.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/state.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/stores.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/orchestration/workflow.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/project.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/prompts/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/prompts/architect.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/prompts/builder.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/prompts/expert_coder.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/prompts/reviewer.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/prompts/supervisor.md +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/research/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/research/citations.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/research/engine.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/research/sources.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/sandbox/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/sandbox/executor.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/sandbox/permissions.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/sandbox/policies.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/agent.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/checkpoint.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/error.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/event.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/plan.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/project.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/research.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/result.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/schemas/task.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/storage/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/storage/database.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/storage/migrations.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/storage/repositories.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/base.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/dependencies.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/filesystem.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/git.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/project.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/search.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/terminal.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/testing.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/tools/verification.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/utils/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/utils/logging.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/utils/paths.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/src/forgex/utils/redact.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/conftest.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/__init__.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_agents_architect.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_builder_agent.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_checkpoints.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_build.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_checkpoint.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_do.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_models.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_plan.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_review.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_surface.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_task.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_tools.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_cli_verify.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_config.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_config_env.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_config_setup.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_context_agents.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_context_manager.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_context_memory.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_engine.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_ensemble.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_events.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_executor.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_expert_coder.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_fix.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_indexer.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_init.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_intent.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_large_repo.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_offline.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_packaging.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_paths.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_permissions.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_plan_schemas.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_policies.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_project.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_providers.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_recovery.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_redact.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_registry.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_repl.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_research.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_retriever.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_retry.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_router.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_run_cli.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_runtime.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_security.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_session.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_state.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_storage.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_stores.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_supervisor.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_tasks.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_tools_dependencies.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_tools_filesystem.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_tools_git.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_tools_search.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_tools_terminal.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_verification.py +0 -0
- {forgex_cli-0.1.4 → forgex_cli-0.1.5}/tests/unit/test_workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: forgex-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: FORGEX — multi-agent AI software engineering. Plan. Build. Refine. Verify.
|
|
5
5
|
Project-URL: Homepage, https://github.com/B-max12/Forgex
|
|
6
6
|
Project-URL: Repository, https://github.com/B-max12/Forgex
|
|
@@ -67,6 +67,8 @@ class ArchitectAgent(BaseAgent):
|
|
|
67
67
|
brief += "\n\nSymbols:\n" + symbols
|
|
68
68
|
except Exception:
|
|
69
69
|
logger.warning("symbol map unavailable", exc_info=True)
|
|
70
|
+
if len(brief) > 16_000:
|
|
71
|
+
brief = brief[:16_000] + "\n... [context truncated to stay within token budget]"
|
|
70
72
|
return brief
|
|
71
73
|
|
|
72
74
|
async def plan(
|
|
@@ -55,22 +55,29 @@ def plan_command(
|
|
|
55
55
|
|
|
56
56
|
with open_stores(root) as stores:
|
|
57
57
|
planner = build_planner(config=config, workspace=root, stores=stores)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
|
|
59
|
+
async def _run_plan():
|
|
60
|
+
try:
|
|
61
|
+
return await plan_project(
|
|
61
62
|
planner,
|
|
62
63
|
stores=stores,
|
|
63
64
|
request=request,
|
|
64
65
|
dry_run=dry_run,
|
|
65
66
|
progress=progress,
|
|
66
67
|
)
|
|
67
|
-
|
|
68
|
+
finally:
|
|
69
|
+
aclose = getattr(planner, "aclose", None)
|
|
70
|
+
if aclose is not None:
|
|
71
|
+
try:
|
|
72
|
+
await aclose()
|
|
73
|
+
except Exception:
|
|
74
|
+
pass
|
|
75
|
+
|
|
76
|
+
try:
|
|
77
|
+
result = asyncio.run(_run_plan())
|
|
68
78
|
finally:
|
|
69
79
|
if status_ctx:
|
|
70
80
|
status_ctx.stop()
|
|
71
|
-
aclose = getattr(planner, "aclose", None)
|
|
72
|
-
if aclose is not None:
|
|
73
|
-
asyncio.run(aclose())
|
|
74
81
|
|
|
75
82
|
tasks = specs_to_tasks(result.plan.tasks)
|
|
76
83
|
ui.data({
|
|
@@ -45,7 +45,7 @@ class IntentResult:
|
|
|
45
45
|
_INTENT_PATTERNS = [
|
|
46
46
|
# Plan and build patterns (e.g. "build me a REST API", "plan and build a service")
|
|
47
47
|
(
|
|
48
|
-
r"^(?:please\s+)?(?:build\s+me\s
|
|
48
|
+
r"^(?:please\s+)?(?:build\s+(?:me\s+)?|make\s+(?:me\s+)?|plan\s+and\s+build\s+)(.+)$",
|
|
49
49
|
IntentAction.PLAN_AND_BUILD,
|
|
50
50
|
lambda m: [["plan", m.group(1).strip()], ["build"]],
|
|
51
51
|
"Plan architecture and execute build pipeline",
|
|
@@ -246,6 +246,10 @@ class ForgexREPL:
|
|
|
246
246
|
if text.startswith("/"):
|
|
247
247
|
text = text[1:].strip()
|
|
248
248
|
|
|
249
|
+
# Strip optional leading 'forgex' if user typed 'forgex <cmd>' in REPL
|
|
250
|
+
if text.lower().startswith("forgex "):
|
|
251
|
+
text = text[7:].strip()
|
|
252
|
+
|
|
249
253
|
tokens = shlex.split(text, posix=sys.platform != "win32")
|
|
250
254
|
if not tokens:
|
|
251
255
|
return
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|