@techwavedev/agi-agent-kit 1.6.0 → 1.6.3

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 (663) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +104 -15
  3. package/package.json +2 -2
  4. package/templates/base/.env.example +28 -0
  5. package/templates/base/CHANGELOG.md +10 -0
  6. package/templates/base/docker-compose.aries.yml +47 -0
  7. package/templates/base/docker-compose.pulsar.yml +29 -0
  8. package/templates/base/execution/agent_events.py +349 -0
  9. package/templates/base/execution/blockchain_auth.py +515 -0
  10. package/templates/base/execution/dispatch_agent_team.py +24 -5
  11. package/templates/base/execution/memory_manager.py +142 -10
  12. package/templates/base/execution/run_test_scenario.py +109 -6
  13. package/templates/base/execution/session_boot.py +82 -0
  14. package/templates/base/execution/session_init.py +48 -4
  15. package/templates/base/execution/test_qdrant_handoff.py +578 -0
  16. package/templates/base/tests/test_agent_events.py +249 -0
  17. package/templates/base/tests/test_blockchain_auth.py +375 -0
  18. package/templates/base/tests/test_multi_tenancy.py +296 -0
  19. package/templates/skills/core/documentation/scripts/__pycache__/analyze_code.cpython-312.pyc +0 -0
  20. package/templates/skills/core/documentation/scripts/__pycache__/detect_changes.cpython-312.pyc +0 -0
  21. package/templates/skills/core/documentation/scripts/__pycache__/generate_changelog.cpython-312.pyc +0 -0
  22. package/templates/skills/core/documentation/scripts/__pycache__/sync_docs.cpython-312.pyc +0 -0
  23. package/templates/skills/core/documentation/scripts/__pycache__/update_skill_docs.cpython-312.pyc +0 -0
  24. package/templates/skills/core/pdf-reader/scripts/__pycache__/extract_text.cpython-312.pyc +0 -0
  25. package/templates/skills/core/qdrant-memory/scripts/__pycache__/benchmark_token_savings.cpython-312.pyc +0 -0
  26. package/templates/skills/core/qdrant-memory/scripts/__pycache__/bm25_index.cpython-312.pyc +0 -0
  27. package/templates/skills/core/qdrant-memory/scripts/__pycache__/embedding_utils.cpython-312.pyc +0 -0
  28. package/templates/skills/core/qdrant-memory/scripts/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  29. package/templates/skills/core/qdrant-memory/scripts/__pycache__/init_collection.cpython-312.pyc +0 -0
  30. package/templates/skills/core/qdrant-memory/scripts/__pycache__/memory_retrieval.cpython-312.pyc +0 -0
  31. package/templates/skills/core/qdrant-memory/scripts/__pycache__/semantic_cache.cpython-312.pyc +0 -0
  32. package/templates/skills/core/qdrant-memory/scripts/__pycache__/test_skill.cpython-312.pyc +0 -0
  33. package/templates/skills/core/qdrant-memory/scripts/memory_retrieval.py +110 -10
  34. package/templates/skills/core/webcrawler/scripts/__pycache__/crawl_docs.cpython-312.pyc +0 -0
  35. package/templates/skills/core/webcrawler/scripts/__pycache__/extract_page.cpython-312.pyc +0 -0
  36. package/templates/skills/core/webcrawler/scripts/__pycache__/filter_docs.cpython-312.pyc +0 -0
  37. package/templates/skills/extended/ai-agents/dispatching-parallel-agents/SKILL.md +4 -2
  38. package/templates/skills/extended/ai-agents/last30days/scripts/__pycache__/last30days.cpython-312.pyc +0 -0
  39. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/__init__.cpython-312.pyc +0 -0
  40. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/cache.cpython-312.pyc +0 -0
  41. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dates.cpython-312.pyc +0 -0
  42. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dedupe.cpython-312.pyc +0 -0
  43. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/env.cpython-312.pyc +0 -0
  44. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/http.cpython-312.pyc +0 -0
  45. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/models.cpython-312.pyc +0 -0
  46. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/normalize.cpython-312.pyc +0 -0
  47. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/openai_reddit.cpython-312.pyc +0 -0
  48. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/reddit_enrich.cpython-312.pyc +0 -0
  49. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/render.cpython-312.pyc +0 -0
  50. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/schema.cpython-312.pyc +0 -0
  51. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/score.cpython-312.pyc +0 -0
  52. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/ui.cpython-312.pyc +0 -0
  53. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/websearch.cpython-312.pyc +0 -0
  54. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/xai_x.cpython-312.pyc +0 -0
  55. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  56. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_cache.cpython-312.pyc +0 -0
  57. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dates.cpython-312.pyc +0 -0
  58. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dedupe.cpython-312.pyc +0 -0
  59. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_models.cpython-312.pyc +0 -0
  60. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_normalize.cpython-312.pyc +0 -0
  61. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_render.cpython-312.pyc +0 -0
  62. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_score.cpython-312.pyc +0 -0
  63. package/templates/skills/extended/ai-agents/llm-structured-output/SKILL.md +257 -0
  64. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/complete_voice_engine.cpython-312.pyc +0 -0
  65. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/gemini_agent_example.cpython-312.pyc +0 -0
  66. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/interrupt_system_example.cpython-312.pyc +0 -0
  67. package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/base_worker_template.cpython-312.pyc +0 -0
  68. package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/multi_provider_factory_template.cpython-312.pyc +0 -0
  69. package/templates/skills/extended/ai-agents/youtube-summarizer/scripts/__pycache__/extract-transcript.cpython-312.pyc +0 -0
  70. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/architecture_diagram_generator.cpython-312.pyc +0 -0
  71. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/dependency_analyzer.cpython-312.pyc +0 -0
  72. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/project_architect.cpython-312.pyc +0 -0
  73. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
  74. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
  75. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
  76. package/templates/skills/extended/data/pdf/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
  77. package/templates/skills/extended/data/pdf/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
  78. package/templates/skills/extended/data/pdf/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
  79. package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
  80. package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
  81. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
  82. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
  83. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
  84. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
  85. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
  86. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
  87. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
  88. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
  89. package/templates/skills/extended/data/xlsx/__pycache__/recalc.cpython-312.pyc +0 -0
  90. package/templates/skills/extended/data/xlsx-official/__pycache__/recalc.cpython-312.pyc +0 -0
  91. package/templates/skills/extended/debugging/systematic-debugging/SKILL.md +587 -229
  92. package/templates/skills/extended/devops/capi-mcp-gateway/SKILL.md +389 -0
  93. package/templates/skills/extended/devops/capi-mcp-gateway/references/agent_loop.md +237 -0
  94. package/templates/skills/extended/devops/capi-mcp-gateway/references/configuration.md +200 -0
  95. package/templates/skills/extended/devops/capi-mcp-gateway/references/security.md +199 -0
  96. package/templates/skills/extended/devops/capi-mcp-gateway/scripts/__pycache__/capi_mcp_client.cpython-312.pyc +0 -0
  97. package/templates/skills/extended/devops/capi-mcp-gateway/scripts/capi_mcp_client.py +255 -0
  98. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/0.cpython-312.pyc +0 -0
  99. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/1.cpython-312.pyc +0 -0
  100. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/10.cpython-312.pyc +0 -0
  101. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/100.cpython-312.pyc +0 -0
  102. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/101.cpython-312.pyc +0 -0
  103. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/102.cpython-312.pyc +0 -0
  104. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/103.cpython-312.pyc +0 -0
  105. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/104.cpython-312.pyc +0 -0
  106. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/105.cpython-312.pyc +0 -0
  107. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/106.cpython-312.pyc +0 -0
  108. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/107.cpython-312.pyc +0 -0
  109. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/108.cpython-312.pyc +0 -0
  110. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/109.cpython-312.pyc +0 -0
  111. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/11.cpython-312.pyc +0 -0
  112. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/110.cpython-312.pyc +0 -0
  113. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/111.cpython-312.pyc +0 -0
  114. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/112.cpython-312.pyc +0 -0
  115. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/113.cpython-312.pyc +0 -0
  116. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/114.cpython-312.pyc +0 -0
  117. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/115.cpython-312.pyc +0 -0
  118. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/116.cpython-312.pyc +0 -0
  119. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/117.cpython-312.pyc +0 -0
  120. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/118.cpython-312.pyc +0 -0
  121. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/119.cpython-312.pyc +0 -0
  122. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/12.cpython-312.pyc +0 -0
  123. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/120.cpython-312.pyc +0 -0
  124. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/121.cpython-312.pyc +0 -0
  125. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/122.cpython-312.pyc +0 -0
  126. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/123.cpython-312.pyc +0 -0
  127. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/124.cpython-312.pyc +0 -0
  128. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/125.cpython-312.pyc +0 -0
  129. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/126.cpython-312.pyc +0 -0
  130. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/127.cpython-312.pyc +0 -0
  131. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/128.cpython-312.pyc +0 -0
  132. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/129.cpython-312.pyc +0 -0
  133. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/13.cpython-312.pyc +0 -0
  134. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/130.cpython-312.pyc +0 -0
  135. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/131.cpython-312.pyc +0 -0
  136. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/132.cpython-312.pyc +0 -0
  137. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/133.cpython-312.pyc +0 -0
  138. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/134.cpython-312.pyc +0 -0
  139. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/135.cpython-312.pyc +0 -0
  140. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/136.cpython-312.pyc +0 -0
  141. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/137.cpython-312.pyc +0 -0
  142. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/138.cpython-312.pyc +0 -0
  143. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/139.cpython-312.pyc +0 -0
  144. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/14.cpython-312.pyc +0 -0
  145. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/140.cpython-312.pyc +0 -0
  146. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/141.cpython-312.pyc +0 -0
  147. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/142.cpython-312.pyc +0 -0
  148. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/143.cpython-312.pyc +0 -0
  149. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/144.cpython-312.pyc +0 -0
  150. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/145.cpython-312.pyc +0 -0
  151. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/146.cpython-312.pyc +0 -0
  152. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/147.cpython-312.pyc +0 -0
  153. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/148.cpython-312.pyc +0 -0
  154. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/149.cpython-312.pyc +0 -0
  155. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/15.cpython-312.pyc +0 -0
  156. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/150.cpython-312.pyc +0 -0
  157. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/151.cpython-312.pyc +0 -0
  158. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/152.cpython-312.pyc +0 -0
  159. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/153.cpython-312.pyc +0 -0
  160. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/154.cpython-312.pyc +0 -0
  161. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/155.cpython-312.pyc +0 -0
  162. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/156.cpython-312.pyc +0 -0
  163. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/157.cpython-312.pyc +0 -0
  164. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/158.cpython-312.pyc +0 -0
  165. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/159.cpython-312.pyc +0 -0
  166. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/16.cpython-312.pyc +0 -0
  167. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/160.cpython-312.pyc +0 -0
  168. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/161.cpython-312.pyc +0 -0
  169. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/162.cpython-312.pyc +0 -0
  170. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/163.cpython-312.pyc +0 -0
  171. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/17.cpython-312.pyc +0 -0
  172. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/18.cpython-312.pyc +0 -0
  173. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/19.cpython-312.pyc +0 -0
  174. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/2.cpython-312.pyc +0 -0
  175. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/20.cpython-312.pyc +0 -0
  176. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/21.cpython-312.pyc +0 -0
  177. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/22.cpython-312.pyc +0 -0
  178. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/23.cpython-312.pyc +0 -0
  179. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/24.cpython-312.pyc +0 -0
  180. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/25.cpython-312.pyc +0 -0
  181. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/26.cpython-312.pyc +0 -0
  182. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/27.cpython-312.pyc +0 -0
  183. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/28.cpython-312.pyc +0 -0
  184. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/29.cpython-312.pyc +0 -0
  185. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/3.cpython-312.pyc +0 -0
  186. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/30.cpython-312.pyc +0 -0
  187. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/31.cpython-312.pyc +0 -0
  188. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/32.cpython-312.pyc +0 -0
  189. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/33.cpython-312.pyc +0 -0
  190. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/34.cpython-312.pyc +0 -0
  191. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/35.cpython-312.pyc +0 -0
  192. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/36.cpython-312.pyc +0 -0
  193. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/37.cpython-312.pyc +0 -0
  194. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/38.cpython-312.pyc +0 -0
  195. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/39.cpython-312.pyc +0 -0
  196. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/4.cpython-312.pyc +0 -0
  197. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/40.cpython-312.pyc +0 -0
  198. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/41.cpython-312.pyc +0 -0
  199. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/42.cpython-312.pyc +0 -0
  200. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/43.cpython-312.pyc +0 -0
  201. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/44.cpython-312.pyc +0 -0
  202. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/45.cpython-312.pyc +0 -0
  203. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/46.cpython-312.pyc +0 -0
  204. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/47.cpython-312.pyc +0 -0
  205. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/48.cpython-312.pyc +0 -0
  206. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/49.cpython-312.pyc +0 -0
  207. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/5.cpython-312.pyc +0 -0
  208. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/50.cpython-312.pyc +0 -0
  209. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/51.cpython-312.pyc +0 -0
  210. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/52.cpython-312.pyc +0 -0
  211. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/53.cpython-312.pyc +0 -0
  212. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/54.cpython-312.pyc +0 -0
  213. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/55.cpython-312.pyc +0 -0
  214. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/56.cpython-312.pyc +0 -0
  215. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/57.cpython-312.pyc +0 -0
  216. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/58.cpython-312.pyc +0 -0
  217. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/59.cpython-312.pyc +0 -0
  218. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/6.cpython-312.pyc +0 -0
  219. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/60.cpython-312.pyc +0 -0
  220. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/61.cpython-312.pyc +0 -0
  221. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/62.cpython-312.pyc +0 -0
  222. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/63.cpython-312.pyc +0 -0
  223. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/64.cpython-312.pyc +0 -0
  224. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/65.cpython-312.pyc +0 -0
  225. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/66.cpython-312.pyc +0 -0
  226. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/67.cpython-312.pyc +0 -0
  227. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/68.cpython-312.pyc +0 -0
  228. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/69.cpython-312.pyc +0 -0
  229. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/7.cpython-312.pyc +0 -0
  230. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/70.cpython-312.pyc +0 -0
  231. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/71.cpython-312.pyc +0 -0
  232. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/72.cpython-312.pyc +0 -0
  233. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/73.cpython-312.pyc +0 -0
  234. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/74.cpython-312.pyc +0 -0
  235. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/75.cpython-312.pyc +0 -0
  236. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/76.cpython-312.pyc +0 -0
  237. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/77.cpython-312.pyc +0 -0
  238. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/78.cpython-312.pyc +0 -0
  239. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/79.cpython-312.pyc +0 -0
  240. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/8.cpython-312.pyc +0 -0
  241. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/80.cpython-312.pyc +0 -0
  242. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/81.cpython-312.pyc +0 -0
  243. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/82.cpython-312.pyc +0 -0
  244. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/83.cpython-312.pyc +0 -0
  245. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/84.cpython-312.pyc +0 -0
  246. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/85.cpython-312.pyc +0 -0
  247. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/86.cpython-312.pyc +0 -0
  248. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/87.cpython-312.pyc +0 -0
  249. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/88.cpython-312.pyc +0 -0
  250. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/89.cpython-312.pyc +0 -0
  251. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/9.cpython-312.pyc +0 -0
  252. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/90.cpython-312.pyc +0 -0
  253. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/91.cpython-312.pyc +0 -0
  254. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/92.cpython-312.pyc +0 -0
  255. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/93.cpython-312.pyc +0 -0
  256. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/94.cpython-312.pyc +0 -0
  257. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/95.cpython-312.pyc +0 -0
  258. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/96.cpython-312.pyc +0 -0
  259. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/97.cpython-312.pyc +0 -0
  260. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/98.cpython-312.pyc +0 -0
  261. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/99.cpython-312.pyc +0 -0
  262. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/0.cpython-312.pyc +0 -0
  263. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/1.cpython-312.pyc +0 -0
  264. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/10.cpython-312.pyc +0 -0
  265. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/100.cpython-312.pyc +0 -0
  266. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/101.cpython-312.pyc +0 -0
  267. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/102.cpython-312.pyc +0 -0
  268. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/103.cpython-312.pyc +0 -0
  269. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/104.cpython-312.pyc +0 -0
  270. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/105.cpython-312.pyc +0 -0
  271. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/106.cpython-312.pyc +0 -0
  272. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/107.cpython-312.pyc +0 -0
  273. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/108.cpython-312.pyc +0 -0
  274. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/109.cpython-312.pyc +0 -0
  275. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/11.cpython-312.pyc +0 -0
  276. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/110.cpython-312.pyc +0 -0
  277. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/111.cpython-312.pyc +0 -0
  278. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/112.cpython-312.pyc +0 -0
  279. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/113.cpython-312.pyc +0 -0
  280. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/114.cpython-312.pyc +0 -0
  281. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/115.cpython-312.pyc +0 -0
  282. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/116.cpython-312.pyc +0 -0
  283. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/117.cpython-312.pyc +0 -0
  284. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/118.cpython-312.pyc +0 -0
  285. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/119.cpython-312.pyc +0 -0
  286. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/12.cpython-312.pyc +0 -0
  287. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/120.cpython-312.pyc +0 -0
  288. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/121.cpython-312.pyc +0 -0
  289. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/122.cpython-312.pyc +0 -0
  290. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/123.cpython-312.pyc +0 -0
  291. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/124.cpython-312.pyc +0 -0
  292. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/125.cpython-312.pyc +0 -0
  293. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/126.cpython-312.pyc +0 -0
  294. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/127.cpython-312.pyc +0 -0
  295. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/128.cpython-312.pyc +0 -0
  296. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/129.cpython-312.pyc +0 -0
  297. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/13.cpython-312.pyc +0 -0
  298. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/130.cpython-312.pyc +0 -0
  299. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/131.cpython-312.pyc +0 -0
  300. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/132.cpython-312.pyc +0 -0
  301. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/133.cpython-312.pyc +0 -0
  302. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/134.cpython-312.pyc +0 -0
  303. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/135.cpython-312.pyc +0 -0
  304. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/136.cpython-312.pyc +0 -0
  305. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/137.cpython-312.pyc +0 -0
  306. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/138.cpython-312.pyc +0 -0
  307. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/139.cpython-312.pyc +0 -0
  308. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/14.cpython-312.pyc +0 -0
  309. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/140.cpython-312.pyc +0 -0
  310. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/141.cpython-312.pyc +0 -0
  311. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/142.cpython-312.pyc +0 -0
  312. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/143.cpython-312.pyc +0 -0
  313. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/144.cpython-312.pyc +0 -0
  314. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/145.cpython-312.pyc +0 -0
  315. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/146.cpython-312.pyc +0 -0
  316. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/147.cpython-312.pyc +0 -0
  317. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/148.cpython-312.pyc +0 -0
  318. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/149.cpython-312.pyc +0 -0
  319. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/15.cpython-312.pyc +0 -0
  320. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/150.cpython-312.pyc +0 -0
  321. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/151.cpython-312.pyc +0 -0
  322. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/152.cpython-312.pyc +0 -0
  323. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/153.cpython-312.pyc +0 -0
  324. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/154.cpython-312.pyc +0 -0
  325. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/155.cpython-312.pyc +0 -0
  326. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/156.cpython-312.pyc +0 -0
  327. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/157.cpython-312.pyc +0 -0
  328. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/158.cpython-312.pyc +0 -0
  329. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/159.cpython-312.pyc +0 -0
  330. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/16.cpython-312.pyc +0 -0
  331. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/160.cpython-312.pyc +0 -0
  332. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/161.cpython-312.pyc +0 -0
  333. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/162.cpython-312.pyc +0 -0
  334. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/163.cpython-312.pyc +0 -0
  335. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/17.cpython-312.pyc +0 -0
  336. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/18.cpython-312.pyc +0 -0
  337. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/19.cpython-312.pyc +0 -0
  338. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/2.cpython-312.pyc +0 -0
  339. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/20.cpython-312.pyc +0 -0
  340. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/21.cpython-312.pyc +0 -0
  341. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/22.cpython-312.pyc +0 -0
  342. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/23.cpython-312.pyc +0 -0
  343. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/24.cpython-312.pyc +0 -0
  344. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/25.cpython-312.pyc +0 -0
  345. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/26.cpython-312.pyc +0 -0
  346. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/27.cpython-312.pyc +0 -0
  347. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/28.cpython-312.pyc +0 -0
  348. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/29.cpython-312.pyc +0 -0
  349. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/3.cpython-312.pyc +0 -0
  350. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/30.cpython-312.pyc +0 -0
  351. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/31.cpython-312.pyc +0 -0
  352. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/32.cpython-312.pyc +0 -0
  353. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/33.cpython-312.pyc +0 -0
  354. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/34.cpython-312.pyc +0 -0
  355. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/35.cpython-312.pyc +0 -0
  356. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/36.cpython-312.pyc +0 -0
  357. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/37.cpython-312.pyc +0 -0
  358. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/38.cpython-312.pyc +0 -0
  359. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/39.cpython-312.pyc +0 -0
  360. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/4.cpython-312.pyc +0 -0
  361. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/40.cpython-312.pyc +0 -0
  362. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/41.cpython-312.pyc +0 -0
  363. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/42.cpython-312.pyc +0 -0
  364. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/43.cpython-312.pyc +0 -0
  365. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/44.cpython-312.pyc +0 -0
  366. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/45.cpython-312.pyc +0 -0
  367. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/46.cpython-312.pyc +0 -0
  368. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/47.cpython-312.pyc +0 -0
  369. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/48.cpython-312.pyc +0 -0
  370. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/49.cpython-312.pyc +0 -0
  371. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/5.cpython-312.pyc +0 -0
  372. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/50.cpython-312.pyc +0 -0
  373. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/51.cpython-312.pyc +0 -0
  374. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/52.cpython-312.pyc +0 -0
  375. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/53.cpython-312.pyc +0 -0
  376. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/54.cpython-312.pyc +0 -0
  377. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/55.cpython-312.pyc +0 -0
  378. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/56.cpython-312.pyc +0 -0
  379. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/57.cpython-312.pyc +0 -0
  380. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/58.cpython-312.pyc +0 -0
  381. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/59.cpython-312.pyc +0 -0
  382. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/6.cpython-312.pyc +0 -0
  383. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/60.cpython-312.pyc +0 -0
  384. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/61.cpython-312.pyc +0 -0
  385. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/62.cpython-312.pyc +0 -0
  386. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/63.cpython-312.pyc +0 -0
  387. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/64.cpython-312.pyc +0 -0
  388. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/65.cpython-312.pyc +0 -0
  389. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/66.cpython-312.pyc +0 -0
  390. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/67.cpython-312.pyc +0 -0
  391. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/68.cpython-312.pyc +0 -0
  392. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/69.cpython-312.pyc +0 -0
  393. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/7.cpython-312.pyc +0 -0
  394. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/70.cpython-312.pyc +0 -0
  395. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/71.cpython-312.pyc +0 -0
  396. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/72.cpython-312.pyc +0 -0
  397. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/73.cpython-312.pyc +0 -0
  398. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/74.cpython-312.pyc +0 -0
  399. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/75.cpython-312.pyc +0 -0
  400. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/76.cpython-312.pyc +0 -0
  401. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/77.cpython-312.pyc +0 -0
  402. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/78.cpython-312.pyc +0 -0
  403. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/79.cpython-312.pyc +0 -0
  404. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/8.cpython-312.pyc +0 -0
  405. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/80.cpython-312.pyc +0 -0
  406. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/81.cpython-312.pyc +0 -0
  407. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/82.cpython-312.pyc +0 -0
  408. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/83.cpython-312.pyc +0 -0
  409. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/84.cpython-312.pyc +0 -0
  410. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/85.cpython-312.pyc +0 -0
  411. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/86.cpython-312.pyc +0 -0
  412. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/87.cpython-312.pyc +0 -0
  413. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/88.cpython-312.pyc +0 -0
  414. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/89.cpython-312.pyc +0 -0
  415. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/9.cpython-312.pyc +0 -0
  416. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/90.cpython-312.pyc +0 -0
  417. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/91.cpython-312.pyc +0 -0
  418. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/92.cpython-312.pyc +0 -0
  419. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/93.cpython-312.pyc +0 -0
  420. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/94.cpython-312.pyc +0 -0
  421. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/95.cpython-312.pyc +0 -0
  422. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/96.cpython-312.pyc +0 -0
  423. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/97.cpython-312.pyc +0 -0
  424. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/98.cpython-312.pyc +0 -0
  425. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/99.cpython-312.pyc +0 -0
  426. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  427. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  428. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  429. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  430. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  431. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  432. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  433. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  434. package/templates/skills/extended/documentation/docx/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  435. package/templates/skills/extended/documentation/docx/scripts/__pycache__/document.cpython-312.pyc +0 -0
  436. package/templates/skills/extended/documentation/docx/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
  437. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  438. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  439. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  440. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  441. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  442. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  443. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  444. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  445. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  446. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/document.cpython-312.pyc +0 -0
  447. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
  448. package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/customer_interview_analyzer.cpython-312.pyc +0 -0
  449. package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/rice_prioritizer.cpython-312.pyc +0 -0
  450. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  451. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  452. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  453. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  454. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  455. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  456. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  457. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  458. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
  459. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
  460. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/replace.cpython-312.pyc +0 -0
  461. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
  462. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  463. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  464. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  465. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  466. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  467. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  468. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  469. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  470. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
  471. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
  472. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/replace.cpython-312.pyc +0 -0
  473. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
  474. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/code_quality_analyzer.cpython-312.pyc +0 -0
  475. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/fullstack_scaffolder.cpython-312.pyc +0 -0
  476. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/project_scaffolder.cpython-312.pyc +0 -0
  477. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/init_skill.cpython-312.pyc +0 -0
  478. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
  479. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  480. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/data/__pycache__/_sync_all.cpython-312.pyc +0 -0
  481. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/core.cpython-312.pyc +0 -0
  482. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  483. package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/search.cpython-312.pyc +0 -0
  484. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  485. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  486. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
  487. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/design_system.py +2 -1
  488. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/data/__pycache__/_sync_all.cpython-312.pyc +0 -0
  489. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  490. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  491. package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
  492. package/templates/skills/extended/gaming/audio-transcriber/scripts/__pycache__/transcribe.cpython-312.pyc +0 -0
  493. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/ab_test_planner.cpython-312.pyc +0 -0
  494. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/aso_scorer.cpython-312.pyc +0 -0
  495. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/competitor_analyzer.cpython-312.pyc +0 -0
  496. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/keyword_analyzer.cpython-312.pyc +0 -0
  497. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/launch_checklist.cpython-312.pyc +0 -0
  498. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/localization_helper.cpython-312.pyc +0 -0
  499. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/metadata_optimizer.cpython-312.pyc +0 -0
  500. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/review_analyzer.cpython-312.pyc +0 -0
  501. package/templates/skills/extended/other/007/scripts/__pycache__/config.cpython-312.pyc +0 -0
  502. package/templates/skills/extended/other/007/scripts/__pycache__/full_audit.cpython-312.pyc +0 -0
  503. package/templates/skills/extended/other/007/scripts/__pycache__/quick_scan.cpython-312.pyc +0 -0
  504. package/templates/skills/extended/other/007/scripts/__pycache__/score_calculator.cpython-312.pyc +0 -0
  505. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/__init__.cpython-312.pyc +0 -0
  506. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/dependency_scanner.cpython-312.pyc +0 -0
  507. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/injection_scanner.cpython-312.pyc +0 -0
  508. package/templates/skills/extended/other/007/scripts/scanners/__pycache__/secrets_scanner.cpython-312.pyc +0 -0
  509. package/templates/skills/extended/other/acceptance-orchestrator/SKILL.md +152 -0
  510. package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/match_skills.cpython-312.pyc +0 -0
  511. package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/orchestrate.cpython-312.pyc +0 -0
  512. package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/scan_registry.cpython-312.pyc +0 -0
  513. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/config.cpython-312.pyc +0 -0
  514. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/generate.cpython-312.pyc +0 -0
  515. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/prompt_engine.cpython-312.pyc +0 -0
  516. package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/templates.cpython-312.pyc +0 -0
  517. package/templates/skills/extended/other/antigravity-skill-orchestrator/README.md +32 -0
  518. package/templates/skills/extended/other/antigravity-skill-orchestrator/SKILL.md +169 -0
  519. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/api_bench.cpython-312.pyc +0 -0
  520. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/config.cpython-312.pyc +0 -0
  521. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/health_check.cpython-312.pyc +0 -0
  522. package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/monitor.cpython-312.pyc +0 -0
  523. package/templates/skills/extended/other/closed-loop-delivery/SKILL.md +163 -0
  524. package/templates/skills/extended/other/context-agent/scripts/__pycache__/active_context.cpython-312.pyc +0 -0
  525. package/templates/skills/extended/other/context-agent/scripts/__pycache__/compressor.cpython-312.pyc +0 -0
  526. package/templates/skills/extended/other/context-agent/scripts/__pycache__/config.cpython-312.pyc +0 -0
  527. package/templates/skills/extended/other/context-agent/scripts/__pycache__/context_loader.cpython-312.pyc +0 -0
  528. package/templates/skills/extended/other/context-agent/scripts/__pycache__/context_manager.cpython-312.pyc +0 -0
  529. package/templates/skills/extended/other/context-agent/scripts/__pycache__/models.cpython-312.pyc +0 -0
  530. package/templates/skills/extended/other/context-agent/scripts/__pycache__/project_registry.cpython-312.pyc +0 -0
  531. package/templates/skills/extended/other/context-agent/scripts/__pycache__/search.cpython-312.pyc +0 -0
  532. package/templates/skills/extended/other/context-agent/scripts/__pycache__/session_parser.cpython-312.pyc +0 -0
  533. package/templates/skills/extended/other/context-agent/scripts/__pycache__/session_summary.cpython-312.pyc +0 -0
  534. package/templates/skills/extended/other/context-guardian/scripts/__pycache__/context_snapshot.cpython-312.pyc +0 -0
  535. package/templates/skills/extended/other/create-issue-gate/SKILL.md +131 -0
  536. package/templates/skills/extended/other/electron-development/SKILL.md +902 -0
  537. package/templates/skills/extended/other/instagram/scripts/__pycache__/account_setup.cpython-312.pyc +0 -0
  538. package/templates/skills/extended/other/instagram/scripts/__pycache__/analyze.cpython-312.pyc +0 -0
  539. package/templates/skills/extended/other/instagram/scripts/__pycache__/api_client.cpython-312.pyc +0 -0
  540. package/templates/skills/extended/other/instagram/scripts/__pycache__/auth.cpython-312.pyc +0 -0
  541. package/templates/skills/extended/other/instagram/scripts/__pycache__/comments.cpython-312.pyc +0 -0
  542. package/templates/skills/extended/other/instagram/scripts/__pycache__/config.cpython-312.pyc +0 -0
  543. package/templates/skills/extended/other/instagram/scripts/__pycache__/db.cpython-312.pyc +0 -0
  544. package/templates/skills/extended/other/instagram/scripts/__pycache__/export.cpython-312.pyc +0 -0
  545. package/templates/skills/extended/other/instagram/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  546. package/templates/skills/extended/other/instagram/scripts/__pycache__/hashtags.cpython-312.pyc +0 -0
  547. package/templates/skills/extended/other/instagram/scripts/__pycache__/insights.cpython-312.pyc +0 -0
  548. package/templates/skills/extended/other/instagram/scripts/__pycache__/media.cpython-312.pyc +0 -0
  549. package/templates/skills/extended/other/instagram/scripts/__pycache__/messages.cpython-312.pyc +0 -0
  550. package/templates/skills/extended/other/instagram/scripts/__pycache__/profile.cpython-312.pyc +0 -0
  551. package/templates/skills/extended/other/instagram/scripts/__pycache__/publish.cpython-312.pyc +0 -0
  552. package/templates/skills/extended/other/instagram/scripts/__pycache__/run_all.cpython-312.pyc +0 -0
  553. package/templates/skills/extended/other/instagram/scripts/__pycache__/schedule.cpython-312.pyc +0 -0
  554. package/templates/skills/extended/other/instagram/scripts/__pycache__/serve_api.cpython-312.pyc +0 -0
  555. package/templates/skills/extended/other/instagram/scripts/__pycache__/templates.cpython-312.pyc +0 -0
  556. package/templates/skills/extended/other/interview-coach/SKILL.md +135 -0
  557. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/db.cpython-312.pyc +0 -0
  558. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/export.cpython-312.pyc +0 -0
  559. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/run_all.cpython-312.pyc +0 -0
  560. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/serve_api.cpython-312.pyc +0 -0
  561. package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/web_scraper_fallback.cpython-312.pyc +0 -0
  562. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/__init__.cpython-312.pyc +0 -0
  563. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/base_scraper.cpython-312.pyc +0 -0
  564. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/generic_scraper.cpython-312.pyc +0 -0
  565. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucap.cpython-312.pyc +0 -0
  566. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceac.cpython-312.pyc +0 -0
  567. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceal.cpython-312.pyc +0 -0
  568. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceb.cpython-312.pyc +0 -0
  569. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucec.cpython-312.pyc +0 -0
  570. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucema.cpython-312.pyc +0 -0
  571. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucemg.cpython-312.pyc +0 -0
  572. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucep.cpython-312.pyc +0 -0
  573. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepa.cpython-312.pyc +0 -0
  574. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepar.cpython-312.pyc +0 -0
  575. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepe.cpython-312.pyc +0 -0
  576. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepi.cpython-312.pyc +0 -0
  577. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucer.cpython-312.pyc +0 -0
  578. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucerja.cpython-312.pyc +0 -0
  579. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucern.cpython-312.pyc +0 -0
  580. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucesc.cpython-312.pyc +0 -0
  581. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucesp.cpython-312.pyc +0 -0
  582. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucetins.cpython-312.pyc +0 -0
  583. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucis_df.cpython-312.pyc +0 -0
  584. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucisrs.cpython-312.pyc +0 -0
  585. package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/states.cpython-312.pyc +0 -0
  586. package/templates/skills/extended/other/leiloeiro-avaliacao/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  587. package/templates/skills/extended/other/leiloeiro-edital/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  588. package/templates/skills/extended/other/leiloeiro-ia/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  589. package/templates/skills/extended/other/leiloeiro-juridico/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  590. package/templates/skills/extended/other/leiloeiro-mercado/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  591. package/templates/skills/extended/other/leiloeiro-risco/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  592. package/templates/skills/extended/other/matematico-tao/scripts/__pycache__/complexity_analyzer.cpython-312.pyc +0 -0
  593. package/templates/skills/extended/other/matematico-tao/scripts/__pycache__/dependency_graph.cpython-312.pyc +0 -0
  594. package/templates/skills/extended/other/oss-hunter/bin/__pycache__/hunter.cpython-312.pyc +0 -0
  595. package/templates/skills/extended/other/pipecat-friday-agent/scripts/__pycache__/friday_agent.cpython-312.pyc +0 -0
  596. package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/bundle_analyzer.cpython-312.pyc +0 -0
  597. package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/component_generator.cpython-312.pyc +0 -0
  598. package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/frontend_scaffolder.cpython-312.pyc +0 -0
  599. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/detect_skills.cpython-312.pyc +0 -0
  600. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/install_skill.cpython-312.pyc +0 -0
  601. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
  602. package/templates/skills/extended/other/skill-installer/scripts/__pycache__/validate_skill.cpython-312.pyc +0 -0
  603. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/config.cpython-312.pyc +0 -0
  604. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/cost_optimizer.cpython-312.pyc +0 -0
  605. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/db.cpython-312.pyc +0 -0
  606. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/governance.cpython-312.pyc +0 -0
  607. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/recommender.cpython-312.pyc +0 -0
  608. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/report_generator.cpython-312.pyc +0 -0
  609. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/run_audit.cpython-312.pyc +0 -0
  610. package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/scanner.cpython-312.pyc +0 -0
  611. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/__init__.cpython-312.pyc +0 -0
  612. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/code_quality.cpython-312.pyc +0 -0
  613. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/cross_skill.cpython-312.pyc +0 -0
  614. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/dependencies.cpython-312.pyc +0 -0
  615. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/documentation.cpython-312.pyc +0 -0
  616. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/governance_audit.cpython-312.pyc +0 -0
  617. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/performance.cpython-312.pyc +0 -0
  618. package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/security.cpython-312.pyc +0 -0
  619. package/templates/skills/extended/other/stability-ai/scripts/__pycache__/config.cpython-312.pyc +0 -0
  620. package/templates/skills/extended/other/stability-ai/scripts/__pycache__/generate.cpython-312.pyc +0 -0
  621. package/templates/skills/extended/other/stability-ai/scripts/__pycache__/styles.cpython-312.pyc +0 -0
  622. package/templates/skills/extended/other/telegram/assets/boilerplate/python/__pycache__/bot.cpython-312.pyc +0 -0
  623. package/templates/skills/extended/other/telegram/assets/boilerplate/python/__pycache__/webhook_server.cpython-312.pyc +0 -0
  624. package/templates/skills/extended/other/telegram/scripts/__pycache__/send_message.cpython-312.pyc +0 -0
  625. package/templates/skills/extended/other/telegram/scripts/__pycache__/setup_project.cpython-312.pyc +0 -0
  626. package/templates/skills/extended/other/telegram/scripts/__pycache__/test_bot.cpython-312.pyc +0 -0
  627. package/templates/skills/extended/other/typescript-expert/scripts/__pycache__/ts_diagnostic.cpython-312.pyc +0 -0
  628. package/templates/skills/extended/other/videodb/scripts/__pycache__/ws_listener.cpython-312.pyc +0 -0
  629. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/app.cpython-312.pyc +0 -0
  630. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/template_manager.cpython-312.pyc +0 -0
  631. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/webhook_handler.cpython-312.pyc +0 -0
  632. package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/whatsapp_client.cpython-312.pyc +0 -0
  633. package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/send_test_message.cpython-312.pyc +0 -0
  634. package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/setup_project.cpython-312.pyc +0 -0
  635. package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/validate_config.cpython-312.pyc +0 -0
  636. package/templates/skills/extended/security/privacy-by-design/README.md +25 -0
  637. package/templates/skills/extended/security/privacy-by-design/SKILL.md +259 -0
  638. package/templates/skills/extended/workflow/finishing-a-development-branch/SKILL.md +6 -1
  639. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/easing.cpython-312.pyc +0 -0
  640. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/frame_composer.cpython-312.pyc +0 -0
  641. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/gif_builder.cpython-312.pyc +0 -0
  642. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/validators.cpython-312.pyc +0 -0
  643. package/templates/skills/knowledge/ai-agents/prompt-engineering-patterns/scripts/__pycache__/optimize-prompt.cpython-312.pyc +0 -0
  644. package/templates/skills/knowledge/backend/api-design-principles/assets/__pycache__/rest-api-template.cpython-312.pyc +0 -0
  645. package/templates/skills/knowledge/backend/api-patterns/scripts/__pycache__/api_validator.cpython-312.pyc +0 -0
  646. package/templates/skills/knowledge/backend/database-design/scripts/__pycache__/schema_validator.cpython-312.pyc +0 -0
  647. package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/brand_voice_analyzer.cpython-312.pyc +0 -0
  648. package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/seo_optimizer.cpython-312.pyc +0 -0
  649. package/templates/skills/knowledge/content/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-312.pyc +0 -0
  650. package/templates/skills/knowledge/content/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-312.pyc +0 -0
  651. package/templates/skills/knowledge/debugging/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-312.pyc +0 -0
  652. package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/accessibility_checker.cpython-312.pyc +0 -0
  653. package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/ux_audit.cpython-312.pyc +0 -0
  654. package/templates/skills/knowledge/frontend/stitch-loop/SKILL.md +108 -115
  655. package/templates/skills/knowledge/i18n/i18n-localization/scripts/__pycache__/i18n_checker.cpython-312.pyc +0 -0
  656. package/templates/skills/knowledge/mobile/mobile-design/scripts/__pycache__/mobile_audit.cpython-312.pyc +0 -0
  657. package/templates/skills/knowledge/security/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-312.pyc +0 -0
  658. package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/lint_runner.cpython-312.pyc +0 -0
  659. package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/type_coverage.cpython-312.pyc +0 -0
  660. package/templates/skills/knowledge/testing/testing-patterns/scripts/__pycache__/test_runner.cpython-312.pyc +0 -0
  661. package/templates/skills/knowledge/testing/webapp-testing/scripts/__pycache__/playwright_runner.cpython-312.pyc +0 -0
  662. package/templates/skills/knowledge/workflow/plugin-discovery/scripts/__pycache__/platform_setup.cpython-312.pyc +0 -0
  663. package/templates/skills/knowledge/workflow/self-update/scripts/__pycache__/update_kit.cpython-312.pyc +0 -0
@@ -0,0 +1,902 @@
1
+ ---
2
+ name: electron-development
3
+ description: "Master Electron desktop app development with secure IPC, contextIsolation, preload scripts, multi-process architecture, electron-builder packaging, code signing, and auto-update."
4
+ risk: safe
5
+ source: community
6
+ date_added: "2026-03-12"
7
+ ---
8
+
9
+ # Electron Development
10
+
11
+ You are a senior Electron engineer specializing in secure, production-grade desktop application architecture. You have deep expertise in Electron's multi-process model, IPC security patterns, native OS integration, application packaging, code signing, and auto-update strategies.
12
+
13
+ ## Use this skill when
14
+
15
+ - Building new Electron desktop applications from scratch
16
+ - Securing an Electron app (contextIsolation, sandbox, CSP, nodeIntegration)
17
+ - Setting up IPC communication between main, renderer, and preload processes
18
+ - Packaging and distributing Electron apps with electron-builder or electron-forge
19
+ - Implementing auto-update with electron-updater
20
+ - Debugging main process issues or renderer crashes
21
+ - Managing multiple windows and application lifecycle
22
+ - Integrating native OS features (menus, tray, notifications, file system dialogs)
23
+ - Optimizing Electron app performance and bundle size
24
+
25
+ ## Do not use this skill when
26
+
27
+ - Building web-only applications without desktop distribution → use `react-patterns`, `nextjs-best-practices`
28
+ - Building Tauri apps (Rust-based desktop alternative) → use `tauri-development` if available
29
+ - Building Chrome extensions → use `chrome-extension-developer`
30
+ - Implementing deep backend/server logic → use `nodejs-backend-patterns`
31
+ - Building mobile apps → use `react-native-architecture` or `flutter-expert`
32
+
33
+ ## Instructions
34
+
35
+ 1. Analyze the project structure and identify process boundaries.
36
+ 2. Enforce security defaults: `contextIsolation: true`, `nodeIntegration: false`, `sandbox: true`.
37
+ 3. Design IPC channels with explicit whitelisting in the preload script.
38
+ 4. Implement, test, and build with appropriate tooling.
39
+ 5. Validate against the Production Security Checklist before shipping.
40
+
41
+ ---
42
+
43
+ ## Core Expertise Areas
44
+
45
+ ### 1. Project Structure & Architecture
46
+
47
+ **Recommended project layout:**
48
+ ```
49
+ my-electron-app/
50
+ ├── package.json
51
+ ├── electron-builder.yml # or forge.config.ts
52
+ ├── src/
53
+ │ ├── main/
54
+ │ │ ├── main.ts # Main process entry
55
+ │ │ ├── ipc-handlers.ts # IPC channel handlers
56
+ │ │ ├── menu.ts # Application menu
57
+ │ │ ├── tray.ts # System tray
58
+ │ │ └── updater.ts # Auto-update logic
59
+ │ ├── preload/
60
+ │ │ └── preload.ts # Bridge between main ↔ renderer
61
+ │ ├── renderer/
62
+ │ │ ├── index.html # Entry HTML
63
+ │ │ ├── App.tsx # UI root (React/Vue/Svelte/vanilla)
64
+ │ │ ├── components/
65
+ │ │ └── styles/
66
+ │ └── shared/
67
+ │ ├── constants.ts # IPC channel names, shared enums
68
+ │ └── types.ts # Shared TypeScript interfaces
69
+ ├── resources/
70
+ │ ├── icon.png # App icon (1024x1024)
71
+ │ └── entitlements.mac.plist # macOS entitlements
72
+ ├── tests/
73
+ │ ├── unit/
74
+ │ └── e2e/
75
+ └── tsconfig.json
76
+ ```
77
+
78
+ **Key architectural principles:**
79
+ - **Separate entry points**: Main, preload, and renderer each have their own build configuration.
80
+ - **Shared types, not shared modules**: The `shared/` directory contains only types, constants, and enums — never executable code imported across process boundaries.
81
+ - **Keep main process lean**: Main should orchestrate windows, handle IPC, and manage app lifecycle. Business logic belongs in the renderer or dedicated worker processes.
82
+
83
+ ---
84
+
85
+ ### 2. Process Model (Main / Renderer / Preload / Utility)
86
+
87
+ Electron runs **multiple processes** that are isolated by design:
88
+
89
+ | Process | Role | Node.js Access | DOM Access |
90
+ |---------|------|----------------|------------|
91
+ | **Main** | App lifecycle, windows, native APIs, IPC hub | ✅ Full | ❌ None |
92
+ | **Renderer** | UI rendering, user interaction | ❌ None (by default) | ✅ Full |
93
+ | **Preload** | Secure bridge between main and renderer | ✅ Limited (via contextBridge) | ✅ Before page loads |
94
+ | **Utility** | CPU-intensive tasks, background work | ✅ Full | ❌ None |
95
+
96
+ **BrowserWindow with security defaults (MANDATORY):**
97
+ ```typescript
98
+ import { BrowserWindow } from 'electron';
99
+ import path from 'node:path';
100
+
101
+ function createMainWindow(): BrowserWindow {
102
+ const win = new BrowserWindow({
103
+ width: 1200,
104
+ height: 800,
105
+ webPreferences: {
106
+ // ── SECURITY DEFAULTS (NEVER CHANGE THESE) ──
107
+ contextIsolation: true, // Isolates preload from renderer context
108
+ nodeIntegration: false, // Prevents require() in renderer
109
+ sandbox: true, // OS-level process sandboxing
110
+
111
+ // ── PRELOAD SCRIPT ──
112
+ preload: path.join(__dirname, '../preload/preload.js'),
113
+
114
+ // ── ADDITIONAL HARDENING ──
115
+ webSecurity: true, // Enforce same-origin policy
116
+ allowRunningInsecureContent: false,
117
+ experimentalFeatures: false,
118
+ },
119
+ });
120
+
121
+ // Content Security Policy
122
+ win.webContents.session.webRequest.onHeadersReceived((details, callback) => {
123
+ callback({
124
+ responseHeaders: {
125
+ ...details.responseHeaders,
126
+ 'Content-Security-Policy': [
127
+ "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:;"
128
+ ],
129
+ },
130
+ });
131
+ });
132
+
133
+ return win;
134
+ }
135
+ ```
136
+
137
+ > ⚠️ **CRITICAL**: Never set `nodeIntegration: true` or `contextIsolation: false` in production. These settings expose the renderer to remote code execution (RCE) attacks through XSS vulnerabilities.
138
+
139
+ ---
140
+
141
+ ### 3. Secure IPC Communication
142
+
143
+ IPC is the **only** safe channel for communication between main and renderer processes. All IPC must flow through the preload script.
144
+
145
+ **Preload script (contextBridge + explicit whitelisting):**
146
+ ```typescript
147
+ // src/preload/preload.ts
148
+ import { contextBridge, ipcRenderer } from 'electron';
149
+
150
+ // ── WHITELIST: Only expose specific channels ──
151
+ const ALLOWED_SEND_CHANNELS = [
152
+ 'file:save',
153
+ 'file:open',
154
+ 'app:get-version',
155
+ 'dialog:show-open',
156
+ ] as const;
157
+
158
+ const ALLOWED_RECEIVE_CHANNELS = [
159
+ 'file:saved',
160
+ 'file:opened',
161
+ 'app:version',
162
+ 'update:available',
163
+ 'update:progress',
164
+ 'update:downloaded',
165
+ 'update:error',
166
+ ] as const;
167
+
168
+ type SendChannel = typeof ALLOWED_SEND_CHANNELS[number];
169
+ type ReceiveChannel = typeof ALLOWED_RECEIVE_CHANNELS[number];
170
+
171
+ contextBridge.exposeInMainWorld('electronAPI', {
172
+ // One-way: renderer → main
173
+ send: (channel: SendChannel, ...args: unknown[]) => {
174
+ if (ALLOWED_SEND_CHANNELS.includes(channel)) {
175
+ ipcRenderer.send(channel, ...args);
176
+ }
177
+ },
178
+
179
+ // Two-way: renderer → main → renderer (request/response)
180
+ invoke: (channel: SendChannel, ...args: unknown[]) => {
181
+ if (ALLOWED_SEND_CHANNELS.includes(channel)) {
182
+ return ipcRenderer.invoke(channel, ...args);
183
+ }
184
+ return Promise.reject(new Error(`Channel "${channel}" is not allowed`));
185
+ },
186
+
187
+ // One-way: main → renderer (subscriptions)
188
+ on: (channel: ReceiveChannel, callback: (...args: unknown[]) => void) => {
189
+ if (ALLOWED_RECEIVE_CHANNELS.includes(channel)) {
190
+ const listener = (_event: Electron.IpcRendererEvent, ...args: unknown[]) => callback(...args);
191
+ ipcRenderer.on(channel, listener);
192
+ return () => ipcRenderer.removeListener(channel, listener);
193
+ }
194
+ return () => {};
195
+ },
196
+ });
197
+ ```
198
+
199
+ **Main process IPC handlers:**
200
+ ```typescript
201
+ // src/main/ipc-handlers.ts
202
+ import { ipcMain, dialog, BrowserWindow } from 'electron';
203
+ import { readFile, writeFile } from 'node:fs/promises';
204
+
205
+ export function registerIpcHandlers(): void {
206
+ // invoke() pattern: returns a value to the renderer
207
+ ipcMain.handle('file:open', async () => {
208
+ const { canceled, filePaths } = await dialog.showOpenDialog({
209
+ properties: ['openFile'],
210
+ filters: [{ name: 'Text Files', extensions: ['txt', 'md'] }],
211
+ });
212
+
213
+ if (canceled || filePaths.length === 0) return null;
214
+
215
+ const content = await readFile(filePaths[0], 'utf-8');
216
+ return { path: filePaths[0], content };
217
+ });
218
+
219
+ ipcMain.handle('file:save', async (_event, filePath: string, content: string) => {
220
+ // VALIDATE INPUTS — never trust renderer data blindly
221
+ if (typeof filePath !== 'string' || typeof content !== 'string') {
222
+ throw new Error('Invalid arguments');
223
+ }
224
+ await writeFile(filePath, content, 'utf-8');
225
+ return { success: true };
226
+ });
227
+
228
+ ipcMain.handle('app:get-version', () => {
229
+ return process.versions.electron;
230
+ });
231
+ }
232
+ ```
233
+
234
+ **Renderer usage (type-safe):**
235
+ ```typescript
236
+ // src/renderer/App.tsx — or any renderer code
237
+ // The electronAPI is globally available via contextBridge
238
+
239
+ declare global {
240
+ interface Window {
241
+ electronAPI: {
242
+ send: (channel: string, ...args: unknown[]) => void;
243
+ invoke: (channel: string, ...args: unknown[]) => Promise<unknown>;
244
+ on: (channel: string, callback: (...args: unknown[]) => void) => () => void;
245
+ };
246
+ }
247
+ }
248
+
249
+ // Open a file via IPC
250
+ async function openFile() {
251
+ const result = await window.electronAPI.invoke('file:open');
252
+ if (result) {
253
+ console.log('File content:', result.content);
254
+ }
255
+ }
256
+
257
+ // Subscribe to updates from main process
258
+ const unsubscribe = window.electronAPI.on('update:available', (version) => {
259
+ console.log('Update available:', version);
260
+ });
261
+
262
+ // Cleanup on unmount
263
+ // unsubscribe();
264
+ ```
265
+
266
+ **IPC Pattern Summary:**
267
+
268
+ | Pattern | Method | Use Case |
269
+ |---------|--------|----------|
270
+ | **Fire-and-forget** | `ipcRenderer.send()` → `ipcMain.on()` | Logging, telemetry, non-critical notifications |
271
+ | **Request/Response** | `ipcRenderer.invoke()` → `ipcMain.handle()` | File operations, dialogs, data queries |
272
+ | **Push to renderer** | `webContents.send()` → `ipcRenderer.on()` | Progress updates, download status, auto-update |
273
+
274
+ > ⚠️ **Never** use `ipcRenderer.sendSync()` in production — it blocks the renderer's event loop and freezes the UI.
275
+
276
+ ---
277
+
278
+ ### 4. Security Hardening
279
+
280
+ #### Production Security Checklist
281
+
282
+ ```
283
+ ── MANDATORY ──
284
+ [ ] contextIsolation: true
285
+ [ ] nodeIntegration: false
286
+ [ ] sandbox: true
287
+ [ ] webSecurity: true
288
+ [ ] allowRunningInsecureContent: false
289
+
290
+ ── IPC ──
291
+ [ ] Preload uses contextBridge with explicit channel whitelisting
292
+ [ ] All IPC inputs are validated in the main process
293
+ [ ] No raw ipcRenderer exposed to renderer context
294
+ [ ] No use of ipcRenderer.sendSync()
295
+
296
+ ── CONTENT ──
297
+ [ ] Content Security Policy (CSP) headers set on all windows
298
+ [ ] No use of eval(), new Function(), or innerHTML with untrusted data
299
+ [ ] Remote content (if any) loaded in separate BrowserView with restricted permissions
300
+ [ ] protocol.registerSchemesAsPrivileged() uses minimal permissions
301
+
302
+ ── NAVIGATION ──
303
+ [ ] webContents 'will-navigate' event intercepted — block unexpected URLs
304
+ [ ] webContents 'new-window' event intercepted — prevent pop-up exploitation
305
+ [ ] No shell.openExternal() with unsanitized URLs
306
+
307
+ ── PACKAGING ──
308
+ [ ] ASAR archive enabled (protects source from casual inspection)
309
+ [ ] No sensitive credentials or API keys bundled in the app
310
+ [ ] Code signing configured for both Windows and macOS
311
+ [ ] Auto-update uses HTTPS and verifies signatures
312
+ ```
313
+
314
+ **Preventing Navigation Hijacking:**
315
+ ```typescript
316
+ // In main process, after creating a BrowserWindow
317
+ win.webContents.on('will-navigate', (event, url) => {
318
+ const parsedUrl = new URL(url);
319
+ // Only allow navigation within your app
320
+ if (parsedUrl.origin !== 'http://localhost:5173') { // dev server
321
+ event.preventDefault();
322
+ console.warn(`Blocked navigation to: ${url}`);
323
+ }
324
+ });
325
+
326
+ // Prevent new windows from being opened
327
+ win.webContents.setWindowOpenHandler(({ url }) => {
328
+ try {
329
+ const externalUrl = new URL(url);
330
+ const allowedHosts = new Set(['example.com', 'docs.example.com']);
331
+
332
+ // Never forward raw renderer-controlled URLs to the OS.
333
+ // Unvalidated links can enable phishing or abuse platform URL handlers.
334
+ if (externalUrl.protocol === 'https:' && allowedHosts.has(externalUrl.hostname)) {
335
+ require('electron').shell.openExternal(externalUrl.toString());
336
+ } else {
337
+ console.warn(`Blocked external URL: ${url}`);
338
+ }
339
+ } catch {
340
+ console.warn(`Rejected invalid external URL: ${url}`);
341
+ }
342
+
343
+ return { action: 'deny' }; // Block all new Electron windows
344
+ });
345
+ ```
346
+
347
+ **Custom Protocol Registration (secure):**
348
+ ```typescript
349
+ import { protocol } from 'electron';
350
+ import path from 'node:path';
351
+ import { readFile } from 'node:fs/promises';
352
+ import { URL } from 'node:url';
353
+
354
+ // Register a custom protocol for loading local assets securely
355
+ protocol.registerSchemesAsPrivileged([
356
+ { scheme: 'app', privileges: { standard: true, secure: true, supportFetchAPI: true } },
357
+ ]);
358
+
359
+ app.whenReady().then(() => {
360
+ protocol.handle('app', async (request) => {
361
+ const url = new URL(request.url);
362
+ const baseDir = path.resolve(__dirname, '../renderer');
363
+ // Strip the leading slash so path.resolve keeps baseDir as the root.
364
+ const relativePath = path.normalize(decodeURIComponent(url.pathname).replace(/^[/\\]+/, ''));
365
+ const filePath = path.resolve(baseDir, relativePath);
366
+
367
+ if (!filePath.startsWith(baseDir)) {
368
+ return new Response('Forbidden', { status: 403 });
369
+ }
370
+
371
+ const data = await readFile(filePath);
372
+ return new Response(data);
373
+ });
374
+ });
375
+ ```
376
+
377
+ ---
378
+
379
+ ### 5. State Management Across Processes
380
+
381
+ **Strategy 1: Main process as single source of truth (recommended for most apps)**
382
+ ```typescript
383
+ // src/main/store.ts
384
+ import { app } from 'electron';
385
+ import { readFileSync, writeFileSync } from 'node:fs';
386
+ import path from 'node:path';
387
+
388
+ interface AppState {
389
+ theme: 'light' | 'dark';
390
+ recentFiles: string[];
391
+ windowBounds: { x: number; y: number; width: number; height: number };
392
+ }
393
+
394
+ const DEFAULTS: AppState = {
395
+ theme: 'light',
396
+ recentFiles: [],
397
+ windowBounds: { x: 0, y: 0, width: 1200, height: 800 },
398
+ };
399
+
400
+ class Store {
401
+ private data: AppState;
402
+ private filePath: string;
403
+
404
+ constructor() {
405
+ this.filePath = path.join(app.getPath('userData'), 'settings.json');
406
+ this.data = this.load();
407
+ }
408
+
409
+ private load(): AppState {
410
+ try {
411
+ const raw = readFileSync(this.filePath, 'utf-8');
412
+ return { ...DEFAULTS, ...JSON.parse(raw) };
413
+ } catch {
414
+ return { ...DEFAULTS };
415
+ }
416
+ }
417
+
418
+ get<K extends keyof AppState>(key: K): AppState[K] {
419
+ return this.data[key];
420
+ }
421
+
422
+ set<K extends keyof AppState>(key: K, value: AppState[K]): void {
423
+ this.data[key] = value;
424
+ writeFileSync(this.filePath, JSON.stringify(this.data, null, 2));
425
+ }
426
+ }
427
+
428
+ export const store = new Store();
429
+ ```
430
+
431
+ **Strategy 2: electron-store (lightweight persistent storage)**
432
+ ```typescript
433
+ import Store from 'electron-store';
434
+
435
+ const store = new Store({
436
+ schema: {
437
+ theme: { type: 'string', enum: ['light', 'dark'], default: 'light' },
438
+ windowBounds: {
439
+ type: 'object',
440
+ properties: {
441
+ width: { type: 'number', default: 1200 },
442
+ height: { type: 'number', default: 800 },
443
+ },
444
+ },
445
+ },
446
+ });
447
+
448
+ // Usage
449
+ store.set('theme', 'dark');
450
+ console.log(store.get('theme')); // 'dark'
451
+ ```
452
+
453
+ **Multi-window state synchronization:**
454
+ ```typescript
455
+ // Main process: broadcast state changes to all windows
456
+ import { BrowserWindow } from 'electron';
457
+
458
+ function broadcastToAllWindows(channel: string, data: unknown): void {
459
+ for (const win of BrowserWindow.getAllWindows()) {
460
+ if (!win.isDestroyed()) {
461
+ win.webContents.send(channel, data);
462
+ }
463
+ }
464
+ }
465
+
466
+ // When theme changes:
467
+ ipcMain.handle('settings:set-theme', (_event, theme: 'light' | 'dark') => {
468
+ store.set('theme', theme);
469
+ broadcastToAllWindows('settings:theme-changed', theme);
470
+ });
471
+ ```
472
+
473
+ ---
474
+
475
+ ### 6. Build, Signing & Distribution
476
+
477
+ #### electron-builder Configuration
478
+
479
+ ```yaml
480
+ # electron-builder.yml
481
+ appId: com.mycompany.myapp
482
+ productName: My App
483
+ directories:
484
+ output: dist
485
+ buildResources: resources
486
+
487
+ files:
488
+ - "out/**/*" # compiled main + preload
489
+ - "renderer/**/*" # built renderer assets
490
+ - "package.json"
491
+
492
+ asar: true
493
+ compression: maximum
494
+
495
+ # ── macOS ──
496
+ mac:
497
+ category: public.app-category.developer-tools
498
+ hardenedRuntime: true
499
+ gatekeeperAssess: false
500
+ entitlements: resources/entitlements.mac.plist
501
+ entitlementsInherit: resources/entitlements.mac.plist
502
+ target:
503
+ - target: dmg
504
+ arch: [x64, arm64]
505
+ - target: zip
506
+ arch: [x64, arm64]
507
+
508
+ # ── Windows ──
509
+ win:
510
+ target:
511
+ - target: nsis
512
+ arch: [x64, arm64]
513
+ signingHashAlgorithms: [sha256]
514
+
515
+ nsis:
516
+ oneClick: false
517
+ allowToChangeInstallationDirectory: true
518
+ perMachine: false
519
+
520
+ # ── Linux ──
521
+ linux:
522
+ target:
523
+ - target: AppImage
524
+ - target: deb
525
+ category: Development
526
+ maintainer: your-email@example.com
527
+
528
+ # ── Auto Update ──
529
+ publish:
530
+ provider: github
531
+ owner: your-org
532
+ repo: your-repo
533
+ ```
534
+
535
+ #### Code Signing
536
+
537
+ ```bash
538
+ # macOS: requires Apple Developer certificate
539
+ # Set environment variables before building:
540
+ export CSC_LINK="path/to/Developer_ID_Application.p12"
541
+ export CSC_KEY_PASSWORD="your-password"
542
+
543
+ # Windows: requires EV or standard code signing certificate
544
+ # Set environment variables:
545
+ export WIN_CSC_LINK="path/to/code-signing.pfx"
546
+ export WIN_CSC_KEY_PASSWORD="your-password"
547
+
548
+ # Build signed app
549
+ npx electron-builder --mac --win --publish never
550
+ ```
551
+
552
+ #### Auto-Update with electron-updater
553
+
554
+ ```typescript
555
+ // src/main/updater.ts
556
+ import { autoUpdater } from 'electron-updater';
557
+ import { BrowserWindow } from 'electron';
558
+ import log from 'electron-log';
559
+
560
+ export function setupAutoUpdater(mainWindow: BrowserWindow): void {
561
+ autoUpdater.logger = log;
562
+ autoUpdater.autoDownload = false; // Let user decide
563
+ autoUpdater.autoInstallOnAppQuit = true;
564
+
565
+ autoUpdater.on('update-available', (info) => {
566
+ mainWindow.webContents.send('update:available', {
567
+ version: info.version,
568
+ releaseNotes: info.releaseNotes,
569
+ });
570
+ });
571
+
572
+ autoUpdater.on('download-progress', (progress) => {
573
+ mainWindow.webContents.send('update:progress', {
574
+ percent: Math.round(progress.percent),
575
+ bytesPerSecond: progress.bytesPerSecond,
576
+ });
577
+ });
578
+
579
+ autoUpdater.on('update-downloaded', () => {
580
+ mainWindow.webContents.send('update:downloaded');
581
+ });
582
+
583
+ autoUpdater.on('error', (err) => {
584
+ log.error('Update error:', err);
585
+ mainWindow.webContents.send('update:error', err.message);
586
+ });
587
+
588
+ // Check for updates every 4 hours
589
+ setInterval(() => autoUpdater.checkForUpdates(), 4 * 60 * 60 * 1000);
590
+ autoUpdater.checkForUpdates();
591
+ }
592
+
593
+ // Expose to renderer via IPC
594
+ ipcMain.handle('update:download', () => autoUpdater.downloadUpdate());
595
+ ipcMain.handle('update:install', () => autoUpdater.quitAndInstall());
596
+ ```
597
+
598
+ #### Bundle Size Optimization
599
+
600
+ - ✅ Use `asar: true` to package sources into a single archive
601
+ - ✅ Set `compression: maximum` in electron-builder config
602
+ - ✅ Exclude dev dependencies: `"files"` pattern should only include compiled output
603
+ - ✅ Use a bundler (Vite, webpack, esbuild) to tree-shake the renderer
604
+ - ✅ Audit `node_modules` shipped with the app — use `electron-builder`'s `files` exclude patterns
605
+ - ✅ Consider `@electron/rebuild` for native modules instead of shipping prebuilt for all platforms
606
+ - ❌ Do NOT bundle the entire `node_modules` — only production dependencies
607
+
608
+ ---
609
+
610
+ ### 7. Developer Experience & Debugging
611
+
612
+ #### Development Setup with Hot Reload
613
+
614
+ ```json
615
+ // package.json scripts
616
+ {
617
+ "scripts": {
618
+ "dev": "concurrently \"npm run dev:renderer\" \"npm run dev:main\"",
619
+ "dev:renderer": "vite",
620
+ "dev:main": "electron-vite dev",
621
+ "build": "electron-vite build",
622
+ "start": "electron ."
623
+ }
624
+ }
625
+ ```
626
+
627
+ **Recommended toolchain:**
628
+ - **electron-vite** or **electron-forge with Vite plugin** — modern, fast HMR for renderer
629
+ - **tsx** or **ts-node** — for running TypeScript in main process during development
630
+ - **concurrently** — run renderer dev server + Electron simultaneously
631
+
632
+ #### Debugging the Main Process
633
+
634
+ ```json
635
+ // .vscode/launch.json
636
+ {
637
+ "version": "0.2.0",
638
+ "configurations": [
639
+ {
640
+ "name": "Debug Main Process",
641
+ "type": "node",
642
+ "request": "launch",
643
+ "cwd": "${workspaceFolder}",
644
+ "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
645
+ "args": [".", "--remote-debugging-port=9223"],
646
+ "sourceMaps": true,
647
+ "outFiles": ["${workspaceFolder}/out/**/*.js"],
648
+ "env": {
649
+ "NODE_ENV": "development"
650
+ }
651
+ }
652
+ ]
653
+ }
654
+ ```
655
+
656
+ **Other debugging techniques:**
657
+ ```typescript
658
+ // Enable DevTools only in development
659
+ if (process.env.NODE_ENV === 'development') {
660
+ win.webContents.openDevTools({ mode: 'detach' });
661
+ }
662
+
663
+ // Inspect specific renderer processes from command line:
664
+ // electron . --inspect=5858 --remote-debugging-port=9223
665
+ ```
666
+
667
+ #### Testing Strategy
668
+
669
+ **Unit testing (Vitest / Jest):**
670
+ ```typescript
671
+ // tests/unit/store.test.ts
672
+ import { describe, it, expect, vi } from 'vitest';
673
+
674
+ // Mock Electron modules for unit tests
675
+ vi.mock('electron', () => ({
676
+ app: { getPath: () => '/tmp/test' },
677
+ }));
678
+
679
+ describe('Store', () => {
680
+ it('returns default values for missing keys', () => {
681
+ // Test store logic without Electron runtime
682
+ });
683
+ });
684
+ ```
685
+
686
+ **E2E testing (Playwright + Electron):**
687
+ ```typescript
688
+ // tests/e2e/app.spec.ts
689
+ import { test, expect, _electron as electron } from '@playwright/test';
690
+
691
+ test('app launches and shows main window', async () => {
692
+ const app = await electron.launch({ args: ['.'] });
693
+ const window = await app.firstWindow();
694
+
695
+ // Wait for the app to fully load
696
+ await window.waitForLoadState('domcontentloaded');
697
+
698
+ const title = await window.title();
699
+ expect(title).toBe('My App');
700
+
701
+ // Take a screenshot for visual regression
702
+ await window.screenshot({ path: 'tests/screenshots/main-window.png' });
703
+
704
+ await app.close();
705
+ });
706
+
707
+ test('file open dialog works via IPC', async () => {
708
+ const app = await electron.launch({ args: ['.'] });
709
+ const window = await app.firstWindow();
710
+
711
+ // Test IPC by evaluating in the renderer context
712
+ const version = await window.evaluate(async () => {
713
+ return window.electronAPI.invoke('app:get-version');
714
+ });
715
+
716
+ expect(version).toBeTruthy();
717
+ await app.close();
718
+ });
719
+ ```
720
+
721
+ **Playwright config for Electron:**
722
+ ```typescript
723
+ // playwright.config.ts
724
+ import { defineConfig } from '@playwright/test';
725
+
726
+ export default defineConfig({
727
+ testDir: './tests/e2e',
728
+ timeout: 30_000,
729
+ retries: 1,
730
+ use: {
731
+ trace: 'on-first-retry',
732
+ screenshot: 'only-on-failure',
733
+ },
734
+ });
735
+ ```
736
+
737
+ ---
738
+
739
+ ## Application Lifecycle Management
740
+
741
+ ```typescript
742
+ // src/main/main.ts
743
+ import { app, BrowserWindow } from 'electron';
744
+ import { registerIpcHandlers } from './ipc-handlers';
745
+ import { setupAutoUpdater } from './updater';
746
+ import { store } from './store';
747
+
748
+ let mainWindow: BrowserWindow | null = null;
749
+
750
+ app.whenReady().then(() => {
751
+ registerIpcHandlers();
752
+ mainWindow = createMainWindow();
753
+
754
+ // Restore window bounds
755
+ const bounds = store.get('windowBounds');
756
+ if (bounds) mainWindow.setBounds(bounds);
757
+
758
+ // Save window bounds on close
759
+ mainWindow.on('close', () => {
760
+ if (mainWindow) store.set('windowBounds', mainWindow.getBounds());
761
+ });
762
+
763
+ // Auto-update (only in production)
764
+ if (app.isPackaged) {
765
+ setupAutoUpdater(mainWindow);
766
+ }
767
+
768
+ // macOS: re-create window when dock icon is clicked
769
+ app.on('activate', () => {
770
+ if (BrowserWindow.getAllWindows().length === 0) {
771
+ mainWindow = createMainWindow();
772
+ }
773
+ });
774
+ });
775
+
776
+ // Quit when all windows are closed (except on macOS)
777
+ app.on('window-all-closed', () => {
778
+ if (process.platform !== 'darwin') {
779
+ app.quit();
780
+ }
781
+ });
782
+
783
+ // Security: prevent additional renderers from being created
784
+ app.on('web-contents-created', (_event, contents) => {
785
+ contents.on('will-attach-webview', (event) => {
786
+ event.preventDefault(); // Block <webview> tags
787
+ });
788
+ });
789
+ ```
790
+
791
+ ---
792
+
793
+ ## Common Issue Diagnostics
794
+
795
+ ### White Screen on Launch
796
+ **Symptoms**: App starts but renderer shows a blank/white page
797
+ **Root causes**: Incorrect `loadFile`/`loadURL` path, build output missing, CSP blocking scripts
798
+ **Solutions**: Verify the path passed to `win.loadFile()` or `win.loadURL()` exists relative to the packaged app. Check DevTools console for CSP violations. In development, ensure the Vite/webpack dev server is running before Electron starts.
799
+
800
+ ### IPC Messages Not Received
801
+ **Symptoms**: `invoke()` hangs or `send()` has no effect
802
+ **Root causes**: Channel name mismatch, preload not loaded, contextBridge not exposing the channel
803
+ **Solutions**: Verify channel names match exactly between preload, main, and renderer. Confirm `preload` path is correct in `webPreferences`. Check that the channel is in the whitelist array.
804
+
805
+ ### Native Module Crashes
806
+ **Symptoms**: App crashes on startup with `MODULE_NOT_FOUND` or `invalid ELF header`
807
+ **Root causes**: Native module compiled for wrong Electron/Node ABI version
808
+ **Solutions**: Run `npx @electron/rebuild` after installing native modules. Ensure `electron-builder` is configured with the correct Electron version for rebuilding.
809
+
810
+ ### App Not Updating
811
+ **Symptoms**: `autoUpdater.checkForUpdates()` returns nothing or errors
812
+ **Root causes**: Missing `publish` config, unsigned app (macOS), incorrect GitHub release assets
813
+ **Solutions**: Verify `publish` section in `electron-builder.yml`. On macOS, app must be code-signed and notarized. Ensure the GitHub release contains the `-mac.zip` and `latest-mac.yml` (or equivalent Windows files).
814
+
815
+ ### Large Bundle Size (>200MB)
816
+ **Symptoms**: Built application is excessively large
817
+ **Root causes**: Dev dependencies bundled, no tree-shaking, duplicate Electron binaries
818
+ **Solutions**: Audit `files` patterns in `electron-builder.yml`. Use a bundler (Vite/esbuild) for the renderer. Check that `devDependencies` are not in `dependencies`. Use `compression: maximum`.
819
+
820
+ ---
821
+
822
+ ## Best Practices
823
+
824
+ - ✅ **Always** set `contextIsolation: true` and `nodeIntegration: false`
825
+ - ✅ **Always** use `contextBridge` in preload with an explicit channel whitelist
826
+ - ✅ **Always** validate IPC inputs in the main process — treat renderer as untrusted
827
+ - ✅ **Always** use `ipcMain.handle()` / `ipcRenderer.invoke()` for request/response IPC
828
+ - ✅ **Always** configure Content Security Policy headers
829
+ - ✅ **Always** sanitize URLs before passing to `shell.openExternal()`
830
+ - ✅ **Always** code-sign your production builds
831
+ - ✅ Use Playwright with `@playwright/test`'s Electron support for E2E tests
832
+ - ✅ Store user data in `app.getPath('userData')`, never in the app directory
833
+ - ❌ **Never** set `nodeIntegration: true` — this is the #1 Electron security vulnerability
834
+ - ❌ **Never** expose raw `ipcRenderer` or `require()` to the renderer context
835
+ - ❌ **Never** use `remote` module (deprecated and insecure)
836
+ - ❌ **Never** use `ipcRenderer.sendSync()` — it blocks the renderer event loop
837
+ - ❌ **Never** disable `webSecurity` in production
838
+ - ❌ **Never** load remote/untrusted content without a strict CSP and sandboxing
839
+
840
+ ## Limitations
841
+
842
+ - Electron bundles Chromium + Node.js, resulting in a minimum ~150MB app size — this is a fundamental trade-off of the framework
843
+ - Not suitable for apps where minimal install size is critical (consider Tauri instead)
844
+ - Single-window apps are simpler to architect; multi-window state synchronization requires careful IPC design
845
+ - Auto-update on Linux requires distributing via Snap, Flatpak, or custom mechanisms — `electron-updater` has limited Linux support
846
+ - macOS notarization requires an Apple Developer account ($99/year) and is mandatory for distribution outside the Mac App Store
847
+ - Debugging main process issues requires VS Code or Chrome DevTools via `--inspect` flag — there is no integrated debugger in Electron itself
848
+
849
+ ## Related Skills
850
+
851
+ - `chrome-extension-developer` — When building browser extensions instead of desktop apps (shares multi-process model concepts)
852
+ - `docker-expert` — When containerizing Electron's build pipeline or CI/CD
853
+ - `react-patterns` / `react-best-practices` — When using React for the renderer UI
854
+ - `typescript-pro` — When setting up advanced TypeScript configurations for multi-target builds
855
+ - `nodejs-backend-patterns` — When the main process needs complex backend logic
856
+ - `github-actions-templates` — When setting up CI/CD for cross-platform Electron builds
857
+
858
+ ---
859
+
860
+ <!-- AGI-INTEGRATION-START -->
861
+
862
+ ## AGI Framework Integration
863
+
864
+ > **Adapted for [@techwavedev/agi-agent-kit](https://www.npmjs.com/package/@techwavedev/agi-agent-kit)**
865
+ > Original source: [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills)
866
+
867
+ ### Memory-First Protocol
868
+
869
+ Retrieve prior design decisions (color palettes, typography, spacing scales) to maintain visual consistency across sessions. Cache generated design tokens.
870
+
871
+ ```bash
872
+ # Check for prior frontend/design context before starting
873
+ python3 execution/memory_manager.py auto --query "design system decisions and component patterns for Electron Development"
874
+ ```
875
+
876
+ ### Storing Results
877
+
878
+ After completing work, store frontend/design decisions for future sessions:
879
+
880
+ ```bash
881
+ python3 execution/memory_manager.py store \
882
+ --content "Design system: adopted 8px grid, Inter font family, HSL color tokens with dark mode support" \
883
+ --type decision --project <project> \
884
+ --tags electron-development frontend
885
+ ```
886
+
887
+ ### Multi-Agent Collaboration
888
+
889
+ Share design decisions with backend agents (API contract changes) and QA agents (visual regression baselines).
890
+
891
+ ```bash
892
+ python3 execution/cross_agent_context.py store \
893
+ --agent "<your-agent>" \
894
+ --action "Implemented UI components — new design system with accessibility compliance (WCAG 2.1 AA)" \
895
+ --project <project>
896
+ ```
897
+
898
+ ### Design Memory Persistence
899
+
900
+ Store design system tokens and component decisions in Qdrant so any agent on any platform (Claude, Gemini, Cursor) can retrieve and apply consistent styling.
901
+
902
+ <!-- AGI-INTEGRATION-END -->