@techwavedev/agi-agent-kit 1.6.0 → 1.6.1

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 (646) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/package.json +1 -1
  3. package/templates/base/.env.example +28 -0
  4. package/templates/base/docker-compose.aries.yml +47 -0
  5. package/templates/base/docker-compose.pulsar.yml +29 -0
  6. package/templates/base/execution/agent_events.py +349 -0
  7. package/templates/base/execution/blockchain_auth.py +515 -0
  8. package/templates/base/execution/dispatch_agent_team.py +24 -5
  9. package/templates/base/execution/memory_manager.py +142 -10
  10. package/templates/base/execution/run_test_scenario.py +109 -6
  11. package/templates/base/execution/session_boot.py +82 -0
  12. package/templates/base/execution/session_init.py +48 -4
  13. package/templates/base/execution/test_qdrant_handoff.py +578 -0
  14. package/templates/base/tests/test_agent_events.py +249 -0
  15. package/templates/base/tests/test_blockchain_auth.py +375 -0
  16. package/templates/base/tests/test_multi_tenancy.py +296 -0
  17. package/templates/skills/core/documentation/scripts/__pycache__/analyze_code.cpython-312.pyc +0 -0
  18. package/templates/skills/core/documentation/scripts/__pycache__/detect_changes.cpython-312.pyc +0 -0
  19. package/templates/skills/core/documentation/scripts/__pycache__/generate_changelog.cpython-312.pyc +0 -0
  20. package/templates/skills/core/documentation/scripts/__pycache__/sync_docs.cpython-312.pyc +0 -0
  21. package/templates/skills/core/documentation/scripts/__pycache__/update_skill_docs.cpython-312.pyc +0 -0
  22. package/templates/skills/core/pdf-reader/scripts/__pycache__/extract_text.cpython-312.pyc +0 -0
  23. package/templates/skills/core/qdrant-memory/scripts/__pycache__/benchmark_token_savings.cpython-312.pyc +0 -0
  24. package/templates/skills/core/qdrant-memory/scripts/__pycache__/bm25_index.cpython-312.pyc +0 -0
  25. package/templates/skills/core/qdrant-memory/scripts/__pycache__/embedding_utils.cpython-312.pyc +0 -0
  26. package/templates/skills/core/qdrant-memory/scripts/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  27. package/templates/skills/core/qdrant-memory/scripts/__pycache__/init_collection.cpython-312.pyc +0 -0
  28. package/templates/skills/core/qdrant-memory/scripts/__pycache__/memory_retrieval.cpython-312.pyc +0 -0
  29. package/templates/skills/core/qdrant-memory/scripts/__pycache__/semantic_cache.cpython-312.pyc +0 -0
  30. package/templates/skills/core/qdrant-memory/scripts/__pycache__/test_skill.cpython-312.pyc +0 -0
  31. package/templates/skills/core/qdrant-memory/scripts/memory_retrieval.py +110 -10
  32. package/templates/skills/core/webcrawler/scripts/__pycache__/crawl_docs.cpython-312.pyc +0 -0
  33. package/templates/skills/core/webcrawler/scripts/__pycache__/extract_page.cpython-312.pyc +0 -0
  34. package/templates/skills/core/webcrawler/scripts/__pycache__/filter_docs.cpython-312.pyc +0 -0
  35. package/templates/skills/extended/ai-agents/last30days/scripts/__pycache__/last30days.cpython-312.pyc +0 -0
  36. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/__init__.cpython-312.pyc +0 -0
  37. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/cache.cpython-312.pyc +0 -0
  38. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dates.cpython-312.pyc +0 -0
  39. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dedupe.cpython-312.pyc +0 -0
  40. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/env.cpython-312.pyc +0 -0
  41. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/http.cpython-312.pyc +0 -0
  42. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/models.cpython-312.pyc +0 -0
  43. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/normalize.cpython-312.pyc +0 -0
  44. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/openai_reddit.cpython-312.pyc +0 -0
  45. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/reddit_enrich.cpython-312.pyc +0 -0
  46. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/render.cpython-312.pyc +0 -0
  47. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/schema.cpython-312.pyc +0 -0
  48. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/score.cpython-312.pyc +0 -0
  49. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/ui.cpython-312.pyc +0 -0
  50. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/websearch.cpython-312.pyc +0 -0
  51. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/xai_x.cpython-312.pyc +0 -0
  52. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  53. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_cache.cpython-312.pyc +0 -0
  54. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dates.cpython-312.pyc +0 -0
  55. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dedupe.cpython-312.pyc +0 -0
  56. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_models.cpython-312.pyc +0 -0
  57. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_normalize.cpython-312.pyc +0 -0
  58. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_render.cpython-312.pyc +0 -0
  59. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_score.cpython-312.pyc +0 -0
  60. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/complete_voice_engine.cpython-312.pyc +0 -0
  61. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/gemini_agent_example.cpython-312.pyc +0 -0
  62. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/interrupt_system_example.cpython-312.pyc +0 -0
  63. package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/base_worker_template.cpython-312.pyc +0 -0
  64. package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/multi_provider_factory_template.cpython-312.pyc +0 -0
  65. package/templates/skills/extended/ai-agents/youtube-summarizer/scripts/__pycache__/extract-transcript.cpython-312.pyc +0 -0
  66. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/architecture_diagram_generator.cpython-312.pyc +0 -0
  67. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/dependency_analyzer.cpython-312.pyc +0 -0
  68. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/project_architect.cpython-312.pyc +0 -0
  69. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
  70. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
  71. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
  72. package/templates/skills/extended/data/pdf/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
  73. package/templates/skills/extended/data/pdf/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
  74. package/templates/skills/extended/data/pdf/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
  75. package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
  76. package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
  77. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
  78. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
  79. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
  80. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
  81. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
  82. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
  83. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
  84. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
  85. package/templates/skills/extended/data/xlsx/__pycache__/recalc.cpython-312.pyc +0 -0
  86. package/templates/skills/extended/data/xlsx-official/__pycache__/recalc.cpython-312.pyc +0 -0
  87. package/templates/skills/extended/devops/capi-mcp-gateway/SKILL.md +343 -0
  88. package/templates/skills/extended/devops/capi-mcp-gateway/references/agent_loop.md +237 -0
  89. package/templates/skills/extended/devops/capi-mcp-gateway/references/configuration.md +200 -0
  90. package/templates/skills/extended/devops/capi-mcp-gateway/references/security.md +199 -0
  91. package/templates/skills/extended/devops/capi-mcp-gateway/scripts/__pycache__/capi_mcp_client.cpython-312.pyc +0 -0
  92. package/templates/skills/extended/devops/capi-mcp-gateway/scripts/capi_mcp_client.py +255 -0
  93. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/0.cpython-312.pyc +0 -0
  94. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/1.cpython-312.pyc +0 -0
  95. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/10.cpython-312.pyc +0 -0
  96. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/100.cpython-312.pyc +0 -0
  97. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/101.cpython-312.pyc +0 -0
  98. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/102.cpython-312.pyc +0 -0
  99. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/103.cpython-312.pyc +0 -0
  100. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/104.cpython-312.pyc +0 -0
  101. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/105.cpython-312.pyc +0 -0
  102. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/106.cpython-312.pyc +0 -0
  103. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/107.cpython-312.pyc +0 -0
  104. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/108.cpython-312.pyc +0 -0
  105. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/109.cpython-312.pyc +0 -0
  106. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/11.cpython-312.pyc +0 -0
  107. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/110.cpython-312.pyc +0 -0
  108. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/111.cpython-312.pyc +0 -0
  109. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/112.cpython-312.pyc +0 -0
  110. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/113.cpython-312.pyc +0 -0
  111. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/114.cpython-312.pyc +0 -0
  112. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/115.cpython-312.pyc +0 -0
  113. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/116.cpython-312.pyc +0 -0
  114. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/117.cpython-312.pyc +0 -0
  115. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/118.cpython-312.pyc +0 -0
  116. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/119.cpython-312.pyc +0 -0
  117. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/12.cpython-312.pyc +0 -0
  118. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/120.cpython-312.pyc +0 -0
  119. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/121.cpython-312.pyc +0 -0
  120. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/122.cpython-312.pyc +0 -0
  121. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/123.cpython-312.pyc +0 -0
  122. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/124.cpython-312.pyc +0 -0
  123. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/125.cpython-312.pyc +0 -0
  124. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/126.cpython-312.pyc +0 -0
  125. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/127.cpython-312.pyc +0 -0
  126. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/128.cpython-312.pyc +0 -0
  127. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/129.cpython-312.pyc +0 -0
  128. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/13.cpython-312.pyc +0 -0
  129. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/130.cpython-312.pyc +0 -0
  130. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/131.cpython-312.pyc +0 -0
  131. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/132.cpython-312.pyc +0 -0
  132. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/133.cpython-312.pyc +0 -0
  133. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/134.cpython-312.pyc +0 -0
  134. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/135.cpython-312.pyc +0 -0
  135. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/136.cpython-312.pyc +0 -0
  136. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/137.cpython-312.pyc +0 -0
  137. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/138.cpython-312.pyc +0 -0
  138. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/139.cpython-312.pyc +0 -0
  139. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/14.cpython-312.pyc +0 -0
  140. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/140.cpython-312.pyc +0 -0
  141. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/141.cpython-312.pyc +0 -0
  142. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/142.cpython-312.pyc +0 -0
  143. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/143.cpython-312.pyc +0 -0
  144. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/144.cpython-312.pyc +0 -0
  145. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/145.cpython-312.pyc +0 -0
  146. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/146.cpython-312.pyc +0 -0
  147. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/147.cpython-312.pyc +0 -0
  148. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/148.cpython-312.pyc +0 -0
  149. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/149.cpython-312.pyc +0 -0
  150. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/15.cpython-312.pyc +0 -0
  151. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/150.cpython-312.pyc +0 -0
  152. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/151.cpython-312.pyc +0 -0
  153. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/152.cpython-312.pyc +0 -0
  154. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/153.cpython-312.pyc +0 -0
  155. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/154.cpython-312.pyc +0 -0
  156. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/155.cpython-312.pyc +0 -0
  157. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/156.cpython-312.pyc +0 -0
  158. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/157.cpython-312.pyc +0 -0
  159. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/158.cpython-312.pyc +0 -0
  160. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/159.cpython-312.pyc +0 -0
  161. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/16.cpython-312.pyc +0 -0
  162. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/160.cpython-312.pyc +0 -0
  163. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/161.cpython-312.pyc +0 -0
  164. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/162.cpython-312.pyc +0 -0
  165. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/163.cpython-312.pyc +0 -0
  166. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/17.cpython-312.pyc +0 -0
  167. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/18.cpython-312.pyc +0 -0
  168. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/19.cpython-312.pyc +0 -0
  169. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/2.cpython-312.pyc +0 -0
  170. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/20.cpython-312.pyc +0 -0
  171. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/21.cpython-312.pyc +0 -0
  172. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/22.cpython-312.pyc +0 -0
  173. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/23.cpython-312.pyc +0 -0
  174. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/24.cpython-312.pyc +0 -0
  175. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/25.cpython-312.pyc +0 -0
  176. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/26.cpython-312.pyc +0 -0
  177. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/27.cpython-312.pyc +0 -0
  178. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/28.cpython-312.pyc +0 -0
  179. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/29.cpython-312.pyc +0 -0
  180. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/3.cpython-312.pyc +0 -0
  181. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/30.cpython-312.pyc +0 -0
  182. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/31.cpython-312.pyc +0 -0
  183. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/32.cpython-312.pyc +0 -0
  184. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/33.cpython-312.pyc +0 -0
  185. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/34.cpython-312.pyc +0 -0
  186. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/35.cpython-312.pyc +0 -0
  187. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/36.cpython-312.pyc +0 -0
  188. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/37.cpython-312.pyc +0 -0
  189. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/38.cpython-312.pyc +0 -0
  190. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/39.cpython-312.pyc +0 -0
  191. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/4.cpython-312.pyc +0 -0
  192. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/40.cpython-312.pyc +0 -0
  193. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/41.cpython-312.pyc +0 -0
  194. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/42.cpython-312.pyc +0 -0
  195. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/43.cpython-312.pyc +0 -0
  196. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/44.cpython-312.pyc +0 -0
  197. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/45.cpython-312.pyc +0 -0
  198. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/46.cpython-312.pyc +0 -0
  199. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/47.cpython-312.pyc +0 -0
  200. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/48.cpython-312.pyc +0 -0
  201. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/49.cpython-312.pyc +0 -0
  202. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/5.cpython-312.pyc +0 -0
  203. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/50.cpython-312.pyc +0 -0
  204. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/51.cpython-312.pyc +0 -0
  205. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/52.cpython-312.pyc +0 -0
  206. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/53.cpython-312.pyc +0 -0
  207. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/54.cpython-312.pyc +0 -0
  208. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/55.cpython-312.pyc +0 -0
  209. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/56.cpython-312.pyc +0 -0
  210. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/57.cpython-312.pyc +0 -0
  211. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/58.cpython-312.pyc +0 -0
  212. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/59.cpython-312.pyc +0 -0
  213. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/6.cpython-312.pyc +0 -0
  214. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/60.cpython-312.pyc +0 -0
  215. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/61.cpython-312.pyc +0 -0
  216. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/62.cpython-312.pyc +0 -0
  217. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/63.cpython-312.pyc +0 -0
  218. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/64.cpython-312.pyc +0 -0
  219. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/65.cpython-312.pyc +0 -0
  220. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/66.cpython-312.pyc +0 -0
  221. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/67.cpython-312.pyc +0 -0
  222. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/68.cpython-312.pyc +0 -0
  223. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/69.cpython-312.pyc +0 -0
  224. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/7.cpython-312.pyc +0 -0
  225. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/70.cpython-312.pyc +0 -0
  226. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/71.cpython-312.pyc +0 -0
  227. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/72.cpython-312.pyc +0 -0
  228. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/73.cpython-312.pyc +0 -0
  229. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/74.cpython-312.pyc +0 -0
  230. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/75.cpython-312.pyc +0 -0
  231. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/76.cpython-312.pyc +0 -0
  232. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/77.cpython-312.pyc +0 -0
  233. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/78.cpython-312.pyc +0 -0
  234. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/79.cpython-312.pyc +0 -0
  235. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/8.cpython-312.pyc +0 -0
  236. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/80.cpython-312.pyc +0 -0
  237. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/81.cpython-312.pyc +0 -0
  238. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/82.cpython-312.pyc +0 -0
  239. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/83.cpython-312.pyc +0 -0
  240. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/84.cpython-312.pyc +0 -0
  241. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/85.cpython-312.pyc +0 -0
  242. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/86.cpython-312.pyc +0 -0
  243. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/87.cpython-312.pyc +0 -0
  244. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/88.cpython-312.pyc +0 -0
  245. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/89.cpython-312.pyc +0 -0
  246. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/9.cpython-312.pyc +0 -0
  247. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/90.cpython-312.pyc +0 -0
  248. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/91.cpython-312.pyc +0 -0
  249. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/92.cpython-312.pyc +0 -0
  250. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/93.cpython-312.pyc +0 -0
  251. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/94.cpython-312.pyc +0 -0
  252. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/95.cpython-312.pyc +0 -0
  253. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/96.cpython-312.pyc +0 -0
  254. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/97.cpython-312.pyc +0 -0
  255. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/98.cpython-312.pyc +0 -0
  256. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/99.cpython-312.pyc +0 -0
  257. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/0.cpython-312.pyc +0 -0
  258. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/1.cpython-312.pyc +0 -0
  259. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/10.cpython-312.pyc +0 -0
  260. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/100.cpython-312.pyc +0 -0
  261. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/101.cpython-312.pyc +0 -0
  262. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/102.cpython-312.pyc +0 -0
  263. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/103.cpython-312.pyc +0 -0
  264. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/104.cpython-312.pyc +0 -0
  265. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/105.cpython-312.pyc +0 -0
  266. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/106.cpython-312.pyc +0 -0
  267. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/107.cpython-312.pyc +0 -0
  268. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/108.cpython-312.pyc +0 -0
  269. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/109.cpython-312.pyc +0 -0
  270. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/11.cpython-312.pyc +0 -0
  271. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/110.cpython-312.pyc +0 -0
  272. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/111.cpython-312.pyc +0 -0
  273. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/112.cpython-312.pyc +0 -0
  274. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/113.cpython-312.pyc +0 -0
  275. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/114.cpython-312.pyc +0 -0
  276. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/115.cpython-312.pyc +0 -0
  277. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/116.cpython-312.pyc +0 -0
  278. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/117.cpython-312.pyc +0 -0
  279. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/118.cpython-312.pyc +0 -0
  280. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/119.cpython-312.pyc +0 -0
  281. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/12.cpython-312.pyc +0 -0
  282. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/120.cpython-312.pyc +0 -0
  283. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/121.cpython-312.pyc +0 -0
  284. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/122.cpython-312.pyc +0 -0
  285. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/123.cpython-312.pyc +0 -0
  286. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/124.cpython-312.pyc +0 -0
  287. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/125.cpython-312.pyc +0 -0
  288. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/126.cpython-312.pyc +0 -0
  289. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/127.cpython-312.pyc +0 -0
  290. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/128.cpython-312.pyc +0 -0
  291. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/129.cpython-312.pyc +0 -0
  292. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/13.cpython-312.pyc +0 -0
  293. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/130.cpython-312.pyc +0 -0
  294. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/131.cpython-312.pyc +0 -0
  295. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/132.cpython-312.pyc +0 -0
  296. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/133.cpython-312.pyc +0 -0
  297. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/134.cpython-312.pyc +0 -0
  298. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/135.cpython-312.pyc +0 -0
  299. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/136.cpython-312.pyc +0 -0
  300. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/137.cpython-312.pyc +0 -0
  301. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/138.cpython-312.pyc +0 -0
  302. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/139.cpython-312.pyc +0 -0
  303. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/14.cpython-312.pyc +0 -0
  304. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/140.cpython-312.pyc +0 -0
  305. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/141.cpython-312.pyc +0 -0
  306. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/142.cpython-312.pyc +0 -0
  307. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/143.cpython-312.pyc +0 -0
  308. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/144.cpython-312.pyc +0 -0
  309. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/145.cpython-312.pyc +0 -0
  310. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/146.cpython-312.pyc +0 -0
  311. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/147.cpython-312.pyc +0 -0
  312. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/148.cpython-312.pyc +0 -0
  313. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/149.cpython-312.pyc +0 -0
  314. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/15.cpython-312.pyc +0 -0
  315. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/150.cpython-312.pyc +0 -0
  316. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/151.cpython-312.pyc +0 -0
  317. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/152.cpython-312.pyc +0 -0
  318. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/153.cpython-312.pyc +0 -0
  319. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/154.cpython-312.pyc +0 -0
  320. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/155.cpython-312.pyc +0 -0
  321. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/156.cpython-312.pyc +0 -0
  322. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/157.cpython-312.pyc +0 -0
  323. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/158.cpython-312.pyc +0 -0
  324. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/159.cpython-312.pyc +0 -0
  325. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/16.cpython-312.pyc +0 -0
  326. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/160.cpython-312.pyc +0 -0
  327. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/161.cpython-312.pyc +0 -0
  328. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/162.cpython-312.pyc +0 -0
  329. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/163.cpython-312.pyc +0 -0
  330. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/17.cpython-312.pyc +0 -0
  331. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/18.cpython-312.pyc +0 -0
  332. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/19.cpython-312.pyc +0 -0
  333. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/2.cpython-312.pyc +0 -0
  334. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/20.cpython-312.pyc +0 -0
  335. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/21.cpython-312.pyc +0 -0
  336. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/22.cpython-312.pyc +0 -0
  337. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/23.cpython-312.pyc +0 -0
  338. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/24.cpython-312.pyc +0 -0
  339. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/25.cpython-312.pyc +0 -0
  340. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/26.cpython-312.pyc +0 -0
  341. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/27.cpython-312.pyc +0 -0
  342. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/28.cpython-312.pyc +0 -0
  343. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/29.cpython-312.pyc +0 -0
  344. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/3.cpython-312.pyc +0 -0
  345. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/30.cpython-312.pyc +0 -0
  346. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/31.cpython-312.pyc +0 -0
  347. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/32.cpython-312.pyc +0 -0
  348. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/33.cpython-312.pyc +0 -0
  349. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/34.cpython-312.pyc +0 -0
  350. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/35.cpython-312.pyc +0 -0
  351. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/36.cpython-312.pyc +0 -0
  352. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/37.cpython-312.pyc +0 -0
  353. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/38.cpython-312.pyc +0 -0
  354. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/39.cpython-312.pyc +0 -0
  355. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/4.cpython-312.pyc +0 -0
  356. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/40.cpython-312.pyc +0 -0
  357. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/41.cpython-312.pyc +0 -0
  358. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/42.cpython-312.pyc +0 -0
  359. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/43.cpython-312.pyc +0 -0
  360. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/44.cpython-312.pyc +0 -0
  361. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/45.cpython-312.pyc +0 -0
  362. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/46.cpython-312.pyc +0 -0
  363. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/47.cpython-312.pyc +0 -0
  364. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/48.cpython-312.pyc +0 -0
  365. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/49.cpython-312.pyc +0 -0
  366. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/5.cpython-312.pyc +0 -0
  367. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/50.cpython-312.pyc +0 -0
  368. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/51.cpython-312.pyc +0 -0
  369. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/52.cpython-312.pyc +0 -0
  370. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/53.cpython-312.pyc +0 -0
  371. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/54.cpython-312.pyc +0 -0
  372. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/55.cpython-312.pyc +0 -0
  373. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/56.cpython-312.pyc +0 -0
  374. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/57.cpython-312.pyc +0 -0
  375. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/58.cpython-312.pyc +0 -0
  376. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/59.cpython-312.pyc +0 -0
  377. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/6.cpython-312.pyc +0 -0
  378. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/60.cpython-312.pyc +0 -0
  379. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/61.cpython-312.pyc +0 -0
  380. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/62.cpython-312.pyc +0 -0
  381. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/63.cpython-312.pyc +0 -0
  382. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/64.cpython-312.pyc +0 -0
  383. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/65.cpython-312.pyc +0 -0
  384. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/66.cpython-312.pyc +0 -0
  385. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/67.cpython-312.pyc +0 -0
  386. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/68.cpython-312.pyc +0 -0
  387. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/69.cpython-312.pyc +0 -0
  388. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/7.cpython-312.pyc +0 -0
  389. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/70.cpython-312.pyc +0 -0
  390. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/71.cpython-312.pyc +0 -0
  391. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/72.cpython-312.pyc +0 -0
  392. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/73.cpython-312.pyc +0 -0
  393. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/74.cpython-312.pyc +0 -0
  394. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/75.cpython-312.pyc +0 -0
  395. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/76.cpython-312.pyc +0 -0
  396. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/77.cpython-312.pyc +0 -0
  397. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/78.cpython-312.pyc +0 -0
  398. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/79.cpython-312.pyc +0 -0
  399. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/8.cpython-312.pyc +0 -0
  400. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/80.cpython-312.pyc +0 -0
  401. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/81.cpython-312.pyc +0 -0
  402. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/82.cpython-312.pyc +0 -0
  403. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/83.cpython-312.pyc +0 -0
  404. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/84.cpython-312.pyc +0 -0
  405. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/85.cpython-312.pyc +0 -0
  406. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/86.cpython-312.pyc +0 -0
  407. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/87.cpython-312.pyc +0 -0
  408. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/88.cpython-312.pyc +0 -0
  409. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/89.cpython-312.pyc +0 -0
  410. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/9.cpython-312.pyc +0 -0
  411. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/90.cpython-312.pyc +0 -0
  412. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/91.cpython-312.pyc +0 -0
  413. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/92.cpython-312.pyc +0 -0
  414. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/93.cpython-312.pyc +0 -0
  415. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/94.cpython-312.pyc +0 -0
  416. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/95.cpython-312.pyc +0 -0
  417. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/96.cpython-312.pyc +0 -0
  418. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/97.cpython-312.pyc +0 -0
  419. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/98.cpython-312.pyc +0 -0
  420. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/99.cpython-312.pyc +0 -0
  421. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  422. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  423. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  424. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  425. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  426. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  427. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  428. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  429. package/templates/skills/extended/documentation/docx/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  430. package/templates/skills/extended/documentation/docx/scripts/__pycache__/document.cpython-312.pyc +0 -0
  431. package/templates/skills/extended/documentation/docx/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
  432. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  433. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  434. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  435. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  436. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  437. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  438. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  439. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  440. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  441. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/document.cpython-312.pyc +0 -0
  442. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
  443. package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/customer_interview_analyzer.cpython-312.pyc +0 -0
  444. package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/rice_prioritizer.cpython-312.pyc +0 -0
  445. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  446. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  447. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  448. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  449. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  450. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  451. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  452. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  453. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
  454. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
  455. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/replace.cpython-312.pyc +0 -0
  456. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
  457. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  458. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  459. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  460. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  461. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  462. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  463. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  464. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  465. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
  466. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
  467. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/replace.cpython-312.pyc +0 -0
  468. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
  469. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/code_quality_analyzer.cpython-312.pyc +0 -0
  470. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/fullstack_scaffolder.cpython-312.pyc +0 -0
  471. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/project_scaffolder.cpython-312.pyc +0 -0
  472. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/init_skill.cpython-312.pyc +0 -0
  473. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
  474. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  475. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/data/__pycache__/_sync_all.cpython-312.pyc +0 -0
  476. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/core.cpython-312.pyc +0 -0
  477. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  478. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/search.cpython-312.pyc +0 -0
  479. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  480. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  481. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
  482. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/data/__pycache__/_sync_all.cpython-312.pyc +0 -0
  483. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  484. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  485. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
  486. package/templates/skills/extended/gaming/audio-transcriber/scripts/__pycache__/transcribe.cpython-312.pyc +0 -0
  487. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/ab_test_planner.cpython-312.pyc +0 -0
  488. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/aso_scorer.cpython-312.pyc +0 -0
  489. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/competitor_analyzer.cpython-312.pyc +0 -0
  490. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/keyword_analyzer.cpython-312.pyc +0 -0
  491. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/launch_checklist.cpython-312.pyc +0 -0
  492. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/localization_helper.cpython-312.pyc +0 -0
  493. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/metadata_optimizer.cpython-312.pyc +0 -0
  494. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/review_analyzer.cpython-312.pyc +0 -0
  495. package/templates/skills/extended/other/007/scripts/__pycache__/config.cpython-312.pyc +0 -0
  496. package/templates/skills/extended/other/007/scripts/__pycache__/full_audit.cpython-312.pyc +0 -0
  497. package/templates/skills/extended/other/007/scripts/__pycache__/quick_scan.cpython-312.pyc +0 -0
  498. package/templates/skills/extended/other/007/scripts/__pycache__/score_calculator.cpython-312.pyc +0 -0
  499. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/__init__.cpython-312.pyc +0 -0
  500. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/dependency_scanner.cpython-312.pyc +0 -0
  501. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/injection_scanner.cpython-312.pyc +0 -0
  502. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/secrets_scanner.cpython-312.pyc +0 -0
  503. package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/match_skills.cpython-312.pyc +0 -0
  504. package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/orchestrate.cpython-312.pyc +0 -0
  505. package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/scan_registry.cpython-312.pyc +0 -0
  506. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/config.cpython-312.pyc +0 -0
  507. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/generate.cpython-312.pyc +0 -0
  508. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/prompt_engine.cpython-312.pyc +0 -0
  509. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/templates.cpython-312.pyc +0 -0
  510. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/api_bench.cpython-312.pyc +0 -0
  511. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/config.cpython-312.pyc +0 -0
  512. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/health_check.cpython-312.pyc +0 -0
  513. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/monitor.cpython-312.pyc +0 -0
  514. package/templates/skills/extended/other/context-agent/scripts/__pycache__/active_context.cpython-312.pyc +0 -0
  515. package/templates/skills/extended/other/context-agent/scripts/__pycache__/compressor.cpython-312.pyc +0 -0
  516. package/templates/skills/extended/other/context-agent/scripts/__pycache__/config.cpython-312.pyc +0 -0
  517. package/templates/skills/extended/other/context-agent/scripts/__pycache__/context_loader.cpython-312.pyc +0 -0
  518. package/templates/skills/extended/other/context-agent/scripts/__pycache__/context_manager.cpython-312.pyc +0 -0
  519. package/templates/skills/extended/other/context-agent/scripts/__pycache__/models.cpython-312.pyc +0 -0
  520. package/templates/skills/extended/other/context-agent/scripts/__pycache__/project_registry.cpython-312.pyc +0 -0
  521. package/templates/skills/extended/other/context-agent/scripts/__pycache__/search.cpython-312.pyc +0 -0
  522. package/templates/skills/extended/other/context-agent/scripts/__pycache__/session_parser.cpython-312.pyc +0 -0
  523. package/templates/skills/extended/other/context-agent/scripts/__pycache__/session_summary.cpython-312.pyc +0 -0
  524. package/templates/skills/extended/other/context-guardian/scripts/__pycache__/context_snapshot.cpython-312.pyc +0 -0
  525. package/templates/skills/extended/other/instagram/scripts/__pycache__/account_setup.cpython-312.pyc +0 -0
  526. package/templates/skills/extended/other/instagram/scripts/__pycache__/analyze.cpython-312.pyc +0 -0
  527. package/templates/skills/extended/other/instagram/scripts/__pycache__/api_client.cpython-312.pyc +0 -0
  528. package/templates/skills/extended/other/instagram/scripts/__pycache__/auth.cpython-312.pyc +0 -0
  529. package/templates/skills/extended/other/instagram/scripts/__pycache__/comments.cpython-312.pyc +0 -0
  530. package/templates/skills/extended/other/instagram/scripts/__pycache__/config.cpython-312.pyc +0 -0
  531. package/templates/skills/extended/other/instagram/scripts/__pycache__/db.cpython-312.pyc +0 -0
  532. package/templates/skills/extended/other/instagram/scripts/__pycache__/export.cpython-312.pyc +0 -0
  533. package/templates/skills/extended/other/instagram/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  534. package/templates/skills/extended/other/instagram/scripts/__pycache__/hashtags.cpython-312.pyc +0 -0
  535. package/templates/skills/extended/other/instagram/scripts/__pycache__/insights.cpython-312.pyc +0 -0
  536. package/templates/skills/extended/other/instagram/scripts/__pycache__/media.cpython-312.pyc +0 -0
  537. package/templates/skills/extended/other/instagram/scripts/__pycache__/messages.cpython-312.pyc +0 -0
  538. package/templates/skills/extended/other/instagram/scripts/__pycache__/profile.cpython-312.pyc +0 -0
  539. package/templates/skills/extended/other/instagram/scripts/__pycache__/publish.cpython-312.pyc +0 -0
  540. package/templates/skills/extended/other/instagram/scripts/__pycache__/run_all.cpython-312.pyc +0 -0
  541. package/templates/skills/extended/other/instagram/scripts/__pycache__/schedule.cpython-312.pyc +0 -0
  542. package/templates/skills/extended/other/instagram/scripts/__pycache__/serve_api.cpython-312.pyc +0 -0
  543. package/templates/skills/extended/other/instagram/scripts/__pycache__/templates.cpython-312.pyc +0 -0
  544. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/db.cpython-312.pyc +0 -0
  545. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/export.cpython-312.pyc +0 -0
  546. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/run_all.cpython-312.pyc +0 -0
  547. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/serve_api.cpython-312.pyc +0 -0
  548. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/web_scraper_fallback.cpython-312.pyc +0 -0
  549. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/__init__.cpython-312.pyc +0 -0
  550. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/base_scraper.cpython-312.pyc +0 -0
  551. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/generic_scraper.cpython-312.pyc +0 -0
  552. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucap.cpython-312.pyc +0 -0
  553. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceac.cpython-312.pyc +0 -0
  554. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceal.cpython-312.pyc +0 -0
  555. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceb.cpython-312.pyc +0 -0
  556. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucec.cpython-312.pyc +0 -0
  557. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucema.cpython-312.pyc +0 -0
  558. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucemg.cpython-312.pyc +0 -0
  559. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucep.cpython-312.pyc +0 -0
  560. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepa.cpython-312.pyc +0 -0
  561. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepar.cpython-312.pyc +0 -0
  562. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepe.cpython-312.pyc +0 -0
  563. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepi.cpython-312.pyc +0 -0
  564. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucer.cpython-312.pyc +0 -0
  565. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucerja.cpython-312.pyc +0 -0
  566. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucern.cpython-312.pyc +0 -0
  567. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucesc.cpython-312.pyc +0 -0
  568. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucesp.cpython-312.pyc +0 -0
  569. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucetins.cpython-312.pyc +0 -0
  570. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucis_df.cpython-312.pyc +0 -0
  571. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucisrs.cpython-312.pyc +0 -0
  572. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/states.cpython-312.pyc +0 -0
  573. package/templates/skills/extended/other/leiloeiro-avaliacao/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  574. package/templates/skills/extended/other/leiloeiro-edital/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  575. package/templates/skills/extended/other/leiloeiro-ia/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  576. package/templates/skills/extended/other/leiloeiro-juridico/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  577. package/templates/skills/extended/other/leiloeiro-mercado/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  578. package/templates/skills/extended/other/leiloeiro-risco/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  579. package/templates/skills/extended/other/matematico-tao/scripts/__pycache__/complexity_analyzer.cpython-312.pyc +0 -0
  580. package/templates/skills/extended/other/matematico-tao/scripts/__pycache__/dependency_graph.cpython-312.pyc +0 -0
  581. package/templates/skills/extended/other/oss-hunter/bin/__pycache__/hunter.cpython-312.pyc +0 -0
  582. package/templates/skills/extended/other/pipecat-friday-agent/scripts/__pycache__/friday_agent.cpython-312.pyc +0 -0
  583. package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/bundle_analyzer.cpython-312.pyc +0 -0
  584. package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/component_generator.cpython-312.pyc +0 -0
  585. package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/frontend_scaffolder.cpython-312.pyc +0 -0
  586. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/detect_skills.cpython-312.pyc +0 -0
  587. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/install_skill.cpython-312.pyc +0 -0
  588. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
  589. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/validate_skill.cpython-312.pyc +0 -0
  590. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/config.cpython-312.pyc +0 -0
  591. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/cost_optimizer.cpython-312.pyc +0 -0
  592. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/db.cpython-312.pyc +0 -0
  593. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  594. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/recommender.cpython-312.pyc +0 -0
  595. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/report_generator.cpython-312.pyc +0 -0
  596. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/run_audit.cpython-312.pyc +0 -0
  597. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/scanner.cpython-312.pyc +0 -0
  598. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/__init__.cpython-312.pyc +0 -0
  599. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/code_quality.cpython-312.pyc +0 -0
  600. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/cross_skill.cpython-312.pyc +0 -0
  601. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/dependencies.cpython-312.pyc +0 -0
  602. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/documentation.cpython-312.pyc +0 -0
  603. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/governance_audit.cpython-312.pyc +0 -0
  604. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/performance.cpython-312.pyc +0 -0
  605. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/security.cpython-312.pyc +0 -0
  606. package/templates/skills/extended/other/stability-ai/scripts/__pycache__/config.cpython-312.pyc +0 -0
  607. package/templates/skills/extended/other/stability-ai/scripts/__pycache__/generate.cpython-312.pyc +0 -0
  608. package/templates/skills/extended/other/stability-ai/scripts/__pycache__/styles.cpython-312.pyc +0 -0
  609. package/templates/skills/extended/other/telegram/assets/boilerplate/python/__pycache__/bot.cpython-312.pyc +0 -0
  610. package/templates/skills/extended/other/telegram/assets/boilerplate/python/__pycache__/webhook_server.cpython-312.pyc +0 -0
  611. package/templates/skills/extended/other/telegram/scripts/__pycache__/send_message.cpython-312.pyc +0 -0
  612. package/templates/skills/extended/other/telegram/scripts/__pycache__/setup_project.cpython-312.pyc +0 -0
  613. package/templates/skills/extended/other/telegram/scripts/__pycache__/test_bot.cpython-312.pyc +0 -0
  614. package/templates/skills/extended/other/typescript-expert/scripts/__pycache__/ts_diagnostic.cpython-312.pyc +0 -0
  615. package/templates/skills/extended/other/videodb/scripts/__pycache__/ws_listener.cpython-312.pyc +0 -0
  616. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/app.cpython-312.pyc +0 -0
  617. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/template_manager.cpython-312.pyc +0 -0
  618. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/webhook_handler.cpython-312.pyc +0 -0
  619. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/whatsapp_client.cpython-312.pyc +0 -0
  620. package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/send_test_message.cpython-312.pyc +0 -0
  621. package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/setup_project.cpython-312.pyc +0 -0
  622. package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/validate_config.cpython-312.pyc +0 -0
  623. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/easing.cpython-312.pyc +0 -0
  624. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/frame_composer.cpython-312.pyc +0 -0
  625. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/gif_builder.cpython-312.pyc +0 -0
  626. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/validators.cpython-312.pyc +0 -0
  627. package/templates/skills/knowledge/ai-agents/prompt-engineering-patterns/scripts/__pycache__/optimize-prompt.cpython-312.pyc +0 -0
  628. package/templates/skills/knowledge/backend/api-design-principles/assets/__pycache__/rest-api-template.cpython-312.pyc +0 -0
  629. package/templates/skills/knowledge/backend/api-patterns/scripts/__pycache__/api_validator.cpython-312.pyc +0 -0
  630. package/templates/skills/knowledge/backend/database-design/scripts/__pycache__/schema_validator.cpython-312.pyc +0 -0
  631. package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/brand_voice_analyzer.cpython-312.pyc +0 -0
  632. package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/seo_optimizer.cpython-312.pyc +0 -0
  633. package/templates/skills/knowledge/content/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-312.pyc +0 -0
  634. package/templates/skills/knowledge/content/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-312.pyc +0 -0
  635. package/templates/skills/knowledge/debugging/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-312.pyc +0 -0
  636. package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/accessibility_checker.cpython-312.pyc +0 -0
  637. package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/ux_audit.cpython-312.pyc +0 -0
  638. package/templates/skills/knowledge/i18n/i18n-localization/scripts/__pycache__/i18n_checker.cpython-312.pyc +0 -0
  639. package/templates/skills/knowledge/mobile/mobile-design/scripts/__pycache__/mobile_audit.cpython-312.pyc +0 -0
  640. package/templates/skills/knowledge/security/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-312.pyc +0 -0
  641. package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/lint_runner.cpython-312.pyc +0 -0
  642. package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/type_coverage.cpython-312.pyc +0 -0
  643. package/templates/skills/knowledge/testing/testing-patterns/scripts/__pycache__/test_runner.cpython-312.pyc +0 -0
  644. package/templates/skills/knowledge/testing/webapp-testing/scripts/__pycache__/playwright_runner.cpython-312.pyc +0 -0
  645. package/templates/skills/knowledge/workflow/plugin-discovery/scripts/__pycache__/platform_setup.cpython-312.pyc +0 -0
  646. package/templates/skills/knowledge/workflow/self-update/scripts/__pycache__/update_kit.cpython-312.pyc +0 -0
@@ -0,0 +1,296 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Test: Multi-Tenancy for Federated Agent Memory
4
+ ================================================
5
+
6
+ Integration tests validating developer/agent identity tagging,
7
+ project-scoped isolation, shared memory visibility, and concurrent writes.
8
+
9
+ Requires: Qdrant + Ollama running.
10
+
11
+ Usage:
12
+ python3 -m pytest templates/base/tests/test_multi_tenancy.py -v
13
+ # or directly:
14
+ python3 templates/base/tests/test_multi_tenancy.py
15
+ """
16
+
17
+ import json
18
+ import os
19
+ import sys
20
+ import uuid
21
+ import time
22
+ from pathlib import Path
23
+
24
+ # Resolve qdrant-memory scripts
25
+ _test_dir = os.path.dirname(os.path.abspath(__file__))
26
+ _base_dir = os.path.dirname(_test_dir)
27
+ _project_root = os.path.dirname(_base_dir)
28
+
29
+ _candidates = [
30
+ os.path.join(_base_dir, "skills", "qdrant-memory", "scripts"),
31
+ os.path.join(_base_dir, "skills", "core", "qdrant-memory", "scripts"),
32
+ os.path.join(_project_root, "skills", "qdrant-memory", "scripts"),
33
+ os.path.join(_project_root, "skills", "core", "qdrant-memory", "scripts"),
34
+ os.path.join(_project_root, "templates", "skills", "core", "qdrant-memory", "scripts"),
35
+ ]
36
+ SKILL_DIR = next((p for p in _candidates if os.path.exists(p)), _candidates[-1])
37
+ sys.path.insert(0, SKILL_DIR)
38
+
39
+ from memory_retrieval import (
40
+ store_memory, retrieve_context, build_filter,
41
+ resolve_developer_id, resolve_agent_id
42
+ )
43
+
44
+ # ═══════════════════════════════════════════════════════════════
45
+ # Test Configuration
46
+ # ═══════════════════════════════════════════════════════════════
47
+
48
+ TEST_PROJECT = f"mt-test-{uuid.uuid4().hex[:6]}"
49
+ DEV_ALICE = "alice@example.com"
50
+ DEV_BOB = "bob@example.com"
51
+ AGENT_ALPHA = "agent-alpha"
52
+ AGENT_BETA = "agent-beta"
53
+
54
+
55
+ def _store(content, dev, agent="primary", shared=False, project=TEST_PROJECT):
56
+ """Helper to store with identity."""
57
+ return store_memory(
58
+ content=content,
59
+ memory_type="technical",
60
+ metadata={"project": project, "tags": ["mt-test"]},
61
+ shared=shared,
62
+ developer_id=dev,
63
+ agent_id=agent
64
+ )
65
+
66
+
67
+ def _retrieve(query, developer=None, agent=None, shared_only=False, project=TEST_PROJECT):
68
+ """Helper to retrieve with identity filter."""
69
+ filters = build_filter(
70
+ project=project,
71
+ developer=developer,
72
+ agent=agent,
73
+ shared_only=shared_only
74
+ )
75
+ return retrieve_context(
76
+ query,
77
+ filters={"must": filters["must"]} if filters else None,
78
+ top_k=10,
79
+ score_threshold=0.3
80
+ )
81
+
82
+
83
+ # ═══════════════════════════════════════════════════════════════
84
+ # Tests
85
+ # ═══════════════════════════════════════════════════════════════
86
+
87
+ class TestResults:
88
+ """Simple test result accumulator."""
89
+ def __init__(self):
90
+ self.passed = 0
91
+ self.failed = 0
92
+ self.results = []
93
+
94
+ def check(self, name, condition, detail=""):
95
+ status = "PASS" if condition else "FAIL"
96
+ self.results.append({"test": name, "status": status, "detail": detail})
97
+ if condition:
98
+ self.passed += 1
99
+ else:
100
+ self.failed += 1
101
+ icon = "✅" if condition else "❌"
102
+ print(f" {icon} {name}" + (f" — {detail}" if detail else ""))
103
+ return condition
104
+
105
+
106
+ def test_identity_resolution():
107
+ """Test that developer/agent identity can be resolved."""
108
+ dev_id = resolve_developer_id()
109
+ agent_id = resolve_agent_id()
110
+ return dev_id and len(dev_id) > 0 and agent_id == "primary"
111
+
112
+
113
+ def test_store_with_identity(t: TestResults):
114
+ """Test that stores include developer_id, agent_id, shared fields."""
115
+ result = _store("Alice's private architecture decision for testing", DEV_ALICE, AGENT_ALPHA)
116
+ t.check(
117
+ "store returns developer_id",
118
+ result.get("developer_id") == DEV_ALICE,
119
+ f"got: {result.get('developer_id')}"
120
+ )
121
+ t.check(
122
+ "store returns agent_id",
123
+ result.get("agent_id") == AGENT_ALPHA,
124
+ f"got: {result.get('agent_id')}"
125
+ )
126
+ t.check(
127
+ "store returns shared=False",
128
+ result.get("shared") is False
129
+ )
130
+ return result.get("point_id")
131
+
132
+
133
+ def test_developer_isolation(t: TestResults):
134
+ """Alice's private memories should not be visible to Bob."""
135
+ # Alice stores a private memory
136
+ _store("Alice's secret: use Redis for session cache", DEV_ALICE)
137
+ time.sleep(0.5) # Allow indexing
138
+
139
+ # Bob stores a private memory
140
+ _store("Bob's choice: use Memcached for session cache", DEV_BOB)
141
+ time.sleep(0.5)
142
+
143
+ # Alice retrieves — should find her own, not Bob's
144
+ alice_results = _retrieve("session cache decision", developer=DEV_ALICE)
145
+ alice_contents = [c["content"] for c in alice_results.get("chunks", [])]
146
+
147
+ has_alice = any("Redis" in c for c in alice_contents)
148
+ has_bob = any("Memcached" in c for c in alice_contents)
149
+
150
+ t.check("Alice finds her own memory", has_alice)
151
+ t.check("Alice does NOT see Bob's private memory", not has_bob,
152
+ f"leaked: found {len([c for c in alice_contents if 'Memcached' in c])} Bob entries")
153
+
154
+
155
+ def test_shared_memory_visible(t: TestResults):
156
+ """Shared memories should be visible to everyone on the project."""
157
+ # Alice stores a shared decision
158
+ _store("SHARED: Team decided to use PostgreSQL for all services", DEV_ALICE, shared=True)
159
+ time.sleep(0.5)
160
+
161
+ # Bob retrieves with shared_only — should find it
162
+ shared_results = _retrieve("PostgreSQL decision", shared_only=True)
163
+ shared_contents = [c["content"] for c in shared_results.get("chunks", [])]
164
+
165
+ t.check(
166
+ "Shared memory visible to team",
167
+ any("PostgreSQL" in c for c in shared_contents),
168
+ f"found {shared_results.get('total_chunks', 0)} shared chunks"
169
+ )
170
+
171
+ # Bob retrieves with his developer filter — should also find shared
172
+ bob_results = _retrieve("PostgreSQL decision", developer=DEV_BOB)
173
+ # In current implementation, developer filter shows own + shared might need
174
+ # the 'should' filter. For now, shared_only is the reliable way.
175
+ t.check(
176
+ "shared_only filter works",
177
+ shared_results.get("total_chunks", 0) > 0
178
+ )
179
+
180
+
181
+ def test_agent_identity_tagging(t: TestResults):
182
+ """Each agent's stores should be tagged with correct agent_id."""
183
+ _store("Alpha agent found: API needs rate limiting", DEV_ALICE, AGENT_ALPHA)
184
+ _store("Beta agent found: Frontend needs caching", DEV_ALICE, AGENT_BETA)
185
+ time.sleep(0.5)
186
+
187
+ # Retrieve filtered by agent
188
+ alpha_results = _retrieve("rate limiting", agent=AGENT_ALPHA)
189
+ beta_results = _retrieve("Frontend caching", agent=AGENT_BETA)
190
+
191
+ t.check(
192
+ "Alpha agent memories retrievable",
193
+ alpha_results.get("total_chunks", 0) > 0,
194
+ f"found {alpha_results.get('total_chunks', 0)} chunks"
195
+ )
196
+ t.check(
197
+ "Beta agent memories retrievable",
198
+ beta_results.get("total_chunks", 0) > 0,
199
+ f"found {beta_results.get('total_chunks', 0)} chunks"
200
+ )
201
+
202
+
203
+ def test_concurrent_writes(t: TestResults):
204
+ """Two parallel stores should not corrupt each other."""
205
+ # Store two memories rapidly
206
+ r1 = _store(f"Concurrent write 1: {uuid.uuid4().hex[:8]}", DEV_ALICE)
207
+ r2 = _store(f"Concurrent write 2: {uuid.uuid4().hex[:8]}", DEV_BOB)
208
+
209
+ t.check(
210
+ "Both writes succeed",
211
+ r1.get("status") == "stored" and r2.get("status") == "stored"
212
+ )
213
+ t.check(
214
+ "Point IDs are distinct",
215
+ r1.get("point_id") != r2.get("point_id"),
216
+ f"id1={r1.get('point_id')}, id2={r2.get('point_id')}"
217
+ )
218
+
219
+
220
+ def test_build_filter_identity(t: TestResults):
221
+ """build_filter should include identity fields when provided."""
222
+ f = build_filter(developer="dev@test.com", agent="my-agent", shared_only=True)
223
+ must = f["must"] if f else []
224
+
225
+ has_dev = any(c.get("key") == "developer_id" for c in must)
226
+ has_agent = any(c.get("key") == "agent_id" for c in must)
227
+ has_shared = any(c.get("key") == "shared" for c in must)
228
+
229
+ t.check("build_filter includes developer_id", has_dev)
230
+ t.check("build_filter includes agent_id", has_agent)
231
+ t.check("build_filter includes shared", has_shared)
232
+
233
+
234
+ # ═══════════════════════════════════════════════════════════════
235
+ # Main Runner
236
+ # ═══════════════════════════════════════════════════════════════
237
+
238
+ def main():
239
+ print("=" * 60)
240
+ print("🧪 Multi-Tenancy Integration Tests")
241
+ print(f" Project scope: {TEST_PROJECT}")
242
+ print("=" * 60)
243
+
244
+ t = TestResults()
245
+
246
+ # Test 0: Identity resolution
247
+ print("\n📋 Test: Identity Resolution")
248
+ t.check("resolve_developer_id returns non-empty", test_identity_resolution())
249
+
250
+ # Test 1: Store with identity
251
+ print("\n📋 Test: Store with Identity")
252
+ test_store_with_identity(t)
253
+
254
+ # Test 2: build_filter includes identity
255
+ print("\n📋 Test: build_filter Identity Fields")
256
+ test_build_filter_identity(t)
257
+
258
+ # Test 3: Developer isolation
259
+ print("\n📋 Test: Developer Isolation")
260
+ test_developer_isolation(t)
261
+
262
+ # Test 4: Shared memory visibility
263
+ print("\n📋 Test: Shared Memory Visibility")
264
+ test_shared_memory_visible(t)
265
+
266
+ # Test 5: Agent identity tagging
267
+ print("\n📋 Test: Agent Identity Tagging")
268
+ test_agent_identity_tagging(t)
269
+
270
+ # Test 6: Concurrent writes
271
+ print("\n📋 Test: Concurrent Writes")
272
+ test_concurrent_writes(t)
273
+
274
+ # Summary
275
+ print("\n" + "=" * 60)
276
+ total = t.passed + t.failed
277
+ print(f"📊 Results: {t.passed}/{total} passed, {t.failed} failed")
278
+ print("=" * 60)
279
+
280
+ # JSON output
281
+ report = {
282
+ "suite": "multi_tenancy",
283
+ "project_scope": TEST_PROJECT,
284
+ "passed": t.passed,
285
+ "failed": t.failed,
286
+ "total": total,
287
+ "status": "pass" if t.failed == 0 else "fail",
288
+ "tests": t.results
289
+ }
290
+ print(f"\n{json.dumps(report, indent=2)}")
291
+
292
+ sys.exit(0 if t.failed == 0 else 1)
293
+
294
+
295
+ if __name__ == "__main__":
296
+ main()
@@ -38,9 +38,10 @@ Exit Codes:
38
38
  import argparse
39
39
  import json
40
40
  import os
41
+ import subprocess
41
42
  import sys
42
43
  import uuid
43
- from datetime import datetime
44
+ from datetime import datetime, timezone
44
45
  from typing import Optional, Dict, Any, List
45
46
  from urllib.request import Request, urlopen
46
47
  from urllib.error import URLError, HTTPError
@@ -82,6 +83,53 @@ HYBRID_SEARCH = os.environ.get("HYBRID_SEARCH", "true").lower() in ("true", "1",
82
83
  QDRANT_URL = os.environ.get("QDRANT_URL", "http://localhost:6333")
83
84
  COLLECTION = os.environ.get("MEMORY_COLLECTION", "agent_memory")
84
85
 
86
+ # ═══════════════════════════════════════════════════════════════
87
+ # Identity Resolution (Multi-Tenancy)
88
+ # ═══════════════════════════════════════════════════════════════
89
+
90
+ _cached_developer_id = None
91
+
92
+
93
+ def resolve_developer_id() -> str:
94
+ """
95
+ Auto-detect developer identity. Priority:
96
+ 1. AGI_DEVELOPER_ID env var (explicit override)
97
+ 2. git config user.email (most common)
98
+ 3. $USER@$HOSTNAME (fallback)
99
+ """
100
+ global _cached_developer_id
101
+ if _cached_developer_id is not None:
102
+ return _cached_developer_id
103
+
104
+ # 1. Explicit env var
105
+ dev_id = os.environ.get("AGI_DEVELOPER_ID")
106
+ if dev_id:
107
+ _cached_developer_id = dev_id
108
+ return dev_id
109
+
110
+ # 2. Git email
111
+ try:
112
+ result = subprocess.run(
113
+ ["git", "config", "user.email"],
114
+ capture_output=True, text=True, timeout=5
115
+ )
116
+ if result.returncode == 0 and result.stdout.strip():
117
+ _cached_developer_id = result.stdout.strip()
118
+ return _cached_developer_id
119
+ except (FileNotFoundError, subprocess.TimeoutExpired):
120
+ pass
121
+
122
+ # 3. Fallback
123
+ user = os.environ.get("USER", "unknown")
124
+ hostname = os.environ.get("HOSTNAME", "local")
125
+ _cached_developer_id = f"{user}@{hostname}"
126
+ return _cached_developer_id
127
+
128
+
129
+ def resolve_agent_id() -> str:
130
+ """Get current agent identity from env or default."""
131
+ return os.environ.get("AGI_AGENT_ID", "primary")
132
+
85
133
 
86
134
  def retrieve_context(
87
135
  query: str,
@@ -182,29 +230,44 @@ def retrieve_context(
182
230
  def store_memory(
183
231
  content: str,
184
232
  memory_type: str,
185
- metadata: Optional[Dict[str, Any]] = None
233
+ metadata: Optional[Dict[str, Any]] = None,
234
+ shared: bool = False,
235
+ developer_id: Optional[str] = None,
236
+ agent_id: Optional[str] = None
186
237
  ) -> Dict[str, Any]:
187
238
  """
188
- Store a new memory in long-term storage.
239
+ Store a new memory in long-term storage with identity tagging.
189
240
 
190
241
  Args:
191
242
  content: The memory content (text)
192
243
  memory_type: Category (decision, code, error, conversation, technical)
193
244
  metadata: Additional metadata (project, tags, etc.)
245
+ shared: If True, marks memory as team-visible (no developer filter on retrieve)
246
+ developer_id: Override auto-detected developer identity
247
+ agent_id: Override auto-detected agent identity
194
248
 
195
249
  Returns:
196
- Storage confirmation
250
+ Storage confirmation with identity info
197
251
  """
198
252
  embedding = get_embedding(content)
199
253
 
200
254
  # Generate UUID for memory
201
255
  point_id = str(uuid.uuid4())
202
256
 
257
+ # Resolve identity
258
+ dev_id = developer_id or resolve_developer_id()
259
+ agt_id = agent_id or resolve_agent_id()
260
+
203
261
  payload = {
204
262
  "content": content,
205
263
  "type": memory_type,
206
264
  "timestamp": datetime.utcnow().isoformat(),
265
+ "stored_at": datetime.now(timezone.utc).isoformat(),
207
266
  "token_count": len(content.split()),
267
+ # Identity fields (multi-tenancy)
268
+ "developer_id": dev_id,
269
+ "agent_id": agt_id,
270
+ "shared": shared,
208
271
  **(metadata or {})
209
272
  }
210
273
 
@@ -257,7 +320,10 @@ def store_memory(
257
320
  metadata={
258
321
  "type": memory_type,
259
322
  "project": (metadata or {}).get("project", ""),
260
- "tags": (metadata or {}).get("tags", [])
323
+ "tags": (metadata or {}).get("tags", []),
324
+ "developer_id": dev_id,
325
+ "agent_id": agt_id,
326
+ "shared": shared
261
327
  }
262
328
  )
263
329
  bm25_status = bm25_result.get("status", "error")
@@ -269,6 +335,9 @@ def store_memory(
269
335
  "point_id": point_id,
270
336
  "type": memory_type,
271
337
  "token_count": payload["token_count"],
338
+ "developer_id": dev_id,
339
+ "agent_id": agt_id,
340
+ "shared": shared,
272
341
  "bm25_indexed": bm25_status,
273
342
  "signed": "_signature" in payload,
274
343
  "agent_id": payload.get("_agent_id"),
@@ -327,8 +396,15 @@ def list_memories(
327
396
  }
328
397
 
329
398
 
330
- def build_filter(type_filter: str = None, project: str = None, tags: List[str] = None) -> Dict:
331
- """Build Qdrant filter from arguments."""
399
+ def build_filter(
400
+ type_filter: str = None,
401
+ project: str = None,
402
+ tags: List[str] = None,
403
+ developer: str = None,
404
+ agent: str = None,
405
+ shared_only: bool = False
406
+ ) -> Dict:
407
+ """Build Qdrant filter from arguments, including identity fields."""
332
408
  must = []
333
409
 
334
410
  if type_filter:
@@ -337,6 +413,12 @@ def build_filter(type_filter: str = None, project: str = None, tags: List[str] =
337
413
  must.append({"key": "project", "match": {"value": project}})
338
414
  if tags:
339
415
  must.append({"key": "tags", "match": {"any": tags}})
416
+ if developer:
417
+ must.append({"key": "developer_id", "match": {"value": developer}})
418
+ if agent:
419
+ must.append({"key": "agent_id", "match": {"value": agent}})
420
+ if shared_only:
421
+ must.append({"key": "shared", "match": {"value": True}})
340
422
 
341
423
  return {"must": must} if must else None
342
424
 
@@ -351,6 +433,9 @@ def main():
351
433
  retrieve_parser.add_argument("--type", help="Filter by memory type")
352
434
  retrieve_parser.add_argument("--project", help="Filter by project")
353
435
  retrieve_parser.add_argument("--tags", nargs="+", help="Filter by tags")
436
+ retrieve_parser.add_argument("--developer", help="Filter by developer ID")
437
+ retrieve_parser.add_argument("--agent", help="Filter by agent ID")
438
+ retrieve_parser.add_argument("--shared-only", action="store_true", help="Only retrieve shared (team-visible) memories")
354
439
  retrieve_parser.add_argument("--top-k", type=int, default=5, help="Number of results")
355
440
  retrieve_parser.add_argument("--threshold", type=float, default=0.7, help="Score threshold")
356
441
 
@@ -362,11 +447,16 @@ def main():
362
447
  help="Memory type")
363
448
  store_parser.add_argument("--project", help="Project name")
364
449
  store_parser.add_argument("--tags", nargs="+", help="Tags for the memory")
450
+ store_parser.add_argument("--developer", help="Override developer ID")
451
+ store_parser.add_argument("--agent", help="Override agent ID")
452
+ store_parser.add_argument("--shared", action="store_true", help="Mark as team-visible (shared) memory")
365
453
 
366
454
  # List command
367
455
  list_parser = subparsers.add_parser("list", help="List memories")
368
456
  list_parser.add_argument("--type", help="Filter by memory type")
369
457
  list_parser.add_argument("--project", help="Filter by project")
458
+ list_parser.add_argument("--developer", help="Filter by developer ID")
459
+ list_parser.add_argument("--shared-only", action="store_true", help="Only list shared memories")
370
460
  list_parser.add_argument("--limit", type=int, default=20, help="Max results")
371
461
 
372
462
  args = parser.parse_args()
@@ -376,7 +466,10 @@ def main():
376
466
  filters = build_filter(
377
467
  type_filter=getattr(args, "type", None),
378
468
  project=args.project,
379
- tags=args.tags
469
+ tags=args.tags,
470
+ developer=getattr(args, "developer", None),
471
+ agent=getattr(args, "agent", None),
472
+ shared_only=getattr(args, "shared_only", False)
380
473
  )
381
474
  result = retrieve_context(
382
475
  args.query,
@@ -394,14 +487,21 @@ def main():
394
487
  if args.tags:
395
488
  metadata["tags"] = args.tags
396
489
 
397
- result = store_memory(args.content, args.type, metadata)
490
+ result = store_memory(
491
+ args.content, args.type, metadata,
492
+ shared=getattr(args, "shared", False),
493
+ developer_id=getattr(args, "developer", None),
494
+ agent_id=getattr(args, "agent", None)
495
+ )
398
496
  print(json.dumps(result, indent=2))
399
497
  sys.exit(0)
400
498
 
401
499
  elif args.command == "list":
402
500
  filters = build_filter(
403
501
  type_filter=getattr(args, "type", None),
404
- project=args.project
502
+ project=args.project,
503
+ developer=getattr(args, "developer", None),
504
+ shared_only=getattr(args, "shared_only", False)
405
505
  )
406
506
  result = list_memories(
407
507
  filters={"must": filters["must"]} if filters else None,