t3code-cli 0.13.0 → 0.14.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 (323) hide show
  1. package/README.md +87 -1
  2. package/dist/application.d.ts +2 -0
  3. package/dist/application.js +1 -1
  4. package/dist/auth.d.ts +50 -0
  5. package/dist/auth.js +1 -1
  6. package/dist/bin.d.ts +1 -0
  7. package/dist/bin.js +348 -603
  8. package/dist/cli.d.ts +66 -0
  9. package/dist/cli.js +1 -1
  10. package/dist/client-runtime/authorization.d.ts +2 -0
  11. package/dist/client-runtime/authorization.js +2 -0
  12. package/dist/client-runtime/connection.d.ts +2 -0
  13. package/dist/client-runtime/connection.js +2 -0
  14. package/dist/client-runtime/environment.d.ts +57 -0
  15. package/dist/client-runtime/environment.js +2 -0
  16. package/dist/client-runtime/errors.d.ts +28 -0
  17. package/dist/client-runtime/errors.js +35 -0
  18. package/dist/client-runtime/operations/projects.d.ts +2 -0
  19. package/dist/client-runtime/operations/projects.js +2 -0
  20. package/dist/client-runtime/operations.d.ts +2 -0
  21. package/dist/client-runtime/operations.js +2 -0
  22. package/dist/client-runtime/platform.d.ts +26 -0
  23. package/dist/client-runtime/platform.js +74 -0
  24. package/dist/client-runtime/relay.d.ts +121 -0
  25. package/dist/client-runtime/relay.js +245 -0
  26. package/dist/client-runtime/rpc.d.ts +2 -0
  27. package/dist/client-runtime/rpc.js +2 -0
  28. package/dist/client-runtime/state/assets.d.ts +40 -0
  29. package/dist/client-runtime/state/assets.js +53 -0
  30. package/dist/client-runtime/state/auth.d.ts +98 -0
  31. package/dist/client-runtime/state/auth.js +48 -0
  32. package/dist/client-runtime/state/connections.d.ts +2 -0
  33. package/dist/client-runtime/state/connections.js +52 -0
  34. package/dist/client-runtime/state/entities.d.ts +33 -0
  35. package/dist/client-runtime/state/entities.js +2 -0
  36. package/dist/client-runtime/state/filesystem.d.ts +42 -0
  37. package/dist/client-runtime/state/filesystem.js +48 -0
  38. package/dist/client-runtime/state/git.d.ts +43 -0
  39. package/dist/client-runtime/state/git.js +18 -0
  40. package/dist/client-runtime/state/models.d.ts +2 -0
  41. package/dist/client-runtime/state/models.js +2 -0
  42. package/dist/client-runtime/state/orchestration.d.ts +128 -0
  43. package/dist/client-runtime/state/orchestration.js +20 -0
  44. package/dist/client-runtime/state/presentation.d.ts +277 -0
  45. package/dist/client-runtime/state/presentation.js +34 -0
  46. package/dist/client-runtime/state/preview.d.ts +447 -0
  47. package/dist/client-runtime/state/preview.js +103 -0
  48. package/dist/client-runtime/state/project-grouping.d.ts +26 -0
  49. package/dist/client-runtime/state/project-grouping.js +73 -0
  50. package/dist/client-runtime/state/projects.d.ts +192 -0
  51. package/dist/client-runtime/state/projects.js +2 -0
  52. package/dist/client-runtime/state/relay.d.ts +10 -0
  53. package/dist/client-runtime/state/relay.js +19 -0
  54. package/dist/client-runtime/state/review.d.ts +28 -0
  55. package/dist/client-runtime/state/review.js +11 -0
  56. package/dist/client-runtime/state/runtime.d.ts +2 -0
  57. package/dist/client-runtime/state/runtime.js +2 -0
  58. package/dist/client-runtime/state/server.d.ts +1495 -0
  59. package/dist/client-runtime/state/server.js +207 -0
  60. package/dist/client-runtime/state/session.d.ts +532 -0
  61. package/dist/client-runtime/state/session.js +21 -0
  62. package/dist/client-runtime/state/shell.d.ts +529 -0
  63. package/dist/client-runtime/state/shell.js +2 -0
  64. package/dist/client-runtime/state/source-control.d.ts +92 -0
  65. package/dist/client-runtime/state/source-control.js +36 -0
  66. package/dist/client-runtime/state/terminal.d.ts +237 -0
  67. package/dist/client-runtime/state/terminal.js +173 -0
  68. package/dist/client-runtime/state/thread-settled.d.ts +104 -0
  69. package/dist/client-runtime/state/thread-settled.js +157 -0
  70. package/dist/client-runtime/state/thread-sort.d.ts +23 -0
  71. package/dist/client-runtime/state/thread-sort.js +47 -0
  72. package/dist/client-runtime/state/threads.d.ts +538 -0
  73. package/dist/client-runtime/state/threads.js +934 -0
  74. package/dist/client-runtime/state/vcs.d.ts +442 -0
  75. package/dist/client-runtime/state/vcs.js +756 -0
  76. package/dist/config.d.ts +84 -0
  77. package/dist/config.js +1 -1
  78. package/dist/connection.d.ts +7 -0
  79. package/dist/connection.js +1 -1
  80. package/dist/contracts.d.ts +2 -0
  81. package/dist/contracts.js +2 -1
  82. package/dist/index.d.ts +2 -0
  83. package/dist/index.js +1 -1
  84. package/dist/node.d.ts +6 -0
  85. package/dist/node.js +1 -1
  86. package/dist/orchestration.d.ts +1420 -0
  87. package/dist/orchestration.js +1 -1
  88. package/dist/preview.d.ts +2 -0
  89. package/dist/preview.js +2 -0
  90. package/dist/rpc.d.ts +6043 -0
  91. package/dist/rpc.js +1 -1
  92. package/dist/runtime.d.ts +2 -0
  93. package/dist/runtime.js +2 -2
  94. package/dist/shared/DrainableWorker.d.ts +28 -0
  95. package/dist/shared/DrainableWorker.js +24 -0
  96. package/dist/shared/KeyedCoalescingWorker.d.ts +13 -0
  97. package/dist/shared/KeyedCoalescingWorker.js +89 -0
  98. package/dist/shared/Net.d.ts +43 -0
  99. package/dist/shared/Net.js +126 -0
  100. package/dist/shared/String.d.ts +4 -0
  101. package/dist/shared/String.js +8 -0
  102. package/dist/shared/Struct.d.ts +5 -0
  103. package/dist/shared/Struct.js +2 -0
  104. package/dist/shared/advertisedEndpoint.d.ts +2 -0
  105. package/dist/shared/advertisedEndpoint.js +2 -0
  106. package/dist/shared/agentAwareness.d.ts +27 -0
  107. package/dist/shared/agentAwareness.js +54 -0
  108. package/dist/shared/backgroundActivitySettings.d.ts +23 -0
  109. package/dist/shared/backgroundActivitySettings.js +2 -0
  110. package/dist/shared/chatList.d.ts +12 -0
  111. package/dist/shared/chatList.js +14 -0
  112. package/dist/shared/cliArgs.d.ts +33 -0
  113. package/dist/shared/cliArgs.js +103 -0
  114. package/dist/shared/composerInlineTokens.d.ts +20 -0
  115. package/dist/shared/composerInlineTokens.js +72 -0
  116. package/dist/shared/composerTrigger.d.ts +26 -0
  117. package/dist/shared/composerTrigger.js +97 -0
  118. package/dist/shared/connectAuth.d.ts +58 -0
  119. package/dist/shared/connectAuth.js +89 -0
  120. package/dist/shared/devHome.d.ts +21 -0
  121. package/dist/shared/devHome.js +65 -0
  122. package/dist/shared/devProxy.d.ts +15 -0
  123. package/dist/shared/devProxy.js +22 -0
  124. package/dist/shared/dpop.d.ts +32 -0
  125. package/dist/shared/dpop.js +2724 -0
  126. package/dist/shared/dpopCommon.d.ts +2 -0
  127. package/dist/shared/dpopCommon.js +2 -0
  128. package/dist/shared/filePreview.d.ts +8 -0
  129. package/dist/shared/filePreview.js +31 -0
  130. package/dist/shared/git.d.ts +41 -0
  131. package/dist/shared/git.js +2 -0
  132. package/dist/shared/hostProcess.d.ts +13 -0
  133. package/dist/shared/hostProcess.js +2 -0
  134. package/dist/shared/httpObservability.d.ts +5 -0
  135. package/dist/shared/httpObservability.js +2 -0
  136. package/dist/shared/httpReadiness.d.ts +38 -0
  137. package/dist/shared/httpReadiness.js +110 -0
  138. package/dist/shared/keybindings.d.ts +35 -0
  139. package/dist/shared/keybindings.js +330 -0
  140. package/dist/shared/logging.d.ts +39 -0
  141. package/dist/shared/logging.js +2 -0
  142. package/dist/shared/model.d.ts +44 -0
  143. package/dist/shared/model.js +2 -0
  144. package/dist/shared/oauthScope.d.ts +23 -0
  145. package/dist/shared/oauthScope.js +2 -0
  146. package/dist/shared/observability.d.ts +105 -0
  147. package/dist/shared/observability.js +346 -0
  148. package/dist/shared/orchestrationTiming.d.ts +16 -0
  149. package/dist/shared/orchestrationTiming.js +32 -0
  150. package/dist/shared/path.d.ts +2 -0
  151. package/dist/shared/path.js +2 -0
  152. package/dist/shared/preview.d.ts +35 -0
  153. package/dist/shared/preview.js +103 -0
  154. package/dist/shared/previewViewport.d.ts +16 -0
  155. package/dist/shared/previewViewport.js +159 -0
  156. package/dist/shared/projectFavicon.d.ts +5 -0
  157. package/dist/shared/projectFavicon.js +13 -0
  158. package/dist/shared/projectScripts.d.ts +19 -0
  159. package/dist/shared/projectScripts.js +18 -0
  160. package/dist/shared/qrCode.d.ts +87 -0
  161. package/dist/shared/qrCode.js +870 -0
  162. package/dist/shared/relayAuth.d.ts +27 -0
  163. package/dist/shared/relayAuth.js +83 -0
  164. package/dist/shared/relayClient.d.ts +58 -0
  165. package/dist/shared/relayClient.js +245 -0
  166. package/dist/shared/relayJwt.d.ts +39 -0
  167. package/dist/shared/relayJwt.js +2 -0
  168. package/dist/shared/relaySigning.d.ts +4 -0
  169. package/dist/shared/relaySigning.js +2 -0
  170. package/dist/shared/relayTracing.d.ts +25 -0
  171. package/dist/shared/relayTracing.js +2 -0
  172. package/dist/shared/relayUrl.d.ts +5 -0
  173. package/dist/shared/relayUrl.js +2 -0
  174. package/dist/shared/remote.d.ts +57 -0
  175. package/dist/shared/remote.js +2 -0
  176. package/dist/shared/schemaJson.d.ts +35 -0
  177. package/dist/shared/schemaJson.js +2 -0
  178. package/dist/shared/schemaYaml.d.ts +86 -0
  179. package/dist/shared/schemaYaml.js +99 -0
  180. package/dist/shared/searchRanking.d.ts +30 -0
  181. package/dist/shared/searchRanking.js +99 -0
  182. package/dist/shared/semver.d.ts +23 -0
  183. package/dist/shared/semver.js +124 -0
  184. package/dist/shared/serverSettings.d.ts +19 -0
  185. package/dist/shared/serverSettings.js +103 -0
  186. package/dist/shared/shell.d.ts +51 -0
  187. package/dist/shared/shell.js +408 -0
  188. package/dist/shared/sourceControl.d.ts +26 -0
  189. package/dist/shared/sourceControl.js +2 -0
  190. package/dist/shared/t3ProjectFile.d.ts +27 -0
  191. package/dist/shared/t3ProjectFile.js +25 -0
  192. package/dist/shared/terminalLabels.d.ts +16 -0
  193. package/dist/shared/terminalLabels.js +28 -0
  194. package/dist/shared/toolActivity.d.ts +16 -0
  195. package/dist/shared/toolActivity.js +159 -0
  196. package/dist/shared.d.ts +43036 -0
  197. package/dist/shared.js +25428 -12277
  198. package/dist/t3tools.d.ts +2 -0
  199. package/dist/t3tools.js +1 -1
  200. package/package.json +39 -21
  201. package/src/auth/index.ts +2 -0
  202. package/src/auth/pairing.ts +8 -5
  203. package/src/auth/service.ts +2 -1
  204. package/src/auth/transport.ts +4 -0
  205. package/src/auth/type.ts +6 -0
  206. package/src/cli/auth.ts +7 -1
  207. package/src/contracts/index.ts +8 -0
  208. package/src/orchestration/layer.ts +36 -0
  209. package/src/orchestration/service.ts +5 -0
  210. package/src/preview/index.ts +11 -0
  211. package/src/preview/service.ts +52 -0
  212. package/src/rpc/error.ts +2 -0
  213. package/src/rpc/layer.ts +5 -4
  214. package/src/rpc/operation.ts +5 -4
  215. package/src/rpc/ws-group.ts +6 -0
  216. package/src/runtime/index.ts +1 -0
  217. package/src/runtime/layer.ts +5 -0
  218. package/src/sql/node-sqlite-client.ts +3 -0
  219. package/dist/src/application/actions.d.ts +0 -25
  220. package/dist/src/application/error.d.ts +0 -3
  221. package/dist/src/application/index.d.ts +0 -4
  222. package/dist/src/application/layer.d.ts +0 -117
  223. package/dist/src/application/model-selection.d.ts +0 -34
  224. package/dist/src/application/models.d.ts +0 -8
  225. package/dist/src/application/project-commands.d.ts +0 -44
  226. package/dist/src/application/projects.d.ts +0 -23
  227. package/dist/src/application/service.d.ts +0 -243
  228. package/dist/src/application/shell-sequence.d.ts +0 -96
  229. package/dist/src/application/terminals.d.ts +0 -66
  230. package/dist/src/application/thread-commands.d.ts +0 -157
  231. package/dist/src/application/thread-update.d.ts +0 -8
  232. package/dist/src/application/thread-wait.d.ts +0 -106
  233. package/dist/src/application/threads.d.ts +0 -660
  234. package/dist/src/auth/error.d.ts +0 -50
  235. package/dist/src/auth/index.d.ts +0 -10
  236. package/dist/src/auth/layer.d.ts +0 -53
  237. package/dist/src/auth/local-base-dir.d.ts +0 -8
  238. package/dist/src/auth/local-origin.d.ts +0 -18
  239. package/dist/src/auth/local-token.d.ts +0 -26
  240. package/dist/src/auth/local.d.ts +0 -24
  241. package/dist/src/auth/pairing.d.ts +0 -22
  242. package/dist/src/auth/remote-error.d.ts +0 -3
  243. package/dist/src/auth/schema.d.ts +0 -58
  244. package/dist/src/auth/service.d.ts +0 -27
  245. package/dist/src/auth/transport.d.ts +0 -22
  246. package/dist/src/auth/type.d.ts +0 -83
  247. package/dist/src/cli/env/flag.d.ts +0 -2
  248. package/dist/src/cli/env/index.d.ts +0 -2
  249. package/dist/src/cli/env/selection-layer.d.ts +0 -3
  250. package/dist/src/cli/flags.d.ts +0 -20
  251. package/dist/src/cli/format/index.d.ts +0 -1
  252. package/dist/src/cli/format/output.d.ts +0 -12
  253. package/dist/src/cli/index.d.ts +0 -5
  254. package/dist/src/cli/runtime/index.d.ts +0 -1
  255. package/dist/src/cli/runtime/service.d.ts +0 -16
  256. package/dist/src/cli/scope/index.d.ts +0 -1
  257. package/dist/src/cli/scope/resolve.d.ts +0 -20
  258. package/dist/src/cli-path/layer.d.ts +0 -3
  259. package/dist/src/cli-path/service.d.ts +0 -8
  260. package/dist/src/config/config.d.ts +0 -49
  261. package/dist/src/config/credential/cipher-node.d.ts +0 -3
  262. package/dist/src/config/credential/cipher-web.d.ts +0 -3
  263. package/dist/src/config/credential/cipher.d.ts +0 -29
  264. package/dist/src/config/credential/env.d.ts +0 -3
  265. package/dist/src/config/credential/error.d.ts +0 -8
  266. package/dist/src/config/credential/index.d.ts +0 -6
  267. package/dist/src/config/credential/service.d.ts +0 -34
  268. package/dist/src/config/env/env.d.ts +0 -55
  269. package/dist/src/config/env/index.d.ts +0 -2
  270. package/dist/src/config/env/layout.d.ts +0 -11
  271. package/dist/src/config/environment-name/index.d.ts +0 -1
  272. package/dist/src/config/environment-name/name.d.ts +0 -10
  273. package/dist/src/config/error.d.ts +0 -11
  274. package/dist/src/config/index.d.ts +0 -10
  275. package/dist/src/config/keystore/error.d.ts +0 -8
  276. package/dist/src/config/keystore/file.d.ts +0 -9
  277. package/dist/src/config/keystore/index.d.ts +0 -4
  278. package/dist/src/config/keystore/keyring-node.d.ts +0 -4
  279. package/dist/src/config/keystore/service.d.ts +0 -33
  280. package/dist/src/config/paths/index.d.ts +0 -1
  281. package/dist/src/config/paths/paths.d.ts +0 -6
  282. package/dist/src/config/persist/file-mode.d.ts +0 -4
  283. package/dist/src/config/persist/migration.d.ts +0 -68
  284. package/dist/src/config/persist/persist.d.ts +0 -40
  285. package/dist/src/config/persist/schema.d.ts +0 -68
  286. package/dist/src/config/resolve/resolve.d.ts +0 -40
  287. package/dist/src/config/selection/index.d.ts +0 -1
  288. package/dist/src/config/selection/resolve.d.ts +0 -4
  289. package/dist/src/config/selection/service.d.ts +0 -10
  290. package/dist/src/config/types.d.ts +0 -36
  291. package/dist/src/config/url/error.d.ts +0 -10
  292. package/dist/src/config/url/index.d.ts +0 -2
  293. package/dist/src/config/url/url.d.ts +0 -6
  294. package/dist/src/connection/error.d.ts +0 -10
  295. package/dist/src/connection/index.d.ts +0 -4
  296. package/dist/src/connection/layer.d.ts +0 -3
  297. package/dist/src/connection/prepared.d.ts +0 -14
  298. package/dist/src/connection/service.d.ts +0 -13
  299. package/dist/src/connection/type.d.ts +0 -10
  300. package/dist/src/contracts/index.d.ts +0 -1
  301. package/dist/src/domain/error.d.ts +0 -57
  302. package/dist/src/domain/helpers.d.ts +0 -179
  303. package/dist/src/domain/model-config.d.ts +0 -330
  304. package/dist/src/domain/thread-activities.d.ts +0 -14
  305. package/dist/src/domain/thread-lifecycle.d.ts +0 -120
  306. package/dist/src/index.d.ts +0 -3
  307. package/dist/src/node/connection.d.ts +0 -2
  308. package/dist/src/node/index.d.ts +0 -1
  309. package/dist/src/orchestration/index.d.ts +0 -2
  310. package/dist/src/orchestration/layer.d.ts +0 -1419
  311. package/dist/src/orchestration/service.d.ts +0 -28
  312. package/dist/src/rpc/error.d.ts +0 -16
  313. package/dist/src/rpc/index.d.ts +0 -6
  314. package/dist/src/rpc/layer.d.ts +0 -5862
  315. package/dist/src/rpc/operation.d.ts +0 -24
  316. package/dist/src/rpc/service.d.ts +0 -15
  317. package/dist/src/rpc/session.d.ts +0 -22
  318. package/dist/src/rpc/ws-group.d.ts +0 -1984
  319. package/dist/src/runtime/index.d.ts +0 -1
  320. package/dist/src/runtime/layer.d.ts +0 -15
  321. package/dist/src/sql/node-sqlite-client.d.ts +0 -10
  322. package/dist/src/sql/service.d.ts +0 -17
  323. package/dist/src/t3tools/index.d.ts +0 -1
@@ -0,0 +1,207 @@
1
+ import { $D as flatMap, Aa as EnvironmentSupervisor, Bk as isSome, Cv as get, Fs as WS_METHODS, GC as set, Gk as toArray, Gr as family, HD as as, Hk as match, IE as debounce, Ik as getOrNull, Jr as setIdleTTL, KC as update, La as EnvironmentCacheStore, Na as safeErrorLogAttributes, RD as addFinalizer, RO as void_, Sv as changes, Tv as set$1, UC as get$1, UD as asVoid, Uk as none, Ur as subscribe, VD as annotateLogs, VE as filterMap, Vk as map, WC as make$1, WE as fromQueue, Wk as some, Xr as withLabel, YD as catch_, aO as gen, bk as failVoid, dr as createEnvironmentRpcCommand, eO as fn, fr as createEnvironmentRpcQueryAtomFamily, iO as forkScoped, lD as unwrap, lO as logWarning, lr as createAtomCommandScheduler, mr as createEnvironmentRpcSubscriptionAtomFamily, qE as mapAccum, qr as make$2, tD as runForEach, ti as value, uO as map$1, vD as offer, wk as succeed, wv as make, xD as sliding, xr as followStreamInEnvironment, zk as isNone } from "../../shared.js";
2
+ //#region upstream-t3code/packages/client-runtime/src/state/server.ts
3
+ function applyServerConfigProjection(current, event) {
4
+ switch (event.type) {
5
+ case "snapshot": return some({
6
+ config: event.config,
7
+ latestEvent: event,
8
+ source: "live"
9
+ });
10
+ case "keybindingsUpdated": return map(current, (projection) => ({
11
+ config: {
12
+ ...projection.config,
13
+ keybindings: event.payload.keybindings,
14
+ issues: event.payload.issues
15
+ },
16
+ latestEvent: event,
17
+ source: "live"
18
+ }));
19
+ case "providerStatuses": return map(current, (projection) => ({
20
+ config: {
21
+ ...projection.config,
22
+ providers: event.payload.providers
23
+ },
24
+ latestEvent: event,
25
+ source: "live"
26
+ }));
27
+ case "settingsUpdated": return map(current, (projection) => ({
28
+ config: {
29
+ ...projection.config,
30
+ settings: event.payload.settings
31
+ },
32
+ latestEvent: event,
33
+ source: "live"
34
+ }));
35
+ }
36
+ }
37
+ function projectServerConfig(current, event) {
38
+ const next = applyServerConfigProjection(current, event);
39
+ return [next, toArray(next)];
40
+ }
41
+ const cachedConfigSnapshotEvent = (config) => ({
42
+ version: 1,
43
+ type: "snapshot",
44
+ config
45
+ });
46
+ /**
47
+ * Keeps a complete server configuration available during reconnects. Server
48
+ * config carries the provider/model catalogue used by task creation, so it is
49
+ * useful—and safe—to retain after a transport session ends.
50
+ */
51
+ const makeEnvironmentServerConfigState = fn("EnvironmentServerConfigState.make")(function* () {
52
+ const supervisor = yield* EnvironmentSupervisor;
53
+ const cache = yield* EnvironmentCacheStore;
54
+ const environmentId = supervisor.target.environmentId;
55
+ const state = yield* make(map(yield* cache.loadServerConfig(environmentId).pipe(catch_((error) => logWarning("Could not load cached server configuration.").pipe(annotateLogs({
56
+ environmentId,
57
+ ...safeErrorLogAttributes(error)
58
+ }), as(none())))), (config) => ({
59
+ config,
60
+ latestEvent: cachedConfigSnapshotEvent(config),
61
+ source: "cache"
62
+ })));
63
+ const persistence = yield* sliding(1);
64
+ const pendingPersistence = yield* make$1(none());
65
+ const persist = fn("EnvironmentServerConfigState.persist")(function* (config) {
66
+ return yield* cache.saveServerConfig(environmentId, config).pipe(as(true), catch_((error) => logWarning("Could not persist cached server configuration.").pipe(annotateLogs({
67
+ environmentId,
68
+ ...safeErrorLogAttributes(error)
69
+ }), as(false))));
70
+ });
71
+ const persistPending = fn("EnvironmentServerConfigState.persistPending")(function* (config) {
72
+ if (!(yield* persist(config))) return;
73
+ yield* update(pendingPersistence, (pending) => isSome(pending) && pending.value === config ? none() : pending);
74
+ });
75
+ yield* fromQueue(persistence).pipe(debounce("500 millis"), runForEach(persistPending), forkScoped);
76
+ yield* subscribe(WS_METHODS.subscribeServerConfig, {}).pipe(runForEach((event) => gen(function* () {
77
+ const next = applyServerConfigProjection(yield* get(state), event);
78
+ if (isNone(next)) return;
79
+ yield* set(pendingPersistence, some(next.value.config));
80
+ yield* set$1(state, next);
81
+ yield* offer(persistence, next.value.config);
82
+ })), forkScoped);
83
+ yield* addFinalizer(() => get$1(pendingPersistence).pipe(flatMap(match({
84
+ onNone: () => void_,
85
+ onSome: (config) => persist(config).pipe(asVoid)
86
+ }))));
87
+ return state;
88
+ });
89
+ function serverConfigStateChanges(environmentId) {
90
+ return followStreamInEnvironment(environmentId, unwrap(makeEnvironmentServerConfigState().pipe(map$1((state) => changes(state).pipe(filterMap((projection) => match(projection, {
91
+ onNone: () => failVoid,
92
+ onSome: (value) => succeed(value)
93
+ })))))));
94
+ }
95
+ function projectServerWelcome(current, event) {
96
+ if (event.type !== "welcome") return [current, []];
97
+ const welcome = event.payload;
98
+ return [some(welcome), [welcome]];
99
+ }
100
+ function resolveServerConfigValue(projection, initialConfig) {
101
+ if (projection?.source === "live") return projection.config;
102
+ return initialConfig ?? projection?.config ?? null;
103
+ }
104
+ function createServerEnvironmentAtoms(runtime, options) {
105
+ const configScheduler = createAtomCommandScheduler();
106
+ const configConcurrency = {
107
+ mode: "serial",
108
+ key: ({ environmentId }) => environmentId
109
+ };
110
+ const configProjectionFamily = family((environmentId) => runtime.atom(serverConfigStateChanges(environmentId)).pipe(setIdleTTL(5 * 6e4), withLabel(`environment-data:server:config-projection:${environmentId}`)));
111
+ const configProjection = (target) => configProjectionFamily(target.environmentId);
112
+ const emptyConfigAtom = make$2(null).pipe(withLabel("environment-data:server:config:empty"));
113
+ const configValueAtom = family((environmentId) => {
114
+ if (environmentId === null) return emptyConfigAtom;
115
+ return make$2((get) => {
116
+ return resolveServerConfigValue(getOrNull(value(get(configProjection({
117
+ environmentId,
118
+ input: {}
119
+ })))), get(options.initialConfigValueAtom(environmentId)));
120
+ }).pipe(withLabel(`environment-data:server:config:${environmentId}`));
121
+ });
122
+ return {
123
+ configValueAtom,
124
+ settingsValueAtom: family((environmentId) => make$2((get) => get(configValueAtom(environmentId))?.settings ?? null).pipe(withLabel(`environment-data:server:settings:${environmentId}`))),
125
+ providersValueAtom: family((environmentId) => make$2((get) => get(configValueAtom(environmentId))?.providers ?? null).pipe(withLabel(`environment-data:server:providers:${environmentId}`))),
126
+ traceDiagnostics: createEnvironmentRpcQueryAtomFamily(runtime, {
127
+ label: "environment-data:server:trace-diagnostics",
128
+ tag: WS_METHODS.serverGetTraceDiagnostics
129
+ }),
130
+ processDiagnostics: createEnvironmentRpcQueryAtomFamily(runtime, {
131
+ label: "environment-data:server:process-diagnostics",
132
+ tag: WS_METHODS.serverGetProcessDiagnostics
133
+ }),
134
+ processResourceHistory: createEnvironmentRpcQueryAtomFamily(runtime, {
135
+ label: "environment-data:server:process-resource-history",
136
+ tag: WS_METHODS.serverGetProcessResourceHistory
137
+ }),
138
+ resourceTelemetry: createEnvironmentRpcSubscriptionAtomFamily(runtime, {
139
+ label: "environment-data:server:resource-telemetry",
140
+ tag: WS_METHODS.subscribeResourceTelemetry,
141
+ idleTtlMs: 0
142
+ }),
143
+ resourceTelemetryHistory: createEnvironmentRpcQueryAtomFamily(runtime, {
144
+ label: "environment-data:server:resource-telemetry-history",
145
+ tag: WS_METHODS.serverGetResourceTelemetryHistory,
146
+ staleTimeMs: 5e3
147
+ }),
148
+ configProjection,
149
+ welcome: createEnvironmentRpcSubscriptionAtomFamily(runtime, {
150
+ label: "environment-data:server:welcome",
151
+ tag: WS_METHODS.subscribeServerLifecycle,
152
+ transform: (stream) => stream.pipe(mapAccum(none, projectServerWelcome))
153
+ }),
154
+ refreshProviders: createEnvironmentRpcCommand(runtime, {
155
+ label: "environment-data:server:refresh-providers",
156
+ tag: WS_METHODS.serverRefreshProviders,
157
+ concurrency: {
158
+ mode: "singleFlight",
159
+ key: ({ environmentId }) => environmentId
160
+ }
161
+ }),
162
+ updateProvider: createEnvironmentRpcCommand(runtime, {
163
+ label: "environment-data:server:update-provider",
164
+ tag: WS_METHODS.serverUpdateProvider,
165
+ scheduler: configScheduler,
166
+ concurrency: configConcurrency
167
+ }),
168
+ updateServer: createEnvironmentRpcCommand(runtime, {
169
+ label: "environment-data:server:update-server",
170
+ tag: WS_METHODS.serverUpdateServer,
171
+ scheduler: configScheduler,
172
+ concurrency: configConcurrency
173
+ }),
174
+ upsertKeybinding: createEnvironmentRpcCommand(runtime, {
175
+ label: "environment-data:server:upsert-keybinding",
176
+ tag: WS_METHODS.serverUpsertKeybinding,
177
+ scheduler: configScheduler,
178
+ concurrency: configConcurrency
179
+ }),
180
+ removeKeybinding: createEnvironmentRpcCommand(runtime, {
181
+ label: "environment-data:server:remove-keybinding",
182
+ tag: WS_METHODS.serverRemoveKeybinding,
183
+ scheduler: configScheduler,
184
+ concurrency: configConcurrency
185
+ }),
186
+ updateSettings: createEnvironmentRpcCommand(runtime, {
187
+ label: "environment-data:server:update-settings",
188
+ tag: WS_METHODS.serverUpdateSettings,
189
+ scheduler: configScheduler,
190
+ concurrency: configConcurrency
191
+ }),
192
+ signalProcess: createEnvironmentRpcCommand(runtime, {
193
+ label: "environment-data:server:signal-process",
194
+ tag: WS_METHODS.serverSignalProcess
195
+ }),
196
+ retryResourceTelemetry: createEnvironmentRpcCommand(runtime, {
197
+ label: "environment-data:server:retry-resource-telemetry",
198
+ tag: WS_METHODS.serverRetryResourceTelemetry,
199
+ concurrency: {
200
+ mode: "singleFlight",
201
+ key: ({ environmentId }) => environmentId
202
+ }
203
+ })
204
+ };
205
+ }
206
+ //#endregion
207
+ export { applyServerConfigProjection, createServerEnvironmentAtoms, makeEnvironmentServerConfigState, projectServerConfig, projectServerWelcome, resolveServerConfigValue, serverConfigStateChanges };