@oobe-protocol-labs/sap-mcp-server 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +159 -0
- package/CHANGELOG.md +55 -0
- package/LICENSE +21 -0
- package/README.md +223 -0
- package/config.example.json +64 -0
- package/config.schema.json +370 -0
- package/config.secure-example.json +100 -0
- package/dist/adapters/index.d.ts +6 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +6 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/mcp/errors.d.ts +7 -0
- package/dist/adapters/mcp/errors.d.ts.map +1 -0
- package/dist/adapters/mcp/errors.js +10 -0
- package/dist/adapters/mcp/errors.js.map +1 -0
- package/dist/adapters/mcp/index.d.ts +8 -0
- package/dist/adapters/mcp/index.d.ts.map +1 -0
- package/dist/adapters/mcp/index.js +8 -0
- package/dist/adapters/mcp/index.js.map +1 -0
- package/dist/adapters/mcp/prompt-response.d.ts +13 -0
- package/dist/adapters/mcp/prompt-response.d.ts.map +1 -0
- package/dist/adapters/mcp/prompt-response.js +7 -0
- package/dist/adapters/mcp/prompt-response.js.map +1 -0
- package/dist/adapters/mcp/resource-response.d.ts +8 -0
- package/dist/adapters/mcp/resource-response.d.ts.map +1 -0
- package/dist/adapters/mcp/resource-response.js +7 -0
- package/dist/adapters/mcp/resource-response.js.map +1 -0
- package/dist/adapters/mcp/sdk-compat.d.ts +191 -0
- package/dist/adapters/mcp/sdk-compat.d.ts.map +1 -0
- package/dist/adapters/mcp/sdk-compat.js +606 -0
- package/dist/adapters/mcp/sdk-compat.js.map +1 -0
- package/dist/adapters/mcp/tool-response.d.ts +32 -0
- package/dist/adapters/mcp/tool-response.d.ts.map +1 -0
- package/dist/adapters/mcp/tool-response.js +27 -0
- package/dist/adapters/mcp/tool-response.js.map +1 -0
- package/dist/adapters/solana/commitment.d.ts +9 -0
- package/dist/adapters/solana/commitment.d.ts.map +1 -0
- package/dist/adapters/solana/commitment.js +14 -0
- package/dist/adapters/solana/commitment.js.map +1 -0
- package/dist/adapters/solana/connection.d.ts +10 -0
- package/dist/adapters/solana/connection.d.ts.map +1 -0
- package/dist/adapters/solana/connection.js +13 -0
- package/dist/adapters/solana/connection.js.map +1 -0
- package/dist/adapters/solana/index.d.ts +7 -0
- package/dist/adapters/solana/index.d.ts.map +1 -0
- package/dist/adapters/solana/index.js +7 -0
- package/dist/adapters/solana/index.js.map +1 -0
- package/dist/adapters/solana/public-key.d.ts +9 -0
- package/dist/adapters/solana/public-key.d.ts.map +1 -0
- package/dist/adapters/solana/public-key.js +11 -0
- package/dist/adapters/solana/public-key.js.map +1 -0
- package/dist/cli.d.ts +29 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +269 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/defaults.d.ts +28 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +28 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/env.d.ts +297 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +563 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/mcp-client-injection.d.ts +113 -0
- package/dist/config/mcp-client-injection.d.ts.map +1 -0
- package/dist/config/mcp-client-injection.js +453 -0
- package/dist/config/mcp-client-injection.js.map +1 -0
- package/dist/config/paths.d.ts +37 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +93 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/profiles.d.ts +85 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +346 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/config/schema.d.ts +9 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +8 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/secure-config.d.ts +607 -0
- package/dist/config/secure-config.d.ts.map +1 -0
- package/dist/config/secure-config.js +526 -0
- package/dist/config/secure-config.js.map +1 -0
- package/dist/config/setup.d.ts +42 -0
- package/dist/config/setup.d.ts.map +1 -0
- package/dist/config/setup.js +173 -0
- package/dist/config/setup.js.map +1 -0
- package/dist/config/wizard.d.ts +15 -0
- package/dist/config/wizard.d.ts.map +1 -0
- package/dist/config/wizard.js +1176 -0
- package/dist/config/wizard.js.map +1 -0
- package/dist/config-cli.d.ts +21 -0
- package/dist/config-cli.d.ts.map +1 -0
- package/dist/config-cli.js +679 -0
- package/dist/config-cli.js.map +1 -0
- package/dist/core/constants.d.ts +78 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +78 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/errors.d.ts +188 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +337 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/guards.d.ts +41 -0
- package/dist/core/guards.d.ts.map +1 -0
- package/dist/core/guards.js +93 -0
- package/dist/core/guards.js.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +64 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +159 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/result.d.ts +49 -0
- package/dist/core/result.d.ts.map +1 -0
- package/dist/core/result.js +61 -0
- package/dist/core/result.js.map +1 -0
- package/dist/core/types.d.ts +147 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +8 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/payments/http-adapter.d.ts +76 -0
- package/dist/payments/http-adapter.d.ts.map +1 -0
- package/dist/payments/http-adapter.js +126 -0
- package/dist/payments/http-adapter.js.map +1 -0
- package/dist/payments/index.d.ts +12 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +9 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/payments/json-rpc.d.ts +49 -0
- package/dist/payments/json-rpc.d.ts.map +1 -0
- package/dist/payments/json-rpc.js +53 -0
- package/dist/payments/json-rpc.js.map +1 -0
- package/dist/payments/monetization-gate.d.ts +49 -0
- package/dist/payments/monetization-gate.d.ts.map +1 -0
- package/dist/payments/monetization-gate.js +398 -0
- package/dist/payments/monetization-gate.js.map +1 -0
- package/dist/payments/oobe-facilitator-server.d.ts +71 -0
- package/dist/payments/oobe-facilitator-server.d.ts.map +1 -0
- package/dist/payments/oobe-facilitator-server.js +409 -0
- package/dist/payments/oobe-facilitator-server.js.map +1 -0
- package/dist/payments/pay-sh-spec.d.ts +44 -0
- package/dist/payments/pay-sh-spec.d.ts.map +1 -0
- package/dist/payments/pay-sh-spec.js +218 -0
- package/dist/payments/pay-sh-spec.js.map +1 -0
- package/dist/payments/pricing.d.ts +60 -0
- package/dist/payments/pricing.d.ts.map +1 -0
- package/dist/payments/pricing.js +272 -0
- package/dist/payments/pricing.js.map +1 -0
- package/dist/payments/usage-ledger.d.ts +84 -0
- package/dist/payments/usage-ledger.d.ts.map +1 -0
- package/dist/payments/usage-ledger.js +126 -0
- package/dist/payments/usage-ledger.js.map +1 -0
- package/dist/policy/bento-policy-engine.d.ts +71 -0
- package/dist/policy/bento-policy-engine.d.ts.map +1 -0
- package/dist/policy/bento-policy-engine.js +218 -0
- package/dist/policy/bento-policy-engine.js.map +1 -0
- package/dist/policy/default-policies.d.ts +9 -0
- package/dist/policy/default-policies.d.ts.map +1 -0
- package/dist/policy/default-policies.js +69 -0
- package/dist/policy/default-policies.js.map +1 -0
- package/dist/policy/hybrid-policy-engine.d.ts +95 -0
- package/dist/policy/hybrid-policy-engine.d.ts.map +1 -0
- package/dist/policy/hybrid-policy-engine.js +297 -0
- package/dist/policy/hybrid-policy-engine.js.map +1 -0
- package/dist/policy/index.d.ts +10 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +10 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/local-policy-engine.d.ts +119 -0
- package/dist/policy/local-policy-engine.d.ts.map +1 -0
- package/dist/policy/local-policy-engine.js +318 -0
- package/dist/policy/local-policy-engine.js.map +1 -0
- package/dist/policy/permission-checks.d.ts +19 -0
- package/dist/policy/permission-checks.d.ts.map +1 -0
- package/dist/policy/permission-checks.js +60 -0
- package/dist/policy/permission-checks.js.map +1 -0
- package/dist/policy/policy-engine.d.ts +57 -0
- package/dist/policy/policy-engine.d.ts.map +1 -0
- package/dist/policy/policy-engine.js +162 -0
- package/dist/policy/policy-engine.js.map +1 -0
- package/dist/policy/policy-types.d.ts +46 -0
- package/dist/policy/policy-types.d.ts.map +1 -0
- package/dist/policy/policy-types.js +5 -0
- package/dist/policy/policy-types.js.map +1 -0
- package/dist/policy/risk-level.d.ts +18 -0
- package/dist/policy/risk-level.d.ts.map +1 -0
- package/dist/policy/risk-level.js +46 -0
- package/dist/policy/risk-level.js.map +1 -0
- package/dist/policy/spending-limits.d.ts +17 -0
- package/dist/policy/spending-limits.d.ts.map +1 -0
- package/dist/policy/spending-limits.js +40 -0
- package/dist/policy/spending-limits.js.map +1 -0
- package/dist/prompts/context/sap-agent-context.prompt.d.ts +64 -0
- package/dist/prompts/context/sap-agent-context.prompt.d.ts.map +1 -0
- package/dist/prompts/context/sap-agent-context.prompt.js +336 -0
- package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -0
- package/dist/prompts/developer/debug-sap-error.prompt.d.ts +13 -0
- package/dist/prompts/developer/debug-sap-error.prompt.d.ts.map +1 -0
- package/dist/prompts/developer/debug-sap-error.prompt.js +78 -0
- package/dist/prompts/developer/debug-sap-error.prompt.js.map +1 -0
- package/dist/prompts/developer/generate-sap-integration.prompt.d.ts +13 -0
- package/dist/prompts/developer/generate-sap-integration.prompt.d.ts.map +1 -0
- package/dist/prompts/developer/generate-sap-integration.prompt.js +132 -0
- package/dist/prompts/developer/generate-sap-integration.prompt.js.map +1 -0
- package/dist/prompts/developer/index.d.ts +6 -0
- package/dist/prompts/developer/index.d.ts.map +1 -0
- package/dist/prompts/developer/index.js +6 -0
- package/dist/prompts/developer/index.js.map +1 -0
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts +13 -0
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts.map +1 -0
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js +97 -0
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js.map +1 -0
- package/dist/prompts/execution-proof/index.d.ts +6 -0
- package/dist/prompts/execution-proof/index.d.ts.map +1 -0
- package/dist/prompts/execution-proof/index.js +6 -0
- package/dist/prompts/execution-proof/index.js.map +1 -0
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts +13 -0
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts.map +1 -0
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.js +95 -0
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.js.map +1 -0
- package/dist/prompts/index.d.ts +5 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +5 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/payments/create-paid-api.prompt.d.ts +13 -0
- package/dist/prompts/payments/create-paid-api.prompt.d.ts.map +1 -0
- package/dist/prompts/payments/create-paid-api.prompt.js +142 -0
- package/dist/prompts/payments/create-paid-api.prompt.js.map +1 -0
- package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts +13 -0
- package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts.map +1 -0
- package/dist/prompts/payments/explain-x402-settlement.prompt.js +83 -0
- package/dist/prompts/payments/explain-x402-settlement.prompt.js.map +1 -0
- package/dist/prompts/payments/index.d.ts +6 -0
- package/dist/prompts/payments/index.d.ts.map +1 -0
- package/dist/prompts/payments/index.js +6 -0
- package/dist/prompts/payments/index.js.map +1 -0
- package/dist/prompts/register-prompts.d.ts +10 -0
- package/dist/prompts/register-prompts.d.ts.map +1 -0
- package/dist/prompts/register-prompts.js +40 -0
- package/dist/prompts/register-prompts.js.map +1 -0
- package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts +13 -0
- package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts.map +1 -0
- package/dist/prompts/registry/analyze-sap-agent.prompt.js +85 -0
- package/dist/prompts/registry/analyze-sap-agent.prompt.js.map +1 -0
- package/dist/prompts/registry/index.d.ts +6 -0
- package/dist/prompts/registry/index.d.ts.map +1 -0
- package/dist/prompts/registry/index.js +6 -0
- package/dist/prompts/registry/index.js.map +1 -0
- package/dist/prompts/registry/register-sap-agent.prompt.d.ts +13 -0
- package/dist/prompts/registry/register-sap-agent.prompt.d.ts.map +1 -0
- package/dist/prompts/registry/register-sap-agent.prompt.js +152 -0
- package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -0
- package/dist/remote/auth/index.d.ts +86 -0
- package/dist/remote/auth/index.d.ts.map +1 -0
- package/dist/remote/auth/index.js +152 -0
- package/dist/remote/auth/index.js.map +1 -0
- package/dist/remote/server.d.ts +140 -0
- package/dist/remote/server.d.ts.map +1 -0
- package/dist/remote/server.js +412 -0
- package/dist/remote/server.js.map +1 -0
- package/dist/resources/current/sap-current-config.resource.d.ts +30 -0
- package/dist/resources/current/sap-current-config.resource.d.ts.map +1 -0
- package/dist/resources/current/sap-current-config.resource.js +142 -0
- package/dist/resources/current/sap-current-config.resource.js.map +1 -0
- package/dist/resources/execution-proof/index.d.ts +5 -0
- package/dist/resources/execution-proof/index.d.ts.map +1 -0
- package/dist/resources/execution-proof/index.js +5 -0
- package/dist/resources/execution-proof/index.js.map +1 -0
- package/dist/resources/execution-proof/sap-execution-record.resource.d.ts +13 -0
- package/dist/resources/execution-proof/sap-execution-record.resource.d.ts.map +1 -0
- package/dist/resources/execution-proof/sap-execution-record.resource.js +75 -0
- package/dist/resources/execution-proof/sap-execution-record.resource.js.map +1 -0
- package/dist/resources/index.d.ts +5 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +5 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/memory/index.d.ts +5 -0
- package/dist/resources/memory/index.d.ts.map +1 -0
- package/dist/resources/memory/index.js +5 -0
- package/dist/resources/memory/index.js.map +1 -0
- package/dist/resources/memory/sap-memory.resource.d.ts +13 -0
- package/dist/resources/memory/sap-memory.resource.d.ts.map +1 -0
- package/dist/resources/memory/sap-memory.resource.js +77 -0
- package/dist/resources/memory/sap-memory.resource.js.map +1 -0
- package/dist/resources/profile/sap-active-profile.resource.d.ts +51 -0
- package/dist/resources/profile/sap-active-profile.resource.d.ts.map +1 -0
- package/dist/resources/profile/sap-active-profile.resource.js +119 -0
- package/dist/resources/profile/sap-active-profile.resource.js.map +1 -0
- package/dist/resources/register-resources.d.ts +10 -0
- package/dist/resources/register-resources.d.ts.map +1 -0
- package/dist/resources/register-resources.js +33 -0
- package/dist/resources/register-resources.js.map +1 -0
- package/dist/resources/registry/index.d.ts +6 -0
- package/dist/resources/registry/index.d.ts.map +1 -0
- package/dist/resources/registry/index.js +6 -0
- package/dist/resources/registry/index.js.map +1 -0
- package/dist/resources/registry/sap-agent.resource.d.ts +13 -0
- package/dist/resources/registry/sap-agent.resource.d.ts.map +1 -0
- package/dist/resources/registry/sap-agent.resource.js +75 -0
- package/dist/resources/registry/sap-agent.resource.js.map +1 -0
- package/dist/resources/registry/sap-global-registry.resource.d.ts +13 -0
- package/dist/resources/registry/sap-global-registry.resource.d.ts.map +1 -0
- package/dist/resources/registry/sap-global-registry.resource.js +71 -0
- package/dist/resources/registry/sap-global-registry.resource.js.map +1 -0
- package/dist/resources/reputation/index.d.ts +5 -0
- package/dist/resources/reputation/index.d.ts.map +1 -0
- package/dist/resources/reputation/index.js +5 -0
- package/dist/resources/reputation/index.js.map +1 -0
- package/dist/resources/reputation/sap-reputation.resource.d.ts +13 -0
- package/dist/resources/reputation/sap-reputation.resource.d.ts.map +1 -0
- package/dist/resources/reputation/sap-reputation.resource.js +75 -0
- package/dist/resources/reputation/sap-reputation.resource.js.map +1 -0
- package/dist/resources/stats/sap-network-stats.resource.d.ts +14 -0
- package/dist/resources/stats/sap-network-stats.resource.d.ts.map +1 -0
- package/dist/resources/stats/sap-network-stats.resource.js +86 -0
- package/dist/resources/stats/sap-network-stats.resource.js.map +1 -0
- package/dist/resources/tool-schema/index.d.ts +5 -0
- package/dist/resources/tool-schema/index.d.ts.map +1 -0
- package/dist/resources/tool-schema/index.js +5 -0
- package/dist/resources/tool-schema/index.js.map +1 -0
- package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts +13 -0
- package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts.map +1 -0
- package/dist/resources/tool-schema/sap-tool-schema.resource.js +75 -0
- package/dist/resources/tool-schema/sap-tool-schema.resource.js.map +1 -0
- package/dist/sap/index.d.ts +7 -0
- package/dist/sap/index.d.ts.map +1 -0
- package/dist/sap/index.js +6 -0
- package/dist/sap/index.js.map +1 -0
- package/dist/sap/sap-client-manager.d.ts +54 -0
- package/dist/sap/sap-client-manager.d.ts.map +1 -0
- package/dist/sap/sap-client-manager.js +129 -0
- package/dist/sap/sap-client-manager.js.map +1 -0
- package/dist/sap/sap-errors.d.ts +13 -0
- package/dist/sap/sap-errors.d.ts.map +1 -0
- package/dist/sap/sap-errors.js +23 -0
- package/dist/sap/sap-errors.js.map +1 -0
- package/dist/sap/sap-types.d.ts +69 -0
- package/dist/sap/sap-types.d.ts.map +1 -0
- package/dist/sap/sap-types.js +5 -0
- package/dist/sap/sap-types.js.map +1 -0
- package/dist/schemas/common.schema.d.ts +42 -0
- package/dist/schemas/common.schema.d.ts.map +1 -0
- package/dist/schemas/common.schema.js +36 -0
- package/dist/schemas/common.schema.js.map +1 -0
- package/dist/schemas/developer.schema.d.ts +31 -0
- package/dist/schemas/developer.schema.d.ts.map +1 -0
- package/dist/schemas/developer.schema.js +19 -0
- package/dist/schemas/developer.schema.js.map +1 -0
- package/dist/schemas/execution-proof.schema.d.ts +44 -0
- package/dist/schemas/execution-proof.schema.d.ts.map +1 -0
- package/dist/schemas/execution-proof.schema.js +26 -0
- package/dist/schemas/execution-proof.schema.js.map +1 -0
- package/dist/schemas/identity.schema.d.ts +34 -0
- package/dist/schemas/identity.schema.d.ts.map +1 -0
- package/dist/schemas/identity.schema.js +21 -0
- package/dist/schemas/identity.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +15 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +15 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/memory.schema.d.ts +34 -0
- package/dist/schemas/memory.schema.d.ts.map +1 -0
- package/dist/schemas/memory.schema.js +21 -0
- package/dist/schemas/memory.schema.js.map +1 -0
- package/dist/schemas/payments.schema.d.ts +37 -0
- package/dist/schemas/payments.schema.d.ts.map +1 -0
- package/dist/schemas/payments.schema.js +22 -0
- package/dist/schemas/payments.schema.js.map +1 -0
- package/dist/schemas/registry.schema.d.ts +65 -0
- package/dist/schemas/registry.schema.d.ts.map +1 -0
- package/dist/schemas/registry.schema.js +34 -0
- package/dist/schemas/registry.schema.js.map +1 -0
- package/dist/schemas/reputation.schema.d.ts +31 -0
- package/dist/schemas/reputation.schema.d.ts.map +1 -0
- package/dist/schemas/reputation.schema.js +20 -0
- package/dist/schemas/reputation.schema.js.map +1 -0
- package/dist/schemas/settlement.schema.d.ts +50 -0
- package/dist/schemas/settlement.schema.d.ts.map +1 -0
- package/dist/schemas/settlement.schema.js +29 -0
- package/dist/schemas/settlement.schema.js.map +1 -0
- package/dist/schemas/tool-schema.schema.d.ts +56 -0
- package/dist/schemas/tool-schema.schema.d.ts.map +1 -0
- package/dist/schemas/tool-schema.schema.js +26 -0
- package/dist/schemas/tool-schema.schema.js.map +1 -0
- package/dist/schemas/transaction.schema.d.ts +34 -0
- package/dist/schemas/transaction.schema.d.ts.map +1 -0
- package/dist/schemas/transaction.schema.js +20 -0
- package/dist/schemas/transaction.schema.js.map +1 -0
- package/dist/security/approval-required.d.ts +9 -0
- package/dist/security/approval-required.d.ts.map +1 -0
- package/dist/security/approval-required.js +10 -0
- package/dist/security/approval-required.js.map +1 -0
- package/dist/security/index.d.ts +9 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +9 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/private-key-guard.d.ts +11 -0
- package/dist/security/private-key-guard.d.ts.map +1 -0
- package/dist/security/private-key-guard.js +22 -0
- package/dist/security/private-key-guard.js.map +1 -0
- package/dist/security/prompt-injection-notes.d.ts +13 -0
- package/dist/security/prompt-injection-notes.d.ts.map +1 -0
- package/dist/security/prompt-injection-notes.js +23 -0
- package/dist/security/prompt-injection-notes.js.map +1 -0
- package/dist/security/tool-permissions.d.ts +30 -0
- package/dist/security/tool-permissions.d.ts.map +1 -0
- package/dist/security/tool-permissions.js +270 -0
- package/dist/security/tool-permissions.js.map +1 -0
- package/dist/security/unsafe-action-guard.d.ts +28 -0
- package/dist/security/unsafe-action-guard.d.ts.map +1 -0
- package/dist/security/unsafe-action-guard.js +175 -0
- package/dist/security/unsafe-action-guard.js.map +1 -0
- package/dist/server/create-server.d.ts +12 -0
- package/dist/server/create-server.d.ts.map +1 -0
- package/dist/server/create-server.js +57 -0
- package/dist/server/create-server.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +7 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/register-capabilities.d.ts +10 -0
- package/dist/server/register-capabilities.d.ts.map +1 -0
- package/dist/server/register-capabilities.js +23 -0
- package/dist/server/register-capabilities.js.map +1 -0
- package/dist/server/server-metadata.d.ts +32 -0
- package/dist/server/server-metadata.d.ts.map +1 -0
- package/dist/server/server-metadata.js +32 -0
- package/dist/server/server-metadata.js.map +1 -0
- package/dist/session/agent-session.d.ts +25 -0
- package/dist/session/agent-session.d.ts.map +1 -0
- package/dist/session/agent-session.js +35 -0
- package/dist/session/agent-session.js.map +1 -0
- package/dist/session/delegated-session.d.ts +20 -0
- package/dist/session/delegated-session.d.ts.map +1 -0
- package/dist/session/delegated-session.js +47 -0
- package/dist/session/delegated-session.js.map +1 -0
- package/dist/session/index.d.ts +10 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +9 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/redis-session-store.d.ts +89 -0
- package/dist/session/redis-session-store.d.ts.map +1 -0
- package/dist/session/redis-session-store.js +219 -0
- package/dist/session/redis-session-store.js.map +1 -0
- package/dist/session/session-limits.d.ts +20 -0
- package/dist/session/session-limits.d.ts.map +1 -0
- package/dist/session/session-limits.js +55 -0
- package/dist/session/session-limits.js.map +1 -0
- package/dist/session/session-permissions.d.ts +37 -0
- package/dist/session/session-permissions.d.ts.map +1 -0
- package/dist/session/session-permissions.js +58 -0
- package/dist/session/session-permissions.js.map +1 -0
- package/dist/session/session-store.d.ts +38 -0
- package/dist/session/session-store.d.ts.map +1 -0
- package/dist/session/session-store.js +62 -0
- package/dist/session/session-store.js.map +1 -0
- package/dist/session/session-types.d.ts +33 -0
- package/dist/session/session-types.d.ts.map +1 -0
- package/dist/session/session-types.js +5 -0
- package/dist/session/session-types.js.map +1 -0
- package/dist/signer/external-signer.d.ts +16 -0
- package/dist/signer/external-signer.d.ts.map +1 -0
- package/dist/signer/external-signer.js +128 -0
- package/dist/signer/external-signer.js.map +1 -0
- package/dist/signer/index.d.ts +9 -0
- package/dist/signer/index.d.ts.map +1 -0
- package/dist/signer/index.js +8 -0
- package/dist/signer/index.js.map +1 -0
- package/dist/signer/load-keypair.d.ts +15 -0
- package/dist/signer/load-keypair.d.ts.map +1 -0
- package/dist/signer/load-keypair.js +39 -0
- package/dist/signer/load-keypair.js.map +1 -0
- package/dist/signer/local-keypair-signer.d.ts +11 -0
- package/dist/signer/local-keypair-signer.d.ts.map +1 -0
- package/dist/signer/local-keypair-signer.js +46 -0
- package/dist/signer/local-keypair-signer.js.map +1 -0
- package/dist/signer/signer-resolver.d.ts +10 -0
- package/dist/signer/signer-resolver.d.ts.map +1 -0
- package/dist/signer/signer-resolver.js +63 -0
- package/dist/signer/signer-resolver.js.map +1 -0
- package/dist/signer/signer-types.d.ts +35 -0
- package/dist/signer/signer-types.d.ts.map +1 -0
- package/dist/signer/signer-types.js +5 -0
- package/dist/signer/signer-types.js.map +1 -0
- package/dist/signer/signing-proxy.d.ts +45 -0
- package/dist/signer/signing-proxy.d.ts.map +1 -0
- package/dist/signer/signing-proxy.js +300 -0
- package/dist/signer/signing-proxy.js.map +1 -0
- package/dist/tools/client-sdk-tools.d.ts +22 -0
- package/dist/tools/client-sdk-tools.d.ts.map +1 -0
- package/dist/tools/client-sdk-tools.js +220 -0
- package/dist/tools/client-sdk-tools.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/profile-tools.d.ts +12 -0
- package/dist/tools/profile-tools.d.ts.map +1 -0
- package/dist/tools/profile-tools.js +250 -0
- package/dist/tools/profile-tools.js.map +1 -0
- package/dist/tools/register-tools.d.ts +12 -0
- package/dist/tools/register-tools.d.ts.map +1 -0
- package/dist/tools/register-tools.js +36 -0
- package/dist/tools/register-tools.js.map +1 -0
- package/dist/tools/sap-network-stats.tool.d.ts +14 -0
- package/dist/tools/sap-network-stats.tool.d.ts.map +1 -0
- package/dist/tools/sap-network-stats.tool.js +101 -0
- package/dist/tools/sap-network-stats.tool.js.map +1 -0
- package/dist/tools/sap-sdk-tools.d.ts +15 -0
- package/dist/tools/sap-sdk-tools.d.ts.map +1 -0
- package/dist/tools/sap-sdk-tools.js +1515 -0
- package/dist/tools/sap-sdk-tools.js.map +1 -0
- package/dist/tools/sap-sns-tools.d.ts +35 -0
- package/dist/tools/sap-sns-tools.d.ts.map +1 -0
- package/dist/tools/sap-sns-tools.js +626 -0
- package/dist/tools/sap-sns-tools.js.map +1 -0
- package/dist/tools/skills-tools.d.ts +12 -0
- package/dist/tools/skills-tools.d.ts.map +1 -0
- package/dist/tools/skills-tools.js +273 -0
- package/dist/tools/skills-tools.js.map +1 -0
- package/dist/tools/transaction-tools.d.ts +14 -0
- package/dist/tools/transaction-tools.d.ts.map +1 -0
- package/dist/tools/transaction-tools.js +297 -0
- package/dist/tools/transaction-tools.js.map +1 -0
- package/dist/transports/http.d.ts +40 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +212 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/index.d.ts +6 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports/index.js +6 -0
- package/dist/transports/index.js.map +1 -0
- package/dist/transports/stdio.d.ts +14 -0
- package/dist/transports/stdio.d.ts.map +1 -0
- package/dist/transports/stdio.js +32 -0
- package/dist/transports/stdio.js.map +1 -0
- package/dist/tui/components.d.ts +59 -0
- package/dist/tui/components.d.ts.map +1 -0
- package/dist/tui/components.js +82 -0
- package/dist/tui/components.js.map +1 -0
- package/dist/tui/config-wizard.d.ts +12 -0
- package/dist/tui/config-wizard.d.ts.map +1 -0
- package/dist/tui/config-wizard.js +348 -0
- package/dist/tui/config-wizard.js.map +1 -0
- package/dist/tui/wizard-save.d.ts +51 -0
- package/dist/tui/wizard-save.d.ts.map +1 -0
- package/dist/tui/wizard-save.js +148 -0
- package/dist/tui/wizard-save.js.map +1 -0
- package/docs/00_README.md +45 -0
- package/docs/01_PRODUCT_OVERVIEW.md +69 -0
- package/docs/02_ARCHITECTURE_AND_REQUEST_FLOW.md +120 -0
- package/docs/03_CONFIGURATION_AND_WIZARD.md +143 -0
- package/docs/04_LOCAL_STDIO_USAGE.md +118 -0
- package/docs/05_REMOTE_VPS_DEPLOYMENT.md +136 -0
- package/docs/06_PAYMENTS_X402_AND_PAYSH.md +162 -0
- package/docs/07_ENDPOINTS_AND_CLIENTS.md +114 -0
- package/docs/08_SECURITY_POLICY_AND_SIGNING.md +134 -0
- package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +72 -0
- package/docs/10_OPERATIONS_RELEASE_AND_PM2.md +90 -0
- package/docs/11_CODE_QUALITY_AUDIT.md +49 -0
- package/ecosystem.config.example.cjs +55 -0
- package/package.json +132 -0
- package/skills/README.md +146 -0
- package/skills/sap-agent-registry/SKILL.md +39 -0
- package/skills/sap-agentkit/SKILL.md +40 -0
- package/skills/sap-defi/SKILL.md +51 -0
- package/skills/sap-discovery-indexing/SKILL.md +33 -0
- package/skills/sap-escrow-settlement/SKILL.md +37 -0
- package/skills/sap-ledger-session/SKILL.md +24 -0
- package/skills/sap-market-data/SKILL.md +36 -0
- package/skills/sap-mcp/SKILL.md +202 -0
- package/skills/sap-mcp/TOOL_REFERENCE.md +184 -0
- package/skills/sap-memory-vault/SKILL.md +29 -0
- package/skills/sap-nft-metaplex/SKILL.md +38 -0
- package/skills/sap-operations/SKILL.md +97 -0
- package/skills/sap-payments-x402/SKILL.md +47 -0
- package/skills/sap-reputation-attestation/SKILL.md +30 -0
- package/skills/sap-sns/SKILL.md +51 -0
- package/skills/sap-social-gaming/SKILL.md +30 -0
- package/skills/sap-solana-token/SKILL.md +32 -0
- package/skills/sap-staking/SKILL.md +24 -0
- package/skills/sap-tool-registry/SKILL.md +29 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client SDK Tools
|
|
3
|
+
*
|
|
4
|
+
* Implements 110 Synapse AgentKit tools from @oobe-protocol-labs/synapse-client-sdk:
|
|
5
|
+
* - Token, staking, and bridging tools
|
|
6
|
+
* - NFT, Metaplex, 3.Land, and DAS tools
|
|
7
|
+
* - DeFi protocol tools
|
|
8
|
+
* - Miscellaneous ecosystem tools
|
|
9
|
+
* - Blinks tools
|
|
10
|
+
*
|
|
11
|
+
* All tools use real SDK plugin classes.
|
|
12
|
+
*/
|
|
13
|
+
import { PublicKey } from '@solana/web3.js';
|
|
14
|
+
import { createTextResponse } from '../adapters/mcp/tool-response.js';
|
|
15
|
+
import { registerTool } from '../adapters/mcp/sdk-compat.js';
|
|
16
|
+
import { logger } from '../core/logger.js';
|
|
17
|
+
/**
|
|
18
|
+
* Initialize Client SDK (SynapseAgentKit) with all plugins
|
|
19
|
+
*/
|
|
20
|
+
let agentKit = null;
|
|
21
|
+
let pluginTools = null;
|
|
22
|
+
let jupiterProtocolTools = null;
|
|
23
|
+
/**
|
|
24
|
+
* @name registerLegacySolanaRpcTools
|
|
25
|
+
* @description Registers compatibility Solana RPC tools with native ESM-safe implementations.
|
|
26
|
+
* @param server - MCP server receiving the tool registrations.
|
|
27
|
+
* @param context - Runtime context containing the configured Solana connection.
|
|
28
|
+
*/
|
|
29
|
+
function registerLegacySolanaRpcTools(server, context) {
|
|
30
|
+
registerTool(server, 'sol_get_balance', {
|
|
31
|
+
title: 'Get SOL Balance',
|
|
32
|
+
description: 'Fetch the SOL balance for a wallet or account using the configured Solana RPC endpoint.',
|
|
33
|
+
inputSchema: {
|
|
34
|
+
address: { type: 'string', description: 'Wallet or account public key in base58' },
|
|
35
|
+
pubkey: { type: 'string', description: 'Alias for address' },
|
|
36
|
+
commitment: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
enum: ['processed', 'confirmed', 'finalized'],
|
|
39
|
+
description: 'Optional commitment override',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
}, async (input) => {
|
|
43
|
+
try {
|
|
44
|
+
const address = input.address ?? input.pubkey;
|
|
45
|
+
if (!address) {
|
|
46
|
+
throw new Error('address or pubkey is required');
|
|
47
|
+
}
|
|
48
|
+
const publicKey = new PublicKey(address);
|
|
49
|
+
const commitment = input.commitment ?? context.config.commitment;
|
|
50
|
+
const lamports = await context.connection.getBalance(publicKey, commitment);
|
|
51
|
+
return createTextResponse(JSON.stringify({
|
|
52
|
+
success: true,
|
|
53
|
+
address: publicKey.toBase58(),
|
|
54
|
+
lamports,
|
|
55
|
+
sol: lamports / 1_000_000_000,
|
|
56
|
+
commitment,
|
|
57
|
+
}, null, 2));
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
logger.error('Failed to get SOL balance', { error });
|
|
61
|
+
return createTextResponse(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`, { isError: true });
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async function initializeClientSdk(rpcUrl) {
|
|
66
|
+
if (agentKit) {
|
|
67
|
+
logger.debug('Client SDK already initialized');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
logger.info('Initializing Client SDK with all plugins', { rpcUrl });
|
|
71
|
+
try {
|
|
72
|
+
const sdk = await import('@oobe-protocol-labs/synapse-client-sdk/ai/plugins');
|
|
73
|
+
const { SynapseAgentKit, TokenPlugin, NFTPlugin, DeFiPlugin, MiscPlugin, BlinksPlugin, } = sdk;
|
|
74
|
+
agentKit = new SynapseAgentKit({ rpcUrl })
|
|
75
|
+
.use(TokenPlugin)
|
|
76
|
+
.use(NFTPlugin)
|
|
77
|
+
.use(DeFiPlugin)
|
|
78
|
+
.use(MiscPlugin)
|
|
79
|
+
.use(BlinksPlugin);
|
|
80
|
+
const tools = agentKit.getTools();
|
|
81
|
+
pluginTools = tools.map((tool) => ({
|
|
82
|
+
name: tool.name,
|
|
83
|
+
tool,
|
|
84
|
+
}));
|
|
85
|
+
logger.info('Client SDK tools cached', { count: pluginTools?.length || 0 });
|
|
86
|
+
// Log summary
|
|
87
|
+
const summary = agentKit.summary();
|
|
88
|
+
logger.info('AgentKit summary', {
|
|
89
|
+
plugins: Array.isArray(summary.plugins) ? summary.plugins.length : 0,
|
|
90
|
+
totalTools: summary.totalTools || 0,
|
|
91
|
+
totalProtocols: summary.totalProtocols || 0,
|
|
92
|
+
});
|
|
93
|
+
const protocols = await import('@oobe-protocol-labs/synapse-client-sdk/ai/tools/protocols');
|
|
94
|
+
const jupiterToolkit = protocols.createJupiterTools({
|
|
95
|
+
prettyJson: true,
|
|
96
|
+
});
|
|
97
|
+
jupiterProtocolTools = jupiterToolkit.tools.map((tool) => ({
|
|
98
|
+
name: tool.name,
|
|
99
|
+
tool,
|
|
100
|
+
}));
|
|
101
|
+
logger.info('Jupiter protocol tools cached', {
|
|
102
|
+
count: jupiterProtocolTools.length,
|
|
103
|
+
methods: jupiterToolkit.methodNames.length,
|
|
104
|
+
});
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
logger.error('Failed to initialize Client SDK', { error });
|
|
109
|
+
throw new Error(`Client SDK initialization failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @name registerClientSdkTools
|
|
114
|
+
* @description Registers Synapse Client SDK AgentKit plugin tools and ESM-safe compatibility RPC tools.
|
|
115
|
+
* @param server - MCP server receiving the tool registrations.
|
|
116
|
+
* @param context - Runtime context containing RPC configuration and connection state.
|
|
117
|
+
*/
|
|
118
|
+
export async function registerClientSdkTools(server, context) {
|
|
119
|
+
logger.info('Registering Client SDK tools via SynapseAgentKit');
|
|
120
|
+
registerLegacySolanaRpcTools(server, context);
|
|
121
|
+
try {
|
|
122
|
+
await initializeClientSdk(context.config.rpcUrl);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
logger.error('Failed to initialize Client SDK', { error });
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
if (!pluginTools) {
|
|
129
|
+
throw new Error('AgentKit tools not cached after initialization');
|
|
130
|
+
}
|
|
131
|
+
if (!jupiterProtocolTools) {
|
|
132
|
+
throw new Error('Jupiter protocol tools not cached after initialization');
|
|
133
|
+
}
|
|
134
|
+
// Tools that are blocked because they return placeholder responses or have known issues.
|
|
135
|
+
// Agents should use the SAP SDK equivalents instead.
|
|
136
|
+
const BLOCKED_AGENTKIT_TOOLS = new Set([
|
|
137
|
+
'sns_registerDomain', // Returns { status: 'instruction_ready' } — use sap_sns_register_agent_domain instead
|
|
138
|
+
]);
|
|
139
|
+
let registeredCount = 0;
|
|
140
|
+
let failedCount = 0;
|
|
141
|
+
let skippedCount = 0;
|
|
142
|
+
for (const { name, tool } of pluginTools) {
|
|
143
|
+
if (BLOCKED_AGENTKIT_TOOLS.has(name)) {
|
|
144
|
+
skippedCount++;
|
|
145
|
+
logger.warn('Skipping blocked AgentKit tool — use SAP SDK equivalent instead', { name });
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
registerTool(server, name, {
|
|
150
|
+
title: formatToolTitle(name),
|
|
151
|
+
description: tool.description || `${name} (Synapse AgentKit)`,
|
|
152
|
+
inputSchema: tool.schema || tool.inputSchema || {},
|
|
153
|
+
}, async (input) => {
|
|
154
|
+
try {
|
|
155
|
+
const result = await tool.invoke(input);
|
|
156
|
+
return createTextResponse(typeof result === 'string' ? result : JSON.stringify(result, null, 2));
|
|
157
|
+
}
|
|
158
|
+
catch (invokeError) {
|
|
159
|
+
logger.error(`Client SDK tool execution failed: ${name}`, {
|
|
160
|
+
error: invokeError,
|
|
161
|
+
input,
|
|
162
|
+
});
|
|
163
|
+
return createTextResponse(`Error executing ${name}: ${invokeError instanceof Error ? invokeError.message : 'Unknown error'}`, { isError: true });
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
registeredCount++;
|
|
167
|
+
logger.debug('Client SDK tool registered', { name });
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
failedCount++;
|
|
171
|
+
logger.error(`Failed to register Client SDK tool: ${name}`, { error });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
for (const { name, tool } of jupiterProtocolTools) {
|
|
175
|
+
try {
|
|
176
|
+
registerTool(server, name, {
|
|
177
|
+
title: formatToolTitle(name),
|
|
178
|
+
description: tool.description || `${name} (Synapse Jupiter Protocol)`,
|
|
179
|
+
inputSchema: tool.schema || {},
|
|
180
|
+
}, async (input) => {
|
|
181
|
+
try {
|
|
182
|
+
const result = await tool.invoke(input);
|
|
183
|
+
return createTextResponse(typeof result === 'string' ? result : JSON.stringify(result, null, 2));
|
|
184
|
+
}
|
|
185
|
+
catch (invokeError) {
|
|
186
|
+
logger.error(`Jupiter protocol tool execution failed: ${name}`, {
|
|
187
|
+
error: invokeError,
|
|
188
|
+
input,
|
|
189
|
+
});
|
|
190
|
+
return createTextResponse(`Error executing ${name}: ${invokeError instanceof Error ? invokeError.message : 'Unknown error'}`, { isError: true });
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
registeredCount++;
|
|
194
|
+
logger.debug('Jupiter protocol tool registered', { name });
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
failedCount++;
|
|
198
|
+
logger.error(`Failed to register Jupiter protocol tool: ${name}`, { error });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
logger.info('Client SDK tools registered', {
|
|
202
|
+
registered: registeredCount,
|
|
203
|
+
failed: failedCount,
|
|
204
|
+
skipped: skippedCount,
|
|
205
|
+
total: pluginTools.length,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Format tool name to title case
|
|
210
|
+
*/
|
|
211
|
+
function formatToolTitle(name) {
|
|
212
|
+
return name
|
|
213
|
+
.replace(/_/g, ' ')
|
|
214
|
+
.replace(/([A-Z])/g, ' $1')
|
|
215
|
+
.split(' ')
|
|
216
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
217
|
+
.join(' ')
|
|
218
|
+
.trim();
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=client-sdk-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-sdk-tools.js","sourceRoot":"","sources":["../../src/tools/client-sdk-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools module barrel export
|
|
3
|
+
*/
|
|
4
|
+
export { registerTools } from './register-tools.js';
|
|
5
|
+
export { registerSapSdkTools } from './sap-sdk-tools.js';
|
|
6
|
+
export { registerSapSnsTools } from './sap-sns-tools.js';
|
|
7
|
+
export { registerClientSdkTools } from './client-sdk-tools.js';
|
|
8
|
+
export { registerTransactionTools } from './transaction-tools.js';
|
|
9
|
+
export { registerProfileTools } from './profile-tools.js';
|
|
10
|
+
export { registerSkillsTools } from './skills-tools.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools module barrel export
|
|
3
|
+
*/
|
|
4
|
+
export { registerTools } from './register-tools.js';
|
|
5
|
+
// REAL SAP SDK TOOLS (75 tools)
|
|
6
|
+
export { registerSapSdkTools } from './sap-sdk-tools.js';
|
|
7
|
+
// REAL SAP SNS TOOLS — SNS integration exported by synapse-sap-sdk v0.21
|
|
8
|
+
export { registerSapSnsTools } from './sap-sns-tools.js';
|
|
9
|
+
// REAL CLIENT SDK TOOLS — SynapseAgentKit plugin tools plus compatibility tools
|
|
10
|
+
export { registerClientSdkTools } from './client-sdk-tools.js';
|
|
11
|
+
// REAL TRANSACTION TOOLS — decode, preview, sign, and submit Solana transactions
|
|
12
|
+
export { registerTransactionTools } from './transaction-tools.js';
|
|
13
|
+
// REAL PROFILE TOOLS — inspect and switch loaded SAP MCP profiles without exposing keypairs
|
|
14
|
+
export { registerProfileTools } from './profile-tools.js';
|
|
15
|
+
// REAL SKILL TOOLS — list, bundle, and install SAP MCP agent skills
|
|
16
|
+
export { registerSkillsTools } from './skills-tools.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,gCAAgC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,iFAAiF;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,4FAA4F;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,oEAAoE;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module profile-tools
|
|
3
|
+
* @description MCP tools for inspecting and switching SAP MCP profiles without exposing keypair paths or secret bytes.
|
|
4
|
+
*/
|
|
5
|
+
import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
6
|
+
import type { SapMcpContext } from '../core/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* @name registerProfileTools
|
|
9
|
+
* @description Registers profile inspection and runtime switching MCP tools.
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerProfileTools(server: Server, context: SapMcpContext): void;
|
|
12
|
+
//# sourceMappingURL=profile-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-tools.d.ts","sourceRoot":"","sources":["../../src/tools/profile-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGxE,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAoNpE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAuIjF"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module profile-tools
|
|
3
|
+
* @description MCP tools for inspecting and switching SAP MCP profiles without exposing keypair paths or secret bytes.
|
|
4
|
+
*/
|
|
5
|
+
import { registerTool } from '../adapters/mcp/sdk-compat.js';
|
|
6
|
+
import { createTextResponse } from '../adapters/mcp/tool-response.js';
|
|
7
|
+
import { getActiveProfile, getProfileConfigPath, listProfiles, loadProfileConfig, profileExists, setActiveProfile, } from '../config/profiles.js';
|
|
8
|
+
import { createSapClient } from '../sap/sap-client-manager.js';
|
|
9
|
+
import { resolveSigner } from '../signer/signer-resolver.js';
|
|
10
|
+
import { PolicyEngine } from '../policy/policy-engine.js';
|
|
11
|
+
import { loadConfig } from '../config/env.js';
|
|
12
|
+
/**
|
|
13
|
+
* @name getLoadedProfileName
|
|
14
|
+
* @description Returns the profile name represented by the current process/runtime.
|
|
15
|
+
*/
|
|
16
|
+
function getLoadedProfileName() {
|
|
17
|
+
return process.env.SAP_MCP_PROFILE || getActiveProfile();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @name getNetworkFromRpcUrl
|
|
21
|
+
* @description Derives a user-friendly Solana network label from an RPC URL.
|
|
22
|
+
*/
|
|
23
|
+
function getNetworkFromRpcUrl(rpcUrl) {
|
|
24
|
+
if (!rpcUrl) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
if (rpcUrl.includes('mainnet-beta') || rpcUrl.includes('mainnet')) {
|
|
28
|
+
return 'mainnet-beta';
|
|
29
|
+
}
|
|
30
|
+
if (rpcUrl.includes('testnet')) {
|
|
31
|
+
return 'testnet';
|
|
32
|
+
}
|
|
33
|
+
if (rpcUrl.includes('localhost') || rpcUrl.includes('127.0.0.1') || rpcUrl.includes('localnet')) {
|
|
34
|
+
return 'localnet';
|
|
35
|
+
}
|
|
36
|
+
return 'devnet';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @name assertProfileName
|
|
40
|
+
* @description Validates profile names before they are used to resolve config paths.
|
|
41
|
+
*/
|
|
42
|
+
function assertProfileName(profileName) {
|
|
43
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(profileName)) {
|
|
44
|
+
throw new Error('Invalid profileName. Use only letters, numbers, hyphens, and underscores.');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @name buildProfileSummary
|
|
49
|
+
* @description Builds redacted profile metadata suitable for MCP responses.
|
|
50
|
+
*/
|
|
51
|
+
function buildProfileSummary(profileName, context) {
|
|
52
|
+
const config = loadProfileConfig(profileName);
|
|
53
|
+
const loadedProfile = getLoadedProfileName();
|
|
54
|
+
return {
|
|
55
|
+
name: profileName,
|
|
56
|
+
configPath: getProfileConfigPath(profileName),
|
|
57
|
+
exists: Boolean(config),
|
|
58
|
+
isActive: profileName === getActiveProfile(),
|
|
59
|
+
isLoaded: profileName === loadedProfile,
|
|
60
|
+
mode: config?.mode,
|
|
61
|
+
rpcUrl: config?.rpcUrl,
|
|
62
|
+
network: getNetworkFromRpcUrl(config?.rpcUrl),
|
|
63
|
+
programId: config?.programId,
|
|
64
|
+
agentPubkey: config?.agentPubkey,
|
|
65
|
+
signerConfigured: Boolean(config?.walletPath || config?.externalSignerUrl || context.signer),
|
|
66
|
+
secretMaterial: 'never-exposed',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @name writeRuntimeProfileEnv
|
|
71
|
+
* @description Pins the current process to the selected profile for subsequent config/resource reads.
|
|
72
|
+
*/
|
|
73
|
+
function writeRuntimeProfileEnv(profileName) {
|
|
74
|
+
process.env.SAP_MCP_PROFILE = profileName;
|
|
75
|
+
process.env.SAP_MCP_CONFIG_PATH = getProfileConfigPath(profileName);
|
|
76
|
+
process.env.SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = 'false';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @name buildIdentityConsistency
|
|
80
|
+
* @description Compares public identifiers without reading or exposing keypair bytes.
|
|
81
|
+
*/
|
|
82
|
+
function buildIdentityConsistency(context) {
|
|
83
|
+
const signerPublicKey = context.signer?.publicKey.toBase58();
|
|
84
|
+
const configuredAgentPubkey = context.config.agentPubkey;
|
|
85
|
+
if (!signerPublicKey || !configuredAgentPubkey) {
|
|
86
|
+
return {
|
|
87
|
+
configuredAgentPubkey,
|
|
88
|
+
signerPublicKey,
|
|
89
|
+
matchesSigner: null,
|
|
90
|
+
status: 'not-checkable',
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const matchesSigner = configuredAgentPubkey === signerPublicKey;
|
|
94
|
+
return {
|
|
95
|
+
configuredAgentPubkey,
|
|
96
|
+
signerPublicKey,
|
|
97
|
+
matchesSigner,
|
|
98
|
+
status: matchesSigner ? 'consistent' : 'mismatch',
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @name reloadRuntimeProfile
|
|
103
|
+
* @description Replaces the live MCP context config, SAP client, signer, connection, and policy engine.
|
|
104
|
+
*/
|
|
105
|
+
async function reloadRuntimeProfile(context, profileName) {
|
|
106
|
+
const profileConfig = loadProfileConfig(profileName);
|
|
107
|
+
if (!profileConfig) {
|
|
108
|
+
throw new Error(`Profile "${profileName}" does not exist or has invalid config.`);
|
|
109
|
+
}
|
|
110
|
+
const nextConfig = loadConfig(getProfileConfigPath(profileName));
|
|
111
|
+
const signerResult = await resolveSigner(nextConfig);
|
|
112
|
+
const sapClient = await createSapClient(nextConfig);
|
|
113
|
+
setActiveProfile(profileName);
|
|
114
|
+
writeRuntimeProfileEnv(profileName);
|
|
115
|
+
context.config = nextConfig;
|
|
116
|
+
context.sapClient = sapClient;
|
|
117
|
+
context.connection = sapClient.connection;
|
|
118
|
+
context.signer = signerResult.signer;
|
|
119
|
+
context.policyEngine = new PolicyEngine(nextConfig);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* @name parseInput
|
|
123
|
+
* @description Narrows unknown MCP tool input into profile tool input.
|
|
124
|
+
*/
|
|
125
|
+
function parseInput(input) {
|
|
126
|
+
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
127
|
+
return {};
|
|
128
|
+
}
|
|
129
|
+
const record = input;
|
|
130
|
+
return {
|
|
131
|
+
profileName: typeof record.profileName === 'string' ? record.profileName : undefined,
|
|
132
|
+
confirm: typeof record.confirm === 'boolean' ? record.confirm : undefined,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* @name registerProfileTools
|
|
137
|
+
* @description Registers profile inspection and runtime switching MCP tools.
|
|
138
|
+
*/
|
|
139
|
+
export function registerProfileTools(server, context) {
|
|
140
|
+
registerTool(server, 'sap_profile_current', {
|
|
141
|
+
title: 'Show Current SAP MCP Profile',
|
|
142
|
+
description: 'Return the currently loaded SAP MCP profile and redacted signer/config metadata.',
|
|
143
|
+
inputSchema: {},
|
|
144
|
+
}, async () => createTextResponse(JSON.stringify({
|
|
145
|
+
loadedProfile: getLoadedProfileName(),
|
|
146
|
+
activeProfile: getActiveProfile(),
|
|
147
|
+
runtime: {
|
|
148
|
+
mode: context.config.mode,
|
|
149
|
+
rpcUrl: context.config.rpcUrl,
|
|
150
|
+
network: getNetworkFromRpcUrl(context.config.rpcUrl),
|
|
151
|
+
programId: context.config.programId,
|
|
152
|
+
signerPublicKey: context.signer?.publicKey.toBase58(),
|
|
153
|
+
signerConfigured: Boolean(context.signer),
|
|
154
|
+
secretMaterial: 'never-exposed',
|
|
155
|
+
},
|
|
156
|
+
identityConsistency: buildIdentityConsistency(context),
|
|
157
|
+
policy: context.policyEngine.getRuntimeStatus(),
|
|
158
|
+
profile: buildProfileSummary(getLoadedProfileName(), context),
|
|
159
|
+
}, null, 2)));
|
|
160
|
+
registerTool(server, 'sap_profile_list', {
|
|
161
|
+
title: 'List SAP MCP Profiles',
|
|
162
|
+
description: 'List available SAP MCP profiles with redacted signer metadata and no wallet paths.',
|
|
163
|
+
inputSchema: {},
|
|
164
|
+
}, async () => createTextResponse(JSON.stringify({
|
|
165
|
+
loadedProfile: getLoadedProfileName(),
|
|
166
|
+
activeProfile: getActiveProfile(),
|
|
167
|
+
profiles: listProfiles().map((profile) => buildProfileSummary(profile.name, context)),
|
|
168
|
+
}, null, 2)));
|
|
169
|
+
registerTool(server, 'sap_profile_public_key', {
|
|
170
|
+
title: 'Show SAP MCP Profile Agent Public Key',
|
|
171
|
+
description: 'Return the configured public agent key for a profile without reading or exposing keypair bytes.',
|
|
172
|
+
inputSchema: {
|
|
173
|
+
profileName: {
|
|
174
|
+
type: 'string',
|
|
175
|
+
description: 'Profile name. Defaults to the loaded profile.',
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
}, async (input) => {
|
|
179
|
+
try {
|
|
180
|
+
const profileName = parseInput(input).profileName || getLoadedProfileName();
|
|
181
|
+
assertProfileName(profileName);
|
|
182
|
+
const profile = buildProfileSummary(profileName, context);
|
|
183
|
+
if (!profile.exists) {
|
|
184
|
+
throw new Error(`Profile "${profileName}" does not exist.`);
|
|
185
|
+
}
|
|
186
|
+
return createTextResponse(JSON.stringify({
|
|
187
|
+
profileName,
|
|
188
|
+
agentPubkey: profile.agentPubkey || null,
|
|
189
|
+
configured: Boolean(profile.agentPubkey),
|
|
190
|
+
mode: profile.mode,
|
|
191
|
+
rpcUrl: profile.rpcUrl,
|
|
192
|
+
network: profile.network,
|
|
193
|
+
secretMaterial: 'never-exposed',
|
|
194
|
+
}, null, 2));
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
return createTextResponse(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`, { isError: true });
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
registerTool(server, 'sap_profile_switch', {
|
|
201
|
+
title: 'Switch Loaded SAP MCP Profile',
|
|
202
|
+
description: 'Switch the live SAP MCP runtime to another existing profile and reload client, signer, connection, and policy.',
|
|
203
|
+
inputSchema: {
|
|
204
|
+
profileName: {
|
|
205
|
+
type: 'string',
|
|
206
|
+
description: 'Existing profile name to load.',
|
|
207
|
+
},
|
|
208
|
+
confirm: {
|
|
209
|
+
type: 'boolean',
|
|
210
|
+
description: 'Must be true because switching profile can change signer, network, and policy.',
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
}, async (input) => {
|
|
214
|
+
try {
|
|
215
|
+
const parsed = parseInput(input);
|
|
216
|
+
if (!parsed.profileName) {
|
|
217
|
+
throw new Error('profileName is required.');
|
|
218
|
+
}
|
|
219
|
+
assertProfileName(parsed.profileName);
|
|
220
|
+
if (!profileExists(parsed.profileName)) {
|
|
221
|
+
throw new Error(`Profile "${parsed.profileName}" does not exist.`);
|
|
222
|
+
}
|
|
223
|
+
const previousProfile = getLoadedProfileName();
|
|
224
|
+
const profile = buildProfileSummary(parsed.profileName, context);
|
|
225
|
+
if (!parsed.confirm) {
|
|
226
|
+
return createTextResponse(JSON.stringify({
|
|
227
|
+
success: false,
|
|
228
|
+
requiresConfirmation: true,
|
|
229
|
+
message: 'Profile switch can change signer, network, and policy. Call again with confirm: true to reload runtime.',
|
|
230
|
+
previousProfile,
|
|
231
|
+
targetProfile: profile,
|
|
232
|
+
}, null, 2));
|
|
233
|
+
}
|
|
234
|
+
await reloadRuntimeProfile(context, parsed.profileName);
|
|
235
|
+
const response = {
|
|
236
|
+
success: true,
|
|
237
|
+
previousProfile,
|
|
238
|
+
loadedProfile: parsed.profileName,
|
|
239
|
+
profile: buildProfileSummary(parsed.profileName, context),
|
|
240
|
+
runtimeReloaded: true,
|
|
241
|
+
message: `Loaded SAP MCP profile "${parsed.profileName}".`,
|
|
242
|
+
};
|
|
243
|
+
return createTextResponse(JSON.stringify(response, null, 2));
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
return createTextResponse(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`, { isError: true });
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=profile-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-tools.js","sourceRoot":"","sources":["../../src/tools/profile-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import type { SapMcpContext } from '../core/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Register all tools with the MCP server.
|
|
5
|
+
*
|
|
6
|
+
* @name registerTools
|
|
7
|
+
* @description Registers SAP SDK, Synapse Client SDK, network, and transaction tools before the server is exposed.
|
|
8
|
+
* @param server - MCP server receiving tool definitions and handlers.
|
|
9
|
+
* @param context - Shared runtime context with SAP client, signer, policy, and configuration.
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerTools(server: Server, context: SapMcpContext): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=register-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAYtD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBzF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { logger } from '../core/logger.js';
|
|
2
|
+
import { getRegisteredTools } from '../adapters/mcp/sdk-compat.js';
|
|
3
|
+
import { registerSapSdkTools } from './sap-sdk-tools.js';
|
|
4
|
+
import { registerSapSnsTools } from './sap-sns-tools.js';
|
|
5
|
+
import { sapNetworkStatsTool } from './sap-network-stats.tool.js';
|
|
6
|
+
import { registerClientSdkTools } from './client-sdk-tools.js';
|
|
7
|
+
import { registerTransactionTools } from './transaction-tools.js';
|
|
8
|
+
import { registerProfileTools } from './profile-tools.js';
|
|
9
|
+
import { registerSkillsTools } from './skills-tools.js';
|
|
10
|
+
/**
|
|
11
|
+
* Register all tools with the MCP server.
|
|
12
|
+
*
|
|
13
|
+
* @name registerTools
|
|
14
|
+
* @description Registers SAP SDK, Synapse Client SDK, network, and transaction tools before the server is exposed.
|
|
15
|
+
* @param server - MCP server receiving tool definitions and handlers.
|
|
16
|
+
* @param context - Shared runtime context with SAP client, signer, policy, and configuration.
|
|
17
|
+
*/
|
|
18
|
+
export async function registerTools(server, context) {
|
|
19
|
+
logger.info('Registering tools');
|
|
20
|
+
// Register SAP SDK tools backed by @oobe-protocol-labs/synapse-sap-sdk.
|
|
21
|
+
registerSapSdkTools(server, context);
|
|
22
|
+
// Register SNS integration tools backed by synapse-sap-sdk v0.21.
|
|
23
|
+
registerSapSnsTools(server, context);
|
|
24
|
+
// Register network stats tool backed by SAP discovery/global registry APIs.
|
|
25
|
+
sapNetworkStatsTool(server, context);
|
|
26
|
+
// Register AgentKit tools from @oobe-protocol-labs/synapse-client-sdk.
|
|
27
|
+
await registerClientSdkTools(server, context);
|
|
28
|
+
// Register transaction tools
|
|
29
|
+
registerTransactionTools(server, context);
|
|
30
|
+
// Register profile tools with redacted signer metadata and live runtime reload.
|
|
31
|
+
registerProfileTools(server, context);
|
|
32
|
+
// Register bundled agent skill pack tools.
|
|
33
|
+
registerSkillsTools(server, context);
|
|
34
|
+
logger.info('Tools registered', { count: getRegisteredTools(server).length });
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=register-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-tools.js","sourceRoot":"","sources":["../../src/tools/register-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,OAAsB;IACxE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEjC,wEAAwE;IACxE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,kEAAkE;IAClE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,4EAA4E;IAC5E,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,uEAAuE;IACvE,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9C,6BAA6B;IAC7B,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1C,gFAAgF;IAChF,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,2CAA2C;IAC3C,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SAP network statistics MCP tool.
|
|
3
|
+
*
|
|
4
|
+
* Uses the public Synapse SAP SDK discovery/global-registry APIs. It does not
|
|
5
|
+
* bulk-read dynamic Anchor account namespaces or synthesize missing counters.
|
|
6
|
+
*/
|
|
7
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
8
|
+
import type { SapMcpContext } from '../core/types.js';
|
|
9
|
+
/**
|
|
10
|
+
* @name sapNetworkStatsTool
|
|
11
|
+
* @description Registers a real SDK-backed SAP network statistics tool.
|
|
12
|
+
*/
|
|
13
|
+
export declare function sapNetworkStatsTool(server: Server, context: SapMcpContext): void;
|
|
14
|
+
//# sourceMappingURL=sap-network-stats.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sap-network-stats.tool.d.ts","sourceRoot":"","sources":["../../src/tools/sap-network-stats.tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAoCtD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA6DhF"}
|