@mastra/factory 0.24.0-alpha.1 → 0.24.0-alpha.11
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/README.md +106 -4
- package/dist/auth.d.ts +14 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +45 -9
- package/dist/auth.js.map +1 -1
- package/dist/boards/review.d.ts.map +1 -1
- package/dist/boards/review.js +21 -1
- package/dist/boards/review.js.map +1 -1
- package/dist/boards/work-transition-policy.d.ts.map +1 -1
- package/dist/boards/work-transition-policy.js +12 -1
- package/dist/boards/work-transition-policy.js.map +1 -1
- package/dist/boards/work.d.ts +14 -0
- package/dist/boards/work.d.ts.map +1 -1
- package/dist/boards/work.js +70 -7
- package/dist/boards/work.js.map +1 -1
- package/dist/capabilities/version-control.d.ts +26 -0
- package/dist/capabilities/version-control.d.ts.map +1 -1
- package/dist/factory.d.ts +8 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +355 -27
- package/dist/factory.js.map +1 -1
- package/dist/integrations/base.d.ts +1 -1
- package/dist/integrations/base.d.ts.map +1 -1
- package/dist/integrations/github/default-rules.d.ts.map +1 -1
- package/dist/integrations/github/default-rules.js +1 -16
- package/dist/integrations/github/default-rules.js.map +1 -1
- package/dist/integrations/github/integration.d.ts.map +1 -1
- package/dist/integrations/github/integration.js +37 -1
- package/dist/integrations/github/integration.js.map +1 -1
- package/dist/integrations/github/routes.d.ts +1 -1
- package/dist/integrations/github/routes.d.ts.map +1 -1
- package/dist/integrations/github/routes.js +19 -11
- package/dist/integrations/github/routes.js.map +1 -1
- package/dist/integrations/github/rules.d.ts.map +1 -1
- package/dist/integrations/github/rules.js +76 -29
- package/dist/integrations/github/rules.js.map +1 -1
- package/dist/integrations/github/sandbox-release.d.ts +15 -3
- package/dist/integrations/github/sandbox-release.d.ts.map +1 -1
- package/dist/integrations/github/sandbox-release.js +20 -3
- package/dist/integrations/github/sandbox-release.js.map +1 -1
- package/dist/integrations/github/sandbox.d.ts +2 -3
- package/dist/integrations/github/sandbox.d.ts.map +1 -1
- package/dist/integrations/github/sandbox.js +78 -7
- package/dist/integrations/github/sandbox.js.map +1 -1
- package/dist/integrations/github/session-subscriptions.d.ts.map +1 -1
- package/dist/integrations/github/session-subscriptions.js +1 -2
- package/dist/integrations/github/session-subscriptions.js.map +1 -1
- package/dist/integrations/github/subscriptions.d.ts +7 -4
- package/dist/integrations/github/subscriptions.d.ts.map +1 -1
- package/dist/integrations/github/subscriptions.js +5 -5
- package/dist/integrations/github/subscriptions.js.map +1 -1
- package/dist/integrations/github/webhook.d.ts +4 -2
- package/dist/integrations/github/webhook.d.ts.map +1 -1
- package/dist/integrations/github/webhook.js +59 -36
- package/dist/integrations/github/webhook.js.map +1 -1
- package/dist/integrations/gitlab/api.d.ts +16 -1
- package/dist/integrations/gitlab/api.d.ts.map +1 -1
- package/dist/integrations/gitlab/api.js +9 -0
- package/dist/integrations/gitlab/api.js.map +1 -1
- package/dist/integrations/gitlab/routes.d.ts.map +1 -1
- package/dist/integrations/gitlab/routes.js +10 -6
- package/dist/integrations/gitlab/routes.js.map +1 -1
- package/dist/integrations/gitlab/rules.d.ts.map +1 -1
- package/dist/integrations/gitlab/rules.js +28 -21
- package/dist/integrations/gitlab/rules.js.map +1 -1
- package/dist/integrations/gitlab/session-subscriptions.d.ts.map +1 -1
- package/dist/integrations/gitlab/session-subscriptions.js +1 -2
- package/dist/integrations/gitlab/session-subscriptions.js.map +1 -1
- package/dist/integrations/gitlab/subscriptions.d.ts +7 -4
- package/dist/integrations/gitlab/subscriptions.d.ts.map +1 -1
- package/dist/integrations/gitlab/subscriptions.js +5 -5
- package/dist/integrations/gitlab/subscriptions.js.map +1 -1
- package/dist/integrations/gitlab/version-control.d.ts.map +1 -1
- package/dist/integrations/gitlab/version-control.js +37 -3
- package/dist/integrations/gitlab/version-control.js.map +1 -1
- package/dist/integrations/incidentio/intake.d.ts +1 -1
- package/dist/integrations/incidentio/intake.d.ts.map +1 -1
- package/dist/integrations/incidentio/intake.js.map +1 -1
- package/dist/integrations/linear/agent-tools.d.ts.map +1 -1
- package/dist/integrations/linear/agent-tools.js.map +1 -1
- package/dist/integrations/platform/connect/routes.d.ts +1 -1
- package/dist/integrations/platform/connect/routes.d.ts.map +1 -1
- package/dist/integrations/platform/connect/routes.js.map +1 -1
- package/dist/integrations/platform/github/integration.d.ts.map +1 -1
- package/dist/integrations/platform/github/integration.js +27 -1
- package/dist/integrations/platform/github/integration.js.map +1 -1
- package/dist/integrations/platform/incidentio/integration.d.ts +1 -1
- package/dist/integrations/platform/incidentio/integration.d.ts.map +1 -1
- package/dist/integrations/platform/incidentio/integration.js.map +1 -1
- package/dist/integrations/platform/jira/integration.d.ts +1 -1
- package/dist/integrations/platform/jira/integration.d.ts.map +1 -1
- package/dist/integrations/platform/jira/integration.js.map +1 -1
- package/dist/integrations/platform/linear/event-worker.d.ts +1 -1
- package/dist/integrations/platform/linear/event-worker.d.ts.map +1 -1
- package/dist/integrations/platform/linear/event-worker.js.map +1 -1
- package/dist/integrations/slack/integration.d.ts.map +1 -1
- package/dist/integrations/slack/integration.js +33 -6
- package/dist/integrations/slack/integration.js.map +1 -1
- package/dist/integrations/slack/slack.d.ts +16 -5
- package/dist/integrations/slack/slack.d.ts.map +1 -1
- package/dist/integrations/slack/slack.js +137 -64
- package/dist/integrations/slack/slack.js.map +1 -1
- package/dist/integrations/subscription-session.d.ts +14 -0
- package/dist/integrations/subscription-session.d.ts.map +1 -1
- package/dist/integrations/subscription-session.js +30 -16
- package/dist/integrations/subscription-session.js.map +1 -1
- package/dist/mcp/disconnect.d.ts +10 -0
- package/dist/mcp/disconnect.d.ts.map +1 -0
- package/dist/mcp/disconnect.js +44 -0
- package/dist/mcp/disconnect.js.map +1 -0
- package/dist/mcp/routes.d.ts +46 -0
- package/dist/mcp/routes.d.ts.map +1 -0
- package/dist/mcp/routes.js +243 -0
- package/dist/mcp/routes.js.map +1 -0
- package/dist/provider-display-name.d.ts +2 -0
- package/dist/provider-display-name.d.ts.map +1 -0
- package/dist/provider-display-name.js +16 -0
- package/dist/provider-display-name.js.map +1 -0
- package/dist/review-verdict.d.ts +11 -0
- package/dist/review-verdict.d.ts.map +1 -1
- package/dist/review-verdict.js +16 -1
- package/dist/review-verdict.js.map +1 -1
- package/dist/routes/attention-activity.d.ts.map +1 -1
- package/dist/routes/attention-activity.js +5 -2
- package/dist/routes/attention-activity.js.map +1 -1
- package/dist/routes/attention-providers.d.ts +0 -1
- package/dist/routes/attention-providers.d.ts.map +1 -1
- package/dist/routes/attention-providers.js +5 -6
- package/dist/routes/attention-providers.js.map +1 -1
- package/dist/routes/config.d.ts +44 -5
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +181 -58
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/contracts.d.ts +4 -0
- package/dist/routes/contracts.d.ts.map +1 -1
- package/dist/routes/contracts.js +3 -1
- package/dist/routes/contracts.js.map +1 -1
- package/dist/routes/custom-provider-source.d.ts +8 -0
- package/dist/routes/custom-provider-source.d.ts.map +1 -1
- package/dist/routes/custom-provider-source.js +22 -1
- package/dist/routes/custom-provider-source.js.map +1 -1
- package/dist/routes/oauth.js +1 -1
- package/dist/routes/oauth.js.map +1 -1
- package/dist/routes/projects.d.ts +1 -1
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +1 -1
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/provider-credentials.d.ts +7 -2
- package/dist/routes/provider-credentials.d.ts.map +1 -1
- package/dist/routes/provider-credentials.js +30 -8
- package/dist/routes/provider-credentials.js.map +1 -1
- package/dist/routes/skills.d.ts +2 -4
- package/dist/routes/skills.d.ts.map +1 -1
- package/dist/routes/skills.js +19 -65
- package/dist/routes/skills.js.map +1 -1
- package/dist/routes/source-control-sessions.d.ts +9 -1
- package/dist/routes/source-control-sessions.d.ts.map +1 -1
- package/dist/routes/source-control-sessions.js +131 -7
- package/dist/routes/source-control-sessions.js.map +1 -1
- package/dist/routes/surface.d.ts +3 -2
- package/dist/routes/surface.d.ts.map +1 -1
- package/dist/routes/surface.js +7 -3
- package/dist/routes/surface.js.map +1 -1
- package/dist/routes/work-items.d.ts.map +1 -1
- package/dist/routes/work-items.js +60 -120
- package/dist/routes/work-items.js.map +1 -1
- package/dist/rules/binding-context.js +7 -7
- package/dist/rules/binding-context.js.map +1 -1
- package/dist/rules/dispatch-errors.d.ts.map +1 -1
- package/dist/rules/dispatch-errors.js +12 -0
- package/dist/rules/dispatch-errors.js.map +1 -1
- package/dist/rules/dispatcher.d.ts +8 -1
- package/dist/rules/dispatcher.d.ts.map +1 -1
- package/dist/rules/dispatcher.js +117 -12
- package/dist/rules/dispatcher.js.map +1 -1
- package/dist/rules/processor.d.ts.map +1 -1
- package/dist/rules/processor.js +2 -1
- package/dist/rules/processor.js.map +1 -1
- package/dist/rules/start-coordinator.d.ts +4 -0
- package/dist/rules/start-coordinator.d.ts.map +1 -1
- package/dist/rules/start-coordinator.js +36 -4
- package/dist/rules/start-coordinator.js.map +1 -1
- package/dist/rules/tools.d.ts.map +1 -1
- package/dist/rules/tools.js +82 -3
- package/dist/rules/tools.js.map +1 -1
- package/dist/rules/transition-service.d.ts +17 -0
- package/dist/rules/transition-service.d.ts.map +1 -1
- package/dist/rules/transition-service.js +25 -0
- package/dist/rules/transition-service.js.map +1 -1
- package/dist/rules/types.d.ts +2 -4
- package/dist/rules/types.d.ts.map +1 -1
- package/dist/rules/types.js +1 -4
- package/dist/rules/types.js.map +1 -1
- package/dist/sandbox/local-factory-sandbox.d.ts.map +1 -1
- package/dist/sandbox/local-factory-sandbox.js +1 -0
- package/dist/sandbox/local-factory-sandbox.js.map +1 -1
- package/dist/sandbox/session-retirement.d.ts +27 -3
- package/dist/sandbox/session-retirement.d.ts.map +1 -1
- package/dist/sandbox/session-retirement.js +158 -20
- package/dist/sandbox/session-retirement.js.map +1 -1
- package/dist/secret-encryption.d.ts.map +1 -1
- package/dist/secret-encryption.js +65 -25
- package/dist/secret-encryption.js.map +1 -1
- package/dist/session/channel-reply-processor.d.ts +36 -0
- package/dist/session/channel-reply-processor.d.ts.map +1 -0
- package/dist/session/channel-reply-processor.js +46 -0
- package/dist/session/channel-reply-processor.js.map +1 -0
- package/dist/session/channel-session-link-processor.d.ts +39 -0
- package/dist/session/channel-session-link-processor.d.ts.map +1 -0
- package/dist/session/channel-session-link-processor.js +100 -0
- package/dist/session/channel-session-link-processor.js.map +1 -0
- package/dist/session/credential-policy.d.ts +1 -1
- package/dist/session/credential-policy.d.ts.map +1 -1
- package/dist/session/credential-policy.js +7 -6
- package/dist/session/credential-policy.js.map +1 -1
- package/dist/session/default-model-hydration.d.ts +1 -0
- package/dist/session/default-model-hydration.d.ts.map +1 -1
- package/dist/session/default-model-hydration.js +3 -2
- package/dist/session/default-model-hydration.js.map +1 -1
- package/dist/session/environment-state-processor.js +1 -1
- package/dist/session/environment-state-processor.js.map +1 -1
- package/dist/session/factory-session.d.ts +19 -1
- package/dist/session/factory-session.d.ts.map +1 -1
- package/dist/session/factory-session.js +5 -2
- package/dist/session/factory-session.js.map +1 -1
- package/dist/session/filesystem-capture.d.ts +3 -3
- package/dist/session/filesystem-capture.d.ts.map +1 -1
- package/dist/session/filesystem-capture.js +16 -17
- package/dist/session/filesystem-capture.js.map +1 -1
- package/dist/session/first-exec-capture.d.ts +1 -1
- package/dist/session/first-exec-capture.d.ts.map +1 -1
- package/dist/session/first-exec-capture.js +1 -1
- package/dist/session/first-exec-capture.js.map +1 -1
- package/dist/session/first-message-capture.d.ts +1 -1
- package/dist/session/first-message-capture.d.ts.map +1 -1
- package/dist/session/first-message-capture.js +1 -1
- package/dist/session/first-message-capture.js.map +1 -1
- package/dist/session/live-sessions.d.ts +1 -1
- package/dist/session/live-sessions.js +1 -1
- package/dist/session/live-sessions.js.map +1 -1
- package/dist/session/memory-settings-hydration.d.ts +1 -1
- package/dist/session/memory-settings-hydration.d.ts.map +1 -1
- package/dist/session/memory-settings-hydration.js +1 -1
- package/dist/session/memory-settings-hydration.js.map +1 -1
- package/dist/session/reply-credential-processor.d.ts +15 -0
- package/dist/session/reply-credential-processor.d.ts.map +1 -0
- package/dist/session/reply-credential-processor.js +38 -0
- package/dist/session/reply-credential-processor.js.map +1 -0
- package/dist/session/resource-migration.d.ts +87 -0
- package/dist/session/resource-migration.d.ts.map +1 -0
- package/dist/session/resource-migration.js +163 -0
- package/dist/session/resource-migration.js.map +1 -0
- package/dist/session/run-audit.d.ts +24 -0
- package/dist/session/run-audit.d.ts.map +1 -1
- package/dist/session/run-audit.js +93 -7
- package/dist/session/run-audit.js.map +1 -1
- package/dist/session/session-threads.d.ts +49 -0
- package/dist/session/session-threads.d.ts.map +1 -0
- package/dist/session/session-threads.js +70 -0
- package/dist/session/session-threads.js.map +1 -0
- package/dist/session/source-control-tools.d.ts +19 -1
- package/dist/session/source-control-tools.d.ts.map +1 -1
- package/dist/session/source-control-tools.js +78 -11
- package/dist/session/source-control-tools.js.map +1 -1
- package/dist/session/thinking-default.d.ts.map +1 -1
- package/dist/session/thinking-default.js +3 -4
- package/dist/session/thinking-default.js.map +1 -1
- package/dist/session/thread-session-stamp.d.ts +21 -0
- package/dist/session/thread-session-stamp.d.ts.map +1 -0
- package/dist/session/thread-session-stamp.js +20 -0
- package/dist/session/thread-session-stamp.js.map +1 -0
- package/dist/session/thread-title-mirror.d.ts +1 -1
- package/dist/session/thread-title-mirror.d.ts.map +1 -1
- package/dist/session/thread-title-mirror.js +1 -1
- package/dist/session/thread-title-mirror.js.map +1 -1
- package/dist/session/work-item-repository.d.ts +1 -1
- package/dist/session/work-item-repository.d.ts.map +1 -1
- package/dist/session/work-item-repository.js.map +1 -1
- package/dist/skills/service.d.ts +6 -8
- package/dist/skills/service.d.ts.map +1 -1
- package/dist/skills/service.js +3 -3
- package/dist/skills/service.js.map +1 -1
- package/dist/storage/domains/audit/agent-audit.d.ts.map +1 -1
- package/dist/storage/domains/audit/agent-audit.js +2 -2
- package/dist/storage/domains/audit/agent-audit.js.map +1 -1
- package/dist/storage/domains/audit/domain.js +1 -1
- package/dist/storage/domains/filesystem/base.d.ts +4 -0
- package/dist/storage/domains/filesystem/base.d.ts.map +1 -1
- package/dist/storage/domains/filesystem/base.js +5 -0
- package/dist/storage/domains/filesystem/base.js.map +1 -1
- package/dist/storage/domains/integrations/base.d.ts +8 -0
- package/dist/storage/domains/integrations/base.d.ts.map +1 -1
- package/dist/storage/domains/integrations/base.js +7 -0
- package/dist/storage/domains/integrations/base.js.map +1 -1
- package/dist/storage/domains/projects/base.d.ts +6 -0
- package/dist/storage/domains/projects/base.d.ts.map +1 -1
- package/dist/storage/domains/projects/base.js +12 -0
- package/dist/storage/domains/projects/base.js.map +1 -1
- package/dist/storage/domains/source-control/base.d.ts +28 -0
- package/dist/storage/domains/source-control/base.d.ts.map +1 -1
- package/dist/storage/domains/source-control/base.js +48 -0
- package/dist/storage/domains/source-control/base.js.map +1 -1
- package/dist/storage/domains/source-control/inmemory.d.ts +8 -0
- package/dist/storage/domains/source-control/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/source-control/inmemory.js +13 -1
- package/dist/storage/domains/source-control/inmemory.js.map +1 -1
- package/dist/storage/domains/work-items/base.d.ts +79 -7
- package/dist/storage/domains/work-items/base.d.ts.map +1 -1
- package/dist/storage/domains/work-items/base.js +172 -30
- package/dist/storage/domains/work-items/base.js.map +1 -1
- package/dist/timing.d.ts +23 -0
- package/dist/timing.d.ts.map +1 -1
- package/dist/timing.js +85 -6
- package/dist/timing.js.map +1 -1
- package/dist/tools/annotations.d.ts +7 -0
- package/dist/tools/annotations.d.ts.map +1 -0
- package/dist/tools/annotations.js +102 -0
- package/dist/tools/annotations.js.map +1 -0
- package/dist/tools/approval-tools.d.ts +15 -0
- package/dist/tools/approval-tools.d.ts.map +1 -0
- package/dist/tools/approval-tools.js +79 -0
- package/dist/tools/approval-tools.js.map +1 -0
- package/dist/tools/deliver.d.ts +71 -0
- package/dist/tools/deliver.d.ts.map +1 -0
- package/dist/tools/deliver.js +129 -0
- package/dist/tools/deliver.js.map +1 -0
- package/dist/tools/index.d.ts +30 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +36 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/messaging-tools.d.ts +28 -0
- package/dist/tools/messaging-tools.d.ts.map +1 -0
- package/dist/tools/messaging-tools.js +396 -0
- package/dist/tools/messaging-tools.js.map +1 -0
- package/dist/tools/permissions.d.ts +31 -0
- package/dist/tools/permissions.d.ts.map +1 -0
- package/dist/tools/permissions.js +48 -0
- package/dist/tools/permissions.js.map +1 -0
- package/dist/tools/read-tools.d.ts +30 -0
- package/dist/tools/read-tools.d.ts.map +1 -0
- package/dist/tools/read-tools.js +293 -0
- package/dist/tools/read-tools.js.map +1 -0
- package/dist/tools/reports.d.ts +174 -0
- package/dist/tools/reports.d.ts.map +1 -0
- package/dist/tools/reports.js +380 -0
- package/dist/tools/reports.js.map +1 -0
- package/dist/tools/run-watch.d.ts +46 -0
- package/dist/tools/run-watch.d.ts.map +1 -0
- package/dist/tools/run-watch.js +102 -0
- package/dist/tools/run-watch.js.map +1 -0
- package/dist/tools/scope.d.ts +54 -0
- package/dist/tools/scope.d.ts.map +1 -0
- package/dist/tools/scope.js +87 -0
- package/dist/tools/scope.js.map +1 -0
- package/dist/tools/session-tools.d.ts +43 -0
- package/dist/tools/session-tools.d.ts.map +1 -0
- package/dist/tools/session-tools.js +410 -0
- package/dist/tools/session-tools.js.map +1 -0
- package/dist/tools/sessions-state-processor.d.ts +41 -0
- package/dist/tools/sessions-state-processor.d.ts.map +1 -0
- package/dist/tools/sessions-state-processor.js +190 -0
- package/dist/tools/sessions-state-processor.js.map +1 -0
- package/dist/tools/side-sessions.d.ts +53 -0
- package/dist/tools/side-sessions.d.ts.map +1 -0
- package/dist/tools/side-sessions.js +83 -0
- package/dist/tools/side-sessions.js.map +1 -0
- package/dist/tools/work-item-tools.d.ts +28 -0
- package/dist/tools/work-item-tools.d.ts.map +1 -0
- package/dist/tools/work-item-tools.js +342 -0
- package/dist/tools/work-item-tools.js.map +1 -0
- package/dist/work-items/create-work-item.d.ts +55 -0
- package/dist/work-items/create-work-item.d.ts.map +1 -0
- package/dist/work-items/create-work-item.js +101 -0
- package/dist/work-items/create-work-item.js.map +1 -0
- package/dist/work-items/decision-actions.d.ts +42 -0
- package/dist/work-items/decision-actions.d.ts.map +1 -0
- package/dist/work-items/decision-actions.js +70 -0
- package/dist/work-items/decision-actions.js.map +1 -0
- package/dist/workspace.d.ts +1 -1
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +15 -7
- package/dist/workspace.js.map +1 -1
- package/factory-skills/factory-gitlab-rereview/SKILL.md +1 -1
- package/factory-skills/factory-gitlab-review/SKILL.md +1 -1
- package/factory-skills/factory-plan/SKILL.md +4 -4
- package/factory-skills/factory-rereview/SKILL.md +3 -1
- package/factory-skills/factory-review/SKILL.md +3 -1
- package/factory-skills/factory-self-review/SKILL.md +46 -0
- package/package.json +14 -14
|
@@ -61,6 +61,9 @@ const FACTORY_DISPATCH_FAILURE_CODES = [
|
|
|
61
61
|
"repository_cli_missing",
|
|
62
62
|
"repository_pr_failed",
|
|
63
63
|
"run_configuration_invalid",
|
|
64
|
+
"run_credentials_unavailable",
|
|
65
|
+
"run_user_unauthenticated",
|
|
66
|
+
"run_failed",
|
|
64
67
|
"unknown"
|
|
65
68
|
];
|
|
66
69
|
/** Written until a pause stopped counting as a failure; stored rows still read through them. */
|
|
@@ -224,6 +227,47 @@ const WORK_ITEMS_SCHEMA = {
|
|
|
224
227
|
}
|
|
225
228
|
]
|
|
226
229
|
};
|
|
230
|
+
const FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA = {
|
|
231
|
+
name: "factory_work_item_subscriptions",
|
|
232
|
+
columns: {
|
|
233
|
+
id: { type: "uuid-pk" },
|
|
234
|
+
org_id: { type: "text" },
|
|
235
|
+
factory_project_id: { type: "text" },
|
|
236
|
+
work_item_id: { type: "text" },
|
|
237
|
+
session_id: { type: "text" },
|
|
238
|
+
thread_id: { type: "text" },
|
|
239
|
+
resource_id: { type: "text" },
|
|
240
|
+
user_id: { type: "text" },
|
|
241
|
+
reason: { type: "text" },
|
|
242
|
+
created_at: { type: "timestamp" }
|
|
243
|
+
},
|
|
244
|
+
uniqueIndexes: [{
|
|
245
|
+
name: "factory_work_item_subscriptions_item_session_unique",
|
|
246
|
+
columns: ["work_item_id", "session_id"]
|
|
247
|
+
}],
|
|
248
|
+
indexes: [{
|
|
249
|
+
name: "factory_work_item_subscriptions_session_idx",
|
|
250
|
+
columns: [
|
|
251
|
+
"org_id",
|
|
252
|
+
"factory_project_id",
|
|
253
|
+
"session_id"
|
|
254
|
+
]
|
|
255
|
+
}]
|
|
256
|
+
};
|
|
257
|
+
function toWorkItemSubscription(row) {
|
|
258
|
+
return {
|
|
259
|
+
id: row.id,
|
|
260
|
+
orgId: row.org_id,
|
|
261
|
+
factoryProjectId: String(row.factory_project_id),
|
|
262
|
+
workItemId: row.work_item_id,
|
|
263
|
+
sessionId: row.session_id,
|
|
264
|
+
threadId: row.thread_id,
|
|
265
|
+
resourceId: row.resource_id,
|
|
266
|
+
userId: row.user_id,
|
|
267
|
+
reason: row.reason,
|
|
268
|
+
createdAt: row.created_at
|
|
269
|
+
};
|
|
270
|
+
}
|
|
227
271
|
/**
|
|
228
272
|
* The one shape a platform id takes in a lookup key, for cards and for the
|
|
229
273
|
* comments mirrored off them alike: whoever writes a second builder reopens the
|
|
@@ -890,12 +934,14 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
890
934
|
...FACTORY_GOVERNANCE_SCHEMAS,
|
|
891
935
|
WORK_ITEM_COMMENTS_SCHEMA,
|
|
892
936
|
WORK_ITEM_COMMENT_MENTIONS_SCHEMA,
|
|
893
|
-
WORK_ITEM_ACTIVITY_SCHEMA
|
|
937
|
+
WORK_ITEM_ACTIVITY_SCHEMA,
|
|
938
|
+
FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA
|
|
894
939
|
]);
|
|
895
940
|
await this.repairLegacyAttentionState();
|
|
896
941
|
}
|
|
897
942
|
async dangerouslyClearAll() {
|
|
898
943
|
await this.ops.deleteMany("work_items", {});
|
|
944
|
+
await super.ops.deleteMany(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, {});
|
|
899
945
|
await super.ops.deleteMany(FACTORY_BOARD_VERSIONS_SCHEMA.name, {});
|
|
900
946
|
this.#listCache.clear();
|
|
901
947
|
}
|
|
@@ -962,6 +1008,8 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
962
1008
|
attempts: Number(current.attempts) + 1,
|
|
963
1009
|
lease_owner: input.ownerId,
|
|
964
1010
|
lease_expires_at: input.leaseExpiresAt,
|
|
1011
|
+
last_error: null,
|
|
1012
|
+
failure_code: null,
|
|
965
1013
|
updated_at: input.now
|
|
966
1014
|
};
|
|
967
1015
|
});
|
|
@@ -1420,29 +1468,34 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
1420
1468
|
causal_chain: input.causalChain,
|
|
1421
1469
|
created_at: input.now
|
|
1422
1470
|
});
|
|
1423
|
-
for (const [effectOrdinal, decision] of decisions.entries())
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1471
|
+
for (const [effectOrdinal, decision] of decisions.entries()) {
|
|
1472
|
+
const approvedBy = decision.type === "invokeSkill" ? input.consentedBy ?? null : null;
|
|
1473
|
+
await ops.insertOne("factory_deferred_decisions", {
|
|
1474
|
+
org_id: input.orgId,
|
|
1475
|
+
factory_project_id: input.factoryProjectId,
|
|
1476
|
+
evaluation_id: evaluation.id,
|
|
1477
|
+
work_item_id: item?.id ?? null,
|
|
1478
|
+
source_key: decisionSourceKey(decision),
|
|
1479
|
+
idempotency_key: String(decision.idempotencyKey),
|
|
1480
|
+
effect_ordinal: effectOrdinal,
|
|
1481
|
+
effect_hash: factoryDecisionHash(decision),
|
|
1482
|
+
causal_chain: input.causalChain,
|
|
1483
|
+
actor: input.actor,
|
|
1484
|
+
decision,
|
|
1485
|
+
status: "pending",
|
|
1486
|
+
attempts: 0,
|
|
1487
|
+
delivery_generation: 0,
|
|
1488
|
+
available_at: input.now,
|
|
1489
|
+
lease_owner: null,
|
|
1490
|
+
lease_expires_at: null,
|
|
1491
|
+
last_error: null,
|
|
1492
|
+
completed_at: null,
|
|
1493
|
+
approved_at: approvedBy ? input.now : null,
|
|
1494
|
+
approved_by: approvedBy,
|
|
1495
|
+
created_at: new Date(input.now.getTime() + effectOrdinal),
|
|
1496
|
+
updated_at: input.now
|
|
1497
|
+
});
|
|
1498
|
+
}
|
|
1446
1499
|
return {
|
|
1447
1500
|
status: "committed",
|
|
1448
1501
|
result
|
|
@@ -2032,6 +2085,14 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
2032
2085
|
if (rows.length !== 1) return null;
|
|
2033
2086
|
return toBinding(rows[0]);
|
|
2034
2087
|
}
|
|
2088
|
+
/** Whether this session was ever bound to a run, on any thread and whether or not the binding was revoked. */
|
|
2089
|
+
async hasRunBindingForSession(input) {
|
|
2090
|
+
return await this.#db.findOne("factory_run_bindings", {
|
|
2091
|
+
org_id: input.orgId,
|
|
2092
|
+
factory_project_id: input.factoryProjectId,
|
|
2093
|
+
session_id: input.sessionId
|
|
2094
|
+
}) !== null;
|
|
2095
|
+
}
|
|
2035
2096
|
/** Resolve exact bound-session state for processor awareness; ambiguous cross-tenant matches return null. */
|
|
2036
2097
|
async findRunBindingBySession(address) {
|
|
2037
2098
|
const rows = await this.#db.findMany("factory_run_bindings", {
|
|
@@ -2082,17 +2143,17 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
2082
2143
|
});
|
|
2083
2144
|
}
|
|
2084
2145
|
/**
|
|
2085
|
-
* Revoke leaked/legacy active bindings: older than `olderThan
|
|
2086
|
-
* work item is gone, malformed, or
|
|
2087
|
-
* handles bindings go-forward; this
|
|
2088
|
-
* it. Returns the number of bindings revoked.
|
|
2146
|
+
* Revoke leaked/legacy active bindings: older than `olderThan` (unless
|
|
2147
|
+
* `keep` vouches for them), or whose work item is gone, malformed, or
|
|
2148
|
+
* already terminal. Terminal-stage cleanup handles bindings go-forward; this
|
|
2149
|
+
* sweep drains anything that slipped past it. Returns the number of bindings revoked.
|
|
2089
2150
|
*/
|
|
2090
2151
|
async revokeStaleRunBindings(input) {
|
|
2091
2152
|
const bindings = await this.listActiveRunBindings();
|
|
2092
2153
|
const itemCache = /* @__PURE__ */ new Map();
|
|
2093
2154
|
let revoked = 0;
|
|
2094
2155
|
for (const binding of bindings) {
|
|
2095
|
-
let stale = binding.createdAt.getTime() < input.olderThan.getTime();
|
|
2156
|
+
let stale = binding.createdAt.getTime() < input.olderThan.getTime() && !await input.keep?.(binding);
|
|
2096
2157
|
if (!stale) {
|
|
2097
2158
|
const key = `${binding.orgId}:${binding.workItemId}`;
|
|
2098
2159
|
let item = itemCache.get(key);
|
|
@@ -2119,6 +2180,29 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
2119
2180
|
async listActiveRunBindings() {
|
|
2120
2181
|
return (await this.#db.findMany("factory_run_bindings", { status: "active" })).map(toBinding);
|
|
2121
2182
|
}
|
|
2183
|
+
/**
|
|
2184
|
+
* The work items a session was ever bound to run, revoked bindings included.
|
|
2185
|
+
* `null` stands for a bound item that no longer loads. Empty when the session
|
|
2186
|
+
* never ran a work item.
|
|
2187
|
+
*/
|
|
2188
|
+
async listRunBoundItems(sessionId) {
|
|
2189
|
+
const rows = await this.#db.findMany("factory_run_bindings", { session_id: sessionId });
|
|
2190
|
+
const keys = new Map(rows.map((row) => [`${row.org_id}:${row.work_item_id}`, row]));
|
|
2191
|
+
return Promise.all([...keys.values()].map((row) => this.get({
|
|
2192
|
+
orgId: String(row.org_id),
|
|
2193
|
+
id: String(row.work_item_id)
|
|
2194
|
+
})));
|
|
2195
|
+
}
|
|
2196
|
+
/**
|
|
2197
|
+
* Move a session's bindings from the legacy `resourceId = sessionId` onto
|
|
2198
|
+
* `resourceId`. Only rows still on the session id change, so a rerun is a no-op.
|
|
2199
|
+
*/
|
|
2200
|
+
async moveRunBindingsToResource(input) {
|
|
2201
|
+
return this.#db.updateMany("factory_run_bindings", {
|
|
2202
|
+
session_id: input.sessionId,
|
|
2203
|
+
resource_id: input.sessionId
|
|
2204
|
+
}, { resource_id: input.resourceId });
|
|
2205
|
+
}
|
|
2122
2206
|
/** List binding history, optionally narrowed to one work item. */
|
|
2123
2207
|
async listRunBindings(orgId, factoryProjectId, workItemId) {
|
|
2124
2208
|
return (await this.#db.findMany("factory_run_bindings", {
|
|
@@ -2560,6 +2644,60 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
2560
2644
|
});
|
|
2561
2645
|
await ops.deleteMany("work_item_activity", where);
|
|
2562
2646
|
}
|
|
2647
|
+
/**
|
|
2648
|
+
* Make a session follow a work item. Idempotent: following again keeps the
|
|
2649
|
+
* first subscription, including its reason (filing beats a later subscribe).
|
|
2650
|
+
*/
|
|
2651
|
+
async subscribeToWorkItem(input) {
|
|
2652
|
+
const ops = super.ops;
|
|
2653
|
+
const where = {
|
|
2654
|
+
work_item_id: input.workItemId,
|
|
2655
|
+
session_id: input.sessionId
|
|
2656
|
+
};
|
|
2657
|
+
const existing = await ops.findOne(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, where);
|
|
2658
|
+
if (existing) return toWorkItemSubscription(existing);
|
|
2659
|
+
try {
|
|
2660
|
+
return toWorkItemSubscription(await ops.insertOne(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, {
|
|
2661
|
+
org_id: input.orgId,
|
|
2662
|
+
factory_project_id: input.factoryProjectId,
|
|
2663
|
+
work_item_id: input.workItemId,
|
|
2664
|
+
session_id: input.sessionId,
|
|
2665
|
+
thread_id: input.threadId,
|
|
2666
|
+
resource_id: input.resourceId,
|
|
2667
|
+
user_id: input.userId,
|
|
2668
|
+
reason: input.reason,
|
|
2669
|
+
created_at: /* @__PURE__ */ new Date()
|
|
2670
|
+
}));
|
|
2671
|
+
} catch (error) {
|
|
2672
|
+
if (!(error instanceof UniqueViolationError)) throw error;
|
|
2673
|
+
const raced = await ops.findOne(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, where);
|
|
2674
|
+
if (!raced) throw error;
|
|
2675
|
+
return toWorkItemSubscription(raced);
|
|
2676
|
+
}
|
|
2677
|
+
}
|
|
2678
|
+
/** Stop a session following a work item. Returns whether it was following. */
|
|
2679
|
+
async unsubscribeFromWorkItem({ orgId, workItemId, sessionId }) {
|
|
2680
|
+
return await super.ops.deleteMany(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, {
|
|
2681
|
+
org_id: orgId,
|
|
2682
|
+
work_item_id: workItemId,
|
|
2683
|
+
session_id: sessionId
|
|
2684
|
+
}) > 0;
|
|
2685
|
+
}
|
|
2686
|
+
/** The sessions following a work item, earliest first. */
|
|
2687
|
+
async listWorkItemSubscribers({ orgId, workItemId }) {
|
|
2688
|
+
return (await super.ops.findMany(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, {
|
|
2689
|
+
org_id: orgId,
|
|
2690
|
+
work_item_id: workItemId
|
|
2691
|
+
}, { orderBy: [["created_at", "asc"], ["id", "asc"]] })).map(toWorkItemSubscription);
|
|
2692
|
+
}
|
|
2693
|
+
/** The work items one session follows in a Factory, earliest first. */
|
|
2694
|
+
async listSessionSubscriptions({ orgId, factoryProjectId, sessionId }) {
|
|
2695
|
+
return (await super.ops.findMany(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, {
|
|
2696
|
+
org_id: orgId,
|
|
2697
|
+
factory_project_id: factoryProjectId,
|
|
2698
|
+
session_id: sessionId
|
|
2699
|
+
}, { orderBy: [["created_at", "asc"], ["id", "asc"]] })).map(toWorkItemSubscription);
|
|
2700
|
+
}
|
|
2563
2701
|
async delete({ orgId, id, purgeRuleState = true }) {
|
|
2564
2702
|
const candidate = await this.#db.findOne("work_items", {
|
|
2565
2703
|
org_id: orgId,
|
|
@@ -2581,6 +2719,10 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
2581
2719
|
factoryProjectId: existing.factory_project_id,
|
|
2582
2720
|
workItemId: id
|
|
2583
2721
|
});
|
|
2722
|
+
await ops.deleteMany(FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA.name, {
|
|
2723
|
+
org_id: orgId,
|
|
2724
|
+
work_item_id: id
|
|
2725
|
+
});
|
|
2584
2726
|
if (purgeRuleState && existing.external_source?.externalId) await this.#purgeRuleState(ops, {
|
|
2585
2727
|
orgId,
|
|
2586
2728
|
factoryProjectId: existing.factory_project_id,
|
|
@@ -2600,6 +2742,6 @@ var WorkItemsStorage = class extends FactoryStorageDomain {
|
|
|
2600
2742
|
}
|
|
2601
2743
|
};
|
|
2602
2744
|
//#endregion
|
|
2603
|
-
export { ACTIVE_RUN_BINDING_STAGES, FACTORY_PULL_REQUEST_RECONCILIATION_KEY, FACTORY_RULE_MATERIALIZATION_KEY, WORK_ITEMS_SCHEMA, WorkItemClaimConflictError, WorkItemRelationError, WorkItemUpdateConflictError, WorkItemsStorage, applyStageTransition, externalSourceKey, factoryActivityAttentionIdentity, factoryAgentWaitingAttentionIdentity, factoryAttentionKey, factoryDecisionAttentionIdentity, factoryDecisionHash, factoryMentionAttentionIdentity, factoryProposalAttentionIdentity, isAgentActor, stampSessions, validateParentRelation };
|
|
2745
|
+
export { ACTIVE_RUN_BINDING_STAGES, FACTORY_PULL_REQUEST_RECONCILIATION_KEY, FACTORY_RULE_MATERIALIZATION_KEY, FACTORY_WORK_ITEM_SUBSCRIPTIONS_SCHEMA, WORK_ITEMS_SCHEMA, WorkItemClaimConflictError, WorkItemRelationError, WorkItemUpdateConflictError, WorkItemsStorage, applyStageTransition, externalSourceKey, factoryActivityAttentionIdentity, factoryAgentWaitingAttentionIdentity, factoryAttentionKey, factoryDecisionAttentionIdentity, factoryDecisionHash, factoryMentionAttentionIdentity, factoryProposalAttentionIdentity, isAgentActor, stampSessions, validateParentRelation };
|
|
2604
2746
|
|
|
2605
2747
|
//# sourceMappingURL=base.js.map
|