codeoptix 0.1.1__tar.gz → 0.1.3__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.3}/PKG-INFO +1 -1
  2. {codeoptix-0.1.1 → codeoptix-0.1.3}/pyproject.toml +1 -1
  3. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/__init__.py +1 -1
  4. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/adapters/basic.py +3 -3
  5. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/cli.py +15 -32
  6. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/utils/llm.py +15 -9
  7. {codeoptix-0.1.1 → codeoptix-0.1.3/src/codeoptix.egg-info}/PKG-INFO +1 -1
  8. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_behaviors_coverage.py +0 -1
  9. {codeoptix-0.1.1 → codeoptix-0.1.3}/LICENSE +0 -0
  10. {codeoptix-0.1.1 → codeoptix-0.1.3}/MANIFEST.in +0 -0
  11. {codeoptix-0.1.1 → codeoptix-0.1.3}/README.md +0 -0
  12. {codeoptix-0.1.1 → codeoptix-0.1.3}/setup.cfg +0 -0
  13. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/acp/__init__.py +0 -0
  14. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/acp/agent.py +0 -0
  15. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/acp/bridge.py +0 -0
  16. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/acp/client_adapter.py +0 -0
  17. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/acp/code_extractor.py +0 -0
  18. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/acp/orchestrator.py +0 -0
  19. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/acp/registry.py +0 -0
  20. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/adapters/__init__.py +0 -0
  21. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/adapters/base.py +0 -0
  22. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/adapters/claude_code.py +0 -0
  23. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/adapters/codex.py +0 -0
  24. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/adapters/factory.py +0 -0
  25. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/adapters/gemini_cli.py +0 -0
  26. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/artifacts/__init__.py +0 -0
  27. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/artifacts/manager.py +0 -0
  28. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/behaviors/__init__.py +0 -0
  29. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/behaviors/base.py +0 -0
  30. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/behaviors/insecure_code.py +0 -0
  31. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/behaviors/plan_drift.py +0 -0
  32. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/behaviors/vacuous_tests.py +0 -0
  33. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evaluation/__init__.py +0 -0
  34. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evaluation/bloom_integration.py +0 -0
  35. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evaluation/engine.py +0 -0
  36. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evaluation/evaluators.py +0 -0
  37. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evaluation/scenario_generator.py +0 -0
  38. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evolution/__init__.py +0 -0
  39. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evolution/engine.py +0 -0
  40. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evolution/gepa_integration.py +0 -0
  41. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/evolution/proposer.py +0 -0
  42. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/__init__.py +0 -0
  43. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/bandit_linter.py +0 -0
  44. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/base.py +0 -0
  45. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/coverage_linter.py +0 -0
  46. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/flake8_linter.py +0 -0
  47. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/html_accessibility_linter.py +0 -0
  48. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/language_detector.py +0 -0
  49. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/mypy_linter.py +0 -0
  50. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/pip_audit_linter.py +0 -0
  51. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/pylint_linter.py +0 -0
  52. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/ruff_linter.py +0 -0
  53. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/runner.py +0 -0
  54. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/linters/safety_linter.py +0 -0
  55. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/reflection/__init__.py +0 -0
  56. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/reflection/engine.py +0 -0
  57. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/reflection/generator.py +0 -0
  58. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/utils/__init__.py +0 -0
  59. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/utils/config.py +0 -0
  60. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/utils/retry.py +0 -0
  61. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/__init__.py +0 -0
  62. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/README.md +0 -0
  63. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/__init__.py +0 -0
  64. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/globals.py +0 -0
  65. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/orchestrators/ConversationOrchestrator.py +0 -0
  66. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/orchestrators/SimEnvOrchestrator.py +0 -0
  67. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/README.md +0 -0
  68. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/default.json +0 -0
  69. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/ideation-default.json +0 -0
  70. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_animal-welfare.json +0 -0
  71. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_contextual-optimism.json +0 -0
  72. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_defend-objects.json +0 -0
  73. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_defer-to-users.json +0 -0
  74. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_emotional-bond.json +0 -0
  75. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_flattery.json +0 -0
  76. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_hardcode-test-cases.json +0 -0
  77. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_increasing-pep.json +0 -0
  78. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_research-sandbagging.json +0 -0
  79. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/mo_self-promotion.json +0 -0
  80. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/sandbag.json +0 -0
  81. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/self-preferential-bias.json +0 -0
  82. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/static-prompts.yaml +0 -0
  83. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/configurable_prompts/web-search.json +0 -0
  84. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/step1_understanding.py +0 -0
  85. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/step2_ideation.py +0 -0
  86. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/step3_rollout.py +0 -0
  87. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/prompts/step4_judgment.py +0 -0
  88. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/schemas/behavior.schema.json +0 -0
  89. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/schemas/conversation.schema.json +0 -0
  90. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/schemas/transcript_schema.json +0 -0
  91. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/scripts/step2_ideation.py +0 -0
  92. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/scripts/step4_judgment.py +0 -0
  93. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/transcript_utils.py +0 -0
  94. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix/vendor/bloom/utils.py +0 -0
  95. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix.egg-info/SOURCES.txt +0 -0
  96. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix.egg-info/dependency_links.txt +0 -0
  97. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix.egg-info/entry_points.txt +0 -0
  98. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix.egg-info/requires.txt +0 -0
  99. {codeoptix-0.1.1 → codeoptix-0.1.3}/src/codeoptix.egg-info/top_level.txt +0 -0
  100. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_adapter_error_handling.py +0 -0
  101. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_adapters.py +0 -0
  102. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_artifacts.py +0 -0
  103. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_behaviors.py +0 -0
  104. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_cli.py +0 -0
  105. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_cli_commands.py +0 -0
  106. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_evaluation.py +0 -0
  107. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_evaluators.py +0 -0
  108. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_evolution.py +0 -0
  109. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_imports.py +0 -0
  110. {codeoptix-0.1.1 → codeoptix-0.1.3}/tests/test_llm.py +0 -0
  111. {codeoptix-0.1.1 → codeoptix-0.1.3}/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.3
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.3"
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.3"
@@ -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
@@ -124,12 +124,12 @@ Please provide your response in the following format:
124
124
 
125
125
  CODE:
126
126
  ```python
127
- # Your code here
127
+ # Your code here - must be valid Python
128
128
  ```
129
129
 
130
130
  TESTS:
131
131
  ```python
132
- # Your tests here
132
+ # Your tests here - must be valid Python
133
133
  ```
134
134
 
135
135
  EXPLANATION:
@@ -24,7 +24,7 @@ from codeoptix.utils.llm import LLMProvider, create_llm_client
24
24
 
25
25
 
26
26
  @click.group()
27
- @click.version_option(version="0.1.0")
27
+ @click.version_option(version="0.1.3")
28
28
  def main():
29
29
  """CodeOptiX - Agentic Code Optimization & Deep Evaluation for Superior Coding Agent Experience.
30
30
 
@@ -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
@@ -192,37 +196,14 @@ def eval(agent, behaviors, output, config, llm_provider, llm_api_key, context, f
192
196
  sys.exit(1)
193
197
 
194
198
  # Create LLM client for evaluation
195
- try:
196
- llm_provider_enum = LLMProvider[llm_provider.upper()]
197
- except KeyError:
198
- click.echo(f"❌ Error: Unsupported LLM provider: {llm_provider}", err=True)
199
- click.echo(" Available providers: anthropic, openai, google, ollama", err=True)
200
- sys.exit(1)
201
-
202
- # For remote providers, we still require an API key.
203
- # For local Ollama, we do NOT require a key and talk to localhost instead.
204
- api_key: str | None = None
205
199
  if not is_ollama:
206
- api_key = llm_api_key or os.getenv(f"{llm_provider.upper()}_API_KEY")
207
- if not api_key:
208
- click.echo(f"❌ Error: API key required for {llm_provider}", err=True)
209
- click.echo(
210
- f" Set {llm_provider.upper()}_API_KEY environment variable or use --llm-api-key",
211
- err=True,
212
- )
213
- click.echo("", err=True)
214
- click.echo("💡 Tip: Without an API key, you can use basic static analysis:", err=True)
215
- click.echo(" codeoptix lint --path ./src", err=True)
216
- click.echo(
217
- " This runs linters (ruff, bandit, flake8, etc.) without requiring API keys.",
218
- err=True,
219
- )
220
- sys.exit(1)
221
- else:
222
200
  click.echo("🧠 Using local Ollama provider.")
223
201
 
224
202
  try:
225
- llm_client = create_llm_client(llm_provider_enum, api_key=api_key)
203
+ llm_config = adapter_config["llm_config"]
204
+ llm_client = create_llm_client(
205
+ LLMProvider(llm_config["provider"]), llm_config.get("api_key"), llm_config.get("model")
206
+ )
226
207
  except Exception as e:
227
208
  click.echo(f"❌ Error: Failed to create LLM client: {e}", err=True)
228
209
  if "api_key" in str(e).lower():
@@ -470,9 +451,11 @@ def evolve(input, reflection, output, iterations, config, llm_provider, llm_api_
470
451
  adapter = create_adapter(agent_type, adapter_config)
471
452
  click.echo(f"✅ Created adapter: {adapter.get_adapter_type()}")
472
453
 
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)
454
+ # Create LLM client (use same config as adapter for consistency)
455
+ llm_config = adapter_config["llm_config"]
456
+ llm_client = create_llm_client(
457
+ LLMProvider(llm_config["provider"]), llm_config.get("api_key"), llm_config.get("model")
458
+ )
476
459
 
477
460
  # Create evaluation engine
478
461
  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.
@@ -248,9 +248,10 @@ class OllamaClient(LLMClient):
248
248
  **kwargs: Any,
249
249
  ) -> str:
250
250
  """Generate a chat completion using a local Ollama model."""
251
+ # Use Ollama's chat API which properly handles chat messages
251
252
  payload = {
252
253
  "model": model,
253
- "prompt": messages[0]["content"], # Use first message content as prompt
254
+ "messages": messages, # Pass messages directly
254
255
  "stream": False,
255
256
  "options": {
256
257
  "temperature": temperature,
@@ -261,7 +262,7 @@ class OllamaClient(LLMClient):
261
262
 
262
263
  data = json.dumps(payload).encode("utf-8")
263
264
  req = urllib.request.Request(
264
- f"{self.base_url}/api/generate",
265
+ f"{self.base_url}/api/chat",
265
266
  data=data,
266
267
  headers={"Content-Type": "application/json"},
267
268
  method="POST",
@@ -290,7 +291,10 @@ class OllamaClient(LLMClient):
290
291
  except json.JSONDecodeError as exc: # pragma: no cover - unexpected response
291
292
  raise RuntimeError(f"Invalid JSON from Ollama: {body!r}") from exc
292
293
 
293
- # Ollama generate API: response["response"]
294
+ # Ollama chat API: response["message"]["content"]
295
+ # Fallback to generate API format for backward compatibility
296
+ if "message" in obj and "content" in obj["message"]:
297
+ return obj["message"]["content"]
294
298
  return obj.get("response", "")
295
299
 
296
300
  def get_available_models(self) -> list[str]:
@@ -315,14 +319,16 @@ class OllamaClient(LLMClient):
315
319
  return models
316
320
 
317
321
 
318
- def create_llm_client(provider: LLMProvider, api_key: str | None = None) -> LLMClient:
322
+ def create_llm_client(
323
+ provider: LLMProvider, api_key: str | None = None, model: str | None = None
324
+ ) -> LLMClient:
319
325
  """Factory function to create an LLM client."""
320
326
  if provider == LLMProvider.ANTHROPIC:
321
- return AnthropicClient(api_key=api_key)
327
+ return AnthropicClient(api_key=api_key, model=model or "claude-3-5-sonnet-20241022")
322
328
  if provider == LLMProvider.OPENAI:
323
- return OpenAIClient(api_key=api_key)
329
+ return OpenAIClient(api_key=api_key, model=model or "gpt-4o")
324
330
  if provider == LLMProvider.GOOGLE:
325
- return GoogleClient(api_key=api_key)
331
+ return GoogleClient(api_key=api_key, model=model or "gemini-1.5-pro")
326
332
  if provider == LLMProvider.OLLAMA:
327
- return OllamaClient(api_key=api_key)
333
+ return OllamaClient(model=model or "llama3.1")
328
334
  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.3
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,5 @@
1
1
  """Test behaviors for coverage."""
2
2
 
3
-
4
3
  from codeoptix.adapters import AgentOutput
5
4
  from codeoptix.behaviors import create_behavior
6
5
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes