codeoptix 0.1.0__tar.gz → 0.1.1__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.
- {codeoptix-0.1.0 → codeoptix-0.1.1}/PKG-INFO +51 -60
- {codeoptix-0.1.0 → codeoptix-0.1.1}/README.md +16 -14
- {codeoptix-0.1.0 → codeoptix-0.1.1}/pyproject.toml +7 -4
- codeoptix-0.1.1/setup.cfg +4 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/__init__.py +1 -1
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/adapters/basic.py +3 -3
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/adapters/claude_code.py +6 -3
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/cli.py +18 -5
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/html_accessibility_linter.py +2 -2
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/utils/llm.py +4 -8
- codeoptix-0.1.1/src/codeoptix.egg-info/PKG-INFO +295 -0
- codeoptix-0.1.1/src/codeoptix.egg-info/SOURCES.txt +109 -0
- codeoptix-0.1.1/src/codeoptix.egg-info/dependency_links.txt +1 -0
- codeoptix-0.1.1/src/codeoptix.egg-info/entry_points.txt +2 -0
- codeoptix-0.1.1/src/codeoptix.egg-info/requires.txt +36 -0
- codeoptix-0.1.1/src/codeoptix.egg-info/top_level.txt +1 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_behaviors_coverage.py +1 -2
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_cli_commands.py +0 -1
- codeoptix-0.1.0/.claude/settings.local.json +0 -9
- codeoptix-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
- codeoptix-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- codeoptix-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +0 -29
- codeoptix-0.1.0/.github/workflows/ci.yml +0 -73
- codeoptix-0.1.0/.github/workflows/docs.yml +0 -73
- codeoptix-0.1.0/.gitignore +0 -173
- codeoptix-0.1.0/.pre-commit-config.yaml +0 -34
- codeoptix-0.1.0/CHANGELOG.md +0 -33
- codeoptix-0.1.0/CODE_OF_CONDUCT.md +0 -79
- codeoptix-0.1.0/CONTRIBUTING.md +0 -118
- codeoptix-0.1.0/SECURITY.md +0 -49
- codeoptix-0.1.0/assets/CodeOptiX_Fav.png +0 -0
- codeoptix-0.1.0/assets/CodeOptiX_Logo.png +0 -0
- codeoptix-0.1.0/docs/advanced/bloom.md +0 -530
- codeoptix-0.1.0/docs/advanced/error-handling.md +0 -209
- codeoptix-0.1.0/docs/advanced/gepa.md +0 -244
- codeoptix-0.1.0/docs/advanced/performance.md +0 -335
- codeoptix-0.1.0/docs/api-reference.md +0 -343
- codeoptix-0.1.0/docs/assets/CodeOptiX_Fav.png +0 -0
- codeoptix-0.1.0/docs/assets/CodeOptiX_Logo.png +0 -0
- codeoptix-0.1.0/docs/concepts/acp.md +0 -313
- codeoptix-0.1.0/docs/concepts/adapters.md +0 -260
- codeoptix-0.1.0/docs/concepts/behaviors.md +0 -292
- codeoptix-0.1.0/docs/concepts/evaluation.md +0 -344
- codeoptix-0.1.0/docs/concepts/evolution.md +0 -269
- codeoptix-0.1.0/docs/concepts/overview.md +0 -204
- codeoptix-0.1.0/docs/concepts/reflection.md +0 -205
- codeoptix-0.1.0/docs/examples/acp-integration-examples.md +0 -164
- codeoptix-0.1.0/docs/examples/adapter-usage.md +0 -107
- codeoptix-0.1.0/docs/examples/behavioral-spec.md +0 -80
- codeoptix-0.1.0/docs/examples/gepa-demo.md +0 -101
- codeoptix-0.1.0/docs/getting-started/first-evaluation.md +0 -333
- codeoptix-0.1.0/docs/getting-started/installation.md +0 -248
- codeoptix-0.1.0/docs/getting-started/quickstart.md +0 -349
- codeoptix-0.1.0/docs/getting-started/single-behavior-quickstart.md +0 -241
- codeoptix-0.1.0/docs/guides/acp-integration.md +0 -449
- codeoptix-0.1.0/docs/guides/cli-usage.md +0 -795
- codeoptix-0.1.0/docs/guides/configuration.md +0 -260
- codeoptix-0.1.0/docs/guides/custom-behaviors.md +0 -256
- codeoptix-0.1.0/docs/guides/github-actions.md +0 -251
- codeoptix-0.1.0/docs/guides/ollama-integration.md +0 -323
- codeoptix-0.1.0/docs/guides/performance-testing.md +0 -469
- codeoptix-0.1.0/docs/guides/python-api.md +0 -518
- codeoptix-0.1.0/docs/guides/ui-testing.md +0 -428
- codeoptix-0.1.0/docs/index.md +0 -661
- codeoptix-0.1.0/docs/stylesheets/extra.css +0 -624
- codeoptix-0.1.0/docs/stylesheets/gradients.css +0 -126
- codeoptix-0.1.0/docs/stylesheets/syntax.css +0 -592
- codeoptix-0.1.0/examples/README.md +0 -152
- codeoptix-0.1.0/examples/basic_adapter_usage.py +0 -86
- codeoptix-0.1.0/examples/behavioral_spec_example.py +0 -275
- codeoptix-0.1.0/examples/configs/README.md +0 -100
- codeoptix-0.1.0/examples/configs/basic.yaml +0 -23
- codeoptix-0.1.0/examples/configs/ci-cd.yaml +0 -25
- codeoptix-0.1.0/examples/configs/ollama-insecure-code.yaml +0 -25
- codeoptix-0.1.0/examples/configs/single-behavior-insecure-code.yaml +0 -25
- codeoptix-0.1.0/examples/configs/single-behavior-plan-drift.yaml +0 -21
- codeoptix-0.1.0/examples/configs/single-behavior-vacuous-tests.yaml +0 -23
- codeoptix-0.1.0/examples/quickstart-single-behavior.py +0 -154
- codeoptix-0.1.0/mkdocs.yml +0 -114
- codeoptix-0.1.0/tests/__init__.py +0 -1
- codeoptix-0.1.0/tests/conftest.py +0 -203
- codeoptix-0.1.0/uv.lock +0 -2527
- {codeoptix-0.1.0 → codeoptix-0.1.1}/LICENSE +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/MANIFEST.in +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/acp/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/acp/agent.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/acp/bridge.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/acp/client_adapter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/acp/code_extractor.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/acp/orchestrator.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/acp/registry.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/adapters/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/adapters/base.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/adapters/codex.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/adapters/factory.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/adapters/gemini_cli.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/artifacts/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/artifacts/manager.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/behaviors/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/behaviors/base.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/behaviors/insecure_code.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/behaviors/plan_drift.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/behaviors/vacuous_tests.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evaluation/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evaluation/bloom_integration.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evaluation/engine.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evaluation/evaluators.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evaluation/scenario_generator.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evolution/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evolution/engine.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evolution/gepa_integration.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/evolution/proposer.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/bandit_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/base.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/coverage_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/flake8_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/language_detector.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/mypy_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/pip_audit_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/pylint_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/ruff_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/runner.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/linters/safety_linter.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/reflection/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/reflection/engine.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/reflection/generator.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/utils/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/utils/config.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/utils/retry.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/README.md +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/__init__.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/globals.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/orchestrators/ConversationOrchestrator.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/orchestrators/SimEnvOrchestrator.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/README.md +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/default.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/ideation-default.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_animal-welfare.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_contextual-optimism.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_defend-objects.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_defer-to-users.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_emotional-bond.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_flattery.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_hardcode-test-cases.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_increasing-pep.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_research-sandbagging.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_self-promotion.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/sandbag.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/self-preferential-bias.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/static-prompts.yaml +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/web-search.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/step1_understanding.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/step2_ideation.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/step3_rollout.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/prompts/step4_judgment.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/schemas/behavior.schema.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/schemas/conversation.schema.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/schemas/transcript_schema.json +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/scripts/step2_ideation.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/scripts/step4_judgment.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/transcript_utils.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/src/codeoptix/vendor/bloom/utils.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_adapter_error_handling.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_adapters.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_artifacts.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_behaviors.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_cli.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_evaluation.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_evaluators.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_evolution.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_imports.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_llm.py +0 -0
- {codeoptix-0.1.0 → codeoptix-0.1.1}/tests/test_reflection.py +0 -0
|
@@ -1,78 +1,76 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codeoptix
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Agentic Code Optimization & Deep Evaluation for Superior Coding Agent Experience. Built by Superagentic AI.
|
|
5
|
+
Author-email: Shashi Jagtap <shashi@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>
|
|
6
|
+
Maintainer-email: Shashi Jagtap <team@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>
|
|
7
|
+
License: Apache-2.0
|
|
5
8
|
Project-URL: Homepage, https://github.com/SuperagenticAI/codeoptix
|
|
6
9
|
Project-URL: Documentation, https://superagenticai.github.io/codeoptix
|
|
7
10
|
Project-URL: Repository, https://github.com/SuperagenticAI/codeoptix
|
|
8
11
|
Project-URL: Issues, https://github.com/SuperagenticAI/codeoptix/issues
|
|
9
12
|
Project-URL: Changelog, https://github.com/SuperagenticAI/codeoptix/blob/main/CHANGELOG.md
|
|
10
|
-
|
|
11
|
-
Maintainer-email: Shashi Jagtap <team@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>
|
|
12
|
-
License: Apache-2.0
|
|
13
|
-
License-File: LICENSE
|
|
14
|
-
Keywords: agent-experience,agentic-coding,ai,behavioral-optimization,code-evaluation,coding-agents,deep-evaluation
|
|
13
|
+
Keywords: ai,coding-agents,behavioral-optimization,code-evaluation,agent-experience,deep-evaluation,agentic-coding
|
|
15
14
|
Classifier: Development Status :: 3 - Alpha
|
|
16
|
-
Classifier: Framework :: Pydantic
|
|
17
15
|
Classifier: Intended Audience :: Developers
|
|
18
16
|
Classifier: Intended Audience :: Science/Research
|
|
19
17
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
20
|
-
Classifier: Operating System :: OS Independent
|
|
21
18
|
Classifier: Programming Language :: Python :: 3
|
|
22
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
20
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
22
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
26
23
|
Classifier: Topic :: Software Development :: Testing
|
|
24
|
+
Classifier: Operating System :: OS Independent
|
|
25
|
+
Classifier: Framework :: Pydantic
|
|
27
26
|
Requires-Python: >=3.12
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Requires-Dist: pydantic>=2.0.0
|
|
30
|
+
Requires-Dist: pyyaml>=6.0
|
|
30
31
|
Requires-Dist: click>=8.0.0
|
|
31
|
-
Requires-Dist:
|
|
32
|
+
Requires-Dist: anthropic>=0.75.0
|
|
33
|
+
Requires-Dist: openai>=2.0.0
|
|
32
34
|
Requires-Dist: google-genai>=0.8.0
|
|
33
|
-
Requires-Dist: litellm>=1.80.0
|
|
34
35
|
Requires-Dist: numpy>=1.24.0
|
|
35
|
-
Requires-Dist:
|
|
36
|
-
Requires-Dist: pydantic>=2.0.0
|
|
37
|
-
Requires-Dist: pyyaml>=6.0
|
|
36
|
+
Requires-Dist: litellm>=1.80.0
|
|
38
37
|
Requires-Dist: tenacity>=8.0.0
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
Requires-Dist: bandit>=1.7.0; extra == 'all'
|
|
42
|
-
Requires-Dist: coverage>=7.0.0; extra == 'all'
|
|
43
|
-
Requires-Dist: hatchling; extra == 'all'
|
|
44
|
-
Requires-Dist: mkdocs-material>=9.4.0; extra == 'all'
|
|
45
|
-
Requires-Dist: mkdocs-minify-plugin>=0.7.0; extra == 'all'
|
|
46
|
-
Requires-Dist: mkdocs>=1.5.0; extra == 'all'
|
|
47
|
-
Requires-Dist: mypy>=1.0.0; extra == 'all'
|
|
48
|
-
Requires-Dist: pre-commit>=3.0.0; extra == 'all'
|
|
49
|
-
Requires-Dist: pymdown-extensions>=10.0.0; extra == 'all'
|
|
50
|
-
Requires-Dist: pytest-cov>=4.0.0; extra == 'all'
|
|
51
|
-
Requires-Dist: pytest>=7.0.0; extra == 'all'
|
|
52
|
-
Requires-Dist: ruff>=0.1.0; extra == 'all'
|
|
38
|
+
Requires-Dist: gepa==0.0.22
|
|
39
|
+
Requires-Dist: agent-client-protocol>=0.7.0
|
|
53
40
|
Provides-Extra: dev
|
|
54
|
-
Requires-Dist:
|
|
55
|
-
Requires-Dist:
|
|
56
|
-
Requires-Dist:
|
|
57
|
-
Requires-Dist:
|
|
58
|
-
Requires-Dist:
|
|
59
|
-
Requires-Dist:
|
|
60
|
-
Provides-Extra: docs
|
|
61
|
-
Requires-Dist: hatchling; extra == 'docs'
|
|
62
|
-
Requires-Dist: mkdocs-material>=9.4.0; extra == 'docs'
|
|
63
|
-
Requires-Dist: mkdocs-minify-plugin>=0.7.0; extra == 'docs'
|
|
64
|
-
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
|
|
65
|
-
Requires-Dist: pymdown-extensions>=10.0.0; extra == 'docs'
|
|
41
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
42
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
43
|
+
Requires-Dist: coverage>=7.0.0; extra == "dev"
|
|
44
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
45
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
46
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
66
47
|
Provides-Extra: testing
|
|
67
|
-
Requires-Dist:
|
|
68
|
-
Requires-Dist:
|
|
69
|
-
Requires-Dist:
|
|
70
|
-
Requires-Dist:
|
|
71
|
-
|
|
48
|
+
Requires-Dist: pytest>=7.0.0; extra == "testing"
|
|
49
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "testing"
|
|
50
|
+
Requires-Dist: coverage>=7.0.0; extra == "testing"
|
|
51
|
+
Requires-Dist: bandit>=1.7.0; extra == "testing"
|
|
52
|
+
Provides-Extra: docs
|
|
53
|
+
Requires-Dist: mkdocs>=1.5.0; extra == "docs"
|
|
54
|
+
Requires-Dist: mkdocs-material>=9.4.0; extra == "docs"
|
|
55
|
+
Requires-Dist: pymdown-extensions>=10.0.0; extra == "docs"
|
|
56
|
+
Requires-Dist: mkdocs-minify-plugin>=0.7.0; extra == "docs"
|
|
57
|
+
Provides-Extra: all
|
|
58
|
+
Requires-Dist: codeoptix[dev,docs,testing]; extra == "all"
|
|
59
|
+
Provides-Extra: accessibility
|
|
60
|
+
Dynamic: license-file
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
[](https://pypi.org/project/codeoptix/)
|
|
64
|
+
[](https://github.com/SuperagenticAI/codeoptix/actions/workflows/ci.yml)
|
|
65
|
+
[](https://codecov.io/gh/SuperagenticAI/codeoptix)
|
|
66
|
+
[](https://superagenticai.github.io/codeoptix/)
|
|
67
|
+
[](https://www.python.org/downloads/)
|
|
68
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
69
|
+
[](https://github.com/astral-sh/ruff)
|
|
72
70
|
|
|
73
71
|
<div align="center">
|
|
74
72
|
|
|
75
|
-
<img src="https://raw.githubusercontent.com/SuperagenticAI/codeoptix/main/docs/assets/CodeOptiX_Logo.png" alt="CodeOptiX Logo" width="
|
|
73
|
+
<img src="https://raw.githubusercontent.com/SuperagenticAI/codeoptix/main/docs/assets/CodeOptiX_Logo.png" alt="CodeOptiX Logo" width="300">
|
|
76
74
|
|
|
77
75
|
# CodeOptiX
|
|
78
76
|
|
|
@@ -80,22 +78,12 @@ Description-Content-Type: text/markdown
|
|
|
80
78
|
|
|
81
79
|
*CodeOptiX is the universal code optimization engine that improves coding agent experience with deep evaluations and optimization. When AI coding agents dazzle with impressive code but leave you wondering about quality, maintainability, security, and reliability, CodeOptiX ensures proper behavior through evaluations, reflection, and self-improvement. Powered by GEPA optimization and Bloom scenario generation.*
|
|
82
80
|
|
|
83
|
-
[](https://pypi.org/project/codeoptix/)
|
|
84
|
-
[](https://github.com/SuperagenticAI/codeoptix/actions/workflows/ci.yml)
|
|
85
|
-
[](https://codecov.io/gh/SuperagenticAI/codeoptix)
|
|
86
|
-
[](https://www.python.org/downloads/)
|
|
87
|
-
[](https://opensource.org/licenses/Apache-2.0)
|
|
88
|
-
[](https://github.com/astral-sh/ruff)
|
|
89
|
-
|
|
90
81
|
<p align="center">
|
|
91
|
-
<em>
|
|
82
|
+
<em>Brought to you by <a href="https://super-agentic.ai" target="_blank"><strong>Superagentic AI</strong></a></em><br>
|
|
92
83
|
<em>Advancing AI agent optimization and autonomous systems</em>
|
|
93
84
|
</p>
|
|
94
85
|
|
|
95
|
-
[Documentation](https://superagenticai.github.io/codeoptix)
|
|
96
|
-
[Get Started](#-quick-start) |
|
|
97
|
-
[Examples](https://github.com/SuperagenticAI/codeoptix/tree/main/examples) |
|
|
98
|
-
[Contributing](#-contributing)
|
|
86
|
+
[📚 Documentation](https://superagenticai.github.io/codeoptix/)
|
|
99
87
|
|
|
100
88
|
</div>
|
|
101
89
|
|
|
@@ -118,6 +106,10 @@ Built by [**Superagentic AI**](https://super-agentic.ai) - *Advancing the future
|
|
|
118
106
|
- **🔧 Multi-Provider LLM Support** - OpenAI, Anthropic, Google, and Ollama (local models included!)
|
|
119
107
|
- **⚡ CI/CD Integration** - Automated quality gates and GitHub Actions support
|
|
120
108
|
|
|
109
|
+
### 📋 Open Source Limitations
|
|
110
|
+
|
|
111
|
+
The open source version provides core evaluation capabilities. Advanced features like agent evolution and optimization have limited support. For full optimization capabilities tailored to your needs, please get in touch.
|
|
112
|
+
|
|
121
113
|
---
|
|
122
114
|
|
|
123
115
|
## Quick Start
|
|
@@ -282,7 +274,6 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](https:
|
|
|
282
274
|
|
|
283
275
|
- [Documentation](https://superagenticai.github.io/codeoptix)
|
|
284
276
|
- [GitHub Issues](https://github.com/SuperagenticAI/codeoptix/issues)
|
|
285
|
-
- [GitHub Discussions](https://github.com/SuperagenticAI/codeoptix/discussions)
|
|
286
277
|
|
|
287
278
|
---
|
|
288
279
|
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
[](https://pypi.org/project/codeoptix/)
|
|
3
|
+
[](https://github.com/SuperagenticAI/codeoptix/actions/workflows/ci.yml)
|
|
4
|
+
[](https://codecov.io/gh/SuperagenticAI/codeoptix)
|
|
5
|
+
[](https://superagenticai.github.io/codeoptix/)
|
|
6
|
+
[](https://www.python.org/downloads/)
|
|
7
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
8
|
+
[](https://github.com/astral-sh/ruff)
|
|
9
|
+
|
|
1
10
|
<div align="center">
|
|
2
11
|
|
|
3
|
-
<img src="https://raw.githubusercontent.com/SuperagenticAI/codeoptix/main/docs/assets/CodeOptiX_Logo.png" alt="CodeOptiX Logo" width="
|
|
12
|
+
<img src="https://raw.githubusercontent.com/SuperagenticAI/codeoptix/main/docs/assets/CodeOptiX_Logo.png" alt="CodeOptiX Logo" width="300">
|
|
4
13
|
|
|
5
14
|
# CodeOptiX
|
|
6
15
|
|
|
@@ -8,22 +17,12 @@
|
|
|
8
17
|
|
|
9
18
|
*CodeOptiX is the universal code optimization engine that improves coding agent experience with deep evaluations and optimization. When AI coding agents dazzle with impressive code but leave you wondering about quality, maintainability, security, and reliability, CodeOptiX ensures proper behavior through evaluations, reflection, and self-improvement. Powered by GEPA optimization and Bloom scenario generation.*
|
|
10
19
|
|
|
11
|
-
[](https://pypi.org/project/codeoptix/)
|
|
12
|
-
[](https://github.com/SuperagenticAI/codeoptix/actions/workflows/ci.yml)
|
|
13
|
-
[](https://codecov.io/gh/SuperagenticAI/codeoptix)
|
|
14
|
-
[](https://www.python.org/downloads/)
|
|
15
|
-
[](https://opensource.org/licenses/Apache-2.0)
|
|
16
|
-
[](https://github.com/astral-sh/ruff)
|
|
17
|
-
|
|
18
20
|
<p align="center">
|
|
19
|
-
<em>
|
|
21
|
+
<em>Brought to you by <a href="https://super-agentic.ai" target="_blank"><strong>Superagentic AI</strong></a></em><br>
|
|
20
22
|
<em>Advancing AI agent optimization and autonomous systems</em>
|
|
21
23
|
</p>
|
|
22
24
|
|
|
23
|
-
[Documentation](https://superagenticai.github.io/codeoptix)
|
|
24
|
-
[Get Started](#-quick-start) |
|
|
25
|
-
[Examples](https://github.com/SuperagenticAI/codeoptix/tree/main/examples) |
|
|
26
|
-
[Contributing](#-contributing)
|
|
25
|
+
[📚 Documentation](https://superagenticai.github.io/codeoptix/)
|
|
27
26
|
|
|
28
27
|
</div>
|
|
29
28
|
|
|
@@ -46,6 +45,10 @@ Built by [**Superagentic AI**](https://super-agentic.ai) - *Advancing the future
|
|
|
46
45
|
- **🔧 Multi-Provider LLM Support** - OpenAI, Anthropic, Google, and Ollama (local models included!)
|
|
47
46
|
- **⚡ CI/CD Integration** - Automated quality gates and GitHub Actions support
|
|
48
47
|
|
|
48
|
+
### 📋 Open Source Limitations
|
|
49
|
+
|
|
50
|
+
The open source version provides core evaluation capabilities. Advanced features like agent evolution and optimization have limited support. For full optimization capabilities tailored to your needs, please get in touch.
|
|
51
|
+
|
|
49
52
|
---
|
|
50
53
|
|
|
51
54
|
## Quick Start
|
|
@@ -210,7 +213,6 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](https:
|
|
|
210
213
|
|
|
211
214
|
- [Documentation](https://superagenticai.github.io/codeoptix)
|
|
212
215
|
- [GitHub Issues](https://github.com/SuperagenticAI/codeoptix/issues)
|
|
213
|
-
- [GitHub Discussions](https://github.com/SuperagenticAI/codeoptix/discussions)
|
|
214
216
|
|
|
215
217
|
---
|
|
216
218
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "codeoptix"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.1"
|
|
4
4
|
description = "Agentic Code Optimization & Deep Evaluation for Superior Coding Agent Experience. Built by Superagentic AI."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -70,7 +70,6 @@ docs = [
|
|
|
70
70
|
"mkdocs-material>=9.4.0",
|
|
71
71
|
"pymdown-extensions>=10.0.0",
|
|
72
72
|
"mkdocs-minify-plugin>=0.7.0",
|
|
73
|
-
"hatchling",
|
|
74
73
|
]
|
|
75
74
|
all = [
|
|
76
75
|
"codeoptix[dev,testing,docs]",
|
|
@@ -84,8 +83,11 @@ accessibility = [
|
|
|
84
83
|
codeoptix = "codeoptix.cli:main"
|
|
85
84
|
|
|
86
85
|
[build-system]
|
|
87
|
-
requires = ["
|
|
88
|
-
build-backend = "
|
|
86
|
+
requires = ["setuptools>=68.0", "wheel"]
|
|
87
|
+
build-backend = "setuptools.build_meta"
|
|
88
|
+
|
|
89
|
+
[tool.setuptools.packages.find]
|
|
90
|
+
where = ["src"]
|
|
89
91
|
|
|
90
92
|
[tool.ruff]
|
|
91
93
|
line-length = 100
|
|
@@ -145,6 +147,7 @@ ignore = [
|
|
|
145
147
|
"DTZ", # datetime timezone (not critical for this project)
|
|
146
148
|
"EM101", # exception message string literal
|
|
147
149
|
"EM102", # exception message f-string
|
|
150
|
+
"PLC0415", # import should be at top level (too many existing violations)
|
|
148
151
|
"PLR0912", # too many branches
|
|
149
152
|
"PLR0913", # too many arguments
|
|
150
153
|
"PLR0915", # too many statements
|
|
@@ -25,7 +25,7 @@ class BasicAdapter(AgentAdapter):
|
|
|
25
25
|
raise ValueError("BasicAdapter requires 'llm_config' in configuration")
|
|
26
26
|
|
|
27
27
|
# Create LLM client
|
|
28
|
-
from codeoptix.utils.llm import
|
|
28
|
+
from codeoptix.utils.llm import LLMProvider, create_llm_client
|
|
29
29
|
|
|
30
30
|
provider_name = llm_config.get("provider", "ollama")
|
|
31
31
|
self.llm_client: LLMClient = create_llm_client(
|
|
@@ -154,10 +154,10 @@ Brief explanation of your implementation.
|
|
|
154
154
|
if line_lower.startswith("code:") or "```" in line_lower:
|
|
155
155
|
current_section = "code"
|
|
156
156
|
continue
|
|
157
|
-
|
|
157
|
+
if line_lower.startswith(("tests:", "test:")):
|
|
158
158
|
current_section = "tests"
|
|
159
159
|
continue
|
|
160
|
-
|
|
160
|
+
if current_section == "code" and line.strip():
|
|
161
161
|
# Remove markdown code blocks
|
|
162
162
|
if "```" in line:
|
|
163
163
|
continue
|
|
@@ -38,9 +38,12 @@ class ClaudeCodeAdapter(AgentAdapter):
|
|
|
38
38
|
provider_name = llm_config.get("provider", "anthropic").upper()
|
|
39
39
|
try:
|
|
40
40
|
provider = LLMProvider[provider_name]
|
|
41
|
-
except KeyError:
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
except KeyError as e:
|
|
42
|
+
supported_providers = ", ".join([p.value for p in LLMProvider])
|
|
43
|
+
raise ValueError(
|
|
44
|
+
f"Invalid LLM provider '{provider_name}'. "
|
|
45
|
+
f"Supported providers: {supported_providers}"
|
|
46
|
+
) from e
|
|
44
47
|
|
|
45
48
|
# Get API key (not required for Ollama)
|
|
46
49
|
api_key = None
|
|
@@ -371,7 +371,13 @@ def reflect(input, output, agent_name):
|
|
|
371
371
|
)
|
|
372
372
|
@click.option("--iterations", default=3, help="Number of evolution iterations")
|
|
373
373
|
@click.option("--config", type=click.Path(exists=True), help="Path to config file (JSON/YAML)")
|
|
374
|
-
|
|
374
|
+
@click.option(
|
|
375
|
+
"--llm-provider",
|
|
376
|
+
default="openai",
|
|
377
|
+
help="LLM provider for evolution (anthropic, openai, google, ollama)",
|
|
378
|
+
)
|
|
379
|
+
@click.option("--llm-api-key", help="API key for LLM (or set environment variable)")
|
|
380
|
+
def evolve(input, reflection, output, iterations, config, llm_provider, llm_api_key):
|
|
375
381
|
"""Evolve agent prompts based on evaluation results."""
|
|
376
382
|
click.echo("🧬 Evolving agent prompts...")
|
|
377
383
|
|
|
@@ -428,11 +434,18 @@ def evolve(input, reflection, output, iterations, config):
|
|
|
428
434
|
metadata = results.get("metadata", {})
|
|
429
435
|
agent_type = metadata.get("agent", "claude-code")
|
|
430
436
|
|
|
431
|
-
# Get LLM provider from
|
|
432
|
-
llm_provider
|
|
433
|
-
|
|
437
|
+
# Get LLM provider from command line or config
|
|
438
|
+
if llm_provider == "openai": # default, check config
|
|
439
|
+
llm_provider = evolve_config.get("llm_provider", "openai")
|
|
440
|
+
# llm_api_key param takes precedence, then config, then env
|
|
441
|
+
llm_api_key = (
|
|
442
|
+
llm_api_key
|
|
443
|
+
or evolve_config.get("llm_api_key")
|
|
444
|
+
or os.getenv(f"{llm_provider.upper()}_API_KEY")
|
|
445
|
+
)
|
|
434
446
|
|
|
435
|
-
|
|
447
|
+
is_ollama = llm_provider == "ollama"
|
|
448
|
+
if not llm_api_key and not is_ollama:
|
|
436
449
|
click.echo(
|
|
437
450
|
f"❌ LLM API key required. Set {llm_provider.upper()}_API_KEY or use --config", err=True
|
|
438
451
|
)
|
|
@@ -130,7 +130,7 @@ class HTMLAccessibilityParser(HTMLParser):
|
|
|
130
130
|
|
|
131
131
|
if tag == "a":
|
|
132
132
|
if self.links_missing_text:
|
|
133
|
-
|
|
133
|
+
_line, _col, attrs = self.links_missing_text[-1]
|
|
134
134
|
# Only flag as missing if no text AND no aria-label
|
|
135
135
|
if not text_content and not attrs.get("aria-label"):
|
|
136
136
|
# Keep as-is; will be converted to issues later
|
|
@@ -141,7 +141,7 @@ class HTMLAccessibilityParser(HTMLParser):
|
|
|
141
141
|
|
|
142
142
|
if tag == "button":
|
|
143
143
|
if self.buttons_missing_text:
|
|
144
|
-
|
|
144
|
+
_line, _col, attrs = self.buttons_missing_text[-1]
|
|
145
145
|
if text_content or attrs.get("aria-label"):
|
|
146
146
|
# Button has accessible name; drop from missing list
|
|
147
147
|
self.buttons_missing_text.pop()
|
|
@@ -250,7 +250,7 @@ class OllamaClient(LLMClient):
|
|
|
250
250
|
"""Generate a chat completion using a local Ollama model."""
|
|
251
251
|
payload = {
|
|
252
252
|
"model": model,
|
|
253
|
-
"
|
|
253
|
+
"prompt": messages[0]["content"], # Use first message content as prompt
|
|
254
254
|
"stream": False,
|
|
255
255
|
"options": {
|
|
256
256
|
"temperature": temperature,
|
|
@@ -261,7 +261,7 @@ class OllamaClient(LLMClient):
|
|
|
261
261
|
|
|
262
262
|
data = json.dumps(payload).encode("utf-8")
|
|
263
263
|
req = urllib.request.Request(
|
|
264
|
-
f"{self.base_url}/api/
|
|
264
|
+
f"{self.base_url}/api/generate",
|
|
265
265
|
data=data,
|
|
266
266
|
headers={"Content-Type": "application/json"},
|
|
267
267
|
method="POST",
|
|
@@ -290,12 +290,8 @@ class OllamaClient(LLMClient):
|
|
|
290
290
|
except json.JSONDecodeError as exc: # pragma: no cover - unexpected response
|
|
291
291
|
raise RuntimeError(f"Invalid JSON from Ollama: {body!r}") from exc
|
|
292
292
|
|
|
293
|
-
# Ollama
|
|
294
|
-
|
|
295
|
-
content = message.get("content")
|
|
296
|
-
if isinstance(content, str):
|
|
297
|
-
return content
|
|
298
|
-
return str(content) if content is not None else ""
|
|
293
|
+
# Ollama generate API: response["response"]
|
|
294
|
+
return obj.get("response", "")
|
|
299
295
|
|
|
300
296
|
def get_available_models(self) -> list[str]:
|
|
301
297
|
"""Get available Ollama models via /api/tags."""
|