@xopcai/xopc 0.0.349 → 0.0.351

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.
Files changed (109) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CiOc0zWr.js → agent-avatar-dicebear-Dc0yBlKV.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-BvL4FTKi.js → agent-defaults-settings-panel-BXFins6I.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-plugin-dialog-BOzZvojX.js → agent-plugin-dialog-B-w6bJuj.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agents-BrPqEJm5.js → agents-CuFzMN58.js} +3 -3
  7. package/dist/gateway/static/root/assets/{agents-admin-api-DZsBZ9R6.js → agents-admin-api-yUALtmym.js} +1 -1
  8. package/dist/gateway/static/root/assets/{app-management-settings-panel-BY7yVNOc.js → app-management-settings-panel-C7QjGlMZ.js} +1 -1
  9. package/dist/gateway/static/root/assets/{appearance-settings-Cqk9QUWY.js → appearance-settings-CgApGxhN.js} +1 -1
  10. package/dist/gateway/static/root/assets/{apps-page-DH1ZZh_x.js → apps-page-DWii4stP.js} +1 -1
  11. package/dist/gateway/static/root/assets/{archive-plugin-CClKYiZH.js → archive-plugin--oP0UmoE.js} +1 -1
  12. package/dist/gateway/static/root/assets/{automations-page-DqtZazSc.js → automations-page-DkV4w6xr.js} +1 -1
  13. package/dist/gateway/static/root/assets/{automations-workspace-BN0s1ILZ.js → automations-workspace-DT95Uk9d.js} +2 -2
  14. package/dist/gateway/static/root/assets/{binary-plugins-C680MkH2.js → binary-plugins-DIpBiw_8.js} +1 -1
  15. package/dist/gateway/static/root/assets/{block-editor-B4lDSWIv.js → block-editor-Di4X446B.js} +1 -1
  16. package/dist/gateway/static/root/assets/{browser-automation-inputs-BgK2Ma4E.js → browser-automation-inputs-B0TlAcoB.js} +1 -1
  17. package/dist/gateway/static/root/assets/browser-automations-page-pKPvkGW8.js +3 -0
  18. package/dist/gateway/static/root/assets/{browser-settings-page-CNVdAeRH.js → browser-settings-page-cJ200PlY.js} +1 -1
  19. package/dist/gateway/static/root/assets/{capabilities-C2vyJC-B.js → capabilities-e-fO70DK.js} +1 -1
  20. package/dist/gateway/static/root/assets/{capabilities-page-DqDP04o0.js → capabilities-page-CPKbJUDL.js} +2 -2
  21. package/dist/gateway/static/root/assets/{capabilities-settings-panel-Dd1xjlpb.js → capabilities-settings-panel-D5xUFWBJ.js} +1 -1
  22. package/dist/gateway/static/root/assets/{capability-header-actions-CHokFPVe.js → capability-header-actions-9qDm8ioP.js} +1 -1
  23. package/dist/gateway/static/root/assets/{channels-aemisJsK.js → channels-CO_9_oIH.js} +1 -1
  24. package/dist/gateway/static/root/assets/{chat-terminal-dock-C9zgTx4N.js → chat-terminal-dock-DCFwzHu2.js} +1 -1
  25. package/dist/gateway/static/root/assets/{computer-settings-page-DzIVWHw5.js → computer-settings-page-bwWQ3axN.js} +1 -1
  26. package/dist/gateway/static/root/assets/{connector-service-page-B_9tzNtD.js → connector-service-page-BIIP-gX4.js} +1 -1
  27. package/dist/gateway/static/root/assets/{connectors-page-D0qvb3mB.js → connectors-page-C0b5Xbca.js} +1 -1
  28. package/dist/gateway/static/root/assets/{date-picker-B_hPKrIP.js → date-picker-DBio7OE6.js} +1 -1
  29. package/dist/gateway/static/root/assets/{dependency-picker-BPAS7Ee7.js → dependency-picker-hyPm_1tB.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-XzkMTcLt.js → desktop-pet-BDPfot60.js} +1 -1
  31. package/dist/gateway/static/root/assets/{desktop-pet-settings-CmhF1kse.js → desktop-pet-settings-C6IRO2iD.js} +1 -1
  32. package/dist/gateway/static/root/assets/{device-pairing-wizard-BcptV-hP.js → device-pairing-wizard-CUOh38IK.js} +1 -1
  33. package/dist/gateway/static/root/assets/{directory-picker-path-field-CHbRbJZj.js → directory-picker-path-field-ljXXfuLL.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-debug-page-CNsneD82.js → extension-debug-page-DHw1dG1g.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-page-DxiiQ_-P.js → extension-page-BjLN3E6q.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-settings-page-DIh4aO4j.js → extension-settings-page-BMp6v6zP.js} +1 -1
  37. package/dist/gateway/static/root/assets/{gateway-config-swr-COCA8geG.js → gateway-config-swr-CmjHbMj7.js} +1 -1
  38. package/dist/gateway/static/root/assets/{gateway-realtime-Blcloycq.js → gateway-realtime-DzyR6LYb.js} +1 -1
  39. package/dist/gateway/static/root/assets/gateway-realtime-store-KyhksZSM.js +1 -0
  40. package/dist/gateway/static/root/assets/{gateway-settings-BNcafQJB.js → gateway-settings-D76thCuX.js} +1 -1
  41. package/dist/gateway/static/root/assets/{gateway-startup-retry-CradGmBo.js → gateway-startup-retry-CbOUnKv5.js} +1 -1
  42. package/dist/gateway/static/root/assets/{home-page-BvZcBNhP.js → home-page-D1Tyeuul.js} +1 -1
  43. package/dist/gateway/static/root/assets/{image-generation-api-CCe_-wBX.js → image-generation-api-BmLpVntI.js} +1 -1
  44. package/dist/gateway/static/root/assets/{imports-page-DgUrv_Rh.js → imports-page-CabovqRQ.js} +1 -1
  45. package/dist/gateway/static/root/assets/index-Bb32g7Ll.js +106 -0
  46. package/dist/gateway/static/root/assets/index-CPi50n0l.css +1 -0
  47. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CuQZEmVh.js → keyboard-shortcuts-settings-DvN-2bcS.js} +1 -1
  48. package/dist/gateway/static/root/assets/{local-app-workbench-page-BLbLqWVm.js → local-app-workbench-page-CSEzRWxs.js} +1 -1
  49. package/dist/gateway/static/root/assets/{local-apps-page-CErGXyIl.js → local-apps-page-C3Wy2zG2.js} +1 -1
  50. package/dist/gateway/static/root/assets/{local-session-drafts-CIcrQnQp.js → local-session-drafts-CxXjQ5Du.js} +1 -1
  51. package/dist/gateway/static/root/assets/{locale-store-K7mHrs6W.js → locale-store-WMaCMm3_.js} +1 -1
  52. package/dist/gateway/static/root/assets/{logs-page-flTbDuMT.js → logs-page-YojQFX9o.js} +1 -1
  53. package/dist/gateway/static/root/assets/{management-settings-QQT6byMB.js → management-settings-CNMk0HRn.js} +1 -1
  54. package/dist/gateway/static/root/assets/{markdown-view-BNVvybMV.js → markdown-view-Oe4rXk1N.js} +1 -1
  55. package/dist/gateway/static/root/assets/{media-plugins-Y1tnLGkI.js → media-plugins-Ds7HF3EM.js} +1 -1
  56. package/dist/gateway/static/root/assets/messages-sXePe3LQ.js +3 -0
  57. package/dist/gateway/static/root/assets/{note-detail-panel-B7HS4oqs.js → note-detail-panel-D8vQ_INI.js} +3 -3
  58. package/dist/gateway/static/root/assets/{notes-page-BYpUaCxU.js → notes-page-CIFcEPAd.js} +2 -2
  59. package/dist/gateway/static/root/assets/{page-context-capture-button-DOcROUXS.js → page-context-capture-button-YKiYT0q2.js} +1 -1
  60. package/dist/gateway/static/root/assets/{page-tabs-CU8zjRtM.js → page-tabs-ZUC486EH.js} +1 -1
  61. package/dist/gateway/static/root/assets/{preview-open-alternatives-BoZWmgG_.js → preview-open-alternatives-Ca9tBmOg.js} +1 -1
  62. package/dist/gateway/static/root/assets/{product-open-page-C0pJaYJB.js → product-open-page-BuGb8QPn.js} +1 -1
  63. package/dist/gateway/static/root/assets/{project-detail-page-xrlYOZ7-.js → project-detail-page-C6Awj1Ql.js} +1 -1
  64. package/dist/gateway/static/root/assets/{projects-page--OYwmNEy.js → projects-page-CmO8Gb9G.js} +1 -1
  65. package/dist/gateway/static/root/assets/{registry-api-DKxVZeHC.js → registry-api-DEePN1Rc.js} +1 -1
  66. package/dist/gateway/static/root/assets/{remote-access-hub-6qkix2R1.js → remote-access-hub-BsqHroXR.js} +1 -1
  67. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-C06BmltI.js → runtime-tools-settings-panel-Cva9t35o.js} +1 -1
  68. package/dist/gateway/static/root/assets/{scenes-page-BTRh_BNJ.js → scenes-page-3_61bQHN.js} +2 -2
  69. package/dist/gateway/static/root/assets/{schema-form-Dl0j1Pjj.js → schema-form-DWHFyKEB.js} +1 -1
  70. package/dist/gateway/static/root/assets/{session-api-DoE_8MbN.js → session-api-Bv-hCMKS.js} +1 -1
  71. package/dist/gateway/static/root/assets/{session-manager-B6_KNduD.js → session-manager-BcDptzCN.js} +1 -1
  72. package/dist/gateway/static/root/assets/{sessions-page-BDqe_-Sr.js → sessions-page-BaHue2bK.js} +1 -1
  73. package/dist/gateway/static/root/assets/settings-advanced-gate-C4y4c2M7.js +1 -0
  74. package/dist/gateway/static/root/assets/{settings-form-section-DX9Q7-oB.js → settings-form-section-BwdrtX6k.js} +1 -1
  75. package/dist/gateway/static/root/assets/{settings-page-DyjpNUtv.js → settings-page-B6YZFEye.js} +1 -1
  76. package/dist/gateway/static/root/assets/{setup-status-panel-D7CPCTs-.js → setup-status-panel-nMWHz-ra.js} +1 -1
  77. package/dist/gateway/static/root/assets/{share-preview-page-NXyrys7a.js → share-preview-page-DH0KHlev.js} +1 -1
  78. package/dist/gateway/static/root/assets/{shares-settings-C7APzUWD.js → shares-settings-KK-VNbMw.js} +1 -1
  79. package/dist/gateway/static/root/assets/{skill-api-D2Zav1-k.js → skill-api-BbNk-3Ig.js} +1 -1
  80. package/dist/gateway/static/root/assets/skill-reload-api-DUOG2Ig1.js +1 -0
  81. package/dist/gateway/static/root/assets/{skills-page-C8XzNFai.js → skills-page-BQya9ygw.js} +1 -1
  82. package/dist/gateway/static/root/assets/{system-settings-panel-CjAKelf_.js → system-settings-panel-akm5mc8b.js} +1 -1
  83. package/dist/gateway/static/root/assets/{task-detail-page-C2tCewyf.js → task-detail-page-wLGUc7Nu.js} +1 -1
  84. package/dist/gateway/static/root/assets/{tunnel-api-RsRe1MVk.js → tunnel-api-vZ7P_KIQ.js} +1 -1
  85. package/dist/gateway/static/root/assets/{usage-page-Cz8WM0U_.js → usage-page-BV1KJ0EY.js} +1 -1
  86. package/dist/gateway/static/root/assets/{use-autosave-Bs2Zw_LW.js → use-autosave-DQdLcZfO.js} +1 -1
  87. package/dist/gateway/static/root/assets/user-model-page-DnLTTyOE.js +2 -0
  88. package/dist/gateway/static/root/assets/{voice-api-key-field-CCznhcKT.js → voice-api-key-field-CJ-FjNHr.js} +1 -1
  89. package/dist/gateway/static/root/assets/{voice-config-api-C9HKTnnD.js → voice-config-api-DbjjZkIg.js} +1 -1
  90. package/dist/gateway/static/root/assets/{work-discovery-overlay-DzllwGa7.js → work-discovery-overlay-BA1AAqaW.js} +1 -1
  91. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-C8Q_04la.js → workflow-run-setup-panel-BhIOKmjW.js} +1 -1
  92. package/dist/gateway/static/root/assets/{workflows-page-3724WDyr.js → workflows-page-aYoObmuS.js} +2 -2
  93. package/dist/gateway/static/root/index.html +15 -15
  94. package/dist/package.js +1 -1
  95. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  96. package/dist/src/gateway/hono/routes/connectors.js +1 -1
  97. package/dist/src/gateway/service.js +4 -4
  98. package/dist/src/home-intelligence/host.js +2 -2
  99. package/dist/src/infra/update-restart.js +1 -1
  100. package/dist/src/voice/realtime/runtime.js +1 -1
  101. package/package.json +3 -3
  102. package/dist/gateway/static/root/assets/browser-automations-page-B0FqXGpQ.js +0 -3
  103. package/dist/gateway/static/root/assets/gateway-realtime-store-B87bp5kF.js +0 -1
  104. package/dist/gateway/static/root/assets/index-Cfg6ma6d.css +0 -1
  105. package/dist/gateway/static/root/assets/index-oJE8g8BL.js +0 -106
  106. package/dist/gateway/static/root/assets/messages-CY3XVeek.js +0 -3
  107. package/dist/gateway/static/root/assets/settings-advanced-gate-aDIE1Okc.js +0 -1
  108. package/dist/gateway/static/root/assets/skill-reload-api-C7-ZWRB-.js +0 -1
  109. package/dist/gateway/static/root/assets/user-model-page-BQ4P1A_c.js +0 -2
@@ -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-oJE8g8BL.js"></script>
14
+ <script type="module" crossorigin src="/assets/index-Bb32g7Ll.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-CY3XVeek.js">
29
- <link rel="modulepreload" crossorigin href="/assets/locale-store-K7mHrs6W.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/messages-sXePe3LQ.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/locale-store-WMaCMm3_.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-DRL0YnPs.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/copy-to-clipboard-HOJ79TWv.js">
36
- <link rel="modulepreload" crossorigin href="/assets/markdown-view-BNVvybMV.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/markdown-view-Oe4rXk1N.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/dist-CKkafhaS.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/check-DUBLcKHA.js">
@@ -57,25 +57,25 @@
57
57
  <link rel="modulepreload" crossorigin href="/assets/rotate-cw-LIg3Am9S.js">
58
58
  <link rel="modulepreload" crossorigin href="/assets/search-DA7gz22f.js">
59
59
  <link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
60
- <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-B87bp5kF.js">
61
- <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-Blcloycq.js">
62
- <link rel="modulepreload" crossorigin href="/assets/local-session-drafts-CIcrQnQp.js">
60
+ <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-KyhksZSM.js">
61
+ <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-DzyR6LYb.js">
62
+ <link rel="modulepreload" crossorigin href="/assets/local-session-drafts-CxXjQ5Du.js">
63
63
  <link rel="modulepreload" crossorigin href="/assets/tasks-BH8_WMUF.js">
64
- <link rel="modulepreload" crossorigin href="/assets/capabilities-C2vyJC-B.js">
65
- <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-CradGmBo.js">
66
- <link rel="modulepreload" crossorigin href="/assets/session-api-DoE_8MbN.js">
64
+ <link rel="modulepreload" crossorigin href="/assets/capabilities-e-fO70DK.js">
65
+ <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-CbOUnKv5.js">
66
+ <link rel="modulepreload" crossorigin href="/assets/session-api-Bv-hCMKS.js">
67
67
  <link rel="modulepreload" crossorigin href="/assets/files-Bw4SBGdM.js">
68
68
  <link rel="modulepreload" crossorigin href="/assets/tool-activity-BtJkgjFf.js">
69
69
  <link rel="modulepreload" crossorigin href="/assets/constants-Co2_smKQ.js">
70
- <link rel="modulepreload" crossorigin href="/assets/registry-api-DKxVZeHC.js">
70
+ <link rel="modulepreload" crossorigin href="/assets/registry-api-DEePN1Rc.js">
71
71
  <link rel="modulepreload" crossorigin href="/assets/attachment-utils-core-BIOUBrpT.js">
72
- <link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-COCA8geG.js">
73
- <link rel="modulepreload" crossorigin href="/assets/agents-admin-api-DZsBZ9R6.js">
74
- <link rel="modulepreload" crossorigin href="/assets/session-manager-B6_KNduD.js">
72
+ <link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-CmjHbMj7.js">
73
+ <link rel="modulepreload" crossorigin href="/assets/agents-admin-api-yUALtmym.js">
74
+ <link rel="modulepreload" crossorigin href="/assets/session-manager-BcDptzCN.js">
75
75
  <link rel="modulepreload" crossorigin href="/assets/button-CS04eWY9.js">
76
76
  <link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
77
77
  <link rel="stylesheet" crossorigin href="/assets/markdown-view-DSjfHfaW.css">
78
- <link rel="stylesheet" crossorigin href="/assets/index-Cfg6ma6d.css">
78
+ <link rel="stylesheet" crossorigin href="/assets/index-CPi50n0l.css">
79
79
  </head>
80
80
  <body>
81
81
  <div id="root"></div>
package/dist/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "0.0.349";
2
+ var version = "0.0.351";
3
3
  //#endregion
4
4
  export { version };
@@ -1,8 +1,8 @@
1
1
  import { init_paths, resolveConfigPath } from "../../../config/paths.js";
2
2
  import { loadConfig } from "../../../config/loader.js";
3
3
  import "../../../config/index.js";
4
- import { isRestartEnabled } from "../../../config/commands.flags.js";
5
4
  import { resolveGatewayService } from "../../../daemon/service.js";
5
+ import { isRestartEnabled } from "../../../config/commands.flags.js";
6
6
  import { authorizeGatewaySigusr1Restart, writeGatewayRestartIntentSync } from "../../../infra/restart.js";
7
7
  import { findVerifiedGatewayListenerPidsOnPortSync, formatGatewayPidList, signalVerifiedGatewayPidSync } from "../../../infra/gateway-processes.js";
8
8
  import { runServiceRestart, runServiceStop } from "./lifecycle-core.js";
@@ -20,7 +20,6 @@ import { createConnectorSetupSecretRequest, submitConnectorSetupSecret } from ".
20
20
  import { recordConnectorHealthUsage } from "../../../connectors/usage.js";
21
21
  import { getConnectorInstance, getInstalledConnectorDefinition, listConnectorInstances } from "../../../connectors/instances.js";
22
22
  import { installConnector, installConnectorDefinition, uninstallConnector, updateConnectorConfig } from "../../../connectors/install.js";
23
- import { ConfigPersistenceError, persistConfigMutation } from "../../../config/config-mutation.js";
24
23
  import { resumeApprovedConnectorAction } from "../../../connectors/approval-resume.js";
25
24
  import { getMcpOAuthManager } from "../../../agent/mcp/oauth/mcp-oauth-manager.js";
26
25
  import { startConnectorAuthorization } from "../../../connectors/auth-provider-registry.js";
@@ -29,6 +28,7 @@ import { inspectManagedComposioStatus } from "../../../connectors/composio-manag
29
28
  import { appendComposioTriggerEvent, listComposioTriggerEvents } from "../../../connectors/composio-triggers.js";
30
29
  import { ingestLocalFolderSource } from "../../../connectors/connected-source-ingestion.js";
31
30
  import { listUnderstandingSourceGrants, revokeUnderstandingSourceGrant } from "../../../user-context/sources/repository.js";
31
+ import { ConfigPersistenceError, persistConfigMutation } from "../../../config/config-mutation.js";
32
32
  import { previewConnectorDefinition, testConnectorInstance } from "../../../connectors/health.js";
33
33
  import { setConnectorEnabled } from "../../../connectors/lifecycle.js";
34
34
  import { projectComposioConnectionStatus } from "../../../connectors/runtime-status.js";
@@ -88,10 +88,6 @@ import { DiscussionSealer } from "../discussions/sealer.js";
88
88
  import "../discussions/index.js";
89
89
  import { EndpointToolRuntime } from "../endpoint-tools/runtime.js";
90
90
  import "../endpoint-tools/index.js";
91
- import { HomeCapabilityPreflightService } from "../home-intelligence/capability-preflight.js";
92
- import { HomeAdviceGenerator } from "../home-intelligence/generator.js";
93
- import { HomeIntelligenceHost } from "../home-intelligence/host.js";
94
- import { HomeSnapshotBuilder } from "../home-intelligence/snapshot.js";
95
91
  import { assertGatewayAuthConfigured, extractToken, resolveGatewayAuth, validateToken } from "./auth.js";
96
92
  import { prepareAutomationAgentSession } from "./automation-agent-session.js";
97
93
  import { stopTailscaleExposure } from "./tailscale-lifecycle.js";
@@ -153,6 +149,10 @@ import { TaskMainUpdateDecisionService } from "../tasks/task-main-update-decisio
153
149
  import { selectTaskMainUpdateAttempt, submitAndConfirmTaskMainUpdate } from "../tasks/task-main-update-input.js";
154
150
  import { checkAppContextAccess, prepareAppContext } from "./service/app-context-access.js";
155
151
  import { applyAutomaticVoiceLanguage, inferProductLanguageFromEnvironment, initializeVoiceDefaults } from "../voice/language-profile.js";
152
+ import { HomeAdviceGenerator } from "../home-intelligence/generator.js";
153
+ import { HomeIntelligenceHost } from "../home-intelligence/host.js";
154
+ import { HomeSnapshotBuilder } from "../home-intelligence/snapshot.js";
155
+ import { HomeCapabilityPreflightService } from "../home-intelligence/capability-preflight.js";
156
156
  import crypto from "node:crypto";
157
157
  //#region src/gateway/service.ts
158
158
  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 } 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 } 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
@@ -2,8 +2,8 @@ import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { init_paths, resolveConfigPath } from "../config/paths.js";
4
4
  import { loadConfig } from "../config/loader.js";
5
- import { isRestartEnabled } from "../config/commands.flags.js";
6
5
  import { resolveGatewayService } from "../daemon/service.js";
6
+ import { isRestartEnabled } from "../config/commands.flags.js";
7
7
  import { authorizeGatewaySigusr1Restart, writeGatewayRestartIntentSync } from "./restart.js";
8
8
  import { findVerifiedGatewayListenerPidsOnPortSync, signalVerifiedGatewayPidSync } from "./gateway-processes.js";
9
9
  import { refreshGatewayServiceAfterUpdate } from "./update-service-refresh.js";
@@ -621,7 +621,7 @@ var VoiceRealtimeRuntime = class {
621
621
  }
622
622
  const previous = inputSequences.get(frame.utteranceId) ?? 0;
623
623
  if (frame.audioSeq <= previous) return;
624
- if (frame.audioSeq !== previous + 1 || inputSequences.size >= 256) {
624
+ if (frame.audioSeq !== previous + 1 || !inputSequences.has(frame.utteranceId) && inputSequences.size >= 256) {
625
625
  send("session.error", {
626
626
  code: "INVALID_AUDIO",
627
627
  message: "Invalid audio sequence",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xopcai/xopc",
3
- "version": "0.0.349",
3
+ "version": "0.0.351",
4
4
  "description": "Local-first personal AI for the one-person company, with durable context, tasks, workflows, automations, and local or cloud models.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -159,11 +159,11 @@
159
159
  "vitest": "4.1.5",
160
160
  "vue": "^3.5.35",
161
161
  "@xopcai/browser-control-contract": "0.1.0",
162
- "@xopcai/computer-control-contract": "0.1.0",
163
162
  "@xopcai/endpoint-tools-client": "0.0.0",
163
+ "@xopcai/computer-control-contract": "0.1.0",
164
164
  "@xopcai/gateway-contract": "0.0.0",
165
- "@xopcai/endpoint-tools-protocol": "0.0.0",
166
165
  "@xopcai/realtime-client": "0.0.0",
166
+ "@xopcai/endpoint-tools-protocol": "0.0.0",
167
167
  "@xopcai/realtime-protocol": "0.0.0"
168
168
  },
169
169
  "scripts": {
@@ -1,3 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{f as r}from"./chunk-KS7C4IRE-BMYIfy9x.js";import{t as i}from"./pencil-DmIY3Oa-.js";import{n as a}from"./locale-store-K7mHrs6W.js";import{t as o}from"./button-CS04eWY9.js";import{t as s}from"./skeleton-BwbyijEw.js";import{Fu as c,Iu as l,Ou as u,So as d,Xu as f,_u as p,kc as m,nl as h,vc as g}from"./index-oJE8g8BL.js";import{i as _,n as v,r as y,t as b}from"./browser-automation-inputs-BgK2Ma4E.js";var x=e(t(),1),S=n(),C={en:{title:`Browser automations`,subtitle:`Let your assistant repeat routine actions on the web.`,emptyTitle:`No browser automations yet`,emptyBody:`Tell your assistant what to do on the web. Once it works, save it and run it again whenever you need.`,create:`Create with assistant`,edit:`Edit with assistant`,run:`Run now`,stop:`Stop`,enable:`Enable`,pause:`Pause`,enabled:`Enabled`,paused:`Paused`,inputs:`Before running`,noInputs:`This automation is ready to run.`,history:`Recent activity`,delete:`Delete automation`,confirmDelete:`Delete this browser automation?`,required:`Please complete all required fields.`,queued:`Waiting to start`,running:`Running`,succeeded:`Completed`,failed:`Needs attention`,cancelled:`Stopped`,result:`Result`,read:`Reads information`,draft:`Edits the page locally`,external_effect:`Affects an external system`,destructive:`Destructive action`,sensitive:`Sensitive action`,createPrompt:`Help me create a reusable browser automation. Ask what I want the browser to do, perform it once with me, then save the successful steps. Keep all technical details hidden.`,editPrompt:`Help me update the browser automation "{name}" (id: {id}). Ask what should change, test the new browser steps, then save it.`},zh:{title:`浏览器自动化`,subtitle:`让助手自动重复完成网页上的固定操作。`,emptyTitle:`还没有浏览器自动化`,emptyBody:`告诉助手你希望在网页上自动完成什么。成功执行一次后,即可保存并重复运行。`,create:`让助手帮我创建`,edit:`让助手帮我修改`,run:`立即运行`,stop:`停止`,enable:`启用`,pause:`暂停`,enabled:`已启用`,paused:`已暂停`,inputs:`运行前需要填写`,noInputs:`这个自动化可以直接运行。`,history:`最近运行`,delete:`删除自动化`,confirmDelete:`确定删除这个浏览器自动化吗?`,required:`请填写所有必填内容。`,queued:`等待开始`,running:`正在运行`,succeeded:`已完成`,failed:`需要处理`,cancelled:`已停止`,result:`运行结果`,read:`仅读取信息`,draft:`仅在页面内编辑`,external_effect:`会影响外部系统`,destructive:`破坏性操作`,sensitive:`包含敏感操作`,createPrompt:`请帮我创建一个可重复运行的浏览器自动化。先询问我希望浏览器完成什么,陪我实际执行成功一次,然后保存成功步骤。不要让我处理技术细节。`,editPrompt:`请帮我修改浏览器自动化“{name}”(id:{id})。先询问我要修改什么,实际测试新的浏览器步骤,然后保存。`}};function w(e){return e!==`queued`&&e!==`running`}function T(e){return e==null?`-`:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):Array.isArray(e)?e.map(e=>`• ${T(e)}`).join(`
2
- `):typeof e==`object`?Object.entries(e).map(([e,t])=>`${e}: ${T(t)}`).join(`
3
- `):String(e)}function E(){let e=a(e=>e.language),t=C[e],n=r(),E=d(e=>e.setPageHeader),D=d(e=>e.clearPageHeader),[O,k]=(0,x.useState)(null),[A,j]=(0,x.useState)(),[M,N]=(0,x.useState)({}),[P,F]=(0,x.useState)([]),[I,L]=(0,x.useState)(),[R,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(!1),H=(0,x.useMemo)(()=>O?.find(e=>e.id===A),[A,O]),U=(0,x.useCallback)(async()=>{let e=await _.list();k(e.automations),j(t=>t&&e.automations.some(e=>e.id===t)?t:e.automations[0]?.id)},[]);(0,x.useEffect)(()=>{U().catch(e=>z(String(e)))},[U]),(0,x.useEffect)(()=>{H&&(N(y(H)),L(void 0),z(``),_.listRuns(H.id).then(e=>F(e.runs)).catch(e=>z(String(e))))},[H]),(0,x.useEffect)(()=>{if(!I||w(I.status))return;let e=window.setInterval(()=>{_.getRun(I.id).then(({run:e})=>{L(e),w(e.status)&&H&&_.listRuns(H.id).then(e=>F(e.runs))}).catch(e=>z(String(e)))},700);return()=>window.clearInterval(e)},[I,H]);let W=(0,x.useCallback)(e=>{n(`/chat/new?draft=${encodeURIComponent(e)}`)},[n]),G=(0,x.useMemo)(()=>(0,S.jsxs)(o,{onClick:()=>W(t.createPrompt),children:[(0,S.jsx)(f,{className:`size-4`}),t.create]}),[W,t.create,t.createPrompt]);(0,x.useLayoutEffect)(()=>(E({startExtra:null,main:(0,S.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:t.title}),end:G}),()=>D()),[D,G,E,t.title]);let K=async()=>{if(H){V(!0);try{await _.setEnabled(H.id,!H.enabled),await U()}catch(e){z(String(e))}finally{V(!1)}}},q=async()=>{if(H){if(!v(H,M)){z(t.required);return}V(!0);try{let{run:e}=await _.run(H.id,M);L(e),z(``)}catch(e){z(String(e))}finally{V(!1)}}},J=async()=>{if(!(!H||!window.confirm(t.confirmDelete))){V(!0);try{await _.remove(H.id),j(void 0),F([]),await U()}catch(e){z(String(e))}finally{V(!1)}}};return O===null?(0,S.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-surface-panel p-4 sm:p-6`,children:(0,S.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-[280px_minmax(0,1fr)]`,children:[(0,S.jsx)(s,{className:`h-[420px] rounded-xl`}),(0,S.jsx)(s,{className:`h-[420px] rounded-xl`})]})}):O.length===0?(0,S.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-surface-panel p-4 sm:p-6`,children:(0,S.jsxs)(`div`,{className:`m-auto max-w-md py-12 text-center`,children:[(0,S.jsx)(f,{className:`mx-auto size-10 text-accent`}),(0,S.jsx)(`h2`,{className:`mt-4 text-lg font-semibold text-fg`,children:t.emptyTitle}),(0,S.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:t.emptyBody}),(0,S.jsxs)(o,{className:`mt-5`,onClick:()=>W(t.createPrompt),children:[(0,S.jsx)(f,{className:`size-4`}),t.create]})]})}):(0,S.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-surface-panel p-4 sm:p-6`,children:(0,S.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 lg:grid-cols-[280px_minmax(0,1fr)]`,children:[(0,S.jsx)(`aside`,{className:`min-h-0 overflow-y-auto rounded-xl border border-edge bg-surface-base p-2`,children:O.map(e=>(0,S.jsxs)(`button`,{onClick:()=>j(e.id),className:`mb-1 w-full rounded-lg p-3 text-left ${A===e.id?`bg-accent-soft text-accent-fg`:`hover:bg-surface-hover`}`,children:[(0,S.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.name}),(0,S.jsxs)(`span`,{className:`mt-1 flex items-center gap-1.5 text-xs text-fg-muted`,children:[e.enabled?(0,S.jsx)(c,{className:`size-3.5 text-emerald-600`}):(0,S.jsx)(l,{className:`size-3.5`}),e.enabled?t.enabled:t.paused]})]},e.id))}),H&&(0,S.jsxs)(`main`,{className:`min-h-0 overflow-y-auto rounded-xl border border-edge bg-surface-base p-5 sm:p-6`,children:[(0,S.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,S.jsxs)(`div`,{className:`min-w-0`,children:[(0,S.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:H.name}),H.description&&(0,S.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm leading-6 text-fg-muted`,children:H.description}),(0,S.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 text-xs`,children:[(0,S.jsx)(`span`,{className:`rounded-full bg-surface-inset px-2.5 py-1 text-fg-muted`,children:t[H.risk]}),H.domains.map(e=>(0,S.jsxs)(`span`,{className:`flex items-center gap-1 rounded-full bg-surface-inset px-2.5 py-1 text-fg-muted`,children:[(0,S.jsx)(p,{className:`size-3`}),e]},e))]})]}),(0,S.jsxs)(`div`,{className:`flex gap-2`,children:[(0,S.jsxs)(o,{variant:`secondary`,disabled:B,onClick:()=>void K(),children:[H.enabled?(0,S.jsx)(l,{className:`size-4`}):(0,S.jsx)(c,{className:`size-4`}),H.enabled?t.pause:t.enable]}),(0,S.jsxs)(o,{variant:`secondary`,onClick:()=>W(t.editPrompt.replace(`{name}`,H.name).replace(`{id}`,H.id)),children:[(0,S.jsx)(i,{className:`size-4`}),t.edit]})]})]}),(0,S.jsxs)(`section`,{className:`mt-7 max-w-xl`,children:[(0,S.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:t.inputs}),Object.keys(H.inputs).length===0?(0,S.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:t.noInputs}):(0,S.jsx)(`div`,{className:`mt-3`,children:(0,S.jsx)(b,{automation:H,values:M,language:e,onChange:N})}),(0,S.jsxs)(`div`,{className:`mt-5 flex gap-2`,children:[(0,S.jsxs)(o,{variant:`primary`,disabled:!H.enabled||B||!!(I&&!w(I.status)),onClick:()=>void q(),children:[(0,S.jsx)(h,{className:`size-4`}),t.run]}),I&&!w(I.status)&&(0,S.jsxs)(o,{variant:`secondary`,onClick:()=>void _.cancel(I.id),children:[(0,S.jsx)(m,{className:`size-4`}),t.stop]})]}),R&&(0,S.jsx)(`p`,{className:`mt-3 text-sm text-red-700 dark:text-red-300`,children:R})]}),I&&(0,S.jsxs)(`section`,{className:`mt-7 rounded-xl border border-edge bg-surface-inset p-4`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-fg`,children:[(0,S.jsx)(u,{className:`size-4`}),t[I.status]]}),I.error&&(0,S.jsx)(`p`,{className:`mt-2 text-sm text-red-700 dark:text-red-300`,children:I.error}),I.status===`succeeded`&&I.result!==void 0&&(0,S.jsxs)(`div`,{className:`mt-3`,children:[(0,S.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:t.result}),(0,S.jsx)(`pre`,{className:`mt-2 max-h-64 overflow-auto whitespace-pre-wrap text-sm text-fg`,children:T(I.result)})]})]}),(0,S.jsxs)(`section`,{className:`mt-8`,children:[(0,S.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:t.history}),(0,S.jsx)(`div`,{className:`mt-2 divide-y divide-edge`,children:P.slice(0,10).map(e=>(0,S.jsxs)(`button`,{className:`flex w-full items-center justify-between gap-3 py-3 text-left text-sm hover:text-accent`,onClick:()=>L(e),children:[(0,S.jsx)(`span`,{children:t[e.status]}),(0,S.jsxs)(`span`,{className:`text-xs text-fg-muted`,children:[new Date(e.createdAtMs).toLocaleString(),e.durationMs?` · ${Math.max(1,Math.round(e.durationMs/1e3))}s`:``]})]},e.id))})]}),(0,S.jsx)(`div`,{className:`mt-8 border-t border-edge pt-4`,children:(0,S.jsxs)(o,{variant:`ghost`,className:`text-red-700 dark:text-red-300`,disabled:B,onClick:()=>void J(),children:[(0,S.jsx)(g,{className:`size-4`}),t.delete]})})]})]})})}export{E as BrowserAutomationsPage};
@@ -1 +0,0 @@
1
- import{p as e}from"./locale-store-K7mHrs6W.js";var t=e(()=>({connectionState:`idle`,error:null}));function n(e){t.setState(e)}export{t as n,n as t};