agent-enderun 1.1.2 → 1.1.4
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/{.enderun/ENDERUN.md → ENDERUN.md} +25 -25
- package/README.md +10 -6
- package/bin/compile.js +13 -14
- package/bin/enderun-dashboard.js +866 -0
- package/bin/generate-cursor-rules.js +78 -0
- package/bin/test-init-run.js +37 -26
- package/bin/validate-agent-army.js +65 -67
- package/bin/watch-memory.js +54 -0
- package/dist/framework-mcp/src/index.js +1 -1
- package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +15 -0
- package/dist/framework-mcp/src/tools/control_plane/locking.js +65 -0
- package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -0
- package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +12 -0
- package/dist/framework-mcp/src/tools/control_plane/registry.js +35 -0
- package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -0
- package/dist/framework-mcp/src/tools/definitions.js +46 -7
- package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
- package/dist/framework-mcp/src/tools/file_system/write_file.js +16 -2
- package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
- package/dist/framework-mcp/src/tools/index.d.ts +1 -1
- package/dist/framework-mcp/src/tools/index.js +5 -0
- package/dist/framework-mcp/src/tools/index.js.map +1 -1
- package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +1 -1
- package/dist/framework-mcp/src/tools/messaging/send_message.js +2 -4
- package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
- package/dist/framework-mcp/src/utils/metrics.d.ts +10 -0
- package/dist/framework-mcp/src/utils/metrics.js +39 -0
- package/dist/framework-mcp/src/utils/metrics.js.map +1 -0
- package/dist/framework-mcp/src/utils/security.js +7 -3
- package/dist/framework-mcp/src/utils/security.js.map +1 -1
- package/dist/src/cli/adapters/types.d.ts +14 -0
- package/dist/src/cli/adapters/types.js +2 -0
- package/dist/src/cli/adapters/types.js.map +1 -0
- package/dist/src/cli/adapters.d.ts +4 -22
- package/dist/src/cli/adapters.js +123 -141
- package/dist/src/cli/adapters.js.map +1 -1
- package/dist/src/cli/commands/check.d.ts +0 -5
- package/dist/src/cli/commands/check.js +64 -76
- package/dist/src/cli/commands/check.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts +1 -1
- package/dist/src/cli/commands/init.js +154 -319
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/log.d.ts +1 -0
- package/dist/src/cli/commands/log.js.map +1 -1
- package/dist/src/cli/commands/memory.js +2 -69
- package/dist/src/cli/commands/memory.js.map +1 -1
- package/dist/src/cli/commands/orchestrate.d.ts +19 -9
- package/dist/src/cli/commands/orchestrate.js +56 -77
- package/dist/src/cli/commands/orchestrate.js.map +1 -1
- package/dist/src/cli/index.js +112 -30
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/utils/app.d.ts +1 -2
- package/dist/src/cli/utils/app.js +2 -2
- package/dist/src/cli/utils/app.js.map +1 -1
- package/dist/src/cli/utils/config-schema.d.ts +139 -0
- package/dist/src/cli/utils/config-schema.js +43 -0
- package/dist/src/cli/utils/config-schema.js.map +1 -0
- package/dist/src/cli/utils/fs.d.ts +2 -4
- package/dist/src/cli/utils/fs.js +9 -26
- package/dist/src/cli/utils/fs.js.map +1 -1
- package/dist/src/cli/utils/memory.d.ts +4 -3
- package/dist/src/cli/utils/memory.js +135 -116
- package/dist/src/cli/utils/memory.js.map +1 -1
- package/dist/src/cli/utils/pkg.js +4 -4
- package/dist/src/cli/utils/pkg.js.map +1 -1
- package/dist/src/cli/utils/ui.d.ts +30 -0
- package/dist/src/cli/utils/ui.js +56 -0
- package/dist/src/cli/utils/ui.js.map +1 -0
- package/dist/src/modules/adapters/antigravity-cli.d.ts +3 -0
- package/dist/src/modules/adapters/antigravity-cli.js +21 -0
- package/dist/src/modules/adapters/antigravity-cli.js.map +1 -0
- package/dist/src/modules/adapters/claude.d.ts +3 -0
- package/dist/src/modules/adapters/claude.js +36 -0
- package/dist/src/modules/adapters/claude.js.map +1 -0
- package/dist/src/modules/adapters/codex.d.ts +3 -0
- package/dist/src/modules/adapters/codex.js +20 -0
- package/dist/src/modules/adapters/codex.js.map +1 -0
- package/dist/src/modules/adapters/cursor.d.ts +3 -0
- package/dist/src/modules/adapters/cursor.js +20 -0
- package/dist/src/modules/adapters/cursor.js.map +1 -0
- package/dist/src/modules/adapters/gemini.d.ts +3 -0
- package/dist/src/modules/adapters/gemini.js +23 -0
- package/dist/src/modules/adapters/gemini.js.map +1 -0
- package/dist/src/modules/adapters/grok.d.ts +3 -0
- package/dist/src/modules/adapters/grok.js +18 -0
- package/dist/src/modules/adapters/grok.js.map +1 -0
- package/dist/src/modules/adapters/shared.d.ts +1 -0
- package/dist/src/modules/adapters/shared.js +79 -0
- package/dist/src/modules/adapters/shared.js.map +1 -0
- package/dist/src/modules/adapters/types.d.ts +14 -0
- package/dist/src/modules/adapters/types.js +2 -0
- package/dist/src/modules/adapters/types.js.map +1 -0
- package/dist/src/modules/agents/definitions.d.ts +13 -0
- package/dist/src/modules/agents/definitions.js +169 -0
- package/dist/src/modules/agents/definitions.js.map +1 -0
- package/dist/src/modules/skills/definitions.d.ts +31 -0
- package/dist/src/modules/skills/definitions.js +32 -0
- package/dist/src/modules/skills/definitions.js.map +1 -0
- package/dist/src/shared/fs.d.ts +3 -0
- package/dist/src/shared/fs.js +24 -0
- package/dist/src/shared/fs.js.map +1 -0
- package/eslint.config.js +1 -0
- package/framework-mcp/dist/index.js +1 -1
- package/framework-mcp/dist/tools/control_plane/locking.js +64 -0
- package/framework-mcp/dist/tools/control_plane/registry.js +34 -0
- package/framework-mcp/dist/tools/definitions.js +49 -8
- package/framework-mcp/dist/tools/file_system/read_file.js +20 -0
- package/framework-mcp/dist/tools/file_system/write_file.js +16 -2
- package/framework-mcp/dist/tools/index.js +5 -0
- package/framework-mcp/dist/tools/messaging/send_message.js +36 -15
- package/framework-mcp/dist/utils/metrics.js +38 -0
- package/framework-mcp/dist/utils/security.js +7 -3
- package/framework-mcp/package.json +1 -1
- package/framework-mcp/src/index.ts +1 -1
- package/framework-mcp/src/tools/control_plane/locking.ts +77 -0
- package/framework-mcp/src/tools/control_plane/registry.ts +44 -0
- package/framework-mcp/src/tools/definitions.ts +46 -7
- package/framework-mcp/src/tools/file_system/write_file.ts +19 -2
- package/framework-mcp/src/tools/index.ts +6 -1
- package/framework-mcp/src/tools/messaging/send_message.ts +2 -3
- package/framework-mcp/src/utils/metrics.ts +53 -0
- package/framework-mcp/src/utils/security.ts +8 -3
- package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +164 -0
- package/framework-mcp/tsconfig.json +4 -2
- package/package.json +12 -11
- package/src/cli/adapters/types.ts +16 -0
- package/src/cli/adapters.ts +130 -156
- package/src/cli/commands/check.ts +61 -77
- package/src/cli/commands/init.ts +163 -312
- package/src/cli/commands/log.ts +1 -1
- package/src/cli/commands/memory.ts +3 -80
- package/src/cli/commands/orchestrate.ts +76 -90
- package/src/cli/index.ts +121 -29
- package/src/cli/utils/app.ts +3 -3
- package/src/cli/utils/config-schema.ts +48 -0
- package/src/cli/utils/fs.ts +10 -27
- package/src/cli/utils/memory.ts +143 -112
- package/src/cli/utils/pkg.ts +4 -4
- package/src/cli/utils/ui.ts +63 -0
- package/src/modules/adapters/antigravity-cli.ts +25 -0
- package/src/modules/adapters/claude.ts +36 -0
- package/src/modules/adapters/codex.ts +22 -0
- package/src/modules/adapters/cursor.ts +22 -0
- package/src/modules/adapters/gemini.ts +27 -0
- package/src/modules/adapters/grok.ts +20 -0
- package/src/modules/adapters/shared.ts +90 -0
- package/src/modules/adapters/types.ts +16 -0
- package/src/modules/agents/definitions.ts +182 -0
- package/src/modules/skills/definitions.ts +32 -0
- package/src/shared/fs.ts +25 -0
- package/.enderun/BRAIN_DASHBOARD.md +0 -46
- package/.enderun/STATUS.md +0 -61
- package/.enderun/agents/agent_army_schema.json +0 -101
- package/.enderun/agents/analyst.json +0 -32
- package/.enderun/agents/backend.json +0 -32
- package/.enderun/agents/database.json +0 -32
- package/.enderun/agents/devops.json +0 -32
- package/.enderun/agents/explorer.json +0 -32
- package/.enderun/agents/frontend.json +0 -32
- package/.enderun/agents/git.json +0 -32
- package/.enderun/agents/manager.json +0 -32
- package/.enderun/agents/mobile.json +0 -32
- package/.enderun/agents/native.json +0 -32
- package/.enderun/agents/quality.json +0 -32
- package/.enderun/agents/schema/agent-lifecycle-schema.json +0 -41
- package/.enderun/agents/security.json +0 -32
- package/.enderun/benchmarks/.gitkeep +0 -0
- package/.enderun/cli-commands.json +0 -76
- package/.enderun/config.json +0 -13
- package/.enderun/knowledge/ARCHITECTURE.md +0 -1
- package/.enderun/knowledge/SECURITY.md +0 -1
- package/.enderun/knowledge/SHIM_TEMPLATE.md +0 -36
- package/.enderun/knowledge/analyst_reference_guide.md +0 -31
- package/.enderun/knowledge/async_error_handling.md +0 -27
- package/.enderun/knowledge/backend_reference_guide.md +0 -165
- package/.enderun/knowledge/blueprint_driven_construction.md +0 -22
- package/.enderun/knowledge/context_boundary_rules.md +0 -57
- package/.enderun/knowledge/corporate-governance/analyst-contract-integrity-guide.md +0 -92
- package/.enderun/knowledge/corporate-governance/audit-logging-standard.md +0 -59
- package/.enderun/knowledge/corporate-governance/backend-high-risk-endpoint-guide.md +0 -125
- package/.enderun/knowledge/corporate-governance/branded-types-law.md +0 -77
- package/.enderun/knowledge/corporate-governance/contract-drift-detection-simulation.md +0 -92
- package/.enderun/knowledge/corporate-governance/corporate-governance-playbook.md +0 -89
- package/.enderun/knowledge/corporate-governance/corporate-project-kickoff-checklist.md +0 -56
- package/.enderun/knowledge/corporate-governance/corporate-project-kickoff-simulation.md +0 -144
- package/.enderun/knowledge/corporate-governance/corporate-project-scaffolding-sop.md +0 -103
- package/.enderun/knowledge/corporate-governance/domain-error-handling-standard.md +0 -75
- package/.enderun/knowledge/corporate-governance/frontend-high-risk-modal-guide.md +0 -211
- package/.enderun/knowledge/corporate-governance/governance-baseline-briefing-template.md +0 -54
- package/.enderun/knowledge/corporate-governance/high-risk-action-approval-flow-simulation.md +0 -167
- package/.enderun/knowledge/corporate-governance/high-risk-action-approval-flow.md +0 -29
- package/.enderun/knowledge/corporate-governance/high-risk-actions-managerapproval.md +0 -76
- package/.enderun/knowledge/corporate-governance/high-risk-security-modal-hermes-flow.md +0 -49
- package/.enderun/knowledge/corporate-governance/manager-first-30-days-guide.md +0 -112
- package/.enderun/knowledge/corporate-governance/manager-first-three-briefings.md +0 -79
- package/.enderun/knowledge/database_reference_guide.md +0 -38
- package/.enderun/knowledge/devops_reference_guide.md +0 -43
- package/.enderun/knowledge/documentation_ownership.md +0 -53
- package/.enderun/knowledge/eslint-standards.md +0 -63
- package/.enderun/knowledge/evaluation_engine.md +0 -26
- package/.enderun/knowledge/explorer_reference_guide.md +0 -34
- package/.enderun/knowledge/framework_vs_user_project_boundary.md +0 -52
- package/.enderun/knowledge/frontend_professionalization_guidelines.md +0 -108
- package/.enderun/knowledge/frontend_reference_guide.md +0 -64
- package/.enderun/knowledge/git_reference_guide.md +0 -51
- package/.enderun/knowledge/hermes_live_test_guidelines.md +0 -90
- package/.enderun/knowledge/hermes_protocol.md +0 -59
- package/.enderun/knowledge/legacy_onboarding.md +0 -18
- package/.enderun/knowledge/lessons-learned.md +0 -14
- package/.enderun/knowledge/manager_authority_audit_enforcement.md +0 -104
- package/.enderun/knowledge/manager_reference_guide.md +0 -55
- package/.enderun/knowledge/mobile_reference_guide.md +0 -35
- package/.enderun/knowledge/native_reference_guide.md +0 -34
- package/.enderun/knowledge/project_scaffold_guidelines.md +0 -110
- package/.enderun/knowledge/quality_reference_guide.md +0 -42
- package/.enderun/knowledge/reference_application_guidelines.md +0 -101
- package/.enderun/knowledge/responsive_design_standards.md +0 -27
- package/.enderun/knowledge/router_logic.md +0 -29
- package/.enderun/knowledge/security_reference_guide.md +0 -35
- package/.enderun/knowledge/token_economy_and_memory.md +0 -129
- package/.enderun/knowledge/zero_ui_library_policy.md +0 -13
- package/.enderun/logs/manager.json +0 -52
- package/.enderun/mcp_config.json +0 -11
- package/.enderun/memory/BUSINESS_CONTEXT.md +0 -17
- package/.enderun/memory/DECISIONS.md +0 -24
- package/.enderun/memory/LESSONS_LEARNED.md +0 -12
- package/.enderun/memory/PATTERNS.md +0 -17
- package/.enderun/memory/PROJECT_MEMORY.md +0 -69
- package/.enderun/memory-graph/agent-contexts/analyst.json +0 -1
- package/.enderun/memory-graph/agent-contexts/backend.json +0 -1
- package/.enderun/memory-graph/agent-contexts/devops.json +0 -1
- package/.enderun/memory-graph/agent-contexts/explorer.json +0 -1
- package/.enderun/memory-graph/agent-contexts/frontend.json +0 -1
- package/.enderun/memory-graph/agent-contexts/git.json +0 -1
- package/.enderun/memory-graph/agent-contexts/manager.json +0 -1
- package/.enderun/memory-graph/agent-contexts/mobile.json +0 -1
- package/.enderun/memory-graph/agent-contexts/native.json +0 -1
- package/.enderun/memory-graph/agent-contexts/quality.json +0 -1
- package/.enderun/memory-graph/agent-contexts/security.json +0 -1
- package/.enderun/memory-graph/graph.json +0 -133
- package/.enderun/memory-graph/shared-facts.json +0 -46
- package/.enderun/monitoring/.gitkeep +0 -0
- package/.enderun/observability/AUDIT_LOG.md +0 -9
- package/.enderun/observability/METRICS.md +0 -10
- package/.enderun/observability/README.md +0 -19
- package/.enderun/observability/TRACE_LOG.md +0 -10
- package/.enderun/queue/README.md +0 -36
- package/.enderun/registry/agents.yaml +0 -69
- package/.enderun/skills/agent_handshake.md +0 -37
- package/.enderun/skills/multi_agent_coordination.md +0 -64
- package/.enderun/skills/subagent_lifecycle.md +0 -48
- package/CLAUDE.md +0 -21
- package/GEMINI.md +0 -24
- package/GROK.md +0 -20
- package/agent.md +0 -25
- package/dist/.keep +0 -1
- package/dist/tests/adapter.test.d.ts +0 -1
- package/dist/tests/adapter.test.js +0 -82
- package/dist/tests/adapter.test.js.map +0 -1
- package/dist/tests/gemini.test.d.ts +0 -1
- package/dist/tests/gemini.test.js +0 -39
- package/dist/tests/gemini.test.js.map +0 -1
- package/dist/tests/initial.test.d.ts +0 -1
- package/dist/tests/initial.test.js +0 -7
- package/dist/tests/initial.test.js.map +0 -1
- package/docs/project_analysis_report.md +0 -69
- package/framework-mcp/dist/src/index.js +0 -70
- package/framework-mcp/dist/src/tools/definitions.js +0 -112
- package/framework-mcp/dist/src/tools/file_system/patch_file.js +0 -18
- package/framework-mcp/dist/src/tools/file_system/read_file.js +0 -27
- package/framework-mcp/dist/src/tools/file_system/replace_text.js +0 -31
- package/framework-mcp/dist/src/tools/file_system/write_file.js +0 -9
- package/framework-mcp/dist/src/tools/framework/get_status.js +0 -5
- package/framework-mcp/dist/src/tools/framework/orchestrate.js +0 -5
- package/framework-mcp/dist/src/tools/framework/update_contract_hash.js +0 -5
- package/framework-mcp/dist/src/tools/framework/update_memory.js +0 -8
- package/framework-mcp/dist/src/tools/index.js +0 -25
- package/framework-mcp/dist/src/tools/messaging/log_action.js +0 -22
- package/framework-mcp/dist/src/tools/messaging/send_message.js +0 -46
- package/framework-mcp/dist/src/tools/types.js +0 -1
- package/framework-mcp/dist/src/utils/cli.js +0 -20
- package/framework-mcp/dist/src/utils/security.js +0 -53
- package/framework-mcp/dist/tests/tools/file_system/replace_text.test.js +0 -68
- package/framework-mcp/node_modules/@types/node/LICENSE +0 -21
- package/framework-mcp/node_modules/@types/node/README.md +0 -15
- package/framework-mcp/node_modules/@types/node/assert/strict.d.ts +0 -111
- package/framework-mcp/node_modules/@types/node/assert.d.ts +0 -1078
- package/framework-mcp/node_modules/@types/node/async_hooks.d.ts +0 -603
- package/framework-mcp/node_modules/@types/node/buffer.buffer.d.ts +0 -472
- package/framework-mcp/node_modules/@types/node/buffer.d.ts +0 -1934
- package/framework-mcp/node_modules/@types/node/child_process.d.ts +0 -1476
- package/framework-mcp/node_modules/@types/node/cluster.d.ts +0 -578
- package/framework-mcp/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
- package/framework-mcp/node_modules/@types/node/compatibility/index.d.ts +0 -9
- package/framework-mcp/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
- package/framework-mcp/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
- package/framework-mcp/node_modules/@types/node/console.d.ts +0 -452
- package/framework-mcp/node_modules/@types/node/constants.d.ts +0 -21
- package/framework-mcp/node_modules/@types/node/crypto.d.ts +0 -4545
- package/framework-mcp/node_modules/@types/node/dgram.d.ts +0 -600
- package/framework-mcp/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
- package/framework-mcp/node_modules/@types/node/dns/promises.d.ts +0 -503
- package/framework-mcp/node_modules/@types/node/dns.d.ts +0 -923
- package/framework-mcp/node_modules/@types/node/domain.d.ts +0 -170
- package/framework-mcp/node_modules/@types/node/events.d.ts +0 -976
- package/framework-mcp/node_modules/@types/node/fs/promises.d.ts +0 -1295
- package/framework-mcp/node_modules/@types/node/fs.d.ts +0 -4461
- package/framework-mcp/node_modules/@types/node/globals.d.ts +0 -172
- package/framework-mcp/node_modules/@types/node/globals.typedarray.d.ts +0 -38
- package/framework-mcp/node_modules/@types/node/http.d.ts +0 -2089
- package/framework-mcp/node_modules/@types/node/http2.d.ts +0 -2721
- package/framework-mcp/node_modules/@types/node/https.d.ts +0 -579
- package/framework-mcp/node_modules/@types/node/index.d.ts +0 -97
- package/framework-mcp/node_modules/@types/node/inspector.d.ts +0 -253
- package/framework-mcp/node_modules/@types/node/inspector.generated.d.ts +0 -4052
- package/framework-mcp/node_modules/@types/node/module.d.ts +0 -891
- package/framework-mcp/node_modules/@types/node/net.d.ts +0 -1076
- package/framework-mcp/node_modules/@types/node/os.d.ts +0 -506
- package/framework-mcp/node_modules/@types/node/package.json +0 -145
- package/framework-mcp/node_modules/@types/node/path.d.ts +0 -200
- package/framework-mcp/node_modules/@types/node/perf_hooks.d.ts +0 -968
- package/framework-mcp/node_modules/@types/node/process.d.ts +0 -2084
- package/framework-mcp/node_modules/@types/node/punycode.d.ts +0 -117
- package/framework-mcp/node_modules/@types/node/querystring.d.ts +0 -152
- package/framework-mcp/node_modules/@types/node/readline/promises.d.ts +0 -161
- package/framework-mcp/node_modules/@types/node/readline.d.ts +0 -594
- package/framework-mcp/node_modules/@types/node/repl.d.ts +0 -428
- package/framework-mcp/node_modules/@types/node/sea.d.ts +0 -153
- package/framework-mcp/node_modules/@types/node/sqlite.d.ts +0 -721
- package/framework-mcp/node_modules/@types/node/stream/consumers.d.ts +0 -38
- package/framework-mcp/node_modules/@types/node/stream/promises.d.ts +0 -90
- package/framework-mcp/node_modules/@types/node/stream/web.d.ts +0 -622
- package/framework-mcp/node_modules/@types/node/stream.d.ts +0 -1687
- package/framework-mcp/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/framework-mcp/node_modules/@types/node/test.d.ts +0 -2163
- package/framework-mcp/node_modules/@types/node/timers/promises.d.ts +0 -108
- package/framework-mcp/node_modules/@types/node/timers.d.ts +0 -287
- package/framework-mcp/node_modules/@types/node/tls.d.ts +0 -1319
- package/framework-mcp/node_modules/@types/node/trace_events.d.ts +0 -197
- package/framework-mcp/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
- package/framework-mcp/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
- package/framework-mcp/node_modules/@types/node/ts5.6/index.d.ts +0 -97
- package/framework-mcp/node_modules/@types/node/tty.d.ts +0 -208
- package/framework-mcp/node_modules/@types/node/url.d.ts +0 -984
- package/framework-mcp/node_modules/@types/node/util.d.ts +0 -2606
- package/framework-mcp/node_modules/@types/node/v8.d.ts +0 -920
- package/framework-mcp/node_modules/@types/node/vm.d.ts +0 -1000
- package/framework-mcp/node_modules/@types/node/wasi.d.ts +0 -181
- package/framework-mcp/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
- package/framework-mcp/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
- package/framework-mcp/node_modules/@types/node/web-globals/events.d.ts +0 -97
- package/framework-mcp/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
- package/framework-mcp/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
- package/framework-mcp/node_modules/@types/node/web-globals/storage.d.ts +0 -24
- package/framework-mcp/node_modules/@types/node/worker_threads.d.ts +0 -784
- package/framework-mcp/node_modules/@types/node/zlib.d.ts +0 -747
- package/framework-mcp/node_modules/typescript/LICENSE.txt +0 -55
- package/framework-mcp/node_modules/typescript/README.md +0 -50
- package/framework-mcp/node_modules/typescript/SECURITY.md +0 -41
- package/framework-mcp/node_modules/typescript/ThirdPartyNoticeText.txt +0 -193
- package/framework-mcp/node_modules/typescript/bin/tsc +0 -2
- package/framework-mcp/node_modules/typescript/bin/tsserver +0 -2
- package/framework-mcp/node_modules/typescript/lib/_tsc.js +0 -133818
- package/framework-mcp/node_modules/typescript/lib/_tsserver.js +0 -659
- package/framework-mcp/node_modules/typescript/lib/_typingsInstaller.js +0 -222
- package/framework-mcp/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/lib.d.ts +0 -22
- package/framework-mcp/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
- package/framework-mcp/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
- package/framework-mcp/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
- package/framework-mcp/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
- package/framework-mcp/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
- package/framework-mcp/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
- package/framework-mcp/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
- package/framework-mcp/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
- package/framework-mcp/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
- package/framework-mcp/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
- package/framework-mcp/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
- package/framework-mcp/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
- package/framework-mcp/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
- package/framework-mcp/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
- package/framework-mcp/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
- package/framework-mcp/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
- package/framework-mcp/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
- package/framework-mcp/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
- package/framework-mcp/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
- package/framework-mcp/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
- package/framework-mcp/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
- package/framework-mcp/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
- package/framework-mcp/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
- package/framework-mcp/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
- package/framework-mcp/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
- package/framework-mcp/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
- package/framework-mcp/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
- package/framework-mcp/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
- package/framework-mcp/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
- package/framework-mcp/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
- package/framework-mcp/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
- package/framework-mcp/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
- package/framework-mcp/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
- package/framework-mcp/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
- package/framework-mcp/node_modules/typescript/lib/lib.es6.d.ts +0 -23
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
- package/framework-mcp/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
- package/framework-mcp/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
- package/framework-mcp/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
- package/framework-mcp/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
- package/framework-mcp/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
- package/framework-mcp/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
- package/framework-mcp/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/tsc.js +0 -8
- package/framework-mcp/node_modules/typescript/lib/tsserver.js +0 -8
- package/framework-mcp/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
- package/framework-mcp/node_modules/typescript/lib/tsserverlibrary.js +0 -21
- package/framework-mcp/node_modules/typescript/lib/typesMap.json +0 -497
- package/framework-mcp/node_modules/typescript/lib/typescript.d.ts +0 -11437
- package/framework-mcp/node_modules/typescript/lib/typescript.js +0 -200276
- package/framework-mcp/node_modules/typescript/lib/typingsInstaller.js +0 -8
- package/framework-mcp/node_modules/typescript/lib/watchGuard.js +0 -53
- package/framework-mcp/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
- package/framework-mcp/node_modules/typescript/package.json +0 -120
- package/framework-mcp/node_modules/undici-types/LICENSE +0 -21
- package/framework-mcp/node_modules/undici-types/README.md +0 -6
- package/framework-mcp/node_modules/undici-types/agent.d.ts +0 -31
- package/framework-mcp/node_modules/undici-types/api.d.ts +0 -43
- package/framework-mcp/node_modules/undici-types/balanced-pool.d.ts +0 -29
- package/framework-mcp/node_modules/undici-types/cache.d.ts +0 -36
- package/framework-mcp/node_modules/undici-types/client.d.ts +0 -108
- package/framework-mcp/node_modules/undici-types/connector.d.ts +0 -34
- package/framework-mcp/node_modules/undici-types/content-type.d.ts +0 -21
- package/framework-mcp/node_modules/undici-types/cookies.d.ts +0 -28
- package/framework-mcp/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
- package/framework-mcp/node_modules/undici-types/dispatcher.d.ts +0 -256
- package/framework-mcp/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
- package/framework-mcp/node_modules/undici-types/errors.d.ts +0 -149
- package/framework-mcp/node_modules/undici-types/eventsource.d.ts +0 -61
- package/framework-mcp/node_modules/undici-types/fetch.d.ts +0 -209
- package/framework-mcp/node_modules/undici-types/file.d.ts +0 -39
- package/framework-mcp/node_modules/undici-types/filereader.d.ts +0 -54
- package/framework-mcp/node_modules/undici-types/formdata.d.ts +0 -108
- package/framework-mcp/node_modules/undici-types/global-dispatcher.d.ts +0 -9
- package/framework-mcp/node_modules/undici-types/global-origin.d.ts +0 -7
- package/framework-mcp/node_modules/undici-types/handlers.d.ts +0 -15
- package/framework-mcp/node_modules/undici-types/header.d.ts +0 -4
- package/framework-mcp/node_modules/undici-types/index.d.ts +0 -71
- package/framework-mcp/node_modules/undici-types/interceptors.d.ts +0 -17
- package/framework-mcp/node_modules/undici-types/mock-agent.d.ts +0 -50
- package/framework-mcp/node_modules/undici-types/mock-client.d.ts +0 -25
- package/framework-mcp/node_modules/undici-types/mock-errors.d.ts +0 -12
- package/framework-mcp/node_modules/undici-types/mock-interceptor.d.ts +0 -93
- package/framework-mcp/node_modules/undici-types/mock-pool.d.ts +0 -25
- package/framework-mcp/node_modules/undici-types/package.json +0 -55
- package/framework-mcp/node_modules/undici-types/patch.d.ts +0 -33
- package/framework-mcp/node_modules/undici-types/pool-stats.d.ts +0 -19
- package/framework-mcp/node_modules/undici-types/pool.d.ts +0 -39
- package/framework-mcp/node_modules/undici-types/proxy-agent.d.ts +0 -28
- package/framework-mcp/node_modules/undici-types/readable.d.ts +0 -65
- package/framework-mcp/node_modules/undici-types/retry-agent.d.ts +0 -8
- package/framework-mcp/node_modules/undici-types/retry-handler.d.ts +0 -116
- package/framework-mcp/node_modules/undici-types/util.d.ts +0 -18
- package/framework-mcp/node_modules/undici-types/webidl.d.ts +0 -228
- package/framework-mcp/node_modules/undici-types/websocket.d.ts +0 -150
- package/framework-mcp/tests/tools/file_system/replace_text.test.js +0 -68
- package/framework-mcp/tests/tools/file_system/replace_text.test.ts +0 -77
- package/mcp.json +0 -11
- package/panda.config.ts +0 -100
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
4
|
-
import { TOOLS, toolHandlers } from "./tools/index.js";
|
|
5
|
-
// ─── Server Setup ─────────────────────────────────────────────────
|
|
6
|
-
const server = new Server({
|
|
7
|
-
name: "@agent-enderun/mcp",
|
|
8
|
-
version: "1.1.2",
|
|
9
|
-
}, {
|
|
10
|
-
capabilities: {
|
|
11
|
-
tools: {},
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
15
|
-
return { tools: TOOLS };
|
|
16
|
-
});
|
|
17
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
18
|
-
const typedRequest = request;
|
|
19
|
-
const { name, arguments: args } = typedRequest.params;
|
|
20
|
-
const projectRoot = process.env.ENDERUN_PROJECT_ROOT || process.cwd();
|
|
21
|
-
try {
|
|
22
|
-
const handler = toolHandlers[name];
|
|
23
|
-
if (!handler) {
|
|
24
|
-
return {
|
|
25
|
-
isError: true,
|
|
26
|
-
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
return handler(projectRoot, args || {});
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
const message = error instanceof Error ? error.message : "Unknown error occurred";
|
|
33
|
-
return {
|
|
34
|
-
isError: true,
|
|
35
|
-
content: [{ type: "text", text: message }],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
// ─── Graceful Startup & Shutdown ──────────────────────────────────
|
|
40
|
-
async function run() {
|
|
41
|
-
const transport = new StdioServerTransport();
|
|
42
|
-
// Prevent unhandled errors from crashing the MCP stream
|
|
43
|
-
process.on("uncaughtException", (error) => {
|
|
44
|
-
process.stderr.write(`[agent-enderun-mcp] Uncaught exception: ${error.message}
|
|
45
|
-
`);
|
|
46
|
-
});
|
|
47
|
-
process.on("unhandledRejection", (reason) => {
|
|
48
|
-
const message = reason instanceof Error ? reason.message : String(reason);
|
|
49
|
-
process.stderr.write(`[agent-enderun-mcp] Unhandled rejection: ${message}
|
|
50
|
-
`);
|
|
51
|
-
});
|
|
52
|
-
// Graceful shutdown on SIGINT/SIGTERM
|
|
53
|
-
const shutdown = async () => {
|
|
54
|
-
try {
|
|
55
|
-
await server.close();
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
// Already closed or failed — safe to ignore
|
|
59
|
-
}
|
|
60
|
-
process.exit(0);
|
|
61
|
-
};
|
|
62
|
-
process.on("SIGINT", shutdown);
|
|
63
|
-
process.on("SIGTERM", shutdown);
|
|
64
|
-
await server.connect(transport);
|
|
65
|
-
}
|
|
66
|
-
run().catch((error) => {
|
|
67
|
-
process.stderr.write(`[agent-enderun-mcp] Fatal startup error: ${error.message}
|
|
68
|
-
`);
|
|
69
|
-
process.exit(1);
|
|
70
|
-
});
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
export const TOOLS = [
|
|
2
|
-
{
|
|
3
|
-
name: "read_file",
|
|
4
|
-
description: "Read the content of a file within the project. Supports optional line range reading to prevent stream overload.",
|
|
5
|
-
inputSchema: {
|
|
6
|
-
type: "object",
|
|
7
|
-
properties: {
|
|
8
|
-
path: { type: "string", description: "Path to the file relative to project root" },
|
|
9
|
-
startLine: { type: "number", description: "Optional starting line number (1-indexed)" },
|
|
10
|
-
endLine: { type: "number", description: "Optional ending line number (inclusive)" },
|
|
11
|
-
},
|
|
12
|
-
required: ["path"],
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
name: "write_file",
|
|
17
|
-
description: "Write content to a file. Creates directories if missing.",
|
|
18
|
-
inputSchema: {
|
|
19
|
-
type: "object",
|
|
20
|
-
properties: {
|
|
21
|
-
path: { type: "string", description: "Path to the file relative to project root" },
|
|
22
|
-
content: { type: "string", description: "Complete content of the file" },
|
|
23
|
-
},
|
|
24
|
-
required: ["path", "content"],
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: "replace_text",
|
|
29
|
-
description: "Surgically replace a string in a file with another string.",
|
|
30
|
-
inputSchema: {
|
|
31
|
-
type: "object",
|
|
32
|
-
properties: {
|
|
33
|
-
path: { type: "string", description: "Path to the file" },
|
|
34
|
-
oldText: { type: "string", description: "The exact text to find" },
|
|
35
|
-
newText: { type: "string", description: "The text to replace it with" },
|
|
36
|
-
},
|
|
37
|
-
required: ["path", "oldText", "newText"],
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "patch_file",
|
|
42
|
-
description: "Safely update a file by replacing a specific line range with new content.",
|
|
43
|
-
inputSchema: {
|
|
44
|
-
type: "object",
|
|
45
|
-
properties: {
|
|
46
|
-
path: { type: "string", description: "Path to the file" },
|
|
47
|
-
startLine: { type: "number", description: "Starting line number (1-indexed)" },
|
|
48
|
-
endLine: { type: "number", description: "Ending line number (inclusive)" },
|
|
49
|
-
newContent: { type: "string", description: "The new lines to insert" },
|
|
50
|
-
},
|
|
51
|
-
required: ["path", "startLine", "endLine", "newContent"],
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: "get_framework_status",
|
|
56
|
-
description: "Get the current project phase, active traces, and agent states.",
|
|
57
|
-
inputSchema: { type: "object", properties: {} },
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
name: "update_project_memory",
|
|
61
|
-
description: "Update a specific section in PROJECT_MEMORY.md.",
|
|
62
|
-
inputSchema: {
|
|
63
|
-
type: "object",
|
|
64
|
-
properties: {
|
|
65
|
-
section: { type: "string", description: "Section name (e.g., HISTORY, ACTIVE TASKS)" },
|
|
66
|
-
content: { type: "string", description: "Markdown content to append or set" },
|
|
67
|
-
},
|
|
68
|
-
required: ["section", "content"],
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
name: "orchestrate_loop",
|
|
73
|
-
description: "Process the pending Hermes messages and trigger dynamic state transitions.",
|
|
74
|
-
inputSchema: { type: "object", properties: {} },
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: "send_agent_message",
|
|
78
|
-
description: "Send a Hermes protocol message to another agent.",
|
|
79
|
-
inputSchema: {
|
|
80
|
-
type: "object",
|
|
81
|
-
properties: {
|
|
82
|
-
from: { type: "string", description: "Sender agent (e.g., @manager, @backend). Defaults to @mcp if omitted." },
|
|
83
|
-
to: { type: "string", description: "Target agent (e.g., @backend, @qa)" },
|
|
84
|
-
category: { type: "string", enum: ["ACTION", "DELEGATION", "INFO", "ALERT"] },
|
|
85
|
-
content: { type: "string", description: "Message content" },
|
|
86
|
-
traceId: { type: "string", description: "Active Trace ID" },
|
|
87
|
-
},
|
|
88
|
-
required: ["to", "category", "content", "traceId"],
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: "log_agent_action",
|
|
93
|
-
description: "Log an agent action to the framework logs.",
|
|
94
|
-
inputSchema: {
|
|
95
|
-
type: "object",
|
|
96
|
-
properties: {
|
|
97
|
-
agent: { type: "string", description: "The agent name (e.g., @manager, @backend)" },
|
|
98
|
-
action: { type: "string", description: "Action type or name" },
|
|
99
|
-
traceId: { type: "string", description: "The active Trace ID" },
|
|
100
|
-
status: { type: "string", enum: ["SUCCESS", "FAILURE"], description: "The status of the action" },
|
|
101
|
-
summary: { type: "string", description: "Brief description of the action taken" },
|
|
102
|
-
findings: { type: "string", description: "Optional comma-separated findings or details" }
|
|
103
|
-
},
|
|
104
|
-
required: ["agent", "action", "traceId", "status", "summary"]
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
name: "update_contract_hash",
|
|
109
|
-
description: "Re-generate and synchronize the backend contract SHA-256 hash.",
|
|
110
|
-
inputSchema: { type: "object", properties: {} }
|
|
111
|
-
}
|
|
112
|
-
];
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import { safePath } from "../../utils/security.js";
|
|
3
|
-
export function handlePatchFile(projectRoot, args) {
|
|
4
|
-
const filePath = safePath(projectRoot, args.path);
|
|
5
|
-
const lines = fs.readFileSync(filePath, "utf8").split("\n");
|
|
6
|
-
const start = args.startLine - 1;
|
|
7
|
-
const end = args.endLine;
|
|
8
|
-
const newContent = args.newContent.split("\n");
|
|
9
|
-
if (start < 0 || start > lines.length) {
|
|
10
|
-
throw new Error(`Invalid start line: ${start + 1}. File has ${lines.length} lines.`);
|
|
11
|
-
}
|
|
12
|
-
if (end < start + 1 || end > lines.length) {
|
|
13
|
-
throw new Error(`Invalid end line: ${end}. Must be between ${start + 1} and ${lines.length}.`);
|
|
14
|
-
}
|
|
15
|
-
lines.splice(start, end - start, ...newContent);
|
|
16
|
-
fs.writeFileSync(filePath, lines.join("\n"));
|
|
17
|
-
return { content: [{ type: "text", text: `✅ File patched successfully: ${args.path}` }] };
|
|
18
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import { safePath } from "../../utils/security.js";
|
|
3
|
-
export function handleReadFile(projectRoot, args) {
|
|
4
|
-
const filePath = safePath(projectRoot, args.path);
|
|
5
|
-
const startLine = args.startLine !== undefined ? Number(args.startLine) : undefined;
|
|
6
|
-
const endLine = args.endLine !== undefined ? Number(args.endLine) : undefined;
|
|
7
|
-
const content = fs.readFileSync(filePath, "utf8");
|
|
8
|
-
const lines = content.split(/\r?\n/);
|
|
9
|
-
if (startLine !== undefined || endLine !== undefined) {
|
|
10
|
-
const start = startLine !== undefined ? Math.max(1, startLine) - 1 : 0;
|
|
11
|
-
const end = endLine !== undefined ? Math.min(lines.length, endLine) : lines.length;
|
|
12
|
-
const sliced = lines.slice(start, end).join("\n");
|
|
13
|
-
return { content: [{ type: "text", text: sliced }] };
|
|
14
|
-
}
|
|
15
|
-
// Default protection limit: 1000 lines
|
|
16
|
-
const DEFAULT_MAX_LINES = 1000;
|
|
17
|
-
if (lines.length > DEFAULT_MAX_LINES) {
|
|
18
|
-
const sliced = lines.slice(0, DEFAULT_MAX_LINES).join("\n");
|
|
19
|
-
return {
|
|
20
|
-
content: [{
|
|
21
|
-
type: "text",
|
|
22
|
-
text: `${sliced}\n\n... [TRUNCATED - File is too long (${lines.length} lines). Only the first ${DEFAULT_MAX_LINES} lines are shown. Use startLine and endLine parameters to read other parts of the file.]`
|
|
23
|
-
}]
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
return { content: [{ type: "text", text: content }] };
|
|
27
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import { safePath } from "../../utils/security.js";
|
|
3
|
-
export function handleReplaceText(projectRoot, args) {
|
|
4
|
-
const filePath = safePath(projectRoot, args.path);
|
|
5
|
-
let content = fs.readFileSync(filePath, "utf8");
|
|
6
|
-
const oldText = args.oldText;
|
|
7
|
-
const newText = args.newText;
|
|
8
|
-
const allowMultiple = args.allowMultiple || false; // Default to false
|
|
9
|
-
if (!content.includes(oldText)) {
|
|
10
|
-
throw new Error(`Text not found in file: ${oldText.slice(0, 100)}...`);
|
|
11
|
-
}
|
|
12
|
-
// Surgical precision guard: reject ambiguous replacements unless allowMultiple is true.
|
|
13
|
-
if (!allowMultiple) {
|
|
14
|
-
const firstIndex = content.indexOf(oldText);
|
|
15
|
-
const lastIndex = content.lastIndexOf(oldText);
|
|
16
|
-
if (firstIndex !== lastIndex) {
|
|
17
|
-
const count = (content.match(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g")) || []).length;
|
|
18
|
-
throw new Error(`Ambiguous replacement: "${oldText.slice(0, 80)}..." found ${count} times in ${args.path}. ` +
|
|
19
|
-
"Provide a longer, unique context string or set 'allow_multiple' to true.");
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// Perform replacement(s)
|
|
23
|
-
if (allowMultiple) {
|
|
24
|
-
content = content.replace(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), newText);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
content = content.replace(oldText, newText);
|
|
28
|
-
}
|
|
29
|
-
fs.writeFileSync(filePath, content);
|
|
30
|
-
return { content: [{ type: "text", text: `✅ Surgical edit successful in ${args.path}` }] };
|
|
31
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { safePath } from "../../utils/security.js";
|
|
4
|
-
export function handleWriteFile(projectRoot, args) {
|
|
5
|
-
const filePath = safePath(projectRoot, args.path);
|
|
6
|
-
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
7
|
-
fs.writeFileSync(filePath, args.content);
|
|
8
|
-
return { content: [{ type: "text", text: `✅ File written: ${args.path}` }] };
|
|
9
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { safeExec } from "../../utils/cli.js";
|
|
2
|
-
export function handleUpdateProjectMemory(projectRoot, args) {
|
|
3
|
-
const section = args.section;
|
|
4
|
-
const content = args.content;
|
|
5
|
-
// Using execFileSync with array args prevents command injection
|
|
6
|
-
safeExec("npx", ["agent-enderun", "update_project_memory", section, content], projectRoot, args.timeout);
|
|
7
|
-
return { content: [{ type: "text", text: `✅ Section ${section} updated.` }] };
|
|
8
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { TOOLS } from "./definitions.js";
|
|
2
|
-
import { handleReadFile } from "./file_system/read_file.js";
|
|
3
|
-
import { handleWriteFile } from "./file_system/write_file.js";
|
|
4
|
-
import { handleReplaceText } from "./file_system/replace_text.js";
|
|
5
|
-
import { handlePatchFile } from "./file_system/patch_file.js";
|
|
6
|
-
import { handleGetFrameworkStatus } from "./framework/get_status.js";
|
|
7
|
-
import { handleUpdateProjectMemory } from "./framework/update_memory.js";
|
|
8
|
-
import { handleOrchestrateLoop } from "./framework/orchestrate.js";
|
|
9
|
-
import { handleUpdateContractHash } from "./framework/update_contract_hash.js";
|
|
10
|
-
import { handleSendAgentMessage } from "./messaging/send_message.js";
|
|
11
|
-
import { handleLogAgentAction } from "./messaging/log_action.js";
|
|
12
|
-
// Map of tool names to their handler functions
|
|
13
|
-
export const toolHandlers = {
|
|
14
|
-
read_file: handleReadFile,
|
|
15
|
-
write_file: handleWriteFile,
|
|
16
|
-
replace_text: handleReplaceText,
|
|
17
|
-
patch_file: handlePatchFile,
|
|
18
|
-
get_framework_status: handleGetFrameworkStatus,
|
|
19
|
-
update_project_memory: handleUpdateProjectMemory,
|
|
20
|
-
orchestrate_loop: handleOrchestrateLoop,
|
|
21
|
-
send_agent_message: handleSendAgentMessage,
|
|
22
|
-
log_agent_action: handleLogAgentAction,
|
|
23
|
-
update_contract_hash: handleUpdateContractHash,
|
|
24
|
-
};
|
|
25
|
-
export { TOOLS };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { resolveFrameworkDir } from "../../utils/security.js";
|
|
4
|
-
export function handleLogAgentAction(projectRoot, args) {
|
|
5
|
-
const { agent, action, traceId, status, summary } = args;
|
|
6
|
-
const findings = args.findings ? args.findings.split(",").map(f => f.trim()) : [];
|
|
7
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
8
|
-
const agentName = agent.replace("@", "");
|
|
9
|
-
const logPath = path.join(projectRoot, frameworkDir, "logs", `${agentName}.json`);
|
|
10
|
-
const logEntry = {
|
|
11
|
-
timestamp: new Date().toISOString(),
|
|
12
|
-
agent,
|
|
13
|
-
action,
|
|
14
|
-
requestId: traceId,
|
|
15
|
-
status,
|
|
16
|
-
summary,
|
|
17
|
-
findings
|
|
18
|
-
};
|
|
19
|
-
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
|
20
|
-
fs.appendFileSync(logPath, JSON.stringify(logEntry) + "\n");
|
|
21
|
-
return { content: [{ type: "text", text: `✅ Action logged for ${agent} to ${path.join(frameworkDir, "logs", `${agentName}.json`)}` }] };
|
|
22
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { resolveFrameworkDir } from "../../utils/security.js";
|
|
4
|
-
export function handleSendAgentMessage(projectRoot, args) {
|
|
5
|
-
const { to, category, content, traceId } = args;
|
|
6
|
-
const from = args.from || "@mcp";
|
|
7
|
-
const frameworkDir = resolveFrameworkDir(projectRoot);
|
|
8
|
-
const messagesDir = path.join(projectRoot, frameworkDir, "messages");
|
|
9
|
-
const agentName = to.replace("@", "");
|
|
10
|
-
const messagePath = path.join(messagesDir, `${agentName}.json`);
|
|
11
|
-
const lockPath = path.join(messagesDir, ".lock");
|
|
12
|
-
// Hermes Lock Protocol: Retry 3 times with 500ms delay
|
|
13
|
-
let retries = 3;
|
|
14
|
-
while (retries > 0 && fs.existsSync(lockPath)) {
|
|
15
|
-
const stats = fs.statSync(lockPath);
|
|
16
|
-
if (Date.now() - stats.mtimeMs > 5000) {
|
|
17
|
-
fs.unlinkSync(lockPath);
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
retries--;
|
|
21
|
-
if (retries > 0) {
|
|
22
|
-
const start = Date.now();
|
|
23
|
-
while (Date.now() - start < 500)
|
|
24
|
-
; // Simple busy wait for MCP environment
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
try {
|
|
28
|
-
fs.mkdirSync(messagesDir, { recursive: true });
|
|
29
|
-
fs.writeFileSync(lockPath, `Locked by ${from} at ${new Date().toISOString()}`);
|
|
30
|
-
const message = {
|
|
31
|
-
timestamp: new Date().toISOString(),
|
|
32
|
-
from,
|
|
33
|
-
to,
|
|
34
|
-
category,
|
|
35
|
-
traceId,
|
|
36
|
-
content,
|
|
37
|
-
status: "PENDING"
|
|
38
|
-
};
|
|
39
|
-
fs.appendFileSync(messagePath, JSON.stringify(message) + "\n");
|
|
40
|
-
return { content: [{ type: "text", text: `✅ Message sent to ${to} (from: ${from})` }] };
|
|
41
|
-
}
|
|
42
|
-
finally {
|
|
43
|
-
if (fs.existsSync(lockPath))
|
|
44
|
-
fs.unlinkSync(lockPath);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { execFileSync } from "child_process";
|
|
2
|
-
/**
|
|
3
|
-
* Executes a CLI command safely using execFileSync (no shell injection risk).
|
|
4
|
-
* Captures stderr gracefully to prevent stream crashes.
|
|
5
|
-
*/
|
|
6
|
-
export function safeExec(command, args, cwd, timeout) {
|
|
7
|
-
try {
|
|
8
|
-
return execFileSync(command, args, {
|
|
9
|
-
cwd,
|
|
10
|
-
encoding: "utf8",
|
|
11
|
-
timeout: timeout || 30000,
|
|
12
|
-
maxBuffer: 1024 * 1024,
|
|
13
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
const err = error;
|
|
18
|
-
throw new Error(err.stderr || err.message || "Command execution failed", { cause: error });
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
/**
|
|
4
|
-
* Validates and resolves a user-provided path to prevent path traversal attacks.
|
|
5
|
-
* Ensures the resolved path stays within the project root boundary.
|
|
6
|
-
*/
|
|
7
|
-
export function safePath(projectRoot, userPath) {
|
|
8
|
-
const resolved = path.resolve(projectRoot, userPath);
|
|
9
|
-
const normalizedRoot = path.resolve(projectRoot);
|
|
10
|
-
if (!resolved.startsWith(normalizedRoot + path.sep) && resolved !== normalizedRoot) {
|
|
11
|
-
throw new Error(`Access denied: path "${userPath}" escapes project root.`);
|
|
12
|
-
}
|
|
13
|
-
return resolved;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Resolves the active framework directory.
|
|
17
|
-
* Priority: package.json `enderun.frameworkDir` → `.enderun` → adapter dirs.
|
|
18
|
-
* This ensures the canonical framework directory is always used,
|
|
19
|
-
* even when adapter-specific dirs (e.g. `.gemini`) exist alongside it.
|
|
20
|
-
*/
|
|
21
|
-
export function resolveFrameworkDir(projectRoot) {
|
|
22
|
-
// 1. Authoritative source: read from package.json if present
|
|
23
|
-
try {
|
|
24
|
-
const pkgPath = path.join(projectRoot, "package.json");
|
|
25
|
-
if (fs.existsSync(pkgPath)) {
|
|
26
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
27
|
-
const enderunConfig = pkg["enderun"];
|
|
28
|
-
if (enderunConfig && typeof enderunConfig["frameworkDir"] === "string") {
|
|
29
|
-
return enderunConfig["frameworkDir"];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
// ignore — fall through to filesystem scan
|
|
35
|
-
}
|
|
36
|
-
// 2. Filesystem scan — .enderun takes precedence over adapter-specific dirs
|
|
37
|
-
const candidates = [
|
|
38
|
-
".enderun",
|
|
39
|
-
".claude",
|
|
40
|
-
".grok",
|
|
41
|
-
".agent",
|
|
42
|
-
".gemini/antigravity",
|
|
43
|
-
".gemini/antigravity-cli",
|
|
44
|
-
".gemini",
|
|
45
|
-
];
|
|
46
|
-
for (const candidate of candidates) {
|
|
47
|
-
const candidatePath = path.join(projectRoot, candidate);
|
|
48
|
-
if (fs.existsSync(candidatePath)) {
|
|
49
|
-
return candidate;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return ".enderun";
|
|
53
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import { handleReplaceText } from "../../../src/tools/file_system/replace_text.js";
|
|
5
|
-
const TEST_DIR = path.join(__dirname, "../_temp_test_files");
|
|
6
|
-
const TEST_FILE = path.join(TEST_DIR, "test_file.txt");
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
fs.mkdirSync(TEST_DIR, { recursive: true });
|
|
9
|
-
});
|
|
10
|
-
afterEach(() => {
|
|
11
|
-
fs.rmSync(TEST_DIR, { recursive: true, force: true });
|
|
12
|
-
});
|
|
13
|
-
describe("handleReplaceText", () => {
|
|
14
|
-
it("should replace a single occurrence of text", () => {
|
|
15
|
-
fs.writeFileSync(TEST_FILE, "hello world", "utf8");
|
|
16
|
-
const args = {
|
|
17
|
-
path: TEST_FILE,
|
|
18
|
-
oldText: "world",
|
|
19
|
-
newText: "there",
|
|
20
|
-
};
|
|
21
|
-
const result = handleReplaceText(TEST_DIR, args);
|
|
22
|
-
expect(result.content[0].text).toContain("✅ Surgical edit successful");
|
|
23
|
-
expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("hello there");
|
|
24
|
-
});
|
|
25
|
-
it("should throw an error if text is not found", () => {
|
|
26
|
-
fs.writeFileSync(TEST_FILE, "hello world", "utf8");
|
|
27
|
-
const args = {
|
|
28
|
-
path: TEST_FILE,
|
|
29
|
-
oldText: "missing",
|
|
30
|
-
newText: "found",
|
|
31
|
-
};
|
|
32
|
-
expect(() => handleReplaceText(TEST_DIR, args)).toThrowError("Text not found in file");
|
|
33
|
-
});
|
|
34
|
-
it("should throw an error for ambiguous replacement if allowMultiple is false", () => {
|
|
35
|
-
fs.writeFileSync(TEST_FILE, "hello world world", "utf8");
|
|
36
|
-
const args = {
|
|
37
|
-
path: TEST_FILE,
|
|
38
|
-
oldText: "world",
|
|
39
|
-
newText: "there",
|
|
40
|
-
allowMultiple: false,
|
|
41
|
-
};
|
|
42
|
-
expect(() => handleReplaceText(TEST_DIR, args)).toThrowError("Ambiguous replacement");
|
|
43
|
-
});
|
|
44
|
-
it("should replace all occurrences of text if allowMultiple is true", () => {
|
|
45
|
-
fs.writeFileSync(TEST_FILE, "hello world world", "utf8");
|
|
46
|
-
const args = {
|
|
47
|
-
path: TEST_FILE,
|
|
48
|
-
oldText: "world",
|
|
49
|
-
newText: "there",
|
|
50
|
-
allowMultiple: true,
|
|
51
|
-
};
|
|
52
|
-
const result = handleReplaceText(TEST_DIR, args);
|
|
53
|
-
expect(result.content[0].text).toContain("✅ Surgical edit successful");
|
|
54
|
-
expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("hello there there");
|
|
55
|
-
});
|
|
56
|
-
it("should handle special characters in oldText when allowMultiple is true", () => {
|
|
57
|
-
fs.writeFileSync(TEST_FILE, "test.txt", "utf8");
|
|
58
|
-
const args = {
|
|
59
|
-
path: TEST_FILE,
|
|
60
|
-
oldText: ".txt",
|
|
61
|
-
newText: ".md",
|
|
62
|
-
allowMultiple: true,
|
|
63
|
-
};
|
|
64
|
-
const result = handleReplaceText(TEST_DIR, args);
|
|
65
|
-
expect(result.content[0].text).toContain("✅ Surgical edit successful");
|
|
66
|
-
expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("test.md");
|
|
67
|
-
});
|
|
68
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Installation
|
|
2
|
-
> `npm install --save @types/node`
|
|
3
|
-
|
|
4
|
-
# Summary
|
|
5
|
-
This package contains type definitions for node (https://nodejs.org/).
|
|
6
|
-
|
|
7
|
-
# Details
|
|
8
|
-
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node/v22.
|
|
9
|
-
|
|
10
|
-
### Additional Details
|
|
11
|
-
* Last updated: Mon, 11 May 2026 22:25:21 GMT
|
|
12
|
-
* Dependencies: [undici-types](https://npmjs.com/package/undici-types)
|
|
13
|
-
|
|
14
|
-
# Credits
|
|
15
|
-
These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [Alberto Schiabel](https://github.com/jkomyno), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [David Junger](https://github.com/touffy), [Mohsen Azimi](https://github.com/mohsen1), [Nikita Galkin](https://github.com/galkin), [Sebastian Silbermann](https://github.com/eps1lon), [Wilco Bakker](https://github.com/WilcoBakker), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), [Dmitry Semigradsky](https://github.com/Semigradsky), and [René](https://github.com/Renegade334).
|