crewx 0.8.0-rc.73 → 0.8.0-rc.80
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/bin/crewx-ui.js +2 -1
- package/bin/crewx.js +3 -2
- package/bin/package.json +1 -0
- package/dist/assets/{MarketPage-DxHFpFnR.js → MarketPage-BG8LYbq5.js} +2 -2
- package/dist/assets/PromptTab-Q1ZLQZd2.js +37 -0
- package/dist/assets/_baseUniq-CfnwhEAt.js +1 -0
- package/dist/assets/{arc-Dmx8ZTxZ.js → arc-Cfl3ZQ9G.js} +1 -1
- package/dist/assets/architectureDiagram-Q4EWVU46-D9CCM5P-.js +36 -0
- package/dist/assets/{blockDiagram-WCTKOSBZ-CMtYhNkf.js → blockDiagram-DXYQGD6D-CEqOmDPc.js} +6 -6
- package/dist/assets/c4Diagram-AHTNJAMY-BkPqZwko.js +10 -0
- package/dist/assets/channel-B7E1pJVf.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-BkxR8Cmm.js → chunk-4BX2VUAB-DgGVc5tv.js} +1 -1
- package/dist/assets/chunk-4TB4RGXK-DUj02i1d.js +206 -0
- package/dist/assets/{chunk-55IACEB6-Cmubow9l.js → chunk-55IACEB6-Cktu6bad.js} +1 -1
- package/dist/assets/{chunk-KX2RTZJC-CkIPwigo.js → chunk-EDXVE4YY-CyM0nBqZ.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-W-6GBBEF.js → chunk-FMBD7UC4-BEW-bUX8.js} +1 -1
- package/dist/assets/chunk-OYMX7WX6-DrRomN-U.js +231 -0
- package/dist/assets/{chunk-QZHKN3VN-C_Z2h6SV.js → chunk-QZHKN3VN-7m4Pka1V.js} +1 -1
- package/dist/assets/{chunk-JSJVCQXG-Dpd8Rsxy.js → chunk-YZCP3GAM-BP-Fc2gr.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-ChuDjhRT.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-ChuDjhRT.js +1 -0
- package/dist/assets/clone-Dh7kB3jI.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-DAgk-d4m.js → cose-bilkent-S5V4N54A-CB_h7KXw.js} +1 -1
- package/dist/assets/{cytoscape.esm-CyJtwmzi.js → cytoscape.esm-BiciSPf8.js} +4 -4
- package/dist/assets/dagre-KV5264BT-DqTucq98.js +4 -0
- package/dist/assets/diagram-5BDNPKRD-C1UbzRDK.js +10 -0
- package/dist/assets/diagram-G4DWMVQ6-rO8KZapy.js +24 -0
- package/dist/assets/diagram-MMDJMWI5-D9OtW9UA.js +43 -0
- package/dist/assets/diagram-TYMM5635-DXPL6Cxn.js +24 -0
- package/dist/assets/erDiagram-SMLLAGMA-ufSvqdEs.js +85 -0
- package/dist/assets/flowDiagram-DWJPFMVM-CeANSuzQ.js +162 -0
- package/dist/assets/ganttDiagram-T4ZO3ILL-BOnZW3lF.js +292 -0
- package/dist/assets/gitGraphDiagram-UUTBAWPF-UVJUFIzC.js +106 -0
- package/dist/assets/graph-Cy8o6Kbg.js +1 -0
- package/dist/assets/infoDiagram-42DDH7IO-Fraky2et.js +2 -0
- package/dist/assets/{ishikawaDiagram-PHBUUO56-DxJHBQVB.js → ishikawaDiagram-UXIWVN3A-D_gAjYgx.js} +2 -2
- package/dist/assets/journeyDiagram-VCZTEJTY-Baw2yj6e.js +139 -0
- package/dist/assets/{kanban-definition-K7BYSVSG-Wgu-RtYb.js → kanban-definition-6JOO6SKY-CSs0HRfJ.js} +8 -8
- package/dist/assets/katex-DkKDou_j.js +257 -0
- package/dist/assets/layout-DpjWhr0_.js +1 -0
- package/dist/assets/{linear-_1f4nVD8.js → linear-BvbchCJk.js} +1 -1
- package/dist/assets/main-2Ng-WP0F.js +1166 -0
- package/dist/assets/main-Bz_K3ydx.css +10 -0
- package/dist/assets/min-D9b5jXAX.js +1 -0
- package/dist/assets/mindmap-definition-QFDTVHPH-C3fg2OgI.js +96 -0
- package/dist/assets/pieDiagram-DEJITSTG-92P2CeYt.js +30 -0
- package/dist/assets/{quadrantDiagram-337W2JSQ-7DvflWt1.js → quadrantDiagram-34T5L4WZ-Bzeq6Vmw.js} +1 -1
- package/dist/assets/requirementDiagram-MS252O5E-BJ63rbf0.js +84 -0
- package/dist/assets/{sankeyDiagram-WA2Y5GQK-CvFx9RqS.js → sankeyDiagram-XADWPNL6-BOqvJwAg.js} +1 -1
- package/dist/assets/sequenceDiagram-FGHM5R23-WFS0ESt8.js +157 -0
- package/dist/assets/stateDiagram-FHFEXIEX-C1eP24Ij.js +1 -0
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-BpKw81Zb.js +1 -0
- package/dist/assets/timeline-definition-GMOUNBTQ-C2oYm2sQ.js +120 -0
- package/dist/assets/{vennDiagram-LZ73GAT5-Du7imP60.js → vennDiagram-DHZGUBPP-BqbVnqSb.js} +5 -5
- package/dist/assets/wardley-RL74JXVD-DysYcg9r.js +162 -0
- package/dist/assets/wardleyDiagram-NUSXRM2D-DzJHhO-i.js +20 -0
- package/dist/assets/xychartDiagram-5P7HB3ND-DHgLAveV.js +7 -0
- package/dist/index.html +2 -2
- package/{packages/cli/dist → dist-server}/package.json +1 -1
- package/dist-server/packages/sdk/src/adapter/context-builder.js +86 -0
- package/dist-server/packages/sdk/src/adapter/scoped-store.js +42 -0
- package/dist-server/packages/sdk/src/adapter/types.js +22 -0
- package/dist-server/packages/sdk/src/agent/resolver.js +45 -0
- package/dist-server/packages/sdk/src/config/loader.js +94 -0
- package/dist-server/packages/sdk/src/conversation/sqlite-provider.js +177 -0
- package/dist-server/packages/sdk/src/conversation/to-template-messages.js +33 -0
- package/dist-server/packages/sdk/src/conversation/types.js +9 -0
- package/dist-server/packages/sdk/src/events/TypedEventEmitter.js +64 -0
- package/dist-server/packages/sdk/src/events/types.js +8 -0
- package/dist-server/packages/sdk/src/facade/Crewx.js +1298 -0
- package/dist-server/packages/sdk/src/{services/layout-loader.service.js → layout/loader.js} +87 -165
- package/dist-server/packages/sdk/src/{services/props-validator.service.js → layout/props-validator.js} +26 -63
- package/dist-server/packages/sdk/src/layout/renderer.js +192 -0
- package/dist-server/packages/sdk/src/{types/layout.types.js → layout/types.js} +4 -4
- package/dist-server/packages/sdk/src/parsers/claude.parser.js +15 -1
- package/dist-server/packages/sdk/src/parsers/codex.parser.js +2 -2
- package/dist-server/packages/sdk/src/parsers/opencode.parser.js +75 -0
- package/dist-server/packages/sdk/src/parsers/router.js +55 -0
- package/dist-server/packages/sdk/src/platform/NodeFsAdapter.js +37 -0
- package/dist-server/packages/sdk/src/plugin/plugin-provider.js +206 -0
- package/dist-server/packages/sdk/src/plugin/types.js +8 -0
- package/dist-server/packages/sdk/src/plugin.js +28 -0
- package/dist-server/packages/sdk/src/plugins/conversation.js +58 -0
- package/dist-server/packages/sdk/src/provider/bridge.js +380 -0
- package/dist-server/packages/sdk/src/provider/parse-usage.js +82 -0
- package/dist-server/packages/sdk/src/provider/register-api.js +23 -0
- package/dist-server/packages/sdk/src/provider/vercel-runtime.js +346 -0
- package/dist-server/packages/sdk/src/remote/remote-agent-manager.js +197 -0
- package/dist-server/packages/sdk/src/remote/remote-provider.js +140 -0
- package/dist-server/packages/sdk/src/remote/remote-transport.js +82 -0
- package/dist-server/packages/sdk/src/remote/types.js +8 -0
- package/dist-server/packages/sdk/src/server/auth.js +34 -0
- package/dist-server/packages/sdk/src/server/handler.js +74 -0
- package/dist-server/packages/sdk/src/server/tool-adapter.js +94 -0
- package/dist-server/packages/sdk/src/template/engine.js +136 -0
- package/dist-server/packages/sdk/src/template/helpers/exec.js +229 -0
- package/dist-server/packages/sdk/src/template/helpers/fenced_code.js +19 -0
- package/dist-server/packages/sdk/src/template/helpers/format-conversation.js +52 -0
- package/dist-server/packages/sdk/src/template/helpers/include.js +22 -0
- package/dist-server/packages/sdk/src/template/helpers/p1p2.js +89 -0
- package/dist-server/packages/sdk/src/template/loader/DocumentLoader.js +127 -0
- package/dist-server/packages/sdk/src/{core/providers/base-ai.types.js → template/types.js} +3 -0
- package/dist-server/packages/sdk/src/types/index.js +31 -0
- package/dist-server/packages/sdk/src/types/task-log.types.js +3 -0
- package/dist-server/packages/sdk/src/utils/glob-match.js +41 -0
- package/dist-server/packages/sdk/src/utils/id.js +49 -0
- package/dist-server/packages/sdk/src/utils/timestamp.js +12 -0
- package/dist-server/packages/sdk/src/{core → utils}/workspace.js +3 -28
- package/dist-server/src/server/adapters/adapter.module.js +35 -0
- package/dist-server/src/server/adapters/adapter.service.js +79 -0
- package/dist-server/src/server/adapters/http-router.service.js +91 -0
- package/dist-server/src/server/app.module.js +64 -55
- package/dist-server/src/server/bootstrap/crewx-server.js +32 -0
- package/dist-server/src/server/common/decorators/project.decorator.js +5 -2
- package/dist-server/src/server/common/decorators/workspace.decorator.js +5 -2
- package/dist-server/src/server/common/interceptor/api-id-header.interceptor.js +11 -8
- package/dist-server/src/server/common/interceptor/http-logging.interceptor.js +13 -10
- package/dist-server/src/server/common/limits/defaults.js +13 -0
- package/dist-server/src/server/common/limits/limits-provider.js +6 -0
- package/{packages/cli/dist/health.controller.js → dist-server/src/server/common/limits/limits.controller.js} +21 -15
- package/dist-server/src/server/common/limits/limits.module.js +24 -0
- package/dist-server/src/server/common/limits/local-limits.provider.js +27 -0
- package/dist-server/src/server/common/middleware/workspace.middleware.js +51 -15
- package/dist-server/src/server/common/workspace-context.store.js +11 -6
- package/dist-server/src/server/domain/agent/agent.controller.js +36 -33
- package/dist-server/src/server/domain/agent/agent.module.js +17 -13
- package/dist-server/src/server/domain/agent/agent.service.js +89 -52
- package/dist-server/src/server/domain/agent/agent.types.js +2 -1
- package/dist-server/src/server/domain/agent/dto/create-agent.dto.js +31 -27
- package/dist-server/src/server/domain/agent/dto/preview-prompt.dto.js +27 -23
- package/dist-server/src/server/domain/agent/dto/update-agent.dto.js +28 -24
- package/dist-server/src/server/domain/agent/template-processor.service.js +12 -6
- package/dist-server/src/server/domain/box/box.controller.js +29 -26
- package/dist-server/src/server/domain/box/box.module.js +11 -8
- package/dist-server/src/server/domain/box/box.service.js +14 -11
- package/dist-server/src/server/domain/box/dto/create-box.dto.js +31 -27
- package/dist-server/src/server/domain/cli/cli.controller.js +24 -21
- package/dist-server/src/server/domain/cli/cli.module.js +11 -8
- package/dist-server/src/server/domain/cli/cli.service.js +30 -21
- package/dist-server/src/server/domain/cli/dto/update-cli.dto.js +13 -9
- package/dist-server/src/server/domain/doc/doc.controller.js +37 -21
- package/dist-server/src/server/domain/doc/doc.module.js +11 -8
- package/dist-server/src/server/domain/doc/doc.service.js +85 -40
- package/dist-server/src/server/domain/doc/dto/doc.dto.js +40 -13
- package/dist-server/src/server/domain/document/document.controller.js +19 -16
- package/dist-server/src/server/domain/document/document.module.js +12 -9
- package/dist-server/src/server/domain/document/document.service.js +42 -36
- package/dist-server/src/server/domain/document/dto/register-document.dto.js +10 -6
- package/dist-server/src/server/domain/fs/dto/tree-query.dto.js +35 -0
- package/dist-server/src/server/domain/fs/fs.controller.js +44 -0
- package/dist-server/{domain/cli/cli.module.js → src/server/domain/fs/fs.module.js} +14 -10
- package/dist-server/src/server/domain/fs/fs.service.js +170 -0
- package/dist-server/src/server/domain/git/git.module.js +10 -7
- package/dist-server/src/server/domain/git/git.service.js +47 -11
- package/dist-server/src/server/domain/health/health.controller.js +11 -8
- package/dist-server/src/server/domain/health/health.module.js +9 -6
- package/dist-server/src/server/domain/knowledge/dto/graph-knowledge.dto.js +10 -6
- package/dist-server/src/server/domain/knowledge/dto/knowledge.dto.js +31 -24
- package/dist-server/src/server/domain/knowledge/knowledge.controller.js +38 -35
- package/dist-server/src/server/domain/knowledge/knowledge.module.js +11 -8
- package/dist-server/src/server/domain/knowledge/knowledge.service.js +49 -46
- package/dist-server/src/server/domain/mcp/crewx-tool.factory.js +166 -76
- package/dist-server/src/server/domain/mcp/mcp-auth.guard.js +11 -8
- package/dist-server/src/server/domain/mcp/mcp.constants.js +4 -1
- package/dist-server/src/server/domain/mcp/mcp.controller.js +17 -14
- package/dist-server/src/server/domain/mcp/mcp.dto.js +4 -1
- package/dist-server/src/server/domain/mcp/mcp.module.js +18 -15
- package/dist-server/src/server/domain/mcp/mcp.service.js +23 -20
- package/dist-server/src/server/domain/message/dto/list-messages.dto.js +27 -23
- package/dist-server/src/server/domain/message/dto/send-message.dto.js +23 -13
- package/dist-server/src/server/domain/message/message.controller.js +30 -27
- package/dist-server/src/server/domain/message/message.module.js +15 -10
- package/dist-server/src/server/domain/message/message.service.js +34 -41
- package/dist-server/src/server/domain/onboarding/onboarding.controller.js +25 -22
- package/dist-server/src/server/domain/onboarding/onboarding.module.js +13 -10
- package/dist-server/src/server/domain/onboarding/onboarding.service.js +25 -22
- package/dist-server/src/server/domain/onboarding/onboarding.types.js +2 -1
- package/dist-server/src/server/domain/onboarding/presets/custom.js +4 -1
- package/dist-server/src/server/domain/onboarding/presets/dev-team.js +4 -1
- package/dist-server/src/server/domain/onboarding/presets/index.js +14 -11
- package/dist-server/src/server/domain/onboarding/presets/marketing-team.js +4 -1
- package/dist-server/src/server/domain/onboarding/presets/planning-team.js +4 -1
- package/dist-server/src/server/domain/onboarding/presets/solo.js +4 -1
- package/dist-server/src/server/domain/project/dto/create-project.dto.js +20 -16
- package/dist-server/src/server/domain/project/dto/update-project.dto.js +26 -22
- package/dist-server/src/server/domain/project/project.controller.js +34 -31
- package/dist-server/src/server/domain/project/project.module.js +12 -9
- package/dist-server/src/server/domain/project/project.service.js +19 -16
- package/dist-server/src/server/domain/skill/dto/add-registry.dto.js +9 -5
- package/dist-server/src/server/domain/skill/dto/install-skill.dto.js +12 -8
- package/dist-server/src/server/domain/skill/skill.controller.js +39 -36
- package/dist-server/src/server/domain/skill/skill.module.js +12 -9
- package/dist-server/src/server/domain/skill/skill.service.js +108 -72
- package/dist-server/src/server/domain/task/dto/all-tasks.dto.js +21 -17
- package/dist-server/src/server/domain/task/dto/list-tasks.dto.js +31 -27
- package/dist-server/src/server/domain/task/dto/search-tasks.dto.js +28 -24
- package/dist-server/src/server/domain/task/dto/send-message.dto.js +13 -9
- package/dist-server/src/server/domain/task/dto/task-status.dto.js +15 -11
- package/dist-server/src/server/domain/task/dto/workspace-usage.dto.js +7 -2
- package/dist-server/src/server/domain/task/task.constants.js +5 -0
- package/dist-server/src/server/domain/task/task.controller.js +67 -55
- package/dist-server/src/server/domain/task/task.module.js +11 -8
- package/dist-server/src/server/domain/task/task.service.js +82 -53
- package/dist-server/src/server/domain/thread/dto/build-context.dto.js +20 -16
- package/dist-server/src/server/domain/thread/dto/list-messages.dto.js +23 -19
- package/dist-server/src/server/domain/thread/dto/list-threads.dto.js +31 -27
- package/dist-server/src/server/domain/thread/dto/search-threads.dto.js +5 -1
- package/dist-server/src/server/domain/thread/thread.controller.js +43 -40
- package/dist-server/src/server/domain/thread/thread.module.js +13 -10
- package/dist-server/src/server/domain/thread/thread.service.js +19 -16
- package/dist-server/src/server/domain/usage/usage.controller.js +39 -36
- package/dist-server/src/server/domain/usage/usage.module.js +11 -8
- package/dist-server/src/server/domain/usage/usage.service.js +48 -12
- package/dist-server/src/server/domain/usage/usage.types.js +4 -1
- package/dist-server/src/server/domain/wbs/wbs.controller.js +12 -9
- package/dist-server/src/server/domain/wbs/wbs.module.js +11 -8
- package/dist-server/src/server/domain/wbs/wbs.service.js +16 -13
- package/dist-server/src/server/domain/workflow/workflow.controller.js +16 -13
- package/dist-server/src/server/domain/workflow/workflow.module.js +11 -8
- package/dist-server/src/server/domain/workflow/workflow.service.js +59 -23
- package/dist-server/src/server/domain/workspace/dto/create-workspace.dto.js +45 -0
- package/dist-server/src/server/domain/workspace/dto/switch-workspace.dto.js +10 -6
- package/dist-server/src/server/domain/workspace/dto/workspace-info.dto.js +2 -1
- package/dist-server/src/server/domain/workspace/workspace.controller.js +35 -17
- package/dist-server/src/server/domain/workspace/workspace.module.js +12 -9
- package/dist-server/src/server/domain/workspace/workspace.service.js +108 -22
- package/dist-server/src/server/main.js +80 -24
- package/dist-server/src/server/modules/crewx.module.js +50 -0
- package/dist-server/src/server/repository/base-sqlite.repository.js +19 -11
- package/dist-server/src/server/repository/box.repository.js +26 -23
- package/dist-server/src/server/repository/message.repository.js +9 -6
- package/dist-server/src/server/repository/project.repository.js +33 -9
- package/dist-server/src/server/repository/repository.module.js +20 -17
- package/dist-server/src/server/repository/request-log.repository.js +10 -7
- package/dist-server/src/server/repository/task.repository.js +22 -19
- package/dist-server/src/server/repository/thread.repository.js +19 -16
- package/dist-server/src/server/shared/crewx-home.js +40 -4
- package/dist-server/src/server/shared/crewx-state.js +44 -7
- package/dist-server/src/server/utils/tokenizer.js +6 -3
- package/package.json +53 -47
- package/packages/cli/dist/bootstrap/crewx-cli.d.ts +11 -0
- package/packages/cli/dist/bootstrap/crewx-cli.js +31 -0
- package/packages/cli/dist/builtin.d.ts +15 -0
- package/packages/cli/dist/{cli/builtin.handler.js → builtin.js} +21 -7
- package/packages/cli/dist/commands/agent.d.ts +12 -0
- package/packages/cli/dist/commands/agent.js +246 -0
- package/packages/cli/dist/commands/doctor.d.ts +12 -0
- package/packages/cli/dist/commands/doctor.js +190 -0
- package/packages/cli/dist/commands/execute.d.ts +21 -0
- package/packages/cli/dist/commands/execute.js +117 -0
- package/packages/cli/dist/commands/hook/install.d.ts +21 -0
- package/packages/cli/dist/commands/hook/install.js +175 -0
- package/packages/cli/dist/commands/hook/paths.d.ts +19 -0
- package/packages/cli/dist/commands/hook/paths.js +94 -0
- package/packages/cli/dist/commands/hook/status.d.ts +7 -0
- package/packages/cli/dist/commands/hook/status.js +86 -0
- package/packages/cli/dist/commands/hook/uninstall.d.ts +8 -0
- package/packages/cli/dist/commands/hook/uninstall.js +71 -0
- package/packages/cli/dist/commands/hook-dispatch.d.ts +15 -0
- package/packages/cli/dist/commands/hook-dispatch.js +180 -0
- package/packages/cli/dist/commands/init.d.ts +24 -0
- package/packages/cli/dist/commands/init.js +133 -0
- package/packages/cli/dist/commands/kill.d.ts +12 -0
- package/packages/cli/dist/commands/kill.js +49 -0
- package/packages/cli/dist/commands/log.d.ts +13 -0
- package/packages/cli/dist/commands/log.js +97 -0
- package/packages/cli/dist/commands/parse-agent-message.d.ts +31 -0
- package/packages/cli/dist/commands/parse-agent-message.js +52 -0
- package/packages/cli/dist/commands/parse-common-flags.d.ts +36 -0
- package/packages/cli/dist/commands/parse-common-flags.js +105 -0
- package/packages/cli/dist/commands/ps.d.ts +12 -0
- package/packages/cli/dist/commands/ps.js +71 -0
- package/packages/cli/dist/commands/query.d.ts +21 -0
- package/packages/cli/dist/commands/query.js +117 -0
- package/packages/cli/dist/commands/result.d.ts +13 -0
- package/packages/cli/dist/commands/result.js +73 -0
- package/packages/cli/dist/commands/slack.d.ts +12 -0
- package/packages/cli/dist/commands/slack.js +559 -0
- package/packages/cli/dist/commands/task-db.d.ts +33 -0
- package/packages/cli/dist/commands/task-db.js +107 -0
- package/packages/cli/dist/examples/deny-secrets-plugin.d.ts +22 -0
- package/packages/cli/dist/examples/deny-secrets-plugin.js +40 -0
- package/packages/cli/dist/index.d.ts +1 -0
- package/packages/cli/dist/index.js +5 -0
- package/packages/cli/dist/logging.d.ts +21 -0
- package/packages/cli/dist/logging.js +86 -0
- package/packages/cli/dist/main.d.ts +10 -0
- package/packages/cli/dist/main.js +246 -256
- package/packages/cli/dist/plugins/examples/echo-hook.d.ts +24 -0
- package/packages/cli/dist/plugins/examples/echo-hook.js +60 -0
- package/packages/cli/dist/plugins/examples/verify-echo-hook.d.ts +8 -0
- package/packages/cli/dist/plugins/examples/verify-echo-hook.js +47 -0
- package/packages/cli/dist/register-builtin-tools.d.ts +5 -0
- package/packages/cli/dist/register-builtin-tools.js +9 -0
- package/packages/cli/dist/slack/file-download.d.ts +17 -0
- package/packages/cli/dist/slack/file-download.js +134 -0
- package/packages/cli/dist/slack/markdown.d.ts +5 -0
- package/packages/cli/dist/slack/markdown.js +33 -0
- package/packages/cli/dist/utils/env-defaults.d.ts +5 -0
- package/packages/cli/dist/utils/env-defaults.js +10 -0
- package/packages/cli/dist/utils/version.d.ts +1 -0
- package/packages/cli/dist/utils/version.js +28 -0
- package/packages/cli/package.json +24 -107
- package/scripts/emit-dist-server-package-json.mjs +7 -0
- package/scripts/snapshot-msg-list.sh +0 -0
- package/server.js +4 -8
- package/bin/__tests__/crewx-entrypoint.test.ts +0 -412
- package/dist/assets/PromptTab-Cl4hEcj6.js +0 -239
- package/dist/assets/_basePickBy-CIn3aRIg.js +0 -1
- package/dist/assets/_baseUniq-CYZbrWFO.js +0 -1
- package/dist/assets/architectureDiagram-2XIMDMQ5-BawiO4bf.js +0 -36
- package/dist/assets/c4Diagram-IC4MRINW-CGRC1DYJ.js +0 -10
- package/dist/assets/channel-DtsatVUt.js +0 -1
- package/dist/assets/chunk-NQ4KR5QH-BhQPlfkZ.js +0 -220
- package/dist/assets/chunk-WL4C6EOR-G0ASIEcD.js +0 -189
- package/dist/assets/classDiagram-VBA2DB6C-BLdjbUAr.js +0 -1
- package/dist/assets/classDiagram-v2-RAHNMMFH-BLdjbUAr.js +0 -1
- package/dist/assets/clone-CNwv1uRq.js +0 -1
- package/dist/assets/dagre-KLK3FWXG-CLF8khdC.js +0 -4
- package/dist/assets/diagram-E7M64L7V-UTK8l3ST.js +0 -24
- package/dist/assets/diagram-IFDJBPK2-DcWOdt3o.js +0 -43
- package/dist/assets/diagram-P4PSJMXO-Cs9Vu1HA.js +0 -24
- package/dist/assets/erDiagram-INFDFZHY-Dcq1jGSj.js +0 -70
- package/dist/assets/flowDiagram-PKNHOUZH-DNeLhY5Q.js +0 -162
- package/dist/assets/ganttDiagram-A5KZAMGK-9tn43AJb.js +0 -292
- package/dist/assets/gitGraphDiagram-K3NZZRJ6-BfgbOY3u.js +0 -65
- package/dist/assets/graph-BxHXjdsV.js +0 -1
- package/dist/assets/infoDiagram-LFFYTUFH-CYK0M60v.js +0 -2
- package/dist/assets/journeyDiagram-4ABVD52K-C8bABukt.js +0 -139
- package/dist/assets/katex-DwBr_Loo.js +0 -265
- package/dist/assets/layout-DyXutG74.js +0 -1
- package/dist/assets/main-3MUFzsZe.js +0 -868
- package/dist/assets/main-BO5UgdV0.css +0 -10
- package/dist/assets/mindmap-definition-YRQLILUH-BLqsHCm_.js +0 -68
- package/dist/assets/pieDiagram-SKSYHLDU-D93g5Sri.js +0 -30
- package/dist/assets/requirementDiagram-Z7DCOOCP-nsTpBz9X.js +0 -73
- package/dist/assets/sequenceDiagram-2WXFIKYE-DV5oHqUm.js +0 -145
- package/dist/assets/stateDiagram-RAJIS63D-BIet3J-V.js +0 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-Cu7du3eR.js +0 -1
- package/dist/assets/timeline-definition-YZTLITO2-qohiRjx_.js +0 -61
- package/dist/assets/treemap-KZPCXAKY-PT2vpmzj.js +0 -162
- package/dist/assets/xychartDiagram-JWTSCODW-Bu5I9fIP.js +0 -7
- package/dist-server/app.module.js +0 -42
- package/dist-server/domain/agent/agent.controller.js +0 -105
- package/dist-server/domain/agent/agent.module.js +0 -20
- package/dist-server/domain/agent/agent.service.js +0 -225
- package/dist-server/domain/agent/agent.types.js +0 -2
- package/dist-server/domain/agent/dto/create-agent.dto.js +0 -9
- package/dist-server/domain/agent/dto/update-agent.dto.js +0 -8
- package/dist-server/domain/cli/cli.controller.js +0 -64
- package/dist-server/domain/cli/cli.service.js +0 -288
- package/dist-server/domain/cli/dto/update-cli.dto.js +0 -3
- package/dist-server/domain/doc/doc.controller.js +0 -72
- package/dist-server/domain/doc/doc.module.js +0 -18
- package/dist-server/domain/doc/doc.service.js +0 -312
- package/dist-server/domain/doc/dto/doc.dto.js +0 -8
- package/dist-server/domain/git/git.module.js +0 -17
- package/dist-server/domain/git/git.service.js +0 -190
- package/dist-server/domain/knowledge/dto/graph-knowledge.dto.js +0 -6
- package/dist-server/domain/knowledge/dto/knowledge.dto.js +0 -17
- package/dist-server/domain/knowledge/knowledge.controller.js +0 -99
- package/dist-server/domain/knowledge/knowledge.module.js +0 -18
- package/dist-server/domain/knowledge/knowledge.service.js +0 -511
- package/dist-server/domain/mcp/crewx-tool.factory.js +0 -85
- package/dist-server/domain/mcp/mcp-auth.guard.js +0 -58
- package/dist-server/domain/mcp/mcp.constants.js +0 -1
- package/dist-server/domain/mcp/mcp.controller.js +0 -70
- package/dist-server/domain/mcp/mcp.dto.js +0 -9
- package/dist-server/domain/mcp/mcp.module.js +0 -35
- package/dist-server/domain/mcp/mcp.service.js +0 -412
- package/dist-server/domain/project/dto/create-project.dto.js +0 -5
- package/dist-server/domain/project/dto/update-project.dto.js +0 -6
- package/dist-server/domain/project/project.controller.js +0 -126
- package/dist-server/domain/project/project.module.js +0 -19
- package/dist-server/domain/project/project.service.js +0 -212
- package/dist-server/domain/task/dto/list-tasks.dto.js +0 -9
- package/dist-server/domain/task/dto/project-usage.dto.js +0 -33
- package/dist-server/domain/task/dto/search-tasks.dto.js +0 -12
- package/dist-server/domain/task/dto/send-message.dto.js +0 -4
- package/dist-server/domain/task/dto/task-status.dto.js +0 -5
- package/dist-server/domain/task/task.controller.js +0 -117
- package/dist-server/domain/task/task.module.js +0 -18
- package/dist-server/domain/task/task.service.js +0 -802
- package/dist-server/domain/thread/dto/list-threads.dto.js +0 -9
- package/dist-server/domain/thread/dto/search-threads.dto.js +0 -9
- package/dist-server/domain/thread/dto/send-message.dto.js +0 -6
- package/dist-server/domain/thread/thread.controller.js +0 -108
- package/dist-server/domain/thread/thread.module.js +0 -18
- package/dist-server/domain/thread/thread.service.js +0 -603
- package/dist-server/domain/usage/usage.controller.js +0 -74
- package/dist-server/domain/usage/usage.module.js +0 -18
- package/dist-server/domain/usage/usage.service.js +0 -221
- package/dist-server/domain/usage/usage.types.js +0 -1
- package/dist-server/domain/wbs/wbs.controller.js +0 -48
- package/dist-server/domain/wbs/wbs.module.js +0 -18
- package/dist-server/domain/wbs/wbs.service.js +0 -95
- package/dist-server/main.js +0 -54
- package/dist-server/packages/sdk/schema/api-provider-config.json +0 -138
- package/dist-server/packages/sdk/src/boxing/box-storage.interface.js +0 -7
- package/dist-server/packages/sdk/src/boxing/box.service.js +0 -75
- package/dist-server/packages/sdk/src/boxing/box.types.js +0 -6
- package/dist-server/packages/sdk/src/boxing/context-builder.js +0 -97
- package/dist-server/packages/sdk/src/boxing/index.js +0 -17
- package/dist-server/packages/sdk/src/boxing/tokenizer.js +0 -21
- package/dist-server/packages/sdk/src/config/api-provider-parser.js +0 -334
- package/dist-server/packages/sdk/src/config/log.config.js +0 -19
- package/dist-server/packages/sdk/src/config/pricing.js +0 -87
- package/dist-server/packages/sdk/src/config/timeout.config.js +0 -33
- package/dist-server/packages/sdk/src/config/yaml-loader.js +0 -228
- package/dist-server/packages/sdk/src/constants/index.js +0 -7
- package/dist-server/packages/sdk/src/constants.js +0 -17
- package/dist-server/packages/sdk/src/conversation/conversation-config.js +0 -21
- package/dist-server/packages/sdk/src/core/agent/agent-factory.js +0 -120
- package/dist-server/packages/sdk/src/core/agent/agent-runtime.js +0 -241
- package/dist-server/packages/sdk/src/core/agent/event-bus.js +0 -63
- package/dist-server/packages/sdk/src/core/agent/index.js +0 -15
- package/dist-server/packages/sdk/src/core/id.js +0 -45
- package/dist-server/packages/sdk/src/core/parallel/helpers.js +0 -253
- package/dist-server/packages/sdk/src/core/parallel/index.js +0 -10
- package/dist-server/packages/sdk/src/core/parallel/parallel-runner.js +0 -244
- package/dist-server/packages/sdk/src/core/providers/ai-provider.interface.js +0 -22
- package/dist-server/packages/sdk/src/core/providers/base-ai.provider.js +0 -1479
- package/dist-server/packages/sdk/src/core/providers/claude.provider.js +0 -206
- package/dist-server/packages/sdk/src/core/providers/codex.provider.js +0 -173
- package/dist-server/packages/sdk/src/core/providers/copilot.provider.js +0 -171
- package/dist-server/packages/sdk/src/core/providers/dynamic-provider.factory.js +0 -693
- package/dist-server/packages/sdk/src/core/providers/gemini.provider.js +0 -116
- package/dist-server/packages/sdk/src/core/providers/index.js +0 -19
- package/dist-server/packages/sdk/src/core/providers/mock.provider.js +0 -67
- package/dist-server/packages/sdk/src/core/providers/provider-factory.js +0 -83
- package/dist-server/packages/sdk/src/core/providers/tool-call.types.js +0 -2
- package/dist-server/packages/sdk/src/core/remote/index.js +0 -24
- package/dist-server/packages/sdk/src/core/remote/remote-agent-manager.js +0 -279
- package/dist-server/packages/sdk/src/core/remote/remote-transport.js +0 -80
- package/dist-server/packages/sdk/src/core/remote/types.js +0 -8
- package/dist-server/packages/sdk/src/index.js +0 -162
- package/dist-server/packages/sdk/src/knowledge/DocumentManager.js +0 -118
- package/dist-server/packages/sdk/src/parsers/index.js +0 -52
- package/dist-server/packages/sdk/src/schema/skills-parser.js +0 -604
- package/dist-server/packages/sdk/src/schema/skills.types.js +0 -68
- package/dist-server/packages/sdk/src/schemas/api-provider.schema.js +0 -54
- package/dist-server/packages/sdk/src/services/layout-renderer.service.js +0 -384
- package/dist-server/packages/sdk/src/skills/adapter/claude-skill-adapter.js +0 -269
- package/dist-server/packages/sdk/src/skills/index.js +0 -40
- package/dist-server/packages/sdk/src/skills/runtime/progressive-loader.js +0 -247
- package/dist-server/packages/sdk/src/skills/runtime/runtime-requirements-validator.js +0 -297
- package/dist-server/packages/sdk/src/types/agent.types.js +0 -17
- package/dist-server/packages/sdk/src/types/api-provider.types.js +0 -90
- package/dist-server/packages/sdk/src/types/provider.types.js +0 -2
- package/dist-server/packages/sdk/src/types/skill-runtime.types.js +0 -57
- package/dist-server/packages/sdk/src/types/structured-payload.types.js +0 -89
- package/dist-server/packages/sdk/src/types/template.types.js +0 -8
- package/dist-server/packages/sdk/src/utils/api-provider-normalizer.js +0 -134
- package/dist-server/packages/sdk/src/utils/base-message-formatter.js +0 -267
- package/dist-server/packages/sdk/src/utils/error-utils.js +0 -29
- package/dist-server/packages/sdk/src/utils/mention-parser.js +0 -136
- package/packages/cli/dist/ai-provider.service.d.ts +0 -36
- package/packages/cli/dist/ai-provider.service.js +0 -315
- package/packages/cli/dist/ai-provider.service.js.map +0 -1
- package/packages/cli/dist/ai.service.d.ts +0 -17
- package/packages/cli/dist/ai.service.js +0 -51
- package/packages/cli/dist/ai.service.js.map +0 -1
- package/packages/cli/dist/app.module.d.ts +0 -5
- package/packages/cli/dist/app.module.js +0 -165
- package/packages/cli/dist/app.module.js.map +0 -1
- package/packages/cli/dist/cli/agent.handler.d.ts +0 -2
- package/packages/cli/dist/cli/agent.handler.js +0 -186
- package/packages/cli/dist/cli/agent.handler.js.map +0 -1
- package/packages/cli/dist/cli/builtin.handler.d.ts +0 -3
- package/packages/cli/dist/cli/builtin.handler.js.map +0 -1
- package/packages/cli/dist/cli/chat.handler.d.ts +0 -20
- package/packages/cli/dist/cli/chat.handler.js +0 -446
- package/packages/cli/dist/cli/chat.handler.js.map +0 -1
- package/packages/cli/dist/cli/cli.handler.d.ts +0 -4
- package/packages/cli/dist/cli/cli.handler.js +0 -119
- package/packages/cli/dist/cli/cli.handler.js.map +0 -1
- package/packages/cli/dist/cli/doctor.handler.d.ts +0 -38
- package/packages/cli/dist/cli/doctor.handler.js +0 -495
- package/packages/cli/dist/cli/doctor.handler.js.map +0 -1
- package/packages/cli/dist/cli/execute.handler.d.ts +0 -2
- package/packages/cli/dist/cli/execute.handler.js +0 -376
- package/packages/cli/dist/cli/execute.handler.js.map +0 -1
- package/packages/cli/dist/cli/help.handler.d.ts +0 -2
- package/packages/cli/dist/cli/help.handler.js +0 -10
- package/packages/cli/dist/cli/help.handler.js.map +0 -1
- package/packages/cli/dist/cli/init.handler.d.ts +0 -26
- package/packages/cli/dist/cli/init.handler.js +0 -450
- package/packages/cli/dist/cli/init.handler.js.map +0 -1
- package/packages/cli/dist/cli/log.handler.d.ts +0 -2
- package/packages/cli/dist/cli/log.handler.js +0 -69
- package/packages/cli/dist/cli/log.handler.js.map +0 -1
- package/packages/cli/dist/cli/mcp.handler.d.ts +0 -3
- package/packages/cli/dist/cli/mcp.handler.js +0 -121
- package/packages/cli/dist/cli/mcp.handler.js.map +0 -1
- package/packages/cli/dist/cli/query.handler.d.ts +0 -2
- package/packages/cli/dist/cli/query.handler.js +0 -392
- package/packages/cli/dist/cli/query.handler.js.map +0 -1
- package/packages/cli/dist/cli/skill.handler.d.ts +0 -2
- package/packages/cli/dist/cli/skill.handler.js +0 -252
- package/packages/cli/dist/cli/skill.handler.js.map +0 -1
- package/packages/cli/dist/cli/slack-files.handler.d.ts +0 -2
- package/packages/cli/dist/cli/slack-files.handler.js +0 -291
- package/packages/cli/dist/cli/slack-files.handler.js.map +0 -1
- package/packages/cli/dist/cli/template.handler.d.ts +0 -2
- package/packages/cli/dist/cli/template.handler.js +0 -188
- package/packages/cli/dist/cli/template.handler.js.map +0 -1
- package/packages/cli/dist/cli/templates.handler.d.ts +0 -2
- package/packages/cli/dist/cli/templates.handler.js +0 -100
- package/packages/cli/dist/cli/templates.handler.js.map +0 -1
- package/packages/cli/dist/cli-options.d.ts +0 -40
- package/packages/cli/dist/cli-options.js +0 -371
- package/packages/cli/dist/cli-options.js.map +0 -1
- package/packages/cli/dist/config/timeout.config.d.ts +0 -14
- package/packages/cli/dist/config/timeout.config.js +0 -34
- package/packages/cli/dist/config/timeout.config.js.map +0 -1
- package/packages/cli/dist/conversation/base-conversation-history.provider.d.ts +0 -12
- package/packages/cli/dist/conversation/base-conversation-history.provider.js +0 -45
- package/packages/cli/dist/conversation/base-conversation-history.provider.js.map +0 -1
- package/packages/cli/dist/conversation/cli-box-reader.adapter.d.ts +0 -6
- package/packages/cli/dist/conversation/cli-box-reader.adapter.js +0 -10
- package/packages/cli/dist/conversation/cli-box-reader.adapter.js.map +0 -1
- package/packages/cli/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
- package/packages/cli/dist/conversation/cli-conversation-history.provider.js +0 -112
- package/packages/cli/dist/conversation/cli-conversation-history.provider.js.map +0 -1
- package/packages/cli/dist/conversation/cli-task-reader.adapter.d.ts +0 -6
- package/packages/cli/dist/conversation/cli-task-reader.adapter.js +0 -25
- package/packages/cli/dist/conversation/cli-task-reader.adapter.js.map +0 -1
- package/packages/cli/dist/conversation/conversation-provider.factory.d.ts +0 -10
- package/packages/cli/dist/conversation/conversation-provider.factory.js +0 -50
- package/packages/cli/dist/conversation/conversation-provider.factory.js.map +0 -1
- package/packages/cli/dist/conversation/index.d.ts +0 -8
- package/packages/cli/dist/conversation/index.js +0 -29
- package/packages/cli/dist/conversation/index.js.map +0 -1
- package/packages/cli/dist/conversation/slack-conversation-history.provider.d.ts +0 -29
- package/packages/cli/dist/conversation/slack-conversation-history.provider.js +0 -302
- package/packages/cli/dist/conversation/slack-conversation-history.provider.js.map +0 -1
- package/packages/cli/dist/crewx.tool.d.ts +0 -360
- package/packages/cli/dist/crewx.tool.js +0 -2541
- package/packages/cli/dist/crewx.tool.js.map +0 -1
- package/packages/cli/dist/crewx.tool.spec.d.ts +0 -1
- package/packages/cli/dist/crewx.tool.spec.js +0 -306
- package/packages/cli/dist/crewx.tool.spec.js.map +0 -1
- package/packages/cli/dist/guards/bearer-auth.guard.d.ts +0 -7
- package/packages/cli/dist/guards/bearer-auth.guard.js +0 -44
- package/packages/cli/dist/guards/bearer-auth.guard.js.map +0 -1
- package/packages/cli/dist/health.controller.d.ts +0 -6
- package/packages/cli/dist/health.controller.js.map +0 -1
- package/packages/cli/dist/main.js.map +0 -1
- package/packages/cli/dist/mcp.controller.d.ts +0 -8
- package/packages/cli/dist/mcp.controller.js +0 -62
- package/packages/cli/dist/mcp.controller.js.map +0 -1
- package/packages/cli/dist/providers/dynamic-provider.factory.d.ts +0 -17
- package/packages/cli/dist/providers/dynamic-provider.factory.js +0 -138
- package/packages/cli/dist/providers/dynamic-provider.factory.js.map +0 -1
- package/packages/cli/dist/providers/logger.adapter.d.ts +0 -7
- package/packages/cli/dist/providers/logger.adapter.js +0 -111
- package/packages/cli/dist/providers/logger.adapter.js.map +0 -1
- package/packages/cli/dist/services/agent-loader.service.d.ts +0 -35
- package/packages/cli/dist/services/agent-loader.service.js +0 -623
- package/packages/cli/dist/services/agent-loader.service.js.map +0 -1
- package/packages/cli/dist/services/auth.service.d.ts +0 -9
- package/packages/cli/dist/services/auth.service.js +0 -47
- package/packages/cli/dist/services/auth.service.js.map +0 -1
- package/packages/cli/dist/services/config-validator.service.d.ts +0 -29
- package/packages/cli/dist/services/config-validator.service.js +0 -483
- package/packages/cli/dist/services/config-validator.service.js.map +0 -1
- package/packages/cli/dist/services/config.service.d.ts +0 -45
- package/packages/cli/dist/services/config.service.js +0 -352
- package/packages/cli/dist/services/config.service.js.map +0 -1
- package/packages/cli/dist/services/document-loader.service.d.ts +0 -26
- package/packages/cli/dist/services/document-loader.service.js +0 -186
- package/packages/cli/dist/services/document-loader.service.js.map +0 -1
- package/packages/cli/dist/services/help.service.d.ts +0 -5
- package/packages/cli/dist/services/help.service.js +0 -139
- package/packages/cli/dist/services/help.service.js.map +0 -1
- package/packages/cli/dist/services/intelligent-compression.service.d.ts +0 -20
- package/packages/cli/dist/services/intelligent-compression.service.js +0 -179
- package/packages/cli/dist/services/intelligent-compression.service.js.map +0 -1
- package/packages/cli/dist/services/mcp-client.service.d.ts +0 -26
- package/packages/cli/dist/services/mcp-client.service.js +0 -81
- package/packages/cli/dist/services/mcp-client.service.js.map +0 -1
- package/packages/cli/dist/services/parallel-processing.service.d.ts +0 -108
- package/packages/cli/dist/services/parallel-processing.service.js +0 -333
- package/packages/cli/dist/services/parallel-processing.service.js.map +0 -1
- package/packages/cli/dist/services/provider-bridge.service.d.ts +0 -35
- package/packages/cli/dist/services/provider-bridge.service.js +0 -224
- package/packages/cli/dist/services/provider-bridge.service.js.map +0 -1
- package/packages/cli/dist/services/remote-agent.service.d.ts +0 -50
- package/packages/cli/dist/services/remote-agent.service.js +0 -171
- package/packages/cli/dist/services/remote-agent.service.js.map +0 -1
- package/packages/cli/dist/services/result-formatter.service.d.ts +0 -27
- package/packages/cli/dist/services/result-formatter.service.js +0 -126
- package/packages/cli/dist/services/result-formatter.service.js.map +0 -1
- package/packages/cli/dist/services/skill-loader.service.d.ts +0 -15
- package/packages/cli/dist/services/skill-loader.service.js +0 -278
- package/packages/cli/dist/services/skill-loader.service.js.map +0 -1
- package/packages/cli/dist/services/skill.service.d.ts +0 -69
- package/packages/cli/dist/services/skill.service.js +0 -779
- package/packages/cli/dist/services/skill.service.js.map +0 -1
- package/packages/cli/dist/services/skill.service.spec.d.ts +0 -1
- package/packages/cli/dist/services/skill.service.spec.js +0 -216
- package/packages/cli/dist/services/skill.service.spec.js.map +0 -1
- package/packages/cli/dist/services/task-management.service.d.ts +0 -71
- package/packages/cli/dist/services/task-management.service.js +0 -324
- package/packages/cli/dist/services/task-management.service.js.map +0 -1
- package/packages/cli/dist/services/template.service.d.ts +0 -61
- package/packages/cli/dist/services/template.service.js +0 -416
- package/packages/cli/dist/services/template.service.js.map +0 -1
- package/packages/cli/dist/services/tool-call.service.d.ts +0 -16
- package/packages/cli/dist/services/tool-call.service.js +0 -302
- package/packages/cli/dist/services/tool-call.service.js.map +0 -1
- package/packages/cli/dist/services/tracing.service.d.ts +0 -201
- package/packages/cli/dist/services/tracing.service.js +0 -1295
- package/packages/cli/dist/services/tracing.service.js.map +0 -1
- package/packages/cli/dist/slack/formatters/message.formatter.d.ts +0 -43
- package/packages/cli/dist/slack/formatters/message.formatter.js +0 -505
- package/packages/cli/dist/slack/formatters/message.formatter.js.map +0 -1
- package/packages/cli/dist/slack/services/slack-file-download.service.d.ts +0 -58
- package/packages/cli/dist/slack/services/slack-file-download.service.js +0 -558
- package/packages/cli/dist/slack/services/slack-file-download.service.js.map +0 -1
- package/packages/cli/dist/slack/slack-bot.d.ts +0 -33
- package/packages/cli/dist/slack/slack-bot.js +0 -568
- package/packages/cli/dist/slack/slack-bot.js.map +0 -1
- package/packages/cli/dist/stderr.logger.d.ts +0 -8
- package/packages/cli/dist/stderr.logger.js +0 -26
- package/packages/cli/dist/stderr.logger.js.map +0 -1
- package/packages/cli/dist/types/usage.types.d.ts +0 -107
- package/packages/cli/dist/types/usage.types.js +0 -3
- package/packages/cli/dist/types/usage.types.js.map +0 -1
- package/packages/cli/dist/utils/config-utils.d.ts +0 -15
- package/packages/cli/dist/utils/config-utils.js +0 -69
- package/packages/cli/dist/utils/config-utils.js.map +0 -1
- package/packages/cli/dist/utils/extract-text.d.ts +0 -1
- package/packages/cli/dist/utils/extract-text.js +0 -15
- package/packages/cli/dist/utils/extract-text.js.map +0 -1
- package/packages/cli/dist/utils/mcp-installer.d.ts +0 -20
- package/packages/cli/dist/utils/mcp-installer.js +0 -199
- package/packages/cli/dist/utils/mcp-installer.js.map +0 -1
- package/packages/cli/dist/utils/project-hash.d.ts +0 -6
- package/packages/cli/dist/utils/project-hash.js +0 -70
- package/packages/cli/dist/utils/project-hash.js.map +0 -1
- package/packages/cli/dist/utils/simple-security.d.ts +0 -3
- package/packages/cli/dist/utils/simple-security.js +0 -20
- package/packages/cli/dist/utils/simple-security.js.map +0 -1
- package/packages/cli/dist/utils/stdin-utils.d.ts +0 -6
- package/packages/cli/dist/utils/stdin-utils.js +0 -109
- package/packages/cli/dist/utils/stdin-utils.js.map +0 -1
- package/packages/cli/dist/utils/template-processor.d.ts +0 -27
- package/packages/cli/dist/utils/template-processor.js +0 -395
- package/packages/cli/dist/utils/template-processor.js.map +0 -1
- package/packages/cli/dist/utils/terminal-message-formatter.d.ts +0 -23
- package/packages/cli/dist/utils/terminal-message-formatter.js +0 -136
- package/packages/cli/dist/utils/terminal-message-formatter.js.map +0 -1
- package/packages/cli/dist/version.d.ts +0 -1
- package/packages/cli/dist/version.js +0 -17
- package/packages/cli/dist/version.js.map +0 -1
- package/packages/cli/dist/workspace.service.d.ts +0 -44
- package/packages/cli/dist/workspace.service.js +0 -299
- package/packages/cli/dist/workspace.service.js.map +0 -1
- package/packages/cli/templates/agents/default.yaml +0 -490
- package/packages/cli/templates/agents/minimal.yaml +0 -16
- package/packages/cli/templates/documents/conversation-history-default.hbs +0 -17
- package/packages/cli/templates/documents/crewx-manual.md +0 -2278
- package/packages/cli/templates/documents/crewx-quick-guide.md +0 -147
- package/packages/cli/templates/versions.json +0 -19
- package/scripts/__tests__/migrate-frontmatter-v2.test.ts +0 -269
- package/scripts/__tests__/reclassify-general.spec.ts +0 -107
- package/scripts/migrate-frontmatter-v2.ts +0 -303
- package/scripts/reclassify-general.ts +0 -185
- package/scripts/vitest.config.ts +0 -8
- /package/dist-server/packages/sdk/src/{conversation/conversation-history.interface.js → platform/IFsAdapter.js} +0 -0
- /package/dist-server/{packages/sdk/src/core/parallel/types.js → src/server/domain/fs/dto/tree-node.dto.js} +0 -0
package/bin/crewx-ui.js
CHANGED
|
@@ -22,6 +22,7 @@ const isOverlay = args.includes('--overlay');
|
|
|
22
22
|
function getElectronSpawnEnv() {
|
|
23
23
|
const env = { ...process.env };
|
|
24
24
|
delete env.ELECTRON_RUN_AS_NODE;
|
|
25
|
+
env.NODE_ENV = 'production'; // Force production — prevents users from bypassing FREE limits via env
|
|
25
26
|
return env;
|
|
26
27
|
}
|
|
27
28
|
|
|
@@ -71,7 +72,7 @@ if (isElectron || isOverlay) {
|
|
|
71
72
|
|
|
72
73
|
const child = spawn(process.execPath, [serverScript, ...args], {
|
|
73
74
|
stdio: 'inherit',
|
|
74
|
-
env: { ...process.env },
|
|
75
|
+
env: { ...process.env, NODE_ENV: 'production' }, // Force production — prevents users from bypassing FREE limits via env
|
|
75
76
|
});
|
|
76
77
|
|
|
77
78
|
child.on('exit', (code) => process.exit(code ?? 0));
|
package/bin/crewx.js
CHANGED
|
@@ -28,6 +28,7 @@ const __dirname = dirname(__filename);
|
|
|
28
28
|
function getElectronSpawnEnv() {
|
|
29
29
|
const env = { ...process.env };
|
|
30
30
|
delete env.ELECTRON_RUN_AS_NODE;
|
|
31
|
+
env.NODE_ENV = 'production'; // Force production — prevents users from bypassing FREE limits via env
|
|
31
32
|
return env;
|
|
32
33
|
}
|
|
33
34
|
|
|
@@ -67,7 +68,7 @@ function launchWeb(extraArgs = [], { openBrowser = false } = {}) {
|
|
|
67
68
|
const serverScript = join(__dirname, '..', 'server.js');
|
|
68
69
|
|
|
69
70
|
// Parse --port from extraArgs and inject via spawn env (no process.env pollution)
|
|
70
|
-
const env = { ...process.env };
|
|
71
|
+
const env = { ...process.env, NODE_ENV: 'production' }; // Force production — prevents users from bypassing FREE limits via env
|
|
71
72
|
const portResult = parseWebPort(extraArgs);
|
|
72
73
|
if (portResult?.error) {
|
|
73
74
|
console.error(`❌ ${portResult.error}`);
|
|
@@ -98,7 +99,7 @@ function forwardToCli(cliArgs) {
|
|
|
98
99
|
const serverScript = join(__dirname, '..', 'server.js');
|
|
99
100
|
const child = spawn(process.execPath, [serverScript, 'cli', ...cliArgs], {
|
|
100
101
|
stdio: 'inherit',
|
|
101
|
-
env: { ...process.env },
|
|
102
|
+
env: { ...process.env, NODE_ENV: 'production' }, // Force production — prevents users from bypassing FREE limits via env
|
|
102
103
|
});
|
|
103
104
|
|
|
104
105
|
setupSignalForwarding(child);
|
package/bin/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "module" }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{aO as w,aP as we,aQ as f,aR as N,aS as Se,aT as u,aU as e,aV as ae,aW as se,aX as K,aY as j,aZ as re,a_ as Ie,a$ as le,b0 as U,b1 as ze,b2 as Re,b3 as Ce,b4 as ie,b5 as Me,b6 as De}from"./main-2Ng-WP0F.js";/**
|
|
2
2
|
* @license lucide-react v0.563.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -28,4 +28,4 @@ import{aQ as w,aR as we,aS as f,aT as N,aU as Se,aV as u,aW as e,aX as ae,aY as
|
|
|
28
28
|
*
|
|
29
29
|
* This source code is licensed under the ISC license.
|
|
30
30
|
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
-
*/const Fe=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Pe=w("star",Fe);function I(t){return t instanceof Error?t.message:String(t)}function Ue(t){return[...t].sort((a,s)=>a.isInstalled!==s.isInstalled?a.isInstalled?-1:1:(a.displayName||a.name).localeCompare(s.displayName||s.name))}function Be(t=[],a=[]){return Array.from(new Set([...t,...a]))}function Oe(t,a){var s;return t?{...t,...a,displayName:a.displayName||t.displayName||a.name,description:a.description||t.description,author:a.author||t.author,version:a.version||t.version,tags:Be(t.tags,a.tags),type:a.type||t.type,isVerified:t.isVerified||a.isVerified,isInstalled:t.isInstalled||a.isInstalled,registryId:a.registryId??t.registryId,registryName:a.registryName??t.registryName,installSource:a.installSource??t.installSource,authors:(s=a.authors)!=null&&s.length?a.authors:t.authors,updatedAt:a.updatedAt??t.updatedAt,stars:a.stars??t.stars,license:a.license??t.license,installCount:a.installCount??t.installCount}:a}function L(t){const a=new Map;for(const s of t){const r=a.get(s.name);a.set(s.name,Oe(r,s))}return Ue(Array.from(a.values()))}function He(t,a){return t.map(s=>({...s,registryId:s.registryId??a.id,registryName:s.registryName??a.name,isVerified:s.isVerified||a.isVerified}))}function Qe(t){return t.find(a=>a.isDefault)??t.find(a=>a.isVerified)??t[0]??null}function qe(t,a){return L([...t,...a])}function U(t,a){var s;return a&&t.some(r=>r.name===a)?a:((s=t[0])==null?void 0:s.name)??null}const We=we((t,a)=>({initialized:!1,loading:!1,loadingOfficial:!1,loadingInstalled:!1,savingRegistry:!1,deletingRegistryId:null,mutatingSkillName:null,error:null,registries:[],officialRegistryId:null,allSkills:[],activeFilter:"all",searchQuery:"",selectedSkillName:null,setActiveFilter:s=>t({activeFilter:s}),setSearchQuery:s=>t({searchQuery:s}),setSelectedSkill:s=>t({selectedSkillName:s}),initialize:async()=>{const s=a().selectedSkillName;t({loading:!0,loadingOfficial:!0,loadingInstalled:!0,error:null});try{const n=(await f.getSkillRegistries()).registries,o=Qe(n),[d,m]=await Promise.all([o?f.getRegistrySkills(o.id):Promise.resolve({skills:[]}),f.getInstalledSkills()]),y=o?He(d.skills,o):[],c=L(m.skills),h=qe(y,c);t({initialized:!0,loading:!1,loadingOfficial:!1,loadingInstalled:!1,registries:n,officialRegistryId:(o==null?void 0:o.id)??null,allSkills:h,selectedSkillName:U(h,s)})}catch(r){throw t({loading:!1,loadingOfficial:!1,loadingInstalled:!1,error:I(r)}),r}},refresh:async()=>{await a().initialize()},addRegistry:async s=>{const r=s.trim();if(!r){const n=new Error("Registry URL is required");throw t({error:n.message}),n}t({savingRegistry:!0,error:null});try{await f.addSkillRegistry(r),await a().initialize(),t({savingRegistry:!1})}catch(n){throw t({savingRegistry:!1,error:I(n)}),n}},deleteRegistry:async s=>{t({deletingRegistryId:s,error:null});try{await f.deleteSkillRegistry(s),await a().initialize(),t({deletingRegistryId:null})}catch(r){throw t({deletingRegistryId:null,error:I(r)}),r}},installSkill:async(s,r)=>{t({mutatingSkillName:r,error:null});try{await f.installSkill(s,r),t(n=>{const o=n.registries.find(m=>m.id===s),d=L(n.allSkills.map(m=>m.name===r?{...m,isInstalled:!0,registryId:m.registryId??s,registryName:m.registryName??(o==null?void 0:o.name)}:m));return{allSkills:d,mutatingSkillName:null,selectedSkillName:U(d,n.selectedSkillName??r)}})}catch(n){throw t({mutatingSkillName:null,error:I(n)}),n}},uninstallSkill:async s=>{t({mutatingSkillName:s,error:null});try{await f.uninstallSkill(s),t(r=>{const n=L(r.allSkills.map(o=>o.name===s?{...o,isInstalled:!1}:o));return{allSkills:n,mutatingSkillName:null,selectedSkillName:U(n,r.selectedSkillName)}})}catch(r){throw t({mutatingSkillName:null,error:I(r)}),r}},clearError:()=>t({error:null})}));function ce(t,a){if(!t)return"—";const s=new Date(t);return Number.isNaN(s.getTime())?"—":new Intl.DateTimeFormat(a,{year:"numeric",month:"short",day:"numeric"}).format(s)}function Ze(t,a){if(!t)return null;const s=new Date(t);if(Number.isNaN(s.getTime()))return null;const r=s.getTime()-Date.now(),n=[{unit:"year",ms:1e3*60*60*24*365},{unit:"month",ms:1e3*60*60*24*30},{unit:"week",ms:1e3*60*60*24*7},{unit:"day",ms:1e3*60*60*24},{unit:"hour",ms:1e3*60*60},{unit:"minute",ms:1e3*60}],o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});for(const d of n)if(Math.abs(r)>=d.ms||d.unit==="minute")return o.format(Math.round(r/d.ms),d.unit);return null}function ee(t,a){return typeof t!="number"?"—":new Intl.NumberFormat(a,{notation:"compact",compactDisplay:"short",maximumFractionDigits:1}).format(t)}function O(t){switch(t==null?void 0:t.toLowerCase()){case"template":return"template";case"agent":return"agent";default:return"skill"}}function me({type:t}){const{t:a}=N(),s=O(t),r={skill:"bg-violet-50 text-violet-700",template:"bg-amber-50 text-amber-700",agent:"bg-emerald-50 text-emerald-700"},n={skill:oe,template:de,agent:re},o={skill:a("market.types.skill"),template:a("market.types.template"),agent:a("market.types.agent")},d=n[s];return e.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-medium ${r[s]}`,children:[e.jsx(d,{size:12}),o[s]]})}function Xe({url:t,error:a,submitting:s,onChange:r,onClose:n,onSubmit:o}){const{t:d}=N(),m=y=>{y.preventDefault(),o()};return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"w-full max-w-xl overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"border-b border-gray-200 px-6 py-5",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.addRegistryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.addRegistryModal.description")})]}),e.jsxs("form",{onSubmit:m,children:[e.jsxs("div",{className:"space-y-4 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"registry-url",className:"mb-2 block text-sm font-medium text-gray-700",children:d("market.addRegistryModal.urlLabel")}),e.jsx("input",{id:"registry-url",type:"url",value:t,onChange:y=>r(y.target.value),placeholder:d("market.addRegistryModal.urlPlaceholder"),className:"w-full rounded-lg border border-gray-300 px-4 py-3 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500",autoFocus:!0})]}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-white text-blue-600",children:e.jsx(Me,{size:18})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-blue-900",children:d("market.addRegistryModal.compatibilityTitle")}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-blue-800",children:d("market.addRegistryModal.compatibilityDescription")})]})]})}),a&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsx("p",{className:"text-sm",children:a})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-gray-200 px-6 py-4",children:[e.jsx("button",{type:"button",onClick:n,disabled:s,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:d("market.actions.cancel")}),e.jsxs("button",{type:"submit",disabled:s,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[s?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(B,{size:16}),d("market.actions.addRegistry")]})]})]})]})})}function Ye({registry:t,deleting:a,onDelete:s}){const{t:r,i18n:n}=N();return e.jsxs("article",{className:"flex flex-col gap-4 rounded-xl border border-gray-200 bg-white p-5 shadow-sm",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("div",{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-xl ${t.isVerified?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-500"}`,children:e.jsx(ie,{size:20})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h3",{className:"truncate text-base font-semibold text-gray-900",children:t.name}),e.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ${t.isDefault?"bg-amber-50 text-amber-700":"bg-gray-100 text-gray-600"}`,children:t.isDefault?r("market.registryCard.defaultBadge"):r("market.registryCard.customBadge")})]}),e.jsxs("a",{href:t.url,target:"_blank",rel:"noreferrer",className:"mt-2 inline-flex break-all text-sm text-blue-600 hover:text-blue-700",children:[e.jsx("span",{children:t.url}),e.jsx(De,{size:14,className:"ml-1 mt-0.5 shrink-0"})]})]})]}),e.jsxs("button",{type:"button",onClick:()=>s(t.id),disabled:t.isDefault||a,className:`inline-flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors ${t.isDefault?"cursor-not-allowed bg-gray-100 text-gray-400":"bg-red-50 text-red-600 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50"}`,children:[a?e.jsx(j,{size:15,className:"animate-spin"}):e.jsx(le,{size:15}),t.isDefault?r("market.registryCard.lockedAction"):r("market.actions.deleteRegistry")]})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.skillCount")}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900",children:t.skillCount})]}),e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.addedAt")}),e.jsx("p",{className:"mt-1 text-sm font-medium text-gray-900",children:ce(t.addedAt,n.language)})]})]}),e.jsx("p",{className:"text-xs text-gray-500",children:t.isDefault?r("market.registryCard.defaultHint"):r("market.registryCard.customHint")})]})}function Ge({registries:t,loading:a,deletingRegistryId:s,onAdd:r,onClose:n,onDelete:o}){const{t:d}=N();return e.jsx("div",{className:"fixed inset-0 z-40 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"flex max-h-[85vh] w-full max-w-4xl flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-gray-200 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.registryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.registryModal.description")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",children:[e.jsx(B,{size:16}),d("market.actions.addRegistry")]}),e.jsx("button",{type:"button",onClick:n,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:d("market.actions.close")})]})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:a?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):t.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-6 py-16 text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:d("market.empty.registryTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:d("market.empty.registryDescription")})]}):e.jsx("div",{className:"grid gap-4 xl:grid-cols-2",children:t.map(m=>e.jsx(Ye,{registry:m,deleting:s===m.id,onDelete:o},m.id))})})]})})}function te({skill:t,selected:a,onSelect:s}){const{t:r,i18n:n}=N(),o=Ze(t.updatedAt,n.language),d=O(t.type),m={skill:oe,template:de,agent:re},y={skill:t.isInstalled?"bg-blue-100 text-blue-600":"bg-gray-100 text-gray-500",template:"bg-amber-100 text-amber-700",agent:"bg-emerald-100 text-emerald-700"},c=m[d];return e.jsx("button",{type:"button",onClick:()=>s(t.name),className:`w-full rounded-xl border p-3 text-left transition-colors ${a?"border-blue-200 bg-blue-50 shadow-sm":"border-transparent bg-white hover:border-gray-200 hover:bg-gray-50"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-xl ${y[d]}`,children:e.jsx(c,{size:18})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:"truncate text-sm font-semibold text-gray-900",children:t.displayName||t.name}),t.isVerified&&e.jsx(ne,{className:"h-3.5 w-3.5 shrink-0 text-blue-500"}),e.jsx(me,{type:t.type})]}),e.jsx("p",{className:"mt-1 line-clamp-2 text-xs text-gray-500",children:t.description||r("market.card.noDescription")}),e.jsxs("p",{className:"mt-2 text-[11px] text-gray-400",children:[t.registryName||t.author||r("market.card.unknownAuthor"),o?` · ${r("market.list.updatedLabel",{time:o})}`:""]})]}),t.isInstalled&&e.jsx("span",{className:"shrink-0 rounded-full bg-green-100 px-2 py-0.5 text-[10px] font-medium text-green-700",children:r("market.badges.installed")})]})})}function T({icon:t,label:a,value:s}){return e.jsxs("div",{className:"rounded-xl border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[e.jsx("span",{className:"text-gray-400",children:t}),e.jsx("span",{children:a})]}),e.jsx("p",{className:"mt-2 text-sm font-semibold text-gray-900",children:s})]})}function Je({skill:t,markdownBody:a,descriptionLoading:s,descriptionError:r,busy:n,canInstall:o,onInstall:d,onUninstall:m,onRefresh:y}){const{t:c,i18n:h}=N(),S=typeof(t==null?void 0:t.installCount)=="number";return t?e.jsxs("section",{className:"flex h-full min-h-[520px] flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-gray-200 pb-5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900",children:t.displayName||t.name}),e.jsxs("span",{className:"rounded-full bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600",children:["v",t.version]}),e.jsx(me,{type:t.type}),t.isVerified&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-blue-50 px-2.5 py-1 text-xs font-medium text-blue-700",children:[e.jsx(ne,{size:13}),c("market.badges.verified")]})]}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:t.registryName||t.author||c("market.card.unknownAuthor")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.isInstalled?e.jsxs("button",{type:"button",onClick:()=>m(t.name),disabled:n,className:"inline-flex items-center gap-2 rounded-lg bg-red-50 px-4 py-2 text-sm font-medium text-red-600 transition-colors hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(le,{size:16}),c("market.actions.uninstall")]}):e.jsxs("button",{type:"button",onClick:()=>d(t),disabled:n||!o,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(B,{size:16}),c("market.actions.install")]}),e.jsxs("button",{type:"button",onClick:y,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16}),c("market.actions.checkUpdates")]})]})]}),e.jsxs("div",{className:"space-y-6 py-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.description")}),e.jsx("div",{className:"mt-2",children:s?e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[e.jsx(j,{size:16,className:"animate-spin"}),e.jsx("span",{children:c("market.detail.loadingBody")})]}):t.isInstalled?a!=null&&a.trim()?e.jsx(ze,{content:a,className:"text-sm"}):e.jsxs(e.Fragment,{children:[r&&e.jsx("div",{className:"mb-3 rounded-xl border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800",children:r}),e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-3 text-sm text-blue-800",children:c("market.detail.installToViewBody")})]})})]}),t.tags.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.tags")}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:t.tags.map(p=>e.jsxs("span",{className:"rounded-full border border-gray-200 bg-gray-50 px-2.5 py-1 text-xs text-gray-600",children:["#",p]},p))})]}),t.authors&&t.authors.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.developers")}),e.jsx("div",{className:"mt-3 space-y-3",children:t.authors.map(p=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:p.avatarUrl,alt:`@${p.login}`,className:"h-8 w-8 rounded-full border border-gray-200 object-cover"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-sm font-medium text-gray-900",children:p.name||p.login}),e.jsxs("div",{className:"text-xs text-gray-500",children:["@",p.login]})]}),typeof p.contributions=="number"&&e.jsx("div",{className:"text-xs text-gray-400",children:c("market.detail.contributions",{count:p.contributions})})]},`${t.name}-${p.login}`))})]})]}),e.jsxs("div",{className:`mt-auto grid gap-3 border-t border-gray-200 pt-6 sm:grid-cols-2 ${S?"xl:grid-cols-4":"xl:grid-cols-3"}`,children:[e.jsx(T,{icon:e.jsx(Pe,{size:14}),label:c("market.detail.stats.stars"),value:ee(t.stars,h.language)}),S&&e.jsx(T,{icon:e.jsx(Re,{size:14}),label:c("market.detail.stats.installs"),value:ee(t.installCount,h.language)}),e.jsx(T,{icon:e.jsx($e,{size:14}),label:c("market.detail.stats.license"),value:t.license||c("market.detail.unavailable")}),e.jsx(T,{icon:e.jsx(Ce,{size:14}),label:c("market.detail.stats.updatedAt"),value:ce(t.updatedAt,h.language)})]})]}):e.jsx("div",{className:"flex h-full min-h-[520px] items-center justify-center rounded-2xl border border-gray-200 bg-white p-8 shadow-sm",children:e.jsxs("div",{className:"max-w-sm text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(Ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:c("market.detail.emptyTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("market.detail.emptyDescription")})]})})}function et(){const{t}=N(),{setPageHeader:a}=Se(),[s,r]=u.useState(!1),[n,o]=u.useState(!1),[d,m]=u.useState(""),[y,c]=u.useState(null),[h,S]=u.useState({}),[p,E]=u.useState(null),[xe,z]=u.useState(null),{initialized:H,loading:R,savingRegistry:ue,deletingRegistryId:ge,mutatingSkillName:pe,error:Q,registries:ye,officialRegistryId:$,allSkills:v,activeFilter:k,searchQuery:_,selectedSkillName:C,setActiveFilter:he,setSearchQuery:fe,setSelectedSkill:M,initialize:q,refresh:D,addRegistry:W,deleteRegistry:Z,installSkill:X,uninstallSkill:Y,clearError:A}=We();u.useEffect(()=>{H||q().catch(()=>{})},[H,q]);const G=u.useMemo(()=>v.filter(l=>l.isInstalled).length,[v]),b=u.useMemo(()=>{const l=_.trim().toLowerCase();return v.filter(x=>k==="installed"&&!x.isInstalled||k!=="all"&&k!=="installed"&&O(x.type)!==k?!1:l?[x.displayName,x.name,x.description,x.author,x.registryName,...x.tags].filter(g=>!!g).some(g=>g.toLowerCase().includes(l)):!0)},[k,v,_]),i=u.useMemo(()=>b.find(l=>l.name===C)??b[0]??null,[b,C]),V=i?h[i.name]:void 0;u.useEffect(()=>{const l=(i==null?void 0:i.name)??null;l!==C&&M(l)},[i,C,M]),u.useEffect(()=>{if(!(i!=null&&i.isInstalled)){z(null),E(g=>g===(i==null?void 0:i.name)?null:g);return}if(V!==void 0){z(null);return}let l=!1;const x=i.name;return E(x),z(null),f.getInstalledSkillDetail(x).then(g=>{l||S(ke=>({...ke,[x]:g.body??""}))}).catch(g=>{l||z(g instanceof Error?g.message:t("market.errors.detailLoad"))}).finally(()=>{l||E(g=>g===x?null:g)}),()=>{l=!0}},[i==null?void 0:i.isInstalled,i==null?void 0:i.name,V,t]);const F=u.useCallback(l=>{l&&S(x=>{if(!(l in x))return x;const g={...x};return delete g[l],g})},[]);u.useEffect(()=>{a({title:t("market.title"),subtitle:t("market.subtitle.summary",{total:v.length,installed:G}),actions:e.jsxs("button",{type:"button",onClick:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})},className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-3 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16,className:R?"animate-spin":""}),t("market.actions.refresh")]})})},[v.length,A,R,D,F,i==null?void 0:i.name,a,t,G]);const be=u.useCallback(l=>{const x=l.registryId??$;x&&X(x,l.name).catch(()=>{})},[X,$]),je=u.useCallback(l=>{window.confirm(t("market.actions.confirmUninstall",{name:l}))&&Y(l).catch(()=>{})},[t,Y]),Ne=u.useCallback(l=>{Z(l).catch(()=>{})},[Z]),ve=u.useCallback(async()=>{c(null);try{await W(d),m(""),o(!1)}catch(l){c(l instanceof Error?l.message:t("market.errors.addRegistry"))}},[W,d,t]),P=b.filter(l=>l.isInstalled),J=b.filter(l=>!l.isInstalled);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-6",children:[Q&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-sm font-medium",children:t("market.errors.bannerTitle")}),e.jsx("p",{className:"mt-1 break-words text-sm",children:Q})]}),e.jsx("button",{type:"button",onClick:()=>{A(),D().catch(()=>{})},className:"shrink-0 rounded-md bg-red-100 px-3 py-1.5 text-xs font-medium text-red-700 transition-colors hover:bg-red-200",children:t("market.actions.retry")})]}),e.jsxs("div",{className:"flex flex-col gap-3 rounded-2xl border border-gray-200 bg-white p-4 shadow-sm lg:flex-row lg:items-center",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(K,{size:16,className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),e.jsx("input",{type:"search",value:_,onChange:l=>fe(l.target.value),placeholder:t("market.searchPlaceholder"),className:"w-full rounded-xl border border-gray-300 py-2.5 pl-10 pr-4 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),e.jsxs("button",{type:"button",onClick:()=>r(!0),className:"inline-flex items-center justify-center gap-2 rounded-xl border border-gray-200 bg-gray-50 px-4 py-2.5 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100",children:[e.jsx(Ve,{size:16}),t("market.actions.manageSources")]})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:["all","installed","skill","template","agent"].map(l=>e.jsx("button",{type:"button",onClick:()=>he(l),className:`rounded-full border px-3 py-1.5 text-sm font-medium transition-colors ${k===l?"border-blue-500 bg-blue-500 text-white":"border-gray-200 bg-white text-gray-600 hover:bg-gray-50"}`,children:t(`market.filters.${l}`)},l))}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[360px_minmax(0,1fr)]",children:[e.jsxs("section",{className:"rounded-2xl border border-gray-200 bg-white shadow-sm",children:[e.jsxs("div",{className:"border-b border-gray-200 px-4 py-3",children:[e.jsx("h2",{className:"text-sm font-semibold text-gray-900",children:t("market.list.title")}),e.jsx("p",{className:"mt-1 text-xs text-gray-500",children:t("market.list.count",{count:b.length})})]}),e.jsx("div",{className:"max-h-[640px] overflow-y-auto p-3",children:R?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):b.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-4 py-12 text-center",children:[e.jsx("div",{className:"mx-auto flex h-10 w-10 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(K,{size:18})}),e.jsx("h3",{className:"mt-3 text-sm font-semibold text-gray-900",children:t("market.empty.filteredTitle")}),e.jsx("p",{className:"mt-2 text-xs leading-5 text-gray-500",children:t("market.empty.filteredDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[P.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.installedHeading")}),P.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]}),J.length>0&&e.jsxs("div",{className:"space-y-2",children:[P.length>0&&e.jsx("p",{className:"px-1 pt-2 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.availableHeading")}),J.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]})]})})]}),e.jsx(Je,{skill:i,markdownBody:V,descriptionLoading:i?p===i.name:!1,descriptionError:xe,busy:i?pe===i.name:!1,canInstall:!!((i==null?void 0:i.registryId)??$),onInstall:be,onUninstall:je,onRefresh:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})}})]})]}),s&&e.jsx(Ge,{registries:ye,loading:R,deletingRegistryId:ge,onAdd:()=>{c(null),m(""),o(!0)},onClose:()=>r(!1),onDelete:Ne}),n&&e.jsx(Xe,{url:d,error:y,submitting:ue,onChange:m,onClose:()=>{c(null),o(!1)},onSubmit:ve})]})}export{et as default};
|
|
31
|
+
*/const Fe=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Pe=w("star",Fe);function I(t){return t instanceof Error?t.message:String(t)}function Oe(t){return[...t].sort((a,s)=>a.isInstalled!==s.isInstalled?a.isInstalled?-1:1:(a.displayName||a.name).localeCompare(s.displayName||s.name))}function Ue(t=[],a=[]){return Array.from(new Set([...t,...a]))}function Be(t,a){var s;return t?{...t,...a,displayName:a.displayName||t.displayName||a.name,description:a.description||t.description,author:a.author||t.author,version:a.version||t.version,tags:Ue(t.tags,a.tags),type:a.type||t.type,isVerified:t.isVerified||a.isVerified,isInstalled:t.isInstalled||a.isInstalled,registryId:a.registryId??t.registryId,registryName:a.registryName??t.registryName,installSource:a.installSource??t.installSource,authors:(s=a.authors)!=null&&s.length?a.authors:t.authors,updatedAt:a.updatedAt??t.updatedAt,stars:a.stars??t.stars,license:a.license??t.license,installCount:a.installCount??t.installCount}:a}function L(t){const a=new Map;for(const s of t){const r=a.get(s.name);a.set(s.name,Be(r,s))}return Oe(Array.from(a.values()))}function He(t,a){return t.map(s=>({...s,registryId:s.registryId??a.id,registryName:s.registryName??a.name,isVerified:s.isVerified||a.isVerified}))}function Qe(t){return t.find(a=>a.isDefault)??t.find(a=>a.isVerified)??t[0]??null}function qe(t,a){return L([...t,...a])}function O(t,a){var s;return a&&t.some(r=>r.name===a)?a:((s=t[0])==null?void 0:s.name)??null}const We=we((t,a)=>({initialized:!1,loading:!1,loadingOfficial:!1,loadingInstalled:!1,savingRegistry:!1,deletingRegistryId:null,mutatingSkillName:null,error:null,registries:[],officialRegistryId:null,allSkills:[],activeFilter:"all",searchQuery:"",selectedSkillName:null,setActiveFilter:s=>t({activeFilter:s}),setSearchQuery:s=>t({searchQuery:s}),setSelectedSkill:s=>t({selectedSkillName:s}),initialize:async()=>{const s=a().selectedSkillName;t({loading:!0,loadingOfficial:!0,loadingInstalled:!0,error:null});try{const n=(await f.getSkillRegistries()).registries,o=Qe(n),[d,m]=await Promise.all([o?f.getRegistrySkills(o.id):Promise.resolve({skills:[]}),f.getInstalledSkills()]),y=o?He(d.skills,o):[],c=L(m.skills),h=qe(y,c);t({initialized:!0,loading:!1,loadingOfficial:!1,loadingInstalled:!1,registries:n,officialRegistryId:(o==null?void 0:o.id)??null,allSkills:h,selectedSkillName:O(h,s)})}catch(r){throw t({loading:!1,loadingOfficial:!1,loadingInstalled:!1,error:I(r)}),r}},refresh:async()=>{await a().initialize()},addRegistry:async s=>{const r=s.trim();if(!r){const n=new Error("Registry URL is required");throw t({error:n.message}),n}t({savingRegistry:!0,error:null});try{await f.addSkillRegistry(r),await a().initialize(),t({savingRegistry:!1})}catch(n){throw t({savingRegistry:!1,error:I(n)}),n}},deleteRegistry:async s=>{t({deletingRegistryId:s,error:null});try{await f.deleteSkillRegistry(s),await a().initialize(),t({deletingRegistryId:null})}catch(r){throw t({deletingRegistryId:null,error:I(r)}),r}},installSkill:async(s,r)=>{t({mutatingSkillName:r,error:null});try{await f.installSkill(s,r),t(n=>{const o=n.registries.find(m=>m.id===s),d=L(n.allSkills.map(m=>m.name===r?{...m,isInstalled:!0,registryId:m.registryId??s,registryName:m.registryName??(o==null?void 0:o.name)}:m));return{allSkills:d,mutatingSkillName:null,selectedSkillName:O(d,n.selectedSkillName??r)}})}catch(n){throw t({mutatingSkillName:null,error:I(n)}),n}},uninstallSkill:async s=>{t({mutatingSkillName:s,error:null});try{await f.uninstallSkill(s),t(r=>{const n=L(r.allSkills.map(o=>o.name===s?{...o,isInstalled:!1}:o));return{allSkills:n,mutatingSkillName:null,selectedSkillName:O(n,r.selectedSkillName)}})}catch(r){throw t({mutatingSkillName:null,error:I(r)}),r}},clearError:()=>t({error:null})}));function ce(t,a){if(!t)return"—";const s=new Date(t);return Number.isNaN(s.getTime())?"—":new Intl.DateTimeFormat(a,{year:"numeric",month:"short",day:"numeric"}).format(s)}function Ze(t,a){if(!t)return null;const s=new Date(t);if(Number.isNaN(s.getTime()))return null;const r=s.getTime()-Date.now(),n=[{unit:"year",ms:1e3*60*60*24*365},{unit:"month",ms:1e3*60*60*24*30},{unit:"week",ms:1e3*60*60*24*7},{unit:"day",ms:1e3*60*60*24},{unit:"hour",ms:1e3*60*60},{unit:"minute",ms:1e3*60}],o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});for(const d of n)if(Math.abs(r)>=d.ms||d.unit==="minute")return o.format(Math.round(r/d.ms),d.unit);return null}function ee(t,a){return typeof t!="number"?"—":new Intl.NumberFormat(a,{notation:"compact",compactDisplay:"short",maximumFractionDigits:1}).format(t)}function B(t){switch(t==null?void 0:t.toLowerCase()){case"template":return"template";case"agent":return"agent";default:return"skill"}}function me({type:t}){const{t:a}=N(),s=B(t),r={skill:"bg-violet-50 text-violet-700",template:"bg-amber-50 text-amber-700",agent:"bg-emerald-50 text-emerald-700"},n={skill:oe,template:de,agent:re},o={skill:a("market.types.skill"),template:a("market.types.template"),agent:a("market.types.agent")},d=n[s];return e.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-medium ${r[s]}`,children:[e.jsx(d,{size:12}),o[s]]})}function Xe({url:t,error:a,submitting:s,onChange:r,onClose:n,onSubmit:o}){const{t:d}=N(),m=y=>{y.preventDefault(),o()};return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"w-full max-w-xl overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"border-b border-gray-200 px-6 py-5",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.addRegistryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.addRegistryModal.description")})]}),e.jsxs("form",{onSubmit:m,children:[e.jsxs("div",{className:"space-y-4 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"registry-url",className:"mb-2 block text-sm font-medium text-gray-700",children:d("market.addRegistryModal.urlLabel")}),e.jsx("input",{id:"registry-url",type:"url",value:t,onChange:y=>r(y.target.value),placeholder:d("market.addRegistryModal.urlPlaceholder"),className:"w-full rounded-lg border border-gray-300 px-4 py-3 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500",autoFocus:!0})]}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-white text-blue-600",children:e.jsx(Me,{size:18})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-blue-900",children:d("market.addRegistryModal.compatibilityTitle")}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-blue-800",children:d("market.addRegistryModal.compatibilityDescription")})]})]})}),a&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsx("p",{className:"text-sm",children:a})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-gray-200 px-6 py-4",children:[e.jsx("button",{type:"button",onClick:n,disabled:s,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:d("market.actions.cancel")}),e.jsxs("button",{type:"submit",disabled:s,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[s?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(U,{size:16}),d("market.actions.addRegistry")]})]})]})]})})}function Ye({registry:t,deleting:a,onDelete:s}){const{t:r,i18n:n}=N();return e.jsxs("article",{className:"flex flex-col gap-4 rounded-xl border border-gray-200 bg-white p-5 shadow-sm",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("div",{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-xl ${t.isVerified?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-500"}`,children:e.jsx(ie,{size:20})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h3",{className:"truncate text-base font-semibold text-gray-900",children:t.name}),e.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ${t.isDefault?"bg-amber-50 text-amber-700":"bg-gray-100 text-gray-600"}`,children:t.isDefault?r("market.registryCard.defaultBadge"):r("market.registryCard.customBadge")})]}),e.jsxs("a",{href:t.url,target:"_blank",rel:"noreferrer",className:"mt-2 inline-flex break-all text-sm text-blue-600 hover:text-blue-700",children:[e.jsx("span",{children:t.url}),e.jsx(De,{size:14,className:"ml-1 mt-0.5 shrink-0"})]})]})]}),e.jsxs("button",{type:"button",onClick:()=>s(t.id),disabled:t.isDefault||a,className:`inline-flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors ${t.isDefault?"cursor-not-allowed bg-gray-100 text-gray-400":"bg-red-50 text-red-600 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50"}`,children:[a?e.jsx(j,{size:15,className:"animate-spin"}):e.jsx(le,{size:15}),t.isDefault?r("market.registryCard.lockedAction"):r("market.actions.deleteRegistry")]})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.skillCount")}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900",children:t.skillCount})]}),e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.addedAt")}),e.jsx("p",{className:"mt-1 text-sm font-medium text-gray-900",children:ce(t.addedAt,n.language)})]})]}),e.jsx("p",{className:"text-xs text-gray-500",children:t.isDefault?r("market.registryCard.defaultHint"):r("market.registryCard.customHint")})]})}function Ge({registries:t,loading:a,deletingRegistryId:s,onAdd:r,onClose:n,onDelete:o}){const{t:d}=N();return e.jsx("div",{className:"fixed inset-0 z-40 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"flex max-h-[85vh] w-full max-w-4xl flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-gray-200 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.registryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.registryModal.description")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",children:[e.jsx(U,{size:16}),d("market.actions.addRegistry")]}),e.jsx("button",{type:"button",onClick:n,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:d("market.actions.close")})]})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:a?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):t.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-6 py-16 text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:d("market.empty.registryTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:d("market.empty.registryDescription")})]}):e.jsx("div",{className:"grid gap-4 xl:grid-cols-2",children:t.map(m=>e.jsx(Ye,{registry:m,deleting:s===m.id,onDelete:o},m.id))})})]})})}function te({skill:t,selected:a,onSelect:s}){const{t:r,i18n:n}=N(),o=Ze(t.updatedAt,n.language),d=B(t.type),m={skill:oe,template:de,agent:re},y={skill:t.isInstalled?"bg-blue-100 text-blue-600":"bg-gray-100 text-gray-500",template:"bg-amber-100 text-amber-700",agent:"bg-emerald-100 text-emerald-700"},c=m[d];return e.jsx("button",{type:"button",onClick:()=>s(t.name),className:`w-full rounded-xl border p-3 text-left transition-colors ${a?"border-blue-200 bg-blue-50 shadow-sm":"border-transparent bg-white hover:border-gray-200 hover:bg-gray-50"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-xl ${y[d]}`,children:e.jsx(c,{size:18})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:"truncate text-sm font-semibold text-gray-900",children:t.displayName||t.name}),t.isVerified&&e.jsx(ne,{className:"h-3.5 w-3.5 shrink-0 text-blue-500"}),e.jsx(me,{type:t.type})]}),e.jsx("p",{className:"mt-1 line-clamp-2 text-xs text-gray-500",children:t.description||r("market.card.noDescription")}),e.jsxs("p",{className:"mt-2 text-[11px] text-gray-400",children:[t.registryName||t.author||r("market.card.unknownAuthor"),o?` · ${r("market.list.updatedLabel",{time:o})}`:""]})]}),t.isInstalled&&e.jsx("span",{className:"shrink-0 rounded-full bg-green-100 px-2 py-0.5 text-[10px] font-medium text-green-700",children:r("market.badges.installed")})]})})}function T({icon:t,label:a,value:s}){return e.jsxs("div",{className:"rounded-xl border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[e.jsx("span",{className:"text-gray-400",children:t}),e.jsx("span",{children:a})]}),e.jsx("p",{className:"mt-2 text-sm font-semibold text-gray-900",children:s})]})}function Je({skill:t,markdownBody:a,descriptionLoading:s,descriptionError:r,busy:n,canInstall:o,onInstall:d,onUninstall:m,onRefresh:y}){const{t:c,i18n:h}=N(),S=typeof(t==null?void 0:t.installCount)=="number";return t?e.jsxs("section",{className:"flex h-full min-h-[520px] flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-gray-200 pb-5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900",children:t.displayName||t.name}),e.jsxs("span",{className:"rounded-full bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600",children:["v",t.version]}),e.jsx(me,{type:t.type}),t.isVerified&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-blue-50 px-2.5 py-1 text-xs font-medium text-blue-700",children:[e.jsx(ne,{size:13}),c("market.badges.verified")]})]}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:t.registryName||t.author||c("market.card.unknownAuthor")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.isInstalled?e.jsxs("button",{type:"button",onClick:()=>m(t.name),disabled:n,className:"inline-flex items-center gap-2 rounded-lg bg-red-50 px-4 py-2 text-sm font-medium text-red-600 transition-colors hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(le,{size:16}),c("market.actions.uninstall")]}):e.jsxs("button",{type:"button",onClick:()=>d(t),disabled:n||!o,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(U,{size:16}),c("market.actions.install")]}),e.jsxs("button",{type:"button",onClick:y,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16}),c("market.actions.checkUpdates")]})]})]}),e.jsxs("div",{className:"space-y-6 py-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.description")}),e.jsx("div",{className:"mt-2",children:s?e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[e.jsx(j,{size:16,className:"animate-spin"}),e.jsx("span",{children:c("market.detail.loadingBody")})]}):t.isInstalled?a!=null&&a.trim()?e.jsx(ze,{content:a,className:"text-sm"}):e.jsxs(e.Fragment,{children:[r&&e.jsx("div",{className:"mb-3 rounded-xl border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800",children:r}),e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-3 text-sm text-blue-800",children:c("market.detail.installToViewBody")})]})})]}),t.tags.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.tags")}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:t.tags.map(p=>e.jsxs("span",{className:"rounded-full border border-gray-200 bg-gray-50 px-2.5 py-1 text-xs text-gray-600",children:["#",p]},p))})]}),t.authors&&t.authors.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.developers")}),e.jsx("div",{className:"mt-3 space-y-3",children:t.authors.map(p=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:p.avatarUrl,alt:`@${p.login}`,className:"h-8 w-8 rounded-full border border-gray-200 object-cover"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-sm font-medium text-gray-900",children:p.name||p.login}),e.jsxs("div",{className:"text-xs text-gray-500",children:["@",p.login]})]}),typeof p.contributions=="number"&&e.jsx("div",{className:"text-xs text-gray-400",children:c("market.detail.contributions",{count:p.contributions})})]},`${t.name}-${p.login}`))})]})]}),e.jsxs("div",{className:`mt-auto grid gap-3 border-t border-gray-200 pt-6 sm:grid-cols-2 ${S?"xl:grid-cols-4":"xl:grid-cols-3"}`,children:[e.jsx(T,{icon:e.jsx(Pe,{size:14}),label:c("market.detail.stats.stars"),value:ee(t.stars,h.language)}),S&&e.jsx(T,{icon:e.jsx(Re,{size:14}),label:c("market.detail.stats.installs"),value:ee(t.installCount,h.language)}),e.jsx(T,{icon:e.jsx($e,{size:14}),label:c("market.detail.stats.license"),value:t.license||c("market.detail.unavailable")}),e.jsx(T,{icon:e.jsx(Ce,{size:14}),label:c("market.detail.stats.updatedAt"),value:ce(t.updatedAt,h.language)})]})]}):e.jsx("div",{className:"flex h-full min-h-[520px] items-center justify-center rounded-2xl border border-gray-200 bg-white p-8 shadow-sm",children:e.jsxs("div",{className:"max-w-sm text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(Ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:c("market.detail.emptyTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("market.detail.emptyDescription")})]})})}function et(){const{t}=N(),{setPageHeader:a}=Se(),[s,r]=u.useState(!1),[n,o]=u.useState(!1),[d,m]=u.useState(""),[y,c]=u.useState(null),[h,S]=u.useState({}),[p,E]=u.useState(null),[xe,z]=u.useState(null),{initialized:H,loading:R,savingRegistry:ue,deletingRegistryId:ge,mutatingSkillName:pe,error:Q,registries:ye,officialRegistryId:$,allSkills:v,activeFilter:k,searchQuery:_,selectedSkillName:C,setActiveFilter:he,setSearchQuery:fe,setSelectedSkill:M,initialize:q,refresh:D,addRegistry:W,deleteRegistry:Z,installSkill:X,uninstallSkill:Y,clearError:A}=We();u.useEffect(()=>{H||q().catch(()=>{})},[H,q]);const G=u.useMemo(()=>v.filter(l=>l.isInstalled).length,[v]),b=u.useMemo(()=>{const l=_.trim().toLowerCase();return v.filter(x=>k==="installed"&&!x.isInstalled||k!=="all"&&k!=="installed"&&B(x.type)!==k?!1:l?[x.displayName,x.name,x.description,x.author,x.registryName,...x.tags].filter(g=>!!g).some(g=>g.toLowerCase().includes(l)):!0)},[k,v,_]),i=u.useMemo(()=>b.find(l=>l.name===C)??b[0]??null,[b,C]),V=i?h[i.name]:void 0;u.useEffect(()=>{const l=(i==null?void 0:i.name)??null;l!==C&&M(l)},[i,C,M]),u.useEffect(()=>{if(!(i!=null&&i.isInstalled)){z(null),E(g=>g===(i==null?void 0:i.name)?null:g);return}if(V!==void 0){z(null);return}let l=!1;const x=i.name;return E(x),z(null),f.getInstalledSkillDetail(x).then(g=>{l||S(ke=>({...ke,[x]:g.body??""}))}).catch(g=>{l||z(g instanceof Error?g.message:t("market.errors.detailLoad"))}).finally(()=>{l||E(g=>g===x?null:g)}),()=>{l=!0}},[i==null?void 0:i.isInstalled,i==null?void 0:i.name,V,t]);const F=u.useCallback(l=>{l&&S(x=>{if(!(l in x))return x;const g={...x};return delete g[l],g})},[]);u.useEffect(()=>{a({title:t("market.title"),subtitle:t("market.subtitle.summary",{total:v.length,installed:G}),actions:e.jsxs("button",{type:"button",onClick:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})},className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-3 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16,className:R?"animate-spin":""}),t("market.actions.refresh")]})})},[v.length,A,R,D,F,i==null?void 0:i.name,a,t,G]);const be=u.useCallback(l=>{const x=l.registryId??$;x&&X(x,l.name).catch(()=>{})},[X,$]),je=u.useCallback(l=>{window.confirm(t("market.actions.confirmUninstall",{name:l}))&&Y(l).catch(()=>{})},[t,Y]),Ne=u.useCallback(l=>{Z(l).catch(()=>{})},[Z]),ve=u.useCallback(async()=>{c(null);try{await W(d),m(""),o(!1)}catch(l){c(l instanceof Error?l.message:t("market.errors.addRegistry"))}},[W,d,t]),P=b.filter(l=>l.isInstalled),J=b.filter(l=>!l.isInstalled);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-6",children:[Q&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-sm font-medium",children:t("market.errors.bannerTitle")}),e.jsx("p",{className:"mt-1 break-words text-sm",children:Q})]}),e.jsx("button",{type:"button",onClick:()=>{A(),D().catch(()=>{})},className:"shrink-0 rounded-md bg-red-100 px-3 py-1.5 text-xs font-medium text-red-700 transition-colors hover:bg-red-200",children:t("market.actions.retry")})]}),e.jsxs("div",{className:"flex flex-col gap-3 rounded-2xl border border-gray-200 bg-white p-4 shadow-sm lg:flex-row lg:items-center",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(K,{size:16,className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),e.jsx("input",{type:"search",value:_,onChange:l=>fe(l.target.value),placeholder:t("market.searchPlaceholder"),className:"w-full rounded-xl border border-gray-300 py-2.5 pl-10 pr-4 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),e.jsxs("button",{type:"button",onClick:()=>r(!0),className:"inline-flex items-center justify-center gap-2 rounded-xl border border-gray-200 bg-gray-50 px-4 py-2.5 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100",children:[e.jsx(Ve,{size:16}),t("market.actions.manageSources")]})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:["all","installed","skill","template","agent"].map(l=>e.jsx("button",{type:"button",onClick:()=>he(l),className:`rounded-full border px-3 py-1.5 text-sm font-medium transition-colors ${k===l?"border-blue-500 bg-blue-500 text-white":"border-gray-200 bg-white text-gray-600 hover:bg-gray-50"}`,children:t(`market.filters.${l}`)},l))}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[360px_minmax(0,1fr)]",children:[e.jsxs("section",{className:"rounded-2xl border border-gray-200 bg-white shadow-sm",children:[e.jsxs("div",{className:"border-b border-gray-200 px-4 py-3",children:[e.jsx("h2",{className:"text-sm font-semibold text-gray-900",children:t("market.list.title")}),e.jsx("p",{className:"mt-1 text-xs text-gray-500",children:t("market.list.count",{count:b.length})})]}),e.jsx("div",{className:"max-h-[640px] overflow-y-auto p-3",children:R?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):b.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-4 py-12 text-center",children:[e.jsx("div",{className:"mx-auto flex h-10 w-10 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(K,{size:18})}),e.jsx("h3",{className:"mt-3 text-sm font-semibold text-gray-900",children:t("market.empty.filteredTitle")}),e.jsx("p",{className:"mt-2 text-xs leading-5 text-gray-500",children:t("market.empty.filteredDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[P.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.installedHeading")}),P.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]}),J.length>0&&e.jsxs("div",{className:"space-y-2",children:[P.length>0&&e.jsx("p",{className:"px-1 pt-2 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.availableHeading")}),J.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]})]})})]}),e.jsx(Je,{skill:i,markdownBody:V,descriptionLoading:i?p===i.name:!1,descriptionError:xe,busy:i?pe===i.name:!1,canInstall:!!((i==null?void 0:i.registryId)??$),onInstall:be,onUninstall:je,onRefresh:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})}})]})]}),s&&e.jsx(Ge,{registries:ye,loading:R,deletingRegistryId:ge,onAdd:()=>{c(null),m(""),o(!0)},onClose:()=>r(!1),onDelete:Ne}),n&&e.jsx(Xe,{url:d,error:y,submitting:ue,onChange:m,onClose:()=>{c(null),o(!1)},onSubmit:ve})]})}export{et as default};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import{aO as H,aR as B,aT as d,aU as r,b7 as ve,aY as J,b1 as ke,b8 as we,aQ as F,b9 as ce,aX as de,ba as U,b4 as je,bb as Ne,bc as Ce,bd as Le,a$ as _e,be as ue,bf as Ee,bg as Se,bh as De,bi as Me,bj as Ae,bk as Te,bl as $e,bm as Ie,bn as Pe,bo as Re,bp as Be,bq as ze,br as Oe,bs as qe,bt as Fe,bu as Ve,bv as He,bw as Ke,bx as Ue,by as Qe,bz as We,bA as Xe,bB as ee}from"./main-2Ng-WP0F.js";/**
|
|
2
|
+
* @license lucide-react v0.563.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const Je=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],Ge=H("braces",Je);/**
|
|
7
|
+
* @license lucide-react v0.563.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const Ze=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ye=H("eye",Ze);/**
|
|
12
|
+
* @license lucide-react v0.563.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const et=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],tt=H("link-2",et);/**
|
|
17
|
+
* @license lucide-react v0.563.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const nt=[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]],rt=H("refresh-ccw",nt);function pe(e){return e instanceof Error?/HTTP (404|405|501|503)\b|Failed to fetch|NetworkError/i.test(e.message):!1}const R={id:"agent_id",name:"에이전트 이름",role:"에이전트 역할",team:"팀",description:"에이전트 설명"};function st(e){return{id:e.id.trim()||R.id,name:e.name.trim()||R.name,role:e.role.trim()||R.role,team:e.team.trim()||R.team,description:e.description.trim()||R.description}}function at(e,s,n){let t=!1;return e.state.doc.descendants(o=>o.type.name==="documentBlock"&&o.attrs.key===s&&o.attrs.variant===n?(t=!0,!1):!t),t}const me=["[&_h1]:mt-0","[&_h1]:mb-3","[&_h1]:text-2xl","[&_h1]:font-bold","[&_h2]:mt-0","[&_h2]:mb-2","[&_h2]:text-xl","[&_h2]:font-semibold","[&_h3]:mt-0","[&_h3]:mb-2","[&_h3]:text-lg","[&_h3]:font-semibold","[&_p]:my-2","[&_p]:leading-7","[&_ul]:my-2","[&_ol]:my-2","[&_ul]:list-disc","[&_ol]:list-decimal","[&_ul]:pl-6","[&_ol]:pl-6","[&_li]:my-1","[&_blockquote]:my-3","[&_blockquote]:border-l-4","[&_blockquote]:border-gray-300","[&_blockquote]:pl-4","[&_blockquote]:text-gray-600","[&_blockquote]:italic","[&_blockquote_p]:my-0","[&_a]:text-blue-600","[&_a]:underline","[&_hr]:my-4","[&_hr]:border-gray-300","[&_code]:rounded","[&_code]:bg-gray-100","[&_code]:px-1.5","[&_code]:py-0.5","[&_code]:font-mono","[&_code]:text-[13px]","[&_pre]:my-3","[&_pre]:overflow-x-auto","[&_pre]:rounded-lg","[&_pre]:bg-gray-900","[&_pre]:p-4","[&_pre]:text-sm","[&_pre]:text-gray-100","[&_pre_code]:bg-transparent","[&_pre_code]:p-0","[&_pre_code]:text-inherit"].join(" "),ot=["min-h-[420px]","rounded-xl","border","border-gray-200","bg-white","px-4","py-3","text-sm","text-gray-900","shadow-sm","focus:outline-none","prose","prose-sm","max-w-none",me,"[&_.is-editor-empty:first-child::before]:pointer-events-none","[&_.is-editor-empty:first-child::before]:float-left","[&_.is-editor-empty:first-child::before]:h-0","[&_.is-editor-empty:first-child::before]:text-gray-400","[&_.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]"].join(" ");function it({open:e,request:s,onClose:n}){const{t}=B(),o=d.useRef(null),u=d.useRef(s),[c,p]=d.useState(""),[f,g]=d.useState(!1),[i,b]=d.useState(null),[x,v]=d.useState(!1),j=t("agent.prompt.preview.error");u.current=s;const m=async()=>{var y;if((y=o.current)==null||y.abort(),!u.current.template.trim()){p(""),b(null),v(!1),g(!1);return}const l=new AbortController;o.current=l,g(!0),b(null),v(!1);try{const k=await F.previewPrompt(u.current,{signal:l.signal});if(l.signal.aborted)return;p(k.rendered),b(null),v(!1)}catch(k){if(l.signal.aborted)return;if(pe(k)){p(""),b(null),v(!0);return}p(""),v(!1),b(k instanceof Error?k.message:j)}finally{o.current===l&&(o.current=null),g(!1)}};return d.useEffect(()=>{var l;if(!e){(l=o.current)==null||l.abort();return}m()},[e]),d.useEffect(()=>{if(!e)return;const l=y=>{y.key==="Escape"&&(y.preventDefault(),n())};return window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l)}},[n,e]),d.useEffect(()=>()=>{var l;(l=o.current)==null||l.abort()},[]),e?r.jsx("div",{"data-testid":"preview-modal-backdrop",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",onClick:n,children:r.jsxs("div",{role:"dialog","aria-modal":"true","data-testid":"preview-modal",onClick:l=>l.stopPropagation(),className:"flex max-h-[85vh] w-full max-w-4xl flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-gray-200 px-6 py-5",children:[r.jsx("div",{children:r.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:t("agent.prompt.preview.title")})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("button",{type:"button",onClick:()=>{m()},disabled:f,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:[r.jsx(rt,{size:14,className:f?"animate-spin":""}),t("agent.prompt.preview.refresh")]}),r.jsxs("button",{type:"button",onClick:n,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[r.jsx(ve,{size:14}),t("common.close")]})]})]}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:s.template.trim()?f?r.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[r.jsx(J,{size:16,className:"animate-spin"}),r.jsx("span",{children:t("agent.prompt.preview.loading")})]}):x?r.jsx("div",{className:"text-sm text-gray-500",children:t("agent.prompt.preview.unavailable")}):i?r.jsxs("div",{className:"space-y-2",children:[r.jsx("div",{className:"text-sm font-medium text-red-600",children:t("agent.prompt.preview.error")}),r.jsx("div",{className:"text-sm text-red-500",children:i})]}):r.jsx(ke,{content:c,className:me}):r.jsx("div",{className:"text-sm text-gray-500",children:t("agent.prompt.preview.empty")})}),r.jsxs("div",{className:"flex justify-end gap-2 border-t border-gray-200 px-6 py-4",children:[r.jsxs("button",{type:"button",onClick:()=>{var l;return void((l=navigator.clipboard)==null?void 0:l.writeText(c))},disabled:!c,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:[r.jsx(we,{size:14}),t("agent.prompt.preview.copy")]}),r.jsx("button",{type:"button",onClick:n,className:"rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",children:t("common.close")})]})]})}):null}function lt({trigger:e,items:s,searchable:n=!1,searchPlaceholder:t,emptyLabel:o}){const u=d.useRef(null),c=d.useRef(null),[p,f]=d.useState(!1),[g,i]=d.useState(""),[b,x]=d.useState(0),v=d.useMemo(()=>{const l=g.trim().toLowerCase();return l?s.filter(y=>y.label.toLowerCase().includes(l)?!0:y.actions.some(k=>k.label.toLowerCase().includes(l))):s},[s,g]),j=d.useMemo(()=>v.flatMap(l=>l.actions.map(y=>({itemLabel:l.label,actionLabel:y.label,onClick:y.onClick}))),[v]);d.useEffect(()=>{var l;if(!p){i(""),x(0);return}n&&((l=c.current)==null||l.focus())},[p,n]),d.useEffect(()=>{b<j.length||x(Math.max(j.length-1,0))},[j.length,b]),d.useEffect(()=>{if(!p)return;const l=k=>{var _;(_=u.current)!=null&&_.contains(k.target)||f(!1)},y=k=>{var _;if(k.key==="Escape"){k.preventDefault(),f(!1);return}if(j.length!==0){if(k.key==="ArrowDown"){k.preventDefault(),x(M=>(M+1)%j.length);return}if(k.key==="ArrowUp"){k.preventDefault(),x(M=>(M-1+j.length)%j.length);return}k.key==="Enter"&&(k.preventDefault(),(_=j[b])==null||_.onClick(),f(!1))}};return window.addEventListener("mousedown",l),window.addEventListener("keydown",y),()=>{window.removeEventListener("mousedown",l),window.removeEventListener("keydown",y)}},[j,b,p]);let m=-1;return r.jsxs("div",{ref:u,className:"relative",children:[r.jsxs("button",{type:"button",onMouseDown:l=>l.preventDefault(),onClick:()=>f(l=>!l),className:"inline-flex items-center gap-1 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs font-medium text-gray-700 transition hover:border-gray-300 hover:bg-gray-100",children:[r.jsx("span",{children:e}),r.jsx(ce,{size:14})]}),p?r.jsxs("div",{className:"absolute left-0 top-[calc(100%+0.5rem)] z-20 w-72 rounded-xl border border-gray-200 bg-white p-2 shadow-lg",children:[n?r.jsxs("label",{className:"mb-2 flex items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-xs text-gray-500",children:[r.jsx(de,{size:14}),r.jsx("input",{ref:c,value:g,onChange:l=>{i(l.target.value),x(0)},className:"w-full bg-transparent text-sm text-gray-700 outline-none","aria-label":t,placeholder:t})]}):null,r.jsx("div",{className:"max-h-80 space-y-1 overflow-y-auto",children:v.length===0?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:o??""}):v.map(l=>r.jsxs("div",{className:"rounded-lg border border-gray-100 px-3 py-2",children:[r.jsx("div",{className:"text-sm font-medium text-gray-900",children:l.label}),l.actions.length>0?r.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:l.actions.map(y=>{m+=1;const k=m===b;return r.jsx("button",{type:"button",onMouseDown:_=>_.preventDefault(),onClick:()=>{y.onClick(),f(!1)},className:`rounded-md px-2.5 py-1 text-xs font-medium transition ${k?"bg-blue-500 text-white":"border border-gray-200 bg-white text-gray-700 hover:border-gray-300 hover:bg-gray-100"}`,children:y.label},`${l.label}-${y.label}`)})}):r.jsx("div",{className:"mt-1 text-xs text-gray-500",children:o??l.label})]},l.label))})]}):null]})}function te(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function V(e,s){return(e??"").toLowerCase().includes(s)}function fe(e,s){if(!s)return{nodes:e,autoExpanded:new Set};const n=new Set;return{nodes:e.flatMap(o=>{const u=V(o.name,s)||V(o.path,s);if(o.type==="file")return u?[o]:[];const c=fe(o.children??[],s);return u||c.nodes.length>0?(n.add(o.path),c.autoExpanded.forEach(p=>n.add(p)),[{...o,children:u?o.children:c.nodes}]):[]}),autoExpanded:n}}function ct({documents:e,documentsLoading:s,documentsError:n,documentsUnavailable:t,onInsertDocument:o,onRefetchDocuments:u}){const{t:c}=B(),p=d.useRef(null),f=d.useRef(null),[g,i]=d.useState(!1),[b,x]=d.useState(""),[v,j]=d.useState([]),[m,l]=d.useState(!1),[y,k]=d.useState(null),[_,M]=d.useState(new Set),[a,w]=d.useState(!1),[C,D]=d.useState(null);d.useEffect(()=>{var N;if(!g||((N=f.current)==null||N.focus(),v.length>0||m))return;let h=!1;return(async()=>{l(!0),k(null);try{const S=await F.getDocTree();h||j(S)}catch(S){h||k(S instanceof Error?S.message:c("agent.prompt.documentPicker.treeError"))}finally{h||l(!1)}})(),()=>{h=!0}},[g,v.length]),d.useEffect(()=>{g||(x(h=>h&&""),M(h=>h.size>0?new Set:h))},[g]),d.useEffect(()=>{if(!g)return;const h=N=>{var S;(S=p.current)!=null&&S.contains(N.target)||i(!1)},L=N=>{N.key==="Escape"&&(N.preventDefault(),i(!1))};return window.addEventListener("mousedown",h),window.addEventListener("keydown",L),()=>{window.removeEventListener("mousedown",h),window.removeEventListener("keydown",L)}},[g]);const E=b.trim().toLowerCase(),T=d.useMemo(()=>e.filter(h=>h.type==="inline"),[e]),z=d.useMemo(()=>{const h=e.filter(L=>L.type==="file"&&L.path);return L=>{const N=te(L),S=h.find(ye=>te(ye.path??"")===N);return S==null?void 0:S.key}},[e]),$=d.useMemo(()=>E?T.filter(h=>V(h.key,E)||V(h.summary,E)):T,[T,E]),P=d.useMemo(()=>fe(v,E),[E,v]),xe=d.useMemo(()=>{if(!E)return _;const h=new Set(_);return P.autoExpanded.forEach(L=>h.add(L)),h},[_,P.autoExpanded,E]),K=h=>{o(h,"content"),i(!1)},be=async h=>{D(null);const L=z(h);if(L){K(L);return}try{w(!0);const N=await F.registerDocument({path:h});K(N.key),u==null||u()}catch(N){D(N instanceof Error?N.message:c("agent.prompt.documentPicker.registerError"))}finally{w(!1)}},Z=s||n||t||$.length>0,Y=m||y||P.nodes.length>0;return r.jsxs("div",{ref:p,className:"relative",children:[r.jsxs("button",{type:"button",onMouseDown:h=>h.preventDefault(),onClick:()=>i(h=>!h),className:"inline-flex items-center gap-1 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs font-medium text-gray-700 transition hover:border-gray-300 hover:bg-gray-100","aria-label":c("agent.prompt.documentInsert"),children:[r.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[r.jsx(U,{className:"h-4 w-4"}),r.jsx("span",{children:c("agent.prompt.documentInsert")})]}),r.jsx(ce,{size:14})]}),g?r.jsxs("div",{className:"absolute left-0 top-[calc(100%+0.5rem)] z-20 w-80 rounded-xl border border-gray-200 bg-white p-2 shadow-lg","data-testid":"document-picker-popover",children:[r.jsxs("label",{className:"mb-2 flex items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-xs text-gray-500",children:[r.jsx(de,{size:14}),r.jsx("input",{ref:f,value:b,onChange:h=>x(h.target.value),className:"w-full bg-transparent text-sm text-gray-700 outline-none","aria-label":c("agent.prompt.documentPicker.searchPlaceholder"),placeholder:c("agent.prompt.documentPicker.searchPlaceholder")})]}),r.jsxs("div",{className:"max-h-96 space-y-3 overflow-y-auto",children:[Z?r.jsxs("section",{children:[r.jsxs("div",{className:"mb-1 flex items-center gap-2 px-2 py-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:[r.jsx(je,{className:"h-3.5 w-3.5"}),r.jsx("span",{children:c("agent.prompt.documentPicker.inlineSection")})]}),s?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentInsertLoading")}):n?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-red-500",children:n}):t?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentInsertUnavailable")}):$.length===0?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentPicker.noInlineResults")}):r.jsx("div",{className:"space-y-1",children:$.map(h=>r.jsxs("button",{type:"button",onMouseDown:L=>L.preventDefault(),onClick:()=>K(h.key),className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-sm text-gray-700 transition hover:bg-gray-100",children:[r.jsx(U,{className:"h-4 w-4 shrink-0 text-gray-400"}),r.jsx("span",{className:"truncate",children:h.key})]},h.key))})]}):null,Y?r.jsxs("section",{children:[r.jsxs("div",{className:"mb-1 flex items-center gap-2 px-2 py-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:[r.jsx(U,{className:"h-3.5 w-3.5"}),r.jsx("span",{children:c("agent.prompt.documentPicker.docsSection")})]}),m?r.jsxs("div",{className:"flex items-center gap-2 rounded-lg px-3 py-2 text-sm text-gray-500",children:[r.jsx(J,{className:"h-4 w-4 animate-spin"}),r.jsx("span",{children:c("agent.prompt.documentPicker.treeLoading")})]}):y?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-red-500",children:y}):P.nodes.length===0?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentPicker.noTreeResults")}):r.jsxs(r.Fragment,{children:[r.jsx(Ne,{nodes:P.nodes,expandedFolders:xe,onToggle:h=>M(L=>{const N=new Set(L);return N.has(h)?N.delete(h):N.add(h),N}),onSelect:h=>{a||be(h)},selectedPath:null,isFileDisabled:()=>a,renderFileSuffix:h=>z(h.path)?r.jsx(tt,{className:"h-3.5 w-3.5 shrink-0 text-blue-500","aria-label":c("agent.prompt.documentPicker.linked")}):a?r.jsx(J,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-gray-400"}):null}),C?r.jsx("div",{className:"mt-1 rounded-lg px-3 py-2 text-sm text-red-500",role:"alert",children:C}):null]})]}):null,!Z&&!Y?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentInsertEmpty")}):null]})]}):null]})}function dt({deleteNode:e,extension:s,node:n,updateAttributes:t}){const{t:o}=B(),u=d.useRef(null),[c,p]=d.useState(!1),f=String(n.attrs.key??""),g=String(n.attrs.variant??"content"),i=s.options.getVariantLabel;d.useEffect(()=>{if(!c)return;const x=j=>{var m;(m=u.current)!=null&&m.contains(j.target)||p(!1)},v=j=>{j.key==="Escape"&&(j.preventDefault(),p(!1))};return window.addEventListener("mousedown",x),window.addEventListener("keydown",v),()=>{window.removeEventListener("mousedown",x),window.removeEventListener("keydown",v)}},[c]);const b=[{value:"content",label:i("content")},{value:"toc",label:i("toc")}];return r.jsxs(Ce,{as:"span",ref:u,className:"relative inline-flex","data-testid":"document-block-node",children:[r.jsx("button",{type:"button","data-testid":"document-block-trigger",onMouseDown:x=>x.preventDefault(),onClick:()=>p(x=>!x),className:"inline-flex items-center rounded-lg border border-amber-200 bg-amber-50 px-2 py-0.5 text-xs font-medium text-amber-700",children:`📄 ${f} · ${i(g)}`}),c?r.jsxs("span",{className:"absolute left-0 top-[calc(100%+0.375rem)] z-20 min-w-32 rounded-lg border border-gray-200 bg-white p-1 shadow-lg","data-testid":"document-block-popover",children:[b.map(x=>{const v=x.value===g;return r.jsxs("button",{type:"button","data-testid":`document-block-option-${x.value}`,onMouseDown:j=>j.preventDefault(),onClick:()=>{t({variant:x.value}),p(!1)},className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-gray-700 transition hover:bg-gray-100",children:[r.jsx("span",{className:"inline-flex h-4 w-4 items-center justify-center",children:v?r.jsx(Le,{className:"h-4 w-4 text-blue-500"}):null}),r.jsx("span",{children:x.label})]},x.value)}),r.jsx("div",{className:"my-1 border-t border-gray-100"}),r.jsxs("button",{type:"button","data-testid":"document-block-delete",onMouseDown:x=>x.preventDefault(),onClick:()=>{e(),p(!1)},className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-red-600 transition hover:bg-red-50",children:[r.jsx(_e,{className:"h-4 w-4"}),r.jsx("span",{children:o("agent.prompt.documentChip.delete")})]})]}):null]})}const ut=ue.create({name:"documentBlock",addOptions(){return{getVariantLabel:e=>String(e)}},inline:!0,group:"inline",atom:!0,draggable:!0,selectable:!0,addAttributes(){return{key:{default:""},variant:{default:"content"}}},parseHTML(){return[{tag:"span[data-doc-block]"}]},renderHTML({HTMLAttributes:e,node:s}){const n=String(s.attrs.key??""),t=String(s.attrs.variant??"content"),o=this.options.getVariantLabel(t);return["span",Se(e,{"data-doc-block":"true","data-key":n,"data-variant":t,"data-testid":"document-block",class:"inline-flex items-center rounded-lg border border-amber-200 bg-amber-50 px-2 py-0.5 text-xs font-medium text-amber-700"}),`📄 ${n} · ${o}`]},addNodeView(){return Ee(dt)}}),pt=De.extend({name:"variableMention",addAttributes(){return{variable:{default:"",parseHTML:e=>e.getAttribute("data-variable")??"",renderHTML:e=>({"data-variable":e.variable})}}},renderText({node:e}){return`{{${String(e.attrs.variable??"")}}}`},renderHTML({node:e,HTMLAttributes:s}){return["span",{...s,class:"inline-flex items-center rounded-full bg-blue-500 px-2 py-0.5 text-xs font-semibold text-white","data-testid":"variable-chip"},String(e.attrs.variable??"")]}}),he=["agent.id","agent.name","agent.role","agent.team","agent.description"],ne=["bold","italic","strike","code"],re={bold:{open:"**",close:"**"},italic:{open:"*",close:"*"},strike:{open:"~~",close:"~~"},code:{open:"`",close:"`"}};function mt(e){return he.includes(e)}function ge(e,s){return s&&s.length>0?{type:"text",text:e,marks:s}:{type:"text",text:e}}function Q(e,s,n){if(!s)return;const t=e[e.length-1],o=JSON.stringify(n??[]),u=JSON.stringify((t==null?void 0:t.marks)??[]);if((t==null?void 0:t.type)==="text"&&o===u){t.text=`${t.text??""}${s}`;return}e.push(ge(s,n))}function O(e,...s){return e.map(n=>{if(n.type!=="text")return n;const t=new Set((n.marks??[]).map(u=>u.type)),o=s.filter(u=>!t.has(u)).map(u=>({type:u}));return{...n,marks:[...n.marks??[],...o]}})}function ft(e){const s=e.match(/^\{\{(agent\.(?:id|name|role|team|description))\}\}$/);return!s||!mt(s[1])?null:{type:"variableMention",attrs:{variable:s[1]}}}function G(e){const s=e.match(/^\{\{\{documents\.([^.\s}]+)\.(content|toc)\}\}\}$/);return s?{type:"documentBlock",attrs:{key:s[1],variant:s[2]}}:null}function ht(e,s){const n=e[s].match(/^<document\b[^>]*>\s*(\{\{\{documents\.([^.\s}]+)\.(content|toc)\}\}\})\s*<\/document>\s*$/);if(n){const f=G(n[1]);if(f)return{node:{type:"paragraph",content:[f]},nextIndex:s+1}}if(!/^<document\b[^>]*>\s*$/.test(e[s]??""))return null;let t=s+1;for(;t<e.length&&(e[t]??"").trim()==="";)t+=1;const u=(e[t]??"").trim();for(t+=1;t<e.length&&(e[t]??"").trim()==="";)t+=1;if((e[t]??"").trim()!=="</document>")return null;const p=G(u);return p?{node:{type:"paragraph",content:[p]},nextIndex:t+1}:null}function W(e,s,n,t){return e.startsWith(s,t)?e.indexOf(n,t+s.length):-1}function gt(e,s){const n=[e.indexOf("{{{documents.",s),e.indexOf("{{agent.",s),e.indexOf("**",s),e.indexOf("~~",s),e.indexOf("`",s),e.indexOf("*",s)].filter(t=>t>=0);return n.length>0?Math.min(...n):-1}function A(e,s=!1){const n=[];let t=0;for(;t<e.length;){const o=W(e,"***","***",t);if(o>t){const i=e.slice(t+3,o);n.push(...O(A(i,s),"bold","italic")),t=o+3;continue}if(!s&&e.startsWith("{{{documents.",t)){const i=e.indexOf("}}}",t);if(i>t){const b=e.slice(t,i+3),x=G(b);if(x){n.push(x),t=i+3;continue}}}if(!s&&e.startsWith("{{agent.",t)){const i=e.indexOf("}}",t);if(i>t){const b=e.slice(t,i+2),x=ft(b);if(x){n.push(x),t=i+2;continue}}}const u=W(e,"**","**",t);if(u>t){const i=e.slice(t+2,u);n.push(...O(A(i,s),"bold")),t=u+2;continue}const c=W(e,"~~","~~",t);if(c>t){const i=e.slice(t+2,c);n.push(...O(A(i,s),"strike")),t=c+2;continue}const p=e[t]==="*"&&!e.startsWith("**",t)?e.indexOf("*",t+1):-1;if(p>t){const i=e.slice(t+1,p);n.push(...O(A(i,s),"italic")),t=p+1;continue}if(e[t]==="`"){const i=e.indexOf("`",t+1);if(i>t){Q(n,e.slice(t+1,i),[{type:"code"}]),t=i+1;continue}}const f=gt(e,t),g=f>=0?f:e.length;if(g===t){Q(n,e[t]),t+=1;continue}Q(n,e.slice(t,g)),t=g}return n}function xt(e){const s=e.split(`
|
|
22
|
+
`),n=[];return s.forEach((t,o)=>{n.push(...A(t)),o<s.length-1&&n.push({type:"hardBreak"})}),{type:"paragraph",content:n}}function se(e,s){const n=s?"orderedList":"bulletList",t=s?/^\d+\.\s+/:/^[-*]\s+/;return{type:n,content:e.map(o=>({type:"listItem",content:[{type:"paragraph",content:A(o.replace(t,""))}]}))}}function bt(e){return/^#{1,3}\s+/.test(e)||/^```/.test(e)||/^---+$/.test(e)||/^[-*]\s+/.test(e)||/^\d+\.\s+/.test(e)}function yt(e){const s=new Set((e??[]).map(n=>n.type).filter(n=>ne.includes(n)));return ne.filter(n=>s.has(n))}function vt(e,s){let n=0;for(;n<e.length&&n<s.length&&e[n]===s[n];)n+=1;return n}function ae(e){return e.replace(/&/g,"&").replace(/"/g,""").trim()}function kt(e,s,n){var t,o,u,c;if(e.type==="hardBreak")return`
|
|
23
|
+
`;if(e.type==="variableMention"){const p=String(((t=e.attrs)==null?void 0:t.variable)??"");return s==="preview"?`**{{${p}}}**`:`{{${p}}}`}if(e.type==="documentBlock"){const p=String(((o=e.attrs)==null?void 0:o.key)??""),f=String(((u=e.attrs)==null?void 0:u.variant)??"content"),g=`{{{documents.${p}.${f}}}}`,i=((c=n==null?void 0:n.getDocumentMeta)==null?void 0:c.call(n,p))??{name:p},b=[`name="${ae(i.name)}"`];return i.path&&b.push(`path="${ae(i.path)}"`),b.push(`type="${f}"`),`<document ${b.join(" ")}>
|
|
24
|
+
|
|
25
|
+
${g}
|
|
26
|
+
|
|
27
|
+
</document>`}return I(e.content,s,n)}function I(e,s,n){let t="",o=[];const u=c=>{const p=vt(o,c);for(let f=o.length-1;f>=p;f-=1)t+=re[o[f]].close;for(let f=p;f<c.length;f+=1)t+=re[c[f]].open;o=c};for(const c of e??[]){if(c.type==="text"){u(yt(c.marks)),t+=c.text??"";continue}u([]),t+=kt(c,s,n)}return u([]),t}function X(e){const s=e.replace(/\r\n?/g,`
|
|
28
|
+
`);if(!s.trim())return{type:"doc",content:[]};const n=s.split(`
|
|
29
|
+
`),t=[];let o=0;for(;o<n.length;){const u=n[o];if(!u.trim()){o+=1;continue}const c=ht(n,o);if(c){t.push(c.node),o=c.nextIndex;continue}const p=u.match(/^```(\S+)?\s*$/);if(p){const i=p[1]??null,b=[];for(o+=1;o<n.length&&!/^```/.test(n[o]);)b.push(n[o]),o+=1;o<n.length&&(o+=1),t.push({type:"codeBlock",attrs:i?{language:i}:{},content:[ge(b.join(`
|
|
30
|
+
`))]});continue}const f=u.match(/^(#{1,3})\s+(.*)$/);if(f){t.push({type:"heading",attrs:{level:f[1].length},content:A(f[2])}),o+=1;continue}if(/^---+$/.test(u)){t.push({type:"horizontalRule"}),o+=1;continue}if(/^[-*]\s+/.test(u)){const i=[];for(;o<n.length&&/^[-*]\s+/.test(n[o]);)i.push(n[o]),o+=1;t.push(se(i,!1));continue}if(/^\d+\.\s+/.test(u)){const i=[];for(;o<n.length&&/^\d+\.\s+/.test(n[o]);)i.push(n[o]),o+=1;t.push(se(i,!0));continue}const g=[u];for(o+=1;o<n.length&&n[o].trim()&&!bt(n[o]);)g.push(n[o]),o+=1;t.push(xt(g.join(`
|
|
31
|
+
`)))}return{type:"doc",content:t}}function wt(e,s,n){var t,o,u,c;switch(e.type){case"heading":{const p=Number(((t=e.attrs)==null?void 0:t.level)??1);return`${"#".repeat(Math.max(1,Math.min(3,p)))} ${I(e.content,s,n)}`}case"bulletList":return(e.content??[]).map(p=>{var f,g;return`- ${I((g=(f=p.content)==null?void 0:f[0])==null?void 0:g.content,s,n)}`}).join(`
|
|
32
|
+
`);case"orderedList":return(e.content??[]).map((p,f)=>{var g,i;return`${f+1}. ${I((i=(g=p.content)==null?void 0:g[0])==null?void 0:i.content,s,n)}`}).join(`
|
|
33
|
+
`);case"codeBlock":{const p=typeof((o=e.attrs)==null?void 0:o.language)=="string"?e.attrs.language:"",f=((c=(u=e.content)==null?void 0:u[0])==null?void 0:c.text)??"";return`\`\`\`${p}
|
|
34
|
+
${f}
|
|
35
|
+
\`\`\``}case"horizontalRule":return"---";case"paragraph":return I(e.content,s,n);default:return I(e.content,s,n)}}function oe(e,s){return(e.content??[]).map(n=>wt(n,"hbs",s)).join(`
|
|
36
|
+
|
|
37
|
+
`)}function jt(e){return/\{\{agent\.(?:id|name|role|team|description)\}\}|\{\{\{documents\.[^.\s}]+\.(?:content|toc)\}\}\}|<document\b[^>]*>/.test(e)}function Nt(e,s){return{type:"documentBlock",attrs:{key:e,variant:s}}}function ie(e){return{type:"variableMention",attrs:{variable:e}}}function q(e){return!e.isActive("codeBlock")&&!e.isActive("code")}function le(e,s,n){return q(e)?at(e,s,n)?!1:(e.chain().focus().insertContent(Nt(s,n)).run(),!0):(e.chain().focus().insertContent(`{{{documents.${s}.${n}}}}`).run(),!0)}const Ct=d.forwardRef(function({value:s,onChange:n,documents:t,documentsLoading:o,documentsError:u,documentsUnavailable:c,onPreview:p,onRefetchDocuments:f},g){const{t:i}=B(),b=d.useRef(null),x=d.useMemo(()=>({content:i("agent.prompt.variantContent"),toc:i("agent.prompt.variantToc")}),[i]),v=d.useMemo(()=>a=>{var C;const w=t.find(D=>D.key===a);if((w==null?void 0:w.type)==="file"&&w.path){const D=w.path.split("/").filter(Boolean);return{name:D[D.length-1]??a,path:w.path}}return{name:((C=w==null?void 0:w.summary)==null?void 0:C.trim())||a}},[t]),j=d.useMemo(()=>[{key:"headings",buttons:[{key:"h1",label:i("agent.prompt.toolbar.h1"),icon:Me,shortcut:"Cmd+Alt+1",action:a=>{a.chain().focus().toggleHeading({level:1}).run()},isActive:a=>a.isActive("heading",{level:1})},{key:"h2",label:i("agent.prompt.toolbar.h2"),icon:Ae,shortcut:"Cmd+Alt+2",action:a=>{a.chain().focus().toggleHeading({level:2}).run()},isActive:a=>a.isActive("heading",{level:2})},{key:"h3",label:i("agent.prompt.toolbar.h3"),icon:Te,shortcut:"Cmd+Alt+3",action:a=>{a.chain().focus().toggleHeading({level:3}).run()},isActive:a=>a.isActive("heading",{level:3})}]},{key:"text",buttons:[{key:"bold",label:i("agent.prompt.toolbar.bold"),icon:$e,shortcut:"Cmd+B",action:a=>{a.chain().focus().toggleBold().run()},isActive:a=>a.isActive("bold")},{key:"italic",label:i("agent.prompt.toolbar.italic"),icon:Ie,shortcut:"Cmd+I",action:a=>{a.chain().focus().toggleItalic().run()},isActive:a=>a.isActive("italic")},{key:"strike",label:i("agent.prompt.toolbar.strike"),icon:Pe,shortcut:"Cmd+Shift+S",action:a=>{a.chain().focus().toggleStrike().run()},isActive:a=>a.isActive("strike")}]},{key:"lists",buttons:[{key:"bulletList",label:i("agent.prompt.toolbar.bulletList"),icon:Re,shortcut:"Cmd+Shift+8",action:a=>{a.chain().focus().toggleBulletList().run()},isActive:a=>a.isActive("bulletList")},{key:"orderedList",label:i("agent.prompt.toolbar.orderedList"),icon:Be,shortcut:"Cmd+Shift+7",action:a=>{a.chain().focus().toggleOrderedList().run()},isActive:a=>a.isActive("orderedList")},{key:"blockquote",label:i("agent.prompt.toolbar.blockquote"),icon:ze,shortcut:"Cmd+Shift+B",action:a=>{a.chain().focus().toggleBlockquote().run()},isActive:a=>a.isActive("blockquote")}]},{key:"code",buttons:[{key:"code",label:i("agent.prompt.toolbar.code"),icon:Oe,shortcut:"Cmd+E",action:a=>{a.chain().focus().toggleCode().run()},isActive:a=>a.isActive("code")},{key:"codeBlock",label:i("agent.prompt.toolbar.codeBlock"),icon:qe,shortcut:"Cmd+Alt+C",action:a=>{a.chain().focus().toggleCodeBlock().run()},isActive:a=>a.isActive("codeBlock")},{key:"horizontalRule",label:i("agent.prompt.toolbar.horizontalRule"),icon:Fe,shortcut:"Cmd+Alt+-",action:a=>{a.chain().focus().setHorizontalRule().run()}}]},{key:"history",buttons:[{key:"undo",label:i("agent.prompt.toolbar.undo"),icon:Ve,shortcut:"Cmd+Z",action:a=>{a.chain().focus().undo().run()},isDisabled:a=>!a.can().chain().focus().undo().run()},{key:"redo",label:i("agent.prompt.toolbar.redo"),icon:He,shortcut:"Cmd+Shift+Z",action:a=>{a.chain().focus().redo().run()},isDisabled:a=>!a.can().chain().focus().redo().run()}]}],[i]),m=Ke({immediatelyRender:!1,extensions:[Ue.configure({heading:{levels:[1,2,3]}}),Qe.configure({placeholder:i("agent.prompt.placeholder")}),pt.configure({HTMLAttributes:{class:"inline-flex items-center rounded-full bg-blue-500 px-2 py-0.5 text-xs font-semibold text-white"}}),ut.configure({getVariantLabel:a=>a==="toc"?x.toc:x.content}),ue.create({name:"fallbackInline",inline:!0,group:"inline"})],content:X(s),editorProps:{attributes:{class:ot,"data-testid":"prompt-editor-content","aria-label":i("agent.prompt.editorLabel"),role:"textbox"}},onUpdate({editor:a}){const w=oe(a.getJSON(),{getDocumentMeta:v});b.current=w,n(w)}}),l=We({editor:m,selector:({editor:a})=>a?{active:{h1:a.isActive("heading",{level:1}),h2:a.isActive("heading",{level:2}),h3:a.isActive("heading",{level:3}),bold:a.isActive("bold"),italic:a.isActive("italic"),strike:a.isActive("strike"),bulletList:a.isActive("bulletList"),orderedList:a.isActive("orderedList"),blockquote:a.isActive("blockquote"),code:a.isActive("code"),codeBlock:a.isActive("codeBlock")},disabled:{undo:!a.can().chain().focus().undo().run(),redo:!a.can().chain().focus().redo().run()}}:{active:{},disabled:{}}}),y=d.useMemo(()=>he.map(a=>({label:a,actions:[{label:i("agent.prompt.toolbar.insert"),onClick:()=>{if(m){if(q(m)){m.chain().focus().insertContent(ie(a)).run();return}m.chain().focus().insertContent(`{{${a}}}`).run()}}}]})),[m,i]);d.useEffect(()=>{if(!m)return;const a=oe(m.getJSON(),{getDocumentMeta:v});s===a||s===b.current||(m.commands.setContent(X(s)),b.current=s)},[m,v,s]),d.useImperativeHandle(g,()=>({insertVariable(a){if(m){if(q(m)){m.chain().focus().insertContent(ie(a)).run();return}m.chain().focus().insertContent(`{{${a}}}`).run()}},insertDocumentBlock(a,w){return m?le(m,a,w):!1},selectAll(){m==null||m.chain().focus().selectAll().run()}}),[m]);const k=a=>{if(!m||!q(m))return;const w=a.clipboardData.getData("text/plain");if(!w||!jt(w))return;a.preventDefault();const C=X(w);m.chain().focus().insertContent(C.content??[]).run()},_=a=>`${a.label} (${a.shortcut})`,M=(a,w)=>m?le(m,a,w):!1;return r.jsxs("section",{className:"rounded-xl border border-gray-200 bg-gray-50 p-4 shadow-sm",children:[r.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-xl border border-gray-200 bg-white p-2 shadow-sm",children:[j.map((a,w)=>r.jsxs("div",{className:"flex items-center gap-1",children:[w>0?r.jsx("div",{className:"mx-1 h-6 border-l border-gray-300","aria-hidden":"true"}):null,a.buttons.map(C=>{var $;const D=_(C),E=(l==null?void 0:l.active[C.key])??!1,T=m?((($=C.isDisabled)==null?void 0:$.call(C,m))??!1)||((l==null?void 0:l.disabled[C.key])??!1):!0,z=C.icon;return r.jsx("button",{type:"button",title:D,"aria-label":D,"data-testid":`prompt-toolbar-${C.key}`,disabled:T,onClick:()=>m&&C.action(m),className:`flex h-8 w-8 items-center justify-center rounded-md transition-colors ${E?"bg-gray-200 text-gray-900":"text-gray-600 hover:bg-gray-100 hover:text-gray-900"} ${T?"cursor-not-allowed opacity-40":""}`,children:r.jsx(z,{className:"h-4 w-4"})},C.key)})]},a.key)),r.jsxs("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[r.jsx("div",{className:"mx-1 h-6 border-l border-gray-300","aria-hidden":"true"}),r.jsx(lt,{trigger:r.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[r.jsx(Ge,{className:"h-4 w-4"}),r.jsx("span",{children:i("agent.prompt.toolbar.variable")})]}),items:y,emptyLabel:i("agent.prompt.toolbar.empty")}),r.jsx(ct,{documents:t,documentsLoading:o,documentsError:u,documentsUnavailable:c,onInsertDocument:M,onRefetchDocuments:f}),r.jsx("button",{type:"button",title:`${i("agent.prompt.preview.button")} (Cmd+P)`,"aria-label":`${i("agent.prompt.preview.button")} (Cmd+P)`,"data-testid":"prompt-toolbar-preview",onClick:p,className:"flex h-8 w-8 items-center justify-center rounded-md text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900",children:r.jsx(Ye,{className:"h-4 w-4"})})]})]}),r.jsx("div",{"data-testid":"prompt-editor",onPaste:k,children:r.jsx(Xe,{editor:m})})]})});function _t({previewAgentId:e=null}){const{t:s}=B(),n=ee(l=>l.form),t=ee(l=>l.setField),[o,u]=d.useState([]),[c,p]=d.useState(!0),[f,g]=d.useState(null),[i,b]=d.useState(!1),[x,v]=d.useState(!1),j=d.useMemo(()=>{const l=st(n);return{template:n.prompt,...e?{agentId:e}:{},context:{agent:l}}},[n,e]),m=d.useCallback(async()=>{p(!0),g(null),b(!1);try{const l=await F.getDocuments();u(l.documents)}catch(l){if(pe(l)){u([]),b(!0);return}g(l instanceof Error?l.message:s("agent.prompt.documentInsertError"))}finally{p(!1)}},[s]);return d.useEffect(()=>{m()},[m]),d.useEffect(()=>{const l=y=>{!(y.metaKey||y.ctrlKey)||y.key.toLowerCase()!=="p"||(y.preventDefault(),v(!0))};return window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l)}},[]),r.jsxs("div",{className:"space-y-5",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-base font-semibold text-gray-900",children:s("agent.section.promptTitle")}),r.jsx("p",{className:"mt-1 text-sm text-gray-500",children:s("agent.section.promptDescription")})]}),r.jsx("div",{className:"grid grid-cols-1 gap-5",children:r.jsx(Ct,{value:n.prompt,onChange:l=>t("prompt",l),documents:o,documentsLoading:c,documentsError:f,documentsUnavailable:i,onPreview:()=>v(!0),onRefetchDocuments:()=>void m()})}),r.jsx(it,{open:x,request:j,onClose:()=>v(!1)})]})}export{_t as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{bN as S,cb as ln,aH as A,bL as P,aG as W,cc as gn,cd as dn,ce as hn,cf as z,cg as pn,ch as An,ci as m,bO as N,bT as U,bW as R,cj as _n,bR as cn,ck as on,cl as wn,aI as V,cm as On,cn as b}from"./main-2Ng-WP0F.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||S(n)&&ln(n)==Pn}function vn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,H=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return vn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function Tn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Rn(n){return n!==n}function In(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function bn(n,r,e){return r===r?In(n,r,e):Tn(n,Rn,e)}function Ln(n,r){var e=n==null?0:n.length;return!!e&&bn(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Sn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Sn.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Gn=/\\(\\)?/g,Dn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Gn,"$1"):i||e)}),r});function Fn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Dn(Fn(n))}function I(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[I(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var K=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(K&&n&&n[K])}function Kr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Hn=Object.prototype,Kn=Hn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Kn.call(n,r)}))}:Bn;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Yn="__lodash_hash_undefined__";function Xn(n){return this.__data__.set(n,Yn),this}function Jn(n){return this.__data__.has(n)}function v(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}v.prototype.add=v.prototype.push=Xn;v.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,c=e&zn?new v:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var o=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(o!==void 0){if(o)continue;d=!1;break}if(c){if(!Qn(r,function(w,O){if(!tn(c,O)&&(p===w||f(p,w,e,i,t)))return c.push(O)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=P?P.prototype:void 0,L=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(L)return L.call(n)==L.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var c=t.get(n),p=t.get(r);if(c&&p)return c==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var o=s;++l<a;){d=u[l];var w=n[d],O=r[d];if(i)var F=s?i(O,w,d,r,n,t):i(w,O,d,n,r,t);if(!(F===void 0?w===O||f(w,O,e,i,t):F)){_=!1;break}o||(o=d=="constructor")}if(_&&!o){var y=n.constructor,E=r.constructor;y!=E&&"constructor"in n&&"constructor"in r&&!(typeof y=="function"&&y instanceof y&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var cr=1,X="[object Arguments]",J="[object Array]",T="[object Object]",or=Object.prototype,Q=or.hasOwnProperty;function wr(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==X?T:a,h=h==X?T:h;var g=a==T,l=h==T,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new R),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&cr)){var c=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(c||p){var _=c?n.value():n,o=p?r.value():r;return t||(t=new R),f(_,o,e,i,t)}}return d?(t||(t=new R),_r(n,r,e,i,f,t)):!1}function G(n,r,e,i,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:wr(n,r,e,i,G,f)}var Or=1,Pr=2;function vr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new R,l;if(!(l===void 0?G(h,a,Or|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!cn(n)}function yr(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=yr(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||vr(e,n,r)}}function Tr(n,r){return n!=null&&r in Object(n)}function Rr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=I(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&on(f)&&wn(s,f)&&(A(n)||z(n)))}function Ir(n,r){return n!=null&&Rr(n,r,Tr)}var br=1,Lr=2;function Sr(n,r){return $(n)&&sn(r)?un(I(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Ir(e,n):G(r,i,br|Lr)}}function xr(n){return function(r){return r==null?void 0:r[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(I(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Sr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&On(n,r,M)}function Gr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var D=Gr(Cr);function Dr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:D;return e(n,Dr(r))}function Fr(n,r){var e=[];return D(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Fr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,D)}var Nr=1/0,Ur=b&&1/C(new b([,-0]))[1]==Nr?function(n){return new b(n)}:yn,Br=200;function Xr(n,r,e){var i=-1,f=Ln,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new v}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{D as a,Kr as b,an as c,vn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Xr as l,Zr as m,qr as n,Tn as o,Dr as p,Cr as q,Yr as r,Bn as s,Rr as t,j as u,I as v,nn as w,Ir as x,Fn as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./main-
|
|
1
|
+
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./main-2Ng-WP0F.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|