@xopcai/xopc 0.0.299 → 0.0.301

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 (119) 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/{activity-store-C-DSdak3.js → activity-store-sCQ2ErNm.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BnrB5fWD.js → agent-avatar-dicebear-L6Vh9fL1.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-CaA7l5Xv.js → agent-defaults-settings-panel-C22DdeJ6.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agents-DNxSNGao.js → agents-CjwnFadx.js} +1 -1
  7. package/dist/gateway/static/root/assets/api-BjlN9GPQ.js +1 -0
  8. package/dist/gateway/static/root/assets/{api-DS4w0i5N.js → api-pwK0DxZJ.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-Dfrcz-vZ.js → app-management-settings-panel-BPanjQB6.js} +1 -1
  10. package/dist/gateway/static/root/assets/appearance-settings-CUWA2E_f.js +1 -0
  11. package/dist/gateway/static/root/assets/{apps-page-Bg-7fqIS.js → apps-page-D8hP1XhF.js} +1 -1
  12. package/dist/gateway/static/root/assets/{archive-plugin-CISHdvCz.js → archive-plugin-BT7OnQyy.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-c0q_Q6IQ.js → attachment-load-CQGhCfVn.js} +1 -1
  14. package/dist/gateway/static/root/assets/{automations-page-BOiNdKcv.js → automations-page-CHeFkkKk.js} +1 -1
  15. package/dist/gateway/static/root/assets/automations-workspace-B_-VM4Va.js +6 -0
  16. package/dist/gateway/static/root/assets/{binary-plugins-BO1hALPX.js → binary-plugins-D_8pZaqQ.js} +1 -1
  17. package/dist/gateway/static/root/assets/{block-editor-BWzZ4hDH.js → block-editor-m48cnmng.js} +1 -1
  18. package/dist/gateway/static/root/assets/{browser-automation-inputs-DvwCwLOp.js → browser-automation-inputs-jciex8-r.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-automations-page-B8LfUUco.js → browser-automations-page-ct9dHGJF.js} +1 -1
  20. package/dist/gateway/static/root/assets/{browser-settings-page-BtZbX85K.js → browser-settings-page-DNX0BZFM.js} +1 -1
  21. package/dist/gateway/static/root/assets/{capabilities-settings-panel-mNpAFqTf.js → capabilities-settings-panel-nvCpR13B.js} +1 -1
  22. package/dist/gateway/static/root/assets/{channels-settings-BBX7Gp4q.js → channels-settings-BeDwuVtH.js} +1 -1
  23. package/dist/gateway/static/root/assets/{channels-status-swr-CgtFOwNh.js → channels-status-swr-Cz3X8Gfa.js} +1 -1
  24. package/dist/gateway/static/root/assets/{chat-terminal-dock-CLYsf1w_.js → chat-terminal-dock-Bn_th7oe.js} +1 -1
  25. package/dist/gateway/static/root/assets/{computer-model-settings-DYWcZu2X.js → computer-model-settings-BOObauzH.js} +1 -1
  26. package/dist/gateway/static/root/assets/{computer-settings-page-B4pC7mRs.js → computer-settings-page-BicG-IvN.js} +1 -1
  27. package/dist/gateway/static/root/assets/{connectors-page-BVUnp0UV.js → connectors-page-D9xCnhbY.js} +1 -1
  28. package/dist/gateway/static/root/assets/{cron-expression-DKSgHs4I.js → cron-expression-C0ogAVG7.js} +1 -1
  29. package/dist/gateway/static/root/assets/{date-picker-DRTglPVS.js → date-picker-HtU776kx.js} +1 -1
  30. package/dist/gateway/static/root/assets/{dependency-picker-_-7WsbTH.js → dependency-picker-DvDdN4Xu.js} +1 -1
  31. package/dist/gateway/static/root/assets/{desktop-pet-CR7n2K67.js → desktop-pet-BWi5FE7D.js} +1 -1
  32. package/dist/gateway/static/root/assets/{desktop-pet-settings-Bu7g83kd.js → desktop-pet-settings-CptAwdZd.js} +1 -1
  33. package/dist/gateway/static/root/assets/{device-pairing-wizard-D5z7BvaO.js → device-pairing-wizard-C8BiZYwP.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-debug-page-BI8pvu2u.js → extension-debug-page-nRRdMurF.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-page-EZC07dGv.js → extension-page-DxotmtcG.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-settings-page-DLYC6gVA.js → extension-settings-page-BK2t7aFl.js} +1 -1
  37. package/dist/gateway/static/root/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2 +0 -0
  38. package/dist/gateway/static/root/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2 +0 -0
  39. package/dist/gateway/static/root/assets/{gateway-config-swr-B2xVR9gt.js → gateway-config-swr-COJzzscc.js} +1 -1
  40. package/dist/gateway/static/root/assets/{gateway-settings-C17LDur8.js → gateway-settings-rIGo_jeB.js} +1 -1
  41. package/dist/gateway/static/root/assets/{gateway-startup-retry-c7s8h7px.js → gateway-startup-retry-211-jptU.js} +1 -1
  42. package/dist/gateway/static/root/assets/{heartbeat-settings-BAMr_vYa.js → heartbeat-settings-DAHqGRKZ.js} +1 -1
  43. package/dist/gateway/static/root/assets/{home-page-DG19Sjrn.js → home-page-BU59mAGQ.js} +1 -1
  44. package/dist/gateway/static/root/assets/{image-generation-api-DUjbV88R.js → image-generation-api-sO31fQr_.js} +1 -1
  45. package/dist/gateway/static/root/assets/{imports-page-BaQmVh_d.js → imports-page-BQ4HTIVc.js} +1 -1
  46. package/dist/gateway/static/root/assets/{index-B7JCOaCc.js → index-54o0AGdj.js} +48 -50
  47. package/dist/gateway/static/root/assets/index-R89i_XYi.css +1 -0
  48. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DfNQK_hR.js → keyboard-shortcuts-settings-BSgsIe7E.js} +1 -1
  49. package/dist/gateway/static/root/assets/{local-app-workbench-page-h48NEuKs.js → local-app-workbench-page-BtEQDQeQ.js} +1 -1
  50. package/dist/gateway/static/root/assets/{local-apps-page-DFMrfoGF.js → local-apps-page-BrEO9hz5.js} +1 -1
  51. package/dist/gateway/static/root/assets/{locale-store-CwuCkjo7.js → locale-store-DuG-kbsP.js} +1 -1
  52. package/dist/gateway/static/root/assets/{logs-page-CD9MfQDD.js → logs-page-DhXIIoc0.js} +1 -1
  53. package/dist/gateway/static/root/assets/{management-settings-Dib_yIDQ.js → management-settings-DC67VTpr.js} +1 -1
  54. package/dist/gateway/static/root/assets/{markdown-view-3YQc6QFV.js → markdown-view-B1q2w6W_.js} +1 -1
  55. package/dist/gateway/static/root/assets/{media-plugins-DlZXjN6z.js → media-plugins-DdoSox1I.js} +1 -1
  56. package/dist/gateway/static/root/assets/messages-BYbx4OuI.js +3 -0
  57. package/dist/gateway/static/root/assets/{note-detail-panel-CS0W3ESn.js → note-detail-panel-CCIA4VbP.js} +3 -3
  58. package/dist/gateway/static/root/assets/{notes-page-BNMVGN6Y.js → notes-page-C8JeFMSH.js} +1 -1
  59. package/dist/gateway/static/root/assets/{page-tabs-BLzm5EXm.js → page-tabs-B_I0YuTK.js} +1 -1
  60. package/dist/gateway/static/root/assets/{preview-open-alternatives-B6QLKIZy.js → preview-open-alternatives--5Zt1oSs.js} +1 -1
  61. package/dist/gateway/static/root/assets/{proactive-page-W_uN2_ie.js → proactive-page-BBJZB2RV.js} +1 -1
  62. package/dist/gateway/static/root/assets/{product-open-page-DLm3cUhY.js → product-open-page-CKFPKr0A.js} +1 -1
  63. package/dist/gateway/static/root/assets/{project-detail-page-Gfze4S0P.js → project-detail-page-DeTeDel1.js} +1 -1
  64. package/dist/gateway/static/root/assets/{projects-page-DT7zmH0f.js → projects-page-BUsI5G7U.js} +1 -1
  65. package/dist/gateway/static/root/assets/{registry-api-Cxx1-pCg.js → registry-api-BDgFNu05.js} +1 -1
  66. package/dist/gateway/static/root/assets/{remote-access-hub-CXQkXSU2.js → remote-access-hub-DSGwCc4h.js} +1 -1
  67. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DHkNbhpP.js → runtime-tools-settings-panel-BY9oD7eN.js} +1 -1
  68. package/dist/gateway/static/root/assets/{schema-form-BTLg2fN1.js → schema-form-CuIDQtYN.js} +1 -1
  69. package/dist/gateway/static/root/assets/{sessions-page-CxTLRoxv.js → sessions-page-zAeJa1Ae.js} +1 -1
  70. package/dist/gateway/static/root/assets/settings-advanced-gate-BG4EILeB.js +1 -0
  71. package/dist/gateway/static/root/assets/{settings-form-section-D9rWLTBX.js → settings-form-section-C4D1p0xR.js} +1 -1
  72. package/dist/gateway/static/root/assets/{settings-page-BR9XJ0j9.js → settings-page-BBG4jliE.js} +1 -1
  73. package/dist/gateway/static/root/assets/{setup-status-panel-BSo76NwE.js → setup-status-panel-DXqDeXNi.js} +1 -1
  74. package/dist/gateway/static/root/assets/{share-preview-page-Dx2IpPEp.js → share-preview-page-DbE7gsDd.js} +1 -1
  75. package/dist/gateway/static/root/assets/{shares-settings-BMF0Bo06.js → shares-settings-BN_O6Dwt.js} +1 -1
  76. package/dist/gateway/static/root/assets/skill-reload-api-Sq-IWawl.js +1 -0
  77. package/dist/gateway/static/root/assets/{skills-page-CaX9EQtn.js → skills-page-Dh33NKoP.js} +1 -1
  78. package/dist/gateway/static/root/assets/{skills-page.utils-CxWdcFKs.js → skills-page.utils-BNz7GQvw.js} +1 -1
  79. package/dist/gateway/static/root/assets/{system-settings-panel-BkiXkDSq.js → system-settings-panel-C3L8_KEq.js} +1 -1
  80. package/dist/gateway/static/root/assets/{task-detail-page-UBuGZQkl.js → task-detail-page-CJ1WpRpN.js} +1 -1
  81. package/dist/gateway/static/root/assets/theme-store-JzZVUvEh.js +1 -0
  82. package/dist/gateway/static/root/assets/{tunnel-api-CEXwG7vJ.js → tunnel-api-GLzwLaUZ.js} +1 -1
  83. package/dist/gateway/static/root/assets/{use-autosave-BHxjmV8l.js → use-autosave-DSrlXbBg.js} +1 -1
  84. package/dist/gateway/static/root/assets/{user-model-page-Dvtr3CPj.js → user-model-page-CX9eizCN.js} +1 -1
  85. package/dist/gateway/static/root/assets/{voice-api-key-field-BCNM-BaQ.js → voice-api-key-field-9P97T0CT.js} +1 -1
  86. package/dist/gateway/static/root/assets/{voice-config-api-De1DTzxK.js → voice-config-api-DJvwbFbz.js} +1 -1
  87. package/dist/gateway/static/root/assets/{work-discovery-overlay-tig5sF-Q.js → work-discovery-overlay-CoVHgrQY.js} +1 -1
  88. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-OcS30LVZ.js → workflow-run-setup-panel-BR-S_IGS.js} +1 -1
  89. package/dist/gateway/static/root/assets/{workflows-page-AqlMn0Bx.js → workflows-page-ea-j18xi.js} +1 -1
  90. package/dist/gateway/static/root/index.html +10 -10
  91. package/dist/package.js +1 -1
  92. package/dist/src/agent/service/process-direct-one-shot.js +1 -0
  93. package/dist/src/cli/commands/connectors.js +1 -1
  94. package/dist/src/config/schema.js +1 -1
  95. package/dist/src/connectors/auth-provider-registry.js +1 -1
  96. package/dist/src/connectors/connected-source-ingestion.js +1 -1
  97. package/dist/src/connectors/connection-recovery-service.js +1 -1
  98. package/dist/src/connectors/health.js +1 -1
  99. package/dist/src/gateway/automation-agent-session.js +4 -1
  100. package/dist/src/gateway/hono/routes/capabilities.js +1 -1
  101. package/dist/src/gateway/hono/routes/connectors.js +3 -3
  102. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  103. package/dist/src/gateway/service/run-gateway-agent.js +2 -3
  104. package/dist/src/notifications/plain-text.d.ts +1 -0
  105. package/dist/src/notifications/plain-text.js +14 -0
  106. package/dist/src/notifications/planner.js +2 -1
  107. package/dist/src/storage/sqlite/session-repository.js +12 -1
  108. package/dist/src/storage/sqlite/transcript-repository.js +11 -2
  109. package/dist/src/tui/tui-startup-resources.js +1 -1
  110. package/dist/src/workflows/service/workflow-session-bridge.js +5 -1
  111. package/package.json +2 -2
  112. package/dist/gateway/static/root/assets/api-BhJmc8E-.js +0 -1
  113. package/dist/gateway/static/root/assets/appearance-settings-BLB_xmtb.js +0 -1
  114. package/dist/gateway/static/root/assets/automations-workspace-DDdsNbjH.js +0 -6
  115. package/dist/gateway/static/root/assets/index-Bt6a_Yxc.css +0 -2
  116. package/dist/gateway/static/root/assets/messages-D6CRVWtT.js +0 -3
  117. package/dist/gateway/static/root/assets/settings-advanced-gate-BgtDlDZh.js +0 -1
  118. package/dist/gateway/static/root/assets/skill-reload-api-DNBw3BJR.js +0 -1
  119. package/dist/gateway/static/root/assets/theme-store-Dt7ob2wD.js +0 -1
@@ -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-B7JCOaCc.js"></script>
14
+ <script type="module" crossorigin src="/assets/index-54o0AGdj.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,14 +25,14 @@
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-D6CRVWtT.js">
29
- <link rel="modulepreload" crossorigin href="/assets/locale-store-CwuCkjo7.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/messages-BYbx4OuI.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/locale-store-DuG-kbsP.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/cn-JdwAhgNB.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/schemas-BaskVM5g.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/product-delivery-CCC4FJ3Y.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/app-link-BiBXVEvp.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/copy-to-clipboard-HOJ79TWv.js">
35
- <link rel="modulepreload" crossorigin href="/assets/markdown-view-3YQc6QFV.js">
35
+ <link rel="modulepreload" crossorigin href="/assets/markdown-view-B1q2w6W_.js">
36
36
  <link rel="modulepreload" crossorigin href="/assets/dist-Che_jiQF.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/check-DUBLcKHA.js">
@@ -49,14 +49,14 @@
49
49
  <link rel="modulepreload" crossorigin href="/assets/files-Be5viEFY.js">
50
50
  <link rel="modulepreload" crossorigin href="/assets/tool-activity-BtJkgjFf.js">
51
51
  <link rel="modulepreload" crossorigin href="/assets/button-CGlRPNzi.js">
52
- <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-c7s8h7px.js">
53
- <link rel="modulepreload" crossorigin href="/assets/registry-api-Cxx1-pCg.js">
54
- <link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-B2xVR9gt.js">
52
+ <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-211-jptU.js">
53
+ <link rel="modulepreload" crossorigin href="/assets/registry-api-BDgFNu05.js">
54
+ <link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-COJzzscc.js">
55
55
  <link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
56
- <link rel="modulepreload" crossorigin href="/assets/activity-store-C-DSdak3.js">
57
- <link rel="modulepreload" crossorigin href="/assets/theme-store-Dt7ob2wD.js">
56
+ <link rel="modulepreload" crossorigin href="/assets/activity-store-sCQ2ErNm.js">
57
+ <link rel="modulepreload" crossorigin href="/assets/theme-store-JzZVUvEh.js">
58
58
  <link rel="stylesheet" crossorigin href="/assets/markdown-view-Y68dCxuc.css">
59
- <link rel="stylesheet" crossorigin href="/assets/index-Bt6a_Yxc.css">
59
+ <link rel="stylesheet" crossorigin href="/assets/index-R89i_XYi.css">
60
60
  </head>
61
61
  <body>
62
62
  <div id="root"></div>
package/dist/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "0.0.299";
2
+ var version = "0.0.301";
3
3
  //#endregion
4
4
  export { version };
@@ -74,6 +74,7 @@ async function runProcessDirect(deps, input) {
74
74
  clearPendingTranscriptUserMessage(input.conversationId, pendingUserMessage);
75
75
  }
76
76
  })();
77
+ if (input.origin.type === "system" && input.origin.source === "automation" && result.lastAssistantText?.trim()) await deps.sessionStore.updateMetadata(input.conversationId, { hiddenFromSessionList: false });
77
78
  deps.onTurnComplete?.(input.conversationId, result.lastAssistantText);
78
79
  if (!result.ok) throw new Error(result.errorMessage ?? "Agent turn failed");
79
80
  return result.lastAssistantText ?? "";
@@ -1,6 +1,6 @@
1
1
  import { init_loader, loadConfig, saveConfig } from "../../config/loader.js";
2
- import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../capabilities/store-connector.js";
3
2
  import { register } from "../registry.js";
3
+ import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../capabilities/store-connector.js";
4
4
  import { confirm } from "@inquirer/prompts";
5
5
  import { Command } from "commander";
6
6
  //#region src/cli/commands/connectors.ts
@@ -1,7 +1,7 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { ComputerConfigSchema, init_config } from "../computer/config.js";
3
2
  import { AgentModelsOverrideSchema, AgentsConfigSchema as AgentsConfigSchema$1, DEFAULT_AGENT_MODEL_REF, ImageGenerationRouteSchema, ModelRouteSchema } from "../agent-config/schema.js";
4
3
  import { init_agent_config } from "../agent-config/index.js";
4
+ import { ComputerConfigSchema, init_config } from "../computer/config.js";
5
5
  import { DEFAULT_CONTEXT_COMPACTION_POLICY, UserContextConfigSchema, init_config as init_config$1 } from "../user-context/config.js";
6
6
  import { init_default_model } from "./default-model.js";
7
7
  import { init_public_url, validatePublicUrl } from "./public-url.js";
@@ -1,7 +1,7 @@
1
1
  import { startComposioAuthorize } from "./composio.js";
2
+ import { getMcpOAuthManager } from "../agent/mcp/oauth/mcp-oauth-manager.js";
2
3
  import { isManagedConnectorServer } from "./materialize.js";
3
4
  import { getConnectorInstance } from "./instances.js";
4
- import { getMcpOAuthManager } from "../agent/mcp/oauth/mcp-oauth-manager.js";
5
5
  //#region src/connectors/auth-provider-registry.ts
6
6
  async function startConnectorAuthorization(definition, config, instanceId) {
7
7
  if (definition.auth.mode !== "oauth") throw new Error(`Connector "${definition.id}" does not use OAuth.`);
@@ -6,8 +6,8 @@ import { ComposioSessionsAdapter } from "./composio-sessions.js";
6
6
  import { decodeConnectedSourceCursor, encodeConnectedSourceCursor } from "./connected-source-cursor.js";
7
7
  import { scopeForComposioAction } from "./composio.js";
8
8
  import { getConnectorDefinition } from "./catalog.js";
9
- import { getConnectorInstance } from "./instances.js";
10
9
  import { getWorkspacePath } from "../config/workspace-path-helpers.js";
10
+ import { getConnectorInstance } from "./instances.js";
11
11
  import { KnowledgeIngestionService } from "../knowledge/ingestion-service.js";
12
12
  import { ConnectedKnowledgePipeline } from "../knowledge/connected-knowledge-pipeline.js";
13
13
  import { LocalFolderKnowledgeSourceAdapter } from "../knowledge/local-folder-adapter.js";
@@ -13,9 +13,9 @@ import { getConnectorDefinition } from "./catalog.js";
13
13
  import { capabilityActions, isToolInputSchema, missingConnectionCapabilities } from "./connection-capabilities.js";
14
14
  import { connectorPrincipalForSession } from "./principal.js";
15
15
  import { resolveConnectionCandidate } from "./connection-candidates.js";
16
+ import { persistConfigMutation } from "../config/config-mutation.js";
16
17
  import { listConnectorInstances } from "./instances.js";
17
18
  import { installConnector } from "./install.js";
18
- import { persistConfigMutation } from "../config/config-mutation.js";
19
19
  import { randomUUID } from "node:crypto";
20
20
  //#region src/connectors/connection-recovery-service.ts
21
21
  init_transaction();
@@ -1,6 +1,6 @@
1
+ import { getWorkspacePath } from "../config/workspace-path-helpers.js";
1
2
  import { materializeConnectorMcpServer } from "./materialize.js";
2
3
  import { getConnectorInstance } from "./instances.js";
3
- import { getWorkspacePath } from "../config/workspace-path-helpers.js";
4
4
  import { listBundleMcpServerCapabilitiesForGateway } from "../agent/mcp/bundle-mcp-gateway.js";
5
5
  //#region src/connectors/health.ts
6
6
  function classifyConnectorHealthError(error) {
@@ -3,7 +3,10 @@ async function prepareAutomationAgentSession(store, projects, input) {
3
3
  await store.resolveTranscriptPath(input.conversationId, { metadata: {
4
4
  hiddenFromSessionList: true,
5
5
  name: input.automationName,
6
- customData: { titleSource: "provisional" },
6
+ customData: {
7
+ titleSource: "provisional",
8
+ deferVisibilityUntilOutput: true
9
+ },
7
10
  projectId: input.projectId,
8
11
  sourceChannel: "automation",
9
12
  sourceChatId: `default:dm:${input.peerId}`,
@@ -1,5 +1,5 @@
1
- import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../../capabilities/store-connector.js";
2
1
  import { ConfigPersistenceError, persistConfigMutation } from "../../../config/config-mutation.js";
2
+ import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../../capabilities/store-connector.js";
3
3
  //#region src/gateway/hono/routes/capabilities.ts
4
4
  function errorMessage(error) {
5
5
  return error instanceof Error ? error.message : String(error);
@@ -12,16 +12,16 @@ import { createConnectorSetupSecretRequest, submitConnectorSetupSecret } from ".
12
12
  import { configureComposioApiKey, executeComposioTool, getComposioInstallationPolicy, getComposioToolkitAuthState, getComposioToolkitScope, inspectComposioConnectorHealth, listComposioConnections, listComposioTools, refreshComposioConnection, revokeComposioConnection, setComposioToolkitScope, updateComposioConnection, updateComposioInstallationPolicy } from "../../../connectors/composio.js";
13
13
  import { listConnectorProviders } from "../../../connectors/providers.js";
14
14
  import { getConnectorDefinition, listConnectorCatalog } from "../../../connectors/catalog.js";
15
- import { recordConnectorHealthUsage } from "../../../connectors/usage.js";
16
- import { getConnectorInstance, getInstalledConnectorDefinition, listConnectorInstances } from "../../../connectors/instances.js";
17
- import { installConnector, installConnectorDefinition, uninstallConnector, updateConnectorConfig } from "../../../connectors/install.js";
18
15
  import { ConfigPersistenceError, persistConfigMutation } from "../../../config/config-mutation.js";
19
16
  import { getMcpOAuthManager } from "../../../agent/mcp/oauth/mcp-oauth-manager.js";
17
+ import { recordConnectorHealthUsage } from "../../../connectors/usage.js";
18
+ import { getConnectorInstance, getInstalledConnectorDefinition, listConnectorInstances } from "../../../connectors/instances.js";
20
19
  import { startConnectorAuthorization } from "../../../connectors/auth-provider-registry.js";
21
20
  import { composioLogoResponse } from "../../../connectors/composio-logo.js";
22
21
  import { inspectManagedComposioStatus } from "../../../connectors/composio-managed-client.js";
23
22
  import { appendComposioTriggerEvent, listComposioTriggerEvents } from "../../../connectors/composio-triggers.js";
24
23
  import { ingestLocalFolderSource } from "../../../connectors/connected-source-ingestion.js";
24
+ import { installConnector, installConnectorDefinition, uninstallConnector, updateConnectorConfig } from "../../../connectors/install.js";
25
25
  import { previewConnectorDefinition, testConnectorInstance } from "../../../connectors/health.js";
26
26
  import { listUnderstandingSourceGrants, revokeUnderstandingSourceGrant } from "../../../user-context/sources/repository.js";
27
27
  import { setConnectorEnabled } from "../../../connectors/lifecycle.js";
@@ -1,8 +1,8 @@
1
1
  import { canonicalizeConfiguredMcpServer, normalizeConfiguredMcpServers } from "../../../config/mcp-config-normalize.js";
2
2
  import { loadMergedBundleMcpConfig } from "../../../agent/mcp/bundle-mcp-config.js";
3
- import { isManagedConnectorServer } from "../../../connectors/materialize.js";
4
3
  import { getWorkspacePath } from "../../../config/workspace-path-helpers.js";
5
4
  import { getMcpOAuthManager } from "../../../agent/mcp/oauth/mcp-oauth-manager.js";
5
+ import { isManagedConnectorServer } from "../../../connectors/materialize.js";
6
6
  import { listBundleMcpServerCapabilitiesForGateway, listBundleMcpServerToolsForGateway } from "../../../agent/mcp/bundle-mcp-gateway.js";
7
7
  //#region src/gateway/hono/routes/mcp.ts
8
8
  function registerMcpRoutes(authenticated, deps) {
@@ -12,6 +12,7 @@ import { TaskRunCoordinator } from "../../tasks/task-run-coordinator.js";
12
12
  import { formatAgentRunErrorForClient } from "../../agent/client-error-format.js";
13
13
  import "../chat-limits.js";
14
14
  import { prependEnvelopeTimestamp } from "../../channels/envelope-timestamp.js";
15
+ import { markdownNotificationPreview } from "../../notifications/plain-text.js";
15
16
  import { ChatStreamMapper } from "../chat-stream/mapper.js";
16
17
  import { resolveWebchatConversationId } from "../resolve-webchat-session-key.js";
17
18
  import { recordExplicitRelationshipFollowUp } from "../../user-context/relationship-continuity.js";
@@ -326,9 +327,7 @@ async function* runGatewayAgent(deps, message, channel, chatId, origin, attachme
326
327
  }
327
328
  if (webchatConversationId) {
328
329
  const metaAfter = await sessionIndex.getSessionMetadata(webchatConversationId).catch(() => void 0);
329
- const normalizedResponse = terminalStatus === "success" ? mapper.getLastAssistantText().replace(/\s+/g, " ").trim() : "";
330
- const responseCharacters = Array.from(normalizedResponse);
331
- const responsePreview = responseCharacters.length > 180 ? `${responseCharacters.slice(0, 179).join("")}…` : normalizedResponse;
330
+ const responsePreview = terminalStatus === "success" ? markdownNotificationPreview(mapper.getLastAssistantText(), 180) : "";
332
331
  if (metaAfter?.name) emit("session.updated", {
333
332
  key: webchatConversationId,
334
333
  name: metaAfter.name
@@ -0,0 +1 @@
1
+ export declare function markdownNotificationPreview(markdown: string, maxCharacters: number): string;
@@ -0,0 +1,14 @@
1
+ import { markdownToIR } from "../markdown/ir.js";
2
+ import "../markdown/index.js";
3
+ //#region src/notifications/plain-text.ts
4
+ function markdownNotificationPreview(markdown, maxCharacters) {
5
+ const plainText = markdownToIR(markdown, {
6
+ enableSpoilers: true,
7
+ linkify: true,
8
+ tableMode: "bullets"
9
+ }).text.replace(/\s+/g, " ").trim();
10
+ const characters = Array.from(plainText);
11
+ return characters.length > maxCharacters ? `${characters.slice(0, Math.max(0, maxCharacters - 1)).join("")}…` : plainText;
12
+ }
13
+ //#endregion
14
+ export { markdownNotificationPreview };
@@ -1,5 +1,6 @@
1
1
  import { NotificationTargetSchema } from "../../packages/gateway-contract/src/notifications.js";
2
2
  import { init_src } from "../../packages/gateway-contract/src/index.js";
3
+ import { markdownNotificationPreview } from "./plain-text.js";
3
4
  //#region src/notifications/planner.ts
4
5
  init_src();
5
6
  function chatPlan(payload) {
@@ -16,7 +17,7 @@ function chatPlan(payload) {
16
17
  zh: "打开对话查看结果。"
17
18
  };
18
19
  const sessionTitle = typeof event.sessionTitle === "string" ? event.sessionTitle.trim().slice(0, 120) : "";
19
- const responsePreview = completed && typeof event.responsePreview === "string" ? Array.from(event.responsePreview.trim()).slice(0, 180).join("") : "";
20
+ const responsePreview = completed && typeof event.responsePreview === "string" ? markdownNotificationPreview(event.responsePreview, 180) : "";
20
21
  return {
21
22
  dedupeKey: `${type}:${event.runId}`,
22
23
  notification: {
@@ -71,7 +71,18 @@ function listSessionMetadata(query = {}) {
71
71
  const db = getSqliteDatabase();
72
72
  const conditions = [];
73
73
  const params = [];
74
- if (!query.includeHidden) conditions.push(`s.hidden_from_session_list = 0`);
74
+ if (!query.includeHidden) {
75
+ conditions.push(`s.hidden_from_session_list = 0`);
76
+ conditions.push(`(
77
+ s.source_channel NOT IN ('automation', 'workflow')
78
+ OR COALESCE(TRIM(s.name), '') != ''
79
+ OR EXISTS (
80
+ SELECT 1 FROM transcript_entries visible_output
81
+ WHERE visible_output.transcript_id = s.active_transcript_id
82
+ AND visible_output.role IN ('assistant', 'toolResult')
83
+ )
84
+ )`);
85
+ }
75
86
  if (query.sessionTypes?.length) {
76
87
  conditions.push(`s.session_type IN (${query.sessionTypes.map(() => "?").join(", ")})`);
77
88
  params.push(...query.sessionTypes);
@@ -14,6 +14,15 @@ init_transaction();
14
14
  function nextSeq(db, transcriptId) {
15
15
  return (db.prepare(`SELECT COALESCE(MAX(seq), 0) AS max_seq FROM transcript_entries WHERE transcript_id = ?`).get(transcriptId).max_seq ?? 0) + 1;
16
16
  }
17
+ function shouldRevealSessionForUserMessage(db, conversationId) {
18
+ const row = db.prepare(`SELECT custom_data_json FROM sessions WHERE conversation_id = ?`).get(conversationId);
19
+ if (!row?.custom_data_json) return true;
20
+ try {
21
+ return JSON.parse(row.custom_data_json).deferVisibilityUntilOutput !== true;
22
+ } catch {
23
+ return true;
24
+ }
25
+ }
17
26
  function insertEntry(db, params) {
18
27
  const { entryKind, role } = classifyStoredRow(params.row);
19
28
  const entryId = params.entryId ?? randomUUID();
@@ -78,7 +87,7 @@ function appendTranscriptEntry(conversationId, row, opts) {
78
87
  if (classifyStoredRow(persistedRow).entryKind === "message") {
79
88
  const tokenDelta = opts?.tokenDelta ?? 0;
80
89
  const now = Date.now();
81
- const hiddenUpdate = isUserMessageRow(persistedRow) ? `hidden_from_session_list = 0,` : "";
90
+ const hiddenUpdate = isUserMessageRow(persistedRow) && shouldRevealSessionForUserMessage(db, conversationId) ? `hidden_from_session_list = 0,` : "";
82
91
  db.prepare(`UPDATE sessions SET
83
92
  message_count = message_count + 1,
84
93
  estimated_tokens = estimated_tokens + ?,
@@ -223,7 +232,7 @@ function replaceTranscriptRows(conversationId, rows) {
223
232
  });
224
233
  const llm = buildSessionContextForLlm(rows);
225
234
  const now = Date.now();
226
- const hiddenUpdate = llm.some((message) => message.role === "user") ? `hidden_from_session_list = 0,` : "";
235
+ const hiddenUpdate = llm.some((message) => message.role === "user") && shouldRevealSessionForUserMessage(db, conversationId) ? `hidden_from_session_list = 0,` : "";
227
236
  db.prepare(`UPDATE sessions SET
228
237
  message_count = ?,
229
238
  estimated_tokens = ?,
@@ -5,9 +5,9 @@ import { resolveBootstrapFilesSync } from "../agent/bootstrap/bootstrap-files.js
5
5
  import { createSkillConfigManager, isSkillEnabled } from "../agent/skills/config.js";
6
6
  import { loadSkills } from "../agent/skills/index.js";
7
7
  import { createWorkflowCatalog } from "../agent/workflow/catalog.js";
8
- import { listConnectorInstances } from "../connectors/instances.js";
9
8
  import { getWorkspacePath } from "../config/workspace-path-helpers.js";
10
9
  import "../config/index.js";
10
+ import { listConnectorInstances } from "../connectors/instances.js";
11
11
  import { basename } from "node:path";
12
12
  //#region src/tui/tui-startup-resources.ts
13
13
  init_paths();
@@ -48,6 +48,7 @@ var WorkflowSessionBridge = class {
48
48
  workflowRunId: params.runId,
49
49
  workflowDefinitionId: params.definitionId,
50
50
  workflowGoal: params.goal,
51
+ deferVisibilityUntilOutput: true,
51
52
  ...params.triggerSource ? { triggerSource: params.triggerSource } : {},
52
53
  ...params.parentConversationId ? { parentConversationId: params.parentConversationId } : {}
53
54
  }
@@ -128,7 +129,10 @@ var WorkflowSessionBridge = class {
128
129
  isError,
129
130
  timestamp: Date.now()
130
131
  });
131
- await store.updateMetadata(conversationId, { status: "active" });
132
+ await store.updateMetadata(conversationId, {
133
+ status: "active",
134
+ hiddenFromSessionList: false
135
+ });
132
136
  }
133
137
  async writeParentRunLink(params) {
134
138
  const store = this.gateway.sessionIndexInstance.getStore();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xopcai/xopc",
3
- "version": "0.0.299",
3
+ "version": "0.0.301",
4
4
  "description": "Local-first personal AI assistant with reviewable user understanding, durable tasks, workflows, automations, and local or cloud models.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -169,9 +169,9 @@
169
169
  "@xopcai/browser-control-contract": "0.1.0",
170
170
  "@xopcai/computer-control-contract": "0.1.0",
171
171
  "@xopcai/endpoint-tools-client": "0.0.0",
172
+ "@xopcai/endpoint-tools-protocol": "0.0.0",
172
173
  "@xopcai/gateway-contract": "0.0.0",
173
174
  "@xopcai/realtime-client": "0.0.0",
174
- "@xopcai/endpoint-tools-protocol": "0.0.0",
175
175
  "@xopcai/realtime-protocol": "0.0.0"
176
176
  },
177
177
  "scripts": {
@@ -1 +0,0 @@
1
- import{a as e,r as t}from"./locale-store-CwuCkjo7.js";var n=n=>e(t(n)),r=(n,r,i)=>e(t(n),{method:r,headers:{"content-type":`application/json`},body:JSON.stringify(i)});export{r as n,n as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{n as i,r as a}from"./popover-select-DldSX8GX.js";import{t as o}from"./cn-JdwAhgNB.js";import{a as s,n as c,r as l}from"./locale-store-CwuCkjo7.js";import{t as u}from"./messages-D6CRVWtT.js";import{n as d,r as f}from"./gateway-config-swr-B2xVR9gt.js";import{i as p}from"./theme-store-Dt7ob2wD.js";import{t as m}from"./skeleton-BwbyijEw.js";import{Do as h,Ts as g,ri as _}from"./index-B7JCOaCc.js";import{n as v,r as y}from"./settings-page-layout-CsUQKRq0.js";import{t as b}from"./settings-advanced-gate-BgtDlDZh.js";var x=e(t(),1),S=n();function C(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function w(e){let t=C(e)?e:{},n=C(t.gateway)?t.gateway:{},r=(C(n.webchat)?n.webchat:{}).activityDetailDefault;return r===`off`||r===`stream`||r===`on`?r:`on`}async function T(e){await s(l(`/api/config`),{method:`PATCH`,body:JSON.stringify({gateway:{webchat:{activityDetailDefault:e}}})}),await d()}var E=r();function D(e){let t=(0,S.c)(13),{title:n,footer:r,children:i,className:a}=e,s;t[0]===a?s=t[1]:(s=o(`min-w-0`,a),t[0]=a,t[1]=s);let c;t[2]===n?c=t[3]:(c=n?(0,E.jsx)(`h2`,{className:`mb-2 px-1 text-xs font-medium text-fg-muted`,children:n}):null,t[2]=n,t[3]=c);let l;t[4]===i?l=t[5]:(l=(0,E.jsx)(`div`,{className:`divide-y divide-edge-subtle overflow-hidden rounded-xl border border-edge-subtle bg-surface-base`,children:i}),t[4]=i,t[5]=l);let u;t[6]===r?u=t[7]:(u=r?(0,E.jsx)(`p`,{className:`mt-2 px-1 text-xs leading-5 text-fg-subtle`,children:r}):null,t[6]=r,t[7]=u);let d;return t[8]!==s||t[9]!==c||t[10]!==l||t[11]!==u?(d=(0,E.jsxs)(`section`,{className:s,children:[c,l,u]}),t[8]=s,t[9]=c,t[10]=l,t[11]=u,t[12]=d):d=t[12],d}var O={default:{light:{canvas:`#ffffff`,panel:`#fafafa`,accent:`#3a6bff`,fg:`#111111`,muted:`#ececec`},dark:{canvas:`#0a0a0a`,panel:`#121212`,accent:`#3a6bff`,fg:`#f5f5f5`,muted:`#222222`}},emerald:{light:{canvas:`#f0fdf4`,panel:`#ffffff`,accent:`#059669`,fg:`#052e16`,muted:`#86efac`},dark:{canvas:`#000000`,panel:`#0a0a0a`,accent:`#10b981`,fg:`#d1fae5`,muted:`#134e2a`}},mono:{light:{canvas:`#ffffff`,panel:`#f5f5f5`,accent:`#111111`,fg:`#111111`,muted:`#e5e7eb`},dark:{canvas:`#101010`,panel:`#1a1a1a`,accent:`#737373`,fg:`#fafafa`,muted:`#333333`}},clay:{light:{canvas:`#fffaf0`,panel:`#ffffff`,accent:`#1a3a3a`,fg:`#0a0a0a`,muted:`#e5e5e5`},dark:{canvas:`#0a1a1a`,panel:`#1a2a2a`,accent:`#ffb084`,fg:`#fffaf0`,muted:`#2a3a3a`}}};function k(e){let t=(0,S.c)(24),{canvas:n,panel:r,accent:i,fg:a,muted:o}=e,s;t[0]===n?s=t[1]:(s={backgroundColor:n},t[0]=n,t[1]=s);let c;t[2]!==o||t[3]!==r?(c={backgroundColor:r,borderColor:o},t[2]=o,t[3]=r,t[4]=c):c=t[4];let l;t[5]===i?l=t[6]:(l=(0,E.jsx)(`div`,{className:`size-1 shrink-0 rounded-full`,style:{backgroundColor:i}}),t[5]=i,t[6]=l);let u;t[7]===a?u=t[8]:(u=(0,E.jsx)(`div`,{className:`h-1 min-w-0 flex-1 rounded-full`,style:{backgroundColor:a,opacity:.85}}),t[7]=a,t[8]=u);let d;t[9]!==l||t[10]!==u?(d=(0,E.jsxs)(`div`,{className:`flex items-center gap-1`,children:[l,u]}),t[9]=l,t[10]=u,t[11]=d):d=t[11];let f;t[12]===o?f=t[13]:(f=(0,E.jsx)(`div`,{className:`h-1 w-2/3 max-w-[70%] rounded-full`,style:{backgroundColor:o}}),t[12]=o,t[13]=f);let p;t[14]===o?p=t[15]:(p=(0,E.jsx)(`div`,{className:`size-1/2 max-w-[55%] rounded-full`,style:{backgroundColor:o}}),t[14]=o,t[15]=p);let m;t[16]!==c||t[17]!==d||t[18]!==f||t[19]!==p?(m=(0,E.jsxs)(`div`,{className:`flex flex-col gap-0.5 rounded-sm border p-1`,style:c,children:[d,f,p]}),t[16]=c,t[17]=d,t[18]=f,t[19]=p,t[20]=m):m=t[20];let h;return t[21]!==s||t[22]!==m?(h=(0,E.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col justify-center gap-1 p-1.5`,style:s,children:m}),t[21]=s,t[22]=m,t[23]=h):h=t[23],h}function A(e){let t=(0,S.c)(8),{scheme:n}=e,{light:r,dark:i}=O[n],a;t[0]===r?a=t[1]:(a=(0,E.jsx)(k,{...r}),t[0]=r,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,E.jsx)(`div`,{className:`w-px shrink-0 bg-black/12 dark:bg-white/12`,"aria-hidden":!0}),t[2]=o):o=t[2];let s;t[3]===i?s=t[4]:(s=(0,E.jsx)(k,{...i}),t[3]=i,t[4]=s);let c;return t[5]!==a||t[6]!==s?(c=(0,E.jsxs)(`div`,{className:`flex h-11 w-full overflow-hidden rounded-md border border-edge-subtle`,children:[a,o,s]}),t[5]=a,t[6]=s,t[7]=c):c=t[7],c}var j=[{value:`default`,labelKey:`colorSchemeDefault`},{value:`emerald`,labelKey:`colorSchemeLightGreen`},{value:`mono`,labelKey:`colorSchemeModernMono`},{value:`clay`,labelKey:`colorSchemeClay`}];function M(){let e=(0,S.c)(13),t=c(F),n;e[0]===t?n=e[1]:(n=u(t),e[0]=t,e[1]=n);let r=n.appearanceSettings,i=p(P),a=p(N),s;e[2]===r.colorSchemeTitle?s=e[3]:(s=(0,E.jsx)(`div`,{className:`min-w-0`,children:(0,E.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:r.colorSchemeTitle})}),e[2]=r.colorSchemeTitle,e[3]=s);let l;e[4]!==r||e[5]!==i||e[6]!==a?(l=j.map(e=>{let{value:t,labelKey:n}=e,s=i===t;return(0,E.jsxs)(`button`,{type:`button`,"aria-pressed":s,onClick:()=>a(t),className:o(`flex flex-col gap-2 rounded-xl border-2 p-2.5 text-left transition-[border-color,box-shadow,transform] duration-150`,g.pressCard,s?`border-accent shadow-[0_0_0_1px_var(--color-accent)]`:`border-edge-subtle hover:border-edge`),children:[(0,E.jsx)(A,{scheme:t}),(0,E.jsx)(`span`,{className:o(`text-xs font-medium leading-none`,s?`text-accent-fg`:`text-fg-muted`),children:r[n]})]},t)}),e[4]=r,e[5]=i,e[6]=a,e[7]=l):l=e[7];let d;e[8]===l?d=e[9]:(d=(0,E.jsx)(`div`,{className:`grid grid-cols-2 gap-3 lg:grid-cols-4`,children:l}),e[8]=l,e[9]=d);let f;return e[10]!==s||e[11]!==d?(f=(0,E.jsxs)(`div`,{className:`flex flex-col gap-3 px-4 py-3.5 sm:px-5 sm:py-4`,children:[s,d]}),e[10]=s,e[11]=d,e[12]=f):f=e[12],f}function N(e){return e.setColorScheme}function P(e){return e.colorScheme}function F(e){return e.language}function I(){let e=(0,S.c)(28),t=c(L),n;e[0]===t?n=e[1]:(n=u(t),e[0]=t,e[1]=n);let r=n.appearanceSettings,{data:s,isLoading:l}=f(!0),d=s?.payload?.config,p;e[2]===d?p=e[3]:(p=w(d),e[2]=d,e[3]=p);let h=p,[g,_]=(0,x.useState)(h),[v,y]=(0,x.useState)(!1),[b,C]=(0,x.useState)(!1),D,O;e[4]===h?(D=e[5],O=e[6]):(D=()=>_(h),O=[h],e[4]=h,e[5]=D,e[6]=O),(0,x.useEffect)(D,O);let k;e[7]===g?k=e[8]:(k=e=>{let t=g;_(e),y(!0),C(!1),T(e).catch(()=>{_(t),C(!0)}).finally(()=>y(!1))},e[7]=g,e[8]=k);let A=k,j;e[9]===r.activityDetailDefaultTitle?j=e[10]:(j=(0,E.jsx)(`div`,{className:`min-w-0 text-sm font-medium text-fg`,children:r.activityDetailDefaultTitle}),e[9]=r.activityDetailDefaultTitle,e[10]=j);let M;e[11]!==r.activityDetailLevels||e[12]!==A||e[13]!==l||e[14]!==g||e[15]!==v?(M=l?(0,E.jsx)(m,{className:`h-10 w-full rounded-lg sm:max-w-[11rem]`}):(0,E.jsxs)(i,{value:g,disabled:v,onChange:e=>A(e.target.value),triggerClassName:`w-full sm:max-w-[11rem]`,children:[(0,E.jsx)(a,{value:`off`,children:r.activityDetailLevels.off}),(0,E.jsx)(a,{value:`on`,children:r.activityDetailLevels.on}),(0,E.jsx)(a,{value:`stream`,children:r.activityDetailLevels.stream})]}),e[11]=r.activityDetailLevels,e[12]=A,e[13]=l,e[14]=g,e[15]=v,e[16]=M):M=e[16];let N;e[17]!==j||e[18]!==M?(N=(0,E.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-6`,children:[j,M]}),e[17]=j,e[18]=M,e[19]=N):N=e[19];let P;e[20]!==r.activityDetailSaveError||e[21]!==r.activityDetailSaving||e[22]!==b||e[23]!==v?(P=b||v?(0,E.jsx)(`p`,{className:o(`text-xs`,b?`text-red-600 dark:text-red-400`:`text-fg-subtle`),children:b?r.activityDetailSaveError:r.activityDetailSaving}):null,e[20]=r.activityDetailSaveError,e[21]=r.activityDetailSaving,e[22]=b,e[23]=v,e[24]=P):P=e[24];let F;return e[25]!==N||e[26]!==P?(F=(0,E.jsxs)(`div`,{className:`flex flex-col gap-2 px-4 py-3.5 sm:px-5 sm:py-4`,children:[N,P]}),e[25]=N,e[26]=P,e[27]=F):F=e[27],F}function L(e){return e.language}function R(){let e=(0,S.c)(17),t=c(V),n;e[0]===t?n=e[1]:(n=u(t),e[0]=t,e[1]=n);let r=n.appearanceSettings,i=_(B),a=_(z),o;e[2]===r.showRawToolDataTitle?o=e[3]:(o=(0,E.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:r.showRawToolDataTitle}),e[2]=r.showRawToolDataTitle,e[3]=o);let s;e[4]===r.showRawToolDataDescription?s=e[5]:(s=(0,E.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.showRawToolDataDescription}),e[4]=r.showRawToolDataDescription,e[5]=s);let l;e[6]!==o||e[7]!==s?(l=(0,E.jsxs)(`div`,{className:`min-w-0`,children:[o,s]}),e[6]=o,e[7]=s,e[8]=l):l=e[8];let d;e[9]===a?d=e[10]:(d=e=>a(e.target.checked),e[9]=a,e[10]=d);let f;e[11]!==i||e[12]!==d?(f=(0,E.jsx)(`input`,{type:`checkbox`,className:`ui-checkbox`,checked:i,onChange:d}),e[11]=i,e[12]=d,e[13]=f):f=e[13];let p;return e[14]!==l||e[15]!==f?(p=(0,E.jsx)(`div`,{className:`px-4 py-3.5 sm:px-5 sm:py-4`,children:(0,E.jsxs)(`label`,{className:`flex items-center justify-between gap-3`,children:[l,f]})}),e[14]=l,e[15]=f,e[16]=p):p=e[16],p}function z(e){return e.setShowRawToolData}function B(e){return e.showRawToolData}function V(e){return e.language}function H(){let e=(0,S.c)(12),t=c(U),n;e[0]===t?n=e[1]:(n=u(t),e[0]=t,e[1]=n);let r=n.appearanceSettings,i;e[2]===r.pageTitle?i=e[3]:(i=(0,E.jsx)(v,{title:r.pageTitle}),e[2]=r.pageTitle,e[3]=i);let a;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,E.jsx)(D,{children:(0,E.jsx)(h,{variant:`page`,sections:[`language`]})}),e[4]=a):a=e[4];let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,E.jsxs)(D,{children:[(0,E.jsx)(h,{variant:`page`,sections:[`theme`,`font`]}),(0,E.jsx)(M,{}),(0,E.jsx)(I,{})]}),e[5]=o):o=e[5];let s;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,E.jsx)(R,{}),e[6]=s):s=e[6];let l;e[7]===r.developerGroupTitle?l=e[8]:(l=(0,E.jsx)(b,{children:(0,E.jsx)(D,{title:r.developerGroupTitle,children:s})}),e[7]=r.developerGroupTitle,e[8]=l);let d;return e[9]!==i||e[10]!==l?(d=(0,E.jsxs)(y,{gap:`gap-6`,children:[i,a,o,l]}),e[9]=i,e[10]=l,e[11]=d):d=e[11],d}function U(e){return e.language}export{H as AppearanceSettingsPanel};