@xopcai/xopc 0.0.364 → 0.0.366
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/dist/sidepanel.js +16 -4
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-GvR2gZ0T.js → activity-store-SVmnh__i.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-7Ct-ZlfL.js → agent-avatar-dicebear-CS9lg5h2.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-wYj-iyqv.js → agent-defaults-settings-panel-CvUPtxS4.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-C9HYMhnJ.js → agent-plugin-dialog-1tRxDfjI.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-admin-api-BkXb7VEZ.js → agents-admin-api-CVdFV-cU.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-hPkFQ81z.js → agents-gdT0whx9.js} +3 -3
- package/dist/gateway/static/root/assets/{app-management-settings-panel-CjfsIn9A.js → app-management-settings-panel-CaxnUxvy.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-qqHZ15GU.js → appearance-settings-6NKquG3v.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-Ba2VkQk6.js → apps-page-BoB3MbsB.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-CKe3qAaL.js → archive-plugin-BWtLZtK1.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-Bt8Q58ut.js → automations-page-CNngHw2c.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-Ch0ViAJW.js → automations-workspace-BKHsdiQ8.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-J51oS7-D.js → binary-plugins-fIhH-wg6.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-ClRFbHP7.js → block-editor-BhstSZNE.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-5B3qAdmb.js → browser-automation-inputs-B6sOBxVA.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-BjMub7JM.js → browser-automations-page-HZAKkVVt.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-CYrPA-Fp.js → browser-settings-page-D8IpVQI6.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-CT_ZW9fT.js → capabilities-C4grvUkw.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BKu9BqPe.js → capabilities-CAIQmCrH.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-dW6FXtOy.js → capabilities-page-DK8FJRW4.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-gZ8auLwa.js → capabilities-settings-panel-BP2roWcM.js} +1 -1
- package/dist/gateway/static/root/assets/{capability-header-actions-L1NvoOUG.js → capability-header-actions-BA1M7RRP.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-Dx5T2G73.js → channels-EQGCxr8W.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-DsCpKPBe.js → chat-terminal-dock-KS_yk1H7.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-6FWwxYLe.js → computer-settings-page-CGBR0KFw.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-mtH9mEBf.js → connector-service-page-CY_3H_l9.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-DgDLaws0.js → connectors-page-CUOL6JX0.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-BDcwEaIx.js → date-picker-CDSZ-PWV.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-B_fPQBTM.js → dependency-picker-CyNH4m20.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-CJrO9Vd_.js → desktop-pet-BsZQsQ2_.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DYAfri9w.js → desktop-pet-settings-DMgkUy6g.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-CqRys2R8.js → device-pairing-wizard-JjbUN8y-.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-D7_qSxNZ.js → directory-picker-path-field-CBTI3tKh.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-BGyJpRv4.js → extension-debug-page-C7nSpOKj.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-D1zBmd8F.js → extension-page-BYUjAvsZ.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-F9JzOWZ3.js → extension-provider-DaLt3bC-.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CTR8AjCG.js → extension-settings-page-CRasspq0.js} +1 -1
- package/dist/gateway/static/root/assets/{fallback-models-Chhv4Nfv.js → fallback-models-BLJFYASE.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-CoRoOG1l.js → gateway-config-swr-DIIzvDLQ.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-D0ygm6bc.js → gateway-realtime-DD70L42G.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-DeUVEPPE.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-settings-BVfz4Tla.js → gateway-settings-B9n5naCr.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-FDS6S6qa.js → gateway-startup-retry-D_EwU7-6.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-BF_9C9yW.js → home-page-BP6qAgBt.js} +1 -1
- package/dist/gateway/static/root/assets/{image-generation-api-BPd76jW5.js → image-generation-api-BkK22JsL.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-9EnECtcl.js → imports-page-YJKcTKKr.js} +1 -1
- package/dist/gateway/static/root/assets/index-6JNNrzCq.js +106 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-MC7mG2h2.js → keyboard-shortcuts-settings-BG_kM_Rm.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-CytNu0-_.js → local-app-workbench-page-lHi21M1T.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-c3HncHZ3.js → local-apps-page-jqthjcQO.js} +1 -1
- package/dist/gateway/static/root/assets/local-session-drafts-C4et6msJ.js +1 -0
- package/dist/gateway/static/root/assets/{locale-store-DId6-v2R.js → locale-store-CvNO-hbt.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-D4aXtitd.js → logs-page-CH7W-dm5.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-CRzWi_iJ.js → management-settings-DVgI_KNm.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-DQZ51j9e.js → markdown-view-DDJlD5jR.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-XLewwq2q.js → media-plugins-C25mOgs2.js} +1 -1
- package/dist/gateway/static/root/assets/messages-pGa2qMzG.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-cache-DzFiL4xV.js +1 -0
- package/dist/gateway/static/root/assets/{note-detail-panel-BgbByI-4.js → note-detail-panel-kyX-n1db.js} +3 -3
- package/dist/gateway/static/root/assets/{notes-api-Byt65v3r.js → notes-api-CKLw9vjk.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-R2BX5XCE.js → notes-page-CLZygZlm.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-BYsCbyGZ.js → oauth-api-CC5KkSgG.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-RBp1QK0F.js → page-context-capture-button-KX9mrcJW.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-F0jTBWva.js → personal-page-DnXlcJNJ.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-BtDK68qb.js → product-open-page-D7pknlCh.js} +1 -1
- package/dist/gateway/static/root/assets/{project-detail-page-DmQEm0yH.js → project-detail-page-DhV9DPj8.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-CrLQvkHX.js → projects-page-D181xkFw.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-7F2WNEZC.js → registry-api-CiN49wvk.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-C25_hQAd.js → remote-access-hub-CQnBARQW.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-B0c120iI.js → runtime-tools-settings-panel-wZjlSBiM.js} +1 -1
- package/dist/gateway/static/root/assets/{scenes-page-DM64yMnx.js → scenes-page-DWt54veq.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-DQpQc9tH.js → schema-form-CMB61TV1.js} +1 -1
- package/dist/gateway/static/root/assets/secret-input-D93UrW4C.js +1 -0
- package/dist/gateway/static/root/assets/{send-session-input-D1oc6BC6.js → send-session-input-jH6MQwdZ.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-N3N37MrR.js → session-api-CW2X7g_U.js} +1 -1
- package/dist/gateway/static/root/assets/{session-manager-CMGUwtbN.js → session-manager-BDpdi3lF.js} +2 -2
- package/dist/gateway/static/root/assets/{sessions-page-DvDO8LtA.js → sessions-page-DPEdjUdR.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-B6WGnTLY.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-GgBEp6O7.js → settings-page-Ch71KQjb.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-10bMi6yL.js → setup-status-panel-C7sLy8Hl.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-TBBGJPfT.js → share-link-dialog-DCSmx-Rl.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-DyRLPsPv.js → share-preview-page-C93IM3QK.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-DU0fHP2G.js → shares-api-B4rLfG3l.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-DJ1ME-XM.js → shares-settings-C_6idV8e.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-1Puv6wOz.js → skill-api-sKX8SSlQ.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-ClyFqHk7.js → skill-reload-api-Ro-s69NW.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-D52pEr5x.js → skills-page-TsrjLYcI.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel--yV67a8L.js → system-settings-panel-DIjaUlla.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-D-tcS2bS.js → task-detail-page-B4Lby289.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-OhcbFEUR.js → theme-store-DbRLBHVY.js} +1 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-IgY26AYH.js +1 -0
- package/dist/gateway/static/root/assets/{tunnel-api-COLdiP_E.js → tunnel-api-CgARwbus.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-CtM5IfrL.js → usage-page-CKju62Cm.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-veoM0dHn.js → use-autosave-C889OTsP.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-DB0bBGzZ.js → use-composer-attachments-Dlm9EFTO.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-Bope6MW6.js → use-file-preview-expanded-BOpcSApw.js} +2 -2
- package/dist/gateway/static/root/assets/{user-model-page-CSh61kZ5.js → user-model-page-CTkCLRhE.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-CwD6a3KQ.js → voice-api-key-field-evWflGY6.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-Daexehmc.js → voice-config-api-CZoV2Lt4.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-C9u7tuEc.js → work-discovery-overlay-B2-2F39_.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BMOBbf33.js → workflow-run-setup-panel-cOGM8Nug.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-BrD9vXqO.js → workflows-page-Csk8xrRk.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-Cs4sjV2A.js → workspace-api-B9M9ECTB.js} +2 -2
- package/dist/gateway/static/root/index.html +28 -28
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/session-input-command.js +1 -0
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +35 -3
- package/dist/src/agent/background-review/run-background-review.js +1 -1
- package/dist/src/agent/context/execution-context.js +1 -1
- package/dist/src/agent/context/project-context.js +4 -4
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
- package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
- package/dist/src/agent/prompt/voice-presentation.d.ts +1 -1
- package/dist/src/agent/prompt/voice-presentation.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +17 -1
- package/dist/src/agent/service.js +3 -3
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/tools/delegation-parent-policy.js +2 -0
- package/dist/src/agent/tools/delegation-policy.js +2 -0
- package/dist/src/agent/tools/factory.d.ts +2 -0
- package/dist/src/agent/tools/factory.js +26 -4
- package/dist/src/agent/tools/index.d.ts +2 -2
- package/dist/src/agent/tools/index.js +3 -3
- package/dist/src/agent/tools/knowledge-memory-tool.d.ts +2 -0
- package/dist/src/agent/tools/knowledge-memory-tool.js +60 -1
- package/dist/src/agent/tools/personal-task-tool.d.ts +12 -8
- package/dist/src/agent/tools/personal-task-tool.js +35 -41
- package/dist/src/agent/tools/user-context-tool.d.ts +2 -0
- package/dist/src/agent/tools/user-context-tool.js +61 -2
- package/dist/src/agent/tools/xopc-use-tool.js +2 -2
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-catalog/migrations/legacy-config-cutover.js +1 -1
- package/dist/src/agent-catalog/repository.d.ts +1 -0
- package/dist/src/agent-catalog/repository.js +4 -1
- package/dist/src/automations/capabilities/drafts.js +1 -1
- package/dist/src/bootstrap/application-state.js +1 -1
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/chat-commands/personal-command-policy.d.ts +2 -0
- package/dist/src/chat-commands/personal-command-policy.js +9 -0
- package/dist/src/chat-commands/registry.js +6 -0
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +2 -2
- package/dist/src/cli/utils/init-workspace-core.js +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/extensions/agent-plugins/validation.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/notes.js +2 -2
- package/dist/src/gateway/hono/routes/observability.js +8 -0
- package/dist/src/gateway/hono/routes/projects.js +3 -3
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +2 -0
- package/dist/src/gateway/hono/routes/session-input-handler.js +9 -1
- package/dist/src/gateway/hono/routes/sessions.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/hono/routes/voice.js +1 -1
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +1 -0
- package/dist/src/gateway/service/agent-runner.js +12 -1
- package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -0
- package/dist/src/gateway/service/run-gateway-agent.js +15 -0
- package/dist/src/gateway/service/session-command-service.js +5 -3
- package/dist/src/gateway/service/session-input-coordinator.d.ts +12 -0
- package/dist/src/gateway/service/session-input-coordinator.js +63 -5
- package/dist/src/gateway/service/sessions-api.js +1 -1
- package/dist/src/gateway/service.d.ts +2 -0
- package/dist/src/gateway/service.js +16 -10
- package/dist/src/gateway/session-context-summary.js +1 -1
- package/dist/src/gateway/session-reset-service.js +1 -1
- package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
- package/dist/src/local-apps/service.js +2 -2
- package/dist/src/personal-agent/capability-service.js +3 -2
- package/dist/src/personal-agent/communication.d.ts +3 -2
- package/dist/src/personal-agent/communication.js +4 -3
- package/dist/src/personal-agent/conversation-state.d.ts +5 -0
- package/dist/src/personal-agent/conversation-state.js +17 -0
- package/dist/src/personal-agent/persona.d.ts +6 -0
- package/dist/src/personal-agent/persona.js +16 -0
- package/dist/src/personal-agent/policy.d.ts +3 -1
- package/dist/src/personal-agent/policy.js +26 -6
- package/dist/src/personal-agent/prompt-context.d.ts +10 -0
- package/dist/src/personal-agent/prompt-context.js +119 -0
- package/dist/src/personal-agent/prompts.d.ts +7 -0
- package/dist/src/personal-agent/prompts.js +124 -0
- package/dist/src/personal-agent/reply-composer.d.ts +1 -1
- package/dist/src/personal-agent/reply-composer.js +39 -11
- package/dist/src/personal-agent/repository.d.ts +1 -1
- package/dist/src/personal-agent/repository.js +1 -1
- package/dist/src/personal-agent/request-delivery.js +1 -1
- package/dist/src/personal-agent/request-service.js +2 -2
- package/dist/src/personal-agent/service.d.ts +1 -2
- package/dist/src/personal-agent/service.js +5 -93
- package/dist/src/personal-agent/specialist-capabilities.d.ts +9 -0
- package/dist/src/personal-agent/specialist-capabilities.js +37 -0
- package/dist/src/session/init-session-turn.js +10 -0
- package/dist/src/session/store.js +1 -1
- package/dist/src/storage/sqlite/migrations/235_personal_conversation_priority.sql +3 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/session-input-repository.d.ts +2 -0
- package/dist/src/storage/sqlite/session-input-repository.js +18 -5
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/execution-context.js +1 -1
- package/dist/src/tasks/task-main-update-decision-service.js +1 -1
- package/dist/src/tasks/task-result-delivery-service.js +1 -1
- package/dist/src/tui/backends/embedded-backend.js +1 -1
- package/dist/src/voice/realtime/agentEngine.js +32 -7
- package/dist/src/voice/realtime/engine.d.ts +1 -0
- package/dist/src/voice/realtime/omniEngine.d.ts +1 -0
- package/dist/src/voice/realtime/omniEngine.js +10 -0
- package/dist/src/voice/realtime/persona-context.js +1 -1
- package/dist/src/voice/realtime/runtime.d.ts +1 -0
- package/dist/src/voice/realtime/runtime.js +5 -0
- package/dist/src/voice/realtime/runtime.types.d.ts +2 -0
- package/dist/src/work-discovery/service.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +1 -1
- package/package.json +3 -3
- package/dist/gateway/static/root/assets/gateway-realtime-store-DBvCRclh.js +0 -1
- package/dist/gateway/static/root/assets/index-BpXej9jJ.js +0 -106
- package/dist/gateway/static/root/assets/local-session-drafts-gbemPamv.js +0 -1
- package/dist/gateway/static/root/assets/messages-BHvpZNe9.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-cache-B9SKjidc.js +0 -1
- package/dist/gateway/static/root/assets/secret-input-DPl3VYM8.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BNhgbmcX.js +0 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-DoBJ0TYY.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./locale-store-DId6-v2R.js";import{o as t}from"./vendor-swr-BIWyz7Rc.js";import{n}from"./gateway-config-swr-CoRoOG1l.js";import{r}from"./registry-api-7F2WNEZC.js";var i=`models-json-config`,a=`model-catalog`,o=`capability-readiness`;async function s(){await Promise.all([n(),t(e(`/api/providers/meta`)),t(i),t(a),t(o),r()])}export{s as i,i as n,a as r,o 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{t as i}from"./createLucideIcon-DPHK1VkS.js";import{t as a}from"./circle-check-C23XjkUj.js";import{t as o}from"./copy-Dv6d4Dvw.js";import{t as s}from"./eye-CABVeTq0.js";import{t as c}from"./loader-circle-CifKLtgG.js";import{t as l}from"./cn-JdwAhgNB.js";import{t as ee}from"./copy-to-clipboard-HOJ79TWv.js";import{n as u}from"./interaction-BdhHBbYa.js";import{s as d}from"./form-field-width-DJw_jULe.js";import{n as f,t as te}from"./is-masked-secret-DOkL5b_X.js";var ne=i(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),p=n(),m=e(t(),1),h={showKey:!1,revealed:void 0,revealLoading:!1,revealErr:null,copied:!1};function g(e,t){switch(t.type){case`reset-reveal`:return{...e,showKey:!1,revealed:void 0,revealErr:null};case`toggle-show`:return{...e,showKey:!e.showKey};case`reveal-start`:return{...e,revealLoading:!0,revealErr:null};case`reveal-success`:return{...e,revealed:t.value,revealLoading:!1,showKey:!0,revealErr:null};case`reveal-error`:return{...e,revealed:null,revealLoading:!1,revealErr:t.message};case`copied`:return{...e,copied:!0};case`clear-copied`:return{...e,copied:!1};case`invalidate-reveal`:return{...e,revealed:void 0,showKey:!1}}}function _(e){let{value:t,reveal:n,loadFailedLabel:r=`Failed to load secret`,baselineValue:i}=e,[a,o]=(0,m.useReducer)(g,h),s=f(t),c=!!(i?.trim()&&t===i&&!s),l=(0,m.useRef)(n);l.current=n;let u=(0,m.useRef)({masked:s,value:t,unchangedConcealed:c});(!s&&!c&&(u.current.masked||u.current.unchangedConcealed)||u.current.value!==t&&!c)&&o({type:`reset-reveal`}),u.current={masked:s,value:t,unchangedConcealed:c};let d=c&&!a.showKey?te(t.length):s&&a.showKey&&typeof a.revealed==`string`?a.revealed:t,ne=c&&!a.showKey?`password`:c&&a.showKey?`text`:s?a.showKey&&typeof a.revealed==`string`?`text`:`password`:a.showKey?`text`:`password`,p=c&&!a.showKey,_=c&&t.trim()||!s&&t.trim()&&!f(t)?t.trim():typeof a.revealed==`string`&&a.revealed.length>0?a.revealed:``,v=_.length>0,re=(0,m.useCallback)(async()=>{_&&await ee(_)&&(o({type:`copied`}),window.setTimeout(()=>o({type:`clear-copied`}),2e3))},[_]),y=(0,m.useCallback)(async()=>{if(c||!s){o({type:`toggle-show`});return}if(a.revealed!==void 0){o({type:`toggle-show`});return}if(!l.current){o({type:`toggle-show`});return}o({type:`reveal-start`});try{o({type:`reveal-success`,value:await l.current()})}catch(e){o({type:`reveal-error`,message:e instanceof Error?e.message:r})}},[r,s,c,a.revealed]),b=(0,m.useCallback)((e,t)=>{p||(s&&typeof a.revealed==`string`&&a.showKey&&e!==a.revealed&&o({type:`invalidate-reveal`}),t(e))},[s,p,a.revealed,a.showKey]),x=a.revealLoading||!s&&!c&&!t.trim()||s&&!n&&a.revealed===void 0;return{masked:s,unchangedConcealed:c,showKey:a.showKey,revealed:a.revealed,revealLoading:a.revealLoading,revealErr:a.revealErr,copied:a.copied,inputValue:d,inputType:ne,readOnly:p,copyEnabled:v,copySecret:re,toggleEye:y,onInputChange:b,eyeDisabled:x}}var v=r(),re=l(`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-3 pr-20 font-mono text-sm text-fg`,`placeholder:text-fg-subtle`,d,`dark:border-edge`);function y(e){let t=(0,p.c)(69),{id:n,name:r,ariaDescribedBy:i,ariaInvalid:ee,value:d,onChange:f,placeholder:te,disabled:m,readOnly:h,className:g,inputClassName:y,labels:b,reveal:x,loadFailedLabel:ie,maskedHelp:S,notInConfigFile:C,baselineValue:ae,autoComplete:oe,onKeyDown:se,inputRef:ce}=e,w=m===void 0?!1:m,le=h===void 0?!1:h,T=oe===void 0?`off`:oe,E;t[0]!==ae||t[1]!==ie||t[2]!==x||t[3]!==d?(E={value:d,reveal:x,loadFailedLabel:ie,baselineValue:ae},t[0]=ae,t[1]=ie,t[2]=x,t[3]=d,t[4]=E):E=t[4];let{masked:D,showKey:O,revealed:k,revealLoading:ue,revealErr:A,copied:j,inputValue:de,inputType:fe,readOnly:pe,copyEnabled:M,copySecret:N,toggleEye:P,onInputChange:F,eyeDisabled:me}=_(E),I=le||pe,L;t[5]===g?L=t[6]:(L=l(`flex flex-col gap-1.5`,g),t[5]=g,t[6]=L);let R;t[7]!==D||t[8]!==S?(R=D&&S?(0,v.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:S}):null,t[7]=D,t[8]=S,t[9]=R):R=t[9];let z=ee||void 0,B=D?void 0:te,V;t[10]!==f||t[11]!==F?(V=f?e=>F(e.target.value,f):void 0,t[10]=f,t[11]=F,t[12]=V):V=t[12];let H;t[13]===y?H=t[14]:(H=l(re,y),t[13]=y,t[14]=H);let U;t[15]!==i||t[16]!==T||t[17]!==w||t[18]!==n||t[19]!==ce||t[20]!==fe||t[21]!==de||t[22]!==r||t[23]!==se||t[24]!==I||t[25]!==H||t[26]!==z||t[27]!==B||t[28]!==V?(U=(0,v.jsx)(`input`,{ref:ce,id:n,name:r,"aria-describedby":i,"aria-invalid":z,type:fe,autoComplete:T,spellCheck:!1,disabled:w,readOnly:I,value:de,placeholder:B,onChange:V,onKeyDown:se,className:H}),t[15]=i,t[16]=T,t[17]=w,t[18]=n,t[19]=ce,t[20]=fe,t[21]=de,t[22]=r,t[23]=se,t[24]=I,t[25]=H,t[26]=z,t[27]=B,t[28]=V,t[29]=U):U=t[29];let W;t[30]!==j||t[31]!==M||t[32]!==N||t[33]!==w||t[34]!==b.copied||t[35]!==b.copy?(W=M?(0,v.jsx)(`button`,{type:`button`,className:l(`rounded p-1.5 text-fg-subtle hover:bg-surface-hover hover:text-fg`,u.transition,u.press,u.focusRingPanel),title:j?b.copied:b.copy,"aria-label":j?b.copied:b.copy,disabled:w,onClick:()=>void N(),children:j?(0,v.jsx)(a,{className:`size-3.5`}):(0,v.jsx)(o,{className:`size-3.5`})}):null,t[30]=j,t[31]=M,t[32]=N,t[33]=w,t[34]=b.copied,t[35]=b.copy,t[36]=W):W=t[36];let G;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(G=l(`rounded p-1.5 text-fg-subtle hover:bg-surface-hover hover:text-fg disabled:opacity-40`,u.transition,u.press,u.focusRingPanel),t[37]=G):G=t[37];let he=O?b.hide:b.show,ge=O?b.hide:b.show,_e=w||me,K;t[38]===P?K=t[39]:(K=()=>void P(),t[38]=P,t[39]=K);let q;t[40]!==ue||t[41]!==O?(q=ue?(0,v.jsx)(c,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):O?(0,v.jsx)(ne,{className:`size-3.5`,"aria-hidden":!0}):(0,v.jsx)(s,{className:`size-3.5`,"aria-hidden":!0}),t[40]=ue,t[41]=O,t[42]=q):q=t[42];let J;t[43]!==he||t[44]!==ge||t[45]!==_e||t[46]!==K||t[47]!==q?(J=(0,v.jsx)(`button`,{type:`button`,className:G,title:he,"aria-label":ge,disabled:_e,onClick:K,children:q}),t[43]=he,t[44]=ge,t[45]=_e,t[46]=K,t[47]=q,t[48]=J):J=t[48];let Y;t[49]!==W||t[50]!==J?(Y=(0,v.jsxs)(`div`,{className:`absolute right-1 top-1/2 flex -translate-y-1/2 gap-0.5`,children:[W,J]}),t[49]=W,t[50]=J,t[51]=Y):Y=t[51];let X;t[52]!==U||t[53]!==Y?(X=(0,v.jsxs)(`div`,{className:`relative min-w-0`,children:[U,Y]}),t[52]=U,t[53]=Y,t[54]=X):X=t[54];let Z;t[55]!==D||t[56]!==C||t[57]!==A||t[58]!==k||t[59]!==O?(Z=D&&O&&k===null&&!A&&C?(0,v.jsx)(`p`,{className:`text-xs text-amber-700 dark:text-amber-400/90`,children:C}):null,t[55]=D,t[56]=C,t[57]=A,t[58]=k,t[59]=O,t[60]=Z):Z=t[60];let Q;t[61]===A?Q=t[62]:(Q=A?(0,v.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:A}):null,t[61]=A,t[62]=Q);let $;return t[63]!==X||t[64]!==Z||t[65]!==Q||t[66]!==L||t[67]!==R?($=(0,v.jsxs)(`div`,{className:L,children:[R,X,Z,Q]}),t[63]=X,t[64]=Z,t[65]=Q,t[66]=L,t[67]=R,t[68]=$):$=t[68],$}export{ne as n,y as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{hn as e}from"./index-BpXej9jJ.js";function t(t){let{children:n,fallback:r}=t,i=r===void 0?null:r;return e()?n:i}export{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{t as i}from"./popover-select-BgSdSbCL.js";import{a,n as ee,r as o}from"./locale-store-DId6-v2R.js";import{a as s,i as c,n as te,o as l,r as u,s as d,t as f}from"./dist-BGTk37IG.js";import{i as p}from"./vendor-swr-BIWyz7Rc.js";import{t as m}from"./button-CS04eWY9.js";import{t as h}from"./skeleton-BwbyijEw.js";import{n as ne,r as re}from"./settings-page-layout-X1x-2Cp9.js";import{n as ie,t as ae}from"./use-autosave-veoM0dHn.js";var g=e(t(),1),_=n(),v=e=>o(`/api/observability/${e}`);async function y(e,t=`GET`,n){return a(v(e),{method:t,...n===void 0?{}:{body:JSON.stringify(n)}})}var b=r(),x=`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,S=`space-y-4 rounded-xl border border-edge bg-surface-panel p-4`,oe=(e=0)=>`${(e/1048576).toFixed(1)} MiB`;function se(){let e=(0,_.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,b.jsxs)(`div`,{"aria-busy":`true`,className:`space-y-4`,children:[(0,b.jsx)(h,{className:`h-48 rounded-xl`}),(0,b.jsx)(h,{className:`h-64 rounded-xl`})]}),e[0]=t):t=e[0],t}function ce(e,t){let n=0,r=e,i=new Set;for(;r.parentSpanId&&n<12&&!i.has(r.spanId);){i.add(r.spanId);let e=t.find(e=>e.spanId===r.parentSpanId);if(!e)break;r=e,n++}return n}function le(e){let t=[],n=new Set;function r(i){n.has(i.spanId)||(n.add(i.spanId),t.push(i),e.filter(e=>e.parentSpanId===i.spanId).forEach(r))}return e.filter(t=>!t.parentSpanId||!e.some(e=>e.spanId===t.parentSpanId)).forEach(r),e.forEach(r),t}function ue(){let e=ee(e=>e.language)===`zh`,t=(t,n)=>e?n:t,n=p(v(`tracing/settings`),()=>y(`tracing/settings`)),r=p(v(`tracing/status`),()=>y(`tracing/status`),{refreshInterval:1e4}),[a,o]=(0,g.useState)(),[_,ue]=(0,g.useState)(),C=a??_??n.data?.config,[w,T]=(0,g.useState)(``),[E,D]=(0,g.useState)(``),[O,de]=(0,g.useState)(!1),[fe,k]=(0,g.useState)(``),[pe,me]=(0,g.useState)(!1),[A,he]=(0,g.useState)(``),[j,ge]=(0,g.useState)(`7`),[M,_e]=(0,g.useState)({conversationId:``,runId:``,agentId:``}),[N,P]=(0,g.useState)(`records`),[F,ve]=(0,g.useState)(`10`),[ye,I]=(0,g.useState)([``]),[L,R]=(0,g.useState)(0),[z,be]=(0,g.useState)(()=>Date.now()+1),B=ye[L],[V,H]=(0,g.useState)();function U(){I([``]),R(0),be(Date.now()+1)}let[xe,W]=(0,g.useState)(!1),G=new URLSearchParams({limit:F,from:String(z-Number(j)*864e5),to:String(z)});A&&G.set(`status`,A),B&&G.set(`cursor`,B);for(let[e,t]of Object.entries(M))t&&G.set(e,t);let Se=`traces?${G}`,K=p(v(Se),()=>y(Se),{refreshInterval:B?0:1e4}),q=p(V?v(`traces/${V}`):null,()=>y(`traces/${V}`));function J(e){if(!C)return;let t=structuredClone(C);e(t),o(t)}async function Y(e,i=t(`Saved`,`已保存`)){de(!0),k(``),me(!1);try{await e(),k(i),await Promise.all([n.mutate(),r.mutate(),K.mutate()])}catch(e){me(!0),k(e instanceof Error?e.message:t(`Request failed`,`操作失败`))}finally{de(!1)}}let X=ae({value:C??null,dirty:!!(a&&JSON.stringify(a)!==JSON.stringify(_??n.data?.config)),validate:e=>{if([[`retentionDays`,1,90],[`maxStoreMiB`,16,4096],[`maxTraces`,10,1e5],[`maxSpans`,100,1e6],[`maxTraceKiB`,16,4096],[`maxWriteMiBPerMinute`,1,100]].some(([t,n,r])=>!Number.isInteger(e.local[t])||e.local[t]<n||e.local[t]>r))return t(`Enter valid storage limits before continuing.`,`请填写有效的存储限额。`);try{let t=new URL(e.langfuse.baseUrl);if(![`http:`,`https:`].includes(t.protocol)||e.langfuse.baseUrl.length>2048)throw Error()}catch{return t(`Enter a valid HTTP(S) Base URL.`,`请填写有效的 HTTP(S) Base URL。`)}return null},onSave:async e=>{ue((await y(`tracing/settings`,`PATCH`,e)).config),o(t=>t&&JSON.stringify(t)===JSON.stringify(e)?void 0:t),await r.mutate().catch(()=>{})}}),Z=(0,g.useMemo)(()=>({publicKey:w.trim(),secretKey:E.trim()}),[w,E]),Q=ae({value:Z,dirty:!!(Z.publicKey||Z.secretKey),delayMs:1e3,validate:e=>e.publicKey.length>512||e.secretKey.length>512?t(`Credentials must be at most 512 characters.`,`凭证长度不能超过 512 个字符。`):null,onSave:async e=>{await y(`tracing/langfuse/credentials`,`PUT`,{...e.publicKey?{publicKey:e.publicKey}:{},...e.secretKey?{secretKey:e.secretKey}:{}}),T(t=>t.trim()===e.publicKey?``:t),D(t=>t.trim()===e.secretKey?``:t),await Promise.allSettled([n.mutate(),r.mutate()])}}),$=[X.status,Q.status].some(e=>e===`dirty`||e===`saving`);async function Ce(){V&&await Y(async()=>{let e=await y(`traces/${V}/export`),t=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:`application/json`})),n=document.createElement(`a`);n.href=t,n.download=`trace-${V}.json`,n.click(),URL.revokeObjectURL(t)},t(`Exported`,`已导出`))}return(0,b.jsxs)(re,{className:`space-y-6`,children:[(0,b.jsx)(ne,{title:t(`Runtime tracing`,`运行追踪`),subtitle:t(`Local diagnostics with bounded retention. Enable Langfuse to also export new traces.`,`默认保留有界本地记录;启用 Langfuse 后同时导出新采集的追踪。`),actions:N===`settings`?(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,b.jsx)(`span`,{className:`text-xs text-fg-muted`,children:t(`Changes save automatically`,`修改后自动保存`)}),(0,b.jsx)(ie,{status:X.status,error:X.error})]}):(0,b.jsx)(m,{disabled:K.isValidating,onClick:U,children:t(`Refresh records`,`刷新记录`)})}),fe&&(0,b.jsx)(`p`,{role:pe?`alert`:`status`,className:`text-sm text-fg-muted`,children:fe}),n.error&&(0,b.jsx)(`p`,{role:`alert`,children:String(n.error.message)}),(0,b.jsxs)(`nav`,{"aria-label":t(`Tracing sections`,`追踪页面分区`),className:`flex gap-2 border-b border-edge pb-3`,children:[(0,b.jsx)(m,{"aria-pressed":N===`records`,variant:N===`records`?`primary`:`ghost`,onClick:()=>P(`records`),children:t(`Execution records`,`执行记录`)}),(0,b.jsx)(m,{"aria-pressed":N===`settings`,variant:N===`settings`?`primary`:`ghost`,onClick:()=>P(`settings`),children:t(`Capture settings`,`采集设置`)})]}),N===`settings`&&(C?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`section`,{className:S,onBlurCapture:X.onBlurCapture,children:[(0,b.jsx)(`h2`,{className:`font-medium`,children:t(`Local recording`,`本地记录`)}),X.error&&(0,b.jsx)(m,{variant:`ghost`,onClick:X.retry,children:t(`Retry autosave`,`重试自动保存`)}),(0,b.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:C.enabled,onChange:e=>J(t=>{t.enabled=e.target.checked})}),t(`Record traces`,`记录运行追踪`)]}),(0,b.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-3`,children:[(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Retention (days)`,`保留天数`),(0,b.jsx)(`input`,{className:x,type:`number`,min:1,max:90,value:C.local.retentionDays,onChange:e=>J(t=>{t.local.retentionDays=Number(e.target.value)})})]}),(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Storage budget (MiB)`,`存储上限(MiB)`),(0,b.jsx)(`input`,{className:x,type:`number`,min:16,max:4096,value:C.local.maxStoreMiB,onChange:e=>J(t=>{t.local.maxStoreMiB=Number(e.target.value)})})]}),(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Capture`,`采集内容`),(0,b.jsx)(i,{placeholder:t(`Choose`,`请选择`),allowEmpty:!1,value:C.capture,onChange:e=>J(t=>{t.capture=e}),options:[{value:`metadata`,label:t(`Metadata only`,`仅元数据`)},{value:`redacted`,label:t(`Redacted previews`,`脱敏摘要`)},{value:`detailed`,label:t(`Detailed · 30 minutes`,`详细记录 · 30 分钟`)}]})]})]}),(0,b.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t(`Previews may contain personal content. Secrets and media are filtered; large values are truncated.`,`摘要可能包含个人内容。过滤凭证和媒体,超长内容会截断。`)}),C.detailedUntil&&(0,b.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[t(`Detailed capture expires: `,`详细采集截止:`),new Date(C.detailedUntil).toLocaleString()]}),(0,b.jsxs)(`details`,{children:[(0,b.jsx)(`summary`,{className:`cursor-pointer text-sm`,children:t(`Advanced limits`,`高级限制`)}),(0,b.jsx)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-2`,children:[[`maxTraces`,t(`Trace count`,`Trace 条数`)],[`maxSpans`,t(`Span count`,`Span 条数`)],[`maxTraceKiB`,t(`Per trace (KiB)`,`单 Trace 上限(KiB)`)],[`maxWriteMiBPerMinute`,t(`Write budget (MiB/minute)`,`写入额度(MiB/分钟)`)]].map(([e,t])=>(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t,(0,b.jsx)(`input`,{type:`number`,min:1,className:x,value:C.local[e],onChange:t=>J(n=>{n.local[e]=Number(t.target.value)})})]},e))})]}),r.data?(0,b.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[t(`Disk / payload`,`磁盘 / 数据`),`:`,oe(r.data.local.physicalBytes),` / `,oe(r.data.local.bytes),` · `,r.data.local.traces??0,` traces · `,r.data.local.spans??0,` spans · `,t(`Dropped`,`丢弃`),` `,Number(r.data.local.dropped??0)+Number(r.data.local.queueDropped??0),(r.data.local.paused||r.data.local.unavailable)&&` · ${t(`Recording paused`,`存储暂停`)}`]}):(0,b.jsx)(h,{className:`h-10`}),(r.error||r.data?.local.lastError)&&(0,b.jsx)(`p`,{role:`alert`,className:`text-sm`,children:r.data?.local.lastError||String(r.error.message)}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(m,{disabled:O||$,onClick:()=>void Y(async()=>{await y(`traces/prune`,`POST`)}),children:t(`Clean expired`,`清理过期记录`)}),(0,b.jsx)(m,{disabled:O,onClick:()=>W(!0),children:t(`Clear local traces`,`清空本地追踪`)})]})]}),(0,b.jsxs)(`section`,{className:S,children:[(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,b.jsx)(`h2`,{className:`font-medium`,children:`Langfuse`}),(0,b.jsx)(ie,{status:Q.status,error:Q.error})]}),Q.error&&(0,b.jsx)(m,{variant:`ghost`,onClick:Q.retry,children:t(`Retry autosave`,`重试自动保存`)}),(0,b.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:C.langfuse.enabled,onBlur:X.onBlurCapture,onChange:e=>J(t=>{t.langfuse.enabled=e.target.checked})}),t(`Also export new traces to Langfuse`,`同时导出新采集的追踪到 Langfuse`)]}),(0,b.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,b.jsxs)(`label`,{className:`space-y-1 text-sm sm:col-span-2`,children:[`Base URL`,(0,b.jsx)(`input`,{className:x,type:`url`,value:C.langfuse.baseUrl,onBlur:X.onBlurCapture,onChange:e=>J(t=>{t.langfuse.baseUrl=e.target.value})})]}),(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[`Public Key`,(0,b.jsx)(`input`,{autoComplete:`off`,className:x,value:w,onBlur:Q.onBlurCapture,placeholder:n.data?.credentials.publicKeyConfigured?t(`Configured · leave blank to keep`,`已配置 · 留空保留`):`pk-lf-…`,onChange:e=>T(e.target.value)})]}),(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[`Secret Key`,(0,b.jsx)(`input`,{autoComplete:`new-password`,type:`password`,className:x,value:E,onBlur:Q.onBlurCapture,placeholder:n.data?.credentials.secretKeyConfigured?t(`Configured · leave blank to keep`,`已配置 · 留空保留`):`sk-lf-…`,onChange:e=>D(e.target.value)})]})]}),(0,b.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[t(`Credential sources`,`凭证来源`),`:`,n.data?.credentials.publicKeySource,` / `,n.data?.credentials.secretKeySource,` · URL: `,n.data?.credentials.baseUrlSource]}),r.data&&(0,b.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[r.data.langfuse.state,` · `,t(`Pending`,`待发送`),` `,r.data.langfuse.pending,` · `,t(`Dropped`,`丢弃`),` `,r.data.langfuse.dropped,r.data.langfuse.lastSuccess?` · ${new Date(r.data.langfuse.lastSuccess).toLocaleString()}`:``]}),r.data?.langfuse.lastError&&(0,b.jsx)(`p`,{role:`alert`,className:`text-sm`,children:r.data.langfuse.lastError}),(0,b.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t(`Changes save automatically. Historical traces are not uploaded. Offline exports may be dropped.`,`修改后自动保存。不会上传历史记录;断网或队列满时可能丢弃远端导出。`)}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(m,{disabled:O||$,onClick:()=>void Y(async()=>{if(!(await y(`tracing/langfuse/test`,`POST`)).ok)throw Error(t(`Connection test failed. Check saved configuration and credentials.`,`连接测试失败,请检查已保存的配置和凭证。`))},t(`Diagnostic trace accepted by the ingestion endpoint`,`采集端已接受诊断追踪`)),children:t(`Test connection`,`测试连接`)}),(0,b.jsx)(m,{disabled:O||$,onClick:()=>void Y(async()=>{await y(`tracing/langfuse/credentials`,`DELETE`),T(``),D(``)}),children:t(`Remove saved credentials`,`移除已保存凭证`)})]})]})]}):(0,b.jsx)(se,{})),N===`records`&&(0,b.jsxs)(`section`,{className:S,children:[(0,b.jsx)(`h2`,{className:`font-medium`,children:t(`Recent runs`,`最近执行`)}),(0,b.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Status`,`执行状态`),(0,b.jsx)(i,{placeholder:t(`All statuses`,`全部状态`),allowEmpty:!1,value:A,onChange:e=>{he(e),U()},options:[{value:``,label:t(`All statuses`,`全部状态`)},...[`running`,`success`,`error`,`cancelled`,`suspended`,`interrupted`].map(e=>({value:e,label:t(e,{running:`运行中`,success:`成功`,error:`失败`,cancelled:`已取消`,suspended:`已暂停`,interrupted:`已中断`}[e])}))]})]}),(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Time range`,`时间范围`),(0,b.jsx)(i,{placeholder:t(`Choose`,`请选择`),value:j,allowEmpty:!1,onChange:e=>{ge(e),U()},options:[`1`,`7`,`30`,`90`].map(e=>({value:e,label:`${e} ${t(`days`,`天`)}`}))})]}),(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Page size`,`每页条数`),(0,b.jsx)(i,{placeholder:t(`Choose`,`请选择`),value:F,allowEmpty:!1,onChange:e=>{ve(e),U()},options:[`10`,`20`].map(e=>({value:e,label:`${e} ${t(`records`,`条`)}`}))})]})]}),(0,b.jsxs)(`details`,{children:[(0,b.jsxs)(`summary`,{className:`cursor-pointer text-sm text-fg-muted`,children:[t(`Advanced filters`,`高级筛选`),Object.values(M).some(Boolean)?` · ${t(`Active`,`已启用`)}`:``]}),(0,b.jsx)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-3`,children:[`conversationId`,`runId`,`agentId`].map(e=>(0,b.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[{conversationId:t(`Conversation ID`,`会话 ID`),runId:t(`Run ID`,`执行 ID`),agentId:t(`Agent ID`,`Agent ID`)}[e],(0,b.jsx)(`input`,{"aria-label":e,placeholder:t(`Exact ID`,`输入完整 ID`),className:x,value:M[e],onChange:t=>{_e({...M,[e]:t.target.value}),U()}})]},e))})]}),(0,b.jsxs)(`div`,{role:`region`,"aria-label":t(`Execution results`,`执行结果`),"aria-busy":K.isValidating,className:`h-[24rem] min-h-0 overflow-y-auto overscroll-contain rounded-lg border border-edge sm:h-[28rem]`,children:[K.error&&(0,b.jsx)(`p`,{role:`alert`,className:`p-4 text-sm`,children:K.error.message}),!K.data&&!K.error?(0,b.jsx)(`div`,{className:`space-y-3 p-3`,children:[0,1,2,3,4].map(e=>(0,b.jsx)(h,{className:`h-16`},e))}):(0,b.jsxs)(`div`,{className:`divide-y divide-edge`,children:[K.data?.traces.length===0&&(0,b.jsx)(`p`,{className:`flex h-48 items-center justify-center px-4 text-sm text-fg-muted`,children:t(`No traces in this range`,`此时间范围内暂无记录`)}),K.data?.traces.map(n=>(0,b.jsxs)(`button`,{onClick:()=>H(n.traceId),className:`flex w-full flex-col gap-2 px-3 py-3 text-left text-sm hover:bg-surface-hover sm:flex-row sm:items-center sm:justify-between`,children:[(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsxs)(`p`,{className:`truncate font-medium`,children:[n.name,n.attributes[`xopc.agentId`]?` · ${n.attributes[`xopc.agentId`]}`:``]}),(0,b.jsxs)(`p`,{className:`truncate text-xs text-fg-muted`,children:[new Date(n.startedAt).toLocaleString(e?`zh-CN`:`en-US`),` · `,n.traceId]}),n.stats&&(0,b.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[n.stats.generations,` `,t(`model calls`,`次模型调用`),` · `,n.stats.tokens,` tokens · $`,n.stats.knownCostUsd.toFixed(4),n.stats.unknownCostCalls>0?` · ${t(`partial cost`,`部分成本未知`)}`:``]})]}),(0,b.jsxs)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:[t(n.status,{running:`运行中`,success:`成功`,error:`失败`,cancelled:`已取消`,suspended:`已暂停`,interrupted:`已中断`}[n.status]??n.status),` · `,n.endedAt?`${Math.round(n.endedAt-n.startedAt)} ms`:`—`,n.partialReason?` · ${t(`Partial`,`部分记录`)}`:``]})]},n.traceId))]})]}),(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,b.jsx)(`p`,{"aria-live":`polite`,className:`text-xs text-fg-muted`,children:t(`Page ${L+1} · ${K.data?.traces.length??0} records`,`第 ${L+1} 页 · ${K.data?.traces.length??0} 条`)}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(m,{disabled:L===0||K.isValidating,onClick:()=>R(e=>Math.max(0,e-1)),children:t(`Previous page`,`上一页`)}),(0,b.jsx)(m,{disabled:!K.data?.nextCursor||K.isValidating,onClick:()=>{let e=K.data?.nextCursor;e&&(I(t=>[...t.slice(0,L+1),e]),R(e=>e+1))},children:t(`Next page`,`下一页`)})]})]})]}),(0,b.jsx)(f,{open:!!V,onOpenChange:e=>{e||H(void 0)},children:(0,b.jsxs)(l,{children:[(0,b.jsx)(s,{className:`fixed inset-0 z-[90] bg-black/40`}),(0,b.jsxs)(u,{className:`fixed left-1/2 top-1/2 z-[91] flex h-[min(44rem,calc(100vh-2rem))] w-[min(64rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay p-4`,children:[(0,b.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-3`,children:[(0,b.jsx)(d,{className:`font-medium`,children:t(`Trace details`,`追踪详情`)}),(0,b.jsx)(te,{asChild:!0,children:(0,b.jsx)(m,{children:t(`Close`,`关闭`)})})]}),(0,b.jsx)(c,{className:`shrink-0 truncate text-xs text-fg-muted`,children:V}),(0,b.jsx)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-y-auto py-4`,children:q.error?(0,b.jsx)(`p`,{role:`alert`,children:q.error.message}):q.data?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`p`,{className:`text-sm`,children:[q.data.trace.status,` `,q.data.trace.partialReason&&` · ${q.data.trace.partialReason}`]}),le(q.data.spans).map(e=>(0,b.jsxs)(`details`,{style:{marginLeft:ce(e,q.data.spans)*12},className:`rounded-lg border border-edge p-3 text-sm`,children:[(0,b.jsxs)(`summary`,{className:`cursor-pointer`,children:[e.name,` · `,e.status,` · `,e.endedAt?`${Math.round(e.endedAt-e.startedAt)} ms`:`—`]}),(0,b.jsx)(`pre`,{className:`mt-3 whitespace-pre-wrap break-all text-xs text-fg-muted`,children:JSON.stringify(e.attributes,null,2)})]},e.spanId))]}):(0,b.jsx)(se,{})}),(0,b.jsx)(`div`,{className:`shrink-0 border-t border-edge pt-3`,children:(0,b.jsx)(m,{disabled:!q.data||O,onClick:()=>void Ce(),children:t(`Export JSON`,`导出 JSON`)})})]})]})}),(0,b.jsx)(f,{open:xe,onOpenChange:W,children:(0,b.jsxs)(l,{children:[(0,b.jsx)(s,{className:`fixed inset-0 z-[90] bg-black/40`}),(0,b.jsxs)(u,{className:`fixed left-1/2 top-1/2 z-[91] w-[min(28rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 space-y-4 rounded-xl border border-edge bg-surface-overlay p-5`,children:[(0,b.jsx)(d,{children:t(`Clear local traces?`,`清空本地追踪?`)}),(0,b.jsx)(c,{className:`text-sm text-fg-muted`,children:t(`Removes retained local traces. Conversations, usage records and Langfuse data remain available.`,`删除已保留的本地追踪。会话、用量记录及 Langfuse 数据仍保留。`)}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(m,{disabled:O||$,onClick:()=>void Y(async()=>{await y(`traces`,`DELETE`),W(!1),H(void 0)}),children:t(`Clear`,`清空`)}),(0,b.jsx)(te,{asChild:!0,children:(0,b.jsx)(m,{children:t(`Cancel`,`取消`)})})]})]})]})})]})}export{ue as TracingSettingsPage};
|