@cmmd-center/forge 0.13.131 → 0.13.132
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/bin.cjs +176 -4
- package/dist/bin.mjs +197 -28
- package/dist/client/assets/{CanvasPanel-BBU-hosR.js → CanvasPanel-BZ55yFCm.js} +2 -2
- package/dist/client/assets/{DiffPanel-CsjpjcNO.js → DiffPanel-Ca2Lz8RB.js} +2 -2
- package/dist/client/assets/{DiffPanel.logic-D0tJmmDH.js → DiffPanel.logic-H_2wKBOQ.js} +2 -2
- package/dist/client/assets/{DiffWorkerPoolProvider-BaYfOG54.js → DiffWorkerPoolProvider-DSDTeZXk.js} +2 -2
- package/dist/client/assets/{PullRequestCodePanel-FsC6jwvA.js → PullRequestCodePanel-7YAkNwLW.js} +2 -2
- package/dist/client/assets/{ThemeEditorPanel-DHyAZtjN.js → ThemeEditorPanel-Bgrpa0cR.js} +2 -2
- package/dist/client/assets/{Virtualizer-Bt_R5UQD.js → Virtualizer-BzBcEfxL.js} +2 -2
- package/dist/client/assets/{WorkerPoolContext-DSayjMnB.js → WorkerPoolContext-8onOdaSo.js} +44 -44
- package/dist/client/assets/cmmdAuthRedirect-B_Ad6N4c.js +3 -0
- package/dist/client/assets/{cmmdForgeRuntimeListResource-DFLs7Ho_.js → cmmdForgeRuntimeListResource-Bl0ObO-g.js} +4 -4
- package/dist/client/assets/{currentForgeWorkspaceStore-B5FQv1gc.js → currentForgeWorkspaceStore-BqHfGv0o.js} +2 -2
- package/dist/client/assets/{dialog-mwxYKYq-.js → dialog-DMVibvkf.js} +2 -2
- package/dist/client/assets/index-zPBt45p3.js +301 -0
- package/dist/client/assets/{popover-BMHhFoom.js → popover-DZpHoNco.js} +2 -2
- package/dist/client/assets/{scroll-area-9mmf9iy-.js → scroll-area-dh4WduWB.js} +2 -2
- package/dist/client/assets/{sidebarV2CustomSnoozeDialog-vLvqIwRU.js → sidebarV2CustomSnoozeDialog-DsUlSvAq.js} +2 -2
- package/dist/client/assets/src-DpAPOFgC.js +3 -0
- package/dist/client/assets/{switch-DpGoyzXB.js → switch-Bt0PG_99.js} +2 -2
- package/dist/client/assets/{themePalette-BII_gGLK.js → themePalette-rKk-Jh5K.js} +2 -2
- package/dist/client/assets/{toggle-CiTk7ztA.js → toggle-CM3FO84q.js} +2 -2
- package/dist/client/assets/{toggle-group-B0GQb1vL.js → toggle-group-sUSKwOOz.js} +2 -2
- package/dist/client/assets/{tooltip-DlvXFVEM.js → tooltip-DHkQTarv.js} +2 -2
- package/dist/client/assets/{utils-BWD4ATf-.js → utils-B9FLzOgF.js} +2 -2
- package/dist/client/index.html +18 -18
- package/dist/forge-build.json +1 -1
- package/dist/{open-2-reBrpv.mjs → open-yHTUkd2Y.mjs} +3 -3
- package/package.json +1 -1
- package/dist/client/assets/cmmdAuthRedirect-B2FNK6pk.js +0 -3
- package/dist/client/assets/index-BFu1LcEj.js +0 -301
- package/dist/client/assets/src-DICOHE3E.js +0 -3
package/dist/bin.cjs
CHANGED
|
@@ -20670,6 +20670,43 @@ var FilesystemBrowseError = class extends require_Schema$1.TaggedErrorClass()("F
|
|
|
20670
20670
|
}
|
|
20671
20671
|
};
|
|
20672
20672
|
//#endregion
|
|
20673
|
+
//#region ../../packages/contracts/src/workspaceDirectory.ts
|
|
20674
|
+
const WORKSPACE_DIRECTORY_PATH_MAX_LENGTH = 512;
|
|
20675
|
+
const WorkspaceDirectoryEntryKind = require_Schema$1.Literals(["file", "directory"]);
|
|
20676
|
+
/**
|
|
20677
|
+
* One immediate child of a listed workspace directory.
|
|
20678
|
+
*
|
|
20679
|
+
* `hasChildren` is what lets the Files tree draw an expander only on
|
|
20680
|
+
* directories that open onto something, without listing the whole workspace
|
|
20681
|
+
* up front: a directory entry is one stat-sized readdir, not a recursive walk.
|
|
20682
|
+
*/
|
|
20683
|
+
const WorkspaceDirectoryEntry = require_Schema$1.Struct({
|
|
20684
|
+
name: TrimmedNonEmptyString,
|
|
20685
|
+
kind: WorkspaceDirectoryEntryKind,
|
|
20686
|
+
hasChildren: require_Schema$1.Boolean
|
|
20687
|
+
});
|
|
20688
|
+
const WorkspaceListDirectoryInput = require_Schema$1.Struct({
|
|
20689
|
+
cwd: TrimmedNonEmptyString,
|
|
20690
|
+
relativePath: TrimmedString.check(require_Schema$1.isMaxLength(WORKSPACE_DIRECTORY_PATH_MAX_LENGTH))
|
|
20691
|
+
});
|
|
20692
|
+
const WorkspaceListDirectoryResult = require_Schema$1.Struct({ entries: require_Schema$1.ArraySchema(WorkspaceDirectoryEntry) });
|
|
20693
|
+
const WorkspaceListDirectoryFailure = require_Schema$1.Literals([
|
|
20694
|
+
"workspace_root_invalid",
|
|
20695
|
+
"path_outside_workspace",
|
|
20696
|
+
"read_directory_failed"
|
|
20697
|
+
]);
|
|
20698
|
+
var WorkspaceListDirectoryError = class extends require_Schema$1.TaggedErrorClass()("WorkspaceListDirectoryError", {
|
|
20699
|
+
cwd: require_Schema$1.String,
|
|
20700
|
+
relativePath: require_Schema$1.String,
|
|
20701
|
+
failure: WorkspaceListDirectoryFailure,
|
|
20702
|
+
detail: require_Schema$1.String,
|
|
20703
|
+
cause: require_Schema$1.optional(require_Schema$1.Defect)
|
|
20704
|
+
}) {
|
|
20705
|
+
get message() {
|
|
20706
|
+
return this.detail;
|
|
20707
|
+
}
|
|
20708
|
+
};
|
|
20709
|
+
//#endregion
|
|
20673
20710
|
//#region ../../packages/contracts/src/terminal.ts
|
|
20674
20711
|
const DEFAULT_TERMINAL_ID = "default";
|
|
20675
20712
|
const TrimmedNonEmptyStringSchema$3 = TrimmedNonEmptyString;
|
|
@@ -26292,6 +26329,7 @@ const WS_METHODS = {
|
|
|
26292
26329
|
projectsWriteFile: "projects.writeFile",
|
|
26293
26330
|
projectCheckoutDeletionPreview: "projectCheckoutDeletion.preview",
|
|
26294
26331
|
projectCheckoutDeletionExecute: "projectCheckoutDeletion.execute",
|
|
26332
|
+
workspaceListDirectory: "workspace.listDirectory",
|
|
26295
26333
|
workspaceReadFile: "workspace.readFile",
|
|
26296
26334
|
workspaceBeginWriteFile: "workspace.beginWriteFile",
|
|
26297
26335
|
workspaceWriteFileChunk: "workspace.writeFileChunk",
|
|
@@ -26603,6 +26641,17 @@ const WsWorkspaceCancelWriteFileRpc = make$29(WS_METHODS.workspaceCancelWriteFil
|
|
|
26603
26641
|
success: BulkTransferCancelResult,
|
|
26604
26642
|
error: BulkTransferError
|
|
26605
26643
|
});
|
|
26644
|
+
/**
|
|
26645
|
+
* One workspace directory's immediate children, for the right panel's Files
|
|
26646
|
+
* tree. Read-scoped and confined to the workspace root on the server; the tree
|
|
26647
|
+
* expands one directory at a time through this method rather than listing the
|
|
26648
|
+
* whole workspace up front.
|
|
26649
|
+
*/
|
|
26650
|
+
const WsWorkspaceListDirectoryRpc = make$29(WS_METHODS.workspaceListDirectory, {
|
|
26651
|
+
payload: WorkspaceListDirectoryInput,
|
|
26652
|
+
success: WorkspaceListDirectoryResult,
|
|
26653
|
+
error: WorkspaceListDirectoryError
|
|
26654
|
+
});
|
|
26606
26655
|
const WsShellOpenInEditorRpc = make$29(WS_METHODS.shellOpenInEditor, {
|
|
26607
26656
|
payload: OpenInEditorInput,
|
|
26608
26657
|
error: OpenError$1
|
|
@@ -27026,7 +27075,7 @@ const WsRpcGroup = make$28(WsServerGetConfigRpc, WsServerRefreshProvidersRpc, Ws
|
|
|
27026
27075
|
payload: UsageSummaryInput,
|
|
27027
27076
|
success: UsageSummary,
|
|
27028
27077
|
error: UsageReadError
|
|
27029
|
-
}), WsPullRequestsListRpc, WsPullRequestsListStatsRpc, WsPullRequestsDetailRpc, WsPullRequestsActivityRpc, WsPullRequestsThreadCommentsRpc, WsPullRequestsDiffFileContentsRpc, WsPullRequestsRunActionRpc, WsPullRequestsUpdateRpc, WsPullRequestsCommentRpc, WsPullRequestsUpdateCommentRpc, WsPullRequestsSubmitReviewRpc, WsPullRequestsReplyToThreadRpc, WsPullRequestsSetThreadResolutionRpc, WsPullRequestsSetReactionRpc, WsPullRequestsInvalidateRpc, WsPullRequestsReviewerCandidatesRpc, WsPullRequestsRequestReviewersRpc, WsProjectsSearchContentsRpc, WsProjectsSearchEntriesRpc, WsProjectsWriteFileRpc, WsProjectCheckoutDeletionPreviewRpc, WsProjectCheckoutDeletionExecuteRpc, WsWorkspaceReadFileRpc, WsWorkspaceBeginWriteFileRpc, WsWorkspaceWriteFileChunkRpc, WsWorkspaceCommitWriteFileRpc, WsWorkspaceCancelWriteFileRpc, WsShellOpenInEditorRpc, WsSubscribeGitStatusRpc, WsGitPullRpc, WsGitRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsGitListBranchesRpc, WsVcsListRefsRpc, WsVcsRefreshStatusRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsGitCreateWorktreeRpc, WsGitRemoveWorktreeRpc, WsGitCreateBranchRpc, WsGitCheckoutRpc, WsGitInitRpc, WsFilesystemBrowseRpc, WsProjectsReadFileRpc, WsReviewGetDiffPreviewRpc, WsCloudListRuntimesRpc, WsTerminalOpenRpc, WsTerminalAttachRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalSignalRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsBrowserOpenSessionRpc, WsBrowserListSessionsRpc, WsBrowserCloseSessionRpc, WsBrowserGetSessionRpc, WsBrowserCommandRpc, WsBrowserClearBrowsingDataRpc, WsBrowserAttachDisplayRpc, WsBrowserAddDisplayIceCandidateRpc, WsComputerInputRpc, WsDevTunnelRegisterRpc, WsDevTunnelUnregisterRpc, WsDevTunnelListRpc, WsThreadDevRuntimeGetRpc, WsThreadDevRuntimeAllocatePortRpc, WsThreadDevRuntimeReleaseRpc, WsWorkspaceEnvironmentPreflightRpc, WsWorkspaceEnsureScratchRpc, WsSubscribeTerminalEventsRpc, WsSubscribeTerminalMetadataRpc, WsProjectsListEntriesRpc, WsServerDiscoverSourceControlRpc, WsServerReportClientActivityRpc, WsSubscribeBrowserEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsSubscribeWorkspaceReadinessRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationStreamTurnDiffRpc, WsOrchestrationStreamFullThreadDiffRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationGetArchivedShellSnapshotRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, make$29(WS_METHODS.assetsCreateUrl, {
|
|
27078
|
+
}), WsPullRequestsListRpc, WsPullRequestsListStatsRpc, WsPullRequestsDetailRpc, WsPullRequestsActivityRpc, WsPullRequestsThreadCommentsRpc, WsPullRequestsDiffFileContentsRpc, WsPullRequestsRunActionRpc, WsPullRequestsUpdateRpc, WsPullRequestsCommentRpc, WsPullRequestsUpdateCommentRpc, WsPullRequestsSubmitReviewRpc, WsPullRequestsReplyToThreadRpc, WsPullRequestsSetThreadResolutionRpc, WsPullRequestsSetReactionRpc, WsPullRequestsInvalidateRpc, WsPullRequestsReviewerCandidatesRpc, WsPullRequestsRequestReviewersRpc, WsProjectsSearchContentsRpc, WsProjectsSearchEntriesRpc, WsProjectsWriteFileRpc, WsProjectCheckoutDeletionPreviewRpc, WsProjectCheckoutDeletionExecuteRpc, WsWorkspaceReadFileRpc, WsWorkspaceListDirectoryRpc, WsWorkspaceBeginWriteFileRpc, WsWorkspaceWriteFileChunkRpc, WsWorkspaceCommitWriteFileRpc, WsWorkspaceCancelWriteFileRpc, WsShellOpenInEditorRpc, WsSubscribeGitStatusRpc, WsGitPullRpc, WsGitRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsGitListBranchesRpc, WsVcsListRefsRpc, WsVcsRefreshStatusRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsGitCreateWorktreeRpc, WsGitRemoveWorktreeRpc, WsGitCreateBranchRpc, WsGitCheckoutRpc, WsGitInitRpc, WsFilesystemBrowseRpc, WsProjectsReadFileRpc, WsReviewGetDiffPreviewRpc, WsCloudListRuntimesRpc, WsTerminalOpenRpc, WsTerminalAttachRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalSignalRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsBrowserOpenSessionRpc, WsBrowserListSessionsRpc, WsBrowserCloseSessionRpc, WsBrowserGetSessionRpc, WsBrowserCommandRpc, WsBrowserClearBrowsingDataRpc, WsBrowserAttachDisplayRpc, WsBrowserAddDisplayIceCandidateRpc, WsComputerInputRpc, WsDevTunnelRegisterRpc, WsDevTunnelUnregisterRpc, WsDevTunnelListRpc, WsThreadDevRuntimeGetRpc, WsThreadDevRuntimeAllocatePortRpc, WsThreadDevRuntimeReleaseRpc, WsWorkspaceEnvironmentPreflightRpc, WsWorkspaceEnsureScratchRpc, WsSubscribeTerminalEventsRpc, WsSubscribeTerminalMetadataRpc, WsProjectsListEntriesRpc, WsServerDiscoverSourceControlRpc, WsServerReportClientActivityRpc, WsSubscribeBrowserEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsSubscribeWorkspaceReadinessRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationStreamTurnDiffRpc, WsOrchestrationStreamFullThreadDiffRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationGetArchivedShellSnapshotRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, make$29(WS_METHODS.assetsCreateUrl, {
|
|
27030
27079
|
payload: AssetsRpcSchemas.createUrl.input,
|
|
27031
27080
|
success: AssetsRpcSchemas.createUrl.output,
|
|
27032
27081
|
error: AssetAccessError
|
|
@@ -31776,6 +31825,11 @@ const RELAY_METHOD_POLICY_BASES = [
|
|
|
31776
31825
|
requiredScope: "workspace.read",
|
|
31777
31826
|
deliveryClass: "read"
|
|
31778
31827
|
},
|
|
31828
|
+
{
|
|
31829
|
+
method: WS_METHODS.workspaceListDirectory,
|
|
31830
|
+
requiredScope: "workspace.read",
|
|
31831
|
+
deliveryClass: "read"
|
|
31832
|
+
},
|
|
31779
31833
|
{
|
|
31780
31834
|
method: WS_METHODS.workspaceReadFile,
|
|
31781
31835
|
requiredScope: "workspace.read",
|
|
@@ -66353,7 +66407,7 @@ function normalizeNumberish(value) {
|
|
|
66353
66407
|
}
|
|
66354
66408
|
//#endregion
|
|
66355
66409
|
//#region package.json
|
|
66356
|
-
var version$1 = "0.13.
|
|
66410
|
+
var version$1 = "0.13.132";
|
|
66357
66411
|
//#endregion
|
|
66358
66412
|
//#region src/sentry.ts
|
|
66359
66413
|
const SERVER_APP_NAME = "forge-server";
|
|
@@ -102706,6 +102760,22 @@ var WorkspaceFileSystem = class extends require_Schema$1.Service()("forge/worksp
|
|
|
102706
102760
|
//#region src/workspace/Services/WorkspaceBulkTransfer.ts
|
|
102707
102761
|
var WorkspaceBulkTransfer = class extends require_Schema$1.Service()("forge/workspace/Services/WorkspaceBulkTransfer") {};
|
|
102708
102762
|
//#endregion
|
|
102763
|
+
//#region src/workspace/Services/WorkspaceDirectoryListing.ts
|
|
102764
|
+
/**
|
|
102765
|
+
* WorkspaceDirectoryListing - Effect service contract for one directory's
|
|
102766
|
+
* immediate children.
|
|
102767
|
+
*
|
|
102768
|
+
* Owns workspace-root-confined directory listings for the Files tree: the
|
|
102769
|
+
* caller names a workspace root (the thread's checkout) and a root-relative
|
|
102770
|
+
* directory, and gets that directory's children back, one readdir deep.
|
|
102771
|
+
*
|
|
102772
|
+
* @module WorkspaceDirectoryListing
|
|
102773
|
+
*/
|
|
102774
|
+
/**
|
|
102775
|
+
* WorkspaceDirectoryListing - Service tag for workspace directory listings.
|
|
102776
|
+
*/
|
|
102777
|
+
var WorkspaceDirectoryListing = class extends require_Schema$1.Service()("forge/workspace/Services/WorkspaceDirectoryListing") {};
|
|
102778
|
+
//#endregion
|
|
102709
102779
|
//#region src/workspace/Services/WorkspaceReadinessState.ts
|
|
102710
102780
|
var WorkspaceReadinessState = class extends require_Schema$1.Service()("forge/workspace/Services/WorkspaceReadinessState") {};
|
|
102711
102781
|
//#endregion
|
|
@@ -108119,6 +108189,7 @@ const makeWsRpcLayer = (currentSessionId, currentUserId) => WsRpcGroup.toLayer(r
|
|
|
108119
108189
|
const discoverSourceControl = yield* makeCachedSourceControlDiscovery;
|
|
108120
108190
|
const workspaceFileSystem = yield* WorkspaceFileSystem;
|
|
108121
108191
|
const workspaceBulkTransfer = yield* WorkspaceBulkTransfer;
|
|
108192
|
+
const workspaceDirectoryListing = yield* WorkspaceDirectoryListing;
|
|
108122
108193
|
const projectCheckoutDeletion = yield* require_Schema$1.serviceOption(ProjectCheckoutDeletion);
|
|
108123
108194
|
const workspaceReadinessState = yield* WorkspaceReadinessState;
|
|
108124
108195
|
const projectSetupScriptRunner = yield* ProjectSetupScriptRunner;
|
|
@@ -108468,6 +108539,7 @@ const makeWsRpcLayer = (currentSessionId, currentUserId) => WsRpcGroup.toLayer(r
|
|
|
108468
108539
|
blockers: ["deletion_authority_unavailable"]
|
|
108469
108540
|
}), { "rpc.aggregate": "workspace" }),
|
|
108470
108541
|
[WS_METHODS.workspaceReadFile]: (input) => observeRpcStream(WS_METHODS.workspaceReadFile, workspaceBulkTransfer.readFile(input), { "rpc.aggregate": "workspace" }),
|
|
108542
|
+
[WS_METHODS.workspaceListDirectory]: (input) => observeRpcEffect(WS_METHODS.workspaceListDirectory, workspaceDirectoryListing.list(input), { "rpc.aggregate": "workspace" }),
|
|
108471
108543
|
[WS_METHODS.workspaceBeginWriteFile]: (input) => observeRpcEffect(WS_METHODS.workspaceBeginWriteFile, workspaceBulkTransfer.beginWrite(input), { "rpc.aggregate": "workspace" }),
|
|
108472
108544
|
[WS_METHODS.workspaceWriteFileChunk]: (input) => observeRpcEffect(WS_METHODS.workspaceWriteFileChunk, workspaceBulkTransfer.writeChunk(input), { "rpc.aggregate": "workspace" }),
|
|
108473
108545
|
[WS_METHODS.workspaceCommitWriteFile]: (input) => observeRpcEffect(WS_METHODS.workspaceCommitWriteFile, workspaceBulkTransfer.commitWrite(input), { "rpc.aggregate": "workspace" }),
|
|
@@ -298999,6 +299071,106 @@ const makeWorkspaceBulkTransfer = (options = {}) => require_Schema$1.gen(functio
|
|
|
298999
299071
|
});
|
|
299000
299072
|
const WorkspaceBulkTransferLive = require_Schema$1.effect(WorkspaceBulkTransfer, makeWorkspaceBulkTransfer());
|
|
299001
299073
|
//#endregion
|
|
299074
|
+
//#region src/workspace/Layers/WorkspaceDirectoryListing.ts
|
|
299075
|
+
function isPathWithin(path, root, candidate) {
|
|
299076
|
+
const relative = path.relative(root, candidate);
|
|
299077
|
+
return relative.length === 0 || !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
299078
|
+
}
|
|
299079
|
+
/**
|
|
299080
|
+
* Directories sort before files so the tree reads like every other file tree;
|
|
299081
|
+
* names compare case-insensitively, then by raw name so stable order survives
|
|
299082
|
+
* a platform that folds case differently.
|
|
299083
|
+
*/
|
|
299084
|
+
function compareEntries(left, right) {
|
|
299085
|
+
if (left.kind !== right.kind) return left.kind === "directory" ? -1 : 1;
|
|
299086
|
+
const byName = left.name.localeCompare(right.name, void 0, { sensitivity: "accent" });
|
|
299087
|
+
return byName !== 0 ? byName : left.name < right.name ? -1 : left.name > right.name ? 1 : 0;
|
|
299088
|
+
}
|
|
299089
|
+
const makeWorkspaceDirectoryListing = require_Schema$1.gen(function* () {
|
|
299090
|
+
const fileSystem = yield* require_Path.FileSystem;
|
|
299091
|
+
const path = yield* require_Path.Path;
|
|
299092
|
+
const workspacePaths = yield* WorkspacePaths;
|
|
299093
|
+
return { list: require_Schema$1.fn("WorkspaceDirectoryListing.list")(function* (input) {
|
|
299094
|
+
const workspaceRoot = yield* workspacePaths.normalizeWorkspaceRoot(input.cwd).pipe(require_Schema$1.mapError(() => new WorkspaceListDirectoryError({
|
|
299095
|
+
cwd: input.cwd,
|
|
299096
|
+
relativePath: input.relativePath,
|
|
299097
|
+
failure: "workspace_root_invalid",
|
|
299098
|
+
detail: `Workspace root is not a usable directory: ${input.cwd}`
|
|
299099
|
+
})));
|
|
299100
|
+
const trimmed = input.relativePath.trim();
|
|
299101
|
+
if (path.isAbsolute(trimmed)) return yield* new WorkspaceListDirectoryError({
|
|
299102
|
+
cwd: input.cwd,
|
|
299103
|
+
relativePath: input.relativePath,
|
|
299104
|
+
failure: "path_outside_workspace",
|
|
299105
|
+
detail: "Directory listings must use workspace-relative paths."
|
|
299106
|
+
});
|
|
299107
|
+
const resolved = trimmed.length === 0 ? {
|
|
299108
|
+
absolutePath: workspaceRoot,
|
|
299109
|
+
relativePath: ""
|
|
299110
|
+
} : yield* workspacePaths.resolveRelativePathWithinRoot({
|
|
299111
|
+
workspaceRoot,
|
|
299112
|
+
relativePath: trimmed
|
|
299113
|
+
}).pipe(require_Schema$1.mapError(() => new WorkspaceListDirectoryError({
|
|
299114
|
+
cwd: input.cwd,
|
|
299115
|
+
relativePath: input.relativePath,
|
|
299116
|
+
failure: "path_outside_workspace",
|
|
299117
|
+
detail: `Directory is outside the workspace: ${input.relativePath}`
|
|
299118
|
+
})));
|
|
299119
|
+
const canonicalRoot = yield* fileSystem.realPath(workspaceRoot).pipe(require_Schema$1.orDie);
|
|
299120
|
+
const targetRealPath = yield* fileSystem.realPath(resolved.absolutePath).pipe(require_Schema$1.catch_(() => require_Schema$1.succeed(null)));
|
|
299121
|
+
if (targetRealPath === null) return yield* new WorkspaceListDirectoryError({
|
|
299122
|
+
cwd: input.cwd,
|
|
299123
|
+
relativePath: input.relativePath,
|
|
299124
|
+
failure: "read_directory_failed",
|
|
299125
|
+
detail: `Directory does not exist: ${input.relativePath || "."}`
|
|
299126
|
+
});
|
|
299127
|
+
if (!isPathWithin(path, canonicalRoot, targetRealPath)) return yield* new WorkspaceListDirectoryError({
|
|
299128
|
+
cwd: input.cwd,
|
|
299129
|
+
relativePath: input.relativePath,
|
|
299130
|
+
failure: "path_outside_workspace",
|
|
299131
|
+
detail: `Directory does not resolve inside the workspace: ${input.relativePath}`
|
|
299132
|
+
});
|
|
299133
|
+
const targetStat = yield* fileSystem.stat(targetRealPath).pipe(require_Schema$1.option);
|
|
299134
|
+
if (targetStat._tag === "None" || targetStat.value.type !== "Directory") return yield* new WorkspaceListDirectoryError({
|
|
299135
|
+
cwd: input.cwd,
|
|
299136
|
+
relativePath: input.relativePath,
|
|
299137
|
+
failure: "read_directory_failed",
|
|
299138
|
+
detail: `Not a directory: ${input.relativePath}`
|
|
299139
|
+
});
|
|
299140
|
+
const names = yield* fileSystem.readDirectory(targetRealPath).pipe(require_Schema$1.mapError((cause) => new WorkspaceListDirectoryError({
|
|
299141
|
+
cwd: input.cwd,
|
|
299142
|
+
relativePath: input.relativePath,
|
|
299143
|
+
failure: "read_directory_failed",
|
|
299144
|
+
detail: `Could not read directory: ${input.relativePath}`,
|
|
299145
|
+
cause
|
|
299146
|
+
})));
|
|
299147
|
+
return { entries: (yield* require_Schema$1.forEach(names, (name) => require_Schema$1.gen(function* () {
|
|
299148
|
+
const entryPath = path.join(targetRealPath, name);
|
|
299149
|
+
if ((yield* fileSystem.readLink(entryPath).pipe(require_Schema$1.option))._tag === "Some") return {
|
|
299150
|
+
name,
|
|
299151
|
+
kind: "file",
|
|
299152
|
+
hasChildren: false
|
|
299153
|
+
};
|
|
299154
|
+
const stat = yield* fileSystem.stat(entryPath).pipe(require_Schema$1.option);
|
|
299155
|
+
if (stat._tag === "None") return void 0;
|
|
299156
|
+
if (stat.value.type === "Directory") {
|
|
299157
|
+
const children = yield* fileSystem.readDirectory(entryPath).pipe(require_Schema$1.option);
|
|
299158
|
+
return {
|
|
299159
|
+
name,
|
|
299160
|
+
kind: "directory",
|
|
299161
|
+
hasChildren: children._tag === "Some" && children.value.length > 0
|
|
299162
|
+
};
|
|
299163
|
+
}
|
|
299164
|
+
return {
|
|
299165
|
+
name,
|
|
299166
|
+
kind: "file",
|
|
299167
|
+
hasChildren: false
|
|
299168
|
+
};
|
|
299169
|
+
}), { concurrency: 16 })).filter((entry) => entry !== void 0).toSorted(compareEntries) };
|
|
299170
|
+
}) };
|
|
299171
|
+
});
|
|
299172
|
+
const WorkspaceDirectoryListingLive = require_Schema$1.effect(WorkspaceDirectoryListing, makeWorkspaceDirectoryListing);
|
|
299173
|
+
//#endregion
|
|
299002
299174
|
//#region src/workspace/Layers/WorkspacePaths.ts
|
|
299003
299175
|
function toPosixRelativePath(input) {
|
|
299004
299176
|
return input.replaceAll("\\", "/");
|
|
@@ -300611,7 +300783,7 @@ function resolveBuildCommitFromEnv(env) {
|
|
|
300611
300783
|
* environment descriptor down instead of reporting an honest "unknown".
|
|
300612
300784
|
*/
|
|
300613
300785
|
function readBakedBuildCommit() {
|
|
300614
|
-
return "
|
|
300786
|
+
return "b5d9623e21d1d5b372b4133d72c12136356d744e";
|
|
300615
300787
|
}
|
|
300616
300788
|
async function resolveServerBuildCommit(input) {
|
|
300617
300789
|
if (isFullCommitSha(input.baked)) return input.baked;
|
|
@@ -325264,7 +325436,7 @@ const ProjectLeadSchedulerRuntimeLayerLive = makeProjectLeadSchedulerRuntimeLive
|
|
|
325264
325436
|
const GitManagerLayerLive = GitManagerLive.pipe(require_Schema$1.provideMerge(ProjectSetupScriptRunnerLive), require_Schema$1.provideMerge(GitCoreLive), require_Schema$1.provideMerge(GitHubCliLive), require_Schema$1.provideMerge(RoutingTextGenerationLive.pipe(require_Schema$1.provide$1(TextGenerationUsageLive.pipe(require_Schema$1.provide$1(RuntimeReplicationOutboxLive), require_Schema$1.provide$1(TextGenerationSessionRepositoryLive))))));
|
|
325265
325437
|
const GitLayerLive = require_Schema$1.empty$1.pipe(require_Schema$1.provideMerge(GitManagerLayerLive), require_Schema$1.provideMerge(GitStatusBroadcasterLive.pipe(require_Schema$1.provide$1(GitManagerLayerLive))), require_Schema$1.provideMerge(GitCoreLive));
|
|
325266
325438
|
const TerminalLayerLive = TerminalManagerLive.pipe(require_Schema$1.provide$1(PtyAdapterLive));
|
|
325267
|
-
const WorkspaceLayerLive = require_Schema$1.mergeAll(WorkspacePathsLive, ProjectCheckoutDeletionLive.pipe(require_Schema$1.provide$1(GitCoreLive), require_Schema$1.provide$1(ProjectionProjectRepositoryLive)), WorkspaceEntriesLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive)), WorkspaceFileSystemLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive), require_Schema$1.provide$1(WorkspaceEntriesLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive)))), WorkspaceBulkTransferLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive), require_Schema$1.provide$1(WorkspaceEntriesLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive)))));
|
|
325439
|
+
const WorkspaceLayerLive = require_Schema$1.mergeAll(WorkspacePathsLive, ProjectCheckoutDeletionLive.pipe(require_Schema$1.provide$1(GitCoreLive), require_Schema$1.provide$1(ProjectionProjectRepositoryLive)), WorkspaceEntriesLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive)), WorkspaceFileSystemLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive), require_Schema$1.provide$1(WorkspaceEntriesLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive)))), WorkspaceBulkTransferLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive), require_Schema$1.provide$1(WorkspaceEntriesLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive)))), WorkspaceDirectoryListingLive.pipe(require_Schema$1.provide$1(WorkspacePathsLive)));
|
|
325268
325440
|
const AuthLayerLive = ServerAuthLive.pipe(require_Schema$1.provideMerge(PersistenceLayerLive), require_Schema$1.provide$1(ServerSecretStoreLayerLive));
|
|
325269
325441
|
const MiscRuntimeLayerLive = require_Schema$1.mergeAll(AnalyticsServiceLayerLive, OpenLive, ServerLifecycleEventsLive, layer$4);
|
|
325270
325442
|
const RuntimeDependenciesWithoutPullRequestsLive = ReactorLayerLive.pipe(require_Schema$1.provideMerge(CheckpointingLayerLive), require_Schema$1.provideMerge(GitLayerLive), require_Schema$1.provideMerge(OrchestrationLayerLive), require_Schema$1.provideMerge(ProviderLayerLive), require_Schema$1.provideMerge(TerminalLayerLive), require_Schema$1.provideMerge(AgentBrowserManagerLive), require_Schema$1.provideMerge(require_Schema$1.mergeAll(ThreadDevRuntimeLive, DevTunnelLive.pipe(require_Schema$1.provide$1(ThreadDevRuntimeLive)))), require_Schema$1.provideMerge(PersistenceLayerLive), require_Schema$1.provideMerge(KeybindingsLive), require_Schema$1.provideMerge(ProviderRegistryLive), require_Schema$1.provideMerge(require_Schema$1.mergeAll(ServerSettingsLive, UsageServiceLive.pipe(require_Schema$1.provide$1(ServerSettingsLive), require_Schema$1.provide$1(UsageSessionLookupLive), require_Schema$1.provide$1(UsageRecordedSourceLive.pipe(require_Schema$1.provide$1(OrchestrationLayerLive), require_Schema$1.provide$1(RuntimeReplicationOutboxLive), require_Schema$1.provide$1(ProviderSessionRuntimeRepositoryLive), require_Schema$1.provide$1(TextGenerationSessionRepositoryLive)))))), require_Schema$1.provideMerge(WorkspaceLayerLive), require_Schema$1.provideMerge(WorkspaceReadinessStateLive), require_Schema$1.provideMerge(ProjectFaviconResolverLive), require_Schema$1.provideMerge(RepositoryIdentityResolverLive), require_Schema$1.provideMerge(ServerEnvironmentLive), require_Schema$1.provideMerge(AuthLayerLive), require_Schema$1.provideMerge(ServerSecretStoreLayerLive), require_Schema$1.provideMerge(require_Schema$1.mergeAll(CloudRedisCoordinationLive, CloudStateSyncLive.pipe(require_Schema$1.provide$1(PersistenceLayerLive)))), require_Schema$1.provideMerge(MiscRuntimeLayerLive));
|