@xopcai/xopc 0.0.376 → 0.0.377
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/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-CvR3rjdp.js → activity-store-BVtU6S1w.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-B6OsxiBw.js → agent-avatar-dicebear-BD63ce58.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-MB_QmjX-.js → agent-defaults-settings-panel-Ch07F4uX.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-Bpcf0zhP.js → agent-plugin-dialog-CdCVOg5e.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-BQ7ag_R3.js → agents-D2__mhy8.js} +3 -3
- package/dist/gateway/static/root/assets/{agents-admin-api-DsXvJeqd.js → agents-admin-api-DgQph1Pu.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-9JzhRHSD.js → app-management-settings-panel-B0yP8rNC.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-CoyZuGAt.js → appearance-settings-Bnq1nzDX.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-CcbCxZaw.js → apps-page-CSIFuEnj.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-kfDRSd7K.js → archive-plugin-FBVMH4ym.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-DZJKbmlm.js → automations-page-qsg6pZlF.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-ChKT1JN6.js → automations-workspace-DqBWLl61.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-d4QP_iyy.js → binary-plugins-B0qGhVNs.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DraiSml9.js → block-editor-CjQv4zlo.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-BAiaU9gl.js → browser-automation-inputs-DSbRHrG7.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-Bo40qRor.js → browser-automations-page-CzEWM_ie.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-Dg4S7ph5.js → browser-settings-page-CsDck88G.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-B-vsqiw2.js → capabilities-HaRLmYU1.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-DQEeiNq_.js → capabilities-LpGa-olH.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-CuHSjBDG.js → capabilities-page-BeQ-Yj3_.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-bxxADxzW.js → capabilities-settings-panel-BQ-I3L-C.js} +1 -1
- package/dist/gateway/static/root/assets/{capability-header-actions-CaH0L2sV.js → capability-header-actions-DuBac0EK.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-Drx78hEY.js → channels-1wUJcCxP.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-hZnKhClF.js → chat-terminal-dock-CQc1mqZM.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-CYEA9B-G.js → computer-settings-page-BIwOemaK.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-DXi2Bx2u.js → connector-service-page-CG9KKuXq.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-BCWPY5hs.js → connectors-page-BFzjGpKE.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-BW_xBw2L.js → date-picker-DoZGE2hF.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-ByRPupfC.js → dependency-picker-hrz7p1Lv.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DTcVMPlC.js → desktop-pet-C1bTu_dG.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-BkMP5pdR.js → desktop-pet-settings-C2xCFimg.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-5kYuK9oW.js → device-pairing-wizard-CZ5Wmq5U.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-DIYIejyX.js → directory-picker-path-field-BaHQhI4z.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-QCUvXcP2.js → extension-debug-page-B1uMVNGe.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BMeQveJ_.js → extension-page-850m5tOc.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-CDOEBj7F.js → extension-provider-B-_CkaD2.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-D-M7P4HQ.js → extension-settings-page-P3FNAW0n.js} +1 -1
- package/dist/gateway/static/root/assets/{fallback-models-5DaUVrLS.js → fallback-models-BoJZA9Cm.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-CWIVt5XM.js → gateway-config-swr-siY2J0hx.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-DC8N3fNU.js → gateway-realtime-Biz18NiE.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BazlseY_.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-settings-DK2NzPkL.js → gateway-settings-BG1zXG8B.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-pVqdX0dO.js → gateway-startup-retry-CeL1OFDZ.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-A3oTV3Vq.js → home-page-B8RmZbDw.js} +1 -1
- package/dist/gateway/static/root/assets/{image-generation-api-CX6__We2.js → image-generation-api-CeDrok06.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-b0ILSTz1.js → imports-page-C9FTl2dW.js} +1 -1
- package/dist/gateway/static/root/assets/index-CGVecvp4.css +1 -0
- package/dist/gateway/static/root/assets/{index-Cz75qf5b.js → index-DU5FmDQh.js} +28 -28
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DGl7wSHG.js → keyboard-shortcuts-settings-Dx-36I-c.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page--W2QjBqz.js → local-app-workbench-page-Cg4gdTwm.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-8SQ85WLr.js → local-apps-page-3GKgu7at.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-LCEmswHW.js → local-session-drafts-DnSw14fE.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-UEl-U1DO.js → locale-store-DSsLH7JO.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-BAQeHGd4.js → logs-page-CApZnDPi.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-DoXDsSSN.js → management-settings-DcgCzPd-.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-DUo9Tl3H.js → markdown-view-2rwSrMXW.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-8zr2wlMR.js → media-plugins-CjGiKLFo.js} +1 -1
- package/dist/gateway/static/root/assets/messages-Cn25s55n.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-cache-DaqiLHPe.js +1 -0
- package/dist/gateway/static/root/assets/{note-detail-panel-Cg65uYJ3.js → note-detail-panel-CncL3xmy.js} +3 -3
- package/dist/gateway/static/root/assets/{notes-api-bDQOslzF.js → notes-api-D9fGUbkK.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-DDUlWJOk.js → notes-page-D9romxNU.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-o-i2_7Jz.js → page-context-capture-button-CKqYL9AQ.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-E9-LBR1_.js → personal-page-DoG-2fru.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-DWgjStlK.js → product-open-page-DFu_ZT2h.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-BWQRI242.js → product-preview-content-tPBCFa7L.js} +1 -1
- package/dist/gateway/static/root/assets/{project-detail-page-FjGobz6n.js → project-detail-page-C9Bt5toA.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-CVhXJp7f.js → projects-page-Bu3jZa3A.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-CftkuRz7.js → registry-api-ZhIt79wL.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-B2AcKWlb.js → remote-access-hub-C9MNGl2t.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DmOfq9ay.js → runtime-tools-settings-panel-BYQuPsWk.js} +1 -1
- package/dist/gateway/static/root/assets/{scenes-page-QQ2CiTee.js → scenes-page-7LjR8Aek.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-TbUx_9NF.js → schema-form-GwVc8KsT.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-D4c72mD6.js → send-session-input-B64q4_6R.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-DtpzfFNw.js → session-api-BUa3BaGX.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-BWLIDok4.js +16 -0
- package/dist/gateway/static/root/assets/{sessions-page-CquSXQHo.js → sessions-page-CzbNB_RT.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CmNe5RJ4.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-NncRVc1e.js → settings-page-DAvi3P8Q.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-t1vcGUsK.js → setup-status-panel-DoAn6P_k.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-DGUiTTZ3.js → share-link-dialog-CbkS1cj-.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-BDl6XGKm.js → share-preview-page-DicRCB4L.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-BIx5ji2U.js → shares-api-BUGeqXCG.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-DVM6xJuW.js → shares-settings-Bbkz0xuD.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-Crld1PEV.js → skill-api-DpTUuYWk.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-D2HAboLP.js → skill-reload-api-CII18PA5.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-DdD6C_Z8.js → skills-page-BuBSAOOd.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-DUro5X0b.js → system-settings-panel-DlNaQp-l.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-BYNcWubZ.js → task-detail-page-DeElbs6T.js} +1 -1
- package/dist/gateway/static/root/assets/{task-expandable-content-BKa2YEJy.js → task-expandable-content-sONbgbwR.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-ByAapAD7.js → theme-store-Kz0VUMSb.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-Dv-XBvpD.js → tracing-settings-page-CZHhm1Nn.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-C2_SEpMa.js → tunnel-api-sUbAaSX6.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-CqMzyGiK.js → usage-page-NPLApyNj.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-BhsYFV0o.js → use-autosave-CZzYhcAl.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-Bv4umde0.js → use-composer-attachments-Bb_Hqqry.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-CBVymo3h.js → use-file-preview-expanded-D4WI5JDn.js} +2 -2
- package/dist/gateway/static/root/assets/{user-model-page-EMn_nA9w.js → user-model-page-DAEiJzNV.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-DRoGFFs6.js → voice-api-key-field-CIIGmtHR.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-BwLiaw5J.js → voice-config-api-BtWFziQc.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DbH62mtI.js → work-discovery-overlay-DxRDLQvs.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BYfytB9q.js → workflow-run-setup-panel-Be_Rey6d.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-rJqJ9dQo.js → workflows-page-wJk7l1_H.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-BHy2a_hm.js → workspace-api-B5ssQs4p.js} +2 -2
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-DrAX_9m_.js → xopc-cloud-account-card-D7Rtu5eI.js} +1 -1
- package/dist/gateway/static/root/index.html +27 -27
- package/dist/package.js +1 -1
- package/dist/src/agent/session/session-config-service.js +2 -4
- package/dist/src/browser/native-messaging-host.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +2 -2
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/gateway/hono/app.js +1 -1
- package/dist/src/gateway/hono/routes/browser-install.js +1 -1
- package/dist/src/gateway/service/session-command-service.js +1 -1
- package/dist/src/gateway/service.js +4 -4
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/personal-agent/service.js +1 -11
- package/dist/src/providers/prompt-cache-payload.js +18 -22
- package/dist/src/session/config-store.js +1 -2
- package/dist/src/storage/sqlite/device-pairing-approval.js +1 -1
- package/dist/src/storage/sqlite/migrations/246_personal_session_thinking.sql +22 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/package.json +3 -3
- package/dist/gateway/static/root/assets/gateway-realtime-store-BkE2mHog.js +0 -1
- package/dist/gateway/static/root/assets/index-BGBkIIzM.css +0 -1
- package/dist/gateway/static/root/assets/messages-Uqz0xpsK.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-cache-3HOFy11k.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-De46GeR0.js +0 -16
- package/dist/gateway/static/root/assets/settings-advanced-gate-BOHKIN4t.js +0 -1
- package/dist/src/personal-agent/model-config.d.ts +0 -5
- package/dist/src/personal-agent/model-config.js +0 -59
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./cloud-C4-yfnnk.js";import{t as r}from"./external-link-DjqjBmc3.js";import{a as i,n as a,r as o}from"./locale-store-
|
|
1
|
+
import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./cloud-C4-yfnnk.js";import{t as r}from"./external-link-DjqjBmc3.js";import{a as i,n as a,r as o}from"./locale-store-DSsLH7JO.js";import{n as s,t as c}from"./cloud-credits-BMYMiiNn.js";import{i as l}from"./vendor-swr-BIWyz7Rc.js";import{t as u}from"./button-CS04eWY9.js";import{t as d}from"./skeleton-BwbyijEw.js";import{Uo as f,ho as p}from"./index-DU5FmDQh.js";var m=e(),h=t();async function g(){let e=await i(o(`/api/models/xopc-cloud/account-summary`));return c.parse(e.payload)}function _(e){let t=(0,m.c)(148),{labels:i}=e,o=a(v)===`zh`?`zh-CN`:`en-US`,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={refreshInterval:6e4,revalidateOnFocus:!0},t[0]=c):c=t[0];let{data:_,error:y,isLoading:b,isValidating:x,mutate:S}=l(`/api/models/xopc-cloud/account-summary`,g,c);if(b){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(d,{className:`h-40 w-full rounded-xl`}),t[1]=e):e=t[1],e}if(y||!_){let e;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(p,{className:`mt-0.5 size-4 shrink-0 text-amber-500`,"aria-hidden":!0}),t[2]=e):e=t[2];let n;t[3]===i.title?n=t[4]:(n=(0,h.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:i.title}),t[3]=i.title,t[4]=n);let r;t[5]===i.unavailable?r=t[6]:(r=(0,h.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:i.unavailable}),t[5]=i.unavailable,t[6]=r);let a;t[7]!==n||t[8]!==r?(a=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[e,(0,h.jsxs)(`div`,{children:[n,r]})]}),t[7]=n,t[8]=r,t[9]=a):a=t[9];let o;t[10]===S?o=t[11]:(o=()=>void S(),t[10]=S,t[11]=o);let s=x?`size-4 animate-spin`:`size-4`,c;t[12]===s?c=t[13]:(c=(0,h.jsx)(f,{className:s,"aria-hidden":!0}),t[12]=s,t[13]=c);let l;t[14]!==x||t[15]!==i.retry||t[16]!==o||t[17]!==c?(l=(0,h.jsxs)(u,{type:`button`,variant:`secondary`,disabled:x,onClick:o,children:[c,i.retry]}),t[14]=x,t[15]=i.retry,t[16]=o,t[17]=c,t[18]=l):l=t[18];let d;return t[19]!==a||t[20]!==l?(d=(0,h.jsx)(`section`,{className:`rounded-xl bg-surface-hover/25 p-4`,children:(0,h.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[a,l]})}),t[19]=a,t[20]=l,t[21]=d):d=t[21],d}let C,w,T,E,D,O,k,A,j,M;if(t[22]!==_.balance.availableCreditMicro||t[23]!==_.balance.expiring[0]||t[24]!==_.balance.grantedCreditMicro||t[25]!==_.balance.purchasedCreditMicro||t[26]!==_.balance.refundReservedCreditMicro||t[27]!==_.balance.usageReservedCreditMicro||t[28]!==_.links.details||t[29]!==_.links.purchase||t[30]!==_.usage.chargedCreditMicro||t[31]!==_.usage.requests||t[32]!==_.usage.totalTokens||t[33]!==i.availableCredits||t[34]!==i.connected||t[35]!==i.details||t[36]!==i.expiring||t[37]!==i.granted||t[38]!==i.purchase||t[39]!==i.purchased||t[40]!==i.recentUsage||t[41]!==i.reserved||t[42]!==i.title||t[43]!==i.tokenUsage||t[44]!==i.usageSummary||t[45]!==i.zeroBalance||t[46]!==o){let e=new Intl.NumberFormat(o),a=i.usageSummary.replace(`{{credits}}`,s(_.usage.chargedCreditMicro)).replace(`{{requests}}`,e.format(_.usage.requests));C=`rounded-xl bg-surface-hover/40 p-4 sm:p-5`;let c;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,h.jsx)(n,{className:`size-4 text-accent-fg`,"aria-hidden":!0}),t[57]=c):c=t[57];let l;t[58]===i.title?l=t[59]:(l=(0,h.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:i.title}),t[58]=i.title,t[59]=l);let d;t[60]===i.connected?d=t[61]:(d=(0,h.jsx)(`span`,{className:`rounded-full bg-emerald-500/10 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:text-emerald-300`,children:i.connected}),t[60]=i.connected,t[61]=d);let f;t[62]!==l||t[63]!==d?(f=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[c,l,d]}),t[62]=l,t[63]=d,t[64]=f):f=t[64];let p;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(r,{className:`size-3.5`,"aria-hidden":!0}),t[65]=p):p=t[65];let m;t[66]!==_.links.purchase||t[67]!==i.purchase?(m=(0,h.jsx)(u,{asChild:!0,variant:`primary`,children:(0,h.jsxs)(`a`,{href:_.links.purchase,target:`_blank`,rel:`noreferrer`,children:[i.purchase,p]})}),t[66]=_.links.purchase,t[67]=i.purchase,t[68]=m):m=t[68];let g;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,h.jsx)(r,{className:`size-3.5`,"aria-hidden":!0}),t[69]=g):g=t[69];let v;t[70]!==_.links.details||t[71]!==i.details?(v=(0,h.jsx)(u,{asChild:!0,variant:`secondary`,children:(0,h.jsxs)(`a`,{href:_.links.details,target:`_blank`,rel:`noreferrer`,children:[i.details,g]})}),t[70]=_.links.details,t[71]=i.details,t[72]=v):v=t[72];let y;t[73]!==m||t[74]!==v?(y=(0,h.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[m,v]}),t[73]=m,t[74]=v,t[75]=y):y=t[75],t[76]!==f||t[77]!==y?(w=(0,h.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[f,y]}),t[76]=f,t[77]=y,t[78]=w):w=t[78],j=`mt-4 grid gap-4 rounded-lg bg-surface-base/45 p-3 sm:grid-cols-[minmax(12rem,0.7fr)_minmax(0,1.3fr)] sm:gap-6`;let b;t[79]===i.availableCredits?b=t[80]:(b=(0,h.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:i.availableCredits}),t[79]=i.availableCredits,t[80]=b);let x;t[81]===_.balance.availableCreditMicro?x=t[82]:(x=s(_.balance.availableCreditMicro),t[81]=_.balance.availableCreditMicro,t[82]=x);let S;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(`span`,{className:`ml-2 text-sm font-medium text-fg-muted`,children:`Credits`}),t[83]=S):S=t[83];let N;t[84]===x?N=t[85]:(N=(0,h.jsxs)(`p`,{className:`mt-1 text-2xl font-semibold tracking-tight text-fg`,children:[x,S]}),t[84]=x,t[85]=N);let P;t[86]!==_.balance.availableCreditMicro||t[87]!==i.zeroBalance?(P=_.balance.availableCreditMicro===`0`?(0,h.jsx)(`p`,{className:`mt-1 text-sm font-medium text-danger`,children:i.zeroBalance}):null,t[86]=_.balance.availableCreditMicro,t[87]=i.zeroBalance,t[88]=P):P=t[88];let F=i.purchased,I;t[89]===_.balance.purchasedCreditMicro?I=t[90]:(I=s(_.balance.purchasedCreditMicro),t[89]=_.balance.purchasedCreditMicro,t[90]=I);let L;t[91]!==i.purchased||t[92]!==I?(L=(0,h.jsxs)(`div`,{children:[F,`: `,I,` Credits`]}),t[91]=i.purchased,t[92]=I,t[93]=L):L=t[93];let R=i.granted,z;t[94]===_.balance.grantedCreditMicro?z=t[95]:(z=s(_.balance.grantedCreditMicro),t[94]=_.balance.grantedCreditMicro,t[95]=z);let B;t[96]!==i.granted||t[97]!==z?(B=(0,h.jsxs)(`div`,{children:[R,`: `,z,` Credits`]}),t[96]=i.granted,t[97]=z,t[98]=B):B=t[98];let V=i.reserved,H=String(BigInt(_.balance.usageReservedCreditMicro)+BigInt(_.balance.refundReservedCreditMicro)),U;t[99]===H?U=t[100]:(U=s(H),t[99]=H,t[100]=U);let W;t[101]!==i.reserved||t[102]!==U?(W=(0,h.jsxs)(`div`,{children:[V,`: `,U,` Credits`]}),t[101]=i.reserved,t[102]=U,t[103]=W):W=t[103];let G;t[104]!==L||t[105]!==B||t[106]!==W?(G=(0,h.jsxs)(`div`,{className:`mt-2 space-y-1 text-xs text-fg-muted`,children:[L,B,W]}),t[104]=L,t[105]=B,t[106]=W,t[107]=G):G=t[107];let K;t[108]!==_.balance.expiring[0]||t[109]!==i.expiring||t[110]!==o?(K=_.balance.expiring[0]?(0,h.jsx)(`p`,{className:`mt-2 text-xs text-amber-600 dark:text-amber-400`,children:i.expiring.replace(`{{credits}}`,s(_.balance.expiring[0].creditMicro)).replace(`{{date}}`,new Date(_.balance.expiring[0].expiresAt).toLocaleDateString(o))}):null,t[108]=_.balance.expiring[0],t[109]=i.expiring,t[110]=o,t[111]=K):K=t[111],t[112]!==b||t[113]!==N||t[114]!==P||t[115]!==G||t[116]!==K?(M=(0,h.jsxs)(`div`,{children:[b,N,P,G,K]}),t[112]=b,t[113]=N,t[114]=P,t[115]=G,t[116]=K,t[117]=M):M=t[117],t[118]===i.recentUsage?k=t[119]:(k=(0,h.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:i.recentUsage}),t[118]=i.recentUsage,t[119]=k),A=(0,h.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:a}),D=`mt-2 text-xs text-fg-subtle`,t[120]===i.tokenUsage?O=t[121]:(O=(0,h.jsx)(`summary`,{className:`cursor-pointer`,children:i.tokenUsage}),t[120]=i.tokenUsage,t[121]=O),T=`mt-1`,E=e.format(_.usage.totalTokens),t[22]=_.balance.availableCreditMicro,t[23]=_.balance.expiring[0],t[24]=_.balance.grantedCreditMicro,t[25]=_.balance.purchasedCreditMicro,t[26]=_.balance.refundReservedCreditMicro,t[27]=_.balance.usageReservedCreditMicro,t[28]=_.links.details,t[29]=_.links.purchase,t[30]=_.usage.chargedCreditMicro,t[31]=_.usage.requests,t[32]=_.usage.totalTokens,t[33]=i.availableCredits,t[34]=i.connected,t[35]=i.details,t[36]=i.expiring,t[37]=i.granted,t[38]=i.purchase,t[39]=i.purchased,t[40]=i.recentUsage,t[41]=i.reserved,t[42]=i.title,t[43]=i.tokenUsage,t[44]=i.usageSummary,t[45]=i.zeroBalance,t[46]=o,t[47]=C,t[48]=w,t[49]=T,t[50]=E,t[51]=D,t[52]=O,t[53]=k,t[54]=A,t[55]=j,t[56]=M}else C=t[47],w=t[48],T=t[49],E=t[50],D=t[51],O=t[52],k=t[53],A=t[54],j=t[55],M=t[56];let N;t[122]!==T||t[123]!==E?(N=(0,h.jsxs)(`p`,{className:T,children:[E,` tokens`]}),t[122]=T,t[123]=E,t[124]=N):N=t[124];let P;t[125]!==N||t[126]!==D||t[127]!==O?(P=(0,h.jsxs)(`details`,{className:D,children:[O,N]}),t[125]=N,t[126]=D,t[127]=O,t[128]=P):P=t[128];let F;t[129]!==_.balance.updatedAt||t[130]!==i.updatedAt||t[131]!==o?(F=i.updatedAt.replace(`{{time}}`,new Date(_.balance.updatedAt).toLocaleString(o)),t[129]=_.balance.updatedAt,t[130]=i.updatedAt,t[131]=o,t[132]=F):F=t[132];let I;t[133]===F?I=t[134]:(I=(0,h.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:F}),t[133]=F,t[134]=I);let L;t[135]!==P||t[136]!==I||t[137]!==k||t[138]!==A?(L=(0,h.jsxs)(`div`,{children:[k,A,P,I]}),t[135]=P,t[136]=I,t[137]=k,t[138]=A,t[139]=L):L=t[139];let R;t[140]!==L||t[141]!==j||t[142]!==M?(R=(0,h.jsxs)(`div`,{className:j,children:[M,L]}),t[140]=L,t[141]=j,t[142]=M,t[143]=R):R=t[143];let z;return t[144]!==C||t[145]!==w||t[146]!==R?(z=(0,h.jsxs)(`section`,{className:C,children:[w,R]}),t[144]=C,t[145]=w,t[146]=R,t[147]=z):z=t[147],z}function v(e){return e.language}export{_ as t};
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260910-1" />
|
|
12
12
|
<link rel="manifest" href="/site.webmanifest?v=20260910-1" />
|
|
13
13
|
<title>XOPC — Keep what matters moving.</title>
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-DU5FmDQh.js"></script>
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/download-Dk-ZjtO6.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/plus-Q2yW6OE7.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/x-B_N4OPjy.js">
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/messages-
|
|
29
|
-
<link rel="modulepreload" crossorigin href="/assets/locale-store-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/messages-Cn25s55n.js">
|
|
29
|
+
<link rel="modulepreload" crossorigin href="/assets/locale-store-DSsLH7JO.js">
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/assets/cn-JdwAhgNB.js">
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/schemas-CObaziC7.js">
|
|
32
32
|
<link rel="modulepreload" crossorigin href="/assets/local-apps-yys1VChX.js">
|
|
33
33
|
<link rel="modulepreload" crossorigin href="/assets/product-delivery-BAks11S4.js">
|
|
34
34
|
<link rel="modulepreload" crossorigin href="/assets/app-link-4gpFbdsr.js">
|
|
35
35
|
<link rel="modulepreload" crossorigin href="/assets/copy-to-clipboard-HOJ79TWv.js">
|
|
36
|
-
<link rel="modulepreload" crossorigin href="/assets/markdown-view-
|
|
36
|
+
<link rel="modulepreload" crossorigin href="/assets/markdown-view-2rwSrMXW.js">
|
|
37
37
|
<link rel="modulepreload" crossorigin href="/assets/check-DUBLcKHA.js">
|
|
38
38
|
<link rel="modulepreload" crossorigin href="/assets/copy-Dv6d4Dvw.js">
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/button-CS04eWY9.js">
|
|
@@ -69,29 +69,29 @@
|
|
|
69
69
|
<link rel="modulepreload" crossorigin href="/assets/rotate-cw-LIg3Am9S.js">
|
|
70
70
|
<link rel="modulepreload" crossorigin href="/assets/search-DA7gz22f.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="/assets/index.module-Cd9ENXfk.js">
|
|
72
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-
|
|
73
|
-
<link rel="modulepreload" crossorigin href="/assets/session-api-
|
|
72
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-CeL1OFDZ.js">
|
|
73
|
+
<link rel="modulepreload" crossorigin href="/assets/session-api-BUa3BaGX.js">
|
|
74
74
|
<link rel="modulepreload" crossorigin href="/assets/constants-Dy8Gw0sF.js">
|
|
75
75
|
<link rel="modulepreload" crossorigin href="/assets/app-chrome-BeB4KgOf.js">
|
|
76
76
|
<link rel="modulepreload" crossorigin href="/assets/attachment-utils-core-BIOUBrpT.js">
|
|
77
77
|
<link rel="modulepreload" crossorigin href="/assets/files-Bw4SBGdM.js">
|
|
78
|
-
<link rel="modulepreload" crossorigin href="/assets/workspace-api-
|
|
78
|
+
<link rel="modulepreload" crossorigin href="/assets/workspace-api-B5ssQs4p.js">
|
|
79
79
|
<link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/use-async-resource-GrnWNwMZ.js">
|
|
81
|
-
<link rel="modulepreload" crossorigin href="/assets/activity-store-
|
|
82
|
-
<link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-
|
|
81
|
+
<link rel="modulepreload" crossorigin href="/assets/activity-store-BVtU6S1w.js">
|
|
82
|
+
<link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-D4WI5JDn.js">
|
|
83
83
|
<link rel="modulepreload" crossorigin href="/assets/mic-CuUb7zc-.js">
|
|
84
84
|
<link rel="modulepreload" crossorigin href="/assets/globe-DSSGFWFn.js">
|
|
85
|
-
<link rel="modulepreload" crossorigin href="/assets/share-link-dialog-
|
|
86
|
-
<link rel="modulepreload" crossorigin href="/assets/local-session-drafts-
|
|
85
|
+
<link rel="modulepreload" crossorigin href="/assets/share-link-dialog-CbkS1cj-.js">
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assets/local-session-drafts-DnSw14fE.js">
|
|
87
87
|
<link rel="modulepreload" crossorigin href="/assets/tasks-DwKXgZ-I.js">
|
|
88
|
-
<link rel="modulepreload" crossorigin href="/assets/capabilities-
|
|
88
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-LpGa-olH.js">
|
|
89
89
|
<link rel="modulepreload" crossorigin href="/assets/skill-wire-pattern-BPpeIcCi.js">
|
|
90
|
-
<link rel="modulepreload" crossorigin href="/assets/shares-api-
|
|
91
|
-
<link rel="modulepreload" crossorigin href="/assets/capabilities-
|
|
92
|
-
<link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-
|
|
90
|
+
<link rel="modulepreload" crossorigin href="/assets/shares-api-BUGeqXCG.js">
|
|
91
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-HaRLmYU1.js">
|
|
92
|
+
<link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-Bb_Hqqry.js">
|
|
93
93
|
<link rel="modulepreload" crossorigin href="/assets/git-branch-Dh9uxTot.js">
|
|
94
|
-
<link rel="modulepreload" crossorigin href="/assets/notes-api-
|
|
94
|
+
<link rel="modulepreload" crossorigin href="/assets/notes-api-D9fGUbkK.js">
|
|
95
95
|
<link rel="modulepreload" crossorigin href="/assets/message-square-fVE7Ghj1.js">
|
|
96
96
|
<link rel="modulepreload" crossorigin href="/assets/pause-DuPxgSxk.js">
|
|
97
97
|
<link rel="modulepreload" crossorigin href="/assets/play-kxZvpBg8.js">
|
|
@@ -99,24 +99,24 @@
|
|
|
99
99
|
<link rel="modulepreload" crossorigin href="/assets/settings-2-D-csvaET.js">
|
|
100
100
|
<link rel="modulepreload" crossorigin href="/assets/sparkles-DHlfQFAF.js">
|
|
101
101
|
<link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
|
|
102
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-
|
|
103
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-
|
|
102
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-BazlseY_.js">
|
|
103
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-Biz18NiE.js">
|
|
104
104
|
<link rel="modulepreload" crossorigin href="/assets/tool-activity-BtJkgjFf.js">
|
|
105
|
-
<link rel="modulepreload" crossorigin href="/assets/registry-api-
|
|
106
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-
|
|
107
|
-
<link rel="modulepreload" crossorigin href="/assets/agents-admin-api-
|
|
108
|
-
<link rel="modulepreload" crossorigin href="/assets/session-manager-
|
|
109
|
-
<link rel="modulepreload" crossorigin href="/assets/send-session-input-
|
|
110
|
-
<link rel="modulepreload" crossorigin href="/assets/theme-store-
|
|
111
|
-
<link rel="modulepreload" crossorigin href="/assets/extension-provider-
|
|
105
|
+
<link rel="modulepreload" crossorigin href="/assets/registry-api-ZhIt79wL.js">
|
|
106
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-siY2J0hx.js">
|
|
107
|
+
<link rel="modulepreload" crossorigin href="/assets/agents-admin-api-DgQph1Pu.js">
|
|
108
|
+
<link rel="modulepreload" crossorigin href="/assets/session-manager-BWLIDok4.js">
|
|
109
|
+
<link rel="modulepreload" crossorigin href="/assets/send-session-input-B64q4_6R.js">
|
|
110
|
+
<link rel="modulepreload" crossorigin href="/assets/theme-store-Kz0VUMSb.js">
|
|
111
|
+
<link rel="modulepreload" crossorigin href="/assets/extension-provider-B-_CkaD2.js">
|
|
112
112
|
<link rel="modulepreload" crossorigin href="/assets/loopi-Djb8XU3l.js">
|
|
113
|
-
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-
|
|
113
|
+
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-DaqiLHPe.js">
|
|
114
114
|
<link rel="modulepreload" crossorigin href="/assets/skill-api-utils-C7V4JVXM.js">
|
|
115
115
|
<link rel="modulepreload" crossorigin href="/assets/date-formatters-CUZAyDEg.js">
|
|
116
116
|
<link rel="modulepreload" crossorigin href="/assets/settings-form-draft-Dy10ldo8.js">
|
|
117
117
|
<link rel="stylesheet" crossorigin href="/assets/markdown-view-DSjfHfaW.css">
|
|
118
118
|
<link rel="stylesheet" crossorigin href="/assets/loopi-C09I2mNj.css">
|
|
119
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
119
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CGVecvp4.css">
|
|
120
120
|
</head>
|
|
121
121
|
<body>
|
|
122
122
|
<div id="root"></div>
|
package/dist/package.js
CHANGED
|
@@ -8,7 +8,6 @@ import { normalizeWorkingDirectoryInput } from "../../session/session-workspace.
|
|
|
8
8
|
import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
9
9
|
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
10
10
|
import { getModelThinking } from "../../providers/model-thinking.js";
|
|
11
|
-
import { savePersonalModelConfig } from "../../personal-agent/model-config.js";
|
|
12
11
|
import { normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel } from "../transcript/thinking-types.js";
|
|
13
12
|
import "../../session/index.js";
|
|
14
13
|
import { mkdir } from "node:fs/promises";
|
|
@@ -28,8 +27,7 @@ var SessionConfigService = class {
|
|
|
28
27
|
* invalid field. Model and thinking are validated together and committed in one write.
|
|
29
28
|
*/
|
|
30
29
|
async patch(conversationId, partial) {
|
|
31
|
-
const
|
|
32
|
-
const configuredThinking = personal ? void 0 : resolveEffectiveAgentConfigForSession(conversationId).config.runtime.thinkingLevel;
|
|
30
|
+
const configuredThinking = isPersonalConversation(conversationId) ? void 0 : resolveEffectiveAgentConfigForSession(conversationId).config.runtime.thinkingLevel;
|
|
33
31
|
if (configuredThinking && partial.thinkingLevel !== void 0 && partial.thinkingLevel !== configuredThinking) return {
|
|
34
32
|
ok: false,
|
|
35
33
|
code: "INVALID_THINKING",
|
|
@@ -70,7 +68,7 @@ var SessionConfigService = class {
|
|
|
70
68
|
};
|
|
71
69
|
const thinkingLevel = requested ?? chooseModelThinking(capabilities, existing?.thinkingLevel);
|
|
72
70
|
const modelRef = `${model.provider}/${model.id}`;
|
|
73
|
-
const updated =
|
|
71
|
+
const updated = await this.opts.sessionConfigStore.update(conversationId, {
|
|
74
72
|
modelOverride: modelRef,
|
|
75
73
|
thinkingLevel,
|
|
76
74
|
fixedModel: partial.fixedModel ?? existing?.fixedModel ?? false
|
|
@@ -4,8 +4,8 @@ import { init_src } from "../../packages/gateway-contract/src/index.js";
|
|
|
4
4
|
import { getGatewayIdentityPublicKeyRaw, getOrCreateGatewayIdentity, init_gateway_identity_repository } from "../storage/sqlite/gateway-identity-repository.js";
|
|
5
5
|
import { createDevicePairingSetup, init_device_pairing_repository } from "../storage/sqlite/device-pairing-repository.js";
|
|
6
6
|
import { loadConfig } from "../config/loader.js";
|
|
7
|
-
import { browserEnrollmentPublicKeyThumbprint } from "./enrollment.js";
|
|
8
7
|
import { BROWSER_EXTENSION_ID, BROWSER_NATIVE_HOST_NAME } from "./extension-identity.js";
|
|
8
|
+
import { browserEnrollmentPublicKeyThumbprint } from "./enrollment.js";
|
|
9
9
|
import os from "node:os";
|
|
10
10
|
//#region src/browser/native-messaging-host.ts
|
|
11
11
|
init_src();
|
|
@@ -4,10 +4,10 @@ import { createLogger } from "../../utils/logger/index.js";
|
|
|
4
4
|
import { init_logger } from "../../utils/logger.js";
|
|
5
5
|
import { init_write_file_atomic, writeTextAtomic } from "../../infra/write-file-atomic.js";
|
|
6
6
|
import { init_paths, resolveBinDir, resolveConfigPath } from "../../config/paths.js";
|
|
7
|
-
import {
|
|
7
|
+
import { resolvePackageRoot } from "../../infra/update-check.js";
|
|
8
8
|
import { BROWSER_EXTENSION_ID, BROWSER_NATIVE_HOST_NAME } from "../extension-identity.js";
|
|
9
|
+
import { assertCacheDir } from "../cache-dir-policy.js";
|
|
9
10
|
import "../native-messaging-host.js";
|
|
10
|
-
import { resolvePackageRoot } from "../../infra/update-check.js";
|
|
11
11
|
import { dirname, join } from "node:path";
|
|
12
12
|
import { chmodSync, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
13
13
|
import { fileURLToPath } from "node:url";
|
|
@@ -53,7 +53,7 @@ async function checkDatabaseSchema(ctx) {
|
|
|
53
53
|
id: "database-schema",
|
|
54
54
|
label: "Database schema",
|
|
55
55
|
status: "pass",
|
|
56
|
-
message: `SQLite schema v${status.dbVersion} (current release
|
|
56
|
+
message: `SQLite schema v${status.dbVersion} (current release v246).`,
|
|
57
57
|
hints: []
|
|
58
58
|
};
|
|
59
59
|
}
|
|
@@ -5,8 +5,8 @@ import { resolveGatewayLocalClientHost } from "../../config/gateway-bind.js";
|
|
|
5
5
|
import { saveConfig } from "../../config/loader.js";
|
|
6
6
|
import { formatExamples, register } from "../registry.js";
|
|
7
7
|
import "../../config/index.js";
|
|
8
|
-
import { colors } from "../utils/colors.js";
|
|
9
8
|
import { provisionEagerRuntimes } from "../../runtime-tools/bootstrap.js";
|
|
9
|
+
import { colors } from "../utils/colors.js";
|
|
10
10
|
import { initWorkspace } from "../utils/init-workspace.js";
|
|
11
11
|
import { setupModel } from "./onboard/model.js";
|
|
12
12
|
import { getChannelConfigurators } from "./onboard/channels/registry.js";
|
|
@@ -7,10 +7,10 @@ import { resolveGatewayEffectiveHost } from "../../config/gateway-bind.js";
|
|
|
7
7
|
import { loadTunnelState } from "../../tunnel/tunnel-state.js";
|
|
8
8
|
import { resolveReverseProxyPublicUrl } from "../public-url.js";
|
|
9
9
|
import { maxSessionInputRequestBodyBytes } from "../chat-limits.js";
|
|
10
|
-
import { BROWSER_EXTENSION_ID } from "../../browser/extension-identity.js";
|
|
11
10
|
import { isLoopbackIpAddress, isTrustedProxyAddress } from "../client-ip.js";
|
|
12
11
|
import { buildGatewayConsoleCspHeader } from "../security/csp.js";
|
|
13
12
|
import { checkBrowserOrigin, isChromeExtensionOrigin } from "../security/origin-check.js";
|
|
13
|
+
import { BROWSER_EXTENSION_ID } from "../../browser/extension-identity.js";
|
|
14
14
|
import { auth } from "./middleware/auth.js";
|
|
15
15
|
import { gatewayScopes } from "./middleware/scopes.js";
|
|
16
16
|
import { createChannelRateLimitMiddleware, createChatRateLimitMiddleware, createMediaRateLimitMiddleware, createStrictRateLimitMiddleware, createTaskRateLimitMiddleware, createXopcCloudPollRateLimitMiddleware } from "./middleware/strict-rate-limit.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { acquireBrowserInstallLock, cancelBrowserInstall } from "../../../browser/install-lock.js";
|
|
2
1
|
import { createGatewayRouteLogger } from "../lib/route-logger.js";
|
|
2
|
+
import { acquireBrowserInstallLock, cancelBrowserInstall } from "../../../browser/install-lock.js";
|
|
3
3
|
import { runPlaywrightChromiumInstallWithProgress } from "../../../browser/providers/playwright-install.js";
|
|
4
4
|
import { streamSSE } from "hono/streaming";
|
|
5
5
|
//#region src/gateway/hono/routes/browser-install.ts
|
|
@@ -28,7 +28,7 @@ async function receiveSessionCommand(service, conversationId, principalId, comma
|
|
|
28
28
|
const receive = () => withModelConfigLock(conversationId, async () => {
|
|
29
29
|
const personal = getPersonalAgentByConversation(conversationId);
|
|
30
30
|
if (personal && "creation" in command && command.creation.agentId !== personal.agentId) throw new SessionCommandError("BAD_REQUEST", "Personal AI identity is fixed");
|
|
31
|
-
const configuredThinking = ("creation" in command ? resolveEffectiveAgentConfigForAgent(command.creation.agentId) : resolveEffectiveAgentConfigForSession(conversationId)).config.runtime.thinkingLevel;
|
|
31
|
+
const configuredThinking = personal ? void 0 : ("creation" in command ? resolveEffectiveAgentConfigForAgent(command.creation.agentId) : resolveEffectiveAgentConfigForSession(conversationId)).config.runtime.thinkingLevel;
|
|
32
32
|
if (configuredThinking && "creation" in command && command.creation.thinkingLevel !== configuredThinking) throw new SessionCommandError("BAD_REQUEST", `This agent uses thinking ${configuredThinking}`);
|
|
33
33
|
const clientMessageId = "commandId" in command ? command.commandId : command.clientMessageId;
|
|
34
34
|
const existing = matchSessionInputReceipt(conversationId, clientMessageId, principalId, sessionCommandHash(command));
|
|
@@ -94,10 +94,6 @@ import { DiscussionSealer } from "../discussions/sealer.js";
|
|
|
94
94
|
import "../discussions/index.js";
|
|
95
95
|
import { EndpointToolRuntime } from "../endpoint-tools/runtime.js";
|
|
96
96
|
import "../endpoint-tools/index.js";
|
|
97
|
-
import { HomeCapabilityPreflightService } from "../home-intelligence/capability-preflight.js";
|
|
98
|
-
import { HomeAdviceGenerator } from "../home-intelligence/generator.js";
|
|
99
|
-
import { HomeIntelligenceHost } from "../home-intelligence/host.js";
|
|
100
|
-
import { HomeSnapshotBuilder } from "../home-intelligence/snapshot.js";
|
|
101
97
|
import { assertGatewayAuthConfigured, extractToken, resolveGatewayAuth, validateToken } from "./auth.js";
|
|
102
98
|
import { prepareAutomationAgentSession } from "./automation-agent-session.js";
|
|
103
99
|
import { stopTailscaleExposure } from "./tailscale-lifecycle.js";
|
|
@@ -159,6 +155,10 @@ import { TaskMainUpdateDecisionService } from "../tasks/task-main-update-decisio
|
|
|
159
155
|
import { selectTaskMainUpdateAttempt, submitAndConfirmTaskMainUpdate } from "../tasks/task-main-update-input.js";
|
|
160
156
|
import { checkAppContextAccess, prepareAppContext } from "./service/app-context-access.js";
|
|
161
157
|
import { applyAutomaticVoiceLanguage, inferProductLanguageFromEnvironment, initializeVoiceDefaults } from "../voice/language-profile.js";
|
|
158
|
+
import { HomeAdviceGenerator } from "../home-intelligence/generator.js";
|
|
159
|
+
import { HomeIntelligenceHost } from "../home-intelligence/host.js";
|
|
160
|
+
import { HomeSnapshotBuilder } from "../home-intelligence/snapshot.js";
|
|
161
|
+
import { HomeCapabilityPreflightService } from "../home-intelligence/capability-preflight.js";
|
|
162
162
|
import crypto from "node:crypto";
|
|
163
163
|
//#region src/gateway/service.ts
|
|
164
164
|
init_session_repository();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../utils/logger.js";
|
|
3
|
+
import { HomeAdviceBudgetExceededError, isHomeProseLocalized } from "./generator.js";
|
|
3
4
|
import { homePatternKey } from "./strategy.js";
|
|
5
|
+
import { HomeAdvicePolicy } from "./policy.js";
|
|
4
6
|
import { HomeIntelligenceRepository } from "./repository.js";
|
|
5
7
|
import { HomeOpportunityApplicationService } from "./application-service.js";
|
|
6
|
-
import { HomeAdvicePolicy } from "./policy.js";
|
|
7
|
-
import { HomeAdviceBudgetExceededError, isHomeProseLocalized } from "./generator.js";
|
|
8
8
|
import { buildHomeOpportunityNotification } from "./notification.js";
|
|
9
9
|
import { createHash } from "node:crypto";
|
|
10
10
|
//#region src/home-intelligence/host.ts
|
|
@@ -120,22 +120,12 @@ async function provisionPersonalAgent(service, ownerId, requestedModel, availabl
|
|
|
120
120
|
mode: "replace",
|
|
121
121
|
include: []
|
|
122
122
|
},
|
|
123
|
-
runtime: { thinkingLevel: "off" },
|
|
124
123
|
models: { chat: {
|
|
125
124
|
primary: chosen.id,
|
|
126
125
|
fallbacks: []
|
|
127
126
|
} }
|
|
128
127
|
});
|
|
129
|
-
else if (existing.provisioningState !== "ready"
|
|
130
|
-
models: { chat: {
|
|
131
|
-
primary: chosen.id,
|
|
132
|
-
fallbacks: []
|
|
133
|
-
} },
|
|
134
|
-
runtime: {
|
|
135
|
-
...existing.runtime,
|
|
136
|
-
thinkingLevel: "off"
|
|
137
|
-
}
|
|
138
|
-
});
|
|
128
|
+
else if (existing.provisioningState !== "ready") await catalog.update(agentId, {});
|
|
139
129
|
const record = getPersonalAgent(ownerId);
|
|
140
130
|
if (!record) throw new Error("Personal Agent provisioning did not complete");
|
|
141
131
|
const conversationId = record.conversationId;
|
|
@@ -180,7 +180,7 @@ function addOpenAIHistoryBreakpoint(items) {
|
|
|
180
180
|
};
|
|
181
181
|
return next;
|
|
182
182
|
}
|
|
183
|
-
if (!("content" in item)) continue;
|
|
183
|
+
if (item.role === "system" || item.role === "developer" || !("content" in item)) continue;
|
|
184
184
|
if (index === next.length - 1 && item.role === "user") continue;
|
|
185
185
|
const content = addBreakpointToContent(item.content);
|
|
186
186
|
if (content === item.content) continue;
|
|
@@ -198,30 +198,25 @@ function applyOpenAIExplicitCache(payload, context, cacheKey) {
|
|
|
198
198
|
const split = splitPromptCacheBoundary(context.systemPrompt ?? "");
|
|
199
199
|
const stablePrompt = split?.stablePrefix ?? stripPromptCacheBoundary(context.systemPrompt ?? "");
|
|
200
200
|
const dynamicPrompt = split?.dynamicSuffix ?? "";
|
|
201
|
-
const stableContent = [{
|
|
202
|
-
type: "input_text",
|
|
203
|
-
text: stablePrompt,
|
|
204
|
-
prompt_cache_breakpoint: { mode: "explicit" }
|
|
205
|
-
}];
|
|
206
|
-
const dynamicContent = [{
|
|
207
|
-
type: "input_text",
|
|
208
|
-
text: dynamicPrompt
|
|
209
|
-
}];
|
|
210
201
|
if (Array.isArray(record.input)) {
|
|
211
|
-
const
|
|
212
|
-
const
|
|
202
|
+
const input = [...record.input];
|
|
203
|
+
const initialMessage = asRecord(input[0]);
|
|
204
|
+
const content = initialMessage?.content;
|
|
205
|
+
const initialText = typeof content === "string" ? content : Array.isArray(content) && content.length === 1 && asRecord(content[0])?.type === "input_text" ? asRecord(content[0])?.text : void 0;
|
|
206
|
+
if ((initialMessage?.role === "system" || initialMessage?.role === "developer") && initialText === stripPromptCacheBoundary(context.systemPrompt ?? "") && stablePrompt) input[0] = {
|
|
207
|
+
...initialMessage,
|
|
208
|
+
content: [{
|
|
209
|
+
type: "input_text",
|
|
210
|
+
text: stablePrompt,
|
|
211
|
+
prompt_cache_breakpoint: { mode: "explicit" }
|
|
212
|
+
}, ...dynamicPrompt ? [{
|
|
213
|
+
type: "input_text",
|
|
214
|
+
text: dynamicPrompt
|
|
215
|
+
}] : []]
|
|
216
|
+
};
|
|
213
217
|
return {
|
|
214
218
|
...record,
|
|
215
|
-
|
|
216
|
-
type: "message",
|
|
217
|
-
role: "system",
|
|
218
|
-
content: stableContent
|
|
219
|
-
}, ...dynamicPrompt ? [{
|
|
220
|
-
type: "message",
|
|
221
|
-
role: "system",
|
|
222
|
-
content: dynamicContent
|
|
223
|
-
}] : []] } : {},
|
|
224
|
-
input: addOpenAIHistoryBreakpoint(record.input),
|
|
219
|
+
input: addOpenAIHistoryBreakpoint(input),
|
|
225
220
|
prompt_cache_key: cacheKey,
|
|
226
221
|
prompt_cache_options: {
|
|
227
222
|
mode: "explicit",
|
|
@@ -259,6 +254,7 @@ function preparePromptCacheContext(model, context) {
|
|
|
259
254
|
}
|
|
260
255
|
function withPromptCachePayloadTransform(model, context, options, policyInput) {
|
|
261
256
|
const plan = buildPromptCachePlan(model, context, policyInput, options?.reasoning);
|
|
257
|
+
if (plan.providerMode === "explicit" && model.provider === "openai" && model.baseUrl === "https://api.openai.com/v1" && options?.apiKey !== void 0 && !options.apiKey.startsWith("sk-")) plan.providerMode = "implicit";
|
|
262
258
|
const upstream = options?.onPayload;
|
|
263
259
|
const cacheRetention = model.api === "anthropic-messages" || model.api === "bedrock-converse-stream" ? plan.providerMode === "none" ? "none" : plan.policy.lifetime : "none";
|
|
264
260
|
return {
|
|
@@ -3,7 +3,6 @@ import { init_logger } from "../utils/logger.js";
|
|
|
3
3
|
import { requireXopcDatabase } from "../storage/sqlite/connection.js";
|
|
4
4
|
import { deleteSessionConfig, getSessionConfig, hasSessionConfig, setSessionConfig, updateSessionConfig } from "../storage/sqlite/config-repository.js";
|
|
5
5
|
import { init_sqlite } from "../storage/sqlite/index.js";
|
|
6
|
-
import { syncPersonalModelConfig } from "../personal-agent/model-config.js";
|
|
7
6
|
//#region src/session/config-store.ts
|
|
8
7
|
init_sqlite();
|
|
9
8
|
init_logger();
|
|
@@ -22,7 +21,7 @@ var SessionConfigStore = class {
|
|
|
22
21
|
}
|
|
23
22
|
async get(conversationId) {
|
|
24
23
|
this.requireDatabase();
|
|
25
|
-
return
|
|
24
|
+
return getSessionConfig(conversationId);
|
|
26
25
|
}
|
|
27
26
|
async set(conversationId, config) {
|
|
28
27
|
this.requireDatabase();
|
|
@@ -5,8 +5,8 @@ import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
|
5
5
|
import { init_gateway_scopes } from "../../gateway/security/gateway-scopes.js";
|
|
6
6
|
import { createDevice, getDevice, init_device_access_repository, registerInitialDeviceRefreshToken, revokeDevice } from "./device-access-repository.js";
|
|
7
7
|
import { getOrCreateGatewayIdentity, init_gateway_identity_repository } from "./gateway-identity-repository.js";
|
|
8
|
-
import { browserEnrollmentPublicKeyThumbprint } from "../../browser/enrollment.js";
|
|
9
8
|
import "../../browser/extension-identity.js";
|
|
9
|
+
import { browserEnrollmentPublicKeyThumbprint } from "../../browser/enrollment.js";
|
|
10
10
|
import crypto from "node:crypto";
|
|
11
11
|
//#region src/storage/sqlite/device-pairing-approval.ts
|
|
12
12
|
init_src();
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
-- Personal thinking preferences belong to the dedicated conversation, not its Agent.
|
|
2
|
+
INSERT INTO session_config (conversation_id, thinking_level, updated_at)
|
|
3
|
+
SELECT s.conversation_id, json_extract(a.overrides_json, '$.runtime.thinkingLevel'),
|
|
4
|
+
MAX(a.updated_at, s.updated_at)
|
|
5
|
+
FROM sessions s JOIN agents a ON a.id = s.agent_id
|
|
6
|
+
WHERE json_extract(s.custom_data_json, '$.personalAgent') = 1
|
|
7
|
+
AND json_type(a.overrides_json, '$.runtime.thinkingLevel') = 'text'
|
|
8
|
+
ON CONFLICT(conversation_id) DO UPDATE SET
|
|
9
|
+
thinking_level = COALESCE(session_config.thinking_level, excluded.thinking_level),
|
|
10
|
+
updated_at = CASE WHEN session_config.thinking_level IS NULL
|
|
11
|
+
THEN MAX(session_config.updated_at + 1, excluded.updated_at) ELSE session_config.updated_at END;
|
|
12
|
+
|
|
13
|
+
UPDATE agents SET
|
|
14
|
+
overrides_json = json_remove(overrides_json, '$.runtime.thinkingLevel'),
|
|
15
|
+
revision = revision + 1,
|
|
16
|
+
updated_at = MAX(updated_at + 1, CAST(unixepoch('subsec') * 1000 AS INTEGER))
|
|
17
|
+
WHERE id IN (SELECT agent_id FROM sessions WHERE json_extract(custom_data_json, '$.personalAgent') = 1)
|
|
18
|
+
AND json_type(overrides_json, '$.runtime.thinkingLevel') IS NOT NULL;
|
|
19
|
+
|
|
20
|
+
UPDATE agent_catalog_settings SET revision = revision + 1,
|
|
21
|
+
updated_at = MAX(updated_at + 1, CAST(unixepoch('subsec') * 1000 AS INTEGER))
|
|
22
|
+
WHERE singleton_id = 1 AND changes() > 0;
|
|
@@ -3,7 +3,7 @@ import type { ApplyMigrationsOptions } from './types.js';
|
|
|
3
3
|
/** Baseline schema version applied from schema.sql on first open. */
|
|
4
4
|
export declare const XOPC_DB_BASELINE_SCHEMA_VERSION = 165;
|
|
5
5
|
/** Latest schema version this release supports (increment when adding migrations). */
|
|
6
|
-
export declare const XOPC_DB_SCHEMA_VERSION =
|
|
6
|
+
export declare const XOPC_DB_SCHEMA_VERSION = 246;
|
|
7
7
|
export declare function resolveMigrationsDir(override?: string): string;
|
|
8
8
|
/**
|
|
9
9
|
* Apply sequential SQL migrations from (currentVersion + 1) through targetVersion.
|
|
@@ -59,7 +59,7 @@ function applySingleMigration(db, migration, discardOldScenes = false) {
|
|
|
59
59
|
function applyPendingMigrations(db, options = {}) {
|
|
60
60
|
db.function("xopc_memory_search_text", { deterministic: true }, (value) => memorySearchText(String(value ?? "")));
|
|
61
61
|
db.function("xopc_operation_id", () => currentOperationId() ?? null);
|
|
62
|
-
const targetVersion = options.targetVersion ??
|
|
62
|
+
const targetVersion = options.targetVersion ?? 246;
|
|
63
63
|
let currentVersion = readSchemaVersion(db);
|
|
64
64
|
if (currentVersion > targetVersion) throw new DatabaseSchemaTooNewError(currentVersion, targetVersion);
|
|
65
65
|
if (!options.migrationsDir && currentVersion < 165) throw new DatabaseSchemaTooOldError(currentVersion, 165);
|
|
@@ -97,7 +97,7 @@ function applyPendingMigrations(db, options = {}) {
|
|
|
97
97
|
}
|
|
98
98
|
/** Inspect schema version without mutating the database. */
|
|
99
99
|
function inspectSchemaMigrationStatus(db, options = {}) {
|
|
100
|
-
const appVersion = options.targetVersion ??
|
|
100
|
+
const appVersion = options.targetVersion ?? 246;
|
|
101
101
|
const dbVersion = readSchemaVersion(db);
|
|
102
102
|
if (dbVersion > appVersion) return {
|
|
103
103
|
dbVersion,
|
|
@@ -140,7 +140,7 @@ var init_runner = __esmMin((() => {
|
|
|
140
140
|
init_errors();
|
|
141
141
|
log = createLogger("Sqlite:Migrations");
|
|
142
142
|
XOPC_DB_BASELINE_SCHEMA_VERSION = 165;
|
|
143
|
-
XOPC_DB_SCHEMA_VERSION =
|
|
143
|
+
XOPC_DB_SCHEMA_VERSION = 246;
|
|
144
144
|
}));
|
|
145
145
|
//#endregion
|
|
146
146
|
init_runner();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xopcai/xopc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.377",
|
|
4
4
|
"description": "Local-first personal AI with Ada, task delegation, files, projects, workflows, and automations. Use cloud or local models.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -166,11 +166,11 @@
|
|
|
166
166
|
"vitest": "4.1.5",
|
|
167
167
|
"vue": "^3.5.35",
|
|
168
168
|
"@xopcai/browser-control-contract": "0.1.0",
|
|
169
|
-
"@xopcai/endpoint-tools-client": "0.0.0",
|
|
170
169
|
"@xopcai/endpoint-tools-protocol": "0.0.0",
|
|
170
|
+
"@xopcai/gateway-contract": "0.0.0",
|
|
171
171
|
"@xopcai/image-providers": "0.1.0",
|
|
172
|
+
"@xopcai/endpoint-tools-client": "0.0.0",
|
|
172
173
|
"@xopcai/computer-control-contract": "0.1.0",
|
|
173
|
-
"@xopcai/gateway-contract": "0.0.0",
|
|
174
174
|
"@xopcai/realtime-client": "0.0.0",
|
|
175
175
|
"@xopcai/realtime-protocol": "0.0.0"
|
|
176
176
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as e}from"./locale-store-UEl-U1DO.js";var t=e(()=>({connectionState:`idle`,error:null}));function n(e){t.setState(e)}export{t as n,n as t};
|