@xopcai/xopc 0.0.175 → 0.0.176

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 (177) 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-CM6mQUS2.js → activity-store-DsFM1upC.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-eckyE9AY.js → agent-avatar-dicebear-DvdMLOga.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agents-D-OIB_r0.js → agents-BVjlpbeZ.js} +1 -1
  6. package/dist/gateway/static/root/assets/{api-BfMRS6FX.js → api-BdPLCCBm.js} +1 -1
  7. package/dist/gateway/static/root/assets/{api-2SLLStKp.js → api-Bop4IQRW.js} +1 -1
  8. package/dist/gateway/static/root/assets/{app-management-settings-panel-DYkzZQzZ.js → app-management-settings-panel-DMLDOHul.js} +1 -1
  9. package/dist/gateway/static/root/assets/appearance-settings-DbI9foFR.js +1 -0
  10. package/dist/gateway/static/root/assets/{apps-page-CuvFyvuu.js → apps-page-njqxLWYD.js} +1 -1
  11. package/dist/gateway/static/root/assets/{archive-plugin-k909a76t.js → archive-plugin-Dfdxuwvb.js} +1 -1
  12. package/dist/gateway/static/root/assets/{attachment-load-CqNzyhdJ.js → attachment-load-Dn3RlnYD.js} +2 -2
  13. package/dist/gateway/static/root/assets/{attachment-preview-renderer-DonnL2dL.js → attachment-preview-renderer-Cmo-5BP5.js} +2 -2
  14. package/dist/gateway/static/root/assets/{attachment-process-heavy-RnGYy9bC.js → attachment-process-heavy-B2_kr5EA.js} +3 -3
  15. package/dist/gateway/static/root/assets/{automation-suggestion-card-snNG6u0v.js → automation-suggestion-card-Bc0Y7A9u.js} +1 -1
  16. package/dist/gateway/static/root/assets/{automations-page-DetGVTjI.js → automations-page-D-eweHZJ.js} +1 -1
  17. package/dist/gateway/static/root/assets/{binary-plugins-PfQ9ZHDF.js → binary-plugins-0XtB-xC0.js} +2 -2
  18. package/dist/gateway/static/root/assets/{block-editor-Xrw-DnE_.js → block-editor-C4fXWbEE.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-settings-page-G92AdEnX.js → browser-settings-page-lC86-drr.js} +1 -1
  20. package/dist/gateway/static/root/assets/{browser-workflow-inputs-DJPF2lUY.js → browser-workflow-inputs-CZmzNymN.js} +1 -1
  21. package/dist/gateway/static/root/assets/{browser-workflows-page-BoXs4pgc.js → browser-workflows-page-CBYM9HqG.js} +1 -1
  22. package/dist/gateway/static/root/assets/{capabilities-settings-panel-nS_AMN1K.js → capabilities-settings-panel-6tYNfHqJ.js} +2 -2
  23. package/dist/gateway/static/root/assets/{capability-presets-api-BgY-Ysmi.js → capability-presets-api-BiJxmmhW.js} +1 -1
  24. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-DIO8ZNHW.js → capability-presets-settings-panel-Co-ymbd9.js} +1 -1
  25. package/dist/gateway/static/root/assets/{channel-recipient-api-D32T1EJM.js → channel-recipient-api-BKTUZDp-.js} +1 -1
  26. package/dist/gateway/static/root/assets/{channels-settings-4Im3vtnO.js → channels-settings-D46eVjaQ.js} +1 -1
  27. package/dist/gateway/static/root/assets/channels-status-swr-BMRAO4zZ.js +1 -0
  28. package/dist/gateway/static/root/assets/{connector-logo-C-l8haIK.js → connector-logo-Pr4RIKjj.js} +1 -1
  29. package/dist/gateway/static/root/assets/{connectors-page-vL3SjHSc.js → connectors-page-Dw1eYbRi.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-CwOI_Hei.js → desktop-pet-B8cZuQUt.js} +1 -1
  31. package/dist/gateway/static/root/assets/{desktop-pet-settings-Cldo_pA3.js → desktop-pet-settings-CEQacUDF.js} +1 -1
  32. package/dist/gateway/static/root/assets/{directory-picker-path-field-CMASXbgJ.js → directory-picker-path-field-DWnxdZtc.js} +1 -1
  33. package/dist/gateway/static/root/assets/{dreaming-settings-BnMx02w0.js → dreaming-settings-D2e2w2Ho.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-debug-page-mUFs3ign.js → extension-debug-page-BLjTGbv3.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-page-BsFBOZ5N.js → extension-page-D2_UC6hy.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-settings-page-CTEoovnV.js → extension-settings-page-BsH6o_PX.js} +1 -1
  37. package/dist/gateway/static/root/assets/{focus-detail-page-CCaZthpU.js → focus-detail-page-BBXUtxRB.js} +1 -1
  38. package/dist/gateway/static/root/assets/{gateway-config-api-Bwx-EetD.js → gateway-config-api-C-DkC6UJ.js} +1 -1
  39. package/dist/gateway/static/root/assets/{gateway-settings-CvgyqhR_.js → gateway-settings-DEOGiimF.js} +1 -1
  40. package/dist/gateway/static/root/assets/{gateway-startup-retry-C8f5KwkT.js → gateway-startup-retry-BlSLh1TF.js} +1 -1
  41. package/dist/gateway/static/root/assets/{goal-create-dialog-Bhynl9LN.js → goal-create-dialog-CSFcRE_N.js} +1 -1
  42. package/dist/gateway/static/root/assets/{goal-detail-page-ChS2rU0w.js → goal-detail-page-VjRArfAJ.js} +1 -1
  43. package/dist/gateway/static/root/assets/{goals-config-api-CUnfbgHa.js → goals-config-api-CcdS9qek.js} +1 -1
  44. package/dist/gateway/static/root/assets/{goals-page-BAS_liXl.js → goals-page-BAcErdch.js} +1 -1
  45. package/dist/gateway/static/root/assets/{goals-settings-Bkk-tOcf.js → goals-settings-BY7crl0z.js} +1 -1
  46. package/dist/gateway/static/root/assets/{heartbeat-settings-D9Pldf5E.js → heartbeat-settings-DtTkS0gs.js} +1 -1
  47. package/dist/gateway/static/root/assets/{image-generation-api-D7aCMgOv.js → image-generation-api-WGgkbwDZ.js} +1 -1
  48. package/dist/gateway/static/root/assets/index-2UImfRDC.js +212 -0
  49. package/dist/gateway/static/root/assets/index-CS9sVShT.css +1 -0
  50. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CBhtXhHb.js → keyboard-shortcuts-settings-C5lpWQ3f.js} +1 -1
  51. package/dist/gateway/static/root/assets/{local-app-workbench-page-HQeu_F1C.js → local-app-workbench-page-Cl0fcPL4.js} +1 -1
  52. package/dist/gateway/static/root/assets/{local-apps-page-BtJGF3M8.js → local-apps-page-b05wWvXG.js} +1 -1
  53. package/dist/gateway/static/root/assets/{locale-store-DO-u1yS7.js → locale-store-sToMfHX_.js} +1 -1
  54. package/dist/gateway/static/root/assets/{logs-page-0lvwfLAA.js → logs-page-cDE1jLJv.js} +1 -1
  55. package/dist/gateway/static/root/assets/{markdown-split-BGPaeTch.js → markdown-split-0gPVst5y.js} +1 -1
  56. package/dist/gateway/static/root/assets/{media-plugins-C_Cx8v6u.js → media-plugins-Rxyq_KTm.js} +1 -1
  57. package/dist/gateway/static/root/assets/messages-CarlxqXV.js +3 -0
  58. package/dist/gateway/static/root/assets/{notes-page-CIYy5BKF.js → notes-page-DRhNDl_Q.js} +1 -1
  59. package/dist/gateway/static/root/assets/{notes-workbench-_FgNPlOx.js → notes-workbench-BKNBk0Uf.js} +2 -2
  60. package/dist/gateway/static/root/assets/{page-tabs-C2vsdfJO.js → page-tabs-cOEOQqHh.js} +1 -1
  61. package/dist/gateway/static/root/assets/pdf-D4PI9qAw.js +54 -0
  62. package/dist/gateway/static/root/assets/pdf.worker.min-CHFwMXne.mjs +29 -0
  63. package/dist/gateway/static/root/assets/{preview-open-alternatives-D_VT83bW.js → preview-open-alternatives-BopOLFvu.js} +1 -1
  64. package/dist/gateway/static/root/assets/{product-open-page-BNP9kZ3Q.js → product-open-page-DWVPmmOq.js} +1 -1
  65. package/dist/gateway/static/root/assets/{project-detail-page-MNi-3mZU.js → project-detail-page-BhjEXNQW.js} +1 -1
  66. package/dist/gateway/static/root/assets/{projects-page-xx8nUKZO.js → projects-page-B80e69PH.js} +1 -1
  67. package/dist/gateway/static/root/assets/{remote-access-hub-H5DSn2bR.js → remote-access-hub-CwdVob6H.js} +1 -1
  68. package/dist/gateway/static/root/assets/{save-bar-controls-BJL6Xb-F.js → save-bar-controls-BfZmKe1t.js} +1 -1
  69. package/dist/gateway/static/root/assets/{schedule-field-CxCPSLbu.js → schedule-field-Cpi4jCRV.js} +1 -1
  70. package/dist/gateway/static/root/assets/{schema-form-Cao1wGbk.js → schema-form-OXFkcZQe.js} +1 -1
  71. package/dist/gateway/static/root/assets/{sessions-page-CMQsupwM.js → sessions-page-BGt3Asj6.js} +1 -1
  72. package/dist/gateway/static/root/assets/settings-advanced-gate-BnTdM9Nn.js +1 -0
  73. package/dist/gateway/static/root/assets/{settings-form-section-9pgClEud.js → settings-form-section-BwqkZCHJ.js} +1 -1
  74. package/dist/gateway/static/root/assets/{settings-loading-skeleton-CQz0gEUK.js → settings-loading-skeleton-BbqH_S3Y.js} +1 -1
  75. package/dist/gateway/static/root/assets/{settings-page-DgsMzZLm.js → settings-page-BoxC-JSa.js} +1 -1
  76. package/dist/gateway/static/root/assets/{settings-page-layout-BhqupMfG.js → settings-page-layout-Ddu2iGaW.js} +1 -1
  77. package/dist/gateway/static/root/assets/{setup-status-panel-B7BsWxJt.js → setup-status-panel-z1Lwv0js.js} +1 -1
  78. package/dist/gateway/static/root/assets/{share-preview-page-CC4dQsQN.js → share-preview-page-CVazOFjy.js} +2 -2
  79. package/dist/gateway/static/root/assets/{shares-settings-Bhz21P05.js → shares-settings-C4lXuyQj.js} +1 -1
  80. package/dist/gateway/static/root/assets/skill-reload-api-DSuIDkeI.js +1 -0
  81. package/dist/gateway/static/root/assets/{skills-page-A0rNObNB.js → skills-page-xgZczqVe.js} +1 -1
  82. package/dist/gateway/static/root/assets/{skills-page.utils-CF4AYPQg.js → skills-page.utils-DgyB1tSo.js} +1 -1
  83. package/dist/gateway/static/root/assets/{system-settings-panel-CzZHWI4u.js → system-settings-panel-BoLSQL65.js} +1 -1
  84. package/dist/gateway/static/root/assets/{theme-store-BZWNdSZC.js → theme-store-CBNcGOfj.js} +1 -1
  85. package/dist/gateway/static/root/assets/{time-picker-BC922Mdg.js → time-picker-gochWrny.js} +1 -1
  86. package/dist/gateway/static/root/assets/{typed-models-lib-C1S-B1pk.js → typed-models-lib-DvRnr7YB.js} +1 -1
  87. package/dist/gateway/static/root/assets/{use-channel-catalog-DTiLxcLF.js → use-channel-catalog-CA9BFVB7.js} +1 -1
  88. package/dist/gateway/static/root/assets/{user-context-page-8XdpiAyP.js → user-context-page-CEfIy4WZ.js} +1 -1
  89. package/dist/gateway/static/root/assets/{voice-api-key-field-CtIYRNfI.js → voice-api-key-field-v8tgylEZ.js} +1 -1
  90. package/dist/gateway/static/root/assets/{work-discovery-page-DBer86NF.js → work-discovery-page-B-3MClaf.js} +1 -1
  91. package/dist/gateway/static/root/assets/{work-item-detail-page-BUPyfYaq.js → work-item-detail-page-CEsFEdax.js} +1 -1
  92. package/dist/gateway/static/root/assets/work-page-CT9AHnq6.js +3 -0
  93. package/dist/gateway/static/root/assets/workflow-run-setup-panel-CC3cJn5k.js +3 -0
  94. package/dist/gateway/static/root/assets/{workflows-page-CNls7g6v.js → workflows-page-C-1-_Zp1.js} +1 -1
  95. package/dist/gateway/static/root/index.html +7 -7
  96. package/dist/package.js +1 -1
  97. package/dist/src/agent/agent-manager.js +7 -7
  98. package/dist/src/agent/context/execution-scope.d.ts +26 -0
  99. package/dist/src/agent/context/execution-scope.js +84 -0
  100. package/dist/src/agent/context/project-context.d.ts +3 -1
  101. package/dist/src/agent/context/project-context.js +26 -8
  102. package/dist/src/agent/embedded/model-runtime.d.ts +1 -2
  103. package/dist/src/agent/embedded/model-runtime.js +17 -29
  104. package/dist/src/agent/embedded/session-runner.js +2 -3
  105. package/dist/src/agent/prompt/service-prompt-builder.js +1 -0
  106. package/dist/src/agent/prompt/system-prompt.js +1 -1
  107. package/dist/src/agent/service/process-direct-streaming.js +7 -4
  108. package/dist/src/agent/session/session-config-service.d.ts +4 -1
  109. package/dist/src/agent/session/session-config-service.js +5 -3
  110. package/dist/src/agent/session/session-inspector.d.ts +6 -0
  111. package/dist/src/agent/session/session-inspector.js +9 -2
  112. package/dist/src/agent/workflow/subagent-runner.js +2 -0
  113. package/dist/src/agent/workflow/types.d.ts +1 -0
  114. package/dist/src/auth/model-credential-store.d.ts +17 -0
  115. package/dist/src/auth/model-credential-store.js +110 -0
  116. package/dist/src/auth/oauth/github-copilot.js +2 -2
  117. package/dist/src/auth/oauth/openai-codex.js +98 -7
  118. package/dist/src/auth/oauth/types.d.ts +4 -1
  119. package/dist/src/auth/oauth/xopc-cloud.js +124 -6
  120. package/dist/src/cli/commands/gateway/lifecycle.js +2 -2
  121. package/dist/src/cli/commands/update.js +1 -1
  122. package/dist/src/config/index.js +2 -2
  123. package/dist/src/config/schema.d.ts +21 -0
  124. package/dist/src/config/schema.js +12 -2
  125. package/dist/src/gateway/heartbeat/service.js +1 -1
  126. package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -0
  127. package/dist/src/gateway/hono/lib/config-payload.js +1 -0
  128. package/dist/src/gateway/hono/oauth-async.d.ts +5 -0
  129. package/dist/src/gateway/hono/oauth-async.js +20 -8
  130. package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +1 -1
  131. package/dist/src/gateway/hono/routes/config-patch/gateway.js +9 -0
  132. package/dist/src/gateway/hono/routes/goals.js +13 -0
  133. package/dist/src/gateway/hono/routes/local-apps.js +1 -1
  134. package/dist/src/gateway/hono/routes/update.js +2 -2
  135. package/dist/src/gateway/index.js +1 -1
  136. package/dist/src/gateway/run-loop.js +1 -1
  137. package/dist/src/gateway/service/sessions-api.d.ts +2 -1
  138. package/dist/src/gateway/service.js +5 -5
  139. package/dist/src/heartbeat/index.js +1 -1
  140. package/dist/src/infra/gateway-processes.js +1 -1
  141. package/dist/src/infra/update-restart.js +2 -2
  142. package/dist/src/infra/update-runner.js +2 -2
  143. package/dist/src/infra/update-startup.js +1 -1
  144. package/dist/src/mcp/channel-bridge.js +1 -1
  145. package/dist/src/providers/index.js +4 -2
  146. package/dist/src/providers/provider-auth-service.d.ts +22 -0
  147. package/dist/src/providers/provider-auth-service.js +66 -0
  148. package/dist/src/providers/register-runtime-providers.d.ts +6 -0
  149. package/dist/src/providers/register-runtime-providers.js +55 -0
  150. package/dist/src/providers/xopc-cloud-account-service.d.ts +2 -2
  151. package/dist/src/providers/xopc-cloud-account-service.js +6 -5
  152. package/dist/src/providers/xopc-cloud-config.d.ts +3 -0
  153. package/dist/src/providers/xopc-cloud-config.js +13 -0
  154. package/dist/src/providers/xopc-cloud-model-source.d.ts +2 -2
  155. package/dist/src/providers/xopc-cloud-model-source.js +6 -5
  156. package/dist/src/session/index.d.ts +1 -1
  157. package/dist/src/session/index.js +2 -2
  158. package/dist/src/session/thinking-resolve.d.ts +8 -0
  159. package/dist/src/session/thinking-resolve.js +6 -3
  160. package/dist/src/tui/tui.js +2 -2
  161. package/dist/src/tui/xopc-tui-keybindings.d.ts +44 -4
  162. package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
  163. package/dist/src/workflows/engine/workflow-engine.js +2 -0
  164. package/dist/src/workflows/service/workflow-run-service.js +12 -6
  165. package/dist/src/workflows/service/workflow-session-bridge.js +2 -1
  166. package/package.json +5 -5
  167. package/dist/gateway/static/root/assets/appearance-settings-CDXXN57j.js +0 -1
  168. package/dist/gateway/static/root/assets/channels-status-swr-CMctpuqb.js +0 -1
  169. package/dist/gateway/static/root/assets/index-DJ5vdaHk.css +0 -1
  170. package/dist/gateway/static/root/assets/index-TnouSpay.js +0 -212
  171. package/dist/gateway/static/root/assets/messages-BP8aQX-5.js +0 -3
  172. package/dist/gateway/static/root/assets/pdf-epILhEOn.js +0 -54
  173. package/dist/gateway/static/root/assets/pdf.worker.min-iDqQPrd3.mjs +0 -31
  174. package/dist/gateway/static/root/assets/settings-advanced-gate-OBUdG6bV.js +0 -1
  175. package/dist/gateway/static/root/assets/skill-reload-api-CBP-UB88.js +0 -1
  176. package/dist/gateway/static/root/assets/work-page-G8phwwI1.js +0 -1
  177. package/dist/gateway/static/root/assets/workflow-run-setup-panel-IKxqDAXw.js +0 -3
@@ -0,0 +1,3 @@
1
+ export declare const XOPC_CLOUD_PROVIDER_ID = "xopc-cloud";
2
+ export declare const DEFAULT_XOPC_MODEL_ROUTER_URL = "https://router.xopc.ai/v1";
3
+ export declare function resolveXopcModelRouterUrl(override?: string): string;
@@ -0,0 +1,13 @@
1
+ import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ //#region src/providers/xopc-cloud-config.ts
3
+ function resolveXopcModelRouterUrl(override) {
4
+ return (override ?? process.env.XOPC_MODEL_ROUTER_URL ?? "https://router.xopc.ai/v1").replace(/\/+$/, "");
5
+ }
6
+ var XOPC_CLOUD_PROVIDER_ID, DEFAULT_XOPC_MODEL_ROUTER_URL;
7
+ var init_xopc_cloud_config = __esmMin((() => {
8
+ XOPC_CLOUD_PROVIDER_ID = "xopc-cloud";
9
+ DEFAULT_XOPC_MODEL_ROUTER_URL = "https://router.xopc.ai/v1";
10
+ }));
11
+ //#endregion
12
+ init_xopc_cloud_config();
13
+ export { DEFAULT_XOPC_MODEL_ROUTER_URL, XOPC_CLOUD_PROVIDER_ID, init_xopc_cloud_config, resolveXopcModelRouterUrl };
@@ -1,5 +1,5 @@
1
- import { type CredentialResolver } from '../auth/credentials.js';
2
1
  import { type ModelCatalogStore } from './model-catalog-store.js';
2
+ import { type ProviderAuthService } from './provider-auth-service.js';
3
3
  export type XopcCloudModelRefreshResult = {
4
4
  status: 'skipped';
5
5
  reason: 'not_configured';
@@ -22,7 +22,7 @@ export declare class XopcCloudModelSource {
22
22
  constructor(options?: {
23
23
  fetchImpl?: typeof fetch;
24
24
  routerUrl?: string;
25
- credentials?: Pick<CredentialResolver, 'resolveApiKey'>;
25
+ credentials?: Pick<ProviderAuthService, 'resolveApiKey'>;
26
26
  catalogStore?: ModelCatalogStore;
27
27
  refreshModels?: () => void;
28
28
  });
@@ -1,11 +1,12 @@
1
1
  import { getModelCatalogStore, init_model_catalog_store } from "./model-catalog-store.js";
2
2
  import { getModelRegistry, init_model_registry } from "./model-registry.js";
3
- import { getCredentialResolver, init_credentials } from "../auth/credentials.js";
3
+ import { init_xopc_cloud_config, resolveXopcModelRouterUrl } from "./xopc-cloud-config.js";
4
+ import { getProviderAuthService, init_provider_auth_service } from "./provider-auth-service.js";
4
5
  //#region src/providers/xopc-cloud-model-source.ts
5
- init_credentials();
6
6
  init_model_catalog_store();
7
7
  init_model_registry();
8
- const DEFAULT_ROUTER_URL = "https://router.xopc.ai/v1";
8
+ init_provider_auth_service();
9
+ init_xopc_cloud_config();
9
10
  var XopcCloudModelError = class extends Error {
10
11
  constructor(message, status, code) {
11
12
  super(message);
@@ -22,8 +23,8 @@ var XopcCloudModelSource = class {
22
23
  refreshModels;
23
24
  constructor(options = {}) {
24
25
  this.fetchImpl = options.fetchImpl ?? fetch;
25
- this.routerUrl = (options.routerUrl ?? process.env.XOPC_MODEL_ROUTER_URL ?? DEFAULT_ROUTER_URL).replace(/\/+$/, "");
26
- this.credentials = options.credentials ?? getCredentialResolver();
26
+ this.routerUrl = resolveXopcModelRouterUrl(options.routerUrl);
27
+ this.credentials = options.credentials ?? getProviderAuthService();
27
28
  this.catalogStore = options.catalogStore ?? getModelCatalogStore();
28
29
  this.refreshModels = options.refreshModels ?? (() => getModelRegistry().refresh());
29
30
  }
@@ -3,7 +3,7 @@ export { onSessionTranscriptUpdate, emitSessionTranscriptUpdate, type SessionTra
3
3
  export { SessionStore } from './store.js';
4
4
  export type { SessionStoreOptions } from './store.js';
5
5
  export { SessionConfigStore, resolveThinkingLevel, resolveReasoningLevel, resolveVerboseLevel } from './config-store.js';
6
- export { resolveEffectiveThinkingLevel, resolveEffectiveReasoningLevel } from './thinking-resolve.js';
6
+ export { DEFAULT_ACTIVITY_DETAIL_LEVEL, resolveConfiguredActivityDetailDefault, resolveEffectiveThinkingLevel, resolveEffectiveReasoningLevel, } from './thinking-resolve.js';
7
7
  export type { SessionAgentConfig } from './config-types.js';
8
8
  export { normalizeWorkingDirectoryInput, effectiveWorkspacePathForSession, projectWorkspacePath, } from './session-workspace.js';
9
9
  export { SessionStatus, type SessionMetadata, type SessionDetail, type SessionListQuery, type PaginatedResult, type SessionStats, type ExportFormat, type SessionExport, type SessionTranscriptSummary, type CompactionBoundarySummary, } from './types.js';
@@ -8,7 +8,7 @@ import { SessionStore } from "./store.js";
8
8
  import { applySessionPatchToMetadata } from "./patch-metadata.js";
9
9
  import { SessionIndex } from "./manager.js";
10
10
  import { SessionConfigStore, resolveReasoningLevel, resolveThinkingLevel, resolveVerboseLevel } from "./config-store.js";
11
- import { resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel } from "./thinking-resolve.js";
11
+ import { DEFAULT_ACTIVITY_DETAIL_LEVEL, resolveConfiguredActivityDetailDefault, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel } from "./thinking-resolve.js";
12
12
  import { shouldSkipWebchatInboundByAbortCutoff } from "./abort-cutoff.js";
13
13
  import { DEFAULT_IDLE_MINUTES, DEFAULT_RESET_AT_HOUR, DEFAULT_RESET_MODE, evaluateSessionFreshness, resolveDailyResetAtMs, resolveSessionResetPolicy } from "./reset-policy.js";
14
14
  import { resolveChannelResetConfig, resolveSessionResetType } from "./reset-type.js";
@@ -17,4 +17,4 @@ import { resolveSession, resolveSessionKeyForRequest } from "./resolve-session.j
17
17
  import { DEFAULT_RESET_TRIGGERS, RESET_OVERLAP_COMMANDS, bareResetAckMessage, matchResetTriggers, resolveResetTriggers, shouldSkipResetOverlapCommand, stripLeadingEnvelopeTimestamp } from "./reset-triggers.js";
18
18
  import { initSessionTurn } from "./init-session-turn.js";
19
19
  import { CURRENT_SESSION_TRANSCRIPT_VERSION, XOPC_SESSION_TRANSCRIPT_TYPE } from "./transcript-format.js";
20
- export { CURRENT_SESSION_TRANSCRIPT_VERSION, DEFAULT_IDLE_MINUTES, DEFAULT_RESET_AT_HOUR, DEFAULT_RESET_MODE, DEFAULT_RESET_TRIGGERS, RESET_OVERLAP_COMMANDS, SessionConfigStore, SessionIndex, SessionStatus, SessionStore, XOPC_SESSION_TRANSCRIPT_TYPE, applySessionPatchToMetadata, bareResetAckMessage, buildSessionContextForLlm, effectiveWorkspacePathForSession, emitSessionTranscriptUpdate, evaluateSessionFreshness, fallbackTitleFromMessages, flattenMessageContent, generateSessionTitleFromMessages, getSessionTitleSource, initSessionTurn, isTranscriptContextEntry, isWebchatSessionKey, matchResetTriggers, maybeRefineSessionTitleWithLlm, maybeSetProvisionalSessionTitle, mergeLlmMessagesPreservingContextRows, messagesToClientHistory, normalizeWorkingDirectoryInput, onSessionTranscriptUpdate, projectWorkspacePath, provisionalTitleFromUserText, resolveChannelResetConfig, resolveDailyResetAtMs, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel, resolveReasoningLevel, resolveResetTriggers, resolveSession, resolveSessionKeyForRequest, resolveSessionLifecycleTimestamps, resolveSessionResetPolicy, resolveSessionResetType, resolveThinkingLevel, resolveVerboseLevel, sanitizeGeneratedSessionTitle, sanitizeSessionTitle, shouldAutoTitleSessionKey, shouldRefineSessionTitleWithLlm, shouldSkipResetOverlapCommand, shouldSkipWebchatInboundByAbortCutoff, stripLeadingEnvelopeTimestamp, transcriptRowsFromJsonArray };
20
+ export { CURRENT_SESSION_TRANSCRIPT_VERSION, DEFAULT_ACTIVITY_DETAIL_LEVEL, DEFAULT_IDLE_MINUTES, DEFAULT_RESET_AT_HOUR, DEFAULT_RESET_MODE, DEFAULT_RESET_TRIGGERS, RESET_OVERLAP_COMMANDS, SessionConfigStore, SessionIndex, SessionStatus, SessionStore, XOPC_SESSION_TRANSCRIPT_TYPE, applySessionPatchToMetadata, bareResetAckMessage, buildSessionContextForLlm, effectiveWorkspacePathForSession, emitSessionTranscriptUpdate, evaluateSessionFreshness, fallbackTitleFromMessages, flattenMessageContent, generateSessionTitleFromMessages, getSessionTitleSource, initSessionTurn, isTranscriptContextEntry, isWebchatSessionKey, matchResetTriggers, maybeRefineSessionTitleWithLlm, maybeSetProvisionalSessionTitle, mergeLlmMessagesPreservingContextRows, messagesToClientHistory, normalizeWorkingDirectoryInput, onSessionTranscriptUpdate, projectWorkspacePath, provisionalTitleFromUserText, resolveChannelResetConfig, resolveConfiguredActivityDetailDefault, resolveDailyResetAtMs, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel, resolveReasoningLevel, resolveResetTriggers, resolveSession, resolveSessionKeyForRequest, resolveSessionLifecycleTimestamps, resolveSessionResetPolicy, resolveSessionResetType, resolveThinkingLevel, resolveVerboseLevel, sanitizeGeneratedSessionTitle, sanitizeSessionTitle, shouldAutoTitleSessionKey, shouldRefineSessionTitleWithLlm, shouldSkipResetOverlapCommand, shouldSkipWebchatInboundByAbortCutoff, stripLeadingEnvelopeTimestamp, transcriptRowsFromJsonArray };
@@ -8,6 +8,14 @@ import { type ThinkLevel, type ReasoningLevel } from '../agent/transcript/thinki
8
8
  * @param requestOverride - Raw value from HTTP/API (e.g. Web pill); wins over persisted session when valid.
9
9
  */
10
10
  export declare function resolveEffectiveThinkingLevel(sessionConfigStore: SessionConfigStore, sessionKey: string, requestOverride?: string | null, agentDefault?: ThinkLevel): Promise<ThinkingLevel>;
11
+ export declare const DEFAULT_ACTIVITY_DETAIL_LEVEL: ReasoningLevel;
12
+ export declare function resolveConfiguredActivityDetailDefault(config?: {
13
+ gateway?: {
14
+ webchat?: {
15
+ activityDetailDefault?: ReasoningLevel;
16
+ };
17
+ };
18
+ }): ReasoningLevel;
11
19
  /**
12
20
  * Session override > runtime default.
13
21
  */
@@ -12,13 +12,16 @@ async function resolveEffectiveThinkingLevel(sessionConfigStore, sessionKey, req
12
12
  if (fromSession !== void 0) return fromSession;
13
13
  return agentDefault ?? FALLBACK;
14
14
  }
15
- const REASONING_FALLBACK = "stream";
15
+ const DEFAULT_ACTIVITY_DETAIL_LEVEL = "on";
16
+ function resolveConfiguredActivityDetailDefault(config) {
17
+ return config?.gateway?.webchat?.activityDetailDefault ?? "on";
18
+ }
16
19
  /**
17
20
  * Session override > runtime default.
18
21
  */
19
22
  async function resolveEffectiveReasoningLevel(sessionConfigStore, sessionKey, agentDefault) {
20
- const def = agentDefault ?? REASONING_FALLBACK;
23
+ const def = agentDefault ?? "on";
21
24
  return await resolveReasoningLevel(sessionConfigStore, sessionKey, def) ?? def;
22
25
  }
23
26
  //#endregion
24
- export { resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel };
27
+ export { DEFAULT_ACTIVITY_DETAIL_LEVEL, resolveConfiguredActivityDetailDefault, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel };
@@ -59,7 +59,7 @@ import { dirname, isAbsolute, join, relative, resolve } from "node:path";
59
59
  import { mkdirSync, mkdtempSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
60
60
  import { spawnSync } from "node:child_process";
61
61
  import { randomUUID } from "node:crypto";
62
- import { Container, Loader, ProcessTerminal, TUI, setKeybindings } from "@earendil-works/pi-tui";
62
+ import { Container, Loader, ProcessTerminal, TuiMainScreen, setKeybindings } from "@earendil-works/pi-tui";
63
63
  import { Buffer } from "node:buffer";
64
64
  //#region src/tui/tui.ts
65
65
  init_paths();
@@ -252,7 +252,7 @@ async function runTui(opts) {
252
252
  bottomBar.invalidate();
253
253
  tui.requestRender();
254
254
  };
255
- const tui = new TUI(new ProcessTerminal());
255
+ const tui = new TuiMainScreen(new ProcessTerminal());
256
256
  tui.setShowHardwareCursor(tuiSettings.showHardwareCursor);
257
257
  tui.setClearOnShrink(tuiSettings.clearOnShrink);
258
258
  const dedupeBackspace = createBackspaceDeduper();
@@ -213,6 +213,14 @@ export declare const XOPC_TUI_KEYBINDINGS: {
213
213
  readonly defaultKeys: "down";
214
214
  readonly description: "Move cursor down";
215
215
  };
216
+ readonly "tui.editor.historyPrevious": {
217
+ readonly defaultKeys: [];
218
+ readonly description: "Select previous prompt history entry";
219
+ };
220
+ readonly "tui.editor.historyNext": {
221
+ readonly defaultKeys: [];
222
+ readonly description: "Select next prompt history entry";
223
+ };
216
224
  readonly "tui.editor.cursorLeft": {
217
225
  readonly defaultKeys: ["left", "ctrl+b"];
218
226
  readonly description: "Move cursor left";
@@ -230,11 +238,11 @@ export declare const XOPC_TUI_KEYBINDINGS: {
230
238
  readonly description: "Move cursor word right";
231
239
  };
232
240
  readonly "tui.editor.cursorLineStart": {
233
- readonly defaultKeys: ["home", "ctrl+a"];
241
+ readonly defaultKeys: ["home", "ctrl+home", "ctrl+a"];
234
242
  readonly description: "Move to line start";
235
243
  };
236
244
  readonly "tui.editor.cursorLineEnd": {
237
- readonly defaultKeys: ["end", "ctrl+e"];
245
+ readonly defaultKeys: ["end", "ctrl+end", "ctrl+e"];
238
246
  readonly description: "Move to line end";
239
247
  };
240
248
  readonly "tui.editor.jumpForward": {
@@ -246,11 +254,11 @@ export declare const XOPC_TUI_KEYBINDINGS: {
246
254
  readonly description: "Jump backward to character";
247
255
  };
248
256
  readonly "tui.editor.pageUp": {
249
- readonly defaultKeys: "pageUp";
257
+ readonly defaultKeys: ["pageUp", "ctrl+pageUp"];
250
258
  readonly description: "Page up";
251
259
  };
252
260
  readonly "tui.editor.pageDown": {
253
- readonly defaultKeys: "pageDown";
261
+ readonly defaultKeys: ["pageDown", "ctrl+pageDown"];
254
262
  readonly description: "Page down";
255
263
  };
256
264
  readonly "tui.editor.deleteCharBackward": {
@@ -329,6 +337,38 @@ export declare const XOPC_TUI_KEYBINDINGS: {
329
337
  readonly defaultKeys: ["escape", "ctrl+c"];
330
338
  readonly description: "Cancel selection";
331
339
  };
340
+ readonly "tui.altScreen.pageUp": {
341
+ readonly defaultKeys: "pageUp";
342
+ readonly description: "Scroll viewport up one page";
343
+ };
344
+ readonly "tui.altScreen.pageDown": {
345
+ readonly defaultKeys: "pageDown";
346
+ readonly description: "Scroll viewport down one page";
347
+ };
348
+ readonly "tui.altScreen.halfPageUp": {
349
+ readonly defaultKeys: [];
350
+ readonly description: "Scroll viewport up half a page";
351
+ };
352
+ readonly "tui.altScreen.halfPageDown": {
353
+ readonly defaultKeys: [];
354
+ readonly description: "Scroll viewport down half a page";
355
+ };
356
+ readonly "tui.altScreen.previousPrompt": {
357
+ readonly defaultKeys: "ctrl+shift+up";
358
+ readonly description: "Jump to previous semantic prompt";
359
+ };
360
+ readonly "tui.altScreen.nextPrompt": {
361
+ readonly defaultKeys: "ctrl+shift+down";
362
+ readonly description: "Jump to next semantic prompt";
363
+ };
364
+ readonly "tui.altScreen.top": {
365
+ readonly defaultKeys: "home";
366
+ readonly description: "Scroll viewport to top";
367
+ };
368
+ readonly "tui.altScreen.bottom": {
369
+ readonly defaultKeys: "end";
370
+ readonly description: "Scroll viewport to bottom";
371
+ };
332
372
  };
333
373
  /** Order for `/hotkeys` and docs (pi-style UX). */
334
374
  export declare const XOPC_TUI_HOTKEY_ORDER: XopcTuiAppKeybinding[];
@@ -8,6 +8,7 @@ import type { Api, Model } from '@earendil-works/pi-ai';
8
8
  import type { WorkflowAgentInvocationSnapshot } from '../domain/index.js';
9
9
  export interface WorkflowEngineOptions {
10
10
  cwd: string;
11
+ projectId?: string;
11
12
  eventStore: WorkflowEventStore;
12
13
  runStore: WorkflowRunStore;
13
14
  runner: WorkflowRuntimeSubagentRunner;
@@ -164,6 +164,7 @@ var WorkflowEngine = class {
164
164
  sessionKey,
165
165
  sessionMetadata: {
166
166
  parentSessionKey: this.options.parentSessionKey,
167
+ projectId: this.options.projectId,
167
168
  workflowRunId: runId,
168
169
  workflowDefinitionId: definition.id,
169
170
  workflowAgentId: agentId,
@@ -370,6 +371,7 @@ var WorkflowEngine = class {
370
371
  sessionKey,
371
372
  sessionMetadata: {
372
373
  parentSessionKey: this.options.parentSessionKey,
374
+ projectId: this.options.projectId,
373
375
  workflowRunId: params.runId,
374
376
  workflowDefinitionId: params.definition.id,
375
377
  workflowAgentId: target.agentId,
@@ -1,11 +1,12 @@
1
- import { extractProfileAgentId } from "../../config/agent-profile.js";
1
+ import { extractProfileAgentId, resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
2
2
  import { init_providers, resolveModel } from "../../providers/index.js";
3
3
  import { publishAutomationProductEvent } from "../../automations/product-events.js";
4
4
  import { GoalService } from "../../goals/goal-service.js";
5
5
  import "../../goals/index.js";
6
+ import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
6
7
  import { DelegateSubagentRunner } from "../../agent/workflow/subagent-runner.js";
7
- import { preflightWorkflowConnectors } from "../../connectors/workflow-preflight.js";
8
8
  import { resolveModelRef } from "../../config/agent-typed-models.js";
9
+ import { preflightWorkflowConnectors } from "../../connectors/workflow-preflight.js";
9
10
  import { CatalogWorkflowDefinitionRegistry } from "../registry/catalog-workflow-definition-registry.js";
10
11
  import { validateWorkflowJsonSchema } from "../domain/schema-validation.js";
11
12
  import { isTerminalWorkflowRunStatus } from "../domain/run.js";
@@ -79,7 +80,8 @@ var WorkflowRunService = class {
79
80
  const engine = this.createWorkflowEngine({
80
81
  eventStore,
81
82
  runStore,
82
- sessionKey
83
+ sessionKey,
84
+ projectId
83
85
  });
84
86
  const limits = resolveWorkflowRunLimits({
85
87
  config: this.options.service.currentConfig,
@@ -201,7 +203,8 @@ var WorkflowRunService = class {
201
203
  const engine = this.createWorkflowEngine({
202
204
  eventStore,
203
205
  runStore: replayRunStore,
204
- sessionKey
206
+ sessionKey,
207
+ projectId
205
208
  });
206
209
  const limits = resolveWorkflowRunLimits({
207
210
  config: this.options.service.currentConfig,
@@ -356,8 +359,10 @@ var WorkflowRunService = class {
356
359
  createWorkflowEngine(params) {
357
360
  const gatewayService = this.options.service;
358
361
  const profileAgentId = extractProfileAgentId(params.sessionKey, gatewayService.currentConfig);
362
+ const agentWorkspace = gatewayService.currentConfig.agents?.list ? resolveEffectiveAgentProfileForSession(gatewayService.currentConfig, params.sessionKey).resolvedWorkspacePath : gatewayService.currentWorkspacePath;
363
+ const workspace = getProjectWorkspacePathForSession(params.sessionKey) ?? agentWorkspace;
359
364
  const runner = new DelegateSubagentRunner({
360
- workspace: gatewayService.currentWorkspacePath,
365
+ workspace,
361
366
  bus: gatewayService.messageBusInstance,
362
367
  agentId: profileAgentId,
363
368
  getDefaultModel: () => resolveModel(gatewayService.agentService.getModelForSession(params.sessionKey)),
@@ -366,7 +371,8 @@ var WorkflowRunService = class {
366
371
  buildChildTools: (childOptions) => this.options.buildChildTools(childOptions)
367
372
  });
368
373
  return new WorkflowEngine({
369
- cwd: gatewayService.currentWorkspacePath,
374
+ cwd: workspace,
375
+ projectId: params.projectId,
370
376
  eventStore: params.eventStore,
371
377
  runStore: params.runStore,
372
378
  runner,
@@ -5,6 +5,7 @@ import { renderWorkflowText } from "../../agent/workflow/snapshot.js";
5
5
  import { runViewToSnapshot } from "./run-view-to-snapshot.js";
6
6
  import { GoalWorkflowJudge } from "../../goals/goal-workflow-judge.js";
7
7
  import "../../goals/index.js";
8
+ import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
8
9
  import { isTerminalWorkflowRunStatus } from "../domain/run.js";
9
10
  import "../domain/index.js";
10
11
  import { WorkItemWorkflowJudge } from "../../work-items/work-item-workflow-judge.js";
@@ -166,7 +167,7 @@ var WorkflowSessionBridge = class {
166
167
  providerId: "workflow-run",
167
168
  kind: "task_lesson",
168
169
  sourceAgentId: agentId,
169
- workspaceId: this.gateway.currentWorkspacePath,
170
+ workspaceId: getProjectWorkspacePathForSession(sessionKey) ?? this.gateway.currentWorkspacePath,
170
171
  sessionKey,
171
172
  projectId,
172
173
  content: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xopcai/xopc",
3
- "version": "0.0.175",
3
+ "version": "0.0.176",
4
4
  "description": "Local-first AI system that remembers context, coordinates AI, and sustains long-term progress.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -65,10 +65,10 @@
65
65
  "node": ">=22.19.0"
66
66
  },
67
67
  "dependencies": {
68
- "@earendil-works/pi-agent-core": "0.82.1",
69
- "@earendil-works/pi-ai": "0.82.1",
70
- "@earendil-works/pi-coding-agent": "0.82.1",
71
- "@earendil-works/pi-tui": "0.82.1",
68
+ "@earendil-works/pi-agent-core": "0.84.1",
69
+ "@earendil-works/pi-ai": "0.84.1",
70
+ "@earendil-works/pi-coding-agent": "0.84.1",
71
+ "@earendil-works/pi-tui": "0.84.1",
72
72
  "@grammyjs/runner": "^2.0.3",
73
73
  "@hono/node-server": "^2.0.4",
74
74
  "@inquirer/prompts": "^8.5.0",
@@ -1 +0,0 @@
1
- import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./cn-JdwAhgNB.js";import{t as r}from"./messages-BP8aQX-5.js";import{n as i}from"./locale-store-DO-u1yS7.js";import{i as a}from"./theme-store-BZWNdSZC.js";import{Dt as o,es as s,ws as c}from"./index-TnouSpay.js";import{n as l,r as u}from"./settings-page-layout-BhqupMfG.js";import{t as d}from"./settings-advanced-gate-OBUdG6bV.js";var f=e(),p=t();function m(){return n(`rounded-xl bg-surface-base px-4 py-1 sm:px-5`)}var h={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 g(e){let t=(0,f.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,p.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,p.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,p.jsxs)(`div`,{className:`flex items-center gap-1`,children:[l,u]}),t[9]=l,t[10]=u,t[11]=d):d=t[11];let m;t[12]===o?m=t[13]:(m=(0,p.jsx)(`div`,{className:`h-1 w-2/3 max-w-[70%] rounded-full`,style:{backgroundColor:o}}),t[12]=o,t[13]=m);let h;t[14]===o?h=t[15]:(h=(0,p.jsx)(`div`,{className:`size-1/2 max-w-[55%] rounded-full`,style:{backgroundColor:o}}),t[14]=o,t[15]=h);let g;t[16]!==c||t[17]!==d||t[18]!==m||t[19]!==h?(g=(0,p.jsxs)(`div`,{className:`flex flex-col gap-0.5 rounded-sm border p-1`,style:c,children:[d,m,h]}),t[16]=c,t[17]=d,t[18]=m,t[19]=h,t[20]=g):g=t[20];let _;return t[21]!==s||t[22]!==g?(_=(0,p.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col justify-center gap-1 p-1.5`,style:s,children:g}),t[21]=s,t[22]=g,t[23]=_):_=t[23],_}function _(e){let t=(0,f.c)(8),{scheme:n}=e,{light:r,dark:i}=h[n],a;t[0]===r?a=t[1]:(a=(0,p.jsx)(g,{...r}),t[0]=r,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,p.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,p.jsx)(g,{...i}),t[3]=i,t[4]=s);let c;return t[5]!==a||t[6]!==s?(c=(0,p.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 v=[{value:`default`,labelKey:`colorSchemeDefault`},{value:`emerald`,labelKey:`colorSchemeLightGreen`},{value:`mono`,labelKey:`colorSchemeModernMono`},{value:`clay`,labelKey:`colorSchemeClay`}];function y(){let e=(0,f.c)(18),t=i(S),o;e[0]===t?o=e[1]:(o=r(t),e[0]=t,e[1]=o);let s=o.appearanceSettings,l=a(x),u=a(b),d;e[2]===s.colorSchemeTitle?d=e[3]:(d=(0,p.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:s.colorSchemeTitle}),e[2]=s.colorSchemeTitle,e[3]=d);let m;e[4]===s.colorSchemeDescription?m=e[5]:(m=(0,p.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:s.colorSchemeDescription}),e[4]=s.colorSchemeDescription,e[5]=m);let h;e[6]!==d||e[7]!==m?(h=(0,p.jsxs)(`div`,{className:`min-w-0`,children:[d,m]}),e[6]=d,e[7]=m,e[8]=h):h=e[8];let g;e[9]!==s||e[10]!==l||e[11]!==u?(g=v.map(e=>{let{value:t,labelKey:r}=e,i=l===t;return(0,p.jsxs)(`button`,{type:`button`,"aria-pressed":i,onClick:()=>u(t),className:n(`flex flex-col gap-2 rounded-xl border-2 p-2.5 text-left transition-[border-color,box-shadow,transform] duration-150`,c.pressCard,i?`border-accent shadow-[0_0_0_1px_var(--color-accent)]`:`border-edge-subtle hover:border-edge`),children:[(0,p.jsx)(_,{scheme:t}),(0,p.jsx)(`span`,{className:n(`text-xs font-medium leading-none`,i?`text-accent-fg`:`text-fg-muted`),children:s[r]})]},t)}),e[9]=s,e[10]=l,e[11]=u,e[12]=g):g=e[12];let y;e[13]===g?y=e[14]:(y=(0,p.jsx)(`div`,{className:`grid grid-cols-2 gap-3 lg:grid-cols-4`,children:g}),e[13]=g,e[14]=y);let C;return e[15]!==h||e[16]!==y?(C=(0,p.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg bg-surface-panel/50 p-3.5 sm:py-4`,children:[h,y]}),e[15]=h,e[16]=y,e[17]=C):C=e[17],C}function b(e){return e.setColorScheme}function x(e){return e.colorScheme}function S(e){return e.language}function C(){let e=(0,f.c)(27),t=i(E),n;e[0]===t?n=e[1]:(n=r(t),e[0]=t,e[1]=n);let a=n.appearanceSettings,s=o(T),c=o(w),l;e[2]===a.developerGroupTitle?l=e[3]:(l=(0,p.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:a.developerGroupTitle}),e[2]=a.developerGroupTitle,e[3]=l);let u;e[4]===a.developerGroupDescription?u=e[5]:(u=(0,p.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:a.developerGroupDescription}),e[4]=a.developerGroupDescription,e[5]=u);let d;e[6]!==l||e[7]!==u?(d=(0,p.jsxs)(`div`,{className:`min-w-0`,children:[l,u]}),e[6]=l,e[7]=u,e[8]=d):d=e[8];let m;e[9]===a.showRawToolDataTitle?m=e[10]:(m=(0,p.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:a.showRawToolDataTitle}),e[9]=a.showRawToolDataTitle,e[10]=m);let h;e[11]===a.showRawToolDataDescription?h=e[12]:(h=(0,p.jsx)(`p`,{className:`text-xs text-fg-muted`,children:a.showRawToolDataDescription}),e[11]=a.showRawToolDataDescription,e[12]=h);let g;e[13]!==m||e[14]!==h?(g=(0,p.jsxs)(`div`,{className:`min-w-0`,children:[m,h]}),e[13]=m,e[14]=h,e[15]=g):g=e[15];let _;e[16]===c?_=e[17]:(_=e=>c(e.target.checked),e[16]=c,e[17]=_);let v;e[18]!==s||e[19]!==_?(v=(0,p.jsx)(`input`,{type:`checkbox`,className:`ui-checkbox`,checked:s,onChange:_}),e[18]=s,e[19]=_,e[20]=v):v=e[20];let y;e[21]!==g||e[22]!==v?(y=(0,p.jsxs)(`label`,{className:`flex items-center justify-between gap-3 rounded-xl bg-surface-hover/50 px-3 py-2.5 dark:bg-surface-hover/35`,children:[g,v]}),e[21]=g,e[22]=v,e[23]=y):y=e[23];let b;return e[24]!==d||e[25]!==y?(b=(0,p.jsxs)(`div`,{className:`flex flex-col gap-2 py-3.5 sm:py-4`,children:[d,y]}),e[24]=d,e[25]=y,e[26]=b):b=e[26],b}function w(e){return e.setShowRawToolData}function T(e){return e.showRawToolData}function E(e){return e.language}function D(){let e=(0,f.c)(29),t=i(O),n;e[0]===t?n=e[1]:(n=r(t),e[0]=t,e[1]=n);let a=n.appearanceSettings,o;e[2]!==a.pageTitle||e[3]!==a.subtitle?(o=(0,p.jsx)(l,{title:a.pageTitle,subtitle:a.subtitle}),e[2]=a.pageTitle,e[3]=a.subtitle,e[4]=o):o=e[4];let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=m(),e[5]=c):c=e[5];let h;e[6]===a.languageTitle?h=e[7]:(h=(0,p.jsx)(`h2`,{id:`pref-language-heading`,className:`sr-only`,children:a.languageTitle}),e[6]=a.languageTitle,e[7]=h);let g;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,p.jsx)(s,{variant:`page`,sections:[`language`]}),e[8]=g):g=e[8];let _;e[9]===h?_=e[10]:(_=(0,p.jsxs)(`section`,{className:c,"aria-labelledby":`pref-language-heading`,children:[h,g]}),e[9]=h,e[10]=_);let v;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(v=m(),e[11]=v):v=e[11];let b;e[12]===a.themeTitle?b=e[13]:(b=(0,p.jsx)(`h2`,{id:`pref-appearance-heading`,className:`sr-only`,children:a.themeTitle}),e[12]=a.themeTitle,e[13]=b);let x,S;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,p.jsx)(s,{variant:`page`,sections:[`theme`,`font`]}),S=(0,p.jsx)(y,{}),e[14]=x,e[15]=S):(x=e[14],S=e[15]);let w;e[16]===b?w=e[17]:(w=(0,p.jsxs)(`section`,{className:v,"aria-labelledby":`pref-appearance-heading`,children:[b,x,S]}),e[16]=b,e[17]=w);let T;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(T=m(),e[18]=T):T=e[18];let E;e[19]===a.developerGroupTitle?E=e[20]:(E=(0,p.jsx)(`h2`,{id:`pref-developer-heading`,className:`sr-only`,children:a.developerGroupTitle}),e[19]=a.developerGroupTitle,e[20]=E);let D;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,p.jsx)(C,{}),e[21]=D):D=e[21];let k;e[22]===E?k=e[23]:(k=(0,p.jsx)(d,{children:(0,p.jsxs)(`section`,{className:T,"aria-labelledby":`pref-developer-heading`,children:[E,D]})}),e[22]=E,e[23]=k);let A;return e[24]!==o||e[25]!==w||e[26]!==k||e[27]!==_?(A=(0,p.jsxs)(u,{gap:`gap-6`,children:[o,_,w,k]}),e[24]=o,e[25]=w,e[26]=k,e[27]=_,e[28]=A):A=e[28],A}function O(e){return e.language}export{D as AppearanceSettingsPanel};
@@ -1 +0,0 @@
1
- import{r as e}from"./locale-store-DO-u1yS7.js";import{n as t}from"./channel-recipient-api-D32T1EJM.js";function n(){return e(`/api/channels/status`)}var r=t;export{r as n,n as t};