ryco-cli 0.1.5 → 0.1.6

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 (181) hide show
  1. package/README.md +50 -2
  2. package/dist/{AzureDevOpsSourceControlProvider-CdgNqZ5j.cjs → AzureDevOpsSourceControlProvider-6holYS_D.cjs} +2 -2
  3. package/dist/{AzureDevOpsSourceControlProvider-OsyDSESj.mjs → AzureDevOpsSourceControlProvider-CC2_COxP.mjs} +3 -3
  4. package/dist/{BitbucketSourceControlProvider-SQ3gKdFs.mjs → BitbucketSourceControlProvider-CYR_BD1d.mjs} +3 -3
  5. package/dist/{BitbucketSourceControlProvider-DBTH98i4.cjs → BitbucketSourceControlProvider-a0IsNFyG.cjs} +2 -2
  6. package/dist/{BunPTY-B_vjRZN4.mjs → BunPTY-BWhtEA50.mjs} +1 -1
  7. package/dist/{ClaudeDriver-D9yC2F0b.cjs → ClaudeDriver-C6tQNEWO.cjs} +12 -6
  8. package/dist/{ClaudeDriver-2dTtrsFD.mjs → ClaudeDriver-D3nsxwH9.mjs} +13 -7
  9. package/dist/{CodexDriver-CIDYevQX.mjs → CodexDriver-BILrJG8o.mjs} +14 -7
  10. package/dist/{CodexDriver-BC2B-qpT.cjs → CodexDriver-ms_YgFD7.cjs} +13 -6
  11. package/dist/{CodexTextGeneration-CjknB1Xl.mjs → CodexTextGeneration-BIKHl7E3.mjs} +4 -4
  12. package/dist/{CodexTextGeneration-DNeO-8GE.cjs → CodexTextGeneration-CHEgoANm.cjs} +3 -3
  13. package/dist/{CopilotDriver-BGChrP5c.cjs → CopilotDriver-B0--ZwIK.cjs} +14 -7
  14. package/dist/{CopilotDriver-NPhlLrk2.mjs → CopilotDriver-CmD3Ffyl.mjs} +15 -8
  15. package/dist/{CursorDriver-BcAVbT8D.mjs → CursorDriver-CbeaIbdb.mjs} +5 -5
  16. package/dist/{CursorDriver-CYxn4_c1.cjs → CursorDriver-DTVPXZ-R.cjs} +4 -4
  17. package/dist/{ForgejoSourceControlProvider-BjCE3730.mjs → ForgejoSourceControlProvider-DX6d9gvz.mjs} +3 -3
  18. package/dist/{ForgejoSourceControlProvider-D3wP2Cav.cjs → ForgejoSourceControlProvider-DwAog76b.cjs} +2 -2
  19. package/dist/{GitHubSourceControlProvider-DU_7IvMa.cjs → GitHubSourceControlProvider-9lJFzjsu.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-DByZ_cnw.mjs → GitHubSourceControlProvider-C-LGwho3.mjs} +3 -3
  21. package/dist/{GitLabSourceControlProvider-BdMCIjXb.mjs → GitLabSourceControlProvider-CkeT2aEx.mjs} +3 -3
  22. package/dist/{GitLabSourceControlProvider-BVJ5IqTS.cjs → GitLabSourceControlProvider-CvKA74lg.cjs} +2 -2
  23. package/dist/{Metrics-BCOc3Ml2.mjs → Metrics-6Xj17Se3.mjs} +94 -2
  24. package/dist/{Metrics-DNOriWhP.cjs → Metrics-CIW1QH7M.cjs} +128 -0
  25. package/dist/{NodePTY-_u3kQLvd.mjs → NodePTY-C_cR3Ayy.mjs} +1 -1
  26. package/dist/{OpenCodeDriver-DyR83FcY.cjs → OpenCodeDriver-CXUsnl5o.cjs} +13 -7
  27. package/dist/{OpenCodeDriver-fwqXoVyH.mjs → OpenCodeDriver-ClWtCk0j.mjs} +14 -8
  28. package/dist/{SourceControlProviderDiscoveryCatalog-DqQVhwYM.cjs → SourceControlProviderDiscoveryCatalog-_rg0mc1o.cjs} +98 -98
  29. package/dist/{SourceControlProviderDiscoveryCatalog-CQiMyDCC.mjs → SourceControlProviderDiscoveryCatalog-yMDer_Yh.mjs} +99 -99
  30. package/dist/bin.cjs +32298 -31164
  31. package/dist/bin.mjs +32447 -31314
  32. package/dist/client/assets/{AnimatedHeight-CYuVQOpY.js → AnimatedHeight-DgItDSis.js} +1 -1
  33. package/dist/client/assets/AppearanceSettings-BlsMFBvJ.js +1 -0
  34. package/dist/client/assets/BranchToolbar.logic-C_xHEt9C.js +1 -0
  35. package/dist/client/assets/ChatRightPanel-CThudBb1.js +188 -0
  36. package/dist/client/assets/ChatThreadRouteView-CV6ETYG5.js +1 -0
  37. package/dist/client/assets/CommandPaletteDialog-C_H7R8S5.js +1 -0
  38. package/dist/client/assets/CompositeRoot-DjnzUIwC.js +1 -0
  39. package/dist/client/assets/ConnectionsSettings-hArR4Oe3.js +1 -0
  40. package/dist/client/assets/DiagnosticsSettings-B340S_mq.js +1 -0
  41. package/dist/client/assets/DialogHandle-BJY7cHCV.js +1 -0
  42. package/dist/client/assets/{DialogRoot-DaMwpoP_.js → DialogRoot-Ej1FVk-_.js} +1 -1
  43. package/dist/client/assets/DialogTitle-H1yIMmA9.js +1 -0
  44. package/dist/client/assets/DialogTrigger-BHMq_K2G.js +1 -0
  45. package/dist/client/assets/DialogViewport-DvjAl76K.js +1 -0
  46. package/dist/client/assets/DraftChatThreadRouteView-pOkyeKPS.js +1 -0
  47. package/dist/client/assets/JetBrainsIcons-DTTF47I0.js +1 -0
  48. package/dist/client/assets/KeybindingsSettings-CW3RRi-7.js +7 -0
  49. package/dist/client/assets/McpServersSettings-dQ3BzOWY.js +6 -0
  50. package/dist/client/assets/NoActiveThreadState-DVHwrkCp.js +1 -0
  51. package/dist/client/assets/OpinionatedPluginsSettings-Cjj23Fs4.js +1 -0
  52. package/dist/client/assets/ProjectFavicon-TDP7HRfn.js +1 -0
  53. package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-BFzNCo3I.js → ProviderUpdateLaunchNotification.logic-6TpFsmiI.js} +1 -1
  54. package/dist/client/assets/ProvidersSettingsPanel-D15EeWAq.js +1 -0
  55. package/dist/client/assets/{RedactedSensitiveText-UnZZJnFF.js → RedactedSensitiveText-BfoVjPsE.js} +1 -1
  56. package/dist/client/assets/RootAppShell-CWBPSA2w.js +12 -0
  57. package/dist/client/assets/SettingsDialog-oJCE5foT.js +2 -0
  58. package/dist/client/assets/SourceControlSettings-CPnlMxNm.js +1 -0
  59. package/dist/client/assets/ThreadStatusIndicators-B0leIJGD.js +1 -0
  60. package/dist/client/assets/{ThreadTerminalDrawer-BXoXAbsR.js → ThreadTerminalDrawer-COq2Fk17.js} +3 -3
  61. package/dist/client/assets/ThreadWorkspacePanel-qF9y6QT9.js +166 -0
  62. package/dist/client/assets/{alert-dialog-BJQbh5gX.js → alert-dialog-lMfKpG2t.js} +1 -1
  63. package/dist/client/assets/{chatThreadActions--n7v5mnB.js → chatThreadActions-PPyTj_x0.js} +1 -1
  64. package/dist/client/assets/{clamp-NYtK3f5s.js → clamp-JiD4IZ0Z.js} +1 -1
  65. package/dist/client/assets/clipboard-copy-CYBLSG2q.js +1 -0
  66. package/dist/client/assets/commandPaletteStore-uVfCD7zE.js +1 -0
  67. package/dist/client/assets/composerDraftStore-D12lUSfh.js +21 -0
  68. package/dist/client/assets/desktopUpdateAtoms-X6uM5SoD.js +2 -0
  69. package/dist/client/assets/{download-Bi4-cFbc.js → download-DLBlpp4h.js} +1 -1
  70. package/dist/client/assets/{draft-input-BGSRgOW7.js → draft-input-dLlVMl5P.js} +1 -1
  71. package/dist/client/assets/editorPreferences-BLeEBSD_.js +1 -0
  72. package/dist/client/assets/empty-DlLY-Hhj.js +1 -0
  73. package/dist/client/assets/{folder-open-DJmHEPv9.js → folder-open-DMjz0lpx.js} +1 -1
  74. package/dist/client/assets/{group-Dwm-OV-r.js → group-zDBPF7rR.js} +1 -1
  75. package/dist/client/assets/{index-BI5yFj9n.js → index-Dq8sT2lF.js} +2 -2
  76. package/dist/client/assets/{input-BfUa3JUD.js → input-B9-RWT56.js} +1 -1
  77. package/dist/client/assets/kbd-aeSsjiPI.js +1 -0
  78. package/dist/client/assets/{keybindings--G1bkIjA.js → keybindings-Dx4Nc1vY.js} +1 -1
  79. package/dist/client/assets/{keyboard-B87VTfPa.js → keyboard-DDTWQkr0.js} +1 -1
  80. package/dist/client/assets/keyedQuery-Ds4OGhX2.js +0 -0
  81. package/dist/client/assets/main-C57RhHZ_.css +2 -0
  82. package/dist/client/assets/main-DxfpmoKJ.js +9 -0
  83. package/dist/client/assets/palette-BQcz-ZYV.js +1 -0
  84. package/dist/client/assets/play-QloDGe4R.js +1 -0
  85. package/dist/client/assets/plus-4Oy56d-3.js +1 -0
  86. package/dist/client/assets/projectAtoms-DUEBb7Zz.js +1 -0
  87. package/dist/client/assets/providerDriverMeta-Dwi6Zqgd.js +1 -0
  88. package/dist/client/assets/providerIconUtils-uhWb4bdg.js +47 -0
  89. package/dist/client/assets/radio-group-DHyQlLeX.js +1 -0
  90. package/dist/client/assets/{refresh-cw-CRxaXR0E.js → refresh-cw-DkBMGllm.js} +1 -1
  91. package/dist/client/assets/{resolveAriaLabelledBy-D4fWpj84.js → resolveAriaLabelledBy-DDfIbj05.js} +1 -1
  92. package/dist/client/assets/rightPanelRouteSearch-DfuWVvXN.js +1 -0
  93. package/dist/client/assets/scale-BActunFu.js +1 -0
  94. package/dist/client/assets/scroll-area-D-YOUG02.js +1 -0
  95. package/dist/client/assets/separator-TInKeIDo.js +1 -0
  96. package/dist/client/assets/{server-tdx7WxLI.js → server-BtEG3NAw.js} +1 -1
  97. package/dist/client/assets/session-logic-DNf1aXq_.js +4 -0
  98. package/dist/client/assets/settingsDialogStore-BINi7pdD.js +1 -0
  99. package/dist/client/assets/settingsLayout-D22Mm0u3.js +1 -0
  100. package/dist/client/assets/shallow-Dmd-gez1.js +1 -0
  101. package/dist/client/assets/{sidebar-Bbdql7Af.js → sidebar-DHwNQmWp.js} +1 -1
  102. package/dist/client/assets/skeleton-DWaac_qp.js +1 -0
  103. package/dist/client/assets/storeSelectors-Cx1IYPA4.js +1 -0
  104. package/dist/client/assets/threadSelectionStore-C0ig4405.js +1 -0
  105. package/dist/client/assets/toast-DE7a4wkW.js +1 -0
  106. package/dist/client/assets/toggle-BIW4AyPY.js +1 -0
  107. package/dist/client/assets/{toggle-group-DdKXHoT3.js → toggle-group-CnLjaHSL.js} +1 -1
  108. package/dist/client/assets/tokenModePresentation-BSYdIvBm.js +1 -0
  109. package/dist/client/assets/{trash-2-CZQem-sz.js → trash-2-BI5xcbsm.js} +1 -1
  110. package/dist/client/assets/triangle-alert-DJef_Uvh.js +1 -0
  111. package/dist/client/assets/undo-2-DeZ2cMGS.js +1 -0
  112. package/dist/client/assets/useHandleNewThread-XB82O6SA.js +1 -0
  113. package/dist/client/assets/useLabelableId-DBAgv9qQ.js +1 -0
  114. package/dist/client/assets/useNavigate-B2tgshhW.js +1 -0
  115. package/dist/client/assets/useTheme-Dv42Z8uy.js +1 -0
  116. package/dist/client/assets/{vscode-icons-E8NUFd62.js → vscode-icons-DM9qFoEr.js} +1 -1
  117. package/dist/client/assets/{wrench-DEteICtk.js → wrench-je4QOyG-.js} +1 -1
  118. package/dist/client/assets/x-fI9snvD3.js +1 -0
  119. package/dist/client/index.html +1 -1
  120. package/dist/{collectUint8StreamText-DuFJyaQh.mjs → collectUint8StreamText-C2z5Y8tF.mjs} +220 -3
  121. package/dist/{collectUint8StreamText-DbCOJom3.cjs → collectUint8StreamText-TCG6xW_P.cjs} +220 -3
  122. package/dist/{makeManagedServerProvider-wFGZ2-vd.mjs → makeManagedServerProvider-BXO8QvzC.mjs} +2 -2
  123. package/dist/{makeManagedServerProvider-C3cQUDkZ.cjs → makeManagedServerProvider-DPFw9gV_.cjs} +1 -1
  124. package/package.json +1 -1
  125. package/dist/client/assets/AppearanceSettings-BBbC8CV5.js +0 -1
  126. package/dist/client/assets/BranchToolbar.logic-Di2EkKiO.js +0 -1
  127. package/dist/client/assets/ChatRightPanel-BJ_cVP66.js +0 -188
  128. package/dist/client/assets/ChatThreadRouteView-DmxD3m2U.js +0 -1
  129. package/dist/client/assets/CommandPaletteDialog-CAzz6bsT.js +0 -1
  130. package/dist/client/assets/CompositeRoot-BvXCwn2c.js +0 -1
  131. package/dist/client/assets/ConnectionsSettings-Cmxm0y2u.js +0 -1
  132. package/dist/client/assets/DialogHandle-CXNAm3QY.js +0 -1
  133. package/dist/client/assets/DialogTitle-KXmfgzP3.js +0 -1
  134. package/dist/client/assets/DialogTrigger-NHyQnW3X.js +0 -1
  135. package/dist/client/assets/DialogViewport-CL0WR9a5.js +0 -1
  136. package/dist/client/assets/DraftChatThreadRouteView-C_hqauF6.js +0 -1
  137. package/dist/client/assets/JetBrainsIcons-BcR8pCma.js +0 -1
  138. package/dist/client/assets/KeybindingsSettings-m2AteGOl.js +0 -7
  139. package/dist/client/assets/McpServersSettings-DndIDxgA.js +0 -6
  140. package/dist/client/assets/NoActiveThreadState-Bt-Wkv-C.js +0 -1
  141. package/dist/client/assets/OpinionatedPluginsSettings-oDtdE6qx.js +0 -1
  142. package/dist/client/assets/ProjectFavicon-j9IX_7-B.js +0 -1
  143. package/dist/client/assets/ProvidersSettingsPanel-CvlIBNVJ.js +0 -1
  144. package/dist/client/assets/QueryClientProvider-BZxRKpeb.js +0 -1
  145. package/dist/client/assets/RootAppShell-CyHZ_F5P.js +0 -12
  146. package/dist/client/assets/SettingsDialog-BYJ8AhQp.js +0 -2
  147. package/dist/client/assets/SourceControlSettings-7xU6VH6N.js +0 -1
  148. package/dist/client/assets/ThreadStatusIndicators-M9FWDEex.js +0 -1
  149. package/dist/client/assets/ThreadWorkspacePanel-D1J63TVD.js +0 -166
  150. package/dist/client/assets/codexUsageLimits-BJQiZCqn.js +0 -1
  151. package/dist/client/assets/commandPaletteStore-oFMPKPmp.js +0 -1
  152. package/dist/client/assets/composerDraftStore-xu3n5gdX.js +0 -21
  153. package/dist/client/assets/desktopUpdateReactQuery-YSCkifKp.js +0 -2
  154. package/dist/client/assets/empty-BTxheW4B.js +0 -1
  155. package/dist/client/assets/environmentApi-BFHi_M02.js +0 -1
  156. package/dist/client/assets/kbd-Dd57M8OY.js +0 -1
  157. package/dist/client/assets/main-BQf5U-fz.js +0 -9
  158. package/dist/client/assets/main-DrwkwNo9.css +0 -2
  159. package/dist/client/assets/mutation-DJZgOJRu.js +0 -1
  160. package/dist/client/assets/plus-B10j9MbZ.js +0 -1
  161. package/dist/client/assets/providerDriverMeta-B6xuq7ij.js +0 -1
  162. package/dist/client/assets/providerIconUtils-Ch6hejVW.js +0 -47
  163. package/dist/client/assets/rightPanelRouteSearch-CTMFCS6R.js +0 -1
  164. package/dist/client/assets/scroll-area-BgFq7GRd.js +0 -1
  165. package/dist/client/assets/separator-CB3Ctlvi.js +0 -1
  166. package/dist/client/assets/session-logic-CaiGe4hy.js +0 -4
  167. package/dist/client/assets/settingsDialogStore-9vo22xKp.js +0 -1
  168. package/dist/client/assets/settingsLayout-B5o13iGO.js +0 -1
  169. package/dist/client/assets/skeleton-C8OZcsPq.js +0 -1
  170. package/dist/client/assets/storeSelectors-DBRyhCGm.js +0 -1
  171. package/dist/client/assets/threadRoutes-CfldSp4X.js +0 -1
  172. package/dist/client/assets/threadSelectionStore-BggKwzmQ.js +0 -1
  173. package/dist/client/assets/toast-DE-WwLMa.js +0 -1
  174. package/dist/client/assets/toggle-BFMa0a0Y.js +0 -1
  175. package/dist/client/assets/useHandleNewThread-DOPZAFqE.js +0 -1
  176. package/dist/client/assets/useLabelableId-BzWaBebJ.js +0 -1
  177. package/dist/client/assets/useNavigate-B1qgM5mt.js +0 -1
  178. package/dist/client/assets/useTheme-C7Ji7x06.js +0 -1
  179. package/dist/client/assets/x-b9324xm-.js +0 -1
  180. package/dist/{NodeSqliteClient-BXy61fAd.mjs → NodeSqliteClient-A1TEgwj_.mjs} +1 -1
  181. package/dist/{NodeSqliteClient-homCO8-6.cjs → NodeSqliteClient-B5aDHbNc.cjs} +2 -2
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const require_collectUint8StreamText = require("./collectUint8StreamText-DbCOJom3.cjs");
3
+ const require_collectUint8StreamText = require("./collectUint8StreamText-TCG6xW_P.cjs");
4
4
  let effect = require("effect");
5
5
  let effect_unstable_process = require("effect/unstable/process");
6
6
  //#region ../../packages/shared/src/schemaJson.ts
@@ -163,103 +163,6 @@ const make = effect.Effect.fn("makeVcsProcess")(function* () {
163
163
  });
164
164
  const layer = effect.Layer.effect(VcsProcess, make());
165
165
  //#endregion
166
- //#region src/sourceControl/SourceControlProvider.ts
167
- function parseSourceControlOwnerRef(headSelector) {
168
- const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
169
- const owner = match?.[1]?.trim();
170
- const refName = match?.[2]?.trim();
171
- return owner && refName ? {
172
- owner,
173
- refName
174
- } : void 0;
175
- }
176
- function normalizeSourceBranch(headSelector) {
177
- return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
178
- }
179
- function sourceBranch(input) {
180
- return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
181
- }
182
- function sourceControlRefFromInput(input) {
183
- return input.source ?? parseSourceControlOwnerRef(input.headSelector);
184
- }
185
- var SourceControlProvider = class extends effect.Context.Service()("ryco/source-control/SourceControlProvider") {};
186
- //#endregion
187
- //#region src/sourceControl/gitHubAuthStatus.ts
188
- const GitHubAuthStatusAccountSchema = effect.Schema.Struct({
189
- state: effect.Schema.String,
190
- error: effect.Schema.optional(effect.Schema.String),
191
- active: effect.Schema.Boolean,
192
- host: effect.Schema.String,
193
- login: effect.Schema.String
194
- });
195
- const GitHubAuthStatusSchema = effect.Schema.Struct({ hosts: effect.Schema.Record(effect.Schema.String, effect.Schema.Array(GitHubAuthStatusAccountSchema)) });
196
- const decodeGitHubAuthStatusJson = effect.Schema.decodeUnknownOption(effect.Schema.fromJsonString(GitHubAuthStatusSchema));
197
- function nonEmptyString(value) {
198
- const trimmed = value.trim();
199
- return trimmed.length > 0 ? trimmed : null;
200
- }
201
- function parseGitHubAuthStatus(text) {
202
- return effect.Option.match(decodeGitHubAuthStatusJson(text), {
203
- onNone: () => ({
204
- parsed: false,
205
- accounts: []
206
- }),
207
- onSome: (status) => ({
208
- parsed: true,
209
- accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
210
- const host = nonEmptyString(account.host);
211
- const login = nonEmptyString(account.login);
212
- if (host === null || login === null) return [];
213
- return [{
214
- host: host.toLowerCase(),
215
- account: login,
216
- authenticated: account.state === "success",
217
- active: account.active,
218
- error: account.error?.trim() || null
219
- }];
220
- }))
221
- })
222
- });
223
- }
224
- function findAuthenticatedGitHubAccount(accounts) {
225
- return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
226
- }
227
- //#endregion
228
- //#region src/sourceControl/gitLabAuthStatus.ts
229
- const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
230
- const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
231
- function parseGitLabAuthStatusHosts(text) {
232
- const hosts = [];
233
- let currentHost = null;
234
- let currentLines = [];
235
- const flush = () => {
236
- if (currentHost === null) return;
237
- const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
238
- hosts.push({
239
- host: currentHost,
240
- account,
241
- authenticated: account !== null
242
- });
243
- currentHost = null;
244
- currentLines = [];
245
- };
246
- for (const rawLine of text.split(/\r?\n/)) {
247
- const line = rawLine.trim();
248
- if (line.length === 0) continue;
249
- if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
250
- flush();
251
- currentHost = line.toLowerCase();
252
- continue;
253
- }
254
- if (currentHost !== null) currentLines.push(line);
255
- }
256
- flush();
257
- return hosts;
258
- }
259
- function findAuthenticatedGitLabHost(hosts) {
260
- return hosts.find((host) => host.authenticated);
261
- }
262
- //#endregion
263
166
  //#region src/sourceControl/SourceControlProviderDiscovery.ts
264
167
  function firstNonEmptyLine(text) {
265
168
  const line = text.split(/\r?\n/).map((entry) => entry.trim()).find((entry) => entry.length > 0);
@@ -404,6 +307,103 @@ const refineUnknownRemoteProvider = effect.Effect.fn("refineUnknownRemoteProvide
404
307
  } : context;
405
308
  });
406
309
  //#endregion
310
+ //#region src/sourceControl/SourceControlProvider.ts
311
+ function parseSourceControlOwnerRef(headSelector) {
312
+ const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
313
+ const owner = match?.[1]?.trim();
314
+ const refName = match?.[2]?.trim();
315
+ return owner && refName ? {
316
+ owner,
317
+ refName
318
+ } : void 0;
319
+ }
320
+ function normalizeSourceBranch(headSelector) {
321
+ return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
322
+ }
323
+ function sourceBranch(input) {
324
+ return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
325
+ }
326
+ function sourceControlRefFromInput(input) {
327
+ return input.source ?? parseSourceControlOwnerRef(input.headSelector);
328
+ }
329
+ var SourceControlProvider = class extends effect.Context.Service()("ryco/source-control/SourceControlProvider") {};
330
+ //#endregion
331
+ //#region src/sourceControl/gitHubAuthStatus.ts
332
+ const GitHubAuthStatusAccountSchema = effect.Schema.Struct({
333
+ state: effect.Schema.String,
334
+ error: effect.Schema.optional(effect.Schema.String),
335
+ active: effect.Schema.Boolean,
336
+ host: effect.Schema.String,
337
+ login: effect.Schema.String
338
+ });
339
+ const GitHubAuthStatusSchema = effect.Schema.Struct({ hosts: effect.Schema.Record(effect.Schema.String, effect.Schema.Array(GitHubAuthStatusAccountSchema)) });
340
+ const decodeGitHubAuthStatusJson = effect.Schema.decodeUnknownOption(effect.Schema.fromJsonString(GitHubAuthStatusSchema));
341
+ function nonEmptyString(value) {
342
+ const trimmed = value.trim();
343
+ return trimmed.length > 0 ? trimmed : null;
344
+ }
345
+ function parseGitHubAuthStatus(text) {
346
+ return effect.Option.match(decodeGitHubAuthStatusJson(text), {
347
+ onNone: () => ({
348
+ parsed: false,
349
+ accounts: []
350
+ }),
351
+ onSome: (status) => ({
352
+ parsed: true,
353
+ accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
354
+ const host = nonEmptyString(account.host);
355
+ const login = nonEmptyString(account.login);
356
+ if (host === null || login === null) return [];
357
+ return [{
358
+ host: host.toLowerCase(),
359
+ account: login,
360
+ authenticated: account.state === "success",
361
+ active: account.active,
362
+ error: account.error?.trim() || null
363
+ }];
364
+ }))
365
+ })
366
+ });
367
+ }
368
+ function findAuthenticatedGitHubAccount(accounts) {
369
+ return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
370
+ }
371
+ //#endregion
372
+ //#region src/sourceControl/gitLabAuthStatus.ts
373
+ const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
374
+ const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
375
+ function parseGitLabAuthStatusHosts(text) {
376
+ const hosts = [];
377
+ let currentHost = null;
378
+ let currentLines = [];
379
+ const flush = () => {
380
+ if (currentHost === null) return;
381
+ const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
382
+ hosts.push({
383
+ host: currentHost,
384
+ account,
385
+ authenticated: account !== null
386
+ });
387
+ currentHost = null;
388
+ currentLines = [];
389
+ };
390
+ for (const rawLine of text.split(/\r?\n/)) {
391
+ const line = rawLine.trim();
392
+ if (line.length === 0) continue;
393
+ if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
394
+ flush();
395
+ currentHost = line.toLowerCase();
396
+ continue;
397
+ }
398
+ if (currentHost !== null) currentLines.push(line);
399
+ }
400
+ flush();
401
+ return hosts;
402
+ }
403
+ function findAuthenticatedGitLabHost(hosts) {
404
+ return hosts.find((host) => host.authenticated);
405
+ }
406
+ //#endregion
407
407
  //#region src/sourceControl/SourceControlProviderDiscoveryCatalog.ts
408
408
  function parseGitHubAuth(input) {
409
409
  const output = combinedAuthOutput(input);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { An as VcsProcessTimeoutError, Dn as VcsOutputDecodeError, On as VcsProcessExitError, kn as VcsProcessSpawnError, t as collectUint8StreamText } from "./collectUint8StreamText-DuFJyaQh.mjs";
3
+ import { An as VcsProcessTimeoutError, Dn as VcsOutputDecodeError, On as VcsProcessExitError, kn as VcsProcessSpawnError, t as collectUint8StreamText } from "./collectUint8StreamText-C2z5Y8tF.mjs";
4
4
  import { Cause, Context, Duration, Effect, Exit, Layer, Option, Result, Schema, SchemaGetter, SchemaIssue, SchemaTransformation, Sink, Stream } from "effect";
5
5
  import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
6
6
  //#region ../../packages/shared/src/schemaJson.ts
@@ -163,103 +163,6 @@ const make = Effect.fn("makeVcsProcess")(function* () {
163
163
  });
164
164
  const layer = Layer.effect(VcsProcess, make());
165
165
  //#endregion
166
- //#region src/sourceControl/SourceControlProvider.ts
167
- function parseSourceControlOwnerRef(headSelector) {
168
- const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
169
- const owner = match?.[1]?.trim();
170
- const refName = match?.[2]?.trim();
171
- return owner && refName ? {
172
- owner,
173
- refName
174
- } : void 0;
175
- }
176
- function normalizeSourceBranch(headSelector) {
177
- return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
178
- }
179
- function sourceBranch(input) {
180
- return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
181
- }
182
- function sourceControlRefFromInput(input) {
183
- return input.source ?? parseSourceControlOwnerRef(input.headSelector);
184
- }
185
- var SourceControlProvider = class extends Context.Service()("ryco/source-control/SourceControlProvider") {};
186
- //#endregion
187
- //#region src/sourceControl/gitHubAuthStatus.ts
188
- const GitHubAuthStatusAccountSchema = Schema.Struct({
189
- state: Schema.String,
190
- error: Schema.optional(Schema.String),
191
- active: Schema.Boolean,
192
- host: Schema.String,
193
- login: Schema.String
194
- });
195
- const GitHubAuthStatusSchema = Schema.Struct({ hosts: Schema.Record(Schema.String, Schema.Array(GitHubAuthStatusAccountSchema)) });
196
- const decodeGitHubAuthStatusJson = Schema.decodeUnknownOption(Schema.fromJsonString(GitHubAuthStatusSchema));
197
- function nonEmptyString(value) {
198
- const trimmed = value.trim();
199
- return trimmed.length > 0 ? trimmed : null;
200
- }
201
- function parseGitHubAuthStatus(text) {
202
- return Option.match(decodeGitHubAuthStatusJson(text), {
203
- onNone: () => ({
204
- parsed: false,
205
- accounts: []
206
- }),
207
- onSome: (status) => ({
208
- parsed: true,
209
- accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
210
- const host = nonEmptyString(account.host);
211
- const login = nonEmptyString(account.login);
212
- if (host === null || login === null) return [];
213
- return [{
214
- host: host.toLowerCase(),
215
- account: login,
216
- authenticated: account.state === "success",
217
- active: account.active,
218
- error: account.error?.trim() || null
219
- }];
220
- }))
221
- })
222
- });
223
- }
224
- function findAuthenticatedGitHubAccount(accounts) {
225
- return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
226
- }
227
- //#endregion
228
- //#region src/sourceControl/gitLabAuthStatus.ts
229
- const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
230
- const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
231
- function parseGitLabAuthStatusHosts(text) {
232
- const hosts = [];
233
- let currentHost = null;
234
- let currentLines = [];
235
- const flush = () => {
236
- if (currentHost === null) return;
237
- const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
238
- hosts.push({
239
- host: currentHost,
240
- account,
241
- authenticated: account !== null
242
- });
243
- currentHost = null;
244
- currentLines = [];
245
- };
246
- for (const rawLine of text.split(/\r?\n/)) {
247
- const line = rawLine.trim();
248
- if (line.length === 0) continue;
249
- if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
250
- flush();
251
- currentHost = line.toLowerCase();
252
- continue;
253
- }
254
- if (currentHost !== null) currentLines.push(line);
255
- }
256
- flush();
257
- return hosts;
258
- }
259
- function findAuthenticatedGitLabHost(hosts) {
260
- return hosts.find((host) => host.authenticated);
261
- }
262
- //#endregion
263
166
  //#region src/sourceControl/SourceControlProviderDiscovery.ts
264
167
  function firstNonEmptyLine(text) {
265
168
  const line = text.split(/\r?\n/).map((entry) => entry.trim()).find((entry) => entry.length > 0);
@@ -404,6 +307,103 @@ const refineUnknownRemoteProvider = Effect.fn("refineUnknownRemoteProvider")(fun
404
307
  } : context;
405
308
  });
406
309
  //#endregion
310
+ //#region src/sourceControl/SourceControlProvider.ts
311
+ function parseSourceControlOwnerRef(headSelector) {
312
+ const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
313
+ const owner = match?.[1]?.trim();
314
+ const refName = match?.[2]?.trim();
315
+ return owner && refName ? {
316
+ owner,
317
+ refName
318
+ } : void 0;
319
+ }
320
+ function normalizeSourceBranch(headSelector) {
321
+ return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
322
+ }
323
+ function sourceBranch(input) {
324
+ return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
325
+ }
326
+ function sourceControlRefFromInput(input) {
327
+ return input.source ?? parseSourceControlOwnerRef(input.headSelector);
328
+ }
329
+ var SourceControlProvider = class extends Context.Service()("ryco/source-control/SourceControlProvider") {};
330
+ //#endregion
331
+ //#region src/sourceControl/gitHubAuthStatus.ts
332
+ const GitHubAuthStatusAccountSchema = Schema.Struct({
333
+ state: Schema.String,
334
+ error: Schema.optional(Schema.String),
335
+ active: Schema.Boolean,
336
+ host: Schema.String,
337
+ login: Schema.String
338
+ });
339
+ const GitHubAuthStatusSchema = Schema.Struct({ hosts: Schema.Record(Schema.String, Schema.Array(GitHubAuthStatusAccountSchema)) });
340
+ const decodeGitHubAuthStatusJson = Schema.decodeUnknownOption(Schema.fromJsonString(GitHubAuthStatusSchema));
341
+ function nonEmptyString(value) {
342
+ const trimmed = value.trim();
343
+ return trimmed.length > 0 ? trimmed : null;
344
+ }
345
+ function parseGitHubAuthStatus(text) {
346
+ return Option.match(decodeGitHubAuthStatusJson(text), {
347
+ onNone: () => ({
348
+ parsed: false,
349
+ accounts: []
350
+ }),
351
+ onSome: (status) => ({
352
+ parsed: true,
353
+ accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
354
+ const host = nonEmptyString(account.host);
355
+ const login = nonEmptyString(account.login);
356
+ if (host === null || login === null) return [];
357
+ return [{
358
+ host: host.toLowerCase(),
359
+ account: login,
360
+ authenticated: account.state === "success",
361
+ active: account.active,
362
+ error: account.error?.trim() || null
363
+ }];
364
+ }))
365
+ })
366
+ });
367
+ }
368
+ function findAuthenticatedGitHubAccount(accounts) {
369
+ return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
370
+ }
371
+ //#endregion
372
+ //#region src/sourceControl/gitLabAuthStatus.ts
373
+ const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
374
+ const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
375
+ function parseGitLabAuthStatusHosts(text) {
376
+ const hosts = [];
377
+ let currentHost = null;
378
+ let currentLines = [];
379
+ const flush = () => {
380
+ if (currentHost === null) return;
381
+ const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
382
+ hosts.push({
383
+ host: currentHost,
384
+ account,
385
+ authenticated: account !== null
386
+ });
387
+ currentHost = null;
388
+ currentLines = [];
389
+ };
390
+ for (const rawLine of text.split(/\r?\n/)) {
391
+ const line = rawLine.trim();
392
+ if (line.length === 0) continue;
393
+ if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
394
+ flush();
395
+ currentHost = line.toLowerCase();
396
+ continue;
397
+ }
398
+ if (currentHost !== null) currentLines.push(line);
399
+ }
400
+ flush();
401
+ return hosts;
402
+ }
403
+ function findAuthenticatedGitLabHost(hosts) {
404
+ return hosts.find((host) => host.authenticated);
405
+ }
406
+ //#endregion
407
407
  //#region src/sourceControl/SourceControlProviderDiscoveryCatalog.ts
408
408
  function parseGitHubAuth(input) {
409
409
  const output = combinedAuthOutput(input);
@@ -566,4 +566,4 @@ function makeForgejoDiscovery(forgejo) {
566
566
  };
567
567
  }
568
568
  //#endregion
569
- export { formatSchemaError as _, makeForgejoDiscovery as a, probeSourceControlProvider as c, parseSourceControlOwnerRef as d, sourceBranch as f, decodeJsonResult as g, layer as h, makeBitbucketDiscovery as i, refineUnknownRemoteProvider as l, VcsProcess as m, githubDiscovery as n, detailFromCause as o, sourceControlRefFromInput as p, gitlabDiscovery as r, firstNonEmptyLine as s, azureDevOpsDiscovery as t, SourceControlProvider as u, fromLenientJson as v };
569
+ export { formatSchemaError as _, makeForgejoDiscovery as a, sourceBranch as c, firstNonEmptyLine as d, probeSourceControlProvider as f, decodeJsonResult as g, layer as h, makeBitbucketDiscovery as i, sourceControlRefFromInput as l, VcsProcess as m, githubDiscovery as n, SourceControlProvider as o, refineUnknownRemoteProvider as p, gitlabDiscovery as r, parseSourceControlOwnerRef as s, azureDevOpsDiscovery as t, detailFromCause as u, fromLenientJson as v };