@xopcai/xopc 0.0.272 → 0.0.274
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/README.md +1 -5
- package/README.zh-CN.md +1 -5
- package/dist/browser-ext/dist/assets/{auth-C1QI-uMG.js → auth-O8RiOF3l.js} +265 -100
- package/dist/browser-ext/dist/background.js +1 -22
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +68 -36
- package/dist/browser-ext/manifest.json +1 -12
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-DffqjeqQ.js → activity-store-SJZ5fS17.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Cwj4HCYY.js → agent-avatar-dicebear-BckaANxj.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-6CLfLxVc.js → agent-defaults-settings-panel-B8eyC6K1.js} +1 -1
- package/dist/gateway/static/root/assets/agents-CSWj_yo1.js +1 -0
- package/dist/gateway/static/root/assets/{api-CGLdye4i.js → api-CnJAVHBu.js} +1 -1
- package/dist/gateway/static/root/assets/app-link-BiBXVEvp.js +1 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-BLujSbaw.js → app-management-settings-panel-DY-Zbgmt.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-BXMcueb8.js → appearance-settings-CoJR7ZRl.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-BEgy4hY3.js → apps-page-CSMvkuot.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-D4bUampf.js → archive-plugin-BwAlRT53.js} +1 -1
- package/dist/gateway/static/root/assets/attachment-load-R835uxgL.js +1 -0
- package/dist/gateway/static/root/assets/{attachment-preview-renderer-BDTD8YUe.js → attachment-preview-renderer-CfEDFYPE.js} +1 -1
- package/dist/gateway/static/root/assets/attachment-process-heavy-C5CqLCsX.js +5 -0
- package/dist/gateway/static/root/assets/{automations-page-dQyolNmy.js → automations-page-BEZy0P_u.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-CpaI13J7.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-bbvp81h2.js → binary-plugins-CESFx3yb.js} +2 -2
- package/dist/gateway/static/root/assets/{block-editor-C8e6Wri4.js → block-editor-DDJcf2wR.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-oJWJtQa6.js → browser-automation-inputs-DGCqIPXT.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-CAcJQSjN.js → browser-automations-page-BH4lSfr5.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-CbTooPd2.js +8 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-C4LZWHhv.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-BAljmSa7.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-CfOPNnVr.js → channels-status-swr-BTT2sIGg.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-9ZOl92kh.js → chat-terminal-dock-D8U97O95.js} +2 -2
- package/dist/gateway/static/root/assets/connectors-page-CVRMjNNr.js +2 -0
- package/dist/gateway/static/root/assets/{date-picker-Dj6FRLF9.js → date-picker-7sDSMswL.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-D1q89tVc.js → dependency-picker-DMIC86ZW.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DfqZBvhp.js → desktop-pet-BtdiY5jK.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-HCEh2MOm.js → desktop-pet-settings-D_B8azDH.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-Dmh3Nh4d.js +1 -0
- package/dist/gateway/static/root/assets/excel-worksheet-utils-DpdB-DjU.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-C8cAWVoK.js → extension-debug-page-CoFKb01d.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-5N87Vaym.js → extension-page-CEkNsCAY.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-D85SAUFP.js → extension-settings-page-Bi2R8P5j.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-BjsDnB_n.js → gateway-config-swr-cd8owslz.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-q9p3sduo.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-BIf0eLWX.js → gateway-startup-retry-CVTa5HSS.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-BpDWGE1a.js → heartbeat-settings-DQtelFiU.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-COpGnTFZ.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-1m8xTVS_.js → image-generation-api-DtMRG1oF.js} +1 -1
- package/dist/gateway/static/root/assets/{index-C6PmD0cK.js → index-SxqsTD4i.js} +35 -35
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Byy8mCSq.js → keyboard-shortcuts-settings-BuYmZS1K.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-DV_17Zxc.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-BPo0wBgM.js → local-apps-page-CExnZyGZ.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-CRNble2Z.js → locale-store-BkJ7g35d.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-X5FdLlXK.js → logs-page-CA5ArMoN.js} +2 -2
- package/dist/gateway/static/root/assets/management-settings-1UiJPrkX.js +1 -0
- package/dist/gateway/static/root/assets/markdown-view-B2IR4E2r.js +201 -0
- package/dist/gateway/static/root/assets/{media-plugins-Bzka9qXu.js → media-plugins-nNFOk9HL.js} +1 -1
- package/dist/gateway/static/root/assets/{messages-DH_HCgmw.js → messages-BGc-OJWg.js} +2 -2
- package/dist/gateway/static/root/assets/note-detail-panel-B5OQ0fBY.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-CVPPMVDl.js +8 -0
- package/dist/gateway/static/root/assets/{page-tabs-Ys0p65Lt.js → page-tabs-CRombigq.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-iknB5xEp.js → preview-open-alternatives-Bcuj43lk.js} +1 -1
- package/dist/gateway/static/root/assets/{proactive-card-BPZDgNNR.js → proactive-card-Cb3Xeoyx.js} +1 -1
- package/dist/gateway/static/root/assets/{proactive-page-CxdZR-p2.js → proactive-page-TbF9KVpm.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-W1o3f-kz.js → product-open-page-DsQcgZkI.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-B9OQ2l9x.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DCqSTNkY.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-DmYFpjsH.js → registry-api-CTq8EECj.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-d9Fg70gX.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DP1XyYO8.js → runtime-tools-settings-panel-BudlvBu-.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-BMYKdzsH.js → schema-form-Ch3MEX4h.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-D8RiQ-ag.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DVH_l6Hr.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-2LGjz7bu.js → settings-form-section-CIA1AA-A.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-7DjpC9_C.js → settings-page-B0Khoduh.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-Dj9jFWJt.js → setup-status-panel-COJFl4N_.js} +1 -1
- package/dist/gateway/static/root/assets/share-preview-page-Cj9XWg-X.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-_OuE6A0G.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-BM4Ezjbx.js +1 -0
- package/dist/gateway/static/root/assets/{skills-page-DNEScMZH.js → skills-page-Dyh1kf9t.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page.utils-q88l65YU.js → skills-page.utils-DsQZkMti.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-8NIssGKj.js → system-settings-panel-BSho_Tpk.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-B5HWM12k.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-BXZG3S25.js → theme-store-mV6Cm2vj.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-CWsRPM84.js → tunnel-api-4DUHxSQG.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-BwQuoTQU.js → use-autosave-BG8Yx7hj.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-IjVyv5jj.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-Bd03Ic0s.js → voice-api-key-field-DYXwDhHq.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-gggUp3u9.js → voice-config-api-D3DdcH4H.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DF8PR_pK.js → work-discovery-overlay-CQqjzaRo.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BiAAWlir.js → workflow-run-setup-panel-C5H-Fd-U.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-D1hMyPsY.js +6 -0
- package/dist/gateway/static/root/index.html +10 -9
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/device-pairing.js +41 -2
- package/dist/src/agent/service.js +20 -16
- package/dist/src/browser/native-messaging-host.d.ts +1 -1
- package/dist/src/browser/native-messaging-host.js +3 -2
- package/dist/src/browser/providers/browser-ext-install.d.ts +6 -0
- package/dist/src/browser/providers/browser-ext-install.js +16 -1
- package/dist/src/cli/commands/gateway/run-foreground.js +8 -5
- package/dist/src/cli/commands/gateway/service.js +4 -3
- package/dist/src/cli/commands/gateway/token.js +28 -1
- package/dist/src/gateway/device-routes.js +4 -3
- package/dist/src/gateway/hono/app.js +5 -2
- package/dist/src/gateway/hono/routes/agent-stream.js +1 -1
- package/dist/src/gateway/hono/routes/browser.js +26 -0
- package/dist/src/gateway/hono/routes/device-pairing-approval.d.ts +9 -2
- package/dist/src/gateway/hono/routes/device-pairing-approval.js +50 -10
- package/dist/src/gateway/hono/routes/devices.d.ts +2 -1
- package/dist/src/gateway/hono/routes/devices.js +33 -16
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +1 -1
- package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
- package/dist/src/gateway/hono/routes/side-chats.js +1 -1
- package/dist/src/gateway/hono/routes/tunnel.js +34 -2
- package/dist/src/gateway/rate-limit/buckets.js +2 -1
- package/dist/src/gateway/service/run-gateway-agent.js +1 -1
- package/dist/src/storage/sqlite/device-pairing-approval.js +4 -4
- package/dist/src/tui/tui.js +1 -1
- package/dist/src/tunnel/xopc-cloud-registration.d.ts +5 -0
- package/dist/src/tunnel/xopc-cloud-registration.js +17 -11
- package/package.json +3 -3
- package/dist/browser-ext/dist/pairing-handoff.js +0 -51
- package/dist/gateway/static/root/assets/agents-B6mu64fY.js +0 -1
- package/dist/gateway/static/root/assets/attachment-load-CBGNA2Ys.js +0 -2
- package/dist/gateway/static/root/assets/attachment-process-heavy-B2_kr5EA.js +0 -11
- package/dist/gateway/static/root/assets/automations-workspace-DxRFrmrV.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-TLAlqcPo.js +0 -8
- package/dist/gateway/static/root/assets/capabilities-settings-panel-z-K_jrZz.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-Dzrk33aB.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-B1dIoRNi.js +0 -2
- package/dist/gateway/static/root/assets/device-pairing-wizard-CPth92s6.js +0 -1
- package/dist/gateway/static/root/assets/excel-worksheet-utils-EyvwNT4X.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-Dqx8PmcT.js +0 -1
- package/dist/gateway/static/root/assets/home-page-DJaqpC8-.js +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-l2AEiG2C.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-DT6NoIjm.js +0 -1
- package/dist/gateway/static/root/assets/markdown-view-AglreSOj.js +0 -201
- package/dist/gateway/static/root/assets/note-detail-panel-BUJPoaGZ.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-BwFpWRuo.js +0 -8
- package/dist/gateway/static/root/assets/project-detail-page-BU1RKAcy.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-z0X0tL8G.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-NNTut2I8.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-B6SsHlz5.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BQu8bAcN.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-BxYdSi8c.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-CMqE0KuK.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-BXqSJymN.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-L6dp9v2y.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-D4BucMrZ.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-DryKUMfA.js +0 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RealtimeClient, j as gatewayFetch,
|
|
1
|
+
import { R as RealtimeClient, j as gatewayFetch, a as activeTabId, r as readBrowserOutbox, w as writeBrowserOutbox, g as deleteBrowserOutbox, f as currentTabDescriptor, T as TAB_BINDING_PREFIX, k as getAccessProfile, q as runWithTabSiteAccess, P as PENDING_CONTEXT_KEY, d as captureTabWithPermission, p as pairGateway, s as setAutoConnectEnabled, l as readPendingBrowserPairing, m as readProfile, h as discoverLocalGateway, c as cancelPendingBrowserPairing, o as revokeAndForgetProfile } from './assets/auth-O8RiOF3l.js';
|
|
2
2
|
|
|
3
3
|
true &&(function polyfill() {
|
|
4
4
|
const relList = document.createElement("link").relList;
|
|
@@ -27544,29 +27544,51 @@ function watchSidePanelTheme(gatewayUrl) {
|
|
|
27544
27544
|
async function reconnectBrowserBridge() {
|
|
27545
27545
|
await chrome.runtime.sendMessage({ type: "browser/reconnect" }).catch(() => void 0);
|
|
27546
27546
|
}
|
|
27547
|
+
function pairingErrorMessage(cause) {
|
|
27548
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
27549
|
+
if (message === "Gateway site permission was not granted") {
|
|
27550
|
+
return "Chrome needs access to the Gateway address. Select Connect again and allow the site permission.";
|
|
27551
|
+
}
|
|
27552
|
+
if (message === "PAIRING_EXPIRED" || message === "Pairing expired" || message === "Pairing invitation has expired") {
|
|
27553
|
+
return "This invitation expired. Create and copy a new invitation from Device access.";
|
|
27554
|
+
}
|
|
27555
|
+
if (message === "PAIRING_DEVICE_MISMATCH") {
|
|
27556
|
+
return "This invitation was created for a phone. Create a browser invitation instead.";
|
|
27557
|
+
}
|
|
27558
|
+
if (message === "No Gateway route could be reached") {
|
|
27559
|
+
return "None of the Gateway addresses responded. Check that the Gateway is online and its secure connection is active.";
|
|
27560
|
+
}
|
|
27561
|
+
if (message.startsWith("PAIRING_ROUTE_PERMISSION_REQUIRED:")) {
|
|
27562
|
+
return "The current Gateway address did not respond. Select Continue to allow the next address listed in the invitation.";
|
|
27563
|
+
}
|
|
27564
|
+
return message;
|
|
27565
|
+
}
|
|
27547
27566
|
function SidePanelApp() {
|
|
27548
27567
|
const [profile, setProfile] = reactExports.useState();
|
|
27549
|
-
const [
|
|
27568
|
+
const [invitation, setInvitation] = reactExports.useState("");
|
|
27550
27569
|
const [confirmationCode, setConfirmationCode] = reactExports.useState("");
|
|
27551
27570
|
const [state, setState] = reactExports.useState("loading");
|
|
27552
27571
|
const [error, setError] = reactExports.useState("");
|
|
27553
|
-
const [
|
|
27572
|
+
const [localInvitation, setLocalInvitation] = reactExports.useState("");
|
|
27573
|
+
const [nextOrigin, setNextOrigin] = reactExports.useState();
|
|
27554
27574
|
const initializationStarted = reactExports.useRef(false);
|
|
27555
27575
|
const pairingStarted = reactExports.useRef(false);
|
|
27556
|
-
const connect = reactExports.useCallback(async (
|
|
27576
|
+
const connect = reactExports.useCallback(async (value, origin) => {
|
|
27557
27577
|
if (pairingStarted.current) return;
|
|
27558
27578
|
pairingStarted.current = true;
|
|
27559
27579
|
setState("pairing");
|
|
27560
27580
|
setError("");
|
|
27561
|
-
|
|
27581
|
+
setConfirmationCode("");
|
|
27582
|
+
setInvitation(value);
|
|
27562
27583
|
try {
|
|
27563
|
-
const paired = await pairGateway(
|
|
27584
|
+
const paired = await pairGateway(value, setConfirmationCode, origin);
|
|
27564
27585
|
await setAutoConnectEnabled(true);
|
|
27565
27586
|
await reconnectBrowserBridge();
|
|
27566
27587
|
setProfile(paired);
|
|
27567
27588
|
setState("online");
|
|
27568
27589
|
} catch (cause) {
|
|
27569
|
-
setError(
|
|
27590
|
+
setError(pairingErrorMessage(cause));
|
|
27591
|
+
setNextOrigin((await readPendingBrowserPairing())?.nextOrigin);
|
|
27570
27592
|
setState("unpaired");
|
|
27571
27593
|
} finally {
|
|
27572
27594
|
pairingStarted.current = false;
|
|
@@ -27576,11 +27598,6 @@ function SidePanelApp() {
|
|
|
27576
27598
|
if (initializationStarted.current) return;
|
|
27577
27599
|
initializationStarted.current = true;
|
|
27578
27600
|
void (async () => {
|
|
27579
|
-
const handedOff = await takePendingPairingLink();
|
|
27580
|
-
if (handedOff) {
|
|
27581
|
-
await connect(handedOff);
|
|
27582
|
-
return;
|
|
27583
|
-
}
|
|
27584
27601
|
const stored = await readProfile();
|
|
27585
27602
|
if (stored) {
|
|
27586
27603
|
await reconnectBrowserBridge();
|
|
@@ -27588,30 +27605,28 @@ function SidePanelApp() {
|
|
|
27588
27605
|
setState("online");
|
|
27589
27606
|
return;
|
|
27590
27607
|
}
|
|
27608
|
+
const pending = await readPendingBrowserPairing();
|
|
27609
|
+
if (pending) {
|
|
27610
|
+
setInvitation(pending.invitation);
|
|
27611
|
+
setNextOrigin(pending.nextOrigin);
|
|
27612
|
+
if (!pending.nextOrigin) await connect(pending.invitation);
|
|
27613
|
+
else setState("unpaired");
|
|
27614
|
+
return;
|
|
27615
|
+
}
|
|
27591
27616
|
const local = await discoverLocalGateway();
|
|
27592
27617
|
if (!local) {
|
|
27593
27618
|
setState("unpaired");
|
|
27594
27619
|
return;
|
|
27595
27620
|
}
|
|
27596
|
-
|
|
27597
|
-
await connect(local.
|
|
27621
|
+
setLocalInvitation(local.invitation);
|
|
27622
|
+
await connect(local.invitation);
|
|
27598
27623
|
})();
|
|
27599
27624
|
}, [connect]);
|
|
27600
|
-
reactExports.useEffect(() => {
|
|
27601
|
-
const handleStorageChange = (changes, area) => {
|
|
27602
|
-
if (area !== "session" || !changes[PENDING_PAIRING_LINK_KEY]?.newValue) return;
|
|
27603
|
-
void takePendingPairingLink().then((link) => {
|
|
27604
|
-
if (link) void connect(link);
|
|
27605
|
-
});
|
|
27606
|
-
};
|
|
27607
|
-
chrome.storage.onChanged.addListener(handleStorageChange);
|
|
27608
|
-
return () => chrome.storage.onChanged.removeListener(handleStorageChange);
|
|
27609
|
-
}, [connect]);
|
|
27610
27625
|
reactExports.useEffect(() => watchSidePanelTheme(profile?.gatewayUrl), [profile?.gatewayUrl]);
|
|
27611
27626
|
async function disconnect() {
|
|
27612
27627
|
await revokeAndForgetProfile();
|
|
27613
27628
|
setProfile(void 0);
|
|
27614
|
-
|
|
27629
|
+
setLocalInvitation("");
|
|
27615
27630
|
setState("unpaired");
|
|
27616
27631
|
}
|
|
27617
27632
|
async function connectLocalGateway() {
|
|
@@ -27620,8 +27635,22 @@ function SidePanelApp() {
|
|
|
27620
27635
|
try {
|
|
27621
27636
|
const local = await discoverLocalGateway({ force: true });
|
|
27622
27637
|
if (!local) throw new Error("No local xopc Gateway was found");
|
|
27623
|
-
|
|
27624
|
-
await connect(local.
|
|
27638
|
+
setLocalInvitation(local.invitation);
|
|
27639
|
+
await connect(local.invitation);
|
|
27640
|
+
} catch (cause) {
|
|
27641
|
+
setError(cause instanceof Error ? cause.message : String(cause));
|
|
27642
|
+
setState("unpaired");
|
|
27643
|
+
}
|
|
27644
|
+
}
|
|
27645
|
+
async function cancelPairing() {
|
|
27646
|
+
setState("pairing");
|
|
27647
|
+
setError("");
|
|
27648
|
+
try {
|
|
27649
|
+
await cancelPendingBrowserPairing();
|
|
27650
|
+
setInvitation("");
|
|
27651
|
+
setNextOrigin(void 0);
|
|
27652
|
+
setConfirmationCode("");
|
|
27653
|
+
setState("unpaired");
|
|
27625
27654
|
} catch (cause) {
|
|
27626
27655
|
setError(cause instanceof Error ? cause.message : String(cause));
|
|
27627
27656
|
setState("unpaired");
|
|
@@ -27641,26 +27670,29 @@ function SidePanelApp() {
|
|
|
27641
27670
|
state !== "online" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { className: "center", children: [
|
|
27642
27671
|
state === "loading" ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "muted", children: "Loading…" }) : null,
|
|
27643
27672
|
state === "unpaired" || state === "pairing" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "card", children: [
|
|
27644
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { children: "Connect
|
|
27645
|
-
|
|
27673
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { children: "Connect a Gateway" }),
|
|
27674
|
+
localInvitation ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
27646
27675
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "muted", children: "A local xopc Gateway was found. xopc connects automatically on this computer." }),
|
|
27647
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { className: "primary local-connect", onClick: () => void connect(
|
|
27648
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pairing-divider", children: "or
|
|
27676
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { className: "primary local-connect", onClick: () => void connect(localInvitation), disabled: state === "pairing", children: state === "pairing" ? "Connecting…" : "Retry local connection" }),
|
|
27677
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pairing-divider", children: "or paste an invitation" })
|
|
27649
27678
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
27650
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "muted", children: "Connect
|
|
27679
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "muted", children: "Connect locally, or paste the one-time invitation copied from Device access." }),
|
|
27651
27680
|
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { className: "primary local-connect", onClick: () => void connectLocalGateway(), disabled: state === "pairing", children: state === "pairing" ? "Connecting…" : "Connect local Gateway" }),
|
|
27652
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pairing-divider", children: "or
|
|
27681
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pairing-divider", children: "or paste an invitation" })
|
|
27653
27682
|
] }),
|
|
27654
27683
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: "field", children: [
|
|
27655
|
-
"
|
|
27656
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("textarea", { rows: 4, value:
|
|
27684
|
+
"One-time invitation",
|
|
27685
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("textarea", { rows: 4, value: invitation, onChange: (event) => setInvitation(event.target.value), disabled: state === "pairing" })
|
|
27657
27686
|
] }),
|
|
27658
27687
|
confirmationCode ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
27659
27688
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "muted", children: "Confirm this code in the Gateway:" }),
|
|
27660
27689
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "approval-code", children: confirmationCode })
|
|
27661
27690
|
] }) : null,
|
|
27662
27691
|
error ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "error-text", children: error }) : null,
|
|
27663
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
27692
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "actions", children: [
|
|
27693
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { className: "primary", onClick: () => void connect(invitation, nextOrigin), disabled: !invitation.trim() || state === "pairing", children: state === "pairing" ? "Waiting for approval…" : nextOrigin ? `Allow ${new URL(nextOrigin).host} and continue` : "Connect" }),
|
|
27694
|
+
invitation ? /* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => void cancelPairing(), disabled: state === "pairing", children: "Cancel pairing" }) : null
|
|
27695
|
+
] })
|
|
27664
27696
|
] }) : null
|
|
27665
27697
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChatPanel, {}),
|
|
27666
27698
|
state === "online" && profile ? /* @__PURE__ */ jsxRuntimeExports.jsx("button", { className: "disconnect-link", onClick: disconnect, title: `Disconnect ${profile.gatewayName}`, children: "Disconnect" }) : null
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"minimum_chrome_version": "120",
|
|
4
4
|
"name": "xopc",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.274",
|
|
6
6
|
"description": "Chat with xopc and explicitly share or control the current page.",
|
|
7
7
|
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqnpr4vpLC/nmvy+wiOWk3SWlp2nEZkFijfk8ivGw7StNZgCK90nOMvwhdEtlkk3GOWDvdVnq8HxCsM3UNQ8FnGUyerpH1FJXqXuradxeHf8ZxFjiQU/mIWfnKbUuONWQORon3/pigyoXoK/VUXgg0Wbm/rbVwsS0bv+25R6m+mZgBspOLeKuoH7ivhL+48WV6POtMBsFPZweY26477EM7ukh+56Ff5ENevB8ymxBBn7qK5ZoeZd2a23U8ioX5TsHfe6fnrjitPWjIxD8G0NoKQxcaa/Mo+xs+T6UiLKxP0wjz5bm7jB5H+CXtkRJqzBWUB0h+RSLJckzZfA8BAJrRwIDAQAB",
|
|
8
8
|
"permissions": [
|
|
@@ -28,17 +28,6 @@
|
|
|
28
28
|
"service_worker": "dist/background.js",
|
|
29
29
|
"type": "module"
|
|
30
30
|
},
|
|
31
|
-
"content_scripts": [
|
|
32
|
-
{
|
|
33
|
-
"matches": [
|
|
34
|
-
"https://link.xopc.ai/connect*"
|
|
35
|
-
],
|
|
36
|
-
"js": [
|
|
37
|
-
"dist/pairing-handoff.js"
|
|
38
|
-
],
|
|
39
|
-
"run_at": "document_idle"
|
|
40
|
-
}
|
|
41
|
-
],
|
|
42
31
|
"side_panel": {
|
|
43
32
|
"default_path": "dist/sidepanel.html"
|
|
44
33
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "telegram",
|
|
3
3
|
"name": "Telegram Channel",
|
|
4
4
|
"description": "Bundled Telegram Bot channel (private workspace sources; ships inside @xopcai/xopc dist/)",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.274",
|
|
6
6
|
"kind": "channel",
|
|
7
7
|
"main": "src/index.js",
|
|
8
8
|
"channels": [
|
package/dist/gateway/static/root/assets/{activity-store-DffqjeqQ.js → activity-store-SJZ5fS17.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e}from"./locale-store-
|
|
1
|
+
import{p as e}from"./locale-store-BkJ7g35d.js";var t=`xopc.activity-center.v1`,n=80,r=720*60*60*1e3;function i(e){return e===`error`?`failed`:e===`warning`?`attention`:`done`}function a(){if(!(typeof window>`u`))return window.location.hash.replace(/^#/,``)||`${window.location.pathname}${window.location.search}`||void 0}function o(){try{let e=globalThis.localStorage?.getItem(t);if(!e)return[];let i=JSON.parse(e);if(!Array.isArray(i.items))return[];let a=Date.now()-r,o=i.items.filter(e=>e&&typeof e.id==`string`&&typeof e.title==`string`).filter(e=>Number.isFinite(e.updatedAt)&&e.updatedAt>=a).slice(0,n);return o.length!==i.items.length&&s(o),o}catch{return[]}}function s(e){try{globalThis.localStorage?.setItem(t,JSON.stringify({items:e}))}catch{}}function c(e){return`${e.toString(36)}-${Math.random().toString(36).slice(2,8)}`}var l=e(e=>({items:o(),add:t=>e(e=>{let r=t.title.trim();if(!r)return e;let o=Date.now(),l=t.tone??`info`,u=t.dedupeKey?e.items.findIndex(e=>e.dedupeKey===t.dedupeKey):-1,d=[{id:u>=0?e.items[u].id:c(o),tone:l,status:t.status??i(l),title:r,message:t.message?.trim()||void 0,source:t.source?.trim()||void 0,href:t.href??a(),dedupeKey:t.dedupeKey,createdAt:u>=0?e.items[u].createdAt:o,updatedAt:o,read:t.read??!1,occurrences:u>=0?e.items[u].occurrences+1:1},...u>=0?e.items.filter((e,t)=>t!==u):e.items].slice(0,n);return s(d),{items:d}}),markAllRead:()=>e(e=>{let t=e.items.map(e=>({...e,read:!0}));return s(t),{items:t}}),remove:t=>e(e=>{let n=e.items.filter(e=>e.id!==t);return s(n),{items:n}}),clearFinished:()=>e(e=>{let t=e.items.filter(e=>e.status!==`done`);return s(t),{items:t}}),clear:()=>{s([]),e({items:[]})}}));function u(e){l.getState().add(e)}export{u as t};
|