@techwavedev/agi-agent-kit 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/package.json +1 -1
- package/templates/base/.env.example +28 -0
- package/templates/base/docker-compose.aries.yml +47 -0
- package/templates/base/docker-compose.pulsar.yml +29 -0
- package/templates/base/execution/agent_events.py +349 -0
- package/templates/base/execution/blockchain_auth.py +515 -0
- package/templates/base/execution/dispatch_agent_team.py +24 -5
- package/templates/base/execution/memory_manager.py +142 -10
- package/templates/base/execution/run_test_scenario.py +109 -6
- package/templates/base/execution/session_boot.py +82 -0
- package/templates/base/execution/session_init.py +48 -4
- package/templates/base/execution/test_qdrant_handoff.py +578 -0
- package/templates/base/tests/test_agent_events.py +249 -0
- package/templates/base/tests/test_blockchain_auth.py +375 -0
- package/templates/base/tests/test_multi_tenancy.py +296 -0
- package/templates/skills/core/documentation/scripts/__pycache__/analyze_code.cpython-312.pyc +0 -0
- package/templates/skills/core/documentation/scripts/__pycache__/detect_changes.cpython-312.pyc +0 -0
- package/templates/skills/core/documentation/scripts/__pycache__/generate_changelog.cpython-312.pyc +0 -0
- package/templates/skills/core/documentation/scripts/__pycache__/sync_docs.cpython-312.pyc +0 -0
- package/templates/skills/core/documentation/scripts/__pycache__/update_skill_docs.cpython-312.pyc +0 -0
- package/templates/skills/core/pdf-reader/scripts/__pycache__/extract_text.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/benchmark_token_savings.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/bm25_index.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/embedding_utils.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/hybrid_search.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/init_collection.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/memory_retrieval.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/semantic_cache.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/test_skill.cpython-312.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/memory_retrieval.py +110 -10
- package/templates/skills/core/webcrawler/scripts/__pycache__/crawl_docs.cpython-312.pyc +0 -0
- package/templates/skills/core/webcrawler/scripts/__pycache__/extract_page.cpython-312.pyc +0 -0
- package/templates/skills/core/webcrawler/scripts/__pycache__/filter_docs.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/__pycache__/last30days.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/cache.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dates.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dedupe.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/env.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/http.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/models.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/normalize.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/openai_reddit.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/reddit_enrich.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/render.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/schema.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/score.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/ui.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/websearch.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/xai_x.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_cache.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dates.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dedupe.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_models.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_normalize.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_render.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_score.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/complete_voice_engine.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/gemini_agent_example.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/interrupt_system_example.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/base_worker_template.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/multi_provider_factory_template.cpython-312.pyc +0 -0
- package/templates/skills/extended/ai-agents/youtube-summarizer/scripts/__pycache__/extract-transcript.cpython-312.pyc +0 -0
- package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/architecture_diagram_generator.cpython-312.pyc +0 -0
- package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/dependency_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/project_architect.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/xlsx/__pycache__/recalc.cpython-312.pyc +0 -0
- package/templates/skills/extended/data/xlsx-official/__pycache__/recalc.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/capi-mcp-gateway/SKILL.md +343 -0
- package/templates/skills/extended/devops/capi-mcp-gateway/references/agent_loop.md +237 -0
- package/templates/skills/extended/devops/capi-mcp-gateway/references/configuration.md +200 -0
- package/templates/skills/extended/devops/capi-mcp-gateway/references/security.md +199 -0
- package/templates/skills/extended/devops/capi-mcp-gateway/scripts/__pycache__/capi_mcp_client.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/capi-mcp-gateway/scripts/capi_mcp_client.py +255 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/0.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/1.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/10.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/100.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/101.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/102.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/103.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/104.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/105.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/106.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/107.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/108.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/109.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/11.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/110.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/111.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/112.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/113.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/114.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/115.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/116.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/117.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/118.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/119.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/12.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/120.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/121.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/122.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/123.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/124.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/125.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/126.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/127.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/128.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/129.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/13.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/130.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/131.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/132.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/133.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/134.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/135.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/136.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/137.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/138.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/139.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/14.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/140.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/141.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/142.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/143.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/144.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/145.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/146.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/147.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/148.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/149.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/15.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/150.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/151.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/152.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/153.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/154.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/155.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/156.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/157.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/158.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/159.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/16.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/160.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/161.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/162.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/163.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/17.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/18.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/19.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/2.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/20.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/21.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/22.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/23.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/24.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/25.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/26.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/27.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/28.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/29.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/3.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/30.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/31.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/32.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/33.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/34.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/35.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/36.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/37.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/38.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/39.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/4.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/40.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/41.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/42.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/43.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/44.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/45.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/46.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/47.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/48.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/49.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/5.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/50.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/51.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/52.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/53.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/54.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/55.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/56.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/57.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/58.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/59.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/6.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/60.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/61.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/62.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/63.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/64.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/65.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/66.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/67.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/68.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/69.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/7.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/70.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/71.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/72.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/73.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/74.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/75.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/76.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/77.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/78.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/79.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/8.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/80.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/81.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/82.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/83.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/84.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/85.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/86.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/87.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/88.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/89.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/9.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/90.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/91.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/92.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/93.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/94.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/95.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/96.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/97.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/98.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/99.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/0.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/1.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/10.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/100.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/101.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/102.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/103.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/104.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/105.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/106.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/107.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/108.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/109.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/11.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/110.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/111.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/112.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/113.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/114.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/115.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/116.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/117.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/118.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/119.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/12.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/120.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/121.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/122.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/123.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/124.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/125.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/126.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/127.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/128.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/129.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/13.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/130.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/131.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/132.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/133.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/134.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/135.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/136.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/137.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/138.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/139.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/14.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/140.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/141.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/142.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/143.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/144.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/145.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/146.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/147.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/148.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/149.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/15.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/150.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/151.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/152.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/153.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/154.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/155.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/156.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/157.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/158.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/159.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/16.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/160.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/161.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/162.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/163.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/17.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/18.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/19.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/2.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/20.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/21.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/22.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/23.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/24.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/25.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/26.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/27.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/28.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/29.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/3.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/30.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/31.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/32.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/33.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/34.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/35.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/36.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/37.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/38.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/39.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/4.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/40.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/41.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/42.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/43.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/44.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/45.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/46.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/47.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/48.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/49.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/5.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/50.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/51.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/52.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/53.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/54.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/55.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/56.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/57.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/58.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/59.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/6.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/60.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/61.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/62.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/63.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/64.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/65.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/66.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/67.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/68.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/69.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/7.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/70.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/71.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/72.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/73.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/74.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/75.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/76.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/77.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/78.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/79.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/8.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/80.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/81.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/82.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/83.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/84.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/85.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/86.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/87.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/88.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/89.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/9.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/90.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/91.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/92.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/93.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/94.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/95.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/96.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/97.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/98.cpython-312.pyc +0 -0
- package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/99.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/scripts/__pycache__/document.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/document.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/customer_interview_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/rice_prioritizer.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/scripts/__pycache__/replace.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/replace.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/code_quality_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/fullstack_scaffolder.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/project_scaffolder.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/init_skill.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/data/__pycache__/_sync_all.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/core.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/cli/assets/scripts/__pycache__/search.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/data/__pycache__/_sync_all.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
- package/templates/skills/extended/frontend/ui-ux-pro-max/src/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
- package/templates/skills/extended/gaming/audio-transcriber/scripts/__pycache__/transcribe.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/ab_test_planner.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/aso_scorer.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/competitor_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/keyword_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/launch_checklist.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/localization_helper.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/metadata_optimizer.cpython-312.pyc +0 -0
- package/templates/skills/extended/mobile/app-store-optimization/__pycache__/review_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/__pycache__/config.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/__pycache__/full_audit.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/__pycache__/quick_scan.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/__pycache__/score_calculator.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/scanners/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/scanners/__pycache__/dependency_scanner.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/scanners/__pycache__/injection_scanner.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/007/scripts/scanners/__pycache__/secrets_scanner.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/match_skills.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/orchestrate.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/agent-orchestrator/scripts/__pycache__/scan_registry.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/config.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/generate.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/prompt_engine.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/ai-studio-image/scripts/__pycache__/templates.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/api_bench.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/config.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/health_check.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/claude-monitor/scripts/__pycache__/monitor.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/active_context.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/compressor.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/config.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/context_loader.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/context_manager.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/models.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/project_registry.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/search.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/session_parser.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-agent/scripts/__pycache__/session_summary.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/context-guardian/scripts/__pycache__/context_snapshot.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/account_setup.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/analyze.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/api_client.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/auth.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/comments.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/config.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/db.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/export.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/hashtags.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/insights.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/media.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/messages.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/profile.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/publish.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/run_all.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/schedule.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/serve_api.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/instagram/scripts/__pycache__/templates.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/db.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/export.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/run_all.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/serve_api.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/__pycache__/web_scraper_fallback.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/base_scraper.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/generic_scraper.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucap.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceac.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceal.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/juceb.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucec.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucema.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucemg.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucep.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepa.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepar.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepe.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucepi.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucer.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucerja.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucern.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucesc.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucesp.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucetins.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucis_df.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/jucisrs.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/junta-leiloeiros/scripts/scraper/__pycache__/states.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/leiloeiro-avaliacao/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/leiloeiro-edital/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/leiloeiro-ia/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/leiloeiro-juridico/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/leiloeiro-mercado/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/leiloeiro-risco/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/matematico-tao/scripts/__pycache__/complexity_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/matematico-tao/scripts/__pycache__/dependency_graph.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/oss-hunter/bin/__pycache__/hunter.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/pipecat-friday-agent/scripts/__pycache__/friday_agent.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/bundle_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/component_generator.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/senior-frontend/scripts/__pycache__/frontend_scaffolder.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-installer/scripts/__pycache__/detect_skills.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-installer/scripts/__pycache__/install_skill.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-installer/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-installer/scripts/__pycache__/validate_skill.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/config.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/cost_optimizer.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/db.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/governance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/recommender.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/report_generator.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/run_audit.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/__pycache__/scanner.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/__init__.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/code_quality.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/cross_skill.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/dependencies.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/documentation.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/governance_audit.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/performance.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/skill-sentinel/scripts/analyzers/__pycache__/security.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/stability-ai/scripts/__pycache__/config.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/stability-ai/scripts/__pycache__/generate.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/stability-ai/scripts/__pycache__/styles.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/telegram/assets/boilerplate/python/__pycache__/bot.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/telegram/assets/boilerplate/python/__pycache__/webhook_server.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/telegram/scripts/__pycache__/send_message.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/telegram/scripts/__pycache__/setup_project.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/telegram/scripts/__pycache__/test_bot.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/typescript-expert/scripts/__pycache__/ts_diagnostic.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/videodb/scripts/__pycache__/ws_listener.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/app.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/template_manager.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/webhook_handler.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/whatsapp-cloud-api/assets/boilerplate/python/__pycache__/whatsapp_client.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/send_test_message.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/setup_project.cpython-312.pyc +0 -0
- package/templates/skills/extended/other/whatsapp-cloud-api/scripts/__pycache__/validate_config.cpython-312.pyc +0 -0
- package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/easing.cpython-312.pyc +0 -0
- package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/frame_composer.cpython-312.pyc +0 -0
- package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/gif_builder.cpython-312.pyc +0 -0
- package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/validators.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/ai-agents/prompt-engineering-patterns/scripts/__pycache__/optimize-prompt.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/backend/api-design-principles/assets/__pycache__/rest-api-template.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/backend/api-patterns/scripts/__pycache__/api_validator.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/backend/database-design/scripts/__pycache__/schema_validator.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/brand_voice_analyzer.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/seo_optimizer.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/content/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/content/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/debugging/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/accessibility_checker.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/ux_audit.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/i18n/i18n-localization/scripts/__pycache__/i18n_checker.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/mobile/mobile-design/scripts/__pycache__/mobile_audit.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/security/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/lint_runner.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/type_coverage.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/testing/testing-patterns/scripts/__pycache__/test_runner.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/testing/webapp-testing/scripts/__pycache__/playwright_runner.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/workflow/plugin-discovery/scripts/__pycache__/platform_setup.cpython-312.pyc +0 -0
- package/templates/skills/knowledge/workflow/self-update/scripts/__pycache__/update_kit.cpython-312.pyc +0 -0
package/templates/skills/extended/data/pdf/scripts/__pycache__/check_fillable_fields.cpython-312.pyc
CHANGED
|
Binary file
|
package/templates/skills/extended/data/pdf/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: capi-mcp-gateway
|
|
3
|
+
description: "Deploy, configure, and interact with CAPI Gateway's MCP (Model Context Protocol) endpoint. Turns any REST API into an MCP tool without backend code changes — LLM agents discover and invoke tools via JSON-RPC 2.0 over Streamable HTTP. Use when: (1) exposing existing REST services as MCP tools for AI agents, (2) setting up a CAPI MCP Gateway (Docker, JAR, or Helm), (3) registering services in Consul with MCP metadata, (4) connecting Claude Desktop, Cursor, or custom agents to a CAPI /mcp endpoint, (5) building Python/TypeScript agent loops that use CAPI-discovered tools, (6) debugging MCP sessions, tool routing, or JSON-RPC errors."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CAPI MCP Gateway Skill
|
|
7
|
+
|
|
8
|
+
Deploy and operate the [CAPI Gateway](https://github.com/surisoft-io/capi-core) MCP endpoint — a REST-to-MCP bridge that lets LLM agents discover and invoke any Consul-registered REST API as MCP tools, with zero code changes on backends.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
### 1. Start CAPI with MCP Enabled
|
|
15
|
+
|
|
16
|
+
**Docker (fastest):**
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
docker run -p 8380:8380 -p 8381:8381 -p 8383:8383 \
|
|
20
|
+
-v $(pwd)/config.yaml:/capi/config/config.yaml \
|
|
21
|
+
-e CAPI_CONFIG_FILE=/capi/config/config.yaml \
|
|
22
|
+
surisoft/capi-core
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**JAR:**
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
CAPI_CONFIG_FILE=config.yaml java -jar capi-core.jar
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Helm (Kubernetes):**
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
helm install capi-core helm/capi-core -f my-values.yaml
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2. Minimal `config.yaml` with MCP
|
|
38
|
+
|
|
39
|
+
```yaml
|
|
40
|
+
capi:
|
|
41
|
+
version: 1.0.0
|
|
42
|
+
instanceName: default
|
|
43
|
+
publicEndpoint: http://localhost:8380/api/
|
|
44
|
+
runningMode: full
|
|
45
|
+
adminPort: 8381
|
|
46
|
+
|
|
47
|
+
rest:
|
|
48
|
+
enabled: true
|
|
49
|
+
port: 8380
|
|
50
|
+
|
|
51
|
+
mcp:
|
|
52
|
+
enabled: true
|
|
53
|
+
port: 8383
|
|
54
|
+
sessionTtl: 1800000 # 30 min
|
|
55
|
+
toolCallTimeout: 30000 # 30 sec
|
|
56
|
+
|
|
57
|
+
consulHosts:
|
|
58
|
+
- endpoint: http://localhost:8500
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 3. Register a Service in Consul
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"ID": "order-service-1",
|
|
66
|
+
"Name": "order-service",
|
|
67
|
+
"Address": "10.0.1.50",
|
|
68
|
+
"Port": 8080,
|
|
69
|
+
"Meta": {
|
|
70
|
+
"group": "v1",
|
|
71
|
+
"scheme": "http",
|
|
72
|
+
"root-context": "/api",
|
|
73
|
+
"mcp-enabled": "true",
|
|
74
|
+
"mcp-toolPrefix": "orders",
|
|
75
|
+
"mcp-tools": "get,create,search",
|
|
76
|
+
"mcp-tools-get-description": "Get an order by ID",
|
|
77
|
+
"mcp-tools-get-inputSchema": "{\"type\":\"object\",\"properties\":{\"orderId\":{\"type\":\"string\"}},\"required\":[\"orderId\"]}",
|
|
78
|
+
"mcp-tools-create-description": "Create a new order",
|
|
79
|
+
"mcp-tools-create-inputSchema": "{\"type\":\"object\",\"properties\":{\"product\":{\"type\":\"string\"},\"quantity\":{\"type\":\"integer\"}}}",
|
|
80
|
+
"mcp-tools-search-description": "Search orders by criteria",
|
|
81
|
+
"mcp-tools-search-inputSchema": "{\"type\":\"object\",\"properties\":{\"query\":{\"type\":\"string\"}}}",
|
|
82
|
+
"mcp-category": "commerce",
|
|
83
|
+
"mcp-timeout": "10000",
|
|
84
|
+
"mcp-streaming": "search"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Register via Consul HTTP API:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
curl -X PUT http://localhost:8500/v1/agent/service/register \
|
|
93
|
+
-H "Content-Type: application/json" \
|
|
94
|
+
-d @service.json
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 4. Verify Tools
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
curl http://localhost:8381/info/mcp/tools
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## MCP Wire Protocol (JSON-RPC 2.0)
|
|
106
|
+
|
|
107
|
+
All interactions go to a single `POST /mcp` endpoint on port `8383`.
|
|
108
|
+
|
|
109
|
+
| Method | Description |
|
|
110
|
+
|--------|-------------|
|
|
111
|
+
| `initialize` | Create session; returns `Mcp-Session-Id` header |
|
|
112
|
+
| `tools/list` | Aggregated tool catalog from all MCP-enabled services |
|
|
113
|
+
| `tools/call` | Invoke a tool — CAPI routes to the correct backend |
|
|
114
|
+
| `ping` | Health check |
|
|
115
|
+
|
|
116
|
+
### curl Walkthrough
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# 1. Initialize session
|
|
120
|
+
curl -s -D- -X POST http://localhost:8383/mcp \
|
|
121
|
+
-H "Content-Type: application/json" \
|
|
122
|
+
-d '{"jsonrpc":"2.0","method":"initialize","id":1}'
|
|
123
|
+
# → Mcp-Session-Id header in response
|
|
124
|
+
|
|
125
|
+
# 2. List tools
|
|
126
|
+
curl -s -X POST http://localhost:8383/mcp \
|
|
127
|
+
-H "Content-Type: application/json" \
|
|
128
|
+
-H "Mcp-Session-Id: <session-id>" \
|
|
129
|
+
-d '{"jsonrpc":"2.0","method":"tools/list","id":2}'
|
|
130
|
+
|
|
131
|
+
# 3. Call a tool
|
|
132
|
+
curl -s -X POST http://localhost:8383/mcp \
|
|
133
|
+
-H "Content-Type: application/json" \
|
|
134
|
+
-H "Mcp-Session-Id: <session-id>" \
|
|
135
|
+
-d '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"orders.get","arguments":{"orderId":"12345"}}}'
|
|
136
|
+
|
|
137
|
+
# 4. Streaming tool call (SSE)
|
|
138
|
+
curl -N -X POST http://localhost:8383/mcp \
|
|
139
|
+
-H "Content-Type: application/json" \
|
|
140
|
+
-H "Accept: text/event-stream" \
|
|
141
|
+
-H "Mcp-Session-Id: <session-id>" \
|
|
142
|
+
-d '{"jsonrpc":"2.0","method":"tools/call","id":4,"params":{"name":"orders.search","arguments":{"query":"pending"}}}'
|
|
143
|
+
|
|
144
|
+
# 5. Health
|
|
145
|
+
curl http://localhost:8383/mcp/health
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Client Integration
|
|
151
|
+
|
|
152
|
+
### Claude Desktop
|
|
153
|
+
|
|
154
|
+
Use `mcp-remote` to bridge stdio → HTTP:
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"mcpServers": {
|
|
159
|
+
"capi": {
|
|
160
|
+
"command": "npx",
|
|
161
|
+
"args": ["-y", "mcp-remote", "http://localhost:8383/mcp"]
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
> If OAuth2 is enabled, pass Bearer token via `mcp-remote` flags.
|
|
168
|
+
|
|
169
|
+
### Cursor / IDE
|
|
170
|
+
|
|
171
|
+
Same `mcp-remote` bridge applies — configure in your IDE's MCP settings.
|
|
172
|
+
|
|
173
|
+
### Python Agent
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
import requests
|
|
177
|
+
|
|
178
|
+
BASE = "http://localhost:8383/mcp"
|
|
179
|
+
HEADERS = {"Content-Type": "application/json"}
|
|
180
|
+
|
|
181
|
+
def jsonrpc(method, params=None, req_id=1, extra_headers=None):
|
|
182
|
+
body = {"jsonrpc": "2.0", "method": method, "id": req_id}
|
|
183
|
+
if params:
|
|
184
|
+
body["params"] = params
|
|
185
|
+
h = {**HEADERS, **(extra_headers or {})}
|
|
186
|
+
return requests.post(BASE, json=body, headers=h)
|
|
187
|
+
|
|
188
|
+
# Initialize
|
|
189
|
+
resp = jsonrpc("initialize")
|
|
190
|
+
session_id = resp.headers["Mcp-Session-Id"]
|
|
191
|
+
sh = {"Mcp-Session-Id": session_id}
|
|
192
|
+
|
|
193
|
+
# List tools
|
|
194
|
+
tools = jsonrpc("tools/list", req_id=2, extra_headers=sh).json()["result"]["tools"]
|
|
195
|
+
|
|
196
|
+
# Call tool
|
|
197
|
+
result = jsonrpc("tools/call", req_id=3, extra_headers=sh,
|
|
198
|
+
params={"name": "orders.get", "arguments": {"orderId": "12345"}})
|
|
199
|
+
print(result.json()["result"]["content"][0]["text"])
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
See [references/agent_loop.md](references/agent_loop.md) for the full LLM agent loop pattern.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Consul MCP Metadata Reference
|
|
207
|
+
|
|
208
|
+
| Key | Description |
|
|
209
|
+
|-----|-------------|
|
|
210
|
+
| `mcp-enabled` | `"true"` to expose service as MCP tools |
|
|
211
|
+
| `mcp-tools` | Comma-separated tool names (e.g. `"get,create,search"`) |
|
|
212
|
+
| `mcp-tools-{name}-description` | Human-readable description for LLM tool selection |
|
|
213
|
+
| `mcp-tools-{name}-inputSchema` | JSON Schema defining tool input parameters |
|
|
214
|
+
| `mcp-toolPrefix` | Namespace prefix (e.g. `"orders"` → `orders.get`) |
|
|
215
|
+
| `mcp-streaming` | Comma-separated tool names that support SSE streaming |
|
|
216
|
+
| `mcp-category` | Semantic classification; used as OPA input |
|
|
217
|
+
| `mcp-timeout` | Per-service timeout in ms |
|
|
218
|
+
|
|
219
|
+
> If a service exposes an OpenAPI definition and omits `inputSchema`, CAPI derives schemas from the spec.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Admin Endpoints
|
|
224
|
+
|
|
225
|
+
| Endpoint | Description |
|
|
226
|
+
|----------|-------------|
|
|
227
|
+
| `GET /info/mcp` | MCP status: enabled, port, tool count, sessions |
|
|
228
|
+
| `GET /info/mcp/tools` | Full tool catalog as JSON |
|
|
229
|
+
| `GET /info/mcp/sessions` | Active session count |
|
|
230
|
+
| `GET /info/health` | Gateway health (`8381`) |
|
|
231
|
+
| `GET /info/routes` | All managed REST routes |
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Session Management
|
|
236
|
+
|
|
237
|
+
- Sessions created via `initialize` JSON-RPC method
|
|
238
|
+
- Identified by `Mcp-Session-Id` HTTP header
|
|
239
|
+
- TTL-based with sliding expiration (default 30 min)
|
|
240
|
+
- Stored in Hazelcast distributed cache
|
|
241
|
+
- Client can close via a `close` notification
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Error Codes
|
|
246
|
+
|
|
247
|
+
| Code | Meaning |
|
|
248
|
+
|------|---------|
|
|
249
|
+
| `-32700` | Parse error — invalid JSON |
|
|
250
|
+
| `-32600` | Invalid request — missing `jsonrpc` or `method` |
|
|
251
|
+
| `-32601` | Method not found |
|
|
252
|
+
| `-32602` | Invalid params — tool not found |
|
|
253
|
+
| `-32603` | Internal error — backend failure |
|
|
254
|
+
| `-32000` | Auth error — missing/invalid token or OPA deny |
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Security (OAuth2 + OPA)
|
|
259
|
+
|
|
260
|
+
When `oauth2.enabled: true` in config, clients must include a Bearer token:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
curl -X POST http://localhost:8383/mcp \
|
|
264
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
265
|
+
-H "Content-Type: application/json" \
|
|
266
|
+
-d '{"jsonrpc":"2.0","method":"initialize","id":1}'
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
For fine-grained control, enable OPA. MCP extends the OPA input with:
|
|
270
|
+
- MCP client identity
|
|
271
|
+
- Session metadata
|
|
272
|
+
- Tool name and category
|
|
273
|
+
|
|
274
|
+
See [references/security.md](references/security.md) for OPA Rego policy examples.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Ports Summary
|
|
279
|
+
|
|
280
|
+
| Port | Purpose | Config Key |
|
|
281
|
+
|------|---------|------------|
|
|
282
|
+
| 8380 | REST gateway | `capi.rest.port` |
|
|
283
|
+
| 8381 | Admin API | `capi.adminPort` |
|
|
284
|
+
| 8382 | WebSocket/SSE | `capi.websocket.port` |
|
|
285
|
+
| 8383 | **MCP Gateway** | `capi.mcp.port` |
|
|
286
|
+
| 8384 | gRPC Gateway | `capi.grpc.port` |
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Troubleshooting
|
|
291
|
+
|
|
292
|
+
| Issue | Likely Cause | Fix |
|
|
293
|
+
|-------|-------------|-----|
|
|
294
|
+
| No tools in `tools/list` | Service missing `mcp-enabled` metadata | Add `"mcp-enabled": "true"` to Consul Meta |
|
|
295
|
+
| `Tool not found` error | Wrong prefix or name | Check `mcp-toolPrefix` + `mcp-tools` values |
|
|
296
|
+
| Session rejected | OAuth2 enabled but no token | Send `Authorization: Bearer <token>` header |
|
|
297
|
+
| Backend timeout | Slow service | Increase `mcp-timeout` or `toolCallTimeout` |
|
|
298
|
+
| Connection refused on 8383 | MCP not enabled | Set `capi.mcp.enabled: true` in config |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Reference Files
|
|
303
|
+
|
|
304
|
+
- [Agent Loop Pattern](references/agent_loop.md) — Full LLM agent loop with CAPI MCP
|
|
305
|
+
- [Security & OPA](references/security.md) — Auth config, OPA Rego examples
|
|
306
|
+
- [Configuration Reference](references/configuration.md) — Complete `config.yaml` reference
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## AGI Framework Integration
|
|
311
|
+
|
|
312
|
+
### Hybrid Memory Integration (Qdrant + BM25)
|
|
313
|
+
|
|
314
|
+
Before executing complex tasks with this skill:
|
|
315
|
+
```bash
|
|
316
|
+
python3 execution/memory_manager.py auto --query "<task summary>"
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Decision Tree:**
|
|
320
|
+
- **Cache hit?** Use cached response directly — no need to re-process.
|
|
321
|
+
- **Memory match?** Inject `context_chunks` into your reasoning.
|
|
322
|
+
- **No match?** Proceed normally, then store results:
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
python3 execution/memory_manager.py store \
|
|
326
|
+
--content "Description of what was decided/solved" \
|
|
327
|
+
--type decision \
|
|
328
|
+
--tags capi-mcp-gateway <relevant-tags>
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
> **Note:** Storing automatically updates both Vector (Qdrant) and Keyword (BM25) indices.
|
|
332
|
+
|
|
333
|
+
### Agent Team Collaboration
|
|
334
|
+
|
|
335
|
+
- **Strategy**: This skill communicates via the shared memory system.
|
|
336
|
+
- **Orchestration**: Invoked by `orchestrator` via intelligent routing.
|
|
337
|
+
- **Context Sharing**: Always read previous agent outputs from memory before starting.
|
|
338
|
+
|
|
339
|
+
### Local LLM Support
|
|
340
|
+
|
|
341
|
+
When available, use local Ollama models for embedding and lightweight inference:
|
|
342
|
+
- Embeddings: `nomic-embed-text` via Qdrant memory system
|
|
343
|
+
- Lightweight analysis: Local models reduce API costs for repetitive patterns
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# LLM Agent Loop with CAPI MCP Gateway
|
|
2
|
+
|
|
3
|
+
Pattern for building an LLM agent that discovers and invokes tools via CAPI's MCP endpoint.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Full Python Implementation
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
import requests
|
|
11
|
+
import json
|
|
12
|
+
|
|
13
|
+
BASE = "http://localhost:8383/mcp"
|
|
14
|
+
HEADERS = {"Content-Type": "application/json"}
|
|
15
|
+
|
|
16
|
+
class CapiMcpClient:
|
|
17
|
+
"""Client for CAPI MCP Gateway (JSON-RPC 2.0 over Streamable HTTP)."""
|
|
18
|
+
|
|
19
|
+
def __init__(self, base_url=BASE, auth_token=None):
|
|
20
|
+
self.base_url = base_url
|
|
21
|
+
self.session_id = None
|
|
22
|
+
self._req_id = 0
|
|
23
|
+
self._extra = {}
|
|
24
|
+
if auth_token:
|
|
25
|
+
self._extra["Authorization"] = f"Bearer {auth_token}"
|
|
26
|
+
|
|
27
|
+
def _next_id(self):
|
|
28
|
+
self._req_id += 1
|
|
29
|
+
return self._req_id
|
|
30
|
+
|
|
31
|
+
def _call(self, method, params=None):
|
|
32
|
+
body = {"jsonrpc": "2.0", "method": method, "id": self._next_id()}
|
|
33
|
+
if params:
|
|
34
|
+
body["params"] = params
|
|
35
|
+
headers = {**HEADERS, **self._extra}
|
|
36
|
+
if self.session_id:
|
|
37
|
+
headers["Mcp-Session-Id"] = self.session_id
|
|
38
|
+
resp = requests.post(self.base_url, json=body, headers=headers)
|
|
39
|
+
resp.raise_for_status()
|
|
40
|
+
if "Mcp-Session-Id" in resp.headers:
|
|
41
|
+
self.session_id = resp.headers["Mcp-Session-Id"]
|
|
42
|
+
data = resp.json()
|
|
43
|
+
if "error" in data:
|
|
44
|
+
raise McpError(data["error"]["code"], data["error"]["message"])
|
|
45
|
+
return data["result"]
|
|
46
|
+
|
|
47
|
+
def initialize(self):
|
|
48
|
+
"""Start session. Must be called first."""
|
|
49
|
+
return self._call("initialize")
|
|
50
|
+
|
|
51
|
+
def list_tools(self):
|
|
52
|
+
"""Return aggregated tool catalog."""
|
|
53
|
+
return self._call("tools/list")["tools"]
|
|
54
|
+
|
|
55
|
+
def call_tool(self, name, arguments):
|
|
56
|
+
"""Invoke a tool by name with arguments dict."""
|
|
57
|
+
result = self._call("tools/call", {"name": name, "arguments": arguments})
|
|
58
|
+
return result["content"][0]["text"]
|
|
59
|
+
|
|
60
|
+
def ping(self):
|
|
61
|
+
return self._call("ping")
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class McpError(Exception):
|
|
65
|
+
def __init__(self, code, message):
|
|
66
|
+
self.code = code
|
|
67
|
+
self.message = message
|
|
68
|
+
super().__init__(f"MCP Error {code}: {message}")
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Agent Loop Pattern
|
|
74
|
+
|
|
75
|
+
Bridge LLM function-calling with CAPI MCP tool invocation:
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
def agent_loop(user_message, mcp_client, llm):
|
|
79
|
+
"""
|
|
80
|
+
1. Discover tools from CAPI
|
|
81
|
+
2. Present as LLM function definitions
|
|
82
|
+
3. Forward tool calls back to CAPI
|
|
83
|
+
4. Feed results to LLM for final answer
|
|
84
|
+
"""
|
|
85
|
+
# 1. Discover tools
|
|
86
|
+
tools = mcp_client.list_tools()
|
|
87
|
+
|
|
88
|
+
# 2. Present to LLM as function definitions
|
|
89
|
+
llm_response = llm.chat(
|
|
90
|
+
messages=[{"role": "user", "content": user_message}],
|
|
91
|
+
tools=[{
|
|
92
|
+
"type": "function",
|
|
93
|
+
"function": {
|
|
94
|
+
"name": t["name"],
|
|
95
|
+
"description": t["description"],
|
|
96
|
+
"parameters": t["inputSchema"]
|
|
97
|
+
}
|
|
98
|
+
} for t in tools]
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# 3. If no tool call, return direct answer
|
|
102
|
+
if not llm_response.tool_calls:
|
|
103
|
+
return llm_response.content
|
|
104
|
+
|
|
105
|
+
# 4. Execute tool calls via CAPI
|
|
106
|
+
messages = [
|
|
107
|
+
{"role": "user", "content": user_message},
|
|
108
|
+
{"role": "assistant", "tool_calls": llm_response.tool_calls}
|
|
109
|
+
]
|
|
110
|
+
for call in llm_response.tool_calls:
|
|
111
|
+
result = mcp_client.call_tool(call.function.name,
|
|
112
|
+
json.loads(call.function.arguments))
|
|
113
|
+
messages.append({
|
|
114
|
+
"role": "tool",
|
|
115
|
+
"content": result,
|
|
116
|
+
"tool_call_id": call.id
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
# 5. Final LLM response with tool results
|
|
120
|
+
return llm.chat(messages=messages).content
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Usage
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
from openai import OpenAI
|
|
127
|
+
|
|
128
|
+
llm = OpenAI()
|
|
129
|
+
mcp = CapiMcpClient(auth_token="<your-token>")
|
|
130
|
+
mcp.initialize()
|
|
131
|
+
|
|
132
|
+
answer = agent_loop("What is the status of order 12345?", mcp, llm)
|
|
133
|
+
print(answer)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Multi-Turn Agent
|
|
139
|
+
|
|
140
|
+
For multi-turn conversations, cache the tool list and reuse the session:
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
class CapiAgent:
|
|
144
|
+
def __init__(self, mcp_url, auth_token, llm):
|
|
145
|
+
self.mcp = CapiMcpClient(mcp_url, auth_token)
|
|
146
|
+
self.mcp.initialize()
|
|
147
|
+
self.tools = self.mcp.list_tools()
|
|
148
|
+
self.llm = llm
|
|
149
|
+
self.history = []
|
|
150
|
+
|
|
151
|
+
def chat(self, user_message):
|
|
152
|
+
self.history.append({"role": "user", "content": user_message})
|
|
153
|
+
response = self.llm.chat(
|
|
154
|
+
messages=self.history,
|
|
155
|
+
tools=[{
|
|
156
|
+
"type": "function",
|
|
157
|
+
"function": {
|
|
158
|
+
"name": t["name"],
|
|
159
|
+
"description": t["description"],
|
|
160
|
+
"parameters": t["inputSchema"]
|
|
161
|
+
}
|
|
162
|
+
} for t in self.tools]
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
while response.tool_calls:
|
|
166
|
+
self.history.append({"role": "assistant", "tool_calls": response.tool_calls})
|
|
167
|
+
for call in response.tool_calls:
|
|
168
|
+
result = self.mcp.call_tool(
|
|
169
|
+
call.function.name,
|
|
170
|
+
json.loads(call.function.arguments)
|
|
171
|
+
)
|
|
172
|
+
self.history.append({
|
|
173
|
+
"role": "tool",
|
|
174
|
+
"content": result,
|
|
175
|
+
"tool_call_id": call.id
|
|
176
|
+
})
|
|
177
|
+
response = self.llm.chat(messages=self.history, tools=[...])
|
|
178
|
+
|
|
179
|
+
self.history.append({"role": "assistant", "content": response.content})
|
|
180
|
+
return response.content
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## SSE Streaming
|
|
186
|
+
|
|
187
|
+
For tools that declare streaming (via `mcp-streaming` metadata):
|
|
188
|
+
|
|
189
|
+
```python
|
|
190
|
+
import sseclient
|
|
191
|
+
|
|
192
|
+
def call_streaming_tool(mcp_client, tool_name, arguments):
|
|
193
|
+
"""Invoke a streaming tool and yield SSE events."""
|
|
194
|
+
body = {
|
|
195
|
+
"jsonrpc": "2.0",
|
|
196
|
+
"method": "tools/call",
|
|
197
|
+
"id": mcp_client._next_id(),
|
|
198
|
+
"params": {"name": tool_name, "arguments": arguments}
|
|
199
|
+
}
|
|
200
|
+
headers = {
|
|
201
|
+
**HEADERS,
|
|
202
|
+
"Accept": "text/event-stream",
|
|
203
|
+
"Mcp-Session-Id": mcp_client.session_id
|
|
204
|
+
}
|
|
205
|
+
resp = requests.post(mcp_client.base_url, json=body,
|
|
206
|
+
headers=headers, stream=True)
|
|
207
|
+
client = sseclient.SSEClient(resp)
|
|
208
|
+
for event in client.events():
|
|
209
|
+
yield json.loads(event.data)
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Error Handling
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
try:
|
|
218
|
+
result = mcp.call_tool("orders.get", {"orderId": "123"})
|
|
219
|
+
except McpError as e:
|
|
220
|
+
if e.code == -32602:
|
|
221
|
+
print(f"Tool not found: {e.message}")
|
|
222
|
+
elif e.code == -32000:
|
|
223
|
+
print(f"Auth error: {e.message}")
|
|
224
|
+
elif e.code == -32603:
|
|
225
|
+
print(f"Backend error: {e.message}")
|
|
226
|
+
else:
|
|
227
|
+
print(f"MCP error ({e.code}): {e.message}")
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
| Code | Meaning | Recovery |
|
|
231
|
+
|------|---------|----------|
|
|
232
|
+
| `-32700` | Parse error | Fix JSON body |
|
|
233
|
+
| `-32600` | Invalid request | Check `jsonrpc` and `method` fields |
|
|
234
|
+
| `-32601` | Method not found | Use `initialize`, `tools/list`, `tools/call`, or `ping` |
|
|
235
|
+
| `-32602` | Invalid params | Verify tool name exists in `tools/list` |
|
|
236
|
+
| `-32603` | Internal error | Backend timeout — retry or increase `mcp-timeout` |
|
|
237
|
+
| `-32000` | Auth error | Refresh token or check OPA policy |
|