@techwavedev/agi-agent-kit 1.6.0 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +104 -15
- package/package.json +2 -2
- package/templates/base/.env.example +28 -0
- package/templates/base/CHANGELOG.md +10 -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/dispatching-parallel-agents/SKILL.md +4 -2
- 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/llm-structured-output/SKILL.md +257 -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/debugging/systematic-debugging/SKILL.md +587 -229
- package/templates/skills/extended/devops/capi-mcp-gateway/SKILL.md +389 -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/scripts/design_system.py +2 -1
- 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/acceptance-orchestrator/SKILL.md +152 -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/antigravity-skill-orchestrator/README.md +32 -0
- package/templates/skills/extended/other/antigravity-skill-orchestrator/SKILL.md +169 -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/closed-loop-delivery/SKILL.md +163 -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/create-issue-gate/SKILL.md +131 -0
- package/templates/skills/extended/other/electron-development/SKILL.md +902 -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/interview-coach/SKILL.md +135 -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/security/privacy-by-design/README.md +25 -0
- package/templates/skills/extended/security/privacy-by-design/SKILL.md +259 -0
- package/templates/skills/extended/workflow/finishing-a-development-branch/SKILL.md +6 -1
- 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/frontend/stitch-loop/SKILL.md +108 -115
- 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
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# CAPI MCP Gateway — Complete Configuration Reference
|
|
2
|
+
|
|
3
|
+
## Full `config.yaml`
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
capi:
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
instanceName: default
|
|
9
|
+
strictToInstanceName: true
|
|
10
|
+
publicEndpoint: http://localhost:8380/api/
|
|
11
|
+
runningMode: full # full | websocket | sse
|
|
12
|
+
adminPort: 8381
|
|
13
|
+
reverseProxyHost: # Override X-Forwarded-Host
|
|
14
|
+
|
|
15
|
+
rest:
|
|
16
|
+
enabled: true
|
|
17
|
+
port: 8380
|
|
18
|
+
listeningAddress: 0.0.0.0
|
|
19
|
+
contextPath: /api
|
|
20
|
+
connectionRequestTimeout: 5000
|
|
21
|
+
requestTimeout: 5000
|
|
22
|
+
responseTimeout: 120000
|
|
23
|
+
proxyPoolSize: 200
|
|
24
|
+
proxyMaxPoolSize: 500
|
|
25
|
+
|
|
26
|
+
mcp:
|
|
27
|
+
enabled: true # Enable MCP Gateway
|
|
28
|
+
port: 8383 # MCP listener port
|
|
29
|
+
sessionTtl: 1800000 # Session TTL (ms), default 30 min
|
|
30
|
+
toolCallTimeout: 30000 # Tool execution timeout (ms)
|
|
31
|
+
|
|
32
|
+
websocket:
|
|
33
|
+
enabled: false
|
|
34
|
+
port: 8382
|
|
35
|
+
listeningAddress: 0.0.0.0
|
|
36
|
+
contextPath: /api/*
|
|
37
|
+
|
|
38
|
+
grpc:
|
|
39
|
+
enabled: false
|
|
40
|
+
port: 8384
|
|
41
|
+
|
|
42
|
+
ssl:
|
|
43
|
+
enabled: false
|
|
44
|
+
keyStoreType: PKCS12
|
|
45
|
+
path:
|
|
46
|
+
password:
|
|
47
|
+
|
|
48
|
+
trustStore:
|
|
49
|
+
enabled: false
|
|
50
|
+
path:
|
|
51
|
+
encoded: # Base64-encoded truststore (alt to path)
|
|
52
|
+
password:
|
|
53
|
+
|
|
54
|
+
consulCatalogDiscoverInterval: 60000 # Consul poll interval (ms)
|
|
55
|
+
consulHosts:
|
|
56
|
+
- endpoint: http://localhost:8500
|
|
57
|
+
token: # Consul ACL token
|
|
58
|
+
consulStore:
|
|
59
|
+
enabled: false
|
|
60
|
+
endpoint: http://localhost:8500
|
|
61
|
+
token:
|
|
62
|
+
|
|
63
|
+
oauth2:
|
|
64
|
+
enabled: false
|
|
65
|
+
cookieName:
|
|
66
|
+
keys:
|
|
67
|
+
- http://localhost:8080/realms/capi/protocol/openid-connect/certs
|
|
68
|
+
|
|
69
|
+
opa:
|
|
70
|
+
enabled: false
|
|
71
|
+
endpoint: http://localhost:8181
|
|
72
|
+
|
|
73
|
+
traces:
|
|
74
|
+
enabled: false
|
|
75
|
+
serviceName: capi
|
|
76
|
+
endpoint: http://localhost:4318 # OTLP endpoint
|
|
77
|
+
extraMetadataPrefix:
|
|
78
|
+
|
|
79
|
+
corsEnabled: false
|
|
80
|
+
allowedHeaders:
|
|
81
|
+
- Origin
|
|
82
|
+
- Accept
|
|
83
|
+
- X-Requested-With
|
|
84
|
+
- Content-Type
|
|
85
|
+
- Access-Control-Request-Method
|
|
86
|
+
- Authorization
|
|
87
|
+
|
|
88
|
+
throttle:
|
|
89
|
+
enabled: false
|
|
90
|
+
kubernetesNamespace:
|
|
91
|
+
kubernetesServiceName:
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## MCP-Specific Fields
|
|
97
|
+
|
|
98
|
+
| Field | Default | Description |
|
|
99
|
+
|-------|---------|-------------|
|
|
100
|
+
| `mcp.enabled` | `false` | Start the MCP listener |
|
|
101
|
+
| `mcp.port` | `8383` | Port for MCP JSON-RPC endpoint |
|
|
102
|
+
| `mcp.sessionTtl` | `1800000` | Session time-to-live in ms (30 min) |
|
|
103
|
+
| `mcp.toolCallTimeout` | `30000` | Per-tool execution timeout in ms |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Ports Summary
|
|
108
|
+
|
|
109
|
+
| Port | Purpose | Config Key |
|
|
110
|
+
|------|---------|------------|
|
|
111
|
+
| 8380 | REST Gateway | `capi.rest.port` |
|
|
112
|
+
| 8381 | Admin API | `capi.adminPort` |
|
|
113
|
+
| 8382 | WebSocket / SSE | `capi.websocket.port` |
|
|
114
|
+
| 8383 | **MCP Gateway** | `capi.mcp.port` |
|
|
115
|
+
| 8384 | gRPC Gateway | `capi.grpc.port` |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Consul MCP Metadata (Service Registration)
|
|
120
|
+
|
|
121
|
+
| Key | Required | Description |
|
|
122
|
+
|-----|----------|-------------|
|
|
123
|
+
| `group` | **Yes** | Route group (e.g. `v1`). Services without `group` are ignored. |
|
|
124
|
+
| `mcp-enabled` | **Yes** | `"true"` to expose as MCP tools |
|
|
125
|
+
| `mcp-tools` | **Yes** | Comma-separated tool names |
|
|
126
|
+
| `mcp-tools-{name}-description` | **Yes** | Human-readable description per tool |
|
|
127
|
+
| `mcp-tools-{name}-inputSchema` | Recommended | JSON Schema string for tool input |
|
|
128
|
+
| `mcp-toolPrefix` | Recommended | Namespace prefix (e.g. `orders` → `orders.get`) |
|
|
129
|
+
| `mcp-streaming` | No | Tools supporting SSE streaming |
|
|
130
|
+
| `mcp-category` | No | Semantic category for OPA policies |
|
|
131
|
+
| `mcp-timeout` | No | Per-service timeout override (ms) |
|
|
132
|
+
| `root-context` | No | Backend path prefix (default `/`) |
|
|
133
|
+
| `scheme` | No | `http` or `https` (default `http`) |
|
|
134
|
+
| `secured` | No | Require OAuth2 for this service |
|
|
135
|
+
| `opa-rego` | No | OPA policy path for authorization |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Docker Compose Example
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
version: "3.8"
|
|
143
|
+
services:
|
|
144
|
+
consul:
|
|
145
|
+
image: hashicorp/consul:1.17
|
|
146
|
+
ports:
|
|
147
|
+
- "8500:8500"
|
|
148
|
+
command: agent -dev -client=0.0.0.0
|
|
149
|
+
|
|
150
|
+
capi:
|
|
151
|
+
image: surisoft/capi-core
|
|
152
|
+
ports:
|
|
153
|
+
- "8380:8380"
|
|
154
|
+
- "8381:8381"
|
|
155
|
+
- "8383:8383"
|
|
156
|
+
volumes:
|
|
157
|
+
- ./config.yaml:/capi/config/config.yaml
|
|
158
|
+
environment:
|
|
159
|
+
CAPI_CONFIG_FILE: /capi/config/config.yaml
|
|
160
|
+
depends_on:
|
|
161
|
+
- consul
|
|
162
|
+
|
|
163
|
+
# Example backend (your REST API)
|
|
164
|
+
order-service:
|
|
165
|
+
image: my-order-service:latest
|
|
166
|
+
ports:
|
|
167
|
+
- "8080:8080"
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Helm Values (Kubernetes)
|
|
173
|
+
|
|
174
|
+
Key values for MCP:
|
|
175
|
+
|
|
176
|
+
```yaml
|
|
177
|
+
capi:
|
|
178
|
+
mcp:
|
|
179
|
+
enabled: true
|
|
180
|
+
port: 8383
|
|
181
|
+
|
|
182
|
+
# Expose MCP port in service
|
|
183
|
+
service:
|
|
184
|
+
ports:
|
|
185
|
+
- name: mcp
|
|
186
|
+
port: 8383
|
|
187
|
+
targetPort: 8383
|
|
188
|
+
|
|
189
|
+
# Ingress for MCP (optional)
|
|
190
|
+
ingress:
|
|
191
|
+
enabled: true
|
|
192
|
+
hosts:
|
|
193
|
+
- host: mcp.example.com
|
|
194
|
+
paths:
|
|
195
|
+
- path: /mcp
|
|
196
|
+
pathType: Prefix
|
|
197
|
+
servicePort: 8383
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
See [helm/capi-core/values.yaml](https://github.com/surisoft-io/capi-core/blob/main/helm/capi-core/values.yaml) for all options.
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# CAPI MCP Gateway — Security & Authorization
|
|
2
|
+
|
|
3
|
+
## OAuth2 / OIDC Configuration
|
|
4
|
+
|
|
5
|
+
Enable JWT token validation in `config.yaml`:
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
capi:
|
|
9
|
+
oauth2:
|
|
10
|
+
enabled: true
|
|
11
|
+
cookieName: auth_token # optional, for browser clients
|
|
12
|
+
keys:
|
|
13
|
+
- http://keycloak:8080/realms/capi/protocol/openid-connect/certs
|
|
14
|
+
# Multiple OIDC providers supported:
|
|
15
|
+
- http://auth0.com/.well-known/jwks.json
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
When enabled, ALL MCP requests require a valid Bearer token:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
curl -X POST http://localhost:8383/mcp \
|
|
22
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
23
|
+
-H "Content-Type: application/json" \
|
|
24
|
+
-d '{"jsonrpc":"2.0","method":"initialize","id":1}'
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Per-service opt-in: set `"secured": "true"` in Consul metadata to require auth for specific services only.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## OPA Authorization
|
|
32
|
+
|
|
33
|
+
Enable Open Policy Agent for fine-grained tool-level authorization:
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
capi:
|
|
37
|
+
opa:
|
|
38
|
+
enabled: true
|
|
39
|
+
endpoint: http://localhost:8181
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### OPA Input for MCP Requests
|
|
43
|
+
|
|
44
|
+
CAPI extends the standard OPA input with MCP context:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"input": {
|
|
49
|
+
"method": "tools/call",
|
|
50
|
+
"path": "/mcp",
|
|
51
|
+
"token": {
|
|
52
|
+
"sub": "user@example.com",
|
|
53
|
+
"roles": ["analyst"],
|
|
54
|
+
"iss": "https://keycloak/realms/capi"
|
|
55
|
+
},
|
|
56
|
+
"mcp": {
|
|
57
|
+
"sessionId": "abc-123",
|
|
58
|
+
"toolName": "orders.get",
|
|
59
|
+
"toolCategory": "commerce",
|
|
60
|
+
"clientIdentity": "claude-desktop"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Example Rego Policies
|
|
67
|
+
|
|
68
|
+
**Allow only specific roles to call tools:**
|
|
69
|
+
|
|
70
|
+
```rego
|
|
71
|
+
package capi.mcp_policy
|
|
72
|
+
|
|
73
|
+
default allow = false
|
|
74
|
+
|
|
75
|
+
# Allow analysts to use commerce tools
|
|
76
|
+
allow {
|
|
77
|
+
input.token.roles[_] == "analyst"
|
|
78
|
+
input.mcp.toolCategory == "commerce"
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# Allow admins to use everything
|
|
82
|
+
allow {
|
|
83
|
+
input.token.roles[_] == "admin"
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Restrict specific tools:**
|
|
88
|
+
|
|
89
|
+
```rego
|
|
90
|
+
package capi.mcp_policy
|
|
91
|
+
|
|
92
|
+
default allow = false
|
|
93
|
+
|
|
94
|
+
# Block destructive tools for read-only users
|
|
95
|
+
allow {
|
|
96
|
+
input.token.roles[_] == "viewer"
|
|
97
|
+
not endswith(input.mcp.toolName, ".delete")
|
|
98
|
+
not endswith(input.mcp.toolName, ".create")
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Full access for editors
|
|
102
|
+
allow {
|
|
103
|
+
input.token.roles[_] == "editor"
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Rate-limit by tool category:**
|
|
108
|
+
|
|
109
|
+
```rego
|
|
110
|
+
package capi.mcp_policy
|
|
111
|
+
|
|
112
|
+
default allow = true
|
|
113
|
+
|
|
114
|
+
# Deny access to financial tools outside business hours
|
|
115
|
+
deny {
|
|
116
|
+
input.mcp.toolCategory == "finance"
|
|
117
|
+
not is_business_hours
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
is_business_hours {
|
|
121
|
+
time.clock(time.now_ns())[0] >= 9
|
|
122
|
+
time.clock(time.now_ns())[0] < 17
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
allow {
|
|
126
|
+
not deny
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Consul Metadata for OPA
|
|
131
|
+
|
|
132
|
+
Set `opa-rego` in service metadata to specify the policy path:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"Meta": {
|
|
137
|
+
"mcp-enabled": "true",
|
|
138
|
+
"mcp-category": "commerce",
|
|
139
|
+
"opa-rego": "capi/mcp_policy"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Claude Desktop with Auth
|
|
147
|
+
|
|
148
|
+
When OAuth2 is enabled, use `mcp-remote` with auth headers:
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"mcpServers": {
|
|
153
|
+
"capi": {
|
|
154
|
+
"command": "npx",
|
|
155
|
+
"args": [
|
|
156
|
+
"-y", "mcp-remote",
|
|
157
|
+
"http://localhost:8383/mcp",
|
|
158
|
+
"--header", "Authorization: Bearer ${CAPI_TOKEN}"
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Set `CAPI_TOKEN` as an environment variable for token management.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## TLS / SSL
|
|
170
|
+
|
|
171
|
+
Enable TLS termination on all CAPI listeners:
|
|
172
|
+
|
|
173
|
+
```yaml
|
|
174
|
+
capi:
|
|
175
|
+
ssl:
|
|
176
|
+
enabled: true
|
|
177
|
+
keyStoreType: PKCS12
|
|
178
|
+
path: /certs/keystore.p12
|
|
179
|
+
password: changeit
|
|
180
|
+
|
|
181
|
+
trustStore:
|
|
182
|
+
enabled: true
|
|
183
|
+
path: /certs/truststore.jks
|
|
184
|
+
password: changeit
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
With TLS, MCP endpoint becomes `https://localhost:8383/mcp`.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Security Checklist
|
|
192
|
+
|
|
193
|
+
- [ ] Enable OAuth2 with at least one JWKS endpoint
|
|
194
|
+
- [ ] Configure OPA policies for tool-level authorization
|
|
195
|
+
- [ ] Set `"secured": "true"` on sensitive Consul services
|
|
196
|
+
- [ ] Use TLS in production
|
|
197
|
+
- [ ] Set `mcp-category` on services to enable category-based OPA policies
|
|
198
|
+
- [ ] Review session TTL (default 30 min) — shorten for high-security environments
|
|
199
|
+
- [ ] Monitor active sessions via `GET /info/mcp/sessions`
|
|
Binary file
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Script: capi_mcp_client.py
|
|
4
|
+
Purpose: CLI client for interacting with CAPI MCP Gateway
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
python capi_mcp_client.py --url http://localhost:8383/mcp init
|
|
8
|
+
python capi_mcp_client.py --url http://localhost:8383/mcp --session <id> list-tools
|
|
9
|
+
python capi_mcp_client.py --url http://localhost:8383/mcp --session <id> call --tool orders.get --args '{"orderId":"123"}'
|
|
10
|
+
python capi_mcp_client.py --url http://localhost:8383/mcp ping
|
|
11
|
+
python capi_mcp_client.py --admin-url http://localhost:8381 status
|
|
12
|
+
|
|
13
|
+
Exit Codes:
|
|
14
|
+
0 - Success
|
|
15
|
+
1 - Invalid arguments
|
|
16
|
+
2 - Connection error
|
|
17
|
+
3 - MCP protocol error
|
|
18
|
+
4 - Unexpected error
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
import argparse
|
|
22
|
+
import json
|
|
23
|
+
import sys
|
|
24
|
+
|
|
25
|
+
try:
|
|
26
|
+
import requests
|
|
27
|
+
except ImportError:
|
|
28
|
+
print(json.dumps({
|
|
29
|
+
"status": "error",
|
|
30
|
+
"message": "Missing dependency: pip install requests"
|
|
31
|
+
}), file=sys.stderr)
|
|
32
|
+
sys.exit(1)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def jsonrpc_call(url, method, params=None, req_id=1, session_id=None, token=None):
|
|
36
|
+
"""Send a JSON-RPC 2.0 request to the CAPI MCP endpoint."""
|
|
37
|
+
body = {"jsonrpc": "2.0", "method": method, "id": req_id}
|
|
38
|
+
if params:
|
|
39
|
+
body["params"] = params
|
|
40
|
+
|
|
41
|
+
headers = {"Content-Type": "application/json"}
|
|
42
|
+
if session_id:
|
|
43
|
+
headers["Mcp-Session-Id"] = session_id
|
|
44
|
+
if token:
|
|
45
|
+
headers["Authorization"] = f"Bearer {token}"
|
|
46
|
+
|
|
47
|
+
try:
|
|
48
|
+
resp = requests.post(url, json=body, headers=headers, timeout=30)
|
|
49
|
+
resp.raise_for_status()
|
|
50
|
+
except requests.ConnectionError:
|
|
51
|
+
print(json.dumps({
|
|
52
|
+
"status": "error",
|
|
53
|
+
"message": f"Cannot connect to {url}"
|
|
54
|
+
}), file=sys.stderr)
|
|
55
|
+
sys.exit(2)
|
|
56
|
+
except requests.HTTPError as e:
|
|
57
|
+
print(json.dumps({
|
|
58
|
+
"status": "error",
|
|
59
|
+
"message": f"HTTP {e.response.status_code}: {e.response.text}"
|
|
60
|
+
}), file=sys.stderr)
|
|
61
|
+
sys.exit(2)
|
|
62
|
+
|
|
63
|
+
session = resp.headers.get("Mcp-Session-Id")
|
|
64
|
+
data = resp.json()
|
|
65
|
+
|
|
66
|
+
if "error" in data:
|
|
67
|
+
print(json.dumps({
|
|
68
|
+
"status": "mcp_error",
|
|
69
|
+
"code": data["error"]["code"],
|
|
70
|
+
"message": data["error"]["message"]
|
|
71
|
+
}), file=sys.stderr)
|
|
72
|
+
sys.exit(3)
|
|
73
|
+
|
|
74
|
+
return data["result"], session
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def cmd_init(args):
|
|
78
|
+
"""Initialize MCP session."""
|
|
79
|
+
result, session_id = jsonrpc_call(
|
|
80
|
+
args.url, "initialize", token=args.token
|
|
81
|
+
)
|
|
82
|
+
output = {
|
|
83
|
+
"status": "success",
|
|
84
|
+
"session_id": session_id,
|
|
85
|
+
"server_info": result.get("serverInfo", {}),
|
|
86
|
+
"capabilities": result.get("capabilities", {}),
|
|
87
|
+
"protocol_version": result.get("protocolVersion", "")
|
|
88
|
+
}
|
|
89
|
+
print(json.dumps(output, indent=2))
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def cmd_list_tools(args):
|
|
93
|
+
"""List available MCP tools."""
|
|
94
|
+
if not args.session:
|
|
95
|
+
print(json.dumps({
|
|
96
|
+
"status": "error",
|
|
97
|
+
"message": "Session ID required. Run 'init' first."
|
|
98
|
+
}), file=sys.stderr)
|
|
99
|
+
sys.exit(1)
|
|
100
|
+
|
|
101
|
+
result, _ = jsonrpc_call(
|
|
102
|
+
args.url, "tools/list", req_id=2,
|
|
103
|
+
session_id=args.session, token=args.token
|
|
104
|
+
)
|
|
105
|
+
tools = result.get("tools", [])
|
|
106
|
+
output = {
|
|
107
|
+
"status": "success",
|
|
108
|
+
"tool_count": len(tools),
|
|
109
|
+
"tools": [{
|
|
110
|
+
"name": t["name"],
|
|
111
|
+
"description": t.get("description", ""),
|
|
112
|
+
"input_schema": t.get("inputSchema", {})
|
|
113
|
+
} for t in tools]
|
|
114
|
+
}
|
|
115
|
+
print(json.dumps(output, indent=2))
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def cmd_call(args):
|
|
119
|
+
"""Call an MCP tool."""
|
|
120
|
+
if not args.session:
|
|
121
|
+
print(json.dumps({
|
|
122
|
+
"status": "error",
|
|
123
|
+
"message": "Session ID required. Run 'init' first."
|
|
124
|
+
}), file=sys.stderr)
|
|
125
|
+
sys.exit(1)
|
|
126
|
+
if not args.tool:
|
|
127
|
+
print(json.dumps({
|
|
128
|
+
"status": "error",
|
|
129
|
+
"message": "--tool is required for 'call' command"
|
|
130
|
+
}), file=sys.stderr)
|
|
131
|
+
sys.exit(1)
|
|
132
|
+
|
|
133
|
+
arguments = {}
|
|
134
|
+
if args.args:
|
|
135
|
+
try:
|
|
136
|
+
arguments = json.loads(args.args)
|
|
137
|
+
except json.JSONDecodeError:
|
|
138
|
+
print(json.dumps({
|
|
139
|
+
"status": "error",
|
|
140
|
+
"message": f"Invalid JSON in --args: {args.args}"
|
|
141
|
+
}), file=sys.stderr)
|
|
142
|
+
sys.exit(1)
|
|
143
|
+
|
|
144
|
+
result, _ = jsonrpc_call(
|
|
145
|
+
args.url, "tools/call", req_id=3,
|
|
146
|
+
params={"name": args.tool, "arguments": arguments},
|
|
147
|
+
session_id=args.session, token=args.token
|
|
148
|
+
)
|
|
149
|
+
content = result.get("content", [])
|
|
150
|
+
output = {
|
|
151
|
+
"status": "success",
|
|
152
|
+
"tool": args.tool,
|
|
153
|
+
"result": content[0]["text"] if content else None
|
|
154
|
+
}
|
|
155
|
+
print(json.dumps(output, indent=2))
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def cmd_ping(args):
|
|
159
|
+
"""Ping the MCP endpoint."""
|
|
160
|
+
result, _ = jsonrpc_call(args.url, "ping", token=args.token)
|
|
161
|
+
print(json.dumps({"status": "success", "ping": "ok"}, indent=2))
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def cmd_status(args):
|
|
165
|
+
"""Check MCP gateway status via Admin API."""
|
|
166
|
+
admin_url = args.admin_url or "http://localhost:8381"
|
|
167
|
+
try:
|
|
168
|
+
# MCP info
|
|
169
|
+
mcp_resp = requests.get(f"{admin_url}/info/mcp", timeout=10)
|
|
170
|
+
mcp_data = mcp_resp.json() if mcp_resp.ok else {"error": mcp_resp.status_code}
|
|
171
|
+
|
|
172
|
+
# Health
|
|
173
|
+
health_resp = requests.get(f"{admin_url}/info/health", timeout=10)
|
|
174
|
+
health_data = health_resp.json() if health_resp.ok else {"error": health_resp.status_code}
|
|
175
|
+
|
|
176
|
+
output = {
|
|
177
|
+
"status": "success",
|
|
178
|
+
"health": health_data,
|
|
179
|
+
"mcp": mcp_data
|
|
180
|
+
}
|
|
181
|
+
print(json.dumps(output, indent=2))
|
|
182
|
+
except requests.ConnectionError:
|
|
183
|
+
print(json.dumps({
|
|
184
|
+
"status": "error",
|
|
185
|
+
"message": f"Cannot connect to admin API at {admin_url}"
|
|
186
|
+
}), file=sys.stderr)
|
|
187
|
+
sys.exit(2)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def cmd_tools_admin(args):
|
|
191
|
+
"""List tools via Admin API (no session required)."""
|
|
192
|
+
admin_url = args.admin_url or "http://localhost:8381"
|
|
193
|
+
try:
|
|
194
|
+
resp = requests.get(f"{admin_url}/info/mcp/tools", timeout=10)
|
|
195
|
+
if resp.ok:
|
|
196
|
+
print(json.dumps({
|
|
197
|
+
"status": "success",
|
|
198
|
+
"tools": resp.json()
|
|
199
|
+
}, indent=2))
|
|
200
|
+
else:
|
|
201
|
+
print(json.dumps({
|
|
202
|
+
"status": "error",
|
|
203
|
+
"message": f"HTTP {resp.status_code}: {resp.text}"
|
|
204
|
+
}), file=sys.stderr)
|
|
205
|
+
sys.exit(2)
|
|
206
|
+
except requests.ConnectionError:
|
|
207
|
+
print(json.dumps({
|
|
208
|
+
"status": "error",
|
|
209
|
+
"message": f"Cannot connect to admin API at {admin_url}"
|
|
210
|
+
}), file=sys.stderr)
|
|
211
|
+
sys.exit(2)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
def main():
|
|
215
|
+
parser = argparse.ArgumentParser(
|
|
216
|
+
description="CLI client for CAPI MCP Gateway"
|
|
217
|
+
)
|
|
218
|
+
parser.add_argument("--url", default="http://localhost:8383/mcp",
|
|
219
|
+
help="MCP endpoint URL")
|
|
220
|
+
parser.add_argument("--admin-url", default="http://localhost:8381",
|
|
221
|
+
help="Admin API URL")
|
|
222
|
+
parser.add_argument("--session", help="MCP session ID")
|
|
223
|
+
parser.add_argument("--token", help="Bearer token for OAuth2")
|
|
224
|
+
parser.add_argument("--tool", help="Tool name (for 'call' command)")
|
|
225
|
+
parser.add_argument("--args", help="Tool arguments as JSON string")
|
|
226
|
+
|
|
227
|
+
parser.add_argument("command",
|
|
228
|
+
choices=["init", "list-tools", "call", "ping",
|
|
229
|
+
"status", "tools-admin"],
|
|
230
|
+
help="Command to execute")
|
|
231
|
+
|
|
232
|
+
args = parser.parse_args()
|
|
233
|
+
|
|
234
|
+
commands = {
|
|
235
|
+
"init": cmd_init,
|
|
236
|
+
"list-tools": cmd_list_tools,
|
|
237
|
+
"call": cmd_call,
|
|
238
|
+
"ping": cmd_ping,
|
|
239
|
+
"status": cmd_status,
|
|
240
|
+
"tools-admin": cmd_tools_admin,
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
try:
|
|
244
|
+
commands[args.command](args)
|
|
245
|
+
except Exception as e:
|
|
246
|
+
print(json.dumps({
|
|
247
|
+
"status": "error",
|
|
248
|
+
"type": type(e).__name__,
|
|
249
|
+
"message": str(e)
|
|
250
|
+
}), file=sys.stderr)
|
|
251
|
+
sys.exit(4)
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
if __name__ == "__main__":
|
|
255
|
+
main()
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|