codeoptix 0.1.1__tar.gz → 0.1.2__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.
Files changed (111) hide show
  1. {codeoptix-0.1.1/src/codeoptix.egg-info → codeoptix-0.1.2}/PKG-INFO +1 -1
  2. {codeoptix-0.1.1 → codeoptix-0.1.2}/pyproject.toml +1 -1
  3. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/__init__.py +1 -1
  4. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/adapters/basic.py +1 -1
  5. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/cli.py +14 -5
  6. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/utils/llm.py +9 -7
  7. {codeoptix-0.1.1 → codeoptix-0.1.2/src/codeoptix.egg-info}/PKG-INFO +1 -1
  8. {codeoptix-0.1.1 → codeoptix-0.1.2}/LICENSE +0 -0
  9. {codeoptix-0.1.1 → codeoptix-0.1.2}/MANIFEST.in +0 -0
  10. {codeoptix-0.1.1 → codeoptix-0.1.2}/README.md +0 -0
  11. {codeoptix-0.1.1 → codeoptix-0.1.2}/setup.cfg +0 -0
  12. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/acp/__init__.py +0 -0
  13. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/acp/agent.py +0 -0
  14. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/acp/bridge.py +0 -0
  15. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/acp/client_adapter.py +0 -0
  16. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/acp/code_extractor.py +0 -0
  17. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/acp/orchestrator.py +0 -0
  18. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/acp/registry.py +0 -0
  19. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/adapters/__init__.py +0 -0
  20. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/adapters/base.py +0 -0
  21. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/adapters/claude_code.py +0 -0
  22. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/adapters/codex.py +0 -0
  23. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/adapters/factory.py +0 -0
  24. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/adapters/gemini_cli.py +0 -0
  25. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/artifacts/__init__.py +0 -0
  26. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/artifacts/manager.py +0 -0
  27. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/behaviors/__init__.py +0 -0
  28. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/behaviors/base.py +0 -0
  29. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/behaviors/insecure_code.py +0 -0
  30. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/behaviors/plan_drift.py +0 -0
  31. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/behaviors/vacuous_tests.py +0 -0
  32. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evaluation/__init__.py +0 -0
  33. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evaluation/bloom_integration.py +0 -0
  34. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evaluation/engine.py +0 -0
  35. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evaluation/evaluators.py +0 -0
  36. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evaluation/scenario_generator.py +0 -0
  37. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evolution/__init__.py +0 -0
  38. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evolution/engine.py +0 -0
  39. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evolution/gepa_integration.py +0 -0
  40. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/evolution/proposer.py +0 -0
  41. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/__init__.py +0 -0
  42. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/bandit_linter.py +0 -0
  43. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/base.py +0 -0
  44. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/coverage_linter.py +0 -0
  45. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/flake8_linter.py +0 -0
  46. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/html_accessibility_linter.py +0 -0
  47. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/language_detector.py +0 -0
  48. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/mypy_linter.py +0 -0
  49. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/pip_audit_linter.py +0 -0
  50. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/pylint_linter.py +0 -0
  51. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/ruff_linter.py +0 -0
  52. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/runner.py +0 -0
  53. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/linters/safety_linter.py +0 -0
  54. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/reflection/__init__.py +0 -0
  55. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/reflection/engine.py +0 -0
  56. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/reflection/generator.py +0 -0
  57. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/utils/__init__.py +0 -0
  58. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/utils/config.py +0 -0
  59. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/utils/retry.py +0 -0
  60. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/__init__.py +0 -0
  61. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/README.md +0 -0
  62. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/__init__.py +0 -0
  63. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/globals.py +0 -0
  64. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/orchestrators/ConversationOrchestrator.py +0 -0
  65. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/orchestrators/SimEnvOrchestrator.py +0 -0
  66. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/README.md +0 -0
  67. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/default.json +0 -0
  68. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/ideation-default.json +0 -0
  69. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_animal-welfare.json +0 -0
  70. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_contextual-optimism.json +0 -0
  71. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_defend-objects.json +0 -0
  72. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_defer-to-users.json +0 -0
  73. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_emotional-bond.json +0 -0
  74. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_flattery.json +0 -0
  75. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_hardcode-test-cases.json +0 -0
  76. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_increasing-pep.json +0 -0
  77. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_research-sandbagging.json +0 -0
  78. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_self-promotion.json +0 -0
  79. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/sandbag.json +0 -0
  80. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/self-preferential-bias.json +0 -0
  81. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/static-prompts.yaml +0 -0
  82. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/web-search.json +0 -0
  83. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/step1_understanding.py +0 -0
  84. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/step2_ideation.py +0 -0
  85. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/step3_rollout.py +0 -0
  86. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/prompts/step4_judgment.py +0 -0
  87. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/schemas/behavior.schema.json +0 -0
  88. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/schemas/conversation.schema.json +0 -0
  89. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/schemas/transcript_schema.json +0 -0
  90. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/scripts/step2_ideation.py +0 -0
  91. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/scripts/step4_judgment.py +0 -0
  92. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/transcript_utils.py +0 -0
  93. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix/vendor/bloom/utils.py +0 -0
  94. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix.egg-info/SOURCES.txt +0 -0
  95. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix.egg-info/dependency_links.txt +0 -0
  96. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix.egg-info/entry_points.txt +0 -0
  97. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix.egg-info/requires.txt +0 -0
  98. {codeoptix-0.1.1 → codeoptix-0.1.2}/src/codeoptix.egg-info/top_level.txt +0 -0
  99. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_adapter_error_handling.py +0 -0
  100. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_adapters.py +0 -0
  101. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_artifacts.py +0 -0
  102. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_behaviors.py +0 -0
  103. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_behaviors_coverage.py +0 -0
  104. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_cli.py +0 -0
  105. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_cli_commands.py +0 -0
  106. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_evaluation.py +0 -0
  107. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_evaluators.py +0 -0
  108. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_evolution.py +0 -0
  109. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_imports.py +0 -0
  110. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_llm.py +0 -0
  111. {codeoptix-0.1.1 → codeoptix-0.1.2}/tests/test_reflection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeoptix
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Agentic Code Optimization & Deep Evaluation for Superior Coding Agent Experience. Built by Superagentic AI.
5
5
  Author-email: Shashi Jagtap <shashi@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>
6
6
  Maintainer-email: Shashi Jagtap <team@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codeoptix"
3
- version = "0.1.1"
3
+ version = "0.1.2"
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"
@@ -5,4 +5,4 @@ The universal code optimization engine that improves coding agent experience wit
5
5
  Built by Superagentic AI - Advancing AI agent optimization and autonomous systems.
6
6
  """
7
7
 
8
- __version__ = "0.1.1"
8
+ __version__ = "0.1.2"
@@ -29,7 +29,7 @@ class BasicAdapter(AgentAdapter):
29
29
 
30
30
  provider_name = llm_config.get("provider", "ollama")
31
31
  self.llm_client: LLMClient = create_llm_client(
32
- LLMProvider(provider_name), llm_config.get("api_key")
32
+ LLMProvider(provider_name), llm_config.get("api_key"), llm_config.get("model")
33
33
  )
34
34
 
35
35
  # Set model
@@ -147,7 +147,11 @@ def eval(agent, behaviors, output, config, llm_provider, llm_api_key, context, f
147
147
  sys.exit(1)
148
148
 
149
149
  # Normalize provider name and decide if we need an API key
150
- llm_provider = (llm_provider or os.getenv("CODEOPTIX_LLM_PROVIDER", "openai")).lower()
150
+ llm_provider = (
151
+ eval_config.get("llm_provider")
152
+ or llm_provider
153
+ or os.getenv("CODEOPTIX_LLM_PROVIDER", "openai")
154
+ ).lower()
151
155
  is_ollama = llm_provider == "ollama"
152
156
 
153
157
  # Create adapter
@@ -222,7 +226,10 @@ def eval(agent, behaviors, output, config, llm_provider, llm_api_key, context, f
222
226
  click.echo("🧠 Using local Ollama provider.")
223
227
 
224
228
  try:
225
- llm_client = create_llm_client(llm_provider_enum, api_key=api_key)
229
+ llm_config = adapter_config["llm_config"]
230
+ llm_client = create_llm_client(
231
+ LLMProvider(llm_config["provider"]), llm_config.get("api_key"), llm_config.get("model")
232
+ )
226
233
  except Exception as e:
227
234
  click.echo(f"❌ Error: Failed to create LLM client: {e}", err=True)
228
235
  if "api_key" in str(e).lower():
@@ -470,9 +477,11 @@ def evolve(input, reflection, output, iterations, config, llm_provider, llm_api_
470
477
  adapter = create_adapter(agent_type, adapter_config)
471
478
  click.echo(f"✅ Created adapter: {adapter.get_adapter_type()}")
472
479
 
473
- # Create LLM client
474
- llm_provider_enum = LLMProvider[llm_provider.upper()]
475
- llm_client = create_llm_client(llm_provider_enum, api_key=llm_api_key)
480
+ # Create LLM client (use same config as adapter for consistency)
481
+ llm_config = adapter_config["llm_config"]
482
+ llm_client = create_llm_client(
483
+ LLMProvider(llm_config["provider"]), llm_config.get("api_key"), llm_config.get("model")
484
+ )
476
485
 
477
486
  # Create evaluation engine
478
487
  eval_engine_config = evolve_config.get("evaluation", {})
@@ -214,7 +214,7 @@ class GoogleClient(LLMClient):
214
214
  class OllamaClient(LLMClient):
215
215
  """Ollama local model client (http://localhost:11434)."""
216
216
 
217
- def __init__(self, api_key: str | None = None):
217
+ def __init__(self, api_key: str | None = None, model: str = "llama3.1", **kwargs: Any):
218
218
  """Initialize Ollama client.
219
219
 
220
220
  api_key is unused but kept for interface compatibility.
@@ -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
- "prompt": messages[0]["content"], # Use first message content as prompt
253
+ "prompt": messages[0]["content"],
254
254
  "stream": False,
255
255
  "options": {
256
256
  "temperature": temperature,
@@ -315,14 +315,16 @@ class OllamaClient(LLMClient):
315
315
  return models
316
316
 
317
317
 
318
- def create_llm_client(provider: LLMProvider, api_key: str | None = None) -> LLMClient:
318
+ def create_llm_client(
319
+ provider: LLMProvider, api_key: str | None = None, model: str | None = None
320
+ ) -> LLMClient:
319
321
  """Factory function to create an LLM client."""
320
322
  if provider == LLMProvider.ANTHROPIC:
321
- return AnthropicClient(api_key=api_key)
323
+ return AnthropicClient(api_key=api_key, model=model or "claude-3-5-sonnet-20241022")
322
324
  if provider == LLMProvider.OPENAI:
323
- return OpenAIClient(api_key=api_key)
325
+ return OpenAIClient(api_key=api_key, model=model or "gpt-4o")
324
326
  if provider == LLMProvider.GOOGLE:
325
- return GoogleClient(api_key=api_key)
327
+ return GoogleClient(api_key=api_key, model=model or "gemini-1.5-pro")
326
328
  if provider == LLMProvider.OLLAMA:
327
- return OllamaClient(api_key=api_key)
329
+ return OllamaClient(model=model or "llama3.1")
328
330
  raise ValueError(f"Unsupported provider: {provider}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeoptix
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Agentic Code Optimization & Deep Evaluation for Superior Coding Agent Experience. Built by Superagentic AI.
5
5
  Author-email: Shashi Jagtap <shashi@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>
6
6
  Maintainer-email: Shashi Jagtap <team@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes