agent-nuvira 1.79.2 → 1.82.0
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/.agents/skills/a11y-audit/SKILL.md +29 -0
- package/.agents/skills/api-call/SKILL.md +51 -0
- package/.agents/skills/api-call/call.js +187 -0
- package/.agents/skills/api-call/call.mjs +187 -0
- package/.agents/skills/api-design/SKILL.md +56 -0
- package/.agents/skills/api-testing/SKILL.md +29 -0
- package/.agents/skills/api-versioning/SKILL.md +29 -0
- package/.agents/skills/auth-setup/SKILL.md +29 -0
- package/.agents/skills/backup-recovery/SKILL.md +29 -0
- package/.agents/skills/backup-strategy/SKILL.md +27 -0
- package/.agents/skills/blob-storage/SKILL.md +29 -0
- package/.agents/skills/cache-setup/SKILL.md +29 -0
- package/.agents/skills/cdn-setup/SKILL.md +27 -0
- package/.agents/skills/ci-cd-setup/SKILL.md +47 -0
- package/.agents/skills/cloud-deploy/SKILL.md +27 -0
- package/.agents/skills/code-refactor/SKILL.md +48 -0
- package/.agents/skills/cors-setup/SKILL.md +29 -0
- package/.agents/skills/cron-job/SKILL.md +27 -0
- package/.agents/skills/cron-setup/SKILL.md +29 -0
- package/.agents/skills/data-analysis/SKILL.md +29 -0
- package/.agents/skills/data-processing/SKILL.md +27 -0
- package/.agents/skills/data-sync/SKILL.md +29 -0
- package/.agents/skills/db-migration/SKILL.md +56 -0
- package/.agents/skills/dep-update/SKILL.md +52 -0
- package/.agents/skills/design-system/SKILL.md +29 -0
- package/.agents/skills/dns-setup/SKILL.md +27 -0
- package/.agents/skills/doc-gen/SKILL.md +47 -0
- package/.agents/skills/docker-config/SKILL.md +49 -0
- package/.agents/skills/email-setup/SKILL.md +29 -0
- package/.agents/skills/env-setup/SKILL.md +54 -0
- package/.agents/skills/error-tracking/SKILL.md +29 -0
- package/.agents/skills/feature-flags/SKILL.md +29 -0
- package/.agents/skills/form-builder/SKILL.md +29 -0
- package/.agents/skills/git-release/SKILL.md +29 -0
- package/.agents/skills/github-actions/SKILL.md +27 -0
- package/.agents/skills/graphql-api/SKILL.md +29 -0
- package/.agents/skills/i18n-setup/SKILL.md +29 -0
- package/.agents/skills/image-gen/SKILL.md +47 -0
- package/.agents/skills/image-gen/generate.py +83 -0
- package/.agents/skills/image-optimize/SKILL.md +29 -0
- package/.agents/skills/index.json +1041 -7
- package/.agents/skills/kafka-queue/SKILL.md +27 -0
- package/.agents/skills/kubernetes/SKILL.md +27 -0
- package/.agents/skills/legal-compliance/SKILL.md +29 -0
- package/.agents/skills/load-balancer/SKILL.md +27 -0
- package/.agents/skills/log-rotation/SKILL.md +27 -0
- package/.agents/skills/ml-model/SKILL.md +27 -0
- package/.agents/skills/monitoring-setup/SKILL.md +29 -0
- package/.agents/skills/multi-tenancy/SKILL.md +29 -0
- package/.agents/skills/nginx-config/SKILL.md +27 -0
- package/.agents/skills/notification-setup/SKILL.md +29 -0
- package/.agents/skills/payment-setup/SKILL.md +29 -0
- package/.agents/skills/pdf-generate/SKILL.md +29 -0
- package/.agents/skills/perf-profile/SKILL.md +55 -0
- package/.agents/skills/perf-test/SKILL.md +29 -0
- package/.agents/skills/prometheus/SKILL.md +27 -0
- package/.agents/skills/queue-setup/SKILL.md +29 -0
- package/.agents/skills/rate-limit/SKILL.md +29 -0
- package/.agents/skills/redis-cache/SKILL.md +27 -0
- package/.agents/skills/schema-design/SKILL.md +29 -0
- package/.agents/skills/search-setup/SKILL.md +29 -0
- package/.agents/skills/secrets-manager/SKILL.md +27 -0
- package/.agents/skills/security-audit/SKILL.md +57 -0
- package/.agents/skills/ssl-cert/SKILL.md +27 -0
- package/.agents/skills/state-machine/SKILL.md +29 -0
- package/.agents/skills/structured-logging/SKILL.md +27 -0
- package/.agents/skills/system-check/SKILL.md +41 -0
- package/.agents/skills/system-check/check.sh +134 -0
- package/.agents/skills/terraform/SKILL.md +27 -0
- package/.agents/skills/web-scraping/SKILL.md +27 -0
- package/.agents/skills/webhook-setup/SKILL.md +29 -0
- package/.agents/skills/websocket-setup/SKILL.md +29 -0
- package/README.md +321 -115
- package/dist/a.d.ts +1 -0
- package/dist/a.d.ts.map +1 -0
- package/dist/a.js +3 -0
- package/dist/a.js.map +1 -0
- package/dist/agents/orchestrator.d.ts +22 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +69 -15
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/b.d.ts +1 -0
- package/dist/b.d.ts.map +1 -0
- package/dist/b.js +3 -0
- package/dist/b.js.map +1 -0
- package/dist/cli/benchmark.d.ts.map +1 -1
- package/dist/cli/benchmark.js +9 -1
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +4 -1
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +11 -1
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +9 -1
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/memory.d.ts +6 -0
- package/dist/cli/memory.d.ts.map +1 -1
- package/dist/cli/memory.js +207 -0
- package/dist/cli/memory.js.map +1 -1
- package/dist/example.d.ts +1 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +3 -0
- package/dist/example.js.map +1 -0
- package/dist/file.d.ts +1 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/file.js +3 -0
- package/dist/file.js.map +1 -0
- package/dist/forwarded.d.ts +2 -0
- package/dist/forwarded.d.ts.map +1 -0
- package/dist/forwarded.js +2 -0
- package/dist/forwarded.js.map +1 -0
- package/dist/fresh.d.ts +2 -0
- package/dist/fresh.d.ts.map +1 -0
- package/dist/fresh.js +2 -0
- package/dist/fresh.js.map +1 -0
- package/dist/inference/default-model-resolver.d.ts +28 -0
- package/dist/inference/default-model-resolver.d.ts.map +1 -0
- package/dist/inference/default-model-resolver.js +135 -0
- package/dist/inference/default-model-resolver.js.map +1 -0
- package/dist/inference/openai-compat-adapter.d.ts.map +1 -1
- package/dist/inference/openai-compat-adapter.js.map +1 -1
- package/dist/inference/provider-catalog.d.ts +12 -0
- package/dist/inference/provider-catalog.d.ts.map +1 -1
- package/dist/inference/provider-catalog.js +31 -0
- package/dist/inference/provider-catalog.js.map +1 -1
- package/dist/learning/auto-router.d.ts +15 -3
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +136 -16
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/learn-prompt.d.ts.map +1 -1
- package/dist/learning/learn-prompt.js +6 -2
- package/dist/learning/learn-prompt.js.map +1 -1
- package/dist/learning/model-first-router.d.ts +120 -0
- package/dist/learning/model-first-router.d.ts.map +1 -0
- package/dist/learning/model-first-router.js +460 -0
- package/dist/learning/model-first-router.js.map +1 -0
- package/dist/learning/model-registry.d.ts +6 -0
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +8 -0
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/model-scoring.d.ts +80 -0
- package/dist/learning/model-scoring.d.ts.map +1 -0
- package/dist/learning/model-scoring.js +248 -0
- package/dist/learning/model-scoring.js.map +1 -0
- package/dist/learning/model-warmup.d.ts +61 -0
- package/dist/learning/model-warmup.d.ts.map +1 -0
- package/dist/learning/model-warmup.js +234 -0
- package/dist/learning/model-warmup.js.map +1 -0
- package/dist/learning/resilient-call.d.ts +56 -0
- package/dist/learning/resilient-call.d.ts.map +1 -0
- package/dist/learning/resilient-call.js +453 -0
- package/dist/learning/resilient-call.js.map +1 -0
- package/dist/learning/skill-store.js +1 -1
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/mcp/mcp-dashboard-oauth.d.ts +94 -0
- package/dist/mcp/mcp-dashboard-oauth.d.ts.map +1 -0
- package/dist/mcp/mcp-dashboard-oauth.js +140 -0
- package/dist/mcp/mcp-dashboard-oauth.js.map +1 -0
- package/dist/mcp/mcp-oauth.d.ts +98 -0
- package/dist/mcp/mcp-oauth.d.ts.map +1 -0
- package/dist/mcp/mcp-oauth.js +279 -0
- package/dist/mcp/mcp-oauth.js.map +1 -0
- package/dist/mcp/mcp-schema-cache.d.ts +76 -0
- package/dist/mcp/mcp-schema-cache.d.ts.map +1 -0
- package/dist/mcp/mcp-schema-cache.js +172 -0
- package/dist/mcp/mcp-schema-cache.js.map +1 -0
- package/dist/mcp/mcp-watchdog.d.ts +116 -0
- package/dist/mcp/mcp-watchdog.d.ts.map +1 -0
- package/dist/mcp/mcp-watchdog.js +234 -0
- package/dist/mcp/mcp-watchdog.js.map +1 -0
- package/dist/memory/background-sync.d.ts +107 -0
- package/dist/memory/background-sync.d.ts.map +1 -0
- package/dist/memory/background-sync.js +242 -0
- package/dist/memory/background-sync.js.map +1 -0
- package/dist/memory/cross-session.d.ts +68 -0
- package/dist/memory/cross-session.d.ts.map +1 -0
- package/dist/memory/cross-session.js +153 -0
- package/dist/memory/cross-session.js.map +1 -0
- package/dist/memory/drift-detector.d.ts +76 -0
- package/dist/memory/drift-detector.d.ts.map +1 -0
- package/dist/memory/drift-detector.js +216 -0
- package/dist/memory/drift-detector.js.map +1 -0
- package/dist/memory/enhanced-manager.d.ts +105 -0
- package/dist/memory/enhanced-manager.d.ts.map +1 -0
- package/dist/memory/enhanced-manager.js +280 -0
- package/dist/memory/enhanced-manager.js.map +1 -0
- package/dist/memory/session-extraction.d.ts +93 -0
- package/dist/memory/session-extraction.d.ts.map +1 -0
- package/dist/memory/session-extraction.js +290 -0
- package/dist/memory/session-extraction.js.map +1 -0
- package/dist/memory/sqlite-store.d.ts +208 -0
- package/dist/memory/sqlite-store.d.ts.map +1 -0
- package/dist/memory/sqlite-store.js +555 -0
- package/dist/memory/sqlite-store.js.map +1 -0
- package/dist/resources/command-manifest.json +102 -0
- package/dist/skills/bundled-skills-docker.d.ts +20 -0
- package/dist/skills/bundled-skills-docker.d.ts.map +1 -0
- package/dist/skills/bundled-skills-docker.js +416 -0
- package/dist/skills/bundled-skills-docker.js.map +1 -0
- package/dist/skills/bundled-skills-extended.d.ts +37 -0
- package/dist/skills/bundled-skills-extended.d.ts.map +1 -0
- package/dist/skills/bundled-skills-extended.js +549 -0
- package/dist/skills/bundled-skills-extended.js.map +1 -0
- package/dist/skills/bundled-skills-phase3.d.ts +152 -0
- package/dist/skills/bundled-skills-phase3.d.ts.map +1 -0
- package/dist/skills/bundled-skills-phase3.js +2471 -0
- package/dist/skills/bundled-skills-phase3.js.map +1 -0
- package/dist/skills/bundled-skills.d.ts +198 -0
- package/dist/skills/bundled-skills.d.ts.map +1 -1
- package/dist/skills/bundled-skills.js +2449 -0
- package/dist/skills/bundled-skills.js.map +1 -1
- package/dist/skills/daytona-executor.d.ts +78 -0
- package/dist/skills/daytona-executor.d.ts.map +1 -0
- package/dist/skills/daytona-executor.js +256 -0
- package/dist/skills/daytona-executor.js.map +1 -0
- package/dist/skills/execution-approval.d.ts +101 -0
- package/dist/skills/execution-approval.d.ts.map +1 -0
- package/dist/skills/execution-approval.js +201 -0
- package/dist/skills/execution-approval.js.map +1 -0
- package/dist/skills/execution-audit.d.ts +117 -0
- package/dist/skills/execution-audit.d.ts.map +1 -0
- package/dist/skills/execution-audit.js +264 -0
- package/dist/skills/execution-audit.js.map +1 -0
- package/dist/skills/modal-executor.d.ts +81 -0
- package/dist/skills/modal-executor.d.ts.map +1 -0
- package/dist/skills/modal-executor.js +285 -0
- package/dist/skills/modal-executor.js.map +1 -0
- package/dist/skills/sandbox-executor.d.ts +77 -0
- package/dist/skills/sandbox-executor.d.ts.map +1 -0
- package/dist/skills/sandbox-executor.js +294 -0
- package/dist/skills/sandbox-executor.js.map +1 -0
- package/dist/skills/secret-capture.d.ts +81 -0
- package/dist/skills/secret-capture.d.ts.map +1 -0
- package/dist/skills/secret-capture.js +330 -0
- package/dist/skills/secret-capture.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +78 -0
- package/dist/skills/skill-executor.d.ts.map +1 -0
- package/dist/skills/skill-executor.js +381 -0
- package/dist/skills/skill-executor.js.map +1 -0
- package/dist/skills/skill-provenance.d.ts +122 -0
- package/dist/skills/skill-provenance.d.ts.map +1 -0
- package/dist/skills/skill-provenance.js +247 -0
- package/dist/skills/skill-provenance.js.map +1 -0
- package/dist/sync/validate.d.ts +1 -0
- package/dist/sync/validate.d.ts.map +1 -0
- package/dist/sync/validate.js +3 -0
- package/dist/sync/validate.js.map +1 -0
- package/dist/tools/approval-tools.d.ts +99 -0
- package/dist/tools/approval-tools.d.ts.map +1 -0
- package/dist/tools/approval-tools.js +132 -0
- package/dist/tools/approval-tools.js.map +1 -0
- package/dist/tools/async-delegation.d.ts +93 -0
- package/dist/tools/async-delegation.d.ts.map +1 -0
- package/dist/tools/async-delegation.js +188 -0
- package/dist/tools/async-delegation.js.map +1 -0
- package/dist/tools/browser-camofox.d.ts +197 -0
- package/dist/tools/browser-camofox.d.ts.map +1 -0
- package/dist/tools/browser-camofox.js +247 -0
- package/dist/tools/browser-camofox.js.map +1 -0
- package/dist/tools/browser-dialog.d.ts +67 -0
- package/dist/tools/browser-dialog.d.ts.map +1 -0
- package/dist/tools/browser-dialog.js +128 -0
- package/dist/tools/browser-dialog.js.map +1 -0
- package/dist/tools/browser-supervisor.d.ts +116 -0
- package/dist/tools/browser-supervisor.d.ts.map +1 -0
- package/dist/tools/browser-supervisor.js +282 -0
- package/dist/tools/browser-supervisor.js.map +1 -0
- package/dist/tools/browser-tool.d.ts +206 -0
- package/dist/tools/browser-tool.d.ts.map +1 -0
- package/dist/tools/browser-tool.js +726 -0
- package/dist/tools/browser-tool.js.map +1 -0
- package/dist/tools/checkpoint-manager.d.ts +67 -0
- package/dist/tools/checkpoint-manager.d.ts.map +1 -0
- package/dist/tools/checkpoint-manager.js +153 -0
- package/dist/tools/checkpoint-manager.js.map +1 -0
- package/dist/tools/child-agent-worker.d.ts +15 -0
- package/dist/tools/child-agent-worker.d.ts.map +1 -0
- package/dist/tools/child-agent-worker.js +212 -0
- package/dist/tools/child-agent-worker.js.map +1 -0
- package/dist/tools/code-execution.d.ts +56 -0
- package/dist/tools/code-execution.d.ts.map +1 -0
- package/dist/tools/code-execution.js +155 -0
- package/dist/tools/code-execution.js.map +1 -0
- package/dist/tools/computer-use-tool.d.ts +40 -0
- package/dist/tools/computer-use-tool.d.ts.map +1 -0
- package/dist/tools/computer-use-tool.js +194 -0
- package/dist/tools/computer-use-tool.js.map +1 -0
- package/dist/tools/credential-env-tools.d.ts +77 -0
- package/dist/tools/credential-env-tools.d.ts.map +1 -0
- package/dist/tools/credential-env-tools.js +171 -0
- package/dist/tools/credential-env-tools.js.map +1 -0
- package/dist/tools/credential-files.d.ts +78 -0
- package/dist/tools/credential-files.d.ts.map +1 -0
- package/dist/tools/credential-files.js +194 -0
- package/dist/tools/credential-files.js.map +1 -0
- package/dist/tools/cronjob-tools.d.ts +142 -0
- package/dist/tools/cronjob-tools.d.ts.map +1 -0
- package/dist/tools/cronjob-tools.js +407 -0
- package/dist/tools/cronjob-tools.js.map +1 -0
- package/dist/tools/daemon-pool.d.ts +70 -0
- package/dist/tools/daemon-pool.d.ts.map +1 -0
- package/dist/tools/daemon-pool.js +144 -0
- package/dist/tools/daemon-pool.js.map +1 -0
- package/dist/tools/debug-helpers.d.ts +118 -0
- package/dist/tools/debug-helpers.d.ts.map +1 -0
- package/dist/tools/debug-helpers.js +315 -0
- package/dist/tools/debug-helpers.js.map +1 -0
- package/dist/tools/delegate-tool.d.ts +109 -0
- package/dist/tools/delegate-tool.d.ts.map +1 -0
- package/dist/tools/delegate-tool.js +185 -0
- package/dist/tools/delegate-tool.js.map +1 -0
- package/dist/tools/delegation-live-log.d.ts +100 -0
- package/dist/tools/delegation-live-log.d.ts.map +1 -0
- package/dist/tools/delegation-live-log.js +258 -0
- package/dist/tools/delegation-live-log.js.map +1 -0
- package/dist/tools/delegation-state.d.ts +87 -0
- package/dist/tools/delegation-state.d.ts.map +1 -0
- package/dist/tools/delegation-state.js +278 -0
- package/dist/tools/delegation-state.js.map +1 -0
- package/dist/tools/delegation-system.d.ts +211 -0
- package/dist/tools/delegation-system.d.ts.map +1 -0
- package/dist/tools/delegation-system.js +592 -0
- package/dist/tools/delegation-system.js.map +1 -0
- package/dist/tools/desktop-ui.d.ts +148 -0
- package/dist/tools/desktop-ui.d.ts.map +1 -0
- package/dist/tools/desktop-ui.js +486 -0
- package/dist/tools/desktop-ui.js.map +1 -0
- package/dist/tools/discord-tool.d.ts +169 -0
- package/dist/tools/discord-tool.d.ts.map +1 -0
- package/dist/tools/discord-tool.js +174 -0
- package/dist/tools/discord-tool.js.map +1 -0
- package/dist/tools/docker-tool.d.ts +251 -0
- package/dist/tools/docker-tool.d.ts.map +1 -0
- package/dist/tools/docker-tool.js +476 -0
- package/dist/tools/docker-tool.js.map +1 -0
- package/dist/tools/feishu-tools.d.ts +109 -0
- package/dist/tools/feishu-tools.d.ts.map +1 -0
- package/dist/tools/feishu-tools.js +208 -0
- package/dist/tools/feishu-tools.js.map +1 -0
- package/dist/tools/file-operations.d.ts +136 -0
- package/dist/tools/file-operations.d.ts.map +1 -0
- package/dist/tools/file-operations.js +301 -0
- package/dist/tools/file-operations.js.map +1 -0
- package/dist/tools/homeassistant-tool.d.ts +99 -0
- package/dist/tools/homeassistant-tool.d.ts.map +1 -0
- package/dist/tools/homeassistant-tool.js +145 -0
- package/dist/tools/homeassistant-tool.js.map +1 -0
- package/dist/tools/image-video-tool.d.ts +88 -0
- package/dist/tools/image-video-tool.d.ts.map +1 -0
- package/dist/tools/image-video-tool.js +276 -0
- package/dist/tools/image-video-tool.js.map +1 -0
- package/dist/tools/infra-tools.d.ts +144 -0
- package/dist/tools/infra-tools.d.ts.map +1 -0
- package/dist/tools/infra-tools.js +253 -0
- package/dist/tools/infra-tools.js.map +1 -0
- package/dist/tools/interrupt-tool.d.ts +63 -0
- package/dist/tools/interrupt-tool.d.ts.map +1 -0
- package/dist/tools/interrupt-tool.js +103 -0
- package/dist/tools/interrupt-tool.js.map +1 -0
- package/dist/tools/kanban-cron-tools.d.ts +92 -0
- package/dist/tools/kanban-cron-tools.d.ts.map +1 -0
- package/dist/tools/kanban-cron-tools.js +197 -0
- package/dist/tools/kanban-cron-tools.js.map +1 -0
- package/dist/tools/kanban-tools.d.ts +158 -0
- package/dist/tools/kanban-tools.d.ts.map +1 -0
- package/dist/tools/kanban-tools.js +359 -0
- package/dist/tools/kanban-tools.js.map +1 -0
- package/dist/tools/lazy-deps.d.ts +53 -0
- package/dist/tools/lazy-deps.d.ts.map +1 -0
- package/dist/tools/lazy-deps.js +101 -0
- package/dist/tools/lazy-deps.js.map +1 -0
- package/dist/tools/managed-gateway.d.ts +122 -0
- package/dist/tools/managed-gateway.d.ts.map +1 -0
- package/dist/tools/managed-gateway.js +236 -0
- package/dist/tools/managed-gateway.js.map +1 -0
- package/dist/tools/mcp-client-tool.d.ts +86 -0
- package/dist/tools/mcp-client-tool.d.ts.map +1 -0
- package/dist/tools/mcp-client-tool.js +196 -0
- package/dist/tools/mcp-client-tool.js.map +1 -0
- package/dist/tools/memory-tool.d.ts +88 -0
- package/dist/tools/memory-tool.d.ts.map +1 -0
- package/dist/tools/memory-tool.js +181 -0
- package/dist/tools/memory-tool.js.map +1 -0
- package/dist/tools/memory-tools.d.ts +95 -0
- package/dist/tools/memory-tools.d.ts.map +1 -0
- package/dist/tools/memory-tools.js +235 -0
- package/dist/tools/memory-tools.js.map +1 -0
- package/dist/tools/messaging-tool.d.ts +127 -0
- package/dist/tools/messaging-tool.d.ts.map +1 -0
- package/dist/tools/messaging-tool.js +314 -0
- package/dist/tools/messaging-tool.js.map +1 -0
- package/dist/tools/messaging-tools.d.ts +168 -0
- package/dist/tools/messaging-tools.d.ts.map +1 -0
- package/dist/tools/messaging-tools.js +242 -0
- package/dist/tools/messaging-tools.js.map +1 -0
- package/dist/tools/microsoft-graph.d.ts +178 -0
- package/dist/tools/microsoft-graph.d.ts.map +1 -0
- package/dist/tools/microsoft-graph.js +207 -0
- package/dist/tools/microsoft-graph.js.map +1 -0
- package/dist/tools/modality/generic-caller.d.ts +43 -0
- package/dist/tools/modality/generic-caller.d.ts.map +1 -0
- package/dist/tools/modality/generic-caller.js +254 -0
- package/dist/tools/modality/generic-caller.js.map +1 -0
- package/dist/tools/modality/modality-catalog.d.ts +134 -0
- package/dist/tools/modality/modality-catalog.d.ts.map +1 -0
- package/dist/tools/modality/modality-catalog.js +444 -0
- package/dist/tools/modality/modality-catalog.js.map +1 -0
- package/dist/tools/modality/tool-router.d.ts +81 -0
- package/dist/tools/modality/tool-router.d.ts.map +1 -0
- package/dist/tools/modality/tool-router.js +84 -0
- package/dist/tools/modality/tool-router.js.map +1 -0
- package/dist/tools/neutts-synth.d.ts +59 -0
- package/dist/tools/neutts-synth.d.ts.map +1 -0
- package/dist/tools/neutts-synth.js +146 -0
- package/dist/tools/neutts-synth.js.map +1 -0
- package/dist/tools/openrouter-client.d.ts +91 -0
- package/dist/tools/openrouter-client.d.ts.map +1 -0
- package/dist/tools/openrouter-client.js +159 -0
- package/dist/tools/openrouter-client.js.map +1 -0
- package/dist/tools/process-registry.d.ts +84 -0
- package/dist/tools/process-registry.d.ts.map +1 -0
- package/dist/tools/process-registry.js +172 -0
- package/dist/tools/process-registry.js.map +1 -0
- package/dist/tools/project-tools.d.ts +132 -0
- package/dist/tools/project-tools.d.ts.map +1 -0
- package/dist/tools/project-tools.js +306 -0
- package/dist/tools/project-tools.js.map +1 -0
- package/dist/tools/read-extract.d.ts +80 -0
- package/dist/tools/read-extract.d.ts.map +1 -0
- package/dist/tools/read-extract.js +272 -0
- package/dist/tools/read-extract.js.map +1 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +1797 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/schema-binary-tools.d.ts +71 -0
- package/dist/tools/schema-binary-tools.d.ts.map +1 -0
- package/dist/tools/schema-binary-tools.js +171 -0
- package/dist/tools/schema-binary-tools.js.map +1 -0
- package/dist/tools/security-deep.d.ts +81 -0
- package/dist/tools/security-deep.d.ts.map +1 -0
- package/dist/tools/security-deep.js +207 -0
- package/dist/tools/security-deep.js.map +1 -0
- package/dist/tools/security-tools.d.ts +107 -0
- package/dist/tools/security-tools.d.ts.map +1 -0
- package/dist/tools/security-tools.js +264 -0
- package/dist/tools/security-tools.js.map +1 -0
- package/dist/tools/send-message-tool.d.ts +78 -0
- package/dist/tools/send-message-tool.d.ts.map +1 -0
- package/dist/tools/send-message-tool.js +254 -0
- package/dist/tools/send-message-tool.js.map +1 -0
- package/dist/tools/session-tools.d.ts +173 -0
- package/dist/tools/session-tools.d.ts.map +1 -0
- package/dist/tools/session-tools.js +362 -0
- package/dist/tools/session-tools.js.map +1 -0
- package/dist/tools/skill-metadata.d.ts +101 -0
- package/dist/tools/skill-metadata.d.ts.map +1 -0
- package/dist/tools/skill-metadata.js +206 -0
- package/dist/tools/skill-metadata.js.map +1 -0
- package/dist/tools/skill-tool.d.ts +16 -1
- package/dist/tools/skill-tool.d.ts.map +1 -1
- package/dist/tools/skill-tool.js +182 -4
- package/dist/tools/skill-tool.js.map +1 -1
- package/dist/tools/skills-hub.d.ts +100 -0
- package/dist/tools/skills-hub.d.ts.map +1 -0
- package/dist/tools/skills-hub.js +292 -0
- package/dist/tools/skills-hub.js.map +1 -0
- package/dist/tools/skills-sync-client.d.ts +124 -0
- package/dist/tools/skills-sync-client.d.ts.map +1 -0
- package/dist/tools/skills-sync-client.js +226 -0
- package/dist/tools/skills-sync-client.js.map +1 -0
- package/dist/tools/skills-sync.d.ts +67 -0
- package/dist/tools/skills-sync.d.ts.map +1 -0
- package/dist/tools/skills-sync.js +200 -0
- package/dist/tools/skills-sync.js.map +1 -0
- package/dist/tools/ssh-tool.d.ts +130 -0
- package/dist/tools/ssh-tool.d.ts.map +1 -0
- package/dist/tools/ssh-tool.js +328 -0
- package/dist/tools/ssh-tool.js.map +1 -0
- package/dist/tools/subagent-spawner.d.ts +143 -0
- package/dist/tools/subagent-spawner.d.ts.map +1 -0
- package/dist/tools/subagent-spawner.js +335 -0
- package/dist/tools/subagent-spawner.js.map +1 -0
- package/dist/tools/terminal-tool.d.ts +109 -0
- package/dist/tools/terminal-tool.d.ts.map +1 -0
- package/dist/tools/terminal-tool.js +246 -0
- package/dist/tools/terminal-tool.js.map +1 -0
- package/dist/tools/todo-tool.d.ts +46 -0
- package/dist/tools/todo-tool.d.ts.map +1 -0
- package/dist/tools/todo-tool.js +109 -0
- package/dist/tools/todo-tool.js.map +1 -0
- package/dist/tools/tool-backend-helpers.d.ts +72 -0
- package/dist/tools/tool-backend-helpers.d.ts.map +1 -0
- package/dist/tools/tool-backend-helpers.js +143 -0
- package/dist/tools/tool-backend-helpers.js.map +1 -0
- package/dist/tools/tool-output-limits.d.ts +49 -0
- package/dist/tools/tool-output-limits.d.ts.map +1 -0
- package/dist/tools/tool-output-limits.js +161 -0
- package/dist/tools/tool-output-limits.js.map +1 -0
- package/dist/tools/tool-result-storage.d.ts +72 -0
- package/dist/tools/tool-result-storage.d.ts.map +1 -0
- package/dist/tools/tool-result-storage.js +137 -0
- package/dist/tools/tool-result-storage.js.map +1 -0
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +89 -11
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/tools/tts-streaming.d.ts +57 -0
- package/dist/tools/tts-streaming.d.ts.map +1 -0
- package/dist/tools/tts-streaming.js +182 -0
- package/dist/tools/tts-streaming.js.map +1 -0
- package/dist/tools/tts-text-normalize.d.ts +55 -0
- package/dist/tools/tts-text-normalize.d.ts.map +1 -0
- package/dist/tools/tts-text-normalize.js +253 -0
- package/dist/tools/tts-text-normalize.js.map +1 -0
- package/dist/tools/tts-tool.d.ts +91 -0
- package/dist/tools/tts-tool.d.ts.map +1 -0
- package/dist/tools/tts-tool.js +406 -0
- package/dist/tools/tts-tool.js.map +1 -0
- package/dist/tools/utility-tools.d.ts +110 -0
- package/dist/tools/utility-tools.d.ts.map +1 -0
- package/dist/tools/utility-tools.js +192 -0
- package/dist/tools/utility-tools.js.map +1 -0
- package/dist/tools/video-generation.d.ts +86 -0
- package/dist/tools/video-generation.d.ts.map +1 -0
- package/dist/tools/video-generation.js +171 -0
- package/dist/tools/video-generation.js.map +1 -0
- package/dist/tools/vision-tools.d.ts +141 -0
- package/dist/tools/vision-tools.d.ts.map +1 -0
- package/dist/tools/vision-tools.js +203 -0
- package/dist/tools/vision-tools.js.map +1 -0
- package/dist/tools/voice-mode.d.ts +88 -0
- package/dist/tools/voice-mode.d.ts.map +1 -0
- package/dist/tools/voice-mode.js +189 -0
- package/dist/tools/voice-mode.js.map +1 -0
- package/dist/tools/wake-word.d.ts +69 -0
- package/dist/tools/wake-word.d.ts.map +1 -0
- package/dist/tools/wake-word.js +123 -0
- package/dist/tools/wake-word.js.map +1 -0
- package/dist/tools/write-approval.d.ts +88 -0
- package/dist/tools/write-approval.d.ts.map +1 -0
- package/dist/tools/write-approval.js +194 -0
- package/dist/tools/write-approval.js.map +1 -0
- package/dist/utils/shell-detection.d.ts +124 -0
- package/dist/utils/shell-detection.d.ts.map +1 -0
- package/dist/utils/shell-detection.js +305 -0
- package/dist/utils/shell-detection.js.map +1 -0
- package/dist/utils/windows-paths.d.ts +185 -0
- package/dist/utils/windows-paths.d.ts.map +1 -0
- package/dist/utils/windows-paths.js +472 -0
- package/dist/utils/windows-paths.js.map +1 -0
- package/dist/web-dashboard/chat-console.d.ts +23 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +9 -0
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +41 -0
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +4 -0
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: a11y-audit
|
|
3
|
+
description: Audit web applications for accessibility (WCAG 2.1 AA compliance): check color contrast, keyboard navigation, screen-reader compatibility, ARIA attributes, and semantic HTML. Use when the goal asks to audit, fix, or improve accessibility.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# a11y-audit
|
|
8
|
+
|
|
9
|
+
Audit web applications for accessibility (WCAG 2.1 AA compliance): check color contrast, keyboard navigation, screen-reader compatibility, ARIA attributes, and semantic HTML. Use when the goal asks to audit, fix, or improve accessibility.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
accessibility a11y wcag audit screen reader keyboard nav aria contrast wcag
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- scope (choice [default: full]): Audit scope
|
|
18
|
+
|
|
19
|
+
## Steps
|
|
20
|
+
|
|
21
|
+
1. [analyst] Scan the codebase for accessibility issues: run automated tools (axe-core, pa11y, lighthouse) or inspect JSX for missing alt text, labels, ARIA roles, and semantic landmarks.
|
|
22
|
+
|
|
23
|
+
2. [analyst] Categorize issues by severity: critical (blocks users), serious (hard to use), moderate (annoying), minor (cosmetic). Map to WCAG success criteria. (after: step-1)
|
|
24
|
+
|
|
25
|
+
3. [analyst] Fix critical and serious issues: add missing alt text, labels, ARIA attributes, keyboard handlers, focus management, and color contrast adjustments. (after: step-2)
|
|
26
|
+
|
|
27
|
+
4. [analyst] Test fixes: verify keyboard-only navigation, screen-reader output, and color contrast ratios. Re-run automated scanner. (after: step-3)
|
|
28
|
+
|
|
29
|
+
5. [analyst] Write an accessibility report: WCAG 2.1 AA conformance status, remaining issues by severity, and an accessibility statement for the project. (after: step-4)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-call
|
|
3
|
+
description: Make API calls with authentication, retry logic, and response parsing
|
|
4
|
+
runtime: node
|
|
5
|
+
required_environment_variables:
|
|
6
|
+
- API_BASE_URL
|
|
7
|
+
tags:
|
|
8
|
+
- api
|
|
9
|
+
- http
|
|
10
|
+
- integration
|
|
11
|
+
parameters:
|
|
12
|
+
- name: endpoint
|
|
13
|
+
description: API endpoint path (e.g., /users, /posts)
|
|
14
|
+
required: true
|
|
15
|
+
type: string
|
|
16
|
+
- name: method
|
|
17
|
+
description: HTTP method (GET, POST, PUT, DELETE)
|
|
18
|
+
required: false
|
|
19
|
+
type: string
|
|
20
|
+
default: GET
|
|
21
|
+
- name: data
|
|
22
|
+
description: JSON data for POST/PUT requests
|
|
23
|
+
required: false
|
|
24
|
+
type: string
|
|
25
|
+
- name: headers
|
|
26
|
+
description: Additional HTTP headers as JSON
|
|
27
|
+
required: false
|
|
28
|
+
type: string
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# API Call Skill
|
|
32
|
+
|
|
33
|
+
Make API calls with authentication, retry logic, and response parsing. This skill demonstrates the execution engine's ability to run Node.js scripts.
|
|
34
|
+
|
|
35
|
+
## How It Works
|
|
36
|
+
|
|
37
|
+
1. Receives endpoint, method, and optional data/headers
|
|
38
|
+
2. Makes HTTP request to API_BASE_URL + endpoint
|
|
39
|
+
3. Handles authentication via API_KEY environment variable
|
|
40
|
+
4. Implements retry logic with exponential backoff
|
|
41
|
+
5. Returns structured response
|
|
42
|
+
|
|
43
|
+
## Usage
|
|
44
|
+
|
|
45
|
+
When the user needs to make an API call, execute this skill with the endpoint and method.
|
|
46
|
+
|
|
47
|
+
## Security
|
|
48
|
+
|
|
49
|
+
- API keys are injected via environment variables
|
|
50
|
+
- Base URL is configured via API_BASE_URL
|
|
51
|
+
- Retry logic prevents excessive requests
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* API Call Skill — Demonstrates Node.js skill execution.
|
|
4
|
+
*
|
|
5
|
+
* This script is executed by the skill-executor.ts module when the agent
|
|
6
|
+
* calls: skill tool → execute: { skill: "api-call", args: { endpoint: "/users" } }
|
|
7
|
+
*
|
|
8
|
+
* The executor:
|
|
9
|
+
* 1. Detects runtime: node (from shebang or frontmatter)
|
|
10
|
+
* 2. Parses required_environment_variables: [API_BASE_URL, API_KEY]
|
|
11
|
+
* 3. Injects API_BASE_URL and API_KEY from process.env (if registered)
|
|
12
|
+
* 4. Spawns: node /tmp/skill-exec/abc123/call.js
|
|
13
|
+
* 5. Captures stdout/stderr/exit code
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const https = require('https');
|
|
17
|
+
const http = require('http');
|
|
18
|
+
const url = require('url');
|
|
19
|
+
|
|
20
|
+
// Parse command-line arguments
|
|
21
|
+
function parseArgs(args) {
|
|
22
|
+
const parsed = {
|
|
23
|
+
endpoint: null,
|
|
24
|
+
method: 'GET',
|
|
25
|
+
data: null,
|
|
26
|
+
headers: {}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
for (let i = 0; i < args.length; i++) {
|
|
30
|
+
switch (args[i]) {
|
|
31
|
+
case '--endpoint':
|
|
32
|
+
case '-e':
|
|
33
|
+
parsed.endpoint = args[++i];
|
|
34
|
+
break;
|
|
35
|
+
case '--method':
|
|
36
|
+
case '-m':
|
|
37
|
+
parsed.method = args[++i].toUpperCase();
|
|
38
|
+
break;
|
|
39
|
+
case '--data':
|
|
40
|
+
case '-d':
|
|
41
|
+
parsed.data = args[++i];
|
|
42
|
+
break;
|
|
43
|
+
case '--headers':
|
|
44
|
+
case '-H':
|
|
45
|
+
try {
|
|
46
|
+
parsed.headers = JSON.parse(args[++i]);
|
|
47
|
+
} catch (e) {
|
|
48
|
+
console.error(`Error: Invalid JSON for headers: ${args[i]}`, process.stderr);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return parsed;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Make HTTP request with retry logic
|
|
59
|
+
async function makeRequest(options, retries = 3, delay = 1000) {
|
|
60
|
+
for (let attempt = 1; attempt <= retries; attempt++) {
|
|
61
|
+
try {
|
|
62
|
+
const response = await executeRequest(options);
|
|
63
|
+
return response;
|
|
64
|
+
} catch (error) {
|
|
65
|
+
if (attempt === retries) {
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
console.error(`Attempt ${attempt} failed: ${error.message}. Retrying in ${delay}ms...`);
|
|
70
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
71
|
+
delay *= 2; // Exponential backoff
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function executeRequest(options) {
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
const parsedUrl = new url.URL(options.url);
|
|
79
|
+
const isHttps = parsedUrl.protocol === 'https:';
|
|
80
|
+
const client = isHttps ? https : http;
|
|
81
|
+
|
|
82
|
+
const reqOptions = {
|
|
83
|
+
hostname: parsedUrl.hostname,
|
|
84
|
+
port: parsedUrl.port || (isHttps ? 443 : 80),
|
|
85
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
86
|
+
method: options.method,
|
|
87
|
+
headers: {
|
|
88
|
+
'Content-Type': 'application/json',
|
|
89
|
+
...options.headers
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const req = client.request(reqOptions, (res) => {
|
|
94
|
+
let data = '';
|
|
95
|
+
|
|
96
|
+
res.on('data', (chunk) => {
|
|
97
|
+
data += chunk;
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
res.on('end', () => {
|
|
101
|
+
try {
|
|
102
|
+
const jsonData = JSON.parse(data);
|
|
103
|
+
resolve({
|
|
104
|
+
status: res.statusCode,
|
|
105
|
+
headers: res.headers,
|
|
106
|
+
data: jsonData
|
|
107
|
+
});
|
|
108
|
+
} catch {
|
|
109
|
+
resolve({
|
|
110
|
+
status: res.statusCode,
|
|
111
|
+
headers: res.headers,
|
|
112
|
+
data: data
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
req.on('error', reject);
|
|
119
|
+
req.setTimeout(10000, () => {
|
|
120
|
+
req.destroy();
|
|
121
|
+
reject(new Error('Request timeout'));
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
if (options.body) {
|
|
125
|
+
req.write(options.body);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
req.end();
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Main execution
|
|
133
|
+
async function main() {
|
|
134
|
+
const args = parseArgs(process.argv.slice(2));
|
|
135
|
+
|
|
136
|
+
if (!args.endpoint) {
|
|
137
|
+
console.error('Error: --endpoint is required');
|
|
138
|
+
console.error('Usage: node call.js --endpoint /users --method GET');
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const baseUrl = process.env.API_BASE_URL;
|
|
143
|
+
if (!baseUrl) {
|
|
144
|
+
console.error('Error: API_BASE_URL environment variable is not set');
|
|
145
|
+
console.error('Set it with: export API_BASE_URL=https://api.example.com');
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const apiKey = process.env.API_KEY;
|
|
150
|
+
if (apiKey) {
|
|
151
|
+
args.headers['Authorization'] = `Bearer ${apiKey}`;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const fullUrl = baseUrl + args.endpoint;
|
|
155
|
+
console.log(`Making ${args.method} request to: ${fullUrl}`);
|
|
156
|
+
|
|
157
|
+
if (args.data) {
|
|
158
|
+
console.log(`Request body: ${args.data}`);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
try {
|
|
162
|
+
const response = await makeRequest({
|
|
163
|
+
url: fullUrl,
|
|
164
|
+
method: args.method,
|
|
165
|
+
body: args.data,
|
|
166
|
+
headers: args.headers
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
console.log(`\n✅ Request successful!`);
|
|
170
|
+
console.log(`📊 Status: ${response.status}`);
|
|
171
|
+
console.log(`\nResponse:`);
|
|
172
|
+
console.log(JSON.stringify(response.data, null, 2));
|
|
173
|
+
|
|
174
|
+
// Return structured result
|
|
175
|
+
const result = {
|
|
176
|
+
success: true,
|
|
177
|
+
status: response.status,
|
|
178
|
+
data: response.data
|
|
179
|
+
};
|
|
180
|
+
console.log(`\n${JSON.stringify(result, null, 2)}`);
|
|
181
|
+
} catch (error) {
|
|
182
|
+
console.error(`\n❌ Request failed: ${error.message}`);
|
|
183
|
+
process.exit(1);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
main();
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* API Call Skill — Demonstrates Node.js skill execution.
|
|
4
|
+
*
|
|
5
|
+
* This script is executed by the skill-executor.ts module when the agent
|
|
6
|
+
* calls: skill tool → execute: { skill: "api-call", args: { endpoint: "/users" } }
|
|
7
|
+
*
|
|
8
|
+
* The executor:
|
|
9
|
+
* 1. Detects runtime: node (from shebang or frontmatter)
|
|
10
|
+
* 2. Parses required_environment_variables: [API_BASE_URL, API_KEY]
|
|
11
|
+
* 3. Injects API_BASE_URL and API_KEY from process.env (if registered)
|
|
12
|
+
* 4. Spawns: node /tmp/skill-exec/abc123/call.mjs
|
|
13
|
+
* 5. Captures stdout/stderr/exit code
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import https from 'https';
|
|
17
|
+
import http from 'http';
|
|
18
|
+
import { URL } from 'url';
|
|
19
|
+
|
|
20
|
+
// Parse command-line arguments
|
|
21
|
+
function parseArgs(args) {
|
|
22
|
+
const parsed = {
|
|
23
|
+
endpoint: null,
|
|
24
|
+
method: 'GET',
|
|
25
|
+
data: null,
|
|
26
|
+
headers: {}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
for (let i = 0; i < args.length; i++) {
|
|
30
|
+
switch (args[i]) {
|
|
31
|
+
case '--endpoint':
|
|
32
|
+
case '-e':
|
|
33
|
+
parsed.endpoint = args[++i];
|
|
34
|
+
break;
|
|
35
|
+
case '--method':
|
|
36
|
+
case '-m':
|
|
37
|
+
parsed.method = args[++i].toUpperCase();
|
|
38
|
+
break;
|
|
39
|
+
case '--data':
|
|
40
|
+
case '-d':
|
|
41
|
+
parsed.data = args[++i];
|
|
42
|
+
break;
|
|
43
|
+
case '--headers':
|
|
44
|
+
case '-H':
|
|
45
|
+
try {
|
|
46
|
+
parsed.headers = JSON.parse(args[++i]);
|
|
47
|
+
} catch (e) {
|
|
48
|
+
console.error(`Error: Invalid JSON for headers: ${args[i]}`);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return parsed;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Make HTTP request with retry logic
|
|
59
|
+
async function makeRequest(options, retries = 3, delay = 1000) {
|
|
60
|
+
for (let attempt = 1; attempt <= retries; attempt++) {
|
|
61
|
+
try {
|
|
62
|
+
const response = await executeRequest(options);
|
|
63
|
+
return response;
|
|
64
|
+
} catch (error) {
|
|
65
|
+
if (attempt === retries) {
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
console.error(`Attempt ${attempt} failed: ${error.message}. Retrying in ${delay}ms...`);
|
|
70
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
71
|
+
delay *= 2; // Exponential backoff
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function executeRequest(options) {
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
const parsedUrl = new URL(options.url);
|
|
79
|
+
const isHttps = parsedUrl.protocol === 'https:';
|
|
80
|
+
const client = isHttps ? https : http;
|
|
81
|
+
|
|
82
|
+
const reqOptions = {
|
|
83
|
+
hostname: parsedUrl.hostname,
|
|
84
|
+
port: parsedUrl.port || (isHttps ? 443 : 80),
|
|
85
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
86
|
+
method: options.method,
|
|
87
|
+
headers: {
|
|
88
|
+
'Content-Type': 'application/json',
|
|
89
|
+
...options.headers
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const req = client.request(reqOptions, (res) => {
|
|
94
|
+
let data = '';
|
|
95
|
+
|
|
96
|
+
res.on('data', (chunk) => {
|
|
97
|
+
data += chunk;
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
res.on('end', () => {
|
|
101
|
+
try {
|
|
102
|
+
const jsonData = JSON.parse(data);
|
|
103
|
+
resolve({
|
|
104
|
+
status: res.statusCode,
|
|
105
|
+
headers: res.headers,
|
|
106
|
+
data: jsonData
|
|
107
|
+
});
|
|
108
|
+
} catch {
|
|
109
|
+
resolve({
|
|
110
|
+
status: res.statusCode,
|
|
111
|
+
headers: res.headers,
|
|
112
|
+
data: data
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
req.on('error', reject);
|
|
119
|
+
req.setTimeout(10000, () => {
|
|
120
|
+
req.destroy();
|
|
121
|
+
reject(new Error('Request timeout'));
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
if (options.body) {
|
|
125
|
+
req.write(options.body);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
req.end();
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Main execution
|
|
133
|
+
async function main() {
|
|
134
|
+
const args = parseArgs(process.argv.slice(2));
|
|
135
|
+
|
|
136
|
+
if (!args.endpoint) {
|
|
137
|
+
console.error('Error: --endpoint is required');
|
|
138
|
+
console.error('Usage: node call.mjs --endpoint /users --method GET');
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const baseUrl = process.env.API_BASE_URL;
|
|
143
|
+
if (!baseUrl) {
|
|
144
|
+
console.error('Error: API_BASE_URL environment variable is not set');
|
|
145
|
+
console.error('Set it with: export API_BASE_URL=https://api.example.com');
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const apiKey = process.env.API_KEY;
|
|
150
|
+
if (apiKey) {
|
|
151
|
+
args.headers['Authorization'] = `Bearer ${apiKey}`;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const fullUrl = baseUrl + args.endpoint;
|
|
155
|
+
console.log(`Making ${args.method} request to: ${fullUrl}`);
|
|
156
|
+
|
|
157
|
+
if (args.data) {
|
|
158
|
+
console.log(`Request body: ${args.data}`);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
try {
|
|
162
|
+
const response = await makeRequest({
|
|
163
|
+
url: fullUrl,
|
|
164
|
+
method: args.method,
|
|
165
|
+
body: args.data,
|
|
166
|
+
headers: args.headers
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
console.log(`\n✅ Request successful!`);
|
|
170
|
+
console.log(`📊 Status: ${response.status}`);
|
|
171
|
+
console.log(`\nResponse:`);
|
|
172
|
+
console.log(JSON.stringify(response.data, null, 2));
|
|
173
|
+
|
|
174
|
+
// Return structured result
|
|
175
|
+
const result = {
|
|
176
|
+
success: true,
|
|
177
|
+
status: response.status,
|
|
178
|
+
data: response.data
|
|
179
|
+
};
|
|
180
|
+
console.log(`\n${JSON.stringify(result, null, 2)}`);
|
|
181
|
+
} catch (error) {
|
|
182
|
+
console.error(`\n❌ Request failed: ${error.message}`);
|
|
183
|
+
process.exit(1);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
main();
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-design
|
|
3
|
+
description: Design and implement a REST API: gather requirements, design endpoints with proper HTTP methods/status codes, produce an OpenAPI spec, implement routes, and write integration tests. Use when the goal asks to create an API, design endpoints, build a REST service, or scaffold an HTTP backend.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# api-design
|
|
8
|
+
|
|
9
|
+
Design and implement a REST API: gather requirements, design endpoints with proper HTTP methods/status codes, produce an OpenAPI spec, implement routes, and write integration tests. Use when the goal asks to create an API, design endpoints, build a REST service, or scaffold an HTTP backend.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
API design REST endpoint route HTTP backend server create implement OpenAPI swagger
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- framework (choice [default: auto]): HTTP framework (auto-detected from package.json if not specified)
|
|
18
|
+
- authType (choice [default: api-key]): Authentication method (default: API key)
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. [context-gatherer] Gather requirements with evidence:
|
|
23
|
+
- Read the project manifest (package.json / pyproject.toml) for the framework (Express, Fastify, Hono, Flask, FastAPI)
|
|
24
|
+
- Read existing route files if any — note the patterns (file structure, middleware, error handling)
|
|
25
|
+
- Identify the resources (nouns that become endpoints) and operations (CRUD + custom actions)
|
|
26
|
+
- Note auth requirements (API keys, JWT, session), rate limiting needs, and pagination strategy
|
|
27
|
+
Produce: a resource list, an operation-per-resource matrix, and the framework conventions to follow.
|
|
28
|
+
|
|
29
|
+
2. [planner] Design the endpoint contract:
|
|
30
|
+
- For each resource: list endpoints with HTTP method, path, request/response schema, status codes
|
|
31
|
+
- Follow REST conventions: nouns for resources, proper HTTP verbs (GET=read, POST=create, PUT/PATCH=update, DELETE=remove)
|
|
32
|
+
- Define error response shape (consistent across all endpoints)
|
|
33
|
+
- Plan pagination (cursor-based or offset), filtering, and sorting
|
|
34
|
+
- Decide auth middleware placement and error handler strategy
|
|
35
|
+
Produce an endpoint matrix table. (after: step-0)
|
|
36
|
+
|
|
37
|
+
3. [writer] Write the OpenAPI 3.0 spec (openapi.yaml or openapi.json):
|
|
38
|
+
- paths: every endpoint with method, parameters, request body schema, response schemas (200/201/400/401/404/500)
|
|
39
|
+
- components/schemas: reusable types for request/response bodies
|
|
40
|
+
- security: define the auth scheme (Bearer token, API key, etc.)
|
|
41
|
+
- Validate the spec: Run `npx swagger-cli validate openapi.yaml` (install if needed)
|
|
42
|
+
The spec is the contract — implementation must match it exactly. (after: step-1)
|
|
43
|
+
|
|
44
|
+
4. [runner] Implement the routes following the framework conventions and the OpenAPI spec:
|
|
45
|
+
- Create route files (e.g. src/routes/users.ts, src/routes/orders.ts)
|
|
46
|
+
- Apply middleware: auth, validation (request body against schema), error handling
|
|
47
|
+
- Use the status codes from the spec (201 for create, 204 for delete, 400 for validation errors)
|
|
48
|
+
- Wire routes into the app entry point
|
|
49
|
+
Each route handler should validate input, call the service layer, and return the spec-defined response shape. (after: step-2)
|
|
50
|
+
|
|
51
|
+
5. [tester] Write and run integration tests that verify the contract:
|
|
52
|
+
- For each endpoint: test the happy path, error paths (400, 401, 404), and edge cases
|
|
53
|
+
- Verify response shapes match the OpenAPI spec (status code + body structure)
|
|
54
|
+
- Test auth: unauthenticated requests get 401, unauthorized access gets 403
|
|
55
|
+
- Run the tests: Run `npm test` or equivalent
|
|
56
|
+
The tests are the proof that implementation matches the spec. (after: step-3)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-testing
|
|
3
|
+
description: Test REST and GraphQL APIs: write automated tests for endpoints, validate status codes, response schemas, auth flows, and edge cases. Use when the goal asks to test, validate, or verify an API.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# api-testing
|
|
8
|
+
|
|
9
|
+
Test REST and GraphQL APIs: write automated tests for endpoints, validate status codes, response schemas, auth flows, and edge cases. Use when the goal asks to test, validate, or verify an API.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
test api endpoint rest graphql http request validate response status auth
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- framework (choice [default: auto]): Test framework
|
|
18
|
+
|
|
19
|
+
## Steps
|
|
20
|
+
|
|
21
|
+
1. [analyst] Discover endpoints: parse OpenAPI/Swagger specs, route files, or scan source code for route definitions. List all endpoints with methods, paths, and expected parameters.
|
|
22
|
+
|
|
23
|
+
2. [analyst] Group tests by endpoint: happy path, error cases (400, 401, 403, 404, 500), boundary values, and auth scenarios (unauthenticated, expired token, insufficient scope). (after: step-1)
|
|
24
|
+
|
|
25
|
+
3. [analyst] Write test files using the project test framework (vitest, jest, pytest, go test). Include setup for test DB, mocks for external services, and fixtures for request bodies. (after: step-2)
|
|
26
|
+
|
|
27
|
+
4. [analyst] Run tests and fix failures iteratively. Cover edge cases: empty bodies, invalid JSON, missing required fields, SQL-injection payloads in params. (after: step-3)
|
|
28
|
+
|
|
29
|
+
5. [analyst] Generate coverage report: total endpoints tested, pass/fail counts, response-time assertions, and schema validation results. (after: step-4)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-versioning
|
|
3
|
+
description: Implement API versioning: URL path, header, or content-type versioning with deprecation notices and migration guides. Use when the goal asks to version an API, handle breaking changes, or add deprecation notices.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# api-versioning
|
|
8
|
+
|
|
9
|
+
Implement API versioning: URL path, header, or content-type versioning with deprecation notices and migration guides. Use when the goal asks to version an API, handle breaking changes, or add deprecation notices.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
api version versioning deprecation breaking change migration url header
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- strategy (choice [default: auto]): Versioning strategy
|
|
18
|
+
|
|
19
|
+
## Steps
|
|
20
|
+
|
|
21
|
+
1. [analyst] Choose versioning strategy: URL path (/v1/), header (API-Version), or content-type negotiation. Define version lifecycle.
|
|
22
|
+
|
|
23
|
+
2. [analyst] Restructure routes: move existing endpoints under a version prefix. Set up version-aware middleware. (after: step-0)
|
|
24
|
+
|
|
25
|
+
3. [analyst] Add deprecation support: implement Sunset header, deprecation warnings in responses, and version negotiation. (after: step-1)
|
|
26
|
+
|
|
27
|
+
4. [analyst] Write migration guides: document breaking changes between versions, provide code examples for upgrades. (after: step-2)
|
|
28
|
+
|
|
29
|
+
5. [analyst] Test version coexistence: verify v1 and v2 endpoints work simultaneously, check deprecation headers appear. (after: step-3)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: auth-setup
|
|
3
|
+
description: Implement authentication and authorization: OAuth2 (Google, GitHub), magic links, JWT sessions, role-based access control. Use when the goal asks to add login, signup, auth, SSO, or RBAC to an app.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# auth-setup
|
|
8
|
+
|
|
9
|
+
Implement authentication and authorization: OAuth2 (Google, GitHub), magic links, JWT sessions, role-based access control. Use when the goal asks to add login, signup, auth, SSO, or RBAC to an app.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
auth login signup oauth sso jwt session rbac role access control authentication authorization magic link google github
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- strategy (choice [default: auto]): Auth strategy
|
|
18
|
+
|
|
19
|
+
## Steps
|
|
20
|
+
|
|
21
|
+
1. [analyst] Choose auth strategy: OAuth2 providers, magic links, social login, or self-hosted. Install the auth library (NextAuth, Lucia, Passport, etc.).
|
|
22
|
+
|
|
23
|
+
2. [analyst] Configure providers: register OAuth apps with Google/GitHub/etc., set callback URLs, configure scopes, and store credentials securely. (after: step-1)
|
|
24
|
+
|
|
25
|
+
3. [analyst] Implement user flows: signup, login, logout, password reset, email verification. Handle session creation and JWT token refresh. (after: step-2)
|
|
26
|
+
|
|
27
|
+
4. [analyst] Add RBAC: define roles (admin, editor, viewer), protect routes with middleware, and handle permission checks in the UI. (after: step-3)
|
|
28
|
+
|
|
29
|
+
5. [analyst] Test and harden: verify CSRF protection, rate-limit login attempts, test role escalation scenarios, and audit token expiration. (after: step-4)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backup-recovery
|
|
3
|
+
description: Design and implement backup and disaster recovery: automated database backups, point-in-time recovery, S3 snapshots, and runbook documentation. Use when the goal asks to set up backups, recovery, or disaster resilience.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# backup-recovery
|
|
8
|
+
|
|
9
|
+
Design and implement backup and disaster recovery: automated database backups, point-in-time recovery, S3 snapshots, and runbook documentation. Use when the goal asks to set up backups, recovery, or disaster resilience.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
backup recovery disaster recovery database backup restore snapshots runbook resilience
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- scope (choice [default: full-stack]): Backup scope
|
|
18
|
+
|
|
19
|
+
## Steps
|
|
20
|
+
|
|
21
|
+
1. [analyst] Audit current state: identify all data stores (DB, file storage, cache), their backup capabilities, and current RPO/RTO targets.
|
|
22
|
+
|
|
23
|
+
2. [analyst] Design backup strategy: define frequency (continuous, hourly, daily), retention policy, storage location (S3, GCS, separate region), and encryption. (after: step-1)
|
|
24
|
+
|
|
25
|
+
3. [analyst] Implement automated backups: write cron jobs or scheduled tasks for database dumps, file snapshots, and configuration backups. Verify checksums. (after: step-2)
|
|
26
|
+
|
|
27
|
+
4. [analyst] Test recovery: perform a full restore to an isolated environment, verify data integrity, measure recovery time. (after: step-3)
|
|
28
|
+
|
|
29
|
+
5. [analyst] Write a disaster recovery runbook: step-by-step recovery procedures, contact list, escalation path, and post-mortem template. (after: step-4)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backup-strategy
|
|
3
|
+
description: Design and implement backup strategies. Use when the goal asks to set up backups, disaster recovery, or data protection.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# backup-strategy
|
|
8
|
+
|
|
9
|
+
Design and implement backup strategies. Use when the goal asks to set up backups, disaster recovery, or data protection.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
backup disaster recovery retention snapshot restore data protection
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- strategy (choice [default: incremental]): Backup strategy
|
|
18
|
+
|
|
19
|
+
## Steps
|
|
20
|
+
|
|
21
|
+
1. [analyst] Define RPO (Recovery Point Objective) and RTO (Recovery Time Objective). Identify critical data.
|
|
22
|
+
|
|
23
|
+
2. [analyst] Implement backup strategy: full, incremental, differential. Choose storage (S3, GCS, tape). (after: step-0)
|
|
24
|
+
|
|
25
|
+
3. [analyst] Add encryption, compression, and versioning. Implement retention policies. (after: step-1)
|
|
26
|
+
|
|
27
|
+
4. [analyst] Test restore procedures regularly. Document runbooks and verify backups. (after: step-2)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: blob-storage
|
|
3
|
+
description: Set up blob/file storage: S3, Cloudflare R2, or Azure Blob for uploads, assets, and backups. Use when the goal asks to add file uploads, cloud storage, or asset hosting.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# blob-storage
|
|
8
|
+
|
|
9
|
+
Set up blob/file storage: S3, Cloudflare R2, or Azure Blob for uploads, assets, and backups. Use when the goal asks to add file uploads, cloud storage, or asset hosting.
|
|
10
|
+
|
|
11
|
+
## Goal pattern
|
|
12
|
+
|
|
13
|
+
blob storage s3 cloudflare r2 azure upload file asset hosting bucket
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
- provider (choice [default: auto]): Storage provider
|
|
18
|
+
|
|
19
|
+
## Steps
|
|
20
|
+
|
|
21
|
+
1. [analyst] Choose the storage provider: S3, R2, Azure Blob, or MinIO. Set up the bucket/container with appropriate permissions.
|
|
22
|
+
|
|
23
|
+
2. [analyst] Implement upload: create presigned URLs for client-side upload, or server-side upload with streaming. (after: step-0)
|
|
24
|
+
|
|
25
|
+
3. [analyst] Add access control: implement signed URLs for read, bucket policies for public assets, and ACL for private files. (after: step-1)
|
|
26
|
+
|
|
27
|
+
4. [analyst] Handle processing: add image resizing on upload, virus scanning, and metadata extraction. (after: step-2)
|
|
28
|
+
|
|
29
|
+
5. [analyst] Test and optimize: verify uploads work, test file serving, add CDN caching, and monitor storage costs. (after: step-3)
|