devchain-cli 0.23.1 → 0.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/drizzle/0083_retire_documents.sql +2 -0
- package/dist/drizzle/0084_retire_codebase_overview.sql +1 -0
- package/dist/drizzle/0085_clumsy_zodiak.sql +166 -0
- package/dist/drizzle/meta/0083_snapshot.json +7422 -0
- package/dist/drizzle/meta/0084_snapshot.json +7422 -0
- package/dist/drizzle/meta/0085_snapshot.json +7446 -0
- package/dist/drizzle/meta/_journal.json +21 -0
- package/dist/server/app.main.module.js +0 -4
- package/dist/server/app.main.module.js.map +1 -1
- package/dist/server/app.normal.module.js +0 -4
- package/dist/server/app.normal.module.js.map +1 -1
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.d.ts +1 -0
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js +48 -0
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js.map +1 -1
- package/dist/server/modules/epic-time/models/epic-time.models.d.ts +10 -0
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +4 -1
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js +43 -1
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +1 -0
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +31 -1
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/external-integrations/connections/stable-integration-connection.d.ts +14 -0
- package/dist/server/modules/external-integrations/connections/stable-integration-connection.js +56 -0
- package/dist/server/modules/external-integrations/connections/stable-integration-connection.js.map +1 -0
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -1
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js +51 -33
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js +2 -2
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.d.ts +1 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js +33 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js +41 -48
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js +24 -11
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js +3 -1
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js.map +1 -1
- package/dist/server/modules/mcp/constants.d.ts +0 -2
- package/dist/server/modules/mcp/constants.js +1 -11
- package/dist/server/modules/mcp/constants.js.map +1 -1
- package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +0 -165
- package/dist/server/modules/mcp/dtos/mcp.dto.js +1 -47
- package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
- package/dist/server/modules/mcp/services/instructions-resolver.d.ts +4 -13
- package/dist/server/modules/mcp/services/instructions-resolver.js +26 -166
- package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -1
- package/dist/server/modules/mcp/services/mappers/dto-mappers.d.ts +2 -4
- package/dist/server/modules/mcp/services/mappers/dto-mappers.js +0 -22
- package/dist/server/modules/mcp/services/mappers/dto-mappers.js.map +1 -1
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +1 -2
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
- package/dist/server/modules/mcp/services/utils/resource-resolver.d.ts +2 -4
- package/dist/server/modules/mcp/services/utils/resource-resolver.js +0 -59
- package/dist/server/modules/mcp/services/utils/resource-resolver.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/index.js +0 -2
- package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +0 -2
- package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-import.d.ts +0 -33
- package/dist/server/modules/projects/helpers/project-import.js +0 -224
- package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
- package/dist/server/modules/projects/services/project-registry-import.service.d.ts +3 -6
- package/dist/server/modules/projects/services/project-registry-import.service.js +7 -28
- package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
- package/dist/server/modules/registry/controllers/registry.controller.js +3 -10
- package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
- package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +11 -3
- package/dist/server/modules/registry/services/registry-orchestration.service.js +6 -1
- package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +8 -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/codex-session-reader.adapter.d.ts +10 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +13 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +20 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
- package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +21 -1
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js +49 -3
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +2052 -178
- package/dist/server/modules/session-reader/parsers/bounded-line-read.d.ts +2 -0
- package/dist/server/modules/session-reader/parsers/bounded-line-read.js +66 -0
- package/dist/server/modules/session-reader/parsers/bounded-line-read.js.map +1 -0
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +6 -0
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +44 -13
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +22 -0
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +61 -16
- 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 +12 -0
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.js +103 -0
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.js.map +1 -0
- package/dist/server/modules/session-reader/services/metrics-merge.d.ts +17 -0
- package/dist/server/modules/session-reader/services/metrics-merge.js +114 -0
- package/dist/server/modules/session-reader/services/metrics-merge.js.map +1 -0
- package/dist/server/modules/session-reader/services/session-cache.service.d.ts +40 -4
- package/dist/server/modules/session-reader/services/session-cache.service.js +232 -148
- 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 +15 -1
- package/dist/server/modules/session-reader/services/session-reader.service.js +70 -2
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +20 -3
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +538 -197
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +4 -1
- package/dist/server/modules/sessions/controllers/sessions.controller.js +32 -0
- package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
- package/dist/server/modules/sessions/services/message-pool.types.d.ts +23 -0
- package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +5 -2
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js +82 -4
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +57 -219
- package/dist/server/modules/storage/db/schema.js +15 -27
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +6 -23
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +6 -1
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +163 -32
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +11 -1
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +1 -1
- package/dist/server/modules/storage/local/delegates/integration.delegate.js +17 -13
- package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project.delegate.js +1 -10
- package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -9
- package/dist/server/modules/storage/local/local-storage.service.js +8 -22
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +14 -20
- package/dist/server/modules/storage/models/domain.models.js +2 -1
- package/dist/server/modules/storage/models/domain.models.js.map +1 -1
- package/dist/server/modules/terminal/services/human-prompt-state.service.d.ts +7 -0
- package/dist/server/modules/terminal/services/human-prompt-state.service.js +26 -0
- package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +3 -2
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
- package/dist/server/modules/terminal/utils/terminal-activity.js +8 -1
- package/dist/server/modules/terminal/utils/terminal-activity.js.map +1 -1
- package/dist/server/templates/teams-dev.json +2 -2
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ExternalRichEditor-FwCAalXO.js → ExternalRichEditor-akgwTdms.js} +24 -24
- package/dist/server/ui/assets/ReviewDetailPage-10JU-Gdr.js +1 -0
- package/dist/server/ui/assets/ReviewsPage-BIVn-pS5.js +6 -0
- package/dist/server/ui/assets/index-Bg8fZbSZ.css +32 -0
- package/dist/server/ui/assets/index-DHmiffN1.js +1000 -0
- package/dist/server/ui/assets/useReviewSubscription-Xua63feT.js +69 -0
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +2 -2
- package/package.json +13 -1
- package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js +0 -52
- package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.d.ts +0 -30
- package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js +0 -230
- package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.d.ts +0 -24
- package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js +0 -191
- package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.d.ts +0 -73
- package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js +0 -1133
- package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.d.ts +0 -14
- package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js +0 -114
- package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.d.ts +0 -8
- package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js +0 -200
- package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.d.ts +0 -11
- package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js +0 -164
- package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js +0 -166
- package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.d.ts +0 -21
- package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js +0 -253
- package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.d.ts +0 -24
- package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js +0 -98
- package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js +0 -155
- package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.d.ts +0 -19
- package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js +0 -88
- package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js +0 -173
- package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js +0 -171
- package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js +0 -158
- package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js +0 -222
- package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.d.ts +0 -4
- package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js +0 -72
- package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.d.ts +0 -6
- package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js +0 -37
- package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js +0 -108
- package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/index.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/types/index.js +0 -6
- package/dist/server/modules/codebase-overview-analyzer/types/index.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/overview.types.d.ts +0 -231
- package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js +0 -3
- package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js +0 -13
- package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.d.ts +0 -54
- package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js +0 -27
- package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/scope.types.d.ts +0 -12
- package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js +0 -3
- package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/utils/constants.d.ts +0 -1
- package/dist/server/modules/codebase-overview-analyzer/utils/constants.js +0 -5
- package/dist/server/modules/codebase-overview-analyzer/utils/constants.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js +0 -17
- package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js.map +0 -1
- package/dist/server/modules/documents/controllers/documents.controller.d.ts +0 -12
- package/dist/server/modules/documents/controllers/documents.controller.js +0 -174
- package/dist/server/modules/documents/controllers/documents.controller.js.map +0 -1
- package/dist/server/modules/documents/documents.module.d.ts +0 -2
- package/dist/server/modules/documents/documents.module.js +0 -22
- package/dist/server/modules/documents/documents.module.js.map +0 -1
- package/dist/server/modules/mcp/services/handlers/document-context.d.ts +0 -8
- package/dist/server/modules/mcp/services/handlers/document-context.js +0 -3
- package/dist/server/modules/mcp/services/handlers/document-context.js.map +0 -1
- package/dist/server/modules/mcp/services/handlers/document-tools.d.ts +0 -6
- package/dist/server/modules/mcp/services/handlers/document-tools.js +0 -109
- package/dist/server/modules/mcp/services/handlers/document-tools.js.map +0 -1
- package/dist/server/modules/mcp/services/utils/document-link-resolver.d.ts +0 -10
- package/dist/server/modules/mcp/services/utils/document-link-resolver.js +0 -124
- package/dist/server/modules/mcp/services/utils/document-link-resolver.js.map +0 -1
- package/dist/server/modules/mcp/tool-descriptors/document.bindings.d.ts +0 -1
- package/dist/server/modules/mcp/tool-descriptors/document.bindings.js +0 -19
- package/dist/server/modules/mcp/tool-descriptors/document.bindings.js.map +0 -1
- package/dist/server/modules/mcp/tool-descriptors/document.metadata.d.ts +0 -2
- package/dist/server/modules/mcp/tool-descriptors/document.metadata.js +0 -96
- package/dist/server/modules/mcp/tool-descriptors/document.metadata.js.map +0 -1
- package/dist/server/modules/storage/local/delegates/document.delegate.d.ts +0 -18
- package/dist/server/modules/storage/local/delegates/document.delegate.js +0 -275
- package/dist/server/modules/storage/local/delegates/document.delegate.js.map +0 -1
- package/dist/server/ui/assets/ReviewDetailPage-D8DVpsJm.js +0 -1
- package/dist/server/ui/assets/ReviewsPage-DcWpRFbm.js +0 -6
- package/dist/server/ui/assets/index-CV8ydm7w.css +0 -32
- package/dist/server/ui/assets/index-Cwe7LxcW.js +0 -1197
- package/dist/server/ui/assets/useReviewSubscription-CYoSg-88.js +0 -69
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.DocumentStorageDelegate = void 0;
|
|
37
|
-
const drizzle_orm_1 = require("drizzle-orm");
|
|
38
|
-
const error_types_1 = require("../../../../common/errors/error-types");
|
|
39
|
-
const logger_1 = require("../../../../common/logging/logger");
|
|
40
|
-
const schema_1 = require("../../db/schema");
|
|
41
|
-
const storage_helpers_1 = require("../helpers/storage-helpers");
|
|
42
|
-
const base_storage_delegate_1 = require("./base-storage.delegate");
|
|
43
|
-
const logger = (0, logger_1.createLogger)('DocumentStorageDelegate');
|
|
44
|
-
class DocumentStorageDelegate extends base_storage_delegate_1.BaseStorageDelegate {
|
|
45
|
-
dependencies;
|
|
46
|
-
constructor(context, dependencies) {
|
|
47
|
-
super(context);
|
|
48
|
-
this.dependencies = dependencies;
|
|
49
|
-
}
|
|
50
|
-
async listDocuments(filters = {}) {
|
|
51
|
-
const { documents, documentTags, tags } = await Promise.resolve().then(() => __importStar(require('../../db/schema')));
|
|
52
|
-
const { and, eq, isNull, like, or, desc, sql } = await Promise.resolve().then(() => __importStar(require('drizzle-orm')));
|
|
53
|
-
const whereClauses = [];
|
|
54
|
-
if (filters.projectId !== undefined) {
|
|
55
|
-
whereClauses.push(filters.projectId === null
|
|
56
|
-
? isNull(documents.projectId)
|
|
57
|
-
: eq(documents.projectId, filters.projectId));
|
|
58
|
-
}
|
|
59
|
-
const tagKeys = (0, storage_helpers_1.normalizeTagList)(filters.tagKeys);
|
|
60
|
-
if (tagKeys.length) {
|
|
61
|
-
for (const key of tagKeys) {
|
|
62
|
-
whereClauses.push(sql `EXISTS (
|
|
63
|
-
SELECT 1
|
|
64
|
-
FROM ${documentTags} dt
|
|
65
|
-
INNER JOIN ${tags} t ON t.id = dt.tag_id
|
|
66
|
-
WHERE dt.document_id = ${documents.id}
|
|
67
|
-
AND (
|
|
68
|
-
(
|
|
69
|
-
CASE
|
|
70
|
-
WHEN instr(t.name, ':') > 0 THEN substr(t.name, 1, instr(t.name, ':') - 1)
|
|
71
|
-
ELSE NULL
|
|
72
|
-
END
|
|
73
|
-
) = ${key}
|
|
74
|
-
OR t.name = ${key}
|
|
75
|
-
)
|
|
76
|
-
)`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const searchTerm = filters.q?.trim();
|
|
80
|
-
if (searchTerm) {
|
|
81
|
-
const pattern = `%${searchTerm}%`;
|
|
82
|
-
whereClauses.push(or(like(documents.title, pattern), like(documents.contentMd, pattern)));
|
|
83
|
-
}
|
|
84
|
-
const whereCondition = whereClauses.length === 0
|
|
85
|
-
? undefined
|
|
86
|
-
: whereClauses.length === 1
|
|
87
|
-
? whereClauses[0]
|
|
88
|
-
: and(...whereClauses);
|
|
89
|
-
const rows = await (whereCondition
|
|
90
|
-
? this.db.select().from(documents).where(whereCondition).orderBy(desc(documents.updatedAt))
|
|
91
|
-
: this.db.select().from(documents).orderBy(desc(documents.updatedAt)));
|
|
92
|
-
if (!rows.length) {
|
|
93
|
-
return {
|
|
94
|
-
items: [],
|
|
95
|
-
total: 0,
|
|
96
|
-
limit: filters.limit ?? 100,
|
|
97
|
-
offset: filters.offset ?? 0,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
const documentsWithTags = rows.map((row) => this.getDocumentSync({ id: row.id }));
|
|
101
|
-
let filtered = documentsWithTags;
|
|
102
|
-
if (filters.tags?.length) {
|
|
103
|
-
const requiredTags = (0, storage_helpers_1.normalizeTagList)(filters.tags);
|
|
104
|
-
filtered = documentsWithTags.filter((doc) => requiredTags.every((tag) => doc.tags.includes(tag)));
|
|
105
|
-
}
|
|
106
|
-
const limit = filters.limit ?? 100;
|
|
107
|
-
const offset = filters.offset ?? 0;
|
|
108
|
-
const items = filtered.slice(offset, offset + limit);
|
|
109
|
-
return {
|
|
110
|
-
items,
|
|
111
|
-
total: filtered.length,
|
|
112
|
-
limit,
|
|
113
|
-
offset,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
async getDocument(identifier) {
|
|
117
|
-
return this.getDocumentSync(identifier);
|
|
118
|
-
}
|
|
119
|
-
getDocumentSync(identifier) {
|
|
120
|
-
let whereCondition;
|
|
121
|
-
if (identifier.id) {
|
|
122
|
-
whereCondition = (0, drizzle_orm_1.eq)(schema_1.documents.id, identifier.id);
|
|
123
|
-
}
|
|
124
|
-
else if (identifier.slug) {
|
|
125
|
-
if (identifier.projectId === undefined) {
|
|
126
|
-
throw new error_types_1.ValidationError('projectId is required when querying document by slug');
|
|
127
|
-
}
|
|
128
|
-
whereCondition =
|
|
129
|
-
identifier.projectId === null
|
|
130
|
-
? (0, drizzle_orm_1.and)((0, drizzle_orm_1.isNull)(schema_1.documents.projectId), (0, drizzle_orm_1.eq)(schema_1.documents.slug, identifier.slug))
|
|
131
|
-
: (0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema_1.documents.projectId, identifier.projectId), (0, drizzle_orm_1.eq)(schema_1.documents.slug, identifier.slug));
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
throw new error_types_1.ValidationError('Document identifier requires either id or slug');
|
|
135
|
-
}
|
|
136
|
-
const record = this.db.select().from(schema_1.documents).where(whereCondition).limit(1).get();
|
|
137
|
-
if (!record) {
|
|
138
|
-
const lookup = identifier.id ?? `${identifier.projectId ?? 'global'}:${identifier.slug}`;
|
|
139
|
-
throw new error_types_1.NotFoundError('Document', lookup || 'unknown');
|
|
140
|
-
}
|
|
141
|
-
const tagRows = this.db
|
|
142
|
-
.select({ tag: schema_1.tags })
|
|
143
|
-
.from(schema_1.documentTags)
|
|
144
|
-
.innerJoin(schema_1.tags, (0, drizzle_orm_1.eq)(schema_1.documentTags.tagId, schema_1.tags.id))
|
|
145
|
-
.where((0, drizzle_orm_1.eq)(schema_1.documentTags.documentId, record.id))
|
|
146
|
-
.all();
|
|
147
|
-
return {
|
|
148
|
-
...record,
|
|
149
|
-
projectId: record.projectId ?? null,
|
|
150
|
-
tags: tagRows.map((row) => row.tag.name),
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
async createDocument(data) {
|
|
154
|
-
const { randomUUID } = await Promise.resolve().then(() => __importStar(require('crypto')));
|
|
155
|
-
const now = new Date().toISOString();
|
|
156
|
-
const normalizedProjectId = data.projectId ?? null;
|
|
157
|
-
const { documents } = await Promise.resolve().then(() => __importStar(require('../../db/schema')));
|
|
158
|
-
const slugSource = data.slug ?? data.title;
|
|
159
|
-
const slug = this.generateDocumentSlugSync(normalizedProjectId, slugSource);
|
|
160
|
-
const tags = (0, storage_helpers_1.normalizeTagList)(data.tags);
|
|
161
|
-
const id = randomUUID();
|
|
162
|
-
await this.db.insert(documents).values({
|
|
163
|
-
id,
|
|
164
|
-
projectId: normalizedProjectId,
|
|
165
|
-
title: data.title,
|
|
166
|
-
slug,
|
|
167
|
-
contentMd: data.contentMd,
|
|
168
|
-
version: 1,
|
|
169
|
-
archived: false,
|
|
170
|
-
createdAt: now,
|
|
171
|
-
updatedAt: now,
|
|
172
|
-
});
|
|
173
|
-
if (tags.length) {
|
|
174
|
-
this.setDocumentTagsSync(id, tags, normalizedProjectId);
|
|
175
|
-
}
|
|
176
|
-
logger.info({ documentId: id }, 'Created document');
|
|
177
|
-
return this.getDocumentSync({ id });
|
|
178
|
-
}
|
|
179
|
-
async updateDocument(id, data) {
|
|
180
|
-
const result = await this.versionedMutationExecutor.execute({
|
|
181
|
-
resource: 'Document',
|
|
182
|
-
id,
|
|
183
|
-
expectedVersion: data.version,
|
|
184
|
-
loadCurrent: () => this.getDocumentSync({ id }),
|
|
185
|
-
versionOf: (current) => current.version,
|
|
186
|
-
prepare: ({ current }) => {
|
|
187
|
-
const updatePayload = {};
|
|
188
|
-
if (data.title !== undefined)
|
|
189
|
-
updatePayload.title = data.title;
|
|
190
|
-
if (data.contentMd !== undefined)
|
|
191
|
-
updatePayload.contentMd = data.contentMd;
|
|
192
|
-
if (data.archived !== undefined)
|
|
193
|
-
updatePayload.archived = data.archived;
|
|
194
|
-
if (data.slug !== undefined) {
|
|
195
|
-
updatePayload.slug = this.generateDocumentSlugSync(current.projectId, data.slug, id);
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
kind: 'write',
|
|
199
|
-
state: {
|
|
200
|
-
updatePayload,
|
|
201
|
-
requestedTags: data.tags === undefined ? undefined : (0, storage_helpers_1.normalizeTagList)(data.tags),
|
|
202
|
-
now: new Date().toISOString(),
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
},
|
|
206
|
-
write: (context, state) => this.db
|
|
207
|
-
.update(schema_1.documents)
|
|
208
|
-
.set({
|
|
209
|
-
...state.updatePayload,
|
|
210
|
-
updatedAt: state.now,
|
|
211
|
-
version: context.nextVersion,
|
|
212
|
-
})
|
|
213
|
-
.where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema_1.documents.id, id), (0, drizzle_orm_1.eq)(schema_1.documents.version, context.actualVersion)))
|
|
214
|
-
.run().changes,
|
|
215
|
-
afterWrite: ({ current }, state) => {
|
|
216
|
-
if (state.requestedTags !== undefined) {
|
|
217
|
-
this.setDocumentTagsSync(id, state.requestedTags, current.projectId);
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
loadResult: () => this.getDocumentSync({ id }),
|
|
221
|
-
});
|
|
222
|
-
logger.info({ documentId: id }, 'Updated document');
|
|
223
|
-
return result;
|
|
224
|
-
}
|
|
225
|
-
async deleteDocument(id) {
|
|
226
|
-
const { documents } = await Promise.resolve().then(() => __importStar(require('../../db/schema')));
|
|
227
|
-
const { eq } = await Promise.resolve().then(() => __importStar(require('drizzle-orm')));
|
|
228
|
-
await this.db.delete(documents).where(eq(documents.id, id));
|
|
229
|
-
logger.info({ documentId: id }, 'Deleted document');
|
|
230
|
-
}
|
|
231
|
-
generateDocumentSlugSync(projectId, desired, excludeId) {
|
|
232
|
-
const base = (0, storage_helpers_1.slugify)(desired || 'document') || 'document';
|
|
233
|
-
let candidate = base;
|
|
234
|
-
let attempt = 1;
|
|
235
|
-
while (true) {
|
|
236
|
-
const projectCondition = projectId === null
|
|
237
|
-
? (0, drizzle_orm_1.isNull)(schema_1.documents.projectId)
|
|
238
|
-
: (0, drizzle_orm_1.eq)(schema_1.documents.projectId, projectId);
|
|
239
|
-
const slugCondition = (0, drizzle_orm_1.eq)(schema_1.documents.slug, candidate);
|
|
240
|
-
const whereClause = excludeId
|
|
241
|
-
? (0, drizzle_orm_1.and)(slugCondition, projectCondition, (0, drizzle_orm_1.ne)(schema_1.documents.id, excludeId))
|
|
242
|
-
: (0, drizzle_orm_1.and)(slugCondition, projectCondition);
|
|
243
|
-
const existing = this.db
|
|
244
|
-
.select({ id: schema_1.documents.id })
|
|
245
|
-
.from(schema_1.documents)
|
|
246
|
-
.where(whereClause)
|
|
247
|
-
.limit(1)
|
|
248
|
-
.get();
|
|
249
|
-
if (!existing) {
|
|
250
|
-
return candidate;
|
|
251
|
-
}
|
|
252
|
-
attempt += 1;
|
|
253
|
-
candidate = `${base}-${attempt}`;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
setDocumentTagsSync(documentId, tagNames, projectId) {
|
|
257
|
-
const normalizedTags = (0, storage_helpers_1.normalizeTagList)(tagNames);
|
|
258
|
-
this.db.delete(schema_1.documentTags).where((0, drizzle_orm_1.eq)(schema_1.documentTags.documentId, documentId)).run();
|
|
259
|
-
for (const tagName of normalizedTags) {
|
|
260
|
-
const projectCondition = projectId === null
|
|
261
|
-
? (0, drizzle_orm_1.isNull)(schema_1.tags.projectId)
|
|
262
|
-
: (0, drizzle_orm_1.or)((0, drizzle_orm_1.eq)(schema_1.tags.projectId, projectId), (0, drizzle_orm_1.isNull)(schema_1.tags.projectId));
|
|
263
|
-
const existing = this.db
|
|
264
|
-
.select()
|
|
265
|
-
.from(schema_1.tags)
|
|
266
|
-
.where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema_1.tags.name, tagName), projectCondition))
|
|
267
|
-
.limit(1)
|
|
268
|
-
.get();
|
|
269
|
-
const tag = existing ?? this.dependencies.createTag({ projectId, name: tagName });
|
|
270
|
-
this.db.insert(schema_1.documentTags).values({ documentId, tagId: tag.id }).run();
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
exports.DocumentStorageDelegate = DocumentStorageDelegate;
|
|
275
|
-
//# sourceMappingURL=document.delegate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document.delegate.js","sourceRoot":"","sources":["../../../../../src/modules/storage/local/delegates/document.delegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as ae,u as se,r as p,l as d,j as e,y as ie,o as w,G as le,B as k,a as te,I as oe,T as ne,v as ce,w as pe,K as re,x as me,z as n}from"./index-Cwe7LxcW.js";import{N as z,u as ue,a as he,b as de,h as ge,S as be,w as Ne,R as A,k as g,F as G,l as ve,m as K,D as _,n as H,K as fe,x as xe,y as we,z as De,v as Pe}from"./useReviewSubscription-CYoSg-88.js";const q="review-file-nav",B="review-comment-split";function O(){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(G,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:46,columnNumber:7},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"Select a file to view diff"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:47,columnNumber:7},this),e.jsxDEV("p",{className:"text-sm",children:"Choose a file from the left panel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:45,columnNumber:5},this)}function Re(){return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b p-4",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(n,{className:"h-9 w-9"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:59,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(n,{className:"h-6 w-48 mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:61,columnNumber:13},this),e.jsxDEV(n,{className:"h-4 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:62,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:60,columnNumber:11},this),e.jsxDEV(n,{className:"h-6 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:64,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:58,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:57,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1 flex",children:[e.jsxDEV("div",{className:"w-64 border-r p-4 space-y-2",children:Array.from({length:5}).map((i,r)=>e.jsxDEV(n,{className:"h-8 w-full"},r,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:71,columnNumber:13},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:69,columnNumber:9},this),e.jsxDEV("div",{className:"flex-1 p-4",children:e.jsxDEV(n,{className:"h-full w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:75,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:74,columnNumber:9},this),e.jsxDEV("div",{className:"w-80 border-l p-4 space-y-2",children:[e.jsxDEV(n,{className:"h-6 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:78,columnNumber:11},this),Array.from({length:3}).map((i,r)=>e.jsxDEV(n,{className:"h-16 w-full"},r,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:80,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:68,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:55,columnNumber:5},this)}function Ve(){var T;const{reviewId:i}=ae(),r=se(),[l,m]=p.useState(null),[b,D]=p.useState("unified"),P=z({id:q,storage:localStorage}),R=z({id:B,storage:localStorage}),{data:a,isLoading:j,isError:E}=d({queryKey:["review",i],queryFn:()=>xe(i),enabled:!!i});ue(i??null,(a==null?void 0:a.projectId)??null);const u=he(),h=de(),{data:t=[],isLoading:U}=d({queryKey:["review-files",i,a==null?void 0:a.baseSha,a==null?void 0:a.headSha],queryFn:()=>{if(!(a!=null&&a.projectId)||!a.baseSha||!a.headSha)throw new Error("Review SHAs are not available");return we(a.projectId,a.baseSha,a.headSha)},enabled:!!(a!=null&&a.projectId)&&!!(a!=null&&a.baseSha)&&!!(a!=null&&a.headSha)}),{data:V="",isLoading:y,isError:S}=d({queryKey:["review-diff",i,a==null?void 0:a.baseSha,a==null?void 0:a.headSha],queryFn:()=>{if(!(a!=null&&a.projectId)||!a.baseSha||!a.headSha)throw new Error("Review SHAs are not available");return De(a.projectId,a.baseSha,a.headSha)},enabled:!!(a!=null&&a.projectId)&&!!(a!=null&&a.baseSha)&&!!(a!=null&&a.headSha)&&!!l}),{data:N}=d({queryKey:["review-comments",i],queryFn:()=>Pe(i),enabled:!!i}),C=((T=N==null?void 0:N.items)==null?void 0:T.filter(s=>s.filePath===l))??[],I=()=>{r("/reviews")},M=s=>{m(s)},Q=p.useCallback(()=>{if(t.length===0)return;const o=((l?t.findIndex(c=>c.path===l):-1)+1)%t.length;m(t[o].path)},[t,l]),J=p.useCallback(()=>{if(t.length===0)return;const s=l?t.findIndex(c=>c.path===l):0,o=s<=0?t.length-1:s-1;m(t[o].path)},[t,l]),L=p.useRef(null),W=p.useCallback(()=>{var s;(s=L.current)==null||s.focusNextComment()},[]),X=p.useCallback(()=>{var s;(s=L.current)==null||s.focusPreviousComment()},[]),{isHelpOpen:Y,closeHelp:Z,openHelp:$}=ge({enabled:!j&&!E,handlers:{onNextFile:Q,onPreviousFile:J,onNextComment:W,onPreviousComment:X}});if(j)return e.jsxDEV(Re,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:215,columnNumber:12},this);if(E||!a)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full",children:[e.jsxDEV(ie,{className:"h-12 w-12 text-destructive mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:222,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium mb-2",children:"Failed to load review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:223,columnNumber:9},this),e.jsxDEV("p",{className:"text-muted-foreground mb-4",children:"The review could not be found or there was an error loading it."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:224,columnNumber:9},this),e.jsxDEV(w,{onClick:I,children:"Back to Reviews"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:227,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:221,columnNumber:7},this);const F=be[a.status],ee=Ne[a.status];return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b px-4 py-3 bg-card",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(w,{variant:"ghost",size:"icon",onClick:I,title:"Back to reviews",children:e.jsxDEV(le,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:241,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:240,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1 min-w-0",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("h1",{className:"text-lg font-semibold truncate",children:a.title},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:245,columnNumber:15},this),e.jsxDEV(k,{variant:"secondary",className:te("shrink-0",F.bg,F.text),children:ee},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:246,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:244,columnNumber:13},this),e.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsxDEV(oe,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:254,columnNumber:15},this),e.jsxDEV("span",{children:[a.baseRef,"...",a.headRef]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:255,columnNumber:15},this),a.baseSha&&a.headSha?e.jsxDEV("span",{className:"text-xs",children:["(",a.baseSha.slice(0,7),"...",a.headSha.slice(0,7),")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:259,columnNumber:17},this):e.jsxDEV("span",{className:"text-xs",children:["(",a.mode==="working_tree"?"working tree":"sha pending",")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:263,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:253,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:243,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground shrink-0",children:[e.jsxDEV("span",{children:[t.length," files"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:270,columnNumber:13},this),e.jsxDEV(ne,{children:e.jsxDEV(ce,{children:[e.jsxDEV(pe,{asChild:!0,children:e.jsxDEV(w,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:$,title:"Keyboard shortcuts",children:e.jsxDEV(re,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:281,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:274,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:273,columnNumber:17},this),e.jsxDEV(me,{children:e.jsxDEV("p",{children:"Keyboard shortcuts (?)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:285,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:284,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:272,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:271,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:269,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:239,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:238,columnNumber:7},this),e.jsxDEV(A,{orientation:"horizontal",className:"flex-1 min-h-0",id:q,defaultLayout:P.defaultLayout,onLayoutChanged:P.onLayoutChanged,children:[e.jsxDEV(g,{id:"file-nav",defaultSize:"256px",minSize:"150px",maxSize:"40%",children:e.jsxDEV("div",{className:"h-full border-r bg-card overflow-hidden flex flex-col",children:[e.jsxDEV("div",{className:"p-3 border-b shrink-0",children:e.jsxDEV("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsxDEV(G,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:306,columnNumber:17},this),"Files",t.length>0&&e.jsxDEV(k,{variant:"secondary",className:"text-xs",children:t.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:309,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:305,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:304,columnNumber:13},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:e.jsxDEV(ve,{files:t,selectedFile:l,onSelectFile:M,isLoading:U},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:316,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:315,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:303,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:302,columnNumber:9},this),e.jsxDEV(K,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:326,columnNumber:9},this),e.jsxDEV(g,{id:"diff-comments",defaultSize:"80%",children:b==="split"?e.jsxDEV(A,{orientation:"vertical",className:"h-full",id:B,defaultLayout:R.defaultLayout,onLayoutChanged:R.onLayoutChanged,children:[e.jsxDEV(g,{id:"diff-panel",defaultSize:"70%",minSize:"30%",children:e.jsxDEV("div",{className:"h-full min-w-0 bg-background overflow-auto",children:l?e.jsxDEV(_,{diff:V,filePath:l,isLoading:y,error:S?"Failed to load diff":null,viewType:b,onViewTypeChange:D,projectId:a==null?void 0:a.projectId,comments:C,onAddComment:async(s,o,c,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:c,targetAgentIds:x})},onReplyToComment:async(s,o)=>{await h.mutateAsync({reviewId:i,parentId:s,content:o})},isSubmittingComment:u.isPending||h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:342,columnNumber:21},this):e.jsxDEV(O,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:382,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:340,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:339,columnNumber:15},this),e.jsxDEV(K,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:386,columnNumber:15},this),e.jsxDEV(g,{id:"comment-panel",defaultSize:"30%",minSize:"15%",children:e.jsxDEV("div",{className:"h-full bg-card overflow-hidden border-t",children:e.jsxDEV(H,{reviewId:i,projectId:a==null?void 0:a.projectId,selectedFile:l,onCommentSelect:s=>{s.filePath&&m(s.filePath)}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:389,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:388,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:387,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:332,columnNumber:13},this):e.jsxDEV("div",{className:"h-full grid grid-cols-[1fr_320px]",children:[e.jsxDEV("div",{className:"min-w-0 bg-background overflow-auto",children:l?e.jsxDEV(_,{diff:V,filePath:l,isLoading:y,error:S?"Failed to load diff":null,viewType:b,onViewTypeChange:D,projectId:a==null?void 0:a.projectId,comments:C,onAddComment:async(s,o,c,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:c,targetAgentIds:x})},onReplyToComment:async(s,o)=>{await h.mutateAsync({reviewId:i,parentId:s,content:o})},isSubmittingComment:u.isPending||h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:407,columnNumber:19},this):e.jsxDEV(O,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:445,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:405,columnNumber:15},this),e.jsxDEV("div",{className:"bg-card overflow-hidden border-l",children:e.jsxDEV(H,{reviewId:i,projectId:a==null?void 0:a.projectId,selectedFile:l,onCommentSelect:s=>{s.filePath&&m(s.filePath)}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:449,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:448,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:404,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:329,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:294,columnNumber:7},this),e.jsxDEV(fe,{open:Y,onOpenChange:Z},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:466,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:236,columnNumber:5},this)}export{Ve as ReviewDetailPage};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{c as ns,r as n,j as e,C as os,a as pe,b as cs,d as rs,e as ms,M as ps,B as ue,f as us,u as hs,g as ds,h as gs,i as vs,k as Ns,l as P,m as fs,n as Se,F as bs,o as X,H as ws,S as ke,p as Te,q as Ie,s as Fe,t as ce,R as xs,T as Ps,v as Rs,w as Es,K as js,x as Ds,y as Vs,z as R,A as Cs,D as ys}from"./index-Cwe7LxcW.js";import{g as Ss,i as re,C as ks,N as Ae,u as Ts,a as Is,b as Fs,c as As,d as qs,e as Ls,f as me,h as Ms,T as qe,j as K,R as Le,k as Z,F as he,l as zs,m as Me,D as ze,n as Ke,K as Ks,o as Hs,p as _s,q as Os,r as Bs,s as Gs,t as Qs,v as Ws}from"./useReviewSubscription-CYoSg-88.js";/**
|
|
2
|
-
* @license lucide-react v0.545.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const $s=[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]],He=ns("git-commit-horizontal",$s);function _e({comments:y,selectedCommentId:d,isExpanded:E,onToggleExpand:ee,onReply:a,onResolve:q,onDelete:se,onEdit:m,onApplySuggestion:H,isReplying:L=!1,isResolving:ie=!1,isDeleting:_=!1,isEditing:O=!1,isApplyingSuggestion:o=!1,getSessionForAgent:S,onOpenTerminal:c,className:b}){const j=n.useRef(null),D=n.useMemo(()=>y.filter(r=>r.filePath===null),[y]),N=n.useMemo(()=>Ss(D),[D]),w=n.useMemo(()=>D.filter(r=>r.parentId===null).sort((r,v)=>{const k=N.get(r.id)??[],V=N.get(v.id)??[],s=re({comment:r,replies:k}),ae=re({comment:v,replies:V});if(s!==ae)return s?-1:1;if(r.status!==v.status){if(r.status==="open")return-1;if(v.status==="open")return 1}return new Date(v.createdAt).getTime()-new Date(r.createdAt).getTime()}),[D,N]);return n.useEffect(()=>{d&&j.current&&E&&j.current.scrollIntoView({behavior:"smooth",block:"nearest"})},[d,E]),w.length===0?null:e.jsxDEV(os,{open:E,onOpenChange:ee,className:pe("border-b bg-card",b),"data-testid":"review-comments-section",children:[e.jsxDEV(cs,{asChild:!0,children:e.jsxDEV("button",{type:"button",className:"flex items-center gap-2 px-4 py-3 border-b bg-muted/30 w-full text-left hover:bg-muted/50 transition-colors","aria-label":E?"Collapse review comments":"Expand review comments",children:[E?e.jsxDEV(rs,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:140,columnNumber:13},this):e.jsxDEV(ms,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:142,columnNumber:13},this),e.jsxDEV("h3",{className:"font-medium text-sm flex items-center gap-2",id:"review-comments-heading",children:[e.jsxDEV(ps,{className:"h-4 w-4","aria-hidden":"true"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:146,columnNumber:13},this),"Review Comments",e.jsxDEV(ue,{variant:"secondary",className:"text-xs","aria-label":`${w.length} comments`,children:w.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:148,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:145,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:134,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:133,columnNumber:7},this),e.jsxDEV(us,{children:e.jsxDEV("div",{className:"p-4 space-y-4",role:"region","aria-labelledby":"review-comments-heading",children:w.map(r=>{const v=N.get(r.id)??[],k=re({comment:r,replies:v}),V=d===r.id;return e.jsxDEV("div",{ref:V?j:void 0,className:pe("transition-all duration-200",V&&"ring-2 ring-primary ring-offset-2 rounded-lg"),"data-comment-id":r.id,children:e.jsxDEV(ks,{comment:r,replies:v,isPending:k,getSessionForAgent:S,onOpenTerminal:c,onReply:a,onResolve:q,onDelete:se,onEdit:m,onApplySuggestion:H,isReplying:L,isResolving:ie,isDeleting:_,isEditing:O,isApplyingSuggestion:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:178,columnNumber:17},this)},r.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:168,columnNumber:15},this)})},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:161,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:160,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:126,columnNumber:5},this)}const Oe="review-file-nav",Be="review-comment-split";function Us(){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(he,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:87,columnNumber:7},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"No changes to review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:88,columnNumber:7},this),e.jsxDEV("p",{className:"text-sm",children:"Your working tree is clean"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:89,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:86,columnNumber:5},this)}function Ge(){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(he,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:98,columnNumber:7},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"Select a file to view diff"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:99,columnNumber:7},this),e.jsxDEV("p",{className:"text-sm",children:"Choose a file from the left panel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:100,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:97,columnNumber:5},this)}function Ys(){return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b p-4",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(R,{className:"h-6 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:111,columnNumber:11},this),e.jsxDEV(R,{className:"h-9 w-40"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:112,columnNumber:11},this),e.jsxDEV(R,{className:"h-9 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:113,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:114,columnNumber:11},this),e.jsxDEV(R,{className:"h-9 w-24"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:115,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:110,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:109,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1 flex",children:[e.jsxDEV("div",{className:"w-64 border-r p-4 space-y-2",children:Array.from({length:5}).map((y,d)=>e.jsxDEV(R,{className:"h-8 w-full"},d,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:122,columnNumber:13},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:120,columnNumber:9},this),e.jsxDEV("div",{className:"flex-1 p-4",children:e.jsxDEV(R,{className:"h-full w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:126,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:125,columnNumber:9},this),e.jsxDEV("div",{className:"w-80 border-l p-4 space-y-2",children:[e.jsxDEV(R,{className:"h-6 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:129,columnNumber:11},this),Array.from({length:3}).map((y,d)=>e.jsxDEV(R,{className:"h-16 w-full"},d,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:131,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:128,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:119,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:107,columnNumber:5},this)}function Zs(){var Ce;const y=hs(),d=ds(),{toast:E}=gs(),{selectedProject:ee,selectedProjectId:a,projectsLoading:q}=vs(),se=Ns(),[m,H]=n.useState("working-tree"),[L,ie]=n.useState("all"),[_,O]=n.useState("HEAD"),[o,S]=n.useState(null),[c,b]=n.useState(null),[j,D]=n.useState("unified"),[N,w]=n.useState(null),[r,v]=n.useState(!0),k=Ae({id:Oe,storage:localStorage}),V=Ae({id:Be,storage:localStorage}),{data:s,isLoading:ae}=P({queryKey:["active-review",a],queryFn:()=>me(a),enabled:!!a});Ts((s==null?void 0:s.id)??null,a??null);const{data:f,isLoading:de,isError:Qe,refetch:ge}=P({queryKey:["working-tree",a,L],queryFn:()=>Os(a,L),enabled:!!a&&m==="working-tree",refetchInterval:5e3}),{data:T,isLoading:We,isError:$e}=P({queryKey:["commit-diff",a,o==null?void 0:o.sha],queryFn:()=>Bs(a,o.sha),enabled:!!a&&m==="commit"&&!!o}),{data:C=[]}=P({queryKey:["commits",a],queryFn:()=>Gs(a,{limit:50}),enabled:!!a});n.useEffect(()=>{if(s){const i=s.mode==="working_tree"?"working-tree":"commit";if(H(i),O(s.baseRef),s.mode==="commit"&&C.length>0){const l=C.find(t=>t.sha===s.headRef);l&&S(l)}}},[s,C]);const{data:Ue=[]}=P({queryKey:["branches",a],queryFn:()=>Qs(a),enabled:!!a}),{data:p}=P({queryKey:["review-comments",s==null?void 0:s.id],queryFn:()=>Ws(s.id),enabled:!!(s!=null&&s.id)}),{data:ve={}}=P({queryKey:["agent-presence",a],queryFn:()=>Cs(a,se),enabled:!!a,refetchInterval:1e4}),{data:Ne=[]}=P({queryKey:["active-sessions",a],queryFn:()=>ys(a),enabled:!!a,refetchInterval:1e4}),B=n.useCallback(i=>{const l=ve[i];return l!=null&&l.sessionId?Ne.find(t=>t.id===l.sessionId)??null:null},[ve,Ne]),G=fs(),Q=Se({mutationFn:()=>_s(s.id,s.version),onSuccess:()=>{d.invalidateQueries({queryKey:["active-review",a]}),d.invalidateQueries({queryKey:["review-comments"]}),E({title:"Review closed",description:"The review has been closed successfully."})}}),M=Se({mutationFn:async()=>{const i=m==="commit"&&o?`Review: ${o.sha.slice(0,7)}`:"Pre-commit review",l=m==="commit"&&o?`${o.sha}^`:_,t=m==="commit"&&o?o.sha:"HEAD";return Hs({projectId:a,title:i,mode:m==="working-tree"?"working_tree":"commit",baseRef:l,headRef:t,status:"draft"})},onSuccess:i=>{d.setQueryData(["active-review",a],i)}}),le=Is(),z=Fs(),x=As(),I=qs(),F=Ls(),fe=n.useCallback(async(i,l,t,g,h,ts)=>{let J=s==null?void 0:s.id;if(!J)try{J=(await M.mutateAsync()).id}catch(ye){const oe=await me(a);if(!oe)throw ye;d.setQueryData(["active-review",a],oe),J=oe.id}await le.mutateAsync({reviewId:J,content:g,commentType:h,filePath:c,lineStart:i,lineEnd:l,side:t,targetAgentIds:ts})},[s==null?void 0:s.id,M,le,d,a,c]),W=n.useCallback(async(i,l)=>{let t=s==null?void 0:s.id;if(!t)try{t=(await M.mutateAsync()).id}catch(g){const h=await me(a);if(!h)throw g;d.setQueryData(["active-review",a],h),t=h.id}await z.mutateAsync({reviewId:t,parentId:i,content:l})},[s==null?void 0:s.id,M,z,d,a]),be=n.useCallback(i=>{if((s==null?void 0:s.mode)==="commit"&&(o==null?void 0:o.sha)!==s.headRef){const l=C.find(t=>t.sha===s.headRef);l&&S(l)}i.filePath?(b(i.filePath),w(i.commentId)):(v(!0),w(i.commentId))},[s==null?void 0:s.mode,s==null?void 0:s.headRef,o==null?void 0:o.sha,C]),we=n.useCallback(()=>{w(null)},[]),xe=n.useCallback(async(i,l,t)=>{s!=null&&s.id&&await x.mutateAsync({reviewId:s.id,commentId:i,status:l,version:t})},[s==null?void 0:s.id,x]),Pe=n.useCallback(async(i,l)=>{if(!(s!=null&&s.id)||!(p!=null&&p.items))return;const t=p.items.find(g=>g.id===i);t&&await x.mutateAsync({reviewId:s.id,commentId:i,status:l,version:t.version})},[s==null?void 0:s.id,p==null?void 0:p.items,x]),$=n.useCallback(async i=>{s!=null&&s.id&&await I.mutateAsync({reviewId:s.id,commentId:i})},[s==null?void 0:s.id,I]),U=n.useCallback(async(i,l,t)=>{s!=null&&s.id&&await F.mutateAsync({reviewId:s.id,commentId:i,content:l,version:t})},[s==null?void 0:s.id,F]),Re=M.isPending||le.isPending||z.isPending,u=n.useMemo(()=>{if(m==="working-tree"&&f){const{staged:i,unstaged:l,untracked:t}=f.changes,g=new Map;return i.forEach(h=>g.set(h.path,h)),l.forEach(h=>{g.has(h.path)||g.set(h.path,h)}),(t||[]).forEach(h=>{g.has(h)||g.set(h,{path:h,status:"added",additions:0,deletions:0})}),Array.from(g.values())}return m==="commit"&&T?T.changedFiles:[]},[m,f,T]),Ee=m==="working-tree"?(f==null?void 0:f.diff)??"":(T==null?void 0:T.diff)??"",je=((Ce=p==null?void 0:p.items)==null?void 0:Ce.filter(i=>i.filePath===c))??[],De=c?u.find(i=>i.path===c):void 0,Ye=i=>{H(i),b(null),i==="commit"&&S(null)},Je=i=>{const l=C.find(t=>t.sha===i);S(l??null),b(null)},te=i=>{b(i)},Xe=n.useCallback(()=>{if(u.length===0)return;const l=((c?u.findIndex(t=>t.path===c):-1)+1)%u.length;b(u[l].path)},[u,c]),Ze=n.useCallback(()=>{if(u.length===0)return;const i=c?u.findIndex(t=>t.path===c):0,l=i<=0?u.length-1:i-1;b(u[l].path)},[u,c]),Ve=n.useRef(null),es=n.useCallback(()=>{var i;(i=Ve.current)==null||i.focusNextComment()},[]),ss=n.useCallback(()=>{var i;(i=Ve.current)==null||i.focusPreviousComment()},[]),{isHelpOpen:is,closeHelp:as,openHelp:ls}=Ms({enabled:!q,handlers:{onNextFile:Xe,onPreviousFile:Ze,onNextComment:es,onPreviousComment:ss}});if(!q&&!ee)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full py-16",children:[e.jsxDEV(bs,{className:"h-12 w-12 text-muted-foreground/50 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:597,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium mb-2",children:"No project selected"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:598,columnNumber:9},this),e.jsxDEV("p",{className:"text-muted-foreground mb-4",children:"Select a project to view code reviews."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:599,columnNumber:9},this),e.jsxDEV(X,{onClick:()=>y("/projects"),children:"Go to Projects"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:600,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:596,columnNumber:7},this);if(q||ae)return e.jsxDEV(Ys,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:607,columnNumber:12},this);const Y=m==="working-tree"?de:We,A=m==="working-tree"?Qe:$e,ne=u.length>0;return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b px-4 py-3 bg-card",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV("div",{className:"flex items-center gap-1",children:[e.jsxDEV("h1",{className:"text-lg font-semibold",children:"Code Review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:621,columnNumber:13},this),e.jsxDEV(ws,{featureId:"reviews"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:622,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:620,columnNumber:11},this),e.jsxDEV(qe,{type:"single",value:m,onValueChange:i=>i&&Ye(i),className:"border rounded-md",children:[e.jsxDEV(K,{value:"working-tree",className:"text-xs px-3",children:"Working Changes"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:632,columnNumber:13},this),e.jsxDEV(K,{value:"commit",className:"text-xs px-3",children:[e.jsxDEV(He,{className:"h-3.5 w-3.5 mr-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:636,columnNumber:15},this),"Commit"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:635,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:626,columnNumber:11},this),m==="working-tree"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(ke,{value:_,onValueChange:O,children:[e.jsxDEV(Te,{className:"w-36","aria-label":"Select base reference",children:e.jsxDEV(Ie,{placeholder:"Base"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:647,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:646,columnNumber:17},this),e.jsxDEV(Fe,{children:[e.jsxDEV(ce,{value:"HEAD",children:"HEAD"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:650,columnNumber:19},this),Ue.filter(i=>["main","master"].includes(i.name)).map(i=>e.jsxDEV(ce,{value:i.name,children:i.name},i.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:654,columnNumber:23},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:649,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:645,columnNumber:15},this),e.jsxDEV(qe,{type:"single",value:L,onValueChange:i=>i&&ie(i),className:"border rounded-md",children:[e.jsxDEV(K,{value:"all",className:"text-xs px-3",children:"All"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:668,columnNumber:17},this),e.jsxDEV(K,{value:"staged",className:"text-xs px-3",children:"Staged"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:671,columnNumber:17},this),e.jsxDEV(K,{value:"unstaged",className:"text-xs px-3",children:"Unstaged"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:674,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:662,columnNumber:15},this),e.jsxDEV(X,{variant:"ghost",size:"icon",onClick:()=>ge(),title:"Refresh",children:e.jsxDEV(xs,{className:pe("h-4 w-4",de&&"animate-spin")},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:686,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:680,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:643,columnNumber:13},this):e.jsxDEV(ke,{value:(o==null?void 0:o.sha)??"",onValueChange:Je,children:[e.jsxDEV(Te,{className:"w-80","aria-label":"Select commit to review",children:e.jsxDEV(Ie,{placeholder:"Select a commit to review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:693,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:692,columnNumber:15},this),e.jsxDEV(Fe,{children:C.map(i=>e.jsxDEV(ce,{value:i.sha,children:[e.jsxDEV("span",{className:"font-mono text-xs",children:i.sha.slice(0,7)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:698,columnNumber:21},this),e.jsxDEV("span",{className:"ml-2 truncate",children:i.message},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:699,columnNumber:21},this)]},i.sha,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:697,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:695,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:691,columnNumber:13},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:706,columnNumber:11},this),ne&&e.jsxDEV("span",{className:"text-sm text-muted-foreground",children:[u.length," files",(f==null?void 0:f.untrackedDiffsCapped)&&e.jsxDEV("span",{className:"ml-1 text-amber-600",title:`Showing diffs for ${f.untrackedProcessed} of ${f.untrackedTotal} untracked files`,children:"(diffs capped)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:713,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:710,columnNumber:13},this),s&&e.jsxDEV(ue,{variant:"secondary",className:"bg-blue-100 text-blue-800",children:"Active Review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:725,columnNumber:13},this),e.jsxDEV(Ps,{children:e.jsxDEV(Rs,{children:[e.jsxDEV(Es,{asChild:!0,children:e.jsxDEV(X,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:ls,title:"Keyboard shortcuts",children:e.jsxDEV(js,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:741,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:734,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:733,columnNumber:15},this),e.jsxDEV(Ds,{children:e.jsxDEV("p",{children:"Keyboard shortcuts (?)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:745,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:744,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:732,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:731,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:618,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:617,columnNumber:7},this),A&&e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full",children:[e.jsxDEV(Vs,{className:"h-12 w-12 text-destructive mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:755,columnNumber:11},this),e.jsxDEV("h2",{className:"text-lg font-medium mb-2",children:"Failed to load changes"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:756,columnNumber:11},this),e.jsxDEV("p",{className:"text-muted-foreground mb-4",children:"There was an error loading the changes. Please try again."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:757,columnNumber:11},this),e.jsxDEV(X,{onClick:()=>ge(),children:"Retry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:760,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:754,columnNumber:9},this),!A&&!Y&&!ne&&m==="working-tree"&&e.jsxDEV(Us,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:765,columnNumber:76},this),!A&&m==="commit"&&!o&&e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(He,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:770,columnNumber:11},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"Select a commit to review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:771,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm",children:"Choose a commit from the dropdown above"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:772,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:769,columnNumber:9},this),!A&&ne&&e.jsxDEV(Le,{orientation:"horizontal",className:"flex-1 min-h-0",id:Oe,defaultLayout:k.defaultLayout,onLayoutChanged:k.onLayoutChanged,children:[e.jsxDEV(Z,{id:"file-nav",defaultSize:"256px",minSize:"150px",maxSize:"40%",children:e.jsxDEV("div",{className:"h-full border-r bg-card overflow-hidden flex flex-col",children:[e.jsxDEV("div",{className:"p-3 border-b shrink-0",children:e.jsxDEV("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsxDEV(he,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:790,columnNumber:19},this),"Files",u.length>0&&e.jsxDEV(ue,{variant:"secondary",className:"text-xs",children:u.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:793,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:789,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:788,columnNumber:15},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:e.jsxDEV(zs,{files:u,selectedFile:c,onSelectFile:te,isLoading:Y},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:800,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:799,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:787,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:786,columnNumber:11},this),e.jsxDEV(Me,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:810,columnNumber:11},this),e.jsxDEV(Z,{id:"diff-comments",defaultSize:"80%",children:j==="split"?e.jsxDEV(Le,{orientation:"vertical",className:"h-full",id:Be,defaultLayout:V.defaultLayout,onLayoutChanged:V.onLayoutChanged,children:[e.jsxDEV(Z,{id:"diff-panel",defaultSize:"70%",minSize:"30%",children:e.jsxDEV("div",{className:"h-full min-w-0 bg-background overflow-auto flex flex-col",children:[s&&(p==null?void 0:p.items)&&e.jsxDEV(_e,{comments:p.items,selectedCommentId:N,isExpanded:r,onToggleExpand:()=>v(i=>!i),onReply:W,onResolve:Pe,onDelete:$,onEdit:U,isReplying:z.isPending,isResolving:x.isPending,isDeleting:I.isPending,isEditing:F.isPending,getSessionForAgent:B,onOpenTerminal:G},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:827,columnNumber:23},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:c?e.jsxDEV(ze,{diff:Ee,filePath:c,isLoading:Y,error:A?"Failed to load diff":null,viewType:j,onViewTypeChange:D,projectId:a,comments:je,onAddComment:fe,onReplyToComment:W,onResolveComment:xe,onDeleteComment:$,onEditComment:U,isSubmittingComment:Re,isResolvingComment:x.isPending,isDeletingComment:I.isPending,isEditingComment:F.isPending,getSessionForAgent:B,onOpenTerminal:G,fileInfo:De,selectedCommentId:N,onClearSelectedComment:we},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:847,columnNumber:25},this):e.jsxDEV(Ge,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:872,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:845,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:824,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:823,columnNumber:17},this),e.jsxDEV(Me,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:877,columnNumber:17},this),e.jsxDEV(Z,{id:"comment-panel",defaultSize:"30%",minSize:"15%",children:e.jsxDEV("div",{className:"h-full bg-card overflow-hidden border-t",children:s?e.jsxDEV(Ke,{reviewId:s.id,review:s,projectId:a,selectedFile:c,onNavigateToComment:be,onSelectFile:te,selectedCommentId:N,onCloseReview:()=>Q.mutate(),isClosingReview:Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:881,columnNumber:23},this):e.jsxDEV("div",{className:"p-4 text-center text-muted-foreground",children:e.jsxDEV("p",{className:"text-sm",children:"Add a comment to start a review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:894,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:893,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:879,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:878,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:816,columnNumber:15},this):e.jsxDEV("div",{className:"h-full grid grid-cols-[1fr_320px]",children:[e.jsxDEV("div",{className:"min-w-0 bg-background overflow-auto flex flex-col",children:[s&&(p==null?void 0:p.items)&&e.jsxDEV(_e,{comments:p.items,selectedCommentId:N,isExpanded:r,onToggleExpand:()=>v(i=>!i),onReply:W,onResolve:Pe,onDelete:$,onEdit:U,isReplying:z.isPending,isResolving:x.isPending,isDeleting:I.isPending,isEditing:F.isPending,getSessionForAgent:B,onOpenTerminal:G},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:906,columnNumber:21},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:c?e.jsxDEV(ze,{diff:Ee,filePath:c,isLoading:Y,error:A?"Failed to load diff":null,viewType:j,onViewTypeChange:D,projectId:a,comments:je,onAddComment:fe,onReplyToComment:W,onResolveComment:xe,onDeleteComment:$,onEditComment:U,isSubmittingComment:Re,isResolvingComment:x.isPending,isDeletingComment:I.isPending,isEditingComment:F.isPending,getSessionForAgent:B,onOpenTerminal:G,fileInfo:De,selectedCommentId:N,onClearSelectedComment:we},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:926,columnNumber:23},this):e.jsxDEV(Ge,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:951,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:924,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:903,columnNumber:17},this),e.jsxDEV("div",{className:"bg-card overflow-hidden border-l",children:s?e.jsxDEV(Ke,{reviewId:s.id,review:s,projectId:a,selectedFile:c,onNavigateToComment:be,onSelectFile:te,selectedCommentId:N,onCloseReview:()=>Q.mutate(),isClosingReview:Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:957,columnNumber:21},this):e.jsxDEV("div",{className:"p-4 text-center text-muted-foreground",children:e.jsxDEV("p",{className:"text-sm",children:"Add a comment to start a review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:970,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:969,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:955,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:902,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:813,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:778,columnNumber:9},this),e.jsxDEV(Ks,{open:is,onOpenChange:as},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:981,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:615,columnNumber:5},this)}export{Zs as ReviewsPage};
|