t3code-cli 0.14.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -1
- package/dist/application.d.ts +2 -2
- package/dist/application.js +1 -1
- package/dist/auth.d.ts +1 -1
- package/dist/auth.js +1 -1
- package/dist/bin.js +1305 -424
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +1 -1
- package/dist/client-runtime/authorization.d.ts +1 -1
- package/dist/client-runtime/authorization.js +1 -1
- package/dist/client-runtime/connection.d.ts +1 -1
- package/dist/client-runtime/connection.js +1 -1
- package/dist/client-runtime/environment.d.ts +7 -1
- package/dist/client-runtime/environment.js +1 -1
- package/dist/client-runtime/errors.js +1 -1
- package/dist/client-runtime/operations/projects.d.ts +2 -2
- package/dist/client-runtime/operations/projects.js +2 -2
- package/dist/client-runtime/operations.d.ts +2 -2
- package/dist/client-runtime/operations.js +2 -2
- package/dist/client-runtime/platform.d.ts +1 -1
- package/dist/client-runtime/platform.js +1 -1
- package/dist/client-runtime/relay.d.ts +13 -2
- package/dist/client-runtime/relay.js +12 -2
- package/dist/client-runtime/rpc.d.ts +2 -2
- package/dist/client-runtime/rpc.js +2 -2
- package/dist/client-runtime/state/assets.d.ts +17 -11
- package/dist/client-runtime/state/assets.js +1 -1
- package/dist/client-runtime/state/auth.d.ts +1 -1
- package/dist/client-runtime/state/auth.js +1 -1
- package/dist/client-runtime/state/connections.js +1 -1
- package/dist/client-runtime/state/entities.d.ts +1 -1
- package/dist/client-runtime/state/entities.js +1 -1
- package/dist/client-runtime/state/filesystem.d.ts +1 -1
- package/dist/client-runtime/state/filesystem.js +1 -1
- package/dist/client-runtime/state/git.d.ts +6 -5
- package/dist/client-runtime/state/git.js +1 -1
- package/dist/client-runtime/state/models.d.ts +1 -1
- package/dist/client-runtime/state/models.js +1 -1
- package/dist/client-runtime/state/orchestration.d.ts +42 -2
- package/dist/client-runtime/state/orchestration.js +13 -1
- package/dist/client-runtime/state/presentation.d.ts +15 -3
- package/dist/client-runtime/state/presentation.js +1 -1
- package/dist/client-runtime/state/preview.d.ts +58 -48
- package/dist/client-runtime/state/preview.js +3 -2
- package/dist/client-runtime/state/project-grouping.d.ts +26 -2
- package/dist/client-runtime/state/project-grouping.js +83 -3
- package/dist/client-runtime/state/projects.d.ts +24 -18
- package/dist/client-runtime/state/projects.js +1 -1
- package/dist/client-runtime/state/pull-requests.d.ts +478 -0
- package/dist/client-runtime/state/pull-requests.js +172 -0
- package/dist/client-runtime/state/relay.d.ts +1 -1
- package/dist/client-runtime/state/relay.js +1 -1
- package/dist/client-runtime/state/review.d.ts +16 -1
- package/dist/client-runtime/state/review.js +27 -6
- package/dist/client-runtime/state/runtime.d.ts +2 -2
- package/dist/client-runtime/state/runtime.js +2 -2
- package/dist/client-runtime/state/server.d.ts +311 -172
- package/dist/client-runtime/state/server.js +192 -16
- package/dist/client-runtime/state/session.d.ts +77 -7
- package/dist/client-runtime/state/session.js +32 -3
- package/dist/client-runtime/state/shell.d.ts +47 -7
- package/dist/client-runtime/state/shell.js +1 -1
- package/dist/client-runtime/state/source-control.d.ts +2 -2
- package/dist/client-runtime/state/source-control.js +1 -1
- package/dist/client-runtime/state/subagentRuntime.d.ts +145 -0
- package/dist/client-runtime/state/subagentRuntime.js +521 -0
- package/dist/client-runtime/state/terminal.d.ts +17 -17
- package/dist/client-runtime/state/terminal.js +1 -1
- package/dist/client-runtime/state/thread-search.d.ts +23 -0
- package/dist/client-runtime/state/thread-search.js +38 -0
- package/dist/client-runtime/state/thread-settled.d.ts +32 -4
- package/dist/client-runtime/state/thread-settled.js +2 -157
- package/dist/client-runtime/state/thread-sort.d.ts +59 -2
- package/dist/client-runtime/state/thread-sort.js +128 -2
- package/dist/client-runtime/state/threads.d.ts +115 -3
- package/dist/client-runtime/state/threads.js +309 -28
- package/dist/client-runtime/state/vcs.d.ts +14 -14
- package/dist/client-runtime/state/vcs.js +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/connection.d.ts +1 -1
- package/dist/connection.js +1 -1
- package/dist/contracts.d.ts +1 -1
- package/dist/contracts.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.js +1 -1
- package/dist/orchestration.d.ts +155 -6
- package/dist/orchestration.js +2 -2
- package/dist/preview.d.ts +1 -1
- package/dist/preview.js +1 -1
- package/dist/rpc.d.ts +887 -360
- package/dist/rpc.js +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +1 -1
- package/dist/shared/DrainableWorker.js +1 -1
- package/dist/shared/KeyedCoalescingWorker.js +1 -1
- package/dist/shared/Net.d.ts +6 -0
- package/dist/shared/Net.js +2 -1
- package/dist/shared/advertisedEndpoint.d.ts +1 -1
- package/dist/shared/advertisedEndpoint.js +1 -1
- package/dist/shared/agentAwareness.d.ts +1 -1
- package/dist/shared/backgroundActivitySettings.d.ts +1 -1
- package/dist/shared/composerInlineTokens.js +1 -1
- package/dist/shared/connectAuth.d.ts +23 -4
- package/dist/shared/connectAuth.js +40 -7
- package/dist/shared/devHome.js +1 -1
- package/dist/shared/dpop.js +1 -1
- package/dist/shared/git.d.ts +1 -1
- package/dist/shared/httpObservability.js +1 -1
- package/dist/shared/httpReadiness.js +1 -1
- package/dist/shared/keybindings.d.ts +2 -2
- package/dist/shared/keybindings.js +15 -1
- package/dist/shared/model.d.ts +1 -1
- package/dist/shared/oauthScope.js +1 -1
- package/dist/shared/observability.d.ts +8 -1
- package/dist/shared/observability.js +49 -5
- package/dist/shared/path.js +1 -1
- package/dist/shared/preview.js +1 -1
- package/dist/shared/previewViewport.d.ts +1 -1
- package/dist/shared/previewViewport.js +1 -1
- package/dist/shared/projectFavicon.d.ts +2 -1
- package/dist/shared/projectFavicon.js +13 -1
- package/dist/shared/projectScripts.d.ts +1 -1
- package/dist/shared/relayAuth.js +1 -1
- package/dist/shared/relayClient.d.ts +1 -1
- package/dist/shared/relayClient.js +1 -1
- package/dist/shared/relayJwt.js +1 -1
- package/dist/shared/relayTracing.js +1 -1
- package/dist/shared/relayUrl.js +1 -1
- package/dist/shared/remote.js +1 -1
- package/dist/shared/schemaYaml.js +3 -3
- package/dist/shared/semver.js +1 -1
- package/dist/shared/serverSettings.d.ts +1 -1
- package/dist/shared/serverSettings.js +1 -1
- package/dist/shared/shell.d.ts +6 -1
- package/dist/shared/shell.js +42 -4
- package/dist/shared/sourceControl.d.ts +1 -1
- package/dist/shared/t3ProjectFile.d.ts +9 -1
- package/dist/shared/t3ProjectFile.js +12 -2
- package/dist/shared/terminalLabels.d.ts +1 -1
- package/dist/shared/threadEnvMode.d.ts +29 -0
- package/dist/shared/threadEnvMode.js +24 -0
- package/dist/shared/toolActivity.d.ts +1 -1
- package/dist/shared/usageFormat.d.ts +34 -0
- package/dist/shared/usageFormat.js +176 -0
- package/dist/shared/usageMerge.d.ts +78 -0
- package/dist/shared/usageMerge.js +241 -0
- package/dist/shared.d.ts +8268 -1372
- package/dist/shared.js +22185 -19774
- package/dist/t3tools.d.ts +2 -2
- package/dist/t3tools.js +2 -2
- package/package.json +5 -5
- package/src/application/error.ts +2 -2
- package/src/application/index.ts +2 -0
- package/src/application/service.ts +43 -5
- package/src/application/thread-commands.ts +78 -0
- package/src/application/threads.ts +156 -17
- package/src/cli/app.ts +4 -0
- package/src/cli/ask-lifecycle.ts +331 -0
- package/src/cli/ask.ts +390 -0
- package/src/cli/error.ts +70 -0
- package/src/cli/format/thread.ts +49 -7
- package/src/cli/search.ts +48 -0
- package/src/cli/thread.ts +12 -0
- package/src/cli/threads/messages.ts +33 -3
- package/src/cli/threads/pin.ts +46 -0
- package/src/cli/threads/send.ts +5 -1
- package/src/cli/threads/settle.ts +46 -0
- package/src/cli/threads/snooze.ts +117 -0
- package/src/cli/threads/start.ts +6 -1
- package/src/cli/threads/unpin.ts +48 -0
- package/src/cli/threads/unsettle.ts +48 -0
- package/src/cli/threads/unsnooze.ts +48 -0
- package/src/config/persist/schema.ts +1 -1
- package/src/connection/prepared.ts +12 -2
- package/src/orchestration/error.ts +10 -0
- package/src/orchestration/index.ts +1 -0
- package/src/orchestration/layer.ts +78 -0
- package/src/orchestration/service.ts +16 -3
- package/src/rpc/error.ts +2 -0
- package/src/rpc/operation.ts +2 -0
- package/src/rpc/ws-group.ts +3 -0
- package/src/runtime/layer.ts +9 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { XS as ORCHESTRATION_WS_METHODS, vr as createEnvironmentRpcQueryAtomFamily } from "../../shared.js";
|
|
2
2
|
//#region upstream-t3code/packages/client-runtime/src/state/orchestration.ts
|
|
3
3
|
function createOrchestrationEnvironmentAtoms(runtime) {
|
|
4
4
|
return {
|
|
@@ -6,10 +6,22 @@ function createOrchestrationEnvironmentAtoms(runtime) {
|
|
|
6
6
|
label: "environment-data:orchestration:turn-diff",
|
|
7
7
|
tag: ORCHESTRATION_WS_METHODS.getTurnDiff
|
|
8
8
|
}),
|
|
9
|
+
workflowScript: createEnvironmentRpcQueryAtomFamily(runtime, {
|
|
10
|
+
label: "environment-data:orchestration:workflow-script",
|
|
11
|
+
tag: ORCHESTRATION_WS_METHODS.getWorkflowScript,
|
|
12
|
+
staleTimeMs: 3e5,
|
|
13
|
+
idleTtlMs: 3e5
|
|
14
|
+
}),
|
|
9
15
|
fullThreadDiff: createEnvironmentRpcQueryAtomFamily(runtime, {
|
|
10
16
|
label: "environment-data:orchestration:full-thread-diff",
|
|
11
17
|
tag: ORCHESTRATION_WS_METHODS.getFullThreadDiff
|
|
12
18
|
}),
|
|
19
|
+
threadSearch: createEnvironmentRpcQueryAtomFamily(runtime, {
|
|
20
|
+
label: "environment-data:orchestration:thread-search",
|
|
21
|
+
tag: ORCHESTRATION_WS_METHODS.searchThreads,
|
|
22
|
+
staleTimeMs: 3e4,
|
|
23
|
+
idleTtlMs: 6e4
|
|
24
|
+
}),
|
|
13
25
|
archivedShellSnapshot: createEnvironmentRpcQueryAtomFamily(runtime, {
|
|
14
26
|
label: "environment-data:orchestration:archived-shell-snapshot",
|
|
15
27
|
tag: ORCHESTRATION_WS_METHODS.getArchivedShellSnapshot
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Id as KeybindingWhenNode, Su as ServerConfig, Wo as ConnectionCatalogEntry, aa as EnvironmentPresentation, bs as SupervisorConnectionState, ia as EnvironmentConnectionPresentation, u as EnvironmentCatalogState, vk as EnvironmentId } from "../../shared.js";
|
|
2
2
|
import { AsyncResult, Atom } from "effect/unstable/reactivity";
|
|
3
3
|
//#region upstream-t3code/packages/client-runtime/src/state/presentation.d.ts
|
|
4
4
|
declare function createEnvironmentPresentationAtoms<E>(input: {
|
|
@@ -22,9 +22,15 @@ declare function createEnvironmentPresentationAtoms<E>(input: {
|
|
|
22
22
|
readonly capabilities: {
|
|
23
23
|
readonly repositoryIdentity: boolean;
|
|
24
24
|
readonly connectionProbe?: boolean;
|
|
25
|
+
readonly pullRequests?: boolean;
|
|
25
26
|
readonly threadSettlement?: boolean;
|
|
26
27
|
readonly threadSnooze?: boolean;
|
|
28
|
+
readonly threadPinning?: boolean;
|
|
29
|
+
readonly threadPinReorder?: boolean;
|
|
30
|
+
readonly threadTitleRegeneration?: boolean;
|
|
27
31
|
readonly serverSelfUpdate?: "boot-service" | "desktop-managed" | "respawn";
|
|
32
|
+
readonly serverSelfUpdateProgress?: boolean;
|
|
33
|
+
readonly agentActivityPublishing?: boolean;
|
|
28
34
|
};
|
|
29
35
|
};
|
|
30
36
|
readonly auth: {
|
|
@@ -36,7 +42,7 @@ declare function createEnvironmentPresentationAtoms<E>(input: {
|
|
|
36
42
|
readonly cwd: string;
|
|
37
43
|
readonly keybindingsConfigPath: string;
|
|
38
44
|
readonly keybindings: readonly {
|
|
39
|
-
readonly command: "chat.new" | "chat.newLocal" | "commandPalette.toggle" | "composer.stash" | "diff.toggle" | "editor.openFavorite" | "modelPicker.jump.1" | "modelPicker.jump.2" | "modelPicker.jump.3" | "modelPicker.jump.4" | "modelPicker.jump.5" | "modelPicker.jump.6" | "modelPicker.jump.7" | "modelPicker.jump.8" | "modelPicker.jump.9" | "modelPicker.toggle" | "preview.focusUrl" | "preview.refresh" | "preview.resetZoom" | "preview.toggle" | "preview.zoomIn" | "preview.zoomOut" | "rightPanel.toggle" | "sidebar.toggle" | "terminal.close" | "terminal.new" | "terminal.split" | "terminal.splitVertical" | "terminal.toggle" | "thread.jump.1" | "thread.jump.2" | "thread.jump.3" | "thread.jump.4" | "thread.jump.5" | "thread.jump.6" | "thread.jump.7" | "thread.jump.8" | "thread.jump.9" | "thread.next" | "thread.previous" | `script.${string}.run`;
|
|
45
|
+
readonly command: "chat.new" | "chat.newLocal" | "commandPalette.toggle" | "composer.stash" | "diff.toggle" | "editor.openFavorite" | "filePicker.toggle" | "modelPicker.jump.1" | "modelPicker.jump.2" | "modelPicker.jump.3" | "modelPicker.jump.4" | "modelPicker.jump.5" | "modelPicker.jump.6" | "modelPicker.jump.7" | "modelPicker.jump.8" | "modelPicker.jump.9" | "modelPicker.toggle" | "preview.focusUrl" | "preview.refresh" | "preview.resetZoom" | "preview.toggle" | "preview.zoomIn" | "preview.zoomOut" | "projectSearch.toggle" | "rightPanel.toggle" | "sidebar.toggle" | "terminal.close" | "terminal.new" | "terminal.split" | "terminal.splitVertical" | "terminal.toggle" | "themeEditor.toggle" | "thread.jump.1" | "thread.jump.2" | "thread.jump.3" | "thread.jump.4" | "thread.jump.5" | "thread.jump.6" | "thread.jump.7" | "thread.jump.8" | "thread.jump.9" | "thread.next" | "thread.previous" | `script.${string}.run`;
|
|
40
46
|
readonly shortcut: {
|
|
41
47
|
readonly key: string;
|
|
42
48
|
readonly metaKey: boolean;
|
|
@@ -101,6 +107,7 @@ declare function createEnvironmentPresentationAtoms<E>(input: {
|
|
|
101
107
|
readonly subProvider?: string | undefined;
|
|
102
108
|
readonly isCustom: boolean;
|
|
103
109
|
readonly isDefault?: boolean | undefined;
|
|
110
|
+
readonly isLegacy?: boolean | undefined;
|
|
104
111
|
readonly capabilities: {
|
|
105
112
|
readonly optionDescriptors?: readonly ({
|
|
106
113
|
readonly id: string;
|
|
@@ -158,6 +165,10 @@ declare function createEnvironmentPresentationAtoms<E>(input: {
|
|
|
158
165
|
};
|
|
159
166
|
}[];
|
|
160
167
|
readonly availableEditors: readonly ("antigravity" | "aqua" | "clion" | "cursor" | "datagrip" | "dataspell" | "file-manager" | "goland" | "idea" | "kiro" | "phpstorm" | "pycharm" | "rider" | "rubymine" | "rustrover" | "trae" | "vscode" | "vscode-insiders" | "vscodium" | "webstorm" | "zed")[];
|
|
168
|
+
readonly remoteOpenTargets?: readonly {
|
|
169
|
+
readonly kind: "mdns" | "tailscale";
|
|
170
|
+
readonly host: string;
|
|
171
|
+
}[];
|
|
161
172
|
readonly observability: {
|
|
162
173
|
readonly logsDirectoryPath: string;
|
|
163
174
|
readonly localTracingEnabled: boolean;
|
|
@@ -167,7 +178,7 @@ declare function createEnvironmentPresentationAtoms<E>(input: {
|
|
|
167
178
|
readonly otlpMetricsEnabled: boolean;
|
|
168
179
|
};
|
|
169
180
|
readonly settings: {
|
|
170
|
-
readonly
|
|
181
|
+
readonly enableLegacyTokenStreaming: boolean;
|
|
171
182
|
readonly enableProviderUpdateChecks: boolean;
|
|
172
183
|
readonly backgroundActivity: {
|
|
173
184
|
readonly schemaVersion: 1;
|
|
@@ -269,6 +280,7 @@ declare function createEnvironmentPresentationAtoms<E>(input: {
|
|
|
269
280
|
};
|
|
270
281
|
readonly shellResumeCompletionMarker?: boolean;
|
|
271
282
|
readonly threadResumeCompletionMarker?: boolean;
|
|
283
|
+
readonly threadSnapshotPagination?: boolean;
|
|
272
284
|
} | null;
|
|
273
285
|
} | null>;
|
|
274
286
|
presentationsAtom: Atom.Atom<ReadonlyMap<string & import("effect/Brand").Brand<"EnvironmentId">, EnvironmentPresentation>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Kr as make, LN as getOrElse, Wr as family, Yr as withLabel, bs as AVAILABLE_CONNECTION_STATE, ei as value, ua as presentEnvironmentConnection } from "../../shared.js";
|
|
2
2
|
//#region upstream-t3code/packages/client-runtime/src/state/presentation.ts
|
|
3
3
|
function mapsEqual(left, right) {
|
|
4
4
|
if (left.size !== right.size) return false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $O as EnvironmentAuthorizationError, Ax as PreviewAutomationControlInterruptedError, Da as EnvironmentNotRegisteredError, Hx as PreviewAutomationNoAvailableHostError, Jx as PreviewAutomationRemoteUnavailableError, Oa as EnvironmentRegistry, Px as PreviewAutomationExecutionError, Rx as PreviewAutomationInvalidSelectorError, Tx as PreviewAutomationClientDisconnectedError, Xx as PreviewAutomationRequestQueueClosedError, eS as PreviewAutomationResultTooLargeError, f as AtomCommand, fS as PreviewAutomationUnavailableError, hn as EnvironmentRpcUnavailableError, kS as PreviewInvalidUrlError, lS as PreviewAutomationTargetNotEditableError, pS as PreviewAutomationUnsupportedClientError, sS as PreviewAutomationTabNotFoundError, uS as PreviewAutomationTimeoutError, vk as EnvironmentId, zS as PreviewSessionLookupError, zx as PreviewAutomationMalformedResponseError } from "../../shared.js";
|
|
2
2
|
import { Atom } from "effect/unstable/reactivity";
|
|
3
3
|
//#region upstream-t3code/packages/client-runtime/src/state/preview.d.ts
|
|
4
4
|
declare const previewAutomationHostFocusConcurrencyKey: (value: {
|
|
@@ -11,9 +11,9 @@ declare const previewAutomationHostFocusConcurrencyKey: (value: {
|
|
|
11
11
|
declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<EnvironmentRegistry | R, E>): {
|
|
12
12
|
list: (target: {
|
|
13
13
|
readonly environmentId: EnvironmentId;
|
|
14
|
-
readonly input:
|
|
15
|
-
readonly threadId: import("effect/
|
|
16
|
-
}
|
|
14
|
+
readonly input: {
|
|
15
|
+
readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
|
|
16
|
+
};
|
|
17
17
|
}) => Atom.Atom<import("effect/unstable/reactivity/AsyncResult").AsyncResult<{
|
|
18
18
|
readonly sessions: readonly {
|
|
19
19
|
readonly threadId: string;
|
|
@@ -56,7 +56,7 @@ declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
56
56
|
}, E | EnvironmentAuthorizationError | EnvironmentRpcUnavailableError | Error | import("effect/unstable/rpc/RpcClientError").RpcClientError>>;
|
|
57
57
|
events: (target: {
|
|
58
58
|
readonly environmentId: EnvironmentId;
|
|
59
|
-
readonly input:
|
|
59
|
+
readonly input: {};
|
|
60
60
|
}) => Atom.Atom<import("effect/unstable/reactivity/AsyncResult").AsyncResult<{
|
|
61
61
|
readonly threadId: string;
|
|
62
62
|
readonly tabId: string;
|
|
@@ -207,7 +207,9 @@ declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
207
207
|
}, E | EnvironmentAuthorizationError | import("effect/Cause").NoSuchElementError | import("effect/unstable/rpc/RpcClientError").RpcClientError>>;
|
|
208
208
|
discoveredServers: (target: {
|
|
209
209
|
readonly environmentId: EnvironmentId;
|
|
210
|
-
readonly input:
|
|
210
|
+
readonly input: {
|
|
211
|
+
readonly configuredUrls?: readonly string[] | undefined;
|
|
212
|
+
};
|
|
211
213
|
}) => Atom.Atom<import("effect/unstable/reactivity/AsyncResult").AsyncResult<{
|
|
212
214
|
readonly servers: readonly {
|
|
213
215
|
readonly host: string;
|
|
@@ -221,6 +223,7 @@ declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
221
223
|
} | null;
|
|
222
224
|
}[];
|
|
223
225
|
readonly scannedAt: string;
|
|
226
|
+
readonly configuredUrlProbing?: true | undefined;
|
|
224
227
|
}, E | EnvironmentAuthorizationError | import("effect/Cause").NoSuchElementError | import("effect/unstable/rpc/RpcClientError").RpcClientError>>;
|
|
225
228
|
automationRequests: (target: {
|
|
226
229
|
readonly environmentId: EnvironmentId;
|
|
@@ -333,20 +336,22 @@ declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
333
336
|
}, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | PreviewInvalidUrlError | PreviewSessionLookupError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
334
337
|
resize: AtomCommand<{
|
|
335
338
|
readonly environmentId: EnvironmentId;
|
|
336
|
-
readonly input:
|
|
337
|
-
readonly threadId: import("effect/
|
|
338
|
-
readonly tabId:
|
|
339
|
-
readonly viewport:
|
|
340
|
-
readonly _tag
|
|
341
|
-
|
|
342
|
-
readonly
|
|
343
|
-
|
|
344
|
-
readonly
|
|
345
|
-
|
|
346
|
-
readonly
|
|
347
|
-
readonly
|
|
348
|
-
|
|
349
|
-
|
|
339
|
+
readonly input: {
|
|
340
|
+
readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
|
|
341
|
+
readonly tabId: string;
|
|
342
|
+
readonly viewport: {
|
|
343
|
+
readonly _tag?: "fill";
|
|
344
|
+
} | {
|
|
345
|
+
readonly _tag?: "freeform";
|
|
346
|
+
readonly width: number;
|
|
347
|
+
readonly height: number;
|
|
348
|
+
} | {
|
|
349
|
+
readonly _tag?: "preset";
|
|
350
|
+
readonly width: number;
|
|
351
|
+
readonly height: number;
|
|
352
|
+
readonly presetId: "asus-zenbook-fold" | "desktop-1440x900" | "desktop-1920x1080" | "galaxy-s24" | "galaxy-z-fold-5" | "ipad-air" | "ipad-mini" | "ipad-pro" | "ipad-pro-11" | "iphone-12-pro" | "iphone-14-pro-max" | "iphone-15-pro" | "iphone-se" | "iphone-xr" | "laptop-1280x800" | "laptop-1366x768" | "nest-hub" | "nest-hub-max" | "pixel-7" | "pixel-8" | "samsung-galaxy-a51-71" | "samsung-galaxy-s20-ultra" | "samsung-galaxy-s8-plus" | "surface-duo" | "surface-pro-7";
|
|
353
|
+
};
|
|
354
|
+
};
|
|
350
355
|
}, {
|
|
351
356
|
readonly threadId: string;
|
|
352
357
|
readonly tabId: string;
|
|
@@ -385,10 +390,10 @@ declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
385
390
|
}, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | PreviewInvalidUrlError | PreviewSessionLookupError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
386
391
|
refresh: AtomCommand<{
|
|
387
392
|
readonly environmentId: EnvironmentId;
|
|
388
|
-
readonly input:
|
|
389
|
-
readonly threadId: import("effect/
|
|
390
|
-
readonly tabId:
|
|
391
|
-
}
|
|
393
|
+
readonly input: {
|
|
394
|
+
readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
|
|
395
|
+
readonly tabId: string;
|
|
396
|
+
};
|
|
392
397
|
}, void, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | PreviewInvalidUrlError | PreviewSessionLookupError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
393
398
|
close: AtomCommand<{
|
|
394
399
|
readonly environmentId: EnvironmentId;
|
|
@@ -399,24 +404,29 @@ declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
399
404
|
}, void, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | PreviewInvalidUrlError | PreviewSessionLookupError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
400
405
|
reportStatus: AtomCommand<{
|
|
401
406
|
readonly environmentId: EnvironmentId;
|
|
402
|
-
readonly input:
|
|
403
|
-
readonly threadId: import("effect/
|
|
404
|
-
readonly tabId:
|
|
405
|
-
readonly navStatus:
|
|
406
|
-
readonly
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
readonly url:
|
|
410
|
-
readonly title:
|
|
411
|
-
}
|
|
412
|
-
readonly
|
|
413
|
-
readonly
|
|
414
|
-
readonly
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
407
|
+
readonly input: {
|
|
408
|
+
readonly threadId: string & import("effect/Brand").Brand<"ThreadId">;
|
|
409
|
+
readonly tabId: string;
|
|
410
|
+
readonly navStatus: {
|
|
411
|
+
readonly _tag?: "Idle";
|
|
412
|
+
} | {
|
|
413
|
+
readonly _tag?: "Loading";
|
|
414
|
+
readonly url: string;
|
|
415
|
+
readonly title: string;
|
|
416
|
+
} | {
|
|
417
|
+
readonly _tag?: "Success";
|
|
418
|
+
readonly url: string;
|
|
419
|
+
readonly title: string;
|
|
420
|
+
} | {
|
|
421
|
+
readonly _tag?: "LoadFailed";
|
|
422
|
+
readonly url: string;
|
|
423
|
+
readonly title: string;
|
|
424
|
+
readonly code: number;
|
|
425
|
+
readonly description: string;
|
|
426
|
+
};
|
|
427
|
+
readonly canGoBack: boolean;
|
|
428
|
+
readonly canGoForward: boolean;
|
|
429
|
+
};
|
|
420
430
|
}, void, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | PreviewInvalidUrlError | PreviewSessionLookupError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
421
431
|
respondToAutomation: AtomCommand<{
|
|
422
432
|
readonly environmentId: EnvironmentId;
|
|
@@ -435,12 +445,12 @@ declare function createPreviewEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
435
445
|
}, void, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | PreviewAutomationClientDisconnectedError | PreviewAutomationControlInterruptedError | PreviewAutomationExecutionError | PreviewAutomationInvalidSelectorError | PreviewAutomationMalformedResponseError | PreviewAutomationNoAvailableHostError | PreviewAutomationRemoteUnavailableError | PreviewAutomationRequestQueueClosedError | PreviewAutomationResultTooLargeError | PreviewAutomationTabNotFoundError | PreviewAutomationTargetNotEditableError | PreviewAutomationTimeoutError | PreviewAutomationUnavailableError | PreviewAutomationUnsupportedClientError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
436
446
|
focusAutomationHost: AtomCommand<{
|
|
437
447
|
readonly environmentId: EnvironmentId;
|
|
438
|
-
readonly input:
|
|
439
|
-
readonly clientId:
|
|
440
|
-
readonly environmentId: import("effect/
|
|
441
|
-
readonly connectionId:
|
|
442
|
-
readonly focused:
|
|
443
|
-
}
|
|
448
|
+
readonly input: {
|
|
449
|
+
readonly clientId: string;
|
|
450
|
+
readonly environmentId: string & import("effect/Brand").Brand<"EnvironmentId">;
|
|
451
|
+
readonly connectionId: string;
|
|
452
|
+
readonly focused: boolean;
|
|
453
|
+
};
|
|
444
454
|
}, void, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
445
455
|
};
|
|
446
456
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _r as createEnvironmentRpcCommand, br as createEnvironmentRpcSubscriptionAtomFamily, lc as WS_METHODS, mr as createAtomCommandScheduler, vr as createEnvironmentRpcQueryAtomFamily } from "../../shared.js";
|
|
2
2
|
//#region upstream-t3code/packages/client-runtime/src/state/preview.ts
|
|
3
3
|
const previewAutomationHostFocusConcurrencyKey = (value) => JSON.stringify([
|
|
4
4
|
value.environmentId,
|
|
@@ -25,7 +25,8 @@ function createPreviewEnvironmentAtoms(runtime) {
|
|
|
25
25
|
}),
|
|
26
26
|
discoveredServers: createEnvironmentRpcSubscriptionAtomFamily(runtime, {
|
|
27
27
|
label: "environment-data:preview:discovered-servers",
|
|
28
|
-
tag: WS_METHODS.subscribeDiscoveredLocalServers
|
|
28
|
+
tag: WS_METHODS.subscribeDiscoveredLocalServers,
|
|
29
|
+
idleTtlMs: 0
|
|
29
30
|
}),
|
|
30
31
|
automationRequests: createEnvironmentRpcSubscriptionAtomFamily(runtime, {
|
|
31
32
|
label: "environment-data:preview:automation-requests",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $_ as ClientSettings, ey as SidebarProjectGroupingMode, lO as ScopedProjectRef, ot as EnvironmentProject, vk as EnvironmentId } from "../../shared.js";
|
|
2
2
|
//#region upstream-t3code/packages/client-runtime/src/state/projectGrouping.d.ts
|
|
3
3
|
interface ProjectGroupingSettings {
|
|
4
4
|
readonly sidebarProjectGroupingMode: SidebarProjectGroupingMode;
|
|
@@ -22,5 +22,29 @@ declare function deriveProjectGroupLabel(input: {
|
|
|
22
22
|
readonly representative: Pick<EnvironmentProject, "title" | "repositoryIdentity">;
|
|
23
23
|
readonly members: ReadonlyArray<Pick<EnvironmentProject, "title" | "repositoryIdentity">>;
|
|
24
24
|
}): string;
|
|
25
|
+
interface ProjectGroupMember<TProject extends EnvironmentProject = EnvironmentProject> {
|
|
26
|
+
readonly physicalProjectKey: string;
|
|
27
|
+
readonly project: TProject;
|
|
28
|
+
}
|
|
29
|
+
interface ProjectGroup<TProject extends EnvironmentProject = EnvironmentProject> {
|
|
30
|
+
readonly key: string;
|
|
31
|
+
readonly label: string;
|
|
32
|
+
readonly representative: TProject;
|
|
33
|
+
readonly members: ReadonlyArray<ProjectGroupMember<TProject>>;
|
|
34
|
+
readonly memberProjectRefs: ReadonlyArray<ScopedProjectRef>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Builds logical project groups without losing the physical projects that
|
|
38
|
+
* remain the actual navigation and task-creation targets.
|
|
39
|
+
*
|
|
40
|
+
* Presentation-specific metadata, filtering, and activity sorting stay in
|
|
41
|
+
* each client. Grouping modes, overrides, physical deduplication, labels, and
|
|
42
|
+
* member preservation live here so web and mobile cannot drift.
|
|
43
|
+
*/
|
|
44
|
+
declare function buildProjectGroups<TProject extends EnvironmentProject>(input: {
|
|
45
|
+
readonly projects: ReadonlyArray<TProject>;
|
|
46
|
+
readonly settings: ProjectGroupingSettings;
|
|
47
|
+
readonly preferredEnvironmentId?: EnvironmentId | null;
|
|
48
|
+
}): ReadonlyArray<ProjectGroup<TProject>>;
|
|
25
49
|
//#endregion
|
|
26
|
-
export { ProjectGroupingMode, ProjectGroupingSettings, deriveLogicalProjectKey, deriveLogicalProjectKeyFromRef, deriveLogicalProjectKeyFromSettings, derivePhysicalProjectKey, derivePhysicalProjectKeyFromPath, deriveProjectGroupLabel, deriveProjectGroupingOverrideKey, getProjectOrderKey, resolveProjectGroupingMode, selectProjectGroupingSettings };
|
|
50
|
+
export { ProjectGroup, ProjectGroupMember, ProjectGroupingMode, ProjectGroupingSettings, buildProjectGroups, deriveLogicalProjectKey, deriveLogicalProjectKeyFromRef, deriveLogicalProjectKeyFromSettings, derivePhysicalProjectKey, derivePhysicalProjectKeyFromPath, deriveProjectGroupLabel, deriveProjectGroupingOverrideKey, getProjectOrderKey, resolveProjectGroupingMode, selectProjectGroupingSettings };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _i as scopedProjectKey, hi as scopeProjectRef, ln as normalizeProjectPathForComparison } from "../../shared.js";
|
|
2
2
|
//#region upstream-t3code/packages/client-runtime/src/state/projectGrouping.ts
|
|
3
3
|
function selectProjectGroupingSettings(settings) {
|
|
4
4
|
return {
|
|
@@ -63,11 +63,91 @@ function deriveLogicalProjectKeyFromRef(projectRef, project, options) {
|
|
|
63
63
|
return project ? deriveLogicalProjectKey(project, options) : scopedProjectKey(projectRef);
|
|
64
64
|
}
|
|
65
65
|
function deriveProjectGroupLabel(input) {
|
|
66
|
+
const sharedTitles = uniqueNonEmptyValues(input.members.map((member) => member.title));
|
|
66
67
|
const sharedDisplayNames = uniqueNonEmptyValues(input.members.map((member) => member.repositoryIdentity?.displayName));
|
|
67
|
-
if (sharedDisplayNames.length === 1) return sharedDisplayNames[0];
|
|
68
68
|
const sharedRepositoryNames = uniqueNonEmptyValues(input.members.map((member) => member.repositoryIdentity?.name));
|
|
69
|
+
const sharedTitle = sharedTitles[0];
|
|
70
|
+
if (sharedTitles.length === 1 && sharedTitle !== void 0 && !sharedDisplayNames.includes(sharedTitle) && !sharedRepositoryNames.includes(sharedTitle)) return sharedTitle;
|
|
71
|
+
if (sharedDisplayNames.length === 1) return sharedDisplayNames[0];
|
|
69
72
|
if (sharedRepositoryNames.length === 1) return sharedRepositoryNames[0];
|
|
70
73
|
return input.representative.title;
|
|
71
74
|
}
|
|
75
|
+
function projectFreshnessTime(project) {
|
|
76
|
+
const updatedAtTime = Date.parse(project.updatedAt);
|
|
77
|
+
if (Number.isFinite(updatedAtTime)) return updatedAtTime;
|
|
78
|
+
const createdAtTime = Date.parse(project.createdAt);
|
|
79
|
+
return Number.isFinite(createdAtTime) ? createdAtTime : 0;
|
|
80
|
+
}
|
|
81
|
+
function shouldReplacePhysicalProjectWinner(existing, candidate) {
|
|
82
|
+
const freshnessDelta = projectFreshnessTime(candidate) - projectFreshnessTime(existing);
|
|
83
|
+
return freshnessDelta > 0 || freshnessDelta === 0 && candidate.id > existing.id;
|
|
84
|
+
}
|
|
85
|
+
function selectProjectIdentitySource(projects, winner) {
|
|
86
|
+
if (winner.repositoryIdentity !== null) return winner;
|
|
87
|
+
let freshestIdentifiedProject = null;
|
|
88
|
+
for (const project of projects) {
|
|
89
|
+
if (project.repositoryIdentity === null) continue;
|
|
90
|
+
if (freshestIdentifiedProject === null || shouldReplacePhysicalProjectWinner(freshestIdentifiedProject, project)) freshestIdentifiedProject = project;
|
|
91
|
+
}
|
|
92
|
+
return freshestIdentifiedProject ?? winner;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Builds logical project groups without losing the physical projects that
|
|
96
|
+
* remain the actual navigation and task-creation targets.
|
|
97
|
+
*
|
|
98
|
+
* Presentation-specific metadata, filtering, and activity sorting stay in
|
|
99
|
+
* each client. Grouping modes, overrides, physical deduplication, labels, and
|
|
100
|
+
* member preservation live here so web and mobile cannot drift.
|
|
101
|
+
*/
|
|
102
|
+
function buildProjectGroups(input) {
|
|
103
|
+
const projectsByPhysicalKey = /* @__PURE__ */ new Map();
|
|
104
|
+
for (const project of input.projects) {
|
|
105
|
+
const physicalProjectKey = derivePhysicalProjectKey(project);
|
|
106
|
+
const existing = projectsByPhysicalKey.get(physicalProjectKey);
|
|
107
|
+
if (existing) existing.push(project);
|
|
108
|
+
else projectsByPhysicalKey.set(physicalProjectKey, [project]);
|
|
109
|
+
}
|
|
110
|
+
const logicalKeyByPhysicalKey = /* @__PURE__ */ new Map();
|
|
111
|
+
const groupedMembers = /* @__PURE__ */ new Map();
|
|
112
|
+
for (const [physicalProjectKey, physicalProjects] of projectsByPhysicalKey) {
|
|
113
|
+
const winner = physicalProjects.reduce((current, candidate) => shouldReplacePhysicalProjectWinner(current, candidate) ? candidate : current);
|
|
114
|
+
const logicalKey = deriveLogicalProjectKey(selectProjectIdentitySource(physicalProjects, winner), { groupingMode: resolveProjectGroupingMode(winner, input.settings) });
|
|
115
|
+
logicalKeyByPhysicalKey.set(physicalProjectKey, logicalKey);
|
|
116
|
+
const member = {
|
|
117
|
+
physicalProjectKey,
|
|
118
|
+
project: winner
|
|
119
|
+
};
|
|
120
|
+
const existing = groupedMembers.get(logicalKey);
|
|
121
|
+
if (existing) existing.push(member);
|
|
122
|
+
else groupedMembers.set(logicalKey, [member]);
|
|
123
|
+
}
|
|
124
|
+
const projectRefsByLogicalKey = /* @__PURE__ */ new Map();
|
|
125
|
+
const seenProjectRefs = /* @__PURE__ */ new Set();
|
|
126
|
+
for (const project of input.projects) {
|
|
127
|
+
const physicalProjectKey = derivePhysicalProjectKey(project);
|
|
128
|
+
const logicalKey = logicalKeyByPhysicalKey.get(physicalProjectKey) ?? deriveLogicalProjectKeyFromSettings(project, input.settings);
|
|
129
|
+
const projectRefKey = scopedProjectKey(scopeProjectRef(project.environmentId, project.id));
|
|
130
|
+
if (seenProjectRefs.has(projectRefKey)) continue;
|
|
131
|
+
seenProjectRefs.add(projectRefKey);
|
|
132
|
+
const projectRef = scopeProjectRef(project.environmentId, project.id);
|
|
133
|
+
const existing = projectRefsByLogicalKey.get(logicalKey);
|
|
134
|
+
if (existing) existing.push(projectRef);
|
|
135
|
+
else projectRefsByLogicalKey.set(logicalKey, [projectRef]);
|
|
136
|
+
}
|
|
137
|
+
const preferredEnvironmentId = input.preferredEnvironmentId ?? null;
|
|
138
|
+
return Array.from(groupedMembers, ([key, members]) => {
|
|
139
|
+
const representative = (preferredEnvironmentId ? members.find((member) => member.project.environmentId === preferredEnvironmentId)?.project : null) ?? members[0].project;
|
|
140
|
+
return {
|
|
141
|
+
key,
|
|
142
|
+
label: members.length > 1 ? deriveProjectGroupLabel({
|
|
143
|
+
representative,
|
|
144
|
+
members: members.map((member) => member.project)
|
|
145
|
+
}) : representative.title,
|
|
146
|
+
representative,
|
|
147
|
+
members,
|
|
148
|
+
memberProjectRefs: projectRefsByLogicalKey.get(key) ?? []
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
}
|
|
72
152
|
//#endregion
|
|
73
|
-
export { deriveLogicalProjectKey, deriveLogicalProjectKeyFromRef, deriveLogicalProjectKeyFromSettings, derivePhysicalProjectKey, derivePhysicalProjectKeyFromPath, deriveProjectGroupLabel, deriveProjectGroupingOverrideKey, getProjectOrderKey, resolveProjectGroupingMode, selectProjectGroupingSettings };
|
|
153
|
+
export { buildProjectGroups, deriveLogicalProjectKey, deriveLogicalProjectKeyFromRef, deriveLogicalProjectKeyFromSettings, derivePhysicalProjectKey, derivePhysicalProjectKeyFromPath, deriveProjectGroupLabel, deriveProjectGroupingOverrideKey, getProjectOrderKey, resolveProjectGroupingMode, selectProjectGroupingSettings };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $O as EnvironmentAuthorizationError, Ay as OrchestrationDispatchCommandError, DC as ProjectReadFileError, Da as EnvironmentNotRegisteredError, IC as ProjectWriteFileError, NC as ProjectSearchEntriesError, Oa as EnvironmentRegistry, Pt as UpdateProjectInput, ab as OrchestrationShellSnapshot, c as normalizeProjectPathForDispatch, f as AtomCommand, gt as DeleteProjectInput, hn as EnvironmentRpcUnavailableError, kC as ProjectReadFileResult, lO as ScopedProjectRef, mt as CreateProjectInput, ot as EnvironmentProject, r as isExplicitRelativePath, s as normalizeProjectPathForComparison, u as EnvironmentCatalogState, vk as EnvironmentId, wC as ProjectListEntriesError } from "../../shared.js";
|
|
2
2
|
import * as Crypto from "effect/Crypto";
|
|
3
3
|
import { Atom } from "effect/unstable/reactivity";
|
|
4
4
|
//#region upstream-t3code/packages/client-runtime/src/state/projectCommands.d.ts
|
|
@@ -14,11 +14,13 @@ interface OptimisticProjectFileTarget {
|
|
|
14
14
|
declare function createProjectEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<EnvironmentRegistry | Crypto.Crypto | R, E>): {
|
|
15
15
|
searchEntries: (target: {
|
|
16
16
|
readonly environmentId: EnvironmentId;
|
|
17
|
-
readonly input:
|
|
18
|
-
readonly cwd:
|
|
19
|
-
readonly query:
|
|
20
|
-
readonly limit:
|
|
21
|
-
|
|
17
|
+
readonly input: {
|
|
18
|
+
readonly cwd: string;
|
|
19
|
+
readonly query: string;
|
|
20
|
+
readonly limit: number;
|
|
21
|
+
readonly kind?: "directory" | "file" | undefined;
|
|
22
|
+
readonly imageOnly?: boolean | undefined;
|
|
23
|
+
};
|
|
22
24
|
}) => Atom.Atom<import("effect/unstable/reactivity/AsyncResult").AsyncResult<{
|
|
23
25
|
readonly entries: readonly {
|
|
24
26
|
readonly path: string;
|
|
@@ -28,9 +30,9 @@ declare function createProjectEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
28
30
|
}, E | EnvironmentAuthorizationError | EnvironmentRpcUnavailableError | Error | ProjectSearchEntriesError | import("effect/unstable/rpc/RpcClientError").RpcClientError>>;
|
|
29
31
|
listEntries: (target: {
|
|
30
32
|
readonly environmentId: EnvironmentId;
|
|
31
|
-
readonly input:
|
|
32
|
-
readonly cwd:
|
|
33
|
-
}
|
|
33
|
+
readonly input: {
|
|
34
|
+
readonly cwd: string;
|
|
35
|
+
};
|
|
34
36
|
}) => Atom.Atom<import("effect/unstable/reactivity/AsyncResult").AsyncResult<{
|
|
35
37
|
readonly entries: readonly {
|
|
36
38
|
readonly path: string;
|
|
@@ -40,10 +42,10 @@ declare function createProjectEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
40
42
|
}, E | EnvironmentAuthorizationError | EnvironmentRpcUnavailableError | Error | ProjectListEntriesError | import("effect/unstable/rpc/RpcClientError").RpcClientError>>;
|
|
41
43
|
readFile: (target: {
|
|
42
44
|
readonly environmentId: EnvironmentId;
|
|
43
|
-
readonly input:
|
|
44
|
-
readonly cwd:
|
|
45
|
-
readonly relativePath:
|
|
46
|
-
}
|
|
45
|
+
readonly input: {
|
|
46
|
+
readonly cwd: string;
|
|
47
|
+
readonly relativePath: string;
|
|
48
|
+
};
|
|
47
49
|
}) => Atom.Atom<import("effect/unstable/reactivity/AsyncResult").AsyncResult<{
|
|
48
50
|
readonly relativePath: string;
|
|
49
51
|
readonly contents: string;
|
|
@@ -71,11 +73,11 @@ declare function createProjectEnvironmentAtoms<R, E>(runtime: Atom.AtomRuntime<E
|
|
|
71
73
|
}, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | OrchestrationDispatchCommandError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
72
74
|
writeFile: AtomCommand<{
|
|
73
75
|
readonly environmentId: EnvironmentId;
|
|
74
|
-
readonly input:
|
|
75
|
-
readonly cwd:
|
|
76
|
-
readonly relativePath:
|
|
77
|
-
readonly contents:
|
|
78
|
-
}
|
|
76
|
+
readonly input: {
|
|
77
|
+
readonly cwd: string;
|
|
78
|
+
readonly relativePath: string;
|
|
79
|
+
readonly contents: string;
|
|
80
|
+
};
|
|
79
81
|
}, {
|
|
80
82
|
readonly relativePath: string;
|
|
81
83
|
}, E | EnvironmentAuthorizationError | EnvironmentNotRegisteredError | EnvironmentRpcUnavailableError | ProjectWriteFileError | import("effect/unstable/rpc/RpcClientError").RpcClientError>;
|
|
@@ -111,6 +113,8 @@ declare function createEnvironmentProjectAtoms(input: {
|
|
|
111
113
|
readonly value: string | boolean;
|
|
112
114
|
}[];
|
|
113
115
|
} | null;
|
|
116
|
+
readonly defaultThreadEnvMode?: "local" | "worktree" | null | undefined;
|
|
117
|
+
readonly faviconPath?: string | null | undefined;
|
|
114
118
|
readonly scripts: readonly {
|
|
115
119
|
readonly id: string;
|
|
116
120
|
readonly name: string;
|
|
@@ -148,6 +152,8 @@ declare function createEnvironmentProjectAtoms(input: {
|
|
|
148
152
|
readonly value: string | boolean;
|
|
149
153
|
}[];
|
|
150
154
|
} | null;
|
|
155
|
+
readonly defaultThreadEnvMode?: "local" | "worktree" | null | undefined;
|
|
156
|
+
readonly faviconPath?: string | null | undefined;
|
|
151
157
|
readonly scripts: readonly {
|
|
152
158
|
readonly id: string;
|
|
153
159
|
readonly name: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Bt as
|
|
1
|
+
import { Bt as hasTrailingPathSeparator, Ft as ensureBrowseDirectoryPath, Gt as createEnvironmentProjectAtoms, Ht as isFilesystemBrowseQuery, It as findProjectByPath, Lt as getBrowseDirectoryPath, Nt as appendBrowsePathSegment, Pt as canNavigateUp, Rt as getBrowseLeafPathSegment, Ut as isUnsupportedWindowsProjectPath, Vt as inferProjectTitleFromPath, Wt as resolveProjectPathForDispatch, an as isExplicitRelativePath, in as createProjectEnvironmentAtoms, ln as normalizeProjectPathForComparison, un as normalizeProjectPathForDispatch, zt as getBrowseParentPath } from "../../shared.js";
|
|
2
2
|
export { appendBrowsePathSegment, canNavigateUp, createEnvironmentProjectAtoms, createProjectEnvironmentAtoms, ensureBrowseDirectoryPath, findProjectByPath, getBrowseDirectoryPath, getBrowseLeafPathSegment, getBrowseParentPath, hasTrailingPathSeparator, inferProjectTitleFromPath, isExplicitRelativePath as isExplicitRelativeProjectPath, isFilesystemBrowseQuery, isUnsupportedWindowsProjectPath, normalizeProjectPathForComparison, normalizeProjectPathForDispatch, resolveProjectPathForDispatch };
|