@ixo/oracle-runtime 0.0.1
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/dist/bootstrap/ambient-factory.d.ts +32 -0
- package/dist/bootstrap/ambient-factory.d.ts.map +1 -0
- package/dist/bootstrap/ambient-factory.js +128 -0
- package/dist/bootstrap/create-oracle-app.d.ts +112 -0
- package/dist/bootstrap/create-oracle-app.d.ts.map +1 -0
- package/dist/bootstrap/create-oracle-app.js +530 -0
- package/dist/bootstrap/graceful-shutdown.d.ts +20 -0
- package/dist/bootstrap/graceful-shutdown.d.ts.map +1 -0
- package/dist/bootstrap/graceful-shutdown.js +61 -0
- package/dist/bootstrap/index.d.ts +13 -0
- package/dist/bootstrap/index.d.ts.map +1 -0
- package/dist/bootstrap/index.js +6 -0
- package/dist/bootstrap/inspect.d.ts +74 -0
- package/dist/bootstrap/inspect.d.ts.map +1 -0
- package/dist/bootstrap/inspect.js +111 -0
- package/dist/bootstrap/plugin-loader.d.ts +50 -0
- package/dist/bootstrap/plugin-loader.d.ts.map +1 -0
- package/dist/bootstrap/plugin-loader.js +119 -0
- package/dist/bootstrap/runtime-app-module.d.ts +38 -0
- package/dist/bootstrap/runtime-app-module.d.ts.map +1 -0
- package/dist/bootstrap/runtime-app-module.js +114 -0
- package/dist/bootstrap/schema-composer.d.ts +46 -0
- package/dist/bootstrap/schema-composer.d.ts.map +1 -0
- package/dist/bootstrap/schema-composer.js +65 -0
- package/dist/config/base-env-config.d.ts +31 -0
- package/dist/config/base-env-config.d.ts.map +1 -0
- package/dist/config/base-env-config.js +70 -0
- package/dist/config/base-env-schema.d.ts +77 -0
- package/dist/config/base-env-schema.d.ts.map +1 -0
- package/dist/config/base-env-schema.js +102 -0
- package/dist/events/scoped-emitter.d.ts +33 -0
- package/dist/events/scoped-emitter.d.ts.map +1 -0
- package/dist/events/scoped-emitter.js +32 -0
- package/dist/graph/index.d.ts +8 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +6 -0
- package/dist/graph/main-agent-types.d.ts +88 -0
- package/dist/graph/main-agent-types.d.ts.map +1 -0
- package/dist/graph/main-agent-types.js +20 -0
- package/dist/graph/main-agent.d.ts +16 -0
- package/dist/graph/main-agent.d.ts.map +1 -0
- package/dist/graph/main-agent.js +251 -0
- package/dist/graph/middlewares/capability-gate-middleware.d.ts +35 -0
- package/dist/graph/middlewares/capability-gate-middleware.d.ts.map +1 -0
- package/dist/graph/middlewares/capability-gate-middleware.js +54 -0
- package/dist/graph/middlewares/index.d.ts +7 -0
- package/dist/graph/middlewares/index.d.ts.map +1 -0
- package/dist/graph/middlewares/index.js +6 -0
- package/dist/graph/middlewares/page-context-middleware.d.ts +23 -0
- package/dist/graph/middlewares/page-context-middleware.d.ts.map +1 -0
- package/dist/graph/middlewares/page-context-middleware.js +68 -0
- package/dist/graph/middlewares/safety-guardrail-middleware.d.ts +26 -0
- package/dist/graph/middlewares/safety-guardrail-middleware.d.ts.map +1 -0
- package/dist/graph/middlewares/safety-guardrail-middleware.js +88 -0
- package/dist/graph/middlewares/summarization-middleware.d.ts +17 -0
- package/dist/graph/middlewares/summarization-middleware.d.ts.map +1 -0
- package/dist/graph/middlewares/summarization-middleware.js +62 -0
- package/dist/graph/middlewares/tool-repetition-guard-middleware.d.ts +24 -0
- package/dist/graph/middlewares/tool-repetition-guard-middleware.d.ts.map +1 -0
- package/dist/graph/middlewares/tool-repetition-guard-middleware.js +112 -0
- package/dist/graph/middlewares/tool-validation-middleware.d.ts +24 -0
- package/dist/graph/middlewares/tool-validation-middleware.d.ts.map +1 -0
- package/dist/graph/middlewares/tool-validation-middleware.js +61 -0
- package/dist/graph/prompt-composer.d.ts +69 -0
- package/dist/graph/prompt-composer.d.ts.map +1 -0
- package/dist/graph/prompt-composer.js +315 -0
- package/dist/graph/state.d.ts +65 -0
- package/dist/graph/state.d.ts.map +1 -0
- package/dist/graph/state.js +60 -0
- package/dist/graph/sub-agent-fallback.d.ts +56 -0
- package/dist/graph/sub-agent-fallback.d.ts.map +1 -0
- package/dist/graph/sub-agent-fallback.js +79 -0
- package/dist/graph/subagent-as-tool.d.ts +77 -0
- package/dist/graph/subagent-as-tool.d.ts.map +1 -0
- package/dist/graph/subagent-as-tool.js +197 -0
- package/dist/graph/wrap-plugin-tool.d.ts +28 -0
- package/dist/graph/wrap-plugin-tool.d.ts.map +1 -0
- package/dist/graph/wrap-plugin-tool.js +30 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +1 -0
- package/dist/llm/llm-provider.d.ts +41 -0
- package/dist/llm/llm-provider.d.ts.map +1 -0
- package/dist/llm/llm-provider.js +130 -0
- package/dist/manifest/index.d.ts +6 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +3 -0
- package/dist/manifest/schema.d.ts +31 -0
- package/dist/manifest/schema.d.ts.map +1 -0
- package/dist/manifest/schema.js +44 -0
- package/dist/manifest/tier1-renderer.d.ts +31 -0
- package/dist/manifest/tier1-renderer.d.ts.map +1 -0
- package/dist/manifest/tier1-renderer.js +68 -0
- package/dist/manifest/validator.d.ts +34 -0
- package/dist/manifest/validator.d.ts.map +1 -0
- package/dist/manifest/validator.js +111 -0
- package/dist/matrix/checkpointer/matrix-upload-utils.d.ts +66 -0
- package/dist/matrix/checkpointer/matrix-upload-utils.d.ts.map +1 -0
- package/dist/matrix/checkpointer/matrix-upload-utils.js +228 -0
- package/dist/matrix/checkpointer/type.d.ts +4 -0
- package/dist/matrix/checkpointer/type.d.ts.map +1 -0
- package/dist/matrix/checkpointer/type.js +1 -0
- package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.module.d.ts +3 -0
- package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.module.d.ts.map +1 -0
- package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.module.js +22 -0
- package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.service.d.ts +93 -0
- package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.service.d.ts.map +1 -0
- package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.service.js +856 -0
- package/dist/matrix/room-membership.d.ts +11 -0
- package/dist/matrix/room-membership.d.ts.map +1 -0
- package/dist/matrix/room-membership.js +33 -0
- package/dist/meta-tools/index.d.ts +28 -0
- package/dist/meta-tools/index.d.ts.map +1 -0
- package/dist/meta-tools/index.js +24 -0
- package/dist/meta-tools/list-capabilities.d.ts +12 -0
- package/dist/meta-tools/list-capabilities.d.ts.map +1 -0
- package/dist/meta-tools/list-capabilities.js +55 -0
- package/dist/meta-tools/load-capability.d.ts +24 -0
- package/dist/meta-tools/load-capability.d.ts.map +1 -0
- package/dist/meta-tools/load-capability.js +82 -0
- package/dist/modules/auth/auth-header.middleware.d.ts +37 -0
- package/dist/modules/auth/auth-header.middleware.d.ts.map +1 -0
- package/dist/modules/auth/auth-header.middleware.js +115 -0
- package/dist/modules/auth/auth.module.d.ts +9 -0
- package/dist/modules/auth/auth.module.d.ts.map +1 -0
- package/dist/modules/auth/auth.module.js +27 -0
- package/dist/modules/auth/index.d.ts +3 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +2 -0
- package/dist/modules/auth/validate-ucan-delegation.d.ts +31 -0
- package/dist/modules/auth/validate-ucan-delegation.d.ts.map +1 -0
- package/dist/modules/auth/validate-ucan-delegation.js +36 -0
- package/dist/modules/blob-store/blob-store.module.d.ts +10 -0
- package/dist/modules/blob-store/blob-store.module.d.ts.map +1 -0
- package/dist/modules/blob-store/blob-store.module.js +25 -0
- package/dist/modules/blob-store/blob-store.service.d.ts +66 -0
- package/dist/modules/blob-store/blob-store.service.d.ts.map +1 -0
- package/dist/modules/blob-store/blob-store.service.js +108 -0
- package/dist/modules/blob-store/index.d.ts +3 -0
- package/dist/modules/blob-store/index.d.ts.map +1 -0
- package/dist/modules/blob-store/index.js +2 -0
- package/dist/modules/health/health.controller.d.ts +18 -0
- package/dist/modules/health/health.controller.d.ts.map +1 -0
- package/dist/modules/health/health.controller.js +48 -0
- package/dist/modules/health/health.module.d.ts +8 -0
- package/dist/modules/health/health.module.d.ts.map +1 -0
- package/dist/modules/health/health.module.js +21 -0
- package/dist/modules/index.d.ts +8 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +6 -0
- package/dist/modules/messages/__test-fixtures__/deps.d.ts +41 -0
- package/dist/modules/messages/__test-fixtures__/deps.d.ts.map +1 -0
- package/dist/modules/messages/__test-fixtures__/deps.js +73 -0
- package/dist/modules/messages/__test-fixtures__/fake-agent.d.ts +27 -0
- package/dist/modules/messages/__test-fixtures__/fake-agent.d.ts.map +1 -0
- package/dist/modules/messages/__test-fixtures__/fake-agent.js +41 -0
- package/dist/modules/messages/__test-fixtures__/fake-response.d.ts +29 -0
- package/dist/modules/messages/__test-fixtures__/fake-response.d.ts.map +1 -0
- package/dist/modules/messages/__test-fixtures__/fake-response.js +55 -0
- package/dist/modules/messages/agent-builder.d.ts +64 -0
- package/dist/modules/messages/agent-builder.d.ts.map +1 -0
- package/dist/modules/messages/agent-builder.js +219 -0
- package/dist/modules/messages/batch-invoker.d.ts +36 -0
- package/dist/modules/messages/batch-invoker.d.ts.map +1 -0
- package/dist/modules/messages/batch-invoker.js +58 -0
- package/dist/modules/messages/dto/list-messages.dto.d.ts +4 -0
- package/dist/modules/messages/dto/list-messages.dto.d.ts.map +1 -0
- package/dist/modules/messages/dto/list-messages.dto.js +17 -0
- package/dist/modules/messages/dto/send-message.dto.d.ts +73 -0
- package/dist/modules/messages/dto/send-message.dto.d.ts.map +1 -0
- package/dist/modules/messages/dto/send-message.dto.js +318 -0
- package/dist/modules/messages/file-processing-credit-sink.port.d.ts +20 -0
- package/dist/modules/messages/file-processing-credit-sink.port.d.ts.map +1 -0
- package/dist/modules/messages/file-processing-credit-sink.port.js +1 -0
- package/dist/modules/messages/file-processing.service.d.ts +195 -0
- package/dist/modules/messages/file-processing.service.d.ts.map +1 -0
- package/dist/modules/messages/file-processing.service.js +1278 -0
- package/dist/modules/messages/homeserver-cache.d.ts +11 -0
- package/dist/modules/messages/homeserver-cache.d.ts.map +1 -0
- package/dist/modules/messages/homeserver-cache.js +31 -0
- package/dist/modules/messages/matrix-listener-bridge.d.ts +63 -0
- package/dist/modules/messages/matrix-listener-bridge.d.ts.map +1 -0
- package/dist/modules/messages/matrix-listener-bridge.js +280 -0
- package/dist/modules/messages/messages.controller.d.ts +13 -0
- package/dist/modules/messages/messages.controller.d.ts.map +1 -0
- package/dist/modules/messages/messages.controller.js +95 -0
- package/dist/modules/messages/messages.module.d.ts +3 -0
- package/dist/modules/messages/messages.module.d.ts.map +1 -0
- package/dist/modules/messages/messages.module.js +75 -0
- package/dist/modules/messages/messages.service.d.ts +112 -0
- package/dist/modules/messages/messages.service.d.ts.map +1 -0
- package/dist/modules/messages/messages.service.js +279 -0
- package/dist/modules/messages/oracle-runtime-bundle.d.ts +38 -0
- package/dist/modules/messages/oracle-runtime-bundle.d.ts.map +1 -0
- package/dist/modules/messages/oracle-runtime-bundle.js +40 -0
- package/dist/modules/messages/post-message-syncer.d.ts +30 -0
- package/dist/modules/messages/post-message-syncer.d.ts.map +1 -0
- package/dist/modules/messages/post-message-syncer.js +73 -0
- package/dist/modules/messages/request-preparer.d.ts +53 -0
- package/dist/modules/messages/request-preparer.d.ts.map +1 -0
- package/dist/modules/messages/request-preparer.js +139 -0
- package/dist/modules/messages/sse-stream-runner.d.ts +73 -0
- package/dist/modules/messages/sse-stream-runner.d.ts.map +1 -0
- package/dist/modules/messages/sse-stream-runner.js +352 -0
- package/dist/modules/messages/sse.utils.d.ts +29 -0
- package/dist/modules/messages/sse.utils.d.ts.map +1 -0
- package/dist/modules/messages/sse.utils.js +77 -0
- package/dist/modules/messages/user-context-fetcher.d.ts +41 -0
- package/dist/modules/messages/user-context-fetcher.d.ts.map +1 -0
- package/dist/modules/messages/user-context-fetcher.js +117 -0
- package/dist/modules/secrets/index.d.ts +2 -0
- package/dist/modules/secrets/index.d.ts.map +1 -0
- package/dist/modules/secrets/index.js +1 -0
- package/dist/modules/secrets/secrets.service.d.ts +29 -0
- package/dist/modules/secrets/secrets.service.d.ts.map +1 -0
- package/dist/modules/secrets/secrets.service.js +107 -0
- package/dist/modules/sessions/dto/create-session.dto.d.ts +6 -0
- package/dist/modules/sessions/dto/create-session.dto.d.ts.map +1 -0
- package/dist/modules/sessions/dto/create-session.dto.js +5 -0
- package/dist/modules/sessions/dto/delete-session.dto.d.ts +6 -0
- package/dist/modules/sessions/dto/delete-session.dto.d.ts.map +1 -0
- package/dist/modules/sessions/dto/delete-session.dto.js +5 -0
- package/dist/modules/sessions/dto/list-sessions.dto.d.ts +7 -0
- package/dist/modules/sessions/dto/list-sessions.dto.d.ts.map +1 -0
- package/dist/modules/sessions/dto/list-sessions.dto.js +6 -0
- package/dist/modules/sessions/session-history-processor.service.d.ts +48 -0
- package/dist/modules/sessions/session-history-processor.service.d.ts.map +1 -0
- package/dist/modules/sessions/session-history-processor.service.js +254 -0
- package/dist/modules/sessions/sessions.controller.d.ts +13 -0
- package/dist/modules/sessions/sessions.controller.d.ts.map +1 -0
- package/dist/modules/sessions/sessions.controller.js +113 -0
- package/dist/modules/sessions/sessions.module.d.ts +3 -0
- package/dist/modules/sessions/sessions.module.d.ts.map +1 -0
- package/dist/modules/sessions/sessions.module.js +49 -0
- package/dist/modules/sessions/sessions.service.d.ts +23 -0
- package/dist/modules/sessions/sessions.service.d.ts.map +1 -0
- package/dist/modules/sessions/sessions.service.js +168 -0
- package/dist/modules/subscription/subscription.middleware.d.ts +37 -0
- package/dist/modules/subscription/subscription.middleware.d.ts.map +1 -0
- package/dist/modules/subscription/subscription.middleware.js +141 -0
- package/dist/modules/subscription/subscription.module.d.ts +12 -0
- package/dist/modules/subscription/subscription.module.d.ts.map +1 -0
- package/dist/modules/subscription/subscription.module.js +26 -0
- package/dist/modules/throttler/throttler.module.d.ts +11 -0
- package/dist/modules/throttler/throttler.module.d.ts.map +1 -0
- package/dist/modules/throttler/throttler.module.js +32 -0
- package/dist/modules/ucan/index.d.ts +7 -0
- package/dist/modules/ucan/index.d.ts.map +1 -0
- package/dist/modules/ucan/index.js +6 -0
- package/dist/modules/ucan/ucan.config.d.ts +87 -0
- package/dist/modules/ucan/ucan.config.d.ts.map +1 -0
- package/dist/modules/ucan/ucan.config.js +114 -0
- package/dist/modules/ucan/ucan.module.d.ts +29 -0
- package/dist/modules/ucan/ucan.module.d.ts.map +1 -0
- package/dist/modules/ucan/ucan.module.js +46 -0
- package/dist/modules/ucan/ucan.service.d.ts +129 -0
- package/dist/modules/ucan/ucan.service.d.ts.map +1 -0
- package/dist/modules/ucan/ucan.service.js +582 -0
- package/dist/modules/ws/emitter.d.ts +12 -0
- package/dist/modules/ws/emitter.d.ts.map +1 -0
- package/dist/modules/ws/emitter.js +12 -0
- package/dist/modules/ws/ws.gateway.d.ts +34 -0
- package/dist/modules/ws/ws.gateway.d.ts.map +1 -0
- package/dist/modules/ws/ws.gateway.js +241 -0
- package/dist/modules/ws/ws.module.d.ts +3 -0
- package/dist/modules/ws/ws.module.d.ts.map +1 -0
- package/dist/modules/ws/ws.module.js +21 -0
- package/dist/modules/ws/ws.service.d.ts +25 -0
- package/dist/modules/ws/ws.service.d.ts.map +1 -0
- package/dist/modules/ws/ws.service.js +113 -0
- package/dist/plugin-api/define-plugin.d.ts +19 -0
- package/dist/plugin-api/define-plugin.d.ts.map +1 -0
- package/dist/plugin-api/define-plugin.js +25 -0
- package/dist/plugin-api/oracle-plugin.d.ts +92 -0
- package/dist/plugin-api/oracle-plugin.d.ts.map +1 -0
- package/dist/plugin-api/oracle-plugin.js +15 -0
- package/dist/plugin-api/tool-helper.d.ts +33 -0
- package/dist/plugin-api/tool-helper.d.ts.map +1 -0
- package/dist/plugin-api/tool-helper.js +40 -0
- package/dist/plugin-api/types.d.ts +378 -0
- package/dist/plugin-api/types.d.ts.map +1 -0
- package/dist/plugin-api/types.js +1 -0
- package/dist/plugins/agui/agui-agent.d.ts +10 -0
- package/dist/plugins/agui/agui-agent.d.ts.map +1 -0
- package/dist/plugins/agui/agui-agent.js +110 -0
- package/dist/plugins/agui/agui.plugin.d.ts +16 -0
- package/dist/plugins/agui/agui.plugin.d.ts.map +1 -0
- package/dist/plugins/agui/agui.plugin.js +117 -0
- package/dist/plugins/agui/index.d.ts +3 -0
- package/dist/plugins/agui/index.d.ts.map +1 -0
- package/dist/plugins/agui/index.js +2 -0
- package/dist/plugins/composio/composio-tools.d.ts +59 -0
- package/dist/plugins/composio/composio-tools.d.ts.map +1 -0
- package/dist/plugins/composio/composio-tools.js +88 -0
- package/dist/plugins/composio/composio-ucan.d.ts +14 -0
- package/dist/plugins/composio/composio-ucan.d.ts.map +1 -0
- package/dist/plugins/composio/composio-ucan.js +32 -0
- package/dist/plugins/composio/composio.plugin.d.ts +45 -0
- package/dist/plugins/composio/composio.plugin.d.ts.map +1 -0
- package/dist/plugins/composio/composio.plugin.js +116 -0
- package/dist/plugins/composio/index.d.ts +4 -0
- package/dist/plugins/composio/index.d.ts.map +1 -0
- package/dist/plugins/composio/index.js +3 -0
- package/dist/plugins/credits/claim-processing.module.d.ts +28 -0
- package/dist/plugins/credits/claim-processing.module.d.ts.map +1 -0
- package/dist/plugins/credits/claim-processing.module.js +37 -0
- package/dist/plugins/credits/claim-processing.service.d.ts +92 -0
- package/dist/plugins/credits/claim-processing.service.d.ts.map +1 -0
- package/dist/plugins/credits/claim-processing.service.js +406 -0
- package/dist/plugins/credits/credits-middleware.d.ts +23 -0
- package/dist/plugins/credits/credits-middleware.d.ts.map +1 -0
- package/dist/plugins/credits/credits-middleware.js +154 -0
- package/dist/plugins/credits/credits.plugin.d.ts +55 -0
- package/dist/plugins/credits/credits.plugin.d.ts.map +1 -0
- package/dist/plugins/credits/credits.plugin.js +95 -0
- package/dist/plugins/credits/file-processing-sink.module.d.ts +18 -0
- package/dist/plugins/credits/file-processing-sink.module.d.ts.map +1 -0
- package/dist/plugins/credits/file-processing-sink.module.js +56 -0
- package/dist/plugins/credits/index.d.ts +8 -0
- package/dist/plugins/credits/index.d.ts.map +1 -0
- package/dist/plugins/credits/index.js +7 -0
- package/dist/plugins/credits/subscription-sink.module.d.ts +23 -0
- package/dist/plugins/credits/subscription-sink.module.d.ts.map +1 -0
- package/dist/plugins/credits/subscription-sink.module.js +54 -0
- package/dist/plugins/credits/token-limiter.d.ts +139 -0
- package/dist/plugins/credits/token-limiter.d.ts.map +1 -0
- package/dist/plugins/credits/token-limiter.js +302 -0
- package/dist/plugins/domain-indexer/domain-indexer-agent.d.ts +7 -0
- package/dist/plugins/domain-indexer/domain-indexer-agent.d.ts.map +1 -0
- package/dist/plugins/domain-indexer/domain-indexer-agent.js +48 -0
- package/dist/plugins/domain-indexer/domain-indexer-tools.d.ts +8 -0
- package/dist/plugins/domain-indexer/domain-indexer-tools.d.ts.map +1 -0
- package/dist/plugins/domain-indexer/domain-indexer-tools.js +194 -0
- package/dist/plugins/domain-indexer/domain-indexer.plugin.d.ts +20 -0
- package/dist/plugins/domain-indexer/domain-indexer.plugin.d.ts.map +1 -0
- package/dist/plugins/domain-indexer/domain-indexer.plugin.js +78 -0
- package/dist/plugins/domain-indexer/index.d.ts +2 -0
- package/dist/plugins/domain-indexer/index.d.ts.map +1 -0
- package/dist/plugins/domain-indexer/index.js +1 -0
- package/dist/plugins/editor/apply-sandbox-output.d.ts +33 -0
- package/dist/plugins/editor/apply-sandbox-output.d.ts.map +1 -0
- package/dist/plugins/editor/apply-sandbox-output.js +302 -0
- package/dist/plugins/editor/block-actions.d.ts +84 -0
- package/dist/plugins/editor/block-actions.d.ts.map +1 -0
- package/dist/plugins/editor/block-actions.js +471 -0
- package/dist/plugins/editor/blocknote-helper.d.ts +147 -0
- package/dist/plugins/editor/blocknote-helper.d.ts.map +1 -0
- package/dist/plugins/editor/blocknote-helper.js +542 -0
- package/dist/plugins/editor/blocknote-tools.d.ts +364 -0
- package/dist/plugins/editor/blocknote-tools.d.ts.map +1 -0
- package/dist/plugins/editor/blocknote-tools.js +2123 -0
- package/dist/plugins/editor/editor-agent.d.ts +47 -0
- package/dist/plugins/editor/editor-agent.d.ts.map +1 -0
- package/dist/plugins/editor/editor-agent.js +158 -0
- package/dist/plugins/editor/editor-mx.d.ts +56 -0
- package/dist/plugins/editor/editor-mx.d.ts.map +1 -0
- package/dist/plugins/editor/editor-mx.js +100 -0
- package/dist/plugins/editor/editor.plugin.d.ts +32 -0
- package/dist/plugins/editor/editor.plugin.d.ts.map +1 -0
- package/dist/plugins/editor/editor.plugin.js +189 -0
- package/dist/plugins/editor/index.d.ts +6 -0
- package/dist/plugins/editor/index.d.ts.map +1 -0
- package/dist/plugins/editor/index.js +5 -0
- package/dist/plugins/editor/mint-invocation-tool.d.ts +72 -0
- package/dist/plugins/editor/mint-invocation-tool.d.ts.map +1 -0
- package/dist/plugins/editor/mint-invocation-tool.js +173 -0
- package/dist/plugins/editor/page-functions.d.ts +100 -0
- package/dist/plugins/editor/page-functions.d.ts.map +1 -0
- package/dist/plugins/editor/page-functions.js +317 -0
- package/dist/plugins/editor/page-tools.d.ts +75 -0
- package/dist/plugins/editor/page-tools.d.ts.map +1 -0
- package/dist/plugins/editor/page-tools.js +238 -0
- package/dist/plugins/editor/prompts.d.ts +22 -0
- package/dist/plugins/editor/prompts.d.ts.map +1 -0
- package/dist/plugins/editor/prompts.js +451 -0
- package/dist/plugins/editor/provider.d.ts +101 -0
- package/dist/plugins/editor/provider.d.ts.map +1 -0
- package/dist/plugins/editor/provider.js +249 -0
- package/dist/plugins/editor/standalone-editor-tool.d.ts +17 -0
- package/dist/plugins/editor/standalone-editor-tool.d.ts.map +1 -0
- package/dist/plugins/editor/standalone-editor-tool.js +136 -0
- package/dist/plugins/editor/survey-helpers.d.ts +112 -0
- package/dist/plugins/editor/survey-helpers.d.ts.map +1 -0
- package/dist/plugins/editor/survey-helpers.js +358 -0
- package/dist/plugins/firecrawl/firecrawl-agent.d.ts +7 -0
- package/dist/plugins/firecrawl/firecrawl-agent.d.ts.map +1 -0
- package/dist/plugins/firecrawl/firecrawl-agent.js +84 -0
- package/dist/plugins/firecrawl/firecrawl-tools.d.ts +37 -0
- package/dist/plugins/firecrawl/firecrawl-tools.d.ts.map +1 -0
- package/dist/plugins/firecrawl/firecrawl-tools.js +129 -0
- package/dist/plugins/firecrawl/firecrawl.plugin.d.ts +32 -0
- package/dist/plugins/firecrawl/firecrawl.plugin.d.ts.map +1 -0
- package/dist/plugins/firecrawl/firecrawl.plugin.js +69 -0
- package/dist/plugins/firecrawl/index.d.ts +3 -0
- package/dist/plugins/firecrawl/index.d.ts.map +1 -0
- package/dist/plugins/firecrawl/index.js +2 -0
- package/dist/plugins/index.d.ts +47 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +69 -0
- package/dist/plugins/matrix-group-chats/channel-memory.module.d.ts +7 -0
- package/dist/plugins/matrix-group-chats/channel-memory.module.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/channel-memory.module.js +22 -0
- package/dist/plugins/matrix-group-chats/channel-memory.repo.d.ts +62 -0
- package/dist/plugins/matrix-group-chats/channel-memory.repo.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/channel-memory.repo.js +311 -0
- package/dist/plugins/matrix-group-chats/channel-memory.service.d.ts +89 -0
- package/dist/plugins/matrix-group-chats/channel-memory.service.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/channel-memory.service.js +565 -0
- package/dist/plugins/matrix-group-chats/channel-memory.summarizer.d.ts +18 -0
- package/dist/plugins/matrix-group-chats/channel-memory.summarizer.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/channel-memory.summarizer.js +128 -0
- package/dist/plugins/matrix-group-chats/channel-memory.types.d.ts +50 -0
- package/dist/plugins/matrix-group-chats/channel-memory.types.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/channel-memory.types.js +2 -0
- package/dist/plugins/matrix-group-chats/guard.d.ts +83 -0
- package/dist/plugins/matrix-group-chats/guard.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/guard.js +138 -0
- package/dist/plugins/matrix-group-chats/index.d.ts +59 -0
- package/dist/plugins/matrix-group-chats/index.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/index.js +140 -0
- package/dist/plugins/matrix-group-chats/middleware.d.ts +31 -0
- package/dist/plugins/matrix-group-chats/middleware.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/middleware.js +186 -0
- package/dist/plugins/matrix-group-chats/power-levels.d.ts +15 -0
- package/dist/plugins/matrix-group-chats/power-levels.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/power-levels.js +36 -0
- package/dist/plugins/matrix-group-chats/room-info.d.ts +23 -0
- package/dist/plugins/matrix-group-chats/room-info.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/room-info.js +34 -0
- package/dist/plugins/matrix-group-chats/tools.d.ts +8 -0
- package/dist/plugins/matrix-group-chats/tools.d.ts.map +1 -0
- package/dist/plugins/matrix-group-chats/tools.js +154 -0
- package/dist/plugins/memory/index.d.ts +5 -0
- package/dist/plugins/memory/index.d.ts.map +1 -0
- package/dist/plugins/memory/index.js +3 -0
- package/dist/plugins/memory/memory-tools.d.ts +52 -0
- package/dist/plugins/memory/memory-tools.d.ts.map +1 -0
- package/dist/plugins/memory/memory-tools.js +88 -0
- package/dist/plugins/memory/memory-ucan.d.ts +17 -0
- package/dist/plugins/memory/memory-ucan.d.ts.map +1 -0
- package/dist/plugins/memory/memory-ucan.js +43 -0
- package/dist/plugins/memory/memory.plugin.d.ts +51 -0
- package/dist/plugins/memory/memory.plugin.d.ts.map +1 -0
- package/dist/plugins/memory/memory.plugin.js +76 -0
- package/dist/plugins/memory/types.d.ts +75 -0
- package/dist/plugins/memory/types.d.ts.map +1 -0
- package/dist/plugins/memory/types.js +2 -0
- package/dist/plugins/portal/index.d.ts +3 -0
- package/dist/plugins/portal/index.d.ts.map +1 -0
- package/dist/plugins/portal/index.js +2 -0
- package/dist/plugins/portal/portal-agent.d.ts +9 -0
- package/dist/plugins/portal/portal-agent.d.ts.map +1 -0
- package/dist/plugins/portal/portal-agent.js +70 -0
- package/dist/plugins/portal/portal.plugin.d.ts +16 -0
- package/dist/plugins/portal/portal.plugin.d.ts.map +1 -0
- package/dist/plugins/portal/portal.plugin.js +115 -0
- package/dist/plugins/sandbox/index.d.ts +3 -0
- package/dist/plugins/sandbox/index.d.ts.map +1 -0
- package/dist/plugins/sandbox/index.js +2 -0
- package/dist/plugins/sandbox/sandbox-mcp.d.ts +46 -0
- package/dist/plugins/sandbox/sandbox-mcp.d.ts.map +1 -0
- package/dist/plugins/sandbox/sandbox-mcp.js +80 -0
- package/dist/plugins/sandbox/sandbox-write-blob.d.ts +22 -0
- package/dist/plugins/sandbox/sandbox-write-blob.d.ts.map +1 -0
- package/dist/plugins/sandbox/sandbox-write-blob.js +80 -0
- package/dist/plugins/sandbox/sandbox.plugin.d.ts +80 -0
- package/dist/plugins/sandbox/sandbox.plugin.d.ts.map +1 -0
- package/dist/plugins/sandbox/sandbox.plugin.js +204 -0
- package/dist/plugins/skills/index.d.ts +3 -0
- package/dist/plugins/skills/index.d.ts.map +1 -0
- package/dist/plugins/skills/index.js +2 -0
- package/dist/plugins/skills/skills-tools.d.ts +20 -0
- package/dist/plugins/skills/skills-tools.d.ts.map +1 -0
- package/dist/plugins/skills/skills-tools.js +204 -0
- package/dist/plugins/skills/skills-ucan.d.ts +24 -0
- package/dist/plugins/skills/skills-ucan.d.ts.map +1 -0
- package/dist/plugins/skills/skills-ucan.js +28 -0
- package/dist/plugins/skills/skills.plugin.d.ts +37 -0
- package/dist/plugins/skills/skills.plugin.d.ts.map +1 -0
- package/dist/plugins/skills/skills.plugin.js +82 -0
- package/dist/plugins/slack/index.d.ts +4 -0
- package/dist/plugins/slack/index.d.ts.map +1 -0
- package/dist/plugins/slack/index.js +3 -0
- package/dist/plugins/slack/slack.module.d.ts +9 -0
- package/dist/plugins/slack/slack.module.d.ts.map +1 -0
- package/dist/plugins/slack/slack.module.js +27 -0
- package/dist/plugins/slack/slack.plugin.d.ts +30 -0
- package/dist/plugins/slack/slack.plugin.d.ts.map +1 -0
- package/dist/plugins/slack/slack.plugin.js +40 -0
- package/dist/plugins/slack/slack.service.d.ts +32 -0
- package/dist/plugins/slack/slack.service.d.ts.map +1 -0
- package/dist/plugins/slack/slack.service.js +157 -0
- package/dist/plugins/user-preferences/index.d.ts +4 -0
- package/dist/plugins/user-preferences/index.d.ts.map +1 -0
- package/dist/plugins/user-preferences/index.js +3 -0
- package/dist/plugins/user-preferences/service/user-preferences.service.d.ts +61 -0
- package/dist/plugins/user-preferences/service/user-preferences.service.d.ts.map +1 -0
- package/dist/plugins/user-preferences/service/user-preferences.service.js +105 -0
- package/dist/plugins/user-preferences/user-preferences-http.module.d.ts +10 -0
- package/dist/plugins/user-preferences/user-preferences-http.module.d.ts.map +1 -0
- package/dist/plugins/user-preferences/user-preferences-http.module.js +23 -0
- package/dist/plugins/user-preferences/user-preferences-tool.d.ts +22 -0
- package/dist/plugins/user-preferences/user-preferences-tool.d.ts.map +1 -0
- package/dist/plugins/user-preferences/user-preferences-tool.js +103 -0
- package/dist/plugins/user-preferences/user-preferences.controller.d.ts +18 -0
- package/dist/plugins/user-preferences/user-preferences.controller.d.ts.map +1 -0
- package/dist/plugins/user-preferences/user-preferences.controller.js +72 -0
- package/dist/plugins/user-preferences/user-preferences.plugin.d.ts +27 -0
- package/dist/plugins/user-preferences/user-preferences.plugin.d.ts.map +1 -0
- package/dist/plugins/user-preferences/user-preferences.plugin.js +66 -0
- package/dist/registries/config-schema-registry.d.ts +24 -0
- package/dist/registries/config-schema-registry.d.ts.map +1 -0
- package/dist/registries/config-schema-registry.js +27 -0
- package/dist/registries/index.d.ts +13 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/index.js +6 -0
- package/dist/registries/manifest-registry.d.ts +49 -0
- package/dist/registries/manifest-registry.d.ts.map +1 -0
- package/dist/registries/manifest-registry.js +53 -0
- package/dist/registries/middleware-registry.d.ts +41 -0
- package/dist/registries/middleware-registry.d.ts.map +1 -0
- package/dist/registries/middleware-registry.js +52 -0
- package/dist/registries/shared-state-registry.d.ts +41 -0
- package/dist/registries/shared-state-registry.d.ts.map +1 -0
- package/dist/registries/shared-state-registry.js +65 -0
- package/dist/registries/subagent-registry.d.ts +55 -0
- package/dist/registries/subagent-registry.d.ts.map +1 -0
- package/dist/registries/subagent-registry.js +106 -0
- package/dist/registries/test-fixtures.d.ts +47 -0
- package/dist/registries/test-fixtures.d.ts.map +1 -0
- package/dist/registries/test-fixtures.js +168 -0
- package/dist/registries/tool-registry.d.ts +74 -0
- package/dist/registries/tool-registry.d.ts.map +1 -0
- package/dist/registries/tool-registry.js +130 -0
- package/dist/runtime-context/ambient.d.ts +118 -0
- package/dist/runtime-context/ambient.d.ts.map +1 -0
- package/dist/runtime-context/ambient.js +1 -0
- package/dist/runtime-context/build-plugin.d.ts +20 -0
- package/dist/runtime-context/build-plugin.d.ts.map +1 -0
- package/dist/runtime-context/build-plugin.js +16 -0
- package/dist/runtime-context/build-runtime.d.ts +60 -0
- package/dist/runtime-context/build-runtime.d.ts.map +1 -0
- package/dist/runtime-context/build-runtime.js +81 -0
- package/dist/testing/create-test-runtime.d.ts +95 -0
- package/dist/testing/create-test-runtime.d.ts.map +1 -0
- package/dist/testing/create-test-runtime.js +302 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/integration/chat-client.d.ts +143 -0
- package/dist/testing/integration/chat-client.d.ts.map +1 -0
- package/dist/testing/integration/chat-client.js +238 -0
- package/dist/testing/integration/harness.d.ts +189 -0
- package/dist/testing/integration/harness.d.ts.map +1 -0
- package/dist/testing/integration/harness.js +461 -0
- package/dist/testing/integration/index.d.ts +14 -0
- package/dist/testing/integration/index.d.ts.map +1 -0
- package/dist/testing/integration/index.js +18 -0
- package/dist/testing/integration/setup.d.ts +2 -0
- package/dist/testing/integration/setup.d.ts.map +1 -0
- package/dist/testing/integration/setup.js +41 -0
- package/dist/testing/integration/sse-parser.d.ts +99 -0
- package/dist/testing/integration/sse-parser.d.ts.map +1 -0
- package/dist/testing/integration/sse-parser.js +125 -0
- package/dist/testing/integration/ucan.d.ts +74 -0
- package/dist/testing/integration/ucan.d.ts.map +1 -0
- package/dist/testing/integration/ucan.js +95 -0
- package/dist/testing/integration/wait-for-matrix-loaded.d.ts +19 -0
- package/dist/testing/integration/wait-for-matrix-loaded.d.ts.map +1 -0
- package/dist/testing/integration/wait-for-matrix-loaded.js +31 -0
- package/dist/testing/mocks.d.ts +64 -0
- package/dist/testing/mocks.d.ts.map +1 -0
- package/dist/testing/mocks.js +141 -0
- package/dist/testing/nest-doubles.d.ts +10 -0
- package/dist/testing/nest-doubles.d.ts.map +1 -0
- package/dist/testing/nest-doubles.js +19 -0
- package/dist/utils/emoji.d.ts +3 -0
- package/dist/utils/emoji.d.ts.map +1 -0
- package/dist/utils/emoji.js +36 -0
- package/package.json +102 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { PluginTool } from '../../plugin-api/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal shape of a LangChain `DynamicStructuredTool` the composio session
|
|
4
|
+
* returns. The `schema` field is typed broadly because `DynamicStructuredTool`
|
|
5
|
+
* permits either a Zod schema or a raw JSON schema; at runtime the composio
|
|
6
|
+
* `LangchainProvider` always emits Zod (via `jsonSchemaToZodSchema`), but the
|
|
7
|
+
* structural interface stays wide so a non-conforming SDK shape doesn't crash
|
|
8
|
+
* the build. {@link toolSchema} narrows the value when wrapping each entry.
|
|
9
|
+
*/
|
|
10
|
+
export interface ComposioSessionTool {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly description: string;
|
|
13
|
+
readonly schema: unknown;
|
|
14
|
+
invoke(input: unknown): Promise<unknown>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Factory that opens a Composio session for the current user and returns the
|
|
18
|
+
* dynamic tool list. Injected into the plugin so tests can stub the SDK out
|
|
19
|
+
* entirely.
|
|
20
|
+
*/
|
|
21
|
+
export type ComposioSessionFactory = (args: ComposioSessionFactoryArgs) => Promise<ComposioSessionTool[]>;
|
|
22
|
+
export interface ComposioSessionFactoryArgs {
|
|
23
|
+
/** Resolved at boot from the plugin's configSchema. */
|
|
24
|
+
apiKey: string;
|
|
25
|
+
/** Resolved at boot from the plugin's configSchema. */
|
|
26
|
+
baseUrl: string;
|
|
27
|
+
/** UCAN invocation token, minted per request — forwarded as a header. */
|
|
28
|
+
ucanInvocation: string;
|
|
29
|
+
/** User identifier; composio uses it as the session `user_id`. */
|
|
30
|
+
userId: string;
|
|
31
|
+
/** Optional `x-ixo-network` header value forwarded to composio. */
|
|
32
|
+
network?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Default {@link ComposioSessionFactory}: opens a real Composio session using
|
|
36
|
+
* `@composio/core` + `@composio/langchain`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function createDefaultComposioSessionFactory(): ComposioSessionFactory;
|
|
39
|
+
export interface CreateComposioToolsOptions {
|
|
40
|
+
apiKey: string;
|
|
41
|
+
baseUrl: string;
|
|
42
|
+
ucanInvocation: string;
|
|
43
|
+
userId: string;
|
|
44
|
+
network?: string;
|
|
45
|
+
/** Override the session factory — defaults to the real SDK client. */
|
|
46
|
+
sessionFactory?: ComposioSessionFactory;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build the composio plugin's request-time tool list.
|
|
50
|
+
*
|
|
51
|
+
* 1. Opens a composio session via the configured factory.
|
|
52
|
+
* 2. Wraps each returned tool into a {@link PluginTool} that proxies args
|
|
53
|
+
* to the session tool's `invoke`.
|
|
54
|
+
*
|
|
55
|
+
* Returns an empty list if the session factory yields no tools (e.g. the
|
|
56
|
+
* user has no connected accounts and composio omits the management tools).
|
|
57
|
+
*/
|
|
58
|
+
export declare function createComposioTools(opts: CreateComposioToolsOptions): Promise<PluginTool[]>;
|
|
59
|
+
//# sourceMappingURL=composio-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio-tools.d.ts","sourceRoot":"","sources":["../../../src/plugins/composio/composio-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,2BAA2B,CAAC;AAE5E;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,0BAA0B,KAC7B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAEpC,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,sBAAsB,CAiB5E;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAiDD;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,UAAU,EAAE,CAAC,CAavB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Composio } from '@composio/core';
|
|
2
|
+
import { LangchainProvider } from '@composio/langchain';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Default {@link ComposioSessionFactory}: opens a real Composio session using
|
|
6
|
+
* `@composio/core` + `@composio/langchain`.
|
|
7
|
+
*/
|
|
8
|
+
export function createDefaultComposioSessionFactory() {
|
|
9
|
+
return async ({ apiKey, baseUrl, ucanInvocation, userId, network }) => {
|
|
10
|
+
const defaultHeaders = {
|
|
11
|
+
'x-ucan-invocation': ucanInvocation,
|
|
12
|
+
};
|
|
13
|
+
if (network)
|
|
14
|
+
defaultHeaders['x-ixo-network'] = network;
|
|
15
|
+
const composio = new Composio({
|
|
16
|
+
apiKey,
|
|
17
|
+
provider: new LangchainProvider(),
|
|
18
|
+
baseURL: baseUrl,
|
|
19
|
+
defaultHeaders,
|
|
20
|
+
});
|
|
21
|
+
const session = await composio.create(userId);
|
|
22
|
+
const tools = await session.tools();
|
|
23
|
+
return tools;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Permissive fallback schema for composio tools whose `schema` field is not
|
|
28
|
+
* a Zod schema (e.g. a raw JSON schema from a non-default provider). Used by
|
|
29
|
+
* {@link toolSchema} when narrowing fails so the agent still sees the tool
|
|
30
|
+
* with a valid descriptor — the composio backend itself validates args.
|
|
31
|
+
*/
|
|
32
|
+
const FALLBACK_ARGS_SCHEMA = z.record(z.string(), z.unknown());
|
|
33
|
+
/**
|
|
34
|
+
* Narrow a composio session tool's `schema` field to a Zod schema.
|
|
35
|
+
*
|
|
36
|
+
* The default `LangchainProvider` always converts the upstream JSON Schema to
|
|
37
|
+
* a Zod schema, so this branch is the hot path. Custom providers that emit
|
|
38
|
+
* raw JSON Schema (rare) fall through to the permissive record schema so the
|
|
39
|
+
* tool is still discoverable.
|
|
40
|
+
*/
|
|
41
|
+
function toolSchema(schema) {
|
|
42
|
+
return schema instanceof z.ZodType ? schema : FALLBACK_ARGS_SCHEMA;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Wrap a single composio session tool as a {@link PluginTool}. The handler
|
|
46
|
+
* forwards the args through the underlying `invoke` and propagates errors so
|
|
47
|
+
* the agent surfaces a clean failure rather than a silent empty response.
|
|
48
|
+
*/
|
|
49
|
+
function wrapAsPluginTool(sessionTool) {
|
|
50
|
+
return {
|
|
51
|
+
name: sessionTool.name,
|
|
52
|
+
description: sessionTool.description,
|
|
53
|
+
schema: toolSchema(sessionTool.schema),
|
|
54
|
+
handler: async (args, ctx) => {
|
|
55
|
+
try {
|
|
56
|
+
return await sessionTool.invoke(args);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
const detail = error instanceof Error
|
|
60
|
+
? `${error.name}: ${error.message}`
|
|
61
|
+
: String(error);
|
|
62
|
+
ctx.logger.error(`[composio] tool "${sessionTool.name}" failed: ${detail}`);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Build the composio plugin's request-time tool list.
|
|
70
|
+
*
|
|
71
|
+
* 1. Opens a composio session via the configured factory.
|
|
72
|
+
* 2. Wraps each returned tool into a {@link PluginTool} that proxies args
|
|
73
|
+
* to the session tool's `invoke`.
|
|
74
|
+
*
|
|
75
|
+
* Returns an empty list if the session factory yields no tools (e.g. the
|
|
76
|
+
* user has no connected accounts and composio omits the management tools).
|
|
77
|
+
*/
|
|
78
|
+
export async function createComposioTools(opts) {
|
|
79
|
+
const sessionFactory = opts.sessionFactory ?? createDefaultComposioSessionFactory();
|
|
80
|
+
const sessionTools = await sessionFactory({
|
|
81
|
+
apiKey: opts.apiKey,
|
|
82
|
+
baseUrl: opts.baseUrl,
|
|
83
|
+
ucanInvocation: opts.ucanInvocation,
|
|
84
|
+
userId: opts.userId,
|
|
85
|
+
network: opts.network,
|
|
86
|
+
});
|
|
87
|
+
return sessionTools.map(wrapAsPluginTool);
|
|
88
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { RuntimeContext } from '../../plugin-api/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Mint a UCAN invocation token addressed to the composio-worker.
|
|
4
|
+
*
|
|
5
|
+
* 1. Resolves the composio-worker DID via `runCtx.ucan.resolveServiceDid`
|
|
6
|
+
* (delegates the did:web lookup + cache to the Tier-0 UCAN service).
|
|
7
|
+
* 2. Mints an `ixo:sandbox` invocation using the user's signing key.
|
|
8
|
+
*
|
|
9
|
+
* Returns `null` when DID resolution fails, when minting throws, or when no
|
|
10
|
+
* signing material is available. Callers degrade silently — the composio
|
|
11
|
+
* client is simply not constructed and the plugin contributes no tools.
|
|
12
|
+
*/
|
|
13
|
+
export declare function mintComposioInvocation(runCtx: RuntimeContext, composioBaseUrl: string): Promise<string | null>;
|
|
14
|
+
//# sourceMappingURL=composio-ucan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio-ucan.d.ts","sourceRoot":"","sources":["../../../src/plugins/composio/composio-ucan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBxB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mint a UCAN invocation token addressed to the composio-worker.
|
|
3
|
+
*
|
|
4
|
+
* 1. Resolves the composio-worker DID via `runCtx.ucan.resolveServiceDid`
|
|
5
|
+
* (delegates the did:web lookup + cache to the Tier-0 UCAN service).
|
|
6
|
+
* 2. Mints an `ixo:sandbox` invocation using the user's signing key.
|
|
7
|
+
*
|
|
8
|
+
* Returns `null` when DID resolution fails, when minting throws, or when no
|
|
9
|
+
* signing material is available. Callers degrade silently — the composio
|
|
10
|
+
* client is simply not constructed and the plugin contributes no tools.
|
|
11
|
+
*/
|
|
12
|
+
export async function mintComposioInvocation(runCtx, composioBaseUrl) {
|
|
13
|
+
const composioDid = await runCtx.ucan.resolveServiceDid(composioBaseUrl);
|
|
14
|
+
if (!composioDid)
|
|
15
|
+
return null;
|
|
16
|
+
try {
|
|
17
|
+
// skipCache: the composio-worker enforces single-use replay protection
|
|
18
|
+
// per invocation CID (see composio-worker `lib/validation.ts`
|
|
19
|
+
// `createInvocationStore`, KV-backed, 120s default TTL). A cached
|
|
20
|
+
// invocation would be replayed on the second request and rejected with
|
|
21
|
+
// `401 REPLAY: Invocation has already been used`. Mint fresh every call.
|
|
22
|
+
const invocation = await runCtx.ucan.mintInvocation({ did: composioDid, capability: 'ixo:sandbox' }, { skipCache: true });
|
|
23
|
+
return invocation && invocation.length > 0 ? invocation : null;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
const detail = error instanceof Error
|
|
27
|
+
? `${error.name}: ${error.message}`
|
|
28
|
+
: String(error);
|
|
29
|
+
runCtx.logger.warn(`[composio] failed to mint UCAN invocation: ${detail}`);
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { OraclePlugin } from '../../plugin-api/oracle-plugin.js';
|
|
3
|
+
import type { PluginManifest, PluginTool, RuntimeContext } from '../../plugin-api/types.js';
|
|
4
|
+
import { type ComposioSessionFactory } from './composio-tools.js';
|
|
5
|
+
export interface ComposioPluginOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Override the session factory — primarily for tests so they can skip the
|
|
8
|
+
* real `@composio/core` client and the network call it makes.
|
|
9
|
+
*/
|
|
10
|
+
sessionFactory?: ComposioSessionFactory;
|
|
11
|
+
/**
|
|
12
|
+
* Override the UCAN minting step — primarily for tests so they can return
|
|
13
|
+
* a fixed token without invoking the real UCAN service.
|
|
14
|
+
*/
|
|
15
|
+
mintInvocation?: (runCtx: RuntimeContext, baseUrl: string) => Promise<string | null>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Composio plugin.
|
|
19
|
+
*
|
|
20
|
+
* Tools are discovered dynamically per request: the plugin mints a UCAN
|
|
21
|
+
* invocation addressed to the composio-worker, opens a session for the
|
|
22
|
+
* current user, and exposes each returned tool to the agent.
|
|
23
|
+
*
|
|
24
|
+
* Auth is UCAN-only — no Matrix-OpenID fallback. If minting fails (no
|
|
25
|
+
* signing key, no cached delegation, did:web unresolved) the plugin
|
|
26
|
+
* contributes zero tools and the agent simply does not see composio that
|
|
27
|
+
* request. Visibility is `on-demand` so the plugin is discoverable via
|
|
28
|
+
* `list_capabilities` rather than burning prompt budget every call.
|
|
29
|
+
*/
|
|
30
|
+
export declare class ComposioPlugin extends OraclePlugin {
|
|
31
|
+
readonly name = "composio";
|
|
32
|
+
readonly version = "1.0.0";
|
|
33
|
+
readonly manifest: PluginManifest;
|
|
34
|
+
readonly configSchema: z.ZodObject<{
|
|
35
|
+
COMPOSIO_API_KEY: z.ZodString;
|
|
36
|
+
COMPOSIO_BASE_URL: z.ZodDefault<z.ZodURL>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
readonly autoDetectHint = "COMPOSIO_API_KEY";
|
|
39
|
+
private readonly sessionFactoryOverride?;
|
|
40
|
+
private readonly mintInvocationOverride?;
|
|
41
|
+
constructor(opts?: ComposioPluginOptions);
|
|
42
|
+
autoDetect(env: NodeJS.ProcessEnv): boolean;
|
|
43
|
+
getRequestTools(rtCtx: RuntimeContext): Promise<PluginTool[]>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=composio.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio.plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/composio/composio.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAwD7B,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,cAAc;IAE3B,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,CAAC,QAAQ,iBAAY;IAE7B,SAAkB,YAAY;;;sBAAgB;IAE9C,SAAkB,cAAc,sBAAsB;IAEtD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAyB;IACjE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAGZ;gBAEhB,IAAI,GAAE,qBAA0B;IAMnC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;IAIrC,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAyC7E"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { OraclePlugin } from '../../plugin-api/oracle-plugin.js';
|
|
3
|
+
import { createComposioTools, } from './composio-tools.js';
|
|
4
|
+
import { mintComposioInvocation } from './composio-ucan.js';
|
|
5
|
+
const configSchema = z.object({
|
|
6
|
+
COMPOSIO_API_KEY: z.string().min(1, 'COMPOSIO_API_KEY must not be empty.'),
|
|
7
|
+
COMPOSIO_BASE_URL: z
|
|
8
|
+
.url('COMPOSIO_BASE_URL must be a valid HTTP(S) URL.')
|
|
9
|
+
.default('https://composio.ixo.earth'),
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* Sibling env vars the plugin reads but does not own. `NETWORK` is declared
|
|
13
|
+
* in the core base schema; the plugin forwards it as `x-ixo-network` when
|
|
14
|
+
* present so the composio-worker can route to the right IXO environment.
|
|
15
|
+
*/
|
|
16
|
+
const siblingEnvSchema = z.object({
|
|
17
|
+
NETWORK: z.string().optional(),
|
|
18
|
+
});
|
|
19
|
+
const manifest = {
|
|
20
|
+
title: 'Composio',
|
|
21
|
+
summary: 'External SaaS tools (Gmail, GitHub, Linear, Slack, Google Calendar, Notion, Jira, HubSpot, hundreds more) invoked on behalf of the user through Composio.',
|
|
22
|
+
whenToUse: [
|
|
23
|
+
'ALWAYS call `COMPOSIO_MANAGE_CONNECTIONS` first — before calling any other Composio tool — to verify the required toolkit is connected. If the response contains a `redirect_url`, show it as a clickable markdown link and stop; do not attempt the action.',
|
|
24
|
+
'User asks to send, read, or search emails (Gmail, Outlook).',
|
|
25
|
+
'User asks to create or modify issues, pull requests, or stars in a tracker (GitHub, Linear, Jira).',
|
|
26
|
+
'User asks to manage calendar events, files, or documents in a SaaS app.',
|
|
27
|
+
'No native skill covers the requested action — call `COMPOSIO_SEARCH_TOOLS` before giving up.',
|
|
28
|
+
],
|
|
29
|
+
whenNotToUse: [
|
|
30
|
+
'A native skill or sub-agent already covers the action — prefer the skill.',
|
|
31
|
+
'Normal conversation or general question with no external SaaS interaction.',
|
|
32
|
+
'NEVER write, guess, or fabricate any URL yourself — the only valid auth link is the `redirect_url` returned by `COMPOSIO_MANAGE_CONNECTIONS`. Typing a link from memory is forbidden.',
|
|
33
|
+
],
|
|
34
|
+
examples: [
|
|
35
|
+
{
|
|
36
|
+
user: 'Create a Linear issue for this bug',
|
|
37
|
+
thought: 'Must verify Linear is connected before touching any Linear tool.',
|
|
38
|
+
tool: 'COMPOSIO_MANAGE_CONNECTIONS',
|
|
39
|
+
args: { toolkit: 'linear' },
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
user: 'Send an email to the team',
|
|
43
|
+
thought: 'Must verify Gmail is connected before calling any Gmail tool.',
|
|
44
|
+
tool: 'COMPOSIO_MANAGE_CONNECTIONS',
|
|
45
|
+
args: { toolkit: 'gmail' },
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
tags: ['composio', 'integration', 'saas', 'tools'],
|
|
49
|
+
category: 'integration',
|
|
50
|
+
visibility: 'on-demand',
|
|
51
|
+
stability: 'stable',
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Composio plugin.
|
|
55
|
+
*
|
|
56
|
+
* Tools are discovered dynamically per request: the plugin mints a UCAN
|
|
57
|
+
* invocation addressed to the composio-worker, opens a session for the
|
|
58
|
+
* current user, and exposes each returned tool to the agent.
|
|
59
|
+
*
|
|
60
|
+
* Auth is UCAN-only — no Matrix-OpenID fallback. If minting fails (no
|
|
61
|
+
* signing key, no cached delegation, did:web unresolved) the plugin
|
|
62
|
+
* contributes zero tools and the agent simply does not see composio that
|
|
63
|
+
* request. Visibility is `on-demand` so the plugin is discoverable via
|
|
64
|
+
* `list_capabilities` rather than burning prompt budget every call.
|
|
65
|
+
*/
|
|
66
|
+
export class ComposioPlugin extends OraclePlugin {
|
|
67
|
+
name = 'composio';
|
|
68
|
+
version = '1.0.0';
|
|
69
|
+
manifest = manifest;
|
|
70
|
+
configSchema = configSchema;
|
|
71
|
+
autoDetectHint = 'COMPOSIO_API_KEY';
|
|
72
|
+
sessionFactoryOverride;
|
|
73
|
+
mintInvocationOverride;
|
|
74
|
+
constructor(opts = {}) {
|
|
75
|
+
super();
|
|
76
|
+
this.sessionFactoryOverride = opts.sessionFactory;
|
|
77
|
+
this.mintInvocationOverride = opts.mintInvocation;
|
|
78
|
+
}
|
|
79
|
+
autoDetect(env) {
|
|
80
|
+
return Boolean(env.COMPOSIO_API_KEY);
|
|
81
|
+
}
|
|
82
|
+
async getRequestTools(rtCtx) {
|
|
83
|
+
const parsed = configSchema.safeParse(rtCtx.config);
|
|
84
|
+
if (!parsed.success) {
|
|
85
|
+
rtCtx.logger.warn(`[composio] skipping — invalid configuration: ${parsed.error.issues
|
|
86
|
+
.map((i) => `${i.path.join('.') || '(root)'}: ${i.message}`)
|
|
87
|
+
.join('; ')}`);
|
|
88
|
+
return [];
|
|
89
|
+
}
|
|
90
|
+
const siblings = siblingEnvSchema.safeParse(rtCtx.config);
|
|
91
|
+
const network = siblings.success ? siblings.data.NETWORK : undefined;
|
|
92
|
+
const mint = this.mintInvocationOverride ?? mintComposioInvocation;
|
|
93
|
+
const ucanInvocation = await mint(rtCtx, parsed.data.COMPOSIO_BASE_URL);
|
|
94
|
+
if (!ucanInvocation) {
|
|
95
|
+
rtCtx.logger.warn('[composio] skipping — UCAN invocation could not be minted.');
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
return await createComposioTools({
|
|
100
|
+
apiKey: parsed.data.COMPOSIO_API_KEY,
|
|
101
|
+
baseUrl: parsed.data.COMPOSIO_BASE_URL,
|
|
102
|
+
ucanInvocation,
|
|
103
|
+
userId: rtCtx.user.did,
|
|
104
|
+
network,
|
|
105
|
+
sessionFactory: this.sessionFactoryOverride,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
const detail = error instanceof Error
|
|
110
|
+
? `${error.name}: ${error.message}`
|
|
111
|
+
: String(error);
|
|
112
|
+
rtCtx.logger.error(`[composio] failed to load tools: ${detail}`);
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ComposioPlugin, type ComposioPluginOptions, } from './composio.plugin.js';
|
|
2
|
+
export { createComposioTools, createDefaultComposioSessionFactory, type ComposioSessionFactory, type ComposioSessionFactoryArgs, type ComposioSessionTool, type CreateComposioToolsOptions, } from './composio-tools.js';
|
|
3
|
+
export { mintComposioInvocation } from './composio-ucan.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/composio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,mCAAmC,EACnC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { Redis } from 'ioredis';
|
|
3
|
+
import { type CreditsNetwork } from './token-limiter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Options for `ClaimProcessingModule.register`.
|
|
6
|
+
*
|
|
7
|
+
* `TokenLimiter` is stateless — it routes calls to Redis and holds no
|
|
8
|
+
* mutable state outside it. Two instances pointing at the same Redis are
|
|
9
|
+
* functionally identical, so this module builds its own from the supplied
|
|
10
|
+
* Redis client instead of trying to share a single instance across plugins.
|
|
11
|
+
*/
|
|
12
|
+
export interface ClaimProcessingModuleOptions {
|
|
13
|
+
/** Same `ioredis` client the credits plugin uses. */
|
|
14
|
+
redis: Redis;
|
|
15
|
+
/** Network — drives the credits-per-USD multiplier inside `TokenLimiter`. */
|
|
16
|
+
network: CreditsNetwork;
|
|
17
|
+
/** Whether `DISABLE_CREDITS` is set — relaxes the overdraft guard. */
|
|
18
|
+
disableCredits?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* NestJS module shipping the claim-processing cron service. Imported by the
|
|
22
|
+
* runtime via `CreditsPlugin.getNestModules()` when the plugin is loaded
|
|
23
|
+
* with a Redis client. Silent / agent-invisible — no controller, no tools.
|
|
24
|
+
*/
|
|
25
|
+
export declare class ClaimProcessingModule {
|
|
26
|
+
static register(opts: ClaimProcessingModuleOptions): DynamicModule;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=claim-processing.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-processing.module.d.ts","sourceRoot":"","sources":["../../../src/plugins/credits/claim-processing.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,qDAAqD;IACrD,KAAK,EAAE,KAAK,CAAC;IACb,6EAA6E;IAC7E,OAAO,EAAE,cAAc,CAAC;IACxB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBACa,qBAAqB;IAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,GAAG,aAAa;CAkBnE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var ClaimProcessingModule_1;
|
|
8
|
+
import { Module } from '@nestjs/common';
|
|
9
|
+
import { CLAIM_PROCESSING_TOKEN_LIMITER, ClaimProcessingService, } from './claim-processing.service.js';
|
|
10
|
+
import { TokenLimiter } from './token-limiter.js';
|
|
11
|
+
/**
|
|
12
|
+
* NestJS module shipping the claim-processing cron service. Imported by the
|
|
13
|
+
* runtime via `CreditsPlugin.getNestModules()` when the plugin is loaded
|
|
14
|
+
* with a Redis client. Silent / agent-invisible — no controller, no tools.
|
|
15
|
+
*/
|
|
16
|
+
let ClaimProcessingModule = ClaimProcessingModule_1 = class ClaimProcessingModule {
|
|
17
|
+
static register(opts) {
|
|
18
|
+
const tokenLimiter = new TokenLimiter({
|
|
19
|
+
redis: opts.redis,
|
|
20
|
+
network: opts.network,
|
|
21
|
+
disableCredits: opts.disableCredits ?? false,
|
|
22
|
+
});
|
|
23
|
+
const tokenLimiterProvider = {
|
|
24
|
+
provide: CLAIM_PROCESSING_TOKEN_LIMITER,
|
|
25
|
+
useValue: tokenLimiter,
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
module: ClaimProcessingModule_1,
|
|
29
|
+
providers: [tokenLimiterProvider, ClaimProcessingService],
|
|
30
|
+
exports: [ClaimProcessingService],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
ClaimProcessingModule = ClaimProcessingModule_1 = __decorate([
|
|
35
|
+
Module({})
|
|
36
|
+
], ClaimProcessingModule);
|
|
37
|
+
export { ClaimProcessingModule };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
2
|
+
import { UcanService } from '../../modules/ucan/ucan.service.js';
|
|
3
|
+
import { TokenLimiter } from './token-limiter.js';
|
|
4
|
+
/** Token used to inject the credits-plugin TokenLimiter instance into the service. */
|
|
5
|
+
export declare const CLAIM_PROCESSING_TOKEN_LIMITER: unique symbol;
|
|
6
|
+
export interface UsageClaim {
|
|
7
|
+
amount: number;
|
|
8
|
+
oracleDid: string;
|
|
9
|
+
oracleEntityDid: string;
|
|
10
|
+
userDid: string;
|
|
11
|
+
service: string;
|
|
12
|
+
oracleName: string;
|
|
13
|
+
}
|
|
14
|
+
interface ClaimProcessingConfig {
|
|
15
|
+
ORACLE_DID: string;
|
|
16
|
+
ORACLE_ENTITY_DID: string;
|
|
17
|
+
ORACLE_NAME: string;
|
|
18
|
+
NETWORK: 'mainnet' | 'testnet' | 'devnet';
|
|
19
|
+
SQLITE_DATABASE_PATH: string;
|
|
20
|
+
MATRIX_ORACLE_ADMIN_ACCESS_TOKEN: string;
|
|
21
|
+
MATRIX_ACCOUNT_ROOM_ID?: string;
|
|
22
|
+
MATRIX_VALUE_PIN: string;
|
|
23
|
+
SECP_MNEMONIC: string;
|
|
24
|
+
SUBSCRIPTION_URL?: string;
|
|
25
|
+
DISABLE_CREDITS?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Submits held-credit claims to the chain on a fixed cron. Pulls users with
|
|
29
|
+
* non-zero held amounts from the credits-plugin `TokenLimiter`, then runs a
|
|
30
|
+
* LangGraph `entrypoint`+`task` workflow per user:
|
|
31
|
+
*
|
|
32
|
+
* 1. submit intent (escrow payment)
|
|
33
|
+
* 2. sign + save the claim to Matrix
|
|
34
|
+
* 3. submit the claim on-chain
|
|
35
|
+
* 4. notify the subscription API
|
|
36
|
+
*
|
|
37
|
+
* Splits oversized batches against the oracle's per-claim max. Internal,
|
|
38
|
+
* agent-invisible — `claimProcessingPlugin` declares `visibility: 'silent'`
|
|
39
|
+
* and ships no tools.
|
|
40
|
+
*/
|
|
41
|
+
export declare class ClaimProcessingService {
|
|
42
|
+
private readonly configService;
|
|
43
|
+
private readonly ucanService;
|
|
44
|
+
private readonly logger;
|
|
45
|
+
private readonly denom;
|
|
46
|
+
private readonly claimProcessingCheckpointer;
|
|
47
|
+
private readonly claimProcessingDbPath;
|
|
48
|
+
private readonly tokenLimiter;
|
|
49
|
+
private readonly retryPolicy;
|
|
50
|
+
constructor(configService: ConfigService<ClaimProcessingConfig>, ucanService: UcanService, tokenLimiter?: TokenLimiter);
|
|
51
|
+
/**
|
|
52
|
+
* Slice `heldAmount` into chunks no larger than `maxAmount`. Used when the
|
|
53
|
+
* total held amount exceeds the oracle's per-claim ceiling.
|
|
54
|
+
*/
|
|
55
|
+
private calculateSplits;
|
|
56
|
+
/** Step 1 of the workflow: pay the user's claim collection escrow. */
|
|
57
|
+
private submitIntentTask;
|
|
58
|
+
/** Step 2: build a signed claim and stash it in the oracle's Matrix room. */
|
|
59
|
+
private saveToMatrixTask;
|
|
60
|
+
/** Step 3: submit the signed claim on-chain against the user's collection. */
|
|
61
|
+
private submitToChainTask;
|
|
62
|
+
/** Step 4: notify the subscription API so it can update the user's balance. */
|
|
63
|
+
private sendToSubsApiTask;
|
|
64
|
+
/**
|
|
65
|
+
* Per-call factory so the langgraph `entrypoint` always picks up the
|
|
66
|
+
* checkpointer initialized in `constructor`.
|
|
67
|
+
*/
|
|
68
|
+
private getProcessClaimWorkflow;
|
|
69
|
+
/**
|
|
70
|
+
* Cron-triggered processor — walks users above the minimum held-credits
|
|
71
|
+
* threshold, splits oversized batches against the oracle's per-claim max,
|
|
72
|
+
* and runs the 4-step claim workflow for each. Errors are logged and
|
|
73
|
+
* isolated per-user so one user's failure doesn't stall the batch.
|
|
74
|
+
*/
|
|
75
|
+
processHeldAmount(): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Invoke the LangGraph workflow for a single amount (full or split chunk)
|
|
78
|
+
* and reconcile the held-amount / pending-claim records on success.
|
|
79
|
+
*/
|
|
80
|
+
private processAmount;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Submit a saved claim to the subscription-API webhook so the upstream
|
|
84
|
+
* service can mark it credited. Kept inline (rather than a separate file)
|
|
85
|
+
* since it's only used here and trivial.
|
|
86
|
+
*/
|
|
87
|
+
export declare function submitClaimToSubscriptionApi(subscriptionApiUrl: string, claimId: string): Promise<{
|
|
88
|
+
approved: boolean;
|
|
89
|
+
reason?: string;
|
|
90
|
+
}>;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=claim-processing.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-processing.service.d.ts","sourceRoot":"","sources":["../../../src/plugins/credits/claim-processing.service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAY/C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,sFAAsF;AACtF,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAQD,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gCAAgC,EAAE,MAAM,CAAC;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA0BD;;;;;;;;;;;;;GAaG;AACH,qBACa,sBAAsB;IAc/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAd9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAsB;IAClE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;gBAGiB,aAAa,EAAE,aAAa,CAAC,qBAAqB,CAAC,EACnD,WAAW,EAAE,WAAW,EAGzC,YAAY,CAAC,EAAE,YAAY;IA0C7B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAevB,sEAAsE;IACtE,OAAO,CAAC,gBAAgB,CAgDtB;IAEF,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB,CA+DtB;IAEF,8EAA8E;IAC9E,OAAO,CAAC,iBAAiB,CAwCvB;IAEF,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB,CAkBvB;IAEF;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;;;;OAKG;IAEG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsIxC;;;OAGG;YACW,aAAa;CAyE5B;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BjD"}
|