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.
Files changed (185) hide show
  1. package/README.md +37 -1
  2. package/dist/application.d.ts +2 -2
  3. package/dist/application.js +1 -1
  4. package/dist/auth.d.ts +1 -1
  5. package/dist/auth.js +1 -1
  6. package/dist/bin.js +1305 -424
  7. package/dist/cli.d.ts +1 -1
  8. package/dist/cli.js +1 -1
  9. package/dist/client-runtime/authorization.d.ts +1 -1
  10. package/dist/client-runtime/authorization.js +1 -1
  11. package/dist/client-runtime/connection.d.ts +1 -1
  12. package/dist/client-runtime/connection.js +1 -1
  13. package/dist/client-runtime/environment.d.ts +7 -1
  14. package/dist/client-runtime/environment.js +1 -1
  15. package/dist/client-runtime/errors.js +1 -1
  16. package/dist/client-runtime/operations/projects.d.ts +2 -2
  17. package/dist/client-runtime/operations/projects.js +2 -2
  18. package/dist/client-runtime/operations.d.ts +2 -2
  19. package/dist/client-runtime/operations.js +2 -2
  20. package/dist/client-runtime/platform.d.ts +1 -1
  21. package/dist/client-runtime/platform.js +1 -1
  22. package/dist/client-runtime/relay.d.ts +13 -2
  23. package/dist/client-runtime/relay.js +12 -2
  24. package/dist/client-runtime/rpc.d.ts +2 -2
  25. package/dist/client-runtime/rpc.js +2 -2
  26. package/dist/client-runtime/state/assets.d.ts +17 -11
  27. package/dist/client-runtime/state/assets.js +1 -1
  28. package/dist/client-runtime/state/auth.d.ts +1 -1
  29. package/dist/client-runtime/state/auth.js +1 -1
  30. package/dist/client-runtime/state/connections.js +1 -1
  31. package/dist/client-runtime/state/entities.d.ts +1 -1
  32. package/dist/client-runtime/state/entities.js +1 -1
  33. package/dist/client-runtime/state/filesystem.d.ts +1 -1
  34. package/dist/client-runtime/state/filesystem.js +1 -1
  35. package/dist/client-runtime/state/git.d.ts +6 -5
  36. package/dist/client-runtime/state/git.js +1 -1
  37. package/dist/client-runtime/state/models.d.ts +1 -1
  38. package/dist/client-runtime/state/models.js +1 -1
  39. package/dist/client-runtime/state/orchestration.d.ts +42 -2
  40. package/dist/client-runtime/state/orchestration.js +13 -1
  41. package/dist/client-runtime/state/presentation.d.ts +15 -3
  42. package/dist/client-runtime/state/presentation.js +1 -1
  43. package/dist/client-runtime/state/preview.d.ts +58 -48
  44. package/dist/client-runtime/state/preview.js +3 -2
  45. package/dist/client-runtime/state/project-grouping.d.ts +26 -2
  46. package/dist/client-runtime/state/project-grouping.js +83 -3
  47. package/dist/client-runtime/state/projects.d.ts +24 -18
  48. package/dist/client-runtime/state/projects.js +1 -1
  49. package/dist/client-runtime/state/pull-requests.d.ts +478 -0
  50. package/dist/client-runtime/state/pull-requests.js +172 -0
  51. package/dist/client-runtime/state/relay.d.ts +1 -1
  52. package/dist/client-runtime/state/relay.js +1 -1
  53. package/dist/client-runtime/state/review.d.ts +16 -1
  54. package/dist/client-runtime/state/review.js +27 -6
  55. package/dist/client-runtime/state/runtime.d.ts +2 -2
  56. package/dist/client-runtime/state/runtime.js +2 -2
  57. package/dist/client-runtime/state/server.d.ts +311 -172
  58. package/dist/client-runtime/state/server.js +192 -16
  59. package/dist/client-runtime/state/session.d.ts +77 -7
  60. package/dist/client-runtime/state/session.js +32 -3
  61. package/dist/client-runtime/state/shell.d.ts +47 -7
  62. package/dist/client-runtime/state/shell.js +1 -1
  63. package/dist/client-runtime/state/source-control.d.ts +2 -2
  64. package/dist/client-runtime/state/source-control.js +1 -1
  65. package/dist/client-runtime/state/subagentRuntime.d.ts +145 -0
  66. package/dist/client-runtime/state/subagentRuntime.js +521 -0
  67. package/dist/client-runtime/state/terminal.d.ts +17 -17
  68. package/dist/client-runtime/state/terminal.js +1 -1
  69. package/dist/client-runtime/state/thread-search.d.ts +23 -0
  70. package/dist/client-runtime/state/thread-search.js +38 -0
  71. package/dist/client-runtime/state/thread-settled.d.ts +32 -4
  72. package/dist/client-runtime/state/thread-settled.js +2 -157
  73. package/dist/client-runtime/state/thread-sort.d.ts +59 -2
  74. package/dist/client-runtime/state/thread-sort.js +128 -2
  75. package/dist/client-runtime/state/threads.d.ts +115 -3
  76. package/dist/client-runtime/state/threads.js +309 -28
  77. package/dist/client-runtime/state/vcs.d.ts +14 -14
  78. package/dist/client-runtime/state/vcs.js +1 -1
  79. package/dist/config.d.ts +1 -1
  80. package/dist/config.js +1 -1
  81. package/dist/connection.d.ts +1 -1
  82. package/dist/connection.js +1 -1
  83. package/dist/contracts.d.ts +1 -1
  84. package/dist/contracts.js +1 -1
  85. package/dist/index.d.ts +1 -1
  86. package/dist/index.js +1 -1
  87. package/dist/node.d.ts +1 -1
  88. package/dist/node.js +1 -1
  89. package/dist/orchestration.d.ts +155 -6
  90. package/dist/orchestration.js +2 -2
  91. package/dist/preview.d.ts +1 -1
  92. package/dist/preview.js +1 -1
  93. package/dist/rpc.d.ts +887 -360
  94. package/dist/rpc.js +1 -1
  95. package/dist/runtime.d.ts +1 -1
  96. package/dist/runtime.js +1 -1
  97. package/dist/shared/DrainableWorker.js +1 -1
  98. package/dist/shared/KeyedCoalescingWorker.js +1 -1
  99. package/dist/shared/Net.d.ts +6 -0
  100. package/dist/shared/Net.js +2 -1
  101. package/dist/shared/advertisedEndpoint.d.ts +1 -1
  102. package/dist/shared/advertisedEndpoint.js +1 -1
  103. package/dist/shared/agentAwareness.d.ts +1 -1
  104. package/dist/shared/backgroundActivitySettings.d.ts +1 -1
  105. package/dist/shared/composerInlineTokens.js +1 -1
  106. package/dist/shared/connectAuth.d.ts +23 -4
  107. package/dist/shared/connectAuth.js +40 -7
  108. package/dist/shared/devHome.js +1 -1
  109. package/dist/shared/dpop.js +1 -1
  110. package/dist/shared/git.d.ts +1 -1
  111. package/dist/shared/httpObservability.js +1 -1
  112. package/dist/shared/httpReadiness.js +1 -1
  113. package/dist/shared/keybindings.d.ts +2 -2
  114. package/dist/shared/keybindings.js +15 -1
  115. package/dist/shared/model.d.ts +1 -1
  116. package/dist/shared/oauthScope.js +1 -1
  117. package/dist/shared/observability.d.ts +8 -1
  118. package/dist/shared/observability.js +49 -5
  119. package/dist/shared/path.js +1 -1
  120. package/dist/shared/preview.js +1 -1
  121. package/dist/shared/previewViewport.d.ts +1 -1
  122. package/dist/shared/previewViewport.js +1 -1
  123. package/dist/shared/projectFavicon.d.ts +2 -1
  124. package/dist/shared/projectFavicon.js +13 -1
  125. package/dist/shared/projectScripts.d.ts +1 -1
  126. package/dist/shared/relayAuth.js +1 -1
  127. package/dist/shared/relayClient.d.ts +1 -1
  128. package/dist/shared/relayClient.js +1 -1
  129. package/dist/shared/relayJwt.js +1 -1
  130. package/dist/shared/relayTracing.js +1 -1
  131. package/dist/shared/relayUrl.js +1 -1
  132. package/dist/shared/remote.js +1 -1
  133. package/dist/shared/schemaYaml.js +3 -3
  134. package/dist/shared/semver.js +1 -1
  135. package/dist/shared/serverSettings.d.ts +1 -1
  136. package/dist/shared/serverSettings.js +1 -1
  137. package/dist/shared/shell.d.ts +6 -1
  138. package/dist/shared/shell.js +42 -4
  139. package/dist/shared/sourceControl.d.ts +1 -1
  140. package/dist/shared/t3ProjectFile.d.ts +9 -1
  141. package/dist/shared/t3ProjectFile.js +12 -2
  142. package/dist/shared/terminalLabels.d.ts +1 -1
  143. package/dist/shared/threadEnvMode.d.ts +29 -0
  144. package/dist/shared/threadEnvMode.js +24 -0
  145. package/dist/shared/toolActivity.d.ts +1 -1
  146. package/dist/shared/usageFormat.d.ts +34 -0
  147. package/dist/shared/usageFormat.js +176 -0
  148. package/dist/shared/usageMerge.d.ts +78 -0
  149. package/dist/shared/usageMerge.js +241 -0
  150. package/dist/shared.d.ts +8268 -1372
  151. package/dist/shared.js +22185 -19774
  152. package/dist/t3tools.d.ts +2 -2
  153. package/dist/t3tools.js +2 -2
  154. package/package.json +5 -5
  155. package/src/application/error.ts +2 -2
  156. package/src/application/index.ts +2 -0
  157. package/src/application/service.ts +43 -5
  158. package/src/application/thread-commands.ts +78 -0
  159. package/src/application/threads.ts +156 -17
  160. package/src/cli/app.ts +4 -0
  161. package/src/cli/ask-lifecycle.ts +331 -0
  162. package/src/cli/ask.ts +390 -0
  163. package/src/cli/error.ts +70 -0
  164. package/src/cli/format/thread.ts +49 -7
  165. package/src/cli/search.ts +48 -0
  166. package/src/cli/thread.ts +12 -0
  167. package/src/cli/threads/messages.ts +33 -3
  168. package/src/cli/threads/pin.ts +46 -0
  169. package/src/cli/threads/send.ts +5 -1
  170. package/src/cli/threads/settle.ts +46 -0
  171. package/src/cli/threads/snooze.ts +117 -0
  172. package/src/cli/threads/start.ts +6 -1
  173. package/src/cli/threads/unpin.ts +48 -0
  174. package/src/cli/threads/unsettle.ts +48 -0
  175. package/src/cli/threads/unsnooze.ts +48 -0
  176. package/src/config/persist/schema.ts +1 -1
  177. package/src/connection/prepared.ts +12 -2
  178. package/src/orchestration/error.ts +10 -0
  179. package/src/orchestration/index.ts +1 -0
  180. package/src/orchestration/layer.ts +78 -0
  181. package/src/orchestration/service.ts +16 -3
  182. package/src/rpc/error.ts +2 -0
  183. package/src/rpc/operation.ts +2 -0
  184. package/src/rpc/ws-group.ts +3 -0
  185. package/src/runtime/layer.ts +9 -4
@@ -1,4 +1,4 @@
1
- import { fr as createEnvironmentRpcQueryAtomFamily, ky as ORCHESTRATION_WS_METHODS } from "../../shared.js";
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 { Ao as ConnectionCatalogEntry, Fl as ServerConfig, Gi as EnvironmentConnectionPresentation, Ki as EnvironmentPresentation, Ku as KeybindingWhenNode, os as SupervisorConnectionState, u as EnvironmentCatalogState, zT as EnvironmentId } from "../../shared.js";
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 enableAssistantStreaming: boolean;
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 { Fk as getOrElse, Gr as family, Xr as withLabel, na as presentEnvironmentConnection, qr as make, ti as value, us as AVAILABLE_CONNECTION_STATE } from "../../shared.js";
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 { Ab as PreviewSessionLookupError, Hy as PreviewAutomationRemoteUnavailableError, Iy as PreviewAutomationNoAvailableHostError, Jy as PreviewAutomationResultTooLargeError, My as PreviewAutomationInvalidSelectorError, Ny as PreviewAutomationMalformedResponseError, Oy as PreviewAutomationExecutionError, Wy as PreviewAutomationRequestQueueClosedError, bT as EnvironmentAuthorizationError, bb as PreviewInvalidUrlError, f as AtomCommand, ha as EnvironmentRegistry, ib as PreviewAutomationTimeoutError, ma as EnvironmentNotRegisteredError, ob as PreviewAutomationUnavailableError, on as EnvironmentRpcUnavailableError, rb as PreviewAutomationTargetNotEditableError, sb as PreviewAutomationUnsupportedClientError, tb as PreviewAutomationTabNotFoundError, wy as PreviewAutomationControlInterruptedError, yy as PreviewAutomationClientDisconnectedError, zT as EnvironmentId } from "../../shared.js";
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
15
- readonly threadId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "ThreadId">;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{}>;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{}>;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
337
- readonly threadId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "ThreadId">;
338
- readonly tabId: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
339
- readonly viewport: import("effect/Schema").Union<readonly [import("effect/Schema").TaggedStruct<"fill", {}>, import("effect/Schema").Struct<{
340
- readonly _tag: import("effect/Schema").tag<"freeform">;
341
- readonly width: import("effect/Schema").Int;
342
- readonly height: import("effect/Schema").Int;
343
- }>, import("effect/Schema").Struct<{
344
- readonly _tag: import("effect/Schema").tag<"preset">;
345
- readonly width: import("effect/Schema").Int;
346
- readonly height: import("effect/Schema").Int;
347
- readonly presetId: import("effect/Schema").Literals<readonly ["iphone-se", "iphone-xr", "iphone-12-pro", "iphone-14-pro-max", "pixel-7", "samsung-galaxy-s8-plus", "samsung-galaxy-s20-ultra", "ipad-mini", "ipad-air", "ipad-pro", "surface-pro-7", "surface-duo", "galaxy-z-fold-5", "asus-zenbook-fold", "samsung-galaxy-a51-71", "nest-hub", "nest-hub-max", "desktop-1920x1080", "desktop-1440x900", "laptop-1366x768", "laptop-1280x800", "ipad-pro-11", "iphone-15-pro", "pixel-8", "galaxy-s24"]>;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
389
- readonly threadId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "ThreadId">;
390
- readonly tabId: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
403
- readonly threadId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "ThreadId">;
404
- readonly tabId: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
405
- readonly navStatus: import("effect/Schema").Union<readonly [import("effect/Schema").TaggedStruct<"Idle", {}>, import("effect/Schema").TaggedStruct<"Loading", {
406
- readonly url: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
407
- readonly title: import("effect/Schema").String;
408
- }>, import("effect/Schema").TaggedStruct<"Success", {
409
- readonly url: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
410
- readonly title: import("effect/Schema").String;
411
- }>, import("effect/Schema").TaggedStruct<"LoadFailed", {
412
- readonly url: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
413
- readonly title: import("effect/Schema").String;
414
- readonly code: import("effect/Schema").Int;
415
- readonly description: import("effect/Schema").String;
416
- }>]>;
417
- readonly canGoBack: import("effect/Schema").Boolean;
418
- readonly canGoForward: import("effect/Schema").Boolean;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
439
- readonly clientId: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
440
- readonly environmentId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "EnvironmentId">;
441
- readonly connectionId: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
442
- readonly focused: import("effect/Schema").Boolean;
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 { Fs as WS_METHODS, dr as createEnvironmentRpcCommand, fr as createEnvironmentRpcQueryAtomFamily, lr as createAtomCommandScheduler, mr as createEnvironmentRpcSubscriptionAtomFamily } from "../../shared.js";
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 { jw as ScopedProjectRef, l_ as SidebarProjectGroupingMode, rt as EnvironmentProject, wg as ClientSettings } from "../../shared.js";
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 { cn as normalizeProjectPathForComparison, li as scopedProjectKey, si as scopeProjectRef } from "../../shared.js";
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 { Ot as UpdateProjectInput, _x as ProjectReadFileResult, bT as EnvironmentAuthorizationError, c as normalizeProjectPathForDispatch, cv as OrchestrationShellSnapshot, dt as CreateProjectInput, f as AtomCommand, fx as ProjectListEntriesError, ha as EnvironmentRegistry, hx as ProjectReadFileError, jw as ScopedProjectRef, ma as EnvironmentNotRegisteredError, on as EnvironmentRpcUnavailableError, pt as DeleteProjectInput, r as isExplicitRelativePath, rt as EnvironmentProject, s as normalizeProjectPathForComparison, u as EnvironmentCatalogState, vx as ProjectSearchEntriesError, xx as ProjectWriteFileError, zT as EnvironmentId, z_ as OrchestrationDispatchCommandError } from "../../shared.js";
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
18
- readonly cwd: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
19
- readonly query: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
20
- readonly limit: import("effect/Schema").Int;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
32
- readonly cwd: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
44
- readonly cwd: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
45
- readonly relativePath: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
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: import("effect/Schema").Struct.ReadonlyMakeIn<{
75
- readonly cwd: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
76
- readonly relativePath: import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>;
77
- readonly contents: import("effect/Schema").String;
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 inferProjectTitleFromPath, Ft as findProjectByPath, Ht as isUnsupportedWindowsProjectPath, It as getBrowseDirectoryPath, Lt as getBrowseLeafPathSegment, Mt as appendBrowsePathSegment, Nt as canNavigateUp, Pt as ensureBrowseDirectoryPath, Rt as getBrowseParentPath, Ut as resolveProjectPathForDispatch, Vt as isFilesystemBrowseQuery, Wt as createEnvironmentProjectAtoms, cn as normalizeProjectPathForComparison, in as isExplicitRelativePath, ln as normalizeProjectPathForDispatch, rn as createProjectEnvironmentAtoms, zt as hasTrailingPathSeparator } from "../../shared.js";
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 };