atabey 0.0.11 → 0.0.13
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/ATABEY.md +52 -249
- package/PRIVACY.md +161 -0
- package/README.md +355 -140
- package/bin/completion.sh +30 -0
- package/bin/{validate-agent-army.js → validate-al-registry.js} +6 -6
- package/dist/framework-mcp/src/index.js +14 -2
- package/dist/framework-mcp/src/index.js.map +1 -1
- package/dist/framework-mcp/src/resources/index.js +5 -5
- package/dist/framework-mcp/src/resources/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +1 -1
- package/dist/framework-mcp/src/tools/control_plane/locking.js +11 -9
- package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -1
- package/dist/framework-mcp/src/tools/definitions.d.ts +5 -0
- package/dist/framework-mcp/src/tools/definitions.js +116 -241
- package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +4 -4
- package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/read_file.js +1 -1
- package/dist/framework-mcp/src/tools/file_system/replace_text.js +3 -3
- package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +1 -1
- package/dist/framework-mcp/src/tools/file_system/write_file.js +4 -4
- package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/audit_deps.js +1 -1
- package/dist/framework-mcp/src/tools/framework/audit_deps.js.map +1 -1
- package/dist/framework-mcp/src/tools/framework/submit_plan.d.ts +4 -3
- package/dist/framework-mcp/src/tools/framework/submit_plan.js.map +1 -1
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.d.ts +19 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +138 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js.map +1 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.d.ts +8 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +91 -0
- package/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js.map +1 -0
- package/dist/framework-mcp/src/tools/index.d.ts +2 -0
- package/dist/framework-mcp/src/tools/index.js +81 -17
- package/dist/framework-mcp/src/tools/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.d.ts +8 -0
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.js +29 -0
- package/dist/framework-mcp/src/tools/memory/delete_knowledge.js.map +1 -0
- package/dist/framework-mcp/src/tools/memory/read_memory.js +1 -1
- package/dist/framework-mcp/src/tools/memory/read_memory.js.map +1 -1
- package/dist/framework-mcp/src/tools/memory/search_knowledge.d.ts +8 -0
- package/dist/framework-mcp/src/tools/memory/search_knowledge.js +49 -0
- package/dist/framework-mcp/src/tools/memory/search_knowledge.js.map +1 -0
- package/dist/framework-mcp/src/tools/memory/store_knowledge.d.ts +10 -0
- package/dist/framework-mcp/src/tools/memory/store_knowledge.js +31 -0
- package/dist/framework-mcp/src/tools/memory/store_knowledge.js.map +1 -0
- package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +6 -0
- package/dist/framework-mcp/src/tools/messaging/ask_human.js +31 -0
- package/dist/framework-mcp/src/tools/messaging/ask_human.js.map +1 -0
- package/dist/framework-mcp/src/tools/observability/check_ports.js +1 -1
- package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
- package/dist/framework-mcp/src/tools/observability/get_health.js +1 -1
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.d.ts +11 -0
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +166 -0
- package/dist/framework-mcp/src/tools/quality/analyze_code_quality.js.map +1 -0
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.d.ts +11 -0
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +135 -0
- package/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js.map +1 -0
- package/dist/framework-mcp/src/tools/schemas.d.ts +439 -0
- package/dist/framework-mcp/src/tools/schemas.js +183 -0
- package/dist/framework-mcp/src/tools/schemas.js.map +1 -0
- package/dist/framework-mcp/src/tools/search/get_map.js +2 -2
- package/dist/framework-mcp/src/tools/search/get_map.js.map +1 -1
- package/dist/framework-mcp/src/tools/search/grep_search.js +10 -7
- package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
- package/dist/framework-mcp/src/tools/shell/run_command.js +72 -7
- package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
- package/dist/framework-mcp/src/tools/types.d.ts +10 -9
- package/dist/framework-mcp/src/utils/compliance.d.ts +10 -0
- package/dist/framework-mcp/src/utils/compliance.js +102 -41
- package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
- package/dist/framework-mcp/src/utils/fs.d.ts +10 -7
- package/dist/framework-mcp/src/utils/fs.js +10 -7
- package/dist/framework-mcp/src/utils/fs.js.map +1 -1
- package/dist/framework-mcp/src/utils/types.d.ts +8 -0
- package/dist/framework-mcp/src/utils/types.js +4 -0
- package/dist/framework-mcp/src/utils/types.js.map +1 -1
- package/dist/framework-mcp/src/utils/zod-to-mcp.d.ts +10 -0
- package/dist/framework-mcp/src/utils/zod-to-mcp.js +80 -0
- package/dist/framework-mcp/src/utils/zod-to-mcp.js.map +1 -0
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +4 -4
- package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +17 -16
- package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
- package/dist/src/cli/adapters/core.js +2 -1
- package/dist/src/cli/adapters/core.js.map +1 -1
- package/dist/src/cli/adapters/scaffold.js +2 -1
- package/dist/src/cli/adapters/scaffold.js.map +1 -1
- package/dist/src/cli/commands/check.js +17 -17
- package/dist/src/cli/commands/check.js.map +1 -1
- package/dist/src/cli/commands/compliance.d.ts +5 -1
- package/dist/src/cli/commands/compliance.js +34 -42
- package/dist/src/cli/commands/compliance.js.map +1 -1
- package/dist/src/cli/commands/contract.js +6 -5
- package/dist/src/cli/commands/contract.js.map +1 -1
- package/dist/src/cli/commands/coverage.d.ts +1 -0
- package/dist/src/cli/commands/coverage.js +121 -0
- package/dist/src/cli/commands/coverage.js.map +1 -0
- package/dist/src/cli/commands/dashboard.d.ts +1 -1
- package/dist/src/cli/commands/dashboard.js +479 -39
- package/dist/src/cli/commands/dashboard.js.map +1 -1
- package/dist/src/cli/commands/explorer.js +8 -7
- package/dist/src/cli/commands/explorer.js.map +1 -1
- package/dist/src/cli/commands/gateway.d.ts +1 -0
- package/dist/src/cli/commands/gateway.js +172 -0
- package/dist/src/cli/commands/gateway.js.map +1 -0
- package/dist/src/cli/commands/git.js +8 -9
- package/dist/src/cli/commands/git.js.map +1 -1
- package/dist/src/cli/commands/index-codebase.d.ts +4 -0
- package/dist/src/cli/commands/index-codebase.js +52 -0
- package/dist/src/cli/commands/index-codebase.js.map +1 -0
- package/dist/src/cli/commands/init/create-agent.js +3 -3
- package/dist/src/cli/commands/init/create-agent.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-core.d.ts +1 -1
- package/dist/src/cli/commands/init/scaffold-core.js +7 -6
- package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-docs.js +4 -3
- package/dist/src/cli/commands/init/scaffold-docs.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-ops.js +3 -3
- package/dist/src/cli/commands/init/scaffold-ops.js.map +1 -1
- package/dist/src/cli/commands/init/scaffold-standards.js +11 -7
- package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts +2 -0
- package/dist/src/cli/commands/init.js +127 -45
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/knowledge.js +5 -32
- package/dist/src/cli/commands/knowledge.js.map +1 -1
- package/dist/src/cli/commands/lint.js +5 -4
- package/dist/src/cli/commands/lint.js.map +1 -1
- package/dist/src/cli/commands/mcp.d.ts +11 -0
- package/dist/src/cli/commands/mcp.js +130 -0
- package/dist/src/cli/commands/mcp.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +10 -9
- package/dist/src/cli/commands/orchestrate.js +132 -66
- package/dist/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/src/cli/commands/plan.js +16 -14
- package/dist/src/cli/commands/plan.js.map +1 -1
- package/dist/src/cli/commands/quickstart.d.ts +9 -0
- package/dist/src/cli/commands/quickstart.js +72 -0
- package/dist/src/cli/commands/quickstart.js.map +1 -0
- package/dist/src/cli/commands/script.js +6 -5
- package/dist/src/cli/commands/script.js.map +1 -1
- package/dist/src/cli/commands/security.js +5 -8
- package/dist/src/cli/commands/security.js.map +1 -1
- package/dist/src/cli/commands/status.js +23 -19
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/trace.d.ts +2 -0
- package/dist/src/cli/commands/trace.js +59 -61
- package/dist/src/cli/commands/trace.js.map +1 -1
- package/dist/src/cli/index.js +236 -294
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/platforms/core.d.ts +12 -0
- package/dist/src/cli/platforms/core.js +73 -0
- package/dist/src/cli/platforms/core.js.map +1 -0
- package/dist/src/cli/platforms/index.d.ts +5 -0
- package/dist/src/cli/platforms/index.js +6 -0
- package/dist/src/cli/platforms/index.js.map +1 -0
- package/dist/src/cli/platforms/paths.d.ts +15 -0
- package/dist/src/cli/platforms/paths.js +102 -0
- package/dist/src/cli/platforms/paths.js.map +1 -0
- package/dist/src/cli/platforms/scaffold.d.ts +2 -0
- package/dist/src/cli/platforms/scaffold.js +73 -0
- package/dist/src/cli/platforms/scaffold.js.map +1 -0
- package/dist/src/cli/platforms/utils.d.ts +4 -0
- package/dist/src/cli/platforms/utils.js +76 -0
- package/dist/src/cli/platforms/utils.js.map +1 -0
- package/dist/src/cli/shims.js +5 -5
- package/dist/src/cli/utils/claude.js +2 -1
- package/dist/src/cli/utils/claude.js.map +1 -1
- package/dist/src/cli/utils/compliance.d.ts +10 -9
- package/dist/src/cli/utils/compliance.js +10 -171
- package/dist/src/cli/utils/compliance.js.map +1 -1
- package/dist/src/cli/utils/fs.d.ts +3 -3
- package/dist/src/cli/utils/fs.js +8 -7
- package/dist/src/cli/utils/fs.js.map +1 -1
- package/dist/src/cli/utils/i18n.d.ts +5 -0
- package/dist/src/cli/utils/i18n.js +5 -0
- package/dist/src/cli/utils/i18n.js.map +1 -1
- package/dist/src/cli/utils/memory.js +9 -6
- package/dist/src/cli/utils/memory.js.map +1 -1
- package/dist/src/cli/utils/pkg.js +8 -7
- package/dist/src/cli/utils/pkg.js.map +1 -1
- package/dist/src/cli/utils/schemas.d.ts +4 -4
- package/dist/src/cli/utils/ui.d.ts +23 -0
- package/dist/src/cli/utils/ui.js +42 -0
- package/dist/src/cli/utils/ui.js.map +1 -1
- package/dist/src/contracts/tasks.d.ts +4 -4
- package/dist/src/dashboard/src/hooks/useApi.d.ts +18 -0
- package/dist/src/dashboard/src/hooks/useApi.js +47 -0
- package/dist/src/dashboard/src/hooks/useApi.js.map +1 -0
- package/dist/src/dashboard/src/hooks/useSSE.d.ts +12 -0
- package/dist/src/dashboard/src/hooks/useSSE.js +60 -0
- package/dist/src/dashboard/src/hooks/useSSE.js.map +1 -0
- package/dist/src/modules/adapters/shared.js +3 -3
- package/dist/src/modules/adapters/shared.js.map +1 -1
- package/dist/src/modules/agents/definitions.d.ts +5 -13
- package/dist/src/modules/agents/definitions.js +179 -78
- package/dist/src/modules/agents/definitions.js.map +1 -1
- package/dist/src/modules/agents/registry/analyst.js +2 -1
- package/dist/src/modules/agents/registry/analyst.js.map +1 -1
- package/dist/src/modules/agents/registry/architect.js +1 -0
- package/dist/src/modules/agents/registry/architect.js.map +1 -1
- package/dist/src/modules/agents/registry/backend.js +8 -6
- package/dist/src/modules/agents/registry/backend.js.map +1 -1
- package/dist/src/modules/agents/registry/database.js.map +1 -1
- package/dist/src/modules/agents/registry/devops.js.map +1 -1
- package/dist/src/modules/agents/registry/explorer.js +2 -0
- package/dist/src/modules/agents/registry/explorer.js.map +1 -1
- package/dist/src/modules/agents/registry/frontend.js +8 -6
- package/dist/src/modules/agents/registry/frontend.js.map +1 -1
- package/dist/src/modules/agents/registry/git.js.map +1 -1
- package/dist/src/modules/agents/registry/manager.js +11 -4
- package/dist/src/modules/agents/registry/manager.js.map +1 -1
- package/dist/src/modules/agents/registry/mobile.js +7 -5
- package/dist/src/modules/agents/registry/mobile.js.map +1 -1
- package/dist/src/modules/agents/registry/native.js +7 -5
- package/dist/src/modules/agents/registry/native.js.map +1 -1
- package/dist/src/modules/agents/registry/quality.js +11 -8
- package/dist/src/modules/agents/registry/quality.js.map +1 -1
- package/dist/src/modules/agents/registry/security.js.map +1 -1
- package/dist/src/modules/contracts/api.d.ts +178 -0
- package/dist/src/modules/contracts/api.js +56 -0
- package/dist/src/modules/contracts/api.js.map +1 -0
- package/dist/src/modules/contracts/index.d.ts +5 -0
- package/dist/src/modules/contracts/index.js +6 -0
- package/dist/src/modules/contracts/index.js.map +1 -0
- package/dist/src/modules/engines/agent-executor.d.ts +50 -0
- package/dist/src/modules/engines/agent-executor.js +188 -0
- package/dist/src/modules/engines/agent-executor.js.map +1 -0
- package/dist/src/modules/engines/health-engine.d.ts +7 -1
- package/dist/src/modules/engines/health-engine.js +85 -8
- package/dist/src/modules/engines/health-engine.js.map +1 -1
- package/dist/src/modules/engines/planning-engine.d.ts +1 -1
- package/dist/src/modules/engines/planning-engine.js +5 -4
- package/dist/src/modules/engines/planning-engine.js.map +1 -1
- package/dist/src/modules/engines/quality-gate.d.ts +23 -0
- package/dist/src/modules/engines/quality-gate.js +85 -0
- package/dist/src/modules/engines/quality-gate.js.map +1 -0
- package/dist/src/modules/engines/risk-engine.js +6 -6
- package/dist/src/modules/engines/risk-engine.js.map +1 -1
- package/dist/src/modules/engines/routing-engine.d.ts +59 -1
- package/dist/src/modules/engines/routing-engine.js +353 -25
- package/dist/src/modules/engines/routing-engine.js.map +1 -1
- package/dist/src/modules/engines/types.d.ts +7 -3
- package/dist/src/modules/gateway/circuit-breaker.d.ts +40 -0
- package/dist/src/modules/gateway/circuit-breaker.js +163 -0
- package/dist/src/modules/gateway/circuit-breaker.js.map +1 -0
- package/dist/src/modules/gateway/cost-tracker.d.ts +55 -0
- package/dist/src/modules/gateway/cost-tracker.js +127 -0
- package/dist/src/modules/gateway/cost-tracker.js.map +1 -0
- package/dist/src/modules/gateway/gateway.d.ts +68 -0
- package/dist/src/modules/gateway/gateway.js +235 -0
- package/dist/src/modules/gateway/gateway.js.map +1 -0
- package/dist/src/modules/gateway/index.d.ts +19 -0
- package/dist/src/modules/gateway/index.js +19 -0
- package/dist/src/modules/gateway/index.js.map +1 -0
- package/dist/src/modules/gateway/load-balancer.d.ts +86 -0
- package/dist/src/modules/gateway/load-balancer.js +230 -0
- package/dist/src/modules/gateway/load-balancer.js.map +1 -0
- package/dist/src/modules/gateway/providers/anthropic.d.ts +14 -0
- package/dist/src/modules/gateway/providers/anthropic.js +169 -0
- package/dist/src/modules/gateway/providers/anthropic.js.map +1 -0
- package/dist/src/modules/gateway/providers/base.d.ts +38 -0
- package/dist/src/modules/gateway/providers/base.js +42 -0
- package/dist/src/modules/gateway/providers/base.js.map +1 -0
- package/dist/src/modules/gateway/providers/google.d.ts +18 -0
- package/dist/src/modules/gateway/providers/google.js +176 -0
- package/dist/src/modules/gateway/providers/google.js.map +1 -0
- package/dist/src/modules/gateway/providers/grok.d.ts +14 -0
- package/dist/src/modules/gateway/providers/grok.js +166 -0
- package/dist/src/modules/gateway/providers/grok.js.map +1 -0
- package/dist/src/modules/gateway/providers/index.d.ts +21 -0
- package/dist/src/modules/gateway/providers/index.js +38 -0
- package/dist/src/modules/gateway/providers/index.js.map +1 -0
- package/dist/src/modules/gateway/providers/ollama.d.ts +23 -0
- package/dist/src/modules/gateway/providers/ollama.js +187 -0
- package/dist/src/modules/gateway/providers/ollama.js.map +1 -0
- package/dist/src/modules/gateway/providers/openai.d.ts +14 -0
- package/dist/src/modules/gateway/providers/openai.js +170 -0
- package/dist/src/modules/gateway/providers/openai.js.map +1 -0
- package/dist/src/modules/gateway/rate-limiter.d.ts +41 -0
- package/dist/src/modules/gateway/rate-limiter.js +119 -0
- package/dist/src/modules/gateway/rate-limiter.js.map +1 -0
- package/dist/src/modules/gateway/types.d.ts +114 -0
- package/dist/src/modules/gateway/types.js +8 -0
- package/dist/src/modules/gateway/types.js.map +1 -0
- package/dist/src/modules/memory/core.d.ts +42 -0
- package/dist/src/modules/memory/core.js +100 -0
- package/dist/src/modules/memory/core.js.map +1 -0
- package/dist/src/modules/memory/embedding.d.ts +28 -0
- package/dist/src/modules/memory/embedding.js +131 -0
- package/dist/src/modules/memory/embedding.js.map +1 -0
- package/dist/src/modules/memory/types.d.ts +18 -0
- package/dist/src/modules/memory/types.js +2 -0
- package/dist/src/modules/memory/types.js.map +1 -0
- package/dist/src/modules/memory/vector-store.d.ts +13 -0
- package/dist/src/modules/memory/vector-store.js +75 -0
- package/dist/src/modules/memory/vector-store.js.map +1 -0
- package/dist/src/modules/providers/definitions.d.ts +9 -0
- package/dist/src/modules/providers/definitions.js +141 -0
- package/dist/src/modules/providers/definitions.js.map +1 -0
- package/dist/src/modules/providers/registry.d.ts +12 -0
- package/dist/src/modules/providers/registry.js +19 -0
- package/dist/src/modules/providers/registry.js.map +1 -0
- package/dist/src/modules/providers/shared.d.ts +1 -0
- package/dist/src/modules/providers/shared.js +105 -0
- package/dist/src/modules/providers/shared.js.map +1 -0
- package/dist/src/modules/providers/types.d.ts +14 -0
- package/dist/src/modules/providers/types.js +2 -0
- package/dist/src/modules/providers/types.js.map +1 -0
- package/dist/src/modules/skills/adapter-skills.d.ts +68 -0
- package/dist/src/modules/skills/adapter-skills.js +450 -0
- package/dist/src/modules/skills/adapter-skills.js.map +1 -0
- package/dist/src/shared/audit.d.ts +105 -0
- package/dist/src/shared/audit.js +220 -0
- package/dist/src/shared/audit.js.map +1 -0
- package/dist/src/shared/constants.d.ts +11 -11
- package/dist/src/shared/constants.js +3 -3
- package/dist/src/shared/constants.js.map +1 -1
- package/dist/src/shared/fs.js +4 -2
- package/dist/src/shared/fs.js.map +1 -1
- package/dist/src/shared/lock.d.ts +82 -0
- package/dist/src/shared/lock.js +160 -0
- package/dist/src/shared/lock.js.map +1 -0
- package/dist/src/shared/logger.d.ts +2 -0
- package/dist/src/shared/logger.js +15 -5
- package/dist/src/shared/logger.js.map +1 -1
- package/dist/src/shared/pii.d.ts +37 -0
- package/dist/src/shared/pii.js +122 -0
- package/dist/src/shared/pii.js.map +1 -0
- package/dist/src/shared/retention.d.ts +63 -0
- package/dist/src/shared/retention.js +171 -0
- package/dist/src/shared/retention.js.map +1 -0
- package/dist/src/shared/storage.d.ts +13 -11
- package/dist/src/shared/storage.js +18 -14
- package/dist/src/shared/storage.js.map +1 -1
- package/dist/src/shared/string.d.ts +1 -0
- package/dist/src/shared/string.js +30 -0
- package/dist/src/shared/string.js.map +1 -0
- package/dist/src/shared/types.d.ts +8 -0
- package/dist/src/shared/types.js +4 -0
- package/dist/src/shared/types.js.map +1 -1
- package/dist/tests/adapter.test.js +3 -2
- package/dist/tests/adapter.test.js.map +1 -1
- package/dist/tests/adapters/paths.test.js +4 -4
- package/dist/tests/adapters/paths.test.js.map +1 -1
- package/dist/tests/cli/commands/check.test.d.ts +1 -0
- package/dist/tests/cli/commands/check.test.js +9 -0
- package/dist/tests/cli/commands/check.test.js.map +1 -0
- package/dist/tests/cli/commands/coverage.test.d.ts +1 -0
- package/dist/tests/cli/commands/coverage.test.js +9 -0
- package/dist/tests/cli/commands/coverage.test.js.map +1 -0
- package/dist/tests/cli/commands/dashboard-coverage.test.d.ts +1 -0
- package/dist/tests/cli/commands/dashboard-coverage.test.js +88 -0
- package/dist/tests/cli/commands/dashboard-coverage.test.js.map +1 -0
- package/dist/tests/cli/commands/exports.test.d.ts +1 -0
- package/dist/tests/cli/commands/exports.test.js +61 -0
- package/dist/tests/cli/commands/exports.test.js.map +1 -0
- package/dist/tests/cli/commands/lint.test.d.ts +1 -0
- package/dist/tests/cli/commands/lint.test.js +9 -0
- package/dist/tests/cli/commands/lint.test.js.map +1 -0
- package/dist/tests/cli/init/adapter_init.test.js +4 -5
- package/dist/tests/cli/init/adapter_init.test.js.map +1 -1
- package/dist/tests/cli/init/unified_init.test.js +5 -7
- package/dist/tests/cli/init/unified_init.test.js.map +1 -1
- package/dist/tests/core-memory.test.d.ts +1 -0
- package/dist/tests/core-memory.test.js +78 -0
- package/dist/tests/core-memory.test.js.map +1 -0
- package/dist/tests/dashboard.test.d.ts +1 -0
- package/dist/tests/dashboard.test.js +116 -0
- package/dist/tests/dashboard.test.js.map +1 -0
- package/dist/tests/fs-utils.test.js +5 -5
- package/dist/tests/fs-utils.test.js.map +1 -1
- package/dist/tests/integration/agent_flow.test.js +24 -10
- package/dist/tests/integration/agent_flow.test.js.map +1 -1
- package/dist/tests/modules/adapters/adapters.test.js +2 -2
- package/dist/tests/modules/adapters/adapters.test.js.map +1 -1
- package/dist/tests/modules/contracts/contracts.test.d.ts +1 -0
- package/dist/tests/modules/contracts/contracts.test.js +73 -0
- package/dist/tests/modules/contracts/contracts.test.js.map +1 -0
- package/dist/tests/modules/engines/agent-executor.test.d.ts +1 -0
- package/dist/tests/modules/engines/agent-executor.test.js +61 -0
- package/dist/tests/modules/engines/agent-executor.test.js.map +1 -0
- package/dist/tests/modules/engines/evaluation-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/evaluation-engine.test.js +45 -0
- package/dist/tests/modules/engines/evaluation-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/health-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/health-engine.test.js +56 -0
- package/dist/tests/modules/engines/health-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/planning-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/planning-engine.test.js +75 -0
- package/dist/tests/modules/engines/planning-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/risk-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/risk-engine.test.js +61 -0
- package/dist/tests/modules/engines/risk-engine.test.js.map +1 -0
- package/dist/tests/modules/engines/routing-engine.test.d.ts +1 -0
- package/dist/tests/modules/engines/routing-engine.test.js +56 -0
- package/dist/tests/modules/engines/routing-engine.test.js.map +1 -0
- package/dist/tests/modules/gateway/circuit-breaker.test.d.ts +1 -0
- package/dist/tests/modules/gateway/circuit-breaker.test.js +124 -0
- package/dist/tests/modules/gateway/circuit-breaker.test.js.map +1 -0
- package/dist/tests/modules/gateway/cost-tracker.test.d.ts +1 -0
- package/dist/tests/modules/gateway/cost-tracker.test.js +74 -0
- package/dist/tests/modules/gateway/cost-tracker.test.js.map +1 -0
- package/dist/tests/modules/gateway/load-balancer.test.d.ts +1 -0
- package/dist/tests/modules/gateway/load-balancer.test.js +70 -0
- package/dist/tests/modules/gateway/load-balancer.test.js.map +1 -0
- package/dist/tests/modules/gateway/rate-limiter.test.d.ts +1 -0
- package/dist/tests/modules/gateway/rate-limiter.test.js +62 -0
- package/dist/tests/modules/gateway/rate-limiter.test.js.map +1 -0
- package/dist/tests/modules/memory/vector-store.test.d.ts +1 -0
- package/dist/tests/modules/memory/vector-store.test.js +109 -0
- package/dist/tests/modules/memory/vector-store.test.js.map +1 -0
- package/dist/tests/orchestrator-dependencies.test.js +40 -22
- package/dist/tests/orchestrator-dependencies.test.js.map +1 -1
- package/dist/tests/planning-engine.test.js +9 -8
- package/dist/tests/planning-engine.test.js.map +1 -1
- package/dist/tests/risk-engine.test.d.ts +1 -0
- package/dist/tests/risk-engine.test.js +44 -0
- package/dist/tests/risk-engine.test.js.map +1 -0
- package/dist/tests/shared/audit.test.d.ts +1 -0
- package/dist/tests/shared/audit.test.js +53 -0
- package/dist/tests/shared/audit.test.js.map +1 -0
- package/dist/tests/status-cost.test.js +15 -24
- package/dist/tests/status-cost.test.js.map +1 -1
- package/dist/tests/status.test.js +16 -17
- package/dist/tests/status.test.js.map +1 -1
- package/dist/tests/storage-operations.test.d.ts +1 -0
- package/dist/tests/storage-operations.test.js +116 -0
- package/dist/tests/storage-operations.test.js.map +1 -0
- package/dist/tests/trace-replay.test.js +34 -40
- package/dist/tests/trace-replay.test.js.map +1 -1
- package/dist/ui/assets/index-B-d2ejS8.js +519 -0
- package/dist/ui/assets/index-CyXywq5G.css +1 -0
- package/dist/ui/index.html +2 -2
- package/dist/vitest.config.js +5 -5
- package/dist/vitest.config.js.map +1 -1
- package/framework-mcp/README.md +339 -25
- package/framework-mcp/dist/dashboard/assets/index-BAPGLiWE.js +267 -0
- package/framework-mcp/dist/dashboard/index.html +15 -0
- package/framework-mcp/dist/framework-mcp/src/constants.js +64 -0
- package/framework-mcp/dist/framework-mcp/src/index.js +156 -0
- package/framework-mcp/dist/framework-mcp/src/resources/index.js +58 -0
- package/framework-mcp/dist/framework-mcp/src/tools/control_plane/locking.js +84 -0
- package/framework-mcp/dist/framework-mcp/src/tools/control_plane/registry.js +35 -0
- package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +197 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +64 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/patch_file.js +34 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/read_file.js +51 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/replace_text.js +50 -0
- package/framework-mcp/dist/framework-mcp/src/tools/file_system/write_file.js +55 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/audit_deps.js +41 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/get_status.js +5 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/orchestrate.js +5 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/run_tests.js +27 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/submit_plan.js +13 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/update_contract_hash.js +5 -0
- package/framework-mcp/dist/framework-mcp/src/tools/framework/update_memory.js +8 -0
- package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_query.js +137 -0
- package/framework-mcp/dist/framework-mcp/src/tools/gateway/llm_gateway_status.js +90 -0
- package/framework-mcp/dist/framework-mcp/src/tools/index.js +126 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/delete_knowledge.js +28 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/get_insights.js +22 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/read_memory.js +28 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/search_knowledge.js +48 -0
- package/framework-mcp/dist/framework-mcp/src/tools/memory/store_knowledge.js +30 -0
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +30 -0
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/log_action.js +22 -0
- package/framework-mcp/dist/framework-mcp/src/tools/messaging/send_message.js +94 -0
- package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +26 -0
- package/framework-mcp/dist/framework-mcp/src/tools/observability/get_health.js +19 -0
- package/framework-mcp/dist/framework-mcp/src/tools/quality/analyze_code_quality.js +165 -0
- package/framework-mcp/dist/framework-mcp/src/tools/quality/check_architecture_compliance.js +134 -0
- package/framework-mcp/dist/framework-mcp/src/tools/quality/check_lint.js +30 -0
- package/framework-mcp/dist/framework-mcp/src/tools/schemas.js +182 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/get_gaps.js +48 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/get_map.js +43 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/grep_search.js +78 -0
- package/framework-mcp/dist/framework-mcp/src/tools/search/list_dir.js +28 -0
- package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +121 -0
- package/framework-mcp/dist/framework-mcp/src/tools/types.js +1 -0
- package/framework-mcp/dist/framework-mcp/src/utils/cli.js +59 -0
- package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +292 -0
- package/framework-mcp/dist/framework-mcp/src/utils/errors.js +68 -0
- package/framework-mcp/dist/framework-mcp/src/utils/fs.js +47 -0
- package/framework-mcp/dist/framework-mcp/src/utils/memory.js +74 -0
- package/framework-mcp/dist/framework-mcp/src/utils/metrics.js +56 -0
- package/framework-mcp/dist/framework-mcp/src/utils/permissions.js +71 -0
- package/framework-mcp/dist/framework-mcp/src/utils/security.js +60 -0
- package/framework-mcp/dist/framework-mcp/src/utils/storage.js +207 -0
- package/framework-mcp/dist/framework-mcp/src/utils/types.js +16 -0
- package/framework-mcp/dist/framework-mcp/src/utils/zod-to-mcp.js +79 -0
- package/framework-mcp/dist/index.js +14 -2
- package/framework-mcp/dist/src/cli/utils/memory.js +279 -0
- package/framework-mcp/dist/src/cli/utils/time.js +27 -0
- package/framework-mcp/dist/src/cli/utils/ui.js +100 -0
- package/framework-mcp/dist/src/modules/memory/core.js +99 -0
- package/framework-mcp/dist/src/modules/memory/embedding.js +130 -0
- package/framework-mcp/dist/src/modules/memory/types.js +1 -0
- package/framework-mcp/dist/src/modules/memory/vector-store.js +74 -0
- package/framework-mcp/dist/src/shared/constants.js +187 -0
- package/framework-mcp/dist/src/shared/fs.js +53 -0
- package/framework-mcp/dist/src/shared/logger.js +126 -0
- package/framework-mcp/dist/src/shared/pii.js +121 -0
- package/framework-mcp/dist/src/shared/storage.js +211 -0
- package/framework-mcp/dist/src/shared/types.js +16 -0
- package/framework-mcp/dist/tools/definitions.js +79 -247
- package/framework-mcp/dist/tools/index.js +37 -0
- package/framework-mcp/dist/tools/schemas.js +133 -0
- package/framework-mcp/dist/utils/types.js +4 -0
- package/framework-mcp/dist/utils/zod-to-mcp.js +77 -0
- package/framework-mcp/package.json +2 -2
- package/mcp.json +5 -4
- package/package.json +19 -17
- package/templates/full/ATABEY_FULL.md +515 -0
- package/templates/standards/crud-governance.md +1 -1
- package/templates/standards/logging-and-secrets.md +1 -1
- package/templates/standards/performance-standards.md +2 -2
- package/templates/standards/quality-standards.md +1 -1
- package/dist/ui/assets/index-Bkt7APzu.css +0 -1
- package/dist/ui/assets/index-CeX-06mI.js +0 -49
|
@@ -15,27 +15,27 @@ export declare const HermesMessageSchema: z.ZodObject<{
|
|
|
15
15
|
dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
16
|
}, "strip", z.ZodTypeAny, {
|
|
17
17
|
traceId: string;
|
|
18
|
-
status: "PENDING" | "
|
|
19
|
-
timestamp: string;
|
|
18
|
+
status: "PENDING" | "APPROVED" | "PROCESSED" | "WAITING";
|
|
20
19
|
from: string;
|
|
21
20
|
to: string;
|
|
22
|
-
|
|
21
|
+
timestamp: string;
|
|
22
|
+
category: "ALERT" | "DELEGATION" | "ACTION" | "SUBTASK" | "REPLY";
|
|
23
23
|
content: string;
|
|
24
|
+
priority?: "NORMAL" | "HIGH" | "LOW" | undefined;
|
|
24
25
|
parentId?: string | undefined;
|
|
25
|
-
priority?: "NORMAL" | "LOW" | "HIGH" | undefined;
|
|
26
26
|
action?: string | undefined;
|
|
27
27
|
requiresApproval?: boolean | undefined;
|
|
28
28
|
dependencies?: string[] | undefined;
|
|
29
29
|
}, {
|
|
30
30
|
traceId: string;
|
|
31
|
-
status: "PENDING" | "
|
|
32
|
-
timestamp: string;
|
|
31
|
+
status: "PENDING" | "APPROVED" | "PROCESSED" | "WAITING";
|
|
33
32
|
from: string;
|
|
34
33
|
to: string;
|
|
35
|
-
|
|
34
|
+
timestamp: string;
|
|
35
|
+
category: "ALERT" | "DELEGATION" | "ACTION" | "SUBTASK" | "REPLY";
|
|
36
36
|
content: string;
|
|
37
|
+
priority?: "NORMAL" | "HIGH" | "LOW" | undefined;
|
|
37
38
|
parentId?: string | undefined;
|
|
38
|
-
priority?: "NORMAL" | "LOW" | "HIGH" | undefined;
|
|
39
39
|
action?: string | undefined;
|
|
40
40
|
requiresApproval?: boolean | undefined;
|
|
41
41
|
dependencies?: string[] | undefined;
|
|
@@ -45,7 +45,8 @@ export declare function orchestrateCommand(options?: {
|
|
|
45
45
|
maxIterations?: number;
|
|
46
46
|
}): Promise<void>;
|
|
47
47
|
/**
|
|
48
|
-
* Standard
|
|
48
|
+
* Standard for sending messages between agents.
|
|
49
|
+
* Agents use this function to communicate via Hermes message queue.
|
|
49
50
|
*/
|
|
50
51
|
export declare function sendMessage(args: {
|
|
51
52
|
from: string;
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import path from "path";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
+
import { AgentExecutor } from "../../modules/engines/agent-executor.js";
|
|
4
|
+
import { RoutingEngine } from "../../modules/engines/routing-engine.js";
|
|
3
5
|
import { logger } from "../../shared/logger.js";
|
|
4
|
-
import { sleep } from "../utils/time.js";
|
|
5
6
|
import { Storage } from "../../shared/storage.js";
|
|
6
|
-
import {
|
|
7
|
+
import { stripMarkdownCodeBlocks } from "../../shared/string.js";
|
|
8
|
+
import { asAgentID, asTaskID, asTraceID } from "../../shared/types.js";
|
|
9
|
+
import { acquireMemoryLock, getFrameworkDir, releaseMemoryLock } from "../utils/memory.js";
|
|
10
|
+
import { sleep } from "../utils/time.js";
|
|
11
|
+
import { UI } from "../utils/ui.js";
|
|
7
12
|
export const HermesMessageSchema = z.object({
|
|
8
13
|
timestamp: z.string(),
|
|
9
14
|
from: z.string(),
|
|
10
15
|
to: z.string(),
|
|
11
16
|
category: z.enum(["ACTION", "DELEGATION", "SUBTASK", "REPLY", "ALERT"]),
|
|
12
|
-
content: z.string(),
|
|
17
|
+
content: z.string(),
|
|
13
18
|
traceId: z.string(),
|
|
14
19
|
parentId: z.string().optional(),
|
|
15
20
|
status: z.enum(["PENDING", "PROCESSED", "WAITING", "APPROVED"]),
|
|
@@ -20,88 +25,148 @@ export const HermesMessageSchema = z.object({
|
|
|
20
25
|
});
|
|
21
26
|
let isLooping = false;
|
|
22
27
|
export async function orchestrateCommand(options) {
|
|
23
|
-
|
|
28
|
+
const readline = await import("readline");
|
|
29
|
+
readline.cursorTo(process.stdout, 0, 0);
|
|
30
|
+
readline.clearScreenDown(process.stdout);
|
|
24
31
|
const maxIterations = options?.maxIterations;
|
|
25
32
|
let iterationCount = 0;
|
|
26
33
|
isLooping = true;
|
|
27
34
|
while (isLooping) {
|
|
28
35
|
try {
|
|
29
|
-
// 1.
|
|
36
|
+
// 1. Agent timeout check (30 min)
|
|
30
37
|
const agents = Storage.getAllAgents();
|
|
31
38
|
for (const agent of agents) {
|
|
32
39
|
if (agent.state === "EXECUTING" && agent.last_updated) {
|
|
33
40
|
const lastUpdatedTime = Date.parse(agent.last_updated);
|
|
34
41
|
if (!isNaN(lastUpdatedTime) && Date.now() - lastUpdatedTime > 30 * 60 * 1000) {
|
|
35
|
-
const displayAgent = `@${agent.name}`;
|
|
36
|
-
UI.error(`[WARN] Agent ${displayAgent} has TIMED OUT. Triggering Self-Healing...`);
|
|
37
42
|
Storage.updateAgentStatus(agent.name, "READY", "Idle (Recovered from Timeout)");
|
|
38
|
-
UI.success(`[OK] Hermes Self-Healing: ${displayAgent} reset to READY state.`);
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
|
-
// 2.
|
|
46
|
+
// 2. Get pending messages
|
|
43
47
|
const pendingMessages = Storage.getPendingMessages() || [];
|
|
48
|
+
// 3. Dashboard render
|
|
49
|
+
const traceId = Storage.getMetadata("traceId") || "N/A";
|
|
50
|
+
const phase = Storage.getMetadata("phase") || "N/A";
|
|
51
|
+
const logs = Storage.getLogs();
|
|
52
|
+
UI.renderDashboard({
|
|
53
|
+
traceId,
|
|
54
|
+
phase,
|
|
55
|
+
agents: Storage.getAllAgents().map(a => ({ name: a.name, state: a.state, task: a.task })),
|
|
56
|
+
pendingCount: pendingMessages.length,
|
|
57
|
+
logs: logs.map(l => ({ timestamp: l.timestamp, agent: l.agent, action: l.action, summary: l.summary }))
|
|
58
|
+
});
|
|
44
59
|
if (pendingMessages.length > 0) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
// Acquire memory lock before processing messages
|
|
61
|
+
const lockPath = path.join(getFrameworkDir(), "messages", ".lock");
|
|
62
|
+
let lockAcquired = false;
|
|
63
|
+
for (let lockAttempt = 0; lockAttempt < 3; lockAttempt++) {
|
|
64
|
+
if (acquireMemoryLock(lockPath)) {
|
|
65
|
+
lockAcquired = true;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
await sleep(500);
|
|
69
|
+
}
|
|
70
|
+
if (!lockAcquired) {
|
|
71
|
+
UI.warning("Could not acquire memory lock, assuming stale lock and proceeding...");
|
|
72
|
+
releaseMemoryLock(lockPath);
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
for (const msg of pendingMessages) {
|
|
76
|
+
// Dependency Check
|
|
77
|
+
if (msg.parentId) {
|
|
78
|
+
const tasks = Storage.getTasks(asTraceID(msg.traceId));
|
|
79
|
+
const task = tasks.find(t => t.id === msg.parentId);
|
|
80
|
+
if (task && task.dependencies.length > 0) {
|
|
81
|
+
const incompleteDeps = tasks.filter(t => task.dependencies.includes(t.id) && t.status !== "COMPLETED");
|
|
82
|
+
if (incompleteDeps.length > 0) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Risk Engine check
|
|
88
|
+
let riskFlag = false;
|
|
89
|
+
try {
|
|
90
|
+
const { RiskEngine } = await import("../../modules/engines/risk-engine.js");
|
|
91
|
+
const assessment = RiskEngine.assessTaskRisk(msg.content);
|
|
92
|
+
if (assessment.requiresApproval) {
|
|
93
|
+
riskFlag = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
logger.debug("Risk engine not available, continuing without risk assessment", err);
|
|
98
|
+
}
|
|
99
|
+
// If human approval is required
|
|
100
|
+
if ((msg.category === "ACTION" || msg.category === "ALERT" || riskFlag) && (msg.requiresApproval || riskFlag) && msg.status !== "APPROVED") {
|
|
101
|
+
readline.cursorTo(process.stdout, 0, process.stdout.rows ? process.stdout.rows - 2 : 20);
|
|
102
|
+
readline.clearScreenDown(process.stdout);
|
|
103
|
+
UI.warning(`\n[WARN] [APPROVAL REQUEST] Trace ${msg.traceId} requires approval:`);
|
|
104
|
+
UI.warning(` Description: ${msg.content}`);
|
|
105
|
+
const approved = await askUserApproval(msg.traceId, msg.content);
|
|
106
|
+
if (approved && msg.id !== undefined) {
|
|
107
|
+
Storage.updateMessageStatus(msg.id, "APPROVED");
|
|
108
|
+
Storage.getDB().exec(`INSERT INTO logs (agent, action, summary) VALUES ('@human', 'APPROVED', 'Trace ${msg.traceId} approved')`);
|
|
109
|
+
}
|
|
110
|
+
else if (msg.id !== undefined) {
|
|
111
|
+
Storage.updateMessageStatus(msg.id, "PROCESSED");
|
|
112
|
+
Storage.getDB().exec(`INSERT INTO logs (agent, action, summary) VALUES ('@human', 'REJECTED', 'Trace ${msg.traceId} rejected')`);
|
|
55
113
|
continue;
|
|
56
114
|
}
|
|
57
115
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
116
|
+
// Target agent: skip RoutingEngine if @manager explicitly specified
|
|
117
|
+
const agentName = (msg.category === "DELEGATION" || msg.category === "SUBTASK") && String(msg.to) === "@manager"
|
|
118
|
+
? (() => {
|
|
119
|
+
try {
|
|
120
|
+
const r = RoutingEngine.resolveWithDetails(msg.content);
|
|
121
|
+
logger.debug(`RoutingEngine: ${msg.content} → ${r.agent} (score: ${r.score})`);
|
|
122
|
+
return r.agent;
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return String(msg.to);
|
|
126
|
+
}
|
|
127
|
+
})()
|
|
128
|
+
: String(msg.to);
|
|
129
|
+
// Extract task description
|
|
130
|
+
let taskDescription = msg.content;
|
|
131
|
+
try {
|
|
132
|
+
const cleanedContent = stripMarkdownCodeBlocks(msg.content);
|
|
133
|
+
const payload = JSON.parse(cleanedContent);
|
|
134
|
+
taskDescription = payload.task || msg.content;
|
|
67
135
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if ((msg.category === "ACTION" || msg.category === "ALERT" || riskFlag) && (msg.requiresApproval || riskFlag) && msg.status !== "APPROVED") {
|
|
71
|
-
UI.warning(`\n[WARN] [APPROVAL REQUEST] Trace ${msg.traceId} requires approval:`);
|
|
72
|
-
UI.warning(` Description: ${msg.content}`);
|
|
73
|
-
const approved = await askUserApproval(msg.traceId, msg.content);
|
|
74
|
-
if (approved && msg.id !== undefined) {
|
|
75
|
-
Storage.updateMessageStatus(msg.id, "APPROVED");
|
|
76
|
-
UI.success(`Approved trace: ${msg.traceId}`);
|
|
136
|
+
catch {
|
|
137
|
+
taskDescription = msg.content;
|
|
77
138
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
139
|
+
// Execute the task via AgentExecutor
|
|
140
|
+
UI.agentBox(agentName, `Executing: ${taskDescription.substring(0, 60)}...`);
|
|
141
|
+
const result = await AgentExecutor.execute(taskDescription, msg.traceId);
|
|
142
|
+
if (result.success) {
|
|
143
|
+
UI.success(`${agentName} completed task successfully (${result.attempts} attempt(s))`);
|
|
144
|
+
logger.info(`[ORCHESTRATE] ${agentName} completed: ${taskDescription.substring(0, 80)}`, {
|
|
145
|
+
agent: agentName,
|
|
146
|
+
traceId: msg.traceId,
|
|
147
|
+
attempts: result.attempts,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
UI.error(`${agentName} FAILED after ${result.attempts} attempts`);
|
|
152
|
+
logger.error(`[ORCHESTRATE] ${agentName} failed: ${taskDescription.substring(0, 80)}`, {
|
|
153
|
+
agent: agentName,
|
|
154
|
+
traceId: msg.traceId,
|
|
155
|
+
output: result.output,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (msg.id !== undefined) {
|
|
159
|
+
Storage.updateMessageStatus(msg.id, "PROCESSED");
|
|
81
160
|
}
|
|
82
161
|
}
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const payload = JSON.parse(msg.content);
|
|
91
|
-
taskDescription = payload.task || msg.content;
|
|
92
|
-
}
|
|
93
|
-
catch { /* ... */ }
|
|
94
|
-
Storage.updateAgentStatus(msg.to, targetState, taskDescription);
|
|
95
|
-
if (targetState === "BRIEFED") {
|
|
96
|
-
Storage.updateAgentStatus(msg.to, "EXECUTING", taskDescription);
|
|
97
|
-
}
|
|
98
|
-
if (msg.id !== undefined) {
|
|
99
|
-
Storage.updateMessageStatus(msg.id, "PROCESSED");
|
|
100
|
-
}
|
|
162
|
+
// Markdown sync
|
|
163
|
+
const { syncMarkdownMemory } = await import("../utils/memory.js");
|
|
164
|
+
syncMarkdownMemory();
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
// Always release the lock after processing
|
|
168
|
+
releaseMemoryLock(lockPath);
|
|
101
169
|
}
|
|
102
|
-
// Sync to Markdown for human readability
|
|
103
|
-
const { syncMarkdownMemory } = await import("../utils/memory.js");
|
|
104
|
-
syncMarkdownMemory();
|
|
105
170
|
}
|
|
106
171
|
}
|
|
107
172
|
catch (globalLoopErr) {
|
|
@@ -116,18 +181,19 @@ export async function orchestrateCommand(options) {
|
|
|
116
181
|
}
|
|
117
182
|
}
|
|
118
183
|
/**
|
|
119
|
-
* Standard
|
|
184
|
+
* Standard for sending messages between agents.
|
|
185
|
+
* Agents use this function to communicate via Hermes message queue.
|
|
120
186
|
*/
|
|
121
187
|
export async function sendMessage(args) {
|
|
122
188
|
try {
|
|
123
189
|
const message = {
|
|
124
190
|
timestamp: new Date().toISOString(),
|
|
125
|
-
from: args.from,
|
|
126
|
-
to: args.to,
|
|
191
|
+
from: asAgentID(args.from),
|
|
192
|
+
to: asAgentID(args.to),
|
|
127
193
|
category: args.category,
|
|
128
194
|
content: args.content,
|
|
129
195
|
traceId: asTraceID(args.traceId),
|
|
130
|
-
parentId: args.parentId,
|
|
196
|
+
parentId: args.parentId ? asTaskID(args.parentId) : undefined,
|
|
131
197
|
status: "PENDING",
|
|
132
198
|
priority: args.priority || "NORMAL",
|
|
133
199
|
requiresApproval: args.requiresApproval || false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../src/cli/commands/orchestrate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../src/cli/commands/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
+
import { PlanningEngine } from "../../modules/engines/planning-engine.js";
|
|
4
|
+
import { RoutingEngine } from "../../modules/engines/routing-engine.js";
|
|
5
|
+
import { Storage } from "../../shared/storage.js";
|
|
6
|
+
import { asAgentID, asTaskID, asTraceID } from "../../shared/types.js";
|
|
3
7
|
import { generateULID } from "../utils/time.js";
|
|
4
8
|
import { UI } from "../utils/ui.js";
|
|
5
|
-
import { RoutingEngine } from "../../modules/engines/routing-engine.js";
|
|
6
|
-
import { PlanningEngine } from "../../modules/engines/planning-engine.js";
|
|
7
9
|
import { sendMessage } from "./orchestrate.js";
|
|
8
|
-
import { Storage } from "../../shared/storage.js";
|
|
9
|
-
import { asTraceID } from "../../shared/types.js";
|
|
10
10
|
/**
|
|
11
11
|
* Submits a structured plan (DAG) to the framework.
|
|
12
12
|
*/
|
|
@@ -24,10 +24,10 @@ export async function submitPlanCommand(tasks) {
|
|
|
24
24
|
Storage.setMetadata(`plan_${traceId}`, JSON.stringify(plan));
|
|
25
25
|
for (const task of plan.tasks) {
|
|
26
26
|
const taskData = {
|
|
27
|
-
id: task.id,
|
|
27
|
+
id: asTaskID(task.id),
|
|
28
28
|
traceId,
|
|
29
29
|
description: task.task,
|
|
30
|
-
agent: task.agent,
|
|
30
|
+
agent: asAgentID(task.agent),
|
|
31
31
|
priority: "NORMAL",
|
|
32
32
|
status: "PENDING",
|
|
33
33
|
dependencies: task.dependencies || []
|
|
@@ -57,14 +57,14 @@ export async function planCommand() {
|
|
|
57
57
|
const docsDir = path.join(projectRoot, "docs");
|
|
58
58
|
if (!fs.existsSync(docsDir)) {
|
|
59
59
|
UI.error("Docs directory not found at docs/");
|
|
60
|
-
|
|
60
|
+
UI.info("TIP: Create a docs/ folder with your project requirements in .md files.");
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
63
|
const entries = fs.readdirSync(docsDir, { withFileTypes: true });
|
|
64
64
|
const mdFiles = entries.filter(e => e.isFile() && e.name.endsWith(".md"));
|
|
65
65
|
if (mdFiles.length === 0) {
|
|
66
66
|
UI.warning("No markdown files found in docs/ directory.");
|
|
67
|
-
|
|
67
|
+
UI.info("TIP: Add .md files to docs/ with your project requirements.");
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
70
|
UI.intent("Planning Engine", `Reading ${mdFiles.length} document(s) from docs/...`);
|
|
@@ -73,7 +73,7 @@ export async function planCommand() {
|
|
|
73
73
|
const filePath = path.join(docsDir, file.name);
|
|
74
74
|
const content = fs.readFileSync(filePath, "utf8");
|
|
75
75
|
const traceId = asTraceID(generateULID());
|
|
76
|
-
UI.success(
|
|
76
|
+
UI.success(`[FILE] docs/${file.name} (Trace: ${traceId})`);
|
|
77
77
|
// Extract checklist items and create sequential task chain
|
|
78
78
|
const taskRegex = /- \[ \]\s+(.+)/g;
|
|
79
79
|
let taskMatch;
|
|
@@ -84,14 +84,16 @@ export async function planCommand() {
|
|
|
84
84
|
if (taskText.length >= 3) {
|
|
85
85
|
taskCount++;
|
|
86
86
|
totalTasks++;
|
|
87
|
-
//
|
|
88
|
-
const
|
|
87
|
+
// Smart routing via RoutingEngine
|
|
88
|
+
const routingResult = RoutingEngine.resolveWithDetails(taskText);
|
|
89
|
+
const targetAgent = routingResult.agent;
|
|
90
|
+
process.stdout.write(` [AGENT] ${targetAgent} (confidence: ${routingResult.confidence}, score: ${routingResult.score})\n`);
|
|
89
91
|
const subTaskId = generateULID();
|
|
90
92
|
const taskData = {
|
|
91
|
-
id: subTaskId,
|
|
93
|
+
id: asTaskID(subTaskId),
|
|
92
94
|
traceId,
|
|
93
95
|
description: taskText,
|
|
94
|
-
agent: targetAgent,
|
|
96
|
+
agent: asAgentID(targetAgent),
|
|
95
97
|
priority: "NORMAL",
|
|
96
98
|
status: "PENDING",
|
|
97
99
|
dependencies: lastTaskId ? [lastTaskId] : []
|
|
@@ -111,7 +113,7 @@ export async function planCommand() {
|
|
|
111
113
|
lastTaskId = subTaskId;
|
|
112
114
|
}
|
|
113
115
|
}
|
|
114
|
-
|
|
116
|
+
process.stdout.write(` [LIST] Actionable tasks detected: ${taskCount}\n`);
|
|
115
117
|
}
|
|
116
118
|
UI.success(`\n[OK] Planning complete: ${totalTasks} tasks identified.`);
|
|
117
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [START] Atabey Quickstart — creates a working example project in seconds
|
|
3
|
+
*
|
|
4
|
+
* Sets up a ready-to-use demo project for the user:
|
|
5
|
+
* - docs/ folder with example tasks
|
|
6
|
+
* - Sample todo list
|
|
7
|
+
* - Ready-to-execute plan
|
|
8
|
+
*/
|
|
9
|
+
export declare function quickstartCommand(): Promise<void>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { UI } from "../utils/ui.js";
|
|
4
|
+
/**
|
|
5
|
+
* [START] Atabey Quickstart — creates a working example project in seconds
|
|
6
|
+
*
|
|
7
|
+
* Sets up a ready-to-use demo project for the user:
|
|
8
|
+
* - docs/ folder with example tasks
|
|
9
|
+
* - Sample todo list
|
|
10
|
+
* - Ready-to-execute plan
|
|
11
|
+
*/
|
|
12
|
+
export async function quickstartCommand() {
|
|
13
|
+
const projectRoot = process.cwd();
|
|
14
|
+
const docsDir = path.join(projectRoot, "docs");
|
|
15
|
+
const exampleTaskFile = path.join(docsDir, "quickstart-tasks.md");
|
|
16
|
+
UI.intent("[Atabey Quickstart]", "Creating example project in 10 seconds...");
|
|
17
|
+
// 1. Create docs/ directory
|
|
18
|
+
if (!fs.existsSync(docsDir)) {
|
|
19
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
// 2. Create example task file
|
|
22
|
+
const exampleContent = `# Quickstart Tasks
|
|
23
|
+
|
|
24
|
+
> These tasks are prepared to test Atabey's 13 specialized agents.
|
|
25
|
+
> Each task will be automatically routed to the correct agent by RoutingEngine.
|
|
26
|
+
|
|
27
|
+
## [ARCH] Architecture Tasks
|
|
28
|
+
|
|
29
|
+
- [ ] Prepare user profile API contracts
|
|
30
|
+
- [ ] Write user login service with Controller-Service-Repository layers
|
|
31
|
+
- [ ] Prepare migration file and create database schema
|
|
32
|
+
|
|
33
|
+
## [UI] Frontend Tasks
|
|
34
|
+
|
|
35
|
+
- [ ] Create user login form using atomic component structure
|
|
36
|
+
- [ ] Design responsive navbar
|
|
37
|
+
- [ ] Connect dashboard main page to API
|
|
38
|
+
|
|
39
|
+
## [SEC] Security Tasks
|
|
40
|
+
|
|
41
|
+
- [ ] Add and test JWT auth middleware
|
|
42
|
+
- [ ] Audit secret management
|
|
43
|
+
|
|
44
|
+
## [OPS] DevOps Tasks
|
|
45
|
+
|
|
46
|
+
- [ ] Prepare Docker Compose file
|
|
47
|
+
- [ ] Configure CI/CD pipeline
|
|
48
|
+
|
|
49
|
+
## [MOBILE] Mobile Tasks
|
|
50
|
+
|
|
51
|
+
- [ ] Create user profile page with React Native
|
|
52
|
+
- [ ] Implement offline-first architecture
|
|
53
|
+
|
|
54
|
+
## [QA] Quality Tasks
|
|
55
|
+
|
|
56
|
+
- [ ] Audit all code for compliance and lint errors
|
|
57
|
+
`;
|
|
58
|
+
fs.writeFileSync(exampleTaskFile, exampleContent, "utf8");
|
|
59
|
+
UI.success(`[OK] docs/quickstart-tasks.md created (${exampleContent.split("\n").length} lines)`);
|
|
60
|
+
// 3. Show user instructions
|
|
61
|
+
process.stdout.write("\n [To-Do]:\n");
|
|
62
|
+
process.stdout.write(" -----------------------------------------\n");
|
|
63
|
+
process.stdout.write(" 1. atabey init -> Initialize the project\n");
|
|
64
|
+
process.stdout.write(" 2. atabey plan -> Auto-distribute tasks\n");
|
|
65
|
+
process.stdout.write(" 3. atabey orchestrate -> Start orchestration\n");
|
|
66
|
+
process.stdout.write(" 4. atabey dashboard -> Open web panel\n");
|
|
67
|
+
process.stdout.write("\n [Tip]: To call individual agents:\n");
|
|
68
|
+
process.stdout.write(" atabey @backend \"Create user login service\"\n");
|
|
69
|
+
process.stdout.write("\n");
|
|
70
|
+
UI.success("[OK] Quickstart ready! You can start immediately.");
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=quickstart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../../src/cli/commands/quickstart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAElE,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,CAAC,CAAC;IAE9E,4BAA4B;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,8BAA8B;IAC9B,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC1B,CAAC;IAEE,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC1D,EAAE,CAAC,OAAO,CAAC,0CAA0C,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC;IAEjG,4BAA4B;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3B,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
+
import cp from "child_process";
|
|
1
2
|
import fs from "fs";
|
|
2
3
|
import path from "path";
|
|
3
|
-
import
|
|
4
|
-
const targetDir = process.cwd();
|
|
4
|
+
import { UI } from "../utils/ui.js";
|
|
5
|
+
const targetDir = process.cwd();
|
|
5
6
|
export async function runScriptCommand(script, projectPath) {
|
|
6
7
|
const fullPath = path.join(targetDir, projectPath);
|
|
7
8
|
if (!fs.existsSync(fullPath)) {
|
|
8
|
-
|
|
9
|
+
UI.error(`Project path not found: ${projectPath}`);
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
|
-
|
|
12
|
+
UI.info(`Running 'npm run ${script}' in ${projectPath}...`);
|
|
12
13
|
try {
|
|
13
14
|
cp.spawnSync("npm", ["run", script], { cwd: fullPath, stdio: "inherit", shell: true });
|
|
14
15
|
}
|
|
15
16
|
catch (e) {
|
|
16
17
|
const message = e instanceof Error ? e.message : "Unknown error";
|
|
17
|
-
|
|
18
|
+
UI.error(`Failed to run script: ${message}`);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=script.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../../src/cli/commands/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../../src/cli/commands/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,WAAmB;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;QACnD,OAAO;IACX,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,oBAAoB,MAAM,QAAQ,WAAW,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;AACL,CAAC"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { collectFiles } from "../utils/fs.js";
|
|
4
|
+
import { UI } from "../utils/ui.js";
|
|
4
5
|
const targetDir = process.cwd();
|
|
5
6
|
export async function securityAuditCommand(targetPath) {
|
|
6
|
-
|
|
7
|
+
UI.info(`Running Advanced Security Audit on: ${targetPath}...`);
|
|
7
8
|
const scanRules = [
|
|
8
9
|
{ pattern: /sql`/, message: "Potential Raw SQL usage detected", severity: "HIGH" },
|
|
9
|
-
{
|
|
10
|
-
pattern: /(password|secret|api_?key)\s*[:=]\s*['"][^'"]+['"]/i,
|
|
11
|
-
message: "Potential hardcoded secret detected",
|
|
12
|
-
severity: "CRITICAL",
|
|
13
|
-
},
|
|
10
|
+
{ pattern: /(password|secret|api_?key)\s*[:=]\s*['"][^'"]+['"]/i, message: "Potential hardcoded secret detected", severity: "CRITICAL" },
|
|
14
11
|
{ pattern: /:\s*any(?!\w)/, message: "Usage of 'any' type detected", severity: "MEDIUM" },
|
|
15
12
|
{ pattern: /\.innerHTML\s*=/, message: "Unsafe innerHTML assignment detected", severity: "MEDIUM" },
|
|
16
13
|
];
|
|
@@ -28,10 +25,10 @@ export async function securityAuditCommand(targetPath) {
|
|
|
28
25
|
});
|
|
29
26
|
});
|
|
30
27
|
if (issues.length === 0) {
|
|
31
|
-
|
|
28
|
+
UI.success("No security issues detected.");
|
|
32
29
|
}
|
|
33
30
|
else {
|
|
34
|
-
issues.forEach((issue) =>
|
|
31
|
+
issues.forEach((issue) => process.stdout.write(`[WARN] ${issue}\n`));
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
//# sourceMappingURL=security.js.map
|