ryco-cli 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -2
- package/dist/{AzureDevOpsSourceControlProvider-CdgNqZ5j.cjs → AzureDevOpsSourceControlProvider-5exivY-1.cjs} +2 -2
- package/dist/{AzureDevOpsSourceControlProvider-OsyDSESj.mjs → AzureDevOpsSourceControlProvider-CF5LuCHp.mjs} +3 -3
- package/dist/{BitbucketSourceControlProvider-DBTH98i4.cjs → BitbucketSourceControlProvider-1GWENqcl.cjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-SQ3gKdFs.mjs → BitbucketSourceControlProvider-CKH09tfT.mjs} +3 -3
- package/dist/{BunPTY-B_vjRZN4.mjs → BunPTY-BWhtEA50.mjs} +1 -1
- package/dist/{ClaudeDriver-D9yC2F0b.cjs → ClaudeDriver-BXLdjrht.cjs} +187 -8
- package/dist/{ClaudeDriver-2dTtrsFD.mjs → ClaudeDriver-WwWFTu61.mjs} +188 -9
- package/dist/{CodexDriver-CIDYevQX.mjs → CodexDriver-93-TmCrO.mjs} +16 -8
- package/dist/{CodexDriver-BC2B-qpT.cjs → CodexDriver-BboMT9uk.cjs} +15 -7
- package/dist/{CodexTextGeneration-DNeO-8GE.cjs → CodexTextGeneration-0pRbJji3.cjs} +3 -3
- package/dist/{CodexTextGeneration-CjknB1Xl.mjs → CodexTextGeneration-BU9Myn87.mjs} +4 -4
- package/dist/{CopilotDriver-NPhlLrk2.mjs → CopilotDriver-BASi8pJ0.mjs} +15 -8
- package/dist/{CopilotDriver-BGChrP5c.cjs → CopilotDriver-DCsv-17W.cjs} +14 -7
- package/dist/{CursorDriver-CYxn4_c1.cjs → CursorDriver-BTSiM3A8.cjs} +163 -16
- package/dist/{CursorDriver-BcAVbT8D.mjs → CursorDriver-D5LvIqUk.mjs} +164 -17
- package/dist/{ForgejoSourceControlProvider-D3wP2Cav.cjs → ForgejoSourceControlProvider-BTXRDCGB.cjs} +2 -2
- package/dist/{ForgejoSourceControlProvider-BjCE3730.mjs → ForgejoSourceControlProvider-e-4hvvZ_.mjs} +3 -3
- package/dist/{GitHubSourceControlProvider-DByZ_cnw.mjs → GitHubSourceControlProvider-26IofDAO.mjs} +3 -3
- package/dist/{GitHubSourceControlProvider-DU_7IvMa.cjs → GitHubSourceControlProvider-DWmwkA_y.cjs} +2 -2
- package/dist/{GitLabSourceControlProvider-BVJ5IqTS.cjs → GitLabSourceControlProvider-D-YHnxRe.cjs} +2 -2
- package/dist/{GitLabSourceControlProvider-BdMCIjXb.mjs → GitLabSourceControlProvider-DePct78W.mjs} +3 -3
- package/dist/{Metrics-BCOc3Ml2.mjs → Metrics-6Xj17Se3.mjs} +94 -2
- package/dist/{Metrics-DNOriWhP.cjs → Metrics-CIW1QH7M.cjs} +128 -0
- package/dist/{NodePTY-_u3kQLvd.mjs → NodePTY-C_cR3Ayy.mjs} +1 -1
- package/dist/{OpenCodeDriver-fwqXoVyH.mjs → OpenCodeDriver-BhvLOmvn.mjs} +336 -43
- package/dist/{OpenCodeDriver-DyR83FcY.cjs → OpenCodeDriver-CVeZ4n9-.cjs} +335 -42
- package/dist/{SourceControlProviderDiscoveryCatalog-DqQVhwYM.cjs → SourceControlProviderDiscoveryCatalog-DeFR5xH3.cjs} +98 -161
- package/dist/{SourceControlProviderDiscoveryCatalog-CQiMyDCC.mjs → SourceControlProviderDiscoveryCatalog-mJV_Xitr.mjs} +100 -145
- package/dist/bin.cjs +30639 -28744
- package/dist/bin.mjs +30602 -28709
- package/dist/client/assets/{AnimatedHeight-CYuVQOpY.js → AnimatedHeight-BSU0lzYs.js} +1 -1
- package/dist/client/assets/AppearanceSettings-D7q0ujGK.js +1 -0
- package/dist/client/assets/BranchToolbar.logic-CZIFSvhd.js +1 -0
- package/dist/client/assets/ChatRightPanel-CWHOIuiQ.js +188 -0
- package/dist/client/assets/ChatThreadRouteView-bA7xWXzc.js +1 -0
- package/dist/client/assets/CommandPaletteDialog-DNYaVOZO.js +1 -0
- package/dist/client/assets/CompositeRoot-B_KEfCUE.js +1 -0
- package/dist/client/assets/ConnectionsSettings-CLZPbx_K.js +1 -0
- package/dist/client/assets/DiagnosticsSettings-DtzPCb6N.js +1 -0
- package/dist/client/assets/DialogHandle-DuHnmWoE.js +1 -0
- package/dist/client/assets/{DialogRoot-DaMwpoP_.js → DialogRoot-BV25qAcA.js} +1 -1
- package/dist/client/assets/DialogTitle-DQsi-RTa.js +1 -0
- package/dist/client/assets/DialogTrigger-D0fA01C6.js +1 -0
- package/dist/client/assets/DialogViewport-CMV_BePU.js +1 -0
- package/dist/client/assets/DraftChatThreadRouteView-BoiKnrii.js +1 -0
- package/dist/client/assets/JetBrainsIcons-BcPxJlMf.js +1 -0
- package/dist/client/assets/KeybindingsSettings-LuI98pdF.js +7 -0
- package/dist/client/assets/McpServersSettings-BFMuWYVV.js +6 -0
- package/dist/client/assets/NoActiveThreadState-C2q_O1kP.js +1 -0
- package/dist/client/assets/OpinionatedPluginsSettings-Bqwct37O.js +1 -0
- package/dist/client/assets/ProjectFavicon-D2imiJ8M.js +1 -0
- package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-BFzNCo3I.js → ProviderUpdateLaunchNotification.logic-CJgA--nK.js} +1 -1
- package/dist/client/assets/ProvidersSettingsPanel-B97vbeu6.js +1 -0
- package/dist/client/assets/{RedactedSensitiveText-UnZZJnFF.js → RedactedSensitiveText-B2GFTyfq.js} +1 -1
- package/dist/client/assets/RootAppShell-C1xTR98P.js +12 -0
- package/dist/client/assets/SettingsDialog-Q0Q8O5oH.js +2 -0
- package/dist/client/assets/SourceControlSettings-KAvoPTNi.js +1 -0
- package/dist/client/assets/StatisticsPanel-BzsQ444K.js +64 -0
- package/dist/client/assets/ThreadStatusIndicators-Cw_jLVQf.js +1 -0
- package/dist/client/assets/{ThreadTerminalDrawer-BXoXAbsR.js → ThreadTerminalDrawer-D1WnSemH.js} +17 -17
- package/dist/client/assets/ThreadWorkspacePanel-L4qCPTOA.js +166 -0
- package/dist/client/assets/{alert-dialog-BJQbh5gX.js → alert-dialog-CNmKa0BK.js} +1 -1
- package/dist/client/assets/chart-column-BWSKYZ_a.js +1 -0
- package/dist/client/assets/{chatThreadActions--n7v5mnB.js → chatThreadActions-TtDsiwDC.js} +1 -1
- package/dist/client/assets/chevron-up-zopJ_99l.js +1 -0
- package/dist/client/assets/{clamp-NYtK3f5s.js → clamp-Ds6WJu8j.js} +1 -1
- package/dist/client/assets/clipboard-copy-BoJGpdmJ.js +1 -0
- package/dist/client/assets/clock-CzUHThzk.js +1 -0
- package/dist/client/assets/commandPaletteStore-KebG835b.js +1 -0
- package/dist/client/assets/composerDraftStore-DpPEQ6BN.js +21 -0
- package/dist/client/assets/desktopUpdateAtoms-BQ0GGEfM.js +2 -0
- package/dist/client/assets/{download-Bi4-cFbc.js → download-CUiRE0N9.js} +1 -1
- package/dist/client/assets/{draft-input-BGSRgOW7.js → draft-input-CwpGDtoT.js} +1 -1
- package/dist/client/assets/editorPreferences-jN7DKbyt.js +1 -0
- package/dist/client/assets/empty-CBuXePtg.js +1 -0
- package/dist/client/assets/{group-Dwm-OV-r.js → group-BpZvxjG5.js} +1 -1
- package/dist/client/assets/{index-BI5yFj9n.js → index-BKzXTNJ_.js} +2 -2
- package/dist/client/assets/{input-BfUa3JUD.js → input-CgDawd6k.js} +1 -1
- package/dist/client/assets/kbd-QYSL97CK.js +1 -0
- package/dist/client/assets/{keybindings--G1bkIjA.js → keybindings-CUTRYI_A.js} +1 -1
- package/dist/client/assets/{keyboard-B87VTfPa.js → keyboard-DFFiI7JY.js} +1 -1
- package/dist/client/assets/keyedQuery-DiOCbGH0.js +0 -0
- package/dist/client/assets/main-BgFGju3e.js +9 -0
- package/dist/client/assets/main-D0UFdwts.css +2 -0
- package/dist/client/assets/palette-BXCL909c.js +1 -0
- package/dist/client/assets/play-DI2LZohg.js +1 -0
- package/dist/client/assets/plus-DzgIfHUF.js +1 -0
- package/dist/client/assets/projectAtoms-DXXpuERK.js +1 -0
- package/dist/client/assets/providerDriverMeta-CRNNp0q3.js +1 -0
- package/dist/client/assets/providerIconUtils-D-DFhem2.js +47 -0
- package/dist/client/assets/radio-group-_PPYg3YY.js +1 -0
- package/dist/client/assets/{refresh-cw-CRxaXR0E.js → refresh-cw-BsQTNBXl.js} +1 -1
- package/dist/client/assets/{resolveAriaLabelledBy-D4fWpj84.js → resolveAriaLabelledBy-CRHo_s16.js} +1 -1
- package/dist/client/assets/rightPanelRouteSearch-CfmZ7osj.js +1 -0
- package/dist/client/assets/scale-DDEJ-tvn.js +1 -0
- package/dist/client/assets/scroll-area-HgsI-ErG.js +1 -0
- package/dist/client/assets/separator-ClnL4mUB.js +1 -0
- package/dist/client/assets/{server-tdx7WxLI.js → server-Bbs3L-6_.js} +1 -1
- package/dist/client/assets/session-logic-CKQkgIwo.js +4 -0
- package/dist/client/assets/settingsDialogStore-SG-W1q0A.js +1 -0
- package/dist/client/assets/settingsLayout-G5xVm-ZT.js +1 -0
- package/dist/client/assets/shallow-Dmd-gez1.js +1 -0
- package/dist/client/assets/sidebar-_u7SGgmC.js +1 -0
- package/dist/client/assets/sidebarStatusText-BTYnwflG.js +1 -0
- package/dist/client/assets/skeleton-CmUvhZGP.js +1 -0
- package/dist/client/assets/storeSelectors-DhJRpdiw.js +1 -0
- package/dist/client/assets/threadSelectionStore-ygmA4DNA.js +1 -0
- package/dist/client/assets/toast-DmA_ziPT.js +1 -0
- package/dist/client/assets/toggle-DGS7tKuj.js +1 -0
- package/dist/client/assets/{toggle-group-DdKXHoT3.js → toggle-group-Dtv1ZUFW.js} +1 -1
- package/dist/client/assets/tokenModePresentation-Dor1DnBx.js +1 -0
- package/dist/client/assets/{trash-2-CZQem-sz.js → trash-2-C2G3VGoV.js} +1 -1
- package/dist/client/assets/triangle-alert-Bpz3xGu5.js +1 -0
- package/dist/client/assets/undo-2-C3rtxuqZ.js +1 -0
- package/dist/client/assets/useHandleNewThread-ypSbzG0P.js +1 -0
- package/dist/client/assets/useLabelableId-Bc7KEnHU.js +1 -0
- package/dist/client/assets/useNavigate-_4hWGSey.js +1 -0
- package/dist/client/assets/useTheme-HcKmBfpF.js +1 -0
- package/dist/client/assets/{vscode-icons-E8NUFd62.js → vscode-icons-DdSTtxYd.js} +1 -1
- package/dist/client/assets/{wrench-DEteICtk.js → wrench-C4jdis40.js} +1 -1
- package/dist/client/assets/x-CG2WU63t.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/{collectUint8StreamText-DuFJyaQh.mjs → collectUint8StreamText-Lv4GGI79.mjs} +488 -16
- package/dist/{collectUint8StreamText-DbCOJom3.cjs → collectUint8StreamText-uNXVRHOf.cjs} +510 -14
- package/dist/{makeManagedServerProvider-C3cQUDkZ.cjs → makeManagedServerProvider-3SD-Q5xh.cjs} +1 -1
- package/dist/{makeManagedServerProvider-wFGZ2-vd.mjs → makeManagedServerProvider-CkPEptun.mjs} +2 -2
- package/package.json +1 -1
- package/dist/client/assets/AppearanceSettings-BBbC8CV5.js +0 -1
- package/dist/client/assets/BranchToolbar.logic-Di2EkKiO.js +0 -1
- package/dist/client/assets/ChatRightPanel-BJ_cVP66.js +0 -188
- package/dist/client/assets/ChatThreadRouteView-DmxD3m2U.js +0 -1
- package/dist/client/assets/CommandPaletteDialog-CAzz6bsT.js +0 -1
- package/dist/client/assets/CompositeRoot-BvXCwn2c.js +0 -1
- package/dist/client/assets/ConnectionsSettings-Cmxm0y2u.js +0 -1
- package/dist/client/assets/DialogHandle-CXNAm3QY.js +0 -1
- package/dist/client/assets/DialogTitle-KXmfgzP3.js +0 -1
- package/dist/client/assets/DialogTrigger-NHyQnW3X.js +0 -1
- package/dist/client/assets/DialogViewport-CL0WR9a5.js +0 -1
- package/dist/client/assets/DraftChatThreadRouteView-C_hqauF6.js +0 -1
- package/dist/client/assets/JetBrainsIcons-BcR8pCma.js +0 -1
- package/dist/client/assets/KeybindingsSettings-m2AteGOl.js +0 -7
- package/dist/client/assets/McpServersSettings-DndIDxgA.js +0 -6
- package/dist/client/assets/NoActiveThreadState-Bt-Wkv-C.js +0 -1
- package/dist/client/assets/OpinionatedPluginsSettings-oDtdE6qx.js +0 -1
- package/dist/client/assets/ProjectFavicon-j9IX_7-B.js +0 -1
- package/dist/client/assets/ProvidersSettingsPanel-CvlIBNVJ.js +0 -1
- package/dist/client/assets/QueryClientProvider-BZxRKpeb.js +0 -1
- package/dist/client/assets/RootAppShell-CyHZ_F5P.js +0 -12
- package/dist/client/assets/SettingsDialog-BYJ8AhQp.js +0 -2
- package/dist/client/assets/SourceControlSettings-7xU6VH6N.js +0 -1
- package/dist/client/assets/ThreadStatusIndicators-M9FWDEex.js +0 -1
- package/dist/client/assets/ThreadWorkspacePanel-D1J63TVD.js +0 -166
- package/dist/client/assets/codexUsageLimits-BJQiZCqn.js +0 -1
- package/dist/client/assets/commandPaletteStore-oFMPKPmp.js +0 -1
- package/dist/client/assets/composerDraftStore-xu3n5gdX.js +0 -21
- package/dist/client/assets/desktopUpdateReactQuery-YSCkifKp.js +0 -2
- package/dist/client/assets/empty-BTxheW4B.js +0 -1
- package/dist/client/assets/environmentApi-BFHi_M02.js +0 -1
- package/dist/client/assets/folder-open-DJmHEPv9.js +0 -1
- package/dist/client/assets/kbd-Dd57M8OY.js +0 -1
- package/dist/client/assets/main-BQf5U-fz.js +0 -9
- package/dist/client/assets/main-DrwkwNo9.css +0 -2
- package/dist/client/assets/mutation-DJZgOJRu.js +0 -1
- package/dist/client/assets/plus-B10j9MbZ.js +0 -1
- package/dist/client/assets/providerDriverMeta-B6xuq7ij.js +0 -1
- package/dist/client/assets/providerIconUtils-Ch6hejVW.js +0 -47
- package/dist/client/assets/rightPanelRouteSearch-CTMFCS6R.js +0 -1
- package/dist/client/assets/scroll-area-BgFq7GRd.js +0 -1
- package/dist/client/assets/separator-CB3Ctlvi.js +0 -1
- package/dist/client/assets/session-logic-CaiGe4hy.js +0 -4
- package/dist/client/assets/settingsDialogStore-9vo22xKp.js +0 -1
- package/dist/client/assets/settingsLayout-B5o13iGO.js +0 -1
- package/dist/client/assets/sidebar-Bbdql7Af.js +0 -1
- package/dist/client/assets/skeleton-C8OZcsPq.js +0 -1
- package/dist/client/assets/storeSelectors-DBRyhCGm.js +0 -1
- package/dist/client/assets/threadRoutes-CfldSp4X.js +0 -1
- package/dist/client/assets/threadSelectionStore-BggKwzmQ.js +0 -1
- package/dist/client/assets/toast-DE-WwLMa.js +0 -1
- package/dist/client/assets/toggle-BFMa0a0Y.js +0 -1
- package/dist/client/assets/useHandleNewThread-DOPZAFqE.js +0 -1
- package/dist/client/assets/useLabelableId-BzWaBebJ.js +0 -1
- package/dist/client/assets/useNavigate-B1qgM5mt.js +0 -1
- package/dist/client/assets/useTheme-C7Ji7x06.js +0 -1
- package/dist/client/assets/x-b9324xm-.js +0 -1
- package/dist/{NodeSqliteClient-BXy61fAd.mjs → NodeSqliteClient-A1TEgwj_.mjs} +1 -1
- package/dist/{NodeSqliteClient-homCO8-6.cjs → NodeSqliteClient-B5aDHbNc.cjs} +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ryco-cli
|
|
2
2
|
|
|
3
|
-
Ryco is a minimal web GUI for coding agents. The CLI starts the Ryco server, serves the bundled web app, and connects it to local provider
|
|
3
|
+
Ryco is a minimal web GUI for coding agents. The CLI starts the Ryco server, serves the bundled web app, and connects it to local provider runtimes such as Codex, Claude, GitHub Copilot, OpenCode, and Cursor.
|
|
4
4
|
|
|
5
5
|
Ryco is early WIP. Expect bugs and breaking changes.
|
|
6
6
|
|
|
@@ -26,8 +26,9 @@ Install and authenticate at least one provider before using Ryco:
|
|
|
26
26
|
- Codex: install the Codex CLI and run `codex login`
|
|
27
27
|
- Claude: install Claude Code and run `claude auth login`
|
|
28
28
|
- OpenCode: install OpenCode and run `opencode auth login`
|
|
29
|
+
- GitHub Copilot and Cursor: install/authenticate the provider CLI expected by the corresponding SDK/runtime, then verify live status in Settings
|
|
29
30
|
|
|
30
|
-
Ryco discovers available providers from the machine running the CLI.
|
|
31
|
+
Ryco discovers available providers from the machine running the CLI. Provider binaries, custom homes, server URLs, per-instance environment variables, display names, and accent colors are configured in Settings.
|
|
31
32
|
|
|
32
33
|
## Usage
|
|
33
34
|
|
|
@@ -63,6 +64,8 @@ Common options:
|
|
|
63
64
|
- `--mode web|desktop`: runtime mode
|
|
64
65
|
- `--no-browser`: disable automatic browser opening
|
|
65
66
|
- `--auto-bootstrap-project-from-cwd`: create a project for the current working directory on startup when missing
|
|
67
|
+
- `--tailscale-serve`: expose this backend over HTTPS on the Tailnet through Tailscale Serve
|
|
68
|
+
- `--log-websocket-events`: emit server-side WebSocket traffic logs for debugging
|
|
66
69
|
|
|
67
70
|
Useful commands:
|
|
68
71
|
|
|
@@ -85,6 +88,51 @@ ryco auth session revoke <session-id>
|
|
|
85
88
|
|
|
86
89
|
Run `ryco --help` or `ryco <command> --help` for the full command reference.
|
|
87
90
|
|
|
91
|
+
## Testing
|
|
92
|
+
|
|
93
|
+
### `WsTestClient` (websocket integration tests)
|
|
94
|
+
|
|
95
|
+
`src/test/WsTestClient.ts` is a small harness for server-side websocket RPC
|
|
96
|
+
integration tests. It replaces ad-hoc per-test socket wiring (`RpcClient.make` +
|
|
97
|
+
protocol layer + cookie/origin parsing) with a single scoped `connect()` plus a
|
|
98
|
+
few combinators. Connections are bound to the surrounding `Scope` (e.g.
|
|
99
|
+
`Effect.scoped`).
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
import * as WsTestClient from "./test/WsTestClient.ts";
|
|
103
|
+
|
|
104
|
+
// `wsUrl` already carries auth (e.g. `?wsToken=...`), as produced by the test
|
|
105
|
+
// harness' `getWsServerUrl("/ws")`.
|
|
106
|
+
yield *
|
|
107
|
+
Effect.scoped(
|
|
108
|
+
Effect.gen(function* () {
|
|
109
|
+
const ws = yield* WsTestClient.connect(wsUrl);
|
|
110
|
+
|
|
111
|
+
// Request/response RPC:
|
|
112
|
+
const config = yield* ws.rpc(WS_METHODS.serverGetConfig, {});
|
|
113
|
+
|
|
114
|
+
// Wait for the lifecycle welcome event:
|
|
115
|
+
const welcome = yield* ws.awaitWelcome();
|
|
116
|
+
|
|
117
|
+
// Wait for the first push on a subscription matching a predicate:
|
|
118
|
+
const ready = yield* ws.awaitPush(
|
|
119
|
+
WS_METHODS.subscribeServerLifecycle,
|
|
120
|
+
(event) => event.type === "ready",
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
// Record an ordered push sequence and await N events:
|
|
124
|
+
const sequence = yield* ws.trackPushSequence(WS_METHODS.subscribeServerConfig);
|
|
125
|
+
const [snapshot, update] = yield* sequence.waitForCount(2);
|
|
126
|
+
}),
|
|
127
|
+
);
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
`makeWsTestClientConnector(group)` builds the same surface for an arbitrary RPC
|
|
131
|
+
group, and `makeConnectedWsTestClient(client)` wraps an already-constructed RPC
|
|
132
|
+
client (used by `WsTestClient.test.ts` to unit-test the combinators without a
|
|
133
|
+
socket). See `src/test/WsTestClient.test.ts` and the migrated cases in
|
|
134
|
+
`src/server.test.ts` for examples.
|
|
135
|
+
|
|
88
136
|
## Links
|
|
89
137
|
|
|
90
138
|
- Repository: https://github.com/sak0a/ryco
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const require_collectUint8StreamText = require("./collectUint8StreamText-
|
|
4
|
-
const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-
|
|
3
|
+
const require_collectUint8StreamText = require("./collectUint8StreamText-uNXVRHOf.cjs");
|
|
4
|
+
const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-DeFR5xH3.cjs");
|
|
5
5
|
const require_bin = require("./bin.cjs");
|
|
6
6
|
let effect = require("effect");
|
|
7
7
|
//#region src/sourceControl/AzureDevOpsSourceControlProvider.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { En as SourceControlProviderError, On as truncateSourceControlDetailContent } from "./collectUint8StreamText-Lv4GGI79.mjs";
|
|
4
|
+
import { l as sourceControlRefFromInput, o as SourceControlProvider, t as azureDevOpsDiscovery } from "./SourceControlProviderDiscoveryCatalog-mJV_Xitr.mjs";
|
|
5
|
+
import { Yt as AzureDevOpsCli } from "./bin.mjs";
|
|
6
6
|
import { DateTime, Effect, Layer, Option } from "effect";
|
|
7
7
|
//#region src/sourceControl/AzureDevOpsSourceControlProvider.ts
|
|
8
8
|
function providerError(operation, cause) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const require_collectUint8StreamText = require("./collectUint8StreamText-
|
|
4
|
-
const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-
|
|
3
|
+
const require_collectUint8StreamText = require("./collectUint8StreamText-uNXVRHOf.cjs");
|
|
4
|
+
const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-DeFR5xH3.cjs");
|
|
5
5
|
const require_bin = require("./bin.cjs");
|
|
6
6
|
let effect = require("effect");
|
|
7
7
|
//#region src/sourceControl/BitbucketSourceControlProvider.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as makeBitbucketDiscovery,
|
|
5
|
-
import {
|
|
3
|
+
import { En as SourceControlProviderError, On as truncateSourceControlDetailContent } from "./collectUint8StreamText-Lv4GGI79.mjs";
|
|
4
|
+
import { i as makeBitbucketDiscovery, l as sourceControlRefFromInput, o as SourceControlProvider } from "./SourceControlProviderDiscoveryCatalog-mJV_Xitr.mjs";
|
|
5
|
+
import { Jt as BitbucketApi } from "./bin.mjs";
|
|
6
6
|
import { DateTime, Effect, Layer, Option } from "effect";
|
|
7
7
|
//#region src/sourceControl/BitbucketSourceControlProvider.ts
|
|
8
8
|
function providerError(operation, cause) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const require_chunk = require("./chunk-jM1PLTSZ.cjs");
|
|
4
|
-
const require_collectUint8StreamText = require("./collectUint8StreamText-
|
|
5
|
-
const require_Metrics = require("./Metrics-
|
|
4
|
+
const require_collectUint8StreamText = require("./collectUint8StreamText-uNXVRHOf.cjs");
|
|
5
|
+
const require_Metrics = require("./Metrics-CIW1QH7M.cjs");
|
|
6
6
|
const require_bin = require("./bin.cjs");
|
|
7
|
-
const require_makeManagedServerProvider = require("./makeManagedServerProvider-
|
|
7
|
+
const require_makeManagedServerProvider = require("./makeManagedServerProvider-3SD-Q5xh.cjs");
|
|
8
8
|
const require_sourceControlContextFormatter = require("./sourceControlContextFormatter-BDZqn-4T.cjs");
|
|
9
9
|
const require_ProjectCustomSystemPrompt = require("./ProjectCustomSystemPrompt-B8SUlNGa.cjs");
|
|
10
10
|
const require_ProviderDriver = require("./ProviderDriver--rNeAi3B.cjs");
|
|
@@ -50,6 +50,7 @@ const CLAUDE_PRESENTATION = {
|
|
|
50
50
|
};
|
|
51
51
|
const MINIMUM_CLAUDE_OPUS_4_8_VERSION = "2.1.154";
|
|
52
52
|
const MINIMUM_CLAUDE_OPUS_4_7_VERSION = "2.1.111";
|
|
53
|
+
const MINIMUM_CLAUDE_FABLE_5_VERSION = "2.1.194";
|
|
53
54
|
function buildClaudeEffortOption(value, defaultEffort) {
|
|
54
55
|
const label = value === "xhigh" ? "Extra High" : value[0].toUpperCase() + value.slice(1).toLowerCase();
|
|
55
56
|
return value === defaultEffort ? {
|
|
@@ -121,6 +122,18 @@ const CLAUDE_OPUS_LEGACY_EFFORT_LEVELS = [
|
|
|
121
122
|
"max"
|
|
122
123
|
];
|
|
123
124
|
const BUILT_IN_MODELS = [
|
|
125
|
+
{
|
|
126
|
+
slug: "claude-fable-5",
|
|
127
|
+
name: "Claude Fable 5",
|
|
128
|
+
shortName: "Fable 5",
|
|
129
|
+
isCustom: false,
|
|
130
|
+
capabilities: buildClaudeOpusCapabilities({
|
|
131
|
+
effortLevels: CLAUDE_OPUS_ADAPTIVE_EFFORT_LEVELS,
|
|
132
|
+
defaultEffort: "high",
|
|
133
|
+
supportsFastMode: false,
|
|
134
|
+
supportsContextWindow: false
|
|
135
|
+
})
|
|
136
|
+
},
|
|
124
137
|
{
|
|
125
138
|
slug: "claude-opus-4-8",
|
|
126
139
|
name: "Claude Opus 4.8",
|
|
@@ -165,7 +178,7 @@ const BUILT_IN_MODELS = [
|
|
|
165
178
|
capabilities: buildClaudeOpusCapabilities({
|
|
166
179
|
effortLevels: CLAUDE_OPUS_LEGACY_EFFORT_LEVELS,
|
|
167
180
|
defaultEffort: "high",
|
|
168
|
-
supportsFastMode:
|
|
181
|
+
supportsFastMode: false,
|
|
169
182
|
supportsContextWindow: false
|
|
170
183
|
})
|
|
171
184
|
},
|
|
@@ -230,8 +243,12 @@ function supportsClaudeOpus48(version) {
|
|
|
230
243
|
function supportsClaudeOpus47(version) {
|
|
231
244
|
return supportsMinimumClaudeVersion(version, MINIMUM_CLAUDE_OPUS_4_7_VERSION);
|
|
232
245
|
}
|
|
246
|
+
function supportsClaudeFable5(version) {
|
|
247
|
+
return supportsMinimumClaudeVersion(version, MINIMUM_CLAUDE_FABLE_5_VERSION);
|
|
248
|
+
}
|
|
233
249
|
function getBuiltInClaudeModelsForVersion(version) {
|
|
234
250
|
return BUILT_IN_MODELS.filter((model) => {
|
|
251
|
+
if (model.slug === "claude-fable-5") return supportsClaudeFable5(version);
|
|
235
252
|
if (model.slug === "claude-opus-4-8") return supportsClaudeOpus48(version);
|
|
236
253
|
if (model.slug === "claude-opus-4-7") return supportsClaudeOpus47(version);
|
|
237
254
|
return true;
|
|
@@ -943,6 +960,54 @@ function readClaudeResumeState(resumeCursor) {
|
|
|
943
960
|
...turnCountValue !== void 0 && Number.isInteger(turnCountValue) && turnCountValue >= 0 ? { turnCount: turnCountValue } : {}
|
|
944
961
|
};
|
|
945
962
|
}
|
|
963
|
+
function trimmedClaudeString(value) {
|
|
964
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
|
|
965
|
+
}
|
|
966
|
+
function claudeTaskField(message, field) {
|
|
967
|
+
return trimmedClaudeString(message[field]);
|
|
968
|
+
}
|
|
969
|
+
function hasClaudeSubagentNameSignal(value) {
|
|
970
|
+
return value !== void 0 && /\b(?:sub[-\s]?agent|agent|subtask|task)\b/i.test(value);
|
|
971
|
+
}
|
|
972
|
+
function hasClaudeSubagentDescriptionSignal(value) {
|
|
973
|
+
return value !== void 0 && /\b(?:sub[-\s]?agent|agent|teammate|worker|delegate[sd]?|reviewer)\b/i.test(value);
|
|
974
|
+
}
|
|
975
|
+
function isClaudeSubagentTaskMessage(message) {
|
|
976
|
+
return hasClaudeSubagentNameSignal(claudeTaskField(message, "task_type")) || hasClaudeSubagentNameSignal(claudeTaskField(message, "last_tool_name")) || hasClaudeSubagentDescriptionSignal(claudeTaskField(message, "description")) || hasClaudeSubagentDescriptionSignal(claudeTaskField(message, "summary"));
|
|
977
|
+
}
|
|
978
|
+
function claudeTaskSubagentStatus(status) {
|
|
979
|
+
return status;
|
|
980
|
+
}
|
|
981
|
+
function claudeTaskCompletionStatus(status) {
|
|
982
|
+
return status;
|
|
983
|
+
}
|
|
984
|
+
function claudeTaskMetadata(message) {
|
|
985
|
+
const metadata = Object.fromEntries([
|
|
986
|
+
["source", "claude.task"],
|
|
987
|
+
["taskType", claudeTaskField(message, "task_type")],
|
|
988
|
+
["lastToolName", claudeTaskField(message, "last_tool_name")]
|
|
989
|
+
].filter(([, value]) => value !== void 0));
|
|
990
|
+
return Object.keys(metadata).length > 0 ? metadata : void 0;
|
|
991
|
+
}
|
|
992
|
+
function makeClaudeTaskSubagentRef(existing, message) {
|
|
993
|
+
const taskType = claudeTaskField(message, "task_type");
|
|
994
|
+
const lastToolName = claudeTaskField(message, "last_tool_name");
|
|
995
|
+
const description = claudeTaskField(message, "description") ?? existing?.description;
|
|
996
|
+
const label = taskType ?? lastToolName ?? existing?.label ?? "Claude task";
|
|
997
|
+
const taskMetadata = claudeTaskMetadata(message);
|
|
998
|
+
const metadata = {};
|
|
999
|
+
if (existing?.metadata) Object.assign(metadata, existing.metadata);
|
|
1000
|
+
if (taskMetadata) Object.assign(metadata, taskMetadata);
|
|
1001
|
+
return {
|
|
1002
|
+
subagentId: existing?.subagentId ?? require_collectUint8StreamText.RuntimeSubagentId.make(`claude-task:${message.task_id}`),
|
|
1003
|
+
origin: "native",
|
|
1004
|
+
capability: "summary",
|
|
1005
|
+
label,
|
|
1006
|
+
...description && { description },
|
|
1007
|
+
providerTaskId: require_collectUint8StreamText.RuntimeTaskId.make(message.task_id),
|
|
1008
|
+
...Object.keys(metadata).length > 0 && { metadata }
|
|
1009
|
+
};
|
|
1010
|
+
}
|
|
946
1011
|
function classifyToolItemType(toolName) {
|
|
947
1012
|
const normalized = toolName.toLowerCase();
|
|
948
1013
|
if (normalized.includes("agent")) return "collab_agent_tool_call";
|
|
@@ -1235,13 +1300,95 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
1235
1300
|
}));
|
|
1236
1301
|
const sessions = /* @__PURE__ */ new Map();
|
|
1237
1302
|
const runtimeEventQueue = yield* effect.Queue.unbounded();
|
|
1303
|
+
const runtimeEventQueueMetrics = yield* require_bin.makeServerQueueMetrics({
|
|
1304
|
+
queue: "provider.adapter.runtimeEvents",
|
|
1305
|
+
component: "ClaudeAdapter",
|
|
1306
|
+
provider: PROVIDER,
|
|
1307
|
+
providerInstanceId: boundInstanceId
|
|
1308
|
+
});
|
|
1238
1309
|
const nowIso = effect.Effect.map(effect.DateTime.now, effect.DateTime.formatIso);
|
|
1239
1310
|
const nextEventId = effect.Effect.map(effect.Random.nextUUIDv4, (id) => require_collectUint8StreamText.EventId.make(id));
|
|
1240
1311
|
const makeEventStamp = () => effect.Effect.all({
|
|
1241
1312
|
eventId: nextEventId,
|
|
1242
1313
|
createdAt: nowIso
|
|
1243
1314
|
});
|
|
1244
|
-
const offerRuntimeEvent = (event) => effect.Queue.offer(runtimeEventQueue, event).pipe(effect.Effect.asVoid);
|
|
1315
|
+
const offerRuntimeEvent = (event) => effect.Queue.offer(runtimeEventQueue, event).pipe(effect.Effect.andThen(runtimeEventQueueMetrics.recordEnqueued()), effect.Effect.asVoid);
|
|
1316
|
+
const emitClaudeSubagentStarted = effect.Effect.fn("emitClaudeSubagentStarted")(function* (context, subagent, raw) {
|
|
1317
|
+
const key = String(subagent.subagentId);
|
|
1318
|
+
if (context.startedSubagentIds.has(key)) return;
|
|
1319
|
+
context.startedSubagentIds.add(key);
|
|
1320
|
+
const stamp = yield* makeEventStamp();
|
|
1321
|
+
yield* offerRuntimeEvent({
|
|
1322
|
+
type: "subagent.started",
|
|
1323
|
+
eventId: stamp.eventId,
|
|
1324
|
+
provider: PROVIDER,
|
|
1325
|
+
createdAt: stamp.createdAt,
|
|
1326
|
+
threadId: context.session.threadId,
|
|
1327
|
+
...context.turnState ? { turnId: asCanonicalTurnId(context.turnState.turnId) } : {},
|
|
1328
|
+
payload: { subagent },
|
|
1329
|
+
providerRefs: nativeProviderRefs(context),
|
|
1330
|
+
raw: {
|
|
1331
|
+
source: "claude.sdk.message",
|
|
1332
|
+
method: sdkNativeMethod(raw),
|
|
1333
|
+
messageType: `${raw.type}:${sdkMessageSubtype(raw) ?? ""}`,
|
|
1334
|
+
payload: raw
|
|
1335
|
+
}
|
|
1336
|
+
});
|
|
1337
|
+
});
|
|
1338
|
+
const emitClaudeSubagentUpdated = effect.Effect.fn("emitClaudeSubagentUpdated")(function* (context, input) {
|
|
1339
|
+
yield* emitClaudeSubagentStarted(context, input.subagent, input.raw);
|
|
1340
|
+
const stamp = yield* makeEventStamp();
|
|
1341
|
+
yield* offerRuntimeEvent({
|
|
1342
|
+
type: "subagent.updated",
|
|
1343
|
+
eventId: stamp.eventId,
|
|
1344
|
+
provider: PROVIDER,
|
|
1345
|
+
createdAt: stamp.createdAt,
|
|
1346
|
+
threadId: context.session.threadId,
|
|
1347
|
+
...context.turnState ? { turnId: asCanonicalTurnId(context.turnState.turnId) } : {},
|
|
1348
|
+
payload: {
|
|
1349
|
+
subagent: input.subagent,
|
|
1350
|
+
...input.status ? { status: input.status } : {},
|
|
1351
|
+
...input.summary ? { summary: input.summary } : {},
|
|
1352
|
+
...input.detail ? { detail: input.detail } : {},
|
|
1353
|
+
...input.usage !== void 0 ? { usage: input.usage } : {}
|
|
1354
|
+
},
|
|
1355
|
+
providerRefs: nativeProviderRefs(context),
|
|
1356
|
+
raw: {
|
|
1357
|
+
source: "claude.sdk.message",
|
|
1358
|
+
method: sdkNativeMethod(input.raw),
|
|
1359
|
+
messageType: `${input.raw.type}:${sdkMessageSubtype(input.raw) ?? ""}`,
|
|
1360
|
+
payload: input.raw
|
|
1361
|
+
}
|
|
1362
|
+
});
|
|
1363
|
+
});
|
|
1364
|
+
const emitClaudeSubagentCompleted = effect.Effect.fn("emitClaudeSubagentCompleted")(function* (context, input) {
|
|
1365
|
+
const key = String(input.subagent.subagentId);
|
|
1366
|
+
if (context.completedSubagentIds.has(key)) return;
|
|
1367
|
+
yield* emitClaudeSubagentStarted(context, input.subagent, input.raw);
|
|
1368
|
+
context.completedSubagentIds.add(key);
|
|
1369
|
+
const stamp = yield* makeEventStamp();
|
|
1370
|
+
yield* offerRuntimeEvent({
|
|
1371
|
+
type: "subagent.completed",
|
|
1372
|
+
eventId: stamp.eventId,
|
|
1373
|
+
provider: PROVIDER,
|
|
1374
|
+
createdAt: stamp.createdAt,
|
|
1375
|
+
threadId: context.session.threadId,
|
|
1376
|
+
...context.turnState ? { turnId: asCanonicalTurnId(context.turnState.turnId) } : {},
|
|
1377
|
+
payload: {
|
|
1378
|
+
subagent: input.subagent,
|
|
1379
|
+
status: input.status,
|
|
1380
|
+
...input.summary ? { summary: input.summary } : {},
|
|
1381
|
+
...input.usage !== void 0 ? { usage: input.usage } : {}
|
|
1382
|
+
},
|
|
1383
|
+
providerRefs: nativeProviderRefs(context),
|
|
1384
|
+
raw: {
|
|
1385
|
+
source: "claude.sdk.message",
|
|
1386
|
+
method: sdkNativeMethod(input.raw),
|
|
1387
|
+
messageType: `${input.raw.type}:${sdkMessageSubtype(input.raw) ?? ""}`,
|
|
1388
|
+
payload: input.raw
|
|
1389
|
+
}
|
|
1390
|
+
});
|
|
1391
|
+
});
|
|
1245
1392
|
const logNativeSdkMessage = effect.Effect.fn("logNativeSdkMessage")(function* (context, message) {
|
|
1246
1393
|
if (!nativeEventLogger) return;
|
|
1247
1394
|
const observedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -2029,6 +2176,11 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2029
2176
|
...message.task_type ? { taskType: message.task_type } : {}
|
|
2030
2177
|
}
|
|
2031
2178
|
});
|
|
2179
|
+
if (isClaudeSubagentTaskMessage(message)) {
|
|
2180
|
+
const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
|
|
2181
|
+
context.subagentByTaskId.set(message.task_id, subagent);
|
|
2182
|
+
yield* emitClaudeSubagentStarted(context, subagent, message);
|
|
2183
|
+
}
|
|
2032
2184
|
return;
|
|
2033
2185
|
case "task_progress":
|
|
2034
2186
|
if (message.usage) {
|
|
@@ -2056,6 +2208,18 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2056
2208
|
...message.last_tool_name ? { lastToolName: message.last_tool_name } : {}
|
|
2057
2209
|
}
|
|
2058
2210
|
});
|
|
2211
|
+
if (isClaudeSubagentTaskMessage(message) || context.subagentByTaskId.has(message.task_id)) {
|
|
2212
|
+
const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
|
|
2213
|
+
context.subagentByTaskId.set(message.task_id, subagent);
|
|
2214
|
+
yield* emitClaudeSubagentUpdated(context, {
|
|
2215
|
+
subagent,
|
|
2216
|
+
status: claudeTaskSubagentStatus("running"),
|
|
2217
|
+
...message.summary ? { summary: message.summary } : {},
|
|
2218
|
+
detail: message.description,
|
|
2219
|
+
...message.usage ? { usage: message.usage } : {},
|
|
2220
|
+
raw: message
|
|
2221
|
+
});
|
|
2222
|
+
}
|
|
2059
2223
|
return;
|
|
2060
2224
|
case "task_notification":
|
|
2061
2225
|
if (message.usage) {
|
|
@@ -2082,6 +2246,17 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2082
2246
|
...message.usage ? { usage: message.usage } : {}
|
|
2083
2247
|
}
|
|
2084
2248
|
});
|
|
2249
|
+
if (isClaudeSubagentTaskMessage(message) || context.subagentByTaskId.has(message.task_id)) {
|
|
2250
|
+
const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
|
|
2251
|
+
context.subagentByTaskId.set(message.task_id, subagent);
|
|
2252
|
+
yield* emitClaudeSubagentCompleted(context, {
|
|
2253
|
+
subagent,
|
|
2254
|
+
status: claudeTaskCompletionStatus(message.status),
|
|
2255
|
+
...message.summary ? { summary: message.summary } : {},
|
|
2256
|
+
...message.usage ? { usage: message.usage } : {},
|
|
2257
|
+
raw: message
|
|
2258
|
+
});
|
|
2259
|
+
}
|
|
2085
2260
|
return;
|
|
2086
2261
|
case "files_persisted":
|
|
2087
2262
|
yield* offerRuntimeEvent({
|
|
@@ -2630,6 +2805,9 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2630
2805
|
lastKnownTokenUsage: void 0,
|
|
2631
2806
|
lastAssistantUuid: resumeState?.resumeSessionAt,
|
|
2632
2807
|
lastThreadStartedId: void 0,
|
|
2808
|
+
subagentByTaskId: /* @__PURE__ */ new Map(),
|
|
2809
|
+
startedSubagentIds: /* @__PURE__ */ new Set(),
|
|
2810
|
+
completedSubagentIds: /* @__PURE__ */ new Set(),
|
|
2633
2811
|
stopped: false
|
|
2634
2812
|
};
|
|
2635
2813
|
yield* effect.Ref.set(contextRef, context);
|
|
@@ -2800,7 +2978,7 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2800
2978
|
return context !== void 0 && !context.stopped;
|
|
2801
2979
|
});
|
|
2802
2980
|
const stopAll = () => effect.Effect.forEach(sessions, ([, context]) => stopSessionInternal(context, { emitExitEvent: true }), { discard: true });
|
|
2803
|
-
yield* effect.Effect.addFinalizer(() => effect.Effect.forEach(sessions, ([, context]) => stopSessionInternal(context, { emitExitEvent: false }), { discard: true }).pipe(effect.Effect.tap(() => effect.Queue.shutdown(runtimeEventQueue))));
|
|
2981
|
+
yield* effect.Effect.addFinalizer(() => effect.Effect.forEach(sessions, ([, context]) => stopSessionInternal(context, { emitExitEvent: false }), { discard: true }).pipe(effect.Effect.tap(() => runtimeEventQueueMetrics.reset), effect.Effect.tap(() => effect.Queue.shutdown(runtimeEventQueue))));
|
|
2804
2982
|
return {
|
|
2805
2983
|
provider: PROVIDER,
|
|
2806
2984
|
capabilities: { sessionModelSwitch: "in-session" },
|
|
@@ -2816,7 +2994,7 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2816
2994
|
hasSession,
|
|
2817
2995
|
stopAll,
|
|
2818
2996
|
get streamEvents() {
|
|
2819
|
-
return effect.Stream.fromQueue(runtimeEventQueue);
|
|
2997
|
+
return effect.Stream.fromQueue(runtimeEventQueue).pipe(effect.Stream.tap(() => runtimeEventQueueMetrics.recordDequeued()));
|
|
2820
2998
|
}
|
|
2821
2999
|
};
|
|
2822
3000
|
});
|
|
@@ -3066,6 +3244,7 @@ const ClaudeDriver = {
|
|
|
3066
3244
|
const spawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
|
|
3067
3245
|
const path = yield* effect.Path.Path;
|
|
3068
3246
|
const httpClient = yield* effect_unstable_http.HttpClient.HttpClient;
|
|
3247
|
+
const serverSettings = yield* require_bin.ServerSettingsService;
|
|
3069
3248
|
const eventLoggers = yield* require_bin.ProviderEventLoggers;
|
|
3070
3249
|
const processEnv = require_bin.mergeProviderInstanceEnvironment(environment);
|
|
3071
3250
|
const fallbackContinuationIdentity = require_ProviderDriver.defaultProviderContinuationIdentity({
|
|
@@ -3112,7 +3291,7 @@ const ClaudeDriver = {
|
|
|
3112
3291
|
haveSettingsChanged: () => false,
|
|
3113
3292
|
initialSnapshot: (settings) => stampIdentity(makePendingClaudeProvider(settings)),
|
|
3114
3293
|
checkProvider,
|
|
3115
|
-
enrichSnapshot: ({ snapshot, publishSnapshot }) => require_bin.enrichProviderSnapshotWithVersionAdvisory(snapshot, maintenanceCapabilities).pipe(effect.Effect.provideService(effect_unstable_http.HttpClient.HttpClient, httpClient), effect.Effect.flatMap((enrichedSnapshot) => publishSnapshot(enrichedSnapshot))),
|
|
3294
|
+
enrichSnapshot: ({ snapshot, publishSnapshot }) => require_bin.enrichProviderSnapshotWithVersionAdvisory(snapshot, maintenanceCapabilities).pipe(effect.Effect.provideService(effect_unstable_http.HttpClient.HttpClient, httpClient), effect.Effect.provideService(require_bin.ServerSettingsService, serverSettings), effect.Effect.flatMap((enrichedSnapshot) => publishSnapshot(enrichedSnapshot))),
|
|
3116
3295
|
refreshInterval: null
|
|
3117
3296
|
}).pipe(effect.Effect.mapError((cause) => new require_bin.ProviderDriverError({
|
|
3118
3297
|
driver: DRIVER_KIND,
|