pim-agent 0.13.0 → 0.14.0
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/package.json +3 -3
- package/packages/core/src/attachments/AttachmentStore.ts +8 -13
- package/packages/core/src/attachments/Attachments.ts +2 -4
- package/packages/core/src/extensions/CoreExtensions.ts +1 -1
- package/packages/core/src/extensions/apply-patch/coordinator.ts +1 -1
- package/packages/core/src/extensions/apply-patch/executor.ts +21 -25
- package/packages/core/src/extensions/apply-patch/matcher.ts +1 -1
- package/packages/core/src/extensions/apply-patch/model.ts +2 -6
- package/packages/core/src/extensions/apply-patch/parser.ts +60 -162
- package/packages/core/src/extensions/apply-patch/schema.ts +0 -1
- package/packages/core/src/extensions/bash/MemoryCap.ts +5 -4
- package/packages/core/src/extensions/bash/capture.ts +16 -23
- package/packages/core/src/extensions/bash/format.ts +2 -2
- package/packages/core/src/extensions/bash/image.ts +4 -8
- package/packages/core/src/extensions/bash/index.ts +1 -1
- package/packages/core/src/extensions/bash/render.ts +1 -1
- package/packages/core/src/extensions/bash/run.ts +9 -15
- package/packages/core/src/extensions/bash/schema.ts +4 -4
- package/packages/core/src/extensions/edit/edit.ts +14 -33
- package/packages/core/src/extensions/glob/glob.ts +1 -3
- package/packages/core/src/extensions/glob/index.ts +7 -9
- package/packages/core/src/extensions/glob/render.ts +2 -4
- package/packages/core/src/extensions/glob/schema.ts +1 -1
- package/packages/core/src/extensions/grep/grep.ts +7 -7
- package/packages/core/src/extensions/grep/render.ts +5 -6
- package/packages/core/src/extensions/grep/schema.ts +3 -7
- package/packages/core/src/extensions/read/ImageMemory.ts +2 -8
- package/packages/core/src/extensions/read/image.ts +3 -3
- package/packages/core/src/extensions/read/index.ts +2 -14
- package/packages/core/src/extensions/read/read.ts +5 -6
- package/packages/core/src/extensions/read/render.ts +1 -1
- package/packages/core/src/extensions/read/schema.ts +2 -2
- package/packages/core/src/extensions/subagent/render.ts +2 -2
- package/packages/core/src/extensions/subagent/subagent.ts +10 -21
- package/packages/core/src/extensions/system-prompt/index.ts +1 -2
- package/packages/core/src/extensions/system-prompt/prompt.ts +2 -4
- package/packages/core/src/extensions/todo/render.ts +1 -4
- package/packages/core/src/extensions/todo/todo.ts +16 -23
- package/packages/core/src/extensions/web-fetch/JinaReaderClient.ts +3 -11
- package/packages/core/src/extensions/web-fetch/WebViewFetchClient.ts +1 -3
- package/packages/core/src/extensions/web-fetch/fetch.ts +4 -12
- package/packages/core/src/extensions/web-fetch/image.ts +3 -4
- package/packages/core/src/extensions/web-fetch/index.ts +2 -13
- package/packages/core/src/extensions/web-fetch/render.ts +3 -4
- package/packages/core/src/extensions/web-fetch/schema.ts +3 -4
- package/packages/core/src/extensions/web-search/ExaMcpClient.ts +23 -31
- package/packages/core/src/extensions/web-search/SearchBreaker.ts +1 -1
- package/packages/core/src/extensions/web-search/SearchChain.ts +6 -5
- package/packages/core/src/extensions/web-search/providers/DuckDuckGoProvider.ts +2 -2
- package/packages/core/src/extensions/web-search/providers/FirecrawlProvider.ts +1 -2
- package/packages/core/src/extensions/web-search/providers/SearchProvider.ts +3 -3
- package/packages/core/src/extensions/write/write.ts +1 -1
- package/packages/core/src/picker/InProcessFilePickerSuggestionEngine.ts +1 -3
- package/packages/core/src/picker/PickerItem.ts +1 -1
- package/packages/core/src/picker/PickerService.ts +3 -7
- package/packages/core/src/picker/RemoteFilePickerSuggestionEngine.ts +1 -2
- package/packages/core/src/picker/catalog.ts +7 -15
- package/packages/core/src/picker/filePickerWorker.ts +1 -3
- package/packages/core/src/picker/ranker.ts +1 -1
- package/packages/core/src/picker/token.ts +3 -4
- package/packages/core/src/session/AgentRuntime.ts +5 -8
- package/packages/core/src/session/EventLog.ts +6 -12
- package/packages/core/src/session/ReadCursors.ts +3 -4
- package/packages/core/src/session/SearchIndex.ts +49 -86
- package/packages/core/src/session/SearchTokens.ts +4 -7
- package/packages/core/src/session/SessionCache.ts +8 -6
- package/packages/core/src/session/SessionDigest.ts +10 -19
- package/packages/core/src/session/SessionHost.ts +53 -83
- package/packages/core/src/session/SessionLease.ts +12 -15
- package/packages/core/src/session/SessionMeta.ts +16 -32
- package/packages/core/src/session/SessionName.ts +3 -7
- package/packages/core/src/session/SessionRegistry.ts +13 -29
- package/packages/core/src/session/SessionUi.ts +12 -16
- package/packages/core/src/session/WriteMark.ts +7 -16
- package/packages/core/src/shared/Cli.ts +1 -1
- package/packages/core/src/shared/DaemonUnit.ts +1 -2
- package/packages/core/src/shared/DiffLines.ts +16 -34
- package/packages/core/src/shared/DiffRenderer.ts +8 -27
- package/packages/core/src/shared/Directories.ts +4 -4
- package/packages/core/src/shared/EditMatcher.ts +18 -50
- package/packages/core/src/shared/ExtensionToggles.ts +3 -6
- package/packages/core/src/shared/FileEnumerator.ts +73 -57
- package/packages/core/src/shared/FileScanner.ts +5 -13
- package/packages/core/src/shared/FileWatch.ts +13 -17
- package/packages/core/src/shared/Format.ts +2 -3
- package/packages/core/src/shared/FuzzyMatcher.ts +18 -19
- package/packages/core/src/shared/Git.ts +22 -47
- package/packages/core/src/shared/GitMonitor.ts +12 -23
- package/packages/core/src/shared/GlobExclusions.ts +0 -4
- package/packages/core/src/shared/Http.ts +1 -1
- package/packages/core/src/shared/ImageMime.ts +3 -5
- package/packages/core/src/shared/Images.ts +17 -27
- package/packages/core/src/shared/Languages.ts +2 -2
- package/packages/core/src/shared/Levenshtein.ts +1 -6
- package/packages/core/src/shared/Lines.ts +1 -1
- package/packages/core/src/shared/McpClient.ts +2 -2
- package/packages/core/src/shared/PatchSummary.ts +1 -1
- package/packages/core/src/shared/Paths.ts +4 -1
- package/packages/core/src/shared/PiExtensions.ts +5 -12
- package/packages/core/src/shared/PimSettings.ts +14 -15
- package/packages/core/src/shared/Proc.ts +2 -3
- package/packages/core/src/shared/RateLimiter.ts +1 -1
- package/packages/core/src/shared/Renderer.ts +1 -3
- package/packages/core/src/shared/RepoDiff.ts +24 -46
- package/packages/core/src/shared/SearchRender.ts +3 -4
- package/packages/core/src/shared/SpillCache.ts +2 -3
- package/packages/core/src/shared/SubagentLogs.ts +4 -6
- package/packages/core/src/shared/Supervisor.ts +19 -32
- package/packages/core/src/shared/Surface.ts +1 -1
- package/packages/core/src/shared/Sweeper.ts +1 -1
- package/packages/core/src/shared/Tools.ts +17 -30
- package/packages/core/src/shared/Updater.ts +15 -15
- package/packages/core/src/view/BodyRenderer.ts +1 -1
- package/packages/core/src/view/DiffBlocks.ts +0 -1
- package/packages/core/src/view/DiffExpand.ts +10 -25
- package/packages/core/src/view/DiffLayout.ts +2 -2
- package/packages/core/src/view/DiffPairs.ts +2 -2
- package/packages/core/src/view/MarkdownPainter.ts +2 -19
- package/packages/core/src/view/MovePath.ts +4 -17
- package/packages/core/src/view/Painting.ts +4 -4
- package/packages/core/src/view/ViewBlock.ts +11 -12
- package/packages/daemon/src/Daemon.ts +2 -7
- package/packages/daemon/src/DaemonInstall.ts +5 -12
- package/packages/daemon/src/Surfaces.ts +3 -12
- package/packages/daemon/src/TelegramSurface.ts +0 -1
- package/packages/daemon/src/index.ts +0 -1
- package/packages/protocol/src/Command.ts +33 -41
- package/packages/protocol/src/Diff.ts +0 -5
- package/packages/protocol/src/ImageRoute.ts +2 -5
- package/packages/protocol/src/ServerEvent.ts +68 -105
- package/packages/server/src/AttachmentEndpoint.ts +45 -19
- package/packages/server/src/ClientConnection.ts +11 -12
- package/packages/server/src/ImageEndpoint.ts +3 -4
- package/packages/server/src/ProbeClient.ts +26 -59
- package/packages/server/src/Reloader.ts +4 -7
- package/packages/server/src/SendFileTool.ts +1 -1
- package/packages/server/src/SessionCatalogue.ts +35 -47
- package/packages/server/src/SessionProjection.ts +7 -12
- package/packages/server/src/SessionStream.ts +33 -80
- package/packages/server/src/StaticClient.ts +7 -8
- package/packages/server/src/WebOptions.ts +2 -6
- package/packages/server/src/WsGateway.ts +35 -96
- package/packages/server/src/probe.ts +6 -18
- package/packages/telegram/src/Bot.ts +2 -2
- package/packages/telegram/src/Commands.ts +108 -65
- package/packages/telegram/src/Config.ts +1 -6
- package/packages/telegram/src/Markdown.ts +4 -13
- package/packages/telegram/src/Renderer.ts +1 -1
- package/packages/telegram/src/Session.ts +3 -10
- package/packages/telegram/src/TaskScheduler.ts +31 -10
- package/packages/telegram/src/TaskStore.ts +11 -1
- package/packages/telegram/src/TaskTool.ts +1 -1
- package/packages/telegram/src/UpdateConfirm.ts +2 -2
- package/packages/tui/src/extensions/_init/index.ts +2 -5
- package/packages/tui/src/extensions/file-picker/index.ts +2 -6
- package/packages/tui/src/extensions/footer/index.ts +0 -1
- package/packages/tui/src/extensions/footer/powerline.ts +16 -28
- package/packages/tui/src/extensions/pim/index.ts +1 -1
- package/packages/tui/src/extensions/session-lease/index.ts +5 -6
- package/packages/tui/src/extensions/working-indicator/index.ts +1 -2
- package/packages/tui/src/themes/themeCliArgs.ts +1 -1
- package/packages/web/dist/client/assets/{abnfDiagram-O67JEVCF-CZ7V84ot.js → abnfDiagram-O67JEVCF-WweOU5DK.js} +1 -1
- package/packages/web/dist/client/assets/{arc-DiHGkUvc.js → arc-O2PmZXWt.js} +1 -1
- package/packages/web/dist/client/assets/architecture-7GRP2DOG-COBxVilU.js +1 -0
- package/packages/web/dist/client/assets/{architectureDiagram-NJMV4G6O-XS5DhfJB.js → architectureDiagram-NJMV4G6O-DwYq1YaM.js} +1 -1
- package/packages/web/dist/client/assets/{blockDiagram-BEXU5L5S-BCsgLvy1.js → blockDiagram-BEXU5L5S-CVab041n.js} +1 -1
- package/packages/web/dist/client/assets/{c4Diagram-YGBWAQC7-Bj9LcWNm.js → c4Diagram-YGBWAQC7-BmotHez3.js} +1 -1
- package/packages/web/dist/client/assets/channel-BKV-IcTA.js +1 -0
- package/packages/web/dist/client/assets/{chunk-3FUC2YCW-BmDurFxp.js → chunk-3FUC2YCW-CWNS7-n4.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-5DYCD2WN-DAjG-pqn.js → chunk-5DYCD2WN-DflvXohu.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-742MDFTN-Bmxs5puY.js → chunk-742MDFTN-B_0t6_RE.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-7INBJB4K-Di7kIxrQ.js → chunk-7INBJB4K-wKj0Q3Kv.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-7M6MHVWA-CSc8sR0b.js → chunk-7M6MHVWA-BMvUghc8.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-7PRAP22T-C8kd5QvY.js → chunk-7PRAP22T-BY41wkcT.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-GTNCS2PH-DG2b2LYE.js → chunk-GTNCS2PH-PqY_YoS0.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-GWA4HPMP-DdLaLQCu.js → chunk-GWA4HPMP-fozSU5ty.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-MBY4JIJT-C1j0yQlk.js → chunk-MBY4JIJT-CrHrC3jw.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-NETBCI7D-Bfq9H74p.js → chunk-NETBCI7D-DWdAxieG.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-O7XYJQB3-ZHvBmBO-.js → chunk-O7XYJQB3-B6uOn9iS.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-UA2S7LBM-ku1JeHSK.js → chunk-UA2S7LBM-BxYSHqyy.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-WEXAMYUT-BP1iga_7.js → chunk-WEXAMYUT-CtwIaQDa.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-XXDRQBXY-BBeccPcX.js → chunk-XXDRQBXY-fgBFe-PX.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-Z7XXMR3K-SMHZugaR.js → chunk-Z7XXMR3K-CPonoV3p.js} +1 -1
- package/packages/web/dist/client/assets/{chunk-ZIGJFQKS-CFU_JLG4.js → chunk-ZIGJFQKS-Cdu87cTj.js} +1 -1
- package/packages/web/dist/client/assets/{classDiagram-v2-NBCMYWYE-CYviuQzJ.js → classDiagram-v2-NBCMYWYE-DSWsPaa7.js} +1 -1
- package/packages/web/dist/client/assets/{core-DyHsgs5k.js → core-CBoS7AST.js} +1 -1
- package/packages/web/dist/client/assets/{cose-bilkent-JH36ORCC-9v2ZkJzo.js → cose-bilkent-JH36ORCC-CTwlldtJ.js} +1 -1
- package/packages/web/dist/client/assets/{cynefin-OW5HDTMX-Bx5xRadi.js → cynefin-OW5HDTMX-CZQ4EPNJ.js} +1 -1
- package/packages/web/dist/client/assets/{cynefinDiagram-VND7K2PF-BRfGDKqa.js → cynefinDiagram-VND7K2PF-C2gp6H_Q.js} +1 -1
- package/packages/web/dist/client/assets/{dagre-6A5THRUB-C4l-2L2e.js → dagre-6A5THRUB-CDxTP47t.js} +1 -1
- package/packages/web/dist/client/assets/{diagram-22UHCM2B-d_hQ3kyi.js → diagram-22UHCM2B-BIohE1lI.js} +1 -1
- package/packages/web/dist/client/assets/{diagram-3UASUU5V-DrEeguPI.js → diagram-3UASUU5V-TwAUir-w.js} +1 -1
- package/packages/web/dist/client/assets/{diagram-ATOU4E4O-BmfQ22pD.js → diagram-ATOU4E4O-BM1JQrIu.js} +1 -1
- package/packages/web/dist/client/assets/{diagram-CDSNMT55-BjVWjuPF.js → diagram-CDSNMT55-BKIqhxSI.js} +1 -1
- package/packages/web/dist/client/assets/{diagram-MLGK6HIB-wDjk-O8i.js → diagram-MLGK6HIB-CVe3QDHr.js} +1 -1
- package/packages/web/dist/client/assets/{diagram-MPIPVDR6-DqXQFE1s.js → diagram-MPIPVDR6-Bj-MQIFI.js} +1 -1
- package/packages/web/dist/client/assets/{dist-BddGOpie.js → dist-DlZpcyc2.js} +1 -1
- package/packages/web/dist/client/assets/{ebnfDiagram-ZINNZB2B-UB8kOITM.js → ebnfDiagram-ZINNZB2B-C06mmvmz.js} +1 -1
- package/packages/web/dist/client/assets/{elk-276RUBZZ-D4miYQnD.js → elk-276RUBZZ-CizJSNEj.js} +1 -1
- package/packages/web/dist/client/assets/{erDiagram-OPXOYQCR--RXKv7KH.js → erDiagram-OPXOYQCR-M3FQkKI1.js} +1 -1
- package/packages/web/dist/client/assets/eventmodeling-NTZA5JFV-D_UXLpIu.js +1 -0
- package/packages/web/dist/client/assets/flowDiagram-KWPJA3E3-BT4eEEVm.js +1 -0
- package/packages/web/dist/client/assets/{ganttDiagram-FUAMR5RP-C0CFpE5x.js → ganttDiagram-FUAMR5RP-CojF9Q16.js} +1 -1
- package/packages/web/dist/client/assets/{gitGraph-4MIJSDKK-VPL7nv2c.js → gitGraph-4MIJSDKK-YvKqGEPk.js} +1 -1
- package/packages/web/dist/client/assets/{gitGraphDiagram-X574FWY7-CgxJA-T8.js → gitGraphDiagram-X574FWY7-XqNqIFo9.js} +1 -1
- package/packages/web/dist/client/assets/index--2CDtzvY.css +1 -0
- package/packages/web/dist/client/assets/{index-XTlTnQmx.js → index-bT6QPJZs.js} +7 -7
- package/packages/web/dist/client/assets/{info-A6RAGUB7-P0-o68pj.js → info-A6RAGUB7-B_1BCzM2.js} +1 -1
- package/packages/web/dist/client/assets/{infoDiagram-VRGFBTTK-DFJZNRUP.js → infoDiagram-VRGFBTTK-zFX8B-dP.js} +1 -1
- package/packages/web/dist/client/assets/{ishikawaDiagram-OU5B5YK6-ZkyhNd1T.js → ishikawaDiagram-OU5B5YK6-DLzQ_Uyf.js} +1 -1
- package/packages/web/dist/client/assets/{journeyDiagram-ZHPQQLJL-DFevH8my.js → journeyDiagram-ZHPQQLJL-S3WRMmoa.js} +1 -1
- package/packages/web/dist/client/assets/{kanban-definition-PNTS6WVX-l7e7ZZDC.js → kanban-definition-PNTS6WVX-B5Z8I-kM.js} +1 -1
- package/packages/web/dist/client/assets/{line-DO_s6Ujd.js → line-BGMH-i2X.js} +1 -1
- package/packages/web/dist/client/assets/{linear-C4xH5PPc.js → linear-KsrestXG.js} +1 -1
- package/packages/web/dist/client/assets/{mermaid-parser.core-nQaTP3VY.js → mermaid-parser.core-DNffyJJA.js} +3 -3
- package/packages/web/dist/client/assets/{mermaid.core-Cz05yTZh.js → mermaid.core-Cz3vJeQG.js} +4 -4
- package/packages/web/dist/client/assets/{mindmap-definition-NLK3R4M7-CHOEuHm2.js → mindmap-definition-NLK3R4M7-CzA61XUf.js} +1 -1
- package/packages/web/dist/client/assets/{packet-AYTQ26CC-BH3ehPMo.js → packet-AYTQ26CC-BO55e7cR.js} +1 -1
- package/packages/web/dist/client/assets/{pegDiagram-GJSIUBJH-CkWBLtad.js → pegDiagram-GJSIUBJH-DeRiXYNd.js} +1 -1
- package/packages/web/dist/client/assets/{pie-WAS4IAKB-nNVEq3dx.js → pie-WAS4IAKB-D9ibrQRe.js} +1 -1
- package/packages/web/dist/client/assets/{pieDiagram-5QR66LMP-DimUBAgN.js → pieDiagram-5QR66LMP-BaBpPP33.js} +1 -1
- package/packages/web/dist/client/assets/{quadrantDiagram-O4NWA36T-BR0XpRGQ.js → quadrantDiagram-O4NWA36T-DIfn4GjM.js} +1 -1
- package/packages/web/dist/client/assets/{radar-RG4KPBEZ-paA-H3mb.js → radar-RG4KPBEZ-Dmn5-nJq.js} +1 -1
- package/packages/web/dist/client/assets/{railroad-74A4TZTK-yEiKB3rz.js → railroad-74A4TZTK-ZCWNEd2Z.js} +1 -1
- package/packages/web/dist/client/assets/railroad-abnf-HS5TGJTU-_swqhy0y.js +1 -0
- package/packages/web/dist/client/assets/railroad-ebnf-LZEXJU2U-CytbazPx.js +1 -0
- package/packages/web/dist/client/assets/railroad-peg-WCYAUIDC-Bg8QW17T.js +1 -0
- package/packages/web/dist/client/assets/{railroadDiagram-XR7U4H2S--TXe6rdU.js → railroadDiagram-XR7U4H2S-CDPZ39sy.js} +1 -1
- package/packages/web/dist/client/assets/{requirementDiagram-PLB6GJNP-DyqH36Za.js → requirementDiagram-PLB6GJNP-CyCI8Yul.js} +1 -1
- package/packages/web/dist/client/assets/{sankeyDiagram-IPEJSGJF-Bg6e3BlM.js → sankeyDiagram-IPEJSGJF-p_XAPv72.js} +1 -1
- package/packages/web/dist/client/assets/{sequenceDiagram-PO4LG4MO-ClGf85My.js → sequenceDiagram-PO4LG4MO-DmR6IP_o.js} +1 -1
- package/packages/web/dist/client/assets/{src-DF7hQfMh.js → src-gnv7pJ1z.js} +1 -1
- package/packages/web/dist/client/assets/{stateDiagram-v2-GCMORJYK-BK8TpxNo.js → stateDiagram-v2-GCMORJYK-7ZTHl6ih.js} +1 -1
- package/packages/web/dist/client/assets/{swimlanes-2SLR337P-DDnTIT9M.js → swimlanes-2SLR337P-N6bj71pw.js} +1 -1
- package/packages/web/dist/client/assets/swimlanesDiagram-TC7HE7FX-BJQ2CBsp.js +8 -0
- package/packages/web/dist/client/assets/{timeline-definition-EJHVYXUP-mBBbH3bk.js → timeline-definition-EJHVYXUP-GNez0kW8.js} +1 -1
- package/packages/web/dist/client/assets/{treeView-Q6P3EWNA-CTK7tRwR.js → treeView-Q6P3EWNA-DyQZkboR.js} +1 -1
- package/packages/web/dist/client/assets/{treemap-WGGIJYW6-vOI-Ef_m.js → treemap-WGGIJYW6-_J8Pw2TM.js} +1 -1
- package/packages/web/dist/client/assets/{usecaseDiagram-POWQR4AR-COcii8x-.js → usecaseDiagram-POWQR4AR-Bg-CzKjl.js} +1 -1
- package/packages/web/dist/client/assets/{vennDiagram-UO4OBE2U-D6kmDGpM.js → vennDiagram-UO4OBE2U-DBQKHXhK.js} +1 -1
- package/packages/web/dist/client/assets/{wardley-WFR3VGLG-CtE2KI9r.js → wardley-WFR3VGLG-B5aAsQ3F.js} +1 -1
- package/packages/web/dist/client/assets/{wardleyDiagram-VNRHLVJA-ncxNGWnW.js → wardleyDiagram-VNRHLVJA-BKUQ1LK6.js} +1 -1
- package/packages/web/dist/client/assets/{xychartDiagram-PMCCYNJV-DUvd2Qze.js → xychartDiagram-PMCCYNJV-BI2sVbks.js} +1 -1
- package/packages/web/dist/client/index.html +2 -2
- package/packages/web/dist/client/assets/architecture-7GRP2DOG-HIzEIkwQ.js +0 -1
- package/packages/web/dist/client/assets/channel-BCA6qe9I.js +0 -1
- package/packages/web/dist/client/assets/eventmodeling-NTZA5JFV-l6SYFw1s.js +0 -1
- package/packages/web/dist/client/assets/flowDiagram-KWPJA3E3-CWW9qnqm.js +0 -1
- package/packages/web/dist/client/assets/index-D9_XJLSc.css +0 -1
- package/packages/web/dist/client/assets/railroad-abnf-HS5TGJTU-mVQx9aVM.js +0 -1
- package/packages/web/dist/client/assets/railroad-ebnf-LZEXJU2U-CllXx1OJ.js +0 -1
- package/packages/web/dist/client/assets/railroad-peg-WCYAUIDC-BBD2Q5W_.js +0 -1
- package/packages/web/dist/client/assets/swimlanesDiagram-TC7HE7FX-CM8UnP5t.js +0 -8
|
@@ -109,13 +109,8 @@ function renderMd(md: string, options: RenderOptions = {}): string {
|
|
|
109
109
|
if (!md.trim()) {
|
|
110
110
|
return "";
|
|
111
111
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function renderers(options: RenderOptions): typeof RENDERERS {
|
|
118
|
-
return options.italics ? ITALIC_RENDERERS : RENDERERS;
|
|
112
|
+
const renderers = options.italics ? ITALIC_RENDERERS : RENDERERS;
|
|
113
|
+
return Bun.markdown.render(md, renderers, { strikethrough: false });
|
|
119
114
|
}
|
|
120
115
|
|
|
121
116
|
function italic(text: string): string {
|
|
@@ -206,14 +201,10 @@ function renderTable(
|
|
|
206
201
|
rows: ReadonlyArray<TableRow>,
|
|
207
202
|
aligns: ReadonlyArray<Align | undefined>
|
|
208
203
|
): string {
|
|
209
|
-
if (rows.length
|
|
210
|
-
return "";
|
|
211
|
-
}
|
|
212
|
-
const header = rows[0]!;
|
|
213
|
-
const dataRows = rows.slice(1);
|
|
214
|
-
if (dataRows.length === 0) {
|
|
204
|
+
if (rows.length === 0) {
|
|
215
205
|
return "";
|
|
216
206
|
}
|
|
207
|
+
const [header, ...dataRows] = rows as [TableRow, ...TableRow[]];
|
|
217
208
|
const attr = (col: number): string => {
|
|
218
209
|
const align = aligns[col];
|
|
219
210
|
return align ? ` align="${align}"` : "";
|
|
@@ -132,7 +132,7 @@ export class Renderer {
|
|
|
132
132
|
if (this.logsMode === "off") {
|
|
133
133
|
return;
|
|
134
134
|
}
|
|
135
|
-
// A failed call's result
|
|
135
|
+
// A failed call's result has empty details; repainting would drop the row's.
|
|
136
136
|
if (!event.isError) {
|
|
137
137
|
this.refreshTool(event.toolCallId, event.result, false);
|
|
138
138
|
}
|
|
@@ -18,7 +18,7 @@ import { SendFileTool } from "./SendFileTool";
|
|
|
18
18
|
import type { TaskScheduler } from "./TaskScheduler";
|
|
19
19
|
import { TaskTool } from "./TaskTool";
|
|
20
20
|
|
|
21
|
-
export type { SessionCompactResult
|
|
21
|
+
export type { SessionCompactResult };
|
|
22
22
|
|
|
23
23
|
export type SessionId = {
|
|
24
24
|
readonly chatId: number;
|
|
@@ -30,12 +30,11 @@ export type SessionSettings = HostSettings & {
|
|
|
30
30
|
readonly temporary?: boolean;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
type SessionDeps = {
|
|
34
34
|
readonly id: SessionId;
|
|
35
35
|
readonly settings: SessionSettings;
|
|
36
36
|
readonly config: TelegramConfig;
|
|
37
37
|
readonly api: Api;
|
|
38
|
-
/** Pi's installation, shared with every other surface in this process. */
|
|
39
38
|
readonly runtime: AgentRuntime;
|
|
40
39
|
readonly scheduler: TaskScheduler;
|
|
41
40
|
readonly persistSettings: (patch: Partial<SessionSettings>) => Promise<void>;
|
|
@@ -71,8 +70,7 @@ export class Session {
|
|
|
71
70
|
modelRegistry: deps.runtime.modelRegistry,
|
|
72
71
|
settingsManagerFor: (cwd) => deps.runtime.settingsManagerFor(cwd),
|
|
73
72
|
persistSettings: deps.persistSettings,
|
|
74
|
-
//
|
|
75
|
-
// daemon left behind, and for an eviction that races its own turn.
|
|
73
|
+
// Guards against a crashed daemon's leftover turn and eviction racing a turn.
|
|
76
74
|
lease: "daemon",
|
|
77
75
|
mainSessionPath: () => this.sessionPath("sessions"),
|
|
78
76
|
isolatedSessionPath: () =>
|
|
@@ -119,11 +117,6 @@ export class Session {
|
|
|
119
117
|
return this.host.sessionCost();
|
|
120
118
|
}
|
|
121
119
|
|
|
122
|
-
/** Pi's session UUID, once an agent exists. */
|
|
123
|
-
public get sessionId(): string | undefined {
|
|
124
|
-
return this.host.sessionId;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
120
|
public get currentModelId(): string | undefined {
|
|
128
121
|
return this.host.currentModelId;
|
|
129
122
|
}
|
|
@@ -2,9 +2,9 @@ import type { SessionId } from "./Session";
|
|
|
2
2
|
import type { ScheduleSpec, ScheduledTask } from "./TaskSchema";
|
|
3
3
|
import { TaskStore } from "./TaskStore";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
type RunTaskFn = (task: ScheduledTask) => Promise<void>;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
type TaskSchedulerOptions = {
|
|
8
8
|
readonly configDir: string;
|
|
9
9
|
readonly runTask: RunTaskFn;
|
|
10
10
|
readonly pollIntervalMs?: number;
|
|
@@ -21,12 +21,17 @@ export class TaskScheduler {
|
|
|
21
21
|
private readonly now: () => number;
|
|
22
22
|
private timer: Timer | undefined;
|
|
23
23
|
private inflight: Promise<void> | undefined;
|
|
24
|
+
private readonly running: Set<string>;
|
|
25
|
+
private readonly fires: Set<Promise<void>>;
|
|
24
26
|
|
|
25
27
|
public constructor(opts: TaskSchedulerOptions) {
|
|
26
28
|
this.configDir = opts.configDir;
|
|
27
29
|
this.runTask = opts.runTask;
|
|
28
30
|
this.pollIntervalMs = opts.pollIntervalMs ?? 10_000;
|
|
29
31
|
this.now = opts.now ?? ((): number => Date.now());
|
|
32
|
+
this.inflight = undefined;
|
|
33
|
+
this.running = new Set();
|
|
34
|
+
this.fires = new Set();
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
public async start(): Promise<void> {
|
|
@@ -47,6 +52,7 @@ export class TaskScheduler {
|
|
|
47
52
|
if (this.inflight) {
|
|
48
53
|
await this.inflight;
|
|
49
54
|
}
|
|
55
|
+
await Promise.allSettled(this.fires);
|
|
50
56
|
}
|
|
51
57
|
|
|
52
58
|
public async tick(): Promise<void> {
|
|
@@ -167,10 +173,9 @@ export class TaskScheduler {
|
|
|
167
173
|
private async runTick(): Promise<void> {
|
|
168
174
|
const all = await TaskStore.loadAll(this.configDir);
|
|
169
175
|
const now = this.now();
|
|
170
|
-
const fires: Promise<void>[] = [];
|
|
171
176
|
|
|
172
177
|
for (const task of all) {
|
|
173
|
-
if (task.status !== "active") {
|
|
178
|
+
if (task.status !== "active" || this.running.has(task.id)) {
|
|
174
179
|
continue;
|
|
175
180
|
}
|
|
176
181
|
const nextMs = Date.parse(task.nextRun);
|
|
@@ -190,19 +195,31 @@ export class TaskScheduler {
|
|
|
190
195
|
const advanced = advanceNextRun(task, now);
|
|
191
196
|
if (advanced) {
|
|
192
197
|
await TaskStore.save(this.configDir, advanced);
|
|
198
|
+
console.warn(
|
|
199
|
+
`[scheduler] task ${task.id} missed by >24h, advanced to ${advanced.nextRun}`
|
|
200
|
+
);
|
|
193
201
|
} else {
|
|
194
202
|
await TaskStore.remove(this.configDir, task.id);
|
|
203
|
+
console.warn(`[scheduler] task ${task.id} missed by >24h, dropped`);
|
|
195
204
|
}
|
|
196
|
-
console.warn(
|
|
197
|
-
`[scheduler] task ${task.id} missed by >24h, advanced silently`
|
|
198
|
-
);
|
|
199
205
|
continue;
|
|
200
206
|
}
|
|
201
207
|
|
|
202
|
-
|
|
208
|
+
this.startFire(task, now);
|
|
203
209
|
}
|
|
210
|
+
}
|
|
204
211
|
|
|
205
|
-
|
|
212
|
+
private startFire(task: ScheduledTask, firedAt: number): void {
|
|
213
|
+
this.running.add(task.id);
|
|
214
|
+
const fire = this.fireAndReschedule(task, firedAt)
|
|
215
|
+
.catch((err: unknown) => {
|
|
216
|
+
console.error(`[scheduler] task ${task.id} reschedule failed:`, err);
|
|
217
|
+
})
|
|
218
|
+
.finally(() => {
|
|
219
|
+
this.running.delete(task.id);
|
|
220
|
+
this.fires.delete(fire);
|
|
221
|
+
});
|
|
222
|
+
this.fires.add(fire);
|
|
206
223
|
}
|
|
207
224
|
|
|
208
225
|
private async fireAndReschedule(
|
|
@@ -214,7 +231,11 @@ export class TaskScheduler {
|
|
|
214
231
|
} catch (err) {
|
|
215
232
|
console.error(`[scheduler] task ${task.id} runTask failed:`, err);
|
|
216
233
|
}
|
|
217
|
-
const
|
|
234
|
+
const current = await TaskStore.load(this.configDir, task.id);
|
|
235
|
+
if (!current) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const next = advanceNextRun(current, firedAt);
|
|
218
239
|
if (next) {
|
|
219
240
|
await TaskStore.save(this.configDir, next);
|
|
220
241
|
} else {
|
|
@@ -32,6 +32,16 @@ async function loadAll(
|
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
async function load(
|
|
36
|
+
configDir: string,
|
|
37
|
+
id: string
|
|
38
|
+
): Promise<ScheduledTask | undefined> {
|
|
39
|
+
return Fs.readJsonOrEmpty<ScheduledTask | undefined>(
|
|
40
|
+
path(configDir, id),
|
|
41
|
+
undefined
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
35
45
|
async function save(configDir: string, task: ScheduledTask): Promise<void> {
|
|
36
46
|
await Fs.writeAtomic(path(configDir, task.id), JSON.stringify(task, null, 2));
|
|
37
47
|
}
|
|
@@ -64,4 +74,4 @@ function path(configDir: string, id: string): string {
|
|
|
64
74
|
return join(dir(configDir), `${id}.json`);
|
|
65
75
|
}
|
|
66
76
|
|
|
67
|
-
export const TaskStore = { loadAll, save, remove, makeId };
|
|
77
|
+
export const TaskStore = { loadAll, load, save, remove, makeId };
|
|
@@ -5,8 +5,8 @@ import { Fs } from "#core/shared/Fs";
|
|
|
5
5
|
|
|
6
6
|
const CONFIRM_FILE = "update-confirm.json";
|
|
7
7
|
|
|
8
|
-
/** The "🔄 Updating..." message to edit
|
|
9
|
-
|
|
8
|
+
/** The "🔄 Updating..." message to edit after the restart. */
|
|
9
|
+
type UpdateConfirmEntry = {
|
|
10
10
|
readonly chatId: number;
|
|
11
11
|
readonly threadId: number | undefined;
|
|
12
12
|
readonly messageId: number;
|
|
@@ -53,11 +53,8 @@ export default async function (pi: ExtensionAPI): Promise<void> {
|
|
|
53
53
|
const theme = ctx.ui.theme;
|
|
54
54
|
const renderKey = (key: string, muted: string | undefined): string => {
|
|
55
55
|
const padding = " ".repeat(Math.max(0, keyCol - key.length));
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
const idx = key.indexOf(muted);
|
|
60
|
-
if (idx === -1) {
|
|
56
|
+
const idx = muted ? key.indexOf(muted) : -1;
|
|
57
|
+
if (!muted || idx === -1) {
|
|
61
58
|
return theme.fg("mdCode", key + padding);
|
|
62
59
|
}
|
|
63
60
|
return (
|
|
@@ -26,7 +26,7 @@ function sameActiveAtToken(
|
|
|
26
26
|
return a?.cursorLine === b.cursorLine && a.atCol === b.atCol;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
type FilePickerProviderFactoryOptions = {
|
|
30
30
|
readonly engine: FilePickerSuggestionEngine;
|
|
31
31
|
};
|
|
32
32
|
|
|
@@ -38,10 +38,6 @@ type ActiveAtToken = {
|
|
|
38
38
|
export function createFilePickerProviderFactory(
|
|
39
39
|
options: FilePickerProviderFactoryOptions
|
|
40
40
|
): AutocompleteProviderFactory {
|
|
41
|
-
const refreshRelative = (): void => {
|
|
42
|
-
void options.engine.refreshRelative();
|
|
43
|
-
};
|
|
44
|
-
|
|
45
41
|
return (current: AutocompleteProvider): AutocompleteProvider => {
|
|
46
42
|
let activeAtToken: ActiveAtToken | undefined;
|
|
47
43
|
|
|
@@ -65,7 +61,7 @@ export function createFilePickerProviderFactory(
|
|
|
65
61
|
const atToken = { cursorLine, atCol: sigilOffset(atMatch) };
|
|
66
62
|
if (!sameActiveAtToken(activeAtToken, atToken)) {
|
|
67
63
|
activeAtToken = atToken;
|
|
68
|
-
refreshRelative();
|
|
64
|
+
void options.engine.refreshRelative();
|
|
69
65
|
}
|
|
70
66
|
|
|
71
67
|
const items = await options.engine
|
|
@@ -50,7 +50,6 @@ export function createFooterWidget(
|
|
|
50
50
|
const refresh = (): void => {
|
|
51
51
|
void monitor.refresh(ctx.cwd);
|
|
52
52
|
};
|
|
53
|
-
// The monitor holds the state; a copy here would be a second one to keep.
|
|
54
53
|
const unwatch = monitor.watch(ctx.cwd, () => {
|
|
55
54
|
tui.requestRender();
|
|
56
55
|
});
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { visibleWidth } from "@earendil-works/pi-tui";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const SEP_RIGHT = "";
|
|
4
|
+
const SEP_LEFT = "";
|
|
5
|
+
const SEP_THIN_LEFT = "";
|
|
6
6
|
|
|
7
7
|
export const GIT_ICON = "";
|
|
8
8
|
export const GIT_DIRTY_ICON = "";
|
|
9
9
|
export const GIT_AHEAD_ICON = "";
|
|
10
10
|
export const GIT_BEHIND_ICON = "";
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const RESET = "\x1b[0m";
|
|
13
|
+
const BG_DEFAULT = "\x1b[49m";
|
|
14
|
+
const REVERSE = "\x1b[7m";
|
|
15
|
+
const RESET_REVERSE = "\x1b[27m";
|
|
16
16
|
|
|
17
17
|
export const FG_BLACK = "\x1b[30m";
|
|
18
18
|
export const FG_WHITE = "\x1b[97m";
|
|
@@ -22,7 +22,7 @@ export const BG_BRIGHT_GREEN = "\x1b[102m";
|
|
|
22
22
|
export const BG_BRIGHT_YELLOW = "\x1b[103m";
|
|
23
23
|
export const BG_BRIGHT_MAGENTA = "\x1b[105m";
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
const BG_TO_FG: Record<string, string> = {
|
|
26
26
|
[BG_GRAY]: "\x1b[90m",
|
|
27
27
|
[BG_BRIGHT_RED]: "\x1b[91m",
|
|
28
28
|
[BG_BRIGHT_GREEN]: "\x1b[92m",
|
|
@@ -36,24 +36,16 @@ export type Segment = {
|
|
|
36
36
|
readonly bg: string;
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
function paint(seg: Segment): string {
|
|
40
40
|
return `${seg.bg}${seg.fg} ${seg.text} ${RESET}`;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (next === null) {
|
|
46
|
-
return `${fg}${SEP_RIGHT}${RESET}`;
|
|
47
|
-
}
|
|
48
|
-
return `${fg}${next.bg}${SEP_RIGHT}${RESET}`;
|
|
43
|
+
function chevronRight(prev: Segment, next: Segment | undefined): string {
|
|
44
|
+
return `${BG_TO_FG[prev.bg]}${next?.bg ?? ""}${SEP_RIGHT}${RESET}`;
|
|
49
45
|
}
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (prev === null) {
|
|
54
|
-
return `${fg}${SEP_LEFT}${RESET}`;
|
|
55
|
-
}
|
|
56
|
-
return `${fg}${prev.bg}${SEP_LEFT}${RESET}`;
|
|
47
|
+
function chevronLeft(prev: Segment | undefined, next: Segment): string {
|
|
48
|
+
return `${BG_TO_FG[next.bg]}${prev?.bg ?? ""}${SEP_LEFT}${RESET}`;
|
|
57
49
|
}
|
|
58
50
|
|
|
59
51
|
export function thinChevronLeft(bg: string, fg: string): string {
|
|
@@ -64,7 +56,7 @@ export function renderLeftGroup(segs: readonly Segment[]): string {
|
|
|
64
56
|
let out = "";
|
|
65
57
|
for (let i = 0; i < segs.length; i++) {
|
|
66
58
|
out += paint(segs[i]!);
|
|
67
|
-
out += chevronRight(segs[i]!, segs[i + 1]
|
|
59
|
+
out += chevronRight(segs[i]!, segs[i + 1]);
|
|
68
60
|
}
|
|
69
61
|
return out;
|
|
70
62
|
}
|
|
@@ -72,16 +64,12 @@ export function renderLeftGroup(segs: readonly Segment[]): string {
|
|
|
72
64
|
export function renderRightGroup(segs: readonly Segment[]): string {
|
|
73
65
|
let out = "";
|
|
74
66
|
for (let i = 0; i < segs.length; i++) {
|
|
75
|
-
out += chevronLeft(segs[i - 1]
|
|
67
|
+
out += chevronLeft(segs[i - 1], segs[i]!);
|
|
76
68
|
out += paint(segs[i]!);
|
|
77
69
|
}
|
|
78
70
|
return out;
|
|
79
71
|
}
|
|
80
72
|
|
|
81
73
|
export function groupWidth(segs: readonly Segment[]): number {
|
|
82
|
-
|
|
83
|
-
for (const s of segs) {
|
|
84
|
-
w += visibleWidth(s.text) + 3;
|
|
85
|
-
}
|
|
86
|
-
return w;
|
|
74
|
+
return segs.reduce((w, s) => w + visibleWidth(s.text) + 3, 0);
|
|
87
75
|
}
|
|
@@ -13,7 +13,7 @@ import { WriteMark } from "#core/session/WriteMark";
|
|
|
13
13
|
|
|
14
14
|
const POLL_MS = 2_000;
|
|
15
15
|
|
|
16
|
-
/**
|
|
16
|
+
/** Module-level because `switchSession` re-runs every factory. */
|
|
17
17
|
let carried: { readonly path: string; readonly text: string } | undefined;
|
|
18
18
|
|
|
19
19
|
function isForeign(record: LeaseRecord | undefined): record is LeaseRecord {
|
|
@@ -53,11 +53,11 @@ export default function (pi: ExtensionAPI): void {
|
|
|
53
53
|
return await WriteMark.of(log, manager);
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
/**
|
|
56
|
+
/** Marks the session stale when another surface wrote it; our own appends and benign renames are absorbed. */
|
|
57
57
|
const reconcile = async (): Promise<void> => {
|
|
58
58
|
const current = log;
|
|
59
59
|
const next = await measure();
|
|
60
|
-
//
|
|
60
|
+
// Only `anchor()` clears staleness.
|
|
61
61
|
if (stale || current === undefined || next === undefined) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
@@ -71,7 +71,6 @@ export default function (pi: ExtensionAPI): void {
|
|
|
71
71
|
mark = next;
|
|
72
72
|
};
|
|
73
73
|
|
|
74
|
-
/** Whatever the file says right now is the truth pi was opened on. */
|
|
75
74
|
const anchor = async (): Promise<void> => {
|
|
76
75
|
mark = (await measure()) ?? WriteMark.UNREAD;
|
|
77
76
|
stale = false;
|
|
@@ -95,7 +94,7 @@ export default function (pi: ExtensionAPI): void {
|
|
|
95
94
|
}
|
|
96
95
|
};
|
|
97
96
|
|
|
98
|
-
// Idle only: during our own turn
|
|
97
|
+
// Idle only: during our own turn we hold the lease.
|
|
99
98
|
const startIdleWatch = (): void => {
|
|
100
99
|
stopIdleWatch();
|
|
101
100
|
const current = path;
|
|
@@ -233,7 +232,7 @@ export default function (pi: ExtensionAPI): void {
|
|
|
233
232
|
return;
|
|
234
233
|
}
|
|
235
234
|
try {
|
|
236
|
-
// Reopening
|
|
235
|
+
// Reopening may rewrite the file, so hold the lease.
|
|
237
236
|
await SessionLease.hold(
|
|
238
237
|
current,
|
|
239
238
|
"tui",
|
|
@@ -63,8 +63,7 @@ export default function (pi: ExtensionAPI): void {
|
|
|
63
63
|
ctx.ui.setWidget(FINAL_WIDGET_ID, [ctx.ui.theme.fg("muted", message)]);
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
//
|
|
67
|
-
// swaps the conversation under the widget without it.
|
|
66
|
+
// A new chat or `/resume` swaps the session without `session_shutdown`.
|
|
68
67
|
pi.on("session_before_switch", (_event, ctx) => {
|
|
69
68
|
clear(ctx);
|
|
70
69
|
});
|
|
@@ -5,13 +5,13 @@ const PI_COMMANDS: ReadonlySet<string> = new Set([
|
|
|
5
5
|
"config",
|
|
6
6
|
"install",
|
|
7
7
|
"list",
|
|
8
|
+
"mcp",
|
|
8
9
|
"remove",
|
|
9
10
|
"server",
|
|
10
11
|
"uninstall",
|
|
11
12
|
"update",
|
|
12
13
|
]);
|
|
13
14
|
|
|
14
|
-
/** Per-run `--theme` args: the only channel early enough for pim's themes to resolve. */
|
|
15
15
|
export function themeCliArgs(argv: readonly string[]): readonly string[] {
|
|
16
16
|
if (PI_COMMANDS.has(argv[0] ?? "")) {
|
|
17
17
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e,t}from"./mermaid-parser.core-
|
|
1
|
+
import{m as e,t}from"./mermaid-parser.core-DNffyJJA.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-gnv7pJ1z.js";import"./chunk-O7XYJQB3-B6uOn9iS.js";import{n as i,r as a,t as o}from"./chunk-GTNCS2PH-PqY_YoS0.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-Cz3vJeQG.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./path-fybaL0A-.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-
|
|
1
|
+
import{n as e,t}from"./path-fybaL0A-.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-DlZpcyc2.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-FOHPRMQF-CoA4358r.js";import{M as e}from"./mermaid-parser.core-DNffyJJA.js";export{e as createArchitectureServices};
|