emdash-core 0.1.50__tar.gz → 0.1.53__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.
- {emdash_core-0.1.50 → emdash_core-0.1.53}/PKG-INFO +1 -1
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/prompts/workflow.py +41 -27
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/utils/image.py +33 -11
- {emdash_core-0.1.50 → emdash_core-0.1.53}/pyproject.toml +1 -1
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/agents.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/background.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/code_reviewer.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/compaction.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/context_manager.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/events.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/handlers.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/hooks.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/inprocess_subagent.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/mcp/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/mcp/client.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/mcp/config.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/mcp/manager.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/mcp/tool_factory.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/prompts/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/prompts/main_agent.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/prompts/plan_mode.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/prompts/subagents.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/providers/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/providers/base.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/providers/factory.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/providers/models.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/providers/openai_provider.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/providers/transformers_provider.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/agent.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/controller.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/critic.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/macros.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/planner.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/researcher.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/state.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/research/synthesizer.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/reviewer_profile.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/rules.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/runner/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/runner/agent_runner.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/runner/context.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/runner/factory.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/runner/plan.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/runner/sdk_runner.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/runner/utils.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/session.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/skills.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/spec_schema.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/specification.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/subagent.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/subagent_prompts.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/toolkit.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/toolkits/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/toolkits/base.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/toolkits/explore.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/toolkits/plan.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/analytics.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/base.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/coding.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/github_mcp.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/history.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/lsp.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/modes.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/plan.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/plan_write.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/search.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/skill.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/spec.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/task.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/task_output.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/tasks.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/traversal.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/tools/web.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/verifier/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/verifier/manager.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/verifier/models.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/worktree.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/analytics/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/analytics/engine.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/agent.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/agents.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/analyze.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/auth.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/context.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/db.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/embed.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/feature.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/health.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/index.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/plan.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/projectmd.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/query.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/research.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/review.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/router.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/rules.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/search.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/skills.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/spec.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/tasks.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/api/team.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/auth/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/auth/github.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/checkpoint/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/checkpoint/cli.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/checkpoint/git_operations.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/checkpoint/manager.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/checkpoint/models.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/checkpoint/storage.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/config.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/longevity.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/models.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/providers/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/providers/base.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/providers/explored_areas.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/providers/touched_areas.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/registry.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/reranker.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/service.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/session.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/simple_reranker.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/context/tool_relevance.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/core/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/core/config.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/core/exceptions.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/core/models.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/core/review_config.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/indexer.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/models.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/providers/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/providers/base.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/providers/fireworks.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/providers/openai.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/registry.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/embeddings/service.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/graph/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/graph/builder.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/graph/connection.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/graph/schema.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/graph/writer.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/change_detector.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/git/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/git/commit_analyzer.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/github/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/github/pr_fetcher.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/github/task_extractor.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/orchestrator.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/base_parser.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/call_graph_builder.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/class_extractor.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/function_extractor.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/import_analyzer.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/python_parser.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/registry.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/ts_ast_parser.js +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/typescript_parser.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/repository.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/models/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/models/agent.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/models/index.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/models/query.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/agent_api.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/context_builder.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/feature_context.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/feature_expander.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/llm_explainer.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/similarity.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/planning/team_focus.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/server.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/skills/frontend-design/SKILL.md +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/sse/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/sse/stream.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/agent-builder.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/focus.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/pr-review-enhanced.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/pr-review.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/project.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/research_critic.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/research_planner.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/research_synthesizer.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/reviewer.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/spec.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/tasks.md.template +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/loader.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/utils/__init__.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/utils/git.py +0 -0
- {emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/utils/logger.py +0 -0
|
@@ -48,35 +48,38 @@ After receiving the plan:
|
|
|
48
48
|
- "Fix this typo" → just fix it
|
|
49
49
|
- "Add a log statement here" → just add it
|
|
50
50
|
|
|
51
|
-
### 1.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
51
|
+
### 1. Know What To Do → Plan-First, Execute
|
|
52
|
+
|
|
53
|
+
When you understand the task and know how to approach it:
|
|
54
|
+
1. State a brief plan (3-5 steps)
|
|
55
|
+
2. Execute directly - don't explore "just in case"
|
|
56
|
+
3. Read only the files your plan requires
|
|
57
|
+
|
|
58
|
+
Examples:
|
|
59
|
+
- "Add logout button to settings" → You know where settings is, just do it
|
|
60
|
+
- "Fix the typo in README" → Just fix it
|
|
61
|
+
- "Update the API endpoint" → Read it, update it, done
|
|
62
|
+
|
|
63
|
+
### 2. Don't Know What To Do → Explore First
|
|
64
|
+
|
|
65
|
+
When you're genuinely uncertain about the codebase or approach:
|
|
66
|
+
- **Spawn Explore agent** for open-ended research across multiple files
|
|
67
|
+
- **Ask ONE clarifying question** if you need user input (not multiple)
|
|
68
|
+
|
|
69
|
+
Examples:
|
|
70
|
+
- "Where are errors handled?" → Explore agent (could be many places)
|
|
71
|
+
- "How does authentication work?" → Explore agent (multiple files)
|
|
72
|
+
- "What framework should I use?" → Ask user (decision needed)
|
|
73
|
+
|
|
74
|
+
### 3. Direct Tools vs Explore Agent
|
|
75
|
+
|
|
76
|
+
**Use direct tools** when you know what to look for:
|
|
72
77
|
- "Read the router" → `glob("**/router*")` then `read_file`
|
|
73
|
-
- "
|
|
74
|
-
- "Find the UserService class" → `grep("class UserService")`
|
|
78
|
+
- "Find UserService class" → `grep("class UserService")`
|
|
75
79
|
|
|
76
|
-
**
|
|
77
|
-
- "
|
|
78
|
-
- "How does
|
|
79
|
-
- "What is the codebase structure?" → broad exploration
|
|
80
|
+
**Spawn Explore agent** when you need broad exploration:
|
|
81
|
+
- "What is the codebase structure?"
|
|
82
|
+
- "How does X integrate with Y?"
|
|
80
83
|
|
|
81
84
|
### 4. Parallel Tool Execution
|
|
82
85
|
|
|
@@ -338,6 +341,17 @@ Do this in ONE message:
|
|
|
338
341
|
→ All three run concurrently, results return together
|
|
339
342
|
"""
|
|
340
343
|
|
|
344
|
+
# Plan-First rule to prevent over-exploration
|
|
345
|
+
PLAN_FIRST_RULE = """
|
|
346
|
+
## Plan-First Reminder
|
|
347
|
+
|
|
348
|
+
**Know what to do?** → State a 3-5 step plan, then execute. Don't explore beyond your plan.
|
|
349
|
+
|
|
350
|
+
**Don't know?** → Spawn Explore agent or ask ONE clarifying question.
|
|
351
|
+
|
|
352
|
+
Trust user context - if they say "the file" or "this", they know which one.
|
|
353
|
+
"""
|
|
354
|
+
|
|
341
355
|
# Efficiency rules for sub-agents with limited turns
|
|
342
356
|
EFFICIENCY_RULES = """
|
|
343
357
|
## Efficiency Rules
|
|
@@ -110,7 +110,11 @@ def _check_macos_clipboard() -> bool:
|
|
|
110
110
|
|
|
111
111
|
try:
|
|
112
112
|
pasteboard = AppKit.NSPasteboard.generalPasteboard()
|
|
113
|
-
|
|
113
|
+
# Check for PNG or TIFF (macOS screenshots use TIFF)
|
|
114
|
+
return bool(
|
|
115
|
+
pasteboard.dataForType_("public.png") or
|
|
116
|
+
pasteboard.dataForType_("public.tiff")
|
|
117
|
+
)
|
|
114
118
|
except Exception:
|
|
115
119
|
return False
|
|
116
120
|
|
|
@@ -253,6 +257,8 @@ def _dib_to_png(dib_data: bytes) -> bytes:
|
|
|
253
257
|
|
|
254
258
|
def _read_macos_clipboard() -> Optional[bytes]:
|
|
255
259
|
"""Read image from macOS clipboard."""
|
|
260
|
+
import tempfile
|
|
261
|
+
|
|
256
262
|
AppKit = _import_mac_clipboard()
|
|
257
263
|
if AppKit is None:
|
|
258
264
|
raise ClipboardImageError(
|
|
@@ -268,19 +274,35 @@ def _read_macos_clipboard() -> Optional[bytes]:
|
|
|
268
274
|
if data:
|
|
269
275
|
return bytes(data)
|
|
270
276
|
|
|
271
|
-
# Try TIFF and convert (macOS
|
|
277
|
+
# Try TIFF and convert (macOS screenshots use TIFF internally)
|
|
272
278
|
data = pasteboard.dataForType_("public.tiff")
|
|
273
279
|
if data:
|
|
274
|
-
# Use sips command-line tool to convert TIFF to PNG
|
|
280
|
+
# Use sips command-line tool to convert TIFF to PNG (via temp files)
|
|
275
281
|
try:
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
282
|
+
with tempfile.NamedTemporaryFile(suffix='.tiff', delete=False) as tiff_file:
|
|
283
|
+
tiff_path = tiff_file.name
|
|
284
|
+
tiff_file.write(bytes(data))
|
|
285
|
+
|
|
286
|
+
png_path = tiff_path.replace('.tiff', '.png')
|
|
287
|
+
try:
|
|
288
|
+
proc = subprocess.run(
|
|
289
|
+
["sips", "-s", "format", "png", tiff_path, "--out", png_path],
|
|
290
|
+
capture_output=True,
|
|
291
|
+
timeout=5
|
|
292
|
+
)
|
|
293
|
+
if proc.returncode == 0:
|
|
294
|
+
with open(png_path, 'rb') as f:
|
|
295
|
+
return f.read()
|
|
296
|
+
finally:
|
|
297
|
+
# Clean up temp files
|
|
298
|
+
try:
|
|
299
|
+
os.unlink(tiff_path)
|
|
300
|
+
except OSError:
|
|
301
|
+
pass
|
|
302
|
+
try:
|
|
303
|
+
os.unlink(png_path)
|
|
304
|
+
except OSError:
|
|
305
|
+
pass
|
|
284
306
|
except (subprocess.TimeoutExpired, FileNotFoundError):
|
|
285
307
|
pass
|
|
286
308
|
|
|
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
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/agent/providers/transformers_provider.py
RENAMED
|
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
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/call_graph_builder.py
RENAMED
|
File without changes
|
|
File without changes
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/function_extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/ingestion/parsers/typescript_parser.py
RENAMED
|
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
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/agent-builder.md.template
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/pr-review.md.template
RENAMED
|
File without changes
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/project.md.template
RENAMED
|
File without changes
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/research_critic.md.template
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{emdash_core-0.1.50 → emdash_core-0.1.53}/emdash_core/templates/defaults/reviewer.md.template
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|