kalytera 0.1.0__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 (222) hide show
  1. kalytera-0.1.0/.claude/agents/dev-agent.md +21 -0
  2. kalytera-0.1.0/.claude/agents/pm-agent.md +34 -0
  3. kalytera-0.1.0/.claude/agents/qa-agent.md +19 -0
  4. kalytera-0.1.0/.claude/commands/daily-build.md +25 -0
  5. kalytera-0.1.0/.claude/commands/daily-report.md +6 -0
  6. kalytera-0.1.0/.claude/commands/run-tests.md +10 -0
  7. kalytera-0.1.0/.claude/session_log.txt +366 -0
  8. kalytera-0.1.0/.claude/settings.json +50 -0
  9. kalytera-0.1.0/.claude/settings.local.json +8 -0
  10. kalytera-0.1.0/.env.example +28 -0
  11. kalytera-0.1.0/.github/workflows/publish.yml +59 -0
  12. kalytera-0.1.0/.gitignore +43 -0
  13. kalytera-0.1.0/.python-version +1 -0
  14. kalytera-0.1.0/.railwayignore +50 -0
  15. kalytera-0.1.0/.streamlit/config.toml +7 -0
  16. kalytera-0.1.0/.streamlit/secrets.toml +3 -0
  17. kalytera-0.1.0/API_ENDPOINTS.md +73 -0
  18. kalytera-0.1.0/AgentIQ /342/200/224 One Pager_files/css2" +288 -0
  19. kalytera-0.1.0/AgentIQ-deployment.tar.gz +0 -0
  20. kalytera-0.1.0/CLAUDE (1).md +172 -0
  21. kalytera-0.1.0/CLAUDE.md +206 -0
  22. kalytera-0.1.0/CODING_PROMPT.md +61 -0
  23. kalytera-0.1.0/CODING_PROMPT.md.pdf +0 -0
  24. kalytera-0.1.0/CODING_PROMPT.md.txt +61 -0
  25. kalytera-0.1.0/COMPREHENSIVE_TESTING_PLAN.md +317 -0
  26. kalytera-0.1.0/CRITICAL_ISSUES_FIX_PLAN.md +186 -0
  27. kalytera-0.1.0/DEPLOY_TO_RAILWAY.md +140 -0
  28. kalytera-0.1.0/Dockerfile +12 -0
  29. kalytera-0.1.0/END_TO_END_TESTING_GUIDE.md +283 -0
  30. kalytera-0.1.0/FIXES_APPLIED.md +161 -0
  31. kalytera-0.1.0/HOW_TO_TEST_DASHBOARD.md +195 -0
  32. kalytera-0.1.0/INIT_PROMPT.md +22 -0
  33. kalytera-0.1.0/INIT_PROMPT.md.txt +22 -0
  34. kalytera-0.1.0/LAUNCH_POST.md +289 -0
  35. kalytera-0.1.0/LAUNCH_POST_FINAL.md +207 -0
  36. kalytera-0.1.0/PKG-INFO +350 -0
  37. kalytera-0.1.0/Procfile +2 -0
  38. kalytera-0.1.0/README.md +307 -0
  39. kalytera-0.1.0/README_AUTONOMOUS.md +53 -0
  40. kalytera-0.1.0/README_DASHBOARD.md +79 -0
  41. kalytera-0.1.0/README_DEPLOYMENT.md +306 -0
  42. kalytera-0.1.0/REVIEWER_PROMPT.md +63 -0
  43. kalytera-0.1.0/REVIEWER_PROMPT.md.txt +63 -0
  44. kalytera-0.1.0/TESTING_PLAN.md +208 -0
  45. kalytera-0.1.0/TEST_RESULTS.md +242 -0
  46. kalytera-0.1.0/_archive/agent_testing_framework.py +464 -0
  47. kalytera-0.1.0/_archive/agentiq_content_preserved_platform.py +1266 -0
  48. kalytera-0.1.0/_archive/agentiq_dashboard.py +329 -0
  49. kalytera-0.1.0/_archive/agentiq_enterprise_platform.py +586 -0
  50. kalytera-0.1.0/_archive/agentiq_fixed_professional_platform.py +1012 -0
  51. kalytera-0.1.0/_archive/agentiq_mvp_dashboard.py +424 -0
  52. kalytera-0.1.0/_archive/agentiq_production_sdk.py +714 -0
  53. kalytera-0.1.0/_archive/agentiq_professional_platform.py +1157 -0
  54. kalytera-0.1.0/_archive/agentiq_sdk.py +362 -0
  55. kalytera-0.1.0/_archive/agentiq_sdk_example.py +165 -0
  56. kalytera-0.1.0/_archive/coding_agent_dashboard.py +198 -0
  57. kalytera-0.1.0/_archive/complete_agentiq_example.py +327 -0
  58. kalytera-0.1.0/_archive/complete_deployment.py +86 -0
  59. kalytera-0.1.0/_archive/create_github_repo.py +161 -0
  60. kalytera-0.1.0/_archive/create_production_demo_data.py +351 -0
  61. kalytera-0.1.0/_archive/create_sample_evaluations.py +133 -0
  62. kalytera-0.1.0/_archive/detect_production.py +202 -0
  63. kalytera-0.1.0/_archive/enterprise_agentiq_dashboard.py +361 -0
  64. kalytera-0.1.0/_archive/enterprise_scale_loader.py +436 -0
  65. kalytera-0.1.0/_archive/live_demo.py +226 -0
  66. kalytera-0.1.0/_archive/load_diverse_agent_data.py +244 -0
  67. kalytera-0.1.0/_archive/load_enterprise_scale_data.py +241 -0
  68. kalytera-0.1.0/_archive/load_massive_coding_data.py +152 -0
  69. kalytera-0.1.0/_archive/load_massive_unique_data.py +270 -0
  70. kalytera-0.1.0/_archive/load_production_data.py +180 -0
  71. kalytera-0.1.0/_archive/monitor_deployment.py +97 -0
  72. kalytera-0.1.0/_archive/populate_sophisticated_data.py +287 -0
  73. kalytera-0.1.0/_archive/prepare_launch_post.py +308 -0
  74. kalytera-0.1.0/_archive/quick_fix_validation.py +192 -0
  75. kalytera-0.1.0/_archive/quick_massive_data_fix.py +173 -0
  76. kalytera-0.1.0/_archive/real_time_dashboard.py +350 -0
  77. kalytera-0.1.0/_archive/simplified_direct_dashboard.py +231 -0
  78. kalytera-0.1.0/_archive/sophisticated_demo.py +266 -0
  79. kalytera-0.1.0/_archive/test_agent_integration.py +255 -0
  80. kalytera-0.1.0/_archive/test_billing_dispute_classification.py +178 -0
  81. kalytera-0.1.0/_archive/test_integration.py +365 -0
  82. kalytera-0.1.0/_archive/test_integration_flow.py +235 -0
  83. kalytera-0.1.0/_archive/test_llm_evaluation.py +276 -0
  84. kalytera-0.1.0/_archive/test_pattern_analysis.py +240 -0
  85. kalytera-0.1.0/_archive/test_real_time_dashboard.py +105 -0
  86. kalytera-0.1.0/_archive/test_suite.py +396 -0
  87. kalytera-0.1.0/_archive/universal_agent_dashboard.py +340 -0
  88. kalytera-0.1.0/_archive/working_dashboard.py +244 -0
  89. kalytera-0.1.0/_archive/working_massive_loader.py +265 -0
  90. kalytera-0.1.0/agentiq/__init__.py +6 -0
  91. kalytera-0.1.0/agentiq/analyzer.py +306 -0
  92. kalytera-0.1.0/agentiq/config.py +5 -0
  93. kalytera-0.1.0/agentiq/dashboard.py +1343 -0
  94. kalytera-0.1.0/agentiq/judge.py +258 -0
  95. kalytera-0.1.0/agentiq/prompts.py +138 -0
  96. kalytera-0.1.0/agentiq/tracer.py +141 -0
  97. kalytera-0.1.0/agentiq-clipboard-v3.docx +0 -0
  98. kalytera-0.1.0/agentiq-dashboard-spec.md +495 -0
  99. kalytera-0.1.0/agentiq-demo-voiceover.md +51 -0
  100. kalytera-0.1.0/agentiq-demo.html +634 -0
  101. kalytera-0.1.0/agentiq-dev-landing.html +607 -0
  102. kalytera-0.1.0/agentiq-mvp-spec.docx +0 -0
  103. kalytera-0.1.0/agentiq-onepager-final.html +847 -0
  104. kalytera-0.1.0/agentiq-site.html +746 -0
  105. kalytera-0.1.0/alembic.ini +41 -0
  106. kalytera-0.1.0/analytics/__init__.py +9 -0
  107. kalytera-0.1.0/analytics/usage.py +0 -0
  108. kalytera-0.1.0/analytics/usage_analytics.py +605 -0
  109. kalytera-0.1.0/api/__init__.py +0 -0
  110. kalytera-0.1.0/api/admin_endpoints.py +191 -0
  111. kalytera-0.1.0/api/analytics_endpoints.py +1150 -0
  112. kalytera-0.1.0/api/database.py +81 -0
  113. kalytera-0.1.0/api/evaluation_endpoints.py +658 -0
  114. kalytera-0.1.0/api/ingest_endpoints.py +382 -0
  115. kalytera-0.1.0/api/main.py +240 -0
  116. kalytera-0.1.0/api/monitoring.py +145 -0
  117. kalytera-0.1.0/api/pattern_endpoints.py +442 -0
  118. kalytera-0.1.0/api/security.py +334 -0
  119. kalytera-0.1.0/autonomous_llm_judge.py +731 -0
  120. kalytera-0.1.0/causal/__init__.py +0 -0
  121. kalytera-0.1.0/causal/inference.py +0 -0
  122. kalytera-0.1.0/claude-progress.txt +110 -0
  123. kalytera-0.1.0/comprehensive_agentiq_test.py +698 -0
  124. kalytera-0.1.0/config.py +0 -0
  125. kalytera-0.1.0/dashboard/app.py +134 -0
  126. kalytera-0.1.0/dashboard/app_temp.py +143 -0
  127. kalytera-0.1.0/dashboard/main.py +568 -0
  128. kalytera-0.1.0/dashboard/requirements.txt +4 -0
  129. kalytera-0.1.0/dashboard_render.yaml +15 -0
  130. kalytera-0.1.0/dashboard_requirements.txt +4 -0
  131. kalytera-0.1.0/db/__init__.py +1 -0
  132. kalytera-0.1.0/db/env.py +53 -0
  133. kalytera-0.1.0/db/migrations/README +1 -0
  134. kalytera-0.1.0/db/migrations/env.py +75 -0
  135. kalytera-0.1.0/db/migrations/script.py.mako +26 -0
  136. kalytera-0.1.0/db/migrations/versions/89519c35a421_add_session_ended_column_to_agent_logs.py +36 -0
  137. kalytera-0.1.0/db/migrations/versions/ea02b24bdb44_create_initial_tables.py +101 -0
  138. kalytera-0.1.0/db/models.py +90 -0
  139. kalytera-0.1.0/db/queries.py +466 -0
  140. kalytera-0.1.0/debug_intent.py +25 -0
  141. kalytera-0.1.0/deploy_to_render.sh +39 -0
  142. kalytera-0.1.0/docker-compose.yml +47 -0
  143. kalytera-0.1.0/docs/ARCHITECTURE.md +0 -0
  144. kalytera-0.1.0/docs/ARCHITECTURE_EXTERNAL.md +56 -0
  145. kalytera-0.1.0/docs/ARCHITECTURE_INTERNAL.md +107 -0
  146. kalytera-0.1.0/docs/DAILY_LOG.md +22 -0
  147. kalytera-0.1.0/docs/JUDGE.md +0 -0
  148. kalytera-0.1.0/docs/PATTERNS.md +0 -0
  149. kalytera-0.1.0/docs/PROGRESS.md +45 -0
  150. kalytera-0.1.0/docs/QUESTIONS.md +6 -0
  151. kalytera-0.1.0/docs/QUICKSTART.md +168 -0
  152. kalytera-0.1.0/docs/SDK.md +0 -0
  153. kalytera-0.1.0/docs/TASKS.md +41 -0
  154. kalytera-0.1.0/docs/TAXONOMY.md +0 -0
  155. kalytera-0.1.0/docs/architecture-external.html +223 -0
  156. kalytera-0.1.0/docs/architecture-internal.html +359 -0
  157. kalytera-0.1.0/docs/demo.html +634 -0
  158. kalytera-0.1.0/docs/index.html +969 -0
  159. kalytera-0.1.0/env_example +27 -0
  160. kalytera-0.1.0/evaluation/__init__.py +1 -0
  161. kalytera-0.1.0/evaluation/agent_judge.py +453 -0
  162. kalytera-0.1.0/evaluation/intent_classifier.py +436 -0
  163. kalytera-0.1.0/evaluation/judge.py +58 -0
  164. kalytera-0.1.0/evaluation/judge_prompts.py +335 -0
  165. kalytera-0.1.0/evaluation/prompts.py +0 -0
  166. kalytera-0.1.0/features_list.json +409 -0
  167. kalytera-0.1.0/final_working_loader.py +305 -0
  168. kalytera-0.1.0/helm/agentiq/Chart.yaml +23 -0
  169. kalytera-0.1.0/helm/agentiq/templates/NOTES.txt +34 -0
  170. kalytera-0.1.0/helm/agentiq/templates/_helpers.tpl +83 -0
  171. kalytera-0.1.0/helm/agentiq/templates/api-deployment.yaml +64 -0
  172. kalytera-0.1.0/helm/agentiq/templates/api-service.yaml +19 -0
  173. kalytera-0.1.0/helm/agentiq/templates/dashboard-deployment.yaml +73 -0
  174. kalytera-0.1.0/helm/agentiq/templates/dashboard-service.yaml +19 -0
  175. kalytera-0.1.0/helm/agentiq/templates/hpa.yaml +23 -0
  176. kalytera-0.1.0/helm/agentiq/templates/ingress.yaml +36 -0
  177. kalytera-0.1.0/helm/agentiq/templates/secret.yaml +15 -0
  178. kalytera-0.1.0/helm/agentiq/templates/serviceaccount.yaml +12 -0
  179. kalytera-0.1.0/helm/agentiq/values.yaml +141 -0
  180. kalytera-0.1.0/ingestion/__init__.py +1 -0
  181. kalytera-0.1.0/ingestion/parsers.py +453 -0
  182. kalytera-0.1.0/ingestion/session_builder.py +727 -0
  183. kalytera-0.1.0/integration_showcase.html +242 -0
  184. kalytera-0.1.0/integration_test.py +403 -0
  185. kalytera-0.1.0/integration_test_report.json +57 -0
  186. kalytera-0.1.0/intent_classification.py +601 -0
  187. kalytera-0.1.0/load_demo_data.py +281 -0
  188. kalytera-0.1.0/loop_log.txt +2995 -0
  189. kalytera-0.1.0/loss_pattern_analyzer.py +1196 -0
  190. kalytera-0.1.0/main.py +9 -0
  191. kalytera-0.1.0/patterns/__init__.py +0 -0
  192. kalytera-0.1.0/patterns/loss_pattern_analyzer.py +789 -0
  193. kalytera-0.1.0/pyproject.toml +70 -0
  194. kalytera-0.1.0/railway.toml +7 -0
  195. kalytera-0.1.0/render-dashboard.yaml +15 -0
  196. kalytera-0.1.0/render.yaml +51 -0
  197. kalytera-0.1.0/requirements.txt +18 -0
  198. kalytera-0.1.0/run_with_review.sh +250 -0
  199. kalytera-0.1.0/runtime.txt +1 -0
  200. kalytera-0.1.0/sdk/__init__.py +25 -0
  201. kalytera-0.1.0/sdk/client.py +402 -0
  202. kalytera-0.1.0/seed_data.py +490 -0
  203. kalytera-0.1.0/simple_dashboard.py +340 -0
  204. kalytera-0.1.0/site/demo.html +634 -0
  205. kalytera-0.1.0/site/index.html +607 -0
  206. kalytera-0.1.0/tasks.md +20 -0
  207. kalytera-0.1.0/test_evaluation_simple.py +88 -0
  208. kalytera-0.1.0/test_patterns_simple.py +141 -0
  209. kalytera-0.1.0/test_sdk_integration.py +70 -0
  210. kalytera-0.1.0/tests/test_analyzer.py +340 -0
  211. kalytera-0.1.0/tests/test_api.py +243 -0
  212. kalytera-0.1.0/tests/test_judge.py +230 -0
  213. kalytera-0.1.0/tests/test_prompts.py +162 -0
  214. kalytera-0.1.0/tests/test_tracer.py +87 -0
  215. kalytera-0.1.0/tests/unit/test_api_endpoints.py +330 -0
  216. kalytera-0.1.0/tests/unit/test_api_trace.py +72 -0
  217. kalytera-0.1.0/tests/unit/test_evaluation.py +342 -0
  218. kalytera-0.1.0/tests/unit/test_ingestion.py +211 -0
  219. kalytera-0.1.0/tests/unit/test_pattern_analysis.py +373 -0
  220. kalytera-0.1.0/tests/unit/test_sdk.py +253 -0
  221. kalytera-0.1.0/tests/unit/test_sdk_basic.py +142 -0
  222. kalytera-0.1.0/web_dashboard.html +399 -0
@@ -0,0 +1,21 @@
1
+ # Dev Agent
2
+
3
+ You are a senior Python engineer building AgentIQ.
4
+ Your job is to implement tasks from docs/TASKS.md one at a time.
5
+
6
+ ## Rules you never break
7
+ - Read CLAUDE.md fully before starting any task
8
+ - Use plan mode for any task touching more than 2 files, schema changes, or refactors
9
+ - Create a branch — never work directly on main
10
+ - One task per session — multi-task prompts produce broken output
11
+ - Never touch evaluation/prompts.py without explicit instruction
12
+ - Never modify the pattern export schema
13
+ - If unsure about design decisions, write questions to docs/QUESTIONS.md and stop
14
+
15
+ ## When you finish a task
16
+ 1. Run full test suite: `pytest tests/unit/` and `pytest tests/integration/`
17
+ 2. Run linting: `ruff check .` and `mypy . --strict` — all must pass
18
+ 3. Update docs/TASKS.md — mark task done with timestamp
19
+ 4. Write one-paragraph summary to docs/PROGRESS.md
20
+ 5. Commit with message: "feat: [task-id] [description]"
21
+ 6. Stop and wait for next session
@@ -0,0 +1,34 @@
1
+ # PM Agent
2
+
3
+ You are the project manager for AgentIQ.
4
+ Your job is to track progress, update the task list, and send daily updates.
5
+
6
+ ## What you do each day
7
+ 1. Read docs/TASKS.md — note what was completed since yesterday
8
+ 2. Read docs/PROGRESS.md — understand what was built
9
+ 3. Read docs/QA_REPORT.md — note any outstanding failures
10
+ 4. Read docs/QUESTIONS.md — note any unresolved design questions
11
+ 5. Append a daily entry to docs/DAILY_LOG.md — see format below
12
+ 6. Update docs/TASKS.md — move completed tasks to Done, reprioritize if needed
13
+ 7. Clear docs/QUESTIONS.md after copying questions to DAILY_LOG.md
14
+
15
+ ## Daily log entry format
16
+ ---
17
+ ## [DATE] Daily Update
18
+
19
+ **Completed today:**
20
+ - [task-id]: [what was built, one sentence]
21
+
22
+ **Test status:** [PASSED / FAILED — if failed, what]
23
+
24
+ **Coverage:** [overall %] | eval/ [%] | patterns/ [%] | causal/ [%]
25
+
26
+ **Needs your decision:**
27
+ - [any questions from dev agent]
28
+
29
+ **Tomorrow's priority:**
30
+ - [next task from TASKS.md]
31
+
32
+ **Blockers:**
33
+ - [anything blocking progress — or "None"]
34
+ ---
@@ -0,0 +1,19 @@
1
+ # QA Agent
2
+
3
+ You are a senior QA engineer for AgentIQ.
4
+ Your job is to verify every completed task has adequate test coverage
5
+ and that no regressions were introduced.
6
+
7
+ ## Rules you never break
8
+ - Never modify source code — only test files
9
+ - Run the full test suite: `pytest tests/ --cov=. --cov-report=term-missing`
10
+ - If coverage on evaluation/, patterns/, or causal/ drops below 100%, flag it
11
+ - If overall coverage drops below 80%, flag it
12
+ - Check that every new function has at least one unit test
13
+ - Check that every new API endpoint has at least one integration test
14
+ - Write failures to docs/QA_REPORT.md with: test name, failure reason, suggested fix
15
+ - If all tests pass and coverage is healthy, write "PASSED" to docs/QA_REPORT.md with timestamp
16
+
17
+ ## What you produce
18
+ A docs/QA_REPORT.md entry for every run: timestamp, tasks reviewed, tests run,
19
+ coverage %, failures found, failures fixed, outstanding issues.
@@ -0,0 +1,25 @@
1
+ # Daily Build
2
+
3
+ **FOCUS: Get deployed AgentIQ system working end-to-end**
4
+ The core implementation is DONE. We need to fix deployment and verify everything works.
5
+
6
+ Your Render deployment: https://dashboard.render.com/web/srv-d80919rrjlhs73a48840
7
+
8
+ Steps:
9
+ 1. Read CLAUDE.md and docs/TASKS.md — focus on deployment verification tasks
10
+ 2. Check deployment status — is the API responding at your Render URL?
11
+ 3. Test database connectivity — can migrations run on PostgreSQL?
12
+ 4. Verify all endpoints work with real data
13
+ 5. Load seed data for demonstration
14
+ 6. Test the Streamlit dashboard
15
+ 7. Document what's working and what needs fixes
16
+ 8. Update docs/TASKS.md and docs/PROGRESS.md
17
+ 9. Stop
18
+
19
+ **Priority Order:**
20
+ 1. TASK-001: Fix deployment issues — get API responding
21
+ 2. TASK-002: Database connectivity and migrations
22
+ 3. TASK-004: Test all endpoints with actual data
23
+ 4. TASK-008: Load demonstration data
24
+
25
+ Do NOT build new features. Focus on making the existing implementation work reliably on Render.
@@ -0,0 +1,6 @@
1
+ # Daily Report
2
+
3
+ Run the PM agent following rules in .claude/agents/pm-agent.md.
4
+
5
+ Generate today's DAILY_LOG.md entry. Be specific and factual.
6
+ Do not pad with vague summaries. If nothing was completed, say so clearly.
@@ -0,0 +1,10 @@
1
+ # Run Tests
2
+
3
+ Run the QA agent following rules in .claude/agents/qa-agent.md.
4
+
5
+ Steps:
6
+ 1. Run `pytest tests/ --cov=. --cov-report=term-missing`
7
+ 2. Check coverage thresholds
8
+ 3. Review all new functions for test coverage
9
+ 4. Write QA_REPORT.md entry
10
+ 5. Stop
@@ -0,0 +1,366 @@
1
+ [$(date)] Session ended
2
+ [$(date)] Session ended
3
+ [$(date)] Session ended
4
+ [$(date)] Session ended
5
+ [$(date)] Session ended
6
+ [$(date)] Session ended
7
+ [$(date)] Session ended
8
+ [$(date)] Session ended
9
+ [$(date)] Session ended
10
+ [$(date)] Session ended
11
+ [$(date)] Session ended
12
+ [$(date)] Session ended
13
+ [$(date)] Session ended
14
+ [$(date)] Session ended
15
+ [$(date)] Session ended
16
+ [$(date)] Session ended
17
+ [$(date)] Session ended
18
+ [$(date)] Session ended
19
+ [$(date)] Session ended
20
+ [$(date)] Session ended
21
+ [$(date)] Session ended
22
+ [$(date)] Session ended
23
+ [$(date)] Session ended
24
+ [$(date)] Session ended
25
+ [$(date)] Session ended
26
+ [$(date)] Session ended
27
+ [$(date)] Session ended
28
+ [$(date)] Session ended
29
+ [$(date)] Session ended
30
+ [$(date)] Session ended
31
+ [$(date)] Session ended
32
+ [$(date)] Session ended
33
+ [$(date)] Session ended
34
+ [$(date)] Session ended
35
+ [$(date)] Session ended
36
+ [$(date)] Session ended
37
+ [$(date)] Session ended
38
+ [$(date)] Session ended
39
+ [$(date)] Session ended
40
+ [$(date)] Session ended
41
+ [$(date)] Session ended
42
+ [$(date)] Session ended
43
+ [$(date)] Session ended
44
+ [$(date)] Session ended
45
+ [$(date)] Session ended
46
+ [$(date)] Session ended
47
+ [$(date)] Session ended
48
+ [$(date)] Session ended
49
+ [$(date)] Session ended
50
+ [$(date)] Session ended
51
+ [$(date)] Session ended
52
+ [$(date)] Session ended
53
+ [$(date)] Session ended
54
+ [$(date)] Session ended
55
+ [$(date)] Session ended
56
+ [$(date)] Session ended
57
+ [$(date)] Session ended
58
+ [$(date)] Session ended
59
+ [$(date)] Session ended
60
+ [$(date)] Session ended
61
+ [$(date)] Session ended
62
+ [$(date)] Session ended
63
+ [$(date)] Session ended
64
+ [$(date)] Session ended
65
+ [$(date)] Session ended
66
+ [$(date)] Session ended
67
+ [$(date)] Session ended
68
+ [$(date)] Session ended
69
+ [$(date)] Session ended
70
+ [$(date)] Session ended
71
+ [$(date)] Session ended
72
+ [$(date)] Session ended
73
+ [$(date)] Session ended
74
+ [$(date)] Session ended
75
+ [$(date)] Session ended
76
+ [$(date)] Session ended
77
+ [$(date)] Session ended
78
+ [$(date)] Session ended
79
+ [$(date)] Session ended
80
+ [$(date)] Session ended
81
+ [$(date)] Session ended
82
+ [$(date)] Session ended
83
+ [$(date)] Session ended
84
+ [$(date)] Session ended
85
+ [$(date)] Session ended
86
+ [$(date)] Session ended
87
+ [$(date)] Session ended
88
+ [$(date)] Session ended
89
+ [$(date)] Session ended
90
+ [$(date)] Session ended
91
+ [$(date)] Session ended
92
+ [$(date)] Session ended
93
+ [$(date)] Session ended
94
+ [$(date)] Session ended
95
+ [$(date)] Session ended
96
+ [$(date)] Session ended
97
+ [$(date)] Session ended
98
+ [$(date)] Session ended
99
+ [$(date)] Session ended
100
+ [$(date)] Session ended
101
+ [$(date)] Session ended
102
+ [$(date)] Session ended
103
+ [$(date)] Session ended
104
+ [$(date)] Session ended
105
+ [$(date)] Session ended
106
+ [$(date)] Session ended
107
+ [$(date)] Session ended
108
+ [$(date)] Session ended
109
+ [$(date)] Session ended
110
+ [$(date)] Session ended
111
+ [$(date)] Session ended
112
+ [$(date)] Session ended
113
+ [$(date)] Session ended
114
+ [$(date)] Session ended
115
+ [$(date)] Session ended
116
+ [$(date)] Session ended
117
+ [$(date)] Session ended
118
+ [$(date)] Session ended
119
+ [$(date)] Session ended
120
+ [$(date)] Session ended
121
+ [$(date)] Session ended
122
+ [$(date)] Session ended
123
+ [$(date)] Session ended
124
+ [$(date)] Session ended
125
+ [$(date)] Session ended
126
+ [$(date)] Session ended
127
+ [$(date)] Session ended
128
+ [$(date)] Session ended
129
+ [$(date)] Session ended
130
+ [$(date)] Session ended
131
+ [$(date)] Session ended
132
+ [$(date)] Session ended
133
+ [$(date)] Session ended
134
+ [$(date)] Session ended
135
+ [$(date)] Session ended
136
+ [$(date)] Session ended
137
+ [$(date)] Session ended
138
+ [$(date)] Session ended
139
+ [$(date)] Session ended
140
+ [$(date)] Session ended
141
+ [$(date)] Session ended
142
+ [$(date)] Session ended
143
+ [$(date)] Session ended
144
+ [$(date)] Session ended
145
+ [$(date)] Session ended
146
+ [$(date)] Session ended
147
+ [$(date)] Session ended
148
+ [$(date)] Session ended
149
+ [$(date)] Session ended
150
+ [$(date)] Session ended
151
+ [$(date)] Session ended
152
+ [$(date)] Session ended
153
+ [$(date)] Session ended
154
+ [$(date)] Session ended
155
+ [$(date)] Session ended
156
+ [$(date)] Session ended
157
+ [$(date)] Session ended
158
+ [$(date)] Session ended
159
+ [$(date)] Session ended
160
+ [$(date)] Session ended
161
+ [$(date)] Session ended
162
+ [$(date)] Session ended
163
+ [$(date)] Session ended
164
+ [$(date)] Session ended
165
+ [$(date)] Session ended
166
+ [$(date)] Session ended
167
+ [$(date)] Session ended
168
+ [$(date)] Session ended
169
+ [$(date)] Session ended
170
+ [$(date)] Session ended
171
+ [$(date)] Session ended
172
+ [$(date)] Session ended
173
+ [$(date)] Session ended
174
+ [$(date)] Session ended
175
+ [$(date)] Session ended
176
+ [$(date)] Session ended
177
+ [$(date)] Session ended
178
+ [$(date)] Session ended
179
+ [$(date)] Session ended
180
+ [$(date)] Session ended
181
+ [$(date)] Session ended
182
+ [$(date)] Session ended
183
+ [$(date)] Session ended
184
+ [$(date)] Session ended
185
+ [$(date)] Session ended
186
+ [$(date)] Session ended
187
+ [$(date)] Session ended
188
+ [$(date)] Session ended
189
+ [$(date)] Session ended
190
+ [$(date)] Session ended
191
+ [$(date)] Session ended
192
+ [$(date)] Session ended
193
+ [$(date)] Session ended
194
+ [$(date)] Session ended
195
+ [$(date)] Session ended
196
+ [$(date)] Session ended
197
+ [$(date)] Session ended
198
+ [$(date)] Session ended
199
+ [$(date)] Session ended
200
+ [$(date)] Session ended
201
+ [$(date)] Session ended
202
+ [$(date)] Session ended
203
+ [$(date)] Session ended
204
+ [$(date)] Session ended
205
+ [$(date)] Session ended
206
+ [$(date)] Session ended
207
+ [$(date)] Session ended
208
+ [$(date)] Session ended
209
+ [$(date)] Session ended
210
+ [$(date)] Session ended
211
+ [$(date)] Session ended
212
+ [$(date)] Session ended
213
+ [$(date)] Session ended
214
+ [$(date)] Session ended
215
+ [$(date)] Session ended
216
+ [$(date)] Session ended
217
+ [$(date)] Session ended
218
+ [$(date)] Session ended
219
+ [$(date)] Session ended
220
+ [$(date)] Session ended
221
+ [$(date)] Session ended
222
+ [$(date)] Session ended
223
+ [$(date)] Session ended
224
+ [$(date)] Session ended
225
+ [$(date)] Session ended
226
+ [$(date)] Session ended
227
+ [$(date)] Session ended
228
+ [$(date)] Session ended
229
+ [$(date)] Session ended
230
+ [$(date)] Session ended
231
+ [$(date)] Session ended
232
+ [$(date)] Session ended
233
+ [$(date)] Session ended
234
+ [$(date)] Session ended
235
+ [$(date)] Session ended
236
+ [$(date)] Session ended
237
+ [$(date)] Session ended
238
+ [$(date)] Session ended
239
+ [$(date)] Session ended
240
+ [$(date)] Session ended
241
+ [$(date)] Session ended
242
+ [$(date)] Session ended
243
+ [$(date)] Session ended
244
+ [$(date)] Session ended
245
+ [$(date)] Session ended
246
+ [$(date)] Session ended
247
+ [$(date)] Session ended
248
+ [$(date)] Session ended
249
+ [$(date)] Session ended
250
+ [$(date)] Session ended
251
+ [$(date)] Session ended
252
+ [$(date)] Session ended
253
+ [$(date)] Session ended
254
+ [$(date)] Session ended
255
+ [$(date)] Session ended
256
+ [$(date)] Session ended
257
+ [$(date)] Session ended
258
+ [$(date)] Session ended
259
+ [$(date)] Session ended
260
+ [$(date)] Session ended
261
+ [$(date)] Session ended
262
+ [$(date)] Session ended
263
+ [$(date)] Session ended
264
+ [$(date)] Session ended
265
+ [$(date)] Session ended
266
+ [$(date)] Session ended
267
+ [$(date)] Session ended
268
+ [$(date)] Session ended
269
+ [$(date)] Session ended
270
+ [$(date)] Session ended
271
+ [$(date)] Session ended
272
+ [$(date)] Session ended
273
+ [$(date)] Session ended
274
+ [$(date)] Session ended
275
+ [$(date)] Session ended
276
+ [$(date)] Session ended
277
+ [$(date)] Session ended
278
+ [$(date)] Session ended
279
+ [$(date)] Session ended
280
+ [$(date)] Session ended
281
+ [$(date)] Session ended
282
+ [$(date)] Session ended
283
+ [$(date)] Session ended
284
+ [$(date)] Session ended
285
+ [$(date)] Session ended
286
+ [$(date)] Session ended
287
+ [$(date)] Session ended
288
+ [$(date)] Session ended
289
+ [$(date)] Session ended
290
+ [$(date)] Session ended
291
+ [$(date)] Session ended
292
+ [$(date)] Session ended
293
+ [$(date)] Session ended
294
+ [$(date)] Session ended
295
+ [$(date)] Session ended
296
+ [$(date)] Session ended
297
+ [$(date)] Session ended
298
+ [$(date)] Session ended
299
+ [$(date)] Session ended
300
+ [$(date)] Session ended
301
+ [$(date)] Session ended
302
+ [$(date)] Session ended
303
+ [$(date)] Session ended
304
+ [$(date)] Session ended
305
+ [$(date)] Session ended
306
+ [$(date)] Session ended
307
+ [$(date)] Session ended
308
+ [$(date)] Session ended
309
+ [$(date)] Session ended
310
+ [$(date)] Session ended
311
+ [$(date)] Session ended
312
+ [$(date)] Session ended
313
+ [$(date)] Session ended
314
+ [$(date)] Session ended
315
+ [$(date)] Session ended
316
+ [$(date)] Session ended
317
+ [$(date)] Session ended
318
+ [$(date)] Session ended
319
+ [$(date)] Session ended
320
+ [$(date)] Session ended
321
+ [$(date)] Session ended
322
+ [$(date)] Session ended
323
+ [$(date)] Session ended
324
+ [$(date)] Session ended
325
+ [$(date)] Session ended
326
+ [$(date)] Session ended
327
+ [$(date)] Session ended
328
+ [$(date)] Session ended
329
+ [$(date)] Session ended
330
+ [$(date)] Session ended
331
+ [$(date)] Session ended
332
+ [$(date)] Session ended
333
+ [$(date)] Session ended
334
+ [$(date)] Session ended
335
+ [$(date)] Session ended
336
+ [$(date)] Session ended
337
+ [$(date)] Session ended
338
+ [$(date)] Session ended
339
+ [$(date)] Session ended
340
+ [$(date)] Session ended
341
+ [$(date)] Session ended
342
+ [$(date)] Session ended
343
+ [$(date)] Session ended
344
+ [$(date)] Session ended
345
+ [$(date)] Session ended
346
+ [$(date)] Session ended
347
+ [$(date)] Session ended
348
+ [$(date)] Session ended
349
+ [$(date)] Session ended
350
+ [$(date)] Session ended
351
+ [$(date)] Session ended
352
+ [$(date)] Session ended
353
+ [$(date)] Session ended
354
+ [$(date)] Session ended
355
+ [$(date)] Session ended
356
+ [$(date)] Session ended
357
+ [$(date)] Session ended
358
+ [$(date)] Session ended
359
+ [$(date)] Session ended
360
+ [$(date)] Session ended
361
+ [$(date)] Session ended
362
+ [$(date)] Session ended
363
+ [$(date)] Session ended
364
+ [$(date)] Session ended
365
+ [$(date)] Session ended
366
+ [$(date)] Session ended
@@ -0,0 +1,50 @@
1
+ {
2
+ "hooks": {
3
+ "PreToolUse": [
4
+ {
5
+ "matcher": "Write",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "python3 -c \"\nimport sys, json, os\ntry:\n inp = json.load(sys.stdin)\n path = inp.get('tool_input', {}).get('file_path', '')\n root = '/Users/udayshankar/Documents/AgentIQ'\n rel = os.path.relpath(path, root)\n depth = len(rel.split(os.sep))\n blocked = ['_archive', '.git']\n name = os.path.basename(path)\n if depth == 1 and path.endswith('.py') and not name in ['config.py', 'setup.py', 'pyproject.toml']:\n print(f'BLOCK: Creating {name} in project root is not allowed. Place files in the correct module directory.')\n sys.exit(1)\nexcept: pass\n\""
10
+ }
11
+ ]
12
+ }
13
+ ],
14
+ "PostToolUse": [
15
+ {
16
+ "matcher": "Write",
17
+ "hooks": [
18
+ {
19
+ "type": "command",
20
+ "command": "ruff check . --quiet"
21
+ }
22
+ ]
23
+ }
24
+ ],
25
+ "Stop": [
26
+ {
27
+ "hooks": [
28
+ {
29
+ "type": "command",
30
+ "command": "echo '[$(date)] Session ended' >> .claude/session_log.txt"
31
+ }
32
+ ]
33
+ }
34
+ ]
35
+ },
36
+ "permissions": {
37
+ "defaultMode": "acceptEdits",
38
+ "allow": [
39
+ "Bash(pytest:*)",
40
+ "Bash(ruff:*)",
41
+ "Bash(mypy:*)",
42
+ "Bash(alembic:*)",
43
+ "Bash(git add:*)",
44
+ "Bash(git commit:*)"
45
+ ],
46
+ "deny": [
47
+ "Bash(rm -rf:*)"
48
+ ]
49
+ }
50
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "WebFetch(domain:arize.com)",
5
+ "WebFetch(domain:github.com)"
6
+ ]
7
+ }
8
+ }
@@ -0,0 +1,28 @@
1
+ # AgentIQ Configuration
2
+ # Copy this file to .env and fill in your values
3
+ # Never commit .env to git
4
+
5
+ # Required: Anthropic API key (used by the LLM judge)
6
+ ANTHROPIC_API_KEY=your-anthropic-api-key-here
7
+
8
+ # Required for Docker self-host: PostgreSQL password
9
+ POSTGRES_PASSWORD=choose-a-strong-password-here
10
+
11
+ # Database connection
12
+ # Local dev (SQLite, zero config): leave as-is
13
+ # Docker / self-hosted (PostgreSQL): postgresql://agentiq:<POSTGRES_PASSWORD>@postgres:5432/agentiq
14
+ # Render (PostgreSQL): set automatically by Render
15
+ DATABASE_URL=sqlite:///./agentiq.db
16
+
17
+ # SDK auth key — SDK callers must send: Authorization: Bearer <key>
18
+ # Leave empty to allow all requests (dev mode / no auth)
19
+ AGENTIQ_API_KEY=
20
+
21
+ # Dashboard: URL of the AgentIQ API (used by Streamlit to call analytics endpoints)
22
+ # Local dev: http://localhost:8000
23
+ # Docker: http://api:8000
24
+ # Render: https://agentiq-api-z9it.onrender.com
25
+ AGENTIQ_API_ENDPOINT=http://localhost:8000
26
+
27
+ # Set to "true" to auto-seed 500 demo sessions when API starts and DB is empty
28
+ SEED_ON_STARTUP=false
@@ -0,0 +1,59 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+ inputs:
8
+ test_pypi:
9
+ description: "Publish to TestPyPI instead of PyPI"
10
+ type: boolean
11
+ default: false
12
+
13
+ jobs:
14
+ build:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.11"
22
+
23
+ - name: Install build tools
24
+ run: pip install build hatchling
25
+
26
+ - name: Build sdist and wheel
27
+ run: python -m build
28
+
29
+ - name: Upload build artifacts
30
+ uses: actions/upload-artifact@v4
31
+ with:
32
+ name: dist
33
+ path: dist/
34
+
35
+ publish:
36
+ needs: build
37
+ runs-on: ubuntu-latest
38
+ environment:
39
+ name: ${{ github.event.inputs.test_pypi == 'true' && 'testpypi' || 'pypi' }}
40
+ url: ${{ github.event.inputs.test_pypi == 'true' && 'https://test.pypi.org/p/agentiq' || 'https://pypi.org/p/agentiq' }}
41
+ permissions:
42
+ id-token: write # required for trusted publishing (no API token needed)
43
+
44
+ steps:
45
+ - name: Download build artifacts
46
+ uses: actions/download-artifact@v4
47
+ with:
48
+ name: dist
49
+ path: dist/
50
+
51
+ - name: Publish to TestPyPI
52
+ if: github.event.inputs.test_pypi == 'true'
53
+ uses: pypa/gh-action-pypi-publish@release/v1
54
+ with:
55
+ repository-url: https://test.pypi.org/legacy/
56
+
57
+ - name: Publish to PyPI
58
+ if: github.event.inputs.test_pypi != 'true'
59
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,43 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ venv/
8
+ env/
9
+ ENV/
10
+
11
+ # Environment variables
12
+ .env
13
+ .env.local
14
+
15
+ # Database
16
+ *.db
17
+ *.sqlite3
18
+ agentiq.db
19
+
20
+ # IDE
21
+ .vscode/
22
+ .idea/
23
+ *.swp
24
+ *.swo
25
+
26
+ # OS
27
+ .DS_Store
28
+ Thumbs.db
29
+
30
+ # Logs
31
+ *.log
32
+
33
+ # Railway
34
+ .railway/
35
+
36
+ # Test artifacts
37
+ .coverage
38
+ .pytest_cache/
39
+ .tox/
40
+
41
+ # Deployment scripts (keep local)
42
+ deploy_to_render.py
43
+ auto_deploy.py
@@ -0,0 +1 @@
1
+ 3.11.9