@slaw-ai/server 2026.611.0
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 +26 -0
- package/dist/adapters/builtin-adapter-types.d.ts +5 -0
- package/dist/adapters/builtin-adapter-types.d.ts.map +1 -0
- package/dist/adapters/builtin-adapter-types.js +18 -0
- package/dist/adapters/builtin-adapter-types.js.map +1 -0
- package/dist/adapters/codex-models.d.ts +5 -0
- package/dist/adapters/codex-models.d.ts.map +1 -0
- package/dist/adapters/codex-models.js +105 -0
- package/dist/adapters/codex-models.js.map +1 -0
- package/dist/adapters/cursor-models.d.ts +13 -0
- package/dist/adapters/cursor-models.d.ts.map +1 -0
- package/dist/adapters/cursor-models.js +148 -0
- package/dist/adapters/cursor-models.js.map +1 -0
- package/dist/adapters/http/execute.d.ts +3 -0
- package/dist/adapters/http/execute.d.ts.map +1 -0
- package/dist/adapters/http/execute.js +51 -0
- package/dist/adapters/http/execute.js.map +1 -0
- package/dist/adapters/http/execute.test.d.ts +2 -0
- package/dist/adapters/http/execute.test.d.ts.map +1 -0
- package/dist/adapters/http/execute.test.js +40 -0
- package/dist/adapters/http/execute.test.js.map +1 -0
- package/dist/adapters/http/index.d.ts +3 -0
- package/dist/adapters/http/index.d.ts.map +1 -0
- package/dist/adapters/http/index.js +20 -0
- package/dist/adapters/http/index.js.map +1 -0
- package/dist/adapters/http/test.d.ts +3 -0
- package/dist/adapters/http/test.d.ts.map +1 -0
- package/dist/adapters/http/test.js +106 -0
- package/dist/adapters/http/test.js.map +1 -0
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +3 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/plugin-loader.d.ts +28 -0
- package/dist/adapters/plugin-loader.d.ts.map +1 -0
- package/dist/adapters/plugin-loader.js +196 -0
- package/dist/adapters/plugin-loader.js.map +1 -0
- package/dist/adapters/process/execute.d.ts +3 -0
- package/dist/adapters/process/execute.d.ts.map +1 -0
- package/dist/adapters/process/execute.js +70 -0
- package/dist/adapters/process/execute.js.map +1 -0
- package/dist/adapters/process/index.d.ts +3 -0
- package/dist/adapters/process/index.d.ts.map +1 -0
- package/dist/adapters/process/index.js +23 -0
- package/dist/adapters/process/index.js.map +1 -0
- package/dist/adapters/process/test.d.ts +3 -0
- package/dist/adapters/process/test.d.ts.map +1 -0
- package/dist/adapters/process/test.js +77 -0
- package/dist/adapters/process/test.js.map +1 -0
- package/dist/adapters/registry.d.ts +69 -0
- package/dist/adapters/registry.d.ts.map +1 -0
- package/dist/adapters/registry.js +598 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/adapters/types.d.ts +2 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/utils.d.ts +43 -0
- package/dist/adapters/utils.d.ts.map +1 -0
- package/dist/adapters/utils.js +52 -0
- package/dist/adapters/utils.js.map +1 -0
- package/dist/agent-auth-jwt.d.ts +14 -0
- package/dist/agent-auth-jwt.d.ts.map +1 -0
- package/dist/agent-auth-jwt.js +117 -0
- package/dist/agent-auth-jwt.js.map +1 -0
- package/dist/app.d.ts +39 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +386 -0
- package/dist/app.js.map +1 -0
- package/dist/attachment-types.d.ts +23 -0
- package/dist/attachment-types.d.ts.map +1 -0
- package/dist/attachment-types.js +98 -0
- package/dist/attachment-types.js.map +1 -0
- package/dist/auth/better-auth.d.ts +40 -0
- package/dist/auth/better-auth.d.ts.map +1 -0
- package/dist/auth/better-auth.js +148 -0
- package/dist/auth/better-auth.js.map +1 -0
- package/dist/config-file.d.ts +24 -0
- package/dist/config-file.d.ts.map +1 -0
- package/dist/config-file.js +73 -0
- package/dist/config-file.js.map +1 -0
- package/dist/config.d.ts +44 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +247 -0
- package/dist/config.js.map +1 -0
- package/dist/dev-runner-worktree.d.ts +15 -0
- package/dist/dev-runner-worktree.d.ts.map +1 -0
- package/dist/dev-runner-worktree.js +101 -0
- package/dist/dev-runner-worktree.js.map +1 -0
- package/dist/dev-server-status.d.ts +33 -0
- package/dist/dev-server-status.d.ts.map +1 -0
- package/dist/dev-server-status.js +89 -0
- package/dist/dev-server-status.js.map +1 -0
- package/dist/dev-watch-ignore.d.ts +2 -0
- package/dist/dev-watch-ignore.d.ts.map +1 -0
- package/dist/dev-watch-ignore.js +36 -0
- package/dist/dev-watch-ignore.js.map +1 -0
- package/dist/errors.d.ts +12 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +28 -0
- package/dist/errors.js.map +1 -0
- package/dist/first-admin-claim.d.ts +17 -0
- package/dist/first-admin-claim.d.ts.map +1 -0
- package/dist/first-admin-claim.js +30 -0
- package/dist/first-admin-claim.js.map +1 -0
- package/dist/home-paths.d.ts +15 -0
- package/dist/home-paths.d.ts.map +1 -0
- package/dist/home-paths.js +48 -0
- package/dist/home-paths.js.map +1 -0
- package/dist/http/body-limits.d.ts +4 -0
- package/dist/http/body-limits.d.ts.map +1 -0
- package/dist/http/body-limits.js +4 -0
- package/dist/http/body-limits.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +786 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-claim.d.ts +23 -0
- package/dist/instance-claim.d.ts.map +1 -0
- package/dist/instance-claim.js +126 -0
- package/dist/instance-claim.js.map +1 -0
- package/dist/lib/join-request-dedupe.d.ts +11 -0
- package/dist/lib/join-request-dedupe.d.ts.map +1 -0
- package/dist/lib/join-request-dedupe.js +49 -0
- package/dist/lib/join-request-dedupe.js.map +1 -0
- package/dist/log-redaction.d.ts +11 -0
- package/dist/log-redaction.d.ts.map +1 -0
- package/dist/log-redaction.js +122 -0
- package/dist/log-redaction.js.map +1 -0
- package/dist/middleware/auth.d.ts +12 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +302 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +17 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +46 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/http-log-policy.d.ts +2 -0
- package/dist/middleware/http-log-policy.d.ts.map +1 -0
- package/dist/middleware/http-log-policy.js +52 -0
- package/dist/middleware/http-log-policy.js.map +1 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +4 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/logger.d.ts +4 -0
- package/dist/middleware/logger.d.ts.map +1 -0
- package/dist/middleware/logger.js +92 -0
- package/dist/middleware/logger.js.map +1 -0
- package/dist/middleware/operator-mutation-guard.d.ts +3 -0
- package/dist/middleware/operator-mutation-guard.d.ts.map +1 -0
- package/dist/middleware/operator-mutation-guard.js +70 -0
- package/dist/middleware/operator-mutation-guard.js.map +1 -0
- package/dist/middleware/private-hostname-guard.d.ts +11 -0
- package/dist/middleware/private-hostname-guard.d.ts.map +1 -0
- package/dist/middleware/private-hostname-guard.js +78 -0
- package/dist/middleware/private-hostname-guard.js.map +1 -0
- package/dist/middleware/validate.d.ts +4 -0
- package/dist/middleware/validate.d.ts.map +1 -0
- package/dist/middleware/validate.js +7 -0
- package/dist/middleware/validate.js.map +1 -0
- package/dist/onboarding-assets/default/AGENTS.md +18 -0
- package/dist/onboarding-assets/squad_lead/AGENTS.md +61 -0
- package/dist/onboarding-assets/squad_lead/HEARTBEAT.md +85 -0
- package/dist/onboarding-assets/squad_lead/SOUL.md +33 -0
- package/dist/onboarding-assets/squad_lead/TOOLS.md +3 -0
- package/dist/paths.d.ts +3 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +31 -0
- package/dist/paths.js.map +1 -0
- package/dist/realtime/live-events-ws.d.ts +28 -0
- package/dist/realtime/live-events-ws.d.ts.map +1 -0
- package/dist/realtime/live-events-ws.js +187 -0
- package/dist/realtime/live-events-ws.js.map +1 -0
- package/dist/redaction.d.ts +5 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +125 -0
- package/dist/redaction.js.map +1 -0
- package/dist/routes/access.d.ts +75 -0
- package/dist/routes/access.d.ts.map +1 -0
- package/dist/routes/access.js +3070 -0
- package/dist/routes/access.js.map +1 -0
- package/dist/routes/activity.d.ts +3 -0
- package/dist/routes/activity.d.ts.map +1 -0
- package/dist/routes/activity.js +90 -0
- package/dist/routes/activity.js.map +1 -0
- package/dist/routes/adapters.d.ts +16 -0
- package/dist/routes/adapters.d.ts.map +1 -0
- package/dist/routes/adapters.js +539 -0
- package/dist/routes/adapters.js.map +1 -0
- package/dist/routes/agents.d.ts +6 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +2733 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/approvals.d.ts +6 -0
- package/dist/routes/approvals.d.ts.map +1 -0
- package/dist/routes/approvals.js +300 -0
- package/dist/routes/approvals.js.map +1 -0
- package/dist/routes/assets.d.ts +4 -0
- package/dist/routes/assets.d.ts.map +1 -0
- package/dist/routes/assets.js +309 -0
- package/dist/routes/assets.js.map +1 -0
- package/dist/routes/auth.d.ts +3 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +82 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/authz.d.ts +19 -0
- package/dist/routes/authz.d.ts.map +1 -0
- package/dist/routes/authz.js +75 -0
- package/dist/routes/authz.js.map +1 -0
- package/dist/routes/botfather.d.ts +9 -0
- package/dist/routes/botfather.d.ts.map +1 -0
- package/dist/routes/botfather.js +127 -0
- package/dist/routes/botfather.js.map +1 -0
- package/dist/routes/cloud-upstreams.d.ts +5 -0
- package/dist/routes/cloud-upstreams.d.ts.map +1 -0
- package/dist/routes/cloud-upstreams.js +103 -0
- package/dist/routes/cloud-upstreams.js.map +1 -0
- package/dist/routes/costs.d.ts +11 -0
- package/dist/routes/costs.d.ts.map +1 -0
- package/dist/routes/costs.js +285 -0
- package/dist/routes/costs.js.map +1 -0
- package/dist/routes/dashboard.d.ts +3 -0
- package/dist/routes/dashboard.d.ts.map +1 -0
- package/dist/routes/dashboard.js +15 -0
- package/dist/routes/dashboard.js.map +1 -0
- package/dist/routes/environment-selection.d.ts +13 -0
- package/dist/routes/environment-selection.d.ts.map +1 -0
- package/dist/routes/environment-selection.js +30 -0
- package/dist/routes/environment-selection.js.map +1 -0
- package/dist/routes/environments.d.ts +6 -0
- package/dist/routes/environments.d.ts.map +1 -0
- package/dist/routes/environments.js +414 -0
- package/dist/routes/environments.js.map +1 -0
- package/dist/routes/execution-workspaces.d.ts +3 -0
- package/dist/routes/execution-workspaces.d.ts.map +1 -0
- package/dist/routes/execution-workspaces.js +537 -0
- package/dist/routes/execution-workspaces.js.map +1 -0
- package/dist/routes/goals.d.ts +3 -0
- package/dist/routes/goals.d.ts.map +1 -0
- package/dist/routes/goals.js +95 -0
- package/dist/routes/goals.js.map +1 -0
- package/dist/routes/health.d.ts +9 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +143 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/inbox-dismissals.d.ts +3 -0
- package/dist/routes/inbox-dismissals.d.ts.map +1 -0
- package/dist/routes/inbox-dismissals.js +58 -0
- package/dist/routes/inbox-dismissals.js.map +1 -0
- package/dist/routes/index.d.ts +24 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +24 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/instance-database-backups.d.ts +15 -0
- package/dist/routes/instance-database-backups.d.ts.map +1 -0
- package/dist/routes/instance-database-backups.js +12 -0
- package/dist/routes/instance-database-backups.js.map +1 -0
- package/dist/routes/instance-settings.d.ts +3 -0
- package/dist/routes/instance-settings.d.ts.map +1 -0
- package/dist/routes/instance-settings.js +110 -0
- package/dist/routes/instance-settings.js.map +1 -0
- package/dist/routes/issue-tree-control.d.ts +3 -0
- package/dist/routes/issue-tree-control.d.ts.map +1 -0
- package/dist/routes/issue-tree-control.js +373 -0
- package/dist/routes/issue-tree-control.js.map +1 -0
- package/dist/routes/issues-checkout-wakeup.d.ts +9 -0
- package/dist/routes/issues-checkout-wakeup.d.ts.map +1 -0
- package/dist/routes/issues-checkout-wakeup.js +12 -0
- package/dist/routes/issues-checkout-wakeup.js.map +1 -0
- package/dist/routes/issues.d.ts +15 -0
- package/dist/routes/issues.d.ts.map +1 -0
- package/dist/routes/issues.js +5276 -0
- package/dist/routes/issues.js.map +1 -0
- package/dist/routes/llms.d.ts +3 -0
- package/dist/routes/llms.d.ts.map +1 -0
- package/dist/routes/llms.js +80 -0
- package/dist/routes/llms.js.map +1 -0
- package/dist/routes/openapi.d.ts +4 -0
- package/dist/routes/openapi.d.ts.map +1 -0
- package/dist/routes/openapi.js +3284 -0
- package/dist/routes/openapi.js.map +1 -0
- package/dist/routes/org-chart-svg.d.ts +25 -0
- package/dist/routes/org-chart-svg.d.ts.map +1 -0
- package/dist/routes/org-chart-svg.js +656 -0
- package/dist/routes/org-chart-svg.js.map +1 -0
- package/dist/routes/plugin-ui-static.d.ts +69 -0
- package/dist/routes/plugin-ui-static.d.ts.map +1 -0
- package/dist/routes/plugin-ui-static.js +411 -0
- package/dist/routes/plugin-ui-static.js.map +1 -0
- package/dist/routes/plugins.d.ts +121 -0
- package/dist/routes/plugins.d.ts.map +1 -0
- package/dist/routes/plugins.js +2390 -0
- package/dist/routes/plugins.js.map +1 -0
- package/dist/routes/projects.d.ts +3 -0
- package/dist/routes/projects.d.ts.map +1 -0
- package/dist/routes/projects.js +566 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/resource-memberships.d.ts +3 -0
- package/dist/routes/resource-memberships.d.ts.map +1 -0
- package/dist/routes/resource-memberships.js +97 -0
- package/dist/routes/resource-memberships.js.map +1 -0
- package/dist/routes/routines.d.ts +6 -0
- package/dist/routes/routines.d.ts.map +1 -0
- package/dist/routes/routines.js +411 -0
- package/dist/routes/routines.js.map +1 -0
- package/dist/routes/secrets.d.ts +3 -0
- package/dist/routes/secrets.d.ts.map +1 -0
- package/dist/routes/secrets.js +419 -0
- package/dist/routes/secrets.js.map +1 -0
- package/dist/routes/sidebar-badges.d.ts +3 -0
- package/dist/routes/sidebar-badges.d.ts.map +1 -0
- package/dist/routes/sidebar-badges.js +68 -0
- package/dist/routes/sidebar-badges.js.map +1 -0
- package/dist/routes/sidebar-preferences.d.ts +3 -0
- package/dist/routes/sidebar-preferences.d.ts.map +1 -0
- package/dist/routes/sidebar-preferences.js +63 -0
- package/dist/routes/sidebar-preferences.js.map +1 -0
- package/dist/routes/squad-import-paths.d.ts +3 -0
- package/dist/routes/squad-import-paths.d.ts.map +1 -0
- package/dist/routes/squad-import-paths.js +3 -0
- package/dist/routes/squad-import-paths.js.map +1 -0
- package/dist/routes/squad-skills.d.ts +3 -0
- package/dist/routes/squad-skills.d.ts.map +1 -0
- package/dist/routes/squad-skills.js +366 -0
- package/dist/routes/squad-skills.js.map +1 -0
- package/dist/routes/squads.d.ts +4 -0
- package/dist/routes/squads.d.ts.map +1 -0
- package/dist/routes/squads.js +450 -0
- package/dist/routes/squads.js.map +1 -0
- package/dist/routes/user-profiles.d.ts +3 -0
- package/dist/routes/user-profiles.d.ts.map +1 -0
- package/dist/routes/user-profiles.js +337 -0
- package/dist/routes/user-profiles.js.map +1 -0
- package/dist/routes/workspace-command-authz.d.ts +14 -0
- package/dist/routes/workspace-command-authz.d.ts.map +1 -0
- package/dist/routes/workspace-command-authz.js +83 -0
- package/dist/routes/workspace-command-authz.js.map +1 -0
- package/dist/routes/workspace-runtime-service-authz.d.ts +12 -0
- package/dist/routes/workspace-runtime-service-authz.d.ts.map +1 -0
- package/dist/routes/workspace-runtime-service-authz.js +96 -0
- package/dist/routes/workspace-runtime-service-authz.js.map +1 -0
- package/dist/runtime-api.d.ts +19 -0
- package/dist/runtime-api.d.ts.map +1 -0
- package/dist/runtime-api.js +137 -0
- package/dist/runtime-api.js.map +1 -0
- package/dist/secrets/aws-secrets-manager-provider.d.ts +87 -0
- package/dist/secrets/aws-secrets-manager-provider.d.ts.map +1 -0
- package/dist/secrets/aws-secrets-manager-provider.js +964 -0
- package/dist/secrets/aws-secrets-manager-provider.js.map +1 -0
- package/dist/secrets/configured-provider.d.ts +3 -0
- package/dist/secrets/configured-provider.d.ts.map +1 -0
- package/dist/secrets/configured-provider.js +8 -0
- package/dist/secrets/configured-provider.js.map +1 -0
- package/dist/secrets/external-stub-providers.d.ts +5 -0
- package/dist/secrets/external-stub-providers.d.ts.map +1 -0
- package/dist/secrets/external-stub-providers.js +71 -0
- package/dist/secrets/external-stub-providers.js.map +1 -0
- package/dist/secrets/local-encrypted-provider.d.ts +3 -0
- package/dist/secrets/local-encrypted-provider.d.ts.map +1 -0
- package/dist/secrets/local-encrypted-provider.js +244 -0
- package/dist/secrets/local-encrypted-provider.js.map +1 -0
- package/dist/secrets/provider-registry.d.ts +6 -0
- package/dist/secrets/provider-registry.d.ts.map +1 -0
- package/dist/secrets/provider-registry.js +24 -0
- package/dist/secrets/provider-registry.js.map +1 -0
- package/dist/secrets/types.d.ts +138 -0
- package/dist/secrets/types.d.ts.map +1 -0
- package/dist/secrets/types.js +36 -0
- package/dist/secrets/types.js.map +1 -0
- package/dist/services/access.d.ts +184 -0
- package/dist/services/access.d.ts.map +1 -0
- package/dist/services/access.js +542 -0
- package/dist/services/access.js.map +1 -0
- package/dist/services/activity-log.d.ts +19 -0
- package/dist/services/activity-log.d.ts.map +1 -0
- package/dist/services/activity-log.js +99 -0
- package/dist/services/activity-log.js.map +1 -0
- package/dist/services/activity.d.ts +462 -0
- package/dist/services/activity.d.ts.map +1 -0
- package/dist/services/activity.js +443 -0
- package/dist/services/activity.js.map +1 -0
- package/dist/services/adapter-plugin-store.d.ts +36 -0
- package/dist/services/adapter-plugin-store.d.ts.map +1 -0
- package/dist/services/adapter-plugin-store.js +154 -0
- package/dist/services/adapter-plugin-store.js.map +1 -0
- package/dist/services/agent-instructions.d.ts +91 -0
- package/dist/services/agent-instructions.d.ts.map +1 -0
- package/dist/services/agent-instructions.js +580 -0
- package/dist/services/agent-instructions.js.map +1 -0
- package/dist/services/agent-permissions.d.ts +6 -0
- package/dist/services/agent-permissions.d.ts.map +1 -0
- package/dist/services/agent-permissions.js +20 -0
- package/dist/services/agent-permissions.js.map +1 -0
- package/dist/services/agent-start-lock.d.ts +2 -0
- package/dist/services/agent-start-lock.d.ts.map +1 -0
- package/dist/services/agent-start-lock.js +43 -0
- package/dist/services/agent-start-lock.js.map +1 -0
- package/dist/services/agents.d.ts +2253 -0
- package/dist/services/agents.d.ts.map +1 -0
- package/dist/services/agents.js +609 -0
- package/dist/services/agents.js.map +1 -0
- package/dist/services/approvals.d.ts +546 -0
- package/dist/services/approvals.d.ts.map +1 -0
- package/dist/services/approvals.js +212 -0
- package/dist/services/approvals.js.map +1 -0
- package/dist/services/assets.d.ts +33 -0
- package/dist/services/assets.d.ts.map +1 -0
- package/dist/services/assets.js +17 -0
- package/dist/services/assets.js.map +1 -0
- package/dist/services/authorization.d.ts +67 -0
- package/dist/services/authorization.d.ts.map +1 -0
- package/dist/services/authorization.js +608 -0
- package/dist/services/authorization.js.map +1 -0
- package/dist/services/botfather/authoring-lock.d.ts +17 -0
- package/dist/services/botfather/authoring-lock.d.ts.map +1 -0
- package/dist/services/botfather/authoring-lock.js +23 -0
- package/dist/services/botfather/authoring-lock.js.map +1 -0
- package/dist/services/botfather/authoring-lock.test.d.ts +2 -0
- package/dist/services/botfather/authoring-lock.test.d.ts.map +1 -0
- package/dist/services/botfather/authoring-lock.test.js +25 -0
- package/dist/services/botfather/authoring-lock.test.js.map +1 -0
- package/dist/services/botfather/client.d.ts +26 -0
- package/dist/services/botfather/client.d.ts.map +1 -0
- package/dist/services/botfather/client.js +113 -0
- package/dist/services/botfather/client.js.map +1 -0
- package/dist/services/botfather/credentials.d.ts +15 -0
- package/dist/services/botfather/credentials.d.ts.map +1 -0
- package/dist/services/botfather/credentials.js +39 -0
- package/dist/services/botfather/credentials.js.map +1 -0
- package/dist/services/botfather/enrollment.d.ts +49 -0
- package/dist/services/botfather/enrollment.d.ts.map +1 -0
- package/dist/services/botfather/enrollment.js +145 -0
- package/dist/services/botfather/enrollment.js.map +1 -0
- package/dist/services/botfather/instance-limit-enforcement.d.ts +44 -0
- package/dist/services/botfather/instance-limit-enforcement.d.ts.map +1 -0
- package/dist/services/botfather/instance-limit-enforcement.js +83 -0
- package/dist/services/botfather/instance-limit-enforcement.js.map +1 -0
- package/dist/services/botfather/instance-limit-enforcement.test.d.ts +2 -0
- package/dist/services/botfather/instance-limit-enforcement.test.d.ts.map +1 -0
- package/dist/services/botfather/instance-limit-enforcement.test.js +66 -0
- package/dist/services/botfather/instance-limit-enforcement.test.js.map +1 -0
- package/dist/services/botfather/limits-store.d.ts +36 -0
- package/dist/services/botfather/limits-store.d.ts.map +1 -0
- package/dist/services/botfather/limits-store.js +94 -0
- package/dist/services/botfather/limits-store.js.map +1 -0
- package/dist/services/botfather/limits-store.test.d.ts +2 -0
- package/dist/services/botfather/limits-store.test.d.ts.map +1 -0
- package/dist/services/botfather/limits-store.test.js +70 -0
- package/dist/services/botfather/limits-store.test.js.map +1 -0
- package/dist/services/botfather/reporter.d.ts +41 -0
- package/dist/services/botfather/reporter.d.ts.map +1 -0
- package/dist/services/botfather/reporter.js +448 -0
- package/dist/services/botfather/reporter.js.map +1 -0
- package/dist/services/botfather/service.d.ts +84 -0
- package/dist/services/botfather/service.d.ts.map +1 -0
- package/dist/services/botfather/service.js +229 -0
- package/dist/services/botfather/service.js.map +1 -0
- package/dist/services/botfather/service.test.d.ts +2 -0
- package/dist/services/botfather/service.test.d.ts.map +1 -0
- package/dist/services/botfather/service.test.js +120 -0
- package/dist/services/botfather/service.test.js.map +1 -0
- package/dist/services/botfather/skill-catalog.d.ts +28 -0
- package/dist/services/botfather/skill-catalog.d.ts.map +1 -0
- package/dist/services/botfather/skill-catalog.js +101 -0
- package/dist/services/botfather/skill-catalog.js.map +1 -0
- package/dist/services/botfather/skill-catalog.test.d.ts +2 -0
- package/dist/services/botfather/skill-catalog.test.d.ts.map +1 -0
- package/dist/services/botfather/skill-catalog.test.js +151 -0
- package/dist/services/botfather/skill-catalog.test.js.map +1 -0
- package/dist/services/budgets.d.ts +38 -0
- package/dist/services/budgets.d.ts.map +1 -0
- package/dist/services/budgets.js +833 -0
- package/dist/services/budgets.js.map +1 -0
- package/dist/services/catalog-provenance.d.ts +7 -0
- package/dist/services/catalog-provenance.d.ts.map +1 -0
- package/dist/services/catalog-provenance.js +64 -0
- package/dist/services/catalog-provenance.js.map +1 -0
- package/dist/services/cloud-upstreams.d.ts +42 -0
- package/dist/services/cloud-upstreams.d.ts.map +1 -0
- package/dist/services/cloud-upstreams.js +1071 -0
- package/dist/services/cloud-upstreams.js.map +1 -0
- package/dist/services/costs.d.ts +127 -0
- package/dist/services/costs.d.ts.map +1 -0
- package/dist/services/costs.js +409 -0
- package/dist/services/costs.js.map +1 -0
- package/dist/services/cron.d.ts +80 -0
- package/dist/services/cron.d.ts.map +1 -0
- package/dist/services/cron.js +300 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/dashboard.d.ts +34 -0
- package/dist/services/dashboard.d.ts.map +1 -0
- package/dist/services/dashboard.js +142 -0
- package/dist/services/dashboard.js.map +1 -0
- package/dist/services/default-agent-instructions.d.ts +9 -0
- package/dist/services/default-agent-instructions.d.ts.map +1 -0
- package/dist/services/default-agent-instructions.js +20 -0
- package/dist/services/default-agent-instructions.js.map +1 -0
- package/dist/services/document-annotations.d.ts +160 -0
- package/dist/services/document-annotations.d.ts.map +1 -0
- package/dist/services/document-annotations.js +324 -0
- package/dist/services/document-annotations.js.map +1 -0
- package/dist/services/documents.d.ts +347 -0
- package/dist/services/documents.d.ts.map +1 -0
- package/dist/services/documents.js +638 -0
- package/dist/services/documents.js.map +1 -0
- package/dist/services/environment-config.d.ts +55 -0
- package/dist/services/environment-config.d.ts.map +1 -0
- package/dist/services/environment-config.js +441 -0
- package/dist/services/environment-config.js.map +1 -0
- package/dist/services/environment-execution-target.d.ts +21 -0
- package/dist/services/environment-execution-target.d.ts.map +1 -0
- package/dist/services/environment-execution-target.js +121 -0
- package/dist/services/environment-execution-target.js.map +1 -0
- package/dist/services/environment-probe.d.ts +9 -0
- package/dist/services/environment-probe.d.ts.map +1 -0
- package/dist/services/environment-probe.js +106 -0
- package/dist/services/environment-probe.js.map +1 -0
- package/dist/services/environment-run-orchestrator.d.ts +124 -0
- package/dist/services/environment-run-orchestrator.d.ts.map +1 -0
- package/dist/services/environment-run-orchestrator.js +392 -0
- package/dist/services/environment-run-orchestrator.js.map +1 -0
- package/dist/services/environment-runtime.d.ts +90 -0
- package/dist/services/environment-runtime.d.ts.map +1 -0
- package/dist/services/environment-runtime.js +968 -0
- package/dist/services/environment-runtime.js.map +1 -0
- package/dist/services/environments.d.ts +36 -0
- package/dist/services/environments.d.ts.map +1 -0
- package/dist/services/environments.js +260 -0
- package/dist/services/environments.js.map +1 -0
- package/dist/services/execution-workspace-policy.d.ts +42 -0
- package/dist/services/execution-workspace-policy.d.ts.map +1 -0
- package/dist/services/execution-workspace-policy.js +262 -0
- package/dist/services/execution-workspace-policy.js.map +1 -0
- package/dist/services/execution-workspaces.d.ts +30 -0
- package/dist/services/execution-workspaces.d.ts.map +1 -0
- package/dist/services/execution-workspaces.js +645 -0
- package/dist/services/execution-workspaces.js.map +1 -0
- package/dist/services/finance.d.ts +93 -0
- package/dist/services/finance.d.ts.map +1 -0
- package/dist/services/finance.js +120 -0
- package/dist/services/finance.js.map +1 -0
- package/dist/services/github-fetch.d.ts +4 -0
- package/dist/services/github-fetch.d.ts.map +1 -0
- package/dist/services/github-fetch.js +23 -0
- package/dist/services/github-fetch.js.map +1 -0
- package/dist/services/goals.d.ts +433 -0
- package/dist/services/goals.d.ts.map +1 -0
- package/dist/services/goals.js +54 -0
- package/dist/services/goals.js.map +1 -0
- package/dist/services/heartbeat-circuit-breaker.d.ts +89 -0
- package/dist/services/heartbeat-circuit-breaker.d.ts.map +1 -0
- package/dist/services/heartbeat-circuit-breaker.js +156 -0
- package/dist/services/heartbeat-circuit-breaker.js.map +1 -0
- package/dist/services/heartbeat-circuit-breaker.test.d.ts +2 -0
- package/dist/services/heartbeat-circuit-breaker.test.d.ts.map +1 -0
- package/dist/services/heartbeat-circuit-breaker.test.js +97 -0
- package/dist/services/heartbeat-circuit-breaker.test.js.map +1 -0
- package/dist/services/heartbeat-run-summary.d.ts +7 -0
- package/dist/services/heartbeat-run-summary.d.ts.map +1 -0
- package/dist/services/heartbeat-run-summary.js +84 -0
- package/dist/services/heartbeat-run-summary.js.map +1 -0
- package/dist/services/heartbeat-stop-metadata.d.ts +28 -0
- package/dist/services/heartbeat-stop-metadata.d.ts.map +1 -0
- package/dist/services/heartbeat-stop-metadata.js +86 -0
- package/dist/services/heartbeat-stop-metadata.js.map +1 -0
- package/dist/services/heartbeat-stop-metadata.test.d.ts +2 -0
- package/dist/services/heartbeat-stop-metadata.test.d.ts.map +1 -0
- package/dist/services/heartbeat-stop-metadata.test.js +93 -0
- package/dist/services/heartbeat-stop-metadata.test.js.map +1 -0
- package/dist/services/heartbeat.d.ts +1578 -0
- package/dist/services/heartbeat.d.ts.map +1 -0
- package/dist/services/heartbeat.js +8274 -0
- package/dist/services/heartbeat.js.map +1 -0
- package/dist/services/hire-hook.d.ts +14 -0
- package/dist/services/hire-hook.d.ts.map +1 -0
- package/dist/services/hire-hook.js +85 -0
- package/dist/services/hire-hook.js.map +1 -0
- package/dist/services/inbox-dismissals.d.ts +22 -0
- package/dist/services/inbox-dismissals.d.ts.map +1 -0
- package/dist/services/inbox-dismissals.js +33 -0
- package/dist/services/inbox-dismissals.js.map +1 -0
- package/dist/services/index.d.ts +50 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +49 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/instance-settings.d.ts +12 -0
- package/dist/services/instance-settings.d.ts.map +1 -0
- package/dist/services/instance-settings.js +142 -0
- package/dist/services/instance-settings.js.map +1 -0
- package/dist/services/invite-grants.d.ts +15 -0
- package/dist/services/invite-grants.d.ts.map +1 -0
- package/dist/services/invite-grants.js +50 -0
- package/dist/services/invite-grants.js.map +1 -0
- package/dist/services/issue-approvals.d.ts +56 -0
- package/dist/services/issue-approvals.d.ts.map +1 -0
- package/dist/services/issue-approvals.js +153 -0
- package/dist/services/issue-approvals.js.map +1 -0
- package/dist/services/issue-assignment-wakeup.d.ts +29 -0
- package/dist/services/issue-assignment-wakeup.d.ts.map +1 -0
- package/dist/services/issue-assignment-wakeup.js +22 -0
- package/dist/services/issue-assignment-wakeup.js.map +1 -0
- package/dist/services/issue-continuation-summary.d.ts +71 -0
- package/dist/services/issue-continuation-summary.d.ts.map +1 -0
- package/dist/services/issue-continuation-summary.js +222 -0
- package/dist/services/issue-continuation-summary.js.map +1 -0
- package/dist/services/issue-execution-policy.d.ts +93 -0
- package/dist/services/issue-execution-policy.d.ts.map +1 -0
- package/dist/services/issue-execution-policy.js +838 -0
- package/dist/services/issue-execution-policy.js.map +1 -0
- package/dist/services/issue-goal-fallback.d.ts +18 -0
- package/dist/services/issue-goal-fallback.d.ts.map +1 -0
- package/dist/services/issue-goal-fallback.js +33 -0
- package/dist/services/issue-goal-fallback.js.map +1 -0
- package/dist/services/issue-liveness.d.ts +3 -0
- package/dist/services/issue-liveness.d.ts.map +1 -0
- package/dist/services/issue-liveness.js +2 -0
- package/dist/services/issue-liveness.js.map +1 -0
- package/dist/services/issue-recovery-actions.d.ts +40 -0
- package/dist/services/issue-recovery-actions.d.ts.map +1 -0
- package/dist/services/issue-recovery-actions.js +204 -0
- package/dist/services/issue-recovery-actions.js.map +1 -0
- package/dist/services/issue-references.d.ts +22 -0
- package/dist/services/issue-references.d.ts.map +1 -0
- package/dist/services/issue-references.js +341 -0
- package/dist/services/issue-references.js.map +1 -0
- package/dist/services/issue-thread-interactions.d.ts +81 -0
- package/dist/services/issue-thread-interactions.d.ts.map +1 -0
- package/dist/services/issue-thread-interactions.js +1017 -0
- package/dist/services/issue-thread-interactions.js.map +1 -0
- package/dist/services/issue-thread-interactions.test.d.ts +2 -0
- package/dist/services/issue-thread-interactions.test.d.ts.map +1 -0
- package/dist/services/issue-thread-interactions.test.js +195 -0
- package/dist/services/issue-thread-interactions.test.js.map +1 -0
- package/dist/services/issue-tree-control.d.ts +89 -0
- package/dist/services/issue-tree-control.d.ts.map +1 -0
- package/dist/services/issue-tree-control.js +933 -0
- package/dist/services/issue-tree-control.js.map +1 -0
- package/dist/services/issues.d.ts +898 -0
- package/dist/services/issues.d.ts.map +1 -0
- package/dist/services/issues.js +4705 -0
- package/dist/services/issues.js.map +1 -0
- package/dist/services/json-schema-secret-refs.d.ts +5 -0
- package/dist/services/json-schema-secret-refs.d.ts.map +1 -0
- package/dist/services/json-schema-secret-refs.js +67 -0
- package/dist/services/json-schema-secret-refs.js.map +1 -0
- package/dist/services/live-events.d.ts +17 -0
- package/dist/services/live-events.d.ts.map +1 -0
- package/dist/services/live-events.js +33 -0
- package/dist/services/live-events.js.map +1 -0
- package/dist/services/local-service-supervisor.d.ts +56 -0
- package/dist/services/local-service-supervisor.d.ts.map +1 -0
- package/dist/services/local-service-supervisor.js +284 -0
- package/dist/services/local-service-supervisor.js.map +1 -0
- package/dist/services/operator-auth.d.ts +271 -0
- package/dist/services/operator-auth.d.ts.map +1 -0
- package/dist/services/operator-auth.js +361 -0
- package/dist/services/operator-auth.js.map +1 -0
- package/dist/services/plugin-capability-validator.d.ts +108 -0
- package/dist/services/plugin-capability-validator.d.ts.map +1 -0
- package/dist/services/plugin-capability-validator.js +314 -0
- package/dist/services/plugin-capability-validator.js.map +1 -0
- package/dist/services/plugin-config-validator.d.ts +26 -0
- package/dist/services/plugin-config-validator.d.ts.map +1 -0
- package/dist/services/plugin-config-validator.js +41 -0
- package/dist/services/plugin-config-validator.js.map +1 -0
- package/dist/services/plugin-database.d.ts +49 -0
- package/dist/services/plugin-database.d.ts.map +1 -0
- package/dist/services/plugin-database.js +475 -0
- package/dist/services/plugin-database.js.map +1 -0
- package/dist/services/plugin-dev-watcher.d.ts +30 -0
- package/dist/services/plugin-dev-watcher.d.ts.map +1 -0
- package/dist/services/plugin-dev-watcher.js +246 -0
- package/dist/services/plugin-dev-watcher.js.map +1 -0
- package/dist/services/plugin-environment-driver.d.ts +126 -0
- package/dist/services/plugin-environment-driver.d.ts.map +1 -0
- package/dist/services/plugin-environment-driver.js +226 -0
- package/dist/services/plugin-environment-driver.js.map +1 -0
- package/dist/services/plugin-event-bus.d.ts +149 -0
- package/dist/services/plugin-event-bus.d.ts.map +1 -0
- package/dist/services/plugin-event-bus.js +258 -0
- package/dist/services/plugin-event-bus.js.map +1 -0
- package/dist/services/plugin-host-service-cleanup.d.ts +14 -0
- package/dist/services/plugin-host-service-cleanup.d.ts.map +1 -0
- package/dist/services/plugin-host-service-cleanup.js +37 -0
- package/dist/services/plugin-host-service-cleanup.js.map +1 -0
- package/dist/services/plugin-host-services.d.ts +17 -0
- package/dist/services/plugin-host-services.d.ts.map +1 -0
- package/dist/services/plugin-host-services.js +2460 -0
- package/dist/services/plugin-host-services.js.map +1 -0
- package/dist/services/plugin-job-coordinator.d.ts +81 -0
- package/dist/services/plugin-job-coordinator.d.ts.map +1 -0
- package/dist/services/plugin-job-coordinator.js +172 -0
- package/dist/services/plugin-job-coordinator.js.map +1 -0
- package/dist/services/plugin-job-scheduler.d.ts +163 -0
- package/dist/services/plugin-job-scheduler.d.ts.map +1 -0
- package/dist/services/plugin-job-scheduler.js +454 -0
- package/dist/services/plugin-job-scheduler.js.map +1 -0
- package/dist/services/plugin-job-store.d.ts +208 -0
- package/dist/services/plugin-job-store.d.ts.map +1 -0
- package/dist/services/plugin-job-store.js +350 -0
- package/dist/services/plugin-job-store.js.map +1 -0
- package/dist/services/plugin-lifecycle.d.ts +203 -0
- package/dist/services/plugin-lifecycle.d.ts.map +1 -0
- package/dist/services/plugin-lifecycle.js +501 -0
- package/dist/services/plugin-lifecycle.js.map +1 -0
- package/dist/services/plugin-loader.d.ts +453 -0
- package/dist/services/plugin-loader.d.ts.map +1 -0
- package/dist/services/plugin-loader.js +1295 -0
- package/dist/services/plugin-loader.js.map +1 -0
- package/dist/services/plugin-local-folders.d.ts +49 -0
- package/dist/services/plugin-local-folders.d.ts.map +1 -0
- package/dist/services/plugin-local-folders.js +510 -0
- package/dist/services/plugin-local-folders.js.map +1 -0
- package/dist/services/plugin-log-retention.d.ts +20 -0
- package/dist/services/plugin-log-retention.d.ts.map +1 -0
- package/dist/services/plugin-log-retention.js +63 -0
- package/dist/services/plugin-log-retention.js.map +1 -0
- package/dist/services/plugin-managed-agents.d.ts +15 -0
- package/dist/services/plugin-managed-agents.d.ts.map +1 -0
- package/dist/services/plugin-managed-agents.js +457 -0
- package/dist/services/plugin-managed-agents.js.map +1 -0
- package/dist/services/plugin-managed-routines.d.ts +42 -0
- package/dist/services/plugin-managed-routines.d.ts.map +1 -0
- package/dist/services/plugin-managed-routines.js +416 -0
- package/dist/services/plugin-managed-routines.js.map +1 -0
- package/dist/services/plugin-managed-skills.d.ts +14 -0
- package/dist/services/plugin-managed-skills.d.ts.map +1 -0
- package/dist/services/plugin-managed-skills.js +264 -0
- package/dist/services/plugin-managed-skills.js.map +1 -0
- package/dist/services/plugin-manifest-validator.d.ts +79 -0
- package/dist/services/plugin-manifest-validator.d.ts.map +1 -0
- package/dist/services/plugin-manifest-validator.js +84 -0
- package/dist/services/plugin-manifest-validator.js.map +1 -0
- package/dist/services/plugin-registry.d.ts +2550 -0
- package/dist/services/plugin-registry.d.ts.map +1 -0
- package/dist/services/plugin-registry.js +581 -0
- package/dist/services/plugin-registry.js.map +1 -0
- package/dist/services/plugin-runtime-sandbox.d.ts +40 -0
- package/dist/services/plugin-runtime-sandbox.d.ts.map +1 -0
- package/dist/services/plugin-runtime-sandbox.js +154 -0
- package/dist/services/plugin-runtime-sandbox.js.map +1 -0
- package/dist/services/plugin-secrets-handler.d.ts +83 -0
- package/dist/services/plugin-secrets-handler.d.ts.map +1 -0
- package/dist/services/plugin-secrets-handler.js +168 -0
- package/dist/services/plugin-secrets-handler.js.map +1 -0
- package/dist/services/plugin-state-store.d.ts +92 -0
- package/dist/services/plugin-state-store.d.ts.map +1 -0
- package/dist/services/plugin-state-store.js +190 -0
- package/dist/services/plugin-state-store.js.map +1 -0
- package/dist/services/plugin-stream-bus.d.ts +29 -0
- package/dist/services/plugin-stream-bus.d.ts.map +1 -0
- package/dist/services/plugin-stream-bus.js +48 -0
- package/dist/services/plugin-stream-bus.js.map +1 -0
- package/dist/services/plugin-tool-dispatcher.d.ts +181 -0
- package/dist/services/plugin-tool-dispatcher.d.ts.map +1 -0
- package/dist/services/plugin-tool-dispatcher.js +224 -0
- package/dist/services/plugin-tool-dispatcher.js.map +1 -0
- package/dist/services/plugin-tool-registry.d.ts +192 -0
- package/dist/services/plugin-tool-registry.d.ts.map +1 -0
- package/dist/services/plugin-tool-registry.js +224 -0
- package/dist/services/plugin-tool-registry.js.map +1 -0
- package/dist/services/plugin-worker-manager.d.ts +262 -0
- package/dist/services/plugin-worker-manager.d.ts.map +1 -0
- package/dist/services/plugin-worker-manager.js +942 -0
- package/dist/services/plugin-worker-manager.js.map +1 -0
- package/dist/services/portable-path.d.ts +2 -0
- package/dist/services/portable-path.d.ts.map +1 -0
- package/dist/services/portable-path.js +15 -0
- package/dist/services/portable-path.js.map +1 -0
- package/dist/services/principal-access-compatibility.d.ts +26 -0
- package/dist/services/principal-access-compatibility.d.ts.map +1 -0
- package/dist/services/principal-access-compatibility.js +94 -0
- package/dist/services/principal-access-compatibility.js.map +1 -0
- package/dist/services/productivity-review.d.ts +83 -0
- package/dist/services/productivity-review.d.ts.map +1 -0
- package/dist/services/productivity-review.js +652 -0
- package/dist/services/productivity-review.js.map +1 -0
- package/dist/services/project-workspace-runtime-config.d.ts +4 -0
- package/dist/services/project-workspace-runtime-config.d.ts.map +1 -0
- package/dist/services/project-workspace-runtime-config.js +54 -0
- package/dist/services/project-workspace-runtime-config.js.map +1 -0
- package/dist/services/projects.d.ts +99 -0
- package/dist/services/projects.d.ts.map +1 -0
- package/dist/services/projects.js +879 -0
- package/dist/services/projects.js.map +1 -0
- package/dist/services/quota-windows.d.ts +9 -0
- package/dist/services/quota-windows.d.ts.map +1 -0
- package/dist/services/quota-windows.js +56 -0
- package/dist/services/quota-windows.js.map +1 -0
- package/dist/services/recovery/index.d.ts +10 -0
- package/dist/services/recovery/index.d.ts.map +1 -0
- package/dist/services/recovery/index.js +6 -0
- package/dist/services/recovery/index.js.map +1 -0
- package/dist/services/recovery/issue-graph-liveness.d.ts +85 -0
- package/dist/services/recovery/issue-graph-liveness.d.ts.map +1 -0
- package/dist/services/recovery/issue-graph-liveness.js +356 -0
- package/dist/services/recovery/issue-graph-liveness.js.map +1 -0
- package/dist/services/recovery/model-profile-hint.d.ts +21 -0
- package/dist/services/recovery/model-profile-hint.d.ts.map +1 -0
- package/dist/services/recovery/model-profile-hint.js +36 -0
- package/dist/services/recovery/model-profile-hint.js.map +1 -0
- package/dist/services/recovery/model-profile-hint.test.d.ts +2 -0
- package/dist/services/recovery/model-profile-hint.test.d.ts.map +1 -0
- package/dist/services/recovery/model-profile-hint.test.js +38 -0
- package/dist/services/recovery/model-profile-hint.test.js.map +1 -0
- package/dist/services/recovery/origins.d.ts +36 -0
- package/dist/services/recovery/origins.d.ts.map +1 -0
- package/dist/services/recovery/origins.js +45 -0
- package/dist/services/recovery/origins.js.map +1 -0
- package/dist/services/recovery/pause-hold-guard.d.ts +6 -0
- package/dist/services/recovery/pause-hold-guard.d.ts.map +1 -0
- package/dist/services/recovery/pause-hold-guard.js +6 -0
- package/dist/services/recovery/pause-hold-guard.js.map +1 -0
- package/dist/services/recovery/run-liveness-continuations.d.ts +50 -0
- package/dist/services/recovery/run-liveness-continuations.d.ts.map +1 -0
- package/dist/services/recovery/run-liveness-continuations.js +117 -0
- package/dist/services/recovery/run-liveness-continuations.js.map +1 -0
- package/dist/services/recovery/service.d.ts +258 -0
- package/dist/services/recovery/service.d.ts.map +1 -0
- package/dist/services/recovery/service.js +2892 -0
- package/dist/services/recovery/service.js.map +1 -0
- package/dist/services/recovery/successful-run-handoff.d.ts +89 -0
- package/dist/services/recovery/successful-run-handoff.d.ts.map +1 -0
- package/dist/services/recovery/successful-run-handoff.js +304 -0
- package/dist/services/recovery/successful-run-handoff.js.map +1 -0
- package/dist/services/recovery/successful-run-handoff.test.d.ts +2 -0
- package/dist/services/recovery/successful-run-handoff.test.d.ts.map +1 -0
- package/dist/services/recovery/successful-run-handoff.test.js +276 -0
- package/dist/services/recovery/successful-run-handoff.test.js.map +1 -0
- package/dist/services/resource-memberships.d.ts +55 -0
- package/dist/services/resource-memberships.d.ts.map +1 -0
- package/dist/services/resource-memberships.js +213 -0
- package/dist/services/resource-memberships.js.map +1 -0
- package/dist/services/routines.d.ts +170 -0
- package/dist/services/routines.d.ts.map +1 -0
- package/dist/services/routines.js +2015 -0
- package/dist/services/routines.js.map +1 -0
- package/dist/services/run-continuations.d.ts +3 -0
- package/dist/services/run-continuations.d.ts.map +1 -0
- package/dist/services/run-continuations.js +2 -0
- package/dist/services/run-continuations.js.map +1 -0
- package/dist/services/run-liveness.d.ts +46 -0
- package/dist/services/run-liveness.d.ts.map +1 -0
- package/dist/services/run-liveness.js +275 -0
- package/dist/services/run-liveness.js.map +1 -0
- package/dist/services/run-log-store.d.ts +34 -0
- package/dist/services/run-log-store.d.ts.map +1 -0
- package/dist/services/run-log-store.js +111 -0
- package/dist/services/run-log-store.js.map +1 -0
- package/dist/services/sandbox-provider-runtime.d.ts +132 -0
- package/dist/services/sandbox-provider-runtime.d.ts.map +1 -0
- package/dist/services/sandbox-provider-runtime.js +216 -0
- package/dist/services/sandbox-provider-runtime.js.map +1 -0
- package/dist/services/secrets.d.ts +1991 -0
- package/dist/services/secrets.d.ts.map +1 -0
- package/dist/services/secrets.js +1781 -0
- package/dist/services/secrets.js.map +1 -0
- package/dist/services/session-workspace-cwd.d.ts +2 -0
- package/dist/services/session-workspace-cwd.d.ts.map +1 -0
- package/dist/services/session-workspace-cwd.js +24 -0
- package/dist/services/session-workspace-cwd.js.map +1 -0
- package/dist/services/session-workspace-cwd.test.d.ts +2 -0
- package/dist/services/session-workspace-cwd.test.d.ts.map +1 -0
- package/dist/services/session-workspace-cwd.test.js +25 -0
- package/dist/services/session-workspace-cwd.test.js.map +1 -0
- package/dist/services/sidebar-badges.d.ts +14 -0
- package/dist/services/sidebar-badges.d.ts.map +1 -0
- package/dist/services/sidebar-badges.js +48 -0
- package/dist/services/sidebar-badges.js.map +1 -0
- package/dist/services/sidebar-preferences.d.ts +9 -0
- package/dist/services/sidebar-preferences.d.ts.map +1 -0
- package/dist/services/sidebar-preferences.js +82 -0
- package/dist/services/sidebar-preferences.js.map +1 -0
- package/dist/services/skills-catalog.d.ts +14 -0
- package/dist/services/skills-catalog.d.ts.map +1 -0
- package/dist/services/skills-catalog.js +171 -0
- package/dist/services/skills-catalog.js.map +1 -0
- package/dist/services/squad-export-readme.d.ts +17 -0
- package/dist/services/squad-export-readme.d.ts.map +1 -0
- package/dist/services/squad-export-readme.js +148 -0
- package/dist/services/squad-export-readme.js.map +1 -0
- package/dist/services/squad-member-roles.d.ts +9 -0
- package/dist/services/squad-member-roles.d.ts.map +1 -0
- package/dist/services/squad-member-roles.js +48 -0
- package/dist/services/squad-member-roles.js.map +1 -0
- package/dist/services/squad-portability.d.ts +24 -0
- package/dist/services/squad-portability.d.ts.map +1 -0
- package/dist/services/squad-portability.js +4093 -0
- package/dist/services/squad-portability.js.map +1 -0
- package/dist/services/squad-search-rate-limit.d.ts +22 -0
- package/dist/services/squad-search-rate-limit.d.ts.map +1 -0
- package/dist/services/squad-search-rate-limit.js +38 -0
- package/dist/services/squad-search-rate-limit.js.map +1 -0
- package/dist/services/squad-search.d.ts +8 -0
- package/dist/services/squad-search.d.ts.map +1 -0
- package/dist/services/squad-search.js +626 -0
- package/dist/services/squad-search.js.map +1 -0
- package/dist/services/squad-skills.d.ts +107 -0
- package/dist/services/squad-skills.d.ts.map +1 -0
- package/dist/services/squad-skills.js +3044 -0
- package/dist/services/squad-skills.js.map +1 -0
- package/dist/services/squads.d.ts +154 -0
- package/dist/services/squads.d.ts.map +1 -0
- package/dist/services/squads.js +278 -0
- package/dist/services/squads.js.map +1 -0
- package/dist/services/wake-cycle-guard.d.ts +44 -0
- package/dist/services/wake-cycle-guard.d.ts.map +1 -0
- package/dist/services/wake-cycle-guard.js +79 -0
- package/dist/services/wake-cycle-guard.js.map +1 -0
- package/dist/services/wake-cycle-guard.test.d.ts +2 -0
- package/dist/services/wake-cycle-guard.test.d.ts.map +1 -0
- package/dist/services/wake-cycle-guard.test.js +67 -0
- package/dist/services/wake-cycle-guard.test.js.map +1 -0
- package/dist/services/work-products.d.ts +14 -0
- package/dist/services/work-products.d.ts.map +1 -0
- package/dist/services/work-products.js +100 -0
- package/dist/services/work-products.js.map +1 -0
- package/dist/services/workspace-operation-log-store.d.ts +33 -0
- package/dist/services/workspace-operation-log-store.d.ts.map +1 -0
- package/dist/services/workspace-operation-log-store.js +110 -0
- package/dist/services/workspace-operation-log-store.js.map +1 -0
- package/dist/services/workspace-operations.d.ts +44 -0
- package/dist/services/workspace-operations.d.ts.map +1 -0
- package/dist/services/workspace-operations.js +211 -0
- package/dist/services/workspace-operations.js.map +1 -0
- package/dist/services/workspace-realization.d.ts +33 -0
- package/dist/services/workspace-realization.d.ts.map +1 -0
- package/dist/services/workspace-realization.js +221 -0
- package/dist/services/workspace-realization.js.map +1 -0
- package/dist/services/workspace-runtime-read-model.d.ts +92 -0
- package/dist/services/workspace-runtime-read-model.d.ts.map +1 -0
- package/dist/services/workspace-runtime-read-model.js +67 -0
- package/dist/services/workspace-runtime-read-model.js.map +1 -0
- package/dist/services/workspace-runtime.d.ts +252 -0
- package/dist/services/workspace-runtime.d.ts.map +1 -0
- package/dist/services/workspace-runtime.js +2519 -0
- package/dist/services/workspace-runtime.js.map +1 -0
- package/dist/startup-banner.d.ts +32 -0
- package/dist/startup-banner.d.ts.map +1 -0
- package/dist/startup-banner.js +118 -0
- package/dist/startup-banner.js.map +1 -0
- package/dist/static-index-html.d.ts +2 -0
- package/dist/static-index-html.d.ts.map +1 -0
- package/dist/static-index-html.js +7 -0
- package/dist/static-index-html.js.map +1 -0
- package/dist/storage/index.d.ts +6 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +29 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/local-disk-provider.d.ts +3 -0
- package/dist/storage/local-disk-provider.d.ts.map +1 -0
- package/dist/storage/local-disk-provider.js +85 -0
- package/dist/storage/local-disk-provider.js.map +1 -0
- package/dist/storage/provider-registry.d.ts +4 -0
- package/dist/storage/provider-registry.d.ts.map +1 -0
- package/dist/storage/provider-registry.js +15 -0
- package/dist/storage/provider-registry.js.map +1 -0
- package/dist/storage/s3-provider.d.ts +11 -0
- package/dist/storage/s3-provider.d.ts.map +1 -0
- package/dist/storage/s3-provider.js +124 -0
- package/dist/storage/s3-provider.js.map +1 -0
- package/dist/storage/service.d.ts +3 -0
- package/dist/storage/service.d.ts.map +1 -0
- package/dist/storage/service.js +120 -0
- package/dist/storage/service.js.map +1 -0
- package/dist/storage/types.d.ts +59 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/ui-branding.d.ts +13 -0
- package/dist/ui-branding.d.ts.map +1 -0
- package/dist/ui-branding.js +187 -0
- package/dist/ui-branding.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/dist/vite-html-renderer.d.ts +18 -0
- package/dist/vite-html-renderer.d.ts.map +1 -0
- package/dist/vite-html-renderer.js +61 -0
- package/dist/vite-html-renderer.js.map +1 -0
- package/dist/worktree-config.d.ts +19 -0
- package/dist/worktree-config.d.ts.map +1 -0
- package/dist/worktree-config.js +373 -0
- package/dist/worktree-config.js.map +1 -0
- package/package.json +92 -0
- package/skills/diagnose-why-work-stopped/SKILL.md +161 -0
- package/skills/para-memory-files/SKILL.md +104 -0
- package/skills/para-memory-files/references/schemas.md +35 -0
- package/skills/slaw/SKILL.md +371 -0
- package/skills/slaw/references/api-reference.md +879 -0
- package/skills/slaw/references/artifacts.md +44 -0
- package/skills/slaw/references/issue-workspaces.md +80 -0
- package/skills/slaw/references/routines.md +187 -0
- package/skills/slaw/references/squad-skills.md +258 -0
- package/skills/slaw/references/workflows.md +113 -0
- package/skills/slaw/scripts/slaw-upload-artifact.sh +371 -0
- package/skills/slaw-converting-plans-to-tasks/SKILL.md +42 -0
- package/skills/slaw-create-agent/SKILL.md +163 -0
- package/skills/slaw-create-agent/references/agent-instruction-templates.md +123 -0
- package/skills/slaw-create-agent/references/agents/coder.md +64 -0
- package/skills/slaw-create-agent/references/agents/qa.md +88 -0
- package/skills/slaw-create-agent/references/agents/securityengineer.md +135 -0
- package/skills/slaw-create-agent/references/agents/uxdesigner.md +115 -0
- package/skills/slaw-create-agent/references/api-reference.md +110 -0
- package/skills/slaw-create-agent/references/baseline-role-guide.md +168 -0
- package/skills/slaw-create-agent/references/draft-review-checklist.md +95 -0
- package/skills/slaw-create-plugin/SKILL.md +154 -0
- package/skills/slaw-dev/SKILL.md +267 -0
- package/skills/terminal-bench-loop/SKILL.md +236 -0
- package/ui-dist/android-chrome-192x192.png +0 -0
- package/ui-dist/android-chrome-512x512.png +0 -0
- package/ui-dist/apple-touch-icon.png +0 -0
- package/ui-dist/assets/apl-B4CMkyY2.js +1 -0
- package/ui-dist/assets/arc-xbLjL0VN.js +1 -0
- package/ui-dist/assets/architectureDiagram-3BPJPVTR-KcFd4B-U.js +36 -0
- package/ui-dist/assets/asciiarmor-Df11BRmG.js +1 -0
- package/ui-dist/assets/asn1-EdZsLKOL.js +1 -0
- package/ui-dist/assets/asterisk-B-8jnY81.js +1 -0
- package/ui-dist/assets/blockDiagram-GPEHLZMM-CSD4otEL.js +132 -0
- package/ui-dist/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/ui-dist/assets/c4Diagram-AAUBKEIU-Cre_NEHp.js +10 -0
- package/ui-dist/assets/channel-BFN8obi8.js +1 -0
- package/ui-dist/assets/chunk-2J33WTMH-CssLBsbh.js +1 -0
- package/ui-dist/assets/chunk-4BX2VUAB-DjiavNFv.js +1 -0
- package/ui-dist/assets/chunk-55IACEB6-C_F0yeYq.js +1 -0
- package/ui-dist/assets/chunk-727SXJPM-B1FAOW4a.js +206 -0
- package/ui-dist/assets/chunk-AQP2D5EJ-Do1241W-.js +231 -0
- package/ui-dist/assets/chunk-FMBD7UC4-BQRrOMZD.js +15 -0
- package/ui-dist/assets/chunk-ND2GUHAM-BPSt3kZ1.js +1 -0
- package/ui-dist/assets/chunk-QZHKN3VN-BSpmhWDD.js +1 -0
- package/ui-dist/assets/classDiagram-4FO5ZUOK-1Ay0zFCU.js +1 -0
- package/ui-dist/assets/classDiagram-v2-Q7XG4LA2-1Ay0zFCU.js +1 -0
- package/ui-dist/assets/clike-B9uivgTg.js +1 -0
- package/ui-dist/assets/clojure-BMjYHr_A.js +1 -0
- package/ui-dist/assets/cmake-BQqOBYOt.js +1 -0
- package/ui-dist/assets/cobol-CWcv1MsR.js +1 -0
- package/ui-dist/assets/coffeescript-S37ZYGWr.js +1 -0
- package/ui-dist/assets/commonlisp-DBKNyK5s.js +1 -0
- package/ui-dist/assets/cose-bilkent-S5V4N54A-CK2f2Te4.js +1 -0
- package/ui-dist/assets/crystal-SjHAIU92.js +1 -0
- package/ui-dist/assets/css-BnMrqG3P.js +1 -0
- package/ui-dist/assets/cypher-C_CwsFkJ.js +1 -0
- package/ui-dist/assets/cytoscape.esm-D8joxN9f.js +321 -0
- package/ui-dist/assets/d-pRatUO7H.js +1 -0
- package/ui-dist/assets/dagre-BM42HDAG-DaOXTN9-.js +4 -0
- package/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/ui-dist/assets/diagram-2AECGRRQ-D0ScQUGy.js +43 -0
- package/ui-dist/assets/diagram-5GNKFQAL-7mH4Cncd.js +10 -0
- package/ui-dist/assets/diagram-KO2AKTUF-aA9kuK-7.js +3 -0
- package/ui-dist/assets/diagram-LMA3HP47-C9UXfmdK.js +24 -0
- package/ui-dist/assets/diagram-OG6HWLK6-Ba3U-x1r.js +24 -0
- package/ui-dist/assets/diff-DbItnlRl.js +1 -0
- package/ui-dist/assets/dockerfile-BKs6k2Af.js +1 -0
- package/ui-dist/assets/dtd-DF_7sFjM.js +1 -0
- package/ui-dist/assets/dylan-DwRh75JA.js +1 -0
- package/ui-dist/assets/ebnf-CDyGwa7X.js +1 -0
- package/ui-dist/assets/ecl-Cabwm37j.js +1 -0
- package/ui-dist/assets/eiffel-CnydiIhH.js +1 -0
- package/ui-dist/assets/elm-vLlmbW-K.js +1 -0
- package/ui-dist/assets/erDiagram-TEJ5UH35-CmskPKH1.js +85 -0
- package/ui-dist/assets/erlang-BNw1qcRV.js +1 -0
- package/ui-dist/assets/factor-kuTfRLto.js +1 -0
- package/ui-dist/assets/fcl-Kvtd6kyn.js +1 -0
- package/ui-dist/assets/flowDiagram-I6XJVG4X-B0iEPqGd.js +162 -0
- package/ui-dist/assets/forth-Ffai-XNe.js +1 -0
- package/ui-dist/assets/fortran-DYz_wnZ1.js +1 -0
- package/ui-dist/assets/ganttDiagram-6RSMTGT7-DtpxlgWQ.js +292 -0
- package/ui-dist/assets/gas-Bneqetm1.js +1 -0
- package/ui-dist/assets/gherkin-heZmZLOM.js +1 -0
- package/ui-dist/assets/gitGraphDiagram-PVQCEYII-VefBjqya.js +106 -0
- package/ui-dist/assets/graph-CAnANduQ.js +1 -0
- package/ui-dist/assets/groovy-D9Dt4D0W.js +1 -0
- package/ui-dist/assets/haskell-Cw1EW3IL.js +1 -0
- package/ui-dist/assets/haxe-H-WmDvRZ.js +1 -0
- package/ui-dist/assets/http-DBlCnlav.js +1 -0
- package/ui-dist/assets/idl-BEugSyMb.js +1 -0
- package/ui-dist/assets/index-B9KxOFt-.js +1 -0
- package/ui-dist/assets/index-BMPCuc-W.js +1 -0
- package/ui-dist/assets/index-Bbfs2D7R.js +1 -0
- package/ui-dist/assets/index-BrgHE5Lg.js +1 -0
- package/ui-dist/assets/index-C5q-Cwlp.js +7 -0
- package/ui-dist/assets/index-C6LpKpr3.js +1 -0
- package/ui-dist/assets/index-CIzt5DFV.js +1 -0
- package/ui-dist/assets/index-CRwAuYPj.js +1 -0
- package/ui-dist/assets/index-CTEnIXsJ.js +1 -0
- package/ui-dist/assets/index-CXGemv2V.js +1 -0
- package/ui-dist/assets/index-ClDiS51u.js +1 -0
- package/ui-dist/assets/index-CvKYfvpz.js +1 -0
- package/ui-dist/assets/index-D2IqxlXD.js +1 -0
- package/ui-dist/assets/index-D97fJMFR.js +522 -0
- package/ui-dist/assets/index-DDHdUa2f.js +1 -0
- package/ui-dist/assets/index-DMZ0QXqi.js +1 -0
- package/ui-dist/assets/index-DMi4KpxO.js +6 -0
- package/ui-dist/assets/index-DZB48Gve.js +1 -0
- package/ui-dist/assets/index-Drr9zRdK.css +1 -0
- package/ui-dist/assets/index-DtGqpE43.js +1 -0
- package/ui-dist/assets/index-Du18kURt.js +2 -0
- package/ui-dist/assets/index-KaLXuTqA.js +1 -0
- package/ui-dist/assets/index-j5NgiILm.js +13 -0
- package/ui-dist/assets/index-u0SfLZ3g.js +3 -0
- package/ui-dist/assets/infoDiagram-5YYISTIA-D2OGH-dO.js +2 -0
- package/ui-dist/assets/init-Gi6I4Gst.js +1 -0
- package/ui-dist/assets/ishikawaDiagram-YF4QCWOH-CnMf3BJj.js +70 -0
- package/ui-dist/assets/javascript-iXu5QeM3.js +1 -0
- package/ui-dist/assets/journeyDiagram-JHISSGLW-BaXdD53T.js +139 -0
- package/ui-dist/assets/julia-DuME0IfC.js +1 -0
- package/ui-dist/assets/kanban-definition-UN3LZRKU-Brt7LjHm.js +89 -0
- package/ui-dist/assets/katex-yT8l5JNH.js +257 -0
- package/ui-dist/assets/layout-DGIYPm2g.js +1 -0
- package/ui-dist/assets/linear-536T6Mkh.js +1 -0
- package/ui-dist/assets/livescript-BwQOo05w.js +1 -0
- package/ui-dist/assets/lua-VAEuO923.js +1 -0
- package/ui-dist/assets/mathematica-DTrFuWx2.js +1 -0
- package/ui-dist/assets/mbox-CNhZ1qSd.js +1 -0
- package/ui-dist/assets/mermaid.core-CURTLVBm.js +303 -0
- package/ui-dist/assets/mindmap-definition-RKZ34NQL-S2tDCU-U.js +96 -0
- package/ui-dist/assets/mirc-CjQqDB4T.js +1 -0
- package/ui-dist/assets/mllike-CXdrOF99.js +1 -0
- package/ui-dist/assets/modelica-Dc1JOy9r.js +1 -0
- package/ui-dist/assets/mscgen-BA5vi2Kp.js +1 -0
- package/ui-dist/assets/mumps-BT43cFF4.js +1 -0
- package/ui-dist/assets/nginx-DdIZxoE0.js +1 -0
- package/ui-dist/assets/nsis-LdVXkNf5.js +1 -0
- package/ui-dist/assets/ntriples-BfvgReVJ.js +1 -0
- package/ui-dist/assets/octave-Ck1zUtKM.js +1 -0
- package/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/ui-dist/assets/oz-BzwKVEFT.js +1 -0
- package/ui-dist/assets/pascal--L3eBynH.js +1 -0
- package/ui-dist/assets/perl-CdXCOZ3F.js +1 -0
- package/ui-dist/assets/pieDiagram-4H26LBE5-DD_Ih32z.js +30 -0
- package/ui-dist/assets/pig-CevX1Tat.js +1 -0
- package/ui-dist/assets/powershell-CFHJl5sT.js +1 -0
- package/ui-dist/assets/properties-C78fOPTZ.js +1 -0
- package/ui-dist/assets/protobuf-ChK-085T.js +1 -0
- package/ui-dist/assets/pug-DeIclll2.js +1 -0
- package/ui-dist/assets/puppet-DMA9R1ak.js +1 -0
- package/ui-dist/assets/python-BuPzkPfP.js +1 -0
- package/ui-dist/assets/q-pXgVlZs6.js +1 -0
- package/ui-dist/assets/quadrantDiagram-W4KKPZXB-DA5BPBIK.js +7 -0
- package/ui-dist/assets/r-B6wPVr8A.js +1 -0
- package/ui-dist/assets/requirementDiagram-4Y6WPE33-Em8SPCro.js +84 -0
- package/ui-dist/assets/rpm-CTu-6PCP.js +1 -0
- package/ui-dist/assets/ruby-B2Rjki9n.js +1 -0
- package/ui-dist/assets/sankeyDiagram-5OEKKPKP-BJVC4haY.js +40 -0
- package/ui-dist/assets/sas-B4kiWyti.js +1 -0
- package/ui-dist/assets/scheme-C41bIUwD.js +1 -0
- package/ui-dist/assets/sequenceDiagram-3UESZ5HK-Cskntadf.js +162 -0
- package/ui-dist/assets/shell-CjFT_Tl9.js +1 -0
- package/ui-dist/assets/sieve-C3Gn_uJK.js +1 -0
- package/ui-dist/assets/simple-mode-GW_nhZxv.js +1 -0
- package/ui-dist/assets/smalltalk-CnHTOXQT.js +1 -0
- package/ui-dist/assets/solr-DehyRSwq.js +1 -0
- package/ui-dist/assets/sparql-DkYu6x3z.js +1 -0
- package/ui-dist/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/ui-dist/assets/sql-D0XecflT.js +1 -0
- package/ui-dist/assets/stateDiagram-AJRCARHV-CxlfdaOi.js +1 -0
- package/ui-dist/assets/stateDiagram-v2-BHNVJYJU-eTgftUjW.js +1 -0
- package/ui-dist/assets/stex-C3f8Ysf7.js +1 -0
- package/ui-dist/assets/stylus-B533Al4x.js +1 -0
- package/ui-dist/assets/swift-BzpIVaGY.js +1 -0
- package/ui-dist/assets/tcl-DVfN8rqt.js +1 -0
- package/ui-dist/assets/textile-CnDTJFAw.js +1 -0
- package/ui-dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/ui-dist/assets/tiki-DGYXhP31.js +1 -0
- package/ui-dist/assets/timeline-definition-PNZ67QCA-LOdaWSSa.js +120 -0
- package/ui-dist/assets/toml-Bm5Em-hy.js +1 -0
- package/ui-dist/assets/troff-wAsdV37c.js +1 -0
- package/ui-dist/assets/ttcn-CfJYG6tj.js +1 -0
- package/ui-dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/ui-dist/assets/turtle-B1tBg_DP.js +1 -0
- package/ui-dist/assets/vb-CmGdzxic.js +1 -0
- package/ui-dist/assets/vbscript-BuJXcnF6.js +1 -0
- package/ui-dist/assets/velocity-D8B20fx6.js +1 -0
- package/ui-dist/assets/vennDiagram-CIIHVFJN-CJ4ji6B3.js +34 -0
- package/ui-dist/assets/verilog-C6RDOZhf.js +1 -0
- package/ui-dist/assets/vhdl-lSbBsy5d.js +1 -0
- package/ui-dist/assets/wardley-L42UT6IY-CxnVdUVH.js +153 -0
- package/ui-dist/assets/wardleyDiagram-YWT4CUSO-CgGDttpl.js +78 -0
- package/ui-dist/assets/webidl-ZXfAyPTL.js +1 -0
- package/ui-dist/assets/xquery-DzFWVndE.js +1 -0
- package/ui-dist/assets/xychartDiagram-2RQKCTM6-zuQa7bqx.js +7 -0
- package/ui-dist/assets/yacas-BJ4BC0dw.js +1 -0
- package/ui-dist/assets/z80-Hz9HOZM7.js +1 -0
- package/ui-dist/brands/opencode-logo-dark-square.svg +18 -0
- package/ui-dist/brands/opencode-logo-light-square.svg +18 -0
- package/ui-dist/favicon-16x16.png +0 -0
- package/ui-dist/favicon-32x32.png +0 -0
- package/ui-dist/favicon.ico +0 -0
- package/ui-dist/favicon.svg +8 -0
- package/ui-dist/index.html +46 -0
- package/ui-dist/site.webmanifest +30 -0
- package/ui-dist/sw.js +42 -0
- package/ui-dist/worktree-favicon-16x16.png +0 -0
- package/ui-dist/worktree-favicon-32x32.png +0 -0
- package/ui-dist/worktree-favicon.ico +0 -0
- package/ui-dist/worktree-favicon.svg +9 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { and, count, eq, gte, inArray, lt, sql } from "drizzle-orm";
|
|
2
|
+
import { squads, squadLogos, assets, agents, agentApiKeys, agentRuntimeState, agentTaskSessions, agentWakeupRequests, issues, issueComments, projects, goals, heartbeatRuns, heartbeatRunEvents, costEvents, financeEvents, issueReadStates, approvalComments, approvals, activityLog, squadSecrets, joinRequests, invites, principalPermissionGrants, squadMemberships, squadSkills, documents, } from "@slaw-ai/db";
|
|
3
|
+
import { notFound, unprocessable } from "../errors.js";
|
|
4
|
+
import { environmentService } from "./environments.js";
|
|
5
|
+
export function squadService(db) {
|
|
6
|
+
const ISSUE_PREFIX_FALLBACK = "CMP";
|
|
7
|
+
const environmentsSvc = environmentService(db);
|
|
8
|
+
const squadSelection = {
|
|
9
|
+
id: squads.id,
|
|
10
|
+
name: squads.name,
|
|
11
|
+
description: squads.description,
|
|
12
|
+
status: squads.status,
|
|
13
|
+
issuePrefix: squads.issuePrefix,
|
|
14
|
+
issueCounter: squads.issueCounter,
|
|
15
|
+
budgetMonthlyCents: squads.budgetMonthlyCents,
|
|
16
|
+
spentMonthlyCents: squads.spentMonthlyCents,
|
|
17
|
+
attachmentMaxBytes: squads.attachmentMaxBytes,
|
|
18
|
+
requireOperatorApprovalForNewAgents: squads.requireOperatorApprovalForNewAgents,
|
|
19
|
+
feedbackDataSharingEnabled: squads.feedbackDataSharingEnabled,
|
|
20
|
+
feedbackDataSharingConsentAt: squads.feedbackDataSharingConsentAt,
|
|
21
|
+
feedbackDataSharingConsentByUserId: squads.feedbackDataSharingConsentByUserId,
|
|
22
|
+
feedbackDataSharingTermsVersion: squads.feedbackDataSharingTermsVersion,
|
|
23
|
+
brandColor: squads.brandColor,
|
|
24
|
+
logoAssetId: squadLogos.assetId,
|
|
25
|
+
createdAt: squads.createdAt,
|
|
26
|
+
updatedAt: squads.updatedAt,
|
|
27
|
+
};
|
|
28
|
+
function enrichSquad(squad) {
|
|
29
|
+
return {
|
|
30
|
+
...squad,
|
|
31
|
+
logoUrl: squad.logoAssetId ? `/api/assets/${squad.logoAssetId}/content` : null,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function currentUtcMonthWindow(now = new Date()) {
|
|
35
|
+
const year = now.getUTCFullYear();
|
|
36
|
+
const month = now.getUTCMonth();
|
|
37
|
+
return {
|
|
38
|
+
start: new Date(Date.UTC(year, month, 1, 0, 0, 0, 0)),
|
|
39
|
+
end: new Date(Date.UTC(year, month + 1, 1, 0, 0, 0, 0)),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async function getMonthlySpendBySquadIds(squadIds, database = db) {
|
|
43
|
+
if (squadIds.length === 0)
|
|
44
|
+
return new Map();
|
|
45
|
+
const { start, end } = currentUtcMonthWindow();
|
|
46
|
+
const rows = await database
|
|
47
|
+
.select({
|
|
48
|
+
squadId: costEvents.squadId,
|
|
49
|
+
spentMonthlyCents: sql `coalesce(sum(${costEvents.costCents}), 0)::double precision`,
|
|
50
|
+
})
|
|
51
|
+
.from(costEvents)
|
|
52
|
+
.where(and(inArray(costEvents.squadId, squadIds), gte(costEvents.occurredAt, start), lt(costEvents.occurredAt, end)))
|
|
53
|
+
.groupBy(costEvents.squadId);
|
|
54
|
+
return new Map(rows.map((row) => [row.squadId, Number(row.spentMonthlyCents ?? 0)]));
|
|
55
|
+
}
|
|
56
|
+
async function hydrateSquadSpend(rows, database = db) {
|
|
57
|
+
const spendBySquadId = await getMonthlySpendBySquadIds(rows.map((row) => row.id), database);
|
|
58
|
+
return rows.map((row) => ({
|
|
59
|
+
...row,
|
|
60
|
+
spentMonthlyCents: spendBySquadId.get(row.id) ?? 0,
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
function getSquadQuery(database) {
|
|
64
|
+
return database
|
|
65
|
+
.select(squadSelection)
|
|
66
|
+
.from(squads)
|
|
67
|
+
.leftJoin(squadLogos, eq(squadLogos.squadId, squads.id));
|
|
68
|
+
}
|
|
69
|
+
function deriveIssuePrefixBase(name) {
|
|
70
|
+
const normalized = name.toUpperCase().replace(/[^A-Z]/g, "");
|
|
71
|
+
return normalized.slice(0, 3) || ISSUE_PREFIX_FALLBACK;
|
|
72
|
+
}
|
|
73
|
+
function suffixForAttempt(attempt) {
|
|
74
|
+
if (attempt <= 1)
|
|
75
|
+
return "";
|
|
76
|
+
return "A".repeat(attempt - 1);
|
|
77
|
+
}
|
|
78
|
+
function isIssuePrefixConflict(error) {
|
|
79
|
+
const seen = new Set();
|
|
80
|
+
let current = error;
|
|
81
|
+
while (typeof current === "object" && current !== null && !seen.has(current)) {
|
|
82
|
+
seen.add(current);
|
|
83
|
+
const maybe = current;
|
|
84
|
+
const constraint = maybe.constraint ?? maybe.constraint_name;
|
|
85
|
+
if (maybe.code === "23505" && constraint === "squads_issue_prefix_idx") {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
current = maybe.cause;
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
async function createSquadWithUniquePrefix(data) {
|
|
93
|
+
const base = deriveIssuePrefixBase(data.name);
|
|
94
|
+
let suffix = 1;
|
|
95
|
+
while (suffix < 10000) {
|
|
96
|
+
const candidate = `${base}${suffixForAttempt(suffix)}`;
|
|
97
|
+
try {
|
|
98
|
+
const rows = await db
|
|
99
|
+
.insert(squads)
|
|
100
|
+
.values({ ...data, issuePrefix: candidate })
|
|
101
|
+
.returning();
|
|
102
|
+
return rows[0];
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (!isIssuePrefixConflict(error))
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
suffix += 1;
|
|
109
|
+
}
|
|
110
|
+
throw new Error("Unable to allocate unique issue prefix");
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
list: async () => {
|
|
114
|
+
const rows = await getSquadQuery(db);
|
|
115
|
+
const hydrated = await hydrateSquadSpend(rows);
|
|
116
|
+
return hydrated.map((row) => enrichSquad(row));
|
|
117
|
+
},
|
|
118
|
+
getById: async (id) => {
|
|
119
|
+
const row = await getSquadQuery(db)
|
|
120
|
+
.where(eq(squads.id, id))
|
|
121
|
+
.then((rows) => rows[0] ?? null);
|
|
122
|
+
if (!row)
|
|
123
|
+
return null;
|
|
124
|
+
const [hydrated] = await hydrateSquadSpend([row], db);
|
|
125
|
+
return enrichSquad(hydrated);
|
|
126
|
+
},
|
|
127
|
+
create: async (data) => {
|
|
128
|
+
const created = await createSquadWithUniquePrefix(data);
|
|
129
|
+
await environmentsSvc.ensureLocalEnvironment(created.id);
|
|
130
|
+
const row = await getSquadQuery(db)
|
|
131
|
+
.where(eq(squads.id, created.id))
|
|
132
|
+
.then((rows) => rows[0] ?? null);
|
|
133
|
+
if (!row)
|
|
134
|
+
throw notFound("Squad not found after creation");
|
|
135
|
+
const [hydrated] = await hydrateSquadSpend([row], db);
|
|
136
|
+
return enrichSquad(hydrated);
|
|
137
|
+
},
|
|
138
|
+
update: (id, data) => db.transaction(async (tx) => {
|
|
139
|
+
const existing = await getSquadQuery(tx)
|
|
140
|
+
.where(eq(squads.id, id))
|
|
141
|
+
.then((rows) => rows[0] ?? null);
|
|
142
|
+
if (!existing)
|
|
143
|
+
return null;
|
|
144
|
+
const { logoAssetId, ...squadPatch } = data;
|
|
145
|
+
if (logoAssetId !== undefined && logoAssetId !== null) {
|
|
146
|
+
const nextLogoAsset = await tx
|
|
147
|
+
.select({ id: assets.id, squadId: assets.squadId })
|
|
148
|
+
.from(assets)
|
|
149
|
+
.where(eq(assets.id, logoAssetId))
|
|
150
|
+
.then((rows) => rows[0] ?? null);
|
|
151
|
+
if (!nextLogoAsset)
|
|
152
|
+
throw notFound("Logo asset not found");
|
|
153
|
+
if (nextLogoAsset.squadId !== existing.id) {
|
|
154
|
+
throw unprocessable("Logo asset must belong to the same squad");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const updated = await tx
|
|
158
|
+
.update(squads)
|
|
159
|
+
.set({ ...squadPatch, updatedAt: new Date() })
|
|
160
|
+
.where(eq(squads.id, id))
|
|
161
|
+
.returning()
|
|
162
|
+
.then((rows) => rows[0] ?? null);
|
|
163
|
+
if (!updated)
|
|
164
|
+
return null;
|
|
165
|
+
if (logoAssetId === null) {
|
|
166
|
+
await tx.delete(squadLogos).where(eq(squadLogos.squadId, id));
|
|
167
|
+
}
|
|
168
|
+
else if (logoAssetId !== undefined) {
|
|
169
|
+
await tx
|
|
170
|
+
.insert(squadLogos)
|
|
171
|
+
.values({
|
|
172
|
+
squadId: id,
|
|
173
|
+
assetId: logoAssetId,
|
|
174
|
+
})
|
|
175
|
+
.onConflictDoUpdate({
|
|
176
|
+
target: squadLogos.squadId,
|
|
177
|
+
set: {
|
|
178
|
+
assetId: logoAssetId,
|
|
179
|
+
updatedAt: new Date(),
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
if (logoAssetId !== undefined && existing.logoAssetId && existing.logoAssetId !== logoAssetId) {
|
|
184
|
+
await tx.delete(assets).where(eq(assets.id, existing.logoAssetId));
|
|
185
|
+
}
|
|
186
|
+
const [hydrated] = await hydrateSquadSpend([{
|
|
187
|
+
...updated,
|
|
188
|
+
logoAssetId: logoAssetId === undefined ? existing.logoAssetId : logoAssetId,
|
|
189
|
+
}], tx);
|
|
190
|
+
return enrichSquad(hydrated);
|
|
191
|
+
}),
|
|
192
|
+
archive: (id) => db.transaction(async (tx) => {
|
|
193
|
+
const updated = await tx
|
|
194
|
+
.update(squads)
|
|
195
|
+
.set({ status: "archived", updatedAt: new Date() })
|
|
196
|
+
.where(eq(squads.id, id))
|
|
197
|
+
.returning()
|
|
198
|
+
.then((rows) => rows[0] ?? null);
|
|
199
|
+
if (!updated)
|
|
200
|
+
return null;
|
|
201
|
+
const row = await getSquadQuery(tx)
|
|
202
|
+
.where(eq(squads.id, id))
|
|
203
|
+
.then((rows) => rows[0] ?? null);
|
|
204
|
+
if (!row)
|
|
205
|
+
return null;
|
|
206
|
+
const [hydrated] = await hydrateSquadSpend([row], tx);
|
|
207
|
+
return enrichSquad(hydrated);
|
|
208
|
+
}),
|
|
209
|
+
remove: (id) => db.transaction(async (tx) => {
|
|
210
|
+
// Delete from child tables in dependency order
|
|
211
|
+
const squadRunIds = await tx
|
|
212
|
+
.select({ id: heartbeatRuns.id })
|
|
213
|
+
.from(heartbeatRuns)
|
|
214
|
+
.where(eq(heartbeatRuns.squadId, id));
|
|
215
|
+
await tx.delete(heartbeatRunEvents).where(eq(heartbeatRunEvents.squadId, id));
|
|
216
|
+
if (squadRunIds.length > 0) {
|
|
217
|
+
await tx
|
|
218
|
+
.delete(heartbeatRunEvents)
|
|
219
|
+
.where(inArray(heartbeatRunEvents.runId, squadRunIds.map((run) => run.id)));
|
|
220
|
+
}
|
|
221
|
+
await tx.delete(agentTaskSessions).where(eq(agentTaskSessions.squadId, id));
|
|
222
|
+
await tx.delete(activityLog).where(eq(activityLog.squadId, id));
|
|
223
|
+
await tx.delete(heartbeatRuns).where(eq(heartbeatRuns.squadId, id));
|
|
224
|
+
await tx.delete(agentWakeupRequests).where(eq(agentWakeupRequests.squadId, id));
|
|
225
|
+
await tx.delete(agentApiKeys).where(eq(agentApiKeys.squadId, id));
|
|
226
|
+
await tx.delete(agentRuntimeState).where(eq(agentRuntimeState.squadId, id));
|
|
227
|
+
await tx.delete(issueComments).where(eq(issueComments.squadId, id));
|
|
228
|
+
await tx.delete(costEvents).where(eq(costEvents.squadId, id));
|
|
229
|
+
await tx.delete(financeEvents).where(eq(financeEvents.squadId, id));
|
|
230
|
+
await tx.delete(approvalComments).where(eq(approvalComments.squadId, id));
|
|
231
|
+
await tx.delete(approvals).where(eq(approvals.squadId, id));
|
|
232
|
+
await tx.delete(squadSecrets).where(eq(squadSecrets.squadId, id));
|
|
233
|
+
await tx.delete(joinRequests).where(eq(joinRequests.squadId, id));
|
|
234
|
+
await tx.delete(invites).where(eq(invites.squadId, id));
|
|
235
|
+
await tx.delete(principalPermissionGrants).where(eq(principalPermissionGrants.squadId, id));
|
|
236
|
+
await tx.delete(squadMemberships).where(eq(squadMemberships.squadId, id));
|
|
237
|
+
await tx.delete(squadSkills).where(eq(squadSkills.squadId, id));
|
|
238
|
+
await tx.delete(issueReadStates).where(eq(issueReadStates.squadId, id));
|
|
239
|
+
await tx.delete(documents).where(eq(documents.squadId, id));
|
|
240
|
+
await tx.delete(issues).where(eq(issues.squadId, id));
|
|
241
|
+
await tx.delete(squadLogos).where(eq(squadLogos.squadId, id));
|
|
242
|
+
await tx.delete(assets).where(eq(assets.squadId, id));
|
|
243
|
+
await tx.delete(goals).where(eq(goals.squadId, id));
|
|
244
|
+
await tx.delete(projects).where(eq(projects.squadId, id));
|
|
245
|
+
await tx.delete(agents).where(eq(agents.squadId, id));
|
|
246
|
+
const rows = await tx
|
|
247
|
+
.delete(squads)
|
|
248
|
+
.where(eq(squads.id, id))
|
|
249
|
+
.returning();
|
|
250
|
+
return rows[0] ?? null;
|
|
251
|
+
}),
|
|
252
|
+
stats: () => Promise.all([
|
|
253
|
+
db
|
|
254
|
+
.select({ squadId: agents.squadId, count: count() })
|
|
255
|
+
.from(agents)
|
|
256
|
+
.groupBy(agents.squadId),
|
|
257
|
+
db
|
|
258
|
+
.select({ squadId: issues.squadId, count: count() })
|
|
259
|
+
.from(issues)
|
|
260
|
+
.groupBy(issues.squadId),
|
|
261
|
+
]).then(([agentRows, issueRows]) => {
|
|
262
|
+
const result = {};
|
|
263
|
+
for (const row of agentRows) {
|
|
264
|
+
result[row.squadId] = { agentCount: row.count, issueCount: 0 };
|
|
265
|
+
}
|
|
266
|
+
for (const row of issueRows) {
|
|
267
|
+
if (result[row.squadId]) {
|
|
268
|
+
result[row.squadId].issueCount = row.count;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
result[row.squadId] = { agentCount: 0, issueCount: row.count };
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return result;
|
|
275
|
+
}),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=squads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"squads.js","sourceRoot":"","sources":["../../src/services/squads.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F3 — wake-cycle guard.
|
|
3
|
+
*
|
|
4
|
+
* Problem: agents wake each other (and, on status flips, themselves) via issue
|
|
5
|
+
* comments with no loop detection. Agent A comments mentioning B → B wakes,
|
|
6
|
+
* comments mentioning A → A wakes → forever, with no issue state change in
|
|
7
|
+
* between. See DESIGN-reliability-and-cost-control.md, RC-3.
|
|
8
|
+
*
|
|
9
|
+
* This guard tracks recent automation wake edges per issue. If the same
|
|
10
|
+
* (requester → target) edge fires more than a threshold within a window WITHOUT
|
|
11
|
+
* the issue's state advancing, further auto-wakes on that edge are suppressed
|
|
12
|
+
* and the issue is flagged for human attention. Any real state change
|
|
13
|
+
* (status/assignee/etc.) clears the counters, so productive back-and-forth is
|
|
14
|
+
* never throttled — only sterile ping-pong is.
|
|
15
|
+
*
|
|
16
|
+
* Process-local; the issue-mutation routes run in one server process.
|
|
17
|
+
*/
|
|
18
|
+
export declare const WAKE_CYCLE_WINDOW_MS: number;
|
|
19
|
+
/** Max repeats of one (requester→target) edge on one issue within the window. */
|
|
20
|
+
export declare const WAKE_CYCLE_MAX_REPEATS = 4;
|
|
21
|
+
export declare class WakeCycleGuard {
|
|
22
|
+
private issues;
|
|
23
|
+
/**
|
|
24
|
+
* Call when an issue's state meaningfully changes (status, assignee, etc.).
|
|
25
|
+
* Resets the cycle counters for that issue so productive work isn't throttled.
|
|
26
|
+
*/
|
|
27
|
+
noteStateChange(issueId: string, stateToken: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Decide whether an automation wake should fire. Returns true to allow, false
|
|
30
|
+
* to suppress. `requesterId` is the actor that triggered the wake (the comment
|
|
31
|
+
* author / mention source); `targetAgentId` is who would be woken.
|
|
32
|
+
*/
|
|
33
|
+
shouldAllow(input: {
|
|
34
|
+
issueId: string;
|
|
35
|
+
requesterId: string | null;
|
|
36
|
+
targetAgentId: string;
|
|
37
|
+
now?: number;
|
|
38
|
+
}): boolean;
|
|
39
|
+
/** Test/ops helper. */
|
|
40
|
+
reset(): void;
|
|
41
|
+
}
|
|
42
|
+
/** Shared process-local instance for the issue routes. */
|
|
43
|
+
export declare const wakeCycleGuard: WakeCycleGuard;
|
|
44
|
+
//# sourceMappingURL=wake-cycle-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-cycle-guard.d.ts","sourceRoot":"","sources":["../../src/services/wake-cycle-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,oBAAoB,QAAgB,CAAC;AAClD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAkBxC,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAqC;IAEnD;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAY1D;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,OAAO;IA4BX,uBAAuB;IACvB,KAAK,IAAI,IAAI;CAGd;AAED,0DAA0D;AAC1D,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F3 — wake-cycle guard.
|
|
3
|
+
*
|
|
4
|
+
* Problem: agents wake each other (and, on status flips, themselves) via issue
|
|
5
|
+
* comments with no loop detection. Agent A comments mentioning B → B wakes,
|
|
6
|
+
* comments mentioning A → A wakes → forever, with no issue state change in
|
|
7
|
+
* between. See DESIGN-reliability-and-cost-control.md, RC-3.
|
|
8
|
+
*
|
|
9
|
+
* This guard tracks recent automation wake edges per issue. If the same
|
|
10
|
+
* (requester → target) edge fires more than a threshold within a window WITHOUT
|
|
11
|
+
* the issue's state advancing, further auto-wakes on that edge are suppressed
|
|
12
|
+
* and the issue is flagged for human attention. Any real state change
|
|
13
|
+
* (status/assignee/etc.) clears the counters, so productive back-and-forth is
|
|
14
|
+
* never throttled — only sterile ping-pong is.
|
|
15
|
+
*
|
|
16
|
+
* Process-local; the issue-mutation routes run in one server process.
|
|
17
|
+
*/
|
|
18
|
+
export const WAKE_CYCLE_WINDOW_MS = 5 * 60 * 1000;
|
|
19
|
+
/** Max repeats of one (requester→target) edge on one issue within the window. */
|
|
20
|
+
export const WAKE_CYCLE_MAX_REPEATS = 4;
|
|
21
|
+
function edgeKey(requesterId, targetAgentId) {
|
|
22
|
+
return `${requesterId}->${targetAgentId}`;
|
|
23
|
+
}
|
|
24
|
+
export class WakeCycleGuard {
|
|
25
|
+
issues = new Map();
|
|
26
|
+
/**
|
|
27
|
+
* Call when an issue's state meaningfully changes (status, assignee, etc.).
|
|
28
|
+
* Resets the cycle counters for that issue so productive work isn't throttled.
|
|
29
|
+
*/
|
|
30
|
+
noteStateChange(issueId, stateToken) {
|
|
31
|
+
const existing = this.issues.get(issueId);
|
|
32
|
+
if (!existing) {
|
|
33
|
+
this.issues.set(issueId, { stateToken, edges: new Map() });
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (existing.stateToken !== stateToken) {
|
|
37
|
+
existing.stateToken = stateToken;
|
|
38
|
+
existing.edges.clear();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Decide whether an automation wake should fire. Returns true to allow, false
|
|
43
|
+
* to suppress. `requesterId` is the actor that triggered the wake (the comment
|
|
44
|
+
* author / mention source); `targetAgentId` is who would be woken.
|
|
45
|
+
*/
|
|
46
|
+
shouldAllow(input) {
|
|
47
|
+
// System/user-initiated wakes (no agent requester) are never throttled.
|
|
48
|
+
if (!input.requesterId)
|
|
49
|
+
return true;
|
|
50
|
+
// Self-edges are handled upstream; don't double-count.
|
|
51
|
+
if (input.requesterId === input.targetAgentId)
|
|
52
|
+
return true;
|
|
53
|
+
const now = input.now ?? Date.now();
|
|
54
|
+
let state = this.issues.get(input.issueId);
|
|
55
|
+
if (!state) {
|
|
56
|
+
state = { stateToken: null, edges: new Map() };
|
|
57
|
+
this.issues.set(input.issueId, state);
|
|
58
|
+
}
|
|
59
|
+
const key = edgeKey(input.requesterId, input.targetAgentId);
|
|
60
|
+
const rec = state.edges.get(key);
|
|
61
|
+
if (!rec || now - rec.firstAt > WAKE_CYCLE_WINDOW_MS) {
|
|
62
|
+
state.edges.set(key, { count: 1, firstAt: now, lastAt: now });
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
rec.count += 1;
|
|
66
|
+
rec.lastAt = now;
|
|
67
|
+
if (rec.count > WAKE_CYCLE_MAX_REPEATS) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
/** Test/ops helper. */
|
|
73
|
+
reset() {
|
|
74
|
+
this.issues.clear();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Shared process-local instance for the issue routes. */
|
|
78
|
+
export const wakeCycleGuard = new WakeCycleGuard();
|
|
79
|
+
//# sourceMappingURL=wake-cycle-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-cycle-guard.js","sourceRoot":"","sources":["../../src/services/wake-cycle-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAClD,iFAAiF;AACjF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAcxC,SAAS,OAAO,CAAC,WAAmB,EAAE,aAAqB;IACzD,OAAO,GAAG,WAAW,KAAK,aAAa,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEnD;;;OAGG;IACH,eAAe,CAAC,OAAe,EAAE,UAAkB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACvC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAKX;QACC,wEAAwE;QACxE,IAAI,CAAC,KAAK,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACpC,uDAAuD;QACvD,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAE3D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,oBAAoB,EAAE,CAAC;YACrD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,IAAI,GAAG,CAAC,KAAK,GAAG,sBAAsB,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;IACvB,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-cycle-guard.test.d.ts","sourceRoot":"","sources":["../../src/services/wake-cycle-guard.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { WakeCycleGuard, WAKE_CYCLE_MAX_REPEATS, WAKE_CYCLE_WINDOW_MS } from "./wake-cycle-guard.js";
|
|
3
|
+
describe("WakeCycleGuard", () => {
|
|
4
|
+
it("allows system/user-initiated wakes (no agent requester) unconditionally", () => {
|
|
5
|
+
const g = new WakeCycleGuard();
|
|
6
|
+
for (let i = 0; i < 100; i++) {
|
|
7
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: null, targetAgentId: "b" })).toBe(true);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
it("allows up to the threshold then suppresses a repeated A->B edge", () => {
|
|
11
|
+
const g = new WakeCycleGuard();
|
|
12
|
+
const now = Date.now();
|
|
13
|
+
const calls = [];
|
|
14
|
+
for (let i = 0; i <= WAKE_CYCLE_MAX_REPEATS + 1; i++) {
|
|
15
|
+
calls.push(g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + i }));
|
|
16
|
+
}
|
|
17
|
+
// The guard allows the edge while count <= MAX_REPEATS, i.e. the first
|
|
18
|
+
// WAKE_CYCLE_MAX_REPEATS attempts; the next one trips the suppression.
|
|
19
|
+
const allowedCount = calls.filter(Boolean).length;
|
|
20
|
+
expect(allowedCount).toBe(WAKE_CYCLE_MAX_REPEATS);
|
|
21
|
+
expect(calls[calls.length - 1]).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
it("a real state change resets the counters (productive back-and-forth is not throttled)", () => {
|
|
24
|
+
const g = new WakeCycleGuard();
|
|
25
|
+
const now = Date.now();
|
|
26
|
+
for (let i = 0; i < WAKE_CYCLE_MAX_REPEATS + 2; i++) {
|
|
27
|
+
g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + i });
|
|
28
|
+
}
|
|
29
|
+
// suppressed now
|
|
30
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + 50 })).toBe(false);
|
|
31
|
+
// state advances -> counters clear -> allowed again
|
|
32
|
+
g.noteStateChange("i1", "in_progress:agent-b");
|
|
33
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + 60 })).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it("counts edges independently per issue and per direction", () => {
|
|
36
|
+
const g = new WakeCycleGuard();
|
|
37
|
+
const now = Date.now();
|
|
38
|
+
// saturate A->B on issue i1
|
|
39
|
+
for (let i = 0; i < WAKE_CYCLE_MAX_REPEATS + 2; i++) {
|
|
40
|
+
g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + i });
|
|
41
|
+
}
|
|
42
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + 99 })).toBe(false);
|
|
43
|
+
// B->A on the same issue is a different edge -> allowed
|
|
44
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: "b", targetAgentId: "a", now: now + 99 })).toBe(true);
|
|
45
|
+
// A->B on a different issue -> allowed
|
|
46
|
+
expect(g.shouldAllow({ issueId: "i2", requesterId: "a", targetAgentId: "b", now: now + 99 })).toBe(true);
|
|
47
|
+
});
|
|
48
|
+
it("resets the edge window after it elapses", () => {
|
|
49
|
+
const g = new WakeCycleGuard();
|
|
50
|
+
const now = Date.now();
|
|
51
|
+
for (let i = 0; i < WAKE_CYCLE_MAX_REPEATS + 2; i++) {
|
|
52
|
+
g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + i });
|
|
53
|
+
}
|
|
54
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: now + 50 })).toBe(false);
|
|
55
|
+
// after the window, the edge record is stale -> allowed again
|
|
56
|
+
const later = now + WAKE_CYCLE_WINDOW_MS + 1;
|
|
57
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "b", now: later })).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it("never throttles a self-edge (handled upstream)", () => {
|
|
60
|
+
const g = new WakeCycleGuard();
|
|
61
|
+
const now = Date.now();
|
|
62
|
+
for (let i = 0; i < 50; i++) {
|
|
63
|
+
expect(g.shouldAllow({ issueId: "i1", requesterId: "a", targetAgentId: "a", now: now + i })).toBe(true);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=wake-cycle-guard.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-cycle-guard.test.js","sourceRoot":"","sources":["../../src/services/wake-cycle-guard.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Db } from "@slaw-ai/db";
|
|
2
|
+
import { issueWorkProducts } from "@slaw-ai/db";
|
|
3
|
+
import type { IssueWorkProduct } from "@slaw-ai/shared";
|
|
4
|
+
type IssueWorkProductRow = typeof issueWorkProducts.$inferSelect;
|
|
5
|
+
declare function toIssueWorkProduct(row: IssueWorkProductRow): IssueWorkProduct;
|
|
6
|
+
export declare function workProductService(db: Db): {
|
|
7
|
+
listForIssue: (issueId: string) => Promise<IssueWorkProduct[]>;
|
|
8
|
+
getById: (id: string) => Promise<IssueWorkProduct | null>;
|
|
9
|
+
createForIssue: (issueId: string, squadId: string, data: Omit<typeof issueWorkProducts.$inferInsert, "issueId" | "squadId">) => Promise<IssueWorkProduct | null>;
|
|
10
|
+
update: (id: string, patch: Partial<typeof issueWorkProducts.$inferInsert>) => Promise<IssueWorkProduct | null>;
|
|
11
|
+
remove: (id: string) => Promise<IssueWorkProduct | null>;
|
|
12
|
+
};
|
|
13
|
+
export { toIssueWorkProduct };
|
|
14
|
+
//# sourceMappingURL=work-products.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-products.d.ts","sourceRoot":"","sources":["../../src/services/work-products.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,mBAAmB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC;AAEjE,iBAAS,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,gBAAgB,CAuBtE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE;4BAEP,MAAM;kBAShB,MAAM;8BASM,MAAM,WAAW,MAAM,QAAQ,IAAI,CAAC,OAAO,iBAAiB,CAAC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;iBA2B9G,MAAM,SAAS,OAAO,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC;iBAgC7D,MAAM;EAS5B;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { and, desc, eq } from "drizzle-orm";
|
|
2
|
+
import { issueWorkProducts } from "@slaw-ai/db";
|
|
3
|
+
function toIssueWorkProduct(row) {
|
|
4
|
+
return {
|
|
5
|
+
id: row.id,
|
|
6
|
+
squadId: row.squadId,
|
|
7
|
+
projectId: row.projectId ?? null,
|
|
8
|
+
issueId: row.issueId,
|
|
9
|
+
executionWorkspaceId: row.executionWorkspaceId ?? null,
|
|
10
|
+
runtimeServiceId: row.runtimeServiceId ?? null,
|
|
11
|
+
type: row.type,
|
|
12
|
+
provider: row.provider,
|
|
13
|
+
externalId: row.externalId ?? null,
|
|
14
|
+
title: row.title,
|
|
15
|
+
url: row.url ?? null,
|
|
16
|
+
status: row.status,
|
|
17
|
+
reviewState: row.reviewState,
|
|
18
|
+
isPrimary: row.isPrimary,
|
|
19
|
+
healthStatus: row.healthStatus,
|
|
20
|
+
summary: row.summary ?? null,
|
|
21
|
+
metadata: row.metadata ?? null,
|
|
22
|
+
createdByRunId: row.createdByRunId ?? null,
|
|
23
|
+
createdAt: row.createdAt,
|
|
24
|
+
updatedAt: row.updatedAt,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function workProductService(db) {
|
|
28
|
+
return {
|
|
29
|
+
listForIssue: async (issueId) => {
|
|
30
|
+
const rows = await db
|
|
31
|
+
.select()
|
|
32
|
+
.from(issueWorkProducts)
|
|
33
|
+
.where(eq(issueWorkProducts.issueId, issueId))
|
|
34
|
+
.orderBy(desc(issueWorkProducts.isPrimary), desc(issueWorkProducts.updatedAt));
|
|
35
|
+
return rows.map(toIssueWorkProduct);
|
|
36
|
+
},
|
|
37
|
+
getById: async (id) => {
|
|
38
|
+
const row = await db
|
|
39
|
+
.select()
|
|
40
|
+
.from(issueWorkProducts)
|
|
41
|
+
.where(eq(issueWorkProducts.id, id))
|
|
42
|
+
.then((rows) => rows[0] ?? null);
|
|
43
|
+
return row ? toIssueWorkProduct(row) : null;
|
|
44
|
+
},
|
|
45
|
+
createForIssue: async (issueId, squadId, data) => {
|
|
46
|
+
const row = await db.transaction(async (tx) => {
|
|
47
|
+
if (data.isPrimary) {
|
|
48
|
+
await tx
|
|
49
|
+
.update(issueWorkProducts)
|
|
50
|
+
.set({ isPrimary: false, updatedAt: new Date() })
|
|
51
|
+
.where(and(eq(issueWorkProducts.squadId, squadId), eq(issueWorkProducts.issueId, issueId), eq(issueWorkProducts.type, data.type)));
|
|
52
|
+
}
|
|
53
|
+
return await tx
|
|
54
|
+
.insert(issueWorkProducts)
|
|
55
|
+
.values({
|
|
56
|
+
...data,
|
|
57
|
+
squadId,
|
|
58
|
+
issueId,
|
|
59
|
+
})
|
|
60
|
+
.returning()
|
|
61
|
+
.then((rows) => rows[0] ?? null);
|
|
62
|
+
});
|
|
63
|
+
return row ? toIssueWorkProduct(row) : null;
|
|
64
|
+
},
|
|
65
|
+
update: async (id, patch) => {
|
|
66
|
+
const row = await db.transaction(async (tx) => {
|
|
67
|
+
const existing = await tx
|
|
68
|
+
.select()
|
|
69
|
+
.from(issueWorkProducts)
|
|
70
|
+
.where(eq(issueWorkProducts.id, id))
|
|
71
|
+
.then((rows) => rows[0] ?? null);
|
|
72
|
+
if (!existing)
|
|
73
|
+
return null;
|
|
74
|
+
if (patch.isPrimary === true) {
|
|
75
|
+
await tx
|
|
76
|
+
.update(issueWorkProducts)
|
|
77
|
+
.set({ isPrimary: false, updatedAt: new Date() })
|
|
78
|
+
.where(and(eq(issueWorkProducts.squadId, existing.squadId), eq(issueWorkProducts.issueId, existing.issueId), eq(issueWorkProducts.type, existing.type)));
|
|
79
|
+
}
|
|
80
|
+
return await tx
|
|
81
|
+
.update(issueWorkProducts)
|
|
82
|
+
.set({ ...patch, updatedAt: new Date() })
|
|
83
|
+
.where(eq(issueWorkProducts.id, id))
|
|
84
|
+
.returning()
|
|
85
|
+
.then((rows) => rows[0] ?? null);
|
|
86
|
+
});
|
|
87
|
+
return row ? toIssueWorkProduct(row) : null;
|
|
88
|
+
},
|
|
89
|
+
remove: async (id) => {
|
|
90
|
+
const row = await db
|
|
91
|
+
.delete(issueWorkProducts)
|
|
92
|
+
.where(eq(issueWorkProducts.id, id))
|
|
93
|
+
.returning()
|
|
94
|
+
.then((rows) => rows[0] ?? null);
|
|
95
|
+
return row ? toIssueWorkProduct(row) : null;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export { toIssueWorkProduct };
|
|
100
|
+
//# sourceMappingURL=work-products.js.map
|