devchain-cli 0.21.0 → 0.22.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/README.md +1 -0
- package/dist/drizzle/0073_integration_storage.sql +27 -0
- package/dist/drizzle/0074_black_drax.sql +7 -0
- package/dist/drizzle/0075_misty_franklin_richards.sql +37 -0
- package/dist/drizzle/0076_epic_time_accounting.sql +48 -0
- package/dist/drizzle/meta/0073_snapshot.json +6247 -0
- package/dist/drizzle/meta/0074_snapshot.json +6299 -0
- package/dist/drizzle/meta/0075_snapshot.json +6563 -0
- package/dist/drizzle/meta/0076_snapshot.json +6913 -0
- package/dist/drizzle/meta/_journal.json +28 -0
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +27 -1
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +15 -0
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +52 -52
- package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
- package/dist/server/app.main.module.js +4 -0
- package/dist/server/app.main.module.js.map +1 -1
- package/dist/server/app.normal.module.js +2 -0
- package/dist/server/app.normal.module.js.map +1 -1
- package/dist/server/common/config/container-scope.d.ts +11 -0
- package/dist/server/common/config/container-scope.js +37 -0
- package/dist/server/common/config/container-scope.js.map +1 -1
- package/dist/server/common/constants/terminal.d.ts +1 -0
- package/dist/server/common/constants/terminal.js +2 -1
- package/dist/server/common/constants/terminal.js.map +1 -1
- package/dist/server/common/filters/http-exception.filter.js +3 -4
- package/dist/server/common/filters/http-exception.filter.js.map +1 -1
- package/dist/server/common/guards/integration-admission.guard.d.ts +4 -0
- package/dist/server/common/guards/integration-admission.guard.js +22 -0
- package/dist/server/common/guards/integration-admission.guard.js.map +1 -0
- package/dist/server/common/test/app-bootstrap.helper.js +1 -1
- package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
- package/dist/server/modules/agent-message-delivery/agent-message-delivery.service.js +4 -0
- package/dist/server/modules/agent-message-delivery/agent-message-delivery.service.js.map +1 -1
- package/dist/server/modules/cloud/cloud.module.js +5 -1
- package/dist/server/modules/cloud/cloud.module.js.map +1 -1
- package/dist/server/modules/cloud/services/cloud-egress-bridge.service.d.ts +3 -1
- package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +19 -3
- package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
- package/dist/server/modules/cloud/services/egress-queue.service.d.ts +2 -0
- package/dist/server/modules/cloud/services/egress-queue.service.js +35 -17
- package/dist/server/modules/cloud/services/egress-queue.service.js.map +1 -1
- package/dist/server/modules/cloud/services/event-mapper.service.d.ts +1 -0
- package/dist/server/modules/cloud/services/event-mapper.service.js.map +1 -1
- package/dist/server/modules/cloud/services/notification-recipient-resolver.service.d.ts +10 -0
- package/dist/server/modules/cloud/services/notification-recipient-resolver.service.js +55 -0
- package/dist/server/modules/cloud/services/notification-recipient-resolver.service.js.map +1 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +31 -5
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +15 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js +5 -2
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +1 -0
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +8 -0
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
- package/dist/server/modules/core/controllers/runtime.controller.d.ts +1 -0
- package/dist/server/modules/core/controllers/runtime.controller.js +2 -0
- package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
- package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +2 -0
- package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +26 -0
- package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
- package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +5 -0
- package/dist/server/modules/e2ee/services/e2ee-trust.service.js +11 -0
- package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
- package/dist/server/modules/e2ee/services/paired-device-workspace-access.service.d.ts +1 -0
- package/dist/server/modules/e2ee/services/paired-device-workspace-access.service.js +4 -0
- package/dist/server/modules/e2ee/services/paired-device-workspace-access.service.js.map +1 -1
- package/dist/server/modules/epic-time/controllers/epic-time.controller.d.ts +8 -0
- package/dist/server/modules/epic-time/controllers/epic-time.controller.js +70 -0
- package/dist/server/modules/epic-time/controllers/epic-time.controller.js.map +1 -0
- package/dist/server/modules/epic-time/epic-time.module.d.ts +2 -0
- package/dist/server/modules/epic-time/epic-time.module.js +28 -0
- package/dist/server/modules/epic-time/epic-time.module.js.map +1 -0
- package/dist/server/modules/epic-time/models/epic-time.models.d.ts +26 -0
- package/dist/server/modules/epic-time/models/epic-time.models.js +3 -0
- package/dist/server/modules/epic-time/models/epic-time.models.js.map +1 -0
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +32 -0
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +159 -0
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -0
- package/dist/server/modules/epic-time/services/epic-time.service.d.ts +15 -0
- package/dist/server/modules/epic-time/services/epic-time.service.js +224 -0
- package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -0
- package/dist/server/modules/epic-time/services/epic-time.store.d.ts +75 -0
- package/dist/server/modules/epic-time/services/epic-time.store.js +453 -0
- package/dist/server/modules/epic-time/services/epic-time.store.js.map +1 -0
- package/dist/server/modules/epics/controllers/epics.controller.d.ts +10 -0
- package/dist/server/modules/epics/controllers/epics.controller.js +92 -0
- package/dist/server/modules/epics/controllers/epics.controller.js.map +1 -1
- package/dist/server/modules/epics/services/epics.service.d.ts +32 -2
- package/dist/server/modules/epics/services/epics.service.js +243 -96
- package/dist/server/modules/epics/services/epics.service.js.map +1 -1
- package/dist/server/modules/events/catalog/agent.created.d.ts +4 -4
- package/dist/server/modules/events/catalog/agent.deleted.d.ts +2 -2
- package/dist/server/modules/events/catalog/agent.message.sent.d.ts +40 -40
- package/dist/server/modules/events/catalog/broadcast-registry.js +1 -0
- package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
- package/dist/server/modules/events/catalog/claude.hooks.ask_user_question.pending.d.ts +4 -4
- package/dist/server/modules/events/catalog/claude.hooks.session.started.d.ts +10 -10
- package/dist/server/modules/events/catalog/epic.comment.created.d.ts +6 -6
- package/dist/server/modules/events/catalog/epic.created.d.ts +8 -8
- package/dist/server/modules/events/catalog/epic.deleted.d.ts +4 -4
- package/dist/server/modules/events/catalog/epic.updated.d.ts +68 -42
- package/dist/server/modules/events/catalog/epic.updated.js +5 -0
- package/dist/server/modules/events/catalog/epic.updated.js.map +1 -1
- package/dist/server/modules/events/catalog/guest.registered.d.ts +2 -2
- package/dist/server/modules/events/catalog/guest.unregistered.d.ts +4 -4
- package/dist/server/modules/events/catalog/index.d.ts +370 -228
- package/dist/server/modules/events/catalog/index.js +11 -1
- package/dist/server/modules/events/catalog/index.js.map +1 -1
- package/dist/server/modules/events/catalog/integration.connection.created.d.ts +30 -0
- package/dist/server/modules/events/catalog/integration.connection.created.js +17 -0
- package/dist/server/modules/events/catalog/integration.connection.created.js.map +1 -0
- package/dist/server/modules/events/catalog/integration.connection.deleted.d.ts +27 -0
- package/dist/server/modules/events/catalog/integration.connection.deleted.js +16 -0
- package/dist/server/modules/events/catalog/integration.connection.deleted.js.map +1 -0
- package/dist/server/modules/events/catalog/integration.connection.updated.d.ts +39 -0
- package/dist/server/modules/events/catalog/integration.connection.updated.js +20 -0
- package/dist/server/modules/events/catalog/integration.connection.updated.js.map +1 -0
- package/dist/server/modules/events/catalog/review.comment.created.d.ts +16 -16
- package/dist/server/modules/events/catalog/review.comment.deleted.d.ts +2 -2
- package/dist/server/modules/events/catalog/review.comment.resolved.d.ts +2 -2
- package/dist/server/modules/events/catalog/review.comment.updated.d.ts +4 -4
- package/dist/server/modules/events/catalog/review.created.d.ts +12 -12
- package/dist/server/modules/events/catalog/review.updated.d.ts +22 -22
- package/dist/server/modules/events/catalog/scheduled-epic.executed.d.ts +12 -12
- package/dist/server/modules/events/catalog/session.human-prompt-state-changed.d.ts +77 -0
- package/dist/server/modules/events/catalog/session.human-prompt-state-changed.js +25 -0
- package/dist/server/modules/events/catalog/session.human-prompt-state-changed.js.map +1 -0
- package/dist/server/modules/events/catalog/session.provider-session-id.discovered.d.ts +2 -2
- package/dist/server/modules/events/catalog/session.recommendation.d.ts +4 -4
- package/dist/server/modules/events/catalog/session.restored.d.ts +2 -2
- package/dist/server/modules/events/catalog/session.started.d.ts +2 -2
- package/dist/server/modules/events/catalog/session.starting.d.ts +2 -2
- package/dist/server/modules/events/catalog/session.stopped.d.ts +2 -2
- package/dist/server/modules/events/catalog/session.transcript.discovered.d.ts +4 -4
- package/dist/server/modules/events/catalog/team.config.updated.d.ts +6 -6
- package/dist/server/modules/events/catalog/team.member.added.d.ts +2 -2
- package/dist/server/modules/events/catalog/team.member.removed.d.ts +2 -2
- package/dist/server/modules/events/catalog/terminal.watcher.triggered.d.ts +4 -4
- package/dist/server/modules/events/events-core.module.js +8 -1
- package/dist/server/modules/events/events-core.module.js.map +1 -1
- package/dist/server/modules/events/events-infra.module.js +6 -1
- package/dist/server/modules/events/events-infra.module.js.map +1 -1
- package/dist/server/modules/events/services/committed-event.store.d.ts +23 -0
- package/dist/server/modules/events/services/committed-event.store.js +169 -0
- package/dist/server/modules/events/services/committed-event.store.js.map +1 -0
- package/dist/server/modules/events/services/durable-event-dispatcher.service.d.ts +16 -0
- package/dist/server/modules/events/services/durable-event-dispatcher.service.js +97 -0
- package/dist/server/modules/events/services/durable-event-dispatcher.service.js.map +1 -0
- package/dist/server/modules/events/services/durable-event-registry.service.d.ts +25 -0
- package/dist/server/modules/events/services/durable-event-registry.service.js +59 -0
- package/dist/server/modules/events/services/durable-event-registry.service.js.map +1 -0
- package/dist/server/modules/events/services/event-log.service.d.ts +6 -1
- package/dist/server/modules/events/services/event-log.service.js +32 -18
- package/dist/server/modules/events/services/event-log.service.js.map +1 -1
- package/dist/server/modules/events/services/events.service.d.ts +11 -1
- package/dist/server/modules/events/services/events.service.js +50 -7
- package/dist/server/modules/events/services/events.service.js.map +1 -1
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +97 -0
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +1404 -0
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -0
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +113 -0
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +1790 -0
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -0
- package/dist/server/modules/external-integrations/adapters/rich/clickup-comment-converter.d.ts +10 -0
- package/dist/server/modules/external-integrations/adapters/rich/clickup-comment-converter.js +97 -0
- package/dist/server/modules/external-integrations/adapters/rich/clickup-comment-converter.js.map +1 -0
- package/dist/server/modules/external-integrations/adapters/rich/clickup-markdown-converter.d.ts +16 -0
- package/dist/server/modules/external-integrations/adapters/rich/clickup-markdown-converter.js +386 -0
- package/dist/server/modules/external-integrations/adapters/rich/clickup-markdown-converter.js.map +1 -0
- package/dist/server/modules/external-integrations/adapters/rich/jira-adf-converter.d.ts +5 -0
- package/dist/server/modules/external-integrations/adapters/rich/jira-adf-converter.js +229 -0
- package/dist/server/modules/external-integrations/adapters/rich/jira-adf-converter.js.map +1 -0
- package/dist/server/modules/external-integrations/adapters/vendor-shared.d.ts +42 -0
- package/dist/server/modules/external-integrations/adapters/vendor-shared.js +182 -0
- package/dist/server/modules/external-integrations/adapters/vendor-shared.js.map +1 -0
- package/dist/server/modules/external-integrations/connections/integration-connections.controller.d.ts +11 -0
- package/dist/server/modules/external-integrations/connections/integration-connections.controller.js +121 -0
- package/dist/server/modules/external-integrations/connections/integration-connections.controller.js.map +1 -0
- package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +46 -0
- package/dist/server/modules/external-integrations/connections/integration-connections.service.js +193 -0
- package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -0
- package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.d.ts +8 -0
- package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.js +73 -0
- package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.js.map +1 -0
- package/dist/server/modules/external-integrations/errors/external-provider.errors.d.ts +23 -0
- package/dist/server/modules/external-integrations/errors/external-provider.errors.js +105 -0
- package/dist/server/modules/external-integrations/errors/external-provider.errors.js.map +1 -0
- package/dist/server/modules/external-integrations/external-integrations.module.d.ts +2 -0
- package/dist/server/modules/external-integrations/external-integrations.module.js +72 -0
- package/dist/server/modules/external-integrations/external-integrations.module.js.map +1 -0
- package/dist/server/modules/external-integrations/external-task-provider.registry.d.ts +12 -0
- package/dist/server/modules/external-integrations/external-task-provider.registry.js +65 -0
- package/dist/server/modules/external-integrations/external-task-provider.registry.js.map +1 -0
- package/dist/server/modules/external-integrations/models/external-comment-lookup-token.d.ts +12 -0
- package/dist/server/modules/external-integrations/models/external-comment-lookup-token.js +49 -0
- package/dist/server/modules/external-integrations/models/external-comment-lookup-token.js.map +1 -0
- package/dist/server/modules/external-integrations/models/external-edit-session.models.d.ts +94 -0
- package/dist/server/modules/external-integrations/models/external-edit-session.models.js +10 -0
- package/dist/server/modules/external-integrations/models/external-edit-session.models.js.map +1 -0
- package/dist/server/modules/external-integrations/models/external-provider.models.d.ts +341 -0
- package/dist/server/modules/external-integrations/models/external-provider.models.js +21 -0
- package/dist/server/modules/external-integrations/models/external-provider.models.js.map +1 -0
- package/dist/server/modules/external-integrations/models/external-rich-capabilities.d.ts +6 -0
- package/dist/server/modules/external-integrations/models/external-rich-capabilities.js +9 -0
- package/dist/server/modules/external-integrations/models/external-rich-capabilities.js.map +1 -0
- package/dist/server/modules/external-integrations/models/external-rich-document.d.ts +59 -0
- package/dist/server/modules/external-integrations/models/external-rich-document.js +233 -0
- package/dist/server/modules/external-integrations/models/external-rich-document.js.map +1 -0
- package/dist/server/modules/external-integrations/models/external-task-source.d.ts +4 -0
- package/dist/server/modules/external-integrations/models/external-task-source.js +71 -0
- package/dist/server/modules/external-integrations/models/external-task-source.js.map +1 -0
- package/dist/server/modules/external-integrations/models/external-time-mutation.models.d.ts +74 -0
- package/dist/server/modules/external-integrations/models/external-time-mutation.models.js +19 -0
- package/dist/server/modules/external-integrations/models/external-time-mutation.models.js.map +1 -0
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +57 -0
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js +776 -0
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.d.ts +37 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js +626 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js.map +1 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.d.ts +29 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js +847 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js.map +1 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +34 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js +330 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -0
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +27 -0
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js +412 -0
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -0
- package/dist/server/modules/external-integrations/ports/external-task-provider.d.ts +13 -0
- package/dist/server/modules/external-integrations/ports/external-task-provider.js +5 -0
- package/dist/server/modules/external-integrations/ports/external-task-provider.js.map +1 -0
- package/dist/server/modules/external-integrations/request-validation.d.ts +2 -0
- package/dist/server/modules/external-integrations/request-validation.js +14 -0
- package/dist/server/modules/external-integrations/request-validation.js.map +1 -0
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.d.ts +59 -0
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js +329 -0
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js.map +1 -0
- package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.d.ts +44 -0
- package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.js +171 -0
- package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.js.map +1 -0
- package/dist/server/modules/external-integrations/sessions/provider-operation-gate.d.ts +7 -0
- package/dist/server/modules/external-integrations/sessions/provider-operation-gate.js +33 -0
- package/dist/server/modules/external-integrations/sessions/provider-operation-gate.js.map +1 -0
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +69 -0
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js +1092 -0
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.d.ts +8 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.js +23 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.js.map +1 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-recovery-policy.d.ts +7 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-recovery-policy.js +30 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-recovery-policy.js.map +1 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +44 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js +135 -0
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -0
- package/dist/server/modules/external-integrations/transport/safe-vendor-http-client.d.ts +47 -0
- package/dist/server/modules/external-integrations/transport/safe-vendor-http-client.js +294 -0
- package/dist/server/modules/external-integrations/transport/safe-vendor-http-client.js.map +1 -0
- package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +64 -64
- package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +36 -36
- package/dist/server/modules/orchestrator/docker/services/seed-preparation.service.d.ts +5 -0
- package/dist/server/modules/orchestrator/docker/services/seed-preparation.service.js +51 -1
- package/dist/server/modules/orchestrator/docker/services/seed-preparation.service.js.map +1 -1
- package/dist/server/modules/orchestrator/sync/services/task-merge.service.d.ts +0 -2
- package/dist/server/modules/orchestrator/sync/services/task-merge.service.js +9 -48
- package/dist/server/modules/orchestrator/sync/services/task-merge.service.js.map +1 -1
- package/dist/server/modules/profiles/dto.d.ts +11 -11
- package/dist/server/modules/projects/controllers/projects.controller.d.ts +2 -2
- package/dist/server/modules/projects/dtos/export.dto.d.ts +6 -6
- package/dist/server/modules/projects/helpers/project-export.d.ts +1 -1
- package/dist/server/modules/projects/services/projects.service.d.ts +1 -1
- package/dist/server/modules/projects/template-codec/codecs/watchers.codec.d.ts +1 -1
- package/dist/server/modules/registry/controllers/templates.controller.d.ts +7 -7
- package/dist/server/modules/reviews/dtos/review.dto.d.ts +10 -10
- package/dist/server/modules/scheduled-epics/dtos/scheduled-epic.dto.d.ts +1 -1
- package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +1 -1
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +128 -39
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +2 -0
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +18 -12
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -1
- package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +3 -0
- package/dist/server/modules/sessions/controllers/sessions.controller.js +30 -0
- package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
- package/dist/server/modules/sessions/dtos/sessions.dto.d.ts +2 -2
- package/dist/server/modules/sessions/services/message-enqueue.service.d.ts +2 -0
- package/dist/server/modules/sessions/services/message-enqueue.service.js +2 -0
- package/dist/server/modules/sessions/services/message-enqueue.service.js.map +1 -1
- package/dist/server/modules/sessions/services/message-pool.types.d.ts +8 -1
- package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +50 -6
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js +828 -190
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
- package/dist/server/modules/settings/dtos/settings.dto.d.ts +8 -0
- package/dist/server/modules/settings/dtos/settings.dto.js +1 -0
- package/dist/server/modules/settings/dtos/settings.dto.js.map +1 -1
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +12 -0
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/services/settings.constants.d.ts +1 -1
- package/dist/server/modules/settings/services/settings.constants.js +2 -1
- package/dist/server/modules/settings/services/settings.constants.js.map +1 -1
- package/dist/server/modules/settings/services/settings.service.d.ts +1 -1
- package/dist/server/modules/settings/services/settings.service.js +2 -1
- package/dist/server/modules/settings/services/settings.service.js.map +1 -1
- package/dist/server/modules/skills/dtos/skill.dto.d.ts +2 -2
- package/dist/server/modules/storage/db/schema.d.ts +2420 -958
- package/dist/server/modules/storage/db/schema.js +144 -2
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +34 -6
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +9 -5
- package/dist/server/modules/storage/local/delegates/epic.delegate.js +67 -30
- package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +18 -0
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +320 -0
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -0
- package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +37 -0
- package/dist/server/modules/storage/local/delegates/integration.delegate.js +308 -0
- package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -0
- package/dist/server/modules/storage/local/integration-credential-cipher.d.ts +18 -0
- package/dist/server/modules/storage/local/integration-credential-cipher.js +138 -0
- package/dist/server/modules/storage/local/integration-credential-cipher.js.map +1 -0
- package/dist/server/modules/storage/local/local-storage.service.d.ts +36 -7
- package/dist/server/modules/storage/local/local-storage.service.js +93 -10
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +127 -0
- package/dist/server/modules/storage/models/domain.models.js +15 -0
- package/dist/server/modules/storage/models/domain.models.js.map +1 -1
- package/dist/server/modules/storage/storage.module.js +2 -1
- package/dist/server/modules/storage/storage.module.js.map +1 -1
- package/dist/server/modules/subscribers/dtos/subscriber.dto.d.ts +1 -1
- package/dist/server/modules/terminal/dtos/ws-envelope.dto.d.ts +2 -2
- package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +9 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.js +79 -3
- package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
- package/dist/server/modules/terminal/services/human-prompt-state.service.d.ts +58 -0
- package/dist/server/modules/terminal/services/human-prompt-state.service.js +206 -0
- package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -0
- package/dist/server/modules/terminal/services/terminal-activity.service.js +7 -18
- package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +2 -1
- package/dist/server/modules/terminal/services/terminal-io/delivery.js +77 -33
- package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +14 -5
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +64 -8
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/types.d.ts +8 -0
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +5 -1
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +39 -2
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-session/terminal-session-registry.d.ts +3 -1
- package/dist/server/modules/terminal/services/terminal-session/terminal-session-registry.js +7 -2
- package/dist/server/modules/terminal/services/terminal-session/terminal-session-registry.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.d.ts +4 -0
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +8 -0
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
- package/dist/server/modules/terminal/terminal-delivery.module.js +13 -2
- package/dist/server/modules/terminal/terminal-delivery.module.js.map +1 -1
- package/dist/server/modules/terminal/terminal.module.js +4 -3
- package/dist/server/modules/terminal/terminal.module.js.map +1 -1
- package/dist/server/modules/terminal/utils/terminal-activity.d.ts +4 -0
- package/dist/server/modules/terminal/utils/terminal-activity.js +86 -0
- package/dist/server/modules/terminal/utils/terminal-activity.js.map +1 -0
- package/dist/server/modules/watchers/dtos/watcher.dto.d.ts +8 -8
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/ExternalRichEditor-DMtnZIMZ.js +113 -0
- package/dist/server/ui/assets/{ReviewDetailPage-CNffXKv8.js → ReviewDetailPage-BmyiM5IR.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-DAcufZ3r.js → ReviewsPage-CQ87BMwT.js} +1 -1
- package/dist/server/ui/assets/index-BX6Yze-A.js +1177 -0
- package/dist/server/ui/assets/index-qoQEv_u4.css +32 -0
- package/dist/server/ui/assets/{useReviewSubscription-DD29I7uU.js → useReviewSubscription-DjbEUzt4.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/package.json +12 -4
- package/dist/server/ui/assets/index-7iCs8Dxj.js +0 -1153
- package/dist/server/ui/assets/index-CLXZjL_B.css +0 -32
|
@@ -0,0 +1,626 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ExternalMyWorkController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const zod_1 = require("zod");
|
|
19
|
+
const integration_admission_guard_1 = require("../../../common/guards/integration-admission.guard");
|
|
20
|
+
const request_validation_1 = require("../request-validation");
|
|
21
|
+
const external_time_mutation_models_1 = require("../models/external-time-mutation.models");
|
|
22
|
+
const external_my_work_openapi_1 = require("./external-my-work.openapi");
|
|
23
|
+
const external_edit_session_service_1 = require("./external-edit-session.service");
|
|
24
|
+
const external_my_work_service_1 = require("./external-my-work.service");
|
|
25
|
+
const external_time_mutation_service_1 = require("./external-time-mutation.service");
|
|
26
|
+
const providerSchema = zod_1.z.enum(external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS);
|
|
27
|
+
const querySchema = zod_1.z
|
|
28
|
+
.object({
|
|
29
|
+
includeCompleted: zod_1.z.enum(['true', 'false']).optional(),
|
|
30
|
+
})
|
|
31
|
+
.strict();
|
|
32
|
+
const taskCommentsQuerySchema = zod_1.z
|
|
33
|
+
.object({
|
|
34
|
+
cursor: zod_1.z.string().trim().min(1).max(external_my_work_openapi_1.MAX_TASK_COMMENT_CURSOR_LENGTH).optional(),
|
|
35
|
+
})
|
|
36
|
+
.strict();
|
|
37
|
+
const remoteTaskIdSchema = zod_1.z.string().trim().min(1).max(external_my_work_openapi_1.MAX_REMOTE_TASK_ID_LENGTH);
|
|
38
|
+
const statusInputSchema = zod_1.z
|
|
39
|
+
.object({ status: zod_1.z.string().trim().min(1).max(external_my_work_openapi_1.MAX_STATUS_LENGTH) })
|
|
40
|
+
.strict();
|
|
41
|
+
const commentInputSchema = zod_1.z
|
|
42
|
+
.object({
|
|
43
|
+
text: zod_1.z.string().trim().min(1).max(external_my_work_openapi_1.MAX_COMMENT_LENGTH),
|
|
44
|
+
notifyAll: zod_1.z.boolean().optional(),
|
|
45
|
+
})
|
|
46
|
+
.strict();
|
|
47
|
+
const timeEntryInputSchema = zod_1.z
|
|
48
|
+
.object({
|
|
49
|
+
startedAt: zod_1.z.string().datetime({ offset: true }),
|
|
50
|
+
durationMs: zod_1.z.number().int().positive().max(external_my_work_openapi_1.MAX_TIME_ENTRY_DURATION_MS),
|
|
51
|
+
note: zod_1.z.string().trim().max(external_my_work_openapi_1.MAX_TIME_ENTRY_NOTE_LENGTH).nullable().optional(),
|
|
52
|
+
})
|
|
53
|
+
.strict();
|
|
54
|
+
const linkLookupInputSchema = zod_1.z
|
|
55
|
+
.object({
|
|
56
|
+
scopeKey: zod_1.z.string().trim().min(1).max(256),
|
|
57
|
+
taskId: zod_1.z.string().trim().min(1).max(external_my_work_openapi_1.MAX_REMOTE_TASK_ID_LENGTH),
|
|
58
|
+
})
|
|
59
|
+
.strict();
|
|
60
|
+
const linkLookupBodySchema = zod_1.z
|
|
61
|
+
.object({ items: zod_1.z.array(linkLookupInputSchema).min(1).max(1_000) })
|
|
62
|
+
.strict();
|
|
63
|
+
const sessionIdSchema = zod_1.z.string().uuid();
|
|
64
|
+
const deleteSessionInputSchema = zod_1.z
|
|
65
|
+
.object({
|
|
66
|
+
pageProof: zod_1.z.string().trim().min(1).max(external_my_work_openapi_1.MAX_TASK_COMMENT_CURSOR_LENGTH).nullable().optional(),
|
|
67
|
+
})
|
|
68
|
+
.strict();
|
|
69
|
+
const descriptionWriteSchema = zod_1.z
|
|
70
|
+
.object({
|
|
71
|
+
document: zod_1.z.object({ version: zod_1.z.literal(1), blocks: zod_1.z.array(zod_1.z.unknown()) }).strict(),
|
|
72
|
+
revision: zod_1.z.number().int().min(0),
|
|
73
|
+
})
|
|
74
|
+
.strict();
|
|
75
|
+
const remoteCommentIdSchema = zod_1.z.string().trim().min(1).max(256);
|
|
76
|
+
const commentEditSessionInputSchema = zod_1.z
|
|
77
|
+
.object({
|
|
78
|
+
lookupToken: zod_1.z.string().trim().min(1).max(1_024).nullable().optional(),
|
|
79
|
+
})
|
|
80
|
+
.strict();
|
|
81
|
+
const connectionEpochHeaderSchema = zod_1.z
|
|
82
|
+
.string()
|
|
83
|
+
.trim()
|
|
84
|
+
.regex(/^\d{1,10}$/, 'Invalid connection epoch')
|
|
85
|
+
.transform(Number);
|
|
86
|
+
const idempotencyKeyHeaderSchema = zod_1.z
|
|
87
|
+
.string()
|
|
88
|
+
.trim()
|
|
89
|
+
.regex(external_time_mutation_models_1.TIME_OPERATION_ID_PATTERN, 'Invalid idempotency key')
|
|
90
|
+
.max(external_time_mutation_models_1.MAX_TIME_OPERATION_ID_LENGTH);
|
|
91
|
+
const remoteEntryIdSchema = zod_1.z.string().trim().min(1).max(256);
|
|
92
|
+
const operationIdSchema = zod_1.z.string().trim().min(1).max(external_time_mutation_models_1.MAX_TIME_OPERATION_ID_LENGTH);
|
|
93
|
+
function parseOrThrow(schema, value) {
|
|
94
|
+
return (0, request_validation_1.parseOrThrow)(schema, value, 'Invalid My Work request.');
|
|
95
|
+
}
|
|
96
|
+
let ExternalMyWorkController = class ExternalMyWorkController {
|
|
97
|
+
myWork;
|
|
98
|
+
editSessions;
|
|
99
|
+
timeMutations;
|
|
100
|
+
constructor(myWork, editSessions, timeMutations) {
|
|
101
|
+
this.myWork = myWork;
|
|
102
|
+
this.editSessions = editSessions;
|
|
103
|
+
this.timeMutations = timeMutations;
|
|
104
|
+
}
|
|
105
|
+
async getMyWork(providerValue, queryValue) {
|
|
106
|
+
const provider = parseOrThrow(providerSchema, providerValue);
|
|
107
|
+
const query = parseOrThrow(querySchema, queryValue);
|
|
108
|
+
return this.myWork.getMyWork(provider, {
|
|
109
|
+
includeCompleted: query.includeCompleted === 'true',
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
async getTaskDetail(providerValue, taskIdValue) {
|
|
113
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
114
|
+
return this.myWork.getTaskDetail(provider, taskId);
|
|
115
|
+
}
|
|
116
|
+
async listTaskComments(providerValue, taskIdValue, queryValue) {
|
|
117
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
118
|
+
const query = parseOrThrow(taskCommentsQuerySchema, queryValue);
|
|
119
|
+
return this.myWork.listTaskComments(provider, taskId, query.cursor ?? null);
|
|
120
|
+
}
|
|
121
|
+
async listTaskTimeEntries(providerValue, taskIdValue, epochValue) {
|
|
122
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
123
|
+
const epoch = parseOrThrow(connectionEpochHeaderSchema, String(epochValue ?? ''));
|
|
124
|
+
return this.myWork.getTimeEntryHistory(provider, taskId, epoch);
|
|
125
|
+
}
|
|
126
|
+
async changeTaskStatus(providerValue, taskIdValue, body) {
|
|
127
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
128
|
+
return this.myWork.changeTaskStatus(provider, taskId, parseOrThrow(statusInputSchema, body));
|
|
129
|
+
}
|
|
130
|
+
async addTaskComment(providerValue, taskIdValue, body) {
|
|
131
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
132
|
+
const input = parseOrThrow(commentInputSchema, body);
|
|
133
|
+
return this.myWork.addTaskComment(provider, taskId, {
|
|
134
|
+
text: input.text,
|
|
135
|
+
notifyAll: input.notifyAll ?? false,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
async addTaskTimeEntry(providerValue, taskIdValue, epochValue, idempotencyKeyValue, body) {
|
|
139
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
140
|
+
const epoch = parseOrThrow(connectionEpochHeaderSchema, String(epochValue ?? ''));
|
|
141
|
+
const operationId = parseOrThrow(idempotencyKeyHeaderSchema, String(idempotencyKeyValue ?? ''));
|
|
142
|
+
const input = parseOrThrow(timeEntryInputSchema, body);
|
|
143
|
+
return this.timeMutations.createTimeEntry(provider, taskId, {
|
|
144
|
+
startedAt: input.startedAt,
|
|
145
|
+
durationMs: input.durationMs,
|
|
146
|
+
note: input.note ?? null,
|
|
147
|
+
}, operationId, epoch);
|
|
148
|
+
}
|
|
149
|
+
async deleteTaskTimeEntry(providerValue, taskIdValue, entryIdValue, epochValue, idempotencyKeyValue) {
|
|
150
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
151
|
+
const entryId = parseOrThrow(remoteEntryIdSchema, entryIdValue);
|
|
152
|
+
const epoch = parseOrThrow(connectionEpochHeaderSchema, String(epochValue ?? ''));
|
|
153
|
+
const operationId = parseOrThrow(idempotencyKeyHeaderSchema, String(idempotencyKeyValue ?? ''));
|
|
154
|
+
return this.timeMutations.deleteTimeEntry(provider, taskId, entryId, operationId, epoch);
|
|
155
|
+
}
|
|
156
|
+
async getTimeOperation(providerValue, operationIdValue, epochValue) {
|
|
157
|
+
const provider = parseOrThrow(providerSchema, providerValue);
|
|
158
|
+
const operationId = parseOrThrow(operationIdSchema, operationIdValue);
|
|
159
|
+
const epoch = parseOrThrow(connectionEpochHeaderSchema, String(epochValue ?? ''));
|
|
160
|
+
return this.timeMutations.getOperation(provider, operationId, epoch);
|
|
161
|
+
}
|
|
162
|
+
async verifyTimeOperation(providerValue, operationIdValue, epochValue) {
|
|
163
|
+
const provider = parseOrThrow(providerSchema, providerValue);
|
|
164
|
+
const operationId = parseOrThrow(operationIdSchema, operationIdValue);
|
|
165
|
+
const epoch = parseOrThrow(connectionEpochHeaderSchema, String(epochValue ?? ''));
|
|
166
|
+
return this.timeMutations.verifyOperation(provider, operationId, epoch);
|
|
167
|
+
}
|
|
168
|
+
async acknowledgeTimeOperation(providerValue, operationIdValue, epochValue) {
|
|
169
|
+
const provider = parseOrThrow(providerSchema, providerValue);
|
|
170
|
+
const operationId = parseOrThrow(operationIdSchema, operationIdValue);
|
|
171
|
+
const epoch = parseOrThrow(connectionEpochHeaderSchema, String(epochValue ?? ''));
|
|
172
|
+
return this.timeMutations.acknowledgeOperation(provider, operationId, epoch);
|
|
173
|
+
}
|
|
174
|
+
async getTaskLinkStates(providerValue, body) {
|
|
175
|
+
const provider = parseOrThrow(providerSchema, providerValue);
|
|
176
|
+
const input = parseOrThrow(linkLookupBodySchema, body);
|
|
177
|
+
return this.myWork.getTaskLinkStates(provider, input.items);
|
|
178
|
+
}
|
|
179
|
+
async createDescriptionSession(providerValue, taskIdValue) {
|
|
180
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
181
|
+
return this.editSessions.createDescriptionSession(provider, taskId);
|
|
182
|
+
}
|
|
183
|
+
async createCommentDeleteSession(providerValue, taskIdValue, commentIdValue, body) {
|
|
184
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
185
|
+
const input = parseOrThrow(deleteSessionInputSchema, body ?? {});
|
|
186
|
+
return this.editSessions.createCommentDeleteSession(provider, taskId, parseOrThrow(remoteCommentIdSchema, commentIdValue), input.pageProof ?? null);
|
|
187
|
+
}
|
|
188
|
+
async touchSession(sessionIdValue) {
|
|
189
|
+
return this.editSessions.touchSession(parseOrThrow(sessionIdSchema, sessionIdValue));
|
|
190
|
+
}
|
|
191
|
+
async verifySession(sessionIdValue) {
|
|
192
|
+
return this.editSessions.verifySession(parseOrThrow(sessionIdSchema, sessionIdValue));
|
|
193
|
+
}
|
|
194
|
+
async saveSession(sessionIdValue, body) {
|
|
195
|
+
const input = parseOrThrow(descriptionWriteSchema, body);
|
|
196
|
+
return this.editSessions.saveSession(parseOrThrow(sessionIdSchema, sessionIdValue), input.document, input.revision);
|
|
197
|
+
}
|
|
198
|
+
async reloadSession(sessionIdValue) {
|
|
199
|
+
return this.editSessions.reloadSession(parseOrThrow(sessionIdSchema, sessionIdValue));
|
|
200
|
+
}
|
|
201
|
+
async readRichDescription(providerValue, taskIdValue) {
|
|
202
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
203
|
+
return this.editSessions.readRichDescription(provider, taskId);
|
|
204
|
+
}
|
|
205
|
+
async createCommentEditSession(providerValue, taskIdValue, commentIdValue, body) {
|
|
206
|
+
const { provider, taskId } = this.parseTaskPath(providerValue, taskIdValue);
|
|
207
|
+
const input = parseOrThrow(commentEditSessionInputSchema, body ?? {});
|
|
208
|
+
return this.editSessions.createCommentEditSession(provider, taskId, parseOrThrow(remoteCommentIdSchema, commentIdValue), input.lookupToken ?? null);
|
|
209
|
+
}
|
|
210
|
+
async executeCommentDelete(sessionIdValue) {
|
|
211
|
+
return this.editSessions.executeCommentDelete(parseOrThrow(sessionIdSchema, sessionIdValue));
|
|
212
|
+
}
|
|
213
|
+
parseTaskPath(providerValue, taskIdValue) {
|
|
214
|
+
return {
|
|
215
|
+
provider: parseOrThrow(providerSchema, providerValue),
|
|
216
|
+
taskId: parseOrThrow(remoteTaskIdSchema, taskIdValue),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
exports.ExternalMyWorkController = ExternalMyWorkController;
|
|
221
|
+
__decorate([
|
|
222
|
+
(0, common_1.Get)(':provider'),
|
|
223
|
+
(0, swagger_1.ApiOperation)({ summary: 'Load normalized assigned work from a connected provider' }),
|
|
224
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
225
|
+
(0, swagger_1.ApiQuery)({ name: 'includeCompleted', required: false, type: Boolean }),
|
|
226
|
+
(0, swagger_1.ApiResponse)({
|
|
227
|
+
status: 200,
|
|
228
|
+
description: 'A supported My Work snapshot or a safe unsupported-capability response',
|
|
229
|
+
schema: external_my_work_openapi_1.MY_WORK_RESPONSE_SCHEMA,
|
|
230
|
+
}),
|
|
231
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid request or provider is not connected' }),
|
|
232
|
+
(0, swagger_1.ApiResponse)({ status: 429, description: 'The upstream provider rate limit was reached' }),
|
|
233
|
+
(0, swagger_1.ApiResponse)({ status: 502, description: 'The upstream provider response was unavailable' }),
|
|
234
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
235
|
+
__param(1, (0, common_1.Query)()),
|
|
236
|
+
__metadata("design:type", Function),
|
|
237
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
238
|
+
__metadata("design:returntype", Promise)
|
|
239
|
+
], ExternalMyWorkController.prototype, "getMyWork", null);
|
|
240
|
+
__decorate([
|
|
241
|
+
(0, common_1.Get)(':provider/tasks/:taskId'),
|
|
242
|
+
(0, swagger_1.ApiOperation)({ summary: 'Load normalized detail and action capabilities for a remote task' }),
|
|
243
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
244
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
245
|
+
(0, swagger_1.ApiResponse)({
|
|
246
|
+
status: 200,
|
|
247
|
+
description: 'Normalized remote task detail',
|
|
248
|
+
schema: external_my_work_openapi_1.TASK_DETAIL_RESPONSE_SCHEMA,
|
|
249
|
+
}),
|
|
250
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid input or unsupported capability' }),
|
|
251
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
252
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
253
|
+
__metadata("design:type", Function),
|
|
254
|
+
__metadata("design:paramtypes", [String, String]),
|
|
255
|
+
__metadata("design:returntype", Promise)
|
|
256
|
+
], ExternalMyWorkController.prototype, "getTaskDetail", null);
|
|
257
|
+
__decorate([
|
|
258
|
+
(0, common_1.Get)(':provider/tasks/:taskId/comments'),
|
|
259
|
+
(0, swagger_1.ApiOperation)({ summary: 'Load normalized newest-first comment history for a remote task' }),
|
|
260
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
261
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
262
|
+
(0, swagger_1.ApiQuery)({ name: 'cursor', required: false, type: String }),
|
|
263
|
+
(0, swagger_1.ApiResponse)({
|
|
264
|
+
status: 200,
|
|
265
|
+
description: 'Normalized plain-text comment page plus an optional older-history cursor',
|
|
266
|
+
schema: external_my_work_openapi_1.TASK_COMMENTS_RESPONSE_SCHEMA,
|
|
267
|
+
}),
|
|
268
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid input or unsupported capability' }),
|
|
269
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
270
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
271
|
+
__param(2, (0, common_1.Query)()),
|
|
272
|
+
__metadata("design:type", Function),
|
|
273
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
274
|
+
__metadata("design:returntype", Promise)
|
|
275
|
+
], ExternalMyWorkController.prototype, "listTaskComments", null);
|
|
276
|
+
__decorate([
|
|
277
|
+
(0, common_1.Get)(':provider/tasks/:taskId/time-entries'),
|
|
278
|
+
(0, swagger_1.ApiOperation)({
|
|
279
|
+
summary: "Load the connected user's normalized 30-day time-entry history for a remote task",
|
|
280
|
+
description: 'The window is fixed at 30 days and provider-neutral; only the connected user entries are returned, capped at 100 rows. Requires the X-DevChain-Connection-Epoch header, validated before credentials load.',
|
|
281
|
+
}),
|
|
282
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
283
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
284
|
+
(0, swagger_1.ApiResponse)({
|
|
285
|
+
status: 200,
|
|
286
|
+
description: 'Strict 30-day connected-user time-entry history with truncation and running-timer state',
|
|
287
|
+
schema: external_my_work_openapi_1.TASK_TIME_ENTRIES_RESPONSE_SCHEMA,
|
|
288
|
+
}),
|
|
289
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid input or unsupported capability' }),
|
|
290
|
+
(0, swagger_1.ApiResponse)({ status: 409, description: 'The connection epoch precondition failed' }),
|
|
291
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
292
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
293
|
+
__param(2, (0, common_1.Headers)('x-devchain-connection-epoch')),
|
|
294
|
+
__metadata("design:type", Function),
|
|
295
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
296
|
+
__metadata("design:returntype", Promise)
|
|
297
|
+
], ExternalMyWorkController.prototype, "listTaskTimeEntries", null);
|
|
298
|
+
__decorate([
|
|
299
|
+
(0, common_1.Put)(':provider/tasks/:taskId/status'),
|
|
300
|
+
(0, swagger_1.ApiOperation)({ summary: 'Change a remote task status' }),
|
|
301
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
302
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
303
|
+
(0, swagger_1.ApiBody)({ schema: external_my_work_openapi_1.STATUS_INPUT_BODY_SCHEMA }),
|
|
304
|
+
(0, swagger_1.ApiResponse)({
|
|
305
|
+
status: 200,
|
|
306
|
+
description: 'Normalized action acknowledgement',
|
|
307
|
+
schema: (0, external_my_work_openapi_1.taskActionResponseSchema)('change_status'),
|
|
308
|
+
}),
|
|
309
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
310
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
311
|
+
__param(2, (0, common_1.Body)()),
|
|
312
|
+
__metadata("design:type", Function),
|
|
313
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
314
|
+
__metadata("design:returntype", Promise)
|
|
315
|
+
], ExternalMyWorkController.prototype, "changeTaskStatus", null);
|
|
316
|
+
__decorate([
|
|
317
|
+
(0, common_1.Post)(':provider/tasks/:taskId/comments'),
|
|
318
|
+
(0, swagger_1.ApiOperation)({ summary: 'Add a plain-text remote task comment' }),
|
|
319
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
320
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
321
|
+
(0, swagger_1.ApiBody)({ schema: external_my_work_openapi_1.COMMENT_INPUT_BODY_SCHEMA }),
|
|
322
|
+
(0, swagger_1.ApiResponse)({
|
|
323
|
+
status: 200,
|
|
324
|
+
description: 'Normalized action acknowledgement',
|
|
325
|
+
schema: (0, external_my_work_openapi_1.taskActionResponseSchema)('add_comment'),
|
|
326
|
+
}),
|
|
327
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
328
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
329
|
+
__param(2, (0, common_1.Body)()),
|
|
330
|
+
__metadata("design:type", Function),
|
|
331
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
332
|
+
__metadata("design:returntype", Promise)
|
|
333
|
+
], ExternalMyWorkController.prototype, "addTaskComment", null);
|
|
334
|
+
__decorate([
|
|
335
|
+
(0, common_1.Post)(':provider/tasks/:taskId/time-entries'),
|
|
336
|
+
(0, swagger_1.ApiOperation)({
|
|
337
|
+
summary: 'Create a manual remote task time entry behind an operation receipt',
|
|
338
|
+
description: 'Requires the X-DevChain-Connection-Epoch precondition header and an Idempotency-Key operation id. One operation id and payload tuple dispatch at most once; a dispatched timeout, network loss, or unusable 5xx returns outcome_unknown and is never retried automatically.',
|
|
339
|
+
}),
|
|
340
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
341
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
342
|
+
(0, swagger_1.ApiBody)({ schema: external_my_work_openapi_1.TIME_ENTRY_INPUT_BODY_SCHEMA }),
|
|
343
|
+
(0, swagger_1.ApiResponse)({
|
|
344
|
+
status: 200,
|
|
345
|
+
description: 'Provider-confirmed create or a receipt-bound unknown outcome',
|
|
346
|
+
schema: external_my_work_openapi_1.TIME_ENTRY_CREATE_RESPONSE_SCHEMA,
|
|
347
|
+
}),
|
|
348
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid input or unsupported capability' }),
|
|
349
|
+
(0, swagger_1.ApiResponse)({
|
|
350
|
+
status: 409,
|
|
351
|
+
description: 'Epoch precondition, idempotency conflict, or busy gate',
|
|
352
|
+
}),
|
|
353
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
354
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
355
|
+
__param(2, (0, common_1.Headers)('x-devchain-connection-epoch')),
|
|
356
|
+
__param(3, (0, common_1.Headers)('idempotency-key')),
|
|
357
|
+
__param(4, (0, common_1.Body)()),
|
|
358
|
+
__metadata("design:type", Function),
|
|
359
|
+
__metadata("design:paramtypes", [String, String, Object, Object, Object]),
|
|
360
|
+
__metadata("design:returntype", Promise)
|
|
361
|
+
], ExternalMyWorkController.prototype, "addTaskTimeEntry", null);
|
|
362
|
+
__decorate([
|
|
363
|
+
(0, common_1.Delete)(':provider/tasks/:taskId/time-entries/:entryId'),
|
|
364
|
+
(0, swagger_1.ApiOperation)({
|
|
365
|
+
summary: 'Delete an owned remote time entry behind an operation receipt',
|
|
366
|
+
description: 'Requires the X-DevChain-Connection-Epoch precondition header and an Idempotency-Key operation id. A provider preflight proves presence and ownership first; ambiguous outcomes resolve only through the exact-resource verify route.',
|
|
367
|
+
}),
|
|
368
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
369
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
370
|
+
(0, swagger_1.ApiParam)({ name: 'entryId', type: String }),
|
|
371
|
+
(0, swagger_1.ApiResponse)({
|
|
372
|
+
status: 200,
|
|
373
|
+
description: 'Deleted, already-deleted, not-applied, or a receipt-bound unknown outcome',
|
|
374
|
+
schema: external_my_work_openapi_1.TIME_ENTRY_DELETE_RESPONSE_SCHEMA,
|
|
375
|
+
}),
|
|
376
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid input or unsupported capability' }),
|
|
377
|
+
(0, swagger_1.ApiResponse)({ status: 403, description: 'The entry is not deletable by the connected user' }),
|
|
378
|
+
(0, swagger_1.ApiResponse)({
|
|
379
|
+
status: 409,
|
|
380
|
+
description: 'Epoch precondition, idempotency conflict, or busy gate',
|
|
381
|
+
}),
|
|
382
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
383
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
384
|
+
__param(2, (0, common_1.Param)('entryId')),
|
|
385
|
+
__param(3, (0, common_1.Headers)('x-devchain-connection-epoch')),
|
|
386
|
+
__param(4, (0, common_1.Headers)('idempotency-key')),
|
|
387
|
+
__metadata("design:type", Function),
|
|
388
|
+
__metadata("design:paramtypes", [String, String, String, Object, Object]),
|
|
389
|
+
__metadata("design:returntype", Promise)
|
|
390
|
+
], ExternalMyWorkController.prototype, "deleteTaskTimeEntry", null);
|
|
391
|
+
__decorate([
|
|
392
|
+
(0, common_1.Get)(':provider/time-operations/:operationId'),
|
|
393
|
+
(0, swagger_1.ApiOperation)({
|
|
394
|
+
summary: 'Read one time-entry operation receipt',
|
|
395
|
+
description: 'Requires the X-DevChain-Connection-Epoch precondition header.',
|
|
396
|
+
}),
|
|
397
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
398
|
+
(0, swagger_1.ApiParam)({ name: 'operationId', type: String }),
|
|
399
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.TIME_OPERATION_ACK_RESPONSE_SCHEMA }),
|
|
400
|
+
(0, swagger_1.ApiResponse)({ status: 404, description: 'The operation receipt is unknown or expired' }),
|
|
401
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
402
|
+
__param(1, (0, common_1.Param)('operationId')),
|
|
403
|
+
__param(2, (0, common_1.Headers)('x-devchain-connection-epoch')),
|
|
404
|
+
__metadata("design:type", Function),
|
|
405
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
406
|
+
__metadata("design:returntype", Promise)
|
|
407
|
+
], ExternalMyWorkController.prototype, "getTimeOperation", null);
|
|
408
|
+
__decorate([
|
|
409
|
+
(0, common_1.Post)(':provider/time-operations/:operationId/verify'),
|
|
410
|
+
(0, swagger_1.ApiOperation)({
|
|
411
|
+
summary: 'Resolve an unknown time-entry operation from exact provider proof',
|
|
412
|
+
description: 'Creates resolve only from complete before/after id sets plus exactly one new matching entry; deletes resolve only through the exact-resource read. Collection absence never resolves anything.',
|
|
413
|
+
}),
|
|
414
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
415
|
+
(0, swagger_1.ApiParam)({ name: 'operationId', type: String }),
|
|
416
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.TIME_OPERATION_VERIFY_RESPONSE_SCHEMA }),
|
|
417
|
+
(0, swagger_1.ApiResponse)({ status: 404, description: 'The operation receipt is unknown or expired' }),
|
|
418
|
+
(0, swagger_1.ApiResponse)({ status: 409, description: 'Epoch precondition failed' }),
|
|
419
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
420
|
+
__param(1, (0, common_1.Param)('operationId')),
|
|
421
|
+
__param(2, (0, common_1.Headers)('x-devchain-connection-epoch')),
|
|
422
|
+
__metadata("design:type", Function),
|
|
423
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
424
|
+
__metadata("design:returntype", Promise)
|
|
425
|
+
], ExternalMyWorkController.prototype, "verifyTimeOperation", null);
|
|
426
|
+
__decorate([
|
|
427
|
+
(0, common_1.Post)(':provider/time-operations/:operationId/acknowledge'),
|
|
428
|
+
(0, swagger_1.ApiOperation)({
|
|
429
|
+
summary: 'Acknowledge the duplicate risk of an unknown time-entry operation',
|
|
430
|
+
description: 'Transitions a live unknown receipt to terminal abandoned_unknown. This is the only way past an ambiguity that cannot be verified.',
|
|
431
|
+
}),
|
|
432
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
433
|
+
(0, swagger_1.ApiParam)({ name: 'operationId', type: String }),
|
|
434
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.TIME_OPERATION_ACK_RESPONSE_SCHEMA }),
|
|
435
|
+
(0, swagger_1.ApiResponse)({ status: 404, description: 'The operation receipt is unknown or expired' }),
|
|
436
|
+
(0, swagger_1.ApiResponse)({ status: 409, description: 'The operation is not unresolved' }),
|
|
437
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
438
|
+
__param(1, (0, common_1.Param)('operationId')),
|
|
439
|
+
__param(2, (0, common_1.Headers)('x-devchain-connection-epoch')),
|
|
440
|
+
__metadata("design:type", Function),
|
|
441
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
442
|
+
__metadata("design:returntype", Promise)
|
|
443
|
+
], ExternalMyWorkController.prototype, "acknowledgeTimeOperation", null);
|
|
444
|
+
__decorate([
|
|
445
|
+
(0, common_1.Post)(':provider/links/batch'),
|
|
446
|
+
(0, swagger_1.ApiOperation)({ summary: 'Resolve DevChain link state for remote task cards' }),
|
|
447
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
448
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
449
|
+
__param(1, (0, common_1.Body)()),
|
|
450
|
+
__metadata("design:type", Function),
|
|
451
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
452
|
+
__metadata("design:returntype", Promise)
|
|
453
|
+
], ExternalMyWorkController.prototype, "getTaskLinkStates", null);
|
|
454
|
+
__decorate([
|
|
455
|
+
(0, common_1.Post)(':provider/tasks/:taskId/edit-sessions'),
|
|
456
|
+
(0, swagger_1.ApiOperation)({
|
|
457
|
+
summary: 'Open a bounded description-edit session from a fresh baseline read',
|
|
458
|
+
description: 'Read-only rendering never allocates a session. Unsupported baseline content fails closed with unsupported_content and no session is created.',
|
|
459
|
+
}),
|
|
460
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
461
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
462
|
+
(0, swagger_1.ApiResponse)({
|
|
463
|
+
status: 201,
|
|
464
|
+
description: 'The opened edit session pinned to the current connection generation',
|
|
465
|
+
schema: external_my_work_openapi_1.EDIT_SESSION_RESPONSE_SCHEMA,
|
|
466
|
+
}),
|
|
467
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
468
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
469
|
+
__metadata("design:type", Function),
|
|
470
|
+
__metadata("design:paramtypes", [String, String]),
|
|
471
|
+
__metadata("design:returntype", Promise)
|
|
472
|
+
], ExternalMyWorkController.prototype, "createDescriptionSession", null);
|
|
473
|
+
__decorate([
|
|
474
|
+
(0, common_1.Post)(':provider/tasks/:taskId/comments/:commentId/delete-sessions'),
|
|
475
|
+
(0, swagger_1.ApiOperation)({
|
|
476
|
+
summary: 'Open an owner-validated comment-deletion session through a bounded lookup',
|
|
477
|
+
description: 'ClickUp lookups replay at most the producing page plus one provider-issued adjacent page. A comment that is missing or not authored by the current user creates no session.',
|
|
478
|
+
}),
|
|
479
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
480
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
481
|
+
(0, swagger_1.ApiParam)({ name: 'commentId', type: String }),
|
|
482
|
+
(0, swagger_1.ApiBody)({ schema: external_my_work_openapi_1.DELETE_SESSION_INPUT_BODY_SCHEMA }),
|
|
483
|
+
(0, swagger_1.ApiResponse)({
|
|
484
|
+
status: 201,
|
|
485
|
+
description: 'The opened deletion session; deletion itself is a separate gated action',
|
|
486
|
+
schema: external_my_work_openapi_1.EDIT_SESSION_RESPONSE_SCHEMA,
|
|
487
|
+
}),
|
|
488
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
489
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
490
|
+
__param(2, (0, common_1.Param)('commentId')),
|
|
491
|
+
__param(3, (0, common_1.Body)()),
|
|
492
|
+
__metadata("design:type", Function),
|
|
493
|
+
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
494
|
+
__metadata("design:returntype", Promise)
|
|
495
|
+
], ExternalMyWorkController.prototype, "createCommentDeleteSession", null);
|
|
496
|
+
__decorate([
|
|
497
|
+
(0, common_1.Post)('edit-sessions/:sessionId/touch'),
|
|
498
|
+
(0, swagger_1.ApiOperation)({
|
|
499
|
+
summary: 'Keep a dirty editor session active without contacting the provider',
|
|
500
|
+
}),
|
|
501
|
+
(0, swagger_1.ApiParam)({ name: 'sessionId', type: String, format: 'uuid' }),
|
|
502
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.EDIT_SESSION_RESPONSE_SCHEMA }),
|
|
503
|
+
__param(0, (0, common_1.Param)('sessionId')),
|
|
504
|
+
__metadata("design:type", Function),
|
|
505
|
+
__metadata("design:paramtypes", [String]),
|
|
506
|
+
__metadata("design:returntype", Promise)
|
|
507
|
+
], ExternalMyWorkController.prototype, "touchSession", null);
|
|
508
|
+
__decorate([
|
|
509
|
+
(0, common_1.Post)('edit-sessions/:sessionId/verify'),
|
|
510
|
+
(0, swagger_1.ApiOperation)({
|
|
511
|
+
summary: 'Verify a session against a fresh remote read after an unknown outcome',
|
|
512
|
+
description: 'Seeing the new payload commits the save exactly once; seeing the old baseline never re-arms writes; other content reports divergence.',
|
|
513
|
+
}),
|
|
514
|
+
(0, swagger_1.ApiParam)({ name: 'sessionId', type: String, format: 'uuid' }),
|
|
515
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.EDIT_SESSION_VERIFY_RESPONSE_SCHEMA }),
|
|
516
|
+
__param(0, (0, common_1.Param)('sessionId')),
|
|
517
|
+
__metadata("design:type", Function),
|
|
518
|
+
__metadata("design:paramtypes", [String]),
|
|
519
|
+
__metadata("design:returntype", Promise)
|
|
520
|
+
], ExternalMyWorkController.prototype, "verifySession", null);
|
|
521
|
+
__decorate([
|
|
522
|
+
(0, common_1.Post)('edit-sessions/:sessionId/save'),
|
|
523
|
+
(0, swagger_1.ApiOperation)({
|
|
524
|
+
summary: 'Save canonical rich content through a current editable session',
|
|
525
|
+
description: 'A fresh provider read, revision and metadata comparison, connection-generation check, and one vendor mutation run inside the shared provider operation gate; the gate is then released and a read-only post-write verification runs with generation rechecks on both sides. A verified save returns the new revision. A dispatched timeout, network loss, or 5xx classifies as outcome_unknown. Neither provider offers compare-and-swap, so a remote edit landing between the preflight and verification reads can remain undetectable; divergence detection narrows but does not eliminate that window.',
|
|
526
|
+
}),
|
|
527
|
+
(0, swagger_1.ApiParam)({ name: 'sessionId', type: String, format: 'uuid' }),
|
|
528
|
+
(0, swagger_1.ApiBody)({
|
|
529
|
+
schema: {
|
|
530
|
+
type: 'object',
|
|
531
|
+
required: ['document', 'revision'],
|
|
532
|
+
properties: {
|
|
533
|
+
document: { type: 'object' },
|
|
534
|
+
revision: { type: 'integer', minimum: 0 },
|
|
535
|
+
},
|
|
536
|
+
},
|
|
537
|
+
}),
|
|
538
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.EDIT_SESSION_WRITE_RESPONSE_SCHEMA }),
|
|
539
|
+
__param(0, (0, common_1.Param)('sessionId')),
|
|
540
|
+
__param(1, (0, common_1.Body)()),
|
|
541
|
+
__metadata("design:type", Function),
|
|
542
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
543
|
+
__metadata("design:returntype", Promise)
|
|
544
|
+
], ExternalMyWorkController.prototype, "saveSession", null);
|
|
545
|
+
__decorate([
|
|
546
|
+
(0, common_1.Post)('edit-sessions/:sessionId/reload'),
|
|
547
|
+
(0, swagger_1.ApiOperation)({
|
|
548
|
+
summary: 'Reload the editable session baseline from a fresh provider read',
|
|
549
|
+
description: 'Discards the local baseline in favor of the current remote content and advances the revision. Available only from the editable state; a session with an unknown pending write must Verify or retry its exact payload instead.',
|
|
550
|
+
}),
|
|
551
|
+
(0, swagger_1.ApiParam)({ name: 'sessionId', type: String, format: 'uuid' }),
|
|
552
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.EDIT_SESSION_RELOAD_RESPONSE_SCHEMA }),
|
|
553
|
+
__param(0, (0, common_1.Param)('sessionId')),
|
|
554
|
+
__metadata("design:type", Function),
|
|
555
|
+
__metadata("design:paramtypes", [String]),
|
|
556
|
+
__metadata("design:returntype", Promise)
|
|
557
|
+
], ExternalMyWorkController.prototype, "reloadSession", null);
|
|
558
|
+
__decorate([
|
|
559
|
+
(0, common_1.Get)(':provider/tasks/:taskId/rich-description'),
|
|
560
|
+
(0, swagger_1.ApiOperation)({
|
|
561
|
+
summary: 'Stateless canonical rich-description read (allocates no session)',
|
|
562
|
+
description: 'Returns the bounded canonical document when the provider payload parses inside the closed set, plus capability flags and a read-only reason otherwise. Only the explicit edit-session route creates a session.',
|
|
563
|
+
}),
|
|
564
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
565
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
566
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.RICH_DESCRIPTION_RESPONSE_SCHEMA }),
|
|
567
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
568
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
569
|
+
__metadata("design:type", Function),
|
|
570
|
+
__metadata("design:paramtypes", [String, String]),
|
|
571
|
+
__metadata("design:returntype", Promise)
|
|
572
|
+
], ExternalMyWorkController.prototype, "readRichDescription", null);
|
|
573
|
+
__decorate([
|
|
574
|
+
(0, common_1.Post)(':provider/tasks/:taskId/comments/:commentId/edit-sessions'),
|
|
575
|
+
(0, swagger_1.ApiOperation)({
|
|
576
|
+
summary: 'Open an owner-validated comment-edit session through a bounded lookup',
|
|
577
|
+
description: 'The comment must parse inside the closed canonical set and belong to the authenticated user. ClickUp callers pass the server-issued lookup token from the comment page; Jira uses its exact-comment endpoint.',
|
|
578
|
+
}),
|
|
579
|
+
(0, swagger_1.ApiParam)({ name: 'provider', enum: [...external_my_work_openapi_1.INTEGRATION_PROVIDER_IDS] }),
|
|
580
|
+
(0, swagger_1.ApiParam)({ name: 'taskId', type: String }),
|
|
581
|
+
(0, swagger_1.ApiParam)({ name: 'commentId', type: String }),
|
|
582
|
+
(0, swagger_1.ApiBody)({ schema: external_my_work_openapi_1.COMMENT_EDIT_SESSION_INPUT_BODY_SCHEMA }),
|
|
583
|
+
(0, swagger_1.ApiResponse)({
|
|
584
|
+
status: 201,
|
|
585
|
+
description: 'The opened comment-edit session pinned to the current connection generation',
|
|
586
|
+
schema: external_my_work_openapi_1.EDIT_SESSION_RESPONSE_SCHEMA,
|
|
587
|
+
}),
|
|
588
|
+
__param(0, (0, common_1.Param)('provider')),
|
|
589
|
+
__param(1, (0, common_1.Param)('taskId')),
|
|
590
|
+
__param(2, (0, common_1.Param)('commentId')),
|
|
591
|
+
__param(3, (0, common_1.Body)()),
|
|
592
|
+
__metadata("design:type", Function),
|
|
593
|
+
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
594
|
+
__metadata("design:returntype", Promise)
|
|
595
|
+
], ExternalMyWorkController.prototype, "createCommentEditSession", null);
|
|
596
|
+
__decorate([
|
|
597
|
+
(0, common_1.Delete)('edit-sessions/:sessionId'),
|
|
598
|
+
(0, swagger_1.ApiOperation)({
|
|
599
|
+
summary: 'Execute the owned comment deletion of a current session',
|
|
600
|
+
description: 'A later vendor 404 is treated as already deleted. Known rejections fail closed and invalidate the session.',
|
|
601
|
+
}),
|
|
602
|
+
(0, swagger_1.ApiParam)({ name: 'sessionId', type: String, format: 'uuid' }),
|
|
603
|
+
(0, swagger_1.ApiResponse)({ status: 200, schema: external_my_work_openapi_1.COMMENT_DELETE_RESPONSE_SCHEMA }),
|
|
604
|
+
__param(0, (0, common_1.Param)('sessionId')),
|
|
605
|
+
__metadata("design:type", Function),
|
|
606
|
+
__metadata("design:paramtypes", [String]),
|
|
607
|
+
__metadata("design:returntype", Promise)
|
|
608
|
+
], ExternalMyWorkController.prototype, "executeCommentDelete", null);
|
|
609
|
+
exports.ExternalMyWorkController = ExternalMyWorkController = __decorate([
|
|
610
|
+
(0, swagger_1.ApiTags)('integrations'),
|
|
611
|
+
(0, common_1.Controller)('api/integrations/my-work'),
|
|
612
|
+
(0, common_1.UseGuards)(integration_admission_guard_1.IntegrationAdmissionGuard),
|
|
613
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid request, connection, or capability' }),
|
|
614
|
+
(0, swagger_1.ApiResponse)({ status: 403, description: 'The provider denied the operation' }),
|
|
615
|
+
(0, swagger_1.ApiResponse)({ status: 404, description: 'The remote task was not found' }),
|
|
616
|
+
(0, swagger_1.ApiResponse)({ status: 429, description: 'The provider rate limit was reached' }),
|
|
617
|
+
(0, swagger_1.ApiResponse)({
|
|
618
|
+
status: 502,
|
|
619
|
+
description: 'The provider returned an invalid or unavailable response',
|
|
620
|
+
}),
|
|
621
|
+
(0, swagger_1.ApiResponse)({ status: 504, description: 'The provider request timed out' }),
|
|
622
|
+
__metadata("design:paramtypes", [external_my_work_service_1.ExternalMyWorkService,
|
|
623
|
+
external_edit_session_service_1.ExternalEditSessionService,
|
|
624
|
+
external_time_mutation_service_1.ExternalTimeMutationService])
|
|
625
|
+
], ExternalMyWorkController);
|
|
626
|
+
//# sourceMappingURL=external-my-work.controller.js.map
|