airaknit 1.1.2-rc.10
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/LICENSE +84 -0
- package/README.md +204 -0
- package/bin/airaknit +9 -0
- package/bin/airaknit-project +14 -0
- package/bin/kanna +9 -0
- package/dist/client/assets/CompactSummaryMessage-c_sQ3ks3.js +1 -0
- package/dist/client/assets/ExitPlanModeMessage-BP1c8TZN.js +1 -0
- package/dist/client/assets/LocalFilePreviewDialog-Bzod-K9f.js +3 -0
- package/dist/client/assets/LocalProjectsSection-C6iLdJEd.js +1 -0
- package/dist/client/assets/TextMessage-DgQHhOU5.js +1 -0
- package/dist/client/assets/UserMessage-2vWqYqQt.js +1 -0
- package/dist/client/assets/_basePickBy-CVrAFfnZ.js +1 -0
- package/dist/client/assets/_baseUniq-JL-aaF4P.js +1 -0
- package/dist/client/assets/arc-B07zg7ol.js +1 -0
- package/dist/client/assets/architecture-YZFGNWBL-PSLVJL3p.js +1 -0
- package/dist/client/assets/architectureDiagram-Q4EWVU46-DfWIF1G_.js +36 -0
- package/dist/client/assets/array-BGFCBI0e.js +1 -0
- package/dist/client/assets/blockDiagram-DXYQGD6D-CzwIeo_B.js +132 -0
- package/dist/client/assets/bundle-mjs-BDE2gWbQ.js +1 -0
- package/dist/client/assets/button-DO50qOGv.js +1 -0
- package/dist/client/assets/c4Diagram-AHTNJAMY-CR8DCQRE.js +10 -0
- package/dist/client/assets/channel-Dj-UUfaF.js +1 -0
- package/dist/client/assets/chunk-2KRD3SAO-dznP-cn8.js +1 -0
- package/dist/client/assets/chunk-336JU56O-Dqss5Vu6.js +2 -0
- package/dist/client/assets/chunk-426QAEUC-CEKis_0_.js +1 -0
- package/dist/client/assets/chunk-4BX2VUAB-BYOv0Gm1.js +1 -0
- package/dist/client/assets/chunk-4TB4RGXK-BxzubH5S.js +206 -0
- package/dist/client/assets/chunk-55IACEB6-BSlTj03a.js +1 -0
- package/dist/client/assets/chunk-5FUZZQ4R-9Au93Bi1.js +62 -0
- package/dist/client/assets/chunk-5PVQY5BW-BhksHFEZ.js +2 -0
- package/dist/client/assets/chunk-67CJDMHE-BFwhz-8t.js +1 -0
- package/dist/client/assets/chunk-7N4EOEYR-BDUPds87.js +1 -0
- package/dist/client/assets/chunk-AA7GKIK3-CEWTdyXO.js +1 -0
- package/dist/client/assets/chunk-BO2N2NFS-D0LvxnhU.js +103 -0
- package/dist/client/assets/chunk-BSJP7CBP-BNJnK6sq.js +1 -0
- package/dist/client/assets/chunk-Bj-mKKzh.js +1 -0
- package/dist/client/assets/chunk-CIAEETIT-CYhfoCeN.js +1 -0
- package/dist/client/assets/chunk-EDXVE4YY-C5ovJLc0.js +1 -0
- package/dist/client/assets/chunk-ENJZ2VHE-HOhYaeGr.js +10 -0
- package/dist/client/assets/chunk-FMBD7UC4-BLCiKcAQ.js +15 -0
- package/dist/client/assets/chunk-FOC6F5B3-B6GtY2ek.js +1 -0
- package/dist/client/assets/chunk-ICPOFSXX-DPoIZoC5.js +122 -0
- package/dist/client/assets/chunk-K5T4RW27-BsKN63rv.js +94 -0
- package/dist/client/assets/chunk-KGLVRYIC-BUGn9uuY.js +1 -0
- package/dist/client/assets/chunk-LIHQZDEY-DhaZyo03.js +1 -0
- package/dist/client/assets/chunk-ORNJ4GCN-DlpeeJyi.js +1 -0
- package/dist/client/assets/chunk-OYMX7WX6-Dc9q7aYA.js +231 -0
- package/dist/client/assets/chunk-QZHKN3VN-BEdrPoSb.js +1 -0
- package/dist/client/assets/chunk-U2HBQHQK-CIB3Bjjd.js +70 -0
- package/dist/client/assets/chunk-X2U36JSP-CtB-o8Yp.js +1 -0
- package/dist/client/assets/chunk-XPW4576I-C6iHhX_8.js +32 -0
- package/dist/client/assets/chunk-YZCP3GAM-CTmKr6ZH.js +1 -0
- package/dist/client/assets/chunk-ZZ45TVLE-BgU8A2RF.js +1 -0
- package/dist/client/assets/classDiagram-6PBFFD2Q-Bqk5e679.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-6pSaZOkC.js +1 -0
- package/dist/client/assets/client-D5clbnAu.js +6 -0
- package/dist/client/assets/client-OcC7y5mZ.js +1 -0
- package/dist/client/assets/client-gw-k2D-Y.js +1 -0
- package/dist/client/assets/clone-DWcL7whJ.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-CrV5wsV_.js +1 -0
- package/dist/client/assets/cytoscape.esm--aLzKuep.js +321 -0
- package/dist/client/assets/dagre-CuRxWcrj.js +1 -0
- package/dist/client/assets/dagre-KV5264BT-BIDiVnkA.js +4 -0
- package/dist/client/assets/defaultLocale-CRZydyG6.js +1 -0
- package/dist/client/assets/diagram-5BDNPKRD-i1kjKRCB.js +10 -0
- package/dist/client/assets/diagram-G4DWMVQ6-9ZSLuhbl.js +24 -0
- package/dist/client/assets/diagram-MMDJMWI5-B4_CUjgv.js +43 -0
- package/dist/client/assets/diagram-TYMM5635-Ct5eTGS8.js +24 -0
- package/dist/client/assets/dist-CuB4kiSK.js +1 -0
- package/dist/client/assets/erDiagram-SMLLAGMA-Cy38ercc.js +85 -0
- package/dist/client/assets/flowDiagram-DWJPFMVM-CZKuYl0V.js +162 -0
- package/dist/client/assets/ganttDiagram-T4ZO3ILL-DLPjCh7a.js +292 -0
- package/dist/client/assets/gitGraph-7Q5UKJZL-DqbrtEp9.js +1 -0
- package/dist/client/assets/gitGraphDiagram-UUTBAWPF-BoRBkDhQ.js +106 -0
- package/dist/client/assets/graphlib-BcQ6qlQh.js +1 -0
- package/dist/client/assets/highlighted-body-OFNGDK62-BEpBVDTX.js +1 -0
- package/dist/client/assets/index-CxCnkDVM.js +105 -0
- package/dist/client/assets/index-N29Mip7A.css +1 -0
- package/dist/client/assets/info-OMHHGYJF-D98DRBJX.js +1 -0
- package/dist/client/assets/infoDiagram-42DDH7IO-BAcdTWbt.js +2 -0
- package/dist/client/assets/init-B8gtcn7T.js +1 -0
- package/dist/client/assets/isArrayLikeObject-D8SJFmkN.js +1 -0
- package/dist/client/assets/isEmpty-BF3YX5Jk.js +1 -0
- package/dist/client/assets/ishikawaDiagram-UXIWVN3A-Ynu2VKdC.js +70 -0
- package/dist/client/assets/journeyDiagram-VCZTEJTY-BjfhQaN3.js +139 -0
- package/dist/client/assets/jsx-runtime-CyI9ICYU.js +1 -0
- package/dist/client/assets/kanban-definition-6JOO6SKY-JLXH9zUJ.js +89 -0
- package/dist/client/assets/katex-B94qP8b6.js +265 -0
- package/dist/client/assets/lib--QVjyxmL.js +29 -0
- package/dist/client/assets/lib-B6rgJiZ9.js +1 -0
- package/dist/client/assets/line-DCrYfLBn.js +1 -0
- package/dist/client/assets/linear-_4upLmeo.js +1 -0
- package/dist/client/assets/mermaid-GHXKKRXX-rwJHYUmW.js +1 -0
- package/dist/client/assets/mermaid-parser.core-KZinfW8o.js +4 -0
- package/dist/client/assets/mermaid.core-QqY9gSNe.js +11 -0
- package/dist/client/assets/mindmap-definition-QFDTVHPH-TWgHDAzp.js +96 -0
- package/dist/client/assets/ordinal-CCj7PWgZ.js +1 -0
- package/dist/client/assets/packet-4T2RLAQJ-DEvfkn3F.js +1 -0
- package/dist/client/assets/path-DZF-JdEe.js +1 -0
- package/dist/client/assets/pie-ZZUOXDRM-72e6WVjb.js +1 -0
- package/dist/client/assets/pieDiagram-DEJITSTG-Cl8PCsoj.js +30 -0
- package/dist/client/assets/preload-helper-rov5CBGT.js +1 -0
- package/dist/client/assets/pty-client-Cqfije2a.js +1 -0
- package/dist/client/assets/ptyInstancesStore-DAmd6Lxt.js +1 -0
- package/dist/client/assets/quadrantDiagram-34T5L4WZ-CHyVGp9E.js +7 -0
- package/dist/client/assets/radar-PYXPWWZC-Cp7xd_EY.js +1 -0
- package/dist/client/assets/react-CClhXMB2.js +1 -0
- package/dist/client/assets/react-Dd6D81m0.js +1 -0
- package/dist/client/assets/react-dom--G6_6fQ_.js +1 -0
- package/dist/client/assets/requirementDiagram-MS252O5E-DaanG2iM.js +84 -0
- package/dist/client/assets/rough.esm-BsmKo2S5.js +1 -0
- package/dist/client/assets/sankeyDiagram-XADWPNL6-B_fhLY36.js +10 -0
- package/dist/client/assets/sequenceDiagram-FGHM5R23-C5FNrveI.js +157 -0
- package/dist/client/assets/src-DeTlMJAU.js +1 -0
- package/dist/client/assets/stateDiagram-FHFEXIEX-nTTcdjjQ.js +1 -0
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-Dw0632j_.js +1 -0
- package/dist/client/assets/timeline-definition-GMOUNBTQ-DkQV1yP8.js +120 -0
- package/dist/client/assets/treeView-SZITEDCU-ZLIgC7_K.js +1 -0
- package/dist/client/assets/treemap-W4RFUUIX-BqaMbB6N.js +1 -0
- package/dist/client/assets/uiIdentityOverlay-Ba7GNj7m.js +1 -0
- package/dist/client/assets/vennDiagram-DHZGUBPP-DbZ2xgs6.js +34 -0
- package/dist/client/assets/wardley-RL74JXVD-DXQS8zf4.js +1 -0
- package/dist/client/assets/wardleyDiagram-NUSXRM2D-BzCJ6MAu.js +20 -0
- package/dist/client/assets/xychartDiagram-5P7HB3ND-BSlFecop.js +7 -0
- package/dist/client/favicon.png +0 -0
- package/dist/client/favicon.svg +15 -0
- package/dist/client/fonts/body-medium.woff2 +0 -0
- package/dist/client/fonts/body-regular-italic.woff2 +0 -0
- package/dist/client/fonts/body-regular.woff2 +0 -0
- package/dist/client/fonts/body-semibold.woff2 +0 -0
- package/dist/client/index.html +31 -0
- package/dist/client/manifest.webmanifest +12 -0
- package/dist/client/sw.js +32 -0
- package/package.json +122 -0
- package/src/nats/auth-callout/callout-config.test.ts +93 -0
- package/src/nats/auth-callout/callout-config.ts +109 -0
- package/src/nats/auth-callout/callout.integration.test.ts +332 -0
- package/src/nats/auth-callout/keys.ts +103 -0
- package/src/nats/auth-callout/responder.ts +241 -0
- package/src/nats/auth-callout/scope-policy.test.ts +159 -0
- package/src/nats/auth-callout/scope-policy.ts +210 -0
- package/src/nats/auth-callout/token.test.ts +163 -0
- package/src/nats/auth-callout/token.ts +157 -0
- package/src/nats/nats-daemon-callout.ts +194 -0
- package/src/nats/nats-daemon.test.ts +77 -0
- package/src/nats/nats-daemon.ts +50 -0
- package/src/nats/nats-token.test.ts +61 -0
- package/src/nats/nats-token.ts +59 -0
- package/src/runner/coordination-mcp-integration.test.ts +134 -0
- package/src/runner/nats-coordination-client.test.ts +49 -0
- package/src/runner/nats-coordination-client.ts +94 -0
- package/src/runner/runner-agent.test.ts +469 -0
- package/src/runner/runner-agent.ts +453 -0
- package/src/runner/runner-credential.test.ts +93 -0
- package/src/runner/runner-credential.ts +82 -0
- package/src/runner/runner-nats.test.ts +495 -0
- package/src/runner/runner-nats.ts +323 -0
- package/src/runner/runner-pair.test.ts +107 -0
- package/src/runner/runner-pair.ts +81 -0
- package/src/runner/runner.test.ts +135 -0
- package/src/runner/runner.ts +212 -0
- package/src/runner/turn-factories.test.ts +97 -0
- package/src/runner/turn-factories.ts +475 -0
- package/src/server/agent-config-journey.test.ts +106 -0
- package/src/server/agent.ts +8 -0
- package/src/server/auto-continue/auth-error-detector.ts +66 -0
- package/src/server/auto-continue/limit-detector.ts +194 -0
- package/src/server/bm25.test.ts +92 -0
- package/src/server/bm25.ts +101 -0
- package/src/server/chat-events-jetstream.test.ts +135 -0
- package/src/server/claude-harness.ts +360 -0
- package/src/server/claude-pty/agent-normalizers.ts +309 -0
- package/src/server/claude-pty/auth.test.ts +38 -0
- package/src/server/claude-pty/auth.ts +32 -0
- package/src/server/claude-pty/claude-session-registry.adapter.ts +81 -0
- package/src/server/claude-pty/claude-session-registry.test.ts +149 -0
- package/src/server/claude-pty/driver.test.ts +902 -0
- package/src/server/claude-pty/driver.ts +807 -0
- package/src/server/claude-pty/jsonl-path.adapter.ts +57 -0
- package/src/server/claude-pty/jsonl-path.test.ts +114 -0
- package/src/server/claude-pty/jsonl-to-event.test.ts +241 -0
- package/src/server/claude-pty/jsonl-to-event.ts +174 -0
- package/src/server/claude-pty/output-ring.test.ts +35 -0
- package/src/server/claude-pty/output-ring.ts +25 -0
- package/src/server/claude-pty/parity-matrix.test.ts +227 -0
- package/src/server/claude-pty/pid-registry.adapter.ts +135 -0
- package/src/server/claude-pty/pid-registry.test.ts +122 -0
- package/src/server/claude-pty/preflight/binary-fingerprint.adapter.ts +20 -0
- package/src/server/claude-pty/preflight/binary-fingerprint.test.ts +32 -0
- package/src/server/claude-pty/pty-instance-registry.test.ts +177 -0
- package/src/server/claude-pty/pty-instance-registry.ts +166 -0
- package/src/server/claude-pty/pty-memory-sampler.adapter.test.ts +103 -0
- package/src/server/claude-pty/pty-memory-sampler.adapter.ts +85 -0
- package/src/server/claude-pty/pty-process.adapter.ts +66 -0
- package/src/server/claude-pty/pty-process.test.ts +49 -0
- package/src/server/claude-pty/resolve-binary.adapter.ts +106 -0
- package/src/server/claude-pty/resolve-binary.test.ts +118 -0
- package/src/server/claude-pty/runtime-dir.adapter.ts +19 -0
- package/src/server/claude-pty/settings-writer.adapter.ts +27 -0
- package/src/server/claude-pty/settings-writer.test.ts +22 -0
- package/src/server/claude-pty/smoke-test-io.adapter.ts +28 -0
- package/src/server/claude-pty/smoke-test.test.ts +191 -0
- package/src/server/claude-pty/smoke-test.ts +185 -0
- package/src/server/claude-pty/subagent-orchestrator.ts +887 -0
- package/src/server/claude-pty/tool-callback.ts +274 -0
- package/src/server/claude-pty/tui-control.test.ts +272 -0
- package/src/server/claude-pty/tui-control.ts +182 -0
- package/src/server/claude-pty/tui-source.adapter.test.ts +360 -0
- package/src/server/claude-pty/tui-source.adapter.ts +343 -0
- package/src/server/claude-pty/tunnel-gateway.ts +12 -0
- package/src/server/claude-pty-mcp/canonical-args.ts +15 -0
- package/src/server/claude-pty-mcp/fs-stat.adapter.ts +8 -0
- package/src/server/claude-pty-mcp/history-primer.ts +90 -0
- package/src/server/claude-pty-mcp/http-server.adapter.ts +33 -0
- package/src/server/claude-pty-mcp/mcp-http.ts +177 -0
- package/src/server/claude-pty-mcp/mcp.ts +412 -0
- package/src/server/claude-pty-mcp/mention-parser.ts +25 -0
- package/src/server/claude-pty-mcp/paths.ts +24 -0
- package/src/server/claude-pty-mcp/permission-gate.ts +243 -0
- package/src/server/claude-pty-mcp/terminal-pid-registry.adapter.ts +107 -0
- package/src/server/claude-pty-mcp/tools/ask-user-question.test.ts +119 -0
- package/src/server/claude-pty-mcp/tools/ask-user-question.ts +61 -0
- package/src/server/claude-pty-mcp/tools/bash.adapter.ts +76 -0
- package/src/server/claude-pty-mcp/tools/bash.test.ts +56 -0
- package/src/server/claude-pty-mcp/tools/delegate-subagent.test.ts +155 -0
- package/src/server/claude-pty-mcp/tools/delegate-subagent.ts +111 -0
- package/src/server/claude-pty-mcp/tools/edit.adapter.ts +95 -0
- package/src/server/claude-pty-mcp/tools/edit.test.ts +93 -0
- package/src/server/claude-pty-mcp/tools/exit-plan-mode.test.ts +61 -0
- package/src/server/claude-pty-mcp/tools/exit-plan-mode.ts +50 -0
- package/src/server/claude-pty-mcp/tools/glob.adapter.ts +86 -0
- package/src/server/claude-pty-mcp/tools/glob.test.ts +61 -0
- package/src/server/claude-pty-mcp/tools/grep.adapter.ts +126 -0
- package/src/server/claude-pty-mcp/tools/grep.test.ts +62 -0
- package/src/server/claude-pty-mcp/tools/read.adapter.ts +58 -0
- package/src/server/claude-pty-mcp/tools/read.test.ts +62 -0
- package/src/server/claude-pty-mcp/tools/tool-callback-shim.ts +42 -0
- package/src/server/claude-pty-mcp/tools/webfetch.test.ts +81 -0
- package/src/server/claude-pty-mcp/tools/webfetch.ts +82 -0
- package/src/server/claude-pty-mcp/tools/websearch.test.ts +40 -0
- package/src/server/claude-pty-mcp/tools/websearch.ts +42 -0
- package/src/server/claude-pty-mcp/tools/write.adapter.ts +60 -0
- package/src/server/claude-pty-mcp/tools/write.test.ts +52 -0
- package/src/server/claude-pty-mcp/uploads.adapter.ts +98 -0
- package/src/server/claude-pty-mcp/uploads.ts +38 -0
- package/src/server/claude-turn.test.ts +176 -0
- package/src/server/cli-runtime.test.ts +456 -0
- package/src/server/cli-runtime.ts +374 -0
- package/src/server/cli-supervisor.ts +81 -0
- package/src/server/cli.ts +78 -0
- package/src/server/client-log-forwarder.test.ts +74 -0
- package/src/server/client-log-forwarder.ts +75 -0
- package/src/server/codex-app-server-protocol.ts +449 -0
- package/src/server/codex-app-server.test.ts +2990 -0
- package/src/server/codex-app-server.ts +1713 -0
- package/src/server/coordination-integration.test.ts +63 -0
- package/src/server/coordination-mcp.test.ts +149 -0
- package/src/server/coordination-mcp.ts +197 -0
- package/src/server/delegation-coordinator.test.ts +675 -0
- package/src/server/delegation-coordinator.ts +454 -0
- package/src/server/discovery.test.ts +211 -0
- package/src/server/discovery.ts +301 -0
- package/src/server/event-store-agent-config.test.ts +124 -0
- package/src/server/event-store-coordination.test.ts +149 -0
- package/src/server/event-store-profile.test.ts +132 -0
- package/src/server/event-store-repo.test.ts +154 -0
- package/src/server/event-store-runner-team.test.ts +104 -0
- package/src/server/event-store.test.ts +342 -0
- package/src/server/event-store.ts +2208 -0
- package/src/server/events.ts +379 -0
- package/src/server/extension-router.test.ts +183 -0
- package/src/server/extension-router.ts +114 -0
- package/src/server/extensions/agents/server.test.ts +191 -0
- package/src/server/extensions/agents/server.ts +108 -0
- package/src/server/extensions/c3/server.test.ts +284 -0
- package/src/server/extensions/c3/server.ts +212 -0
- package/src/server/extensions/code/server.test.ts +200 -0
- package/src/server/extensions/code/server.ts +150 -0
- package/src/server/extensions.config.ts +10 -0
- package/src/server/external-open.ts +69 -0
- package/src/server/generate-fork-context.ts +58 -0
- package/src/server/generate-merge-context.test.ts +290 -0
- package/src/server/generate-merge-context.ts +141 -0
- package/src/server/generate-title.ts +36 -0
- package/src/server/git-clone-policy.test.ts +138 -0
- package/src/server/git-clone-policy.ts +27 -0
- package/src/server/harness-types.ts +1 -0
- package/src/server/journey-verification.test.ts +640 -0
- package/src/server/journey-verification.ts +195 -0
- package/src/server/machine-name.ts +22 -0
- package/src/server/nats-auth.test.ts +92 -0
- package/src/server/nats-auth.ts +6 -0
- package/src/server/nats-bind-guard.test.ts +71 -0
- package/src/server/nats-bind-guard.ts +42 -0
- package/src/server/nats-bridge.test.ts +141 -0
- package/src/server/nats-bridge.ts +111 -0
- package/src/server/nats-connector.test.ts +56 -0
- package/src/server/nats-connector.ts +71 -0
- package/src/server/nats-daemon-manager.test.ts +76 -0
- package/src/server/nats-daemon-manager.ts +174 -0
- package/src/server/nats-publisher.test.ts +356 -0
- package/src/server/nats-publisher.ts +271 -0
- package/src/server/nats-responders.test.ts +1018 -0
- package/src/server/nats-responders.ts +925 -0
- package/src/server/nats-streams.test.ts +112 -0
- package/src/server/nats-streams.ts +129 -0
- package/src/server/oauth-pool/oauth-responders.ts +185 -0
- package/src/server/oauth-pool/oauth-settings-store.ts +173 -0
- package/src/server/oauth-pool/oauth-token-pool.ts +303 -0
- package/src/server/orchestration.test.ts +1063 -0
- package/src/server/orchestration.ts +716 -0
- package/src/server/pairing-endpoints.test.ts +171 -0
- package/src/server/pairing-store.test.ts +154 -0
- package/src/server/pairing-store.ts +124 -0
- package/src/server/paths.ts +27 -0
- package/src/server/pr3-liveness.test.ts +252 -0
- package/src/server/process-utils.ts +10 -0
- package/src/server/project-cli.ts +180 -0
- package/src/server/provider-catalog.test.ts +177 -0
- package/src/server/provider-catalog.ts +146 -0
- package/src/server/pty-responders.ts +345 -0
- package/src/server/push-notifications.test.ts +234 -0
- package/src/server/push-notifications.ts +188 -0
- package/src/server/quick-response.test.ts +196 -0
- package/src/server/quick-response.ts +154 -0
- package/src/server/read-models-agent-config.test.ts +59 -0
- package/src/server/read-models-coordination.test.ts +69 -0
- package/src/server/read-models.test.ts +332 -0
- package/src/server/read-models.ts +258 -0
- package/src/server/repo-journey.test.ts +96 -0
- package/src/server/repo-manager.test.ts +118 -0
- package/src/server/repo-manager.ts +97 -0
- package/src/server/repo-status.test.ts +54 -0
- package/src/server/repo-status.ts +82 -0
- package/src/server/restart.test.ts +27 -0
- package/src/server/restart.ts +30 -0
- package/src/server/runner-incompatible-gate.test.ts +383 -0
- package/src/server/runner-manager.test.ts +72 -0
- package/src/server/runner-manager.ts +312 -0
- package/src/server/runner-pairing-urls.test.ts +59 -0
- package/src/server/runner-pairing-urls.ts +67 -0
- package/src/server/runner-proxy.test.ts +456 -0
- package/src/server/runner-proxy.ts +494 -0
- package/src/server/runner-router.test.ts +429 -0
- package/src/server/runner-router.ts +212 -0
- package/src/server/runner-routing.test.ts +584 -0
- package/src/server/runtime-registry.test.ts +436 -0
- package/src/server/runtime-registry.ts +307 -0
- package/src/server/sandbox-health.test.ts +127 -0
- package/src/server/sandbox-health.ts +94 -0
- package/src/server/sandbox-journey.test.ts +232 -0
- package/src/server/sandbox-manager.test.ts +146 -0
- package/src/server/sandbox-manager.ts +159 -0
- package/src/server/server.test.ts +287 -0
- package/src/server/server.ts +1108 -0
- package/src/server/session-discovery.test.ts +129 -0
- package/src/server/session-discovery.ts +475 -0
- package/src/server/session-index.test.ts +362 -0
- package/src/server/session-index.ts +119 -0
- package/src/server/session-seed.ts +288 -0
- package/src/server/share.test.ts +108 -0
- package/src/server/share.ts +113 -0
- package/src/server/skill-discovery.test.ts +201 -0
- package/src/server/skill-discovery.ts +77 -0
- package/src/server/storage/test-helpers.ts +67 -0
- package/src/server/terminal-manager.test.ts +309 -0
- package/src/server/terminal-manager.ts +354 -0
- package/src/server/transcript-consumer.test.ts +339 -0
- package/src/server/transcript-consumer.ts +162 -0
- package/src/server/transcript-search.test.ts +193 -0
- package/src/server/transcript-search.ts +83 -0
- package/src/server/transcript-utils.ts +52 -0
- package/src/server/update-manager.test.ts +107 -0
- package/src/server/update-manager.ts +230 -0
- package/src/server/workflow-engine.test.ts +251 -0
- package/src/server/workflow-engine.ts +169 -0
- package/src/server/workflow-mcp.ts +49 -0
- package/src/server/workflow-store.test.ts +155 -0
- package/src/server/workflow-store.ts +139 -0
- package/src/server/workspace-agent-integration.test.ts +167 -0
- package/src/server/workspace-agent-routes.test.ts +127 -0
- package/src/server/workspace-agent-routes.ts +89 -0
- package/src/server/workspace-agent.test.ts +103 -0
- package/src/server/workspace-agent.ts +102 -0
- package/src/server/workspace-cli.test.ts +79 -0
- package/src/server/workspace-config-manager.test.ts +109 -0
- package/src/server/workspace-config-manager.ts +83 -0
- package/src/server/workspace-directory-policy.test.ts +109 -0
- package/src/server/workspace-directory-policy.ts +56 -0
- package/src/shared/agent-config-types.ts +25 -0
- package/src/shared/branding.test.ts +42 -0
- package/src/shared/branding.ts +54 -0
- package/src/shared/compression.test.ts +85 -0
- package/src/shared/compression.ts +42 -0
- package/src/shared/coordination-store.test.ts +24 -0
- package/src/shared/coordination-store.ts +26 -0
- package/src/shared/dev-ports.test.ts +84 -0
- package/src/shared/dev-ports.ts +100 -0
- package/src/shared/extension-types.ts +45 -0
- package/src/shared/fork-presets.ts +54 -0
- package/src/shared/harness-types.test.ts +15 -0
- package/src/shared/harness-types.ts +21 -0
- package/src/shared/log-sink.test.ts +112 -0
- package/src/shared/log-sink.ts +185 -0
- package/src/shared/mention-pattern.ts +7 -0
- package/src/shared/merge-presets.ts +41 -0
- package/src/shared/nats-subjects.test.ts +61 -0
- package/src/shared/nats-subjects.ts +131 -0
- package/src/shared/permission-policy.ts +136 -0
- package/src/shared/ports.ts +3 -0
- package/src/shared/preset-types.ts +15 -0
- package/src/shared/profile-types.ts +49 -0
- package/src/shared/projectFileUrl.ts +36 -0
- package/src/shared/protocol.ts +153 -0
- package/src/shared/pty-instance.ts +43 -0
- package/src/shared/puggy/diagnostics/result.ts +18 -0
- package/src/shared/puggy/expressions/evaluate.ts +292 -0
- package/src/shared/puggy/index.test.ts +101 -0
- package/src/shared/puggy/index.ts +69 -0
- package/src/shared/puggy/parser/ast.ts +110 -0
- package/src/shared/puggy/parser/parser.ts +624 -0
- package/src/shared/puggy/renderer/html.ts +447 -0
- package/src/shared/runner-protocol.test.ts +277 -0
- package/src/shared/runner-protocol.ts +210 -0
- package/src/shared/runner-team-types.ts +73 -0
- package/src/shared/runtime-types.ts +48 -0
- package/src/shared/sandbox-types.ts +53 -0
- package/src/shared/tailwind-build.test.ts +12 -0
- package/src/shared/tinkaria-system-prompt.ts +101 -0
- package/src/shared/tools.test.ts +335 -0
- package/src/shared/tools.ts +397 -0
- package/src/shared/transcript-entries.ts +27 -0
- package/src/shared/transcript-render.test.ts +225 -0
- package/src/shared/transcript-render.ts +467 -0
- package/src/shared/types.ts +1031 -0
- package/src/shared/vite-config.test.ts +47 -0
- package/src/shared/web-context.test.ts +110 -0
- package/src/shared/web-context.ts +76 -0
- package/src/shared/workflow-types.ts +51 -0
- package/src/shared/workspace-types.ts +100 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Tinkaria Private Use License v1.1
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Tinkaria
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
This repository and all associated source code, assets, documentation, and
|
|
7
|
+
other materials (the "Software") are proprietary to Tinkaria.
|
|
8
|
+
|
|
9
|
+
This license is source-available only. It is not an open-source license.
|
|
10
|
+
|
|
11
|
+
For purposes of this license, "Tinkaria" means the copyright holder or any
|
|
12
|
+
authorized licensor of the Software.
|
|
13
|
+
|
|
14
|
+
1. Limited Permission
|
|
15
|
+
|
|
16
|
+
Permission is granted to use, copy, modify, and run the Software only for
|
|
17
|
+
strictly private, personal, internal, research, or evaluation purposes that
|
|
18
|
+
are non-commercial in nature.
|
|
19
|
+
|
|
20
|
+
This limited permission is revocable, non-exclusive, non-transferable, and
|
|
21
|
+
non-sublicensable. You must retain this license and all copyright,
|
|
22
|
+
proprietary, and attribution notices on every permitted copy.
|
|
23
|
+
|
|
24
|
+
2. Commercial Use Prohibited
|
|
25
|
+
|
|
26
|
+
You may not use the Software, or any modified version of it, for any
|
|
27
|
+
commercial purpose without prior written permission from Tinkaria.
|
|
28
|
+
|
|
29
|
+
Commercial use includes, without limitation:
|
|
30
|
+
|
|
31
|
+
- selling, licensing, sublicensing, leasing, or monetizing the Software;
|
|
32
|
+
- offering the Software as part of a paid or revenue-generating product or
|
|
33
|
+
service;
|
|
34
|
+
- making the Software available to third parties as a hosted or networked
|
|
35
|
+
service;
|
|
36
|
+
- providing hosted, managed, SaaS, consulting, or support services based on
|
|
37
|
+
the Software;
|
|
38
|
+
- using the Software in a business workflow, client project, or other activity
|
|
39
|
+
intended for commercial advantage or monetary compensation.
|
|
40
|
+
|
|
41
|
+
3. No Redistribution or Third-Party Access
|
|
42
|
+
|
|
43
|
+
You may not publish, distribute, sublicense, transfer, assign, or otherwise
|
|
44
|
+
make the Software available to any third party, whether in original or
|
|
45
|
+
modified form, without prior written permission from Tinkaria.
|
|
46
|
+
|
|
47
|
+
For clarity, you may not provide any third party with access to the Software
|
|
48
|
+
except as separately authorized in writing by Tinkaria.
|
|
49
|
+
|
|
50
|
+
4. No Patent or Other IP License
|
|
51
|
+
|
|
52
|
+
Except for the limited permission expressly stated in this license, no patent,
|
|
53
|
+
trade secret, trademark, publicity, or other intellectual-property rights are
|
|
54
|
+
granted, whether by implication, estoppel, or otherwise.
|
|
55
|
+
|
|
56
|
+
5. No Trademark or Branding Rights
|
|
57
|
+
|
|
58
|
+
This license does not grant any right to use the Tinkaria name, branding,
|
|
59
|
+
logos, trade dress, or other identifying marks.
|
|
60
|
+
|
|
61
|
+
6. Reservation of Rights
|
|
62
|
+
|
|
63
|
+
All rights not expressly granted under this license are reserved by Tinkaria.
|
|
64
|
+
Any use beyond the limited private, non-commercial permission above requires
|
|
65
|
+
prior written authorization from Tinkaria.
|
|
66
|
+
|
|
67
|
+
7. Termination
|
|
68
|
+
|
|
69
|
+
Any breach of this license immediately terminates your rights under it. Upon
|
|
70
|
+
termination, you must stop using the Software and destroy all copies in your
|
|
71
|
+
possession or control, including modified copies.
|
|
72
|
+
|
|
73
|
+
8. Disclaimer
|
|
74
|
+
|
|
75
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
76
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
77
|
+
FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT.
|
|
78
|
+
|
|
79
|
+
9. Limitation of Liability
|
|
80
|
+
|
|
81
|
+
TO THE MAXIMUM EXTENT PERMITTED BY LAW, TINKARIA SHALL NOT BE LIABLE FOR ANY
|
|
82
|
+
CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR
|
|
83
|
+
OTHERWISE, ARISING FROM OR IN CONNECTION WITH THE SOFTWARE OR THE USE OF THE
|
|
84
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/tinkaria-logo-fine.svg" alt="Airaknit" width="360" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Airaknit</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>A playful workbench UI for Claude Code and Codex</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/airaknit"><img src="https://img.shields.io/npm/v/airaknit?style=flat&label=npm&colorA=18181b&colorB=f472b6" alt="npm version" /></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/airaknit"><img src="https://img.shields.io/npm/dm/airaknit?style=flat&colorA=18181b&colorB=f472b6" alt="npm downloads" /></a>
|
|
14
|
+
<a href="https://github.com/thanh-dong/airaknit/actions/workflows/release-please.yml"><img src="https://github.com/thanh-dong/airaknit/actions/workflows/release-please.yml/badge.svg?branch=main" alt="Release Please" /></a>
|
|
15
|
+
<a href="https://github.com/thanh-dong/airaknit/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/airaknit?style=flat&colorA=18181b&colorB=f472b6" alt="license" /></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<picture>
|
|
20
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/screenshot.png" />
|
|
21
|
+
<source media="(prefers-color-scheme: light)" srcset="assets/screenshot-light.png" />
|
|
22
|
+
<img src="assets/screenshot.png" alt="Airaknit screenshot" width="800" />
|
|
23
|
+
</picture>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
Airaknit is a local-first browser workbench for coding agents. It gives Claude Code and Codex a shared UI with project-aware chat, embedded terminals, transcript rendering, session history, and a NATS-backed realtime runtime.
|
|
27
|
+
|
|
28
|
+
It started as a fork of [jakemor/kanna](https://github.com/jakemor/kanna). Kanna remains the upstream inspiration and original beautiful Claude Code web UI. This fork has since diverged heavily in architecture and product direction.
|
|
29
|
+
|
|
30
|
+
## Quickstart
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bun install -g airaknit
|
|
34
|
+
airaknit
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If Bun is not installed yet:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
curl -fsSL https://bun.sh/install | bash
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Default URL: `http://localhost:3210`
|
|
44
|
+
|
|
45
|
+
## What Airaknit Adds
|
|
46
|
+
|
|
47
|
+
- Multi-provider chat for Claude Code and Codex
|
|
48
|
+
- Embedded terminals with persisted layout
|
|
49
|
+
- Project-first sidebar and local project discovery
|
|
50
|
+
- Rich transcript rendering for tools, plans, diffs, and structured content
|
|
51
|
+
- Session resumption and local history
|
|
52
|
+
- Embedded NATS transport with snapshots, events, and command subjects
|
|
53
|
+
- Plan-mode approval flows inside the UI
|
|
54
|
+
- Local-first event-log persistence
|
|
55
|
+
|
|
56
|
+
## Upgrade Safety
|
|
57
|
+
|
|
58
|
+
The current runtime is multi-process and partially ephemeral:
|
|
59
|
+
|
|
60
|
+
- the server starts a dedicated embedded NATS daemon process on boot
|
|
61
|
+
- a separate runner process handles all turn execution (Claude and Codex)
|
|
62
|
+
|
|
63
|
+
For RC upgrades or machine handoff, do not assume live turns survive restart. Quiesce or cancel active work first, then verify a fresh Claude/Codex send after the upgraded instance starts.
|
|
64
|
+
|
|
65
|
+
For proxied deployments, prefer side-by-side cutover over in-place restart:
|
|
66
|
+
|
|
67
|
+
- keep the old backend running on its current port
|
|
68
|
+
- start the new release on a new port
|
|
69
|
+
- verify `/health`, `/auth/token`, `/`, and `/nats-ws` against the new backend directly
|
|
70
|
+
- switch the reverse proxy upstream to the new port
|
|
71
|
+
- retire the old backend only after the public route reports the new backend healthy
|
|
72
|
+
|
|
73
|
+
## Operational Health
|
|
74
|
+
|
|
75
|
+
`GET /health` returns structured runtime status for the components Airaknit owns:
|
|
76
|
+
|
|
77
|
+
- `natsDaemon`: embedded NATS subprocess pid/ports/aliveness
|
|
78
|
+
- `natsConnection`: hub connection readiness from the Bun server
|
|
79
|
+
- `runner`: runner registration and heartbeat freshness
|
|
80
|
+
|
|
81
|
+
HTTP `503` is reserved for required-component failure:
|
|
82
|
+
|
|
83
|
+
- embedded NATS daemon is down
|
|
84
|
+
- server NATS connection is closed
|
|
85
|
+
- runner is not registered or heartbeat-fresh
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## Install
|
|
89
|
+
|
|
90
|
+
Global install:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
bun install -g airaknit
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Run from source:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
git clone https://github.com/thanh-dong/airaknit.git
|
|
100
|
+
cd airaknit
|
|
101
|
+
bun install
|
|
102
|
+
bun run build
|
|
103
|
+
bun run start
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Usage
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
airaknit # start on localhost:3210
|
|
110
|
+
airaknit --port 4000 # custom port
|
|
111
|
+
airaknit --no-open # do not open a browser
|
|
112
|
+
airaknit --share # create a public Cloudflare share URL
|
|
113
|
+
airaknit --remote # bind 0.0.0.0
|
|
114
|
+
airaknit --host dev-box # bind a specific hostname or IP
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`--share` is incompatible with `--host` and `--remote`.
|
|
118
|
+
|
|
119
|
+
## Requirements
|
|
120
|
+
|
|
121
|
+
- [Bun](https://bun.sh) v1.3.5+
|
|
122
|
+
- A working [Claude Code](https://docs.anthropic.com/en/docs/claude-code) setup
|
|
123
|
+
- Optional: [Codex CLI](https://github.com/openai/codex) for Codex support
|
|
124
|
+
|
|
125
|
+
Embedded terminal support currently targets macOS and Linux through Bun PTY APIs.
|
|
126
|
+
|
|
127
|
+
## Architecture
|
|
128
|
+
|
|
129
|
+
[](https://diashort.apps.quickable.co/d/e69a07ad)
|
|
130
|
+
|
|
131
|
+
The browser connects to an embedded NATS server over WebSocket. The runtime currently includes:
|
|
132
|
+
|
|
133
|
+
- the main Bun HTTP/WebSocket server (thin API gateway)
|
|
134
|
+
- an embedded NATS daemon process
|
|
135
|
+
- a runner process that handles all turn execution (Claude and Codex)
|
|
136
|
+
|
|
137
|
+
Airaknit uses these internal transport families:
|
|
138
|
+
|
|
139
|
+
| Namespace | Pattern | Purpose |
|
|
140
|
+
|-----------|---------|---------|
|
|
141
|
+
| Snapshots | `runtime.snap.*` | Push state for sidebar, chat, settings, terminals |
|
|
142
|
+
| Events | `runtime.evt.*` | JetStream-backed terminal and chat event streams |
|
|
143
|
+
| Commands | `runtime.cmd.*` | Request/reply mutations from browser to server |
|
|
144
|
+
| Runner | `runtime.runner.*` | Runner registration, commands, heartbeats, turn events |
|
|
145
|
+
|
|
146
|
+
The `runtime.*` subject prefix keeps the internal transport namespace generic and separate from product branding.
|
|
147
|
+
|
|
148
|
+
Key patterns:
|
|
149
|
+
|
|
150
|
+
- Event sourcing with JSONL logs plus snapshot compaction
|
|
151
|
+
- CQRS-style split between persisted write path and derived read snapshots
|
|
152
|
+
- Reactive snapshot broadcasting over NATS
|
|
153
|
+
- Shared UI shell for multiple coding-agent providers
|
|
154
|
+
|
|
155
|
+
## Development
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
bun run dev
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Useful commands:
|
|
162
|
+
|
|
163
|
+
| Command | Description |
|
|
164
|
+
|---------|-------------|
|
|
165
|
+
| `bun run build` | Production build |
|
|
166
|
+
| `bun run check` | Typecheck and build |
|
|
167
|
+
| `bun run dev` | Client and server together |
|
|
168
|
+
| `bun run dev:client` | Vite client only |
|
|
169
|
+
| `bun run dev:server` | Bun server only |
|
|
170
|
+
| `bun run start` | Production server |
|
|
171
|
+
|
|
172
|
+
## Data Storage
|
|
173
|
+
|
|
174
|
+
Airaknit stores local state under:
|
|
175
|
+
|
|
176
|
+
- prod: `~/.tinkaria/data`
|
|
177
|
+
- dev: `~/.tinkaria-dev/data`
|
|
178
|
+
|
|
179
|
+
Main files:
|
|
180
|
+
|
|
181
|
+
| File | Purpose |
|
|
182
|
+
|------|---------|
|
|
183
|
+
| `projects.jsonl` | Project open/remove events |
|
|
184
|
+
| `chats.jsonl` | Chat create/rename/delete events |
|
|
185
|
+
| `messages.jsonl` | Transcript entries |
|
|
186
|
+
| `turns.jsonl` | Agent turn lifecycle events |
|
|
187
|
+
| `snapshot.json` | Compacted startup snapshot |
|
|
188
|
+
|
|
189
|
+
## Fork Lineage
|
|
190
|
+
|
|
191
|
+
> Airaknit was originally released as **Tinkaria**. The project was renamed to Airaknit; the data directories, internal subject namespace, and some asset filenames still reflect the original name.
|
|
192
|
+
|
|
193
|
+
Airaknit is a fork of [Kanna](https://github.com/jakemor/kanna), created by [@jakemor](https://github.com/jakemor). Kanna is the original inspiration for the UI direction and deserves explicit credit.
|
|
194
|
+
|
|
195
|
+
This fork diverged by:
|
|
196
|
+
|
|
197
|
+
- introducing embedded NATS as the runtime transport
|
|
198
|
+
- expanding into a broader Claude Code + Codex workbench
|
|
199
|
+
- adding local-first event-log persistence and richer session management
|
|
200
|
+
- removing the obsolete Tauri companion path in favor of a browser/PWA-first runtime
|
|
201
|
+
|
|
202
|
+
## License
|
|
203
|
+
|
|
204
|
+
This repository retains the upstream license terms in [LICENSE](LICENSE). Keep that file intact when redistributing.
|
package/bin/airaknit
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import process from "node:process"
|
|
3
|
+
import { CLI_CHILD_MODE, CLI_CHILD_MODE_ENV_VAR } from "../src/server/restart"
|
|
4
|
+
|
|
5
|
+
if (process.env[CLI_CHILD_MODE_ENV_VAR] === CLI_CHILD_MODE) {
|
|
6
|
+
await import("../src/server/cli.ts")
|
|
7
|
+
} else {
|
|
8
|
+
await import("../src/server/cli-supervisor.ts")
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import { parseProjectCliArgs, executeCommand } from "../src/server/project-cli"
|
|
3
|
+
|
|
4
|
+
const port = process.argv.includes("--port")
|
|
5
|
+
? process.argv[process.argv.indexOf("--port") + 1]
|
|
6
|
+
: "3210"
|
|
7
|
+
const baseUrl = `http://127.0.0.1:${port}`
|
|
8
|
+
|
|
9
|
+
const args = process.argv.slice(2).filter((a) => a !== "--port" && a !== port)
|
|
10
|
+
const parsed = parseProjectCliArgs(args)
|
|
11
|
+
const { output, exitCode } = await executeCommand(parsed, baseUrl)
|
|
12
|
+
|
|
13
|
+
console.log(output)
|
|
14
|
+
process.exit(exitCode)
|
package/bin/kanna
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import process from "node:process"
|
|
3
|
+
import { CLI_CHILD_MODE, CLI_CHILD_MODE_ENV_VAR } from "../src/server/restart"
|
|
4
|
+
|
|
5
|
+
if (process.env[CLI_CHILD_MODE_ENV_VAR] === CLI_CHILD_MODE) {
|
|
6
|
+
await import("../src/server/cli.ts")
|
|
7
|
+
} else {
|
|
8
|
+
await import("../src/server/cli-supervisor.ts")
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e}from"./chunk-Bj-mKKzh.js";import{t}from"./react-CClhXMB2.js";import{t as n}from"./jsx-runtime-CyI9ICYU.js";import{s as r}from"./lib--QVjyxmL.js";import{M as i,_ as a,g as o,h as s,m as c,p as l}from"./index-CxCnkDVM.js";import{t as u}from"./lib-B6rgJiZ9.js";var d=e(t(),1),f=n(),p=(0,d.memo)(function({message:e}){return(0,f.jsx)(s,{children:(0,f.jsxs)(l,{expandedContent:(0,f.jsx)(o,{className:`my-4 text-xs`,children:(0,f.jsx)(`div`,{className:`prose prose-sm dark:prose-invert max-w-none`,children:(0,f.jsx)(u,{remarkPlugins:[r],components:a(),children:e.summary})})}),children:[(0,f.jsx)(`div`,{className:`w-5 h-5 relative flex items-center justify-center`,children:(0,f.jsx)(i,{className:`h-4.5 w-4.5 text-muted-foreground`})}),(0,f.jsx)(c,{children:`Summarized`})]})})});export{p as CompactSummaryMessage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e}from"./chunk-Bj-mKKzh.js";import{t}from"./react-CClhXMB2.js";import{c as n,f as r,o as i}from"./uiIdentityOverlay-Ba7GNj7m.js";import{n as a,t as o}from"./button-DO50qOGv.js";import{t as s}from"./jsx-runtime-CyI9ICYU.js";import{s as c}from"./lib--QVjyxmL.js";import{B as l,L as u,T as d,V as f,_ as p,j as m}from"./index-CxCnkDVM.js";import{t as h}from"./lib-B6rgJiZ9.js";var g=r(`check-check`,[[`path`,{d:`M18 6 7 17l-5-5`,key:`116fxf`}],[`path`,{d:`m22 10-7.5 7.5L13 16`,key:`ke71qq`}]]),_=r(`corner-down-left`,[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]),v=r(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),y=e(t(),1),b=s(),x=i({id:`message.plan.area`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`}),S=i({id:`message.plan.approve.action`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`}),C=i({id:`message.plan.approve-clear.action`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`}),w=i({id:`message.plan.suggest-edits.action`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`}),T=i({id:`message.plan.adjust.action`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`}),E=(0,y.memo)(function({message:e,onConfirm:t,isLatest:r}){let i=!!e.result,[s,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(``),N=(0,y.useRef)(null),P=e.input;(0,y.useEffect)(()=>{k&&N.current&&N.current.focus()},[k]);let F=async()=>{P?.plan&&(await navigator.clipboard.writeText(P.plan),O(!0),setTimeout(()=>O(!1),2e3))},I=i?e.result:null,L=I?.discarded===!0;return(0,b.jsxs)(`div`,{className:`flex flex-col gap-3`,...n(x),children:[(0,b.jsxs)(`div`,{className:`relative rounded-2xl border border-border overflow-hidden group/plan`,children:[P?.plan&&(0,b.jsx)(o,{variant:`ghost`,size:`icon`,className:a(`absolute top-2 right-2 z-10 h-8 w-8 rounded-md text-muted-foreground opacity-0 group-hover/plan:opacity-100 transition-opacity`,!D&&`hover:text-foreground`,D&&`hover:!bg-transparent hover:!border-transparent`),onClick:F,children:D?(0,b.jsx)(f,{className:`h-4 w-4 text-green-400`}):(0,b.jsx)(u,{className:`h-4 w-4`})}),(0,b.jsxs)(`div`,{className:a(`!pt-5 !pb-0 px-4 md:py-4.5 md:px-5.5 bg-muted dark:bg-card overflow-scroll no-pre-highlight transition-all`,i&&!s?`max-h-[min(400px,40vh)] `:``,i?`hover:!pb-[32px]`:``),children:[i&&(0,b.jsxs)(o,{variant:`ghost`,className:`absolute z-10 bottom-2 pr-2.5 !pl-3.5 h-[34px] inline-flex gap-1 text-sm left-[50%] -translate-x-[50%] text-muted-foreground backdrop-blur-sm hover:text-foreground opacity-0 group-hover/plan:opacity-100 transition-all rounded-full border border-border`,onClick:()=>E(!s),children:[s?`Show Less`:`Show More`,(0,b.jsx)(l,{className:`size-3.5 transition-transform ${s?`rotate-180`:``}`})]}),P?.plan?(0,b.jsxs)(`div`,{className:`prose prose-sm dark:prose-invert max-w-none`,children:[(0,b.jsx)(h,{remarkPlugins:[c],components:p(),children:P.plan}),(0,b.jsx)(`div`,{className:`mt-5`})]}):(0,b.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No plan provided`})]})]}),i?(0,b.jsx)(`div`,{className:`flex justify-end mx-2`,children:(0,b.jsxs)(`span`,{className:`pl-4 inline text-sm font-medium bg-background text-foreground/60 border border-border py-1.5 px-3 rounded-[20px] leading-relaxed max-w-[85%] sm:max-w-[80%]`,children:[(0,b.jsx)(`em`,{children:L?`Discarded`:I?.clearContext?`Approved & Cleared Context`:I?.confirmed?`Approved`:I?.message?`Adjusted: "${I.message}"`:`Adjusted Plan`}),(0,b.jsx)(_,{className:`inline h-4 w-4 ml-1.5 -mt-0.5`})]})}):r?(0,b.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[!k&&(0,b.jsxs)(`div`,{className:`flex flex-col md:flex-row items-stretch md:items-center justify-end gap-2 mx-2`,children:[(0,b.jsxs)(o,{size:`sm`,onClick:()=>t(e.toolId,!0,!0),className:`rounded-full bg-primary text-background pr-4 md:order-last`,...n(C),children:[(0,b.jsx)(g,{className:`h-4 w-4 mr-1.5`}),`Approve & Clear`]}),(0,b.jsxs)(`div`,{className:`flex items-stretch md:items-center gap-2 md:contents`,children:[(0,b.jsxs)(o,{size:`sm`,variant:`outline`,onClick:()=>A(!0),className:`rounded-full border-border flex-1 md:flex-initial md:order-first`,...n(w),children:[(0,b.jsx)(m,{className:`h-4 w-4 mr-1.5`}),`Suggest Edits`]}),(0,b.jsxs)(o,{size:`sm`,variant:`outline`,onClick:()=>t(e.toolId,!0),className:`rounded-full border-border flex-1 md:flex-initial`,...n(S),children:[(0,b.jsx)(f,{className:`h-4 w-4 mr-1.5`}),`Approve`]})]})]}),k&&(0,b.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,b.jsx)(d,{ref:N,value:j,onChange:e=>M(e.target.value),onKeyDown:n=>{n.key===`Enter`&&!n.shiftKey&&j.trim()&&(n.preventDefault(),t(e.toolId,!1,void 0,j.trim())),n.key===`Escape`&&(A(!1),M(``))},placeholder:`Describe what you'd like to change...`,rows:3,className:`w-full rounded-2xl border border-border bg-muted dark:bg-card px-4 py-3 text-sm text-foreground placeholder:text-muted-foreground resize-none outline-none`}),(0,b.jsxs)(`div`,{className:`flex items-center justify-end gap-2 mx-2`,children:[(0,b.jsx)(o,{size:`sm`,variant:`ghost`,onClick:()=>{A(!1),M(``)},className:`rounded-full text-muted-foreground`,children:`Cancel`}),(0,b.jsxs)(o,{size:`sm`,disabled:!j.trim(),onClick:()=>t(e.toolId,!1,void 0,j.trim()),className:`rounded-full bg-primary text-background disabled:opacity-50 disabled:pointer-events-none`,...n(T),children:[(0,b.jsx)(v,{className:`h-4 w-4 mr-1.5`}),`Adjust Plan`]})]})]})]}):(0,b.jsx)(`div`,{className:`flex justify-end mx-2`,children:(0,b.jsx)(`span`,{className:`inline text-sm text-muted-foreground italic`,children:`Plan pending (newer prompt active)`})})]})});export{E as ExitPlanModeMessage};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{i as e}from"./uiIdentityOverlay-Ba7GNj7m.js";import{t}from"./jsx-runtime-CyI9ICYU.js";import{s as n}from"./lib--QVjyxmL.js";import{_ as r,b as i,f as a,v as o,x as s}from"./index-CxCnkDVM.js";import{t as c}from"./lib-B6rgJiZ9.js";var l={html:`html`,htm:`html`,svg:`svg`,mmd:`mermaid`,mermaid:`mermaid`,d2:`d2`,pug:`pug`},u=new Set([`md`,`markdown`,`mdx`]),d=new Set([`ts`,`tsx`,`js`,`jsx`,`json`,`css`,`scss`,`xml`,`sh`,`bash`,`zsh`,`py`,`rs`,`go`,`java`,`rb`,`php`,`yml`,`yaml`,`sql`]),f=new Set(`png.jpg.jpeg.gif.webp.avif.ico.bmp.tiff.pdf.zip.gz.tar.rar.7z.woff.woff2.ttf.otf.eot.mp4.mov.webm.mp3.wav.ogg.flac.exe.dll.so.dylib.bin.wasm.class.jar`.split(`.`));function p(e){let t=e.split(`/`).pop()??``;return t.includes(`.`)?t.split(`.`).pop()?.toLowerCase()??``:``}function m(e){let t=p(e);if(u.has(t))return{kind:`markdown`};let n=l[t];return n?{kind:`embed`,format:n}:f.has(t)?{kind:`unsupported`}:{kind:`code`,language:d.has(t)?t:null}}var h=t(),g=e({id:`content-preview.dialog`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`});function _(e){let t=e.split(`/`).pop()?.split(`.`).pop()?.toLowerCase()??``;switch(t){case`ts`:case`tsx`:case`js`:case`jsx`:case`json`:case`css`:case`scss`:case`html`:case`xml`:case`svg`:case`sh`:case`bash`:case`zsh`:case`py`:case`rs`:case`go`:case`java`:case`rb`:case`php`:case`yml`:case`yaml`:case`sql`:return t;default:return null}}function v(e,t){return`\`\`\`${_(e)??``}\n${t}\n\`\`\``}function y(e){return/[├└│─]/.test(e)}function b(e){return/^\S.*\/\s*$/.test(e)}function x(e){return/^\s*(```|~~~)/.test(e)}function S(e){let t=e.split(`
|
|
2
|
+
`),n=[],r=0,i=!1;for(;r<t.length;){let e=t[r]??``;if(x(e)){i=!i,n.push(e),r+=1;continue}if(!i&&y(e)){let e=[],i=n[n.length-1];for(i!==void 0&&b(i)&&(n.pop(),e.push(i));r<t.length&&y(t[r]??``);)e.push(t[r]??``),r+=1;if(e.length>1){let i=n[n.length-1];i!==void 0&&i.trim()!==``&&n.push(``),n.push("```text",...e,"```"),(t[r]??``).trim()!==``&&n.push(``);continue}n.push(...e);continue}n.push(e),r+=1}return n.join(`
|
|
3
|
+
`)}function C(e,t){let n=s(e.path,t);return e.line?e.column?`${n}:${e.line}:${e.column}`:`${n}:${e.line}`:n}function w(e){let t=m(e);return t.kind===`markdown`?`markdown`:t.kind===`embed`?`embed`:`code`}function T({preview:e,onOpenLocalLink:t}){let i=m(e.path);if(i.kind===`markdown`){let i=S(e.content);return(0,h.jsx)(`div`,{className:`text-pretty prose prose-sm dark:prose-invert px-0.5 w-full max-w-full space-y-4`,children:(0,h.jsx)(c,{remarkPlugins:[n],components:r({onOpenLocalLink:t,renderRichContentBlocks:!1}),children:i})})}return i.kind===`embed`?(0,h.jsx)(`div`,{className:`w-full max-w-full`,children:(0,h.jsx)(o,{format:i.format,source:e.content,fillHeight:!0})}):i.kind===`unsupported`?(0,h.jsx)(`div`,{className:`px-1 py-10 text-center text-sm text-muted-foreground`,children:`Preview unavailable for this file type.`}):(0,h.jsx)(`div`,{className:`text-pretty prose prose-sm dark:prose-invert px-0.5 w-full max-w-full space-y-4`,children:(0,h.jsx)(c,{remarkPlugins:[n,a],components:r({onOpenLocalLink:t,renderRichContentBlocks:!1}),children:v(e.path,e.content)})})}function E({preview:e,workspacePath:t,onClose:n,onOpenLocalLink:r}){return(0,h.jsx)(i,{open:e!==null,onOpenChange:e=>{e||n()},title:e?C(e,t):`File preview`,type:e?w(e.path):`code`,rawContent:e?.content,rootUiId:g,children:e?(0,h.jsx)(T,{preview:e,onOpenLocalLink:r}):null})}export{E as LocalFilePreviewDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,o as t}from"./uiIdentityOverlay-Ba7GNj7m.js";import{n,t as r}from"./button-DO50qOGv.js";import{t as i}from"./jsx-runtime-CyI9ICYU.js";import{C as a,D as o,E as s,F as c,O as l,w as u}from"./index-CxCnkDVM.js";var d=i(),f=t({id:`sidebar.project-group`,c3ComponentId:`c3-113`,c3ComponentLabel:`sidebar`});function p({group:t,expandedGroups:i,onToggleExpandedGroup:p,renderChatRow:m,chatsPerProject:h,onNewLocalChat:g,onRemoveProject:_,isConnected:v,startingLocalPath:y,onMergeSession:b,onOpenCoordination:x,onOpenProject:S}){let{groupKey:C,localPath:w,chats:T}=t,E=i.has(C),D=E?T:T.slice(0,h),O=T.length>h,k=v===!1,A=y===w,j=!!(b||x||S||g||_),M=`/project/${C}`,N=u(w);function P(e){S&&(e.preventDefault(),S(C))}let F=(0,d.jsx)(`a`,{href:M,"aria-label":`Open ${N} overview`,className:n(`sticky top-0 bg-background dark:bg-card z-10 relative p-[10px] flex items-center justify-between`,`rounded-lg text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`),onClick:P,children:(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsx)(`span`,{className:`relative size-3.5 shrink-0`,children:(0,d.jsx)(c,{className:`translate-y-[1px] size-3.5 shrink-0 text-slate-400 dark:text-slate-500 transition-all duration-200`})}),(0,d.jsxs)(s,{children:[(0,d.jsx)(l,{asChild:!0,children:(0,d.jsx)(`span`,{className:`truncate max-w-[150px] whitespace-nowrap text-sm text-slate-500 dark:text-slate-400`,children:N})}),(0,d.jsx)(o,{side:`right`,sideOffset:4,children:w})]})]})});return(0,d.jsxs)(`div`,{...e(f),className:`group/section`,children:[j?(0,d.jsx)(a,{onMergeSession:b?()=>b(C):void 0,mergeDisabled:k,onOpenCoordination:x?()=>x(C):void 0,onOpenProject:S?()=>S(C):void 0,onNewChat:g?()=>g(w):void 0,newChatDisabled:k||A,onRemove:_?()=>_(C):void 0,children:F}):F,(D.length>0||O)&&(0,d.jsxs)(`div`,{className:`space-y-[2px] mb-2 `,children:[D.map(m),O&&(0,d.jsx)(r,{variant:`link`,size:`sm`,onClick:()=>p(C),className:`pl-2.5 py-1 text-xs text-muted-foreground h-auto`,children:E?`Show less`:`Show more (${T.length-h})`})]})]})}function m({workspaceGroups:e,expandedGroups:t,onToggleExpandedGroup:n,renderChatRow:r,chatsPerProject:i,onNewLocalChat:a,onRemoveProject:o,isConnected:s,startingLocalPath:c,onMergeSession:l,onOpenCoordination:u,onOpenProject:f}){return(0,d.jsx)(d.Fragment,{children:e.map(e=>(0,d.jsx)(p,{group:e,expandedGroups:t,onToggleExpandedGroup:n,renderChatRow:r,chatsPerProject:i,onNewLocalChat:a,onRemoveProject:o,isConnected:s,startingLocalPath:c,onMergeSession:l,onOpenCoordination:u,onOpenProject:f},e.groupKey))})}export{m as LocalProjectsSection};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e}from"./chunk-Bj-mKKzh.js";import{t}from"./react-CClhXMB2.js";import{c as n,i as r}from"./uiIdentityOverlay-Ba7GNj7m.js";import{t as i}from"./jsx-runtime-CyI9ICYU.js";import{s as a}from"./lib--QVjyxmL.js";import{r as o}from"./chunk-BO2N2NFS-D0LvxnhU.js";import{_ as s,f as c,v as l,y as u}from"./index-CxCnkDVM.js";var d=e(t(),1),f=i(),p=800,m=/https:\/\/diashort\.apps\.quickable\.co\/(?:d|e)\/[A-Za-z0-9_-]+(?:\?[^\s<]*)?/g;function h(e){let t=e.match(m)??[];return[...new Set(t)]}var g=(0,d.memo)(function({message:e}){let t=r({id:`message.assistant.response`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`}),i=e.text.length>p,d=h(e.text),m=(0,f.jsx)(`div`,{className:`text-pretty prose prose-sm dark:prose-invert px-0.5 w-full max-w-none space-y-4`,children:(0,f.jsx)(o,{components:s(),linkSafety:{enabled:!1},remarkPlugins:[a,c],children:e.text})});return(0,f.jsxs)(`div`,{className:`w-full max-w-full`,...n(t),children:[i?(0,f.jsx)(u,{type:`markdown`,title:`Response`,defaultExpanded:!0,chrome:`inline`,controlsVisibility:`hover-or-touch`,bodyClassName:`p-0`,rawContent:e.text,children:m}):m,d.length>0?(0,f.jsx)(`div`,{className:`mt-4 space-y-3`,children:d.map((t,n)=>(0,f.jsx)(u,{type:`embed`,title:`Embedded Diagram`,defaultExpanded:!0,rawContent:t,children:(0,f.jsx)(l,{format:`diashort`,source:t})},`${e.id}-diashort-${n}`))}):null]})});export{g as TextMessage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e}from"./chunk-Bj-mKKzh.js";import{t}from"./react-CClhXMB2.js";import{c as n,i as r}from"./uiIdentityOverlay-Ba7GNj7m.js";import{n as i,t as a}from"./button-DO50qOGv.js";import{t as o}from"./jsx-runtime-CyI9ICYU.js";import{s}from"./lib--QVjyxmL.js";import{L as c,S as l,V as u,_ as d}from"./index-CxCnkDVM.js";import{t as f}from"./lib-B6rgJiZ9.js";var p=e(t(),1),m=o(),h=(0,p.memo)(function({skills:e,className:t}){return e.length===0?null:(0,m.jsx)(`div`,{className:i(`flex items-center gap-1 flex-wrap justify-end`,t),children:e.map(e=>(0,m.jsxs)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-[11px] font-mono text-muted-foreground`,children:[`/`,e]},e))})});function g(e,t){let n=t??(typeof navigator>`u`?null:navigator.clipboard);return n?n.writeText(e).then(()=>!0,()=>!1):Promise.resolve(!1)}var _=(0,p.memo)(function({content:e}){let t=r({id:`message.user.prompt`,c3ComponentId:`c3-111`,c3ComponentLabel:`messages`}),o=(0,p.useMemo)(()=>l(e),[e]),[_,v]=(0,p.useState)(!1),y=(0,p.useCallback)(async()=>{await g(o.content)&&(v(!0),setTimeout(()=>v(!1),2e3))},[o.content]);return(0,m.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col items-end gap-1.5`,...n(t),children:[o.skills?(0,m.jsx)(h,{skills:o.skills}):null,(0,m.jsx)(`div`,{className:`flex w-full min-w-0 justify-end gap-2 pt-2`,children:(0,m.jsxs)(`div`,{className:`group/user-message relative max-w-full min-w-0 sm:max-w-[80%] sm:min-w-[120px]`,children:[(0,m.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,className:i(`absolute top-2 right-2 z-10 h-7 w-7 rounded-full border border-border/50 bg-background/80 p-0 text-muted-foreground backdrop-blur-sm`,`opacity-0 transition-opacity duration-150`,`group-hover/user-message:opacity-100`,`group-active/user-message:opacity-100`,!_&&`hover:border-foreground/20 hover:bg-background hover:text-foreground`,_&&`border-emerald-500/30 bg-emerald-500/10 text-emerald-300 !opacity-100`),"aria-label":_?`Copied prompt`:`Copy prompt`,onClick:y,children:_?(0,m.jsx)(u,{className:`h-3 w-3`}):(0,m.jsx)(c,{className:`h-3 w-3`})}),(0,m.jsx)(`div`,{className:`max-w-full overflow-hidden rounded-[20px] py-1.5 px-3.5 bg-logo/[0.10] dark:bg-logo/[0.16] text-foreground border border-logo/25 dark:border-logo/30 shadow-sm prose prose-sm dark:prose-invert break-normal [overflow-wrap:break-word] [&_p]:whitespace-pre-line [&_p]:break-normal [&_p]:[overflow-wrap:break-word]`,children:(0,m.jsx)(f,{remarkPlugins:[s],components:d(),children:o.content})})]})})]})});export{_ as UserMessage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,C as n,E as r,H as i,M as a,U as o,V as s,k as c,p as l,w as u,z as d}from"./isArrayLikeObject-D8SJFmkN.js";import{A as f,C as p,D as m,M as h,N as g,S as _,T as v,f as y,h as b,u as x,w as S}from"./_baseUniq-JL-aaF4P.js";var C=/\s/;function w(e){for(var t=e.length;t--&&C.test(e.charAt(t)););return t}var ee=/^\s+/;function T(e){return e&&e.slice(0,w(e)+1).replace(ee,``)}var E=NaN,D=/^[-+]0x[0-9a-f]+$/i,O=/^0b[01]+$/i,k=/^0o[0-7]+$/i,A=parseInt;function j(e){if(typeof e==`number`)return e;if(g(e))return E;if(t(e)){var n=typeof e.valueOf==`function`?e.valueOf():e;e=t(n)?n+``:n}if(typeof e!=`string`)return e===0?e:+e;e=T(e);var r=O.test(e);return r||k.test(e)?A(e.slice(2),r?2:8):D.test(e)?E:+e}var M=1/0,N=17976931348623157e292;function P(e){return e?(e=j(e),e===M||e===-M?(e<0?-1:1)*N:e===e?e:0):e===0?e:0}function F(e){var t=P(e),n=t%1;return t===t?n?t-n:t:0}function I(e){return e!=null&&e.length?_(e,1):[]}var L=Object.prototype,R=L.hasOwnProperty,z=r(function(t,r){t=Object(t);var i=-1,a=r.length,o=a>2?r[2]:void 0;for(o&&n(r[0],r[1],o)&&(a=1);++i<a;)for(var s=r[i],c=l(s),u=-1,d=c.length;++u<d;){var f=c[u],p=t[f];(p===void 0||e(p,L[f])&&!R.call(t,f))&&(t[f]=s[f])}return t});function B(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function V(e){return function(t,n,r){var i=Object(t);if(!u(t)){var a=y(n,3);t=m(t),n=function(e){return a(i[e],e,i)}}var o=e(t,n,r);return o>-1?i[a?t[o]:o]:void 0}}var H=Math.max;function U(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:F(n);return i<0&&(i=H(r+i,0)),f(e,y(t,3),i)}var W=V(U);function G(e,t){var n=-1,r=u(e)?Array(e.length):[];return x(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function K(e,t){return(s(e)?h:G)(e,y(t,3))}var q=Object.prototype.hasOwnProperty;function J(e,t){return e!=null&&q.call(e,t)}function Y(e,t){return e!=null&&b(e,t,J)}var X=`[object String]`;function Z(e){return typeof e==`string`||!s(e)&&i(e)&&o(e)==X}function Q(e,t){return e<t}function $(e,t,n){for(var r=-1,i=e.length;++r<i;){var a=e[r],o=t(a);if(o!=null&&(s===void 0?o===o&&!g(o):n(o,s)))var s=o,c=a}return c}function te(e){return e&&e.length?$(e,d,Q):void 0}function ne(e,n,r,i){if(!t(e))return e;n=v(n,e);for(var o=-1,s=n.length,l=s-1,u=e;u!=null&&++o<s;){var d=S(n[o]),f=r;if(d===`__proto__`||d===`constructor`||d===`prototype`)return e;if(o!=l){var p=u[d];f=i?i(p,d,u):void 0,f===void 0&&(f=t(p)?p:a(n[o+1])?[]:{})}c(u,d,f),u=u[d]}return e}function re(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=p(e,o);n(s,o)&&ne(a,v(o,e),s)}return a}export{Z as a,G as c,z as d,I as f,Q as i,W as l,P as m,te as n,Y as o,F as p,$ as r,K as s,re as t,B as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,F as n,H as r,M as i,O as a,T as o,U as s,V as c,W as l,_ as u,a as d,b as f,c as p,d as m,g as h,h as g,i as _,k as v,l as y,n as ee,o as b,p as x,r as te,s as ne,u as re,v as ie,w as S,y as C,z as w}from"./isArrayLikeObject-D8SJFmkN.js";import{i as ae,n as T,r as E}from"./isEmpty-BF3YX5Jk.js";var oe=`[object Symbol]`;function D(e){return typeof e==`symbol`||r(e)&&s(e)==oe}function O(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var se=1/0,ce=l?l.prototype:void 0,le=ce?ce.toString:void 0;function ue(e){if(typeof e==`string`)return e;if(c(e))return O(e,ue)+``;if(D(e))return le?le.call(e):``;var t=e+``;return t==`0`&&1/e==-se?`-0`:t}function de(){}function fe(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function pe(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function me(e){return e!==e}function he(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function ge(e,t,n){return t===t?he(e,t,n):pe(e,me,n)}function _e(e,t){return!!(e!=null&&e.length)&&ge(e,t,0)>-1}function k(e){return S(e)?g(e):ae(e)}var ve=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ye=/^\w*$/;function A(e,t){if(c(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||D(e)?!0:ye.test(e)||!ve.test(e)||t!=null&&e in Object(t)}var be=500;function xe(e){var t=re(e,function(e){return n.size===be&&n.clear(),e}),n=t.cache;return t}var Se=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ce=/\\(\\)?/g,we=xe(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(Se,function(e,n,r,i){t.push(r?i.replace(Ce,`$1`):n||e)}),t});function j(e){return e==null?``:ue(e)}function M(e,t){return c(e)?e:A(e,t)?[e]:we(j(e))}var Te=1/0;function N(e){if(typeof e==`string`||D(e))return e;var t=e+``;return t==`0`&&1/e==-Te?`-0`:t}function P(e,t){t=M(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[N(t[n++])];return n&&n==r?e:void 0}function Ee(e,t,n){var r=e==null?void 0:P(e,t);return r===void 0?n:r}function F(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var I=l?l.isConcatSpreadable:void 0;function De(e){return c(e)||f(e)||!!(I&&e&&e[I])}function L(e,t,n,r,i){var a=-1,o=e.length;for(n||=De,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?L(s,t-1,n,r,i):F(i,s):r||(i[i.length]=s)}return i}function Oe(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function ke(e,t){return e&&a(t,k(t),e)}function Ae(e,t){return e&&a(t,x(t),e)}function R(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function z(){return[]}var je=Object.prototype.propertyIsEnumerable,B=Object.getOwnPropertySymbols,V=B?function(e){return e==null?[]:(e=Object(e),R(B(e),function(t){return je.call(e,t)}))}:z;function Me(e,t){return a(e,V(e),t)}var Ne=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)F(t,V(e)),e=y(e);return t}:z;function Pe(e,t){return a(e,Ne(e),t)}function Fe(e,t,n){var r=t(e);return c(e)?r:F(r,n(e))}function H(e){return Fe(e,k,V)}function Ie(e){return Fe(e,x,Ne)}var Le=Object.prototype.hasOwnProperty;function Re(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Le.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function ze(e,t){var n=t?d(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Be=/\w*$/;function Ve(e){var t=new e.constructor(e.source,Be.exec(e));return t.lastIndex=e.lastIndex,t}var He=l?l.prototype:void 0,Ue=He?He.valueOf:void 0;function We(e){return Ue?Object(Ue.call(e)):{}}var Ge=`[object Boolean]`,Ke=`[object Date]`,qe=`[object Map]`,Je=`[object Number]`,Ye=`[object RegExp]`,Xe=`[object Set]`,Ze=`[object String]`,Qe=`[object Symbol]`,$e=`[object ArrayBuffer]`,et=`[object DataView]`,tt=`[object Float32Array]`,nt=`[object Float64Array]`,rt=`[object Int8Array]`,it=`[object Int16Array]`,at=`[object Int32Array]`,ot=`[object Uint8Array]`,st=`[object Uint8ClampedArray]`,ct=`[object Uint16Array]`,lt=`[object Uint32Array]`;function ut(e,t,n){var r=e.constructor;switch(t){case $e:return d(e);case Ge:case Ke:return new r(+e);case et:return ze(e,n);case tt:case nt:case rt:case it:case at:case ot:case st:case ct:case lt:return _(e,n);case qe:return new r;case Je:case Ze:return new r(e);case Ye:return Ve(e);case Xe:return new r;case Qe:return We(e)}}var dt=`[object Map]`;function ft(e){return r(e)&&T(e)==dt}var pt=u&&u.isMap,mt=pt?ie(pt):ft,ht=`[object Set]`;function gt(e){return r(e)&&T(e)==ht}var _t=u&&u.isSet,vt=_t?ie(_t):gt,yt=1,bt=2,xt=4,St=`[object Arguments]`,Ct=`[object Array]`,wt=`[object Boolean]`,Tt=`[object Date]`,Et=`[object Error]`,Dt=`[object Function]`,Ot=`[object GeneratorFunction]`,kt=`[object Map]`,At=`[object Number]`,jt=`[object Object]`,Mt=`[object RegExp]`,Nt=`[object Set]`,Pt=`[object String]`,Ft=`[object Symbol]`,It=`[object WeakMap]`,Lt=`[object ArrayBuffer]`,Rt=`[object DataView]`,zt=`[object Float32Array]`,Bt=`[object Float64Array]`,Vt=`[object Int8Array]`,Ht=`[object Int16Array]`,Ut=`[object Int32Array]`,Wt=`[object Uint8Array]`,Gt=`[object Uint8ClampedArray]`,Kt=`[object Uint16Array]`,qt=`[object Uint32Array]`,U={};U[St]=U[Ct]=U[Lt]=U[Rt]=U[wt]=U[Tt]=U[zt]=U[Bt]=U[Vt]=U[Ht]=U[Ut]=U[kt]=U[At]=U[jt]=U[Mt]=U[Nt]=U[Pt]=U[Ft]=U[Wt]=U[Gt]=U[Kt]=U[qt]=!0,U[Et]=U[Dt]=U[It]=!1;function W(e,r,i,a,o,s){var l,u=r&yt,d=r&bt,f=r&xt;if(i&&(l=o?i(e,a,o,s):i(e)),l!==void 0)return l;if(!t(e))return e;var m=c(e);if(m){if(l=Re(e),!u)return n(e,l)}else{var h=T(e),g=h==Dt||h==Ot;if(C(e))return ne(e,u);if(h==jt||h==St||g&&!o){if(l=d||g?{}:te(e),!u)return d?Pe(e,Ae(l,e)):Me(e,ke(l,e))}else{if(!U[h])return o?e:{};l=ut(e,h,u)}}s||=new p;var _=s.get(e);if(_)return _;s.set(e,l),vt(e)?e.forEach(function(t){l.add(W(t,r,i,t,e,s))}):mt(e)&&e.forEach(function(t,n){l.set(n,W(t,r,i,n,e,s))});var y=m?void 0:(f?d?Ie:H:d?x:k)(e);return fe(y||e,function(t,n){y&&(n=t,t=e[n]),v(l,n,W(t,r,i,n,e,s))}),l}var Jt=`__lodash_hash_undefined__`;function Yt(e){return this.__data__.set(e,Jt),this}function Xt(e){return this.__data__.has(e)}function G(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new m;++t<n;)this.add(e[t])}G.prototype.add=G.prototype.push=Yt,G.prototype.has=Xt;function Zt(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function K(e,t){return e.has(t)}var Qt=1,$t=2;function en(e,t,n,r,i,a){var o=n&Qt,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&$t?new G:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],h=t[d];if(r)var g=o?r(h,m,d,t,e,a):r(m,h,d,e,t,a);if(g!==void 0){if(g)continue;f=!1;break}if(p){if(!Zt(t,function(e,t){if(!K(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}function tn(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function q(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var nn=1,rn=2,an=`[object Boolean]`,on=`[object Date]`,sn=`[object Error]`,cn=`[object Map]`,ln=`[object Number]`,un=`[object RegExp]`,dn=`[object Set]`,fn=`[object String]`,pn=`[object Symbol]`,mn=`[object ArrayBuffer]`,hn=`[object DataView]`,gn=l?l.prototype:void 0,J=gn?gn.valueOf:void 0;function _n(t,n,r,i,a,o,s){switch(r){case hn:if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)return!1;t=t.buffer,n=n.buffer;case mn:return!(t.byteLength!=n.byteLength||!o(new b(t),new b(n)));case an:case on:case ln:return e(+t,+n);case sn:return t.name==n.name&&t.message==n.message;case un:case fn:return t==n+``;case cn:var c=tn;case dn:var l=i&nn;if(c||=q,t.size!=n.size&&!l)return!1;var u=s.get(t);if(u)return u==n;i|=rn,s.set(t,n);var d=en(c(t),c(n),i,a,o,s);return s.delete(t),d;case pn:if(J)return J.call(t)==J.call(n)}return!1}var vn=1,yn=Object.prototype.hasOwnProperty;function bn(e,t,n,r,i,a){var o=n&vn,s=H(e),c=s.length;if(c!=H(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:yn.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var h=e[u],g=t[u];if(r)var _=o?r(g,h,u,t,e,a):r(h,g,u,e,t,a);if(!(_===void 0?h===g||i(h,g,n,r,a):_)){p=!1;break}m||=u==`constructor`}if(p&&!m){var v=e.constructor,y=t.constructor;v!=y&&`constructor`in e&&`constructor`in t&&!(typeof v==`function`&&v instanceof v&&typeof y==`function`&&y instanceof y)&&(p=!1)}return a.delete(e),a.delete(t),p}var xn=1,Sn=`[object Arguments]`,Cn=`[object Array]`,Y=`[object Object]`,wn=Object.prototype.hasOwnProperty;function Tn(e,t,n,r,i,a){var o=c(e),s=c(t),l=o?Cn:T(e),u=s?Cn:T(t);l=l==Sn?Y:l,u=u==Sn?Y:u;var d=l==Y,f=u==Y,m=l==u;if(m&&C(e)){if(!C(t))return!1;o=!0,d=!1}if(m&&!d)return a||=new p,o||h(e)?en(e,t,n,r,i,a):_n(e,t,l,n,r,i,a);if(!(n&xn)){var g=d&&wn.call(e,`__wrapped__`),_=f&&wn.call(t,`__wrapped__`);if(g||_){var v=g?e.value():e,y=_?t.value():t;return a||=new p,i(v,y,n,r,a)}}return m?(a||=new p,bn(e,t,n,r,i,a)):!1}function X(e,t,n,i,a){return e===t?!0:e==null||t==null||!r(e)&&!r(t)?e!==e&&t!==t:Tn(e,t,n,i,X,a)}var En=1,Dn=2;function On(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new p;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?X(u,l,En|Dn,r,d):f))return!1}}return!0}function kn(e){return e===e&&!t(e)}function An(e){for(var t=k(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,kn(i)]}return t}function Z(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}function jn(e){var t=An(e);return t.length==1&&t[0][2]?Z(t[0][0],t[0][1]):function(n){return n===e||On(n,e,t)}}function Mn(e,t){return e!=null&&t in Object(e)}function Nn(e,t,n){t=M(t,e);for(var r=-1,a=t.length,s=!1;++r<a;){var l=N(t[r]);if(!(s=e!=null&&n(e,l)))break;e=e[l]}return s||++r!=a?s:(a=e==null?0:e.length,!!a&&o(a)&&i(l,a)&&(c(e)||f(e)))}function Pn(e,t){return e!=null&&Nn(e,t,Mn)}var Fn=1,In=2;function Ln(e,t){return A(e)&&kn(t)?Z(N(e),t):function(n){var r=Ee(n,e);return r===void 0&&r===t?Pn(n,e):X(t,r,Fn|In)}}function Rn(e){return function(t){return t?.[e]}}function zn(e){return function(t){return P(t,e)}}function Bn(e){return A(e)?Rn(N(e)):zn(e)}function Q(e){return typeof e==`function`?e:e==null?w:typeof e==`object`?c(e)?Ln(e[0],e[1]):jn(e):Bn(e)}function Vn(e,t){return e&&ee(e,t,k)}function Hn(e,t){return function(n,r){if(n==null)return n;if(!S(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var $=Hn(Vn);function Un(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function Wn(e){return typeof e==`function`?e:w}function Gn(e,t){return(c(e)?fe:$)(e,Wn(t))}function Kn(e,t){var n=[];return $(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function qn(e,t){return(c(e)?R:Kn)(e,Q(t,3))}function Jn(e,t){return O(t,function(t){return e[t]})}function Yn(e){return e==null?[]:Jn(e,k(e))}function Xn(e){return e===void 0}function Zn(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function Qn(e,t,n){var r=c(e)?Oe:Zn,i=arguments.length<3;return r(e,Q(t,4),n,i,$)}var $n=E&&1/q(new E([,-0]))[1]==1/0?function(e){return new E(e)}:de,er=200;function tr(e,t,n){var r=-1,i=_e,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=Un;else if(a>=er){var l=t?null:$n(e);if(l)return q(l);o=!1,i=K,c=new G}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}export{pe as A,P as C,k as D,j as E,O as M,D as N,_e as O,L as S,M as T,Zt as _,qn as a,Ie as b,Wn as c,Vn as d,Q as f,K as g,Nn as h,Yn as i,de as j,ge as k,Un as l,Pn as m,Qn as n,Kn as o,Rn as p,Xn as r,Gn as s,tr as t,$ as u,G as v,N as w,R as x,W as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./path-DZF-JdEe.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-CuB4kiSK.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i)if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-K5T4RW27-BsKN63rv.js";import{n as e}from"./chunk-7N4EOEYR-BDUPds87.js";export{e as createArchitectureServices};
|