devchain-cli 0.22.1 → 0.23.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/dist/drizzle/0077_familiar_morbius.sql +6 -0
- package/dist/drizzle/0078_preserve_legacy_connection_ownership.sql +180 -0
- package/dist/drizzle/0079_premium_forgotten_one.sql +18 -0
- package/dist/drizzle/0080_lethal_thunderbolt_ross.sql +49 -0
- package/dist/drizzle/0081_early_kronos.sql +58 -0
- package/dist/drizzle/0082_huge_black_queen.sql +14 -0
- package/dist/drizzle/meta/0077_snapshot.json +6957 -0
- package/dist/drizzle/meta/0078_snapshot.json +6957 -0
- package/dist/drizzle/meta/0079_snapshot.json +7093 -0
- package/dist/drizzle/meta/0080_snapshot.json +7241 -0
- package/dist/drizzle/meta/0081_snapshot.json +7482 -0
- package/dist/drizzle/meta/0082_snapshot.json +7571 -0
- package/dist/drizzle/meta/_journal.json +42 -0
- package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
- package/dist/server/common/errors/error-types.d.ts +7 -0
- package/dist/server/common/errors/error-types.js +7 -1
- package/dist/server/common/errors/error-types.js.map +1 -1
- package/dist/server/modules/epic-time/controllers/agent-time-buffer.controller.d.ts +8 -0
- package/dist/server/modules/epic-time/controllers/agent-time-buffer.controller.js +67 -0
- package/dist/server/modules/epic-time/controllers/agent-time-buffer.controller.js.map +1 -0
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.d.ts +12 -0
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js +322 -0
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js.map +1 -0
- package/dist/server/modules/epic-time/epic-time.module.js +14 -4
- package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
- package/dist/server/modules/epic-time/models/epic-time-daily-allocator.d.ts +30 -0
- package/dist/server/modules/epic-time/models/epic-time-daily-allocator.js +125 -0
- package/dist/server/modules/epic-time/models/epic-time-daily-allocator.js.map +1 -0
- package/dist/server/modules/epic-time/models/epic-time-local-day.d.ts +9 -0
- package/dist/server/modules/epic-time/models/epic-time-local-day.js +164 -0
- package/dist/server/modules/epic-time/models/epic-time-local-day.js.map +1 -0
- package/dist/server/modules/epic-time/models/epic-time.models.d.ts +138 -0
- package/dist/server/modules/epic-time/models/epic-time.models.js +2 -0
- package/dist/server/modules/epic-time/models/epic-time.models.js.map +1 -1
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +1 -0
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +31 -8
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +37 -0
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js +716 -0
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -0
- package/dist/server/modules/epic-time/services/epic-time.service.d.ts +12 -3
- package/dist/server/modules/epic-time/services/epic-time.service.js +155 -69
- package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
- package/dist/server/modules/epic-time/services/epic-time.store.d.ts +29 -3
- package/dist/server/modules/epic-time/services/epic-time.store.js +524 -40
- package/dist/server/modules/epic-time/services/epic-time.store.js.map +1 -1
- package/dist/server/modules/epics/controllers/epics.controller.d.ts +10 -1
- package/dist/server/modules/epics/controllers/epics.controller.js +108 -2
- package/dist/server/modules/epics/controllers/epics.controller.js.map +1 -1
- package/dist/server/modules/epics/epics.module.js +8 -2
- package/dist/server/modules/epics/epics.module.js.map +1 -1
- package/dist/server/modules/epics/models/epic-relations.models.d.ts +34 -0
- package/dist/server/modules/epics/models/epic-relations.models.js +16 -0
- package/dist/server/modules/epics/models/epic-relations.models.js.map +1 -0
- package/dist/server/modules/epics/services/epic-relation-target-resolver.d.ts +8 -0
- package/dist/server/modules/epics/services/epic-relation-target-resolver.js +37 -0
- package/dist/server/modules/epics/services/epic-relation-target-resolver.js.map +1 -0
- package/dist/server/modules/epics/services/epic-relations.service.d.ts +52 -0
- package/dist/server/modules/epics/services/epic-relations.service.js +135 -0
- package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -0
- package/dist/server/modules/epics/services/epics.service.d.ts +9 -2
- package/dist/server/modules/epics/services/epics.service.js +115 -11
- package/dist/server/modules/epics/services/epics.service.js.map +1 -1
- package/dist/server/modules/events/catalog/broadcast-registry.js +16 -0
- package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
- package/dist/server/modules/events/catalog/epic.relations.invalidated.d.ts +12 -0
- package/dist/server/modules/events/catalog/epic.relations.invalidated.js +13 -0
- package/dist/server/modules/events/catalog/epic.relations.invalidated.js.map +1 -0
- package/dist/server/modules/events/catalog/epic.time.scope.invalidated.d.ts +12 -0
- package/dist/server/modules/events/catalog/epic.time.scope.invalidated.js +13 -0
- package/dist/server/modules/events/catalog/epic.time.scope.invalidated.js.map +1 -0
- package/dist/server/modules/events/catalog/index.d.ts +27 -4
- package/dist/server/modules/events/catalog/index.js +6 -0
- package/dist/server/modules/events/catalog/index.js.map +1 -1
- package/dist/server/modules/events/catalog/integration.connection.created.d.ts +4 -1
- package/dist/server/modules/events/catalog/integration.connection.created.js +5 -2
- package/dist/server/modules/events/catalog/integration.connection.created.js.map +1 -1
- package/dist/server/modules/events/catalog/integration.connection.deleted.d.ts +4 -1
- package/dist/server/modules/events/catalog/integration.connection.deleted.js +5 -2
- package/dist/server/modules/events/catalog/integration.connection.deleted.js.map +1 -1
- package/dist/server/modules/events/catalog/integration.connection.legacy.d.ts +85 -0
- package/dist/server/modules/events/catalog/integration.connection.legacy.js +41 -0
- package/dist/server/modules/events/catalog/integration.connection.legacy.js.map +1 -0
- package/dist/server/modules/events/catalog/integration.connection.updated.d.ts +4 -1
- package/dist/server/modules/events/catalog/integration.connection.updated.js +5 -2
- package/dist/server/modules/events/catalog/integration.connection.updated.js.map +1 -1
- package/dist/server/modules/events/services/committed-event-replay.d.ts +10 -0
- package/dist/server/modules/events/services/committed-event-replay.js +30 -0
- package/dist/server/modules/events/services/committed-event-replay.js.map +1 -0
- package/dist/server/modules/events/services/committed-event.store.d.ts +1 -0
- package/dist/server/modules/events/services/committed-event.store.js +12 -7
- package/dist/server/modules/events/services/committed-event.store.js.map +1 -1
- package/dist/server/modules/events/services/durable-event-registry.service.d.ts +9 -2
- package/dist/server/modules/events/services/durable-event-registry.service.js.map +1 -1
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +7 -0
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +158 -50
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +4 -0
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +73 -33
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
- package/dist/server/modules/external-integrations/connections/integration-connections.controller.d.ts +6 -3
- package/dist/server/modules/external-integrations/connections/integration-connections.controller.js +67 -12
- package/dist/server/modules/external-integrations/connections/integration-connections.controller.js.map +1 -1
- package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +35 -3
- package/dist/server/modules/external-integrations/connections/integration-connections.service.js +178 -17
- package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
- package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.d.ts +6 -3
- package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.js +51 -11
- package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.js.map +1 -1
- package/dist/server/modules/external-integrations/external-integrations.module.js +6 -1
- package/dist/server/modules/external-integrations/external-integrations.module.js.map +1 -1
- package/dist/server/modules/external-integrations/models/external-edit-session.models.d.ts +1 -0
- package/dist/server/modules/external-integrations/models/external-provider.models.d.ts +6 -2
- package/dist/server/modules/external-integrations/models/external-provider.models.js +2 -3
- package/dist/server/modules/external-integrations/models/external-provider.models.js.map +1 -1
- package/dist/server/modules/external-integrations/models/external-time-mutation.models.d.ts +33 -2
- package/dist/server/modules/external-integrations/models/external-time-mutation.models.js +14 -0
- package/dist/server/modules/external-integrations/models/external-time-mutation.models.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +10 -9
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js +81 -46
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.d.ts +22 -20
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js +136 -64
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.d.ts +7 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js +289 -4
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +12 -7
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js +114 -54
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +19 -6
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js +346 -46
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.d.ts +2 -1
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js +3 -2
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js.map +1 -1
- package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.d.ts +6 -1
- package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.js +19 -0
- package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.js.map +1 -1
- package/dist/server/modules/external-integrations/sessions/provider-operation-gate.d.ts +15 -2
- package/dist/server/modules/external-integrations/sessions/provider-operation-gate.js +33 -6
- package/dist/server/modules/external-integrations/sessions/provider-operation-gate.js.map +1 -1
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +13 -6
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js +212 -75
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.d.ts +13 -4
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.js +98 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.js.map +1 -1
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +10 -4
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js +57 -18
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
- package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +139 -0
- package/dist/server/modules/mcp/dtos/mcp.dto.js +41 -1
- package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/epic-context.d.ts +2 -0
- package/dist/server/modules/mcp/services/handlers/epic-tools.d.ts +4 -0
- package/dist/server/modules/mcp/services/handlers/epic-tools.js +275 -0
- package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +2 -1
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +13 -8
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +1 -1
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +1 -1
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +2 -0
- package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/epic.bindings.js +6 -0
- package/dist/server/modules/mcp/tool-descriptors/epic.bindings.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js +132 -0
- package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js.map +1 -1
- package/dist/server/modules/projects/controllers/projects.controller.js +1 -4
- package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
- package/dist/server/modules/projects/projects.module.js +2 -0
- package/dist/server/modules/projects/projects.module.js.map +1 -1
- package/dist/server/modules/projects/services/projects.service.d.ts +4 -1
- package/dist/server/modules/projects/services/projects.service.js +23 -2
- package/dist/server/modules/projects/services/projects.service.js.map +1 -1
- package/dist/server/modules/providers/adapters/claude.adapter.d.ts +4 -2
- package/dist/server/modules/providers/adapters/claude.adapter.js +31 -0
- package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
- package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +7 -0
- package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +69 -4
- package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +452 -56
- package/dist/server/modules/session-reader/services/session-reader.service.d.ts +2 -0
- package/dist/server/modules/session-reader/services/session-reader.service.js +85 -9
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-path-validator.service.js +8 -2
- package/dist/server/modules/session-reader/services/transcript-path-validator.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +44 -17
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +1 -0
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +1 -0
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +11 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/utils/claude-config.d.ts +4 -1
- package/dist/server/modules/sessions/utils/claude-config.js +265 -60
- package/dist/server/modules/sessions/utils/claude-config.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +1109 -98
- package/dist/server/modules/storage/db/schema.js +141 -3
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/db/sqlite-json.d.ts +1 -0
- package/dist/server/modules/storage/db/sqlite-json.js +4 -0
- package/dist/server/modules/storage/db/sqlite-json.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +58 -10
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +30 -5
- package/dist/server/modules/storage/local/delegates/epic.delegate.js +718 -14
- package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +52 -0
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +659 -0
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -0
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +17 -4
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +23 -8
- package/dist/server/modules/storage/local/delegates/integration.delegate.js +238 -52
- package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +2 -0
- package/dist/server/modules/storage/local/delegates/project.delegate.js +180 -130
- package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/local-storage.service.d.ts +45 -10
- package/dist/server/modules/storage/local/local-storage.service.js +99 -15
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +170 -0
- package/dist/server/modules/storage/models/domain.models.js +9 -0
- package/dist/server/modules/storage/models/domain.models.js.map +1 -1
- package/dist/server/templates/teams-dev.json +310 -300
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ExternalRichEditor-DMtnZIMZ.js → ExternalRichEditor-BG9SopK8.js} +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-BmyiM5IR.js → ReviewDetailPage-DNo7Qx3m.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-CQ87BMwT.js → ReviewsPage-Cay-IObR.js} +1 -1
- package/dist/server/ui/assets/index-C1Fdqua-.js +1197 -0
- package/dist/server/ui/assets/index-CV8ydm7w.css +32 -0
- package/dist/server/ui/assets/{useReviewSubscription-DjbEUzt4.js → useReviewSubscription-sAAfh4k9.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +310 -300
- package/package.json +16 -2
- package/dist/server/ui/assets/index-BX6Yze-A.js +0 -1177
- package/dist/server/ui/assets/index-qoQEv_u4.css +0 -32
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
DROP INDEX `integration_connections_provider_unique`;--> statement-breakpoint
|
|
2
|
+
ALTER TABLE `integration_connections` ADD `project_id` text REFERENCES projects(id) ON DELETE CASCADE;--> statement-breakpoint
|
|
3
|
+
ALTER TABLE `integration_connections` ADD `legacy_source_connection_id` text;--> statement-breakpoint
|
|
4
|
+
CREATE UNIQUE INDEX `integration_connections_legacy_provider_unique` ON `integration_connections` (`provider`) WHERE "integration_connections"."project_id" IS NULL;--> statement-breakpoint
|
|
5
|
+
CREATE INDEX `integration_connections_project_id_idx` ON `integration_connections` (`project_id`);--> statement-breakpoint
|
|
6
|
+
CREATE UNIQUE INDEX `integration_connections_project_provider_unique` ON `integration_connections` (`project_id`,`provider`);
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
CREATE TABLE `__integration_connection_project_evidence` (
|
|
2
|
+
`source_connection_id` text NOT NULL,
|
|
3
|
+
`project_id` text NOT NULL,
|
|
4
|
+
PRIMARY KEY (`source_connection_id`, `project_id`)
|
|
5
|
+
);--> statement-breakpoint
|
|
6
|
+
INSERT OR IGNORE INTO `__integration_connection_project_evidence`
|
|
7
|
+
(`source_connection_id`, `project_id`)
|
|
8
|
+
SELECT connection.`id`, epic.`project_id`
|
|
9
|
+
FROM `integration_connections` connection
|
|
10
|
+
INNER JOIN `external_task_links` task_link
|
|
11
|
+
ON task_link.`connection_id` = connection.`id`
|
|
12
|
+
AND task_link.`provider` = connection.`provider`
|
|
13
|
+
INNER JOIN `epics` epic ON epic.`id` = task_link.`epic_id`
|
|
14
|
+
WHERE connection.`project_id` IS NULL;--> statement-breakpoint
|
|
15
|
+
INSERT OR IGNORE INTO `__integration_connection_project_evidence`
|
|
16
|
+
(`source_connection_id`, `project_id`)
|
|
17
|
+
SELECT connection.`id`, child_epic.`project_id`
|
|
18
|
+
FROM `integration_connections` connection
|
|
19
|
+
INNER JOIN `external_managed_subtask_links` managed_link
|
|
20
|
+
ON managed_link.`connection_id_snapshot` = connection.`id`
|
|
21
|
+
AND managed_link.`provider` = connection.`provider`
|
|
22
|
+
INNER JOIN `epics` child_epic ON child_epic.`id` = managed_link.`epic_id`
|
|
23
|
+
WHERE connection.`project_id` IS NULL;--> statement-breakpoint
|
|
24
|
+
INSERT OR IGNORE INTO `__integration_connection_project_evidence`
|
|
25
|
+
(`source_connection_id`, `project_id`)
|
|
26
|
+
SELECT connection.`id`, parent_epic.`project_id`
|
|
27
|
+
FROM `integration_connections` connection
|
|
28
|
+
INNER JOIN `external_managed_subtask_links` managed_link
|
|
29
|
+
ON managed_link.`connection_id_snapshot` = connection.`id`
|
|
30
|
+
AND managed_link.`provider` = connection.`provider`
|
|
31
|
+
INNER JOIN `external_task_links` parent_source
|
|
32
|
+
ON parent_source.`id` = managed_link.`parent_source_link_id_snapshot`
|
|
33
|
+
AND parent_source.`provider` = managed_link.`provider`
|
|
34
|
+
INNER JOIN `epics` parent_epic ON parent_epic.`id` = parent_source.`epic_id`
|
|
35
|
+
WHERE connection.`project_id` IS NULL
|
|
36
|
+
AND NOT EXISTS (
|
|
37
|
+
SELECT 1 FROM `epics` child_epic WHERE child_epic.`id` = managed_link.`epic_id`
|
|
38
|
+
);--> statement-breakpoint
|
|
39
|
+
INSERT OR IGNORE INTO `__integration_connection_project_evidence`
|
|
40
|
+
(`source_connection_id`, `project_id`)
|
|
41
|
+
SELECT connection.`id`, project.`id`
|
|
42
|
+
FROM `integration_connections` connection
|
|
43
|
+
INNER JOIN `projects` project ON project.`is_template` = 0
|
|
44
|
+
WHERE connection.`project_id` IS NULL
|
|
45
|
+
AND NOT EXISTS (
|
|
46
|
+
SELECT 1
|
|
47
|
+
FROM `__integration_connection_project_evidence` evidence
|
|
48
|
+
WHERE evidence.`source_connection_id` = connection.`id`
|
|
49
|
+
)
|
|
50
|
+
AND (SELECT COUNT(*) FROM `projects` WHERE `is_template` = 0) = 1;--> statement-breakpoint
|
|
51
|
+
CREATE TABLE `__integration_connection_project_map` (
|
|
52
|
+
`source_connection_id` text NOT NULL,
|
|
53
|
+
`project_id` text NOT NULL,
|
|
54
|
+
`target_connection_id` text PRIMARY KEY NOT NULL,
|
|
55
|
+
UNIQUE (`source_connection_id`, `project_id`)
|
|
56
|
+
);--> statement-breakpoint
|
|
57
|
+
INSERT INTO `__integration_connection_project_map`
|
|
58
|
+
(`source_connection_id`, `project_id`, `target_connection_id`)
|
|
59
|
+
WITH RECURSIVE
|
|
60
|
+
ordered_evidence AS (
|
|
61
|
+
SELECT evidence.`source_connection_id`, evidence.`project_id`,
|
|
62
|
+
row_number() OVER (
|
|
63
|
+
ORDER BY evidence.`source_connection_id`, evidence.`project_id`
|
|
64
|
+
) AS `ordinal`
|
|
65
|
+
FROM `__integration_connection_project_evidence` evidence
|
|
66
|
+
),
|
|
67
|
+
candidate_numbers(`value`) AS (
|
|
68
|
+
SELECT 1
|
|
69
|
+
UNION ALL
|
|
70
|
+
SELECT `value` + 1
|
|
71
|
+
FROM candidate_numbers
|
|
72
|
+
WHERE `value` <
|
|
73
|
+
(SELECT COUNT(*) FROM `__integration_connection_project_evidence`) +
|
|
74
|
+
(SELECT COUNT(*) FROM `integration_connections`)
|
|
75
|
+
),
|
|
76
|
+
available_ids AS (
|
|
77
|
+
SELECT
|
|
78
|
+
'dc000000-0000-4000-8000-' || printf('%012x', candidate_numbers.`value`) AS `id`,
|
|
79
|
+
row_number() OVER (ORDER BY candidate_numbers.`value`) AS `ordinal`
|
|
80
|
+
FROM candidate_numbers
|
|
81
|
+
WHERE NOT EXISTS (
|
|
82
|
+
SELECT 1
|
|
83
|
+
FROM `integration_connections` existing
|
|
84
|
+
WHERE existing.`id` =
|
|
85
|
+
'dc000000-0000-4000-8000-' || printf('%012x', candidate_numbers.`value`)
|
|
86
|
+
)
|
|
87
|
+
)
|
|
88
|
+
SELECT ordered_evidence.`source_connection_id`, ordered_evidence.`project_id`, available_ids.`id`
|
|
89
|
+
FROM ordered_evidence
|
|
90
|
+
INNER JOIN available_ids ON available_ids.`ordinal` = ordered_evidence.`ordinal`
|
|
91
|
+
ORDER BY ordered_evidence.`ordinal`;--> statement-breakpoint
|
|
92
|
+
INSERT INTO `integration_connections` (
|
|
93
|
+
`id`, `project_id`, `provider`, `legacy_source_connection_id`,
|
|
94
|
+
`credential_ciphertext`, `generation`, `subtask_sync_enabled`,
|
|
95
|
+
`sync_setting_revision`, `created_at`, `updated_at`
|
|
96
|
+
)
|
|
97
|
+
SELECT project_map.`target_connection_id`, project_map.`project_id`, source.`provider`, source.`id`,
|
|
98
|
+
source.`credential_ciphertext`, source.`generation`, source.`subtask_sync_enabled`,
|
|
99
|
+
source.`sync_setting_revision`, source.`created_at`, source.`updated_at`
|
|
100
|
+
FROM `__integration_connection_project_map` project_map
|
|
101
|
+
INNER JOIN `integration_connections` source
|
|
102
|
+
ON source.`id` = project_map.`source_connection_id`
|
|
103
|
+
ORDER BY project_map.`source_connection_id`, project_map.`project_id`;--> statement-breakpoint
|
|
104
|
+
UPDATE `external_task_links`
|
|
105
|
+
SET `connection_id` = (
|
|
106
|
+
SELECT project_map.`target_connection_id`
|
|
107
|
+
FROM `__integration_connection_project_map` project_map
|
|
108
|
+
INNER JOIN `epics` epic ON epic.`id` = `external_task_links`.`epic_id`
|
|
109
|
+
INNER JOIN `integration_connections` target
|
|
110
|
+
ON target.`id` = project_map.`target_connection_id`
|
|
111
|
+
AND target.`provider` = `external_task_links`.`provider`
|
|
112
|
+
WHERE project_map.`source_connection_id` = `external_task_links`.`connection_id`
|
|
113
|
+
AND project_map.`project_id` = epic.`project_id`
|
|
114
|
+
)
|
|
115
|
+
WHERE EXISTS (
|
|
116
|
+
SELECT 1
|
|
117
|
+
FROM `__integration_connection_project_map` project_map
|
|
118
|
+
INNER JOIN `epics` epic ON epic.`id` = `external_task_links`.`epic_id`
|
|
119
|
+
INNER JOIN `integration_connections` target
|
|
120
|
+
ON target.`id` = project_map.`target_connection_id`
|
|
121
|
+
AND target.`provider` = `external_task_links`.`provider`
|
|
122
|
+
WHERE project_map.`source_connection_id` = `external_task_links`.`connection_id`
|
|
123
|
+
AND project_map.`project_id` = epic.`project_id`
|
|
124
|
+
);--> statement-breakpoint
|
|
125
|
+
UPDATE `external_managed_subtask_links`
|
|
126
|
+
SET `connection_id_snapshot` = (
|
|
127
|
+
SELECT project_map.`target_connection_id`
|
|
128
|
+
FROM `__integration_connection_project_map` project_map
|
|
129
|
+
INNER JOIN `integration_connections` target
|
|
130
|
+
ON target.`id` = project_map.`target_connection_id`
|
|
131
|
+
AND target.`provider` = `external_managed_subtask_links`.`provider`
|
|
132
|
+
WHERE project_map.`source_connection_id` = `external_managed_subtask_links`.`connection_id_snapshot`
|
|
133
|
+
AND project_map.`project_id` = COALESCE(
|
|
134
|
+
(SELECT child_epic.`project_id`
|
|
135
|
+
FROM `epics` child_epic
|
|
136
|
+
WHERE child_epic.`id` = `external_managed_subtask_links`.`epic_id`),
|
|
137
|
+
(SELECT parent_epic.`project_id`
|
|
138
|
+
FROM `external_task_links` parent_source
|
|
139
|
+
INNER JOIN `epics` parent_epic ON parent_epic.`id` = parent_source.`epic_id`
|
|
140
|
+
WHERE parent_source.`id` = `external_managed_subtask_links`.`parent_source_link_id_snapshot`
|
|
141
|
+
AND parent_source.`provider` = `external_managed_subtask_links`.`provider`)
|
|
142
|
+
)
|
|
143
|
+
)
|
|
144
|
+
WHERE EXISTS (
|
|
145
|
+
SELECT 1
|
|
146
|
+
FROM `__integration_connection_project_map` project_map
|
|
147
|
+
INNER JOIN `integration_connections` target
|
|
148
|
+
ON target.`id` = project_map.`target_connection_id`
|
|
149
|
+
AND target.`provider` = `external_managed_subtask_links`.`provider`
|
|
150
|
+
WHERE project_map.`source_connection_id` = `external_managed_subtask_links`.`connection_id_snapshot`
|
|
151
|
+
AND project_map.`project_id` = COALESCE(
|
|
152
|
+
(SELECT child_epic.`project_id`
|
|
153
|
+
FROM `epics` child_epic
|
|
154
|
+
WHERE child_epic.`id` = `external_managed_subtask_links`.`epic_id`),
|
|
155
|
+
(SELECT parent_epic.`project_id`
|
|
156
|
+
FROM `external_task_links` parent_source
|
|
157
|
+
INNER JOIN `epics` parent_epic ON parent_epic.`id` = parent_source.`epic_id`
|
|
158
|
+
WHERE parent_source.`id` = `external_managed_subtask_links`.`parent_source_link_id_snapshot`
|
|
159
|
+
AND parent_source.`provider` = `external_managed_subtask_links`.`provider`)
|
|
160
|
+
)
|
|
161
|
+
);--> statement-breakpoint
|
|
162
|
+
DELETE FROM `integration_connections`
|
|
163
|
+
WHERE `project_id` IS NULL
|
|
164
|
+
AND EXISTS (
|
|
165
|
+
SELECT 1
|
|
166
|
+
FROM `__integration_connection_project_map` project_map
|
|
167
|
+
WHERE project_map.`source_connection_id` = `integration_connections`.`id`
|
|
168
|
+
)
|
|
169
|
+
AND NOT EXISTS (
|
|
170
|
+
SELECT 1
|
|
171
|
+
FROM `external_task_links` task_link
|
|
172
|
+
WHERE task_link.`connection_id` = `integration_connections`.`id`
|
|
173
|
+
)
|
|
174
|
+
AND NOT EXISTS (
|
|
175
|
+
SELECT 1
|
|
176
|
+
FROM `external_managed_subtask_links` managed_link
|
|
177
|
+
WHERE managed_link.`connection_id_snapshot` = `integration_connections`.`id`
|
|
178
|
+
);--> statement-breakpoint
|
|
179
|
+
DROP TABLE `__integration_connection_project_map`;--> statement-breakpoint
|
|
180
|
+
DROP TABLE `__integration_connection_project_evidence`;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
CREATE TABLE `epic_relations` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`left_epic_id` text NOT NULL,
|
|
4
|
+
`right_epic_id` text NOT NULL,
|
|
5
|
+
`type` text NOT NULL,
|
|
6
|
+
`direction` text NOT NULL,
|
|
7
|
+
`created_by` text,
|
|
8
|
+
`created_by_agent_id` text,
|
|
9
|
+
`created_at` text NOT NULL,
|
|
10
|
+
`updated_at` text NOT NULL,
|
|
11
|
+
FOREIGN KEY (`left_epic_id`) REFERENCES `epics`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
12
|
+
FOREIGN KEY (`right_epic_id`) REFERENCES `epics`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
13
|
+
FOREIGN KEY (`created_by_agent_id`) REFERENCES `agents`(`id`) ON UPDATE no action ON DELETE set null
|
|
14
|
+
);
|
|
15
|
+
--> statement-breakpoint
|
|
16
|
+
CREATE UNIQUE INDEX `epic_relations_pair_idx` ON `epic_relations` (`left_epic_id`,`right_epic_id`);--> statement-breakpoint
|
|
17
|
+
CREATE INDEX `epic_relations_right_epic_id_idx` ON `epic_relations` (`right_epic_id`);--> statement-breakpoint
|
|
18
|
+
CREATE INDEX `epics_project_id_idx` ON `epics` (`project_id`);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
CREATE TABLE `external_estimate_log_states` (
|
|
2
|
+
`provider` text NOT NULL,
|
|
3
|
+
`remote_scope_key` text NOT NULL,
|
|
4
|
+
`remote_task_id` text NOT NULL,
|
|
5
|
+
`logged_minutes` integer DEFAULT 0 NOT NULL,
|
|
6
|
+
`revision` integer DEFAULT 1 NOT NULL,
|
|
7
|
+
`pending_operation_id` text,
|
|
8
|
+
`pending_delta_minutes` integer,
|
|
9
|
+
`pending_estimate_total_minutes` integer,
|
|
10
|
+
`pending_started_at` text,
|
|
11
|
+
`pending_connection_id` text,
|
|
12
|
+
`pending_connection_generation` integer,
|
|
13
|
+
`pending_phase` text,
|
|
14
|
+
`pending_resolution` text,
|
|
15
|
+
`created_at` text NOT NULL,
|
|
16
|
+
`updated_at` text NOT NULL,
|
|
17
|
+
CONSTRAINT "external_estimate_log_states_logged_minutes_check" CHECK("external_estimate_log_states"."logged_minutes" >= 0),
|
|
18
|
+
CONSTRAINT "external_estimate_log_states_revision_check" CHECK("external_estimate_log_states"."revision" >= 1),
|
|
19
|
+
CONSTRAINT "external_estimate_log_states_pending_complete_check" CHECK((
|
|
20
|
+
"external_estimate_log_states"."pending_operation_id" IS NULL
|
|
21
|
+
AND "external_estimate_log_states"."pending_delta_minutes" IS NULL
|
|
22
|
+
AND "external_estimate_log_states"."pending_estimate_total_minutes" IS NULL
|
|
23
|
+
AND "external_estimate_log_states"."pending_started_at" IS NULL
|
|
24
|
+
AND "external_estimate_log_states"."pending_connection_id" IS NULL
|
|
25
|
+
AND "external_estimate_log_states"."pending_connection_generation" IS NULL
|
|
26
|
+
AND "external_estimate_log_states"."pending_phase" IS NULL
|
|
27
|
+
AND "external_estimate_log_states"."pending_resolution" IS NULL
|
|
28
|
+
) OR (
|
|
29
|
+
"external_estimate_log_states"."pending_operation_id" IS NOT NULL
|
|
30
|
+
AND "external_estimate_log_states"."pending_delta_minutes" IS NOT NULL
|
|
31
|
+
AND "external_estimate_log_states"."pending_delta_minutes" > 0
|
|
32
|
+
AND "external_estimate_log_states"."pending_delta_minutes" * 60000 <= 604800000
|
|
33
|
+
AND "external_estimate_log_states"."pending_estimate_total_minutes" IS NOT NULL
|
|
34
|
+
AND "external_estimate_log_states"."pending_estimate_total_minutes" >= 0
|
|
35
|
+
AND "external_estimate_log_states"."pending_started_at" IS NOT NULL
|
|
36
|
+
AND "external_estimate_log_states"."pending_connection_id" IS NOT NULL
|
|
37
|
+
AND "external_estimate_log_states"."pending_connection_generation" IS NOT NULL
|
|
38
|
+
AND "external_estimate_log_states"."pending_connection_generation" >= 1
|
|
39
|
+
AND "external_estimate_log_states"."pending_phase" IS NOT NULL
|
|
40
|
+
AND "external_estimate_log_states"."pending_phase" IN ('prepared', 'outcome_unknown')
|
|
41
|
+
AND (
|
|
42
|
+
"external_estimate_log_states"."pending_resolution" IS NULL
|
|
43
|
+
OR "external_estimate_log_states"."pending_resolution" IN ('logged', 'not_logged')
|
|
44
|
+
)
|
|
45
|
+
))
|
|
46
|
+
);
|
|
47
|
+
--> statement-breakpoint
|
|
48
|
+
CREATE UNIQUE INDEX `external_estimate_log_states_remote_identity_idx` ON `external_estimate_log_states` (`provider`,`remote_scope_key`,`remote_task_id`);--> statement-breakpoint
|
|
49
|
+
CREATE UNIQUE INDEX `external_estimate_log_states_pending_operation_idx` ON `external_estimate_log_states` (`pending_operation_id`) WHERE "external_estimate_log_states"."pending_operation_id" IS NOT NULL;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
CREATE TABLE `epic_time_team_batch_event_barriers` (
|
|
2
|
+
`team_batch_id` text NOT NULL,
|
|
3
|
+
`committed_event_id` text NOT NULL,
|
|
4
|
+
`created_at` text NOT NULL,
|
|
5
|
+
PRIMARY KEY(`team_batch_id`, `committed_event_id`),
|
|
6
|
+
FOREIGN KEY (`team_batch_id`) REFERENCES `epic_time_team_batches`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
7
|
+
FOREIGN KEY (`committed_event_id`) REFERENCES `events`(`id`) ON UPDATE no action ON DELETE cascade
|
|
8
|
+
);
|
|
9
|
+
--> statement-breakpoint
|
|
10
|
+
CREATE INDEX `epic_time_team_barriers_event_idx` ON `epic_time_team_batch_event_barriers` (`committed_event_id`);--> statement-breakpoint
|
|
11
|
+
CREATE TABLE `epic_time_team_batches` (
|
|
12
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
13
|
+
`project_id` text NOT NULL,
|
|
14
|
+
`team_id_snapshot` text NOT NULL,
|
|
15
|
+
`team_name_snapshot` text NOT NULL,
|
|
16
|
+
`lead_agent_id_snapshot` text NOT NULL,
|
|
17
|
+
`lead_agent_name_snapshot` text NOT NULL,
|
|
18
|
+
`started_at` text NOT NULL,
|
|
19
|
+
`sealed_at` text,
|
|
20
|
+
`created_at` text NOT NULL,
|
|
21
|
+
`updated_at` text NOT NULL,
|
|
22
|
+
FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE cascade
|
|
23
|
+
);
|
|
24
|
+
--> statement-breakpoint
|
|
25
|
+
CREATE UNIQUE INDEX `epic_time_team_batches_open_unique` ON `epic_time_team_batches` (`project_id`,`team_id_snapshot`) WHERE "epic_time_team_batches"."sealed_at" IS NULL;--> statement-breakpoint
|
|
26
|
+
CREATE INDEX `epic_time_team_batches_project_sealed_idx` ON `epic_time_team_batches` (`project_id`,`sealed_at`,`started_at`);--> statement-breakpoint
|
|
27
|
+
PRAGMA foreign_keys=OFF;--> statement-breakpoint
|
|
28
|
+
CREATE TABLE `__new_epic_time_segments` (
|
|
29
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
30
|
+
`project_id` text NOT NULL,
|
|
31
|
+
`epic_id` text,
|
|
32
|
+
`team_batch_id` text,
|
|
33
|
+
`attribution_source` text DEFAULT 'direct' NOT NULL,
|
|
34
|
+
`team_id_snapshot` text,
|
|
35
|
+
`team_name_snapshot` text,
|
|
36
|
+
`session_id_snapshot` text NOT NULL,
|
|
37
|
+
`agent_id_snapshot` text NOT NULL,
|
|
38
|
+
`agent_name_snapshot` text NOT NULL,
|
|
39
|
+
`started_at` text NOT NULL,
|
|
40
|
+
`last_activity_at` text NOT NULL,
|
|
41
|
+
`closed_at` text,
|
|
42
|
+
`duration_ms` integer DEFAULT 0 NOT NULL,
|
|
43
|
+
`created_at` text NOT NULL,
|
|
44
|
+
`updated_at` text NOT NULL,
|
|
45
|
+
FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
46
|
+
FOREIGN KEY (`epic_id`) REFERENCES `epics`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
47
|
+
FOREIGN KEY (`team_batch_id`) REFERENCES `epic_time_team_batches`(`id`) ON UPDATE no action ON DELETE set null,
|
|
48
|
+
CONSTRAINT "epic_time_segments_attribution_source_check" CHECK("__new_epic_time_segments"."attribution_source" IN ('direct', 'team'))
|
|
49
|
+
);
|
|
50
|
+
--> statement-breakpoint
|
|
51
|
+
INSERT INTO `__new_epic_time_segments`("id", "project_id", "epic_id", "team_batch_id", "attribution_source", "team_id_snapshot", "team_name_snapshot", "session_id_snapshot", "agent_id_snapshot", "agent_name_snapshot", "started_at", "last_activity_at", "closed_at", "duration_ms", "created_at", "updated_at") SELECT "id", "project_id", "epic_id", NULL, 'direct', NULL, NULL, "session_id_snapshot", "agent_id_snapshot", "agent_name_snapshot", "started_at", "last_activity_at", "closed_at", "duration_ms", "created_at", "updated_at" FROM `epic_time_segments`;--> statement-breakpoint
|
|
52
|
+
DROP TABLE `epic_time_segments`;--> statement-breakpoint
|
|
53
|
+
ALTER TABLE `__new_epic_time_segments` RENAME TO `epic_time_segments`;--> statement-breakpoint
|
|
54
|
+
PRAGMA foreign_keys=ON;--> statement-breakpoint
|
|
55
|
+
CREATE UNIQUE INDEX `epic_time_segments_open_session_unique` ON `epic_time_segments` (`session_id_snapshot`) WHERE "epic_time_segments"."closed_at" IS NULL;--> statement-breakpoint
|
|
56
|
+
CREATE INDEX `epic_time_segments_project_epic_closed_idx` ON `epic_time_segments` (`project_id`,`epic_id`,`closed_at`,`last_activity_at`);--> statement-breakpoint
|
|
57
|
+
CREATE INDEX `epic_time_segments_project_agent_idx` ON `epic_time_segments` (`project_id`,`agent_id_snapshot`,`last_activity_at`);--> statement-breakpoint
|
|
58
|
+
CREATE INDEX `epic_time_segments_team_batch_idx` ON `epic_time_segments` (`team_batch_id`);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
CREATE TABLE `external_estimate_log_days` (
|
|
2
|
+
`provider` text NOT NULL,
|
|
3
|
+
`remote_scope_key` text NOT NULL,
|
|
4
|
+
`remote_task_id` text NOT NULL,
|
|
5
|
+
`activity_date` text NOT NULL,
|
|
6
|
+
`logged_minutes` integer DEFAULT 0 NOT NULL,
|
|
7
|
+
`created_at` text NOT NULL,
|
|
8
|
+
`updated_at` text NOT NULL,
|
|
9
|
+
PRIMARY KEY(`provider`, `remote_scope_key`, `remote_task_id`, `activity_date`),
|
|
10
|
+
CONSTRAINT "external_estimate_log_days_logged_minutes_check" CHECK("external_estimate_log_days"."logged_minutes" >= 0)
|
|
11
|
+
);
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
ALTER TABLE `external_estimate_log_states` ADD `aggregation_time_zone` text;--> statement-breakpoint
|
|
14
|
+
ALTER TABLE `external_estimate_log_states` ADD `pending_activity_date` text;
|