devchain-cli 0.24.0 → 0.24.2
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 -4
- package/dist/build-info.json +2 -2
- package/dist/cli.js +66 -11
- package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
- package/dist/host-install/pins.json +31 -2
- package/dist/lib/exclusive-run.js +51 -3
- package/dist/lib/git-owner.js +284 -0
- package/dist/lib/host-install.js +19 -151
- package/dist/lib/local-api.js +175 -0
- package/dist/server/common/config/env.config.d.ts +3 -0
- package/dist/server/common/config/env.config.js +1 -0
- package/dist/server/common/config/env.config.js.map +1 -1
- package/dist/server/common/config/host-image.json +3 -3
- package/dist/server/common/constants/syncthing-markers.d.ts +1 -0
- package/dist/server/common/constants/syncthing-markers.js +6 -1
- package/dist/server/common/constants/syncthing-markers.js.map +1 -1
- package/dist/server/common/filesystem/vm-home-path.d.ts +11 -0
- package/dist/server/common/filesystem/vm-home-path.js +48 -0
- package/dist/server/common/filesystem/vm-home-path.js.map +1 -0
- package/dist/server/common/process-ids-env.d.ts +1 -0
- package/dist/server/common/process-ids-env.js +13 -0
- package/dist/server/common/process-ids-env.js.map +1 -0
- package/dist/server/common/test/api-test-app.d.ts +12 -0
- package/dist/server/common/test/api-test-app.js +76 -0
- package/dist/server/common/test/api-test-app.js.map +1 -0
- package/dist/server/common/test/app-bootstrap.helper.js +8 -1
- package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
- package/dist/server/common/test/fake-bootstrap.server.js +3 -2
- package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
- package/dist/server/common/test/fake-docker-engine.server.d.ts +24 -6
- package/dist/server/common/test/fake-docker-engine.server.js +123 -25
- package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
- package/dist/server/common/test/fake-proxmox.server.js +4 -4
- package/dist/server/common/test/fake-ssh.server.js +6 -6
- package/dist/server/common/test/fake-ssh.server.js.map +1 -1
- package/dist/server/common/test/test-database.helper.d.ts +6 -0
- package/dist/server/common/test/test-database.helper.js +29 -0
- package/dist/server/common/test/test-database.helper.js.map +1 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +1 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +9 -3
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-transcript-projection.d.ts +6 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-transcript-projection.js +88 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-transcript-projection.js.map +1 -0
- package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js +7 -1
- package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js.map +1 -1
- package/dist/server/modules/core/controllers/docker-archive.d.ts +9 -2
- package/dist/server/modules/core/controllers/docker-archive.js +22 -6
- package/dist/server/modules/core/controllers/docker-archive.js.map +1 -1
- package/dist/server/modules/core/controllers/docker-engine.client.d.ts +2 -1
- package/dist/server/modules/core/controllers/docker-engine.client.js +57 -4
- package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
- package/dist/server/modules/core/controllers/docker-image-metadata.d.ts +248 -0
- package/dist/server/modules/core/controllers/docker-image-metadata.js +161 -0
- package/dist/server/modules/core/controllers/docker-image-metadata.js.map +1 -0
- package/dist/server/modules/core/controllers/docker-settings.d.ts +13 -2
- package/dist/server/modules/core/controllers/docker-settings.js +49 -11
- package/dist/server/modules/core/controllers/docker-settings.js.map +1 -1
- package/dist/server/modules/core/controllers/host-user-identity.d.ts +34 -0
- package/dist/server/modules/core/controllers/host-user-identity.js +23 -0
- package/dist/server/modules/core/controllers/host-user-identity.js.map +1 -0
- package/dist/server/modules/core/controllers/runtime.controller.d.ts +11 -4
- 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/file-sync/build-exclusion-suggestions.d.ts +15 -0
- package/dist/server/modules/file-sync/build-exclusion-suggestions.js +402 -0
- package/dist/server/modules/file-sync/build-exclusion-suggestions.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.dto.d.ts +102 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +22 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.store.d.ts +12 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.store.js +73 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.store.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-conflicts.d.ts +3 -0
- package/dist/server/modules/file-sync/file-sync-conflicts.js +191 -0
- package/dist/server/modules/file-sync/file-sync-conflicts.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-ignores.store.d.ts +5 -1
- package/dist/server/modules/file-sync/file-sync-ignores.store.js +39 -8
- package/dist/server/modules/file-sync/file-sync-ignores.store.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.controller.d.ts +1 -3
- package/dist/server/modules/file-sync/file-sync.controller.js +5 -14
- package/dist/server/modules/file-sync/file-sync.controller.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.dto.d.ts +220 -1
- package/dist/server/modules/file-sync/file-sync.dto.js +70 -4
- package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.module.js +16 -1
- package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.service.d.ts +20 -5
- package/dist/server/modules/file-sync/file-sync.service.js +173 -37
- package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
- package/dist/server/modules/file-sync/git-guard.dto.d.ts +61 -0
- package/dist/server/modules/file-sync/git-guard.dto.js +26 -0
- package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -0
- package/dist/server/modules/file-sync/home-git-guard.service.d.ts +4 -2
- package/dist/server/modules/file-sync/home-git-guard.service.js +50 -25
- package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
- package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +10 -0
- package/dist/server/modules/file-sync/host-git-guard.controller.js +64 -0
- package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -0
- package/dist/server/modules/file-sync/host-git-index.controller.d.ts +9 -0
- package/dist/server/modules/file-sync/host-git-index.controller.js +67 -0
- package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -0
- package/dist/server/modules/file-sync/host-sync.controller.d.ts +15 -2
- package/dist/server/modules/file-sync/host-sync.controller.js +122 -14
- package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
- package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +30 -0
- package/dist/server/modules/file-sync/ignore-pattern-matcher.js +183 -0
- package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -0
- package/dist/server/modules/file-sync/project-repository.d.ts +2 -0
- package/dist/server/modules/file-sync/project-repository.js +20 -0
- package/dist/server/modules/file-sync/project-repository.js.map +1 -0
- package/dist/server/modules/file-sync/sync-chown.dto.d.ts +99 -0
- package/dist/server/modules/file-sync/sync-chown.dto.js +46 -0
- package/dist/server/modules/file-sync/sync-chown.dto.js.map +1 -0
- package/dist/server/modules/file-sync/sync-chown.service.d.ts +12 -0
- package/dist/server/modules/file-sync/sync-chown.service.js +230 -0
- package/dist/server/modules/file-sync/sync-chown.service.js.map +1 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +626 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.js +108 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -0
- package/dist/server/modules/file-sync/sync-path-inspector.d.ts +12 -0
- package/dist/server/modules/file-sync/sync-path-inspector.js +413 -0
- package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -0
- package/dist/server/modules/file-sync/syncthing-rest.client.d.ts +1 -1
- package/dist/server/modules/file-sync/syncthing-rest.client.js +9 -4
- package/dist/server/modules/file-sync/syncthing-rest.client.js.map +1 -1
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +28 -5
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +68 -5
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
- package/dist/server/modules/file-sync/translate-git-ignore-rule.d.ts +3 -0
- package/dist/server/modules/file-sync/translate-git-ignore-rule.js +30 -0
- package/dist/server/modules/file-sync/translate-git-ignore-rule.js.map +1 -0
- package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +86 -0
- package/dist/server/modules/hooks/dtos/hook-event.dto.js +15 -1
- package/dist/server/modules/hooks/dtos/hook-event.dto.js.map +1 -1
- package/dist/server/modules/hooks/services/hooks-config.service.js +29 -0
- package/dist/server/modules/hooks/services/hooks-config.service.js.map +1 -1
- package/dist/server/modules/hooks/services/hooks.service.d.ts +5 -1
- package/dist/server/modules/hooks/services/hooks.service.js +27 -5
- package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
- package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +2 -2
- package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +9 -12
- package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/skill-tools.js +2 -2
- package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
- package/dist/server/modules/metrics/services/metrics.service.js +1 -1
- package/dist/server/modules/metrics/services/metrics.service.js.map +1 -1
- package/dist/server/modules/providers/adapters/claude.adapter.d.ts +3 -1
- package/dist/server/modules/providers/adapters/claude.adapter.js +4 -1
- package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
- package/dist/server/modules/remotes/connect-choices.controller.d.ts +9 -0
- package/dist/server/modules/remotes/connect-choices.controller.js +54 -0
- package/dist/server/modules/remotes/connect-choices.controller.js.map +1 -0
- package/dist/server/modules/remotes/connect-choices.dto.d.ts +52 -0
- package/dist/server/modules/remotes/connect-choices.dto.js +19 -0
- package/dist/server/modules/remotes/connect-choices.dto.js.map +1 -0
- package/dist/server/modules/remotes/connect-choices.store.d.ts +12 -0
- package/dist/server/modules/remotes/connect-choices.store.js +95 -0
- package/dist/server/modules/remotes/connect-choices.store.js.map +1 -0
- package/dist/server/modules/remotes/controllers/remotes.controller.d.ts +3 -0
- package/dist/server/modules/remotes/controllers/remotes.controller.js +9 -1
- package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +1 -0
- package/dist/server/modules/remotes/docker/docker-copy-back.js +70 -31
- package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-handoff.d.ts +5 -3
- package/dist/server/modules/remotes/docker/docker-handoff.js +221 -53
- package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +5 -0
- package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +4 -1
- package/dist/server/modules/remotes/docker/docker-plan-fit.js +19 -6
- package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +6 -2
- package/dist/server/modules/remotes/docker/docker-plan-policy.js +191 -38
- package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +55 -6
- package/dist/server/modules/remotes/docker/docker-plan-source.service.js +284 -52
- package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +2 -1
- package/dist/server/modules/remotes/docker/docker-plan.controller.js +15 -1
- package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +47 -1
- package/dist/server/modules/remotes/docker/docker-plan.dto.js +1 -0
- package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +15 -6
- package/dist/server/modules/remotes/docker/docker-plan.service.js +83 -20
- package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +7 -0
- package/dist/server/modules/remotes/docker/docker-project-compose.js +30 -0
- package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -0
- package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
- package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
- package/dist/server/modules/remotes/git-owner.store.d.ts +13 -0
- package/dist/server/modules/remotes/git-owner.store.js +69 -0
- package/dist/server/modules/remotes/git-owner.store.js.map +1 -0
- package/dist/server/modules/remotes/host/host-docker.controller.d.ts +14 -1
- package/dist/server/modules/remotes/host/host-docker.controller.js +28 -9
- package/dist/server/modules/remotes/host/host-docker.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host-docker.dto.d.ts +640 -3
- package/dist/server/modules/remotes/host/host-docker.dto.js +66 -9
- package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
- package/dist/server/modules/remotes/host/host-docker.service.d.ts +18 -6
- package/dist/server/modules/remotes/host/host-docker.service.js +184 -81
- package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-ipv4-routes.d.ts +4 -0
- package/dist/server/modules/remotes/host/host-ipv4-routes.js +43 -0
- package/dist/server/modules/remotes/host/host-ipv4-routes.js.map +1 -0
- package/dist/server/modules/remotes/host-image.d.ts +1 -1
- package/dist/server/modules/remotes/host-image.js +1 -1
- package/dist/server/modules/remotes/host-install/host-install-block.d.ts +1 -0
- package/dist/server/modules/remotes/host-install/host-install-block.js +76 -2
- package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
- package/dist/server/modules/remotes/host-install/host-install.service.d.ts +0 -1
- package/dist/server/modules/remotes/host-install/host-install.service.js +9 -26
- package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
- package/dist/server/modules/remotes/operations/attach.operation.d.ts +5 -1
- package/dist/server/modules/remotes/operations/attach.operation.js +41 -5
- package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/claim.operation.d.ts +1 -0
- package/dist/server/modules/remotes/operations/claim.operation.js +6 -1
- package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/detach.operation.d.ts +4 -1
- package/dist/server/modules/remotes/operations/detach.operation.js +10 -2
- package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +10 -0
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +17 -0
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
- package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +30 -2
- package/dist/server/modules/remotes/operations/file-sync-handoff.js +498 -57
- package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
- package/dist/server/modules/remotes/operations/force-sync.operation.d.ts +39 -0
- package/dist/server/modules/remotes/operations/force-sync.operation.js +177 -0
- package/dist/server/modules/remotes/operations/force-sync.operation.js.map +1 -0
- package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +83 -0
- package/dist/server/modules/remotes/operations/git-owner.dto.js +25 -0
- package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -0
- package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +35 -0
- package/dist/server/modules/remotes/operations/git-owner.operation.js +216 -0
- package/dist/server/modules/remotes/operations/git-owner.operation.js.map +1 -0
- package/dist/server/modules/remotes/operations/remote-host.client.d.ts +72 -8
- package/dist/server/modules/remotes/operations/remote-host.client.js +162 -28
- package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +19 -0
- package/dist/server/modules/remotes/operations/remote-operation.dto.js +5 -1
- package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +3 -1
- package/dist/server/modules/remotes/operations/remote-operation.runner.js +59 -21
- package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +4 -1
- package/dist/server/modules/remotes/operations/remote-operation.types.js +4 -2
- package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +5 -0
- package/dist/server/modules/remotes/operations/remote-operations.controller.js +56 -0
- package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +16 -1
- package/dist/server/modules/remotes/operations/remote-operations.service.js +155 -5
- package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
- package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +1 -3
- package/dist/server/modules/remotes/operations/update-logins.operation.js +3 -18
- package/dist/server/modules/remotes/operations/update-logins.operation.js.map +1 -1
- package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
- package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
- package/dist/server/modules/remotes/remotes.module.js +18 -0
- package/dist/server/modules/remotes/remotes.module.js.map +1 -1
- package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.d.ts +2 -2
- package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js +2 -13
- package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js.map +1 -1
- package/dist/server/modules/remotes/services/remote-health.service.js +5 -0
- package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
- package/dist/server/modules/remotes/sync/file-sync-failures.service.d.ts +18 -0
- package/dist/server/modules/remotes/sync/file-sync-failures.service.js +157 -0
- package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -0
- package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.d.ts +14 -0
- package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js +99 -0
- package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js.map +1 -0
- package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +15 -0
- package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +90 -0
- package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -0
- package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +29 -0
- package/dist/server/modules/remotes/sync/project-file-sync.controller.js +160 -0
- package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +72 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.dto.js +16 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +32 -1
- package/dist/server/modules/remotes/sync/remote-file-sync.service.js +499 -38
- package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
- package/dist/server/modules/remotes/sync/remote-live-sync.service.d.ts +2 -0
- package/dist/server/modules/remotes/sync/remote-live-sync.service.js +26 -12
- package/dist/server/modules/remotes/sync/remote-live-sync.service.js.map +1 -1
- package/dist/server/modules/remotes/vm-user-identity.d.ts +29 -0
- package/dist/server/modules/remotes/vm-user-identity.js +45 -0
- package/dist/server/modules/remotes/vm-user-identity.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +5 -1
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +5 -0
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +9 -0
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +1 -0
- package/dist/server/modules/session-reader/adapters/utils/coalesce-turns.js +1 -0
- package/dist/server/modules/session-reader/adapters/utils/coalesce-turns.js.map +1 -1
- package/dist/server/modules/session-reader/builders/semantic-step-extractor.js +1 -1
- package/dist/server/modules/session-reader/builders/semantic-step-extractor.js.map +1 -1
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js +1 -1
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +89 -12
- package/dist/server/modules/session-reader/dtos/unified-message.types.d.ts +1 -0
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +3 -0
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +10 -1
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/parsers/claude-turn-evidence.d.ts +11 -0
- package/dist/server/modules/session-reader/parsers/claude-turn-evidence.js +50 -0
- package/dist/server/modules/session-reader/parsers/claude-turn-evidence.js.map +1 -0
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +8 -2
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.d.ts +7 -0
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.js +31 -2
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.js.map +1 -1
- package/dist/server/modules/session-reader/services/session-cache.service.d.ts +8 -2
- package/dist/server/modules/session-reader/services/session-cache.service.js +80 -21
- package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/session-reader.service.d.ts +4 -0
- package/dist/server/modules/session-reader/services/session-reader.service.js +40 -8
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-cursor.d.ts +16 -4
- package/dist/server/modules/session-reader/services/transcript-cursor.js +65 -6
- package/dist/server/modules/session-reader/services/transcript-cursor.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-serialization.js +2 -1
- package/dist/server/modules/session-reader/services/transcript-serialization.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +4 -0
- package/dist/server/modules/session-reader/services/transcript-turn-state.js +20 -0
- package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +1 -0
- package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +4 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +43 -18
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +5 -0
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +36 -17
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +26 -9
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +19 -0
- package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.js +26 -0
- package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.js.map +1 -0
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +10 -18
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +5 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +20 -2
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
- package/dist/server/modules/settings/local/delegates/skills-settings.delegate.d.ts +6 -0
- package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js +26 -0
- package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/services/settings.service.d.ts +3 -1
- package/dist/server/modules/settings/services/settings.service.js +6 -0
- package/dist/server/modules/settings/services/settings.service.js.map +1 -1
- package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/github-skill-source.base.js +4 -3
- package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/skill-source.adapter.d.ts +5 -0
- package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.d.ts +5 -0
- package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js +75 -0
- package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js.map +1 -0
- package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/controllers/skills.controller.js +2 -2
- package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +3 -3
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +9 -4
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
- package/dist/server/modules/skills/services/skill-sync.service.d.ts +3 -3
- package/dist/server/modules/skills/services/skill-sync.service.js +32 -6
- package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
- package/dist/server/modules/skills/services/skill-sync.types.d.ts +3 -0
- package/dist/server/modules/storage/db/schema.d.ts +2 -2
- package/dist/server/modules/storage/db/schema.js +2 -0
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +1 -1
- package/dist/server/modules/storage/models/domain.models.js +2 -0
- package/dist/server/modules/storage/models/domain.models.js.map +1 -1
- package/dist/server/modules/teams/storage/teams.store.d.ts +1 -0
- package/dist/server/modules/teams/storage/teams.store.js +19 -3
- package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +3 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.js +9 -4
- package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
- package/dist/server/modules/terminal/services/session-turn-signals.d.ts +18 -0
- package/dist/server/modules/terminal/services/session-turn-signals.js +6 -0
- package/dist/server/modules/terminal/services/session-turn-signals.js.map +1 -0
- package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +32 -5
- package/dist/server/modules/terminal/services/terminal-activity.service.js +322 -40
- package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/lifecycle.js +15 -3
- package/dist/server/modules/terminal/services/terminal-io/lifecycle.js.map +1 -1
- package/dist/server/modules/terminal/terminal.module.js +2 -0
- package/dist/server/modules/terminal/terminal.module.js.map +1 -1
- package/dist/server/modules/terminal/utils/ansi-sanitizer.d.ts +0 -1
- package/dist/server/modules/terminal/utils/ansi-sanitizer.js +0 -4
- package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -1
- package/dist/server/templates/teams-dev.json +14 -14
- package/dist/server/test-setup-node.js +4 -3
- package/dist/server/test-setup-node.js.map +1 -1
- package/dist/server/test-setup.js +7 -0
- package/dist/server/test-setup.js.map +1 -1
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ExternalRichEditor--kNXs-Eb.js → ExternalRichEditor-CIZPhssf.js} +24 -24
- package/dist/server/ui/assets/ReviewDetailPage-winyLSQ7.js +6 -0
- package/dist/server/ui/assets/ReviewsPage-BYKBReMp.js +6 -0
- package/dist/server/ui/assets/index-CiDJX6Hn.js +1191 -0
- package/dist/server/ui/assets/index-f1WOAqXB.css +32 -0
- package/dist/server/ui/assets/useReviewSubscription-v3Cto0y4.js +69 -0
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +14 -14
- package/package.json +15 -1
- package/dist/server/modules/reviews/utils/notification-formatter.d.ts +0 -12
- package/dist/server/modules/reviews/utils/notification-formatter.js +0 -60
- package/dist/server/modules/reviews/utils/notification-formatter.js.map +0 -1
- package/dist/server/ui/assets/ReviewDetailPage-DMgP5fKn.js +0 -6
- package/dist/server/ui/assets/ReviewsPage-CkyFUJr6.js +0 -6
- package/dist/server/ui/assets/index-CVUaAlP4.css +0 -32
- package/dist/server/ui/assets/index-CqRufKpA.js +0 -994
- package/dist/server/ui/assets/useReviewSubscription-CU70CzwG.js +0 -69
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type { FolderSyncStatus, FolderType, SyncDevice, SyncFolder, SyncFolderPatch, SyncFolderRequest } from '../file-sync.dto';
|
|
1
|
+
import type { FolderSyncStatus, RemoteNeed, ConflictReport, ConflictBaseline, FolderType, SyncDevice, SyncFolder, SyncFolderPatch, SyncFolderRequest, ForceCopyBackupRequest, ForceCopyBackup, ReceiveOnlyChanges, SyncStatusOptions } from '../file-sync.dto';
|
|
2
2
|
import { FileSyncService, type FolderNeed, type ProjectFolder, type SyncProgress, type WaitForCompleteOptions } from '../file-sync.service';
|
|
3
3
|
export interface FakeFolder {
|
|
4
4
|
type: FolderType;
|
|
5
5
|
paused: boolean;
|
|
6
6
|
peerDeviceId: string;
|
|
7
7
|
ignores: string[];
|
|
8
|
+
backupPath?: string;
|
|
8
9
|
}
|
|
9
|
-
export declare class FakeFileSyncService implements Pick<FileSyncService, 'device' | 'addPeer' | 'isConnected' | 'getIgnores' | 'setIgnores' | 'projectFolders' | 'initialFolders' | 'projectNeed' | 'ensureFolder' | 'updateFolder' | 'setFolderType' | 'folderConfiguration' | 'folderPath' | 'removeFolder' | 'status' | 'rescan' | 'revertLocalChanges' | 'waitForComplete'> {
|
|
10
|
+
export declare class FakeFileSyncService implements Pick<FileSyncService, 'device' | 'addPeer' | 'isConnected' | 'getIgnores' | 'getIgnoresRevision' | 'setIgnores' | 'projectFolders' | 'initialFolders' | 'projectNeed' | 'ensureFolder' | 'forceCopyBackup' | 'localChanges' | 'override' | 'updateFolder' | 'setFolderType' | 'folderConfiguration' | 'folderPath' | 'removeFolder' | 'status' | 'remoteNeed' | 'conflicts' | 'conflictBaseline' | 'rescan' | 'revertLocalChanges' | 'waitForComplete'> {
|
|
10
11
|
readonly deviceId: string;
|
|
11
12
|
readonly peers: Set<string>;
|
|
12
13
|
readonly gitProjects: Set<string>;
|
|
@@ -15,18 +16,35 @@ export declare class FakeFileSyncService implements Pick<FileSyncService, 'devic
|
|
|
15
16
|
needItems: number;
|
|
16
17
|
needBytes: number;
|
|
17
18
|
}>;
|
|
19
|
+
readonly remoteNeeds: Map<string, {
|
|
20
|
+
deleted: number;
|
|
21
|
+
total: number;
|
|
22
|
+
sample: {
|
|
23
|
+
path: string;
|
|
24
|
+
deleted: boolean;
|
|
25
|
+
}[];
|
|
26
|
+
conflictPaths: string[];
|
|
27
|
+
conflictsOverCap: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
readonly receiveOnlyChanges: Map<string, {
|
|
30
|
+
count: number;
|
|
31
|
+
sample: string[];
|
|
32
|
+
}>;
|
|
18
33
|
readonly codeRoots: Map<string, string>;
|
|
19
34
|
private readonly ignores;
|
|
35
|
+
private readonly revisions;
|
|
20
36
|
ensureAvailable(): Promise<void>;
|
|
21
37
|
device(): SyncDevice;
|
|
22
38
|
addPeer(peer: SyncDevice): Promise<void>;
|
|
23
39
|
isConnected(deviceId: string): Promise<boolean>;
|
|
24
40
|
getIgnores(projectId: string): string[];
|
|
25
|
-
|
|
41
|
+
getIgnoresRevision(projectId: string): number;
|
|
42
|
+
setIgnores(projectId: string, ignores: string[] | null, revision?: number): string[];
|
|
26
43
|
projectFolders(projectId: string): Promise<ProjectFolder[]>;
|
|
27
44
|
initialFolders(projectId: string): Promise<ProjectFolder[]>;
|
|
28
45
|
projectNeed(projectId: string): Promise<FolderNeed[] | null>;
|
|
29
46
|
ensureFolder(request: SyncFolderRequest): Promise<SyncFolder>;
|
|
47
|
+
forceCopyBackup(request: ForceCopyBackupRequest): Promise<ForceCopyBackup>;
|
|
30
48
|
updateFolder(folderId: string, patch: SyncFolderPatch): Promise<void>;
|
|
31
49
|
folderConfiguration(folderId: string): Promise<{
|
|
32
50
|
type: "sendonly" | "receiveonly" | "sendreceive";
|
|
@@ -38,9 +56,14 @@ export declare class FakeFileSyncService implements Pick<FileSyncService, 'devic
|
|
|
38
56
|
folderPath(projectId: string, kind?: ProjectFolder['kind']): Promise<string>;
|
|
39
57
|
setFolderType(folderId: string, type: FolderType): Promise<void>;
|
|
40
58
|
removeFolder(folderId: string): Promise<void>;
|
|
41
|
-
status(folderId: string, peerDeviceId?: string): Promise<FolderSyncStatus>;
|
|
42
|
-
rescan(folderId: string): Promise<void>;
|
|
59
|
+
status(folderId: string, peerDeviceId?: string, _options?: SyncStatusOptions): Promise<FolderSyncStatus>;
|
|
60
|
+
rescan(folderId: string, signal?: AbortSignal): Promise<void>;
|
|
61
|
+
remoteNeed(folderId: string, _peerDeviceId: string): Promise<RemoteNeed>;
|
|
62
|
+
conflicts(projectId: string, baseline: ConflictBaseline, ignores: readonly string[], signal?: AbortSignal): Promise<ConflictReport>;
|
|
63
|
+
conflictBaseline(projectId: string, ignores: readonly string[], signal?: AbortSignal): Promise<ConflictBaseline>;
|
|
43
64
|
revertLocalChanges(folderId: string): Promise<void>;
|
|
65
|
+
localChanges(folderId: string): Promise<ReceiveOnlyChanges>;
|
|
66
|
+
override(folderId: string): Promise<void>;
|
|
44
67
|
waitForComplete(folderId: string, options: WaitForCompleteOptions): Promise<SyncProgress>;
|
|
45
68
|
private require;
|
|
46
69
|
}
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FakeFileSyncService = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
|
+
const error_types_1 = require("../../../common/errors/error-types");
|
|
5
6
|
const path_1 = require("path");
|
|
7
|
+
const file_sync_dto_1 = require("../file-sync.dto");
|
|
6
8
|
const file_sync_service_1 = require("../file-sync.service");
|
|
7
9
|
const syncthing_rest_client_1 = require("../syncthing-rest.client");
|
|
8
10
|
const file_sync_ignores_store_1 = require("../file-sync-ignores.store");
|
|
11
|
+
const file_sync_conflicts_1 = require("../file-sync-conflicts");
|
|
9
12
|
class FakeFileSyncService {
|
|
10
13
|
deviceId = Array.from({ length: 8 }, () => (0, crypto_1.randomBytes)(7)
|
|
11
14
|
.toString('base64')
|
|
@@ -17,8 +20,11 @@ class FakeFileSyncService {
|
|
|
17
20
|
gitProjects = new Set();
|
|
18
21
|
folders = new Map();
|
|
19
22
|
need = new Map();
|
|
23
|
+
remoteNeeds = new Map();
|
|
24
|
+
receiveOnlyChanges = new Map();
|
|
20
25
|
codeRoots = new Map();
|
|
21
26
|
ignores = new Map();
|
|
27
|
+
revisions = new Map();
|
|
22
28
|
async ensureAvailable() { }
|
|
23
29
|
device() {
|
|
24
30
|
return { deviceId: this.deviceId, address: 'tcp://127.0.0.1:22000' };
|
|
@@ -32,7 +38,14 @@ class FakeFileSyncService {
|
|
|
32
38
|
getIgnores(projectId) {
|
|
33
39
|
return this.ignores.get(projectId) ?? [...file_sync_ignores_store_1.DEFAULT_FILE_SYNC_IGNORES];
|
|
34
40
|
}
|
|
35
|
-
|
|
41
|
+
getIgnoresRevision(projectId) {
|
|
42
|
+
return this.revisions.get(projectId) ?? 0;
|
|
43
|
+
}
|
|
44
|
+
setIgnores(projectId, ignores, revision) {
|
|
45
|
+
const current = this.getIgnoresRevision(projectId);
|
|
46
|
+
if (revision !== undefined && revision !== current)
|
|
47
|
+
throw new error_types_1.AppError('The file list changed. Review it again.', file_sync_dto_1.FILE_SYNC_IGNORES_CHANGED, 409);
|
|
48
|
+
this.revisions.set(projectId, current + 1);
|
|
36
49
|
if (ignores === null)
|
|
37
50
|
this.ignores.delete(projectId);
|
|
38
51
|
else
|
|
@@ -54,13 +67,32 @@ class FakeFileSyncService {
|
|
|
54
67
|
async ensureFolder(request) {
|
|
55
68
|
const id = (0, file_sync_service_1.projectFolderId)(request.projectId, request.kind);
|
|
56
69
|
const paused = request.paused ?? false;
|
|
70
|
+
const backupPath = request.forceCopy
|
|
71
|
+
? (await this.forceCopyBackup({
|
|
72
|
+
projectId: request.projectId,
|
|
73
|
+
kind: request.kind,
|
|
74
|
+
forceCopy: request.forceCopy,
|
|
75
|
+
})).path
|
|
76
|
+
: undefined;
|
|
57
77
|
this.folders.set(id, {
|
|
58
78
|
type: request.type,
|
|
59
79
|
paused,
|
|
60
80
|
peerDeviceId: request.peerDeviceId,
|
|
61
81
|
ignores: request.ignores,
|
|
82
|
+
...(backupPath && { backupPath }),
|
|
62
83
|
});
|
|
63
|
-
return {
|
|
84
|
+
return {
|
|
85
|
+
id,
|
|
86
|
+
path: `/fake/${id}`,
|
|
87
|
+
type: request.type,
|
|
88
|
+
paused,
|
|
89
|
+
...(backupPath && { backupPath }),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async forceCopyBackup(request) {
|
|
93
|
+
return {
|
|
94
|
+
path: `/fake/sync-backups/${request.projectId}/${request.forceCopy.operationId}/${request.kind}`,
|
|
95
|
+
};
|
|
64
96
|
}
|
|
65
97
|
async updateFolder(folderId, patch) {
|
|
66
98
|
const folder = this.require(folderId);
|
|
@@ -84,7 +116,7 @@ class FakeFileSyncService {
|
|
|
84
116
|
async removeFolder(folderId) {
|
|
85
117
|
this.folders.delete(folderId);
|
|
86
118
|
}
|
|
87
|
-
async status(folderId, peerDeviceId) {
|
|
119
|
+
async status(folderId, peerDeviceId, _options) {
|
|
88
120
|
this.require(folderId);
|
|
89
121
|
const need = this.need.get(folderId) ?? zeroNeed();
|
|
90
122
|
return {
|
|
@@ -96,7 +128,7 @@ class FakeFileSyncService {
|
|
|
96
128
|
globalDirectories: 1,
|
|
97
129
|
needTotalItems: need.needItems,
|
|
98
130
|
needBytes: need.needBytes,
|
|
99
|
-
receiveOnlyChangedFiles: 0,
|
|
131
|
+
receiveOnlyChangedFiles: this.receiveOnlyChanges.get(folderId)?.count ?? 0,
|
|
100
132
|
peer: peerDeviceId
|
|
101
133
|
? {
|
|
102
134
|
deviceId: peerDeviceId,
|
|
@@ -108,11 +140,42 @@ class FakeFileSyncService {
|
|
|
108
140
|
: null,
|
|
109
141
|
};
|
|
110
142
|
}
|
|
111
|
-
async rescan(folderId) {
|
|
143
|
+
async rescan(folderId, signal) {
|
|
112
144
|
this.require(folderId);
|
|
145
|
+
signal?.throwIfAborted();
|
|
146
|
+
}
|
|
147
|
+
async remoteNeed(folderId, _peerDeviceId) {
|
|
148
|
+
this.require(folderId);
|
|
149
|
+
return structuredClone(this.remoteNeeds.get(folderId) ?? {
|
|
150
|
+
total: 0,
|
|
151
|
+
deleted: 0,
|
|
152
|
+
sample: [],
|
|
153
|
+
conflictPaths: [],
|
|
154
|
+
conflictsOverCap: false,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
async conflicts(projectId, baseline, ignores, signal) {
|
|
158
|
+
const root = this.codeRoots.get(projectId);
|
|
159
|
+
return root
|
|
160
|
+
? (0, file_sync_conflicts_1.scanFileSyncConflicts)(root, baseline, ignores, signal)
|
|
161
|
+
: { total: 0, sample: [], ...(baseline.baselineOverCap && { baselineOverCap: true }) };
|
|
162
|
+
}
|
|
163
|
+
async conflictBaseline(projectId, ignores, signal) {
|
|
164
|
+
const root = this.codeRoots.get(projectId);
|
|
165
|
+
return root
|
|
166
|
+
? (0, file_sync_conflicts_1.captureFileSyncConflictBaseline)(root, ignores, signal)
|
|
167
|
+
: { baselineOverCap: false, paths: [] };
|
|
113
168
|
}
|
|
114
169
|
async revertLocalChanges(folderId) {
|
|
115
170
|
this.require(folderId);
|
|
171
|
+
this.receiveOnlyChanges.delete(folderId);
|
|
172
|
+
}
|
|
173
|
+
async localChanges(folderId) {
|
|
174
|
+
this.require(folderId);
|
|
175
|
+
return structuredClone(this.receiveOnlyChanges.get(folderId) ?? { count: 0, sample: [] });
|
|
176
|
+
}
|
|
177
|
+
async override(folderId) {
|
|
178
|
+
this.require(folderId);
|
|
116
179
|
}
|
|
117
180
|
waitForComplete(folderId, options) {
|
|
118
181
|
return file_sync_service_1.FileSyncService.prototype.waitForComplete.call(this, folderId, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-file-sync.service.js","sourceRoot":"","sources":["../../../../src/modules/file-sync/testing/fake-file-sync.service.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,+BAA4B;
|
|
1
|
+
{"version":3,"file":"fake-file-sync.service.js","sourceRoot":"","sources":["../../../../src/modules/file-sync/testing/fake-file-sync.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nestedGitignoreBase = nestedGitignoreBase;
|
|
4
|
+
exports.translateGitIgnoreRule = translateGitIgnoreRule;
|
|
5
|
+
const ignore_pattern_matcher_1 = require("./ignore-pattern-matcher");
|
|
6
|
+
const sync_path_inspection_dto_1 = require("./sync-path-inspection.dto");
|
|
7
|
+
function nestedGitignoreBase(source) {
|
|
8
|
+
return source.endsWith('/.gitignore') && sync_path_inspection_dto_1.SyncRelativePathSchema.safeParse(source).success
|
|
9
|
+
? source.slice(0, -'/.gitignore'.length)
|
|
10
|
+
: null;
|
|
11
|
+
}
|
|
12
|
+
function translateGitIgnoreRule(rule) {
|
|
13
|
+
let pattern = rule.pattern;
|
|
14
|
+
if (pattern.startsWith('!') || !/^[A-Za-z0-9._ /\-*?\[\]\\]+$/.test(pattern))
|
|
15
|
+
return null;
|
|
16
|
+
if (pattern.includes('/**/') || pattern.includes('[^') || pattern.endsWith('\\'))
|
|
17
|
+
return null;
|
|
18
|
+
pattern = pattern.replace(/\/$/, '').replace(/^\*\*\//, '');
|
|
19
|
+
if (!pattern)
|
|
20
|
+
return null;
|
|
21
|
+
const base = nestedGitignoreBase(rule.source) ?? '';
|
|
22
|
+
const rootedBase = base ? `${base.replace(/[\\*?\[\]{}]/g, '\\$&')}/` : '';
|
|
23
|
+
const patterns = pattern.includes('/')
|
|
24
|
+
? [`(?d)/${rootedBase}${pattern.replace(/^\//, '')}`]
|
|
25
|
+
: base
|
|
26
|
+
? [`(?d)/${rootedBase}${pattern}`, `(?d)/${rootedBase}**/${pattern}`]
|
|
27
|
+
: [`(?d)${pattern}`];
|
|
28
|
+
return patterns.every((line) => (0, ignore_pattern_matcher_1.compileIgnorePattern)(line).kind === 'pattern') ? patterns : null;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=translate-git-ignore-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translate-git-ignore-rule.js","sourceRoot":"","sources":["../../../src/modules/file-sync/translate-git-ignore-rule.ts"],"names":[],"mappings":";;AAIA,kDAIC;AAED,wDAgBC;AA1BD,qEAAgE;AAChE,yEAAwF;AAGxF,SAAgB,mBAAmB,CAAC,MAAc;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,iDAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO;QACvF,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAgB,sBAAsB,CACpC,IAA8C;IAE9C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1F,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9F,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpC,CAAC,CAAC,CAAC,QAAQ,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,CAAC,QAAQ,UAAU,GAAG,OAAO,EAAE,EAAE,QAAQ,UAAU,MAAM,OAAO,EAAE,CAAC;YACrE,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;IACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,6CAAoB,EAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACnG,CAAC"}
|
|
@@ -39,6 +39,46 @@ export declare const SessionStartHookSchema: z.ZodObject<{
|
|
|
39
39
|
permissionMode?: string | undefined;
|
|
40
40
|
transcriptPath?: string | undefined;
|
|
41
41
|
}>;
|
|
42
|
+
export declare const UserPromptSubmitHookSchema: z.ZodObject<{
|
|
43
|
+
providerName: z.ZodOptional<z.ZodString>;
|
|
44
|
+
providerSessionId: z.ZodOptional<z.ZodString>;
|
|
45
|
+
tmuxSessionName: z.ZodString;
|
|
46
|
+
projectId: z.ZodString;
|
|
47
|
+
agentId: z.ZodNullable<z.ZodString>;
|
|
48
|
+
sessionId: z.ZodNullable<z.ZodString>;
|
|
49
|
+
claudeSessionId: z.ZodOptional<z.ZodString>;
|
|
50
|
+
model: z.ZodOptional<z.ZodString>;
|
|
51
|
+
permissionMode: z.ZodOptional<z.ZodString>;
|
|
52
|
+
transcriptPath: z.ZodOptional<z.ZodString>;
|
|
53
|
+
firedAtMs: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
hookEventName: z.ZodLiteral<"UserPromptSubmit">;
|
|
55
|
+
}, "strict", z.ZodTypeAny, {
|
|
56
|
+
projectId: string;
|
|
57
|
+
agentId: string | null;
|
|
58
|
+
sessionId: string | null;
|
|
59
|
+
tmuxSessionName: string;
|
|
60
|
+
hookEventName: "UserPromptSubmit";
|
|
61
|
+
providerName?: string | undefined;
|
|
62
|
+
model?: string | undefined;
|
|
63
|
+
claudeSessionId?: string | undefined;
|
|
64
|
+
providerSessionId?: string | undefined;
|
|
65
|
+
permissionMode?: string | undefined;
|
|
66
|
+
transcriptPath?: string | undefined;
|
|
67
|
+
firedAtMs?: number | undefined;
|
|
68
|
+
}, {
|
|
69
|
+
projectId: string;
|
|
70
|
+
agentId: string | null;
|
|
71
|
+
sessionId: string | null;
|
|
72
|
+
tmuxSessionName: string;
|
|
73
|
+
hookEventName: "UserPromptSubmit";
|
|
74
|
+
providerName?: string | undefined;
|
|
75
|
+
model?: string | undefined;
|
|
76
|
+
claudeSessionId?: string | undefined;
|
|
77
|
+
providerSessionId?: string | undefined;
|
|
78
|
+
permissionMode?: string | undefined;
|
|
79
|
+
transcriptPath?: string | undefined;
|
|
80
|
+
firedAtMs?: number | undefined;
|
|
81
|
+
}>;
|
|
42
82
|
export declare const StopHookSchema: z.ZodObject<{
|
|
43
83
|
providerName: z.ZodOptional<z.ZodString>;
|
|
44
84
|
providerSessionId: z.ZodOptional<z.ZodString>;
|
|
@@ -50,6 +90,7 @@ export declare const StopHookSchema: z.ZodObject<{
|
|
|
50
90
|
model: z.ZodOptional<z.ZodString>;
|
|
51
91
|
permissionMode: z.ZodOptional<z.ZodString>;
|
|
52
92
|
transcriptPath: z.ZodOptional<z.ZodString>;
|
|
93
|
+
firedAtMs: z.ZodOptional<z.ZodNumber>;
|
|
53
94
|
hookEventName: z.ZodLiteral<"Stop">;
|
|
54
95
|
stopReason: z.ZodOptional<z.ZodString>;
|
|
55
96
|
}, "strict", z.ZodTypeAny, {
|
|
@@ -64,6 +105,7 @@ export declare const StopHookSchema: z.ZodObject<{
|
|
|
64
105
|
providerSessionId?: string | undefined;
|
|
65
106
|
permissionMode?: string | undefined;
|
|
66
107
|
transcriptPath?: string | undefined;
|
|
108
|
+
firedAtMs?: number | undefined;
|
|
67
109
|
stopReason?: string | undefined;
|
|
68
110
|
}, {
|
|
69
111
|
projectId: string;
|
|
@@ -77,6 +119,7 @@ export declare const StopHookSchema: z.ZodObject<{
|
|
|
77
119
|
providerSessionId?: string | undefined;
|
|
78
120
|
permissionMode?: string | undefined;
|
|
79
121
|
transcriptPath?: string | undefined;
|
|
122
|
+
firedAtMs?: number | undefined;
|
|
80
123
|
stopReason?: string | undefined;
|
|
81
124
|
}>;
|
|
82
125
|
export declare const PreToolUseHookSchema: z.ZodObject<{
|
|
@@ -249,6 +292,46 @@ export declare const HookEventSchema: z.ZodDiscriminatedUnion<"hookEventName", [
|
|
|
249
292
|
model: z.ZodOptional<z.ZodString>;
|
|
250
293
|
permissionMode: z.ZodOptional<z.ZodString>;
|
|
251
294
|
transcriptPath: z.ZodOptional<z.ZodString>;
|
|
295
|
+
firedAtMs: z.ZodOptional<z.ZodNumber>;
|
|
296
|
+
hookEventName: z.ZodLiteral<"UserPromptSubmit">;
|
|
297
|
+
}, "strict", z.ZodTypeAny, {
|
|
298
|
+
projectId: string;
|
|
299
|
+
agentId: string | null;
|
|
300
|
+
sessionId: string | null;
|
|
301
|
+
tmuxSessionName: string;
|
|
302
|
+
hookEventName: "UserPromptSubmit";
|
|
303
|
+
providerName?: string | undefined;
|
|
304
|
+
model?: string | undefined;
|
|
305
|
+
claudeSessionId?: string | undefined;
|
|
306
|
+
providerSessionId?: string | undefined;
|
|
307
|
+
permissionMode?: string | undefined;
|
|
308
|
+
transcriptPath?: string | undefined;
|
|
309
|
+
firedAtMs?: number | undefined;
|
|
310
|
+
}, {
|
|
311
|
+
projectId: string;
|
|
312
|
+
agentId: string | null;
|
|
313
|
+
sessionId: string | null;
|
|
314
|
+
tmuxSessionName: string;
|
|
315
|
+
hookEventName: "UserPromptSubmit";
|
|
316
|
+
providerName?: string | undefined;
|
|
317
|
+
model?: string | undefined;
|
|
318
|
+
claudeSessionId?: string | undefined;
|
|
319
|
+
providerSessionId?: string | undefined;
|
|
320
|
+
permissionMode?: string | undefined;
|
|
321
|
+
transcriptPath?: string | undefined;
|
|
322
|
+
firedAtMs?: number | undefined;
|
|
323
|
+
}>, z.ZodObject<{
|
|
324
|
+
providerName: z.ZodOptional<z.ZodString>;
|
|
325
|
+
providerSessionId: z.ZodOptional<z.ZodString>;
|
|
326
|
+
tmuxSessionName: z.ZodString;
|
|
327
|
+
projectId: z.ZodString;
|
|
328
|
+
agentId: z.ZodNullable<z.ZodString>;
|
|
329
|
+
sessionId: z.ZodNullable<z.ZodString>;
|
|
330
|
+
claudeSessionId: z.ZodOptional<z.ZodString>;
|
|
331
|
+
model: z.ZodOptional<z.ZodString>;
|
|
332
|
+
permissionMode: z.ZodOptional<z.ZodString>;
|
|
333
|
+
transcriptPath: z.ZodOptional<z.ZodString>;
|
|
334
|
+
firedAtMs: z.ZodOptional<z.ZodNumber>;
|
|
252
335
|
hookEventName: z.ZodLiteral<"Stop">;
|
|
253
336
|
stopReason: z.ZodOptional<z.ZodString>;
|
|
254
337
|
}, "strict", z.ZodTypeAny, {
|
|
@@ -263,6 +346,7 @@ export declare const HookEventSchema: z.ZodDiscriminatedUnion<"hookEventName", [
|
|
|
263
346
|
providerSessionId?: string | undefined;
|
|
264
347
|
permissionMode?: string | undefined;
|
|
265
348
|
transcriptPath?: string | undefined;
|
|
349
|
+
firedAtMs?: number | undefined;
|
|
266
350
|
stopReason?: string | undefined;
|
|
267
351
|
}, {
|
|
268
352
|
projectId: string;
|
|
@@ -276,6 +360,7 @@ export declare const HookEventSchema: z.ZodDiscriminatedUnion<"hookEventName", [
|
|
|
276
360
|
providerSessionId?: string | undefined;
|
|
277
361
|
permissionMode?: string | undefined;
|
|
278
362
|
transcriptPath?: string | undefined;
|
|
363
|
+
firedAtMs?: number | undefined;
|
|
279
364
|
stopReason?: string | undefined;
|
|
280
365
|
}>, z.ZodObject<{
|
|
281
366
|
providerName: z.ZodOptional<z.ZodString>;
|
|
@@ -396,6 +481,7 @@ export declare const HookEventSchema: z.ZodDiscriminatedUnion<"hookEventName", [
|
|
|
396
481
|
hookEventName: "StatusLine";
|
|
397
482
|
}>]>;
|
|
398
483
|
export type SessionStartHookEvent = z.infer<typeof SessionStartHookSchema>;
|
|
484
|
+
export type UserPromptSubmitHookEvent = z.infer<typeof UserPromptSubmitHookSchema>;
|
|
399
485
|
export type StopHookEvent = z.infer<typeof StopHookSchema>;
|
|
400
486
|
export type PreToolUseHookEvent = z.infer<typeof PreToolUseHookSchema>;
|
|
401
487
|
export type PostToolUseHookEvent = z.infer<typeof PostToolUseHookSchema>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HookEventSchema = exports.StatusLineHookSchema = exports.PostToolUseHookSchema = exports.PreToolUseHookSchema = exports.StopHookSchema = exports.SessionStartHookSchema = void 0;
|
|
3
|
+
exports.HookEventSchema = exports.StatusLineHookSchema = exports.PostToolUseHookSchema = exports.PreToolUseHookSchema = exports.StopHookSchema = exports.UserPromptSubmitHookSchema = exports.SessionStartHookSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const runtime_context_capture_types_1 = require("../../runtime-context-capture/runtime-context-capture.types");
|
|
6
6
|
const baseInjectedFields = {
|
|
@@ -27,10 +27,23 @@ exports.SessionStartHookSchema = zod_1.z
|
|
|
27
27
|
...baseInjectedFields,
|
|
28
28
|
})
|
|
29
29
|
.strict();
|
|
30
|
+
const turnHookFields = {
|
|
31
|
+
firedAtMs: zod_1.z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional(),
|
|
32
|
+
};
|
|
33
|
+
exports.UserPromptSubmitHookSchema = zod_1.z
|
|
34
|
+
.object({
|
|
35
|
+
hookEventName: zod_1.z.literal('UserPromptSubmit'),
|
|
36
|
+
...turnHookFields,
|
|
37
|
+
...claudeMetaFields,
|
|
38
|
+
...claudeSessionIdOptional,
|
|
39
|
+
...baseInjectedFields,
|
|
40
|
+
})
|
|
41
|
+
.strict();
|
|
30
42
|
exports.StopHookSchema = zod_1.z
|
|
31
43
|
.object({
|
|
32
44
|
hookEventName: zod_1.z.literal('Stop'),
|
|
33
45
|
stopReason: zod_1.z.string().min(1).optional(),
|
|
46
|
+
...turnHookFields,
|
|
34
47
|
...claudeMetaFields,
|
|
35
48
|
...claudeSessionIdOptional,
|
|
36
49
|
...baseInjectedFields,
|
|
@@ -76,6 +89,7 @@ exports.StatusLineHookSchema = zod_1.z
|
|
|
76
89
|
.strict();
|
|
77
90
|
exports.HookEventSchema = zod_1.z.discriminatedUnion('hookEventName', [
|
|
78
91
|
exports.SessionStartHookSchema,
|
|
92
|
+
exports.UserPromptSubmitHookSchema,
|
|
79
93
|
exports.StopHookSchema,
|
|
80
94
|
exports.PreToolUseHookSchema,
|
|
81
95
|
exports.PostToolUseHookSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-event.dto.js","sourceRoot":"","sources":["../../../../src/modules/hooks/dtos/hook-event.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,+GAAgH;
|
|
1
|
+
{"version":3,"file":"hook-event.dto.js","sourceRoot":"","sources":["../../../../src/modules/hooks/dtos/hook-event.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const logger_1 = require("../../../common/logging/logger");
|
|
|
14
14
|
const logger = (0, logger_1.createLogger)('HooksConfigService');
|
|
15
15
|
const SETTINGS_FILE_MODE = 0o600;
|
|
16
16
|
const SCRIPT_FILE_MODE = 0o755;
|
|
17
|
+
const TURN_HOOK_TIMEOUT_SEC = 2;
|
|
17
18
|
const RELAY_SCRIPT_CONTENT = `#!/bin/bash
|
|
18
19
|
# DevChain relay script — bridges Claude Code hooks to DevChain's event API.
|
|
19
20
|
# Auto-generated by DevChain. Do not edit manually.
|
|
@@ -44,6 +45,16 @@ if [ -z "$TMUX_SESSION" ]; then
|
|
|
44
45
|
exit 0
|
|
45
46
|
fi
|
|
46
47
|
|
|
48
|
+
# Hook time in epoch ms orders turn hooks that arrive out of order. BSD date has no %N, so
|
|
49
|
+
# use perl there, and whole seconds as the last resort.
|
|
50
|
+
FIRED_AT_MS="$(date +%s%3N 2>/dev/null || true)"
|
|
51
|
+
case "$FIRED_AT_MS" in
|
|
52
|
+
''|*[!0-9]*) FIRED_AT_MS="$(perl -MTime::HiRes=time -e 'printf("%d", time() * 1000)' 2>/dev/null || true)" ;;
|
|
53
|
+
esac
|
|
54
|
+
case "$FIRED_AT_MS" in
|
|
55
|
+
''|*[!0-9]*) FIRED_AT_MS="$(( $(date +%s) * 1000 ))" ;;
|
|
56
|
+
esac
|
|
57
|
+
|
|
47
58
|
# Build combined payload: Claude Code fields + DevChain env vars.
|
|
48
59
|
# Tool fields (PreToolUse/PostToolUse) are forwarded with --argjson so the
|
|
49
60
|
# questions OBJECT is preserved (never stringified). tool_response is size-capped
|
|
@@ -68,6 +79,7 @@ PAYLOAD="$(echo "$INPUT" | jq \\
|
|
|
68
79
|
--arg projectId "\${DEVCHAIN_PROJECT_ID:-}" \\
|
|
69
80
|
--arg agentId "\${DEVCHAIN_AGENT_ID:-}" \\
|
|
70
81
|
--arg sessionId "\${DEVCHAIN_SESSION_ID:-}" \\
|
|
82
|
+
--argjson firedAtMs "$FIRED_AT_MS" \\
|
|
71
83
|
'{
|
|
72
84
|
hookEventName: \$hookEventName,
|
|
73
85
|
claudeSessionId: \$claudeSessionId,
|
|
@@ -84,8 +96,22 @@ PAYLOAD="$(echo "$INPUT" | jq \\
|
|
|
84
96
|
+ (if \$toolInput != null then {toolInput: \$toolInput} else {} end)
|
|
85
97
|
+ (if \$toolUseId != "" then {toolUseId: \$toolUseId} else {} end)
|
|
86
98
|
+ (if \$toolResponse != null then {toolResponse: \$toolResponse} else {} end)
|
|
99
|
+
+ (if (\$hookEventName == "UserPromptSubmit" or \$hookEventName == "Stop")
|
|
100
|
+
then {firedAtMs: \$firedAtMs} else {} end)
|
|
87
101
|
')" || exit 0
|
|
88
102
|
|
|
103
|
+
# Turn hooks: fire and forget. The detached POST outlives this script; nothing waits for it.
|
|
104
|
+
case "$HOOK_EVENT_NAME" in
|
|
105
|
+
UserPromptSubmit|Stop)
|
|
106
|
+
curl -s -o /dev/null -X POST \\
|
|
107
|
+
-H "Content-Type: application/json" \\
|
|
108
|
+
-d "$PAYLOAD" \\
|
|
109
|
+
"\${DEVCHAIN_API_URL}/api/hooks/events" \\
|
|
110
|
+
--max-time 2 </dev/null >/dev/null 2>&1 &
|
|
111
|
+
exit 0
|
|
112
|
+
;;
|
|
113
|
+
esac
|
|
114
|
+
|
|
89
115
|
# POST to DevChain API, capture response
|
|
90
116
|
RESPONSE="$(curl -s -f -X POST \\
|
|
91
117
|
-H "Content-Type: application/json" \\
|
|
@@ -176,11 +202,14 @@ let HooksConfigService = class HooksConfigService {
|
|
|
176
202
|
command: `"${relayScriptPath}"`,
|
|
177
203
|
timeout: 10,
|
|
178
204
|
};
|
|
205
|
+
const turnHook = { ...devchainHook, timeout: TURN_HOOK_TIMEOUT_SEC };
|
|
179
206
|
if (!settings.hooks || typeof settings.hooks !== 'object') {
|
|
180
207
|
settings.hooks = {};
|
|
181
208
|
}
|
|
182
209
|
const hooks = settings.hooks;
|
|
183
210
|
this.mergeHookGroup(hooks, 'SessionStart', undefined, devchainHook);
|
|
211
|
+
this.mergeHookGroup(hooks, 'UserPromptSubmit', undefined, turnHook);
|
|
212
|
+
this.mergeHookGroup(hooks, 'Stop', undefined, turnHook);
|
|
184
213
|
this.mergeHookGroup(hooks, 'PreToolUse', 'AskUserQuestion', devchainHook);
|
|
185
214
|
this.mergeHookGroup(hooks, 'PostToolUse', 'AskUserQuestion', devchainHook);
|
|
186
215
|
const output = JSON.stringify(settings, null, 2) + '\n';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.service.js","sourceRoot":"","sources":["../../../../src/modules/hooks/services/hooks-config.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,0CAAgF;AAChF,+BAA4B;AAC5B,2DAA8D;AAE9D,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,oBAAoB,CAAC,CAAC;AAElD,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,gBAAgB,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks-config.service.js","sourceRoot":"","sources":["../../../../src/modules/hooks/services/hooks-config.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
1
2
|
import { type AgentStorage } from '../../storage/interfaces/storage.interface';
|
|
2
3
|
import { EventsService } from '../../events/services/events.service';
|
|
3
4
|
import type { HookEventData, HookEventResponse } from '../dtos/hook-event.dto';
|
|
@@ -8,10 +9,13 @@ export declare class HooksService {
|
|
|
8
9
|
private readonly events;
|
|
9
10
|
private readonly pendingAskQuestions;
|
|
10
11
|
private readonly runtimeContextCapture;
|
|
11
|
-
|
|
12
|
+
private readonly eventEmitter;
|
|
13
|
+
constructor(storage: AgentStorage, events: EventsService, pendingAskQuestions: PendingAskUserQuestionService, runtimeContextCapture: RuntimeContextCaptureService, eventEmitter: EventEmitter2);
|
|
12
14
|
handleHookEvent(data: HookEventData): Promise<HookEventResponse>;
|
|
13
15
|
private handleStatusLine;
|
|
16
|
+
private handleUserPromptSubmit;
|
|
14
17
|
private handleStop;
|
|
18
|
+
private signalTurn;
|
|
15
19
|
private handlePreToolUse;
|
|
16
20
|
private handlePostToolUse;
|
|
17
21
|
private handleSessionStart;
|