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
|
@@ -37,6 +37,7 @@ makeEntityId("RuntimeSessionId");
|
|
|
37
37
|
const RuntimeItemId = makeEntityId("RuntimeItemId");
|
|
38
38
|
const RuntimeRequestId = makeEntityId("RuntimeRequestId");
|
|
39
39
|
const RuntimeTaskId = makeEntityId("RuntimeTaskId");
|
|
40
|
+
const RuntimeSubagentId = makeEntityId("RuntimeSubagentId");
|
|
40
41
|
const ApprovalRequestId = makeEntityId("ApprovalRequestId");
|
|
41
42
|
const CheckpointRef = makeEntityId("CheckpointRef");
|
|
42
43
|
//#endregion
|
|
@@ -873,6 +874,8 @@ const MODEL_SLUG_ALIASES_BY_PROVIDER = {
|
|
|
873
874
|
"gpt-5.3-spark": "gpt-5.3-codex-spark"
|
|
874
875
|
},
|
|
875
876
|
[CLAUDE_DRIVER_KIND]: {
|
|
877
|
+
fable: "claude-fable-5",
|
|
878
|
+
"fable-5": "claude-fable-5",
|
|
876
879
|
opus: "claude-opus-4-8",
|
|
877
880
|
"opus-4.8": "claude-opus-4-8",
|
|
878
881
|
"claude-opus-4.8": "claude-opus-4-8",
|
|
@@ -3364,6 +3367,10 @@ effect.Schema.Literals([
|
|
|
3364
3367
|
"task.started",
|
|
3365
3368
|
"task.progress",
|
|
3366
3369
|
"task.completed",
|
|
3370
|
+
"subagent.started",
|
|
3371
|
+
"subagent.updated",
|
|
3372
|
+
"subagent.completed",
|
|
3373
|
+
"subagent.message.delta",
|
|
3367
3374
|
"hook.started",
|
|
3368
3375
|
"hook.progress",
|
|
3369
3376
|
"hook.completed",
|
|
@@ -3413,6 +3420,10 @@ const UserInputResolvedType = effect.Schema.Literal("user-input.resolved");
|
|
|
3413
3420
|
const TaskStartedType = effect.Schema.Literal("task.started");
|
|
3414
3421
|
const TaskProgressType = effect.Schema.Literal("task.progress");
|
|
3415
3422
|
const TaskCompletedType = effect.Schema.Literal("task.completed");
|
|
3423
|
+
const SubagentStartedType = effect.Schema.Literal("subagent.started");
|
|
3424
|
+
const SubagentUpdatedType = effect.Schema.Literal("subagent.updated");
|
|
3425
|
+
const SubagentCompletedType = effect.Schema.Literal("subagent.completed");
|
|
3426
|
+
const SubagentMessageDeltaType = effect.Schema.Literal("subagent.message.delta");
|
|
3416
3427
|
const HookStartedType = effect.Schema.Literal("hook.started");
|
|
3417
3428
|
const HookProgressType = effect.Schema.Literal("hook.progress");
|
|
3418
3429
|
const HookCompletedType = effect.Schema.Literal("hook.completed");
|
|
@@ -3571,6 +3582,59 @@ const TaskCompletedPayload = effect.Schema.Struct({
|
|
|
3571
3582
|
summary: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3572
3583
|
usage: effect.Schema.optional(effect.Schema.Unknown)
|
|
3573
3584
|
});
|
|
3585
|
+
const RuntimeSubagentOrigin = effect.Schema.Literals(["native", "inferred"]);
|
|
3586
|
+
const RuntimeSubagentCapability = effect.Schema.Literals(["transcript", "summary"]);
|
|
3587
|
+
const RuntimeSubagentStatus = effect.Schema.Literals([
|
|
3588
|
+
"starting",
|
|
3589
|
+
"running",
|
|
3590
|
+
"completed",
|
|
3591
|
+
"failed",
|
|
3592
|
+
"stopped"
|
|
3593
|
+
]);
|
|
3594
|
+
const SubagentRef = effect.Schema.Struct({
|
|
3595
|
+
subagentId: RuntimeSubagentId,
|
|
3596
|
+
origin: RuntimeSubagentOrigin,
|
|
3597
|
+
capability: RuntimeSubagentCapability,
|
|
3598
|
+
label: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3599
|
+
description: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3600
|
+
providerSessionId: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3601
|
+
providerThreadId: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3602
|
+
providerTaskId: effect.Schema.optional(RuntimeTaskId),
|
|
3603
|
+
parentProviderItemId: effect.Schema.optional(ProviderItemId),
|
|
3604
|
+
metadata: effect.Schema.optional(UnknownRecordSchema)
|
|
3605
|
+
});
|
|
3606
|
+
const SubagentStartedPayload = effect.Schema.Struct({ subagent: SubagentRef });
|
|
3607
|
+
const SubagentUpdatedPayload = effect.Schema.Struct({
|
|
3608
|
+
subagent: SubagentRef,
|
|
3609
|
+
status: effect.Schema.optional(RuntimeSubagentStatus),
|
|
3610
|
+
summary: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3611
|
+
detail: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3612
|
+
usage: effect.Schema.optional(effect.Schema.Unknown)
|
|
3613
|
+
});
|
|
3614
|
+
const SubagentCompletedPayload = effect.Schema.Struct({
|
|
3615
|
+
subagent: SubagentRef,
|
|
3616
|
+
status: effect.Schema.Literals([
|
|
3617
|
+
"completed",
|
|
3618
|
+
"failed",
|
|
3619
|
+
"stopped"
|
|
3620
|
+
]),
|
|
3621
|
+
summary: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3622
|
+
usage: effect.Schema.optional(effect.Schema.Unknown)
|
|
3623
|
+
});
|
|
3624
|
+
const SubagentMessageDeltaPayload = effect.Schema.Struct({
|
|
3625
|
+
subagentId: RuntimeSubagentId,
|
|
3626
|
+
delta: effect.Schema.String,
|
|
3627
|
+
streamKind: effect.Schema.optional(RuntimeContentStreamKind),
|
|
3628
|
+
role: effect.Schema.optional(effect.Schema.Literals([
|
|
3629
|
+
"assistant",
|
|
3630
|
+
"user",
|
|
3631
|
+
"system"
|
|
3632
|
+
])),
|
|
3633
|
+
providerSessionId: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3634
|
+
providerThreadId: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3635
|
+
providerMessageId: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
3636
|
+
contentIndex: effect.Schema.optional(effect.Schema.Int)
|
|
3637
|
+
});
|
|
3574
3638
|
const HookStartedPayload = effect.Schema.Struct({
|
|
3575
3639
|
hookId: TrimmedNonEmptyStringSchema$1,
|
|
3576
3640
|
hookName: TrimmedNonEmptyStringSchema$1,
|
|
@@ -3812,6 +3876,26 @@ const ProviderRuntimeTaskCompletedEvent = effect.Schema.Struct({
|
|
|
3812
3876
|
type: TaskCompletedType,
|
|
3813
3877
|
payload: TaskCompletedPayload
|
|
3814
3878
|
});
|
|
3879
|
+
const ProviderRuntimeSubagentStartedEvent = effect.Schema.Struct({
|
|
3880
|
+
...ProviderRuntimeEventBase.fields,
|
|
3881
|
+
type: SubagentStartedType,
|
|
3882
|
+
payload: SubagentStartedPayload
|
|
3883
|
+
});
|
|
3884
|
+
const ProviderRuntimeSubagentUpdatedEvent = effect.Schema.Struct({
|
|
3885
|
+
...ProviderRuntimeEventBase.fields,
|
|
3886
|
+
type: SubagentUpdatedType,
|
|
3887
|
+
payload: SubagentUpdatedPayload
|
|
3888
|
+
});
|
|
3889
|
+
const ProviderRuntimeSubagentCompletedEvent = effect.Schema.Struct({
|
|
3890
|
+
...ProviderRuntimeEventBase.fields,
|
|
3891
|
+
type: SubagentCompletedType,
|
|
3892
|
+
payload: SubagentCompletedPayload
|
|
3893
|
+
});
|
|
3894
|
+
const ProviderRuntimeSubagentMessageDeltaEvent = effect.Schema.Struct({
|
|
3895
|
+
...ProviderRuntimeEventBase.fields,
|
|
3896
|
+
type: SubagentMessageDeltaType,
|
|
3897
|
+
payload: SubagentMessageDeltaPayload
|
|
3898
|
+
});
|
|
3815
3899
|
const ProviderRuntimeHookStartedEvent = effect.Schema.Struct({
|
|
3816
3900
|
...ProviderRuntimeEventBase.fields,
|
|
3817
3901
|
type: HookStartedType,
|
|
@@ -3929,6 +4013,10 @@ effect.Schema.Union([
|
|
|
3929
4013
|
ProviderRuntimeTaskStartedEvent,
|
|
3930
4014
|
ProviderRuntimeTaskProgressEvent,
|
|
3931
4015
|
ProviderRuntimeTaskCompletedEvent,
|
|
4016
|
+
ProviderRuntimeSubagentStartedEvent,
|
|
4017
|
+
ProviderRuntimeSubagentUpdatedEvent,
|
|
4018
|
+
ProviderRuntimeSubagentCompletedEvent,
|
|
4019
|
+
ProviderRuntimeSubagentMessageDeltaEvent,
|
|
3932
4020
|
ProviderRuntimeHookStartedEvent,
|
|
3933
4021
|
ProviderRuntimeHookProgressEvent,
|
|
3934
4022
|
ProviderRuntimeHookCompletedEvent,
|
|
@@ -4085,7 +4173,7 @@ const GitStatusPollIntervalMs = effect_Schema.Literals([
|
|
|
4085
4173
|
3e5
|
|
4086
4174
|
]);
|
|
4087
4175
|
const ClientSettingsSchema = effect_Schema.Struct({
|
|
4088
|
-
autoOpenPlanSidebar: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(
|
|
4176
|
+
autoOpenPlanSidebar: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
4089
4177
|
confirmThreadArchive: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
4090
4178
|
confirmThreadDelete: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(true))),
|
|
4091
4179
|
dismissedProviderUpdateNotificationKeys: effect_Schema.Array(TrimmedNonEmptyString).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed([]))),
|
|
@@ -4251,6 +4339,7 @@ const ObservabilitySettings = effect_Schema.Struct({
|
|
|
4251
4339
|
});
|
|
4252
4340
|
const ServerSettings = effect_Schema.Struct({
|
|
4253
4341
|
enableAssistantStreaming: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
4342
|
+
enableProviderUpdateChecks: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(true))),
|
|
4254
4343
|
defaultThreadEnvMode: ThreadEnvMode.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed("local"))),
|
|
4255
4344
|
defaultAgentTokenMode: AgentTokenMode.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_AGENT_TOKEN_MODE))),
|
|
4256
4345
|
addProjectBaseDirectory: TrimmedString.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(""))),
|
|
@@ -4321,6 +4410,7 @@ const OpenCodeSettingsPatch = effect_Schema.Struct({
|
|
|
4321
4410
|
});
|
|
4322
4411
|
const ServerSettingsPatch = effect_Schema.Struct({
|
|
4323
4412
|
enableAssistantStreaming: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
4413
|
+
enableProviderUpdateChecks: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
4324
4414
|
defaultThreadEnvMode: effect_Schema.optionalKey(ThreadEnvMode),
|
|
4325
4415
|
defaultAgentTokenMode: effect_Schema.optionalKey(AgentTokenMode),
|
|
4326
4416
|
addProjectBaseDirectory: effect_Schema.optionalKey(effect_Schema.String),
|
|
@@ -4826,6 +4916,110 @@ var DiagnosticsError = class extends effect.Schema.TaggedErrorClass()("Diagnosti
|
|
|
4826
4916
|
}
|
|
4827
4917
|
};
|
|
4828
4918
|
//#endregion
|
|
4919
|
+
//#region ../../packages/contracts/src/statistics.ts
|
|
4920
|
+
/**
|
|
4921
|
+
* Usage statistics surfaced in Settings → Statistics.
|
|
4922
|
+
*
|
|
4923
|
+
* The server returns the finest sensible granularity — one bucket per
|
|
4924
|
+
* `(date, project, model)` — and the client pivots/filters those buckets into
|
|
4925
|
+
* every chart (totals, per-model, per-project, time series) without re-fetching.
|
|
4926
|
+
* Token counts and timings are derived on demand from the existing projection
|
|
4927
|
+
* tables; no dedicated statistics tables exist.
|
|
4928
|
+
*/
|
|
4929
|
+
/** Selectable time window for the dashboard (client-side slicing of buckets). */
|
|
4930
|
+
const StatisticsRange = effect.Schema.Literals([
|
|
4931
|
+
"7d",
|
|
4932
|
+
"30d",
|
|
4933
|
+
"90d",
|
|
4934
|
+
"all"
|
|
4935
|
+
]);
|
|
4936
|
+
effect.Schema.Struct({
|
|
4937
|
+
projectId: effect.Schema.optional(effect.Schema.NullOr(ProjectId)),
|
|
4938
|
+
model: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.String)),
|
|
4939
|
+
provider: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.String)),
|
|
4940
|
+
range: effect.Schema.optional(StatisticsRange)
|
|
4941
|
+
});
|
|
4942
|
+
/**
|
|
4943
|
+
* A model that appears in the data, with its best-effort provider driver kind.
|
|
4944
|
+
* String fields are plain `Schema.String` (not non-empty): these are
|
|
4945
|
+
* server-derived display values, and relaxing them keeps a stray empty/legacy
|
|
4946
|
+
* value from failing success-encoding and crashing the whole RPC.
|
|
4947
|
+
*/
|
|
4948
|
+
const StatisticsModelRef = effect.Schema.Struct({
|
|
4949
|
+
model: effect.Schema.String,
|
|
4950
|
+
provider: effect.Schema.optional(effect.Schema.String)
|
|
4951
|
+
});
|
|
4952
|
+
const StatisticsProjectRef = effect.Schema.Struct({
|
|
4953
|
+
id: ProjectId,
|
|
4954
|
+
title: effect.Schema.String
|
|
4955
|
+
});
|
|
4956
|
+
/**
|
|
4957
|
+
* One row per `(date, project, model)`. Numeric fields are plain numbers (sums)
|
|
4958
|
+
* to stay permissive — a provider that reports fractional usage will not fail
|
|
4959
|
+
* decoding.
|
|
4960
|
+
*/
|
|
4961
|
+
const StatisticsDailyBucket = effect.Schema.Struct({
|
|
4962
|
+
/** Calendar day in UTC, formatted YYYY-MM-DD. */
|
|
4963
|
+
date: effect.Schema.String,
|
|
4964
|
+
projectId: ProjectId,
|
|
4965
|
+
model: effect.Schema.String,
|
|
4966
|
+
provider: effect.Schema.optional(effect.Schema.String),
|
|
4967
|
+
inputTokens: effect.Schema.Number,
|
|
4968
|
+
outputTokens: effect.Schema.Number,
|
|
4969
|
+
cachedInputTokens: effect.Schema.Number,
|
|
4970
|
+
reasoningTokens: effect.Schema.Number,
|
|
4971
|
+
turns: effect.Schema.Number,
|
|
4972
|
+
activeMs: effect.Schema.Number,
|
|
4973
|
+
toolUses: effect.Schema.Number,
|
|
4974
|
+
filesChanged: effect.Schema.Number,
|
|
4975
|
+
additions: effect.Schema.Number,
|
|
4976
|
+
deletions: effect.Schema.Number,
|
|
4977
|
+
commits: effect.Schema.Number,
|
|
4978
|
+
pushes: effect.Schema.Number,
|
|
4979
|
+
threadsCreated: effect.Schema.Number
|
|
4980
|
+
});
|
|
4981
|
+
const StatisticsWorktreeSummary = effect.Schema.Struct({
|
|
4982
|
+
created: effect.Schema.Number,
|
|
4983
|
+
archived: effect.Schema.Number,
|
|
4984
|
+
active: effect.Schema.Number,
|
|
4985
|
+
openPrs: effect.Schema.Number
|
|
4986
|
+
});
|
|
4987
|
+
const StatisticsTotals = effect.Schema.Struct({
|
|
4988
|
+
inputTokens: effect.Schema.Number,
|
|
4989
|
+
outputTokens: effect.Schema.Number,
|
|
4990
|
+
cachedInputTokens: effect.Schema.Number,
|
|
4991
|
+
reasoningTokens: effect.Schema.Number,
|
|
4992
|
+
totalTokens: effect.Schema.Number,
|
|
4993
|
+
turns: effect.Schema.Number,
|
|
4994
|
+
activeMs: effect.Schema.Number,
|
|
4995
|
+
toolUses: effect.Schema.Number,
|
|
4996
|
+
filesChanged: effect.Schema.Number,
|
|
4997
|
+
additions: effect.Schema.Number,
|
|
4998
|
+
deletions: effect.Schema.Number,
|
|
4999
|
+
commits: effect.Schema.Number,
|
|
5000
|
+
pushes: effect.Schema.Number,
|
|
5001
|
+
threads: effect.Schema.Number,
|
|
5002
|
+
projects: effect.Schema.Number
|
|
5003
|
+
});
|
|
5004
|
+
/**
|
|
5005
|
+
* How per-day/per-model token figures were attributed:
|
|
5006
|
+
* - `per-turn-delta`: exact, one definitive delta per (thread, turn).
|
|
5007
|
+
* - `thread-cumulative`: approximate, a thread's cumulative total attributed to
|
|
5008
|
+
* its primary model and last-activity day (fallback when deltas are absent).
|
|
5009
|
+
*/
|
|
5010
|
+
const StatisticsTokenAttribution = effect.Schema.Literals(["per-turn-delta", "thread-cumulative"]);
|
|
5011
|
+
const StatisticsSnapshot = effect.Schema.Struct({
|
|
5012
|
+
generatedAt: IsoDateTime,
|
|
5013
|
+
/** Earliest activity date observed, useful for the "all time" label. */
|
|
5014
|
+
earliestActivityAt: effect.Schema.optional(IsoDateTime),
|
|
5015
|
+
projects: effect.Schema.Array(StatisticsProjectRef),
|
|
5016
|
+
models: effect.Schema.Array(StatisticsModelRef),
|
|
5017
|
+
dailyBuckets: effect.Schema.Array(StatisticsDailyBucket),
|
|
5018
|
+
worktrees: StatisticsWorktreeSummary,
|
|
5019
|
+
totals: StatisticsTotals,
|
|
5020
|
+
tokenAttribution: effect.Schema.optional(StatisticsTokenAttribution)
|
|
5021
|
+
});
|
|
5022
|
+
//#endregion
|
|
4829
5023
|
//#region ../../packages/contracts/src/opinionatedPlugins.ts
|
|
4830
5024
|
const OpinionatedPluginId = effect.Schema.Literals([
|
|
4831
5025
|
"rtk",
|
|
@@ -5214,6 +5408,16 @@ const VcsStatusChangeRequest = effect.Schema.Struct({
|
|
|
5214
5408
|
headRef: TrimmedNonEmptyStringSchema,
|
|
5215
5409
|
state: VcsStatusChangeRequestState
|
|
5216
5410
|
});
|
|
5411
|
+
/** A per-file diff summary plus its rolled-up insertion/deletion totals. */
|
|
5412
|
+
const VcsStatusDiffTotals = effect.Schema.Struct({
|
|
5413
|
+
files: effect.Schema.Array(effect.Schema.Struct({
|
|
5414
|
+
path: TrimmedNonEmptyStringSchema,
|
|
5415
|
+
insertions: NonNegativeInt,
|
|
5416
|
+
deletions: NonNegativeInt
|
|
5417
|
+
})),
|
|
5418
|
+
insertions: NonNegativeInt,
|
|
5419
|
+
deletions: NonNegativeInt
|
|
5420
|
+
});
|
|
5217
5421
|
const VcsStatusLocalShape = {
|
|
5218
5422
|
isRepo: effect.Schema.Boolean,
|
|
5219
5423
|
sourceControlProvider: effect.Schema.optional(SourceControlProviderInfo),
|
|
@@ -5221,15 +5425,15 @@ const VcsStatusLocalShape = {
|
|
|
5221
5425
|
isDefaultRef: effect.Schema.Boolean,
|
|
5222
5426
|
refName: effect.Schema.NullOr(TrimmedNonEmptyStringSchema),
|
|
5223
5427
|
hasWorkingTreeChanges: effect.Schema.Boolean,
|
|
5224
|
-
|
|
5225
|
-
|
|
5226
|
-
|
|
5227
|
-
|
|
5228
|
-
|
|
5229
|
-
|
|
5230
|
-
|
|
5231
|
-
|
|
5232
|
-
|
|
5428
|
+
/** Uncommitted (staged + unstaged) working-tree changes. */
|
|
5429
|
+
workingTree: VcsStatusDiffTotals,
|
|
5430
|
+
/**
|
|
5431
|
+
* Committed changes on this branch relative to its base (merge-base of the
|
|
5432
|
+
* default branch and HEAD, i.e. `git diff base...HEAD` — the same set a PR
|
|
5433
|
+
* shows). Counts committed work whether or not it has been pushed. Omitted on
|
|
5434
|
+
* the default branch (nothing to compare against) and by non-git drivers.
|
|
5435
|
+
*/
|
|
5436
|
+
committed: effect.Schema.optional(VcsStatusDiffTotals)
|
|
5233
5437
|
};
|
|
5234
5438
|
const VcsStatusRemoteShape = {
|
|
5235
5439
|
hasUpstream: effect.Schema.Boolean,
|
|
@@ -5659,6 +5863,7 @@ const WS_METHODS = {
|
|
|
5659
5863
|
serverCheckOpinionatedPlugins: "server.checkOpinionatedPlugins",
|
|
5660
5864
|
serverInstallOpinionatedPlugin: "server.installOpinionatedPlugin",
|
|
5661
5865
|
serverGetDiagnosticsSnapshot: "server.getDiagnosticsSnapshot",
|
|
5866
|
+
serverGetStatistics: "server.getStatistics",
|
|
5662
5867
|
mcpListWorkspaces: "mcp.listWorkspaces",
|
|
5663
5868
|
mcpListServers: "mcp.listServers",
|
|
5664
5869
|
mcpUpsertServer: "mcp.upsertServer",
|
|
@@ -5838,6 +6043,11 @@ const WsServerGetDiagnosticsSnapshotRpc = effect_unstable_rpc_Rpc.make(WS_METHOD
|
|
|
5838
6043
|
success: DiagnosticsSnapshot,
|
|
5839
6044
|
error: effect.Schema.Union([DiagnosticsError, AuthRpcError])
|
|
5840
6045
|
});
|
|
6046
|
+
const WsServerGetStatisticsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverGetStatistics, {
|
|
6047
|
+
payload: effect.Schema.Struct({}),
|
|
6048
|
+
success: StatisticsSnapshot,
|
|
6049
|
+
error: AuthRpcError
|
|
6050
|
+
});
|
|
5841
6051
|
const WsServerDiscoverSourceControlRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverDiscoverSourceControl, {
|
|
5842
6052
|
payload: effect.Schema.Struct({}),
|
|
5843
6053
|
success: SourceControlDiscoveryResult,
|
|
@@ -5957,7 +6167,7 @@ const WsSourceControlListChangeRequestsRpc = effect_unstable_rpc_Rpc.make(WS_MET
|
|
|
5957
6167
|
query: effect.Schema.optional(effect.Schema.String)
|
|
5958
6168
|
}),
|
|
5959
6169
|
success: effect.Schema.Array(ChangeRequest),
|
|
5960
|
-
error: SourceControlProviderError
|
|
6170
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
5961
6171
|
});
|
|
5962
6172
|
const WsSourceControlSearchChangeRequestsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlSearchChangeRequests, {
|
|
5963
6173
|
payload: effect.Schema.Struct({
|
|
@@ -6369,7 +6579,52 @@ const WsSubscribeAuthAccessRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.subscri
|
|
|
6369
6579
|
error: AuthRpcError,
|
|
6370
6580
|
stream: true
|
|
6371
6581
|
});
|
|
6372
|
-
const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc);
|
|
6582
|
+
const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc);
|
|
6583
|
+
//#endregion
|
|
6584
|
+
//#region ../../packages/shared/src/schemaJson.ts
|
|
6585
|
+
const decodeJsonResult = (schema) => {
|
|
6586
|
+
const decode = effect.Schema.decodeExit(effect.Schema.fromJsonString(schema));
|
|
6587
|
+
return (input) => {
|
|
6588
|
+
const result = decode(input);
|
|
6589
|
+
if (effect.Exit.isFailure(result)) return effect.Result.fail(result.cause);
|
|
6590
|
+
return effect.Result.succeed(result.value);
|
|
6591
|
+
};
|
|
6592
|
+
};
|
|
6593
|
+
const formatSchemaError = (cause) => {
|
|
6594
|
+
const squashed = effect.Cause.squash(cause);
|
|
6595
|
+
return effect.Schema.isSchemaError(squashed) ? effect.SchemaIssue.makeFormatterDefault()(squashed.issue) : effect.Cause.pretty(cause);
|
|
6596
|
+
};
|
|
6597
|
+
/**
|
|
6598
|
+
* A `Getter` that parses a lenient JSON string (tolerating trailing commas
|
|
6599
|
+
* and JS-style comments) into an unknown value.
|
|
6600
|
+
*
|
|
6601
|
+
* Mirrors `SchemaGetter.parseJson()` but uses `parseLenientJson` instead
|
|
6602
|
+
* of `JSON.parse`.
|
|
6603
|
+
*/
|
|
6604
|
+
const parseLenientJsonGetter = effect.SchemaGetter.onSome((input) => effect.Effect.try({
|
|
6605
|
+
try: () => {
|
|
6606
|
+
let stripped = input.replace(/("(?:[^"\\]|\\.)*")|\/\/[^\n]*/g, (match, stringLiteral) => stringLiteral ? match : "");
|
|
6607
|
+
stripped = stripped.replace(/("(?:[^"\\]|\\.)*")|\/\*[\s\S]*?\*\//g, (match, stringLiteral) => stringLiteral ? match : "");
|
|
6608
|
+
stripped = stripped.replace(/,(\s*[}\]])/g, "$1");
|
|
6609
|
+
return effect.Option.some(JSON.parse(stripped));
|
|
6610
|
+
},
|
|
6611
|
+
catch: (e) => new effect.SchemaIssue.InvalidValue(effect.Option.some(input), { message: String(e) })
|
|
6612
|
+
}));
|
|
6613
|
+
/**
|
|
6614
|
+
* Schema transformation: lenient JSONC string ↔ unknown.
|
|
6615
|
+
*
|
|
6616
|
+
* Same API as `SchemaTransformation.fromJsonString`, but the decode side
|
|
6617
|
+
* strips trailing commas and JS-style comments before parsing.
|
|
6618
|
+
* Encoding produces strict JSON via `JSON.stringify`.
|
|
6619
|
+
*/
|
|
6620
|
+
const fromLenientJsonString = new effect.SchemaTransformation.Transformation(parseLenientJsonGetter, effect.SchemaGetter.stringifyJson());
|
|
6621
|
+
/**
|
|
6622
|
+
* Build a schema that decodes a lenient JSON string into `A`.
|
|
6623
|
+
*
|
|
6624
|
+
* Drop-in replacement for `Schema.fromJsonString(schema)` that tolerates
|
|
6625
|
+
* trailing commas and comments in the input.
|
|
6626
|
+
*/
|
|
6627
|
+
const fromLenientJson = (schema) => effect.Schema.String.pipe(effect.Schema.decodeTo(schema, fromLenientJsonString));
|
|
6373
6628
|
//#endregion
|
|
6374
6629
|
//#region src/stream/collectUint8StreamText.ts
|
|
6375
6630
|
const collectUint8StreamText = (input) => {
|
|
@@ -7124,6 +7379,12 @@ Object.defineProperty(exports, "RuntimeRequestId", {
|
|
|
7124
7379
|
return RuntimeRequestId;
|
|
7125
7380
|
}
|
|
7126
7381
|
});
|
|
7382
|
+
Object.defineProperty(exports, "RuntimeSubagentId", {
|
|
7383
|
+
enumerable: true,
|
|
7384
|
+
get: function() {
|
|
7385
|
+
return RuntimeSubagentId;
|
|
7386
|
+
}
|
|
7387
|
+
});
|
|
7127
7388
|
Object.defineProperty(exports, "RuntimeTaskId", {
|
|
7128
7389
|
enumerable: true,
|
|
7129
7390
|
get: function() {
|
|
@@ -7460,12 +7721,30 @@ Object.defineProperty(exports, "collectUint8StreamText", {
|
|
|
7460
7721
|
return collectUint8StreamText;
|
|
7461
7722
|
}
|
|
7462
7723
|
});
|
|
7724
|
+
Object.defineProperty(exports, "decodeJsonResult", {
|
|
7725
|
+
enumerable: true,
|
|
7726
|
+
get: function() {
|
|
7727
|
+
return decodeJsonResult;
|
|
7728
|
+
}
|
|
7729
|
+
});
|
|
7463
7730
|
Object.defineProperty(exports, "defaultInstanceIdForDriver", {
|
|
7464
7731
|
enumerable: true,
|
|
7465
7732
|
get: function() {
|
|
7466
7733
|
return defaultInstanceIdForDriver;
|
|
7467
7734
|
}
|
|
7468
7735
|
});
|
|
7736
|
+
Object.defineProperty(exports, "formatSchemaError", {
|
|
7737
|
+
enumerable: true,
|
|
7738
|
+
get: function() {
|
|
7739
|
+
return formatSchemaError;
|
|
7740
|
+
}
|
|
7741
|
+
});
|
|
7742
|
+
Object.defineProperty(exports, "fromLenientJson", {
|
|
7743
|
+
enumerable: true,
|
|
7744
|
+
get: function() {
|
|
7745
|
+
return fromLenientJson;
|
|
7746
|
+
}
|
|
7747
|
+
});
|
|
7469
7748
|
Object.defineProperty(exports, "isProviderDriverKind", {
|
|
7470
7749
|
enumerable: true,
|
|
7471
7750
|
get: function() {
|
package/dist/{makeManagedServerProvider-DPFw9gV_.cjs → makeManagedServerProvider-3SD-Q5xh.cjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
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_bin = require("./bin.cjs");
|
|
6
6
|
let effect = require("effect");
|
|
7
7
|
let effect_Semaphore = require("effect/Semaphore");
|
package/dist/{makeManagedServerProvider-BXO8QvzC.mjs → makeManagedServerProvider-CkPEptun.mjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { x as TextGenerationError } from "./collectUint8StreamText-Lv4GGI79.mjs";
|
|
4
4
|
import { n as ignoreProviderBackgroundCause } from "./bin.mjs";
|
|
5
5
|
import { Effect, Equal, Fiber, PubSub, Ref, Schema, Stream } from "effect";
|
|
6
6
|
import * as Semaphore$1 from "effect/Semaphore";
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./react-PSPkXoKo.js";import{t as n}from"./compiler-runtime-BNrXlsa1.js";import{Ni as r,O as i,Sr as a,Xr as o,Yr as s,br as c}from"./composerDraftStore-D12lUSfh.js";import{i as l,p as u}from"./toast-DE7a4wkW.js";import{D as d,G as f,H as p,S as m,Tt as h,U as g,W as _,_ as v,b as y,or as b,x,z as S}from"./providerIconUtils-uhWb4bdg.js";import{n as C,r as w,t as T}from"./scale-BActunFu.js";import{t as E}from"./clipboard-copy-CYBLSG2q.js";import{t as D}from"./download-DLBlpp4h.js";import{t as O}from"./palette-BQcz-ZYV.js";import{t as k}from"./plus-4Oy56d-3.js";import{t as A}from"./trash-2-BI5xcbsm.js";import{t as j}from"./x-fI9snvD3.js";import{t as M}from"./input-B9-RWT56.js";import{A as N,D as P,E as F,M as I,N as L,O as ee,P as R,T as te,_ as z,a as ne,b as re,c as ie,d as ae,f as B,g as V,h as oe,i as se,j as H,k as ce,l as le,m as ue,o as de,p as fe,r as pe,s as me,t as he,u as ge,v as _e,w as ve,x as U,y as W}from"./useTheme-Dv42Z8uy.js";import{n as G,t as K}from"./toggle-group-CnLjaHSL.js";import{a as ye,i as be,n as xe,o as Se,r as Ce,s as we,t as Te}from"./alert-dialog-lMfKpG2t.js";import{i as q,n as Ee,r as J,t as Y}from"./settingsLayout-D22Mm0u3.js";var X=o(`baseline`,[[`path`,{d:`M4 20h16`,key:`14thso`}],[`path`,{d:`m6 16 6-12 6 12`,key:`1b4byz`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}]]),De=o(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),Oe=o(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),ke=o(`radius`,[[`path`,{d:`M20.34 17.52a10 10 0 1 0-2.82 2.82`,key:`fydyku`}],[`circle`,{cx:`19`,cy:`19`,r:`2`,key:`17f5cg`}],[`path`,{d:`m13.41 13.41 4.18 4.18`,key:`1gqbwc`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),Ae=o(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),je=o(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),Z=e(t(),1),Q=n(),Me=`.rycotheme.json`,Ne=/[^a-z0-9-_]+/gi;function Pe(e){let t=(e.name||e.id).trim().replace(Ne,`-`).replace(/^-+|-+$/g,``);return`${t.length>0?t:e.id||`theme`}${Me}`}function Fe(e){let t={id:e.id,name:e.name};return e.description&&(t.description=e.description),e.light&&(t.light={...e.light}),e.dark&&(t.dark={...e.dark}),JSON.stringify(t,null,2)}function Ie(e){let t;try{t=JSON.parse(e)}catch(e){throw Error(`Could not parse theme JSON: ${e instanceof Error?e.message:`invalid JSON`}`,{cause:e})}if(!fe(t))throw Error(`Theme JSON does not match the schema (need string id/name and string-only light/dark tokens).`);let n={id:t.id,name:t.name,builtIn:!1};return t.description&&(n.description=t.description),t.light&&(n.light={...t.light}),t.dark&&(n.dark={...t.dark}),n}function Le(e,t=`rename`){let n=Ie(e);if(!ge().find(e=>e.id===n.id))return se(n),{theme:n,action:`added`};if(ae(n.id)||t===`rename`){let e={...n,id:le(n.id)};return se(e),{theme:e,action:`renamed`}}return _e(n.id,n),{theme:n,action:`replaced`}}typeof TextEncoder>`u`||new TextEncoder,typeof TextDecoder>`u`||new TextDecoder;async function Re(e){let t=Fe(e);if(typeof navigator>`u`||!navigator.clipboard)throw Error(`Clipboard API not available in this environment.`);await navigator.clipboard.writeText(t)}function ze(e){if(typeof document>`u`||typeof URL>`u`||typeof Blob>`u`)throw Error(`Download not supported in this environment.`);let t=new Blob([Fe(e)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=Pe(e),r.rel=`noopener`,document.body.append(r),r.click(),r.remove(),URL.revokeObjectURL(n)}async function Be(e,t={}){let n=Le(await e.text(),t.collision??`rename`);return t.activate&&(z(n.theme.id),ne(n.theme)),n}var $=r();function Ve(e,t,n){return e<t?t:e>n?n:e}function He(e){let t=e.trim().replace(/^#/,``),n;if(t.length===3)n=t.split(``).map(e=>`${e}${e}`).join(``);else if(t.length===6)n=t;else return null;return/^[0-9a-fA-F]{6}$/.test(n)?{r:Number.parseInt(n.slice(0,2),16),g:Number.parseInt(n.slice(2,4),16),b:Number.parseInt(n.slice(4,6),16)}:null}function Ue({r:e,g:t,b:n}){let r=e=>Ve(Math.round(e),0,255).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`}function We({r:e,g:t,b:n}){let r=e/255,i=t/255,a=n/255,o=Math.max(r,i,a),s=o-Math.min(r,i,a),c=0;s!==0&&(c=o===r?60*((i-a)/s%6):o===i?60*((a-r)/s+2):60*((r-i)/s+4)),c<0&&(c+=360);let l=o===0?0:s/o;return{h:c,s:l,v:o}}function Ge({h:e,s:t,v:n}){let r=n*t,i=(e%360+360)%360/60,a=r*(1-Math.abs(i%2-1)),o=0,s=0,c=0;i<1?[o,s,c]=[r,a,0]:i<2?[o,s,c]=[a,r,0]:i<3?[o,s,c]=[0,r,a]:i<4?[o,s,c]=[0,a,r]:i<5?[o,s,c]=[a,0,r]:[o,s,c]=[r,0,a];let l=n-r;return{r:(o+l)*255,g:(s+l)*255,b:(c+l)*255}}function Ke(e){let t=(0,Q.c)(71),{value:n,onChange:r,children:i,side:o,align:s,ariaLabel:c,triggerClassName:l}=e,u=o===void 0?`bottom`:o,d=s===void 0?`start`:s,f;t[0]===n?f=t[1]:(f=()=>{let e=He(n);return e?We(e):{h:0,s:0,v:0}},t[0]=n,t[1]=f);let[p,h]=(0,Z.useState)(f),[g,_]=(0,Z.useState)(n),[v,b]=(0,Z.useState)(!1),S=(0,Z.useRef)(null),C=(0,Z.useRef)(null),w=(0,Z.useRef)(r),T=(0,Z.useRef)(p.h),E;t[2]===r?E=t[3]:(E=()=>{w.current=r},t[2]=r,t[3]=E),(0,Z.useEffect)(E);let D,O;t[4]===p.h?(D=t[5],O=t[6]):(D=()=>{T.current=p.h},O=[p.h],t[4]=p.h,t[5]=D,t[6]=O),(0,Z.useEffect)(D,O);let k;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>{if(S.current=null,C.current===null)return;let e=C.current;C.current=null,w.current(e)},t[7]=k):k=t[7];let A=k,j;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(j=e=>{C.current=e,S.current===null&&(S.current=requestAnimationFrame(A))},t[8]=j):j=t[8];let N=j,P,F;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>()=>{if(S.current!==null&&(cancelAnimationFrame(S.current),S.current=null),C.current!==null){let e=C.current;C.current=null,w.current(e)}},P=[],t[9]=P,t[10]=F):(P=t[9],F=t[10]),(0,Z.useEffect)(F,P);let I;t[11]===p?I=t[12]:(I=Ue(Ge(p)),t[11]=p,t[12]=I);let L=I,ee,R;t[13]!==L||t[14]!==n?(ee=()=>{if(n.toLowerCase()===L.toLowerCase())return;let e=He(n);if(!e)return;let t=We(e);h(e=>({h:t.s===0?e.h:t.h,s:t.s,v:t.v})),_(n)},R=[n,L],t[13]=L,t[14]=n,t[15]=ee,t[16]=R):(ee=t[15],R=t[16]),(0,Z.useEffect)(ee,R);let te=(0,Z.useRef)(null),z;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(z=e=>{let t=te.current;if(!t)return;let n=t.getBoundingClientRect(),r=Ve(e.clientX-n.left,0,n.width),i=Ve(e.clientY-n.top,0,n.height),a=n.width===0?0:r/n.width,o=n.height===0?0:1-i/n.height;h(e=>{let t={h:e.h,s:a,v:o},n=Ue(Ge(t));return _(n),C.current=n,S.current===null&&(S.current=requestAnimationFrame(A)),t})},t[17]=z):z=t[17];let ne=z,re;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(re=e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),ne(e)},t[18]=re):re=t[18];let ie=re,ae;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(ae=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&ne(e)},t[19]=ae):ae=t[19];let B=ae,V=(0,Z.useRef)(null),oe;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(oe=e=>{let t=V.current;if(!t)return;let n=t.getBoundingClientRect(),r=Ve(e.clientX-n.left,0,n.width),i=n.width===0?0:r/n.width*360;h(e=>{let t={h:i,s:e.s,v:e.v},n=Ue(Ge(t));return _(n),C.current=n,S.current===null&&(S.current=requestAnimationFrame(A)),t})},t[20]=oe):oe=t[20];let se=oe,H;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),se(e)},t[21]=H):H=t[21];let ce=H,le;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(le=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&se(e)},t[22]=le):le=t[22];let ue=le,de;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(de=e=>{_(e);let t=He(e.startsWith(`#`)?e:`#${e}`);if(!t)return;let n=We(t);h({h:n.s===0?T.current:n.h,s:n.s,v:n.v}),N(Ue(t))},t[23]=de):de=t[23];let fe=de,pe=`${p.h/360*100}%`,me=`${p.s*100}%`,he=`${(1-p.v)*100}%`,ge=`hsl(${p.h} 100% 50%)`,_e;t[24]===l?_e=t[25]:(_e=a(`relative size-5 shrink-0 cursor-pointer overflow-hidden rounded-sm border border-border/80 outline-none transition-shadow focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background`,l),t[24]=l,t[25]=_e);let ve;t[26]!==c||t[27]!==i||t[28]!==_e?(ve=(0,$.jsx)(m,{"aria-label":c,className:_e,children:i}),t[26]=c,t[27]=i,t[28]=_e,t[29]=ve):ve=t[29];let U;t[30]===p.s?U=t[31]:(U=Math.round(p.s*100),t[30]=p.s,t[31]=U);let W;t[32]===ge?W=t[33]:(W={backgroundColor:ge},t[32]=ge,t[33]=W);let G;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0`,style:{background:`linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0))`}}),t[34]=G):G=t[34];let K;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,$.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0`,style:{background:`linear-gradient(to top, rgba(0,0,0,1), rgba(0,0,0,0))`}}),t[35]=K):K=t[35];let ye;t[36]!==me||t[37]!==he?(ye=(0,$.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute size-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-[0_0_0_1px_rgba(0,0,0,0.4)]`,style:{left:me,top:he}}),t[36]=me,t[37]=he,t[38]=ye):ye=t[38];let be;t[39]!==U||t[40]!==W||t[41]!==ye?(be=(0,$.jsxs)(`div`,{ref:te,role:`slider`,"aria-label":`Saturation and value`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":U,tabIndex:0,className:`relative h-36 w-full cursor-crosshair touch-none select-none overflow-hidden rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,style:W,onPointerDown:ie,onPointerMove:B,children:[G,K,ye]}),t[39]=U,t[40]=W,t[41]=ye,t[42]=be):be=t[42];let xe;t[43]===p.h?xe=t[44]:(xe=Math.round(p.h),t[43]=p.h,t[44]=xe);let Se;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(Se={background:`linear-gradient(to right, hsl(0 100% 50%), hsl(60 100% 50%), hsl(120 100% 50%), hsl(180 100% 50%), hsl(240 100% 50%), hsl(300 100% 50%), hsl(360 100% 50%))`},t[45]=Se):Se=t[45];let Ce;t[46]===pe?Ce=t[47]:(Ce=(0,$.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-[0_0_0_1px_rgba(0,0,0,0.4)]`,style:{left:pe}}),t[46]=pe,t[47]=Ce);let we;t[48]!==xe||t[49]!==Ce?(we=(0,$.jsx)(`div`,{ref:V,role:`slider`,"aria-label":`Hue`,"aria-valuemin":0,"aria-valuemax":360,"aria-valuenow":xe,tabIndex:0,className:`relative h-3 w-full cursor-ew-resize touch-none select-none overflow-hidden rounded-full outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,style:Se,onPointerDown:ce,onPointerMove:ue,children:Ce}),t[48]=xe,t[49]=Ce,t[50]=we):we=t[50];let Te;t[51]===L?Te=t[52]:(Te=(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-7 shrink-0 rounded-md border border-border/60`,style:{backgroundColor:L}}),t[51]=L,t[52]=Te);let q;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>fe(e.currentTarget.value),t[53]=q):q=t[53];let Ee;t[54]===g?Ee=t[55]:(Ee=(0,$.jsx)(M,{value:g,size:`sm`,nativeInput:!0,onChange:q,spellCheck:!1,className:`font-mono text-xs`,"aria-label":`Hex value`}),t[54]=g,t[55]=Ee);let J;t[56]!==Te||t[57]!==Ee?(J=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Te,Ee]}),t[56]=Te,t[57]=Ee,t[58]=J):J=t[58];let Y;t[59]!==be||t[60]!==we||t[61]!==J?(Y=(0,$.jsxs)(`div`,{className:`space-y-3`,children:[be,we,J]}),t[59]=be,t[60]=we,t[61]=J,t[62]=Y):Y=t[62];let X;t[63]!==d||t[64]!==u||t[65]!==Y?(X=(0,$.jsx)(x,{side:u,align:d,className:`w-64`,children:Y}),t[63]=d,t[64]=u,t[65]=Y,t[66]=X):X=t[66];let De;return t[67]!==v||t[68]!==ve||t[69]!==X?(De=(0,$.jsxs)(y,{open:v,onOpenChange:b,children:[ve,X]}),t[67]=v,t[68]=ve,t[69]=X,t[70]=De):De=t[70],De}var qe=[{title:`Surfaces`,tokens:[`background`,`app-chrome-background`,`foreground`,`card`,`card-foreground`,`popover`,`popover-foreground`]},{title:`Brand & focus`,tokens:[`primary`,`primary-foreground`,`ring`]},{title:`Neutrals`,tokens:[`secondary`,`secondary-foreground`,`muted`,`muted-foreground`,`accent`,`accent-foreground`]},{title:`Status`,tokens:[`destructive`,`destructive-foreground`,`info`,`info-foreground`,`success`,`success-foreground`,`warning`,`warning-foreground`]},{title:`Borders & inputs`,tokens:[`border`,`input`]},{title:`Scrollbars`,tokens:[`scrollbar-thumb`,`scrollbar-thumb-hover`,`scrollbar-thumb-thin`,`scrollbar-thumb-thin-hover`]},{title:`Misc`,tokens:[`noise-opacity`]}],Je=new Set(W),Ye=null,Xe=null;function Ze(e){if(typeof document>`u`||document.body===void 0||!e)return`#000000`;Ye||(Ye=document.createElement(`div`),Ye.style.position=`absolute`,Ye.style.visibility=`hidden`,Ye.style.pointerEvents=`none`,document.body.append(Ye)),Ye.style.color=``,Ye.style.color=e;let t=getComputedStyle(Ye).color;Xe||=document.createElement(`canvas`),Xe.width=1,Xe.height=1;let n=Xe.getContext(`2d`,{willReadFrequently:!0});if(!n)return`#000000`;n.clearRect(0,0,1,1);try{n.fillStyle=t}catch{return`#000000`}n.fillRect(0,0,1,1);let r=n.getImageData(0,0,1,1).data;return`#${[r[0],r[1],r[2]].map(e=>(e??0).toString(16).padStart(2,`0`)).join(``)}`}function Qe(e,t,n,r){let i={...e[t]};return r.length===0?delete i[n]:i[n]=r,t===`light`?{...e,light:i}:{...e,dark:i}}function $e(e,t){return{...e,name:t}}function et(e,t){let n={...e};return t.length===0?delete n.description:n.description=t,n}function tt(e){return pe.includes(e)}function nt(e){let t=(0,Q.c)(124),{source:n,draft:r,onDraftChange:i,onSave:a,onCancel:o,resolvedVariant:s}=e,[l,u]=(0,Z.useState)(`form`),[d,f]=(0,Z.useState)(s),p;t[0]===r?p=t[1]:(p=()=>JSON.stringify(r,null,2),t[0]=r,t[1]=p);let[m,g]=(0,Z.useState)(p),[_,v]=(0,Z.useState)(null),[y,b]=(0,Z.useState)(!1),x;t[2]===n?x=t[3]:(x=JSON.stringify(n),t[2]=n,t[3]=x);let S;t[4]===r?S=t[5]:(S=JSON.stringify(r),t[4]=r,t[5]=S);let C=x!==S,w;t[6]===r?w=t[7]:(w=()=>{ne(r)},t[6]=r,t[7]=w);let T;t[8]!==r||t[9]!==s?(T=[r,s],t[8]=r,t[9]=s,t[10]=T):T=t[10],(0,Z.useEffect)(w,T);let E,D;t[11]!==r||t[12]!==l?(E=()=>{l===`form`&&g(JSON.stringify(r,null,2))},D=[r,l],t[11]=r,t[12]=l,t[13]=E,t[14]=D):(E=t[13],D=t[14]),(0,Z.useEffect)(E,D);let O;t[15]!==r||t[16]!==i?(O=e=>{i($e(r,e))},t[15]=r,t[16]=i,t[17]=O):O=t[17];let k=O,A;t[18]!==r||t[19]!==i?(A=e=>{i(et(r,e))},t[18]=r,t[19]=i,t[20]=A):A=t[20];let j=A,N;t[21]!==r||t[22]!==i||t[23]!==d?(N=(e,t)=>{i(Qe(r,d,e,t))},t[21]=r,t[22]=i,t[23]=d,t[24]=N):N=t[24];let P=N,F;t[25]===i?F=t[26]:(F=e=>{g(e);let t;try{t=JSON.parse(e)}catch(e){let t=e;v(t instanceof Error?t.message:`Invalid JSON`);return}if(!fe(t)){v(`Invalid theme schema. Need string id/name and string-only light/dark tokens.`);return}v(null),i(t)},t[25]=i,t[26]=F);let I=F,L;t[27]!==C||t[28]!==o?(L=()=>{if(C){b(!0);return}o()},t[27]=C,t[28]=o,t[29]=L):L=t[29];let ee=L,R,te,z;if(t[30]!==r.dark||t[31]!==r.light||t[32]!==d){z=(d===`dark`?r.dark:r.light)??{};let e;t[36]===d?e=t[37]:(e=(d===`dark`?U.dark:U.light)??{},t[36]=d,t[37]=e),R=e,te=Object.entries(z).filter(at),t[30]=r.dark,t[31]=r.light,t[32]=d,t[33]=R,t[34]=te,t[35]=z}else R=t[33],te=t[34],z=t[35];let ie=te,ae=rt,B=ae(r.light)||ae(r.dark),V;t[38]!==r.name||t[39]!==B||t[40]!==_?(V=_!==null||r.name.trim().length===0||B,t[38]=r.name,t[39]=B,t[40]=_,t[41]=V):V=t[41];let oe=V,se;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.08em] text-muted-foreground`,children:`Editing`}),t[42]=se):se=t[42];let H=r.name||`Untitled`,ce;t[43]!==r.name||t[44]!==H?(ce=(0,$.jsx)(`span`,{className:`truncate text-sm font-medium text-foreground`,title:r.name,children:H}),t[43]=r.name,t[44]=H,t[45]=ce):ce=t[45];let le;t[46]===C?le=t[47]:(le=C?(0,$.jsx)(`span`,{className:`rounded-sm bg-warning/16 px-1.5 py-0.5 text-[10px] font-medium text-warning-foreground`,children:`Unsaved`}):null,t[46]=C,t[47]=le);let ue;t[48]===ee?ue=t[49]:(ue=(0,$.jsx)(c,{size:`sm`,variant:`outline`,onClick:ee,children:`Cancel`}),t[48]=ee,t[49]=ue);let de;t[50]!==a||t[51]!==oe?(de=(0,$.jsx)(c,{size:`sm`,onClick:a,disabled:oe,children:`Save`}),t[50]=a,t[51]=oe,t[52]=de):de=t[52];let pe;t[53]!==ue||t[54]!==de?(pe=(0,$.jsxs)(`div`,{className:`ms-auto flex items-center gap-2`,children:[ue,de]}),t[53]=ue,t[54]=de,t[55]=pe):pe=t[55];let me;t[56]!==ce||t[57]!==le||t[58]!==pe?(me=(0,$.jsxs)(`div`,{className:`sticky top-0 z-10 flex flex-wrap items-center gap-2 border-b border-border/60 bg-muted/72 px-4 py-2 backdrop-blur-sm sm:px-5`,children:[se,ce,le,pe]}),t[56]=ce,t[57]=le,t[58]=pe,t[59]=me):me=t[59];let he;t[60]===l?he=t[61]:(he=[l],t[60]=l,t[61]=he);let ge,_e,ve;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(ge=e=>{let t=e[0];(t===`form`||t===`json`)&&u(t)},_e=(0,$.jsx)(K,{value:`form`,"aria-label":`Form editor`,className:`px-3 sm:px-3`,children:`Form`}),ve=(0,$.jsx)(K,{value:`json`,"aria-label":`JSON editor`,className:`px-3 sm:px-3`,children:`JSON`}),t[62]=ge,t[63]=_e,t[64]=ve):(ge=t[62],_e=t[63],ve=t[64]);let W;t[65]===he?W=t[66]:(W=(0,$.jsxs)(G,{value:he,variant:`outline`,size:`sm`,onValueChange:ge,children:[_e,ve]}),t[65]=he,t[66]=W);let q;t[67]===d?q=t[68]:(q=[d],t[67]=d,t[68]=q);let Ee,J,Y;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=e=>{let t=e[0];(t===`light`||t===`dark`)&&f(t)},J=(0,$.jsx)(K,{value:`light`,"aria-label":`Light variant`,className:`px-3 sm:px-3`,children:`Light`}),Y=(0,$.jsx)(K,{value:`dark`,"aria-label":`Dark variant`,className:`px-3 sm:px-3`,children:`Dark`}),t[69]=Ee,t[70]=J,t[71]=Y):(Ee=t[69],J=t[70],Y=t[71]);let X;t[72]===q?X=t[73]:(X=(0,$.jsxs)(G,{value:q,variant:`outline`,size:`sm`,onValueChange:Ee,children:[J,Y]}),t[72]=q,t[73]=X);let De;t[74]!==W||t[75]!==X?(De=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[W,X]}),t[74]=W,t[75]=X,t[76]=De):De=t[76];let Oe;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,$.jsx)(`span`,{className:`text-xs font-medium text-foreground`,children:`Name`}),t[77]=Oe):Oe=t[77];let ke;t[78]===k?ke=t[79]:(ke=e=>k(e.currentTarget.value),t[78]=k,t[79]=ke);let Ae;t[80]===r.name?Ae=t[81]:(Ae=r.name.trim().length===0||void 0,t[80]=r.name,t[81]=Ae);let je;t[82]!==r.name||t[83]!==ke||t[84]!==Ae?(je=(0,$.jsxs)(`label`,{className:`space-y-1.5`,children:[Oe,(0,$.jsx)(M,{value:r.name,nativeInput:!0,onChange:ke,"aria-invalid":Ae})]}),t[82]=r.name,t[83]=ke,t[84]=Ae,t[85]=je):je=t[85];let Me;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,$.jsx)(`span`,{className:`text-xs font-medium text-foreground`,children:`Description`}),t[86]=Me):Me=t[86];let Ne=r.description??``,Pe;t[87]===j?Pe=t[88]:(Pe=e=>j(e.currentTarget.value),t[87]=j,t[88]=Pe);let Fe;t[89]!==Ne||t[90]!==Pe?(Fe=(0,$.jsxs)(`label`,{className:`space-y-1.5`,children:[Me,(0,$.jsx)(M,{value:Ne,nativeInput:!0,onChange:Pe,placeholder:`Optional, shown under the picker.`})]}),t[89]=Ne,t[90]=Pe,t[91]=Fe):Fe=t[91];let Ie;t[92]!==je||t[93]!==Fe?(Ie=(0,$.jsxs)(`div`,{className:`mt-4 grid gap-3 sm:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]`,children:[je,Fe]}),t[92]=je,t[93]=Fe,t[94]=Ie):Ie=t[94];let Le;t[95]!==I||t[96]!==P||t[97]!==R||t[98]!==_||t[99]!==m||t[100]!==l||t[101]!==ie||t[102]!==z?(Le=l===`form`?(0,$.jsxs)(`div`,{className:`mt-5 space-y-5`,children:[qe.map(e=>(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`h4`,{className:`text-[11px] font-semibold uppercase tracking-[0.08em] text-muted-foreground`,children:e.title}),(0,$.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:e.tokens.map(e=>{let t=z[e]??``,n=R[e]??``,r=re(e);return r?(0,$.jsx)(ot,{token:e,kind:r,value:t,inherited:n,onChange:t=>P(e,t)},e):null})})]},e.title)),ie.length>0?(0,$.jsxs)(`p`,{className:`text-xs text-warning-foreground`,children:[ie.length,` token`,ie.length===1?``:`s`,` not in the allow-list will be ignored on save.`]}):null]}):(0,$.jsxs)(`div`,{className:`mt-5 space-y-2`,children:[(0,$.jsx)(h,{value:m,size:`sm`,className:`font-mono text-xs`,spellCheck:!1,rows:18,onChange:e=>I(e.currentTarget.value),"aria-invalid":_!==null||void 0}),_?(0,$.jsx)(`p`,{className:`text-xs text-destructive-foreground`,children:_}):(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground/80`,children:`Edit the JSON directly. Save is disabled while the schema is invalid.`})]}),t[95]=I,t[96]=P,t[97]=R,t[98]=_,t[99]=m,t[100]=l,t[101]=ie,t[102]=z,t[103]=Le):Le=t[103];let Re;t[104]!==De||t[105]!==Ie||t[106]!==Le?(Re=(0,$.jsxs)(`div`,{className:`px-4 py-4 sm:px-5`,children:[De,Ie,Le]}),t[104]=De,t[105]=Ie,t[106]=Le,t[107]=Re):Re=t[107];let ze;t[108]===Symbol.for(`react.memo_cache_sentinel`)?(ze=(0,$.jsx)(we,{children:`Discard your changes?`}),t[108]=ze):ze=t[108];let Be;t[109]===n.name?Be=t[110]:(Be=(0,$.jsxs)(ye,{children:[ze,(0,$.jsxs)(Ce,{children:[`You have unsaved edits to `,n.name,`. Discarding will revert any token changes you made.`]})]}),t[109]=n.name,t[110]=Be);let Ve;t[111]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=(0,$.jsx)(xe,{render:(0,$.jsx)(c,{variant:`outline`}),children:`Keep editing`}),t[111]=Ve):Ve=t[111];let He;t[112]===o?He=t[113]:(He=(0,$.jsxs)(be,{children:[Ve,(0,$.jsx)(c,{variant:`destructive`,onClick:()=>{b(!1),o()},children:`Discard changes`})]}),t[112]=o,t[113]=He);let Ue;t[114]!==Be||t[115]!==He?(Ue=(0,$.jsxs)(Se,{children:[Be,He]}),t[114]=Be,t[115]=He,t[116]=Ue):Ue=t[116];let We;t[117]!==y||t[118]!==Ue?(We=(0,$.jsx)(Te,{open:y,onOpenChange:b,children:Ue}),t[117]=y,t[118]=Ue,t[119]=We):We=t[119];let Ge;return t[120]!==me||t[121]!==Re||t[122]!==We?(Ge=(0,$.jsxs)(`div`,{className:`border-t border-border/60 bg-muted/24`,children:[me,Re,We]}),t[120]=me,t[121]=Re,t[122]=We,t[123]=Ge):Ge=t[123],Ge}function rt(e){return Object.entries(e??{}).some(it)}function it(e){let[t,n]=e;if(typeof n!=`string`||n.length===0)return!1;let r=re(t);return r?!ue(r,n):!1}function at(e){let[t]=e;return!Je.has(t)}function ot(e){let t=(0,Q.c)(12),{token:n,kind:r,value:i,inherited:o,onChange:s}=e,c=i.length>0,l=r===`font-family`&&`sm:col-span-2`,u;t[0]===l?u=t[1]:(u=a(`rounded-md border border-border/60 bg-background px-2 py-1.5`,l),t[0]=l,t[1]=u);let d;t[2]!==o||t[3]!==r||t[4]!==s||t[5]!==c||t[6]!==n||t[7]!==i?(d=r===`color`?(0,$.jsx)(lt,{token:n,value:i,inherited:o,overridden:c,onChange:s}):r===`opacity`?(0,$.jsx)(ut,{token:n,value:i,inherited:o,overridden:c,onChange:s}):r===`length`?(0,$.jsx)(dt,{token:n,value:i,inherited:o,overridden:c,onChange:s}):(0,$.jsx)(pt,{token:n,value:i,inherited:o,overridden:c,onChange:s}),t[2]=o,t[3]=r,t[4]=s,t[5]=c,t[6]=n,t[7]=i,t[8]=d):d=t[8];let f;return t[9]!==u||t[10]!==d?(f=(0,$.jsx)(`div`,{className:u,children:d}),t[9]=u,t[10]=d,t[11]=f):f=t[11],f}function st(e){let t=(0,Q.c)(6),{token:n,onChange:r}=e,i=`Reset --${n}`,a;t[0]===r?a=t[1]:(a=()=>r(``),t[0]=r,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(j,{className:`size-3.5`,"aria-hidden":!0}),t[2]=o):o=t[2];let s;return t[3]!==i||t[4]!==a?(s=(0,$.jsx)(c,{size:`icon-xs`,variant:`ghost`,"aria-label":i,onClick:a,className:`text-muted-foreground`,children:o}),t[3]=i,t[4]=a,t[5]=s):s=t[5],s}function ct(e){let t=(0,Q.c)(6),{token:n,overridden:r}=e,i=r?`text-foreground`:`text-muted-foreground/70`,o;t[0]===i?o=t[1]:(o=a(`truncate font-mono text-[11px]`,i),t[0]=i,t[1]=o);let s=`--${n}`,c;return t[2]!==o||t[3]!==s||t[4]!==n?(c=(0,$.jsxs)(`span`,{className:o,title:s,children:[`--`,n]}),t[2]=o,t[3]=s,t[4]=n,t[5]=c):c=t[5],c}function lt(e){let t=(0,Q.c)(41),{token:n,value:r,inherited:i,overridden:a,onChange:o}=e,s=r||i,c,l,u,d,f;if(t[0]!==s||t[1]!==r){u=oe(s);let e;t[7]===r?e=t[8]:(e=r.length>0&&!B(r),t[7]=r,t[8]=e),l=e,f=`flex items-center gap-2`,c=Ke,d=Ze(u),t[0]=s,t[1]=r,t[2]=c,t[3]=l,t[4]=u,t[5]=d,t[6]=f}else c=t[2],l=t[3],u=t[4],d=t[5],f=t[6];let p;t[9]===o?p=t[10]:(p=e=>o(e),t[9]=o,t[10]=p);let m=`Pick a color for --${n}`,h=l?`transparent`:u||`transparent`,g;t[11]===h?g=t[12]:(g=(0,$.jsx)(`span`,{className:`pointer-events-none absolute inset-0`,style:{backgroundColor:h},"aria-hidden":!0}),t[11]=h,t[12]=g);let _;t[13]!==c||t[14]!==d||t[15]!==p||t[16]!==m||t[17]!==g?(_=(0,$.jsx)(c,{value:d,onChange:p,ariaLabel:m,children:g}),t[13]=c,t[14]=d,t[15]=p,t[16]=m,t[17]=g,t[18]=_):_=t[18];let v;t[19]!==a||t[20]!==n?(v=(0,$.jsx)(ct,{token:n,overridden:a}),t[19]=a,t[20]=n,t[21]=v):v=t[21];let y=i||`inherit default`,b=l||void 0,x;t[22]===o?x=t[23]:(x=e=>o(e.currentTarget.value),t[22]=o,t[23]=x);let S;t[24]!==b||t[25]!==x||t[26]!==y||t[27]!==r?(S=(0,$.jsx)(M,{value:r,nativeInput:!0,unstyled:!0,size:`sm`,className:`border-0 bg-transparent p-0 shadow-none focus-within:shadow-none`,placeholder:y,"aria-invalid":b,onChange:x}),t[24]=b,t[25]=x,t[26]=y,t[27]=r,t[28]=S):S=t[28];let C;t[29]!==S||t[30]!==v?(C=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[v,S]}),t[29]=S,t[30]=v,t[31]=C):C=t[31];let w;t[32]!==o||t[33]!==a||t[34]!==n?(w=a?(0,$.jsx)(st,{token:n,onChange:o}):null,t[32]=o,t[33]=a,t[34]=n,t[35]=w):w=t[35];let T;return t[36]!==C||t[37]!==w||t[38]!==f||t[39]!==_?(T=(0,$.jsxs)(`div`,{className:f,children:[_,C,w]}),t[36]=C,t[37]=w,t[38]=f,t[39]=_,t[40]=T):T=t[40],T}function ut(e){let t=(0,Q.c)(31),{token:n,value:r,inherited:i,overridden:a,onChange:o}=e,s=Number(r||i),c;t[0]===s?c=t[1]:(c=Number.isFinite(s)?Math.min(1,Math.max(0,s)):0,t[0]=s,t[1]=c);let l=c,u;t[2]===r?u=t[3]:(u=r.length>0&&!ue(`opacity`,r),t[2]=r,t[3]=u);let d=u,f;t[4]!==a||t[5]!==n?(f=(0,$.jsx)(ct,{token:n,overridden:a}),t[4]=a,t[5]=n,t[6]=f):f=t[6];let p;t[7]===o?p=t[8]:(p=e=>o(e.currentTarget.value),t[7]=o,t[8]=p);let m=`--${n} value`,h;t[9]!==l||t[10]!==p||t[11]!==m?(h=(0,$.jsx)(`input`,{type:`range`,min:0,max:1,step:.005,value:l,onChange:p,"aria-label":m,className:`h-7.5 flex-1 accent-primary cursor-pointer`}),t[9]=l,t[10]=p,t[11]=m,t[12]=h):h=t[12];let g=i||`0`,_=d||void 0,v;t[13]===o?v=t[14]:(v=e=>o(e.currentTarget.value),t[13]=o,t[14]=v);let y;t[15]!==g||t[16]!==_||t[17]!==v||t[18]!==r?(y=(0,$.jsx)(`div`,{className:`w-20 shrink-0`,children:(0,$.jsx)(M,{value:r,nativeInput:!0,type:`number`,min:0,max:1,step:.005,size:`sm`,placeholder:g,"aria-invalid":_,onChange:v})}),t[15]=g,t[16]=_,t[17]=v,t[18]=r,t[19]=y):y=t[19];let b;t[20]!==o||t[21]!==a||t[22]!==n?(b=a?(0,$.jsx)(st,{token:n,onChange:o}):null,t[20]=o,t[21]=a,t[22]=n,t[23]=b):b=t[23];let x;t[24]!==y||t[25]!==b||t[26]!==h?(x=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[h,y,b]}),t[24]=y,t[25]=b,t[26]=h,t[27]=x):x=t[27];let S;return t[28]!==x||t[29]!==f?(S=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[f,x]}),t[28]=x,t[29]=f,t[30]=S):S=t[30],S}function dt(e){let t=(0,Q.c)(67),{token:n,value:r,inherited:i,overridden:a,onChange:o}=e,s,c,l,u,d;if(t[0]!==i||t[1]!==o||t[2]!==a||t[3]!==n||t[4]!==r){d=Symbol.for(`react.early_return_sentinel`);bb0:{l=V(r),c=V(i);let e=c?tt(c.unit):!1,f=l?tt(l.unit):!1;if(r.length>0&&!f||r.length===0&&i.length>0&&!e){let e;t[10]===r?e=t[11]:(e=r.length>0&&!ue(`length`,r),t[10]=r,t[11]=e);let s=e,c;t[12]!==a||t[13]!==n?(c=(0,$.jsx)(ct,{token:n,overridden:a}),t[12]=a,t[13]=n,t[14]=c):c=t[14];let l=i||`e.g. 1rem`,u=s||void 0,f;t[15]===o?f=t[16]:(f=e=>o(e.currentTarget.value),t[15]=o,t[16]=f);let p;t[17]!==l||t[18]!==u||t[19]!==f||t[20]!==r?(p=(0,$.jsx)(M,{value:r,nativeInput:!0,size:`sm`,placeholder:l,"aria-invalid":u,onChange:f}),t[17]=l,t[18]=u,t[19]=f,t[20]=r,t[21]=p):p=t[21];let m;t[22]!==o||t[23]!==a||t[24]!==n?(m=a?(0,$.jsx)(st,{token:n,onChange:o}):null,t[22]=o,t[23]=a,t[24]=n,t[25]=m):m=t[25];let h;t[26]!==p||t[27]!==m?(h=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p,m]}),t[26]=p,t[27]=m,t[28]=h):h=t[28];let g;t[29]!==h||t[30]!==c?(g=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[c,h]}),t[29]=h,t[30]=c,t[31]=g):g=t[31],d=g;break bb0}s=l?String(l.number):``,u=l&&tt(l.unit)?l.unit:c&&tt(c.unit)?c.unit:`rem`}t[0]=i,t[1]=o,t[2]=a,t[3]=n,t[4]=r,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d}else s=t[5],c=t[6],l=t[7],u=t[8],d=t[9];if(d!==Symbol.for(`react.early_return_sentinel`))return d;let f=u,p=c?String(c.number):``,m;t[32]!==o||t[33]!==f?(m=e=>{let t=e.trim();if(t.length===0){o(``);return}let n=Number(t);Number.isFinite(n)&&o(`${n}${f}`)},t[32]=o,t[33]=f,t[34]=m):m=t[34];let h=m,g;t[35]!==o||t[36]!==c||t[37]!==l?(g=e=>{if(l){o(`${l.number}${e}`);return}c&&o(`${c.number}${e}`)},t[35]=o,t[36]=c,t[37]=l,t[38]=g):g=t[38];let _=g,v;t[39]!==a||t[40]!==n?(v=(0,$.jsx)(ct,{token:n,overridden:a}),t[39]=a,t[40]=n,t[41]=v):v=t[41];let y=n===`font-size-base`?1:.05,b;t[42]===h?b=t[43]:(b=e=>h(e.currentTarget.value),t[42]=h,t[43]=b);let x;t[44]!==p||t[45]!==s||t[46]!==y||t[47]!==b?(x=(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsx)(M,{value:s,nativeInput:!0,type:`number`,step:y,size:`sm`,placeholder:p,onChange:b})}),t[44]=p,t[45]=s,t[46]=y,t[47]=b,t[48]=x):x=t[48];let S;t[49]===_?S=t[50]:(S=e=>_(e.currentTarget.value),t[49]=_,t[50]=S);let C=`--${n} unit`,w;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(w=pe.map(ft),t[51]=w):w=t[51];let T;t[52]!==C||t[53]!==S||t[54]!==f?(T=(0,$.jsx)(`select`,{value:f,onChange:S,"aria-label":C,className:`h-7.5 rounded-md border border-input bg-background px-2 text-sm outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/24 sm:h-6.5 sm:text-xs`,children:w}),t[52]=C,t[53]=S,t[54]=f,t[55]=T):T=t[55];let E;t[56]!==o||t[57]!==a||t[58]!==n?(E=a?(0,$.jsx)(st,{token:n,onChange:o}):null,t[56]=o,t[57]=a,t[58]=n,t[59]=E):E=t[59];let D;t[60]!==T||t[61]!==E||t[62]!==x?(D=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[x,T,E]}),t[60]=T,t[61]=E,t[62]=x,t[63]=D):D=t[63];let O;return t[64]!==D||t[65]!==v?(O=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[v,D]}),t[64]=D,t[65]=v,t[66]=O):O=t[66],O}function ft(e){return(0,$.jsx)(`option`,{value:e,children:e},e)}function pt(e){let t=(0,Q.c)(25),{token:n,value:r,inherited:i,overridden:a,onChange:o}=e,s=r||i,c;t[0]===r?c=t[1]:(c=r.length>0&&!ue(`font-family`,r),t[0]=r,t[1]=c);let l=c,u;t[2]!==a||t[3]!==n?(u=(0,$.jsx)(ct,{token:n,overridden:a}),t[2]=a,t[3]=n,t[4]=u):u=t[4];let d=i||`system-ui, sans-serif`,f=s||void 0,p;t[5]===f?p=t[6]:(p={fontFamily:f},t[5]=f,t[6]=p);let m=l||void 0,h;t[7]===o?h=t[8]:(h=e=>o(e.currentTarget.value),t[7]=o,t[8]=h);let g;t[9]!==d||t[10]!==p||t[11]!==m||t[12]!==h||t[13]!==r?(g=(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsx)(M,{value:r,nativeInput:!0,size:`sm`,placeholder:d,style:p,"aria-invalid":m,onChange:h})}),t[9]=d,t[10]=p,t[11]=m,t[12]=h,t[13]=r,t[14]=g):g=t[14];let _;t[15]!==o||t[16]!==a||t[17]!==n?(_=a?(0,$.jsx)(st,{token:n,onChange:o}):null,t[15]=o,t[16]=a,t[17]=n,t[18]=_):_=t[18];let v;t[19]!==g||t[20]!==_?(v=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[g,_]}),t[19]=g,t[20]=_,t[21]=v):v=t[21];let y;return t[22]!==v||t[23]!==u?(y=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[u,v]}),t[22]=v,t[23]=u,t[24]=y):y=t[24],y}var mt=[{value:`system`,label:`System`},{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}],ht=[{value:`icon-dots`,label:`Icon + dots`,description:`Brain icon with intensity dots`},{value:`dots`,label:`Dots only`,description:`Intensity dots without the icon`},{value:`text`,label:`Text label`,description:`Color-tinted abbreviated text`}],gt=[{value:`icon-text`,label:`Icon + text`,description:`Show the mode icon and label`,preview:`Balanced`,icon:T},{value:`icon`,label:`Icon only`,description:`Use the compact mode icon`,preview:``,icon:C},{value:`text`,label:`Text label`,description:`Show labels without icons`,preview:`Tokens off`,icon:w}],_t={default:1,light:.92,medium:.84,high:.78,glass:.72};function vt(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`span`,{className:`inline-flex items-center gap-0.5`,children:[1,2,3,4,5].map(yt)}),e[0]=t):t=e[0],t}function yt(e){return(0,$.jsx)(`span`,{className:a(`size-[5px] rounded-full bg-current`,e<=3?`opacity-100`:`opacity-30`)},e)}function bt(){let{theme:e,setTheme:t,resolvedTheme:n,activeThemeId:r,setActiveTheme:o}=he(),m=i(e=>e.reasoningIndicatorStyle),h=i(e=>e.setReasoningIndicatorStyle),y=i(e=>e.tokenModeControlStyle),x=i(e=>e.setTokenModeControlStyle),C=i(e=>e.wideComposerControlsAutoCollapse),w=i(e=>e.setWideComposerControlsAutoCollapse),[T,O]=(0,Z.useState)(null),[j,M]=(0,Z.useState)(null),[P,re]=(0,Z.useState)(null),[B,V]=(0,Z.useState)(()=>H()),[oe,ue]=(0,Z.useState)(0),fe=(0,Z.useRef)(null),pe=ge(),U=(0,Z.useMemo)(()=>T!==null&&j!==null?{source:ie(T),draft:j}:null,[j,T,oe]),W=P?ie(P):null,G=(0,Z.useCallback)(()=>ue(e=>e+1),[]);(0,Z.useEffect)(()=>{if(typeof window>`u`)return;let e=e=>{e.key===`ryco:appearance-preferences`&&V(H())};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]);let K=(0,Z.useCallback)((e,t)=>{R(e,t),N(),V(H())},[]),Q=(0,Z.useCallback)(e=>{L(e),N(),V(H())},[]),Me=(0,Z.useCallback)(()=>{L(`primaryColorMode`),L(`primaryColor`),N(),V(H())},[]),Ne=(0,Z.useCallback)(e=>{R(`primaryColorMode`,e?`custom`:`theme`),N(),V(H())},[]),Pe=(0,Z.useCallback)(e=>{R(`primaryColor`,e),R(`primaryColorMode`,`custom`),N(),V(H())},[]),Fe=(0,Z.useCallback)(e=>{if(ae(e.id)){let t=me(e);se(t),z(t.id),o(t.id),O(t.id),M(t),G();return}o(e.id),O(e.id),M(e)},[G,o]),Ie=(0,Z.useCallback)(e=>{let t=me(e);se(t),o(t.id),O(t.id),M(t),G()},[G,o]),Le=(0,Z.useCallback)(()=>{let e={id:le(`new`),name:`New theme`,builtIn:!1};se(e),o(e.id),O(e.id),M(e),G()},[G,o]),Ve=(0,Z.useCallback)(()=>{U&&(_e(U.source.id,U.draft),U.source.id===U.draft.id?ne(U.draft):o(U.draft.id),O(null),M(null),G())},[U,G,o]),He=(0,Z.useCallback)(()=>{U&&ne(U.source),O(null),M(null)},[U]),Ue=(0,Z.useCallback)(()=>{P&&(T===P&&(O(null),M(null)),de(P),re(null),G())},[T,P,G]),We=(0,Z.useCallback)(e=>{try{ze(e)}catch(e){l.add({type:`error`,title:`Could not export theme`,description:e instanceof Error?e.message:`Download failed.`})}},[]),Ge=(0,Z.useCallback)(async e=>{try{await Re(e),l.add({type:`success`,title:`Copied theme JSON`,description:`${e.name} is ready to paste.`})}catch(e){l.add({type:`error`,title:`Could not copy theme`,description:e instanceof Error?e.message:`Clipboard write failed.`})}},[]),Ke=(0,Z.useCallback)(()=>{fe.current?.click()},[]),qe=(0,Z.useCallback)(async e=>{let t=e.target.files?.[0];if(e.target.value=``,t)try{let e=await Be(t,{collision:`rename`,activate:!0});o(e.theme.id),G(),l.add({type:`success`,title:`Imported "${e.theme.name}"`,description:e.action===`renamed`?`An existing theme used the same id, so it was imported as "${e.theme.id}".`:`Theme imported and activated.`})}catch(e){l.add({type:`error`,title:`Could not import theme`,description:e instanceof Error?e.message:`Invalid theme file.`})}},[G,o]);return(0,$.jsxs)(Ee,{children:[(0,$.jsxs)(q,{title:`Interface controls`,children:[(0,$.jsx)(J,{title:`Interface font`,description:`Normal app text, navigation, dialogs, and controls.`,resetAction:I(`fontFamilySans`)?(0,$.jsx)(Y,{label:`interface font`,onClick:()=>Q(`fontFamilySans`)}):null,control:(0,$.jsx)(xt,{ariaLabel:`Interface font`,icon:(0,$.jsx)(Ae,{className:`size-3.5`}),options:te,value:B.fontFamilySans,sample:`The quick brown fox`,onChange:e=>K(`fontFamilySans`,e)})}),(0,$.jsx)(J,{title:`Code font`,description:`Code blocks, diffs, file paths, and terminal surfaces.`,resetAction:I(`fontFamilyMono`)?(0,$.jsx)(Y,{label:`code font`,onClick:()=>Q(`fontFamilyMono`)}):null,control:(0,$.jsx)(xt,{ariaLabel:`Code font`,icon:(0,$.jsx)(De,{className:`size-3.5`}),options:ve,value:B.fontFamilyMono,sample:`const answer = 42`,onChange:e=>K(`fontFamilyMono`,e)})}),(0,$.jsx)(J,{title:`Text size`,description:`Scale the interface independently from the active theme.`,resetAction:I(`fontSizeBase`)?(0,$.jsx)(Y,{label:`text size`,onClick:()=>Q(`fontSizeBase`)}):null,control:(0,$.jsx)(Ct,{ariaLabel:`Text size`,icon:(0,$.jsx)(X,{className:`size-3.5`}),options:F,value:B.fontSizeBase,onChange:e=>K(`fontSizeBase`,e),preview:(0,$.jsx)(`span`,{className:`flex h-9 min-w-14 items-center justify-center rounded-md border border-border/70 bg-background px-2 font-semibold text-foreground shadow-xs/5`,children:(0,$.jsx)(`span`,{style:{fontSize:B.fontSizeBase},children:`Aa`})})})}),(0,$.jsx)(J,{title:`Corner radius`,description:`Adjust rounding for panels, buttons, inputs, and menus globally.`,resetAction:I(`radius`)?(0,$.jsx)(Y,{label:`corner radius`,onClick:()=>Q(`radius`)}):null,control:(0,$.jsx)(Ct,{ariaLabel:`Corner radius`,icon:(0,$.jsx)(ke,{className:`size-3.5`}),options:ee,value:B.radius,onChange:e=>K(`radius`,e),preview:(0,$.jsxs)(`span`,{className:`grid h-9 min-w-14 grid-cols-2 gap-1 rounded-md border border-border/70 bg-background p-1.5 shadow-xs/5`,children:[(0,$.jsx)(`span`,{className:`border border-primary/55 bg-primary/15`,style:{borderRadius:B.radius}}),(0,$.jsx)(`span`,{className:`border border-muted-foreground/30 bg-muted`,style:{borderRadius:B.radius}})]})})}),(0,$.jsx)(J,{title:`Primary color`,description:`Theme palettes control buttons by default; enable a custom color to pin one app accent.`,resetAction:I(`primaryColorMode`)||I(`primaryColor`)?(0,$.jsx)(Y,{label:`primary color`,onClick:Me}):null,control:(0,$.jsx)(St,{mode:B.primaryColorMode,value:B.primaryColor,onModeChange:Ne,onColorChange:Pe})}),(0,$.jsx)(J,{title:`Transparency`,description:`Adjust glass and floating surfaces like dialogs, menus, popups, and toasts.`,resetAction:I(`surfaceTransparency`)?(0,$.jsx)(Y,{label:`transparency`,onClick:()=>Q(`surfaceTransparency`)}):null,control:(0,$.jsx)(Ct,{ariaLabel:`Transparency`,icon:(0,$.jsx)(Oe,{className:`size-3.5`}),options:ce,value:B.surfaceTransparency,onChange:e=>K(`surfaceTransparency`,e),preview:(0,$.jsx)(`span`,{className:`relative h-9 min-w-14 overflow-hidden rounded-md border border-border/70 bg-[linear-gradient(135deg,var(--color-sky-500)_0_20%,var(--color-emerald-500)_20%_40%,var(--color-amber-500)_40%_60%,var(--color-fuchsia-500)_60%_80%,var(--color-slate-500)_80%_100%)] p-1.5 shadow-xs/5`,children:(0,$.jsx)(`span`,{className:`block h-full rounded border border-border/70 bg-popover`,style:{opacity:_t[B.surfaceTransparency]??_t.default}})})})})]}),(0,$.jsx)(q,{title:`Theme palette`,headerAction:(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`input`,{ref:fe,type:`file`,accept:`.json,application/json`,className:`sr-only`,onChange:qe,"aria-hidden":!0,tabIndex:-1}),(0,$.jsxs)(c,{size:`xs`,variant:`ghost`,onClick:Le,"aria-label":`Create a new theme`,title:`Create a new theme`,className:`text-muted-foreground`,children:[(0,$.jsx)(k,{className:`size-3.5`}),`New`]}),(0,$.jsxs)(c,{size:`xs`,variant:`ghost`,onClick:Ke,"aria-label":`Import a theme from file`,title:`Import a theme from disk`,className:`text-muted-foreground`,children:[(0,$.jsx)(je,{className:`size-3.5`}),`Import`]})]}),children:(0,$.jsx)(`div`,{role:`radiogroup`,"aria-label":`Theme palette`,children:pe.map((e,t)=>{let i=e.id===r,s=T===e.id;return(0,$.jsxs)(Z.Fragment,{children:[(0,$.jsxs)(`div`,{role:`radio`,"aria-checked":i,tabIndex:i?0:-1,onClick:()=>o(e.id),onKeyDown:t=>{(t.key===` `||t.key===`Enter`)&&(t.preventDefault(),o(e.id))},className:a(`flex cursor-pointer flex-wrap items-center gap-3 px-4 py-3 outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:px-5`,t>0?`border-t border-border/60`:``,i?`bg-muted/40`:`hover:bg-muted/24`),children:[(0,$.jsx)(`span`,{"aria-hidden":!0,className:a(`relative flex size-4 shrink-0 items-center justify-center rounded-full border-2 transition-colors`,i?`border-primary`:`border-muted-foreground/40`),children:i?(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-primary`,"aria-hidden":!0}):null}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate text-sm font-medium text-foreground`,title:e.name,children:e.name}),(0,$.jsx)(v,{variant:`outline`,size:`sm`,children:e.builtIn?`Built-in`:`Custom`})]}),e.description?(0,$.jsx)(`span`,{className:`truncate text-xs text-muted-foreground/80`,title:e.description,children:e.description}):null]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[e.builtIn?null:(0,$.jsx)(c,{size:`icon-xs`,variant:`ghost`,"aria-label":`Edit ${e.name}`,title:`Edit`,onClick:()=>Fe(e),className:`text-muted-foreground`,children:(0,$.jsx)(b,{className:`size-3.5`})}),(0,$.jsx)(c,{size:`icon-xs`,variant:`ghost`,"aria-label":`Duplicate ${e.name}`,title:`Duplicate`,onClick:()=>Ie(e),className:`text-muted-foreground`,children:(0,$.jsx)(u,{className:`size-3.5`})}),(0,$.jsx)(c,{size:`icon-xs`,variant:`ghost`,"aria-label":`Export ${e.name}`,title:`Export`,onClick:()=>We(e),className:`text-muted-foreground`,children:(0,$.jsx)(D,{className:`size-3.5`})}),(0,$.jsx)(c,{size:`icon-xs`,variant:`ghost`,"aria-label":`Copy ${e.name} JSON`,title:`Copy JSON`,onClick:()=>void Ge(e),className:`text-muted-foreground`,children:(0,$.jsx)(E,{className:`size-3.5`})}),e.builtIn?null:(0,$.jsx)(c,{size:`icon-xs`,variant:`ghost`,"aria-label":`Delete ${e.name}`,title:`Delete`,onClick:()=>re(e.id),className:`text-destructive-foreground`,children:(0,$.jsx)(A,{className:`size-3.5`})})]})]}),s&&U?(0,$.jsx)(nt,{source:U.source,draft:U.draft,onDraftChange:e=>M(e),onSave:Ve,onCancel:He,resolvedVariant:n}):null]},e.id)})})}),(0,$.jsxs)(q,{title:`Composer controls`,children:[(0,$.jsx)(J,{title:`Reasoning chip style`,description:`How the reasoning effort level appears in the composer bar.`,resetAction:m===`icon-dots`?null:(0,$.jsx)(Y,{label:`reasoning indicator`,onClick:()=>h(`icon-dots`)}),control:(0,$.jsx)(`div`,{className:`flex w-full flex-col gap-2 sm:w-80`,children:ht.map(e=>{let t=m===e.value;return(0,$.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,onClick:()=>h(e.value),className:a(`flex items-center gap-3 rounded-md border px-3 py-2 text-left`,t?`border-primary ring-1 ring-primary/40`:`border-border hover:border-foreground/30`),children:[(0,$.jsx)(`span`,{className:a(`size-3.5 rounded-full border`,t?`border-primary bg-primary/80`:`border-foreground/30`)}),(0,$.jsxs)(`span`,{className:`flex flex-grow flex-col`,children:[(0,$.jsx)(`span`,{className:`font-medium text-sm`,children:e.label}),(0,$.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.description})]}),(0,$.jsx)(`span`,{className:a(`inline-flex h-7 items-center gap-1.5 rounded-md px-2 font-medium text-xs`,`bg-indigo-500/15 text-indigo-700 dark:bg-indigo-500/20 dark:text-indigo-300`),children:e.value===`text`?(0,$.jsx)(`span`,{children:`High`}):(0,$.jsxs)($.Fragment,{children:[e.value===`icon-dots`?(0,$.jsx)(s,{"aria-hidden":`true`,className:`size-3`}):null,(0,$.jsx)(vt,{})]})})]},e.value)})})}),(0,$.jsx)(J,{title:`Auto-collapse wide composer labels`,description:`Show long composer mode labels only on hover or focus.`,resetAction:C?null:(0,$.jsx)(Y,{label:`wide composer labels`,onClick:()=>w(!0)}),control:(0,$.jsx)(d,{checked:C,onCheckedChange:e=>w(!!e),"aria-label":`Auto-collapse wide composer labels`})}),(0,$.jsx)(J,{title:`Token mode style`,description:`How token efficiency appears when wide composer auto-collapse is off.`,resetAction:y===`icon-text`?null:(0,$.jsx)(Y,{label:`token mode style`,onClick:()=>x(`icon-text`)}),control:(0,$.jsx)(`div`,{className:`flex w-full flex-col gap-2 sm:w-80`,children:gt.map(e=>{let t=y===e.value,n=e.icon;return(0,$.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,onClick:()=>x(e.value),className:a(`flex items-center gap-3 rounded-md border px-3 py-2 text-left`,t?`border-primary ring-1 ring-primary/40`:`border-border hover:border-foreground/30`),children:[(0,$.jsx)(`span`,{className:a(`size-3.5 rounded-full border`,t?`border-primary bg-primary/80`:`border-foreground/30`)}),(0,$.jsxs)(`span`,{className:`flex flex-grow flex-col`,children:[(0,$.jsx)(`span`,{className:`font-medium text-sm`,children:e.label}),(0,$.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.description})]}),(0,$.jsxs)(`span`,{className:`inline-flex h-7 min-w-7 items-center justify-center gap-1.5 rounded-md bg-muted px-2 font-medium text-muted-foreground text-xs`,children:[e.value===`text`?null:(0,$.jsx)(n,{"aria-hidden":`true`,className:`size-3.5`}),e.preview?(0,$.jsx)(`span`,{children:e.preview}):null]})]},e.value)})})})]}),(0,$.jsx)(q,{title:`Color mode`,children:(0,$.jsx)(J,{title:`Theme variant`,description:`Choose between light, dark, or following the system preference.`,resetAction:e===`system`?null:(0,$.jsx)(Y,{label:`color mode`,onClick:()=>t(`system`)}),control:(0,$.jsxs)(S,{value:e,onValueChange:e=>{(e===`system`||e===`light`||e===`dark`)&&t(e)},children:[(0,$.jsx)(_,{className:`w-full sm:w-40`,"aria-label":`Color mode`,children:(0,$.jsx)(f,{children:mt.find(t=>t.value===e)?.label??`System`})}),(0,$.jsx)(g,{align:`end`,alignItemWithTrigger:!1,children:mt.map(e=>(0,$.jsx)(p,{hideIndicator:!0,value:e.value,children:e.label},e.value))})]})})}),(0,$.jsx)(Te,{open:P!==null,onOpenChange:e=>{e||re(null)},children:(0,$.jsxs)(Se,{children:[(0,$.jsxs)(ye,{children:[(0,$.jsx)(we,{children:`Delete custom theme?`}),(0,$.jsx)(Ce,{children:W?`"${W.name}" will be removed permanently. This action cannot be undone.`:`This action cannot be undone.`})]}),(0,$.jsxs)(be,{children:[(0,$.jsx)(xe,{render:(0,$.jsx)(c,{variant:`outline`}),children:`Cancel`}),(0,$.jsx)(c,{variant:`destructive`,onClick:Ue,children:`Delete theme`})]})]})})]})}function xt(e){let t=(0,Q.c)(43),{ariaLabel:n,icon:r,options:i,value:o,sample:s,onChange:c}=e,l;if(t[0]!==i||t[1]!==o){let e;t[3]===o?e=t[4]:(e=e=>e.value===o,t[3]=o,t[4]=e),l=i.findIndex(e),t[0]=i,t[1]=o,t[2]=l}else l=t[2];let u=Math.max(0,l),d=i[u]??i[0],f;t[5]===r?f=t[6]:(f=(0,$.jsx)(`span`,{className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md border border-border/70 bg-muted/60 text-muted-foreground`,children:r}),t[5]=r,t[6]=f);let p=d?.value??o,m;t[7]===p?m=t[8]:(m={fontFamily:p},t[7]=p,t[8]=m);let h=d?.label??o,g;t[9]!==m||t[10]!==h?(g=(0,$.jsx)(`span`,{className:`block truncate text-sm font-semibold text-foreground`,style:m,children:h}),t[9]=m,t[10]=h,t[11]=g):g=t[11];let _=d?.description??`Custom`,v;t[12]===_?v=t[13]:(v=(0,$.jsx)(`span`,{className:`block truncate text-[11px] text-muted-foreground`,children:_}),t[12]=_,t[13]=v);let y;t[14]!==g||t[15]!==v?(y=(0,$.jsxs)(`span`,{className:`min-w-0`,children:[g,v]}),t[14]=g,t[15]=v,t[16]=y):y=t[16];let b;t[17]!==f||t[18]!==y?(b=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[f,y]}),t[17]=f,t[18]=y,t[19]=b):b=t[19];let x=d?.value??o,S;t[20]===x?S=t[21]:(S={fontFamily:x},t[20]=x,t[21]=S);let C;t[22]!==s||t[23]!==S?(C=(0,$.jsx)(`span`,{className:`flex h-9 min-w-30 max-w-44 items-center justify-start truncate rounded-md border border-border/70 bg-background px-2 text-xs text-foreground shadow-xs/5`,style:S,title:s,children:s}),t[22]=s,t[23]=S,t[24]=C):C=t[24];let w;t[25]!==b||t[26]!==C?(w=(0,$.jsxs)(`div`,{className:`mb-2 flex min-h-9 items-center justify-between gap-3`,children:[b,C]}),t[25]=b,t[26]=C,t[27]=w):w=t[27];let T;if(t[28]!==n||t[29]!==c||t[30]!==i||t[31]!==u){let e;t[33]!==n||t[34]!==c||t[35]!==u?(e=(e,t)=>{let r=t===u;return(0,$.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":r,"aria-label":`Use ${e.label} for ${n.toLowerCase()}`,title:`${e.label} (${e.description})`,onClick:()=>c(e.value),className:a(`min-h-12 min-w-0 rounded-md border px-2 py-1.5 text-left outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring`,r?`border-primary bg-primary/8 text-foreground ring-1 ring-primary/35`:`border-border/70 text-muted-foreground hover:border-foreground/25 hover:bg-muted/45`),children:[(0,$.jsx)(`span`,{className:`block truncate text-[12px] font-semibold leading-4`,style:{fontFamily:e.value},children:e.label}),(0,$.jsx)(`span`,{className:`block truncate text-[10px] leading-3 opacity-75`,children:e.description})]},e.value)},t[33]=n,t[34]=c,t[35]=u,t[36]=e):e=t[36],T=i.map(e),t[28]=n,t[29]=c,t[30]=i,t[31]=u,t[32]=T}else T=t[32];let E;t[37]!==n||t[38]!==T?(E=(0,$.jsx)(`div`,{role:`radiogroup`,"aria-label":n,className:`grid grid-cols-2 gap-1.5 sm:grid-cols-3`,children:T}),t[37]=n,t[38]=T,t[39]=E):E=t[39];let D;return t[40]!==w||t[41]!==E?(D=(0,$.jsxs)(`div`,{className:`w-full sm:w-96`,children:[w,E]}),t[40]=w,t[41]=E,t[42]=D):D=t[42],D}function St(e){let t=(0,Q.c)(48),{mode:n,value:r,onModeChange:i,onColorChange:o}=e,s=n===`custom`,c;t[0]===r?c=t[1]:(c=/^#[0-9a-f]{6}$/i.test(r)?r.toLowerCase():P[0].value,t[0]=r,t[1]=c);let l=c,u;t[2]===l?u=t[3]:(u=P.find(e=>e.value===l),t[2]=l,t[3]=u);let f=u,p=s&&!f?`border-primary bg-primary/8 text-foreground ring-1 ring-primary/35`:`border-border/70 text-muted-foreground hover:border-foreground/25 hover:bg-muted/45`,m=!s&&`cursor-not-allowed opacity-55 hover:border-border/70 hover:bg-transparent`,h;t[4]!==p||t[5]!==m?(h=a(`h-12 w-full rounded-md border px-2 py-1.5 text-left shadow-none`,p,m),t[4]=p,t[5]=m,t[6]=h):h=t[6];let g=h,_;t[7]===l?_=t[8]:(_=(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-5 shrink-0 rounded-full border border-black/10 shadow-xs dark:border-white/20`,style:{backgroundColor:l}}),t[7]=l,t[8]=_);let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(`span`,{className:`block truncate text-[12px] font-semibold leading-4`,children:`Custom`}),t[9]=v):v=t[9];let y;t[10]===l?y=t[11]:(y=(0,$.jsxs)(`span`,{className:`min-w-0`,children:[v,(0,$.jsx)(`span`,{className:`block truncate font-mono text-[10px] leading-3 opacity-75`,children:l})]}),t[10]=l,t[11]=y);let b;t[12]!==_||t[13]!==y?(b=(0,$.jsxs)(`span`,{className:`flex size-full min-w-0 items-center gap-2`,children:[_,y]}),t[12]=_,t[13]=y,t[14]=b):b=t[14];let x=b,S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md border border-border/70 bg-muted/60 text-muted-foreground`,children:(0,$.jsx)(O,{className:`size-3.5`})}),t[15]=S):S=t[15];let C=s?f?.label??`Custom`:`Theme color`,w;t[16]===C?w=t[17]:(w=(0,$.jsx)(`span`,{className:`block truncate text-sm font-semibold text-foreground`,children:C}),t[16]=C,t[17]=w);let T=s?l:`Active palette`,E;t[18]===T?E=t[19]:(E=(0,$.jsx)(`span`,{className:`block truncate text-[11px] text-muted-foreground`,children:T}),t[18]=T,t[19]=E);let D;t[20]!==w||t[21]!==E?(D=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[S,(0,$.jsxs)(`span`,{className:`min-w-0`,children:[w,E]})]}),t[20]=w,t[21]=E,t[22]=D):D=t[22];let k;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,$.jsx)(`span`,{children:`Use theme`}),t[23]=k):k=t[23];let A=!s,j;t[24]===i?j=t[25]:(j=e=>i(!e),t[24]=i,t[25]=j);let M;t[26]!==A||t[27]!==j?(M=(0,$.jsxs)(`label`,{className:`flex h-9 shrink-0 items-center gap-2 rounded-md border border-border/70 bg-background px-2 text-xs text-muted-foreground shadow-xs/5`,children:[k,(0,$.jsx)(d,{checked:A,onCheckedChange:j,"aria-label":`Use theme primary color`})]}),t[26]=A,t[27]=j,t[28]=M):M=t[28];let N;t[29]!==D||t[30]!==M?(N=(0,$.jsxs)(`div`,{className:`mb-2 flex min-h-9 items-center justify-between gap-3`,children:[D,M]}),t[29]=D,t[30]=M,t[31]=N):N=t[31];let F;t[32]!==s||t[33]!==l||t[34]!==o?(F=P.map(e=>{let t=l===e.value;return(0,$.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":s&&t,"aria-label":`Use ${e.label} as primary color`,title:`${e.label} (${e.value})`,onClick:()=>o(e.value),disabled:!s,className:a(`flex min-h-12 min-w-0 items-center gap-2 rounded-md border px-2 py-1.5 text-left outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring`,s&&t?`border-primary bg-primary/8 text-foreground ring-1 ring-primary/35`:`border-border/70 text-muted-foreground hover:border-foreground/25 hover:bg-muted/45`,!s&&`cursor-not-allowed opacity-55 hover:border-border/70 hover:bg-transparent`),children:[(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-5 shrink-0 rounded-full border border-black/10 shadow-xs dark:border-white/20`,style:{backgroundColor:e.value}}),(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`span`,{className:`block truncate text-[12px] font-semibold leading-4`,children:e.label}),(0,$.jsx)(`span`,{className:`block truncate text-[10px] leading-3 opacity-75`,children:e.description})]})]},e.value)}),t[32]=s,t[33]=l,t[34]=o,t[35]=F):F=t[35];let I;t[36]!==s||t[37]!==g||t[38]!==x||t[39]!==l||t[40]!==o?(I=s?(0,$.jsx)(Ke,{value:l,onChange:o,ariaLabel:`Pick custom primary color`,triggerClassName:g,children:x}):(0,$.jsx)(`button`,{type:`button`,disabled:!0,"aria-label":`Pick custom primary color`,className:g,children:x}),t[36]=s,t[37]=g,t[38]=x,t[39]=l,t[40]=o,t[41]=I):I=t[41];let L;t[42]!==F||t[43]!==I?(L=(0,$.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Primary color`,className:`grid grid-cols-2 gap-1.5 sm:grid-cols-4`,children:[F,I]}),t[42]=F,t[43]=I,t[44]=L):L=t[44];let ee;return t[45]!==N||t[46]!==L?(ee=(0,$.jsxs)(`div`,{className:`w-full sm:w-96`,children:[N,L]}),t[45]=N,t[46]=L,t[47]=ee):ee=t[47],ee}function Ct(e){let t=(0,Q.c)(50),{ariaLabel:n,icon:r,options:i,value:o,onChange:s,preview:c}=e,l;if(t[0]!==i||t[1]!==o){let e;t[3]===o?e=t[4]:(e=e=>e.value===o,t[3]=o,t[4]=e),l=i.findIndex(e),t[0]=i,t[1]=o,t[2]=l}else l=t[2];let u=Math.max(0,l),d=i[u]??i[0],f=i.length>1?u/(i.length-1)*100:0,p;t[5]===r?p=t[6]:(p=(0,$.jsx)(`span`,{className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md border border-border/70 bg-muted/60 text-muted-foreground`,children:r}),t[5]=r,t[6]=p);let m=d?.label??o,h;t[7]===m?h=t[8]:(h=(0,$.jsx)(`span`,{className:`block truncate text-sm font-semibold text-foreground`,children:m}),t[7]=m,t[8]=h);let g=d?.description??o,_;t[9]===g?_=t[10]:(_=(0,$.jsx)(`span`,{className:`block truncate text-[11px] text-muted-foreground`,children:g}),t[9]=g,t[10]=_);let v;t[11]!==h||t[12]!==_?(v=(0,$.jsxs)(`span`,{className:`min-w-0`,children:[h,_]}),t[11]=h,t[12]=_,t[13]=v):v=t[13];let y;t[14]!==p||t[15]!==v?(y=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[p,v]}),t[14]=p,t[15]=v,t[16]=y):y=t[16];let b;t[17]!==c||t[18]!==y?(b=(0,$.jsxs)(`div`,{className:`mb-2 flex min-h-9 items-center justify-between gap-3`,children:[y,c]}),t[17]=c,t[18]=y,t[19]=b):b=t[19];let x;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(x=a(`h-5 w-full cursor-pointer appearance-none bg-transparent outline-none`,`[&::-webkit-slider-runnable-track]:h-1.5 [&::-webkit-slider-runnable-track]:rounded-full`,`[&::-webkit-slider-thumb]:mt-[-5px] [&::-webkit-slider-thumb]:size-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-background [&::-webkit-slider-thumb]:bg-primary [&::-webkit-slider-thumb]:shadow-sm`,`[&::-moz-range-track]:h-1.5 [&::-moz-range-track]:rounded-full [&::-moz-range-track]:border-0`,`[&::-moz-range-thumb]:size-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-background [&::-moz-range-thumb]:bg-primary [&::-moz-range-thumb]:shadow-sm`,`focus-visible:[&::-webkit-slider-thumb]:ring-2 focus-visible:[&::-webkit-slider-thumb]:ring-ring focus-visible:[&::-moz-range-thumb]:ring-2 focus-visible:[&::-moz-range-thumb]:ring-ring`),t[20]=x):x=t[20];let S=Math.max(0,i.length-1),C=`linear-gradient(to right, var(--color-primary) 0%, var(--color-primary) ${f}%, color-mix(in srgb, var(--color-muted-foreground) 18%, transparent) ${f}%, color-mix(in srgb, var(--color-muted-foreground) 18%, transparent) 100%)`,w;t[21]===C?w=t[22]:(w={background:C,borderRadius:`999px`},t[21]=C,t[22]=w);let T;t[23]!==s||t[24]!==i?(T=e=>{let t=i[Number(e.currentTarget.value)];t&&s(t.value)},t[23]=s,t[24]=i,t[25]=T):T=t[25];let E;t[26]!==n||t[27]!==u||t[28]!==S||t[29]!==w||t[30]!==T?(E=(0,$.jsx)(`input`,{"aria-label":n,className:x,max:S,min:0,step:1,type:`range`,value:u,style:w,onChange:T}),t[26]=n,t[27]=u,t[28]=S,t[29]=w,t[30]=T,t[31]=E):E=t[31];let D=`repeat(${i.length}, minmax(0, 1fr))`,O;t[32]===D?O=t[33]:(O={gridTemplateColumns:D},t[32]=D,t[33]=O);let k;if(t[34]!==n||t[35]!==s||t[36]!==i||t[37]!==u){let e;t[39]!==n||t[40]!==s||t[41]!==u?(e=(e,t)=>{let r=t===u;return(0,$.jsxs)(`button`,{type:`button`,"aria-label":`Set ${n.toLowerCase()} to ${e.label}`,title:`${e.label} (${e.description})`,onClick:()=>s(e.value),className:a(`flex min-h-7 min-w-0 flex-col items-center justify-start gap-1 rounded-md px-1 py-1 text-center outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring`,r?`text-foreground`:`text-muted-foreground hover:bg-muted/50`),children:[(0,$.jsx)(`span`,{className:a(`size-1.5 rounded-full`,r?`bg-primary`:`bg-muted-foreground/35`),"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`max-w-full truncate text-[10px] leading-none`,children:e.label})]},e.value)},t[39]=n,t[40]=s,t[41]=u,t[42]=e):e=t[42],k=i.map(e),t[34]=n,t[35]=s,t[36]=i,t[37]=u,t[38]=k}else k=t[38];let A;t[43]!==O||t[44]!==k?(A=(0,$.jsx)(`div`,{className:`mt-1.5 grid gap-1`,style:O,children:k}),t[43]=O,t[44]=k,t[45]=A):A=t[45];let j;return t[46]!==E||t[47]!==A||t[48]!==b?(j=(0,$.jsxs)(`div`,{className:`w-full sm:w-96`,children:[b,E,A]}),t[46]=E,t[47]=A,t[48]=b,t[49]=j):j=t[49],j}export{bt as AppearanceSettingsPanel};
|