local-operator-ui 0.34.49 → 0.34.50
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/out/main/index.js +167 -75
- package/out/preload/index.js +46 -1
- package/out/renderer/assets/{_basePickBy-Coq1U1Is.js → _basePickBy-CSwEaqGH.js} +1 -1
- package/out/renderer/assets/{_baseUniq-CN5nbj15.js → _baseUniq-ClgJBEui.js} +1 -1
- package/out/renderer/assets/{agent-details-page-BOHG1UL8.js → agent-details-page-v9g-0tfN.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-lDe6m3U_.js → agent-hub-page-i9l6Uv6w.js} +2 -2
- package/out/renderer/assets/agents-page-BEY9jzic.js +7 -0
- package/out/renderer/assets/{arc-CyEksofH.js → arc-Bp2vhvT8.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-o2ZHU4e3.js → architectureDiagram-IEHRJDOE-mnxRnj85.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-B0Yyp4_C.js → blockDiagram-JOT3LUYC-Cy0bUbS1.js} +1 -1
- package/out/renderer/assets/{book-open-CEakesEi.js → book-open-CwvcZLaU.js} +1 -1
- package/out/renderer/assets/browser-page-ffFPxvmW.js +1 -0
- package/out/renderer/assets/{browser-webauthn-prompt-Dq82YVua.js → browser-webauthn-prompt-CVfiiYOR.js} +1 -1
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-DLUNsMlf.js → c4Diagram-VJAJSXHY-BLgwrX8R.js} +1 -1
- package/out/renderer/assets/channel-H9kkayno.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-TEJuQZ1Y.js → chunk-4BMEZGHF-BKbXn5lz.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-B_dFl8CN.js → chunk-A2AXSNBT-huAEN9rv.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-BZoQ5TO6.js → chunk-AEK57VVT-CLlndZHa.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-D1bYNZJL.js → chunk-D6G4REZN-BQoQzkpH.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-DbkFvpUt.js → chunk-RZ5BOZE2-BS-67Htk.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-C0c85hT-.js → chunk-XZIHB7SX-B413LPHS.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-CBQ7Tucl.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-CBQ7Tucl.js +1 -0
- package/out/renderer/assets/clone-D41kSeCw.js +1 -0
- package/out/renderer/assets/{console-mirror-DDhXu5hQ.js → console-mirror-atIrzrKQ.js} +1 -1
- package/out/renderer/assets/{consoleCapture-DomsRGWw.js → consoleCapture-qbkQDsbk.js} +1 -1
- package/out/renderer/assets/{conversation-input-sync-B3FVv0Mq.js → conversation-input-sync-B0j1FBwv.js} +253 -253
- package/out/renderer/assets/{dagre-OKDRZEBW-CAb1XIuS.js → dagre-OKDRZEBW-fZfOS2dk.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-CAh7vH7L.js → diagram-SSKATNLV-alPaSAsa.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-CU4FF4Qr.js → diagram-VNBRO52H-12nwGS_H.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-CbnNz_kj.js → erDiagram-Q7BY3M3F-C0VQmN1m.js} +1 -1
- package/out/renderer/assets/{error-boundary-etstfCzN.js → error-boundary-C0P2AR1t.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-BB6aJVKV.js → flowDiagram-4HSFHLVR-yAA_68VC.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-CtOJM4d7.js → ganttDiagram-APWFNJXF-Cbk4f_uq.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-DvrevAjH.js → gitGraphDiagram-7IBYFJ6S-C9o_Zz5H.js} +1 -1
- package/out/renderer/assets/{graph-DOR9Sgwh.js → graph-DUT-8BVr.js} +1 -1
- package/out/renderer/assets/{index-5vl5RXGq.js → index-B0uYixKz.js} +1 -1
- package/out/renderer/assets/index-CNvQ9FNg.js +57 -0
- package/out/renderer/assets/{index-CZ5usiad.js → index-Cun5ZiJ8.js} +1 -1
- package/out/renderer/assets/index-D-RvJY1X.css +1 -0
- package/out/renderer/assets/{index-9_-S4Njy.js → index-lYsxfVy0.js} +184 -184
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-CTd32x3B.js → infoDiagram-PH2N3AL5-C4KvWN4_.js} +1 -1
- package/out/renderer/assets/{installer-CjbOLDvI.js → installer-CraQMM0S.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-2BsbTilL.js → journeyDiagram-U35MCT3I-ClDn4ZZ_.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DoYAcNl0.js → kanban-definition-NDS4AKOZ-DkZ2IqSy.js} +1 -1
- package/out/renderer/assets/{layout-DSk91znb.js → layout-B2ULRxc7.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-BGSPncrN.js → legacy-agents-page-BHmNHE9c.js} +5 -5
- package/out/renderer/assets/{mermaid.core-BqK7XNWH.js → mermaid.core-DwfN45qZ.js} +5 -5
- package/out/renderer/assets/{mesh-page-BxEA5Aan.js → mesh-page-BTaA4LA9.js} +1 -1
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-HV-ovM7g.js → mindmap-definition-ALO5MXBD-BaruaCsh.js} +1 -1
- package/out/renderer/assets/{mini-Bco2ITLo.js → mini-y-vZHWd4.js} +1 -1
- package/out/renderer/assets/{notebook-pen-DsGb6zKu.js → notebook-pen-Bufwjei-.js} +1 -1
- package/out/renderer/assets/{org-access-B_xqEqnd.js → org-access-BHVNNfiF.js} +1 -1
- package/out/renderer/assets/{org-surface-gate-D4SilXIt.js → org-surface-gate-Bu2ppyy0.js} +1 -1
- package/out/renderer/assets/{page-header-DZ04Whs5.js → page-header-CzdhP1vT.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-BArx4Jik.js → pieDiagram-IB7DONF6-D6b-IA5_.js} +1 -1
- package/out/renderer/assets/{projects-page-DABVK4s_.js → projects-page-B2p6409_.js} +1 -1
- package/out/renderer/assets/{publication-validation-BmkCCv-H.js → publication-validation-DV7MFEnt.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-Dmmo_urD.js → quadrantDiagram-7GDLP6J5-BohSnqJt.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-D8Sc1Ajv.js → radar-MK3ICKWK-B8IyfRFK.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-BmQt2D1Y.js → radient-auth-buttons-CeAmJxoU.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-BU04-wPA.js → requirementDiagram-KVF5MWMF-CjxwfVmm.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-CIQO7kso.js → sankeyDiagram-QLVOVGJD-Dmb58RjS.js} +1 -1
- package/out/renderer/assets/{schedules-page-DllGJFS2.js → schedules-page-Dujbkmf1.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-BN2soxj_.js → sequenceDiagram-X6HHIX6F-H7CVraeF.js} +1 -1
- package/out/renderer/assets/{settings-page-DKzDa5P5.js → settings-page-tA2lkM1h.js} +1 -1
- package/out/renderer/assets/{stateDiagram-DGXRK772-bGNaZvy4.js → stateDiagram-DGXRK772-DJN0Rf3F.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DTfdA0h1.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-DmM_eb2d.js → timeline-definition-BDJGKUSR-0g8a7xFr.js} +1 -1
- package/out/renderer/assets/ui-preferences-store-B92Xh3eA.js +1 -0
- package/out/renderer/assets/{use-download-agent-mutation-CXv_tRQE.js → use-download-agent-mutation-Doz1TzJr.js} +4 -4
- package/out/renderer/assets/{use-memberships-query-C4IVeIBl.js → use-memberships-query-CjMpjmh2.js} +1 -1
- package/out/renderer/assets/{use-session-snapshot-CrOrWGgL.js → use-session-snapshot-CoJrqYcV.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-CbbQZrKE.js → xychartDiagram-VJFVF3MP-Cn4PWpai.js} +1 -1
- package/out/renderer/console-capture.html +5 -5
- package/out/renderer/index.html +7 -7
- package/out/renderer/installer.html +4 -4
- package/out/renderer/mini.html +7 -7
- package/package.json +2 -2
- package/out/renderer/assets/agents-page-CS2ctxLL.js +0 -7
- package/out/renderer/assets/browser-page-CjbkyuiR.js +0 -1
- package/out/renderer/assets/channel-BrqzOdfK.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-C4Q7B2pX.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-C4Q7B2pX.js +0 -1
- package/out/renderer/assets/clone-T21nSsyt.js +0 -1
- package/out/renderer/assets/index-CftawgM9.js +0 -57
- package/out/renderer/assets/index-VwZaZzVv.css +0 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CNVQhmQM.js +0 -1
- package/out/renderer/assets/ui-preferences-store-Byw1dJtt.js +0 -1
package/out/main/index.js
CHANGED
|
@@ -108,6 +108,16 @@ const THREAD_FIND_MAX_CHARS = 256;
|
|
|
108
108
|
const THREAD_FIND_DEFAULT_LIMIT = 100;
|
|
109
109
|
const THREAD_FIND_MAX_LIMIT = 200;
|
|
110
110
|
const DESKTOP_SYSTEM_PROMPT_MAX_CHARS = 1e6;
|
|
111
|
+
const memberEffort = zod.z.enum([
|
|
112
|
+
"auto",
|
|
113
|
+
"none",
|
|
114
|
+
"minimal",
|
|
115
|
+
"low",
|
|
116
|
+
"medium",
|
|
117
|
+
"high",
|
|
118
|
+
"xhigh",
|
|
119
|
+
"max"
|
|
120
|
+
]);
|
|
111
121
|
const profileName = zod.z.string().min(1).max(128).refine(
|
|
112
122
|
(name) => name !== "." && name !== ".." && !name.includes("/") && !name.includes("\\") && [...name].every(
|
|
113
123
|
(character) => character.charCodeAt(0) >= 32 && character.charCodeAt(0) !== 127
|
|
@@ -145,7 +155,23 @@ const teamFields = zod.z.object({
|
|
|
145
155
|
zod.z.object({
|
|
146
156
|
role: profileName,
|
|
147
157
|
count: zod.z.number().int().min(1).max(16),
|
|
148
|
-
kind: zod.z.enum(["agent", "team"])
|
|
158
|
+
kind: zod.z.enum(["agent", "team"]),
|
|
159
|
+
/*
|
|
160
|
+
* THE SLOT'S MODEL OVERRIDES (team member tiers, P3). `null` and
|
|
161
|
+
* absent mean the same thing on this wire - no override, fall
|
|
162
|
+
* through to the next layer - and the pair is spelled with the SAME
|
|
163
|
+
* words the backend's `TeamMember` accepts (`CANONICAL_EFFORT_TIERS`
|
|
164
|
+
* and `TIER_EFFORTS`), so a value this client can send cannot be one
|
|
165
|
+
* the server refuses. `null` is accepted rather than omitted alone
|
|
166
|
+
* because a cleared field is what a form has in hand.
|
|
167
|
+
*
|
|
168
|
+
* Enumerated rather than free text for the reason the tier list is:
|
|
169
|
+
* this client is not the only writer (the team tool, a hand-edited
|
|
170
|
+
* `team.yml`), and a membership gate here is what keeps a typo out of
|
|
171
|
+
* a roster that would otherwise be silently written and ignored.
|
|
172
|
+
*/
|
|
173
|
+
tier: zod.z.enum(["lo", "med", "hi"]).nullable().optional(),
|
|
174
|
+
effort: memberEffort.nullable().optional()
|
|
149
175
|
}).strict()
|
|
150
176
|
).max(128).optional(),
|
|
151
177
|
instructions: zod.z.string().max(8e3).optional(),
|
|
@@ -474,6 +500,19 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
474
500
|
}).strict(),
|
|
475
501
|
zod.z.object({ op: zod.z.literal("teams.list") }).strict(),
|
|
476
502
|
zod.z.object({ op: zod.z.literal("teams.get"), name: profileName }).strict(),
|
|
503
|
+
/*
|
|
504
|
+
* THE RESOLVED READING of every slot's model and reasoning effort, with the
|
|
505
|
+
* layer each came from - the team editor's answer to "why is this member on
|
|
506
|
+
* that model". A READ: it resolves the same precedence a launch does without
|
|
507
|
+
* launching anything and writes nothing.
|
|
508
|
+
*
|
|
509
|
+
* ADDITIVE, and its absence is a capability signal rather than an error: a
|
|
510
|
+
* backend older than the route answers 404, which is how the editor learns to
|
|
511
|
+
* hide its override controls (the same status `backendErrorKind` classifies as
|
|
512
|
+
* `outdated`). Such a server also ignores the member keys above, which is why
|
|
513
|
+
* the hidden editor is the honest reading rather than a lost edit.
|
|
514
|
+
*/
|
|
515
|
+
zod.z.object({ op: zod.z.literal("teams.effective"), name: profileName }).strict(),
|
|
477
516
|
/*
|
|
478
517
|
* Team CAS is the same optional opaque echo as the profile arm: absent/null is
|
|
479
518
|
* the legacy unconditional write, a supplied stale/malformed value is refused
|
|
@@ -2583,6 +2622,12 @@ const DESKTOP_REFUSAL_CODE = {
|
|
|
2583
2622
|
*/
|
|
2584
2623
|
transportFailed: "transport.failed"
|
|
2585
2624
|
};
|
|
2625
|
+
zod.z.object({
|
|
2626
|
+
data: zod.z.object({
|
|
2627
|
+
aside_id: zod.z.string().optional(),
|
|
2628
|
+
status: zod.z.union([zod.z.enum(["adopted", "queued"]), zod.z.string()]).optional()
|
|
2629
|
+
}).passthrough()
|
|
2630
|
+
}).passthrough();
|
|
2586
2631
|
const DESKTOP_MACHINE_DETAIL = {
|
|
2587
2632
|
/*
|
|
2588
2633
|
* NOTE for whoever greps for the ownership instruction this change removed:
|
|
@@ -2801,6 +2846,7 @@ const READ_ONLY_OPS = /* @__PURE__ */ new Set([
|
|
|
2801
2846
|
"sessions.variables.list",
|
|
2802
2847
|
"skills.list",
|
|
2803
2848
|
"subagents.transcript",
|
|
2849
|
+
"teams.effective",
|
|
2804
2850
|
"teams.get",
|
|
2805
2851
|
"teams.list",
|
|
2806
2852
|
// The two phone-setup observations change nothing on the server; `tunnel.setup.run`
|
|
@@ -3180,6 +3226,11 @@ function desktopEndpoint(request) {
|
|
|
3180
3226
|
path: `/v1/desktop/teams/${encodeURIComponent(request.name)}`,
|
|
3181
3227
|
method: "GET"
|
|
3182
3228
|
};
|
|
3229
|
+
case "teams.effective":
|
|
3230
|
+
return {
|
|
3231
|
+
path: `/v1/desktop/teams/${encodeURIComponent(request.name)}/effective`,
|
|
3232
|
+
method: "GET"
|
|
3233
|
+
};
|
|
3183
3234
|
case "teams.create":
|
|
3184
3235
|
return {
|
|
3185
3236
|
path: "/v1/desktop/teams",
|
|
@@ -31690,6 +31741,46 @@ const enUiAgentsDialogs = {
|
|
|
31690
31741
|
"ui.agents.dialogs.import.invalid_zip": "Only ZIP files are supported"
|
|
31691
31742
|
};
|
|
31692
31743
|
const enUiAgents = {};
|
|
31744
|
+
const enUiAgentsModels = {
|
|
31745
|
+
"ui.agents.models.reading.title": "Model and effort",
|
|
31746
|
+
"ui.agents.models.reading.description": "What each member runs on, and which layer set it.",
|
|
31747
|
+
"ui.agents.models.reading.member_col": "Member",
|
|
31748
|
+
"ui.agents.models.reading.model_col": "Model",
|
|
31749
|
+
"ui.agents.models.reading.effort_col": "Effort",
|
|
31750
|
+
"ui.agents.models.reading.session_model": "the launching session's model",
|
|
31751
|
+
"ui.agents.models.reading.not_resolved": "not resolved",
|
|
31752
|
+
"ui.agents.models.reading.tier_layer": "tier {tier} ({source})",
|
|
31753
|
+
"ui.agents.models.reading.effort_auto": "auto",
|
|
31754
|
+
"ui.agents.models.reading.effort_clamped": "{requested} → {value}",
|
|
31755
|
+
"ui.agents.models.reading.effort_default": "model default",
|
|
31756
|
+
"ui.agents.models.reading.unavailable": "{member} cannot start: {reason}",
|
|
31757
|
+
"ui.agents.models.reading.unavailable_editor": "Saved setting — {member} cannot start: {reason}",
|
|
31758
|
+
"ui.agents.models.reading.unavailable_hint": "Add the tier in Settings.",
|
|
31759
|
+
"ui.agents.models.reading.read_failed": "The effective models could not be read, so overrides cannot be edited.",
|
|
31760
|
+
"ui.agents.models.reading.try_again": "Try again",
|
|
31761
|
+
"ui.agents.models.reading.refreshing": "Updating…",
|
|
31762
|
+
"ui.agents.models.reading.no_probe_hint": "Save the team to set per-member model overrides.",
|
|
31763
|
+
"ui.agents.models.reading.saved_label": "Saved",
|
|
31764
|
+
"ui.agents.models.reading.model_cell": "Model: {value}",
|
|
31765
|
+
"ui.agents.models.reading.model_cell_layer": "Model: {value} ({layer})",
|
|
31766
|
+
"ui.agents.models.reading.effort_cell": "Effort: {value}",
|
|
31767
|
+
"ui.agents.models.reading.effort_cell_layer": "Effort: {value} ({layer})",
|
|
31768
|
+
"ui.agents.models.source.team": "from this team",
|
|
31769
|
+
"ui.agents.models.source.row": "from the agent",
|
|
31770
|
+
"ui.agents.models.source.none": "no override",
|
|
31771
|
+
"ui.agents.models.source.tier": "the tier map",
|
|
31772
|
+
"ui.agents.models.source.session": "the session",
|
|
31773
|
+
"ui.agents.models.source.model_default": "the model's default",
|
|
31774
|
+
"ui.agents.models.override.scope_hint": "A member's override here applies to this team only, and takes priority over the agent's own tier and effort.",
|
|
31775
|
+
"ui.agents.models.override.tier_label": "Effort tier for {member}",
|
|
31776
|
+
"ui.agents.models.override.tier_field": "Effort tier",
|
|
31777
|
+
"ui.agents.models.override.effort_label": "Reasoning effort for {member}",
|
|
31778
|
+
"ui.agents.models.override.effort_field": "Reasoning effort",
|
|
31779
|
+
"ui.agents.models.override.inherit_tier": "Inherit (agent's tier)",
|
|
31780
|
+
"ui.agents.models.override.inherit_effort": "Inherit (agent's effort)",
|
|
31781
|
+
"ui.agents.models.override.auto": "Auto (model default)",
|
|
31782
|
+
"ui.agents.models.pin_reach": "This effort tier is used by {count, plural, one {{count, number, ::group-off} team} other {{count, number, ::group-off} teams}}: {teams}"
|
|
31783
|
+
};
|
|
31693
31784
|
const enUiAgentsNavigation = {
|
|
31694
31785
|
"ui.agents.navigation.updates.preview.empty": "No differences to show: the hub's version matches yours.",
|
|
31695
31786
|
"ui.agents.navigation.updates.preview.local": "Yours",
|
|
@@ -32108,7 +32199,7 @@ const enUiCanvas = {
|
|
|
32108
32199
|
"ui.canvas.files.error": "Could not load session files",
|
|
32109
32200
|
"ui.canvas.files.remote": "Remote files are unavailable here",
|
|
32110
32201
|
"ui.canvas.files.inSession": "In session",
|
|
32111
|
-
"ui.canvas.files.count": "{count, plural, one {
|
|
32202
|
+
"ui.canvas.files.count": "{count, plural, one {{count, number, ::group-off} file} other {{count, number, ::group-off} files}}",
|
|
32112
32203
|
"ui.canvas.files.narrowCount": "{shown} of {total} files",
|
|
32113
32204
|
"ui.canvas.files.gone": "No longer in the session",
|
|
32114
32205
|
"ui.canvas.files.earlier": "Search earlier messages",
|
|
@@ -32150,7 +32241,7 @@ const enUiChatSidebarView = {
|
|
|
32150
32241
|
"ui.chat.sidebar_view.clock_hint": "Dates and ordering follow the selected clock.",
|
|
32151
32242
|
"ui.chat.sidebar_view.move_up": "Move {section} up",
|
|
32152
32243
|
"ui.chat.sidebar_view.move_down": "Move {section} down",
|
|
32153
|
-
"ui.chat.sidebar_view.hidden": "{count, plural, one {
|
|
32244
|
+
"ui.chat.sidebar_view.hidden": "{count, plural, one {{count, number, ::group-off} section hidden} other {{count, number, ::group-off} sections hidden}}",
|
|
32154
32245
|
"ui.chat.sidebar_view.section.pinned": "Pinned",
|
|
32155
32246
|
"ui.chat.sidebar_view.section.running": "Running",
|
|
32156
32247
|
"ui.chat.sidebar_view.section.today": "Today",
|
|
@@ -32547,21 +32638,21 @@ const enUiCommonUpdates = {
|
|
|
32547
32638
|
"ui.common.updates.update_quiet_indicator.application_update": "Application update",
|
|
32548
32639
|
"ui.common.updates.update_quiet_indicator.dismiss_update_notice": "Dismiss update notice",
|
|
32549
32640
|
"ui.common.updates.update_quiet_indicator.server_update": "Server update",
|
|
32550
|
-
"ui.common.updates.wait.minutes": "Waiting {minutes, plural, one {
|
|
32551
|
-
"ui.common.updates.wait.minutes_seconds": "Waiting {minutes, plural, one {
|
|
32552
|
-
"ui.common.updates.wait.seconds": "Waiting {seconds, plural, one {
|
|
32641
|
+
"ui.common.updates.wait.minutes": "Waiting {minutes, plural, one {{minutes, number, ::group-off} minute} other {{minutes, number, ::group-off} minutes}} so far",
|
|
32642
|
+
"ui.common.updates.wait.minutes_seconds": "Waiting {minutes, plural, one {{minutes, number, ::group-off} minute} other {{minutes, number, ::group-off} minutes}} {seconds, plural, one {{seconds, number, ::group-off} second} other {{seconds, number, ::group-off} seconds}} so far",
|
|
32643
|
+
"ui.common.updates.wait.seconds": "Waiting {seconds, plural, one {{seconds, number, ::group-off} second} other {{seconds, number, ::group-off} seconds}} so far"
|
|
32553
32644
|
};
|
|
32554
32645
|
const enUiConsole = {
|
|
32555
|
-
"ui.console.capacity.summary": "{live, number} live of {limit, number} in the app",
|
|
32556
|
-
"ui.console.capacity.summary_compact": "{live, number}/{limit, number} · {archived, number} kept",
|
|
32557
|
-
"ui.console.capacity.summary_compact_bare": "{live, number}/{limit, number}",
|
|
32558
|
-
"ui.console.capacity.archived": " · {archived, number} kept",
|
|
32646
|
+
"ui.console.capacity.summary": "{live, number, ::group-off} live of {limit, number, ::group-off} in the app",
|
|
32647
|
+
"ui.console.capacity.summary_compact": "{live, number, ::group-off}/{limit, number, ::group-off} · {archived, number, ::group-off} kept",
|
|
32648
|
+
"ui.console.capacity.summary_compact_bare": "{live, number, ::group-off}/{limit, number, ::group-off}",
|
|
32649
|
+
"ui.console.capacity.archived": " · {archived, number, ::group-off} kept",
|
|
32559
32650
|
"ui.console.capacity.full": " · full",
|
|
32560
32651
|
"ui.console.capacity.help": "App-wide counts, across every conversation. Kept history does not use a process slot.",
|
|
32561
|
-
"ui.console.capacity.resources": "Modeled managed storage: {memory, number} MiB. Logs: {logs, number} MiB. Pending output: {pending, number} MiB. Terminal cells: {cells, number}. Protected terminals: {protected, number}. This excludes child-process memory.",
|
|
32652
|
+
"ui.console.capacity.resources": "Modeled managed storage: {memory, number, ::group-off} MiB. Logs: {logs, number, ::group-off} MiB. Pending output: {pending, number, ::group-off} MiB. Terminal cells: {cells, number, ::group-off}. Protected terminals: {protected, number, ::group-off}. This excludes child-process memory.",
|
|
32562
32653
|
"ui.console.cleanup.label": "Clear finished agent terminals",
|
|
32563
32654
|
"ui.console.cleanup.help": "Clears finished agent terminals in this conversation. Finished ones the agent asked to keep stay on disk; the rest are closed and their output is not kept. Terminals you opened, and any in use, are left alone.",
|
|
32564
|
-
"ui.console.cleanup.result": "Cleared {released, plural, one {
|
|
32655
|
+
"ui.console.cleanup.result": "Cleared {released, plural, one {{released, number, ::group-off} finished agent terminal} other {{released, number, ::group-off} finished agent terminals}}. {protected, plural, =0 {} one {{protected, number, ::group-off} is still in use and was left open.} other {{protected, number, ::group-off} are still in use and were left open.}}",
|
|
32565
32656
|
"ui.console.cleanup.result_none": "Nothing to clear — no finished agent terminals in this conversation.",
|
|
32566
32657
|
"ui.console.dismiss_history": "Clear terminal and delete retained output",
|
|
32567
32658
|
"ui.console.dismiss.body": "Clearing this terminal deletes its retained output from disk, so a relaunch cannot restore it.",
|
|
@@ -32600,9 +32691,9 @@ const enUiConsole = {
|
|
|
32600
32691
|
"ui.console.tab.ended": "ended",
|
|
32601
32692
|
"ui.console.tab.agent_opened": "An agent opened this console",
|
|
32602
32693
|
"ui.console.tab.agent_typed": "An agent has typed into this console",
|
|
32603
|
-
"ui.console.tab.close_label": "Close {title}, tab {index, number} of {total, number}",
|
|
32604
|
-
"ui.console.tab.clear_label": "Clear {title}, tab {index, number} of {total, number}",
|
|
32605
|
-
"ui.console.tab.clear_label_retained": "Clear {title}, tab {index, number} of {total, number} — deletes retained output",
|
|
32694
|
+
"ui.console.tab.close_label": "Close {title}, tab {index, number, ::group-off} of {total, number, ::group-off}",
|
|
32695
|
+
"ui.console.tab.clear_label": "Clear {title}, tab {index, number, ::group-off} of {total, number, ::group-off}",
|
|
32696
|
+
"ui.console.tab.clear_label_retained": "Clear {title}, tab {index, number, ::group-off} of {total, number, ::group-off} — deletes retained output",
|
|
32606
32697
|
"ui.console.secure_toggle.stop": "Stop secure input",
|
|
32607
32698
|
"ui.console.secure_toggle.start": "Secure input",
|
|
32608
32699
|
"ui.console.secure_toggle.start_tooltip": "Secure input: stop recording this terminal",
|
|
@@ -32718,7 +32809,7 @@ const enUiHub = {
|
|
|
32718
32809
|
"ui.hub.skills.publish_title": "Publish a skill",
|
|
32719
32810
|
"ui.hub.skills.select_authored": "Authored skill",
|
|
32720
32811
|
"ui.hub.skills.revision": "Remote revision: {revision}",
|
|
32721
|
-
"ui.hub.skills.file_count": "{count, plural, one {
|
|
32812
|
+
"ui.hub.skills.file_count": "{count, plural, one {{count, number, ::group-off} file included} other {{count, number, ::group-off} files included}}",
|
|
32722
32813
|
"ui.hub.skills.files": "Files included",
|
|
32723
32814
|
"ui.hub.skills.text_limits": "Skills support up to 64 UTF-8 text files, 200 KiB per file and 1 MiB in total. Scripts are never run when publishing or pulling.",
|
|
32724
32815
|
"ui.hub.skills.local_exists": "That local alias is already used. Choose another.",
|
|
@@ -32737,7 +32828,7 @@ const enUiHub = {
|
|
|
32737
32828
|
"ui.hub.status.unknown": "Status unavailable.",
|
|
32738
32829
|
"ui.hub.status.next_retry": "Next retry: {time}",
|
|
32739
32830
|
"ui.hub.status.last_checked": "Last checked: {time}",
|
|
32740
|
-
"ui.hub.status.attempts": "{count, plural, one {
|
|
32831
|
+
"ui.hub.status.attempts": "{count, plural, one {{count, number, ::group-off} attempt} other {{count, number, ::group-off} attempts}}",
|
|
32741
32832
|
"ui.hub.status.receipt": "Operation receipt: {operation}",
|
|
32742
32833
|
"ui.hub.status.core_update_required": "Update the Local Operator backend to a published release {minimum} or newer to change Hub settings. Browsing is still available.",
|
|
32743
32834
|
"ui.hub.status.backend_checking": "Checking the Local Operator backend before allowing Hub changes. Browsing is still available.",
|
|
@@ -32781,11 +32872,11 @@ const enUiHub = {
|
|
|
32781
32872
|
"ui.hub.status.transport_error": "Couldn't reach the hub. A retry is scheduled.",
|
|
32782
32873
|
"ui.hub.links.scope_placeholder": "Choose a scope…",
|
|
32783
32874
|
"ui.hub.links.scope_required": "Choose a scope to continue",
|
|
32784
|
-
"ui.hub.links.sources_count": "{count, plural, one {
|
|
32785
|
-
"ui.hub.links.links_count": "{count, plural, one {
|
|
32875
|
+
"ui.hub.links.sources_count": "{count, plural, one {{count, number, ::group-off} source} other {{count, number, ::group-off} sources}}",
|
|
32876
|
+
"ui.hub.links.links_count": "{count, plural, one {{count, number, ::group-off} link} other {{count, number, ::group-off} links}}",
|
|
32786
32877
|
"ui.hub.links.unresolved_mark": "{item}: source not confirmed. Confirm the source.",
|
|
32787
32878
|
"ui.hub.links.mixed": "Mixed",
|
|
32788
|
-
"ui.hub.links.aggregate_mark": "{count, plural, one {
|
|
32879
|
+
"ui.hub.links.aggregate_mark": "{count, plural, one {{count, number, ::group-off} link} other {{count, number, ::group-off} links}}; {state}",
|
|
32789
32880
|
"ui.hub.links.mark_healthy": "up to date",
|
|
32790
32881
|
"ui.hub.links.mark_review": "needs review",
|
|
32791
32882
|
"ui.hub.links.mark_failed": "failed",
|
|
@@ -32879,7 +32970,7 @@ const enUiMesh = {
|
|
|
32879
32970
|
"ui.mesh.mesh_approvals_tray.after_a_stop": "After a stop",
|
|
32880
32971
|
"ui.mesh.mesh_approvals_tray.the_runner_stopped_before_it_finished_abandoning": "The runner stopped before it finished. Abandoning denies the request; a retry re-enters the same record instead.",
|
|
32881
32972
|
"ui.mesh.mesh_approvals_tray.approvals": "Approvals",
|
|
32882
|
-
"ui.mesh.mesh_approvals_tray.waiting_count": "{count, plural, one {
|
|
32973
|
+
"ui.mesh.mesh_approvals_tray.waiting_count": "{count, plural, one {{count, number, ::group-off} waiting} other {{count, number, ::group-off} waiting}}",
|
|
32883
32974
|
"ui.mesh.mesh_approvals_tray.ask_again": "Ask again",
|
|
32884
32975
|
"ui.mesh.mesh_approvals_tray.settled_approvals": "Settled approvals",
|
|
32885
32976
|
"ui.mesh.mesh_approvals_tray.the_runner_stopped_before_it_finished_it": "The runner stopped before it finished. It stays retryable until its window closes; Abandon denies the request.",
|
|
@@ -32936,8 +33027,8 @@ const enUiMesh = {
|
|
|
32936
33027
|
"ui.mesh.mesh_approvals.borrow_the_logins_stored_there": "borrow the logins stored there",
|
|
32937
33028
|
"ui.mesh.mesh_approvals.answer_approval_prompts_there": "answer approval prompts there",
|
|
32938
33029
|
"ui.mesh.mesh_approvals.expires_in_under_a_minute": "expires in under a minute",
|
|
32939
|
-
"ui.mesh.mesh_approvals.expires_minutes": "expires in {count, plural, one {
|
|
32940
|
-
"ui.mesh.mesh_approvals.expires_hours": "expires in {count, plural, one {
|
|
33030
|
+
"ui.mesh.mesh_approvals.expires_minutes": "expires in {count, plural, one {{count, number, ::group-off} minute} other {{count, number, ::group-off} minutes}}",
|
|
33031
|
+
"ui.mesh.mesh_approvals.expires_hours": "expires in {count, plural, one {{count, number, ::group-off} hour} other {{count, number, ::group-off} hours}}",
|
|
32941
33032
|
"ui.mesh.mesh_approvals.the_approvals_could_not_be_read": "The approvals could not be read.",
|
|
32942
33033
|
"ui.mesh.mesh_canvas.networks": "Networks",
|
|
32943
33034
|
"ui.mesh.mesh_canvas.devices": "Devices",
|
|
@@ -32945,9 +33036,9 @@ const enUiMesh = {
|
|
|
32945
33036
|
"ui.mesh.mesh_card.copy_here_leave_it_there": "Copy here, leave it there",
|
|
32946
33037
|
"ui.mesh.mesh_card.move_to": "Move to {device}",
|
|
32947
33038
|
"ui.mesh.mesh_card.copy_to": "Copy to {device}",
|
|
32948
|
-
"ui.mesh.mesh_card.conversation_count": "{count, plural, one {
|
|
33039
|
+
"ui.mesh.mesh_card.conversation_count": "{count, plural, one {{count, number, ::group-off} conversation} other {{count, number, ::group-off} conversations}}",
|
|
32949
33040
|
"ui.mesh.mesh_card.revoked_membership": "revoked membership",
|
|
32950
|
-
"ui.mesh.mesh_card.shown_of": "{shown, number} of {total, number}",
|
|
33041
|
+
"ui.mesh.mesh_card.shown_of": "{shown, number, ::group-off} of {total, number, ::group-off}",
|
|
32951
33042
|
"ui.mesh.mesh_card.device_details": "{device} details",
|
|
32952
33043
|
"ui.mesh.mesh_card.memberships": "Memberships",
|
|
32953
33044
|
"ui.mesh.mesh_card.revoked": " · revoked",
|
|
@@ -32991,31 +33082,31 @@ const enUiMesh = {
|
|
|
32991
33082
|
"ui.mesh.mesh_graph.self_conversations": "this device · {conversations}",
|
|
32992
33083
|
"ui.mesh.mesh_graph.identity_suspect": "identity suspect",
|
|
32993
33084
|
"ui.mesh.mesh_graph.no_sessions_reported": "no sessions reported",
|
|
32994
|
-
"ui.mesh.mesh_graph.network_count": "{count, plural, one {
|
|
32995
|
-
"ui.mesh.mesh_graph.device_count": "{count, plural, one {
|
|
32996
|
-
"ui.mesh.mesh_graph.suspected_count": "{count, plural, other {
|
|
32997
|
-
"ui.mesh.mesh_graph.reached_count": "{count, plural, other {
|
|
32998
|
-
"ui.mesh.mesh_graph.no_answer_count": "{count, plural, other {
|
|
32999
|
-
"ui.mesh.mesh_graph.not_asked_count": "{count, plural, other {
|
|
33000
|
-
"ui.mesh.mesh_graph.unknown_count": "{count, plural, other {
|
|
33085
|
+
"ui.mesh.mesh_graph.network_count": "{count, plural, one {{count, number, ::group-off} network} other {{count, number, ::group-off} networks}}",
|
|
33086
|
+
"ui.mesh.mesh_graph.device_count": "{count, plural, one {{count, number, ::group-off} device} other {{count, number, ::group-off} devices}}",
|
|
33087
|
+
"ui.mesh.mesh_graph.suspected_count": "{count, plural, other {{count, number, ::group-off} of them suspected}}",
|
|
33088
|
+
"ui.mesh.mesh_graph.reached_count": "{count, plural, other {{count, number, ::group-off} reached}}",
|
|
33089
|
+
"ui.mesh.mesh_graph.no_answer_count": "{count, plural, other {{count, number, ::group-off} no answer}}",
|
|
33090
|
+
"ui.mesh.mesh_graph.not_asked_count": "{count, plural, other {{count, number, ::group-off} not asked}}",
|
|
33091
|
+
"ui.mesh.mesh_graph.unknown_count": "{count, plural, other {{count, number, ::group-off} unknown}}",
|
|
33001
33092
|
"ui.mesh.mesh_graph.self_identity": "this device is {device}",
|
|
33002
33093
|
"ui.mesh.mesh_list.name": "Name",
|
|
33003
33094
|
"ui.mesh.mesh_list.state": "State",
|
|
33004
33095
|
"ui.mesh.mesh_list.on_device_state": "on {device}{state}",
|
|
33005
33096
|
"ui.mesh.mesh_list.on_device_no_answer": "on {device} (not answering)",
|
|
33006
33097
|
"ui.mesh.mesh_list.sort_devices_by": "Sort devices by",
|
|
33007
|
-
"ui.mesh.mesh_list.epoch": "epoch {epoch, number}",
|
|
33008
|
-
"ui.mesh.mesh_list.revoked_count": " · {count, plural, other {
|
|
33098
|
+
"ui.mesh.mesh_list.epoch": "epoch {epoch, number, ::group-off}",
|
|
33099
|
+
"ui.mesh.mesh_list.revoked_count": " · {count, plural, other {{count, number, ::group-off} revoked}}",
|
|
33009
33100
|
"ui.mesh.mesh_list.revoked": "revoked",
|
|
33010
33101
|
"ui.mesh.mesh_list.member": "member",
|
|
33011
33102
|
"ui.mesh.mesh_list.move_conversation": "Move {conversation}",
|
|
33012
|
-
"ui.mesh.mesh_list.show_all_panel": "show all {count, plural, other {
|
|
33103
|
+
"ui.mesh.mesh_list.show_all_panel": "show all {count, plural, other {{count, number, ::group-off} in the panel}}",
|
|
33013
33104
|
"ui.mesh.mesh_list.answered_the_peer_read_but_is_in": "answered the peer read but is in no network this app can name.",
|
|
33014
33105
|
"ui.mesh.mesh_node.on_device": "on {device}",
|
|
33015
33106
|
"ui.mesh.mesh_node.working": "working",
|
|
33016
33107
|
"ui.mesh.mesh_node.conversations_on": "Conversations on {device}",
|
|
33017
|
-
"ui.mesh.mesh_node.shown_conversations": "Showing {shown, number} of {total, plural, one {
|
|
33018
|
-
"ui.mesh.mesh_node.show_all_conversations": "Show all {count, plural, one {
|
|
33108
|
+
"ui.mesh.mesh_node.shown_conversations": "Showing {shown, number, ::group-off} of {total, plural, one {{total, number, ::group-off} conversations} other {{total, number, ::group-off} conversations}}",
|
|
33109
|
+
"ui.mesh.mesh_node.show_all_conversations": "Show all {count, plural, one {{count, number, ::group-off} conversations} other {{count, number, ::group-off} conversations}}",
|
|
33019
33110
|
"ui.mesh.mesh_node.open_conversation": "{conversation}, {fact}. Opens {owner}.",
|
|
33020
33111
|
"ui.mesh.mesh_page.canvas": "Canvas",
|
|
33021
33112
|
"ui.mesh.mesh_page.list": "List",
|
|
@@ -33047,11 +33138,11 @@ const enUiMesh = {
|
|
|
33047
33138
|
"ui.mesh.mesh_actions.this_moves_the_conversation": "This moves the conversation.",
|
|
33048
33139
|
"ui.mesh.mesh_actions.the_device": "the device",
|
|
33049
33140
|
"ui.mesh.mesh_approvals.decision_could_not_be_answered": "The decision could not be answered.",
|
|
33050
|
-
"ui.mesh.mesh_node.memberships": "· {count, plural, one {
|
|
33141
|
+
"ui.mesh.mesh_node.memberships": "· {count, plural, one {{count, number, ::group-off} networks} other {{count, number, ::group-off} networks}}",
|
|
33051
33142
|
"ui.mesh.mesh_graph.conversation_unit": "{count, plural, one {conversation} other {conversations}}",
|
|
33052
|
-
"ui.mesh.mesh_approvals_tray.failed_count": "{count, plural, other {
|
|
33143
|
+
"ui.mesh.mesh_approvals_tray.failed_count": "{count, plural, other {{count, number, ::group-off} failed}}",
|
|
33053
33144
|
"ui.mesh.mesh_list.sort_conversations": "Conversations",
|
|
33054
|
-
"ui.mesh.mesh_list.conversation_count": "{count, plural, =0 {no conversations} one {
|
|
33145
|
+
"ui.mesh.mesh_list.conversation_count": "{count, plural, =0 {no conversations} one {{count, number, ::group-off} conversation} other {{count, number, ::group-off} conversations}}",
|
|
33055
33146
|
"ui.mesh.approval.credential_title": "Credential access request",
|
|
33056
33147
|
"ui.mesh.approval.unknown_title": "Approval request",
|
|
33057
33148
|
"ui.mesh.approval.details_unavailable": "The full request details are unavailable in this app. Review the request from the command line on this machine.",
|
|
@@ -33107,8 +33198,8 @@ const enUiOnboarding = {
|
|
|
33107
33198
|
"ui.onboarding.search.row.save_failed": "The key could not be saved.",
|
|
33108
33199
|
"ui.onboarding.search.row.saved": "Saved",
|
|
33109
33200
|
"ui.onboarding.search.row.saving": "Saving {name}",
|
|
33110
|
-
"ui.onboarding.modal.step_of": "Step {current, number} of {total, number}",
|
|
33111
|
-
"ui.onboarding.modal.steps_total": "{total, plural, one {
|
|
33201
|
+
"ui.onboarding.modal.step_of": "Step {current, number, ::group-off} of {total, number, ::group-off}",
|
|
33202
|
+
"ui.onboarding.modal.steps_total": "{total, plural, one {{total, number, ::group-off} step} other {{total, number, ::group-off} steps}}"
|
|
33112
33203
|
};
|
|
33113
33204
|
const enUiProjects = {};
|
|
33114
33205
|
const enUiProviders = {
|
|
@@ -33159,7 +33250,7 @@ const enUiProviders = {
|
|
|
33159
33250
|
"ui.providers.connect_provider_dialog.your_agents_need_a_model_to_think": "Your agents need a model to think with. Sign in with an account you already have, or add an API key.",
|
|
33160
33251
|
"ui.providers.provider_catalog.local_models": "local models",
|
|
33161
33252
|
"ui.providers.provider_catalog.more_providers": "More providers",
|
|
33162
|
-
"ui.providers.provider_catalog.more_providers_and": "More providers: {providers} and {count, plural, other {
|
|
33253
|
+
"ui.providers.provider_catalog.more_providers_and": "More providers: {providers} and {count, plural, other {{count, number, ::group-off} more}}",
|
|
33163
33254
|
"ui.providers.provider_catalog.more_providers_variant_41": "More providers: {provider}",
|
|
33164
33255
|
"ui.providers.provider_catalog.more_providers_and_variant_42": "More providers: {providers} and {last}",
|
|
33165
33256
|
"ui.providers.provider_catalog.claude_subscription": "Claude subscription",
|
|
@@ -33299,8 +33390,8 @@ const enUiProviders = {
|
|
|
33299
33390
|
"ui.providers.sign_in_flow.sign_in_could_not_start": "Sign-in could not start.",
|
|
33300
33391
|
"ui.providers.provider_detail.the_sign_in_page": "the sign-in page",
|
|
33301
33392
|
"ui.providers.provider_grid.row_action": "{action}: {brand}",
|
|
33302
|
-
"ui.providers.provider_detail.code_expiry": "Code expires in {minutes, plural, other {
|
|
33303
|
-
"ui.providers.provider_detail.link_expiry": "Link expires in {minutes, plural, other {
|
|
33393
|
+
"ui.providers.provider_detail.code_expiry": "Code expires in {minutes, plural, other {{minutes, number, ::group-off} min}}",
|
|
33394
|
+
"ui.providers.provider_detail.link_expiry": "Link expires in {minutes, plural, other {{minutes, number, ::group-off} min}}"
|
|
33304
33395
|
};
|
|
33305
33396
|
const enUiSchedules = {
|
|
33306
33397
|
"ui.schedules.count.hidden": "Show {hidden, plural, one {{hidden, number, ::group-off} more wake} other {{hidden, number, ::group-off} more wakes}}",
|
|
@@ -33499,8 +33590,8 @@ const enUiSettingsAccount = {
|
|
|
33499
33590
|
"ui.settings.account.settings_page.tokens": "Tokens",
|
|
33500
33591
|
"ui.settings.account.settings_usage_chart.credits_consumed": "Credits consumed",
|
|
33501
33592
|
"ui.settings.account.settings_usage_chart.tokens_used": "Tokens used",
|
|
33502
|
-
"ui.settings.account.settings_usage_chart.credits_summary": "Credits consumed over the last 30 days, plotted per day across {days, plural, one {
|
|
33503
|
-
"ui.settings.account.settings_usage_chart.tokens_summary": "Tokens used over the last 30 days, plotted per day across {days, plural, one {
|
|
33593
|
+
"ui.settings.account.settings_usage_chart.credits_summary": "Credits consumed over the last 30 days, plotted per day across {days, plural, one {{days, number, ::group-off} day} other {{days, number, ::group-off} days}}.",
|
|
33594
|
+
"ui.settings.account.settings_usage_chart.tokens_summary": "Tokens used over the last 30 days, plotted per day across {days, plural, one {{days, number, ::group-off} day} other {{days, number, ::group-off} days}}.",
|
|
33504
33595
|
"ui.settings.account.settings_page.credit_balance_load_failed": "Could not load your credit balance. {reason}",
|
|
33505
33596
|
"ui.settings.account.settings_page.usage_load_failed": "Could not load your usage data. {reason}"
|
|
33506
33597
|
};
|
|
@@ -33549,10 +33640,10 @@ const enUiSettingsConfiguration = {
|
|
|
33549
33640
|
"ui.settings.configuration.language_dialog.the_language_could_not_be_saved": "The language could not be saved.",
|
|
33550
33641
|
"ui.settings.configuration.language_dialog.your_settings_could_not_be_loaded": "Your settings could not be loaded.",
|
|
33551
33642
|
"ui.settings.configuration.retention_duration.enter_a_whole_number_of_hours_or_days": "Enter a whole number of hours or days.",
|
|
33552
|
-
"ui.settings.configuration.retention_duration.month_count": "{count, plural, one {
|
|
33553
|
-
"ui.settings.configuration.retention_duration.day_count": "{count, plural, one {
|
|
33554
|
-
"ui.settings.configuration.retention_duration.hour_count": "{count, plural, one {
|
|
33555
|
-
"ui.settings.configuration.retention_duration.maximum_days": "{duration} ({days, plural, one {
|
|
33643
|
+
"ui.settings.configuration.retention_duration.month_count": "{count, plural, one {{count, number, ::group-off} month} other {{count, number, ::group-off} months}}",
|
|
33644
|
+
"ui.settings.configuration.retention_duration.day_count": "{count, plural, one {{count, number, ::group-off} day} other {{count, number, ::group-off} days}}",
|
|
33645
|
+
"ui.settings.configuration.retention_duration.hour_count": "{count, plural, one {{count, number, ::group-off} hour} other {{count, number, ::group-off} hours}}",
|
|
33646
|
+
"ui.settings.configuration.retention_duration.maximum_days": "{duration} ({days, plural, one {{days, number, ::group-off} day} other {{days, number, ::group-off} days}})",
|
|
33556
33647
|
"ui.settings.configuration.retention_duration.range": "between {minimum} and {maximum}",
|
|
33557
33648
|
"ui.settings.configuration.retention_duration.too_long": "{duration} is too long. Choose a time {range}.",
|
|
33558
33649
|
"ui.settings.configuration.retention_duration.too_short": "{duration} is too short. Choose a time {range}.",
|
|
@@ -33585,11 +33676,11 @@ const enUiSettingsConfiguration = {
|
|
|
33585
33676
|
"ui.settings.configuration.settings_filter_bar.collapse_all": "Collapse all",
|
|
33586
33677
|
"ui.settings.configuration.settings_filter_bar.saving": "Saving",
|
|
33587
33678
|
"ui.settings.configuration.settings_filter_bar.save_all": "Save all",
|
|
33588
|
-
"ui.settings.configuration.settings_filter_bar.unsaved_count": "{count, plural, one {
|
|
33589
|
-
"ui.settings.configuration.settings_filter_bar.search_count": "{matchCount, plural, one {
|
|
33590
|
-
"ui.settings.configuration.settings_filter_bar.modified_count": "{count, plural, one {
|
|
33679
|
+
"ui.settings.configuration.settings_filter_bar.unsaved_count": "{count, plural, one {{count, number, ::group-off} unsaved change} other {{count, number, ::group-off} unsaved changes}}",
|
|
33680
|
+
"ui.settings.configuration.settings_filter_bar.search_count": "{matchCount, plural, one {{matchCount, number, ::group-off} result} other {{matchCount, number, ::group-off} results}} in {sectionCount, plural, one {{sectionCount, number, ::group-off} section} other {{sectionCount, number, ::group-off} sections}}",
|
|
33681
|
+
"ui.settings.configuration.settings_filter_bar.modified_count": "{count, plural, one {{count, number, ::group-off} modified setting} other {{count, number, ::group-off} modified settings}}",
|
|
33591
33682
|
"ui.settings.configuration.settings_group_header.changed_from_the_default": "Changed from the default",
|
|
33592
|
-
"ui.settings.configuration.settings_group_header.setting_count": "{count, plural, one {
|
|
33683
|
+
"ui.settings.configuration.settings_group_header.setting_count": "{count, plural, one {{count, number, ::group-off} setting} other {{count, number, ::group-off} settings}}",
|
|
33593
33684
|
"ui.settings.configuration.settings_page.configuration_information": "Configuration information",
|
|
33594
33685
|
"ui.settings.configuration.settings_page.system_information_about_the_current_configuration": "System information about the current configuration.",
|
|
33595
33686
|
"ui.settings.configuration.settings_page.version": "Version",
|
|
@@ -33602,13 +33693,13 @@ const enUiSettingsConfiguration = {
|
|
|
33602
33693
|
"ui.settings.configuration.delegated_retention_copy.kept": "Kept:",
|
|
33603
33694
|
"ui.settings.configuration.delegated_retention_copy.when": "When:",
|
|
33604
33695
|
"ui.settings.configuration.backend_setting_row.gate_note": "Needs {gate} on. Nothing here is saved while it is off.",
|
|
33605
|
-
"ui.settings.configuration.backend_settings_section.show_advanced_count": "{count, plural, one {Show
|
|
33606
|
-
"ui.settings.configuration.settings_group_header.advanced_count": "{count, plural, one {
|
|
33696
|
+
"ui.settings.configuration.backend_settings_section.show_advanced_count": "{count, plural, one {Show {count, number, ::group-off} advanced} other {Show {count, number, ::group-off} advanced}}",
|
|
33697
|
+
"ui.settings.configuration.settings_group_header.advanced_count": "{count, plural, one {{count, number, ::group-off} advanced} other {{count, number, ::group-off} advanced}}",
|
|
33607
33698
|
"ui.settings.configuration.retention_duration_control.idle_window_status": "{duration} with no activity{isDefault, select, yes { (default)} other {}}",
|
|
33608
33699
|
"ui.settings.configuration.retention_duration_control.use_duration": "Use {duration}",
|
|
33609
33700
|
"ui.settings.configuration.retention_duration_control.duration_default": "{duration} (default)",
|
|
33610
|
-
"ui.settings.configuration.settings_filter_bar.advanced_shown": "{count, plural, one {
|
|
33611
|
-
"ui.settings.configuration.settings_filter_bar.core_and_advanced": "{coreCount, plural, one {
|
|
33701
|
+
"ui.settings.configuration.settings_filter_bar.advanced_shown": "{count, plural, one {{count, number, ::group-off} advanced setting shown — Expand all to see it} other {{count, number, ::group-off} advanced settings shown — Expand all to see them}}",
|
|
33702
|
+
"ui.settings.configuration.settings_filter_bar.core_and_advanced": "{coreCount, plural, one {{coreCount, number, ::group-off} core setting} other {{coreCount, number, ::group-off} core settings}}, {advancedCount, plural, one {{advancedCount, number, ::group-off} advanced} other {{advancedCount, number, ::group-off} advanced}}"
|
|
33612
33703
|
};
|
|
33613
33704
|
const enUiSettingsIntegrations = {
|
|
33614
33705
|
"ui.settings.integrations.add_integration_form.add_integration": "Add integration",
|
|
@@ -33739,10 +33830,10 @@ const enUiSettingsIntegrations = {
|
|
|
33739
33830
|
"ui.settings.integrations.integration_model.the_config_file_couldn_t_be_written_check_that_it_isn_t_read_only": "The config file couldn't be written. Check that it isn't read-only.",
|
|
33740
33831
|
"ui.settings.integrations.integration_model.integrations_are_still_starting_try_again_in_a_moment": "Integrations are still starting. Try again in a moment.",
|
|
33741
33832
|
"ui.settings.integrations.integration_model.the_server_refused_it_so_nothing_was_changed": "The server refused it, so nothing was changed.",
|
|
33742
|
-
"ui.settings.integrations.integration_model.tool_count": "{count, plural, one {
|
|
33743
|
-
"ui.settings.integrations.integration_model.integration_count": "{count, plural, one {
|
|
33744
|
-
"ui.settings.integrations.integration_model.minutes_min_ago": "{minutes, plural, one {
|
|
33745
|
-
"ui.settings.integrations.integration_model.hours_h_ago": "{hours, plural, one {
|
|
33833
|
+
"ui.settings.integrations.integration_model.tool_count": "{count, plural, one {{count, number, ::group-off} tool} other {{count, number, ::group-off} tools}}",
|
|
33834
|
+
"ui.settings.integrations.integration_model.integration_count": "{count, plural, one {{count, number, ::group-off} integration} other {{count, number, ::group-off} integrations}}",
|
|
33835
|
+
"ui.settings.integrations.integration_model.minutes_min_ago": "{minutes, plural, one {{minutes, number, ::group-off} min ago} other {{minutes, number, ::group-off} min ago}}",
|
|
33836
|
+
"ui.settings.integrations.integration_model.hours_h_ago": "{hours, plural, one {{hours, number, ::group-off} h ago} other {{hours, number, ::group-off} h ago}}",
|
|
33746
33837
|
"ui.settings.integrations.integration_model.imported_from_origin": "Imported from {origin}",
|
|
33747
33838
|
"ui.settings.integrations.integration_model.remove_in_origin": "Remove in {origin}",
|
|
33748
33839
|
"ui.settings.integrations.integration_model.defined_in_origin_s_config_remove_it_there": "Defined in {origin}'s config. Remove it there.",
|
|
@@ -33820,7 +33911,7 @@ const enUiSettingsIntegrations = {
|
|
|
33820
33911
|
"ui.settings.integrations.integration_key_dialog.saving": "Saving…",
|
|
33821
33912
|
"ui.settings.integrations.mcp_management_section.borrowed_chat_notice": "Showing the integrations for {chat}, your most recent chat.",
|
|
33822
33913
|
"ui.settings.integrations.integration_sign_in_dialog.browser_approval_notice": "Local Operator opens your browser so you can approve access to {name}.{replaces, select, yes { This replaces the sign-in it has now.} other {}}",
|
|
33823
|
-
"ui.settings.integrations.integration_model.days_ago": "{days, plural, one {
|
|
33914
|
+
"ui.settings.integrations.integration_model.days_ago": "{days, plural, one {{days, number, ::group-off} d ago} other {{days, number, ::group-off} d ago}}",
|
|
33824
33915
|
"ui.settings.integrations.integration_model.connected_with_tools": "Connected · {tools}",
|
|
33825
33916
|
"ui.settings.integrations.integration_model.worked_when_with_tools": "Worked {when} · {tools}",
|
|
33826
33917
|
"ui.settings.integrations.integration_model.worked_earlier_with_tools": "Worked earlier · {tools}",
|
|
@@ -34076,16 +34167,16 @@ const frUiConsole = {
|
|
|
34076
34167
|
"ui.console.unavailable.pty.detail": "La prise en charge des terminaux n’a pas été chargée pour cette exécution. Une mise à jour de Local Operator la rétablit ; le journal de l’application indique la cause.",
|
|
34077
34168
|
"ui.console.unavailable.title": "La console est indisponible dans cette application",
|
|
34078
34169
|
"ui.console.unavailable.unknown.detail": "Cette fenêtre n’a pas pu accéder à la console et n’a pas indiqué pourquoi. Le journal de l’application précise la cause.",
|
|
34079
|
-
"ui.console.capacity.summary": "{live, number} sur {limit, number} actifs dans l’app",
|
|
34080
|
-
"ui.console.capacity.summary_compact": "{live, number}/{limit, number} · {archived, plural, one {
|
|
34081
|
-
"ui.console.capacity.summary_compact_bare": "{live, number}/{limit, number}",
|
|
34082
|
-
"ui.console.capacity.archived": " · {archived, plural, one {
|
|
34170
|
+
"ui.console.capacity.summary": "{live, number, ::group-off} sur {limit, number, ::group-off} actifs dans l’app",
|
|
34171
|
+
"ui.console.capacity.summary_compact": "{live, number, ::group-off}/{limit, number, ::group-off} · {archived, plural, one {{archived, number, ::group-off} gardé} many {{archived, number, ::group-off} de gardés} other {{archived, number, ::group-off} gardés}}",
|
|
34172
|
+
"ui.console.capacity.summary_compact_bare": "{live, number, ::group-off}/{limit, number, ::group-off}",
|
|
34173
|
+
"ui.console.capacity.archived": " · {archived, plural, one {{archived, number, ::group-off} gardé} many {{archived, number, ::group-off} de gardés} other {{archived, number, ::group-off} gardés}}",
|
|
34083
34174
|
"ui.console.capacity.full": " · plein",
|
|
34084
34175
|
"ui.console.capacity.help": "Compteurs pour toute l’application, toutes conversations confondues. L’historique conservé n’occupe pas d’emplacement de processus.",
|
|
34085
|
-
"ui.console.capacity.resources": "Stockage géré estimé : {memory, number} MiB. Journaux : {logs, number} MiB. Sortie en attente : {pending, number} MiB. Cellules de terminal : {cells, number}. Terminaux protégés : {protected, number}. La mémoire des processus enfants n’est pas incluse.",
|
|
34176
|
+
"ui.console.capacity.resources": "Stockage géré estimé : {memory, number, ::group-off} MiB. Journaux : {logs, number, ::group-off} MiB. Sortie en attente : {pending, number, ::group-off} MiB. Cellules de terminal : {cells, number, ::group-off}. Terminaux protégés : {protected, number, ::group-off}. La mémoire des processus enfants n’est pas incluse.",
|
|
34086
34177
|
"ui.console.cleanup.label": "Effacer les terminaux d’agent terminés",
|
|
34087
34178
|
"ui.console.cleanup.help": "Efface les terminaux d’agent terminés de cette conversation. Ceux que l’agent a demandé de conserver restent sur le disque ; les autres sont fermés et leur sortie n’est pas conservée. Les terminaux que vous avez ouverts, ainsi que ceux en cours d’utilisation, ne sont pas touchés.",
|
|
34088
|
-
"ui.console.cleanup.result": "Effacé : {released, plural, one {
|
|
34179
|
+
"ui.console.cleanup.result": "Effacé : {released, plural, one {{released, number, ::group-off} terminal d’agent terminé} many {{released, number, ::group-off} de terminaux d’agent terminés} other {{released, number, ::group-off} terminaux d’agent terminés}}. {protected, plural, =0 {} one {{protected, number, ::group-off} terminal est encore utilisé et a été laissé ouvert.} many {{protected, number, ::group-off} de terminaux sont encore utilisés et ont été laissés ouverts.} other {{protected, number, ::group-off} terminaux sont encore utilisés et ont été laissés ouverts.}}",
|
|
34089
34180
|
"ui.console.cleanup.result_none": "Rien à effacer — aucun terminal d’agent terminé dans cette conversation.",
|
|
34090
34181
|
"ui.console.dismiss_history": "Effacer le terminal et supprimer la sortie conservée",
|
|
34091
34182
|
"ui.console.dismiss.body": "Effacer ce terminal supprime sa sortie conservée sur le disque ; une relance ne pourra pas la restaurer.",
|
|
@@ -34094,9 +34185,9 @@ const frUiConsole = {
|
|
|
34094
34185
|
"ui.console.tab.ended": "terminé",
|
|
34095
34186
|
"ui.console.tab.agent_opened": "Un agent a ouvert cette console",
|
|
34096
34187
|
"ui.console.tab.agent_typed": "Un agent a saisi du texte dans cette console",
|
|
34097
|
-
"ui.console.tab.close_label": "Fermer {title}, onglet {index, number} sur {total, number}",
|
|
34098
|
-
"ui.console.tab.clear_label": "Effacer {title}, onglet {index, number} sur {total, number}",
|
|
34099
|
-
"ui.console.tab.clear_label_retained": "Effacer {title}, onglet {index, number} sur {total, number} — supprime la sortie conservée",
|
|
34188
|
+
"ui.console.tab.close_label": "Fermer {title}, onglet {index, number, ::group-off} sur {total, number, ::group-off}",
|
|
34189
|
+
"ui.console.tab.clear_label": "Effacer {title}, onglet {index, number, ::group-off} sur {total, number, ::group-off}",
|
|
34190
|
+
"ui.console.tab.clear_label_retained": "Effacer {title}, onglet {index, number, ::group-off} sur {total, number, ::group-off} — supprime la sortie conservée",
|
|
34100
34191
|
"ui.console.secure_toggle.stop": "Arrêter la saisie sécurisée",
|
|
34101
34192
|
"ui.console.secure_toggle.start": "Saisie sécurisée",
|
|
34102
34193
|
"ui.console.secure_toggle.start_tooltip": "Saisie sécurisée : arrêter l’enregistrement de ce terminal",
|
|
@@ -34150,8 +34241,8 @@ const frUiOnboarding = {
|
|
|
34150
34241
|
"ui.onboarding.search.row.save_failed": "La clé n’a pas pu être enregistrée.",
|
|
34151
34242
|
"ui.onboarding.search.row.saved": "Enregistré",
|
|
34152
34243
|
"ui.onboarding.search.row.saving": "Enregistrement : {name}",
|
|
34153
|
-
"ui.onboarding.modal.step_of": "Étape {current, number} sur {total, number}",
|
|
34154
|
-
"ui.onboarding.modal.steps_total": "{total, plural, one {
|
|
34244
|
+
"ui.onboarding.modal.step_of": "Étape {current, number, ::group-off} sur {total, number, ::group-off}",
|
|
34245
|
+
"ui.onboarding.modal.steps_total": "{total, plural, one {{total, number, ::group-off} étape} many {{total, number, ::group-off} d’étapes} other {{total, number, ::group-off} étapes}}"
|
|
34155
34246
|
};
|
|
34156
34247
|
const frUiSettings = {
|
|
34157
34248
|
"ui.settings.language.dialog.description": "S’applique à l’application et au terminal — le même réglage que dans les paramètres.",
|
|
@@ -34197,6 +34288,7 @@ const frUiSettings = {
|
|
|
34197
34288
|
const bundledEnglish = {
|
|
34198
34289
|
...enUiAgentsDialogs,
|
|
34199
34290
|
...enUiAgents,
|
|
34291
|
+
...enUiAgentsModels,
|
|
34200
34292
|
...enUiAgentsNavigation,
|
|
34201
34293
|
...enUiAgentsRefusals,
|
|
34202
34294
|
...enUiAgentsSettings,
|
package/out/preload/index.js
CHANGED
|
@@ -116,6 +116,16 @@ const CHECKPOINT_WARM_MAX_IDS = 16;
|
|
|
116
116
|
const THREAD_FIND_MAX_CHARS = 256;
|
|
117
117
|
const THREAD_FIND_MAX_LIMIT = 200;
|
|
118
118
|
const DESKTOP_SYSTEM_PROMPT_MAX_CHARS = 1e6;
|
|
119
|
+
const memberEffort = zod.z.enum([
|
|
120
|
+
"auto",
|
|
121
|
+
"none",
|
|
122
|
+
"minimal",
|
|
123
|
+
"low",
|
|
124
|
+
"medium",
|
|
125
|
+
"high",
|
|
126
|
+
"xhigh",
|
|
127
|
+
"max"
|
|
128
|
+
]);
|
|
119
129
|
const profileName = zod.z.string().min(1).max(128).refine(
|
|
120
130
|
(name) => name !== "." && name !== ".." && !name.includes("/") && !name.includes("\\") && [...name].every(
|
|
121
131
|
(character) => character.charCodeAt(0) >= 32 && character.charCodeAt(0) !== 127
|
|
@@ -153,7 +163,23 @@ const teamFields = zod.z.object({
|
|
|
153
163
|
zod.z.object({
|
|
154
164
|
role: profileName,
|
|
155
165
|
count: zod.z.number().int().min(1).max(16),
|
|
156
|
-
kind: zod.z.enum(["agent", "team"])
|
|
166
|
+
kind: zod.z.enum(["agent", "team"]),
|
|
167
|
+
/*
|
|
168
|
+
* THE SLOT'S MODEL OVERRIDES (team member tiers, P3). `null` and
|
|
169
|
+
* absent mean the same thing on this wire - no override, fall
|
|
170
|
+
* through to the next layer - and the pair is spelled with the SAME
|
|
171
|
+
* words the backend's `TeamMember` accepts (`CANONICAL_EFFORT_TIERS`
|
|
172
|
+
* and `TIER_EFFORTS`), so a value this client can send cannot be one
|
|
173
|
+
* the server refuses. `null` is accepted rather than omitted alone
|
|
174
|
+
* because a cleared field is what a form has in hand.
|
|
175
|
+
*
|
|
176
|
+
* Enumerated rather than free text for the reason the tier list is:
|
|
177
|
+
* this client is not the only writer (the team tool, a hand-edited
|
|
178
|
+
* `team.yml`), and a membership gate here is what keeps a typo out of
|
|
179
|
+
* a roster that would otherwise be silently written and ignored.
|
|
180
|
+
*/
|
|
181
|
+
tier: zod.z.enum(["lo", "med", "hi"]).nullable().optional(),
|
|
182
|
+
effort: memberEffort.nullable().optional()
|
|
157
183
|
}).strict()
|
|
158
184
|
).max(128).optional(),
|
|
159
185
|
instructions: zod.z.string().max(8e3).optional(),
|
|
@@ -481,6 +507,19 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
481
507
|
}).strict(),
|
|
482
508
|
zod.z.object({ op: zod.z.literal("teams.list") }).strict(),
|
|
483
509
|
zod.z.object({ op: zod.z.literal("teams.get"), name: profileName }).strict(),
|
|
510
|
+
/*
|
|
511
|
+
* THE RESOLVED READING of every slot's model and reasoning effort, with the
|
|
512
|
+
* layer each came from - the team editor's answer to "why is this member on
|
|
513
|
+
* that model". A READ: it resolves the same precedence a launch does without
|
|
514
|
+
* launching anything and writes nothing.
|
|
515
|
+
*
|
|
516
|
+
* ADDITIVE, and its absence is a capability signal rather than an error: a
|
|
517
|
+
* backend older than the route answers 404, which is how the editor learns to
|
|
518
|
+
* hide its override controls (the same status `backendErrorKind` classifies as
|
|
519
|
+
* `outdated`). Such a server also ignores the member keys above, which is why
|
|
520
|
+
* the hidden editor is the honest reading rather than a lost edit.
|
|
521
|
+
*/
|
|
522
|
+
zod.z.object({ op: zod.z.literal("teams.effective"), name: profileName }).strict(),
|
|
484
523
|
/*
|
|
485
524
|
* Team CAS is the same optional opaque echo as the profile arm: absent/null is
|
|
486
525
|
* the legacy unconditional write, a supplied stale/malformed value is refused
|
|
@@ -2565,6 +2604,12 @@ desktopRequestUnion.superRefine(
|
|
|
2565
2604
|
}
|
|
2566
2605
|
}
|
|
2567
2606
|
);
|
|
2607
|
+
zod.z.object({
|
|
2608
|
+
data: zod.z.object({
|
|
2609
|
+
aside_id: zod.z.string().optional(),
|
|
2610
|
+
status: zod.z.union([zod.z.enum(["adopted", "queued"]), zod.z.string()]).optional()
|
|
2611
|
+
}).passthrough()
|
|
2612
|
+
}).passthrough();
|
|
2568
2613
|
zod.z.object({
|
|
2569
2614
|
step: zod.z.string(),
|
|
2570
2615
|
blocked_on: zod.z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as o,c as b,g as v,k as O,h as P,j as p,l as w,m as A,n as x,t as c,o as N}from"./_baseUniq-
|
|
1
|
+
import{e as o,c as b,g as v,k as O,h as P,j as p,l as w,m as A,n as x,t as c,o as N}from"./_baseUniq-ClgJBEui.js";import{as as g,aa as y,at as E,au as F,av as M,aw as I,ax as _,ay as $,az as B,aA as T}from"./mermaid.core-DwfN45qZ.js";var S=/\s/;function z(n){for(var r=n.length;r--&&S.test(n.charAt(r)););return r}var G=/^\s+/;function H(n){return n&&n.slice(0,z(n)+1).replace(G,"")}var m=NaN,L=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,q=/^0o[0-7]+$/i,C=parseInt;function K(n){if(typeof n=="number")return n;if(o(n))return m;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=H(n);var t=R.test(n);return t||q.test(n)?C(n.slice(2),t?2:8):L.test(n)?m:+n}var W=1/0,X=17976931348623157e292;function Y(n){if(!n)return n===0?n:0;if(n=K(n),n===W||n===-1/0){var r=n<0?-1:1;return r*X}return n===n?n:0}function D(n){var r=Y(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var l=Object.prototype,J=l.hasOwnProperty,dn=y(function(n,r){n=Object(n);var t=-1,e=r.length,a=e>2?r[2]:void 0;for(a&&E(r[0],r[1],a)&&(e=1);++t<e;)for(var f=r[t],i=F(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||M(h,l[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,e){var a=Object(r);if(!I(r)){var f=v(t);r=O(r),t=function(s){return f(a[s],s,a)}}var i=n(r,t,e);return i>-1?a[f?r[i]:i]:void 0}}var U=Math.max;function Z(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var a=t==null?0:D(t);return a<0&&(a=U(e+a,0)),P(n,v(r),a)}var hn=Q(Z);function V(n,r){var t=-1,e=I(n)?Array(n.length):[];return p(n,function(a,f,i){e[++t]=r(a,f,i)}),e}function gn(n,r){var t=_(n)?w:V;return t(n,v(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function vn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var e=-1,a=n.length;++e<a;){var f=n[e],i=r(f);if(i!=null&&(s===void 0?i===i&&!o(i):t(i,s)))var s=i,d=f}return d}function mn(n){return n&&n.length?tn(n,$,rn):void 0}function an(n,r,t,e){if(!g(n))return n;r=x(r,n);for(var a=-1,f=r.length,i=f-1,s=n;s!=null&&++a<f;){var d=c(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=i){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:B(r[a+1])?[]:{})}T(s,d,u),s=s[d]}return n}function on(n,r,t){for(var e=-1,a=r.length,f={};++e<a;){var i=r[e],s=N(n,i);t(s,i)&&an(f,x(i,n),s)}return f}export{rn as a,tn as b,V as c,on as d,mn as e,fn as f,hn as g,vn as h,dn as i,D as j,un as l,gn as m,Y as t};
|