promptosaurus 0.0.0.dev145109__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.
- promptosaurus-0.0.0.dev145109/.coverage +0 -0
- promptosaurus-0.0.0.dev145109/.editorconfig +30 -0
- promptosaurus-0.0.0.dev145109/.github/scripts/calculate_version.py +188 -0
- promptosaurus-0.0.0.dev145109/.github/workflows/ci-cd.yml +526 -0
- promptosaurus-0.0.0.dev145109/.gitignore +77 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules/conventions-python.md +416 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules/conventions.md +150 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules/session.md +420 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules/system.md +225 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-architect/data-model.md +41 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-architect/scaffold.md +22 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-architect/task-breakdown.md +33 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-ask/decision-log-template.md +387 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-ask/decision-log.md +57 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-ask/docs.md +55 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-ask/testing.md +111 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-code/boilerplate.md +25 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-code/feature.md +31 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-code/house-style.md +27 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-compliance/review.md +184 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-debug/log-analysis.md +26 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-debug/root-cause.md +35 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-debug/rubber-duck.md +27 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-debug/session-troubleshooting.md +471 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-document/strategy-for-applications.md +128 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-enforcement/enforcement.md +163 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-explain/strategy.md +113 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-migration/dependency-upgrade.md +30 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-migration/migration.md +30 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-migration/strategy.md +119 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-migration/upgrade.md +30 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-orchestrator/devops.md +52 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-orchestrator/meta.md +34 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-orchestrator/pr-description.md +210 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-planning/planning.md +292 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-refactor/refactor.md +31 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-refactor/strategy.md +108 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-review/accessibility.md +82 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-review/code.md +308 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-review/performance.md +77 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-security/review.md +142 -0
- promptosaurus-0.0.0.dev145109/.kilocode/rules-test/strategy.md +107 -0
- promptosaurus-0.0.0.dev145109/.kilocodemodes +308 -0
- promptosaurus-0.0.0.dev145109/.kiloignore +34 -0
- promptosaurus-0.0.0.dev145109/.pre-commit-config.yaml +30 -0
- promptosaurus-0.0.0.dev145109/.promptosaurus/.promptosaurus.yaml +21 -0
- promptosaurus-0.0.0.dev145109/AGENTS.md +48 -0
- promptosaurus-0.0.0.dev145109/CONTRIBUTING.md +108 -0
- promptosaurus-0.0.0.dev145109/PKG-INFO +154 -0
- promptosaurus-0.0.0.dev145109/README.md +123 -0
- promptosaurus-0.0.0.dev145109/docs/architecture.md +730 -0
- promptosaurus-0.0.0.dev145109/docs/ard/builder-architecture-refactoring.md +101 -0
- promptosaurus-0.0.0.dev145109/docs/ard/cli-switch-update-commands.md +515 -0
- promptosaurus-0.0.0.dev145109/docs/ard/feature-enhancements-batch-1.md +427 -0
- promptosaurus-0.0.0.dev145109/docs/ard/session-context-persistence.md +1069 -0
- promptosaurus-0.0.0.dev145109/docs/prd/builder-architecture-refactoring.md +54 -0
- promptosaurus-0.0.0.dev145109/docs/prd/cli-switch-update-commands.md +275 -0
- promptosaurus-0.0.0.dev145109/docs/prd/feature-enhancements-batch-1.md +226 -0
- promptosaurus-0.0.0.dev145109/docs/prd/session-context-persistence.md +423 -0
- promptosaurus-0.0.0.dev145109/plans/builder-refactoring-plan.md +86 -0
- promptosaurus-0.0.0.dev145109/plans/kilo-builder-cli-ide-targets.md +108 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/PROMPTOSAURUS.md +281 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/__init__.py +10 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/artifacts.py +197 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/BUILDERS.md +257 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/__init__.py +15 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/builder.py +109 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/cline.py +113 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/config.py +226 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/copilot.py +226 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/cursor.py +158 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/ignore_generator.py +215 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/AGENTS_KILO_CLI.md +59 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/AGENTS_KILO_IDE.md +48 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/KILO.md +264 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/__init__.py +25 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/kilo_cli.py +199 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/kilo_code_builder.py +486 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/kilo_ide.py +259 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/kilo_language_file_map.yaml +34 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/kilo/kilo_modes.yaml +308 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/builders/utils.py +113 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/cli.py +489 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/cli_utils.py +104 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/config_handler.py +208 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/config_options.py +250 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/architect/subagents/architect-data-model.md +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/architect/subagents/architect-scaffold.md +22 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/architect/subagents/architect-task-breakdown.md +33 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/ask/subagents/ask-decision-log.md +57 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/ask/subagents/ask-docs.md +55 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/ask/subagents/ask-testing.md +111 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/code/subagents/code-boilerplate.md +25 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/code/subagents/code-dependency-upgrade.md +30 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/code/subagents/code-feature.md +31 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/code/subagents/code-house-style.md +27 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/code/subagents/code-migration.md +30 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/code/subagents/code-refactor.md +31 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/compliance/subagents/compliance-review.md +184 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-c.md +83 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-clojure.md +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-cpp.md +86 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-csharp.md +90 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-dart.md +49 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-elixir.md +99 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-elm.md +81 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-fsharp.md +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-golang.md +125 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-groovy.md +34 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-haskell.md +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-html.md +76 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-java.md +113 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-javascript.md +87 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-julia.md +36 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-kotlin.md +87 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-lua.md +36 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-objc.md +51 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-php.md +76 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-python.md +416 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-r.md +82 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-ruby.md +77 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-rust.md +110 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-scala.md +89 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-shell.md +42 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-sql.md +131 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-swift.md +83 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-terraform.md +113 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions-typescript.md +127 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-conventions.md +150 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-decision-log-template.md +387 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-session-troubleshooting.md +471 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-session.md +429 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/core/core-system.md +248 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/debug/subagents/debug-log-analysis.md +26 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/debug/subagents/debug-root-cause.md +35 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/debug/subagents/debug-rubber-duck.md +27 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/document/subagents/document-strategy-for-applications.md +128 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/enforcement/enforcement.md +163 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/explain/subagents/explain-strategy.md +113 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/migration/subagents/migration-strategy.md +119 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/orchestrator/subagents/orchestrator-devops.md +52 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/orchestrator/subagents/orchestrator-meta.md +34 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/orchestrator/subagents/orchestrator-pr-description.md +210 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/project_planning/planning.md +292 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/refactor/subagents/refactor-strategy.md +108 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/review/subagents/review-accessibility.md +82 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/review/subagents/review-code.md +308 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/review/subagents/review-performance.md +77 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/security/subagents/security-review.md +142 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/prompts/agents/test/subagents/test-strategy.md +107 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/QUESTIONS.md +236 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/base/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/base/constants.py +7 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/base/folder_mapping_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/base/question.py +224 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/base/repository_type_question.py +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/clojure/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/clojure/clojure_build_tool_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/clojure/clojure_version_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/csharp/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/csharp/csharp_framework_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/csharp/csharp_test_framework_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/csharp/csharp_version_question.py +40 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/dart/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/dart/dart_test_framework_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/dart/dart_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/elixir/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/elixir/elixir_test_framework_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/elixir/elixir_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/elm/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/elm/elm_test_framework_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/elm/elm_version_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/fsharp/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/fsharp/fsharp_framework_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/fsharp/fsharp_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/go/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/go/go_formatter_question.py +43 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/go/go_linter_question.py +43 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/go/go_test_framework_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/go/go_version_question.py +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/groovy/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/groovy/groovy_version_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/handlers/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/handlers/handle_single_language_questions.py +90 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/handlers/language_question_handler.py +25 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/haskell/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/haskell/haskell_build_tool_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/haskell/haskell_compiler_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/html/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/html/html_formatter_question.py +40 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/html/html_linter_question.py +40 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/html/html_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/java/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/java/java_build_tool_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/java/java_linter_question.py +43 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/java/java_test_framework_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/java/java_version_question.py +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/julia/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/julia/julia_package_manager_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/julia/julia_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/kotlin/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/kotlin/kotlin_build_tool_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/kotlin/kotlin_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/language.py +176 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/lua/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/lua/lua_test_framework_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/lua/lua_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/php/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/php/php_package_manager_question.py +36 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/php/php_test_framework_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/php/php_version_question.py +40 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_abstract_class_style_question.py +36 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_coverage_targets_question.py +58 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_coverage_tool_question.py +36 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_formatter_question.py +43 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_linter_question.py +50 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_mocking_library_question.py +56 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_mutation_tool_question.py +43 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_package_manager_question.py +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_runtime_question.py +42 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_test_framework_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/python/python_test_runner_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/question_pipelines.yaml +131 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/r/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/r/r_package_manager_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/r/r_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/ruby/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/ruby/ruby_linter_question.py +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/ruby/ruby_package_manager_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/ruby/ruby_test_framework_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/ruby/ruby_version_question.py +40 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/rust/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/rust/rust_formatter_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/rust/rust_linter_question.py +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/rust/rust_package_manager_question.py +38 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/rust/rust_test_framework_question.py +36 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/rust/rust_version_question.py +41 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/scala/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/scala/scala_build_tool_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/scala/scala_test_framework_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/scala/scala_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/shell/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/shell/shell_linter_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/shell/shell_type_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/sql/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/sql/sql_dialect_question.py +40 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/swift/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/swift/swift_package_manager_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/swift/swift_test_framework_question.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/swift/swift_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/terraform/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/terraform/terraform_version_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/typescript/__init__.py +0 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/typescript/typescript_framework_question.py +43 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/typescript/typescript_package_manager_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/typescript/typescript_test_framework_question.py +39 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/questions/typescript/typescript_version_question.py +40 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/registry.py +671 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/UI.md +263 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/__init__.py +60 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/_selector.py +162 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/command.py +78 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/confirm.py +56 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/explain.py +16 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/navigate.py +21 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/noop.py +13 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/quit.py +13 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/result.py +22 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/commands/select.py +23 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/domain/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/domain/context.py +188 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/domain/events.py +85 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/domain/input_provider.py +72 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/domain/renderer.py +55 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/exceptions.py +7 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/input/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/input/fallback.py +45 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/input/unix.py +66 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/input/windows.py +54 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/pipeline/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/pipeline/command_factory.py +31 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/pipeline/orchestrator.py +184 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/pipeline/render_stage.py +52 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/pipeline/state_update_stage.py +13 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/render/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/render/columns.py +34 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/render/explain.py +27 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/render/renderer.py +11 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/render/vertical.py +37 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/state/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/state/multi_selection_state.py +147 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/state/mutual_exclusion_multi_selection_state.py +89 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/state/selection_state.py +103 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/state/single_selection_state.py +135 -0
- promptosaurus-0.0.0.dev145109/promptosaurus/ui/ui_factory.py +56 -0
- promptosaurus-0.0.0.dev145109/pyproject.toml +111 -0
- promptosaurus-0.0.0.dev145109/tests/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/conftest.py +19 -0
- promptosaurus-0.0.0.dev145109/tests/integration/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/integration/test_integration.py +11 -0
- promptosaurus-0.0.0.dev145109/tests/security/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/security/test_security.py +15 -0
- promptosaurus-0.0.0.dev145109/tests/slow/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/slow/test_slow.py +14 -0
- promptosaurus-0.0.0.dev145109/tests/unit/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/unit/builders/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/unit/builders/test_builder.py +40 -0
- promptosaurus-0.0.0.dev145109/tests/unit/builders/test_cline.py +48 -0
- promptosaurus-0.0.0.dev145109/tests/unit/builders/test_copilot.py +49 -0
- promptosaurus-0.0.0.dev145109/tests/unit/builders/test_cursor.py +49 -0
- promptosaurus-0.0.0.dev145109/tests/unit/builders/test_kilo.py +288 -0
- promptosaurus-0.0.0.dev145109/tests/unit/builders/test_kilo_ide.py +143 -0
- promptosaurus-0.0.0.dev145109/tests/unit/questions/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/unit/questions/python/__init__.py +1 -0
- promptosaurus-0.0.0.dev145109/tests/unit/questions/python/test_python_questions.py +248 -0
- promptosaurus-0.0.0.dev145109/tests/unit/questions/test_base.py +127 -0
- promptosaurus-0.0.0.dev145109/tests/unit/questions/test_handlers.py +75 -0
- promptosaurus-0.0.0.dev145109/tests/unit/questions/test_language.py +51 -0
- promptosaurus-0.0.0.dev145109/tests/unit/questions/test_typescript.py +52 -0
- promptosaurus-0.0.0.dev145109/tests/unit/test_config.py +156 -0
- promptosaurus-0.0.0.dev145109/tests/unit/test_questions.py +449 -0
- promptosaurus-0.0.0.dev145109/tests/unit/test_registry.py +106 -0
- promptosaurus-0.0.0.dev145109/tests/unit/ui/test_factory.py +105 -0
- promptosaurus-0.0.0.dev145109/tests/unit/ui/test_renderers.py +134 -0
- promptosaurus-0.0.0.dev145109/tests/unit/ui/test_state.py +145 -0
- promptosaurus-0.0.0.dev145109/uv.lock +760 -0
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# EditorConfig is awesome: https://EditorConfig.org
|
|
2
|
+
|
|
3
|
+
root = true
|
|
4
|
+
|
|
5
|
+
[*]
|
|
6
|
+
charset = utf-8
|
|
7
|
+
end_of_line = lf
|
|
8
|
+
insert_final_newline = true
|
|
9
|
+
trim_trailing_whitespace = true
|
|
10
|
+
|
|
11
|
+
[*.py]
|
|
12
|
+
indent_style = space
|
|
13
|
+
indent_size = 4
|
|
14
|
+
max_line_length = 100
|
|
15
|
+
|
|
16
|
+
[*.{yaml,yml,toml}]
|
|
17
|
+
indent_style = space
|
|
18
|
+
indent_size = 2
|
|
19
|
+
|
|
20
|
+
[*.{md,json}]
|
|
21
|
+
indent_style = space
|
|
22
|
+
indent_size = 2
|
|
23
|
+
trim_trailing_whitespace = false
|
|
24
|
+
|
|
25
|
+
[*.sh]
|
|
26
|
+
indent_style = space
|
|
27
|
+
indent_size = 4
|
|
28
|
+
|
|
29
|
+
[Makefile]
|
|
30
|
+
indent_style = tab
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Derived Version Calculator for Trunk-Based Development.
|
|
4
|
+
|
|
5
|
+
Version Schema: MAJOR.MINOR.PATCH[-RUN]
|
|
6
|
+
|
|
7
|
+
- MAJOR: From CI/CD environment (MAJOR_VERSION)
|
|
8
|
+
- MINOR: Latest MINOR on PyPI for that MAJOR + 1
|
|
9
|
+
- PATCH: PR number (or timestamp hash for non-PR pushes)
|
|
10
|
+
- -RUN: GitHub run number (only for TestPyPI preview builds)
|
|
11
|
+
|
|
12
|
+
PyPI is queried to determine the baseline version. If PyPI query fails,
|
|
13
|
+
the build fails (strict mode for first-release setup).
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import os
|
|
18
|
+
import re
|
|
19
|
+
import sys
|
|
20
|
+
import urllib.request
|
|
21
|
+
from datetime import datetime
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class VersionCalculator:
|
|
25
|
+
"""Calculates version based on PyPI release history."""
|
|
26
|
+
|
|
27
|
+
def __init__(self, package_name: str = "promptosaurus"):
|
|
28
|
+
self.package_name = package_name
|
|
29
|
+
|
|
30
|
+
def get_pypi_version(self) -> tuple[int, int] | None:
|
|
31
|
+
"""
|
|
32
|
+
Query PyPI for the latest published version.
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
Tuple of (major, minor) or None if not found
|
|
36
|
+
"""
|
|
37
|
+
try:
|
|
38
|
+
# Strip package name to handle any whitespace issues
|
|
39
|
+
package = self.package_name.strip()
|
|
40
|
+
url = f"https://pypi.org/pypi/{package}/json"
|
|
41
|
+
print(f"Querying PyPI: {url}")
|
|
42
|
+
with urllib.request.urlopen(url, timeout=10) as response:
|
|
43
|
+
data = json.loads(response.read())
|
|
44
|
+
version = data["info"]["version"]
|
|
45
|
+
|
|
46
|
+
# Parse version (handle formats like 1.2.3, 1.2.3-beta, etc.)
|
|
47
|
+
# Strip any pre-release/local suffixes
|
|
48
|
+
# PEP 440: X.Y.Y.devN, X.Y.YaN, X.Y.YbN, X.Y.YrcN, X.Y.Y, X.Y.Y.postN, X.Y.Y+local
|
|
49
|
+
# Only split on . and + to preserve the base version
|
|
50
|
+
version = re.split(r"[.+]", version)[0]
|
|
51
|
+
parts = version.split(".")
|
|
52
|
+
|
|
53
|
+
major = int(parts[0]) if len(parts) > 0 else 0
|
|
54
|
+
minor = int(parts[1]) if len(parts) > 1 else 0
|
|
55
|
+
|
|
56
|
+
return (major, minor)
|
|
57
|
+
except Exception as e:
|
|
58
|
+
print(f"PyPI query failed: {e}", file=sys.stderr)
|
|
59
|
+
return None
|
|
60
|
+
|
|
61
|
+
def calculate_version(
|
|
62
|
+
self,
|
|
63
|
+
major: int,
|
|
64
|
+
pr_number: str | None,
|
|
65
|
+
run_number: str | None,
|
|
66
|
+
is_testpypi: bool,
|
|
67
|
+
is_pr: bool,
|
|
68
|
+
) -> str:
|
|
69
|
+
"""
|
|
70
|
+
Calculate version based on PyPI history and PR context.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
major: MAJOR version from environment
|
|
74
|
+
pr_number: PR number from GitHub event
|
|
75
|
+
run_number: GitHub run number
|
|
76
|
+
is_testpypi: Whether this is a TestPyPI build
|
|
77
|
+
is_pr: Whether this is a PR event
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
Version string
|
|
81
|
+
"""
|
|
82
|
+
# Query PyPI for latest version
|
|
83
|
+
pypi_version = self.get_pypi_version()
|
|
84
|
+
|
|
85
|
+
if pypi_version is None:
|
|
86
|
+
# First release: use MAJOR.0.PR{-RUN}
|
|
87
|
+
# No previous version exists
|
|
88
|
+
new_minor = 0
|
|
89
|
+
else:
|
|
90
|
+
pypi_major, pypi_minor = pypi_version
|
|
91
|
+
|
|
92
|
+
# Calculate new MINOR
|
|
93
|
+
# If MAJOR matches: increment MINOR from latest
|
|
94
|
+
# If MAJOR different: start fresh at MINOR 1
|
|
95
|
+
if pypi_major == major:
|
|
96
|
+
new_minor = pypi_minor + 1
|
|
97
|
+
else:
|
|
98
|
+
new_minor = 1
|
|
99
|
+
|
|
100
|
+
# PATCH is PR number for PRs, or timestamp-based for non-PR pushes
|
|
101
|
+
if pr_number is None:
|
|
102
|
+
if is_pr:
|
|
103
|
+
print("ERROR: PR number is required for PR builds")
|
|
104
|
+
sys.exit(1)
|
|
105
|
+
# For non-PR pushes (feature branches), use timestamp-based dev version
|
|
106
|
+
# Format: 0.0.0.devHHMMSS where HHMMSS is hour/minute/second
|
|
107
|
+
now = datetime.now()
|
|
108
|
+
dev_suffix = now.strftime("%H%M%S")
|
|
109
|
+
version = f"{major}.{new_minor}.0.dev{dev_suffix}"
|
|
110
|
+
print(f"Non-PR push: using dev version {version}")
|
|
111
|
+
return version
|
|
112
|
+
|
|
113
|
+
# Build version: MAJOR.MINOR.PATCH[-RUN]
|
|
114
|
+
version = f"{major}.{new_minor}.{pr_number}"
|
|
115
|
+
|
|
116
|
+
# Append run number only for TestPyPI preview builds
|
|
117
|
+
# Use .dev for development version (PEP 440 compliant for TestPyPI)
|
|
118
|
+
if is_testpypi and run_number:
|
|
119
|
+
version = f"{version}.dev{run_number}"
|
|
120
|
+
|
|
121
|
+
return version
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def main():
|
|
125
|
+
"""Main entry point for CI/CD integration."""
|
|
126
|
+
# Get package name from environment or use default (strip whitespace)
|
|
127
|
+
package_name = os.environ.get("PACKAGE_NAME", "promptosaurus").strip()
|
|
128
|
+
|
|
129
|
+
# Get MAJOR version from environment
|
|
130
|
+
env_major = os.environ.get("MAJOR_VERSION", "0").strip()
|
|
131
|
+
try:
|
|
132
|
+
major = int(env_major)
|
|
133
|
+
except ValueError:
|
|
134
|
+
print(f"ERROR: Invalid MAJOR_VERSION '{env_major}', defaulting to 0")
|
|
135
|
+
major = 0
|
|
136
|
+
|
|
137
|
+
# Get GitHub context
|
|
138
|
+
event_name = os.environ.get("GITHUB_EVENT_NAME", "push").strip()
|
|
139
|
+
action = os.environ.get("GITHUB_ACTION", "").strip()
|
|
140
|
+
base_ref = os.environ.get("GITHUB_BASE_REF", "").strip()
|
|
141
|
+
run_number = os.environ.get("GITHUB_RUN_NUMBER", "").strip()
|
|
142
|
+
|
|
143
|
+
# Determine if this is a PR
|
|
144
|
+
is_pr = event_name == "pull_request"
|
|
145
|
+
is_pr_to_main = base_ref == "refs/heads/main" or base_ref == "main"
|
|
146
|
+
|
|
147
|
+
# Extract PR number from event
|
|
148
|
+
pr_number = None
|
|
149
|
+
if is_pr:
|
|
150
|
+
# Try to get PR number from GITHUB_REF (format: refs/pull/28/merge)
|
|
151
|
+
ref = os.environ.get("GITHUB_REF", "").strip()
|
|
152
|
+
match = re.search(r"refs/pull/(\d+)/", ref)
|
|
153
|
+
if match:
|
|
154
|
+
pr_number = match.group(1)
|
|
155
|
+
|
|
156
|
+
# Determine publishing targets
|
|
157
|
+
is_testpypi = is_pr and is_pr_to_main and action != "closed"
|
|
158
|
+
is_pypi = is_pr and action == "closed" and is_pr_to_main
|
|
159
|
+
|
|
160
|
+
# Calculate version
|
|
161
|
+
calculator = VersionCalculator(package_name)
|
|
162
|
+
version = calculator.calculate_version(
|
|
163
|
+
major=major,
|
|
164
|
+
pr_number=pr_number,
|
|
165
|
+
run_number=run_number,
|
|
166
|
+
is_testpypi=is_testpypi,
|
|
167
|
+
is_pr=is_pr,
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
# Output for GitHub Actions
|
|
171
|
+
if "GITHUB_OUTPUT" in os.environ:
|
|
172
|
+
with open(os.environ["GITHUB_OUTPUT"], "a") as f:
|
|
173
|
+
f.write(f"version={version}\n")
|
|
174
|
+
f.write(f"should_publish_testpypi={str(is_testpypi).lower()}\n")
|
|
175
|
+
f.write(f"should_publish_pypi={str(is_pypi).lower()}\n")
|
|
176
|
+
|
|
177
|
+
print(f"Version: {version}")
|
|
178
|
+
print(f"Publish TestPyPI: {is_testpypi}")
|
|
179
|
+
print(f"Publish PyPI: {is_pypi}")
|
|
180
|
+
print(f"PR Number: {pr_number}")
|
|
181
|
+
print(f"Major: {major}")
|
|
182
|
+
print(f"Is PR: {is_pr}")
|
|
183
|
+
|
|
184
|
+
return version
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
if __name__ == "__main__":
|
|
188
|
+
main()
|