@oobe-protocol-labs/sap-mcp-server 0.9.2 → 0.9.3
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 +731 -0
- package/README.md +9 -3
- package/USER_DOCS/00_START_HERE.md +51 -4
- package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
- package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +32 -3
- package/USER_DOCS/04_CLIENT_CONFIGS.md +14 -7
- package/USER_DOCS/05_SKILLS_AND_TOOLS.md +68 -8
- package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +20 -14
- package/USER_DOCS/07_SMITHERY_AND_MARKETPLACES.md +7 -0
- package/config.example.json +5 -4
- package/config.schema.json +9 -4
- 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 +232 -25
- package/dist/adapters/mcp/sdk-compat.js.map +1 -1
- package/dist/adapters/mcp/tool-response.d.ts +51 -3
- package/dist/adapters/mcp/tool-response.d.ts.map +1 -1
- package/dist/adapters/mcp/tool-response.js +48 -3
- 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 +15 -10
- 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 +136 -33
- package/dist/config/mcp-client-injection.js.map +1 -1
- package/dist/config/paths.d.ts +14 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +20 -1
- 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/wizard.d.ts +6 -0
- package/dist/config/wizard.d.ts.map +1 -1
- package/dist/config/wizard.js +102 -18
- package/dist/config/wizard.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 +14 -1
- package/dist/config-cli.js.map +1 -1
- package/dist/core/constants.d.ts +33 -6
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +38 -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/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/memory/async-processor.d.ts +107 -0
- package/dist/memory/async-processor.d.ts.map +1 -0
- package/dist/memory/async-processor.js +204 -0
- package/dist/memory/async-processor.js.map +1 -0
- package/dist/memory/auto-record.d.ts +47 -0
- package/dist/memory/auto-record.d.ts.map +1 -0
- package/dist/memory/auto-record.js +133 -0
- package/dist/memory/auto-record.js.map +1 -0
- package/dist/memory/database.d.ts +103 -0
- package/dist/memory/database.d.ts.map +1 -0
- package/dist/memory/database.js +337 -0
- package/dist/memory/database.js.map +1 -0
- package/dist/memory/hermes-bridge.d.ts +70 -0
- package/dist/memory/hermes-bridge.d.ts.map +1 -0
- package/dist/memory/hermes-bridge.js +155 -0
- package/dist/memory/hermes-bridge.js.map +1 -0
- package/dist/memory/index.d.ts +23 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +22 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-store.d.ts +76 -0
- package/dist/memory/memory-store.d.ts.map +1 -0
- package/dist/memory/memory-store.js +231 -0
- package/dist/memory/memory-store.js.map +1 -0
- package/dist/memory/stream-buffer-store.d.ts +69 -0
- package/dist/memory/stream-buffer-store.d.ts.map +1 -0
- package/dist/memory/stream-buffer-store.js +182 -0
- package/dist/memory/stream-buffer-store.js.map +1 -0
- package/dist/memory/tool-call-store.d.ts +68 -0
- package/dist/memory/tool-call-store.d.ts.map +1 -0
- package/dist/memory/tool-call-store.js +189 -0
- package/dist/memory/tool-call-store.js.map +1 -0
- package/dist/memory/types.d.ts +197 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +15 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/utils.d.ts +30 -0
- package/dist/memory/utils.d.ts.map +1 -0
- package/dist/memory/utils.js +47 -0
- package/dist/memory/utils.js.map +1 -0
- 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 +22 -0
- package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -0
- package/dist/payments/hosted-tool-eligibility.js +173 -0
- package/dist/payments/hosted-tool-eligibility.js.map +1 -0
- package/dist/payments/index.d.ts +2 -2
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +1 -1
- package/dist/payments/index.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 +33 -0
- package/dist/payments/monetization-gate.d.ts.map +1 -1
- package/dist/payments/monetization-gate.js +124 -12
- package/dist/payments/monetization-gate.js.map +1 -1
- package/dist/payments/pricing.d.ts +31 -0
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +317 -19
- 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 +121 -0
- package/dist/payments/x402-paid-call.d.ts.map +1 -1
- package/dist/payments/x402-paid-call.js +428 -1
- 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 +165 -0
- package/dist/premium/builtin-plugins.d.ts.map +1 -0
- package/dist/premium/builtin-plugins.js +422 -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 +133 -0
- package/dist/premium/provider-bridge.d.ts.map +1 -0
- package/dist/premium/provider-bridge.js +349 -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 +138 -0
- package/dist/premium/webhook-engine.d.ts.map +1 -0
- package/dist/premium/webhook-engine.js +516 -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 +20 -16
- 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 +7 -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 +4 -5
- 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 +22 -23
- 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 +347 -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 +23 -4
- package/dist/remote/public-home/sections.js.map +1 -1
- package/dist/remote/public-home/types.d.ts +9 -0
- package/dist/remote/public-home/types.d.ts.map +1 -1
- package/dist/remote/server.d.ts +20 -0
- package/dist/remote/server.d.ts.map +1 -1
- package/dist/remote/server.js +369 -8
- 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 +38 -6
- 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/tool-permissions.d.ts.map +1 -1
- package/dist/security/tool-permissions.js +12 -0
- package/dist/security/tool-permissions.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 +35 -1
- package/dist/server/server-metadata.d.ts.map +1 -1
- package/dist/server/server-metadata.js +36 -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 +19 -3
- package/dist/signer/local-keypair-signer.d.ts.map +1 -1
- package/dist/signer/local-keypair-signer.js +24 -4
- 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/strategies/strategy-store.d.ts +82 -0
- package/dist/strategies/strategy-store.d.ts.map +1 -0
- package/dist/strategies/strategy-store.js +165 -0
- package/dist/strategies/strategy-store.js.map +1 -0
- package/dist/tools/agent-start-tool.d.ts.map +1 -1
- package/dist/tools/agent-start-tool.js +481 -5
- 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 +32 -7
- 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 +8 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/magicblock-tools.d.ts +31 -6
- package/dist/tools/magicblock-tools.d.ts.map +1 -1
- package/dist/tools/magicblock-tools.js +178 -53
- package/dist/tools/magicblock-tools.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +26 -0
- package/dist/tools/memory-tools.d.ts.map +1 -0
- package/dist/tools/memory-tools.js +533 -0
- package/dist/tools/memory-tools.js.map +1 -0
- 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 +1102 -0
- package/dist/tools/premium-tools.js.map +1 -0
- package/dist/tools/profile-tools.d.ts.map +1 -1
- package/dist/tools/profile-tools.js +18 -1
- package/dist/tools/profile-tools.js.map +1 -1
- package/dist/tools/quick-context-tool.d.ts +16 -0
- package/dist/tools/quick-context-tool.d.ts.map +1 -0
- package/dist/tools/quick-context-tool.js +304 -0
- package/dist/tools/quick-context-tool.js.map +1 -0
- package/dist/tools/register-tools.d.ts.map +1 -1
- package/dist/tools/register-tools.js +17 -0
- package/dist/tools/register-tools.js.map +1 -1
- package/dist/tools/sap-sdk-tools.d.ts +419 -0
- package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
- package/dist/tools/sap-sdk-tools.js +1547 -126
- package/dist/tools/sap-sdk-tools.js.map +1 -1
- package/dist/tools/sap-sns-tools.d.ts +2 -2
- package/dist/tools/sap-sns-tools.d.ts.map +1 -1
- package/dist/tools/sap-sns-tools.js +12 -8
- package/dist/tools/sap-sns-tools.js.map +1 -1
- package/dist/tools/skills-tools.d.ts +16 -0
- package/dist/tools/skills-tools.d.ts.map +1 -1
- package/dist/tools/skills-tools.js +282 -5
- package/dist/tools/skills-tools.js.map +1 -1
- package/dist/tools/tool-aliases.d.ts.map +1 -1
- package/dist/tools/tool-aliases.js +7 -0
- package/dist/tools/tool-aliases.js.map +1 -1
- package/dist/tools/transaction-tools.d.ts +135 -0
- package/dist/tools/transaction-tools.d.ts.map +1 -1
- package/dist/tools/transaction-tools.js +515 -16
- package/dist/tools/transaction-tools.js.map +1 -1
- package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
- package/dist/tools/x402-paid-call-tool.js +756 -23
- 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/dist/wizard-core/desktop-flow.d.ts.map +1 -1
- package/dist/wizard-core/desktop-flow.js +4 -2
- package/dist/wizard-core/desktop-flow.js.map +1 -1
- package/docs/03_CONFIGURATION_AND_WIZARD.md +5 -3
- package/docs/06_PAYMENTS_X402_AND_PAYSH.md +82 -4
- package/docs/07_ENDPOINTS_AND_CLIENTS.md +7 -3
- package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +21 -3
- package/docs/14_DESKTOP_WIZARD_RELEASE.md +8 -6
- package/docs/16_SAP_AGENT_IDENTITY_PIPELINE.md +304 -0
- package/docs/18_PREMIUM_PLUGIN_RUNTIME.md +108 -0
- package/docs/BRANCH_AND_CI.md +67 -0
- package/docs/README.md +19 -2
- package/docs/magicblock-tools.md +70 -29
- package/package.json +10 -6
- package/server.json +3 -3
- package/skills/README.md +12 -2
- package/skills/sap-agent-registry/SKILL.md +99 -4
- package/skills/sap-defi/SKILL.md +8 -4
- package/skills/sap-discovery-indexing/SKILL.md +26 -4
- package/skills/sap-escrow-settlement/SKILL.md +22 -4
- package/skills/sap-mcp/SKILL.md +140 -22
- package/skills/sap-mcp/TOOL_REFERENCE.md +47 -7
- package/skills/sap-nft-metaplex/SKILL.md +22 -0
- package/skills/sap-operations/SKILL.md +32 -3
- package/skills/sap-payments-x402/SKILL.md +85 -8
- package/skills/sap-sns/SKILL.md +32 -10
- package/smithery.config.schema.json +7 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name premium/event-store
|
|
3
|
+
* @description In-memory event store for premium event replay and idempotency.
|
|
4
|
+
*
|
|
5
|
+
* Every event delivered through the stream broker or webhook engine is recorded
|
|
6
|
+
* here. The store supports:
|
|
7
|
+
* - append with `eventId` deduplication (idempotency)
|
|
8
|
+
* - query by session, event type, or time window
|
|
9
|
+
* - automatic eviction of events past their replay window
|
|
10
|
+
*
|
|
11
|
+
* @flow
|
|
12
|
+
* 1. `stream-broker.ts` / `webhook-engine.ts` deliver an event →
|
|
13
|
+
* `appendEvent()` stores it (dedup by `eventId`).
|
|
14
|
+
* 2. `stream-broker.ts` reconnects a client → `getEvents()` replays past
|
|
15
|
+
* events within the replay window.
|
|
16
|
+
* 3. Pruning runs on every append/query to evict events past their
|
|
17
|
+
* `replayWindowSeconds` per capability.
|
|
18
|
+
*
|
|
19
|
+
* @module premium/event-store
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* @description In-memory event records keyed by `eventId` for O(1) dedup.
|
|
23
|
+
*/
|
|
24
|
+
const eventMap = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* @description Hard cap on stored events to prevent unbounded memory growth.
|
|
27
|
+
*
|
|
28
|
+
* Default: 500_000 (tuned for a 312GB RAM production server).
|
|
29
|
+
* Each event is ~1KB, so 500K events ≈ 500MB.
|
|
30
|
+
* Override via `SAP_MCP_PREMIUM_MAX_EVENTS` env var.
|
|
31
|
+
*/
|
|
32
|
+
const MAX_STORED_EVENTS = (() => {
|
|
33
|
+
const raw = process.env.SAP_MCP_PREMIUM_MAX_EVENTS;
|
|
34
|
+
const parsed = Number(raw);
|
|
35
|
+
return Number.isFinite(parsed) && parsed > 0 ? Math.trunc(parsed) : 500_000;
|
|
36
|
+
})();
|
|
37
|
+
/**
|
|
38
|
+
* @name appendEvent
|
|
39
|
+
* @description Append a premium event to the store with idempotency.
|
|
40
|
+
*
|
|
41
|
+
* If an event with the same `eventId` already exists, it is not duplicated.
|
|
42
|
+
* The store is pruned after each append.
|
|
43
|
+
*
|
|
44
|
+
* @param record - The event record to append.
|
|
45
|
+
* @returns True if the event was newly inserted, false if it was a duplicate.
|
|
46
|
+
*
|
|
47
|
+
* @usedBy `stream-broker.ts`, `webhook-engine.ts`
|
|
48
|
+
*/
|
|
49
|
+
export function appendEvent(record) {
|
|
50
|
+
if (eventMap.has(record.eventId))
|
|
51
|
+
return false;
|
|
52
|
+
eventMap.set(record.eventId, record);
|
|
53
|
+
pruneOldEvents();
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @name getEvents
|
|
58
|
+
* @description Query events from the store with optional filters.
|
|
59
|
+
*
|
|
60
|
+
* @param query - Filter criteria (sessionId, eventType, since, limit).
|
|
61
|
+
* @returns Array of matching event records, ordered by `deliveredAt` ascending.
|
|
62
|
+
*
|
|
63
|
+
* @usedBy `stream-broker.ts` (replay), `premium-tools.ts` (audit)
|
|
64
|
+
*/
|
|
65
|
+
export function getEvents(query = {}) {
|
|
66
|
+
const limit = query.limit ?? 1_000;
|
|
67
|
+
const sinceMs = query.since ? new Date(query.since).getTime() : 0;
|
|
68
|
+
const results = [];
|
|
69
|
+
for (const record of eventMap.values()) {
|
|
70
|
+
if (query.sessionId && record.sessionId !== query.sessionId)
|
|
71
|
+
continue;
|
|
72
|
+
if (query.eventType && record.eventType !== query.eventType)
|
|
73
|
+
continue;
|
|
74
|
+
if (sinceMs > 0 && new Date(record.deliveredAt).getTime() < sinceMs)
|
|
75
|
+
continue;
|
|
76
|
+
results.push(record);
|
|
77
|
+
if (results.length >= limit)
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
return results.sort((a, b) => new Date(a.deliveredAt).getTime() - new Date(b.deliveredAt).getTime());
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @name getEventCount
|
|
84
|
+
* @description Return the total number of stored events.
|
|
85
|
+
*
|
|
86
|
+
* @usedBy `metrics.ts`
|
|
87
|
+
*/
|
|
88
|
+
export function getEventCount() {
|
|
89
|
+
return eventMap.size;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @name pruneOldEvents
|
|
93
|
+
* @description Evict events older than 24 hours or when the store exceeds
|
|
94
|
+
* `MAX_STORED_EVENTS`. The oldest events are evicted first.
|
|
95
|
+
*
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
98
|
+
function pruneOldEvents() {
|
|
99
|
+
if (eventMap.size <= MAX_STORED_EVENTS) {
|
|
100
|
+
// Also evict events older than 24 hours.
|
|
101
|
+
const cutoff = Date.now() - 24 * 60 * 60 * 1000;
|
|
102
|
+
for (const [eventId, record] of eventMap.entries()) {
|
|
103
|
+
if (new Date(record.deliveredAt).getTime() < cutoff) {
|
|
104
|
+
eventMap.delete(eventId);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
// Over cap: evict oldest entries by insertion order.
|
|
110
|
+
const toEvict = eventMap.size - MAX_STORED_EVENTS;
|
|
111
|
+
let evicted = 0;
|
|
112
|
+
for (const eventId of eventMap.keys()) {
|
|
113
|
+
if (evicted >= toEvict)
|
|
114
|
+
break;
|
|
115
|
+
eventMap.delete(eventId);
|
|
116
|
+
evicted++;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @name clearAllEvents
|
|
121
|
+
* @description Clear all events from the store.
|
|
122
|
+
*
|
|
123
|
+
* Used in tests and during graceful server shutdown.
|
|
124
|
+
*
|
|
125
|
+
* @internal
|
|
126
|
+
*/
|
|
127
|
+
export function clearAllEvents() {
|
|
128
|
+
eventMap.clear();
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=event-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../../src/premium/event-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name premium/index
|
|
3
|
+
* @description Barrel export for the SAP MCP Premium plugin subsystem.
|
|
4
|
+
*
|
|
5
|
+
* Re-exports every public module in the premium layer so external consumers
|
|
6
|
+
* (MCP tools, remote server, tests) can import from a single entry point:
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* import {
|
|
10
|
+
* listPremiumPlugins,
|
|
11
|
+
* createPremiumSessionPlan,
|
|
12
|
+
* activatePremiumSession,
|
|
13
|
+
* startStream,
|
|
14
|
+
* streamEvents,
|
|
15
|
+
* registerWebhook,
|
|
16
|
+
* getPremiumMetrics,
|
|
17
|
+
* validatePremiumPluginManifest,
|
|
18
|
+
* type PremiumPluginManifest,
|
|
19
|
+
* } from '../premium/index.js';
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @flow
|
|
23
|
+
* Import order matters only for readability, not for runtime:
|
|
24
|
+
* 1. `builtin-plugins` — Built-in plugin definitions and discovery helpers.
|
|
25
|
+
* 2. `manifest-builder` — Template generation for custom plugin authors.
|
|
26
|
+
* 3. `private-manifest-loader` — Filesystem loader for enterprise manifests.
|
|
27
|
+
* 4. `plugin-validator` — Manifest validation against strict schema rules.
|
|
28
|
+
* 5. `session-manager` — In-memory session plan lifecycle.
|
|
29
|
+
* 6. `activation-manager` — x402/pay.sh receipt binding and session activation.
|
|
30
|
+
* 7. `event-store` — Replay and idempotency store for delivered events.
|
|
31
|
+
* 8. `provider-bridge` — Dynamic loader for private provider adapters.
|
|
32
|
+
* 9. `stream-broker` — SSE stream delivery for premium real-time events.
|
|
33
|
+
* 10. `webhook-engine` — Signed webhook delivery for premium event callbacks.
|
|
34
|
+
* 11. `metrics` — Premium subsystem metrics snapshot.
|
|
35
|
+
* 12. `types` — All TypeScript type declarations.
|
|
36
|
+
*
|
|
37
|
+
* @module premium/index
|
|
38
|
+
*/
|
|
39
|
+
export * from './builtin-plugins.js';
|
|
40
|
+
export * from './trading-capabilities.js';
|
|
41
|
+
export * from './meme-radar-capabilities.js';
|
|
42
|
+
export * from './tech-fundamentals-capabilities.js';
|
|
43
|
+
export * from './manifest-builder.js';
|
|
44
|
+
export * from './private-manifest-loader.js';
|
|
45
|
+
export * from './plugin-validator.js';
|
|
46
|
+
export * from './session-manager.js';
|
|
47
|
+
export * from './activation-manager.js';
|
|
48
|
+
export * from './event-store.js';
|
|
49
|
+
export * from './provider-bridge.js';
|
|
50
|
+
export * from './stream-broker.js';
|
|
51
|
+
export * from './webhook-engine.js';
|
|
52
|
+
export * from './metrics.js';
|
|
53
|
+
export * from './types.js';
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/premium/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name premium/index
|
|
3
|
+
* @description Barrel export for the SAP MCP Premium plugin subsystem.
|
|
4
|
+
*
|
|
5
|
+
* Re-exports every public module in the premium layer so external consumers
|
|
6
|
+
* (MCP tools, remote server, tests) can import from a single entry point:
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* import {
|
|
10
|
+
* listPremiumPlugins,
|
|
11
|
+
* createPremiumSessionPlan,
|
|
12
|
+
* activatePremiumSession,
|
|
13
|
+
* startStream,
|
|
14
|
+
* streamEvents,
|
|
15
|
+
* registerWebhook,
|
|
16
|
+
* getPremiumMetrics,
|
|
17
|
+
* validatePremiumPluginManifest,
|
|
18
|
+
* type PremiumPluginManifest,
|
|
19
|
+
* } from '../premium/index.js';
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @flow
|
|
23
|
+
* Import order matters only for readability, not for runtime:
|
|
24
|
+
* 1. `builtin-plugins` — Built-in plugin definitions and discovery helpers.
|
|
25
|
+
* 2. `manifest-builder` — Template generation for custom plugin authors.
|
|
26
|
+
* 3. `private-manifest-loader` — Filesystem loader for enterprise manifests.
|
|
27
|
+
* 4. `plugin-validator` — Manifest validation against strict schema rules.
|
|
28
|
+
* 5. `session-manager` — In-memory session plan lifecycle.
|
|
29
|
+
* 6. `activation-manager` — x402/pay.sh receipt binding and session activation.
|
|
30
|
+
* 7. `event-store` — Replay and idempotency store for delivered events.
|
|
31
|
+
* 8. `provider-bridge` — Dynamic loader for private provider adapters.
|
|
32
|
+
* 9. `stream-broker` — SSE stream delivery for premium real-time events.
|
|
33
|
+
* 10. `webhook-engine` — Signed webhook delivery for premium event callbacks.
|
|
34
|
+
* 11. `metrics` — Premium subsystem metrics snapshot.
|
|
35
|
+
* 12. `types` — All TypeScript type declarations.
|
|
36
|
+
*
|
|
37
|
+
* @module premium/index
|
|
38
|
+
*/
|
|
39
|
+
export * from './builtin-plugins.js';
|
|
40
|
+
export * from './trading-capabilities.js';
|
|
41
|
+
export * from './meme-radar-capabilities.js';
|
|
42
|
+
export * from './tech-fundamentals-capabilities.js';
|
|
43
|
+
export * from './manifest-builder.js';
|
|
44
|
+
export * from './private-manifest-loader.js';
|
|
45
|
+
export * from './plugin-validator.js';
|
|
46
|
+
export * from './session-manager.js';
|
|
47
|
+
export * from './activation-manager.js';
|
|
48
|
+
export * from './event-store.js';
|
|
49
|
+
export * from './provider-bridge.js';
|
|
50
|
+
export * from './stream-broker.js';
|
|
51
|
+
export * from './webhook-engine.js';
|
|
52
|
+
export * from './metrics.js';
|
|
53
|
+
export * from './types.js';
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/premium/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name premium/manifest-builder
|
|
3
|
+
* @description Template generator for custom premium plugin manifests.
|
|
4
|
+
*
|
|
5
|
+
* Produces a data-only `PremiumPluginManifest` from a simplified request,
|
|
6
|
+
* filling in sensible defaults for pricing, delivery, and JSON schemas.
|
|
7
|
+
* The generated template is meant to be customized by plugin authors before
|
|
8
|
+
* production use — it never writes files, loads code, or embeds secrets.
|
|
9
|
+
*
|
|
10
|
+
* @flow
|
|
11
|
+
* 1. MCP tool `sap_premium_build_manifest_template` receives a request
|
|
12
|
+
* with plugin id, capability id, type, and optional overrides.
|
|
13
|
+
* 2. → `buildPremiumPluginManifestTemplate(request)` generates a full manifest
|
|
14
|
+
* with default pricing/delivery/schema based on capability type.
|
|
15
|
+
* 3. The agent returns the manifest JSON to the caller for review/customization.
|
|
16
|
+
* 4. The caller can then validate it with `validatePremiumPluginManifest`.
|
|
17
|
+
*
|
|
18
|
+
* @module premium/manifest-builder
|
|
19
|
+
*/
|
|
20
|
+
import type { PremiumCapabilityType, PremiumPluginManifest } from './types.js';
|
|
21
|
+
/**
|
|
22
|
+
* @name PremiumManifestTemplateRequest
|
|
23
|
+
* @description Simplified request for generating a premium plugin manifest template.
|
|
24
|
+
*
|
|
25
|
+
* Only `pluginId`, `capabilityId`, and `capabilityType` are required. All other
|
|
26
|
+
* fields have sensible defaults and can be overridden by the caller.
|
|
27
|
+
*
|
|
28
|
+
* @property pluginId - Unique plugin id (lowercase, dots/dashes allowed).
|
|
29
|
+
* @property capabilityId - Unique capability id within the plugin.
|
|
30
|
+
* @property capabilityType - `stream`, `webhook`, or `tool`.
|
|
31
|
+
* @property title - Optional human-readable label (defaults applied).
|
|
32
|
+
* @property description - Optional agent-facing description (defaults applied).
|
|
33
|
+
* @property publisher - Optional publisher name (defaults to 'Custom Publisher').
|
|
34
|
+
* @property visibility - Optional visibility (defaults to 'private').
|
|
35
|
+
* @property unitPriceUsd - Optional price per unit in USD (defaults to 0.01).
|
|
36
|
+
* @property providerEnv - Optional env var names for provider readiness.
|
|
37
|
+
*
|
|
38
|
+
* @usedBy `premium-tools.ts` → MCP tool `sap_premium_build_manifest_template`.
|
|
39
|
+
*/
|
|
40
|
+
export interface PremiumManifestTemplateRequest {
|
|
41
|
+
pluginId: string;
|
|
42
|
+
capabilityId: string;
|
|
43
|
+
capabilityType: PremiumCapabilityType;
|
|
44
|
+
title?: string;
|
|
45
|
+
description?: string;
|
|
46
|
+
publisher?: string;
|
|
47
|
+
visibility?: 'public' | 'private' | 'enterprise';
|
|
48
|
+
unitPriceUsd?: number;
|
|
49
|
+
providerEnv?: string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @name buildPremiumPluginManifestTemplate
|
|
53
|
+
* @description Build a data-only premium plugin manifest template from a simplified request.
|
|
54
|
+
*
|
|
55
|
+
* It never writes files, loads code, or embeds provider secrets. The generated
|
|
56
|
+
* manifest uses default schemas, pricing, and delivery contracts that are
|
|
57
|
+
* sensible starting points but should be customized before production use.
|
|
58
|
+
*
|
|
59
|
+
* @param request - Template request with required plugin/capability ids and type.
|
|
60
|
+
* @returns A complete `PremiumPluginManifest` with one capability.
|
|
61
|
+
*
|
|
62
|
+
* @usedBy `premium-tools.ts` → MCP tool `sap_premium_build_manifest_template`.
|
|
63
|
+
*/
|
|
64
|
+
export declare function buildPremiumPluginManifestTemplate(request: PremiumManifestTemplateRequest): PremiumPluginManifest;
|
|
65
|
+
//# sourceMappingURL=manifest-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-builder.d.ts","sourceRoot":"","sources":["../../src/premium/manifest-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,qBAAqB,EAErB,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,qBAAqB,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAkID;;;;;;;;;;;;GAYG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,8BAA8B,GAAG,qBAAqB,CA4BjH"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name premium/manifest-builder
|
|
3
|
+
* @description Template generator for custom premium plugin manifests.
|
|
4
|
+
*
|
|
5
|
+
* Produces a data-only `PremiumPluginManifest` from a simplified request,
|
|
6
|
+
* filling in sensible defaults for pricing, delivery, and JSON schemas.
|
|
7
|
+
* The generated template is meant to be customized by plugin authors before
|
|
8
|
+
* production use — it never writes files, loads code, or embeds secrets.
|
|
9
|
+
*
|
|
10
|
+
* @flow
|
|
11
|
+
* 1. MCP tool `sap_premium_build_manifest_template` receives a request
|
|
12
|
+
* with plugin id, capability id, type, and optional overrides.
|
|
13
|
+
* 2. → `buildPremiumPluginManifestTemplate(request)` generates a full manifest
|
|
14
|
+
* with default pricing/delivery/schema based on capability type.
|
|
15
|
+
* 3. The agent returns the manifest JSON to the caller for review/customization.
|
|
16
|
+
* 4. The caller can then validate it with `validatePremiumPluginManifest`.
|
|
17
|
+
*
|
|
18
|
+
* @module premium/manifest-builder
|
|
19
|
+
*/
|
|
20
|
+
/* -------------------------------------------------------------------------- */
|
|
21
|
+
/* Default JSON schemas */
|
|
22
|
+
/* -------------------------------------------------------------------------- */
|
|
23
|
+
/**
|
|
24
|
+
* @description Default input schema for template-generated capabilities.
|
|
25
|
+
* Requires a `requestId` for idempotency and allows free-form `filters`.
|
|
26
|
+
*/
|
|
27
|
+
const defaultInputSchema = {
|
|
28
|
+
type: 'object',
|
|
29
|
+
required: ['requestId'],
|
|
30
|
+
properties: {
|
|
31
|
+
requestId: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'Caller-provided idempotency key binding planning, payment, delivery, and audit output.',
|
|
34
|
+
},
|
|
35
|
+
filters: {
|
|
36
|
+
type: 'object',
|
|
37
|
+
additionalProperties: true,
|
|
38
|
+
description: 'Narrow capability-specific filters. Keep broad scans out of premium delivery paths.',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
additionalProperties: false,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @description Default output schema for template-generated capabilities.
|
|
45
|
+
* Returns a stable event id, ISO timestamp, and a versioned provider payload.
|
|
46
|
+
* The `payload` field uses `additionalProperties: true` as a placeholder —
|
|
47
|
+
* plugin authors should replace it with a strict object schema before production.
|
|
48
|
+
*/
|
|
49
|
+
const defaultOutputSchema = {
|
|
50
|
+
type: 'object',
|
|
51
|
+
required: ['eventId', 'observedAt', 'payload'],
|
|
52
|
+
properties: {
|
|
53
|
+
eventId: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
description: 'Stable provider event id suitable for audit binding, replay protection, and de-duplication.',
|
|
56
|
+
},
|
|
57
|
+
observedAt: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
format: 'date-time',
|
|
60
|
+
description: 'ISO timestamp when the provider observed or delivered this premium result.',
|
|
61
|
+
},
|
|
62
|
+
payload: {
|
|
63
|
+
type: 'object',
|
|
64
|
+
additionalProperties: true,
|
|
65
|
+
description: 'Provider-specific payload. Replace this with a strict object schema before production.',
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
additionalProperties: false,
|
|
69
|
+
};
|
|
70
|
+
/* -------------------------------------------------------------------------- */
|
|
71
|
+
/* Default pricing & delivery factories */
|
|
72
|
+
/* -------------------------------------------------------------------------- */
|
|
73
|
+
/**
|
|
74
|
+
* @name defaultPricing
|
|
75
|
+
* @description Generate a default `PremiumPricingPolicy` based on capability type.
|
|
76
|
+
*
|
|
77
|
+
* Maps each type to its canonical pricing model, unit, and tier:
|
|
78
|
+
* - `stream` → `x402-per-minute`, `minute`, `premium-stream`, 1–120 units.
|
|
79
|
+
* - `webhook` → `x402-per-event`, `event`, `premium-webhook`, 10–100 000 units.
|
|
80
|
+
* - `tool` → `x402-session`, `session`, `premium-tool`, 1–120 units.
|
|
81
|
+
*
|
|
82
|
+
* @param type - The capability type to generate pricing for.
|
|
83
|
+
* @param unitPriceUsd - Price per unit in USD.
|
|
84
|
+
* @returns A complete `PremiumPricingPolicy` with `x402` settlement.
|
|
85
|
+
*
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
function defaultPricing(type, unitPriceUsd) {
|
|
89
|
+
const modelByType = {
|
|
90
|
+
stream: 'x402-per-minute',
|
|
91
|
+
webhook: 'x402-per-event',
|
|
92
|
+
tool: 'x402-session',
|
|
93
|
+
};
|
|
94
|
+
const unitByType = {
|
|
95
|
+
stream: 'minute',
|
|
96
|
+
webhook: 'event',
|
|
97
|
+
tool: 'session',
|
|
98
|
+
};
|
|
99
|
+
const tierByType = {
|
|
100
|
+
stream: 'premium-stream',
|
|
101
|
+
webhook: 'premium-webhook',
|
|
102
|
+
tool: 'premium-tool',
|
|
103
|
+
};
|
|
104
|
+
return {
|
|
105
|
+
tier: tierByType[type],
|
|
106
|
+
model: modelByType[type],
|
|
107
|
+
unit: unitByType[type],
|
|
108
|
+
unitPriceUsd,
|
|
109
|
+
minUnits: type === 'webhook' ? 10 : 1,
|
|
110
|
+
maxUnits: type === 'webhook' ? 100_000 : 120,
|
|
111
|
+
settlement: 'x402',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @name defaultDelivery
|
|
116
|
+
* @description Generate a default `PremiumDeliveryContract` based on capability type.
|
|
117
|
+
*
|
|
118
|
+
* Maps each type to its canonical transport, event id pattern, latency, and
|
|
119
|
+
* replay window:
|
|
120
|
+
* - `stream` → `mcp-streamable-http`, 750ms latency, 300s replay.
|
|
121
|
+
* - `webhook` → `webhook-http`, 1500ms latency, 900s replay.
|
|
122
|
+
* - `tool` → `mcp-streamable-http`, 1500ms latency, 300s replay.
|
|
123
|
+
*
|
|
124
|
+
* @param type - The capability type to generate delivery for.
|
|
125
|
+
* @returns A complete `PremiumDeliveryContract`.
|
|
126
|
+
*
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
function defaultDelivery(type) {
|
|
130
|
+
return {
|
|
131
|
+
transport: type === 'webhook' ? 'webhook-http' : 'mcp-streamable-http',
|
|
132
|
+
events: type === 'tool' ? ['tool.completed'] : [`${type}.event`],
|
|
133
|
+
latencyTargetMs: type === 'stream' ? 750 : 1_500,
|
|
134
|
+
replayWindowSeconds: type === 'webhook' ? 900 : 300,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/* -------------------------------------------------------------------------- */
|
|
138
|
+
/* Public API */
|
|
139
|
+
/* -------------------------------------------------------------------------- */
|
|
140
|
+
/**
|
|
141
|
+
* @name buildPremiumPluginManifestTemplate
|
|
142
|
+
* @description Build a data-only premium plugin manifest template from a simplified request.
|
|
143
|
+
*
|
|
144
|
+
* It never writes files, loads code, or embeds provider secrets. The generated
|
|
145
|
+
* manifest uses default schemas, pricing, and delivery contracts that are
|
|
146
|
+
* sensible starting points but should be customized before production use.
|
|
147
|
+
*
|
|
148
|
+
* @param request - Template request with required plugin/capability ids and type.
|
|
149
|
+
* @returns A complete `PremiumPluginManifest` with one capability.
|
|
150
|
+
*
|
|
151
|
+
* @usedBy `premium-tools.ts` → MCP tool `sap_premium_build_manifest_template`.
|
|
152
|
+
*/
|
|
153
|
+
export function buildPremiumPluginManifestTemplate(request) {
|
|
154
|
+
// Filter out empty/falsy env var names from the request.
|
|
155
|
+
const providerEnv = request.providerEnv?.filter(Boolean) ?? [];
|
|
156
|
+
return {
|
|
157
|
+
id: request.pluginId,
|
|
158
|
+
version: '0.1.0',
|
|
159
|
+
title: request.title ?? 'Custom SAP MCP Premium Plugin',
|
|
160
|
+
description: request.description
|
|
161
|
+
?? 'Custom premium SAP MCP capability contract for paid agent runtime delivery with strict schemas and x402/pay.sh settlement.',
|
|
162
|
+
publisher: request.publisher ?? 'Custom Publisher',
|
|
163
|
+
visibility: request.visibility ?? 'private',
|
|
164
|
+
capabilities: [
|
|
165
|
+
{
|
|
166
|
+
id: request.capabilityId,
|
|
167
|
+
type: request.capabilityType,
|
|
168
|
+
title: request.title ?? 'Custom premium capability',
|
|
169
|
+
description: request.description
|
|
170
|
+
?? 'Custom premium capability. Replace this description with a concrete agent use case, delivery boundary, provider dependency, and payment model before production.',
|
|
171
|
+
status: providerEnv.length > 0 ? 'requires-provider' : 'planned',
|
|
172
|
+
requiresProvider: providerEnv.length > 0,
|
|
173
|
+
providerEnv,
|
|
174
|
+
inputSchema: defaultInputSchema,
|
|
175
|
+
outputSchema: defaultOutputSchema,
|
|
176
|
+
pricing: defaultPricing(request.capabilityType, request.unitPriceUsd ?? 0.01),
|
|
177
|
+
delivery: defaultDelivery(request.capabilityType),
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=manifest-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../src/premium/manifest-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name premium/meme-radar-capabilities
|
|
3
|
+
* @description Built-in premium meme radar capabilities for Solana meme token analysis.
|
|
4
|
+
*
|
|
5
|
+
* Defines 4 premium meme radar capabilities across 1 plugin:
|
|
6
|
+
*
|
|
7
|
+
* 1. `sap-premium-meme-radar` — Meme token intelligence:
|
|
8
|
+
* - `meme.newlisting.alert` — New token listing alerts (webhook)
|
|
9
|
+
* - `meme.social.sentiment` — Social sentiment stream (stream)
|
|
10
|
+
* - `meme.rugpull.detector` — Rugpull risk monitoring (stream)
|
|
11
|
+
* - `meme.volume.spike` — DEX volume anomaly detection (stream)
|
|
12
|
+
*
|
|
13
|
+
* These capabilities are contracts only — they become live when the corresponding
|
|
14
|
+
* provider env vars are configured and a provider adapter is loaded from the
|
|
15
|
+
* private subrepo.
|
|
16
|
+
*
|
|
17
|
+
* @flow
|
|
18
|
+
* 1. Agent discovers meme radar capabilities via `sap_premium_plugin_catalog`.
|
|
19
|
+
* 2. Agent creates a session plan for a meme stream or webhook.
|
|
20
|
+
* 3. Agent activates the session with x402/pay.sh receipt.
|
|
21
|
+
* 4. Agent connects to `GET /premium/stream/:sessionId` for SSE streams.
|
|
22
|
+
* 5. Agent registers webhooks for listing alerts via `POST /premium/webhook/register`.
|
|
23
|
+
* 6. Provider adapter in the private subrepo feeds real meme token data.
|
|
24
|
+
*
|
|
25
|
+
* @module premium/meme-radar-capabilities
|
|
26
|
+
*/
|
|
27
|
+
import type { PremiumPluginManifest } from './types.js';
|
|
28
|
+
/**
|
|
29
|
+
* @name MEME_RADAR_PREMIUM_PLUGINS
|
|
30
|
+
* @description Built-in premium meme radar plugin manifests.
|
|
31
|
+
*
|
|
32
|
+
* One plugin covering 4 meme radar capabilities:
|
|
33
|
+
* - `sap-premium-meme-radar` — 1 webhook + 3 stream capabilities
|
|
34
|
+
*
|
|
35
|
+
* @usedBy `listPremiumPlugins()` — merged with the existing built-in plugins.
|
|
36
|
+
*/
|
|
37
|
+
export declare const MEME_RADAR_PREMIUM_PLUGINS: PremiumPluginManifest[];
|
|
38
|
+
//# sourceMappingURL=meme-radar-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meme-radar-capabilities.d.ts","sourceRoot":"","sources":["../../src/premium/meme-radar-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAA+B,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAmRrF;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,qBAAqB,EA4C7D,CAAC"}
|