@mastra/factory 0.0.0-aggregate-trace-20261015182851
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/LICENSE.md +32 -0
- package/README.md +671 -0
- package/dist/auth.d.ts +201 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +623 -0
- package/dist/auth.js.map +1 -0
- package/dist/boards/define-board.d.ts +111 -0
- package/dist/boards/define-board.d.ts.map +1 -0
- package/dist/boards/define-board.js +156 -0
- package/dist/boards/define-board.js.map +1 -0
- package/dist/boards/index.d.ts +14 -0
- package/dist/boards/index.d.ts.map +1 -0
- package/dist/boards/index.js +21 -0
- package/dist/boards/index.js.map +1 -0
- package/dist/boards/registry.d.ts +16 -0
- package/dist/boards/registry.d.ts.map +1 -0
- package/dist/boards/registry.js +25 -0
- package/dist/boards/registry.js.map +1 -0
- package/dist/boards/relocate.d.ts +21 -0
- package/dist/boards/relocate.d.ts.map +1 -0
- package/dist/boards/relocate.js +58 -0
- package/dist/boards/relocate.js.map +1 -0
- package/dist/boards/review.d.ts +6 -0
- package/dist/boards/review.d.ts.map +1 -0
- package/dist/boards/review.js +104 -0
- package/dist/boards/review.js.map +1 -0
- package/dist/boards/semantics.d.ts +68 -0
- package/dist/boards/semantics.d.ts.map +1 -0
- package/dist/boards/semantics.js +119 -0
- package/dist/boards/semantics.js.map +1 -0
- package/dist/boards/transition-policy.d.ts +67 -0
- package/dist/boards/transition-policy.d.ts.map +1 -0
- package/dist/boards/transition-policy.js +36 -0
- package/dist/boards/transition-policy.js.map +1 -0
- package/dist/boards/work-tool-rules.d.ts +8 -0
- package/dist/boards/work-tool-rules.d.ts.map +1 -0
- package/dist/boards/work-tool-rules.js +20 -0
- package/dist/boards/work-tool-rules.js.map +1 -0
- package/dist/boards/work-transition-policy.d.ts +3 -0
- package/dist/boards/work-transition-policy.d.ts.map +1 -0
- package/dist/boards/work-transition-policy.js +46 -0
- package/dist/boards/work-transition-policy.js.map +1 -0
- package/dist/boards/work.d.ts +4 -0
- package/dist/boards/work.d.ts.map +1 -0
- package/dist/boards/work.js +222 -0
- package/dist/boards/work.js.map +1 -0
- package/dist/capabilities/connection.d.ts +9 -0
- package/dist/capabilities/connection.d.ts.map +1 -0
- package/dist/capabilities/connection.js +1 -0
- package/dist/capabilities/intake.d.ts +153 -0
- package/dist/capabilities/intake.d.ts.map +1 -0
- package/dist/capabilities/intake.js +1 -0
- package/dist/capabilities/version-control.d.ts +268 -0
- package/dist/capabilities/version-control.d.ts.map +1 -0
- package/dist/capabilities/version-control.js +1 -0
- package/dist/environment/build-runner.d.ts +72 -0
- package/dist/environment/build-runner.d.ts.map +1 -0
- package/dist/environment/build-runner.js +131 -0
- package/dist/environment/build-runner.js.map +1 -0
- package/dist/environment/build-schedule.d.ts +40 -0
- package/dist/environment/build-schedule.d.ts.map +1 -0
- package/dist/environment/build-schedule.js +94 -0
- package/dist/environment/build-schedule.js.map +1 -0
- package/dist/environment/build-workflow.d.ts +62 -0
- package/dist/environment/build-workflow.d.ts.map +1 -0
- package/dist/environment/build-workflow.js +149 -0
- package/dist/environment/build-workflow.js.map +1 -0
- package/dist/environment/build.d.ts +111 -0
- package/dist/environment/build.d.ts.map +1 -0
- package/dist/environment/build.js +344 -0
- package/dist/environment/build.js.map +1 -0
- package/dist/environment/heads.d.ts +36 -0
- package/dist/environment/heads.d.ts.map +1 -0
- package/dist/environment/heads.js +60 -0
- package/dist/environment/heads.js.map +1 -0
- package/dist/factory.d.ts +225 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +1006 -0
- package/dist/factory.js.map +1 -0
- package/dist/feed-events.d.ts +13 -0
- package/dist/feed-events.d.ts.map +1 -0
- package/dist/feed-events.js +25 -0
- package/dist/feed-events.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/integrations/base.d.ts +302 -0
- package/dist/integrations/base.d.ts.map +1 -0
- package/dist/integrations/base.js +1 -0
- package/dist/integrations/github/acceptance-labels.d.ts +16 -0
- package/dist/integrations/github/acceptance-labels.d.ts.map +1 -0
- package/dist/integrations/github/acceptance-labels.js +55 -0
- package/dist/integrations/github/acceptance-labels.js.map +1 -0
- package/dist/integrations/github/app-identity.d.ts +43 -0
- package/dist/integrations/github/app-identity.d.ts.map +1 -0
- package/dist/integrations/github/app-identity.js +62 -0
- package/dist/integrations/github/app-identity.js.map +1 -0
- package/dist/integrations/github/commits.d.ts +40 -0
- package/dist/integrations/github/commits.d.ts.map +1 -0
- package/dist/integrations/github/commits.js +48 -0
- package/dist/integrations/github/commits.js.map +1 -0
- package/dist/integrations/github/config.d.ts +60 -0
- package/dist/integrations/github/config.d.ts.map +1 -0
- package/dist/integrations/github/config.js +42 -0
- package/dist/integrations/github/config.js.map +1 -0
- package/dist/integrations/github/default-rules.d.ts +218 -0
- package/dist/integrations/github/default-rules.d.ts.map +1 -0
- package/dist/integrations/github/default-rules.js +296 -0
- package/dist/integrations/github/default-rules.js.map +1 -0
- package/dist/integrations/github/integration.d.ts +270 -0
- package/dist/integrations/github/integration.d.ts.map +1 -0
- package/dist/integrations/github/integration.js +1375 -0
- package/dist/integrations/github/integration.js.map +1 -0
- package/dist/integrations/github/issue-reconciler.d.ts +28 -0
- package/dist/integrations/github/issue-reconciler.d.ts.map +1 -0
- package/dist/integrations/github/issue-reconciler.js +138 -0
- package/dist/integrations/github/issue-reconciler.js.map +1 -0
- package/dist/integrations/github/pat.d.ts +38 -0
- package/dist/integrations/github/pat.d.ts.map +1 -0
- package/dist/integrations/github/pat.js +59 -0
- package/dist/integrations/github/pat.js.map +1 -0
- package/dist/integrations/github/provenance.d.ts +34 -0
- package/dist/integrations/github/provenance.d.ts.map +1 -0
- package/dist/integrations/github/provenance.js +91 -0
- package/dist/integrations/github/provenance.js.map +1 -0
- package/dist/integrations/github/reconcile-worker.d.ts +45 -0
- package/dist/integrations/github/reconcile-worker.d.ts.map +1 -0
- package/dist/integrations/github/reconcile-worker.js +189 -0
- package/dist/integrations/github/reconcile-worker.js.map +1 -0
- package/dist/integrations/github/reconciliation-config.d.ts +3 -0
- package/dist/integrations/github/reconciliation-config.d.ts.map +1 -0
- package/dist/integrations/github/reconciliation-config.js +19 -0
- package/dist/integrations/github/reconciliation-config.js.map +1 -0
- package/dist/integrations/github/routes.d.ts +90 -0
- package/dist/integrations/github/routes.d.ts.map +1 -0
- package/dist/integrations/github/routes.js +1362 -0
- package/dist/integrations/github/routes.js.map +1 -0
- package/dist/integrations/github/rules.d.ts +173 -0
- package/dist/integrations/github/rules.d.ts.map +1 -0
- package/dist/integrations/github/rules.js +1021 -0
- package/dist/integrations/github/rules.js.map +1 -0
- package/dist/integrations/github/sandbox-release.d.ts +25 -0
- package/dist/integrations/github/sandbox-release.d.ts.map +1 -0
- package/dist/integrations/github/sandbox-release.js +38 -0
- package/dist/integrations/github/sandbox-release.js.map +1 -0
- package/dist/integrations/github/sandbox.d.ts +234 -0
- package/dist/integrations/github/sandbox.d.ts.map +1 -0
- package/dist/integrations/github/sandbox.js +947 -0
- package/dist/integrations/github/sandbox.js.map +1 -0
- package/dist/integrations/github/session-subscriptions.d.ts +28 -0
- package/dist/integrations/github/session-subscriptions.d.ts.map +1 -0
- package/dist/integrations/github/session-subscriptions.js +283 -0
- package/dist/integrations/github/session-subscriptions.js.map +1 -0
- package/dist/integrations/github/settle-or-abort.d.ts +7 -0
- package/dist/integrations/github/settle-or-abort.d.ts.map +1 -0
- package/dist/integrations/github/settle-or-abort.js +25 -0
- package/dist/integrations/github/settle-or-abort.js.map +1 -0
- package/dist/integrations/github/stale-reviews.d.ts +22 -0
- package/dist/integrations/github/stale-reviews.d.ts.map +1 -0
- package/dist/integrations/github/stale-reviews.js +70 -0
- package/dist/integrations/github/stale-reviews.js.map +1 -0
- package/dist/integrations/github/subscriptions.d.ts +54 -0
- package/dist/integrations/github/subscriptions.d.ts.map +1 -0
- package/dist/integrations/github/subscriptions.js +64 -0
- package/dist/integrations/github/subscriptions.js.map +1 -0
- package/dist/integrations/github/token-refresh.d.ts +31 -0
- package/dist/integrations/github/token-refresh.d.ts.map +1 -0
- package/dist/integrations/github/token-refresh.js +42 -0
- package/dist/integrations/github/token-refresh.js.map +1 -0
- package/dist/integrations/github/webhook.d.ts +139 -0
- package/dist/integrations/github/webhook.d.ts.map +1 -0
- package/dist/integrations/github/webhook.js +432 -0
- package/dist/integrations/github/webhook.js.map +1 -0
- package/dist/integrations/gitlab/agent-tools.d.ts +14 -0
- package/dist/integrations/gitlab/agent-tools.d.ts.map +1 -0
- package/dist/integrations/gitlab/agent-tools.js +42 -0
- package/dist/integrations/gitlab/agent-tools.js.map +1 -0
- package/dist/integrations/gitlab/api.d.ts +222 -0
- package/dist/integrations/gitlab/api.d.ts.map +1 -0
- package/dist/integrations/gitlab/api.js +274 -0
- package/dist/integrations/gitlab/api.js.map +1 -0
- package/dist/integrations/gitlab/default-rules.d.ts +125 -0
- package/dist/integrations/gitlab/default-rules.d.ts.map +1 -0
- package/dist/integrations/gitlab/default-rules.js +180 -0
- package/dist/integrations/gitlab/default-rules.js.map +1 -0
- package/dist/integrations/gitlab/integration.d.ts +138 -0
- package/dist/integrations/gitlab/integration.d.ts.map +1 -0
- package/dist/integrations/gitlab/integration.js +705 -0
- package/dist/integrations/gitlab/integration.js.map +1 -0
- package/dist/integrations/gitlab/issue-reconciler.d.ts +6 -0
- package/dist/integrations/gitlab/issue-reconciler.d.ts.map +1 -0
- package/dist/integrations/gitlab/issue-reconciler.js +123 -0
- package/dist/integrations/gitlab/issue-reconciler.js.map +1 -0
- package/dist/integrations/gitlab/merge-request-reconciler.d.ts +6 -0
- package/dist/integrations/gitlab/merge-request-reconciler.d.ts.map +1 -0
- package/dist/integrations/gitlab/merge-request-reconciler.js +267 -0
- package/dist/integrations/gitlab/merge-request-reconciler.js.map +1 -0
- package/dist/integrations/gitlab/reconciler.d.ts +5 -0
- package/dist/integrations/gitlab/reconciler.d.ts.map +1 -0
- package/dist/integrations/gitlab/reconciler.js +31 -0
- package/dist/integrations/gitlab/reconciler.js.map +1 -0
- package/dist/integrations/gitlab/reconciliation-config.d.ts +3 -0
- package/dist/integrations/gitlab/reconciliation-config.d.ts.map +1 -0
- package/dist/integrations/gitlab/reconciliation-config.js +17 -0
- package/dist/integrations/gitlab/reconciliation-config.js.map +1 -0
- package/dist/integrations/gitlab/routes.d.ts +20 -0
- package/dist/integrations/gitlab/routes.d.ts.map +1 -0
- package/dist/integrations/gitlab/routes.js +474 -0
- package/dist/integrations/gitlab/routes.js.map +1 -0
- package/dist/integrations/gitlab/rules.d.ts +35 -0
- package/dist/integrations/gitlab/rules.d.ts.map +1 -0
- package/dist/integrations/gitlab/rules.js +502 -0
- package/dist/integrations/gitlab/rules.js.map +1 -0
- package/dist/integrations/gitlab/session-subscriptions.d.ts +32 -0
- package/dist/integrations/gitlab/session-subscriptions.d.ts.map +1 -0
- package/dist/integrations/gitlab/session-subscriptions.js +193 -0
- package/dist/integrations/gitlab/session-subscriptions.js.map +1 -0
- package/dist/integrations/gitlab/subscriptions.d.ts +70 -0
- package/dist/integrations/gitlab/subscriptions.d.ts.map +1 -0
- package/dist/integrations/gitlab/subscriptions.js +76 -0
- package/dist/integrations/gitlab/subscriptions.js.map +1 -0
- package/dist/integrations/gitlab/version-control.d.ts +16 -0
- package/dist/integrations/gitlab/version-control.d.ts.map +1 -0
- package/dist/integrations/gitlab/version-control.js +621 -0
- package/dist/integrations/gitlab/version-control.js.map +1 -0
- package/dist/integrations/gitlab/webhook-dispatch.d.ts +75 -0
- package/dist/integrations/gitlab/webhook-dispatch.d.ts.map +1 -0
- package/dist/integrations/gitlab/webhook-dispatch.js +235 -0
- package/dist/integrations/gitlab/webhook-dispatch.js.map +1 -0
- package/dist/integrations/gitlab/webhook.d.ts +72 -0
- package/dist/integrations/gitlab/webhook.d.ts.map +1 -0
- package/dist/integrations/gitlab/webhook.js +201 -0
- package/dist/integrations/gitlab/webhook.js.map +1 -0
- package/dist/integrations/incidentio/agent-tools.d.ts +49 -0
- package/dist/integrations/incidentio/agent-tools.d.ts.map +1 -0
- package/dist/integrations/incidentio/agent-tools.js +90 -0
- package/dist/integrations/incidentio/agent-tools.js.map +1 -0
- package/dist/integrations/incidentio/api.d.ts +400 -0
- package/dist/integrations/incidentio/api.d.ts.map +1 -0
- package/dist/integrations/incidentio/api.js +192 -0
- package/dist/integrations/incidentio/api.js.map +1 -0
- package/dist/integrations/incidentio/claim.d.ts +8 -0
- package/dist/integrations/incidentio/claim.d.ts.map +1 -0
- package/dist/integrations/incidentio/claim.js +14 -0
- package/dist/integrations/incidentio/claim.js.map +1 -0
- package/dist/integrations/incidentio/default-rules.d.ts +46 -0
- package/dist/integrations/incidentio/default-rules.d.ts.map +1 -0
- package/dist/integrations/incidentio/default-rules.js +68 -0
- package/dist/integrations/incidentio/default-rules.js.map +1 -0
- package/dist/integrations/incidentio/intake.d.ts +10 -0
- package/dist/integrations/incidentio/intake.d.ts.map +1 -0
- package/dist/integrations/incidentio/intake.js +307 -0
- package/dist/integrations/incidentio/intake.js.map +1 -0
- package/dist/integrations/incidentio/integration.d.ts +63 -0
- package/dist/integrations/incidentio/integration.d.ts.map +1 -0
- package/dist/integrations/incidentio/integration.js +141 -0
- package/dist/integrations/incidentio/integration.js.map +1 -0
- package/dist/integrations/incidentio/issue-reconciler.d.ts +10 -0
- package/dist/integrations/incidentio/issue-reconciler.d.ts.map +1 -0
- package/dist/integrations/incidentio/issue-reconciler.js +75 -0
- package/dist/integrations/incidentio/issue-reconciler.js.map +1 -0
- package/dist/integrations/incidentio/reconciliation-config.d.ts +3 -0
- package/dist/integrations/incidentio/reconciliation-config.d.ts.map +1 -0
- package/dist/integrations/incidentio/reconciliation-config.js +17 -0
- package/dist/integrations/incidentio/reconciliation-config.js.map +1 -0
- package/dist/integrations/incidentio/routes.d.ts +76 -0
- package/dist/integrations/incidentio/routes.d.ts.map +1 -0
- package/dist/integrations/incidentio/routes.js +249 -0
- package/dist/integrations/incidentio/routes.js.map +1 -0
- package/dist/integrations/incidentio/rules.d.ts +55 -0
- package/dist/integrations/incidentio/rules.d.ts.map +1 -0
- package/dist/integrations/incidentio/rules.js +189 -0
- package/dist/integrations/incidentio/rules.js.map +1 -0
- package/dist/integrations/issue-reconcile-worker.d.ts +19 -0
- package/dist/integrations/issue-reconcile-worker.d.ts.map +1 -0
- package/dist/integrations/issue-reconcile-worker.js +97 -0
- package/dist/integrations/issue-reconcile-worker.js.map +1 -0
- package/dist/integrations/issue-reconciler.d.ts +51 -0
- package/dist/integrations/issue-reconciler.d.ts.map +1 -0
- package/dist/integrations/issue-reconciler.js +158 -0
- package/dist/integrations/issue-reconciler.js.map +1 -0
- package/dist/integrations/jira/adf.d.ts +26 -0
- package/dist/integrations/jira/adf.d.ts.map +1 -0
- package/dist/integrations/jira/adf.js +73 -0
- package/dist/integrations/jira/adf.js.map +1 -0
- package/dist/integrations/jira/agent-tools.d.ts +45 -0
- package/dist/integrations/jira/agent-tools.d.ts.map +1 -0
- package/dist/integrations/jira/agent-tools.js +87 -0
- package/dist/integrations/jira/agent-tools.js.map +1 -0
- package/dist/integrations/jira/api.d.ts +157 -0
- package/dist/integrations/jira/api.d.ts.map +1 -0
- package/dist/integrations/jira/api.js +141 -0
- package/dist/integrations/jira/api.js.map +1 -0
- package/dist/integrations/jira/claim.d.ts +9 -0
- package/dist/integrations/jira/claim.d.ts.map +1 -0
- package/dist/integrations/jira/claim.js +15 -0
- package/dist/integrations/jira/claim.js.map +1 -0
- package/dist/integrations/jira/default-rules.d.ts +47 -0
- package/dist/integrations/jira/default-rules.d.ts.map +1 -0
- package/dist/integrations/jira/default-rules.js +69 -0
- package/dist/integrations/jira/default-rules.js.map +1 -0
- package/dist/integrations/jira/integration.d.ts +114 -0
- package/dist/integrations/jira/integration.d.ts.map +1 -0
- package/dist/integrations/jira/integration.js +407 -0
- package/dist/integrations/jira/integration.js.map +1 -0
- package/dist/integrations/jira/issue-reconciler.d.ts +10 -0
- package/dist/integrations/jira/issue-reconciler.d.ts.map +1 -0
- package/dist/integrations/jira/issue-reconciler.js +70 -0
- package/dist/integrations/jira/issue-reconciler.js.map +1 -0
- package/dist/integrations/jira/reconciliation-config.d.ts +3 -0
- package/dist/integrations/jira/reconciliation-config.d.ts.map +1 -0
- package/dist/integrations/jira/reconciliation-config.js +17 -0
- package/dist/integrations/jira/reconciliation-config.js.map +1 -0
- package/dist/integrations/jira/routes.d.ts +54 -0
- package/dist/integrations/jira/routes.d.ts.map +1 -0
- package/dist/integrations/jira/routes.js +260 -0
- package/dist/integrations/jira/routes.js.map +1 -0
- package/dist/integrations/jira/rules.d.ts +57 -0
- package/dist/integrations/jira/rules.d.ts.map +1 -0
- package/dist/integrations/jira/rules.js +189 -0
- package/dist/integrations/jira/rules.js.map +1 -0
- package/dist/integrations/linear/agent-tools.d.ts +34 -0
- package/dist/integrations/linear/agent-tools.d.ts.map +1 -0
- package/dist/integrations/linear/agent-tools.js +87 -0
- package/dist/integrations/linear/agent-tools.js.map +1 -0
- package/dist/integrations/linear/claim.d.ts +8 -0
- package/dist/integrations/linear/claim.d.ts.map +1 -0
- package/dist/integrations/linear/claim.js +14 -0
- package/dist/integrations/linear/claim.js.map +1 -0
- package/dist/integrations/linear/default-rules.d.ts +46 -0
- package/dist/integrations/linear/default-rules.d.ts.map +1 -0
- package/dist/integrations/linear/default-rules.js +70 -0
- package/dist/integrations/linear/default-rules.js.map +1 -0
- package/dist/integrations/linear/integration.d.ts +260 -0
- package/dist/integrations/linear/integration.d.ts.map +1 -0
- package/dist/integrations/linear/integration.js +900 -0
- package/dist/integrations/linear/integration.js.map +1 -0
- package/dist/integrations/linear/issue-reconciler.d.ts +8 -0
- package/dist/integrations/linear/issue-reconciler.d.ts.map +1 -0
- package/dist/integrations/linear/issue-reconciler.js +73 -0
- package/dist/integrations/linear/issue-reconciler.js.map +1 -0
- package/dist/integrations/linear/reconciliation-config.d.ts +3 -0
- package/dist/integrations/linear/reconciliation-config.d.ts.map +1 -0
- package/dist/integrations/linear/reconciliation-config.js +21 -0
- package/dist/integrations/linear/reconciliation-config.js.map +1 -0
- package/dist/integrations/linear/routes.d.ts +81 -0
- package/dist/integrations/linear/routes.d.ts.map +1 -0
- package/dist/integrations/linear/routes.js +380 -0
- package/dist/integrations/linear/routes.js.map +1 -0
- package/dist/integrations/linear/rules.d.ts +54 -0
- package/dist/integrations/linear/rules.d.ts.map +1 -0
- package/dist/integrations/linear/rules.js +189 -0
- package/dist/integrations/linear/rules.js.map +1 -0
- package/dist/integrations/linear/storage.d.ts +65 -0
- package/dist/integrations/linear/storage.d.ts.map +1 -0
- package/dist/integrations/linear/storage.js +1 -0
- package/dist/integrations/platform/api-client.d.ts +26 -0
- package/dist/integrations/platform/api-client.d.ts.map +1 -0
- package/dist/integrations/platform/api-client.js +177 -0
- package/dist/integrations/platform/api-client.js.map +1 -0
- package/dist/integrations/platform/connect/routes.d.ts +39 -0
- package/dist/integrations/platform/connect/routes.d.ts.map +1 -0
- package/dist/integrations/platform/connect/routes.js +133 -0
- package/dist/integrations/platform/connect/routes.js.map +1 -0
- package/dist/integrations/platform/github/event-worker.d.ts +58 -0
- package/dist/integrations/platform/github/event-worker.d.ts.map +1 -0
- package/dist/integrations/platform/github/event-worker.js +449 -0
- package/dist/integrations/platform/github/event-worker.js.map +1 -0
- package/dist/integrations/platform/github/integration.d.ts +89 -0
- package/dist/integrations/platform/github/integration.d.ts.map +1 -0
- package/dist/integrations/platform/github/integration.js +1266 -0
- package/dist/integrations/platform/github/integration.js.map +1 -0
- package/dist/integrations/platform/gitlab/event-worker.d.ts +64 -0
- package/dist/integrations/platform/gitlab/event-worker.d.ts.map +1 -0
- package/dist/integrations/platform/gitlab/event-worker.js +305 -0
- package/dist/integrations/platform/gitlab/event-worker.js.map +1 -0
- package/dist/integrations/platform/gitlab/integration.d.ts +57 -0
- package/dist/integrations/platform/gitlab/integration.d.ts.map +1 -0
- package/dist/integrations/platform/gitlab/integration.js +113 -0
- package/dist/integrations/platform/gitlab/integration.js.map +1 -0
- package/dist/integrations/platform/incidentio/integration.d.ts +74 -0
- package/dist/integrations/platform/incidentio/integration.d.ts.map +1 -0
- package/dist/integrations/platform/incidentio/integration.js +406 -0
- package/dist/integrations/platform/incidentio/integration.js.map +1 -0
- package/dist/integrations/platform/jira/agent-tools.d.ts +36 -0
- package/dist/integrations/platform/jira/agent-tools.d.ts.map +1 -0
- package/dist/integrations/platform/jira/agent-tools.js +85 -0
- package/dist/integrations/platform/jira/agent-tools.js.map +1 -0
- package/dist/integrations/platform/jira/integration.d.ts +65 -0
- package/dist/integrations/platform/jira/integration.d.ts.map +1 -0
- package/dist/integrations/platform/jira/integration.js +546 -0
- package/dist/integrations/platform/jira/integration.js.map +1 -0
- package/dist/integrations/platform/jira/routes.d.ts +55 -0
- package/dist/integrations/platform/jira/routes.d.ts.map +1 -0
- package/dist/integrations/platform/jira/routes.js +274 -0
- package/dist/integrations/platform/jira/routes.js.map +1 -0
- package/dist/integrations/platform/linear/event-worker.d.ts +105 -0
- package/dist/integrations/platform/linear/event-worker.d.ts.map +1 -0
- package/dist/integrations/platform/linear/event-worker.js +379 -0
- package/dist/integrations/platform/linear/event-worker.js.map +1 -0
- package/dist/integrations/platform/linear/integration.d.ts +92 -0
- package/dist/integrations/platform/linear/integration.d.ts.map +1 -0
- package/dist/integrations/platform/linear/integration.js +754 -0
- package/dist/integrations/platform/linear/integration.js.map +1 -0
- package/dist/integrations/pull-request-head.d.ts +18 -0
- package/dist/integrations/pull-request-head.d.ts.map +1 -0
- package/dist/integrations/pull-request-head.js +45 -0
- package/dist/integrations/pull-request-head.js.map +1 -0
- package/dist/integrations/reconciliation-config.d.ts +3 -0
- package/dist/integrations/reconciliation-config.d.ts.map +1 -0
- package/dist/integrations/reconciliation-config.js +16 -0
- package/dist/integrations/reconciliation-config.js.map +1 -0
- package/dist/integrations/slack/connect-route.d.ts +46 -0
- package/dist/integrations/slack/connect-route.d.ts.map +1 -0
- package/dist/integrations/slack/connect-route.js +186 -0
- package/dist/integrations/slack/connect-route.js.map +1 -0
- package/dist/integrations/slack/emoji-shortcodes.generated.d.ts +8 -0
- package/dist/integrations/slack/emoji-shortcodes.generated.d.ts.map +1 -0
- package/dist/integrations/slack/emoji-shortcodes.generated.js +1985 -0
- package/dist/integrations/slack/emoji-shortcodes.generated.js.map +1 -0
- package/dist/integrations/slack/emoji.d.ts +3 -0
- package/dist/integrations/slack/emoji.d.ts.map +1 -0
- package/dist/integrations/slack/emoji.js +12 -0
- package/dist/integrations/slack/emoji.js.map +1 -0
- package/dist/integrations/slack/feed-publisher.d.ts +26 -0
- package/dist/integrations/slack/feed-publisher.d.ts.map +1 -0
- package/dist/integrations/slack/feed-publisher.js +44 -0
- package/dist/integrations/slack/feed-publisher.js.map +1 -0
- package/dist/integrations/slack/integration.d.ts +80 -0
- package/dist/integrations/slack/integration.d.ts.map +1 -0
- package/dist/integrations/slack/integration.js +93 -0
- package/dist/integrations/slack/integration.js.map +1 -0
- package/dist/integrations/slack/slack.d.ts +205 -0
- package/dist/integrations/slack/slack.d.ts.map +1 -0
- package/dist/integrations/slack/slack.js +653 -0
- package/dist/integrations/slack/slack.js.map +1 -0
- package/dist/integrations/subscription-session.d.ts +49 -0
- package/dist/integrations/subscription-session.d.ts.map +1 -0
- package/dist/integrations/subscription-session.js +103 -0
- package/dist/integrations/subscription-session.js.map +1 -0
- package/dist/integrations/workos/integration.d.ts +39 -0
- package/dist/integrations/workos/integration.d.ts.map +1 -0
- package/dist/integrations/workos/integration.js +91 -0
- package/dist/integrations/workos/integration.js.map +1 -0
- package/dist/packages/_internals/workspace/dist/index.js +48 -0
- package/dist/packages/_internals/workspace/dist/index.js.map +1 -0
- package/dist/platform-auth-host.d.ts +4 -0
- package/dist/platform-auth-host.d.ts.map +1 -0
- package/dist/platform-auth-host.js +18 -0
- package/dist/platform-auth-host.js.map +1 -0
- package/dist/review-verdict.d.ts +6 -0
- package/dist/review-verdict.d.ts.map +1 -0
- package/dist/review-verdict.js +14 -0
- package/dist/review-verdict.js.map +1 -0
- package/dist/routes/attention-activity.d.ts +23 -0
- package/dist/routes/attention-activity.d.ts.map +1 -0
- package/dist/routes/attention-activity.js +152 -0
- package/dist/routes/attention-activity.js.map +1 -0
- package/dist/routes/attention-parked.d.ts +22 -0
- package/dist/routes/attention-parked.d.ts.map +1 -0
- package/dist/routes/attention-parked.js +136 -0
- package/dist/routes/attention-parked.js.map +1 -0
- package/dist/routes/attention-proposed.d.ts +3 -0
- package/dist/routes/attention-proposed.d.ts.map +1 -0
- package/dist/routes/attention-proposed.js +21 -0
- package/dist/routes/attention-proposed.js.map +1 -0
- package/dist/routes/attention-providers.d.ts +159 -0
- package/dist/routes/attention-providers.d.ts.map +1 -0
- package/dist/routes/attention-providers.js +524 -0
- package/dist/routes/attention-providers.js.map +1 -0
- package/dist/routes/attention.d.ts +23 -0
- package/dist/routes/attention.d.ts.map +1 -0
- package/dist/routes/attention.js +219 -0
- package/dist/routes/attention.js.map +1 -0
- package/dist/routes/automation-runs.d.ts +37 -0
- package/dist/routes/automation-runs.d.ts.map +1 -0
- package/dist/routes/automation-runs.js +196 -0
- package/dist/routes/automation-runs.js.map +1 -0
- package/dist/routes/config.d.ts +238 -0
- package/dist/routes/config.d.ts.map +1 -0
- package/dist/routes/config.js +1011 -0
- package/dist/routes/config.js.map +1 -0
- package/dist/routes/contracts.d.ts +1080 -0
- package/dist/routes/contracts.d.ts.map +1 -0
- package/dist/routes/contracts.js +673 -0
- package/dist/routes/contracts.js.map +1 -0
- package/dist/routes/custom-provider-source.d.ts +52 -0
- package/dist/routes/custom-provider-source.d.ts.map +1 -0
- package/dist/routes/custom-provider-source.js +124 -0
- package/dist/routes/custom-provider-source.js.map +1 -0
- package/dist/routes/fs.d.ts +189 -0
- package/dist/routes/fs.d.ts.map +1 -0
- package/dist/routes/fs.js +916 -0
- package/dist/routes/fs.js.map +1 -0
- package/dist/routes/intake.d.ts +64 -0
- package/dist/routes/intake.d.ts.map +1 -0
- package/dist/routes/intake.js +627 -0
- package/dist/routes/intake.js.map +1 -0
- package/dist/routes/knowledge.d.ts +247 -0
- package/dist/routes/knowledge.d.ts.map +1 -0
- package/dist/routes/knowledge.js +1128 -0
- package/dist/routes/knowledge.js.map +1 -0
- package/dist/routes/oauth.d.ts +43 -0
- package/dist/routes/oauth.d.ts.map +1 -0
- package/dist/routes/oauth.js +477 -0
- package/dist/routes/oauth.js.map +1 -0
- package/dist/routes/projects.d.ts +68 -0
- package/dist/routes/projects.d.ts.map +1 -0
- package/dist/routes/projects.js +919 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/provider-credentials.d.ts +82 -0
- package/dist/routes/provider-credentials.d.ts.map +1 -0
- package/dist/routes/provider-credentials.js +80 -0
- package/dist/routes/provider-credentials.js.map +1 -0
- package/dist/routes/route.d.ts +48 -0
- package/dist/routes/route.d.ts.map +1 -0
- package/dist/routes/route.js +15 -0
- package/dist/routes/route.js.map +1 -0
- package/dist/routes/skills.d.ts +30 -0
- package/dist/routes/skills.d.ts.map +1 -0
- package/dist/routes/skills.js +198 -0
- package/dist/routes/skills.js.map +1 -0
- package/dist/routes/source-control-sessions.d.ts +22 -0
- package/dist/routes/source-control-sessions.d.ts.map +1 -0
- package/dist/routes/source-control-sessions.js +356 -0
- package/dist/routes/source-control-sessions.js.map +1 -0
- package/dist/routes/source-control-settings.d.ts +10 -0
- package/dist/routes/source-control-settings.d.ts.map +1 -0
- package/dist/routes/source-control-settings.js +87 -0
- package/dist/routes/source-control-settings.js.map +1 -0
- package/dist/routes/supervisor.d.ts +25 -0
- package/dist/routes/supervisor.d.ts.map +1 -0
- package/dist/routes/supervisor.js +35 -0
- package/dist/routes/supervisor.js.map +1 -0
- package/dist/routes/surface.d.ts +133 -0
- package/dist/routes/surface.d.ts.map +1 -0
- package/dist/routes/surface.js +518 -0
- package/dist/routes/surface.js.map +1 -0
- package/dist/routes/telemetry.d.ts +13 -0
- package/dist/routes/telemetry.d.ts.map +1 -0
- package/dist/routes/telemetry.js +60 -0
- package/dist/routes/telemetry.js.map +1 -0
- package/dist/routes/tenant-credentials.d.ts +87 -0
- package/dist/routes/tenant-credentials.d.ts.map +1 -0
- package/dist/routes/tenant-credentials.js +219 -0
- package/dist/routes/tenant-credentials.js.map +1 -0
- package/dist/routes/work-items.d.ts +49 -0
- package/dist/routes/work-items.d.ts.map +1 -0
- package/dist/routes/work-items.js +633 -0
- package/dist/routes/work-items.js.map +1 -0
- package/dist/rules/binding-context.d.ts +59 -0
- package/dist/rules/binding-context.d.ts.map +1 -0
- package/dist/rules/binding-context.js +134 -0
- package/dist/rules/binding-context.js.map +1 -0
- package/dist/rules/decision-applicability.d.ts +32 -0
- package/dist/rules/decision-applicability.d.ts.map +1 -0
- package/dist/rules/decision-applicability.js +56 -0
- package/dist/rules/decision-applicability.js.map +1 -0
- package/dist/rules/dispatch-errors.d.ts +13 -0
- package/dist/rules/dispatch-errors.d.ts.map +1 -0
- package/dist/rules/dispatch-errors.js +105 -0
- package/dist/rules/dispatch-errors.js.map +1 -0
- package/dist/rules/dispatcher.d.ts +86 -0
- package/dist/rules/dispatcher.d.ts.map +1 -0
- package/dist/rules/dispatcher.js +1159 -0
- package/dist/rules/dispatcher.js.map +1 -0
- package/dist/rules/event-rules.d.ts +23 -0
- package/dist/rules/event-rules.d.ts.map +1 -0
- package/dist/rules/event-rules.js +46 -0
- package/dist/rules/event-rules.js.map +1 -0
- package/dist/rules/index.d.ts +6 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +4 -0
- package/dist/rules/processor.d.ts +90 -0
- package/dist/rules/processor.d.ts.map +1 -0
- package/dist/rules/processor.js +486 -0
- package/dist/rules/processor.js.map +1 -0
- package/dist/rules/resolve.d.ts +15 -0
- package/dist/rules/resolve.d.ts.map +1 -0
- package/dist/rules/resolve.js +23 -0
- package/dist/rules/resolve.js.map +1 -0
- package/dist/rules/review-source-tool.d.ts +105 -0
- package/dist/rules/review-source-tool.d.ts.map +1 -0
- package/dist/rules/review-source-tool.js +109 -0
- package/dist/rules/review-source-tool.js.map +1 -0
- package/dist/rules/start-coordinator.d.ts +64 -0
- package/dist/rules/start-coordinator.d.ts.map +1 -0
- package/dist/rules/start-coordinator.js +246 -0
- package/dist/rules/start-coordinator.js.map +1 -0
- package/dist/rules/terminal-cleanup.d.ts +38 -0
- package/dist/rules/terminal-cleanup.d.ts.map +1 -0
- package/dist/rules/terminal-cleanup.js +68 -0
- package/dist/rules/terminal-cleanup.js.map +1 -0
- package/dist/rules/tools.d.ts +15 -0
- package/dist/rules/tools.d.ts.map +1 -0
- package/dist/rules/tools.js +185 -0
- package/dist/rules/tools.js.map +1 -0
- package/dist/rules/transition-service.d.ts +93 -0
- package/dist/rules/transition-service.d.ts.map +1 -0
- package/dist/rules/transition-service.js +402 -0
- package/dist/rules/transition-service.js.map +1 -0
- package/dist/rules/types.d.ts +553 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +154 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/rules/validation.d.ts +21 -0
- package/dist/rules/validation.d.ts.map +1 -0
- package/dist/rules/validation.js +327 -0
- package/dist/rules/validation.js.map +1 -0
- package/dist/sandbox/callback-factory-sandbox.d.ts +15 -0
- package/dist/sandbox/callback-factory-sandbox.d.ts.map +1 -0
- package/dist/sandbox/callback-factory-sandbox.js +22 -0
- package/dist/sandbox/callback-factory-sandbox.js.map +1 -0
- package/dist/sandbox/git-ref.d.ts +7 -0
- package/dist/sandbox/git-ref.d.ts.map +1 -0
- package/dist/sandbox/git-ref.js +15 -0
- package/dist/sandbox/git-ref.js.map +1 -0
- package/dist/sandbox/local-factory-sandbox.d.ts +20 -0
- package/dist/sandbox/local-factory-sandbox.d.ts.map +1 -0
- package/dist/sandbox/local-factory-sandbox.js +27 -0
- package/dist/sandbox/local-factory-sandbox.js.map +1 -0
- package/dist/sandbox/materialization.d.ts +41 -0
- package/dist/sandbox/materialization.d.ts.map +1 -0
- package/dist/sandbox/materialization.js +18 -0
- package/dist/sandbox/materialization.js.map +1 -0
- package/dist/sandbox/session-retirement.d.ts +45 -0
- package/dist/sandbox/session-retirement.d.ts.map +1 -0
- package/dist/sandbox/session-retirement.js +153 -0
- package/dist/sandbox/session-retirement.js.map +1 -0
- package/dist/sandbox/session-sandbox.d.ts +185 -0
- package/dist/sandbox/session-sandbox.d.ts.map +1 -0
- package/dist/sandbox/session-sandbox.js +248 -0
- package/dist/sandbox/session-sandbox.js.map +1 -0
- package/dist/sandbox/workdir.d.ts +45 -0
- package/dist/sandbox/workdir.d.ts.map +1 -0
- package/dist/sandbox/workdir.js +64 -0
- package/dist/sandbox/workdir.js.map +1 -0
- package/dist/secret-encryption.d.ts +25 -0
- package/dist/secret-encryption.d.ts.map +1 -0
- package/dist/secret-encryption.js +107 -0
- package/dist/secret-encryption.js.map +1 -0
- package/dist/server-error.d.ts +12 -0
- package/dist/server-error.d.ts.map +1 -0
- package/dist/server-error.js +16 -0
- package/dist/server-error.js.map +1 -0
- package/dist/session/credential-policy.d.ts +20 -0
- package/dist/session/credential-policy.d.ts.map +1 -0
- package/dist/session/credential-policy.js +70 -0
- package/dist/session/credential-policy.js.map +1 -0
- package/dist/session/default-model-hydration.d.ts +46 -0
- package/dist/session/default-model-hydration.d.ts.map +1 -0
- package/dist/session/default-model-hydration.js +85 -0
- package/dist/session/default-model-hydration.js.map +1 -0
- package/dist/session/environment-repositories.d.ts +31 -0
- package/dist/session/environment-repositories.d.ts.map +1 -0
- package/dist/session/environment-repositories.js +89 -0
- package/dist/session/environment-repositories.js.map +1 -0
- package/dist/session/environment-state-processor.d.ts +59 -0
- package/dist/session/environment-state-processor.d.ts.map +1 -0
- package/dist/session/environment-state-processor.js +105 -0
- package/dist/session/environment-state-processor.js.map +1 -0
- package/dist/session/factory-session.d.ts +159 -0
- package/dist/session/factory-session.d.ts.map +1 -0
- package/dist/session/factory-session.js +226 -0
- package/dist/session/factory-session.js.map +1 -0
- package/dist/session/filesystem-capture.d.ts +50 -0
- package/dist/session/filesystem-capture.d.ts.map +1 -0
- package/dist/session/filesystem-capture.js +231 -0
- package/dist/session/filesystem-capture.js.map +1 -0
- package/dist/session/first-exec-capture.d.ts +38 -0
- package/dist/session/first-exec-capture.d.ts.map +1 -0
- package/dist/session/first-exec-capture.js +91 -0
- package/dist/session/first-exec-capture.js.map +1 -0
- package/dist/session/first-message-capture.d.ts +33 -0
- package/dist/session/first-message-capture.d.ts.map +1 -0
- package/dist/session/first-message-capture.js +35 -0
- package/dist/session/first-message-capture.js.map +1 -0
- package/dist/session/live-sessions.d.ts +63 -0
- package/dist/session/live-sessions.d.ts.map +1 -0
- package/dist/session/live-sessions.js +90 -0
- package/dist/session/live-sessions.js.map +1 -0
- package/dist/session/memory-settings-hydration.d.ts +36 -0
- package/dist/session/memory-settings-hydration.d.ts.map +1 -0
- package/dist/session/memory-settings-hydration.js +43 -0
- package/dist/session/memory-settings-hydration.js.map +1 -0
- package/dist/session/org-seed.d.ts +67 -0
- package/dist/session/org-seed.d.ts.map +1 -0
- package/dist/session/org-seed.js +53 -0
- package/dist/session/org-seed.js.map +1 -0
- package/dist/session/run-audit.d.ts +54 -0
- package/dist/session/run-audit.d.ts.map +1 -0
- package/dist/session/run-audit.js +124 -0
- package/dist/session/run-audit.js.map +1 -0
- package/dist/session/session-title.d.ts +7 -0
- package/dist/session/session-title.d.ts.map +1 -0
- package/dist/session/session-title.js +14 -0
- package/dist/session/session-title.js.map +1 -0
- package/dist/session/shell-commands.d.ts +5 -0
- package/dist/session/shell-commands.d.ts.map +1 -0
- package/dist/session/shell-commands.js +25 -0
- package/dist/session/shell-commands.js.map +1 -0
- package/dist/session/source-control-tools.d.ts +25 -0
- package/dist/session/source-control-tools.d.ts.map +1 -0
- package/dist/session/source-control-tools.js +594 -0
- package/dist/session/source-control-tools.js.map +1 -0
- package/dist/session/thread-title-mirror.d.ts +35 -0
- package/dist/session/thread-title-mirror.d.ts.map +1 -0
- package/dist/session/thread-title-mirror.js +51 -0
- package/dist/session/thread-title-mirror.js.map +1 -0
- package/dist/session/work-item-repository.d.ts +21 -0
- package/dist/session/work-item-repository.d.ts.map +1 -0
- package/dist/session/work-item-repository.js +113 -0
- package/dist/session/work-item-repository.js.map +1 -0
- package/dist/skills/catalog.d.ts +14 -0
- package/dist/skills/catalog.d.ts.map +1 -0
- package/dist/skills/catalog.js +62 -0
- package/dist/skills/catalog.js.map +1 -0
- package/dist/skills/service.d.ts +70 -0
- package/dist/skills/service.d.ts.map +1 -0
- package/dist/skills/service.js +88 -0
- package/dist/skills/service.js.map +1 -0
- package/dist/spa-static.d.ts +33 -0
- package/dist/spa-static.d.ts.map +1 -0
- package/dist/spa-static.js +104 -0
- package/dist/spa-static.js.map +1 -0
- package/dist/state-signing.d.ts +59 -0
- package/dist/state-signing.d.ts.map +1 -0
- package/dist/state-signing.js +83 -0
- package/dist/state-signing.js.map +1 -0
- package/dist/storage/domains/audit/actions.d.ts +24 -0
- package/dist/storage/domains/audit/actions.d.ts.map +1 -0
- package/dist/storage/domains/audit/actions.js +69 -0
- package/dist/storage/domains/audit/actions.js.map +1 -0
- package/dist/storage/domains/audit/actors.d.ts +5 -0
- package/dist/storage/domains/audit/actors.d.ts.map +1 -0
- package/dist/storage/domains/audit/actors.js +25 -0
- package/dist/storage/domains/audit/actors.js.map +1 -0
- package/dist/storage/domains/audit/agent-audit.d.ts +30 -0
- package/dist/storage/domains/audit/agent-audit.d.ts.map +1 -0
- package/dist/storage/domains/audit/agent-audit.js +93 -0
- package/dist/storage/domains/audit/agent-audit.js.map +1 -0
- package/dist/storage/domains/audit/base.d.ts +133 -0
- package/dist/storage/domains/audit/base.d.ts.map +1 -0
- package/dist/storage/domains/audit/base.js +206 -0
- package/dist/storage/domains/audit/base.js.map +1 -0
- package/dist/storage/domains/audit/domain.d.ts +79 -0
- package/dist/storage/domains/audit/domain.d.ts.map +1 -0
- package/dist/storage/domains/audit/domain.js +248 -0
- package/dist/storage/domains/audit/domain.js.map +1 -0
- package/dist/storage/domains/audit/wire.d.ts +24 -0
- package/dist/storage/domains/audit/wire.d.ts.map +1 -0
- package/dist/storage/domains/audit/wire.js +16 -0
- package/dist/storage/domains/audit/wire.js.map +1 -0
- package/dist/storage/domains/channel-identity/base.d.ts +100 -0
- package/dist/storage/domains/channel-identity/base.d.ts.map +1 -0
- package/dist/storage/domains/channel-identity/base.js +164 -0
- package/dist/storage/domains/channel-identity/base.js.map +1 -0
- package/dist/storage/domains/comments/activity.d.ts +40 -0
- package/dist/storage/domains/comments/activity.d.ts.map +1 -0
- package/dist/storage/domains/comments/activity.js +94 -0
- package/dist/storage/domains/comments/activity.js.map +1 -0
- package/dist/storage/domains/comments/actor.d.ts +51 -0
- package/dist/storage/domains/comments/actor.d.ts.map +1 -0
- package/dist/storage/domains/comments/actor.js +38 -0
- package/dist/storage/domains/comments/actor.js.map +1 -0
- package/dist/storage/domains/comments/base.d.ts +245 -0
- package/dist/storage/domains/comments/base.d.ts.map +1 -0
- package/dist/storage/domains/comments/base.js +533 -0
- package/dist/storage/domains/comments/base.js.map +1 -0
- package/dist/storage/domains/comments/domain.d.ts +135 -0
- package/dist/storage/domains/comments/domain.d.ts.map +1 -0
- package/dist/storage/domains/comments/domain.js +285 -0
- package/dist/storage/domains/comments/domain.js.map +1 -0
- package/dist/storage/domains/comments/feed-context.d.ts +22 -0
- package/dist/storage/domains/comments/feed-context.d.ts.map +1 -0
- package/dist/storage/domains/comments/feed-context.js +89 -0
- package/dist/storage/domains/comments/feed-context.js.map +1 -0
- package/dist/storage/domains/comments/feed-sync.d.ts +21 -0
- package/dist/storage/domains/comments/feed-sync.d.ts.map +1 -0
- package/dist/storage/domains/comments/feed-sync.js +1 -0
- package/dist/storage/domains/comments/parse.d.ts +23 -0
- package/dist/storage/domains/comments/parse.d.ts.map +1 -0
- package/dist/storage/domains/comments/parse.js +90 -0
- package/dist/storage/domains/comments/parse.js.map +1 -0
- package/dist/storage/domains/comments/routes.d.ts +24 -0
- package/dist/storage/domains/comments/routes.d.ts.map +1 -0
- package/dist/storage/domains/comments/routes.js +302 -0
- package/dist/storage/domains/comments/routes.js.map +1 -0
- package/dist/storage/domains/comments/schema.d.ts +5 -0
- package/dist/storage/domains/comments/schema.d.ts.map +1 -0
- package/dist/storage/domains/comments/schema.js +179 -0
- package/dist/storage/domains/comments/schema.js.map +1 -0
- package/dist/storage/domains/comments/wire.d.ts +40 -0
- package/dist/storage/domains/comments/wire.d.ts.map +1 -0
- package/dist/storage/domains/comments/wire.js +37 -0
- package/dist/storage/domains/comments/wire.js.map +1 -0
- package/dist/storage/domains/credentials/base.d.ts +136 -0
- package/dist/storage/domains/credentials/base.d.ts.map +1 -0
- package/dist/storage/domains/credentials/base.js +294 -0
- package/dist/storage/domains/credentials/base.js.map +1 -0
- package/dist/storage/domains/custom-providers/base.d.ts +59 -0
- package/dist/storage/domains/custom-providers/base.d.ts.map +1 -0
- package/dist/storage/domains/custom-providers/base.js +176 -0
- package/dist/storage/domains/custom-providers/base.js.map +1 -0
- package/dist/storage/domains/filesystem/base.d.ts +26 -0
- package/dist/storage/domains/filesystem/base.d.ts.map +1 -0
- package/dist/storage/domains/filesystem/base.js +74 -0
- package/dist/storage/domains/filesystem/base.js.map +1 -0
- package/dist/storage/domains/intake/base.d.ts +150 -0
- package/dist/storage/domains/intake/base.d.ts.map +1 -0
- package/dist/storage/domains/intake/base.js +431 -0
- package/dist/storage/domains/intake/base.js.map +1 -0
- package/dist/storage/domains/integrations/base.d.ts +128 -0
- package/dist/storage/domains/integrations/base.d.ts.map +1 -0
- package/dist/storage/domains/integrations/base.js +333 -0
- package/dist/storage/domains/integrations/base.js.map +1 -0
- package/dist/storage/domains/memory-settings/base.d.ts +58 -0
- package/dist/storage/domains/memory-settings/base.d.ts.map +1 -0
- package/dist/storage/domains/memory-settings/base.js +129 -0
- package/dist/storage/domains/memory-settings/base.js.map +1 -0
- package/dist/storage/domains/model-defaults/base.d.ts +29 -0
- package/dist/storage/domains/model-defaults/base.d.ts.map +1 -0
- package/dist/storage/domains/model-defaults/base.js +79 -0
- package/dist/storage/domains/model-defaults/base.js.map +1 -0
- package/dist/storage/domains/projects/base.d.ts +191 -0
- package/dist/storage/domains/projects/base.d.ts.map +1 -0
- package/dist/storage/domains/projects/base.js +352 -0
- package/dist/storage/domains/projects/base.js.map +1 -0
- package/dist/storage/domains/queue-health/base.d.ts +52 -0
- package/dist/storage/domains/queue-health/base.d.ts.map +1 -0
- package/dist/storage/domains/queue-health/base.js +122 -0
- package/dist/storage/domains/queue-health/base.js.map +1 -0
- package/dist/storage/domains/source-control/base.d.ts +422 -0
- package/dist/storage/domains/source-control/base.d.ts.map +1 -0
- package/dist/storage/domains/source-control/base.js +1114 -0
- package/dist/storage/domains/source-control/base.js.map +1 -0
- package/dist/storage/domains/source-control/inmemory.d.ts +147 -0
- package/dist/storage/domains/source-control/inmemory.d.ts.map +1 -0
- package/dist/storage/domains/source-control/inmemory.js +416 -0
- package/dist/storage/domains/source-control/inmemory.js.map +1 -0
- package/dist/storage/domains/work-items/base.d.ts +794 -0
- package/dist/storage/domains/work-items/base.d.ts.map +1 -0
- package/dist/storage/domains/work-items/base.js +2747 -0
- package/dist/storage/domains/work-items/base.js.map +1 -0
- package/dist/storage/domains/work-items/board-version.d.ts +26 -0
- package/dist/storage/domains/work-items/board-version.d.ts.map +1 -0
- package/dist/storage/domains/work-items/board-version.js +110 -0
- package/dist/storage/domains/work-items/board-version.js.map +1 -0
- package/dist/storage/domains/work-items/metrics.d.ts +97 -0
- package/dist/storage/domains/work-items/metrics.d.ts.map +1 -0
- package/dist/storage/domains/work-items/metrics.js +226 -0
- package/dist/storage/domains/work-items/metrics.js.map +1 -0
- package/dist/supervisor/health-worker.d.ts +19 -0
- package/dist/supervisor/health-worker.d.ts.map +1 -0
- package/dist/supervisor/health-worker.js +74 -0
- package/dist/supervisor/health-worker.js.map +1 -0
- package/dist/supervisor/health.d.ts +79 -0
- package/dist/supervisor/health.d.ts.map +1 -0
- package/dist/supervisor/health.js +228 -0
- package/dist/supervisor/health.js.map +1 -0
- package/dist/supervisor/instructions.d.ts +6 -0
- package/dist/supervisor/instructions.d.ts.map +1 -0
- package/dist/supervisor/instructions.js +66 -0
- package/dist/supervisor/instructions.js.map +1 -0
- package/dist/supervisor/read-tools.d.ts +43 -0
- package/dist/supervisor/read-tools.d.ts.map +1 -0
- package/dist/supervisor/read-tools.js +343 -0
- package/dist/supervisor/read-tools.js.map +1 -0
- package/dist/supervisor/session-messaging.d.ts +26 -0
- package/dist/supervisor/session-messaging.d.ts.map +1 -0
- package/dist/supervisor/session-messaging.js +21 -0
- package/dist/supervisor/session-messaging.js.map +1 -0
- package/dist/supervisor/session.d.ts +38 -0
- package/dist/supervisor/session.d.ts.map +1 -0
- package/dist/supervisor/session.js +79 -0
- package/dist/supervisor/session.js.map +1 -0
- package/dist/supervisor/write-tools.d.ts +30 -0
- package/dist/supervisor/write-tools.d.ts.map +1 -0
- package/dist/supervisor/write-tools.js +231 -0
- package/dist/supervisor/write-tools.js.map +1 -0
- package/dist/telemetry-types.d.ts +7 -0
- package/dist/telemetry-types.d.ts.map +1 -0
- package/dist/telemetry-types.js +24 -0
- package/dist/telemetry-types.js.map +1 -0
- package/dist/telemetry.d.ts +9 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +47 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/timing.d.ts +15 -0
- package/dist/timing.d.ts.map +1 -0
- package/dist/timing.js +34 -0
- package/dist/timing.js.map +1 -0
- package/dist/work-item-branch.d.ts +33 -0
- package/dist/work-item-branch.d.ts.map +1 -0
- package/dist/work-item-branch.js +70 -0
- package/dist/work-item-branch.js.map +1 -0
- package/dist/workspace.d.ts +131 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +995 -0
- package/dist/workspace.js.map +1 -0
- package/factory-skills/configure-factory-rules/SKILL.md +122 -0
- package/factory-skills/factory-complete-issue/SKILL.md +24 -0
- package/factory-skills/factory-gitlab-rereview/SKILL.md +22 -0
- package/factory-skills/factory-gitlab-review/SKILL.md +48 -0
- package/factory-skills/factory-plan/SKILL.md +72 -0
- package/factory-skills/factory-rereview/SKILL.md +225 -0
- package/factory-skills/factory-review/SKILL.md +214 -0
- package/factory-skills/factory-review/references/archaeology.md +225 -0
- package/factory-skills/factory-review/references/categories/README.md +34 -0
- package/factory-skills/factory-review/references/categories/behavior-change.md +36 -0
- package/factory-skills/factory-review/references/categories/bug-fix.md +37 -0
- package/factory-skills/factory-review/references/categories/docs.md +32 -0
- package/factory-skills/factory-review/references/categories/experimental-flagged.md +34 -0
- package/factory-skills/factory-review/references/categories/infra-tooling.md +37 -0
- package/factory-skills/factory-review/references/categories/internal-capability.md +35 -0
- package/factory-skills/factory-review/references/categories/large-cross-cutting.md +35 -0
- package/factory-skills/factory-review/references/categories/mechanical.md +36 -0
- package/factory-skills/factory-review/references/categories/performance.md +33 -0
- package/factory-skills/factory-review/references/categories/public-api.md +38 -0
- package/factory-skills/factory-review/references/categories/refactor.md +35 -0
- package/factory-skills/factory-review/references/categories/revert.md +31 -0
- package/factory-skills/factory-review/references/categories/schema-storage.md +39 -0
- package/factory-skills/factory-review/references/categories/security.md +35 -0
- package/factory-skills/factory-review/references/categories/tests-only.md +38 -0
- package/factory-skills/factory-triage/SKILL.md +197 -0
- package/package.json +92 -0
|
@@ -0,0 +1,653 @@
|
|
|
1
|
+
import { actorFromChannelAuthor } from "../../storage/domains/comments/actor.js";
|
|
2
|
+
import { primeTenantCredentialsForRequestContext, primeTenantCredentialsForTenant } from "../../routes/tenant-credentials.js";
|
|
3
|
+
import { readRequestContextOrgId, seedSessionOrg } from "../../session/org-seed.js";
|
|
4
|
+
import { FactorySourceControlConflictError, createSourceControlSessionLookup, hydrateFactorySession, resolveFactorySessionModel, resolveFactorySourceControl, resolvePrimaryEnvironmentRepository } from "../../session/factory-session.js";
|
|
5
|
+
import { prepareSessionRunContext } from "../subscription-session.js";
|
|
6
|
+
import { resolveEmojiShortcodes } from "./emoji.js";
|
|
7
|
+
import { slackCommentSource } from "./feed-publisher.js";
|
|
8
|
+
import { ChannelSessionRejectedError } from "@mastra/core/channels";
|
|
9
|
+
import { migratePersistedModelSelection } from "@mastra/core/agent-controller";
|
|
10
|
+
import { createSlackAdapter } from "@mastra/slack";
|
|
11
|
+
import { Actions, Card, CardText, LinkButton } from "chat";
|
|
12
|
+
//#region src/integrations/slack/slack.ts
|
|
13
|
+
const SLACK_REQUEST_TIMEOUT_MS = 15e3;
|
|
14
|
+
var SlackSessionStartError = class extends Error {};
|
|
15
|
+
function configuredSourceControls(deps) {
|
|
16
|
+
return deps.sourceControls ?? (deps.sourceControl ? [deps.sourceControl] : []);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Read the Slack team id off a raw platform payload (Events API envelope or
|
|
20
|
+
* slash-command body — both carry `team_id`), duck-typed to build the
|
|
21
|
+
* workspace-scoped account-link key.
|
|
22
|
+
*/
|
|
23
|
+
function rawTeamId(rawPayload) {
|
|
24
|
+
if (!rawPayload || typeof rawPayload !== "object") return void 0;
|
|
25
|
+
const raw = rawPayload;
|
|
26
|
+
if (typeof raw.team_id === "string" && raw.team_id) return raw.team_id;
|
|
27
|
+
if (typeof raw.team === "string" && raw.team) return raw.team;
|
|
28
|
+
if (raw.team && typeof raw.team === "object") {
|
|
29
|
+
const id = raw.team.id;
|
|
30
|
+
if (typeof id === "string" && id) return id;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The Slack team id survives onto a normalized chat Message only on
|
|
35
|
+
* `message.raw` (the Slack Events API envelope).
|
|
36
|
+
*/
|
|
37
|
+
function slackTeamId(message) {
|
|
38
|
+
return rawTeamId(message.raw);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the web-UI origin for links humans open in a browser (Connect card,
|
|
42
|
+
* session deep links). Prefers `MASTRACODE_PUBLIC_URL` — the origin auth
|
|
43
|
+
* cookies and OAuth redirect allow-lists are registered against — over the
|
|
44
|
+
* channels tunnel, which only Slack's servers need to reach.
|
|
45
|
+
*/
|
|
46
|
+
function webPublicUrl() {
|
|
47
|
+
return process.env.MASTRACODE_PUBLIC_URL ?? process.env.MASTRACODE_CHANNELS_PUBLIC_URL;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolve the sender's account link, posting an ephemeral "connect your
|
|
51
|
+
* account" card (visible only to the sender) linking into the web UI's
|
|
52
|
+
* Slack-connect flow when they're unlinked.
|
|
53
|
+
*/
|
|
54
|
+
async function resolveLinkedSender({ thread, message, accountLinks }) {
|
|
55
|
+
if (!accountLinks) return { status: "ungated" };
|
|
56
|
+
const platform = thread.adapter.name;
|
|
57
|
+
const externalUserId = message.author.userId;
|
|
58
|
+
const externalTeamId = slackTeamId(message);
|
|
59
|
+
const key = externalTeamId ? {
|
|
60
|
+
platform,
|
|
61
|
+
externalTeamId,
|
|
62
|
+
externalUserId
|
|
63
|
+
} : void 0;
|
|
64
|
+
const link = key ? await accountLinks.getAccountLink(key) : null;
|
|
65
|
+
if (link && key) return {
|
|
66
|
+
status: "linked",
|
|
67
|
+
link,
|
|
68
|
+
key
|
|
69
|
+
};
|
|
70
|
+
const publicUrl = webPublicUrl();
|
|
71
|
+
if (publicUrl) await thread.postEphemeral(message.author, buildConnectCard(publicUrl, thread), { fallbackToDM: true });
|
|
72
|
+
return { status: "blocked" };
|
|
73
|
+
}
|
|
74
|
+
const retryHint = (thread) => thread.isDM ? "message me again" : "mention me again";
|
|
75
|
+
/**
|
|
76
|
+
* The "connect your account" card. The link is deliberately identity-free —
|
|
77
|
+
* `/connect/slack` sends the visitor to Connections, where "Connect Slack"
|
|
78
|
+
* runs the OIDC flow and Slack itself asserts the (team, user) pair.
|
|
79
|
+
*/
|
|
80
|
+
function buildConnectCard(publicUrl, thread) {
|
|
81
|
+
return Card({
|
|
82
|
+
title: "Connect your account",
|
|
83
|
+
children: [CardText(`Connect your account to use this agent, then ${retryHint(thread)}.`), Actions([LinkButton({
|
|
84
|
+
url: `${publicUrl}/connect/slack`,
|
|
85
|
+
label: "Connect account"
|
|
86
|
+
})])]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Decide which Factory project a linked sender's run belongs to:
|
|
91
|
+
*
|
|
92
|
+
* 1. The link's `defaultFactoryProjectId`, when it still exists (a stale id —
|
|
93
|
+
* deleted factory — falls through as if unset).
|
|
94
|
+
* 2. Else, the tenant's only factory, stamped back onto the link so it shows
|
|
95
|
+
* up (and stays editable) in Connected Accounts settings.
|
|
96
|
+
* 3. Else — zero or several factories — a "pick a default factory" card
|
|
97
|
+
* posted publicly in the thread so Slack notifies the sender, and the run is
|
|
98
|
+
* blocked.
|
|
99
|
+
*/
|
|
100
|
+
async function resolveFactoryForLink({ thread, link, key, accountLinks, projects }) {
|
|
101
|
+
if (!projects) return { status: "ungated" };
|
|
102
|
+
const orgId = link.orgId ?? "";
|
|
103
|
+
if (link.defaultFactoryProjectId) {
|
|
104
|
+
const existing = await projects.get({
|
|
105
|
+
orgId,
|
|
106
|
+
id: link.defaultFactoryProjectId
|
|
107
|
+
});
|
|
108
|
+
if (existing) return {
|
|
109
|
+
status: "resolved",
|
|
110
|
+
factoryProjectId: existing.id
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const factories = orgId ? await projects.list({ orgId }) : [];
|
|
114
|
+
if (factories.length === 1) {
|
|
115
|
+
const only = factories[0];
|
|
116
|
+
await accountLinks.setDefaultFactory({
|
|
117
|
+
...key,
|
|
118
|
+
userId: link.userId,
|
|
119
|
+
factoryProjectId: only.id
|
|
120
|
+
});
|
|
121
|
+
return {
|
|
122
|
+
status: "resolved",
|
|
123
|
+
factoryProjectId: only.id
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const publicUrl = webPublicUrl();
|
|
127
|
+
if (publicUrl) await thread.post(Card({
|
|
128
|
+
title: "Pick a default factory",
|
|
129
|
+
children: [CardText(factories.length === 0 ? `Your account has no factory yet. Create one in the web app, then ${retryHint(thread)}.` : `Your account has several factories. Pick which one Slack sessions should go to, then ${retryHint(thread)}.`), Actions([LinkButton({
|
|
130
|
+
url: `${publicUrl}/settings/connections`,
|
|
131
|
+
label: "Open settings"
|
|
132
|
+
})])]
|
|
133
|
+
}));
|
|
134
|
+
return { status: "blocked" };
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Deterministic per-thread branch name: `slack/{threadTs}` with characters
|
|
138
|
+
* outside the sandbox git-ref allow-list (`[A-Za-z0-9_./-]`, and `.` for
|
|
139
|
+
* readability) mapped to `-`. `thread.id` is `{channelId}:{threadTs}`
|
|
140
|
+
* (platform-prefixed on handler threads) — the trailing segment is the ts.
|
|
141
|
+
*
|
|
142
|
+
* Top-level DM and channel conversations use the empty-threadTs thread form,
|
|
143
|
+
* so the trailing segment can be empty; a bare `slack/` is not a valid git
|
|
144
|
+
* ref. Fall back to the last non-empty segment (the channel id): one
|
|
145
|
+
* deterministic branch per top-level conversation.
|
|
146
|
+
*/
|
|
147
|
+
function threadBranch(threadId) {
|
|
148
|
+
return `slack/${(threadId.split(":").findLast((segment) => segment.length > 0) ?? threadId).replace(/[^A-Za-z0-9_/-]/g, "-")}`;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Resolve the resourceId for a NEW Slack channel thread. A linked sender whose
|
|
152
|
+
* factory has a repository gets a Factory user-session id — the controller
|
|
153
|
+
* session then materializes the repo sandbox via the factory's dynamic
|
|
154
|
+
* workspace (clone + PAT), the session shows up in the web Sessions list, and
|
|
155
|
+
* View Session deep-links land on the normal workspace route.
|
|
156
|
+
*
|
|
157
|
+
* A gated deployment refuses a thread it cannot place, rather than falling back
|
|
158
|
+
* to a chat-only session: a repo-backed thread is the whole point of the
|
|
159
|
+
* integration, and answering in a chat-only one would run the sender's request
|
|
160
|
+
* in no project, on the SDK's built-in defaults. A linked sender whose project
|
|
161
|
+
* cannot start a session gets an actionable error in Slack; the dispatch gate
|
|
162
|
+
* handles unlinked or unrouted senders before this hook runs.
|
|
163
|
+
* The hook only runs when a NEW thread is actually created (`getOrCreateThread`
|
|
164
|
+
* resolves the owner lazily), so an established conversation is never touched:
|
|
165
|
+
* it keeps its session, its model, and its history.
|
|
166
|
+
*
|
|
167
|
+
* The chat-only `channel:...` id survives for two cases where refusing would be
|
|
168
|
+
* wrong: a deployment that cannot produce a repo-backed thread at all (no
|
|
169
|
+
* account linking, no projects, or no source-control integration registered),
|
|
170
|
+
* and a message carrying no sender id. In both, a `channel:` thread is the only
|
|
171
|
+
* shape a session can take.
|
|
172
|
+
*
|
|
173
|
+
* Pure lookups only — cards for unlinked/unrouted senders are the dispatch
|
|
174
|
+
* gate's job; this hook must never post.
|
|
175
|
+
*/
|
|
176
|
+
function createChannelResourceIdResolver(deps) {
|
|
177
|
+
const { accountLinks, projects } = deps;
|
|
178
|
+
const sourceControls = configuredSourceControls(deps);
|
|
179
|
+
return async ({ platform, thread, message }) => {
|
|
180
|
+
const chatOnlyResourceId = `channel:${thread.id}`;
|
|
181
|
+
if (!accountLinks || !projects || sourceControls.length === 0) return chatOnlyResourceId;
|
|
182
|
+
if (!message.author.userId) return chatOnlyResourceId;
|
|
183
|
+
const externalTeamId = rawTeamId(message.raw);
|
|
184
|
+
if (!externalTeamId) throw new ChannelSessionRejectedError("No Slack workspace id on the message — the sender cannot be identified");
|
|
185
|
+
try {
|
|
186
|
+
const link = await accountLinks.getAccountLink({
|
|
187
|
+
platform,
|
|
188
|
+
externalTeamId,
|
|
189
|
+
externalUserId: message.author.userId
|
|
190
|
+
});
|
|
191
|
+
if (!link) throw new ChannelSessionRejectedError(`Slack sender ${message.author.userId} is not linked to a Factory account`);
|
|
192
|
+
const orgId = link.orgId ?? "";
|
|
193
|
+
let factoryProjectId;
|
|
194
|
+
if (link.defaultFactoryProjectId && await projects.get({
|
|
195
|
+
orgId,
|
|
196
|
+
id: link.defaultFactoryProjectId
|
|
197
|
+
})) factoryProjectId = link.defaultFactoryProjectId;
|
|
198
|
+
else if (orgId) {
|
|
199
|
+
const factories = await projects.list({ orgId });
|
|
200
|
+
if (factories.length === 1) factoryProjectId = factories[0].id;
|
|
201
|
+
}
|
|
202
|
+
if (!factoryProjectId) throw new ChannelSessionRejectedError(`Linked Slack sender ${message.author.userId} has no Factory project`);
|
|
203
|
+
const sourceControl = await resolveFactorySourceControl({
|
|
204
|
+
sourceControls,
|
|
205
|
+
orgId,
|
|
206
|
+
factoryProjectId
|
|
207
|
+
});
|
|
208
|
+
if (!sourceControl) throw new SlackSessionStartError((await Promise.all(sourceControls.map((sourceControl) => sourceControl.connections.list({
|
|
209
|
+
orgId,
|
|
210
|
+
factoryProjectId
|
|
211
|
+
})))).some((rows) => rows.length > 0) ? "Could not start a session: link a repository to this Factory project." : "Could not start a session: connect source control to this Factory project.");
|
|
212
|
+
const repo = await resolvePrimaryEnvironmentRepository({
|
|
213
|
+
sourceControl,
|
|
214
|
+
orgId,
|
|
215
|
+
factoryProjectId
|
|
216
|
+
});
|
|
217
|
+
if (!repo.found) throw new SlackSessionStartError(repo.reason === "connection" ? "Could not start a session: connect source control to this Factory project." : "Could not start a session: link a repository to this Factory project.");
|
|
218
|
+
const branch = threadBranch(thread.id);
|
|
219
|
+
const existing = await sourceControl.sessions.getForBranch({
|
|
220
|
+
factoryProjectId,
|
|
221
|
+
userId: link.userId,
|
|
222
|
+
branch
|
|
223
|
+
});
|
|
224
|
+
if (existing) return existing.sessionId;
|
|
225
|
+
return (await sourceControl.sessions.create({
|
|
226
|
+
sessionId: globalThis.crypto.randomUUID(),
|
|
227
|
+
projectRepositoryId: repo.projectRepositoryId,
|
|
228
|
+
factoryProjectId,
|
|
229
|
+
orgId,
|
|
230
|
+
userId: link.userId,
|
|
231
|
+
branch,
|
|
232
|
+
baseBranch: repo.baseBranch,
|
|
233
|
+
visibility: thread.isDM ? "private" : "org"
|
|
234
|
+
})).sessionId;
|
|
235
|
+
} catch (error) {
|
|
236
|
+
if (error instanceof ChannelSessionRejectedError || error instanceof SlackSessionStartError) throw error;
|
|
237
|
+
if (error instanceof FactorySourceControlConflictError) throw new SlackSessionStartError("Could not start a session: this Factory project has repositories from more than one source-control provider.", { cause: error });
|
|
238
|
+
console.error("[slack] failed to start repo-backed session for thread", thread.id, error);
|
|
239
|
+
throw new SlackSessionStartError("Could not start a session right now. Please try again later.", { cause: error });
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Thread id for a NEW Slack channel thread. Repo-backed threads take the
|
|
245
|
+
* user-session id AS their thread id, matching the web convention
|
|
246
|
+
* (FactoryStartCoordinator seeds threads with threadId = sessionId) so
|
|
247
|
+
* `/workspaces/{sessionId}/threads/{sessionId}` resolves Slack-created
|
|
248
|
+
* sessions exactly like web-created ones — no `?resourceId=` override needed.
|
|
249
|
+
* Chat-only threads keep the default random id: their `channel:...`
|
|
250
|
+
* resourceId is a memory key, not a unique thread id.
|
|
251
|
+
*/
|
|
252
|
+
const resolveChannelThreadId = ({ resourceId, defaultThreadId }) => resourceId.startsWith("channel:") ? defaultThreadId : resourceId;
|
|
253
|
+
/** Create channel sessions with their Factory ownership present in initial controller state. */
|
|
254
|
+
function createChannelSessionResolver(deps) {
|
|
255
|
+
const sourceControlSessions = createSourceControlSessionLookup(configuredSourceControls(deps));
|
|
256
|
+
return async ({ controller, thread, requestContext }) => {
|
|
257
|
+
const sourceControl = thread.resourceId.startsWith("channel:") ? null : await sourceControlSessions.getSourceControlBySessionId(thread.resourceId);
|
|
258
|
+
const session = sourceControl ? await sourceControl.sessions.getBySessionId(thread.resourceId) : null;
|
|
259
|
+
return controller.createSession({
|
|
260
|
+
id: thread.resourceId,
|
|
261
|
+
ownerId: controller.id,
|
|
262
|
+
resourceId: thread.resourceId,
|
|
263
|
+
threadId: thread.id,
|
|
264
|
+
requestContext,
|
|
265
|
+
...session?.factoryProjectId ? { tags: { factoryProjectId: session.factoryProjectId } } : {}
|
|
266
|
+
});
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Apply the factory's configuration to a Slack-created session the first time
|
|
271
|
+
* its thread reaches the controller.
|
|
272
|
+
*
|
|
273
|
+
* Without this a Slack session runs on the SDK's built-in mode default
|
|
274
|
+
* (`openai/gpt-5.5`), so a factory configured for any other provider fails every
|
|
275
|
+
* message with a missing-credentials error. The web kickoff has always applied
|
|
276
|
+
* the factory default; this brings Slack to the same footing.
|
|
277
|
+
*
|
|
278
|
+
* Only repo-backed threads are configured. Their resourceId IS the Factory
|
|
279
|
+
* session id, which the source-control rows turn back into a project — a
|
|
280
|
+
* chat-only `channel:...` id names no project, so there is nothing to read.
|
|
281
|
+
*
|
|
282
|
+
* The model this session starts on is picked here, once, from the project's
|
|
283
|
+
* effective model scope for a session: the Factory default or the durable session owner's
|
|
284
|
+
* default, else the SDK's built-in model. The choice is persisted on the thread
|
|
285
|
+
* as `currentModelId`, so it outlives the process that made it.
|
|
286
|
+
*
|
|
287
|
+
* The model resolution is skipped on a session that already has a model
|
|
288
|
+
* persisted on the thread. That is the durable record of a deliberate choice —
|
|
289
|
+
* either an earlier start or a user's own switch — and re-applying a preference
|
|
290
|
+
* over it would undo the user's selection every time the process restarts.
|
|
291
|
+
*/
|
|
292
|
+
function createChannelSessionStartHook(deps) {
|
|
293
|
+
const { projects, modelDefaults } = deps;
|
|
294
|
+
const sourceControlSessions = createSourceControlSessionLookup(configuredSourceControls(deps));
|
|
295
|
+
return async ({ session, thread, requestContext }) => {
|
|
296
|
+
await seedSessionOrg(session, readRequestContextOrgId(requestContext));
|
|
297
|
+
if (!projects) return;
|
|
298
|
+
if (thread.resourceId.startsWith("channel:")) return;
|
|
299
|
+
const sourceControl = await sourceControlSessions.getSourceControlBySessionId(thread.resourceId);
|
|
300
|
+
if (!sourceControl) return;
|
|
301
|
+
const sourceSession = await sourceControl.sessions.getBySessionId(thread.resourceId);
|
|
302
|
+
if (!sourceSession?.factoryProjectId) return;
|
|
303
|
+
const threadId = session.thread.getId();
|
|
304
|
+
const binding = threadId && deps.workItems ? await deps.workItems.findRunBindingByThread({
|
|
305
|
+
orgId: sourceSession.orgId,
|
|
306
|
+
resourceId: thread.resourceId,
|
|
307
|
+
sessionId: thread.resourceId,
|
|
308
|
+
threadId,
|
|
309
|
+
rejectAmbiguous: true
|
|
310
|
+
}) : null;
|
|
311
|
+
const owner = {
|
|
312
|
+
factoryProjectId: binding?.factoryProjectId ?? sourceSession.factoryProjectId,
|
|
313
|
+
orgId: sourceSession.orgId,
|
|
314
|
+
userId: sourceSession.userId
|
|
315
|
+
};
|
|
316
|
+
const sessionModel = await resolveFactorySessionModel({
|
|
317
|
+
projects,
|
|
318
|
+
modelDefaults,
|
|
319
|
+
factoryProjectId: owner.factoryProjectId,
|
|
320
|
+
orgId: owner.orgId,
|
|
321
|
+
ownerUserId: owner.userId,
|
|
322
|
+
context: binding ? "run" : "session"
|
|
323
|
+
});
|
|
324
|
+
await session.state.set({
|
|
325
|
+
factoryProjectId: owner.factoryProjectId,
|
|
326
|
+
factoryModelScope: sessionModel.modelScope,
|
|
327
|
+
factoryOwnerUserId: owner.userId
|
|
328
|
+
});
|
|
329
|
+
await seedSessionOrg(session, owner.orgId);
|
|
330
|
+
await primeTenantCredentialsForTenant({
|
|
331
|
+
orgId: owner.orgId,
|
|
332
|
+
userId: owner.userId,
|
|
333
|
+
credentialScope: sessionModel.modelScope
|
|
334
|
+
});
|
|
335
|
+
const modeId = session.mode.get();
|
|
336
|
+
const activeThreadId = session.thread.getId();
|
|
337
|
+
if (await migratePersistedModelSelection({
|
|
338
|
+
getMetadata: async () => activeThreadId ? (await session.thread.getById({ threadId: activeThreadId }))?.metadata ?? {} : {},
|
|
339
|
+
modeId,
|
|
340
|
+
set: (key, value) => activeThreadId ? session.thread.setSettingOn({
|
|
341
|
+
threadId: activeThreadId,
|
|
342
|
+
key,
|
|
343
|
+
value
|
|
344
|
+
}) : Promise.resolve(),
|
|
345
|
+
threadId: activeThreadId ?? void 0
|
|
346
|
+
})) for (const agentType of SUBAGENT_TYPES) {
|
|
347
|
+
const modelId = await session.thread.getSetting({ key: pinnedSubagentModelKey(agentType) });
|
|
348
|
+
if (typeof modelId === "string") await applySubagentModel(session, agentType, modelId);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
await hydrateFactorySession(session, {
|
|
352
|
+
orgId: owner.orgId,
|
|
353
|
+
modelScope: sessionModel.modelScope,
|
|
354
|
+
ownerUserId: owner.userId,
|
|
355
|
+
defaultModelId: sessionModel.modelId
|
|
356
|
+
});
|
|
357
|
+
const selectedModelId = sessionModel.modelId ?? session.mode.resolve().defaultModelId ?? session.model.get();
|
|
358
|
+
for (const agentType of SUBAGENT_TYPES) {
|
|
359
|
+
if (!selectedModelId) continue;
|
|
360
|
+
if (await applySubagentModel(session, agentType, selectedModelId)) await session.thread.setSetting({
|
|
361
|
+
key: pinnedSubagentModelKey(agentType),
|
|
362
|
+
value: selectedModelId
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
const SUBAGENT_TYPES = [
|
|
369
|
+
"explore",
|
|
370
|
+
"plan",
|
|
371
|
+
"execute"
|
|
372
|
+
];
|
|
373
|
+
const pinnedSubagentModelKey = (agentType) => `slackSubagentModelId_${agentType}`;
|
|
374
|
+
/** Best-effort: a subagent model that can't be applied must not fail the message. */
|
|
375
|
+
async function applySubagentModel(session, agentType, modelId) {
|
|
376
|
+
try {
|
|
377
|
+
await session.subagents.model.set({
|
|
378
|
+
modelId,
|
|
379
|
+
agentType
|
|
380
|
+
});
|
|
381
|
+
return true;
|
|
382
|
+
} catch (error) {
|
|
383
|
+
console.warn("[slack] Failed to apply the subagent model", {
|
|
384
|
+
agentType,
|
|
385
|
+
modelId,
|
|
386
|
+
error: error instanceof Error ? error.message : String(error)
|
|
387
|
+
});
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* The internal Mastra thread the framework created for a channel conversation.
|
|
393
|
+
* The handler's `thread.id` is the platform thread id (e.g. `slack:C123:ts`),
|
|
394
|
+
* NOT the internal UUID — the mapping lives in the stored thread's channel
|
|
395
|
+
* metadata.
|
|
396
|
+
*/
|
|
397
|
+
async function findInternalThread(mastra, thread) {
|
|
398
|
+
const { threads } = await (await mastra?.getStorage()?.getStore("memory"))?.listThreads({
|
|
399
|
+
filter: { metadata: {
|
|
400
|
+
channel_platform: thread.adapter.name,
|
|
401
|
+
channel_externalThreadId: thread.id,
|
|
402
|
+
channel_externalChannelId: thread.channelId
|
|
403
|
+
} },
|
|
404
|
+
perPage: 1
|
|
405
|
+
}) ?? { threads: [] };
|
|
406
|
+
return threads[0];
|
|
407
|
+
}
|
|
408
|
+
async function prepareExistingSessionOwnerContext(thread, deps, ctx, options) {
|
|
409
|
+
const sourceControls = configuredSourceControls(deps);
|
|
410
|
+
if (sourceControls.length === 0 && !options.requireInternalThread) return "ready";
|
|
411
|
+
const internalThread = await findInternalThread(ctx.mastra, thread);
|
|
412
|
+
if (!internalThread) {
|
|
413
|
+
if (options.requireInternalThread) throw new Error(`Could not resolve the internal Slack thread for ${thread.id}.`);
|
|
414
|
+
return "ready";
|
|
415
|
+
}
|
|
416
|
+
if (sourceControls.length === 0 || internalThread.resourceId.startsWith("channel:")) return "ready";
|
|
417
|
+
if (!options.expectedOrgId) throw new Error(`Could not authorize the owner of Slack Factory session ${internalThread.resourceId}.`);
|
|
418
|
+
const preparation = await prepareSessionRunContext(ctx.requestContext, internalThread.resourceId, { sessions: createSourceControlSessionLookup(sourceControls) }, { expectedOrgId: options.expectedOrgId });
|
|
419
|
+
if (preparation === "organization-mismatch") return preparation;
|
|
420
|
+
if (preparation === "unavailable") throw new Error(`Could not authorize the owner of Slack Factory session ${internalThread.resourceId}.`);
|
|
421
|
+
return "ready";
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Build the "new session" handler for mention / direct-message events. A mention or
|
|
425
|
+
* DM on a not-yet-subscribed thread starts a NEW session; once subscribed, later
|
|
426
|
+
* events are follow-ups and don't re-announce.
|
|
427
|
+
*/
|
|
428
|
+
/**
|
|
429
|
+
* Run the account-link + factory-routing gates for one inbound message.
|
|
430
|
+
* Returns `null` when the run must not dispatch (a prompt card was posted
|
|
431
|
+
* where possible); otherwise the dispatch context — with `routed` present
|
|
432
|
+
* only when a linked sender resolved to a factory.
|
|
433
|
+
*/
|
|
434
|
+
async function gateDispatch(thread, message, deps, ctx, options = { requireInternalThread: false }) {
|
|
435
|
+
const { accountLinks, projects } = deps;
|
|
436
|
+
const sender = await resolveLinkedSender({
|
|
437
|
+
thread,
|
|
438
|
+
message,
|
|
439
|
+
accountLinks
|
|
440
|
+
});
|
|
441
|
+
if (sender.status === "blocked") return null;
|
|
442
|
+
if (sender.status === "linked" && accountLinks) {
|
|
443
|
+
ctx.requestContext.set("user", {
|
|
444
|
+
id: sender.link.userId,
|
|
445
|
+
organizationId: sender.link.orgId
|
|
446
|
+
});
|
|
447
|
+
if (await prepareExistingSessionOwnerContext(thread, deps, ctx, {
|
|
448
|
+
expectedOrgId: sender.link.orgId,
|
|
449
|
+
requireInternalThread: options.requireInternalThread
|
|
450
|
+
}) === "organization-mismatch") {
|
|
451
|
+
await thread.post("This thread belongs to a Factory session in another organization.");
|
|
452
|
+
return null;
|
|
453
|
+
}
|
|
454
|
+
await primeTenantCredentialsForRequestContext(ctx.requestContext);
|
|
455
|
+
const route = await resolveFactoryForLink({
|
|
456
|
+
thread,
|
|
457
|
+
...sender,
|
|
458
|
+
accountLinks,
|
|
459
|
+
projects
|
|
460
|
+
});
|
|
461
|
+
if (route.status === "blocked") return null;
|
|
462
|
+
if (route.status === "resolved") return { routed: {
|
|
463
|
+
link: sender.link,
|
|
464
|
+
factoryProjectId: route.factoryProjectId
|
|
465
|
+
} };
|
|
466
|
+
}
|
|
467
|
+
return {};
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* A channel id and a `ts` name a thread only inside the workspace that issued
|
|
471
|
+
* them, so the team scopes the card's key — without it two workspaces could
|
|
472
|
+
* hold one key and an aside would land on another tenant's card.
|
|
473
|
+
*/
|
|
474
|
+
function slackThreadSource(thread, teamId) {
|
|
475
|
+
return {
|
|
476
|
+
integrationId: thread.adapter.name,
|
|
477
|
+
type: "slack-thread",
|
|
478
|
+
...teamId ? { workspaceId: teamId } : {},
|
|
479
|
+
externalId: thread.id
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
/** Cards written before the key carried a team are still keyed bare. */
|
|
483
|
+
async function findThreadWorkItem(workItems, thread, teamId) {
|
|
484
|
+
const scoped = await workItems.getBySource(slackThreadSource(thread, teamId));
|
|
485
|
+
if (scoped || !teamId) return scoped;
|
|
486
|
+
return workItems.getBySource(slackThreadSource(thread));
|
|
487
|
+
}
|
|
488
|
+
function preDispatchErrorDetails(error) {
|
|
489
|
+
const readMessage = (value) => {
|
|
490
|
+
const message = typeof value === "string" ? value : value && typeof value === "object" && "message" in value ? value.message : void 0;
|
|
491
|
+
return typeof message === "string" && message.length > 0 ? message : void 0;
|
|
492
|
+
};
|
|
493
|
+
try {
|
|
494
|
+
const message = readMessage(error) ?? "Unknown error";
|
|
495
|
+
const cause = error && typeof error === "object" && "cause" in error ? readMessage(error.cause) : void 0;
|
|
496
|
+
return {
|
|
497
|
+
message,
|
|
498
|
+
...cause ? { cause: { message: cause } } : {}
|
|
499
|
+
};
|
|
500
|
+
} catch {
|
|
501
|
+
return { message: "Error details unavailable" };
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
async function reportPreDispatchError(thread, message, ctx, error) {
|
|
505
|
+
try {
|
|
506
|
+
if (error instanceof ChannelSessionRejectedError) return;
|
|
507
|
+
} catch {}
|
|
508
|
+
const correlation = {
|
|
509
|
+
platform: thread.adapter.name,
|
|
510
|
+
threadId: thread.id,
|
|
511
|
+
messageId: message.id,
|
|
512
|
+
authorId: message.author.userId
|
|
513
|
+
};
|
|
514
|
+
const logger = typeof ctx.mastra?.getLogger === "function" ? ctx.mastra.getLogger() : void 0;
|
|
515
|
+
const logError = (line) => logger ? logger.error(line) : console.error(line);
|
|
516
|
+
logError(`[slack] Pre-dispatch failure ${JSON.stringify({
|
|
517
|
+
...correlation,
|
|
518
|
+
error: preDispatchErrorDetails(error)
|
|
519
|
+
})}`);
|
|
520
|
+
try {
|
|
521
|
+
await thread.post(`Couldn’t start processing your message. Please try again.\n\`messageId: ${message.id}\``);
|
|
522
|
+
} catch (deliveryError) {
|
|
523
|
+
logError(`[slack] Failed to deliver pre-dispatch error reply ${JSON.stringify({
|
|
524
|
+
...correlation,
|
|
525
|
+
error: preDispatchErrorDetails(deliveryError)
|
|
526
|
+
})}`);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
function createNewSessionChatHandler(deps) {
|
|
530
|
+
return async (thread, message, defaultHandler, ctx) => {
|
|
531
|
+
let gate;
|
|
532
|
+
let isNewSession;
|
|
533
|
+
try {
|
|
534
|
+
gate = await gateDispatch(thread, message, deps, ctx);
|
|
535
|
+
if (!gate) return;
|
|
536
|
+
isNewSession = !await thread.isSubscribed();
|
|
537
|
+
} catch (error) {
|
|
538
|
+
await reportPreDispatchError(thread, message, ctx, error);
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
await defaultHandler(thread, message);
|
|
542
|
+
if (!isNewSession) return;
|
|
543
|
+
const internalThread = await findInternalThread(ctx.mastra, thread);
|
|
544
|
+
if (!internalThread) {
|
|
545
|
+
console.warn("[onMention] no internal thread found for", thread.id);
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
const isChatOnly = internalThread.resourceId.startsWith("channel:");
|
|
549
|
+
const workspaceSegment = isChatOnly ? "channel" : encodeURIComponent(internalThread.resourceId);
|
|
550
|
+
const threadPath = gate.routed ? `/factories/${encodeURIComponent(gate.routed.factoryProjectId)}/workspaces/${workspaceSegment}/threads/${encodeURIComponent(internalThread.id)}` : `/threads/${internalThread.id}`;
|
|
551
|
+
const needsResourceParam = isChatOnly || !gate.routed;
|
|
552
|
+
const deepLink = process.env.MASTRACODE_PUBLIC_URL ? needsResourceParam ? `${process.env.MASTRACODE_PUBLIC_URL}${threadPath}?resourceId=${encodeURIComponent(internalThread.resourceId)}` : `${process.env.MASTRACODE_PUBLIC_URL}${threadPath}` : void 0;
|
|
553
|
+
if (!deepLink) return;
|
|
554
|
+
await thread.post(Card({
|
|
555
|
+
title: "New session started",
|
|
556
|
+
children: [Actions([LinkButton({
|
|
557
|
+
url: deepLink,
|
|
558
|
+
label: "View session"
|
|
559
|
+
})])]
|
|
560
|
+
}));
|
|
561
|
+
};
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* An `aside` never reaches the agent, but it is still part of the conversation:
|
|
565
|
+
* record it on the card the thread already has. The link is resolved here rather
|
|
566
|
+
* than through `gateDispatch`, which posts a Connect card an aside must not
|
|
567
|
+
* trigger. Best-effort — nothing here may surface in the Slack thread.
|
|
568
|
+
*/
|
|
569
|
+
async function ingestAside(thread, message, { feed, workItems, accountLinks }) {
|
|
570
|
+
if (!feed || !workItems) return;
|
|
571
|
+
const body = resolveEmojiShortcodes(message.text.replace(/^aside\b[,:]?\s*/i, "").trim());
|
|
572
|
+
if (!body) return;
|
|
573
|
+
try {
|
|
574
|
+
const teamId = slackTeamId(message);
|
|
575
|
+
const workItem = await findThreadWorkItem(workItems, thread, teamId);
|
|
576
|
+
if (!workItem) return;
|
|
577
|
+
const external = {
|
|
578
|
+
platform: thread.adapter.name,
|
|
579
|
+
...teamId ? { teamId } : {},
|
|
580
|
+
messageId: message.id,
|
|
581
|
+
userId: message.author.userId,
|
|
582
|
+
userName: message.author.userName,
|
|
583
|
+
fullName: message.author.fullName,
|
|
584
|
+
isBot: message.author.isBot
|
|
585
|
+
};
|
|
586
|
+
const link = accountLinks && teamId ? await accountLinks.getAccountLink({
|
|
587
|
+
platform: external.platform,
|
|
588
|
+
externalTeamId: teamId,
|
|
589
|
+
externalUserId: external.userId
|
|
590
|
+
}) : null;
|
|
591
|
+
const result = await feed.createComment({
|
|
592
|
+
orgId: workItem.orgId,
|
|
593
|
+
workItemId: workItem.id,
|
|
594
|
+
author: actorFromChannelAuthor(external, link),
|
|
595
|
+
body,
|
|
596
|
+
occurredAt: message.metadata.dateSent,
|
|
597
|
+
externalSource: slackCommentSource(thread.id, message.id, teamId)
|
|
598
|
+
});
|
|
599
|
+
if (result.status !== "created") console.warn("[slack] aside not ingested", {
|
|
600
|
+
thread: thread.id,
|
|
601
|
+
messageTs: message.id,
|
|
602
|
+
status: result.status
|
|
603
|
+
});
|
|
604
|
+
} catch (error) {
|
|
605
|
+
console.warn("[slack] aside ingest failed", {
|
|
606
|
+
thread: thread.id,
|
|
607
|
+
messageTs: message.id,
|
|
608
|
+
error
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
const createHandlers = (deps) => {
|
|
613
|
+
const newSessionChatHandler = createNewSessionChatHandler(deps);
|
|
614
|
+
return {
|
|
615
|
+
onSubscribedMessage: async (thread, message, defaultHandler, ctx) => {
|
|
616
|
+
if (/^aside\b/i.test(message.text)) return ingestAside(thread, message, deps);
|
|
617
|
+
try {
|
|
618
|
+
if (!await gateDispatch(thread, message, deps, ctx, { requireInternalThread: true })) return;
|
|
619
|
+
} catch (error) {
|
|
620
|
+
await reportPreDispatchError(thread, message, ctx, error);
|
|
621
|
+
return;
|
|
622
|
+
}
|
|
623
|
+
await defaultHandler(thread, message);
|
|
624
|
+
},
|
|
625
|
+
onMention: newSessionChatHandler,
|
|
626
|
+
onDirectMessage: newSessionChatHandler
|
|
627
|
+
};
|
|
628
|
+
};
|
|
629
|
+
function createSlackChannelsConfig(deps) {
|
|
630
|
+
const adapter = createSlackAdapter({
|
|
631
|
+
...deps.slack,
|
|
632
|
+
webClientOptions: { timeout: SLACK_REQUEST_TIMEOUT_MS }
|
|
633
|
+
});
|
|
634
|
+
return {
|
|
635
|
+
adapters: { slack: deps.adapterOptions?.streaming === false ? {
|
|
636
|
+
adapter,
|
|
637
|
+
...deps.adapterOptions
|
|
638
|
+
} : {
|
|
639
|
+
adapter,
|
|
640
|
+
...deps.adapterOptions,
|
|
641
|
+
streaming: deps.adapterOptions?.streaming ?? true
|
|
642
|
+
} },
|
|
643
|
+
handlers: createHandlers(deps),
|
|
644
|
+
resolveResourceId: createChannelResourceIdResolver(deps),
|
|
645
|
+
resolveThreadId: resolveChannelThreadId,
|
|
646
|
+
resolveSession: createChannelSessionResolver(deps),
|
|
647
|
+
onSessionStart: createChannelSessionStartHook(deps)
|
|
648
|
+
};
|
|
649
|
+
}
|
|
650
|
+
//#endregion
|
|
651
|
+
export { createChannelResourceIdResolver, createChannelSessionResolver, createChannelSessionStartHook, createHandlers, createSlackChannelsConfig, resolveChannelThreadId, resolveFactoryForLink, resolveLinkedSender, slackThreadSource };
|
|
652
|
+
|
|
653
|
+
//# sourceMappingURL=slack.js.map
|