@oobe-protocol-labs/sap-mcp-server 0.9.16 → 0.9.20
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 +8 -7
- package/CHANGELOG.md +199 -0
- package/README.md +3 -3
- package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
- package/USER_DOCS/04_CLIENT_CONFIGS.md +3 -3
- package/USER_DOCS/05_SKILLS_AND_TOOLS.md +16 -8
- package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +5 -5
- package/config.example.json +5 -4
- package/config.schema.json +7 -2
- package/config.secure-example.json +5 -4
- package/dist/adapters/index.d.ts +7 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +7 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mcp/errors.d.ts +13 -1
- package/dist/adapters/mcp/errors.d.ts.map +1 -1
- package/dist/adapters/mcp/errors.js +13 -1
- package/dist/adapters/mcp/errors.js.map +1 -1
- package/dist/adapters/mcp/index.d.ts +7 -1
- package/dist/adapters/mcp/index.d.ts.map +1 -1
- package/dist/adapters/mcp/index.js +7 -1
- package/dist/adapters/mcp/index.js.map +1 -1
- package/dist/adapters/mcp/prompt-response.d.ts +13 -1
- package/dist/adapters/mcp/prompt-response.d.ts.map +1 -1
- package/dist/adapters/mcp/prompt-response.js +13 -1
- package/dist/adapters/mcp/prompt-response.js.map +1 -1
- package/dist/adapters/mcp/resource-response.d.ts +14 -1
- package/dist/adapters/mcp/resource-response.d.ts.map +1 -1
- package/dist/adapters/mcp/resource-response.js +14 -1
- package/dist/adapters/mcp/resource-response.js.map +1 -1
- package/dist/adapters/mcp/sdk-compat.d.ts +11 -3
- package/dist/adapters/mcp/sdk-compat.d.ts.map +1 -1
- package/dist/adapters/mcp/sdk-compat.js +213 -24
- package/dist/adapters/mcp/sdk-compat.js.map +1 -1
- package/dist/adapters/mcp/tool-response.d.ts +39 -4
- package/dist/adapters/mcp/tool-response.d.ts.map +1 -1
- package/dist/adapters/mcp/tool-response.js +39 -4
- package/dist/adapters/mcp/tool-response.js.map +1 -1
- package/dist/adapters/solana/commitment.d.ts +14 -2
- package/dist/adapters/solana/commitment.d.ts.map +1 -1
- package/dist/adapters/solana/commitment.js +14 -2
- package/dist/adapters/solana/commitment.js.map +1 -1
- package/dist/adapters/solana/connection.d.ts +11 -2
- package/dist/adapters/solana/connection.d.ts.map +1 -1
- package/dist/adapters/solana/connection.js +11 -2
- package/dist/adapters/solana/connection.js.map +1 -1
- package/dist/adapters/solana/index.d.ts +7 -1
- package/dist/adapters/solana/index.d.ts.map +1 -1
- package/dist/adapters/solana/index.js +7 -1
- package/dist/adapters/solana/index.js.map +1 -1
- package/dist/adapters/solana/public-key.d.ts +11 -2
- package/dist/adapters/solana/public-key.d.ts.map +1 -1
- package/dist/adapters/solana/public-key.js +11 -2
- package/dist/adapters/solana/public-key.js.map +1 -1
- package/dist/config/defaults.d.ts +5 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +5 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/env.d.ts +4 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +11 -6
- package/dist/config/env.js.map +1 -1
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-client-injection.d.ts.map +1 -1
- package/dist/config/mcp-client-injection.js +97 -1
- package/dist/config/mcp-client-injection.js.map +1 -1
- package/dist/config/paths.d.ts +5 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +5 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/profiles.d.ts +3 -10
- package/dist/config/profiles.d.ts.map +1 -1
- package/dist/config/profiles.js +5 -0
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/schema.d.ts +5 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +5 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/secure-config.d.ts +5 -0
- package/dist/config/secure-config.d.ts.map +1 -1
- package/dist/config/secure-config.js +5 -0
- package/dist/config/secure-config.js.map +1 -1
- package/dist/config/setup.d.ts +5 -0
- package/dist/config/setup.d.ts.map +1 -1
- package/dist/config/setup.js +5 -0
- package/dist/config/setup.js.map +1 -1
- package/dist/config-cli.d.ts +3 -13
- package/dist/config-cli.d.ts.map +1 -1
- package/dist/config-cli.js +5 -0
- package/dist/config-cli.js.map +1 -1
- package/dist/core/constants.d.ts +25 -6
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +27 -8
- package/dist/core/constants.js.map +1 -1
- package/dist/core/errors.d.ts +5 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +5 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/guards.d.ts +5 -0
- package/dist/core/guards.d.ts.map +1 -1
- package/dist/core/guards.js +3 -1
- package/dist/core/guards.js.map +1 -1
- package/dist/core/index.d.ts +7 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/result.d.ts +77 -9
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/result.js +68 -9
- package/dist/core/result.js.map +1 -1
- package/dist/core/types.d.ts +5 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +3 -4
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/payments/facilitator-rpc-fallback.d.ts.map +1 -1
- package/dist/payments/facilitator-rpc-fallback.js +95 -0
- package/dist/payments/facilitator-rpc-fallback.js.map +1 -1
- package/dist/payments/hosted-tool-eligibility.d.ts +1 -0
- package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -1
- package/dist/payments/hosted-tool-eligibility.js +1 -0
- package/dist/payments/hosted-tool-eligibility.js.map +1 -1
- package/dist/payments/mcp-session-cache.d.ts +35 -0
- package/dist/payments/mcp-session-cache.d.ts.map +1 -0
- package/dist/payments/mcp-session-cache.js +83 -0
- package/dist/payments/mcp-session-cache.js.map +1 -0
- package/dist/payments/monetization-gate.d.ts +5 -0
- package/dist/payments/monetization-gate.d.ts.map +1 -1
- package/dist/payments/monetization-gate.js +24 -1
- package/dist/payments/monetization-gate.js.map +1 -1
- package/dist/payments/pricing.d.ts +1 -0
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +64 -8
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/usage-ledger.d.ts +36 -2
- package/dist/payments/usage-ledger.d.ts.map +1 -1
- package/dist/payments/usage-ledger.js +121 -4
- package/dist/payments/usage-ledger.js.map +1 -1
- package/dist/payments/x402-paid-call.d.ts +50 -0
- package/dist/payments/x402-paid-call.d.ts.map +1 -1
- package/dist/payments/x402-paid-call.js +171 -0
- package/dist/payments/x402-paid-call.js.map +1 -1
- package/dist/policy/default-policies.d.ts +18 -2
- package/dist/policy/default-policies.d.ts.map +1 -1
- package/dist/policy/default-policies.js +18 -2
- package/dist/policy/default-policies.js.map +1 -1
- package/dist/policy/index.d.ts +6 -3
- package/dist/policy/index.d.ts.map +1 -1
- package/dist/policy/index.js +6 -3
- package/dist/policy/index.js.map +1 -1
- package/dist/policy/local-policy-engine.d.ts +71 -13
- package/dist/policy/local-policy-engine.d.ts.map +1 -1
- package/dist/policy/local-policy-engine.js +33 -11
- package/dist/policy/local-policy-engine.js.map +1 -1
- package/dist/policy/permission-checks.d.ts +29 -3
- package/dist/policy/permission-checks.d.ts.map +1 -1
- package/dist/policy/permission-checks.js +29 -3
- package/dist/policy/permission-checks.js.map +1 -1
- package/dist/policy/policy-engine.d.ts +22 -2
- package/dist/policy/policy-engine.d.ts.map +1 -1
- package/dist/policy/policy-engine.js +22 -2
- package/dist/policy/policy-engine.js.map +1 -1
- package/dist/policy/policy-types.d.ts +55 -5
- package/dist/policy/policy-types.d.ts.map +1 -1
- package/dist/policy/policy-types.js +8 -1
- package/dist/policy/policy-types.js.map +1 -1
- package/dist/policy/risk-level.d.ts +32 -3
- package/dist/policy/risk-level.d.ts.map +1 -1
- package/dist/policy/risk-level.js +32 -3
- package/dist/policy/risk-level.js.map +1 -1
- package/dist/policy/spending-limits.d.ts +29 -3
- package/dist/policy/spending-limits.d.ts.map +1 -1
- package/dist/policy/spending-limits.js +29 -3
- package/dist/policy/spending-limits.js.map +1 -1
- package/dist/premium/activation-manager.d.ts +43 -0
- package/dist/premium/activation-manager.d.ts.map +1 -0
- package/dist/premium/activation-manager.js +131 -0
- package/dist/premium/activation-manager.js.map +1 -0
- package/dist/premium/builtin-plugins.d.ts +143 -0
- package/dist/premium/builtin-plugins.d.ts.map +1 -0
- package/dist/premium/builtin-plugins.js +394 -0
- package/dist/premium/builtin-plugins.js.map +1 -0
- package/dist/premium/event-store.d.ts +61 -0
- package/dist/premium/event-store.d.ts.map +1 -0
- package/dist/premium/event-store.js +130 -0
- package/dist/premium/event-store.js.map +1 -0
- package/dist/premium/index.d.ts +54 -0
- package/dist/premium/index.d.ts.map +1 -0
- package/dist/premium/index.js +54 -0
- package/dist/premium/index.js.map +1 -0
- package/dist/premium/manifest-builder.d.ts +65 -0
- package/dist/premium/manifest-builder.d.ts.map +1 -0
- package/dist/premium/manifest-builder.js +182 -0
- package/dist/premium/manifest-builder.js.map +1 -0
- package/dist/premium/meme-radar-capabilities.d.ts +38 -0
- package/dist/premium/meme-radar-capabilities.d.ts.map +1 -0
- package/dist/premium/meme-radar-capabilities.js +306 -0
- package/dist/premium/meme-radar-capabilities.js.map +1 -0
- package/dist/premium/metrics.d.ts +27 -0
- package/dist/premium/metrics.d.ts.map +1 -0
- package/dist/premium/metrics.js +65 -0
- package/dist/premium/metrics.js.map +1 -0
- package/dist/premium/plugin-validator.d.ts +39 -0
- package/dist/premium/plugin-validator.d.ts.map +1 -0
- package/dist/premium/plugin-validator.js +325 -0
- package/dist/premium/plugin-validator.js.map +1 -0
- package/dist/premium/private-manifest-loader.d.ts +111 -0
- package/dist/premium/private-manifest-loader.d.ts.map +1 -0
- package/dist/premium/private-manifest-loader.js +285 -0
- package/dist/premium/private-manifest-loader.js.map +1 -0
- package/dist/premium/provider-bridge.d.ts +109 -0
- package/dist/premium/provider-bridge.d.ts.map +1 -0
- package/dist/premium/provider-bridge.js +239 -0
- package/dist/premium/provider-bridge.js.map +1 -0
- package/dist/premium/session-manager.d.ts +125 -0
- package/dist/premium/session-manager.d.ts.map +1 -0
- package/dist/premium/session-manager.js +337 -0
- package/dist/premium/session-manager.js.map +1 -0
- package/dist/premium/stream-broker.d.ts +98 -0
- package/dist/premium/stream-broker.d.ts.map +1 -0
- package/dist/premium/stream-broker.js +199 -0
- package/dist/premium/stream-broker.js.map +1 -0
- package/dist/premium/tech-fundamentals-capabilities.d.ts +37 -0
- package/dist/premium/tech-fundamentals-capabilities.d.ts.map +1 -0
- package/dist/premium/tech-fundamentals-capabilities.js +283 -0
- package/dist/premium/tech-fundamentals-capabilities.js.map +1 -0
- package/dist/premium/trading-capabilities.d.ts +36 -0
- package/dist/premium/trading-capabilities.d.ts.map +1 -0
- package/dist/premium/trading-capabilities.js +205 -0
- package/dist/premium/trading-capabilities.js.map +1 -0
- package/dist/premium/types.d.ts +518 -0
- package/dist/premium/types.d.ts.map +1 -0
- package/dist/premium/types.js +23 -0
- package/dist/premium/types.js.map +1 -0
- package/dist/premium/webhook-engine.d.ts +102 -0
- package/dist/premium/webhook-engine.d.ts.map +1 -0
- package/dist/premium/webhook-engine.js +382 -0
- package/dist/premium/webhook-engine.js.map +1 -0
- package/dist/prompts/context/sap-agent-context.prompt.d.ts +5 -0
- package/dist/prompts/context/sap-agent-context.prompt.d.ts.map +1 -1
- package/dist/prompts/context/sap-agent-context.prompt.js +2 -8
- package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
- package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts +14 -0
- package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts.map +1 -0
- package/dist/prompts/context/sap-agent-intent-router.prompt.js +155 -0
- package/dist/prompts/context/sap-agent-intent-router.prompt.js.map +1 -0
- package/dist/prompts/context/sap-agent-start.prompt.js +1 -0
- package/dist/prompts/context/sap-agent-start.prompt.js.map +1 -1
- package/dist/prompts/developer/debug-sap-error.prompt.d.ts +5 -0
- package/dist/prompts/developer/debug-sap-error.prompt.d.ts.map +1 -1
- package/dist/prompts/developer/debug-sap-error.prompt.js +3 -4
- package/dist/prompts/developer/debug-sap-error.prompt.js.map +1 -1
- package/dist/prompts/developer/generate-sap-integration.prompt.d.ts +5 -0
- package/dist/prompts/developer/generate-sap-integration.prompt.d.ts.map +1 -1
- package/dist/prompts/developer/generate-sap-integration.prompt.js +3 -4
- package/dist/prompts/developer/generate-sap-integration.prompt.js.map +1 -1
- package/dist/prompts/developer/index.d.ts +4 -1
- package/dist/prompts/developer/index.d.ts.map +1 -1
- package/dist/prompts/developer/index.js +4 -1
- package/dist/prompts/developer/index.js.map +1 -1
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts +5 -0
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts.map +1 -1
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js +3 -4
- package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js.map +1 -1
- package/dist/prompts/execution-proof/index.d.ts +4 -1
- package/dist/prompts/execution-proof/index.d.ts.map +1 -1
- package/dist/prompts/execution-proof/index.js +4 -1
- package/dist/prompts/execution-proof/index.js.map +1 -1
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts +5 -0
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts.map +1 -1
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.js +3 -4
- package/dist/prompts/execution-proof/verify-execution-proof.prompt.js.map +1 -1
- package/dist/prompts/index.d.ts +4 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +4 -1
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/payments/create-paid-api.prompt.d.ts +5 -0
- package/dist/prompts/payments/create-paid-api.prompt.d.ts.map +1 -1
- package/dist/prompts/payments/create-paid-api.prompt.js +3 -4
- package/dist/prompts/payments/create-paid-api.prompt.js.map +1 -1
- package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts +5 -0
- package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts.map +1 -1
- package/dist/prompts/payments/explain-x402-settlement.prompt.js +3 -4
- package/dist/prompts/payments/explain-x402-settlement.prompt.js.map +1 -1
- package/dist/prompts/payments/index.d.ts +4 -1
- package/dist/prompts/payments/index.d.ts.map +1 -1
- package/dist/prompts/payments/index.js +4 -1
- package/dist/prompts/payments/index.js.map +1 -1
- package/dist/prompts/register-prompts.d.ts +18 -2
- package/dist/prompts/register-prompts.d.ts.map +1 -1
- package/dist/prompts/register-prompts.js +21 -3
- package/dist/prompts/register-prompts.js.map +1 -1
- package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts +5 -0
- package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts.map +1 -1
- package/dist/prompts/registry/analyze-sap-agent.prompt.js +3 -4
- package/dist/prompts/registry/analyze-sap-agent.prompt.js.map +1 -1
- package/dist/prompts/registry/index.d.ts +4 -1
- package/dist/prompts/registry/index.d.ts.map +1 -1
- package/dist/prompts/registry/index.js +4 -1
- package/dist/prompts/registry/index.js.map +1 -1
- package/dist/prompts/registry/register-sap-agent.prompt.d.ts +5 -0
- package/dist/prompts/registry/register-sap-agent.prompt.d.ts.map +1 -1
- package/dist/prompts/registry/register-sap-agent.prompt.js +3 -4
- package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -1
- package/dist/remote/premium-memory.d.ts +90 -0
- package/dist/remote/premium-memory.d.ts.map +1 -0
- package/dist/remote/premium-memory.js +161 -0
- package/dist/remote/premium-memory.js.map +1 -0
- package/dist/remote/premium-routes.d.ts +99 -0
- package/dist/remote/premium-routes.d.ts.map +1 -0
- package/dist/remote/premium-routes.js +346 -0
- package/dist/remote/premium-routes.js.map +1 -0
- package/dist/remote/public-home/sections.d.ts.map +1 -1
- package/dist/remote/public-home/sections.js +7 -1
- package/dist/remote/public-home/sections.js.map +1 -1
- package/dist/remote/public-home/types.d.ts +6 -0
- package/dist/remote/public-home/types.d.ts.map +1 -1
- package/dist/remote/server.d.ts +18 -0
- package/dist/remote/server.d.ts.map +1 -1
- package/dist/remote/server.js +298 -116
- package/dist/remote/server.js.map +1 -1
- package/dist/remote/tx-relay.d.ts +42 -0
- package/dist/remote/tx-relay.d.ts.map +1 -0
- package/dist/remote/tx-relay.js +118 -0
- package/dist/remote/tx-relay.js.map +1 -0
- package/dist/resources/current/sap-current-config.resource.d.ts +5 -0
- package/dist/resources/current/sap-current-config.resource.d.ts.map +1 -1
- package/dist/resources/current/sap-current-config.resource.js +2 -5
- package/dist/resources/current/sap-current-config.resource.js.map +1 -1
- package/dist/resources/execution-proof/index.d.ts +5 -0
- package/dist/resources/execution-proof/index.d.ts.map +1 -1
- package/dist/resources/execution-proof/index.js +5 -0
- package/dist/resources/execution-proof/index.js.map +1 -1
- package/dist/resources/execution-proof/sap-execution-record.resource.d.ts +5 -0
- package/dist/resources/execution-proof/sap-execution-record.resource.d.ts.map +1 -1
- package/dist/resources/execution-proof/sap-execution-record.resource.js +3 -4
- package/dist/resources/execution-proof/sap-execution-record.resource.js.map +1 -1
- package/dist/resources/index.d.ts +5 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +5 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/memory/index.d.ts +5 -0
- package/dist/resources/memory/index.d.ts.map +1 -1
- package/dist/resources/memory/index.js +5 -0
- package/dist/resources/memory/index.js.map +1 -1
- package/dist/resources/memory/sap-memory.resource.d.ts +5 -0
- package/dist/resources/memory/sap-memory.resource.d.ts.map +1 -1
- package/dist/resources/memory/sap-memory.resource.js +3 -4
- package/dist/resources/memory/sap-memory.resource.js.map +1 -1
- package/dist/resources/profile/sap-active-profile.resource.d.ts +5 -0
- package/dist/resources/profile/sap-active-profile.resource.d.ts.map +1 -1
- package/dist/resources/profile/sap-active-profile.resource.js +2 -5
- package/dist/resources/profile/sap-active-profile.resource.js.map +1 -1
- package/dist/resources/register-resources.d.ts +5 -0
- package/dist/resources/register-resources.d.ts.map +1 -1
- package/dist/resources/register-resources.js +3 -1
- package/dist/resources/register-resources.js.map +1 -1
- package/dist/resources/registry/index.d.ts +5 -0
- package/dist/resources/registry/index.d.ts.map +1 -1
- package/dist/resources/registry/index.js +5 -0
- package/dist/resources/registry/index.js.map +1 -1
- package/dist/resources/registry/sap-agent.resource.d.ts +5 -0
- package/dist/resources/registry/sap-agent.resource.d.ts.map +1 -1
- package/dist/resources/registry/sap-agent.resource.js +3 -4
- package/dist/resources/registry/sap-agent.resource.js.map +1 -1
- package/dist/resources/registry/sap-global-registry.resource.d.ts +18 -4
- package/dist/resources/registry/sap-global-registry.resource.d.ts.map +1 -1
- package/dist/resources/registry/sap-global-registry.resource.js +18 -4
- package/dist/resources/registry/sap-global-registry.resource.js.map +1 -1
- package/dist/resources/reputation/index.d.ts +4 -1
- package/dist/resources/reputation/index.d.ts.map +1 -1
- package/dist/resources/reputation/index.js +4 -1
- package/dist/resources/reputation/index.js.map +1 -1
- package/dist/resources/reputation/sap-reputation.resource.d.ts +18 -4
- package/dist/resources/reputation/sap-reputation.resource.d.ts.map +1 -1
- package/dist/resources/reputation/sap-reputation.resource.js +18 -4
- package/dist/resources/reputation/sap-reputation.resource.js.map +1 -1
- package/dist/resources/tool-schema/index.d.ts +4 -1
- package/dist/resources/tool-schema/index.d.ts.map +1 -1
- package/dist/resources/tool-schema/index.js +4 -1
- package/dist/resources/tool-schema/index.js.map +1 -1
- package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts +18 -4
- package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts.map +1 -1
- package/dist/resources/tool-schema/sap-tool-schema.resource.js +18 -4
- package/dist/resources/tool-schema/sap-tool-schema.resource.js.map +1 -1
- package/dist/sap/index.d.ts +7 -1
- package/dist/sap/index.d.ts.map +1 -1
- package/dist/sap/index.js +7 -1
- package/dist/sap/index.js.map +1 -1
- package/dist/sap/sap-client-manager.d.ts +80 -13
- package/dist/sap/sap-client-manager.d.ts.map +1 -1
- package/dist/sap/sap-client-manager.js +80 -13
- package/dist/sap/sap-client-manager.js.map +1 -1
- package/dist/sap/sap-errors.d.ts +22 -3
- package/dist/sap/sap-errors.d.ts.map +1 -1
- package/dist/sap/sap-errors.js +22 -3
- package/dist/sap/sap-errors.js.map +1 -1
- package/dist/sap/sap-types.d.ts +75 -6
- package/dist/sap/sap-types.d.ts.map +1 -1
- package/dist/sap/sap-types.js +11 -1
- package/dist/sap/sap-types.js.map +1 -1
- package/dist/schemas/common.schema.d.ts +45 -8
- package/dist/schemas/common.schema.d.ts.map +1 -1
- package/dist/schemas/common.schema.js +45 -8
- package/dist/schemas/common.schema.js.map +1 -1
- package/dist/schemas/developer.schema.d.ts +22 -3
- package/dist/schemas/developer.schema.d.ts.map +1 -1
- package/dist/schemas/developer.schema.js +22 -3
- package/dist/schemas/developer.schema.js.map +1 -1
- package/dist/schemas/execution-proof.schema.d.ts +29 -4
- package/dist/schemas/execution-proof.schema.d.ts.map +1 -1
- package/dist/schemas/execution-proof.schema.js +29 -4
- package/dist/schemas/execution-proof.schema.js.map +1 -1
- package/dist/schemas/identity.schema.d.ts +23 -3
- package/dist/schemas/identity.schema.d.ts.map +1 -1
- package/dist/schemas/identity.schema.js +23 -3
- package/dist/schemas/identity.schema.js.map +1 -1
- package/dist/schemas/index.d.ts +11 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +11 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/memory.schema.d.ts +23 -3
- package/dist/schemas/memory.schema.d.ts.map +1 -1
- package/dist/schemas/memory.schema.js +23 -3
- package/dist/schemas/memory.schema.js.map +1 -1
- package/dist/schemas/payments.schema.d.ts +24 -3
- package/dist/schemas/payments.schema.d.ts.map +1 -1
- package/dist/schemas/payments.schema.js +24 -3
- package/dist/schemas/payments.schema.js.map +1 -1
- package/dist/schemas/registry.schema.d.ts +36 -4
- package/dist/schemas/registry.schema.d.ts.map +1 -1
- package/dist/schemas/registry.schema.js +36 -4
- package/dist/schemas/registry.schema.js.map +1 -1
- package/dist/schemas/reputation.schema.d.ts +22 -3
- package/dist/schemas/reputation.schema.d.ts.map +1 -1
- package/dist/schemas/reputation.schema.js +22 -3
- package/dist/schemas/reputation.schema.js.map +1 -1
- package/dist/schemas/settlement.schema.d.ts +31 -4
- package/dist/schemas/settlement.schema.d.ts.map +1 -1
- package/dist/schemas/settlement.schema.js +31 -4
- package/dist/schemas/settlement.schema.js.map +1 -1
- package/dist/schemas/tool-schema.schema.d.ts +29 -3
- package/dist/schemas/tool-schema.schema.d.ts.map +1 -1
- package/dist/schemas/tool-schema.schema.js +29 -3
- package/dist/schemas/tool-schema.schema.js.map +1 -1
- package/dist/schemas/transaction.schema.d.ts +23 -3
- package/dist/schemas/transaction.schema.d.ts.map +1 -1
- package/dist/schemas/transaction.schema.js +23 -3
- package/dist/schemas/transaction.schema.js.map +1 -1
- package/dist/security/approval-required.d.ts +19 -2
- package/dist/security/approval-required.d.ts.map +1 -1
- package/dist/security/approval-required.js +19 -2
- package/dist/security/approval-required.js.map +1 -1
- package/dist/security/index.d.ts +7 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +7 -1
- package/dist/security/index.js.map +1 -1
- package/dist/security/private-key-guard.d.ts +18 -2
- package/dist/security/private-key-guard.d.ts.map +1 -1
- package/dist/security/private-key-guard.js +19 -2
- package/dist/security/private-key-guard.js.map +1 -1
- package/dist/security/prompt-injection-notes.d.ts +10 -1
- package/dist/security/prompt-injection-notes.d.ts.map +1 -1
- package/dist/security/prompt-injection-notes.js +10 -1
- package/dist/security/prompt-injection-notes.js.map +1 -1
- package/dist/security/unsafe-action-guard.d.ts +36 -10
- package/dist/security/unsafe-action-guard.d.ts.map +1 -1
- package/dist/security/unsafe-action-guard.js +67 -15
- package/dist/security/unsafe-action-guard.js.map +1 -1
- package/dist/server/create-server.d.ts +18 -3
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +18 -3
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/index.d.ts +6 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +6 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/register-capabilities.d.ts +17 -2
- package/dist/server/register-capabilities.d.ts.map +1 -1
- package/dist/server/register-capabilities.js +17 -2
- package/dist/server/register-capabilities.js.map +1 -1
- package/dist/server/server-metadata.d.ts +34 -1
- package/dist/server/server-metadata.d.ts.map +1 -1
- package/dist/server/server-metadata.js +35 -2
- package/dist/server/server-metadata.js.map +1 -1
- package/dist/session/agent-session.d.ts +35 -4
- package/dist/session/agent-session.d.ts.map +1 -1
- package/dist/session/agent-session.js +35 -4
- package/dist/session/agent-session.js.map +1 -1
- package/dist/session/delegated-session.d.ts +31 -3
- package/dist/session/delegated-session.d.ts.map +1 -1
- package/dist/session/delegated-session.js +31 -3
- package/dist/session/delegated-session.js.map +1 -1
- package/dist/session/index.d.ts +7 -1
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +7 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/redis-session-store.d.ts +94 -21
- package/dist/session/redis-session-store.d.ts.map +1 -1
- package/dist/session/redis-session-store.js +87 -20
- package/dist/session/redis-session-store.js.map +1 -1
- package/dist/session/session-limits.d.ts +34 -4
- package/dist/session/session-limits.d.ts.map +1 -1
- package/dist/session/session-limits.js +34 -4
- package/dist/session/session-limits.js.map +1 -1
- package/dist/session/session-permissions.d.ts +57 -7
- package/dist/session/session-permissions.d.ts.map +1 -1
- package/dist/session/session-permissions.js +57 -7
- package/dist/session/session-permissions.js.map +1 -1
- package/dist/session/session-store.d.ts +9 -1
- package/dist/session/session-store.d.ts.map +1 -1
- package/dist/session/session-store.js +18 -3
- package/dist/session/session-store.js.map +1 -1
- package/dist/session/session-types.d.ts +33 -4
- package/dist/session/session-types.d.ts.map +1 -1
- package/dist/session/session-types.js +9 -1
- package/dist/session/session-types.js.map +1 -1
- package/dist/signer/index.d.ts +7 -1
- package/dist/signer/index.d.ts.map +1 -1
- package/dist/signer/index.js +7 -1
- package/dist/signer/index.js.map +1 -1
- package/dist/signer/load-keypair.d.ts +25 -4
- package/dist/signer/load-keypair.d.ts.map +1 -1
- package/dist/signer/load-keypair.js +25 -4
- package/dist/signer/load-keypair.js.map +1 -1
- package/dist/signer/local-keypair-signer.d.ts +16 -2
- package/dist/signer/local-keypair-signer.d.ts.map +1 -1
- package/dist/signer/local-keypair-signer.js +16 -2
- package/dist/signer/local-keypair-signer.js.map +1 -1
- package/dist/signer/signer-resolver.d.ts +19 -2
- package/dist/signer/signer-resolver.d.ts.map +1 -1
- package/dist/signer/signer-resolver.js +26 -3
- package/dist/signer/signer-resolver.js.map +1 -1
- package/dist/signer/signer-types.d.ts +47 -5
- package/dist/signer/signer-types.d.ts.map +1 -1
- package/dist/signer/signer-types.js +13 -1
- package/dist/signer/signer-types.js.map +1 -1
- package/dist/tools/agent-start-tool.js +20 -1
- package/dist/tools/agent-start-tool.js.map +1 -1
- package/dist/tools/client-sdk-tools.d.ts.map +1 -1
- package/dist/tools/client-sdk-tools.js +27 -2
- package/dist/tools/client-sdk-tools.js.map +1 -1
- package/dist/tools/estimate-tool-cost.d.ts +13 -0
- package/dist/tools/estimate-tool-cost.d.ts.map +1 -0
- package/dist/tools/estimate-tool-cost.js +139 -0
- package/dist/tools/estimate-tool-cost.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/magicblock-tools.d.ts +25 -0
- package/dist/tools/magicblock-tools.d.ts.map +1 -1
- package/dist/tools/magicblock-tools.js +116 -8
- package/dist/tools/magicblock-tools.js.map +1 -1
- package/dist/tools/perp-tools.d.ts +39 -0
- package/dist/tools/perp-tools.d.ts.map +1 -0
- package/dist/tools/perp-tools.js +1110 -0
- package/dist/tools/perp-tools.js.map +1 -0
- package/dist/tools/premium-tools.d.ts +8 -0
- package/dist/tools/premium-tools.d.ts.map +1 -0
- package/dist/tools/premium-tools.js +732 -0
- package/dist/tools/premium-tools.js.map +1 -0
- package/dist/tools/register-tools.d.ts.map +1 -1
- package/dist/tools/register-tools.js +9 -0
- package/dist/tools/register-tools.js.map +1 -1
- package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
- package/dist/tools/sap-sdk-tools.js +42 -32
- package/dist/tools/sap-sdk-tools.js.map +1 -1
- package/dist/tools/x402-paid-call-tool.js +2 -2
- package/dist/tools/x402-paid-call-tool.js.map +1 -1
- package/dist/transports/index.d.ts +6 -1
- package/dist/transports/index.d.ts.map +1 -1
- package/dist/transports/index.js +6 -1
- package/dist/transports/index.js.map +1 -1
- package/dist/transports/stdio.d.ts +17 -5
- package/dist/transports/stdio.d.ts.map +1 -1
- package/dist/transports/stdio.js +17 -5
- package/dist/transports/stdio.js.map +1 -1
- package/dist/tui/wizard-save.d.ts +88 -8
- package/dist/tui/wizard-save.d.ts.map +1 -1
- package/dist/tui/wizard-save.js +77 -8
- package/dist/tui/wizard-save.js.map +1 -1
- package/docs/06_PAYMENTS_X402_AND_PAYSH.md +3 -3
- package/docs/07_ENDPOINTS_AND_CLIENTS.md +4 -1
- package/docs/14_DESKTOP_WIZARD_RELEASE.md +3 -3
- package/docs/16_SAP_AGENT_IDENTITY_PIPELINE.md +6 -0
- package/docs/18_PREMIUM_PLUGIN_RUNTIME.md +108 -0
- package/docs/README.md +12 -0
- package/package.json +8 -9
- package/server.json +3 -3
- package/skills/sap-agent-registry/SKILL.md +6 -0
- package/skills/sap-mcp/SKILL.md +27 -4
- package/skills/sap-mcp/TOOL_REFERENCE.md +4 -1
- package/skills/sap-payments-x402/SKILL.md +22 -8
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/permission-checks
|
|
3
|
+
* @description Permission validation utilities for SAP MCP tool calls.
|
|
4
|
+
*
|
|
5
|
+
* Provides functions to check whether a given permission or tool name
|
|
6
|
+
* is allowed by the server configuration's `allowedTools` list.
|
|
7
|
+
*
|
|
8
|
+
* @module policy/permission-checks
|
|
3
9
|
*/
|
|
4
10
|
/**
|
|
5
|
-
*
|
|
11
|
+
* @name checkPermission
|
|
12
|
+
* @description Check if a specific permission is allowed by the configuration.
|
|
13
|
+
*
|
|
14
|
+
* When `allowedTools` is `'all'`, every permission is allowed. Otherwise the
|
|
15
|
+
* permission must appear in the `allowedTools` array.
|
|
16
|
+
*
|
|
17
|
+
* @param config - The SAP MCP server configuration.
|
|
18
|
+
* @param permission - The permission string to check.
|
|
19
|
+
* @returns An object with `allowed` flag and optional `reason` string.
|
|
20
|
+
*
|
|
21
|
+
* @usedBy `checkToolAllowed`
|
|
6
22
|
*/
|
|
7
23
|
export function checkPermission(config, permission) {
|
|
8
24
|
// Check if allowed tools is 'all'
|
|
@@ -19,7 +35,17 @@ export function checkPermission(config, permission) {
|
|
|
19
35
|
};
|
|
20
36
|
}
|
|
21
37
|
/**
|
|
22
|
-
*
|
|
38
|
+
* @name checkToolAllowed
|
|
39
|
+
* @description Check if a tool is allowed by mapping its name to a permission.
|
|
40
|
+
*
|
|
41
|
+
* Extracts the action and category from the tool name, maps them to a
|
|
42
|
+
* `SapPermission` string, then delegates to `checkPermission`.
|
|
43
|
+
*
|
|
44
|
+
* @param config - The SAP MCP server configuration.
|
|
45
|
+
* @param toolName - The tool name to check (e.g., `sap_get_agent`).
|
|
46
|
+
* @returns An object with `allowed` flag and optional `reason` string.
|
|
47
|
+
*
|
|
48
|
+
* @usedBy `policy-engine.ts:PolicyEngine`
|
|
23
49
|
*/
|
|
24
50
|
export function checkToolAllowed(config, toolName) {
|
|
25
51
|
if (config.allowedTools === 'all') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-checks.js","sourceRoot":"","sources":["../../src/policy/permission-checks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"permission-checks.js","sourceRoot":"","sources":["../../src/policy/permission-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,UAAyB;IAEzB,kCAAkC;IAClC,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,cAAc,UAAU,+BAA+B;KAChE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAoB,EACpB,QAAgB;IAEhB,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,2EAA2E;IAC3E,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,6FAA6F;IAC7F,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjD,uEAAuE;IACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,uCAAuC;IACvC,MAAM,WAAW,GAA2B;QAC1C,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,UAAU;QACrB,YAAY,EAAE,YAAY;QAC1B,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,YAAY;KAC1B,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrK,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,OAAO,GAAG,kBAAkB,IAAI,cAAc,EAAmB,CAAC;AACpE,CAAC"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/policy-engine
|
|
3
|
+
* @description High-level policy engine for enforcing permissions and spend limits.
|
|
4
|
+
*
|
|
5
|
+
* Wraps the local and hybrid policy engines, loads default policies, and
|
|
6
|
+
* provides a unified API for permission validation, spend-limit checks,
|
|
7
|
+
* and runtime diagnostics.
|
|
8
|
+
*
|
|
9
|
+
* @module policy/policy-engine
|
|
3
10
|
*/
|
|
4
11
|
import type { SapMcpConfig, SapPolicy, SapPermission } from '../core/types.js';
|
|
5
12
|
interface PermissionContext {
|
|
@@ -11,7 +18,20 @@ interface PermissionContext {
|
|
|
11
18
|
user?: string;
|
|
12
19
|
}
|
|
13
20
|
/**
|
|
14
|
-
*
|
|
21
|
+
* @name PolicyEngine
|
|
22
|
+
* @description High-level policy engine combining default policies, config-based limits, and hybrid enforcement.
|
|
23
|
+
*
|
|
24
|
+
* Loads default policies at construction time, creates a `HybridPolicyEngine`
|
|
25
|
+
* when configured, and exposes permission validation, spend-limit checks,
|
|
26
|
+
* policy CRUD, and runtime status diagnostics.
|
|
27
|
+
*
|
|
28
|
+
* @method validatePermissions — Validate a list of permission strings against the allowed-tools config.
|
|
29
|
+
* @method checkPermission — Check whether a single permission and optional context is allowed.
|
|
30
|
+
* @method getRuntimeStatus — Return current hybrid/Bento policy status for diagnostics.
|
|
31
|
+
* @method getPolicy — Retrieve a registered policy by id.
|
|
32
|
+
* @method addPolicy — Register a custom policy.
|
|
33
|
+
*
|
|
34
|
+
* @usedBy `server.ts`, `core/context.ts`
|
|
15
35
|
*/
|
|
16
36
|
export declare class PolicyEngine {
|
|
17
37
|
private config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../../src/policy/policy-engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../../src/policy/policy-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAO/E,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,kBAAkB,CAA4B;gBAE1C,MAAM,EAAE,YAAY;IAiBhC;;OAEG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACxD,KAAK,EAAE,OAAO,CAAC;QACf,WAAW,EAAE,aAAa,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAmBF;;OAEG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAqCjD;;OAEG;IACH,gBAAgB,IAAI;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,EAAE,OAAO,CAAC;QACxB,iBAAiB,EAAE,OAAO,CAAC;KAC5B;IAaD,OAAO,CAAC,wBAAwB;YAqClB,iBAAiB;IAwB/B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIlD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;CAInC"}
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/policy-engine
|
|
3
|
+
* @description High-level policy engine for enforcing permissions and spend limits.
|
|
4
|
+
*
|
|
5
|
+
* Wraps the local and hybrid policy engines, loads default policies, and
|
|
6
|
+
* provides a unified API for permission validation, spend-limit checks,
|
|
7
|
+
* and runtime diagnostics.
|
|
8
|
+
*
|
|
9
|
+
* @module policy/policy-engine
|
|
3
10
|
*/
|
|
4
11
|
import { logger } from '../core/logger.js';
|
|
5
12
|
import { defaultPolicies } from './default-policies.js';
|
|
6
13
|
import { HybridPolicyEngine } from './hybrid-policy-engine.js';
|
|
7
14
|
const LAMPORTS_PER_SOL = 1_000_000_000;
|
|
8
15
|
/**
|
|
9
|
-
*
|
|
16
|
+
* @name PolicyEngine
|
|
17
|
+
* @description High-level policy engine combining default policies, config-based limits, and hybrid enforcement.
|
|
18
|
+
*
|
|
19
|
+
* Loads default policies at construction time, creates a `HybridPolicyEngine`
|
|
20
|
+
* when configured, and exposes permission validation, spend-limit checks,
|
|
21
|
+
* policy CRUD, and runtime status diagnostics.
|
|
22
|
+
*
|
|
23
|
+
* @method validatePermissions — Validate a list of permission strings against the allowed-tools config.
|
|
24
|
+
* @method checkPermission — Check whether a single permission and optional context is allowed.
|
|
25
|
+
* @method getRuntimeStatus — Return current hybrid/Bento policy status for diagnostics.
|
|
26
|
+
* @method getPolicy — Retrieve a registered policy by id.
|
|
27
|
+
* @method addPolicy — Register a custom policy.
|
|
28
|
+
*
|
|
29
|
+
* @usedBy `server.ts`, `core/context.ts`
|
|
10
30
|
*/
|
|
11
31
|
export class PolicyEngine {
|
|
12
32
|
config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../../src/policy/policy-engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../../src/policy/policy-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAC;AAGxF,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAWvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAe;IACrB,QAAQ,CAAyB;IACjC,kBAAkB,CAA4B;IAEtD,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAEhE,wBAAwB;QACxB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,YAAY;YACzC,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK;SAC7C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAAqB;QAK7C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,gBAAgB,GAAoB,EAAE,CAAC;QAE7C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzF,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,wBAAwB,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,IAAI,CAAC,UAA2B,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACnD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,UAAkB,EAClB,OAA2B;QAE3B,0CAA0C;QAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,UAAU,cAAc,EAAE,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAChD,IAAI,OAAO,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;gBACtC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,UAAU,OAAO,CAAC,SAAS,oBAAoB,aAAa,MAAM;iBAC3E,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;gBAC5D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,UAAU,OAAO,CAAC,SAAS,sCAAsC,IAAI,CAAC,MAAM,CAAC,uBAAuB,OAAO;iBACpH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,cAAc,CAAC,MAAM;aAC9B,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,gBAAgB;QAMd,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,YAAY;gBAC9C,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,KAAK;gBACrB,iBAAiB,EAAE,IAAI;aACxB,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAC7C,CAAC;IAEO,wBAAwB,CAAC,MAAoB;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,YAAY,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM;YAC9D,CAAC,CAAC;gBACE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBAC3B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,gBAAgB;gBACjD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;aAChC;YACH,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,UAAU,KAAK,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAuB;YACvC,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK;YAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI;YACvC,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,GAAG,gBAAgB,CAAC;iBACzD;gBACD,gBAAgB,EAAE,EAAE;gBACpB,gBAAgB,EAAE,EAAE;gBACpB,gBAAgB,EAAE,EAAE;gBACpB,gBAAgB,EAAE,EAAE;gBACpB,UAAU,EAAE,MAAM,CAAC,eAAe;oBAChC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,kBAAkB,EAAE;oBACpC,CAAC,CAAC,EAAE;gBACN,eAAe,EAAE,EAAE;aACpB;SACF,CAAC;QAEF,OAAO,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,UAAkB,EAClB,OAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,UAAU,CAAC;QACjD,MAAM,aAAa,GAAkB;YACnC,QAAQ;YACR,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;YACzB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,kBAAkB;YACzC,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,SAAS;gBACtC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC;YACpD,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/policy-types
|
|
3
|
+
* @description Core type definitions for the SAP MCP policy engine.
|
|
4
|
+
*
|
|
5
|
+
* Defines the shapes for policies, policy rules, evaluation results,
|
|
6
|
+
* and policy evaluation context. These types are consumed by the local
|
|
7
|
+
* policy engine, default-policies module, and the higher-level policy engine.
|
|
8
|
+
*
|
|
9
|
+
* @module policy/policy-types
|
|
3
10
|
*/
|
|
4
11
|
import type { SapPermission, SapRiskLevel } from '../core/types.js';
|
|
5
12
|
/**
|
|
6
|
-
* Policy
|
|
13
|
+
* @name Policy
|
|
14
|
+
* @description A named policy with an ordered set of rules.
|
|
15
|
+
*
|
|
16
|
+
* Each policy has a unique id, a human-readable name and description,
|
|
17
|
+
* an array of rules to evaluate, and an enabled flag.
|
|
18
|
+
*
|
|
19
|
+
* @property id — Unique policy identifier.
|
|
20
|
+
* @property name — Human-readable policy name.
|
|
21
|
+
* @property description — Short description of the policy's purpose.
|
|
22
|
+
* @property rules — Ordered list of rules to evaluate.
|
|
23
|
+
* @property enabled — Whether the policy is active.
|
|
24
|
+
*
|
|
25
|
+
* @usedBy `default-policies.ts`, `policy-engine.ts:PolicyEngine`
|
|
7
26
|
*/
|
|
8
27
|
export interface Policy {
|
|
9
28
|
id: string;
|
|
@@ -13,7 +32,21 @@ export interface Policy {
|
|
|
13
32
|
enabled: boolean;
|
|
14
33
|
}
|
|
15
34
|
/**
|
|
16
|
-
*
|
|
35
|
+
* @name PolicyRule
|
|
36
|
+
* @description A single rule within a policy.
|
|
37
|
+
*
|
|
38
|
+
* A rule has a condition expression, an action to take when the condition
|
|
39
|
+
* matches, and optional constraints on tools, permissions, amounts, and risk levels.
|
|
40
|
+
*
|
|
41
|
+
* @property id — Unique rule identifier within the policy.
|
|
42
|
+
* @property condition — Expression string evaluated against the policy context.
|
|
43
|
+
* @property action — Action to take: `allow`, `deny`, or `require_approval`.
|
|
44
|
+
* @property tools — Optional list of tool names this rule applies to.
|
|
45
|
+
* @property permissions — Optional list of permissions this rule applies to.
|
|
46
|
+
* @property maxAmountSol — Optional maximum transaction amount in SOL.
|
|
47
|
+
* @property riskLevel — Optional risk level this rule applies to.
|
|
48
|
+
*
|
|
49
|
+
* @usedBy `Policy.rules`, `default-policies.ts`
|
|
17
50
|
*/
|
|
18
51
|
export interface PolicyRule {
|
|
19
52
|
id: string;
|
|
@@ -25,7 +58,15 @@ export interface PolicyRule {
|
|
|
25
58
|
riskLevel?: SapRiskLevel;
|
|
26
59
|
}
|
|
27
60
|
/**
|
|
28
|
-
*
|
|
61
|
+
* @name PolicyResult
|
|
62
|
+
* @description Result of evaluating a policy against a request.
|
|
63
|
+
*
|
|
64
|
+
* @property allowed — Whether the operation is permitted.
|
|
65
|
+
* @property reason — Optional human-readable explanation.
|
|
66
|
+
* @property requiresApproval — Whether human approval is needed before proceeding.
|
|
67
|
+
* @property riskLevel — Optional risk level associated with the operation.
|
|
68
|
+
*
|
|
69
|
+
* @usedBy `policy-engine.ts:PolicyEngine`
|
|
29
70
|
*/
|
|
30
71
|
export interface PolicyResult {
|
|
31
72
|
allowed: boolean;
|
|
@@ -34,7 +75,16 @@ export interface PolicyResult {
|
|
|
34
75
|
riskLevel?: SapRiskLevel;
|
|
35
76
|
}
|
|
36
77
|
/**
|
|
37
|
-
*
|
|
78
|
+
* @name PolicyContext
|
|
79
|
+
* @description Context passed to the policy engine for evaluation.
|
|
80
|
+
*
|
|
81
|
+
* @property toolName — Name of the tool being called.
|
|
82
|
+
* @property permission — Permission required by the tool.
|
|
83
|
+
* @property amountSol — Optional transaction amount in SOL.
|
|
84
|
+
* @property riskLevel — Optional pre-computed risk level.
|
|
85
|
+
* @property sessionId — Optional session identifier for correlation.
|
|
86
|
+
*
|
|
87
|
+
* @usedBy `policy-engine.ts:PolicyEngine`
|
|
38
88
|
*/
|
|
39
89
|
export interface PolicyContext {
|
|
40
90
|
toolName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-types.d.ts","sourceRoot":"","sources":["../../src/policy/policy-types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"policy-types.d.ts","sourceRoot":"","sources":["../../src/policy/policy-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,kBAAkB,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,aAAa,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/policy-types
|
|
3
|
+
* @description Core type definitions for the SAP MCP policy engine.
|
|
4
|
+
*
|
|
5
|
+
* Defines the shapes for policies, policy rules, evaluation results,
|
|
6
|
+
* and policy evaluation context. These types are consumed by the local
|
|
7
|
+
* policy engine, default-policies module, and the higher-level policy engine.
|
|
8
|
+
*
|
|
9
|
+
* @module policy/policy-types
|
|
3
10
|
*/
|
|
4
11
|
export {};
|
|
5
12
|
//# sourceMappingURL=policy-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-types.js","sourceRoot":"","sources":["../../src/policy/policy-types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"policy-types.js","sourceRoot":"","sources":["../../src/policy/policy-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/risk-level
|
|
3
|
+
* @description Risk level calculation utilities for SAP MCP transactions.
|
|
4
|
+
*
|
|
5
|
+
* Provides functions to compute a `SapRiskLevel` from transaction parameters
|
|
6
|
+
* and determine whether a given risk level requires human approval.
|
|
7
|
+
*
|
|
8
|
+
* @module policy/risk-level
|
|
3
9
|
*/
|
|
4
10
|
import type { SapRiskLevel } from '../core/types.js';
|
|
5
11
|
/**
|
|
6
|
-
*
|
|
12
|
+
* @name calculateRiskLevel
|
|
13
|
+
* @description Calculate risk level for a transaction based on amount and operation type.
|
|
14
|
+
*
|
|
15
|
+
* Evaluates the transaction amount, whether it is a write operation, and whether
|
|
16
|
+
* it targets a known program to produce a graduated risk level from `safe` to `critical`.
|
|
17
|
+
* Write operations elevate risk by one tier; known operations reduce risk by one tier.
|
|
18
|
+
*
|
|
19
|
+
* @param params - Transaction parameters including amount, write flag, known flag, and tool name.
|
|
20
|
+
* @param params.amountSol - Transaction amount in SOL.
|
|
21
|
+
* @param params.isWriteOperation - Whether the operation mutates on-chain state.
|
|
22
|
+
* @param params.isKnownOperation - Whether the target program is in the known set.
|
|
23
|
+
* @param params.toolName - Name of the tool invoking the transaction.
|
|
24
|
+
* @returns A `SapRiskLevel` string: `safe`, `low`, `medium`, `high`, or `critical`.
|
|
25
|
+
*
|
|
26
|
+
* @usedBy `policy-engine.ts:PolicyEngine.checkPermission`
|
|
7
27
|
*/
|
|
8
28
|
export declare function calculateRiskLevel(params: {
|
|
9
29
|
amountSol: number;
|
|
@@ -12,7 +32,16 @@ export declare function calculateRiskLevel(params: {
|
|
|
12
32
|
toolName: string;
|
|
13
33
|
}): SapRiskLevel;
|
|
14
34
|
/**
|
|
15
|
-
*
|
|
35
|
+
* @name requiresApproval
|
|
36
|
+
* @description Check if a risk level requires human approval before execution.
|
|
37
|
+
*
|
|
38
|
+
* Returns `true` when the risk level is `high` or `critical`, indicating
|
|
39
|
+
* that the operation should be escalated for manual review.
|
|
40
|
+
*
|
|
41
|
+
* @param riskLevel - The risk level to evaluate.
|
|
42
|
+
* @returns `true` if the risk level is `high` or `critical`; otherwise `false`.
|
|
43
|
+
*
|
|
44
|
+
* @usedBy `policy-engine.ts:PolicyEngine.checkPermission`
|
|
16
45
|
*/
|
|
17
46
|
export declare function requiresApproval(riskLevel: SapRiskLevel): boolean;
|
|
18
47
|
//# sourceMappingURL=risk-level.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-level.d.ts","sourceRoot":"","sources":["../../src/policy/risk-level.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"risk-level.d.ts","sourceRoot":"","sources":["../../src/policy/risk-level.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,YAAY,CAgCf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAEjE"}
|
|
@@ -1,8 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/risk-level
|
|
3
|
+
* @description Risk level calculation utilities for SAP MCP transactions.
|
|
4
|
+
*
|
|
5
|
+
* Provides functions to compute a `SapRiskLevel` from transaction parameters
|
|
6
|
+
* and determine whether a given risk level requires human approval.
|
|
7
|
+
*
|
|
8
|
+
* @module policy/risk-level
|
|
3
9
|
*/
|
|
4
10
|
/**
|
|
5
|
-
*
|
|
11
|
+
* @name calculateRiskLevel
|
|
12
|
+
* @description Calculate risk level for a transaction based on amount and operation type.
|
|
13
|
+
*
|
|
14
|
+
* Evaluates the transaction amount, whether it is a write operation, and whether
|
|
15
|
+
* it targets a known program to produce a graduated risk level from `safe` to `critical`.
|
|
16
|
+
* Write operations elevate risk by one tier; known operations reduce risk by one tier.
|
|
17
|
+
*
|
|
18
|
+
* @param params - Transaction parameters including amount, write flag, known flag, and tool name.
|
|
19
|
+
* @param params.amountSol - Transaction amount in SOL.
|
|
20
|
+
* @param params.isWriteOperation - Whether the operation mutates on-chain state.
|
|
21
|
+
* @param params.isKnownOperation - Whether the target program is in the known set.
|
|
22
|
+
* @param params.toolName - Name of the tool invoking the transaction.
|
|
23
|
+
* @returns A `SapRiskLevel` string: `safe`, `low`, `medium`, `high`, or `critical`.
|
|
24
|
+
*
|
|
25
|
+
* @usedBy `policy-engine.ts:PolicyEngine.checkPermission`
|
|
6
26
|
*/
|
|
7
27
|
export function calculateRiskLevel(params) {
|
|
8
28
|
const { amountSol, isWriteOperation, isKnownOperation } = params;
|
|
@@ -38,7 +58,16 @@ export function calculateRiskLevel(params) {
|
|
|
38
58
|
return risk;
|
|
39
59
|
}
|
|
40
60
|
/**
|
|
41
|
-
*
|
|
61
|
+
* @name requiresApproval
|
|
62
|
+
* @description Check if a risk level requires human approval before execution.
|
|
63
|
+
*
|
|
64
|
+
* Returns `true` when the risk level is `high` or `critical`, indicating
|
|
65
|
+
* that the operation should be escalated for manual review.
|
|
66
|
+
*
|
|
67
|
+
* @param riskLevel - The risk level to evaluate.
|
|
68
|
+
* @returns `true` if the risk level is `high` or `critical`; otherwise `false`.
|
|
69
|
+
*
|
|
70
|
+
* @usedBy `policy-engine.ts:PolicyEngine.checkPermission`
|
|
42
71
|
*/
|
|
43
72
|
export function requiresApproval(riskLevel) {
|
|
44
73
|
return riskLevel === 'high' || riskLevel === 'critical';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-level.js","sourceRoot":"","sources":["../../src/policy/risk-level.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"risk-level.js","sourceRoot":"","sources":["../../src/policy/risk-level.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAKlC;IACC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAEjE,wBAAwB;IACxB,IAAI,IAAI,GAAiB,MAAM,CAAC;IAChC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QAC3B,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QAC3B,IAAI,GAAG,QAAQ,CAAC;IAClB,CAAC;SAAM,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;QAC5B,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,UAAU,CAAC;IACpB,CAAC;IAED,qCAAqC;IACrC,IAAI,gBAAgB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACxC,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IAED,qCAAqC;IACrC,IAAI,gBAAgB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACxC,MAAM,MAAM,GAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAuB;IACtD,OAAO,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,UAAU,CAAC;AAC1D,CAAC"}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/spending-limits
|
|
3
|
+
* @description Spending limit enforcement utilities for SAP MCP transactions.
|
|
4
|
+
*
|
|
5
|
+
* Provides functions to validate transaction amounts against configured maximums
|
|
6
|
+
* and approval thresholds, and to derive a risk level from the transaction amount.
|
|
7
|
+
*
|
|
8
|
+
* @module policy/spending-limits
|
|
3
9
|
*/
|
|
4
10
|
import type { SapMcpConfig } from '../core/types.js';
|
|
5
11
|
/**
|
|
6
|
-
*
|
|
12
|
+
* @name checkSpendingLimit
|
|
13
|
+
* @description Check if a transaction amount is within configured spending limits.
|
|
14
|
+
*
|
|
15
|
+
* Compares the amount against `maxTxValueSol` (hard ceiling) and
|
|
16
|
+
* `requireApprovalAboveSol` (approval threshold). Returns a result object
|
|
17
|
+
* indicating whether the transaction is allowed, requires approval, or is blocked.
|
|
18
|
+
*
|
|
19
|
+
* @param config - The SAP MCP server configuration containing spending limits.
|
|
20
|
+
* @param amountSol - The transaction amount in SOL to validate.
|
|
21
|
+
* @returns An object with `allowed` flag, optional `reason` string, and optional `requiresApproval` flag.
|
|
22
|
+
*
|
|
23
|
+
* @usedBy `policy-engine.ts:PolicyEngine.checkPermission`
|
|
7
24
|
*/
|
|
8
25
|
export declare function checkSpendingLimit(config: SapMcpConfig, amountSol: number): {
|
|
9
26
|
allowed: boolean;
|
|
@@ -11,7 +28,16 @@ export declare function checkSpendingLimit(config: SapMcpConfig, amountSol: numb
|
|
|
11
28
|
requiresApproval?: boolean;
|
|
12
29
|
};
|
|
13
30
|
/**
|
|
14
|
-
*
|
|
31
|
+
* @name calculateRiskLevel
|
|
32
|
+
* @description Calculate risk level based solely on transaction amount in SOL.
|
|
33
|
+
*
|
|
34
|
+
* Maps amount thresholds to risk tiers: 0 SOL is `safe`, <0.1 is `low`,
|
|
35
|
+
* <1.0 is `medium`, <10.0 is `high`, and 10.0+ is `critical`.
|
|
36
|
+
*
|
|
37
|
+
* @param amountSol - The transaction amount in SOL.
|
|
38
|
+
* @returns A risk level string: `safe`, `low`, `medium`, `high`, or `critical`.
|
|
39
|
+
*
|
|
40
|
+
* @usedBy `spending-limits.ts:checkSpendingLimit`
|
|
15
41
|
*/
|
|
16
42
|
export declare function calculateRiskLevel(amountSol: number): 'safe' | 'low' | 'medium' | 'high' | 'critical';
|
|
17
43
|
//# sourceMappingURL=spending-limits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spending-limits.d.ts","sourceRoot":"","sources":["../../src/policy/spending-limits.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spending-limits.d.ts","sourceRoot":"","sources":["../../src/policy/spending-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CAoBnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAMrG"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @name policy/spending-limits
|
|
3
|
+
* @description Spending limit enforcement utilities for SAP MCP transactions.
|
|
4
|
+
*
|
|
5
|
+
* Provides functions to validate transaction amounts against configured maximums
|
|
6
|
+
* and approval thresholds, and to derive a risk level from the transaction amount.
|
|
7
|
+
*
|
|
8
|
+
* @module policy/spending-limits
|
|
3
9
|
*/
|
|
4
10
|
/**
|
|
5
|
-
*
|
|
11
|
+
* @name checkSpendingLimit
|
|
12
|
+
* @description Check if a transaction amount is within configured spending limits.
|
|
13
|
+
*
|
|
14
|
+
* Compares the amount against `maxTxValueSol` (hard ceiling) and
|
|
15
|
+
* `requireApprovalAboveSol` (approval threshold). Returns a result object
|
|
16
|
+
* indicating whether the transaction is allowed, requires approval, or is blocked.
|
|
17
|
+
*
|
|
18
|
+
* @param config - The SAP MCP server configuration containing spending limits.
|
|
19
|
+
* @param amountSol - The transaction amount in SOL to validate.
|
|
20
|
+
* @returns An object with `allowed` flag, optional `reason` string, and optional `requiresApproval` flag.
|
|
21
|
+
*
|
|
22
|
+
* @usedBy `policy-engine.ts:PolicyEngine.checkPermission`
|
|
6
23
|
*/
|
|
7
24
|
export function checkSpendingLimit(config, amountSol) {
|
|
8
25
|
// Check max transaction limit
|
|
@@ -24,7 +41,16 @@ export function checkSpendingLimit(config, amountSol) {
|
|
|
24
41
|
return { allowed: true };
|
|
25
42
|
}
|
|
26
43
|
/**
|
|
27
|
-
*
|
|
44
|
+
* @name calculateRiskLevel
|
|
45
|
+
* @description Calculate risk level based solely on transaction amount in SOL.
|
|
46
|
+
*
|
|
47
|
+
* Maps amount thresholds to risk tiers: 0 SOL is `safe`, <0.1 is `low`,
|
|
48
|
+
* <1.0 is `medium`, <10.0 is `high`, and 10.0+ is `critical`.
|
|
49
|
+
*
|
|
50
|
+
* @param amountSol - The transaction amount in SOL.
|
|
51
|
+
* @returns A risk level string: `safe`, `low`, `medium`, `high`, or `critical`.
|
|
52
|
+
*
|
|
53
|
+
* @usedBy `spending-limits.ts:checkSpendingLimit`
|
|
28
54
|
*/
|
|
29
55
|
export function calculateRiskLevel(amountSol) {
|
|
30
56
|
if (amountSol === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spending-limits.js","sourceRoot":"","sources":["../../src/policy/spending-limits.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spending-limits.js","sourceRoot":"","sources":["../../src/policy/spending-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,SAAiB;IAEjB,8BAA8B;IAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,UAAU,SAAS,0CAA0C,aAAa,MAAM;SACzF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,UAAU,SAAS,sCAAsC,MAAM,CAAC,uBAAuB,OAAO;SACvG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,SAAS,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,SAAS,GAAG,GAAG;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name premium/activation-manager
|
|
3
|
+
* @description Session activation manager for x402/pay.sh receipt binding.
|
|
4
|
+
*
|
|
5
|
+
* After a buyer creates a session plan (status `pending_payment`) and settles
|
|
6
|
+
* the x402/pay.sh challenge on the delivery rail, the activation manager
|
|
7
|
+
* verifies the receipt and transitions the session to `active`.
|
|
8
|
+
*
|
|
9
|
+
* The activation manager is deliberately decoupled from the x402 facilitator:
|
|
10
|
+
* it accepts an opaque `paymentReceipt` string that the caller (HTTP endpoint
|
|
11
|
+
* or MCP tool) has already verified against the x402/pay.sh rail. This keeps
|
|
12
|
+
* the premium layer testable without a live facilitator.
|
|
13
|
+
*
|
|
14
|
+
* @flow
|
|
15
|
+
* 1. Buyer settles x402 challenge → receives `paymentReceipt` string.
|
|
16
|
+
* 2. Buyer calls `POST /premium/activate` or MCP tool `sap_premium_activate_session`.
|
|
17
|
+
* 3. → `activateSession()` verifies the session is in `pending_payment` status.
|
|
18
|
+
* 4. → Transitions session to `active` via `session-manager.activateSession()`.
|
|
19
|
+
* 5. → Returns `PremiumActivationResult` with `unitsQuota` and `activatedAt`.
|
|
20
|
+
* 6. Stream broker / webhook engine check `status=active` before delivering.
|
|
21
|
+
*
|
|
22
|
+
* @module premium/activation-manager
|
|
23
|
+
*/
|
|
24
|
+
import type { PremiumActivationRequest, PremiumActivationResult } from './types.js';
|
|
25
|
+
/**
|
|
26
|
+
* @name activatePremiumSession
|
|
27
|
+
* @description Activate a pending premium session with a payment receipt.
|
|
28
|
+
*
|
|
29
|
+
* Steps:
|
|
30
|
+
* 1. Validate the receipt format (non-empty, reasonable length).
|
|
31
|
+
* 2. Look up the session via `getPremiumSession`.
|
|
32
|
+
* 3. Check the session is in `pending_payment` status.
|
|
33
|
+
* 4. Call `activateSession` to transition to `active`.
|
|
34
|
+
* 5. Return `PremiumActivationResult`.
|
|
35
|
+
*
|
|
36
|
+
* @param request - Activation request with session id and payment receipt.
|
|
37
|
+
* @returns `PremiumActivationResult` with `status=active` on success.
|
|
38
|
+
*
|
|
39
|
+
* @usedBy `premium-tools.ts` → MCP tool `sap_premium_activate_session`,
|
|
40
|
+
* `remote/server.ts` → `POST /premium/activate`
|
|
41
|
+
*/
|
|
42
|
+
export declare function activatePremiumSession(request: PremiumActivationRequest): PremiumActivationResult;
|
|
43
|
+
//# sourceMappingURL=activation-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activation-manager.d.ts","sourceRoot":"","sources":["../../src/premium/activation-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAsBpF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB,CAuEjG"}
|