@xopcai/xopc 0.0.349 → 0.0.350

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 (152) 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-GAs9LrbD.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-BvL4FTKi.js → agent-defaults-settings-panel-q6mFje6y.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-plugin-dialog-BOzZvojX.js → agent-plugin-dialog-vR-3YU8w.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agents-BrPqEJm5.js → agents-DZXa_QVc.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-5GU28Q-V.js} +1 -1
  9. package/dist/gateway/static/root/assets/{appearance-settings-Cqk9QUWY.js → appearance-settings-uxEo59iJ.js} +1 -1
  10. package/dist/gateway/static/root/assets/{apps-page-DH1ZZh_x.js → apps-page-06LrJSYf.js} +1 -1
  11. package/dist/gateway/static/root/assets/{archive-plugin-CClKYiZH.js → archive-plugin-B4z8_4sq.js} +1 -1
  12. package/dist/gateway/static/root/assets/{automations-page-DqtZazSc.js → automations-page-Cap0FMSp.js} +1 -1
  13. package/dist/gateway/static/root/assets/{automations-workspace-BN0s1ILZ.js → automations-workspace-DEsdkcup.js} +2 -2
  14. package/dist/gateway/static/root/assets/{binary-plugins-C680MkH2.js → binary-plugins-PKMXJixJ.js} +1 -1
  15. package/dist/gateway/static/root/assets/{block-editor-B4lDSWIv.js → block-editor-Dv83e7vb.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-C1mBYS2x.js +3 -0
  18. package/dist/gateway/static/root/assets/{browser-settings-page-CNVdAeRH.js → browser-settings-page-Co2D8mug.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-nIIqZJuL.js} +2 -2
  21. package/dist/gateway/static/root/assets/{capabilities-settings-panel-Dd1xjlpb.js → capabilities-settings-panel-BrXWQIs7.js} +1 -1
  22. package/dist/gateway/static/root/assets/{capability-header-actions-CHokFPVe.js → capability-header-actions-C6d_GsqD.js} +1 -1
  23. package/dist/gateway/static/root/assets/{channels-aemisJsK.js → channels-EUbBfvHY.js} +1 -1
  24. package/dist/gateway/static/root/assets/{chat-terminal-dock-C9zgTx4N.js → chat-terminal-dock-CZTrJ5Do.js} +1 -1
  25. package/dist/gateway/static/root/assets/{computer-settings-page-DzIVWHw5.js → computer-settings-page-CWBZwtYT.js} +1 -1
  26. package/dist/gateway/static/root/assets/{connector-service-page-B_9tzNtD.js → connector-service-page-B5pF87fY.js} +1 -1
  27. package/dist/gateway/static/root/assets/{connectors-page-D0qvb3mB.js → connectors-page-9ztbuGCI.js} +1 -1
  28. package/dist/gateway/static/root/assets/{date-picker-B_hPKrIP.js → date-picker-xb5w8iAa.js} +1 -1
  29. package/dist/gateway/static/root/assets/{dependency-picker-BPAS7Ee7.js → dependency-picker-D7B6s4d4.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-XzkMTcLt.js → desktop-pet-Bt5JatKm.js} +1 -1
  31. package/dist/gateway/static/root/assets/{desktop-pet-settings-CmhF1kse.js → desktop-pet-settings-BdgUJk-e.js} +1 -1
  32. package/dist/gateway/static/root/assets/{device-pairing-wizard-BcptV-hP.js → device-pairing-wizard-DQ7LNTKz.js} +1 -1
  33. package/dist/gateway/static/root/assets/{directory-picker-path-field-CHbRbJZj.js → directory-picker-path-field-_PcWmfRH.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-debug-page-CNsneD82.js → extension-debug-page-BhXwxHMP.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-page-DxiiQ_-P.js → extension-page-CIXPBzGU.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-settings-page-DIh4aO4j.js → extension-settings-page-DE4UUMD-.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-CI2oGZEg.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-DfJvuWC-.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-DRG-aahH.js} +1 -1
  45. package/dist/gateway/static/root/assets/index-CPi50n0l.css +1 -0
  46. package/dist/gateway/static/root/assets/index-Z6i4GDcT.js +106 -0
  47. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CuQZEmVh.js → keyboard-shortcuts-settings-CSwc_Olv.js} +1 -1
  48. package/dist/gateway/static/root/assets/{local-app-workbench-page-BLbLqWVm.js → local-app-workbench-page-DsSCCThS.js} +1 -1
  49. package/dist/gateway/static/root/assets/{local-apps-page-CErGXyIl.js → local-apps-page-C4psaPz5.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-kx7ama7K.js} +1 -1
  53. package/dist/gateway/static/root/assets/{management-settings-QQT6byMB.js → management-settings-BqcrFVsF.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-BCMV9heb.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-Bvjc5JNM.js} +3 -3
  58. package/dist/gateway/static/root/assets/{notes-page-BYpUaCxU.js → notes-page-Dak5PuTq.js} +2 -2
  59. package/dist/gateway/static/root/assets/{page-context-capture-button-DOcROUXS.js → page-context-capture-button-BYQnvTni.js} +1 -1
  60. package/dist/gateway/static/root/assets/{page-tabs-CU8zjRtM.js → page-tabs--d3GEnvY.js} +1 -1
  61. package/dist/gateway/static/root/assets/{preview-open-alternatives-BoZWmgG_.js → preview-open-alternatives-ByuWaDEv.js} +1 -1
  62. package/dist/gateway/static/root/assets/{product-open-page-C0pJaYJB.js → product-open-page-CMvjGjTz.js} +1 -1
  63. package/dist/gateway/static/root/assets/{project-detail-page-xrlYOZ7-.js → project-detail-page-m8ybJpJ_.js} +1 -1
  64. package/dist/gateway/static/root/assets/{projects-page--OYwmNEy.js → projects-page-i00ns68r.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-CY4kQa1Z.js} +1 -1
  67. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-C06BmltI.js → runtime-tools-settings-panel-D-gA6BW9.js} +1 -1
  68. package/dist/gateway/static/root/assets/{scenes-page-BTRh_BNJ.js → scenes-page--sExi9Fz.js} +2 -2
  69. package/dist/gateway/static/root/assets/{schema-form-Dl0j1Pjj.js → schema-form-B8Zns_Se.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-BzW33zp4.js} +1 -1
  73. package/dist/gateway/static/root/assets/settings-advanced-gate-CVnn1f7J.js +1 -0
  74. package/dist/gateway/static/root/assets/{settings-form-section-DX9Q7-oB.js → settings-form-section-Lpep8yx-.js} +1 -1
  75. package/dist/gateway/static/root/assets/{settings-page-DyjpNUtv.js → settings-page-Cl_KOVsG.js} +1 -1
  76. package/dist/gateway/static/root/assets/{setup-status-panel-D7CPCTs-.js → setup-status-panel-mWQaql5h.js} +1 -1
  77. package/dist/gateway/static/root/assets/{share-preview-page-NXyrys7a.js → share-preview-page-ZZ6qg3xL.js} +1 -1
  78. package/dist/gateway/static/root/assets/{shares-settings-C7APzUWD.js → shares-settings-DhQRwYYL.js} +1 -1
  79. package/dist/gateway/static/root/assets/{skill-api-D2Zav1-k.js → skill-api-DC3EXeUS.js} +1 -1
  80. package/dist/gateway/static/root/assets/skill-reload-api-C-Dn5hSx.js +1 -0
  81. package/dist/gateway/static/root/assets/{skills-page-C8XzNFai.js → skills-page-ThkBmKew.js} +1 -1
  82. package/dist/gateway/static/root/assets/{system-settings-panel-CjAKelf_.js → system-settings-panel-C93mkvML.js} +1 -1
  83. package/dist/gateway/static/root/assets/{task-detail-page-C2tCewyf.js → task-detail-page-DWqYIP_j.js} +1 -1
  84. package/dist/gateway/static/root/assets/{tunnel-api-RsRe1MVk.js → tunnel-api-DI4NcRc8.js} +1 -1
  85. package/dist/gateway/static/root/assets/{usage-page-Cz8WM0U_.js → usage-page-C--1ibDb.js} +1 -1
  86. package/dist/gateway/static/root/assets/{use-autosave-Bs2Zw_LW.js → use-autosave-83u3Kf_7.js} +1 -1
  87. package/dist/gateway/static/root/assets/user-model-page-DasK0_MY.js +2 -0
  88. package/dist/gateway/static/root/assets/{voice-api-key-field-CCznhcKT.js → voice-api-key-field-D4SxKV47.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-RSWjSoEp.js} +1 -1
  91. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-C8Q_04la.js → workflow-run-setup-panel-BINT9Shl.js} +1 -1
  92. package/dist/gateway/static/root/assets/{workflows-page-3724WDyr.js → workflows-page-Bj3K-lxR.js} +2 -2
  93. package/dist/gateway/static/root/index.html +15 -15
  94. package/dist/package.js +1 -1
  95. package/dist/src/agent/agent-manager.js +4 -4
  96. package/dist/src/agent/background-review/run-background-review.js +1 -1
  97. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  98. package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
  99. package/dist/src/agent/image/tool-model-config.js +1 -1
  100. package/dist/src/agent/service.js +2 -2
  101. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  102. package/dist/src/agent-catalog/capabilities.js +2 -2
  103. package/dist/src/auth/credentials.js +1 -1
  104. package/dist/src/auth/oauth-provider-lock.js +1 -1
  105. package/dist/src/auth/sync-provider-auth.js +1 -1
  106. package/dist/src/automations/capabilities/drafts.js +1 -1
  107. package/dist/src/bootstrap/application-state.js +1 -1
  108. package/dist/src/capabilities/runtime/dispatcher.js +1 -1
  109. package/dist/src/capabilities/runtime/product.js +1 -1
  110. package/dist/src/chat-commands/agent-edit.js +1 -1
  111. package/dist/src/chat-commands/builtins/config.js +1 -1
  112. package/dist/src/cli/commands/agent.js +1 -1
  113. package/dist/src/cli/commands/agents.js +1 -1
  114. package/dist/src/cli/commands/models.js +1 -1
  115. package/dist/src/cli/commands/onboard/model.js +2 -2
  116. package/dist/src/cli/utils/init-workspace-core.js +1 -1
  117. package/dist/src/config/index.js +4 -4
  118. package/dist/src/config/loader.js +2 -2
  119. package/dist/src/config/models-json.js +1 -1
  120. package/dist/src/config/schema.js +1 -1
  121. package/dist/src/extensions/agent-plugins/validation.js +1 -1
  122. package/dist/src/gateway/agents-admin.js +2 -2
  123. package/dist/src/gateway/file-path-classifier.js +1 -1
  124. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  125. package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -2
  126. package/dist/src/gateway/hono/routes/models.js +1 -1
  127. package/dist/src/gateway/hono/routes/notes.js +2 -2
  128. package/dist/src/gateway/hono/routes/projects.js +2 -2
  129. package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
  130. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  131. package/dist/src/gateway/image-generation-setup.js +2 -2
  132. package/dist/src/gateway/lock.js +1 -1
  133. package/dist/src/gateway/service.js +6 -6
  134. package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
  135. package/dist/src/home-intelligence/host.js +2 -2
  136. package/dist/src/local-apps/service.js +1 -1
  137. package/dist/src/providers/model-catalog-persistence.js +1 -1
  138. package/dist/src/tasks/capabilities/read.js +2 -2
  139. package/dist/src/tui/backends/embedded-backend.js +3 -3
  140. package/dist/src/tui/tui-commands.js +1 -1
  141. package/dist/src/tui/tui-startup-resources.js +1 -1
  142. package/dist/src/tui/tui.js +1 -1
  143. package/dist/src/voice/realtime/persona-context.js +1 -1
  144. package/package.json +2 -2
  145. package/dist/gateway/static/root/assets/browser-automations-page-B0FqXGpQ.js +0 -3
  146. package/dist/gateway/static/root/assets/gateway-realtime-store-B87bp5kF.js +0 -1
  147. package/dist/gateway/static/root/assets/index-Cfg6ma6d.css +0 -1
  148. package/dist/gateway/static/root/assets/index-oJE8g8BL.js +0 -106
  149. package/dist/gateway/static/root/assets/messages-CY3XVeek.js +0 -3
  150. package/dist/gateway/static/root/assets/settings-advanced-gate-aDIE1Okc.js +0 -1
  151. package/dist/gateway/static/root/assets/skill-reload-api-C7-ZWRB-.js +0 -1
  152. package/dist/gateway/static/root/assets/user-model-page-BQ4P1A_c.js +0 -2
@@ -17,14 +17,14 @@ import { init_session_repository, listSessionMetadata, patchSessionMetadata } fr
17
17
  import { getSessionConfig, init_config_repository } from "../storage/sqlite/config-repository.js";
18
18
  import { init_sqlite } from "../storage/sqlite/index.js";
19
19
  import { normalizeAgentId } from "../agent-catalog/id.js";
20
- import { init_agent_scope, listAgentEntries, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agent/agent-scope.js";
21
- import { init_paths, resolveConfigPath, resolveExtensionsDir } from "../config/paths.js";
22
20
  import { init_config, resolveKnowledgeReadPolicy } from "../user-context/config.js";
23
21
  import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
22
+ import { init_agent_scope, listAgentEntries, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agent/agent-scope.js";
24
23
  import { init_agent_session_key, resolveAgentMainConversationId } from "../routing/agent-session-key.js";
25
24
  import { init_session_key, resolveConversationId, sanitizeSegment } from "../routing/session-key.js";
26
25
  import { getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
27
26
  import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
27
+ import { init_paths, resolveConfigPath, resolveExtensionsDir } from "../config/paths.js";
28
28
  import { prewarmModelRegistry } from "../providers/model-registry.js";
29
29
  import { init_providers, providers_exports } from "../providers/index.js";
30
30
  import { AI_USAGE_RETENTION_MS, markStaleAiUsageEventsUnknown, pruneAiUsageEvents } from "../storage/sqlite/ai-usage-repository.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,7 +1,7 @@
1
1
  import { AgentCatalogRepository, init_repository } from "../agent-catalog/repository.js";
2
- import { AgentCatalogService } from "../agent-catalog/service.js";
3
2
  import { getModelCatalogStore, init_model_catalog_store } from "../providers/model-catalog-store.js";
4
3
  import { compareCatalogModels } from "../providers/model-catalog-ranking.js";
4
+ import { AgentCatalogService } from "../agent-catalog/service.js";
5
5
  import { prepareUpdateGlobalDefaults } from "./global-defaults-admin.js";
6
6
  //#region src/gateway/xopc-cloud-capability-setup.ts
7
7
  init_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
@@ -5,10 +5,10 @@ import { currentOperationId, init_operation_context } from "../infra/operation-c
5
5
  import { afterSqliteCommit, init_transaction, runSqliteWriteTransaction } from "../storage/sqlite/transaction.js";
6
6
  import { ExtensionCapabilityBindingsSchema, extensionCapabilityPermissions } from "../../packages/gateway-contract/src/extension-capabilities.js";
7
7
  import { init_src } from "../../packages/gateway-contract/src/index.js";
8
- import { CapabilityError } from "../capabilities/runtime/errors.js";
9
8
  import { init_paths, resolveExtensionsDir } from "../config/paths.js";
10
9
  import { LocalAppStore } from "./store.js";
11
10
  import { slugifyProjectName } from "../projects/project-store.js";
11
+ import { CapabilityError } from "../capabilities/runtime/errors.js";
12
12
  import { DomainOutboxDispatcher } from "../infra/domain-outbox-dispatcher.js";
13
13
  import { validateLocalAppCapabilityContracts } from "./capabilities/contracts.js";
14
14
  import { buildLocalAppFixGuidance } from "./fix-guidance.js";
@@ -1,7 +1,7 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { init_paths_state, resolveXopcCloudCatalogCachePath } from "../config/paths-state.js";
3
- import { init_write_file_atomic, writeTextAtomic } from "../infra/write-file-atomic.js";
4
3
  import { ComputerProfileSchema, init_src } from "../../packages/computer-control-contract/src/index.js";
4
+ import { init_write_file_atomic, writeTextAtomic } from "../infra/write-file-atomic.js";
5
5
  import { voiceManifestSchema } from "../../packages/realtime-protocol/src/voice-catalog.js";
6
6
  import { init_voice } from "../../packages/realtime-protocol/src/voice.js";
7
7
  import { readFileSync, rmSync } from "node:fs";
@@ -2,10 +2,10 @@ import { ProductReadContracts } from "../../../packages/gateway-contract/src/cap
2
2
  import { init_src } from "../../../packages/gateway-contract/src/index.js";
3
3
  import { TaskRepository, init_task_repository } from "../task-repository.js";
4
4
  import { TaskRunRepository, init_task_run_repository } from "../task-run-repository.js";
5
- import { CapabilityError } from "../../capabilities/runtime/errors.js";
6
- import { defineReadCapability } from "../../capabilities/runtime/dispatcher.js";
7
5
  import { TaskConversationRepository } from "../task-conversation-repository.js";
8
6
  import { TaskReadModelProjector } from "../task-read-model-projector.js";
7
+ import { CapabilityError } from "../../capabilities/runtime/errors.js";
8
+ import { defineReadCapability } from "../../capabilities/runtime/dispatcher.js";
9
9
  import { TaskContextRepository } from "../task-context-repository.js";
10
10
  import { TaskDependencyService } from "../task-dependency-service.js";
11
11
  import { TaskValueMetricsService } from "../task-value-metrics-service.js";
@@ -9,12 +9,11 @@ import { appendComposerInputHistory, listComposerInputHistory } from "../../stor
9
9
  import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
10
10
  import { init_sqlite } from "../../storage/sqlite/index.js";
11
11
  import { normalizeAgentId } from "../../agent-catalog/id.js";
12
- import { init_agent_scope, listAgentEntries } from "../../agent/agent-scope.js";
13
- import { init_paths } from "../../config/paths.js";
14
- import { AgentCatalogService } from "../../agent-catalog/service.js";
15
12
  import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
13
+ import { init_agent_scope, listAgentEntries } from "../../agent/agent-scope.js";
16
14
  import { init_agent_session_key, resolveAgentIdFromConversationId } from "../../routing/agent-session-key.js";
17
15
  import { resolveEffectiveAgentProfile } from "../../config/agent-profile.js";
16
+ import { init_paths } from "../../config/paths.js";
18
17
  import { effectiveWorkspacePathForSession } from "../../session/session-workspace.js";
19
18
  import { ProjectService } from "../../projects/project-service.js";
20
19
  import { inferSuggestedProjectDefaultAgentId } from "../../projects/project-agent-suggestion.js";
@@ -23,6 +22,7 @@ import { buildSessionTimeline } from "../../session/transcript-outline.js";
23
22
  import { transcriptRowsToClientHistory } from "../../session/client-history.js";
24
23
  import { createCreateShareTool, isShareToolAvailable } from "../../agent/tools/create-share-tool.js";
25
24
  import { evictEmbeddedSessionRunner } from "../../agent/embedded/session-runner.js";
25
+ import { AgentCatalogService } from "../../agent-catalog/service.js";
26
26
  import { SessionIndex } from "../../session/manager.js";
27
27
  import "../../session/index.js";
28
28
  import { parseModelRef } from "../../agent/models/selection.js";
@@ -2,8 +2,8 @@ import { closeXopcDatabase, isXopcDatabaseOpen, openXopcDatabase } from "../stor
2
2
  import { TaskRepository } from "../tasks/task-repository.js";
3
3
  import { getSessionMetadata } from "../storage/sqlite/session-read-repository.js";
4
4
  import { init_sqlite } from "../storage/sqlite/index.js";
5
- import { resolveConfigPath } from "../config/paths.js";
6
5
  import { init_agent_session_key, isValidAgentId, normalizeAgentId } from "../routing/agent-session-key.js";
6
+ import { resolveConfigPath } from "../config/paths.js";
7
7
  import { init_providers, providerSupportsOAuth } from "../providers/index.js";
8
8
  import { ProjectService } from "../projects/project-service.js";
9
9
  import { isValidProjectAgentId, normalizeProjectAgentId } from "../projects/project-agent.js";
@@ -1,6 +1,6 @@
1
1
  import { resolveStateDir } from "../config/paths-state.js";
2
- import { init_paths, resolveAgentProfileDir, resolveBundledSkillsDir } from "../config/paths.js";
3
2
  import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
3
+ import { init_paths, resolveAgentProfileDir, resolveBundledSkillsDir } from "../config/paths.js";
4
4
  import { resolveBootstrapFilesSync } from "../agent/bootstrap/bootstrap-files.js";
5
5
  import { listConnectorInstances } from "../connectors/instances.js";
6
6
  import { createSkillConfigManager, isSkillEnabled } from "../agent/skills/config.js";
@@ -1,8 +1,8 @@
1
1
  import { version } from "../../package.js";
2
2
  import { resolveStateDir, resolveXopcDatabasePath } from "../config/paths-state.js";
3
- import { init_paths } from "../config/paths.js";
4
3
  import { init_agent_session_key, normalizeAgentId } from "../routing/agent-session-key.js";
5
4
  import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
5
+ import { init_paths } from "../config/paths.js";
6
6
  import { getAllModels, getAllProviders, getApiKey, init_providers, isProviderConfiguredSync } from "../providers/index.js";
7
7
  import { isTerminalWorkflowRunStatus } from "../workflows/domain/run.js";
8
8
  import "../workflows/domain/index.js";
@@ -1,6 +1,6 @@
1
1
  import { init_agent_scope, resolveAgentProfileDir } from "../../agent/agent-scope.js";
2
- import { DEFAULT_IDENTITY_FILENAME, DEFAULT_SOUL_FILENAME } from "../../agent/context/workspace.js";
3
2
  import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
3
+ import { DEFAULT_IDENTITY_FILENAME, DEFAULT_SOUL_FILENAME } from "../../agent/context/workspace.js";
4
4
  import { loadProfileBootstrapFiles } from "../../agent/bootstrap/load-bootstrap-files.js";
5
5
  import { join } from "node:path";
6
6
  import { statSync } from "node:fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xopcai/xopc",
3
- "version": "0.0.349",
3
+ "version": "0.0.350",
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",
@@ -161,8 +161,8 @@
161
161
  "@xopcai/browser-control-contract": "0.1.0",
162
162
  "@xopcai/computer-control-contract": "0.1.0",
163
163
  "@xopcai/endpoint-tools-client": "0.0.0",
164
- "@xopcai/gateway-contract": "0.0.0",
165
164
  "@xopcai/endpoint-tools-protocol": "0.0.0",
165
+ "@xopcai/gateway-contract": "0.0.0",
166
166
  "@xopcai/realtime-client": "0.0.0",
167
167
  "@xopcai/realtime-protocol": "0.0.0"
168
168
  },
@@ -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};