ryco-cli 0.1.7 → 0.1.8
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-CF5LuCHp.mjs → AzureDevOpsSourceControlProvider-B5vb4DOU.mjs} +2 -2
- package/dist/{AzureDevOpsSourceControlProvider-5exivY-1.cjs → AzureDevOpsSourceControlProvider-CYZmJqSM.cjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-CKH09tfT.mjs → BitbucketSourceControlProvider-CcAb4IgH.mjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-1GWENqcl.cjs → BitbucketSourceControlProvider-D_7i4YQz.cjs} +2 -2
- package/dist/{ClaudeDriver-WwWFTu61.mjs → ClaudeDriver-CoPBpdrp.mjs} +22 -5
- package/dist/{ClaudeDriver-BXLdjrht.cjs → ClaudeDriver-ScqmbPKW.cjs} +22 -5
- package/dist/{CodexDriver-BboMT9uk.cjs → CodexDriver-CtCCc3CC.cjs} +34 -7
- package/dist/{CodexDriver-93-TmCrO.mjs → CodexDriver-DH7vqku4.mjs} +34 -7
- package/dist/{CodexTextGeneration-BU9Myn87.mjs → CodexTextGeneration-CJV1jPda.mjs} +2 -2
- package/dist/{CodexTextGeneration-0pRbJji3.cjs → CodexTextGeneration-Db2hn8Qz.cjs} +2 -2
- package/dist/{CopilotDriver-BASi8pJ0.mjs → CopilotDriver-CFCF68Te.mjs} +6 -5
- package/dist/{CopilotDriver-DCsv-17W.cjs → CopilotDriver-DLN2KEoc.cjs} +6 -5
- package/dist/{CursorDriver-BTSiM3A8.cjs → CursorDriver-BlvQbOEZ.cjs} +42 -3
- package/dist/{CursorDriver-D5LvIqUk.mjs → CursorDriver-Dej81rwD.mjs} +42 -3
- package/dist/{ForgejoSourceControlProvider-e-4hvvZ_.mjs → ForgejoSourceControlProvider-3cFD7SqY.mjs} +2 -2
- package/dist/{ForgejoSourceControlProvider-BTXRDCGB.cjs → ForgejoSourceControlProvider-DYFUGvBk.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-DWmwkA_y.cjs → GitHubSourceControlProvider-B1Tp0TbY.cjs} +27 -4
- package/dist/{GitHubSourceControlProvider-26IofDAO.mjs → GitHubSourceControlProvider-Kf4rrBTF.mjs} +27 -4
- package/dist/{GitLabSourceControlProvider-D-YHnxRe.cjs → GitLabSourceControlProvider-D3vvKrB4.cjs} +2 -2
- package/dist/{GitLabSourceControlProvider-DePct78W.mjs → GitLabSourceControlProvider-Ygppeftk.mjs} +2 -2
- package/dist/{NodeSqliteClient-B5aDHbNc.cjs → NodeSqliteClient-D1O-MR8w.cjs} +4 -1
- package/dist/{NodeSqliteClient-A1TEgwj_.mjs → NodeSqliteClient-DdTjpAko.mjs} +4 -1
- package/dist/{OpenCodeDriver-BhvLOmvn.mjs → OpenCodeDriver-BGa9Tkot.mjs} +3 -3
- package/dist/{OpenCodeDriver-CVeZ4n9-.cjs → OpenCodeDriver-mbR9mF54.cjs} +3 -3
- package/dist/{SourceControlProviderDiscoveryCatalog-DeFR5xH3.cjs → SourceControlProviderDiscoveryCatalog-CTb100Uk.cjs} +1 -1
- package/dist/{SourceControlProviderDiscoveryCatalog-mJV_Xitr.mjs → SourceControlProviderDiscoveryCatalog-Zk11tJoL.mjs} +1 -1
- package/dist/bin.cjs +259 -243
- package/dist/bin.mjs +259 -243
- package/dist/client/assets/{AnimatedHeight-BSU0lzYs.js → AnimatedHeight-CPQ2q38I.js} +1 -1
- package/dist/client/assets/AppearanceSettings-B0FYiIxL.js +1 -0
- package/dist/client/assets/{BranchToolbar.logic-CZIFSvhd.js → BranchToolbar.logic-C1yjFjxJ.js} +1 -1
- package/dist/client/assets/ChatRightPanel-CJDSKMU2.js +188 -0
- package/dist/client/assets/ChatThreadRouteView-BaKwKGbC.js +1 -0
- package/dist/client/assets/CommandPaletteDialog-BHG_MdZk.js +1 -0
- package/dist/client/assets/{CompositeRoot-B_KEfCUE.js → CompositeRoot-Bs0hfelE.js} +1 -1
- package/dist/client/assets/ConnectionsSettings-DvZNgO60.js +1 -0
- package/dist/client/assets/{DiagnosticsSettings-DtzPCb6N.js → DiagnosticsSettings-0v_hh1Qh.js} +1 -1
- package/dist/client/assets/{DialogHandle-DuHnmWoE.js → DialogHandle-CwEAVRF_.js} +1 -1
- package/dist/client/assets/{DialogRoot-BV25qAcA.js → DialogRoot-CYuaaDI3.js} +1 -1
- package/dist/client/assets/{DialogTitle-DQsi-RTa.js → DialogTitle-Cak6zT3u.js} +1 -1
- package/dist/client/assets/{DialogTrigger-D0fA01C6.js → DialogTrigger-BD0KYYT-.js} +1 -1
- package/dist/client/assets/{DialogViewport-CMV_BePU.js → DialogViewport-9sGf4JUp.js} +1 -1
- package/dist/client/assets/{DraftChatThreadRouteView-BoiKnrii.js → DraftChatThreadRouteView-nvKLHlii.js} +1 -1
- package/dist/client/assets/{JetBrainsIcons-BcPxJlMf.js → JetBrainsIcons-CflvH7gO.js} +1 -1
- package/dist/client/assets/KeybindingsSettings-DhLKhgYn.js +7 -0
- package/dist/client/assets/McpServersSettings-COs_dng1.js +6 -0
- package/dist/client/assets/{NoActiveThreadState-C2q_O1kP.js → NoActiveThreadState-cxMCW-cQ.js} +1 -1
- package/dist/client/assets/OpinionatedPluginsSettings-ag_OgOGj.js +1 -0
- package/dist/client/assets/{ProjectFavicon-D2imiJ8M.js → ProjectFavicon-D97Hy4xo.js} +1 -1
- package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-CJgA--nK.js → ProviderUpdateLaunchNotification.logic-RMYvRSEk.js} +1 -1
- package/dist/client/assets/ProvidersSettingsPanel-DcdVMRVC.js +1 -0
- package/dist/client/assets/{RedactedSensitiveText-B2GFTyfq.js → RedactedSensitiveText-CQY4pFAq.js} +1 -1
- package/dist/client/assets/RootAppShell-BRjETnaT.js +12 -0
- package/dist/client/assets/SettingsDialog-DRi5jsmq.js +2 -0
- package/dist/client/assets/SourceControlSettings-CdUulS4O.js +1 -0
- package/dist/client/assets/StatisticsPanel-NLU3ecLt.js +64 -0
- package/dist/client/assets/{ThreadStatusIndicators-Cw_jLVQf.js → ThreadStatusIndicators-CebYbeXP.js} +1 -1
- package/dist/client/assets/{ThreadTerminalDrawer-D1WnSemH.js → ThreadTerminalDrawer-DlI0gGer.js} +2 -2
- package/dist/client/assets/{ThreadWorkspacePanel-L4qCPTOA.js → ThreadWorkspacePanel-CEIVrCZ0.js} +6 -6
- package/dist/client/assets/{alert-dialog-CNmKa0BK.js → alert-dialog-wh07u3JU.js} +1 -1
- package/dist/client/assets/{chart-column-BWSKYZ_a.js → chart-column-Cg34FxwD.js} +1 -1
- package/dist/client/assets/{chatThreadActions-TtDsiwDC.js → chatThreadActions-UitETN_n.js} +1 -1
- package/dist/client/assets/{chevron-up-zopJ_99l.js → chevron-up-C3DS3evc.js} +1 -1
- package/dist/client/assets/{clamp-Ds6WJu8j.js → clamp-DPbdAzEu.js} +1 -1
- package/dist/client/assets/{clipboard-copy-BoJGpdmJ.js → clipboard-copy-ClVNnHW5.js} +1 -1
- package/dist/client/assets/clock-Cr66Pt4W.js +1 -0
- package/dist/client/assets/{commandPaletteStore-KebG835b.js → commandPaletteStore-DzUBFRor.js} +1 -1
- package/dist/client/assets/composerDraftStore-BfLPHwHL.js +21 -0
- package/dist/client/assets/{desktopUpdateAtoms-BQ0GGEfM.js → desktopUpdateAtoms-BiqPT2_z.js} +1 -1
- package/dist/client/assets/{download-CUiRE0N9.js → download-DJ1juHK4.js} +1 -1
- package/dist/client/assets/{draft-input-CwpGDtoT.js → draft-input-B1txZFC7.js} +1 -1
- package/dist/client/assets/editorPreferences-Bbmh6Bm1.js +1 -0
- package/dist/client/assets/{empty-CBuXePtg.js → empty-CUEYr1p8.js} +1 -1
- package/dist/client/assets/{group-BpZvxjG5.js → group-BouZ2n9F.js} +1 -1
- package/dist/client/assets/{index-BKzXTNJ_.js → index-DiHgOLH_.js} +2 -2
- package/dist/client/assets/{input-CgDawd6k.js → input-Do_m9U-4.js} +1 -1
- package/dist/client/assets/kbd-DJilTfYF.js +1 -0
- package/dist/client/assets/{keybindings-CUTRYI_A.js → keybindings-CRkz0yvp.js} +1 -1
- package/dist/client/assets/{keyboard-DFFiI7JY.js → keyboard-D3WgbAUQ.js} +1 -1
- package/dist/client/assets/{keyedQuery-DiOCbGH0.js → keyedQuery-PQcOnB2O.js} +0 -0
- package/dist/client/assets/{main-BgFGju3e.js → main-C-491vdD.js} +3 -3
- package/dist/client/assets/main-fW5L_SdM.css +2 -0
- package/dist/client/assets/{palette-BXCL909c.js → palette-BRoYo327.js} +1 -1
- package/dist/client/assets/{play-DI2LZohg.js → play-BZbHk_vw.js} +1 -1
- package/dist/client/assets/plus-D0S72hZS.js +1 -0
- package/dist/client/assets/projectAtoms-KYCIIuVn.js +1 -0
- package/dist/client/assets/providerDriverMeta-BX4CLldz.js +1 -0
- package/dist/client/assets/providerIconUtils-DTRc3qno.js +47 -0
- package/dist/client/assets/{radio-group-_PPYg3YY.js → radio-group-De3hRQoY.js} +1 -1
- package/dist/client/assets/{refresh-cw-BsQTNBXl.js → refresh-cw-D_1NT-T2.js} +1 -1
- package/dist/client/assets/{resolveAriaLabelledBy-CRHo_s16.js → resolveAriaLabelledBy-RblUm3b1.js} +1 -1
- package/dist/client/assets/rightPanelRouteSearch-DLllyqRr.js +1 -0
- package/dist/client/assets/{scale-DDEJ-tvn.js → scale-s57Ro96s.js} +1 -1
- package/dist/client/assets/{scroll-area-HgsI-ErG.js → scroll-area-B0_k8-iT.js} +1 -1
- package/dist/client/assets/{separator-ClnL4mUB.js → separator-AyXRgdnJ.js} +1 -1
- package/dist/client/assets/{server-Bbs3L-6_.js → server-Z-m1OqE5.js} +1 -1
- package/dist/client/assets/{session-logic-CKQkgIwo.js → session-logic-B87Htlw4.js} +2 -2
- package/dist/client/assets/settingsDialogStore-CxUfUnd9.js +1 -0
- package/dist/client/assets/{settingsLayout-G5xVm-ZT.js → settingsLayout-BtKS3Z8f.js} +1 -1
- package/dist/client/assets/{sidebar-_u7SGgmC.js → sidebar-B0WxOej2.js} +1 -1
- package/dist/client/assets/{sidebarStatusText-BTYnwflG.js → sidebarStatusText-C_EsHj20.js} +1 -1
- package/dist/client/assets/{skeleton-CmUvhZGP.js → skeleton-COt2Az5i.js} +1 -1
- package/dist/client/assets/{storeSelectors-DhJRpdiw.js → storeSelectors-BuB4Kzj6.js} +1 -1
- package/dist/client/assets/{threadSelectionStore-ygmA4DNA.js → threadSelectionStore-BS6X6HHt.js} +1 -1
- package/dist/client/assets/toast-CaV8TQi_.js +1 -0
- package/dist/client/assets/{toggle-DGS7tKuj.js → toggle-DE4ApNIU.js} +1 -1
- package/dist/client/assets/{toggle-group-Dtv1ZUFW.js → toggle-group-BuzAkAEk.js} +1 -1
- package/dist/client/assets/{tokenModePresentation-Dor1DnBx.js → tokenModePresentation-BCL2aeat.js} +1 -1
- package/dist/client/assets/{trash-2-C2G3VGoV.js → trash-2-ZZ1feCT6.js} +1 -1
- package/dist/client/assets/{triangle-alert-Bpz3xGu5.js → triangle-alert-CL3zqnKL.js} +1 -1
- package/dist/client/assets/{undo-2-C3rtxuqZ.js → undo-2-Cu9H3R3q.js} +1 -1
- package/dist/client/assets/{useHandleNewThread-ypSbzG0P.js → useHandleNewThread-Gke-ZFBr.js} +1 -1
- package/dist/client/assets/useLabelableId-DfuxWqrk.js +1 -0
- package/dist/client/assets/{useNavigate-_4hWGSey.js → useNavigate-DQEHh6ky.js} +1 -1
- package/dist/client/assets/{vscode-icons-DdSTtxYd.js → vscode-icons-DGDiHkqG.js} +1 -1
- package/dist/client/assets/{wrench-C4jdis40.js → wrench-C_OATMLq.js} +1 -1
- package/dist/client/assets/x-BG9zZGeD.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/{collectUint8StreamText-uNXVRHOf.cjs → collectUint8StreamText-B-GW3u_2.cjs} +83 -10
- package/dist/{collectUint8StreamText-Lv4GGI79.mjs → collectUint8StreamText-COE2_gie.mjs} +83 -10
- package/dist/{makeManagedServerProvider-CkPEptun.mjs → makeManagedServerProvider-D1_iEWGi.mjs} +1 -1
- package/dist/{makeManagedServerProvider-3SD-Q5xh.cjs → makeManagedServerProvider-DTsQ87HL.cjs} +1 -1
- package/package.json +4 -2
- package/dist/client/assets/AppearanceSettings-D7q0ujGK.js +0 -1
- package/dist/client/assets/ChatRightPanel-CWHOIuiQ.js +0 -188
- package/dist/client/assets/ChatThreadRouteView-bA7xWXzc.js +0 -1
- package/dist/client/assets/CommandPaletteDialog-DNYaVOZO.js +0 -1
- package/dist/client/assets/ConnectionsSettings-CLZPbx_K.js +0 -1
- package/dist/client/assets/KeybindingsSettings-LuI98pdF.js +0 -7
- package/dist/client/assets/McpServersSettings-BFMuWYVV.js +0 -6
- package/dist/client/assets/OpinionatedPluginsSettings-Bqwct37O.js +0 -1
- package/dist/client/assets/ProvidersSettingsPanel-B97vbeu6.js +0 -1
- package/dist/client/assets/RootAppShell-C1xTR98P.js +0 -12
- package/dist/client/assets/SettingsDialog-Q0Q8O5oH.js +0 -2
- package/dist/client/assets/SourceControlSettings-KAvoPTNi.js +0 -1
- package/dist/client/assets/StatisticsPanel-BzsQ444K.js +0 -64
- package/dist/client/assets/clock-CzUHThzk.js +0 -1
- package/dist/client/assets/composerDraftStore-DpPEQ6BN.js +0 -21
- package/dist/client/assets/editorPreferences-jN7DKbyt.js +0 -1
- package/dist/client/assets/kbd-QYSL97CK.js +0 -1
- package/dist/client/assets/main-D0UFdwts.css +0 -2
- package/dist/client/assets/plus-DzgIfHUF.js +0 -1
- package/dist/client/assets/projectAtoms-DXXpuERK.js +0 -1
- package/dist/client/assets/providerDriverMeta-CRNNp0q3.js +0 -1
- package/dist/client/assets/providerIconUtils-D-DFhem2.js +0 -47
- package/dist/client/assets/rightPanelRouteSearch-CfmZ7osj.js +0 -1
- package/dist/client/assets/settingsDialogStore-SG-W1q0A.js +0 -1
- package/dist/client/assets/toast-DmA_ziPT.js +0 -1
- package/dist/client/assets/useLabelableId-Bc7KEnHU.js +0 -1
- package/dist/client/assets/x-CG2WU63t.js +0 -1
package/dist/bin.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
4
|
const require_chunk = require("./chunk-jM1PLTSZ.cjs");
|
|
5
|
-
const require_collectUint8StreamText = require("./collectUint8StreamText-
|
|
5
|
+
const require_collectUint8StreamText = require("./collectUint8StreamText-B-GW3u_2.cjs");
|
|
6
6
|
const require_Metrics = require("./Metrics-CIW1QH7M.cjs");
|
|
7
|
-
const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-
|
|
7
|
+
const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-CTb100Uk.cjs");
|
|
8
8
|
const require_sourceControl = require("./sourceControl-x2t62T8h.cjs");
|
|
9
9
|
let _effect_platform_node_NodeRuntime = require("@effect/platform-node/NodeRuntime");
|
|
10
10
|
_effect_platform_node_NodeRuntime = require_chunk.__toESM(_effect_platform_node_NodeRuntime, 1);
|
|
@@ -4624,7 +4624,7 @@ effect_Layer.effectDiscard(runMigrations());
|
|
|
4624
4624
|
//#region src/persistence/Layers/Sqlite.ts
|
|
4625
4625
|
const defaultSqliteClientLoaders = {
|
|
4626
4626
|
bun: () => import("@effect/sql-sqlite-bun/SqliteClient"),
|
|
4627
|
-
node: () => Promise.resolve().then(() => require("./NodeSqliteClient-
|
|
4627
|
+
node: () => Promise.resolve().then(() => require("./NodeSqliteClient-D1O-MR8w.cjs"))
|
|
4628
4628
|
};
|
|
4629
4629
|
const makeRuntimeSqliteLayer = effect.Effect.fn("makeRuntimeSqliteLayer")(function* (config) {
|
|
4630
4630
|
const loader = defaultSqliteClientLoaders[process.versions.bun !== void 0 ? "bun" : "node"];
|
|
@@ -9715,6 +9715,7 @@ function workflowRunsEndpoint(input) {
|
|
|
9715
9715
|
const params = new URLSearchParams();
|
|
9716
9716
|
params.set("per_page", String(workflowRunLimit(input.limit)));
|
|
9717
9717
|
if (input.headSha?.trim()) params.set("head_sha", input.headSha.trim());
|
|
9718
|
+
else if (input.branch?.trim()) params.set("branch", input.branch.trim());
|
|
9718
9719
|
return `repos/{owner}/{repo}/actions/runs?${params.toString()}`;
|
|
9719
9720
|
}
|
|
9720
9721
|
function isWorkflowRerunStateError(error) {
|
|
@@ -10980,26 +10981,26 @@ const make$11 = effect.Effect.fn("makeSourceControlProviderRegistry")(function*
|
|
|
10980
10981
|
const azureDevOpsCli = yield* AzureDevOpsCli;
|
|
10981
10982
|
const fileSystem = yield* effect.FileSystem.FileSystem;
|
|
10982
10983
|
const github = yield* makeLazyProvider("github", effect.Effect.tryPromise({
|
|
10983
|
-
try: () => Promise.resolve().then(() => require("./GitHubSourceControlProvider-
|
|
10984
|
+
try: () => Promise.resolve().then(() => require("./GitHubSourceControlProvider-B1Tp0TbY.cjs")),
|
|
10984
10985
|
catch: (cause) => providerLoadError("github", cause)
|
|
10985
10986
|
}).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(GitHubCli, githubCli), effect.Effect.provideService(effect.FileSystem.FileSystem, fileSystem)));
|
|
10986
10987
|
const gitlab = yield* makeLazyProvider("gitlab", effect.Effect.tryPromise({
|
|
10987
|
-
try: () => Promise.resolve().then(() => require("./GitLabSourceControlProvider-
|
|
10988
|
+
try: () => Promise.resolve().then(() => require("./GitLabSourceControlProvider-D3vvKrB4.cjs")),
|
|
10988
10989
|
catch: (cause) => providerLoadError("gitlab", cause)
|
|
10989
10990
|
}).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(GitLabCli, gitlabCli)));
|
|
10990
10991
|
const bitbucket = yield* makeLazyProvider("bitbucket", effect.Effect.tryPromise({
|
|
10991
|
-
try: () => Promise.resolve().then(() => require("./BitbucketSourceControlProvider-
|
|
10992
|
+
try: () => Promise.resolve().then(() => require("./BitbucketSourceControlProvider-D_7i4YQz.cjs")),
|
|
10992
10993
|
catch: (cause) => providerLoadError("bitbucket", cause)
|
|
10993
10994
|
}).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(BitbucketApi, bitbucketApi)), {
|
|
10994
10995
|
searchRepositories: true,
|
|
10995
10996
|
cloneAuthentication: true
|
|
10996
10997
|
});
|
|
10997
10998
|
const forgejo = yield* makeLazyProvider("forgejo", effect.Effect.tryPromise({
|
|
10998
|
-
try: () => Promise.resolve().then(() => require("./ForgejoSourceControlProvider-
|
|
10999
|
+
try: () => Promise.resolve().then(() => require("./ForgejoSourceControlProvider-DYFUGvBk.cjs")),
|
|
10999
11000
|
catch: (cause) => providerLoadError("forgejo", cause)
|
|
11000
11001
|
}).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(ForgejoApi, forgejoApi)));
|
|
11001
11002
|
const azureDevOps = yield* makeLazyProvider("azure-devops", effect.Effect.tryPromise({
|
|
11002
|
-
try: () => Promise.resolve().then(() => require("./AzureDevOpsSourceControlProvider-
|
|
11003
|
+
try: () => Promise.resolve().then(() => require("./AzureDevOpsSourceControlProvider-CYZmJqSM.cjs")),
|
|
11003
11004
|
catch: (cause) => providerLoadError("azure-devops", cause)
|
|
11004
11005
|
}).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(AzureDevOpsCli, azureDevOpsCli)));
|
|
11005
11006
|
const bitbucketDiscovery = require_SourceControlProviderDiscoveryCatalog.makeBitbucketDiscovery(bitbucketApi);
|
|
@@ -11192,6 +11193,11 @@ const DEFAULT_KEYBINDINGS = [
|
|
|
11192
11193
|
key: "mod+o",
|
|
11193
11194
|
command: "editor.openFavorite"
|
|
11194
11195
|
},
|
|
11196
|
+
{
|
|
11197
|
+
key: "mod+f",
|
|
11198
|
+
command: "thread.find",
|
|
11199
|
+
when: "!terminalFocus"
|
|
11200
|
+
},
|
|
11195
11201
|
{
|
|
11196
11202
|
key: "mod+shift+[",
|
|
11197
11203
|
command: "thread.previous"
|
|
@@ -12013,14 +12019,7 @@ const ClientRequest__PluginsMigration = effect_Schema.Struct({
|
|
|
12013
12019
|
marketplaceName: effect_Schema.String,
|
|
12014
12020
|
pluginNames: effect_Schema.Array(effect_Schema.String)
|
|
12015
12021
|
});
|
|
12016
|
-
const ClientRequest__ReasoningEffort = effect_Schema.
|
|
12017
|
-
"none",
|
|
12018
|
-
"minimal",
|
|
12019
|
-
"low",
|
|
12020
|
-
"medium",
|
|
12021
|
-
"high",
|
|
12022
|
-
"xhigh"
|
|
12023
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
12022
|
+
const ClientRequest__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
12024
12023
|
const ClientRequest__ReasoningItemContent = effect_Schema.Union([effect_Schema.Struct({
|
|
12025
12024
|
text: effect_Schema.String,
|
|
12026
12025
|
type: effect_Schema.Literal("reasoning_text").annotate({ title: "ReasoningTextReasoningItemContentType" })
|
|
@@ -12596,14 +12595,7 @@ const ServerNotification__RateLimitWindow = effect_Schema.Struct({
|
|
|
12596
12595
|
windowDurationMins: effect_Schema.optionalKey(effect_Schema.Union([effect_Schema.Number.annotate({ format: "int64" }).check(effect_Schema.isInt()), effect_Schema.Null]))
|
|
12597
12596
|
});
|
|
12598
12597
|
const ServerNotification__RealtimeConversationVersion = effect_Schema.Literals(["v1", "v2"]);
|
|
12599
|
-
const ServerNotification__ReasoningEffort = effect_Schema.
|
|
12600
|
-
"none",
|
|
12601
|
-
"minimal",
|
|
12602
|
-
"low",
|
|
12603
|
-
"medium",
|
|
12604
|
-
"high",
|
|
12605
|
-
"xhigh"
|
|
12606
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
12598
|
+
const ServerNotification__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
12607
12599
|
const ServerNotification__ReasoningSummaryPartAddedNotification = effect_Schema.Struct({
|
|
12608
12600
|
itemId: effect_Schema.String,
|
|
12609
12601
|
summaryIndex: effect_Schema.Number.annotate({ format: "int64" }).check(effect_Schema.isInt()),
|
|
@@ -12982,14 +12974,7 @@ const V2ConfigReadResponse__AskForApproval = effect_Schema.Union([effect_Schema.
|
|
|
12982
12974
|
skill_approval: effect_Schema.optionalKey(effect_Schema.Boolean.annotate({ default: false }))
|
|
12983
12975
|
}) }).annotate({ title: "GranularAskForApproval" })], { mode: "oneOf" });
|
|
12984
12976
|
const V2ConfigReadResponse__ForcedLoginMethod = effect_Schema.Literals(["chatgpt", "api"]);
|
|
12985
|
-
const V2ConfigReadResponse__ReasoningEffort = effect_Schema.
|
|
12986
|
-
"none",
|
|
12987
|
-
"minimal",
|
|
12988
|
-
"low",
|
|
12989
|
-
"medium",
|
|
12990
|
-
"high",
|
|
12991
|
-
"xhigh"
|
|
12992
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
12977
|
+
const V2ConfigReadResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
12993
12978
|
const V2ConfigReadResponse__ReasoningSummary = effect_Schema.Union([effect_Schema.Literals([
|
|
12994
12979
|
"auto",
|
|
12995
12980
|
"concise",
|
|
@@ -13307,14 +13292,7 @@ const V2ItemCompletedNotification__PatchChangeKind = effect_Schema.Union([
|
|
|
13307
13292
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
13308
13293
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
13309
13294
|
], { mode: "oneOf" });
|
|
13310
|
-
const V2ItemCompletedNotification__ReasoningEffort = effect_Schema.
|
|
13311
|
-
"none",
|
|
13312
|
-
"minimal",
|
|
13313
|
-
"low",
|
|
13314
|
-
"medium",
|
|
13315
|
-
"high",
|
|
13316
|
-
"xhigh"
|
|
13317
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
13295
|
+
const V2ItemCompletedNotification__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
13318
13296
|
const V2ItemCompletedNotification__TextElement = effect_Schema.Struct({
|
|
13319
13297
|
byteRange: effect_Schema.Struct({
|
|
13320
13298
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -13502,14 +13480,7 @@ const V2ItemStartedNotification__PatchChangeKind = effect_Schema.Union([
|
|
|
13502
13480
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
13503
13481
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
13504
13482
|
], { mode: "oneOf" });
|
|
13505
|
-
const V2ItemStartedNotification__ReasoningEffort = effect_Schema.
|
|
13506
|
-
"none",
|
|
13507
|
-
"minimal",
|
|
13508
|
-
"low",
|
|
13509
|
-
"medium",
|
|
13510
|
-
"high",
|
|
13511
|
-
"xhigh"
|
|
13512
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
13483
|
+
const V2ItemStartedNotification__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
13513
13484
|
const V2ItemStartedNotification__TextElement = effect_Schema.Struct({
|
|
13514
13485
|
byteRange: effect_Schema.Struct({
|
|
13515
13486
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -13597,14 +13568,7 @@ const V2ModelListResponse__ModelUpgradeInfo = effect_Schema.Struct({
|
|
|
13597
13568
|
modelLink: effect_Schema.optionalKey(effect_Schema.Union([effect_Schema.String, effect_Schema.Null])),
|
|
13598
13569
|
upgradeCopy: effect_Schema.optionalKey(effect_Schema.Union([effect_Schema.String, effect_Schema.Null]))
|
|
13599
13570
|
});
|
|
13600
|
-
const V2ModelListResponse__ReasoningEffort = effect_Schema.
|
|
13601
|
-
"none",
|
|
13602
|
-
"minimal",
|
|
13603
|
-
"low",
|
|
13604
|
-
"medium",
|
|
13605
|
-
"high",
|
|
13606
|
-
"xhigh"
|
|
13607
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
13571
|
+
const V2ModelListResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
13608
13572
|
const V2ModelReroutedNotification__ModelRerouteReason = effect_Schema.Literal("highRiskCyberActivity");
|
|
13609
13573
|
const V2PluginInstallParams__AbsolutePathBuf = effect_Schema.String.annotate({ description: "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute." });
|
|
13610
13574
|
const V2PluginInstallResponse__AppSummary = effect_Schema.Struct({
|
|
@@ -13787,14 +13751,7 @@ const V2ReviewStartResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
13787
13751
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
13788
13752
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
13789
13753
|
], { mode: "oneOf" });
|
|
13790
|
-
const V2ReviewStartResponse__ReasoningEffort = effect_Schema.
|
|
13791
|
-
"none",
|
|
13792
|
-
"minimal",
|
|
13793
|
-
"low",
|
|
13794
|
-
"medium",
|
|
13795
|
-
"high",
|
|
13796
|
-
"xhigh"
|
|
13797
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
13754
|
+
const V2ReviewStartResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
13798
13755
|
const V2ReviewStartResponse__TextElement = effect_Schema.Struct({
|
|
13799
13756
|
byteRange: effect_Schema.Struct({
|
|
13800
13757
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -13958,14 +13915,7 @@ const V2ThreadForkResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
13958
13915
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
13959
13916
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
13960
13917
|
], { mode: "oneOf" });
|
|
13961
|
-
const V2ThreadForkResponse__ReasoningEffort = effect_Schema.
|
|
13962
|
-
"none",
|
|
13963
|
-
"minimal",
|
|
13964
|
-
"low",
|
|
13965
|
-
"medium",
|
|
13966
|
-
"high",
|
|
13967
|
-
"xhigh"
|
|
13968
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
13918
|
+
const V2ThreadForkResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
13969
13919
|
const V2ThreadForkResponse__ServiceTier = effect_Schema.Literals([
|
|
13970
13920
|
"fast",
|
|
13971
13921
|
"flex",
|
|
@@ -14088,14 +14038,7 @@ const V2ThreadListResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
14088
14038
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
14089
14039
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
14090
14040
|
], { mode: "oneOf" });
|
|
14091
|
-
const V2ThreadListResponse__ReasoningEffort = effect_Schema.
|
|
14092
|
-
"none",
|
|
14093
|
-
"minimal",
|
|
14094
|
-
"low",
|
|
14095
|
-
"medium",
|
|
14096
|
-
"high",
|
|
14097
|
-
"xhigh"
|
|
14098
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14041
|
+
const V2ThreadListResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
14099
14042
|
const V2ThreadListResponse__TextElement = effect_Schema.Struct({
|
|
14100
14043
|
byteRange: effect_Schema.Struct({
|
|
14101
14044
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -14204,14 +14147,7 @@ const V2ThreadMetadataUpdateResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
14204
14147
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
14205
14148
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
14206
14149
|
], { mode: "oneOf" });
|
|
14207
|
-
const V2ThreadMetadataUpdateResponse__ReasoningEffort = effect_Schema.
|
|
14208
|
-
"none",
|
|
14209
|
-
"minimal",
|
|
14210
|
-
"low",
|
|
14211
|
-
"medium",
|
|
14212
|
-
"high",
|
|
14213
|
-
"xhigh"
|
|
14214
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14150
|
+
const V2ThreadMetadataUpdateResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
14215
14151
|
const V2ThreadMetadataUpdateResponse__TextElement = effect_Schema.Struct({
|
|
14216
14152
|
byteRange: effect_Schema.Struct({
|
|
14217
14153
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -14315,14 +14251,7 @@ const V2ThreadReadResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
14315
14251
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
14316
14252
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
14317
14253
|
], { mode: "oneOf" });
|
|
14318
|
-
const V2ThreadReadResponse__ReasoningEffort = effect_Schema.
|
|
14319
|
-
"none",
|
|
14320
|
-
"minimal",
|
|
14321
|
-
"low",
|
|
14322
|
-
"medium",
|
|
14323
|
-
"high",
|
|
14324
|
-
"xhigh"
|
|
14325
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14254
|
+
const V2ThreadReadResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
14326
14255
|
const V2ThreadReadResponse__TextElement = effect_Schema.Struct({
|
|
14327
14256
|
byteRange: effect_Schema.Struct({
|
|
14328
14257
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -14528,14 +14457,7 @@ const V2ThreadResumeResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
14528
14457
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
14529
14458
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
14530
14459
|
], { mode: "oneOf" });
|
|
14531
|
-
const V2ThreadResumeResponse__ReasoningEffort = effect_Schema.
|
|
14532
|
-
"none",
|
|
14533
|
-
"minimal",
|
|
14534
|
-
"low",
|
|
14535
|
-
"medium",
|
|
14536
|
-
"high",
|
|
14537
|
-
"xhigh"
|
|
14538
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14460
|
+
const V2ThreadResumeResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
14539
14461
|
const V2ThreadResumeResponse__ServiceTier = effect_Schema.Literals([
|
|
14540
14462
|
"fast",
|
|
14541
14463
|
"flex",
|
|
@@ -14644,14 +14566,7 @@ const V2ThreadRollbackResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
14644
14566
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
14645
14567
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
14646
14568
|
], { mode: "oneOf" });
|
|
14647
|
-
const V2ThreadRollbackResponse__ReasoningEffort = effect_Schema.
|
|
14648
|
-
"none",
|
|
14649
|
-
"minimal",
|
|
14650
|
-
"low",
|
|
14651
|
-
"medium",
|
|
14652
|
-
"high",
|
|
14653
|
-
"xhigh"
|
|
14654
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14569
|
+
const V2ThreadRollbackResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
14655
14570
|
const V2ThreadRollbackResponse__TextElement = effect_Schema.Struct({
|
|
14656
14571
|
byteRange: effect_Schema.Struct({
|
|
14657
14572
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -14755,14 +14670,7 @@ const V2ThreadStartedNotification__PatchChangeKind = effect_Schema.Union([
|
|
|
14755
14670
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
14756
14671
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
14757
14672
|
], { mode: "oneOf" });
|
|
14758
|
-
const V2ThreadStartedNotification__ReasoningEffort = effect_Schema.
|
|
14759
|
-
"none",
|
|
14760
|
-
"minimal",
|
|
14761
|
-
"low",
|
|
14762
|
-
"medium",
|
|
14763
|
-
"high",
|
|
14764
|
-
"xhigh"
|
|
14765
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14673
|
+
const V2ThreadStartedNotification__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
14766
14674
|
const V2ThreadStartedNotification__TextElement = effect_Schema.Struct({
|
|
14767
14675
|
byteRange: effect_Schema.Struct({
|
|
14768
14676
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -14907,14 +14815,7 @@ const V2ThreadStartResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
14907
14815
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
14908
14816
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
14909
14817
|
], { mode: "oneOf" });
|
|
14910
|
-
const V2ThreadStartResponse__ReasoningEffort = effect_Schema.
|
|
14911
|
-
"none",
|
|
14912
|
-
"minimal",
|
|
14913
|
-
"low",
|
|
14914
|
-
"medium",
|
|
14915
|
-
"high",
|
|
14916
|
-
"xhigh"
|
|
14917
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14818
|
+
const V2ThreadStartResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
14918
14819
|
const V2ThreadStartResponse__ServiceTier = effect_Schema.Literals([
|
|
14919
14820
|
"fast",
|
|
14920
14821
|
"flex",
|
|
@@ -15026,14 +14927,7 @@ const V2ThreadTurnsListResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
15026
14927
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
15027
14928
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
15028
14929
|
], { mode: "oneOf" });
|
|
15029
|
-
const V2ThreadTurnsListResponse__ReasoningEffort = effect_Schema.
|
|
15030
|
-
"none",
|
|
15031
|
-
"minimal",
|
|
15032
|
-
"low",
|
|
15033
|
-
"medium",
|
|
15034
|
-
"high",
|
|
15035
|
-
"xhigh"
|
|
15036
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
14930
|
+
const V2ThreadTurnsListResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
15037
14931
|
const V2ThreadTurnsListResponse__TextElement = effect_Schema.Struct({
|
|
15038
14932
|
byteRange: effect_Schema.Struct({
|
|
15039
14933
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -15135,14 +15029,7 @@ const V2ThreadUnarchiveResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
15135
15029
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
15136
15030
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
15137
15031
|
], { mode: "oneOf" });
|
|
15138
|
-
const V2ThreadUnarchiveResponse__ReasoningEffort = effect_Schema.
|
|
15139
|
-
"none",
|
|
15140
|
-
"minimal",
|
|
15141
|
-
"low",
|
|
15142
|
-
"medium",
|
|
15143
|
-
"high",
|
|
15144
|
-
"xhigh"
|
|
15145
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
15032
|
+
const V2ThreadUnarchiveResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
15146
15033
|
const V2ThreadUnarchiveResponse__TextElement = effect_Schema.Struct({
|
|
15147
15034
|
byteRange: effect_Schema.Struct({
|
|
15148
15035
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -15245,14 +15132,7 @@ const V2TurnCompletedNotification__PatchChangeKind = effect_Schema.Union([
|
|
|
15245
15132
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
15246
15133
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
15247
15134
|
], { mode: "oneOf" });
|
|
15248
|
-
const V2TurnCompletedNotification__ReasoningEffort = effect_Schema.
|
|
15249
|
-
"none",
|
|
15250
|
-
"minimal",
|
|
15251
|
-
"low",
|
|
15252
|
-
"medium",
|
|
15253
|
-
"high",
|
|
15254
|
-
"xhigh"
|
|
15255
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
15135
|
+
const V2TurnCompletedNotification__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
15256
15136
|
const V2TurnCompletedNotification__TextElement = effect_Schema.Struct({
|
|
15257
15137
|
byteRange: effect_Schema.Struct({
|
|
15258
15138
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -15353,14 +15233,7 @@ const V2TurnStartedNotification__PatchChangeKind = effect_Schema.Union([
|
|
|
15353
15233
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
15354
15234
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
15355
15235
|
], { mode: "oneOf" });
|
|
15356
|
-
const V2TurnStartedNotification__ReasoningEffort = effect_Schema.
|
|
15357
|
-
"none",
|
|
15358
|
-
"minimal",
|
|
15359
|
-
"low",
|
|
15360
|
-
"medium",
|
|
15361
|
-
"high",
|
|
15362
|
-
"xhigh"
|
|
15363
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
15236
|
+
const V2TurnStartedNotification__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
15364
15237
|
const V2TurnStartedNotification__TextElement = effect_Schema.Struct({
|
|
15365
15238
|
byteRange: effect_Schema.Struct({
|
|
15366
15239
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -15411,14 +15284,7 @@ const V2TurnStartParams__Personality = effect_Schema.Literals([
|
|
|
15411
15284
|
"friendly",
|
|
15412
15285
|
"pragmatic"
|
|
15413
15286
|
]);
|
|
15414
|
-
const V2TurnStartParams__ReasoningEffort = effect_Schema.
|
|
15415
|
-
"none",
|
|
15416
|
-
"minimal",
|
|
15417
|
-
"low",
|
|
15418
|
-
"medium",
|
|
15419
|
-
"high",
|
|
15420
|
-
"xhigh"
|
|
15421
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
15287
|
+
const V2TurnStartParams__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
15422
15288
|
const V2TurnStartParams__ReasoningSummary = effect_Schema.Union([effect_Schema.Literals([
|
|
15423
15289
|
"auto",
|
|
15424
15290
|
"concise",
|
|
@@ -15501,14 +15367,7 @@ const V2TurnStartResponse__PatchChangeKind = effect_Schema.Union([
|
|
|
15501
15367
|
type: effect_Schema.Literal("update").annotate({ title: "UpdatePatchChangeKindType" })
|
|
15502
15368
|
}).annotate({ title: "UpdatePatchChangeKind" })
|
|
15503
15369
|
], { mode: "oneOf" });
|
|
15504
|
-
const V2TurnStartResponse__ReasoningEffort = effect_Schema.
|
|
15505
|
-
"none",
|
|
15506
|
-
"minimal",
|
|
15507
|
-
"low",
|
|
15508
|
-
"medium",
|
|
15509
|
-
"high",
|
|
15510
|
-
"xhigh"
|
|
15511
|
-
]).annotate({ description: "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning" });
|
|
15370
|
+
const V2TurnStartResponse__ReasoningEffort = effect_Schema.String.check(effect_Schema.isNonEmpty()).annotate({ description: "A non-empty reasoning effort value advertised by the model." });
|
|
15512
15371
|
const V2TurnStartResponse__TextElement = effect_Schema.Struct({
|
|
15513
15372
|
byteRange: effect_Schema.Struct({
|
|
15514
15373
|
end: effect_Schema.Number.annotate({ format: "uint" }).check(effect_Schema.isInt()).check(effect_Schema.isGreaterThanOrEqualTo(0)),
|
|
@@ -26827,7 +26686,7 @@ const BUILT_IN_DRIVERS = [
|
|
|
26827
26686
|
configSchema: require_collectUint8StreamText.CodexSettings,
|
|
26828
26687
|
defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CodexSettings)({}),
|
|
26829
26688
|
create: (input) => effect.Effect.tryPromise({
|
|
26830
|
-
try: () => Promise.resolve().then(() => require("./CodexDriver-
|
|
26689
|
+
try: () => Promise.resolve().then(() => require("./CodexDriver-CtCCc3CC.cjs")),
|
|
26831
26690
|
catch: (cause) => driverImportError(codexDriverKind, input, cause)
|
|
26832
26691
|
}).pipe(effect.Effect.flatMap(({ CodexDriver }) => CodexDriver.create(input)))
|
|
26833
26692
|
},
|
|
@@ -26840,7 +26699,7 @@ const BUILT_IN_DRIVERS = [
|
|
|
26840
26699
|
configSchema: require_collectUint8StreamText.ClaudeSettings,
|
|
26841
26700
|
defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.ClaudeSettings)({}),
|
|
26842
26701
|
create: (input) => effect.Effect.tryPromise({
|
|
26843
|
-
try: () => Promise.resolve().then(() => require("./ClaudeDriver-
|
|
26702
|
+
try: () => Promise.resolve().then(() => require("./ClaudeDriver-ScqmbPKW.cjs")),
|
|
26844
26703
|
catch: (cause) => driverImportError(claudeDriverKind, input, cause)
|
|
26845
26704
|
}).pipe(effect.Effect.flatMap(({ ClaudeDriver }) => ClaudeDriver.create(input)))
|
|
26846
26705
|
},
|
|
@@ -26853,7 +26712,7 @@ const BUILT_IN_DRIVERS = [
|
|
|
26853
26712
|
configSchema: require_collectUint8StreamText.CopilotSettings,
|
|
26854
26713
|
defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CopilotSettings)({}),
|
|
26855
26714
|
create: (input) => effect.Effect.tryPromise({
|
|
26856
|
-
try: () => Promise.resolve().then(() => require("./CopilotDriver-
|
|
26715
|
+
try: () => Promise.resolve().then(() => require("./CopilotDriver-DLN2KEoc.cjs")),
|
|
26857
26716
|
catch: (cause) => driverImportError(copilotDriverKind, input, cause)
|
|
26858
26717
|
}).pipe(effect.Effect.flatMap(({ CopilotDriver }) => CopilotDriver.create(input)))
|
|
26859
26718
|
},
|
|
@@ -26866,7 +26725,7 @@ const BUILT_IN_DRIVERS = [
|
|
|
26866
26725
|
configSchema: require_collectUint8StreamText.CursorSettings,
|
|
26867
26726
|
defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CursorSettings)({}),
|
|
26868
26727
|
create: (input) => effect.Effect.tryPromise({
|
|
26869
|
-
try: () => Promise.resolve().then(() => require("./CursorDriver-
|
|
26728
|
+
try: () => Promise.resolve().then(() => require("./CursorDriver-BlvQbOEZ.cjs")),
|
|
26870
26729
|
catch: (cause) => driverImportError(cursorDriverKind, input, cause)
|
|
26871
26730
|
}).pipe(effect.Effect.flatMap(({ CursorDriver }) => CursorDriver.create(input)))
|
|
26872
26731
|
},
|
|
@@ -26879,7 +26738,7 @@ const BUILT_IN_DRIVERS = [
|
|
|
26879
26738
|
configSchema: require_collectUint8StreamText.OpenCodeSettings,
|
|
26880
26739
|
defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.OpenCodeSettings)({}),
|
|
26881
26740
|
create: (input) => effect.Effect.tryPromise({
|
|
26882
|
-
try: () => Promise.resolve().then(() => require("./OpenCodeDriver-
|
|
26741
|
+
try: () => Promise.resolve().then(() => require("./OpenCodeDriver-mbR9mF54.cjs")),
|
|
26883
26742
|
catch: (cause) => driverImportError(openCodeDriverKind, input, cause)
|
|
26884
26743
|
}).pipe(effect.Effect.flatMap(({ OpenCodeDriver }) => OpenCodeDriver.create(input)))
|
|
26885
26744
|
}
|
|
@@ -26979,6 +26838,7 @@ function buildServerProvider(input) {
|
|
|
26979
26838
|
displayName: input.presentation.displayName,
|
|
26980
26839
|
...input.presentation.badgeLabel ? { badgeLabel: input.presentation.badgeLabel } : {},
|
|
26981
26840
|
...typeof input.presentation.showInteractionModeToggle === "boolean" ? { showInteractionModeToggle: input.presentation.showInteractionModeToggle } : {},
|
|
26841
|
+
...typeof input.presentation.supportsAskMode === "boolean" ? { supportsAskMode: input.presentation.supportsAskMode } : {},
|
|
26982
26842
|
enabled: input.enabled,
|
|
26983
26843
|
installed: input.probe.installed,
|
|
26984
26844
|
version: input.probe.version,
|
|
@@ -27592,13 +27452,14 @@ const scopedSafeTeardown = (label) => (effect$15) => effect.Effect.gen(function*
|
|
|
27592
27452
|
});
|
|
27593
27453
|
//#endregion
|
|
27594
27454
|
//#region package.json
|
|
27595
|
-
var version = "0.1.
|
|
27455
|
+
var version = "0.1.8";
|
|
27596
27456
|
//#endregion
|
|
27597
27457
|
//#region src/provider/Layers/CodexProvider.ts
|
|
27598
27458
|
const PROVIDER_PROBE_TIMEOUT_MS = 8e3;
|
|
27599
27459
|
const CODEX_PRESENTATION = {
|
|
27600
27460
|
displayName: "Codex",
|
|
27601
|
-
showInteractionModeToggle: true
|
|
27461
|
+
showInteractionModeToggle: true,
|
|
27462
|
+
supportsAskMode: true
|
|
27602
27463
|
};
|
|
27603
27464
|
const REASONING_EFFORT_LABELS = {
|
|
27604
27465
|
none: "None",
|
|
@@ -27606,8 +27467,15 @@ const REASONING_EFFORT_LABELS = {
|
|
|
27606
27467
|
low: "Low",
|
|
27607
27468
|
medium: "Medium",
|
|
27608
27469
|
high: "High",
|
|
27609
|
-
xhigh: "Extra High"
|
|
27470
|
+
xhigh: "Extra High",
|
|
27471
|
+
max: "Max",
|
|
27472
|
+
ultra: "Ultra"
|
|
27610
27473
|
};
|
|
27474
|
+
function formatReasoningEffortLabel(reasoningEffort) {
|
|
27475
|
+
const known = REASONING_EFFORT_LABELS[reasoningEffort];
|
|
27476
|
+
if (known) return known;
|
|
27477
|
+
return reasoningEffort.replace(/[_-]+/g, " ").replace(/\b\w/g, (char) => char.toUpperCase());
|
|
27478
|
+
}
|
|
27611
27479
|
function codexAccountAuthLabel(account) {
|
|
27612
27480
|
if (!account) return void 0;
|
|
27613
27481
|
if (account.type === "apiKey") return "OpenAI API Key";
|
|
@@ -27636,11 +27504,11 @@ function codexAccountEmail(account) {
|
|
|
27636
27504
|
function mapCodexModelCapabilities(model) {
|
|
27637
27505
|
const reasoningOptions = model.supportedReasoningEfforts.map(({ reasoningEffort }) => reasoningEffort === model.defaultReasoningEffort ? {
|
|
27638
27506
|
id: reasoningEffort,
|
|
27639
|
-
label:
|
|
27507
|
+
label: formatReasoningEffortLabel(reasoningEffort),
|
|
27640
27508
|
isDefault: true
|
|
27641
27509
|
} : {
|
|
27642
27510
|
id: reasoningEffort,
|
|
27643
|
-
label:
|
|
27511
|
+
label: formatReasoningEffortLabel(reasoningEffort)
|
|
27644
27512
|
});
|
|
27645
27513
|
const defaultReasoning = reasoningOptions.find((option) => option.isDefault)?.id;
|
|
27646
27514
|
const supportsFastMode = (model.additionalSpeedTiers ?? []).includes("fast");
|
|
@@ -28638,11 +28506,12 @@ var ProjectionSnapshotQuery = class extends effect.Context.Service()("ryco/orche
|
|
|
28638
28506
|
* on demand. No dedicated statistics tables exist; everything is derived from
|
|
28639
28507
|
* data already persisted by the projection pipeline.
|
|
28640
28508
|
*
|
|
28641
|
-
* Token figures
|
|
28642
|
-
* read the final `context-window.updated` activity
|
|
28643
|
-
*
|
|
28644
|
-
*
|
|
28645
|
-
* cumulative
|
|
28509
|
+
* Token figures prefer per-turn attribution: for each `(thread, turn)` with
|
|
28510
|
+
* exact `last*` breakdowns we read the final `context-window.updated` activity
|
|
28511
|
+
* and bucket its provider-reported turn total by day/project/provider/model.
|
|
28512
|
+
* Threads without exact deltas (older data / providers that only report
|
|
28513
|
+
* cumulative context usage) fall back to attributing the latest cumulative
|
|
28514
|
+
* total to the thread's primary model and last-activity day.
|
|
28646
28515
|
*
|
|
28647
28516
|
* @module StatisticsQuery
|
|
28648
28517
|
*/
|
|
@@ -28657,6 +28526,7 @@ const ThreadRow = effect.Schema.Struct({
|
|
|
28657
28526
|
threadId: effect.Schema.String,
|
|
28658
28527
|
projectId: require_collectUint8StreamText.ProjectId,
|
|
28659
28528
|
model: effect.Schema.NullOr(effect.Schema.String),
|
|
28529
|
+
providerInstanceId: effect.Schema.NullOr(effect.Schema.String),
|
|
28660
28530
|
createdAt: effect.Schema.String,
|
|
28661
28531
|
providerName: effect.Schema.NullOr(effect.Schema.String)
|
|
28662
28532
|
});
|
|
@@ -28695,6 +28565,33 @@ function num(value) {
|
|
|
28695
28565
|
function dayOf(iso) {
|
|
28696
28566
|
return iso.length >= 10 ? iso.slice(0, 10) : null;
|
|
28697
28567
|
}
|
|
28568
|
+
function bestPerTurnTotalTokenCount(payload) {
|
|
28569
|
+
const reportedTotal = num(payload?.lastUsedTokens);
|
|
28570
|
+
if (reportedTotal > 0) return reportedTotal;
|
|
28571
|
+
return num(payload?.lastInputTokens) + num(payload?.lastOutputTokens);
|
|
28572
|
+
}
|
|
28573
|
+
function bestCumulativeTotalTokenCount(payload) {
|
|
28574
|
+
const reportedTotal = num(payload?.usedTokens);
|
|
28575
|
+
if (reportedTotal > 0) return reportedTotal;
|
|
28576
|
+
return num(payload?.inputTokens) + num(payload?.outputTokens);
|
|
28577
|
+
}
|
|
28578
|
+
function hasExactPerTurnBreakdown(payload) {
|
|
28579
|
+
return num(payload?.lastInputTokens) + num(payload?.lastOutputTokens) + num(payload?.lastCachedInputTokens) + num(payload?.lastReasoningOutputTokens) > 0;
|
|
28580
|
+
}
|
|
28581
|
+
function addPerTurnUsage(bucket, payload) {
|
|
28582
|
+
bucket.inputTokens += num(payload?.lastInputTokens);
|
|
28583
|
+
bucket.outputTokens += num(payload?.lastOutputTokens);
|
|
28584
|
+
bucket.cachedInputTokens += num(payload?.lastCachedInputTokens);
|
|
28585
|
+
bucket.reasoningTokens += num(payload?.lastReasoningOutputTokens);
|
|
28586
|
+
bucket.totalTokens += bestPerTurnTotalTokenCount(payload);
|
|
28587
|
+
}
|
|
28588
|
+
function addCumulativeUsage(bucket, payload) {
|
|
28589
|
+
bucket.inputTokens += num(payload?.inputTokens);
|
|
28590
|
+
bucket.outputTokens += num(payload?.outputTokens);
|
|
28591
|
+
bucket.cachedInputTokens += num(payload?.cachedInputTokens);
|
|
28592
|
+
bucket.reasoningTokens += num(payload?.reasoningOutputTokens);
|
|
28593
|
+
bucket.totalTokens += bestCumulativeTotalTokenCount(payload);
|
|
28594
|
+
}
|
|
28698
28595
|
const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
28699
28596
|
const sql = yield* effect_unstable_sql_SqlClient.SqlClient;
|
|
28700
28597
|
const listThreadRows = effect_unstable_sql_SqlSchema.findAll({
|
|
@@ -28705,9 +28602,14 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28705
28602
|
t.thread_id AS "threadId",
|
|
28706
28603
|
t.project_id AS "projectId",
|
|
28707
28604
|
json_extract(t.model_selection_json, '$.model') AS "model",
|
|
28605
|
+
COALESCE(
|
|
28606
|
+
json_extract(t.model_selection_json, '$.instanceId'),
|
|
28607
|
+
json_extract(t.model_selection_json, '$.provider')
|
|
28608
|
+
) AS "providerInstanceId",
|
|
28708
28609
|
t.created_at AS "createdAt",
|
|
28709
28610
|
COALESCE(
|
|
28710
28611
|
s.provider_name,
|
|
28612
|
+
json_extract(t.model_selection_json, '$.instanceId'),
|
|
28711
28613
|
json_extract(t.model_selection_json, '$.provider')
|
|
28712
28614
|
) AS "providerName"
|
|
28713
28615
|
FROM projection_threads t
|
|
@@ -28787,9 +28689,9 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28787
28689
|
listWorktreeRows(void 0).pipe(effect.Effect.mapError(toPersistenceSqlOrDecodeError$7("StatisticsQuery.getStatistics:listWorktrees:query", "StatisticsQuery.getStatistics:listWorktrees:decodeRows")))
|
|
28788
28690
|
], { concurrency: "unbounded" });
|
|
28789
28691
|
const threadMeta = /* @__PURE__ */ new Map();
|
|
28790
|
-
const
|
|
28692
|
+
const modelRefs = /* @__PURE__ */ new Map();
|
|
28791
28693
|
for (const row of threadRows) {
|
|
28792
|
-
const provider = row.providerName?.trim() || void 0;
|
|
28694
|
+
const provider = row.providerName?.trim() || row.providerInstanceId?.trim() || void 0;
|
|
28793
28695
|
const model = (row.model ?? "").trim() || "unknown";
|
|
28794
28696
|
threadMeta.set(row.threadId, {
|
|
28795
28697
|
projectId: row.projectId,
|
|
@@ -28797,22 +28699,27 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28797
28699
|
provider,
|
|
28798
28700
|
createdAt: row.createdAt
|
|
28799
28701
|
});
|
|
28800
|
-
|
|
28702
|
+
const modelKey = `${provider ?? ""}\u0000${model}`;
|
|
28703
|
+
modelRefs.set(modelKey, provider ? {
|
|
28704
|
+
model,
|
|
28705
|
+
provider
|
|
28706
|
+
} : { model });
|
|
28801
28707
|
}
|
|
28802
28708
|
const buckets = /* @__PURE__ */ new Map();
|
|
28803
|
-
const getBucket = (date, projectId, model) => {
|
|
28804
|
-
const key = `${date}
|
|
28709
|
+
const getBucket = (date, projectId, model, provider) => {
|
|
28710
|
+
const key = `${date}\u0000${projectId}\u0000${provider ?? ""}\u0000${model}`;
|
|
28805
28711
|
let bucket = buckets.get(key);
|
|
28806
28712
|
if (!bucket) {
|
|
28807
28713
|
bucket = {
|
|
28808
28714
|
date,
|
|
28809
28715
|
projectId,
|
|
28810
28716
|
model,
|
|
28811
|
-
provider
|
|
28717
|
+
provider,
|
|
28812
28718
|
inputTokens: 0,
|
|
28813
28719
|
outputTokens: 0,
|
|
28814
28720
|
cachedInputTokens: 0,
|
|
28815
28721
|
reasoningTokens: 0,
|
|
28722
|
+
totalTokens: 0,
|
|
28816
28723
|
turns: 0,
|
|
28817
28724
|
activeMs: 0,
|
|
28818
28725
|
toolUses: 0,
|
|
@@ -28832,50 +28739,50 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28832
28739
|
if (iso && (earliest === void 0 || iso < earliest)) earliest = iso;
|
|
28833
28740
|
};
|
|
28834
28741
|
const lastPerTurn = /* @__PURE__ */ new Map();
|
|
28835
|
-
const lastPerThread = /* @__PURE__ */ new Map();
|
|
28836
28742
|
const isLater = (a, b) => {
|
|
28837
28743
|
if (a.createdAt !== b.createdAt) return a.createdAt > b.createdAt;
|
|
28838
28744
|
return (a.sequence ?? -1) >= (b.sequence ?? -1);
|
|
28839
28745
|
};
|
|
28840
28746
|
for (const row of tokenRows) {
|
|
28841
28747
|
considerIso(row.createdAt);
|
|
28842
|
-
|
|
28843
|
-
const
|
|
28844
|
-
if (!
|
|
28748
|
+
const turnKey = `${row.threadId}\u0000${row.turnId ?? ""}`;
|
|
28749
|
+
const prevTurn = lastPerTurn.get(turnKey);
|
|
28750
|
+
if (!prevTurn || isLater(row, prevTurn)) lastPerTurn.set(turnKey, row);
|
|
28845
28751
|
}
|
|
28846
|
-
|
|
28847
|
-
for (const row of lastPerTurn.values()) {
|
|
28848
|
-
const
|
|
28849
|
-
|
|
28752
|
+
const firstExactPerThread = /* @__PURE__ */ new Map();
|
|
28753
|
+
for (const row of lastPerTurn.values()) if (hasExactPerTurnBreakdown(safeParse(row.payloadJson))) {
|
|
28754
|
+
const prev = firstExactPerThread.get(row.threadId);
|
|
28755
|
+
if (!prev || isLater(prev, row)) firstExactPerThread.set(row.threadId, row);
|
|
28850
28756
|
}
|
|
28851
|
-
|
|
28852
|
-
for (const row of
|
|
28757
|
+
const cumulativeFallbackByThread = /* @__PURE__ */ new Map();
|
|
28758
|
+
for (const row of lastPerTurn.values()) {
|
|
28759
|
+
if (hasExactPerTurnBreakdown(safeParse(row.payloadJson))) continue;
|
|
28760
|
+
const firstExact = firstExactPerThread.get(row.threadId);
|
|
28761
|
+
if (firstExact && !isLater(firstExact, row)) continue;
|
|
28762
|
+
const prev = cumulativeFallbackByThread.get(row.threadId);
|
|
28763
|
+
if (!prev || isLater(row, prev)) cumulativeFallbackByThread.set(row.threadId, row);
|
|
28764
|
+
}
|
|
28765
|
+
let usedExactPerTurn = false;
|
|
28766
|
+
let usedCumulativeFallback = false;
|
|
28767
|
+
for (const row of lastPerTurn.values()) {
|
|
28853
28768
|
const payload = safeParse(row.payloadJson);
|
|
28854
|
-
|
|
28855
|
-
}
|
|
28856
|
-
const attribution = perTurnDeltaSum === 0 && cumulativeSum > 0 ? "thread-cumulative" : "per-turn-delta";
|
|
28857
|
-
if (attribution === "per-turn-delta") for (const row of lastPerTurn.values()) {
|
|
28769
|
+
if (!hasExactPerTurnBreakdown(payload)) continue;
|
|
28858
28770
|
const meta = threadMeta.get(row.threadId);
|
|
28859
28771
|
const date = dayOf(row.createdAt);
|
|
28860
28772
|
if (!meta || !date) continue;
|
|
28861
|
-
|
|
28862
|
-
|
|
28863
|
-
bucket.inputTokens += num(payload?.lastInputTokens);
|
|
28864
|
-
bucket.outputTokens += num(payload?.lastOutputTokens);
|
|
28865
|
-
bucket.cachedInputTokens += num(payload?.lastCachedInputTokens);
|
|
28866
|
-
bucket.reasoningTokens += num(payload?.lastReasoningOutputTokens);
|
|
28773
|
+
addPerTurnUsage(getBucket(date, meta.projectId, meta.model, meta.provider), payload);
|
|
28774
|
+
usedExactPerTurn = true;
|
|
28867
28775
|
}
|
|
28868
|
-
|
|
28776
|
+
for (const row of cumulativeFallbackByThread.values()) {
|
|
28869
28777
|
const meta = threadMeta.get(row.threadId);
|
|
28870
28778
|
const date = dayOf(row.createdAt);
|
|
28871
28779
|
if (!meta || !date) continue;
|
|
28872
28780
|
const payload = safeParse(row.payloadJson);
|
|
28873
|
-
|
|
28874
|
-
|
|
28875
|
-
|
|
28876
|
-
bucket.cachedInputTokens += num(payload?.cachedInputTokens);
|
|
28877
|
-
bucket.reasoningTokens += num(payload?.reasoningOutputTokens);
|
|
28781
|
+
if (bestCumulativeTotalTokenCount(payload) <= 0) continue;
|
|
28782
|
+
addCumulativeUsage(getBucket(date, meta.projectId, meta.model, meta.provider), payload);
|
|
28783
|
+
usedCumulativeFallback = true;
|
|
28878
28784
|
}
|
|
28785
|
+
const attribution = usedExactPerTurn && usedCumulativeFallback ? "mixed" : usedCumulativeFallback ? "thread-cumulative" : "per-turn-delta";
|
|
28879
28786
|
for (const row of turnRows) {
|
|
28880
28787
|
const meta = threadMeta.get(row.threadId);
|
|
28881
28788
|
if (!meta) continue;
|
|
@@ -28884,7 +28791,7 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28884
28791
|
const anchor = row.completedAt ?? row.startedAt;
|
|
28885
28792
|
const date = anchor ? dayOf(anchor) : null;
|
|
28886
28793
|
if (!date) continue;
|
|
28887
|
-
const bucket = getBucket(date, meta.projectId, meta.model);
|
|
28794
|
+
const bucket = getBucket(date, meta.projectId, meta.model, meta.provider);
|
|
28888
28795
|
if (row.completedAt) {
|
|
28889
28796
|
bucket.turns += 1;
|
|
28890
28797
|
if (row.startedAt) {
|
|
@@ -28904,14 +28811,14 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28904
28811
|
for (const row of toolRows) {
|
|
28905
28812
|
const meta = threadMeta.get(row.threadId);
|
|
28906
28813
|
if (!meta) continue;
|
|
28907
|
-
const bucket = getBucket(row.date, meta.projectId, meta.model);
|
|
28814
|
+
const bucket = getBucket(row.date, meta.projectId, meta.model, meta.provider);
|
|
28908
28815
|
bucket.toolUses += num(row.count);
|
|
28909
28816
|
}
|
|
28910
28817
|
for (const meta of threadMeta.values()) {
|
|
28911
28818
|
considerIso(meta.createdAt);
|
|
28912
28819
|
const date = dayOf(meta.createdAt);
|
|
28913
28820
|
if (!date) continue;
|
|
28914
|
-
getBucket(date, meta.projectId, meta.model).threadsCreated += 1;
|
|
28821
|
+
getBucket(date, meta.projectId, meta.model, meta.provider).threadsCreated += 1;
|
|
28915
28822
|
}
|
|
28916
28823
|
let wtCreated = 0;
|
|
28917
28824
|
let wtArchived = 0;
|
|
@@ -28958,8 +28865,9 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28958
28865
|
totals.deletions += bucket.deletions;
|
|
28959
28866
|
totals.commits += bucket.commits;
|
|
28960
28867
|
totals.pushes += bucket.pushes;
|
|
28868
|
+
totals.totalTokens += bucket.totalTokens;
|
|
28961
28869
|
}
|
|
28962
|
-
|
|
28870
|
+
dailyBuckets.sort((a, b) => a.date === b.date ? a.projectId === b.projectId ? (a.provider ?? "").localeCompare(b.provider ?? "") || a.model.localeCompare(b.model) : a.projectId.localeCompare(b.projectId) : a.date.localeCompare(b.date));
|
|
28963
28871
|
const projectTitle = /* @__PURE__ */ new Map();
|
|
28964
28872
|
for (const row of projectRows) projectTitle.set(row.projectId, row.title);
|
|
28965
28873
|
const projectIdsInData = /* @__PURE__ */ new Set();
|
|
@@ -28970,10 +28878,8 @@ const makeStatisticsQuery = effect.Effect.gen(function* () {
|
|
|
28970
28878
|
id,
|
|
28971
28879
|
title: projectTitle.get(id)?.trim() || id
|
|
28972
28880
|
}));
|
|
28973
|
-
|
|
28974
|
-
|
|
28975
|
-
provider
|
|
28976
|
-
} : { model });
|
|
28881
|
+
projects.sort((a, b) => a.title.localeCompare(b.title) || a.id.localeCompare(b.id));
|
|
28882
|
+
const models = [...modelRefs.values()].toSorted((a, b) => (a.provider ?? "").localeCompare(b.provider ?? "") || a.model.localeCompare(b.model));
|
|
28977
28883
|
return {
|
|
28978
28884
|
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
28979
28885
|
...earliest ? { earliestActivityAt: earliest } : {},
|
|
@@ -33402,6 +33308,13 @@ const makeWorktreeOperations = (deps) => {
|
|
|
33402
33308
|
onNone: () => failGitWorkflow(operation, `Worktree ${worktreeId} not found.`),
|
|
33403
33309
|
onSome: effect.Effect.succeed
|
|
33404
33310
|
})));
|
|
33311
|
+
const isProjectRootPath = (candidate, projectRoot) => {
|
|
33312
|
+
const normalize = (value) => {
|
|
33313
|
+
const resolved = node_path.default.resolve(value).replace(/[\\/]+$/g, "");
|
|
33314
|
+
return process.platform === "win32" || process.platform === "darwin" ? resolved.toLowerCase() : resolved;
|
|
33315
|
+
};
|
|
33316
|
+
return normalize(candidate) === normalize(projectRoot);
|
|
33317
|
+
};
|
|
33405
33318
|
const dispatchWorktreeCommand = (command, operation) => dispatchNormalizedCommand(command).pipe(effect.Effect.mapError((cause) => toGitManagerError(operation, "Failed to dispatch orchestration command.", cause)), effect.Effect.asVoid);
|
|
33406
33319
|
const launchSetupScriptForWorktreeInBackground = (input) => effect.Effect.gen(function* () {
|
|
33407
33320
|
const requestedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -33625,20 +33538,27 @@ const makeWorktreeOperations = (deps) => {
|
|
|
33625
33538
|
break;
|
|
33626
33539
|
}
|
|
33627
33540
|
}
|
|
33628
|
-
|
|
33629
|
-
|
|
33630
|
-
|
|
33631
|
-
|
|
33632
|
-
|
|
33541
|
+
let worktreePath;
|
|
33542
|
+
if (preparedWorktreePath !== null) {
|
|
33543
|
+
if (isProjectRootPath(preparedWorktreePath, project.workspaceRoot)) return yield* failGitWorkflow(operation, "Cannot create a worktree at the project root.");
|
|
33544
|
+
worktreePath = preparedWorktreePath;
|
|
33545
|
+
} else {
|
|
33546
|
+
const targetPath = resolveWorktreeCheckoutPath({
|
|
33633
33547
|
location: input.worktreeLocation,
|
|
33634
33548
|
appWorktreesRoot: config.worktreesDir,
|
|
33635
33549
|
projectId: input.projectId,
|
|
33636
33550
|
workspaceRoot: project.workspaceRoot,
|
|
33637
33551
|
projectMetadataDir: project.projectMetadataDir,
|
|
33638
33552
|
branchName: branch
|
|
33639
|
-
})
|
|
33640
|
-
|
|
33641
|
-
|
|
33553
|
+
});
|
|
33554
|
+
if (isProjectRootPath(targetPath, project.workspaceRoot)) return yield* failGitWorkflow(operation, "Cannot create a worktree at the project root.");
|
|
33555
|
+
worktreePath = (yield* gitWorkflow.createWorktree({
|
|
33556
|
+
cwd: project.workspaceRoot,
|
|
33557
|
+
refName,
|
|
33558
|
+
...newRefName !== void 0 ? { newRefName } : {},
|
|
33559
|
+
path: targetPath
|
|
33560
|
+
})).worktree.path;
|
|
33561
|
+
if (isProjectRootPath(worktreePath, project.workspaceRoot)) return yield* failGitWorkflow(operation, "Refusing to register a worktree that resolved to the project root.");
|
|
33642
33562
|
ownedWorktreePath = worktreePath;
|
|
33643
33563
|
if (newRefName !== void 0) ownedBranchName = newRefName;
|
|
33644
33564
|
}
|
|
@@ -33779,6 +33699,7 @@ const makeWorktreeOperations = (deps) => {
|
|
|
33779
33699
|
const worktree = yield* loadWorktreeForGitWorkflow(operation, input.worktreeId);
|
|
33780
33700
|
if (worktree.origin === "main") return yield* failGitWorkflow(operation, "Cannot delete the main worktree.");
|
|
33781
33701
|
const project = yield* loadProjectForGitWorkflow(operation, worktree.projectId);
|
|
33702
|
+
if (worktree.worktreePath !== null && isProjectRootPath(worktree.worktreePath, project.workspaceRoot)) return yield* failGitWorkflow(operation, "Cannot delete a worktree that points at the project root.");
|
|
33782
33703
|
if (input.force) {
|
|
33783
33704
|
if (worktree.worktreePath !== null) {
|
|
33784
33705
|
if ((0, node_fs.existsSync)(worktree.worktreePath)) return yield* failGitWorkflow(operation, "Cannot force delete: the worktree path still exists on disk. Use a regular delete instead.");
|
|
@@ -34552,6 +34473,16 @@ const makeOrchestrationHandlers = (ctx) => {
|
|
|
34552
34473
|
message: "Failed to load full thread diff",
|
|
34553
34474
|
cause
|
|
34554
34475
|
}))), { "rpc.aggregate": "orchestration" }),
|
|
34476
|
+
[require_collectUint8StreamText.ORCHESTRATION_WS_METHODS.searchThreadMessages]: (input) => observeRpcEffect(require_collectUint8StreamText.ORCHESTRATION_WS_METHODS.searchThreadMessages, projectionSnapshotQuery.searchThreadMessages({
|
|
34477
|
+
...input,
|
|
34478
|
+
limit: (0, effect_Number.clamp)(input.limit, {
|
|
34479
|
+
maximum: 50,
|
|
34480
|
+
minimum: 1
|
|
34481
|
+
})
|
|
34482
|
+
}).pipe(effect.Effect.mapError((cause) => new require_collectUint8StreamText.OrchestrationGetSnapshotError({
|
|
34483
|
+
message: "Failed to search thread messages",
|
|
34484
|
+
cause
|
|
34485
|
+
}))), { "rpc.aggregate": "orchestration" }),
|
|
34555
34486
|
[require_collectUint8StreamText.ORCHESTRATION_WS_METHODS.replayEvents]: (input) => observeRpcEffect(require_collectUint8StreamText.ORCHESTRATION_WS_METHODS.replayEvents, effect.Stream.runCollect(orchestrationEngine.readEvents((0, effect_Number.clamp)(input.fromSequenceExclusive, {
|
|
34556
34487
|
maximum: Number.MAX_SAFE_INTEGER,
|
|
34557
34488
|
minimum: 0
|
|
@@ -34611,7 +34542,22 @@ const makeOrchestrationHandlers = (ctx) => {
|
|
|
34611
34542
|
threadId: input.threadId,
|
|
34612
34543
|
position: input.position,
|
|
34613
34544
|
changedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
34614
|
-
}, "threads.setManualPosition").pipe(effect.Effect.as({}))), { "rpc.aggregate": "orchestration" })
|
|
34545
|
+
}, "threads.setManualPosition").pipe(effect.Effect.as({}))), { "rpc.aggregate": "orchestration" }),
|
|
34546
|
+
[require_collectUint8StreamText.WS_METHODS.searchThreadMessages]: (input) => observeRpcEffect(require_collectUint8StreamText.WS_METHODS.searchThreadMessages, ownerEffect(require_collectUint8StreamText.WS_METHODS.searchThreadMessages, effect.Effect.gen(function* () {
|
|
34547
|
+
const query = input.query.trim();
|
|
34548
|
+
if (query.length === 0) return { results: [] };
|
|
34549
|
+
return { results: yield* projectionSnapshotQuery.searchThreadMessages({
|
|
34550
|
+
query,
|
|
34551
|
+
...input.projectId ? { projectId: input.projectId } : {},
|
|
34552
|
+
limit: (0, effect_Number.clamp)(input.limit ?? 20, {
|
|
34553
|
+
maximum: 50,
|
|
34554
|
+
minimum: 1
|
|
34555
|
+
})
|
|
34556
|
+
}) };
|
|
34557
|
+
}).pipe(effect.Effect.mapError(() => new require_collectUint8StreamText.AuthRpcError({
|
|
34558
|
+
message: "Failed to search thread messages.",
|
|
34559
|
+
status: 403
|
|
34560
|
+
})))), { "rpc.aggregate": "orchestration" })
|
|
34615
34561
|
});
|
|
34616
34562
|
};
|
|
34617
34563
|
//#endregion
|
|
@@ -34893,7 +34839,7 @@ const makeSourceControlHandlers = (ctx) => {
|
|
|
34893
34839
|
})), { "rpc.aggregate": "source-control" }),
|
|
34894
34840
|
[require_collectUint8StreamText.WS_METHODS.sourceControlListIssueLabels]: ({ cwd }) => observeRpcEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListIssueLabels, ownerEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListIssueLabels, sourceControlRegistry.resolve({ cwd }).pipe(effect.Effect.flatMap((provider) => provider.listLabels({ cwd })))), { "rpc.aggregate": "source-control" }),
|
|
34895
34841
|
[require_collectUint8StreamText.WS_METHODS.sourceControlListIssueAssignees]: ({ cwd }) => observeRpcEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListIssueAssignees, ownerEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListIssueAssignees, sourceControlRegistry.resolve({ cwd }).pipe(effect.Effect.flatMap((provider) => provider.listAssignees({ cwd })))), { "rpc.aggregate": "source-control" }),
|
|
34896
|
-
[require_collectUint8StreamText.WS_METHODS.sourceControlListWorkflowRuns]: ({ cwd, pullRequestNumber, commitSha, limit }) => observeRpcEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListWorkflowRuns, ownerEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListWorkflowRuns, callSourceControlWorkflowMethod({
|
|
34842
|
+
[require_collectUint8StreamText.WS_METHODS.sourceControlListWorkflowRuns]: ({ cwd, pullRequestNumber, commitSha, branch, limit }) => observeRpcEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListWorkflowRuns, ownerEffect(require_collectUint8StreamText.WS_METHODS.sourceControlListWorkflowRuns, callSourceControlWorkflowMethod({
|
|
34897
34843
|
cwd,
|
|
34898
34844
|
operation: "listWorkflowRuns",
|
|
34899
34845
|
invoke: (provider) => {
|
|
@@ -34902,6 +34848,7 @@ const makeSourceControlHandlers = (ctx) => {
|
|
|
34902
34848
|
cwd,
|
|
34903
34849
|
...pullRequestNumber !== void 0 ? { pullRequestNumber } : {},
|
|
34904
34850
|
...commitSha !== void 0 ? { commitSha } : {},
|
|
34851
|
+
...branch !== void 0 ? { branch } : {},
|
|
34905
34852
|
...limit !== void 0 ? { limit } : {}
|
|
34906
34853
|
});
|
|
34907
34854
|
}
|
|
@@ -35668,7 +35615,7 @@ const TelemetryEnvConfig = effect.Config.all({
|
|
|
35668
35615
|
maxBufferedEvents: effect.Config.number("RYCO_TELEMETRY_MAX_BUFFERED_EVENTS").pipe(effect.Config.withDefault(1e3))
|
|
35669
35616
|
});
|
|
35670
35617
|
const makeAnalyticsService = effect.Effect.gen(function* () {
|
|
35671
|
-
const telemetryConfig = yield* TelemetryEnvConfig
|
|
35618
|
+
const telemetryConfig = yield* TelemetryEnvConfig;
|
|
35672
35619
|
const httpClient = yield* effect_unstable_http.HttpClient.HttpClient;
|
|
35673
35620
|
const serverConfig = yield* require_Metrics.ServerConfig;
|
|
35674
35621
|
const identifier = yield* getTelemetryIdentifier;
|
|
@@ -50605,8 +50552,20 @@ const WorkspaceRootLookupInput = effect.Schema.Struct({ workspaceRoot: effect.Sc
|
|
|
50605
50552
|
const ProjectIdLookupInput = effect.Schema.Struct({ projectId: require_collectUint8StreamText.ProjectId });
|
|
50606
50553
|
const ThreadIdLookupInput = effect.Schema.Struct({ threadId: require_collectUint8StreamText.ThreadId });
|
|
50607
50554
|
const WorktreeIdLookupInput = effect.Schema.Struct({ worktreeId: require_collectUint8StreamText.WorktreeId });
|
|
50555
|
+
const ThreadMessageSearchQueryInput = effect.Schema.Struct({
|
|
50556
|
+
likePattern: effect.Schema.String,
|
|
50557
|
+
projectId: effect.Schema.NullOr(require_collectUint8StreamText.ProjectId),
|
|
50558
|
+
limit: require_collectUint8StreamText.NonNegativeInt
|
|
50559
|
+
});
|
|
50608
50560
|
const ProjectionProjectLookupRowSchema = ProjectionProjectDbRowSchema;
|
|
50609
50561
|
const ProjectionThreadIdLookupRowSchema = effect.Schema.Struct({ threadId: require_collectUint8StreamText.ThreadId });
|
|
50562
|
+
const ProjectionThreadMessageSearchRowSchema = effect.Schema.Struct({
|
|
50563
|
+
threadId: require_collectUint8StreamText.ThreadId,
|
|
50564
|
+
messageId: require_collectUint8StreamText.MessageId,
|
|
50565
|
+
text: effect.Schema.String,
|
|
50566
|
+
createdAt: require_collectUint8StreamText.IsoDateTime,
|
|
50567
|
+
updatedAt: require_collectUint8StreamText.IsoDateTime
|
|
50568
|
+
});
|
|
50610
50569
|
const ProjectionThreadCheckpointContextThreadRowSchema = effect.Schema.Struct({
|
|
50611
50570
|
threadId: require_collectUint8StreamText.ThreadId,
|
|
50612
50571
|
projectId: require_collectUint8StreamText.ProjectId,
|
|
@@ -50638,6 +50597,20 @@ function computeSnapshotSequence(stateRows) {
|
|
|
50638
50597
|
}
|
|
50639
50598
|
return Number.isFinite(minSequence) ? minSequence : 0;
|
|
50640
50599
|
}
|
|
50600
|
+
function escapeSqlLikePattern(value) {
|
|
50601
|
+
return value.replace(/[\\%_]/g, (match) => `\\${match}`);
|
|
50602
|
+
}
|
|
50603
|
+
function buildMessageSearchSnippet(input) {
|
|
50604
|
+
const maxLength = input.maxLength ?? 180;
|
|
50605
|
+
const normalizedQuery = input.query.trim().toLowerCase();
|
|
50606
|
+
const normalizedText = input.text.toLowerCase();
|
|
50607
|
+
const matchIndex = normalizedQuery.length > 0 ? normalizedText.indexOf(normalizedQuery) : -1;
|
|
50608
|
+
const contextLength = Math.floor(maxLength / 2);
|
|
50609
|
+
const start = matchIndex <= contextLength ? 0 : Math.max(0, matchIndex - Math.floor(contextLength / 2));
|
|
50610
|
+
const end = Math.min(input.text.length, start + maxLength);
|
|
50611
|
+
const snippet = input.text.slice(start, end).replace(/\s+/g, " ").trim();
|
|
50612
|
+
return `${start > 0 ? "..." : ""}${snippet}${end < input.text.length ? "..." : ""}`;
|
|
50613
|
+
}
|
|
50641
50614
|
function mapLatestTurn(row) {
|
|
50642
50615
|
return {
|
|
50643
50616
|
turnId: row.turnId,
|
|
@@ -51107,6 +51080,30 @@ const makeProjectionSnapshotQuery = effect.Effect.gen(function* () {
|
|
|
51107
51080
|
FROM projection_thread_messages
|
|
51108
51081
|
WHERE thread_id = ${threadId}
|
|
51109
51082
|
ORDER BY created_at ASC, message_id ASC
|
|
51083
|
+
`
|
|
51084
|
+
});
|
|
51085
|
+
const searchThreadMessageRows = effect_unstable_sql_SqlSchema.findAll({
|
|
51086
|
+
Request: ThreadMessageSearchQueryInput,
|
|
51087
|
+
Result: ProjectionThreadMessageSearchRowSchema,
|
|
51088
|
+
execute: ({ likePattern, projectId, limit }) => sql`
|
|
51089
|
+
SELECT
|
|
51090
|
+
messages.thread_id AS "threadId",
|
|
51091
|
+
messages.message_id AS "messageId",
|
|
51092
|
+
messages.text,
|
|
51093
|
+
messages.created_at AS "createdAt",
|
|
51094
|
+
messages.updated_at AS "updatedAt"
|
|
51095
|
+
FROM projection_thread_messages AS messages
|
|
51096
|
+
INNER JOIN projection_threads AS threads
|
|
51097
|
+
ON threads.thread_id = messages.thread_id
|
|
51098
|
+
INNER JOIN projection_projects AS projects
|
|
51099
|
+
ON projects.project_id = threads.project_id
|
|
51100
|
+
WHERE threads.deleted_at IS NULL
|
|
51101
|
+
AND projects.deleted_at IS NULL
|
|
51102
|
+
AND messages.role IN ('user', 'assistant')
|
|
51103
|
+
AND (${projectId} IS NULL OR threads.project_id = ${projectId})
|
|
51104
|
+
AND lower(messages.text) LIKE ${likePattern} ESCAPE '\\'
|
|
51105
|
+
ORDER BY messages.created_at DESC, messages.message_id DESC
|
|
51106
|
+
LIMIT ${limit}
|
|
51110
51107
|
`
|
|
51111
51108
|
});
|
|
51112
51109
|
const listThreadProposedPlanRowsByThread = effect_unstable_sql_SqlSchema.findAll({
|
|
@@ -51695,6 +51692,24 @@ const makeProjectionSnapshotQuery = effect.Effect.gen(function* () {
|
|
|
51695
51692
|
};
|
|
51696
51693
|
return effect.Option.some(yield* decodeThread(thread).pipe(effect.Effect.mapError(toPersistenceDecodeError("ProjectionSnapshotQuery.getThreadDetailById:decodeThread"))));
|
|
51697
51694
|
});
|
|
51695
|
+
const searchThreadMessages = (input) => {
|
|
51696
|
+
const query = input.query.trim();
|
|
51697
|
+
if (query.length === 0) return effect.Effect.succeed([]);
|
|
51698
|
+
const limit = Math.min(Math.max(1, input.limit), 50);
|
|
51699
|
+
return searchThreadMessageRows({
|
|
51700
|
+
likePattern: `%${escapeSqlLikePattern(query.toLowerCase())}%`,
|
|
51701
|
+
projectId: input.projectId ?? null,
|
|
51702
|
+
limit
|
|
51703
|
+
}).pipe(effect.Effect.mapError(toPersistenceSqlOrDecodeError("ProjectionSnapshotQuery.searchThreadMessages:query", "ProjectionSnapshotQuery.searchThreadMessages:decodeRows")), effect.Effect.map((rows) => rows.map((row) => ({
|
|
51704
|
+
threadId: row.threadId,
|
|
51705
|
+
messageId: row.messageId,
|
|
51706
|
+
snippet: buildMessageSearchSnippet({
|
|
51707
|
+
text: row.text,
|
|
51708
|
+
query
|
|
51709
|
+
}),
|
|
51710
|
+
timestamp: row.createdAt
|
|
51711
|
+
}))));
|
|
51712
|
+
};
|
|
51698
51713
|
return {
|
|
51699
51714
|
getCommandReadModel,
|
|
51700
51715
|
getSnapshot,
|
|
@@ -51707,7 +51722,8 @@ const makeProjectionSnapshotQuery = effect.Effect.gen(function* () {
|
|
|
51707
51722
|
getThreadCheckpointContext,
|
|
51708
51723
|
getThreadShellById,
|
|
51709
51724
|
getWorktreeShellById,
|
|
51710
|
-
getThreadDetailById
|
|
51725
|
+
getThreadDetailById,
|
|
51726
|
+
searchThreadMessages
|
|
51711
51727
|
};
|
|
51712
51728
|
});
|
|
51713
51729
|
const OrchestrationProjectionSnapshotQueryLive = effect.Layer.effect(ProjectionSnapshotQuery, makeProjectionSnapshotQuery);
|