ryco-cli 0.1.6 → 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/dist/{AzureDevOpsSourceControlProvider-6holYS_D.cjs → AzureDevOpsSourceControlProvider-5exivY-1.cjs} +2 -2
- package/dist/{AzureDevOpsSourceControlProvider-CC2_COxP.mjs → AzureDevOpsSourceControlProvider-CF5LuCHp.mjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-a0IsNFyG.cjs → BitbucketSourceControlProvider-1GWENqcl.cjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-CYR_BD1d.mjs → BitbucketSourceControlProvider-CKH09tfT.mjs} +2 -2
- package/dist/{ClaudeDriver-C6tQNEWO.cjs → ClaudeDriver-BXLdjrht.cjs} +177 -4
- package/dist/{ClaudeDriver-D3nsxwH9.mjs → ClaudeDriver-WwWFTu61.mjs} +178 -5
- package/dist/{CodexDriver-BILrJG8o.mjs → CodexDriver-93-TmCrO.mjs} +6 -5
- package/dist/{CodexDriver-ms_YgFD7.cjs → CodexDriver-BboMT9uk.cjs} +5 -4
- package/dist/{CodexTextGeneration-CHEgoANm.cjs → CodexTextGeneration-0pRbJji3.cjs} +2 -2
- package/dist/{CodexTextGeneration-BIKHl7E3.mjs → CodexTextGeneration-BU9Myn87.mjs} +3 -3
- package/dist/{CopilotDriver-CmD3Ffyl.mjs → CopilotDriver-BASi8pJ0.mjs} +4 -4
- package/dist/{CopilotDriver-B0--ZwIK.cjs → CopilotDriver-DCsv-17W.cjs} +3 -3
- package/dist/{CursorDriver-DTVPXZ-R.cjs → CursorDriver-BTSiM3A8.cjs} +161 -14
- package/dist/{CursorDriver-CbeaIbdb.mjs → CursorDriver-D5LvIqUk.mjs} +162 -15
- package/dist/{ForgejoSourceControlProvider-DwAog76b.cjs → ForgejoSourceControlProvider-BTXRDCGB.cjs} +2 -2
- package/dist/{ForgejoSourceControlProvider-DX6d9gvz.mjs → ForgejoSourceControlProvider-e-4hvvZ_.mjs} +2 -2
- package/dist/{GitHubSourceControlProvider-C-LGwho3.mjs → GitHubSourceControlProvider-26IofDAO.mjs} +2 -2
- package/dist/{GitHubSourceControlProvider-9lJFzjsu.cjs → GitHubSourceControlProvider-DWmwkA_y.cjs} +2 -2
- package/dist/{GitLabSourceControlProvider-CvKA74lg.cjs → GitLabSourceControlProvider-D-YHnxRe.cjs} +2 -2
- package/dist/{GitLabSourceControlProvider-CkeT2aEx.mjs → GitLabSourceControlProvider-DePct78W.mjs} +2 -2
- package/dist/{OpenCodeDriver-ClWtCk0j.mjs → OpenCodeDriver-BhvLOmvn.mjs} +325 -38
- package/dist/{OpenCodeDriver-CXUsnl5o.cjs → OpenCodeDriver-CVeZ4n9-.cjs} +324 -37
- package/dist/{SourceControlProviderDiscoveryCatalog-_rg0mc1o.cjs → SourceControlProviderDiscoveryCatalog-DeFR5xH3.cjs} +1 -64
- package/dist/{SourceControlProviderDiscoveryCatalog-yMDer_Yh.mjs → SourceControlProviderDiscoveryCatalog-mJV_Xitr.mjs} +3 -48
- package/dist/bin.cjs +1280 -519
- package/dist/bin.mjs +1234 -474
- package/dist/client/assets/{AnimatedHeight-DgItDSis.js → AnimatedHeight-BSU0lzYs.js} +1 -1
- package/dist/client/assets/AppearanceSettings-D7q0ujGK.js +1 -0
- package/dist/client/assets/{BranchToolbar.logic-C_xHEt9C.js → BranchToolbar.logic-CZIFSvhd.js} +1 -1
- package/dist/client/assets/ChatRightPanel-CWHOIuiQ.js +188 -0
- package/dist/client/assets/{ChatThreadRouteView-CV6ETYG5.js → ChatThreadRouteView-bA7xWXzc.js} +1 -1
- package/dist/client/assets/{CommandPaletteDialog-C_H7R8S5.js → CommandPaletteDialog-DNYaVOZO.js} +1 -1
- 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-B340S_mq.js → DiagnosticsSettings-DtzPCb6N.js} +1 -1
- package/dist/client/assets/{DialogHandle-BJY7cHCV.js → DialogHandle-DuHnmWoE.js} +1 -1
- package/dist/client/assets/{DialogRoot-Ej1FVk-_.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-DvjAl76K.js → DialogViewport-CMV_BePU.js} +1 -1
- package/dist/client/assets/{DraftChatThreadRouteView-pOkyeKPS.js → DraftChatThreadRouteView-BoiKnrii.js} +1 -1
- package/dist/client/assets/{JetBrainsIcons-DTTF47I0.js → JetBrainsIcons-BcPxJlMf.js} +1 -1
- package/dist/client/assets/{KeybindingsSettings-CW3RRi-7.js → KeybindingsSettings-LuI98pdF.js} +1 -1
- package/dist/client/assets/McpServersSettings-BFMuWYVV.js +6 -0
- package/dist/client/assets/{NoActiveThreadState-DVHwrkCp.js → NoActiveThreadState-C2q_O1kP.js} +1 -1
- package/dist/client/assets/{OpinionatedPluginsSettings-Cjj23Fs4.js → OpinionatedPluginsSettings-Bqwct37O.js} +1 -1
- package/dist/client/assets/{ProjectFavicon-TDP7HRfn.js → ProjectFavicon-D2imiJ8M.js} +1 -1
- package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-6TpFsmiI.js → ProviderUpdateLaunchNotification.logic-CJgA--nK.js} +1 -1
- package/dist/client/assets/ProvidersSettingsPanel-B97vbeu6.js +1 -0
- package/dist/client/assets/{RedactedSensitiveText-BfoVjPsE.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-B0leIJGD.js → ThreadStatusIndicators-Cw_jLVQf.js} +1 -1
- package/dist/client/assets/{ThreadTerminalDrawer-COq2Fk17.js → ThreadTerminalDrawer-D1WnSemH.js} +17 -17
- package/dist/client/assets/ThreadWorkspacePanel-L4qCPTOA.js +166 -0
- package/dist/client/assets/{alert-dialog-lMfKpG2t.js → alert-dialog-CNmKa0BK.js} +1 -1
- package/dist/client/assets/chart-column-BWSKYZ_a.js +1 -0
- package/dist/client/assets/{chatThreadActions-PPyTj_x0.js → chatThreadActions-TtDsiwDC.js} +1 -1
- package/dist/client/assets/chevron-up-zopJ_99l.js +1 -0
- package/dist/client/assets/{clamp-JiD4IZ0Z.js → clamp-Ds6WJu8j.js} +1 -1
- package/dist/client/assets/{clipboard-copy-CYBLSG2q.js → clipboard-copy-BoJGpdmJ.js} +1 -1
- package/dist/client/assets/clock-CzUHThzk.js +1 -0
- package/dist/client/assets/{commandPaletteStore-uVfCD7zE.js → commandPaletteStore-KebG835b.js} +1 -1
- package/dist/client/assets/composerDraftStore-DpPEQ6BN.js +21 -0
- package/dist/client/assets/{desktopUpdateAtoms-X6uM5SoD.js → desktopUpdateAtoms-BQ0GGEfM.js} +1 -1
- package/dist/client/assets/{download-DLBlpp4h.js → download-CUiRE0N9.js} +1 -1
- package/dist/client/assets/{draft-input-dLlVMl5P.js → draft-input-CwpGDtoT.js} +1 -1
- package/dist/client/assets/editorPreferences-jN7DKbyt.js +1 -0
- package/dist/client/assets/{empty-DlLY-Hhj.js → empty-CBuXePtg.js} +1 -1
- package/dist/client/assets/{group-zDBPF7rR.js → group-BpZvxjG5.js} +1 -1
- package/dist/client/assets/{index-Dq8sT2lF.js → index-BKzXTNJ_.js} +2 -2
- package/dist/client/assets/{input-B9-RWT56.js → input-CgDawd6k.js} +1 -1
- package/dist/client/assets/kbd-QYSL97CK.js +1 -0
- package/dist/client/assets/{keybindings-Dx4Nc1vY.js → keybindings-CUTRYI_A.js} +1 -1
- package/dist/client/assets/{keyboard-DDTWQkr0.js → keyboard-DFFiI7JY.js} +1 -1
- package/dist/client/assets/{keyedQuery-Ds4OGhX2.js → keyedQuery-DiOCbGH0.js} +0 -0
- package/dist/client/assets/{main-DxfpmoKJ.js → main-BgFGju3e.js} +3 -3
- package/dist/client/assets/main-D0UFdwts.css +2 -0
- package/dist/client/assets/{palette-BQcz-ZYV.js → palette-BXCL909c.js} +1 -1
- package/dist/client/assets/{play-QloDGe4R.js → play-DI2LZohg.js} +1 -1
- 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-DkBMGllm.js → refresh-cw-BsQTNBXl.js} +1 -1
- package/dist/client/assets/{resolveAriaLabelledBy-DDfIbj05.js → resolveAriaLabelledBy-CRHo_s16.js} +1 -1
- package/dist/client/assets/{rightPanelRouteSearch-DfuWVvXN.js → rightPanelRouteSearch-CfmZ7osj.js} +1 -1
- package/dist/client/assets/{scale-BActunFu.js → scale-DDEJ-tvn.js} +1 -1
- package/dist/client/assets/{scroll-area-D-YOUG02.js → scroll-area-HgsI-ErG.js} +1 -1
- package/dist/client/assets/{separator-TInKeIDo.js → separator-ClnL4mUB.js} +1 -1
- package/dist/client/assets/{server-BtEG3NAw.js → server-Bbs3L-6_.js} +1 -1
- package/dist/client/assets/{session-logic-DNf1aXq_.js → session-logic-CKQkgIwo.js} +1 -1
- package/dist/client/assets/settingsDialogStore-SG-W1q0A.js +1 -0
- package/dist/client/assets/{settingsLayout-D22Mm0u3.js → settingsLayout-G5xVm-ZT.js} +1 -1
- package/dist/client/assets/sidebar-_u7SGgmC.js +1 -0
- package/dist/client/assets/sidebarStatusText-BTYnwflG.js +1 -0
- package/dist/client/assets/{skeleton-DWaac_qp.js → skeleton-CmUvhZGP.js} +1 -1
- package/dist/client/assets/{storeSelectors-Cx1IYPA4.js → storeSelectors-DhJRpdiw.js} +1 -1
- 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-CnLjaHSL.js → toggle-group-Dtv1ZUFW.js} +1 -1
- package/dist/client/assets/{tokenModePresentation-BSYdIvBm.js → tokenModePresentation-Dor1DnBx.js} +1 -1
- package/dist/client/assets/{trash-2-BI5xcbsm.js → trash-2-C2G3VGoV.js} +1 -1
- package/dist/client/assets/{triangle-alert-DJef_Uvh.js → triangle-alert-Bpz3xGu5.js} +1 -1
- package/dist/client/assets/{undo-2-DeZ2cMGS.js → undo-2-C3rtxuqZ.js} +1 -1
- package/dist/client/assets/{useHandleNewThread-XB82O6SA.js → useHandleNewThread-ypSbzG0P.js} +1 -1
- package/dist/client/assets/useLabelableId-Bc7KEnHU.js +1 -0
- package/dist/client/assets/{useNavigate-B2tgshhW.js → useNavigate-_4hWGSey.js} +1 -1
- package/dist/client/assets/useTheme-HcKmBfpF.js +1 -0
- package/dist/client/assets/{vscode-icons-DM9qFoEr.js → vscode-icons-DdSTtxYd.js} +1 -1
- package/dist/client/assets/{wrench-je4QOyG-.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-C2z5Y8tF.mjs → collectUint8StreamText-Lv4GGI79.mjs} +269 -14
- package/dist/{collectUint8StreamText-TCG6xW_P.cjs → collectUint8StreamText-uNXVRHOf.cjs} +291 -12
- package/dist/{makeManagedServerProvider-DPFw9gV_.cjs → makeManagedServerProvider-3SD-Q5xh.cjs} +1 -1
- package/dist/{makeManagedServerProvider-BXO8QvzC.mjs → makeManagedServerProvider-CkPEptun.mjs} +1 -1
- package/package.json +1 -1
- package/dist/client/assets/AppearanceSettings-BlsMFBvJ.js +0 -1
- package/dist/client/assets/ChatRightPanel-CThudBb1.js +0 -188
- package/dist/client/assets/CompositeRoot-DjnzUIwC.js +0 -1
- package/dist/client/assets/ConnectionsSettings-hArR4Oe3.js +0 -1
- package/dist/client/assets/DialogTitle-H1yIMmA9.js +0 -1
- package/dist/client/assets/DialogTrigger-BHMq_K2G.js +0 -1
- package/dist/client/assets/McpServersSettings-dQ3BzOWY.js +0 -6
- package/dist/client/assets/ProvidersSettingsPanel-D15EeWAq.js +0 -1
- package/dist/client/assets/RootAppShell-CWBPSA2w.js +0 -12
- package/dist/client/assets/SettingsDialog-oJCE5foT.js +0 -2
- package/dist/client/assets/SourceControlSettings-CPnlMxNm.js +0 -1
- package/dist/client/assets/ThreadWorkspacePanel-qF9y6QT9.js +0 -166
- package/dist/client/assets/composerDraftStore-D12lUSfh.js +0 -21
- package/dist/client/assets/editorPreferences-BLeEBSD_.js +0 -1
- package/dist/client/assets/folder-open-DMjz0lpx.js +0 -1
- package/dist/client/assets/kbd-aeSsjiPI.js +0 -1
- package/dist/client/assets/main-C57RhHZ_.css +0 -2
- package/dist/client/assets/plus-4Oy56d-3.js +0 -1
- package/dist/client/assets/projectAtoms-DUEBb7Zz.js +0 -1
- package/dist/client/assets/providerDriverMeta-Dwi6Zqgd.js +0 -1
- package/dist/client/assets/providerIconUtils-uhWb4bdg.js +0 -47
- package/dist/client/assets/radio-group-DHyQlLeX.js +0 -1
- package/dist/client/assets/settingsDialogStore-BINi7pdD.js +0 -1
- package/dist/client/assets/sidebar-DHwNQmWp.js +0 -1
- package/dist/client/assets/threadSelectionStore-C0ig4405.js +0 -1
- package/dist/client/assets/toast-DE7a4wkW.js +0 -1
- package/dist/client/assets/toggle-BIW4AyPY.js +0 -1
- package/dist/client/assets/useLabelableId-DBAgv9qQ.js +0 -1
- package/dist/client/assets/useTheme-Dv42Z8uy.js +0 -1
- package/dist/client/assets/x-fI9snvD3.js +0 -1
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { l as sourceControlRefFromInput, o as SourceControlProvider, t as azureDevOpsDiscovery } from "./SourceControlProviderDiscoveryCatalog-
|
|
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
5
|
import { Yt as AzureDevOpsCli } from "./bin.mjs";
|
|
6
6
|
import { DateTime, Effect, Layer, Option } from "effect";
|
|
7
7
|
//#region src/sourceControl/AzureDevOpsSourceControlProvider.ts
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { i as makeBitbucketDiscovery, l as sourceControlRefFromInput, o as SourceControlProvider } from "./SourceControlProviderDiscoveryCatalog-
|
|
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
5
|
import { Jt as BitbucketApi } from "./bin.mjs";
|
|
6
6
|
import { DateTime, Effect, Layer, Option } from "effect";
|
|
7
7
|
//#region src/sourceControl/BitbucketSourceControlProvider.ts
|
|
@@ -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-
|
|
4
|
+
const require_collectUint8StreamText = require("./collectUint8StreamText-uNXVRHOf.cjs");
|
|
5
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";
|
|
@@ -1248,6 +1313,82 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
1248
1313
|
createdAt: nowIso
|
|
1249
1314
|
});
|
|
1250
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
|
+
});
|
|
1251
1392
|
const logNativeSdkMessage = effect.Effect.fn("logNativeSdkMessage")(function* (context, message) {
|
|
1252
1393
|
if (!nativeEventLogger) return;
|
|
1253
1394
|
const observedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -2035,6 +2176,11 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2035
2176
|
...message.task_type ? { taskType: message.task_type } : {}
|
|
2036
2177
|
}
|
|
2037
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
|
+
}
|
|
2038
2184
|
return;
|
|
2039
2185
|
case "task_progress":
|
|
2040
2186
|
if (message.usage) {
|
|
@@ -2062,6 +2208,18 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2062
2208
|
...message.last_tool_name ? { lastToolName: message.last_tool_name } : {}
|
|
2063
2209
|
}
|
|
2064
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
|
+
}
|
|
2065
2223
|
return;
|
|
2066
2224
|
case "task_notification":
|
|
2067
2225
|
if (message.usage) {
|
|
@@ -2088,6 +2246,17 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2088
2246
|
...message.usage ? { usage: message.usage } : {}
|
|
2089
2247
|
}
|
|
2090
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
|
+
}
|
|
2091
2260
|
return;
|
|
2092
2261
|
case "files_persisted":
|
|
2093
2262
|
yield* offerRuntimeEvent({
|
|
@@ -2636,6 +2805,9 @@ const makeClaudeAdapter = effect.Effect.fn("makeClaudeAdapter")(function* (claud
|
|
|
2636
2805
|
lastKnownTokenUsage: void 0,
|
|
2637
2806
|
lastAssistantUuid: resumeState?.resumeSessionAt,
|
|
2638
2807
|
lastThreadStartedId: void 0,
|
|
2808
|
+
subagentByTaskId: /* @__PURE__ */ new Map(),
|
|
2809
|
+
startedSubagentIds: /* @__PURE__ */ new Set(),
|
|
2810
|
+
completedSubagentIds: /* @__PURE__ */ new Set(),
|
|
2639
2811
|
stopped: false
|
|
2640
2812
|
};
|
|
2641
2813
|
yield* effect.Ref.set(contextRef, context);
|
|
@@ -3072,6 +3244,7 @@ const ClaudeDriver = {
|
|
|
3072
3244
|
const spawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
|
|
3073
3245
|
const path = yield* effect.Path.Path;
|
|
3074
3246
|
const httpClient = yield* effect_unstable_http.HttpClient.HttpClient;
|
|
3247
|
+
const serverSettings = yield* require_bin.ServerSettingsService;
|
|
3075
3248
|
const eventLoggers = yield* require_bin.ProviderEventLoggers;
|
|
3076
3249
|
const processEnv = require_bin.mergeProviderInstanceEnvironment(environment);
|
|
3077
3250
|
const fallbackContinuationIdentity = require_ProviderDriver.defaultProviderContinuationIdentity({
|
|
@@ -3118,7 +3291,7 @@ const ClaudeDriver = {
|
|
|
3118
3291
|
haveSettingsChanged: () => false,
|
|
3119
3292
|
initialSnapshot: (settings) => stampIdentity(makePendingClaudeProvider(settings)),
|
|
3120
3293
|
checkProvider,
|
|
3121
|
-
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))),
|
|
3122
3295
|
refreshInterval: null
|
|
3123
3296
|
}).pipe(effect.Effect.mapError((cause) => new require_bin.ProviderDriverError({
|
|
3124
3297
|
driver: DRIVER_KIND,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { Bn as ProviderInstanceId, I as ClaudeSettings, Sr as TurnId, _r as RuntimeRequestId, br as ThreadId, gr as RuntimeItemId, hr as ProviderItemId, lr as EventId, nr as ApprovalRequestId, vr as RuntimeSubagentId, x as TextGenerationError, yr as RuntimeTaskId, zn as ProviderDriverKind } from "./collectUint8StreamText-Lv4GGI79.mjs";
|
|
4
4
|
import { U as sanitizeBranchFragment, W as sanitizeFeatureBranchName, Y as ServerConfig } from "./Metrics-6Xj17Se3.mjs";
|
|
5
|
-
import { C as DEFAULT_TIMEOUT_MS, E as buildServerProvider, F as ProviderAdapterRequestError, I as ProviderAdapterSessionClosedError, L as ProviderAdapterSessionNotFoundError, M as providerModelsFromSettings, N as spawnAndCollect, O as detailFromResult, P as ProviderAdapterProcessError, Qt as makePackageManagedProviderMaintenanceResolver, R as ProviderAdapterValidationError, T as buildSelectOptionDescriptor, U as expandHomePath, Xt as enrichProviderSnapshotWithVersionAdvisory, _ as buildTokenReductionInstructions,
|
|
6
|
-
import { a as buildIssueContentTitlePrompt, d as sanitizePrTitle, f as sanitizeThreadTitle, i as buildIssueContentPolishPrompt, l as normalizeCliError, n as buildBranchNamePrompt, o as buildPrContentPrompt, p as toJsonSchemaObject, r as buildCommitMessagePrompt, s as buildThreadTitlePrompt, t as makeManagedServerProvider, u as sanitizeCommitSubject } from "./makeManagedServerProvider-
|
|
5
|
+
import { C as DEFAULT_TIMEOUT_MS, E as buildServerProvider, F as ProviderAdapterRequestError, I as ProviderAdapterSessionClosedError, L as ProviderAdapterSessionNotFoundError, M as providerModelsFromSettings, N as spawnAndCollect, O as detailFromResult, P as ProviderAdapterProcessError, Qt as makePackageManagedProviderMaintenanceResolver, R as ProviderAdapterValidationError, T as buildSelectOptionDescriptor, U as expandHomePath, Xt as enrichProviderSnapshotWithVersionAdvisory, _ as buildTokenReductionInstructions, an as resolveAttachmentPath, cn as createModelCapabilities, fn as getProviderOptionCurrentValue, g as makeEventNdjsonLogger, gn as resolvePromptInjectedEffort, h as ProviderEventLoggers, in as ServerSettingsService, j as parseGenericCliVersion, k as isCommandMissingCause, ln as getModelSelectionBooleanOptionValue, nn as resolveProviderMaintenanceCapabilitiesEffect, pn as getProviderOptionDescriptors, rn as compareCliVersions, sn as applyClaudePromptEffortPrefix, t as makeServerQueueMetrics, tn as normalizeCommandPath, un as getModelSelectionStringOptionValue, v as checkRtkAvailability, w as buildBooleanOptionDescriptor, y as mergeProviderInstanceEnvironment, z as ProviderDriverError } from "./bin.mjs";
|
|
6
|
+
import { a as buildIssueContentTitlePrompt, d as sanitizePrTitle, f as sanitizeThreadTitle, i as buildIssueContentPolishPrompt, l as normalizeCliError, n as buildBranchNamePrompt, o as buildPrContentPrompt, p as toJsonSchemaObject, r as buildCommitMessagePrompt, s as buildThreadTitlePrompt, t as makeManagedServerProvider, u as sanitizeCommitSubject } from "./makeManagedServerProvider-CkPEptun.mjs";
|
|
7
7
|
import { t as formatSourceControlContextsForAgent } from "./sourceControlContextFormatter-DEwpnVAH.mjs";
|
|
8
8
|
import { n as formatProjectCustomSystemPrompt } from "./ProjectCustomSystemPrompt-CS1nulhL.mjs";
|
|
9
9
|
import { t as defaultProviderContinuationIdentity } from "./ProviderDriver-kCV60GKk.mjs";
|
|
@@ -46,6 +46,7 @@ const CLAUDE_PRESENTATION = {
|
|
|
46
46
|
};
|
|
47
47
|
const MINIMUM_CLAUDE_OPUS_4_8_VERSION = "2.1.154";
|
|
48
48
|
const MINIMUM_CLAUDE_OPUS_4_7_VERSION = "2.1.111";
|
|
49
|
+
const MINIMUM_CLAUDE_FABLE_5_VERSION = "2.1.194";
|
|
49
50
|
function buildClaudeEffortOption(value, defaultEffort) {
|
|
50
51
|
const label = value === "xhigh" ? "Extra High" : value[0].toUpperCase() + value.slice(1).toLowerCase();
|
|
51
52
|
return value === defaultEffort ? {
|
|
@@ -117,6 +118,18 @@ const CLAUDE_OPUS_LEGACY_EFFORT_LEVELS = [
|
|
|
117
118
|
"max"
|
|
118
119
|
];
|
|
119
120
|
const BUILT_IN_MODELS = [
|
|
121
|
+
{
|
|
122
|
+
slug: "claude-fable-5",
|
|
123
|
+
name: "Claude Fable 5",
|
|
124
|
+
shortName: "Fable 5",
|
|
125
|
+
isCustom: false,
|
|
126
|
+
capabilities: buildClaudeOpusCapabilities({
|
|
127
|
+
effortLevels: CLAUDE_OPUS_ADAPTIVE_EFFORT_LEVELS,
|
|
128
|
+
defaultEffort: "high",
|
|
129
|
+
supportsFastMode: false,
|
|
130
|
+
supportsContextWindow: false
|
|
131
|
+
})
|
|
132
|
+
},
|
|
120
133
|
{
|
|
121
134
|
slug: "claude-opus-4-8",
|
|
122
135
|
name: "Claude Opus 4.8",
|
|
@@ -161,7 +174,7 @@ const BUILT_IN_MODELS = [
|
|
|
161
174
|
capabilities: buildClaudeOpusCapabilities({
|
|
162
175
|
effortLevels: CLAUDE_OPUS_LEGACY_EFFORT_LEVELS,
|
|
163
176
|
defaultEffort: "high",
|
|
164
|
-
supportsFastMode:
|
|
177
|
+
supportsFastMode: false,
|
|
165
178
|
supportsContextWindow: false
|
|
166
179
|
})
|
|
167
180
|
},
|
|
@@ -226,8 +239,12 @@ function supportsClaudeOpus48(version) {
|
|
|
226
239
|
function supportsClaudeOpus47(version) {
|
|
227
240
|
return supportsMinimumClaudeVersion(version, MINIMUM_CLAUDE_OPUS_4_7_VERSION);
|
|
228
241
|
}
|
|
242
|
+
function supportsClaudeFable5(version) {
|
|
243
|
+
return supportsMinimumClaudeVersion(version, MINIMUM_CLAUDE_FABLE_5_VERSION);
|
|
244
|
+
}
|
|
229
245
|
function getBuiltInClaudeModelsForVersion(version) {
|
|
230
246
|
return BUILT_IN_MODELS.filter((model) => {
|
|
247
|
+
if (model.slug === "claude-fable-5") return supportsClaudeFable5(version);
|
|
231
248
|
if (model.slug === "claude-opus-4-8") return supportsClaudeOpus48(version);
|
|
232
249
|
if (model.slug === "claude-opus-4-7") return supportsClaudeOpus47(version);
|
|
233
250
|
return true;
|
|
@@ -939,6 +956,54 @@ function readClaudeResumeState(resumeCursor) {
|
|
|
939
956
|
...turnCountValue !== void 0 && Number.isInteger(turnCountValue) && turnCountValue >= 0 ? { turnCount: turnCountValue } : {}
|
|
940
957
|
};
|
|
941
958
|
}
|
|
959
|
+
function trimmedClaudeString(value) {
|
|
960
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
|
|
961
|
+
}
|
|
962
|
+
function claudeTaskField(message, field) {
|
|
963
|
+
return trimmedClaudeString(message[field]);
|
|
964
|
+
}
|
|
965
|
+
function hasClaudeSubagentNameSignal(value) {
|
|
966
|
+
return value !== void 0 && /\b(?:sub[-\s]?agent|agent|subtask|task)\b/i.test(value);
|
|
967
|
+
}
|
|
968
|
+
function hasClaudeSubagentDescriptionSignal(value) {
|
|
969
|
+
return value !== void 0 && /\b(?:sub[-\s]?agent|agent|teammate|worker|delegate[sd]?|reviewer)\b/i.test(value);
|
|
970
|
+
}
|
|
971
|
+
function isClaudeSubagentTaskMessage(message) {
|
|
972
|
+
return hasClaudeSubagentNameSignal(claudeTaskField(message, "task_type")) || hasClaudeSubagentNameSignal(claudeTaskField(message, "last_tool_name")) || hasClaudeSubagentDescriptionSignal(claudeTaskField(message, "description")) || hasClaudeSubagentDescriptionSignal(claudeTaskField(message, "summary"));
|
|
973
|
+
}
|
|
974
|
+
function claudeTaskSubagentStatus(status) {
|
|
975
|
+
return status;
|
|
976
|
+
}
|
|
977
|
+
function claudeTaskCompletionStatus(status) {
|
|
978
|
+
return status;
|
|
979
|
+
}
|
|
980
|
+
function claudeTaskMetadata(message) {
|
|
981
|
+
const metadata = Object.fromEntries([
|
|
982
|
+
["source", "claude.task"],
|
|
983
|
+
["taskType", claudeTaskField(message, "task_type")],
|
|
984
|
+
["lastToolName", claudeTaskField(message, "last_tool_name")]
|
|
985
|
+
].filter(([, value]) => value !== void 0));
|
|
986
|
+
return Object.keys(metadata).length > 0 ? metadata : void 0;
|
|
987
|
+
}
|
|
988
|
+
function makeClaudeTaskSubagentRef(existing, message) {
|
|
989
|
+
const taskType = claudeTaskField(message, "task_type");
|
|
990
|
+
const lastToolName = claudeTaskField(message, "last_tool_name");
|
|
991
|
+
const description = claudeTaskField(message, "description") ?? existing?.description;
|
|
992
|
+
const label = taskType ?? lastToolName ?? existing?.label ?? "Claude task";
|
|
993
|
+
const taskMetadata = claudeTaskMetadata(message);
|
|
994
|
+
const metadata = {};
|
|
995
|
+
if (existing?.metadata) Object.assign(metadata, existing.metadata);
|
|
996
|
+
if (taskMetadata) Object.assign(metadata, taskMetadata);
|
|
997
|
+
return {
|
|
998
|
+
subagentId: existing?.subagentId ?? RuntimeSubagentId.make(`claude-task:${message.task_id}`),
|
|
999
|
+
origin: "native",
|
|
1000
|
+
capability: "summary",
|
|
1001
|
+
label,
|
|
1002
|
+
...description && { description },
|
|
1003
|
+
providerTaskId: RuntimeTaskId.make(message.task_id),
|
|
1004
|
+
...Object.keys(metadata).length > 0 && { metadata }
|
|
1005
|
+
};
|
|
1006
|
+
}
|
|
942
1007
|
function classifyToolItemType(toolName) {
|
|
943
1008
|
const normalized = toolName.toLowerCase();
|
|
944
1009
|
if (normalized.includes("agent")) return "collab_agent_tool_call";
|
|
@@ -1244,6 +1309,82 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
|
|
|
1244
1309
|
createdAt: nowIso
|
|
1245
1310
|
});
|
|
1246
1311
|
const offerRuntimeEvent = (event) => Queue.offer(runtimeEventQueue, event).pipe(Effect.andThen(runtimeEventQueueMetrics.recordEnqueued()), Effect.asVoid);
|
|
1312
|
+
const emitClaudeSubagentStarted = Effect.fn("emitClaudeSubagentStarted")(function* (context, subagent, raw) {
|
|
1313
|
+
const key = String(subagent.subagentId);
|
|
1314
|
+
if (context.startedSubagentIds.has(key)) return;
|
|
1315
|
+
context.startedSubagentIds.add(key);
|
|
1316
|
+
const stamp = yield* makeEventStamp();
|
|
1317
|
+
yield* offerRuntimeEvent({
|
|
1318
|
+
type: "subagent.started",
|
|
1319
|
+
eventId: stamp.eventId,
|
|
1320
|
+
provider: PROVIDER,
|
|
1321
|
+
createdAt: stamp.createdAt,
|
|
1322
|
+
threadId: context.session.threadId,
|
|
1323
|
+
...context.turnState ? { turnId: asCanonicalTurnId(context.turnState.turnId) } : {},
|
|
1324
|
+
payload: { subagent },
|
|
1325
|
+
providerRefs: nativeProviderRefs(context),
|
|
1326
|
+
raw: {
|
|
1327
|
+
source: "claude.sdk.message",
|
|
1328
|
+
method: sdkNativeMethod(raw),
|
|
1329
|
+
messageType: `${raw.type}:${sdkMessageSubtype(raw) ?? ""}`,
|
|
1330
|
+
payload: raw
|
|
1331
|
+
}
|
|
1332
|
+
});
|
|
1333
|
+
});
|
|
1334
|
+
const emitClaudeSubagentUpdated = Effect.fn("emitClaudeSubagentUpdated")(function* (context, input) {
|
|
1335
|
+
yield* emitClaudeSubagentStarted(context, input.subagent, input.raw);
|
|
1336
|
+
const stamp = yield* makeEventStamp();
|
|
1337
|
+
yield* offerRuntimeEvent({
|
|
1338
|
+
type: "subagent.updated",
|
|
1339
|
+
eventId: stamp.eventId,
|
|
1340
|
+
provider: PROVIDER,
|
|
1341
|
+
createdAt: stamp.createdAt,
|
|
1342
|
+
threadId: context.session.threadId,
|
|
1343
|
+
...context.turnState ? { turnId: asCanonicalTurnId(context.turnState.turnId) } : {},
|
|
1344
|
+
payload: {
|
|
1345
|
+
subagent: input.subagent,
|
|
1346
|
+
...input.status ? { status: input.status } : {},
|
|
1347
|
+
...input.summary ? { summary: input.summary } : {},
|
|
1348
|
+
...input.detail ? { detail: input.detail } : {},
|
|
1349
|
+
...input.usage !== void 0 ? { usage: input.usage } : {}
|
|
1350
|
+
},
|
|
1351
|
+
providerRefs: nativeProviderRefs(context),
|
|
1352
|
+
raw: {
|
|
1353
|
+
source: "claude.sdk.message",
|
|
1354
|
+
method: sdkNativeMethod(input.raw),
|
|
1355
|
+
messageType: `${input.raw.type}:${sdkMessageSubtype(input.raw) ?? ""}`,
|
|
1356
|
+
payload: input.raw
|
|
1357
|
+
}
|
|
1358
|
+
});
|
|
1359
|
+
});
|
|
1360
|
+
const emitClaudeSubagentCompleted = Effect.fn("emitClaudeSubagentCompleted")(function* (context, input) {
|
|
1361
|
+
const key = String(input.subagent.subagentId);
|
|
1362
|
+
if (context.completedSubagentIds.has(key)) return;
|
|
1363
|
+
yield* emitClaudeSubagentStarted(context, input.subagent, input.raw);
|
|
1364
|
+
context.completedSubagentIds.add(key);
|
|
1365
|
+
const stamp = yield* makeEventStamp();
|
|
1366
|
+
yield* offerRuntimeEvent({
|
|
1367
|
+
type: "subagent.completed",
|
|
1368
|
+
eventId: stamp.eventId,
|
|
1369
|
+
provider: PROVIDER,
|
|
1370
|
+
createdAt: stamp.createdAt,
|
|
1371
|
+
threadId: context.session.threadId,
|
|
1372
|
+
...context.turnState ? { turnId: asCanonicalTurnId(context.turnState.turnId) } : {},
|
|
1373
|
+
payload: {
|
|
1374
|
+
subagent: input.subagent,
|
|
1375
|
+
status: input.status,
|
|
1376
|
+
...input.summary ? { summary: input.summary } : {},
|
|
1377
|
+
...input.usage !== void 0 ? { usage: input.usage } : {}
|
|
1378
|
+
},
|
|
1379
|
+
providerRefs: nativeProviderRefs(context),
|
|
1380
|
+
raw: {
|
|
1381
|
+
source: "claude.sdk.message",
|
|
1382
|
+
method: sdkNativeMethod(input.raw),
|
|
1383
|
+
messageType: `${input.raw.type}:${sdkMessageSubtype(input.raw) ?? ""}`,
|
|
1384
|
+
payload: input.raw
|
|
1385
|
+
}
|
|
1386
|
+
});
|
|
1387
|
+
});
|
|
1247
1388
|
const logNativeSdkMessage = Effect.fn("logNativeSdkMessage")(function* (context, message) {
|
|
1248
1389
|
if (!nativeEventLogger) return;
|
|
1249
1390
|
const observedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -2031,6 +2172,11 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
|
|
|
2031
2172
|
...message.task_type ? { taskType: message.task_type } : {}
|
|
2032
2173
|
}
|
|
2033
2174
|
});
|
|
2175
|
+
if (isClaudeSubagentTaskMessage(message)) {
|
|
2176
|
+
const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
|
|
2177
|
+
context.subagentByTaskId.set(message.task_id, subagent);
|
|
2178
|
+
yield* emitClaudeSubagentStarted(context, subagent, message);
|
|
2179
|
+
}
|
|
2034
2180
|
return;
|
|
2035
2181
|
case "task_progress":
|
|
2036
2182
|
if (message.usage) {
|
|
@@ -2058,6 +2204,18 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
|
|
|
2058
2204
|
...message.last_tool_name ? { lastToolName: message.last_tool_name } : {}
|
|
2059
2205
|
}
|
|
2060
2206
|
});
|
|
2207
|
+
if (isClaudeSubagentTaskMessage(message) || context.subagentByTaskId.has(message.task_id)) {
|
|
2208
|
+
const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
|
|
2209
|
+
context.subagentByTaskId.set(message.task_id, subagent);
|
|
2210
|
+
yield* emitClaudeSubagentUpdated(context, {
|
|
2211
|
+
subagent,
|
|
2212
|
+
status: claudeTaskSubagentStatus("running"),
|
|
2213
|
+
...message.summary ? { summary: message.summary } : {},
|
|
2214
|
+
detail: message.description,
|
|
2215
|
+
...message.usage ? { usage: message.usage } : {},
|
|
2216
|
+
raw: message
|
|
2217
|
+
});
|
|
2218
|
+
}
|
|
2061
2219
|
return;
|
|
2062
2220
|
case "task_notification":
|
|
2063
2221
|
if (message.usage) {
|
|
@@ -2084,6 +2242,17 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
|
|
|
2084
2242
|
...message.usage ? { usage: message.usage } : {}
|
|
2085
2243
|
}
|
|
2086
2244
|
});
|
|
2245
|
+
if (isClaudeSubagentTaskMessage(message) || context.subagentByTaskId.has(message.task_id)) {
|
|
2246
|
+
const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
|
|
2247
|
+
context.subagentByTaskId.set(message.task_id, subagent);
|
|
2248
|
+
yield* emitClaudeSubagentCompleted(context, {
|
|
2249
|
+
subagent,
|
|
2250
|
+
status: claudeTaskCompletionStatus(message.status),
|
|
2251
|
+
...message.summary ? { summary: message.summary } : {},
|
|
2252
|
+
...message.usage ? { usage: message.usage } : {},
|
|
2253
|
+
raw: message
|
|
2254
|
+
});
|
|
2255
|
+
}
|
|
2087
2256
|
return;
|
|
2088
2257
|
case "files_persisted":
|
|
2089
2258
|
yield* offerRuntimeEvent({
|
|
@@ -2632,6 +2801,9 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
|
|
|
2632
2801
|
lastKnownTokenUsage: void 0,
|
|
2633
2802
|
lastAssistantUuid: resumeState?.resumeSessionAt,
|
|
2634
2803
|
lastThreadStartedId: void 0,
|
|
2804
|
+
subagentByTaskId: /* @__PURE__ */ new Map(),
|
|
2805
|
+
startedSubagentIds: /* @__PURE__ */ new Set(),
|
|
2806
|
+
completedSubagentIds: /* @__PURE__ */ new Set(),
|
|
2635
2807
|
stopped: false
|
|
2636
2808
|
};
|
|
2637
2809
|
yield* Ref.set(contextRef, context);
|
|
@@ -3068,6 +3240,7 @@ const ClaudeDriver = {
|
|
|
3068
3240
|
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
3069
3241
|
const path = yield* Path.Path;
|
|
3070
3242
|
const httpClient = yield* HttpClient.HttpClient;
|
|
3243
|
+
const serverSettings = yield* ServerSettingsService;
|
|
3071
3244
|
const eventLoggers = yield* ProviderEventLoggers;
|
|
3072
3245
|
const processEnv = mergeProviderInstanceEnvironment(environment);
|
|
3073
3246
|
const fallbackContinuationIdentity = defaultProviderContinuationIdentity({
|
|
@@ -3114,7 +3287,7 @@ const ClaudeDriver = {
|
|
|
3114
3287
|
haveSettingsChanged: () => false,
|
|
3115
3288
|
initialSnapshot: (settings) => stampIdentity(makePendingClaudeProvider(settings)),
|
|
3116
3289
|
checkProvider,
|
|
3117
|
-
enrichSnapshot: ({ snapshot, publishSnapshot }) => enrichProviderSnapshotWithVersionAdvisory(snapshot, maintenanceCapabilities).pipe(Effect.provideService(HttpClient.HttpClient, httpClient), Effect.flatMap((enrichedSnapshot) => publishSnapshot(enrichedSnapshot))),
|
|
3290
|
+
enrichSnapshot: ({ snapshot, publishSnapshot }) => enrichProviderSnapshotWithVersionAdvisory(snapshot, maintenanceCapabilities).pipe(Effect.provideService(HttpClient.HttpClient, httpClient), Effect.provideService(ServerSettingsService, serverSettings), Effect.flatMap((enrichedSnapshot) => publishSnapshot(enrichedSnapshot))),
|
|
3118
3291
|
refreshInterval: null
|
|
3119
3292
|
}).pipe(Effect.mapError((cause) => new ProviderDriverError({
|
|
3120
3293
|
driver: DRIVER_KIND,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { Bn as ProviderInstanceId, Gt as ProviderApprovalDecision, It as PROVIDER_SEND_TURN_MAX_IMAGE_BYTES, L as CodexSettings, Sr as TurnId, _r as RuntimeRequestId, gr as RuntimeItemId, hr as ProviderItemId, lr as EventId, nr as ApprovalRequestId, zn as ProviderDriverKind } from "./collectUint8StreamText-Lv4GGI79.mjs";
|
|
4
4
|
import { Y as ServerConfig } from "./Metrics-6Xj17Se3.mjs";
|
|
5
|
-
import { $ as ServerRequest__CommandExecutionRequestApprovalParams, At as V2ThreadStatusChangedNotification, B as codexContinuationIdentity, Ct as V2ThreadNameUpdatedNotification, Dt as V2ThreadRealtimeOutputAudioDeltaNotification, Et as V2ThreadRealtimeItemAddedNotification, F as ProviderAdapterRequestError, Ft as V2TurnStartParams, G as layerChildProcess, H as resolveCodexHomeLayout, I as ProviderAdapterSessionClosedError, It as V2TurnStartParams__CollaborationMode, J as CodexAppServerRequestError, K as CodexAppServerProcessExitedError, L as ProviderAdapterSessionNotFoundError, Lt as V2TurnStartResponse, Mt as V2TurnCompletedNotification, Nt as V2TurnDiffUpdatedNotification, Ot as V2ThreadRealtimeStartedNotification, P as ProviderAdapterProcessError, Pt as V2TurnPlanUpdatedNotification, Q as ServerRequest__ApplyPatchApprovalParams, Qt as makePackageManagedProviderMaintenanceResolver, R as ProviderAdapterValidationError, Rt as V2WindowsSandboxSetupCompletedNotification, S as makePendingCodexProvider, St as V2ServerRequestResolvedNotification, Tt as V2ThreadRealtimeErrorNotification, U as expandHomePath, V as materializeCodexShadowHome, W as CodexAppServerClient, X as CodexAppServerTransportError, Xt as enrichProviderSnapshotWithVersionAdvisory, Y as CodexAppServerSpawnError, Z as SERVER_NOTIFICATION_METHODS, _ as buildTokenReductionInstructions, _t as V2McpToolCallProgressNotification, at as ToolRequestUserInputResponse, b as buildCodexInitializeParams, bt as V2ReasoningSummaryTextDeltaNotification,
|
|
6
|
-
import { t as makeManagedServerProvider } from "./makeManagedServerProvider-
|
|
5
|
+
import { $ as ServerRequest__CommandExecutionRequestApprovalParams, At as V2ThreadStatusChangedNotification, B as codexContinuationIdentity, Ct as V2ThreadNameUpdatedNotification, Dt as V2ThreadRealtimeOutputAudioDeltaNotification, Et as V2ThreadRealtimeItemAddedNotification, F as ProviderAdapterRequestError, Ft as V2TurnStartParams, G as layerChildProcess, H as resolveCodexHomeLayout, I as ProviderAdapterSessionClosedError, It as V2TurnStartParams__CollaborationMode, J as CodexAppServerRequestError, K as CodexAppServerProcessExitedError, L as ProviderAdapterSessionNotFoundError, Lt as V2TurnStartResponse, Mt as V2TurnCompletedNotification, Nt as V2TurnDiffUpdatedNotification, Ot as V2ThreadRealtimeStartedNotification, P as ProviderAdapterProcessError, Pt as V2TurnPlanUpdatedNotification, Q as ServerRequest__ApplyPatchApprovalParams, Qt as makePackageManagedProviderMaintenanceResolver, R as ProviderAdapterValidationError, Rt as V2WindowsSandboxSetupCompletedNotification, S as makePendingCodexProvider, St as V2ServerRequestResolvedNotification, Tt as V2ThreadRealtimeErrorNotification, U as expandHomePath, V as materializeCodexShadowHome, W as CodexAppServerClient, X as CodexAppServerTransportError, Xt as enrichProviderSnapshotWithVersionAdvisory, Y as CodexAppServerSpawnError, Z as SERVER_NOTIFICATION_METHODS, _ as buildTokenReductionInstructions, _t as V2McpToolCallProgressNotification, an as resolveAttachmentPath, at as ToolRequestUserInputResponse, b as buildCodexInitializeParams, bt as V2ReasoningSummaryTextDeltaNotification, ct as V2AgentMessageDeltaNotification, dt as V2DeprecationNoticeNotification, et as ServerRequest__DynamicToolCallParams, ft as V2ErrorNotification, g as makeEventNdjsonLogger, gt as V2McpServerOauthLoginCompletedNotification, h as ProviderEventLoggers, hn as normalizeModelSlug, ht as V2ItemStartedNotification, in as ServerSettingsService, it as ToolRequestUserInputParams, jt as V2ThreadTokenUsageUpdatedNotification, kt as V2ThreadStartedNotification, ln as getModelSelectionBooleanOptionValue, lt as V2CommandExecutionOutputDeltaNotification, mt as V2ItemCompletedNotification, nn as resolveProviderMaintenanceCapabilitiesEffect, nt as ServerRequest__FileChangeRequestApprovalParams, ot as V2AccountRateLimitsUpdatedNotification, pt as V2FileChangeOutputDeltaNotification, q as CodexAppServerProtocolParseError, rt as ServerRequest__ToolRequestUserInputParams, st as V2AccountUpdatedNotification, t as makeServerQueueMetrics, tt as ServerRequest__ExecCommandApprovalParams, un as getModelSelectionStringOptionValue, ut as V2ConfigWarningNotification, v as checkRtkAvailability, vt as V2ModelReroutedNotification, wt as V2ThreadRealtimeClosedNotification, x as checkCodexProviderStatus, xt as V2ReasoningTextDeltaNotification, y as mergeProviderInstanceEnvironment, yt as V2PlanDeltaNotification, z as ProviderDriverError, zt as V2WindowsWorldWritableWarningNotification } from "./bin.mjs";
|
|
6
|
+
import { t as makeManagedServerProvider } from "./makeManagedServerProvider-CkPEptun.mjs";
|
|
7
7
|
import { t as formatSourceControlContextsForAgent } from "./sourceControlContextFormatter-DEwpnVAH.mjs";
|
|
8
8
|
import { t as appendProjectCustomSystemPrompt } from "./ProjectCustomSystemPrompt-CS1nulhL.mjs";
|
|
9
|
-
import { t as makeCodexTextGeneration } from "./CodexTextGeneration-
|
|
9
|
+
import { t as makeCodexTextGeneration } from "./CodexTextGeneration-BU9Myn87.mjs";
|
|
10
10
|
import { Deferred, Effect, Exit, Fiber, FileSystem, Layer, Queue, Random, Ref, Schema, Scope, Stream } from "effect";
|
|
11
11
|
import { HttpClient } from "effect/unstable/http";
|
|
12
12
|
import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
|
|
@@ -1959,6 +1959,7 @@ const CodexDriver = {
|
|
|
1959
1959
|
create: ({ instanceId, displayName, accentColor, environment, enabled, config }) => Effect.gen(function* () {
|
|
1960
1960
|
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
1961
1961
|
const httpClient = yield* HttpClient.HttpClient;
|
|
1962
|
+
const serverSettings = yield* ServerSettingsService;
|
|
1962
1963
|
const eventLoggers = yield* ProviderEventLoggers;
|
|
1963
1964
|
const processEnv = mergeProviderInstanceEnvironment(environment);
|
|
1964
1965
|
const homeLayout = yield* resolveCodexHomeLayout(config);
|
|
@@ -2005,7 +2006,7 @@ const CodexDriver = {
|
|
|
2005
2006
|
haveSettingsChanged: () => false,
|
|
2006
2007
|
initialSnapshot: (settings) => stampIdentity(makePendingCodexProvider(settings)),
|
|
2007
2008
|
checkProvider,
|
|
2008
|
-
enrichSnapshot: ({ snapshot, publishSnapshot }) => enrichProviderSnapshotWithVersionAdvisory(snapshot, maintenanceCapabilities).pipe(Effect.provideService(HttpClient.HttpClient, httpClient), Effect.flatMap((enrichedSnapshot) => publishSnapshot(enrichedSnapshot))),
|
|
2009
|
+
enrichSnapshot: ({ snapshot, publishSnapshot }) => enrichProviderSnapshotWithVersionAdvisory(snapshot, maintenanceCapabilities).pipe(Effect.provideService(HttpClient.HttpClient, httpClient), Effect.provideService(ServerSettingsService, serverSettings), Effect.flatMap((enrichedSnapshot) => publishSnapshot(enrichedSnapshot))),
|
|
2009
2010
|
refreshInterval: null
|
|
2010
2011
|
}).pipe(Effect.mapError((cause) => new ProviderDriverError({
|
|
2011
2012
|
driver: DRIVER_KIND,
|