@paperclipai/server 0.3.1 → 2026.3.17-canary.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +23 -2
- package/dist/adapters/registry.js.map +1 -1
- package/dist/adapters/types.d.ts +1 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/app.d.ts +4 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +115 -3
- package/dist/app.js.map +1 -1
- package/dist/attachment-types.d.ts.map +1 -1
- package/dist/attachment-types.js +6 -0
- package/dist/attachment-types.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -1
- package/dist/config.js.map +1 -1
- package/dist/home-paths.d.ts +5 -0
- package/dist/home-paths.d.ts.map +1 -1
- package/dist/home-paths.js +18 -0
- package/dist/home-paths.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -42
- package/dist/index.js.map +1 -1
- package/dist/routes/access.d.ts.map +1 -1
- package/dist/routes/access.js +90 -1
- package/dist/routes/access.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +64 -1
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/assets.d.ts.map +1 -1
- package/dist/routes/assets.js +191 -13
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/companies.d.ts.map +1 -1
- package/dist/routes/companies.js +10 -1
- package/dist/routes/companies.js.map +1 -1
- package/dist/routes/costs.d.ts.map +1 -1
- package/dist/routes/costs.js +160 -5
- package/dist/routes/costs.js.map +1 -1
- package/dist/routes/execution-workspaces.d.ts +3 -0
- package/dist/routes/execution-workspaces.d.ts.map +1 -0
- package/dist/routes/execution-workspaces.js +165 -0
- package/dist/routes/execution-workspaces.js.map +1 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +3 -1
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/instance-settings.d.ts +3 -0
- package/dist/routes/instance-settings.d.ts.map +1 -0
- package/dist/routes/instance-settings.js +46 -0
- package/dist/routes/instance-settings.js.map +1 -0
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +339 -4
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/plugin-ui-static.d.ts +69 -0
- package/dist/routes/plugin-ui-static.d.ts.map +1 -0
- package/dist/routes/plugin-ui-static.js +411 -0
- package/dist/routes/plugin-ui-static.js.map +1 -0
- package/dist/routes/plugins.d.ts +120 -0
- package/dist/routes/plugins.d.ts.map +1 -0
- package/dist/routes/plugins.js +1784 -0
- package/dist/routes/plugins.js.map +1 -0
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +5 -1
- package/dist/routes/projects.js.map +1 -1
- package/dist/services/access.d.ts +2 -2
- package/dist/services/activity-log.d.ts +3 -0
- package/dist/services/activity-log.d.ts.map +1 -1
- package/dist/services/activity-log.js +34 -0
- package/dist/services/activity-log.js.map +1 -1
- package/dist/services/agents.d.ts +39 -15
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/agents.js +60 -8
- package/dist/services/agents.js.map +1 -1
- package/dist/services/approvals.d.ts +5 -5
- package/dist/services/approvals.d.ts.map +1 -1
- package/dist/services/approvals.js +11 -0
- package/dist/services/approvals.js.map +1 -1
- package/dist/services/assets.d.ts +4 -4
- package/dist/services/budgets.d.ts +38 -0
- package/dist/services/budgets.d.ts.map +1 -0
- package/dist/services/budgets.js +784 -0
- package/dist/services/budgets.js.map +1 -0
- package/dist/services/companies.d.ts +39 -418
- package/dist/services/companies.d.ts.map +1 -1
- package/dist/services/companies.js +157 -21
- package/dist/services/companies.js.map +1 -1
- package/dist/services/costs.d.ts +67 -3
- package/dist/services/costs.d.ts.map +1 -1
- package/dist/services/costs.js +185 -57
- package/dist/services/costs.js.map +1 -1
- package/dist/services/cron.d.ts +80 -0
- package/dist/services/cron.d.ts.map +1 -0
- package/dist/services/cron.js +300 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/dashboard.d.ts +6 -0
- package/dist/services/dashboard.d.ts.map +1 -1
- package/dist/services/dashboard.js +9 -0
- package/dist/services/dashboard.js.map +1 -1
- package/dist/services/documents.d.ts +164 -0
- package/dist/services/documents.d.ts.map +1 -0
- package/dist/services/documents.js +382 -0
- package/dist/services/documents.js.map +1 -0
- package/dist/services/execution-workspace-policy.d.ts +2 -1
- package/dist/services/execution-workspace-policy.d.ts.map +1 -1
- package/dist/services/execution-workspace-policy.js +63 -15
- package/dist/services/execution-workspace-policy.js.map +1 -1
- package/dist/services/execution-workspaces.d.ts +19 -0
- package/dist/services/execution-workspaces.d.ts.map +1 -0
- package/dist/services/execution-workspaces.js +87 -0
- package/dist/services/execution-workspaces.js.map +1 -0
- package/dist/services/finance.d.ts +93 -0
- package/dist/services/finance.d.ts.map +1 -0
- package/dist/services/finance.js +120 -0
- package/dist/services/finance.js.map +1 -0
- package/dist/services/heartbeat.d.ts +11 -1
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +1292 -559
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/index.d.ts +7 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +7 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-settings.d.ts +9 -0
- package/dist/services/instance-settings.d.ts.map +1 -0
- package/dist/services/instance-settings.js +80 -0
- package/dist/services/instance-settings.js.map +1 -0
- package/dist/services/issue-approvals.d.ts +1 -1
- package/dist/services/issues.d.ts +14 -2
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +161 -9
- package/dist/services/issues.js.map +1 -1
- package/dist/services/live-events.d.ts +5 -0
- package/dist/services/live-events.d.ts.map +1 -1
- package/dist/services/live-events.js +9 -0
- package/dist/services/live-events.js.map +1 -1
- package/dist/services/plugin-capability-validator.d.ts +108 -0
- package/dist/services/plugin-capability-validator.d.ts.map +1 -0
- package/dist/services/plugin-capability-validator.js +268 -0
- package/dist/services/plugin-capability-validator.js.map +1 -0
- package/dist/services/plugin-config-validator.d.ts +26 -0
- package/dist/services/plugin-config-validator.d.ts.map +1 -0
- package/dist/services/plugin-config-validator.js +41 -0
- package/dist/services/plugin-config-validator.js.map +1 -0
- package/dist/services/plugin-dev-watcher.d.ts +30 -0
- package/dist/services/plugin-dev-watcher.d.ts.map +1 -0
- package/dist/services/plugin-dev-watcher.js +241 -0
- package/dist/services/plugin-dev-watcher.js.map +1 -0
- package/dist/services/plugin-event-bus.d.ts +149 -0
- package/dist/services/plugin-event-bus.d.ts.map +1 -0
- package/dist/services/plugin-event-bus.js +258 -0
- package/dist/services/plugin-event-bus.js.map +1 -0
- package/dist/services/plugin-host-service-cleanup.d.ts +14 -0
- package/dist/services/plugin-host-service-cleanup.d.ts.map +1 -0
- package/dist/services/plugin-host-service-cleanup.js +37 -0
- package/dist/services/plugin-host-service-cleanup.js.map +1 -0
- package/dist/services/plugin-host-services.d.ts +13 -0
- package/dist/services/plugin-host-services.d.ts.map +1 -0
- package/dist/services/plugin-host-services.js +969 -0
- package/dist/services/plugin-host-services.js.map +1 -0
- package/dist/services/plugin-job-coordinator.d.ts +81 -0
- package/dist/services/plugin-job-coordinator.d.ts.map +1 -0
- package/dist/services/plugin-job-coordinator.js +172 -0
- package/dist/services/plugin-job-coordinator.js.map +1 -0
- package/dist/services/plugin-job-scheduler.d.ts +163 -0
- package/dist/services/plugin-job-scheduler.d.ts.map +1 -0
- package/dist/services/plugin-job-scheduler.js +454 -0
- package/dist/services/plugin-job-scheduler.js.map +1 -0
- package/dist/services/plugin-job-store.d.ts +208 -0
- package/dist/services/plugin-job-store.d.ts.map +1 -0
- package/dist/services/plugin-job-store.js +350 -0
- package/dist/services/plugin-job-store.js.map +1 -0
- package/dist/services/plugin-lifecycle.d.ts +203 -0
- package/dist/services/plugin-lifecycle.d.ts.map +1 -0
- package/dist/services/plugin-lifecycle.js +476 -0
- package/dist/services/plugin-lifecycle.js.map +1 -0
- package/dist/services/plugin-loader.d.ts +441 -0
- package/dist/services/plugin-loader.d.ts.map +1 -0
- package/dist/services/plugin-loader.js +1192 -0
- package/dist/services/plugin-loader.js.map +1 -0
- package/dist/services/plugin-log-retention.d.ts +20 -0
- package/dist/services/plugin-log-retention.d.ts.map +1 -0
- package/dist/services/plugin-log-retention.js +63 -0
- package/dist/services/plugin-log-retention.js.map +1 -0
- package/dist/services/plugin-manifest-validator.d.ts +79 -0
- package/dist/services/plugin-manifest-validator.d.ts.map +1 -0
- package/dist/services/plugin-manifest-validator.js +84 -0
- package/dist/services/plugin-manifest-validator.js.map +1 -0
- package/dist/services/plugin-registry.d.ts +2542 -0
- package/dist/services/plugin-registry.d.ts.map +1 -0
- package/dist/services/plugin-registry.js +539 -0
- package/dist/services/plugin-registry.js.map +1 -0
- package/dist/services/plugin-runtime-sandbox.d.ts +40 -0
- package/dist/services/plugin-runtime-sandbox.d.ts.map +1 -0
- package/dist/services/plugin-runtime-sandbox.js +154 -0
- package/dist/services/plugin-runtime-sandbox.js.map +1 -0
- package/dist/services/plugin-secrets-handler.d.ts +81 -0
- package/dist/services/plugin-secrets-handler.d.ts.map +1 -0
- package/dist/services/plugin-secrets-handler.js +275 -0
- package/dist/services/plugin-secrets-handler.js.map +1 -0
- package/dist/services/plugin-state-store.d.ts +92 -0
- package/dist/services/plugin-state-store.d.ts.map +1 -0
- package/dist/services/plugin-state-store.js +190 -0
- package/dist/services/plugin-state-store.js.map +1 -0
- package/dist/services/plugin-stream-bus.d.ts +29 -0
- package/dist/services/plugin-stream-bus.d.ts.map +1 -0
- package/dist/services/plugin-stream-bus.js +48 -0
- package/dist/services/plugin-stream-bus.js.map +1 -0
- package/dist/services/plugin-tool-dispatcher.d.ts +180 -0
- package/dist/services/plugin-tool-dispatcher.d.ts.map +1 -0
- package/dist/services/plugin-tool-dispatcher.js +224 -0
- package/dist/services/plugin-tool-dispatcher.js.map +1 -0
- package/dist/services/plugin-tool-registry.d.ts +192 -0
- package/dist/services/plugin-tool-registry.d.ts.map +1 -0
- package/dist/services/plugin-tool-registry.js +224 -0
- package/dist/services/plugin-tool-registry.js.map +1 -0
- package/dist/services/plugin-worker-manager.d.ts +260 -0
- package/dist/services/plugin-worker-manager.d.ts.map +1 -0
- package/dist/services/plugin-worker-manager.js +835 -0
- package/dist/services/plugin-worker-manager.js.map +1 -0
- package/dist/services/projects.d.ts +12 -1
- package/dist/services/projects.d.ts.map +1 -1
- package/dist/services/projects.js +100 -4
- package/dist/services/projects.js.map +1 -1
- package/dist/services/quota-windows.d.ts +9 -0
- package/dist/services/quota-windows.d.ts.map +1 -0
- package/dist/services/quota-windows.js +56 -0
- package/dist/services/quota-windows.js.map +1 -0
- package/dist/services/secrets.d.ts +5 -5
- package/dist/services/work-products.d.ts +14 -0
- package/dist/services/work-products.d.ts.map +1 -0
- package/dist/services/work-products.js +100 -0
- package/dist/services/work-products.js.map +1 -0
- package/dist/services/workspace-operation-log-store.d.ts +33 -0
- package/dist/services/workspace-operation-log-store.d.ts.map +1 -0
- package/dist/services/workspace-operation-log-store.js +110 -0
- package/dist/services/workspace-operation-log-store.js.map +1 -0
- package/dist/services/workspace-operations.d.ts +44 -0
- package/dist/services/workspace-operations.d.ts.map +1 -0
- package/dist/services/workspace-operations.js +204 -0
- package/dist/services/workspace-operations.js.map +1 -0
- package/dist/services/workspace-runtime.d.ts +43 -5
- package/dist/services/workspace-runtime.d.ts.map +1 -1
- package/dist/services/workspace-runtime.js +413 -30
- package/dist/services/workspace-runtime.js.map +1 -1
- package/dist/ui-branding.d.ts +10 -1
- package/dist/ui-branding.d.ts.map +1 -1
- package/dist/ui-branding.js +164 -14
- package/dist/ui-branding.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +32 -14
- package/skills/paperclip/SKILL.md +34 -20
- package/skills/paperclip-create-plugin/SKILL.md +101 -0
- package/ui-dist/assets/{_basePickBy-B0xbZITw.js → _basePickBy-Chytvk8p.js} +1 -1
- package/ui-dist/assets/{_baseUniq-Cfd5u3qc.js → _baseUniq-BVL8b2zA.js} +1 -1
- package/ui-dist/assets/{arc-7Xbu8tBF.js → arc-D5hJS7gD.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-VXUJARFQ-C8F7ZRYc.js → architectureDiagram-VXUJARFQ-BFq3iN58.js} +1 -1
- package/ui-dist/assets/{blockDiagram-VD42YOAC-Dp08a65A.js → blockDiagram-VD42YOAC-B69ok7vL.js} +1 -1
- package/ui-dist/assets/{c4Diagram-YG6GDRKO-BJfslTgZ.js → c4Diagram-YG6GDRKO-FE0D9aiA.js} +1 -1
- package/ui-dist/assets/channel-CiKAknwU.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-BhaYWH7e.js → chunk-4BX2VUAB-SAhF6g-l.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-BOzJUsYW.js → chunk-55IACEB6-yxKD70bX.js} +1 -1
- package/ui-dist/assets/{chunk-B4BG7PRW-CbVcziyE.js → chunk-B4BG7PRW-qB4VaAIx.js} +1 -1
- package/ui-dist/assets/{chunk-DI55MBZ5-DghPtP3y.js → chunk-DI55MBZ5-B4NIq1Ee.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-CB095Kfn.js → chunk-FMBD7UC4-B5kLoRe2.js} +1 -1
- package/ui-dist/assets/{chunk-QN33PNHL-DfpzfDqJ.js → chunk-QN33PNHL-BVVG2n_X.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-Df3d5z1y.js → chunk-QZHKN3VN-ncMubclp.js} +1 -1
- package/ui-dist/assets/{chunk-TZMSLE5B-B6tX6bZI.js → chunk-TZMSLE5B-DSyjQk8C.js} +1 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-B93oQX02.js +1 -0
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-B93oQX02.js +1 -0
- package/ui-dist/assets/clone-Dld-3yq0.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-38wg_s9V.js → cose-bilkent-S5V4N54A-BAikNewC.js} +1 -1
- package/ui-dist/assets/{dagre-6UL2VRFP-DPVj3XLS.js → dagre-6UL2VRFP-j223UI8_.js} +1 -1
- package/ui-dist/assets/{diagram-PSM6KHXK-BJh89zUA.js → diagram-PSM6KHXK-Bhg27ZsN.js} +1 -1
- package/ui-dist/assets/{diagram-QEK2KX5R-Bw0m_j10.js → diagram-QEK2KX5R-BmtcrTHq.js} +1 -1
- package/ui-dist/assets/{diagram-S2PKOQOG-D7_M2F3u.js → diagram-S2PKOQOG-x8XuP7dH.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q2GNP2WA-CLsjqTWP.js → erDiagram-Q2GNP2WA-Dc8mHvB-.js} +1 -1
- package/ui-dist/assets/{flowDiagram-NV44I4VS-BZZ7ezVB.js → flowDiagram-NV44I4VS-Br08v6xs.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-JELNMOA3-KzsFuwBt.js → ganttDiagram-JELNMOA3-CksKhiV8.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-DSHtY7Vu.js → gitGraphDiagram-V2S2FVAM-DmitztAD.js} +1 -1
- package/ui-dist/assets/{graph-luIG1UAS.js → graph-Xzh7bNfz.js} +1 -1
- package/ui-dist/assets/{index-nFjLambq.js → index-B-MPJNeS.js} +1 -1
- package/ui-dist/assets/{index-RUBFVv6t.js → index-BAOC35TS.js} +1 -1
- package/ui-dist/assets/{index-CaR9XM4h.js → index-BCtrpKdJ.js} +1 -1
- package/ui-dist/assets/{index-itc7BfMy.js → index-B_mlwDCG.js} +1 -1
- package/ui-dist/assets/{index-1gX09-Fl.js → index-Bp8oJMwx.js} +1 -1
- package/ui-dist/assets/{index-B_3g3Rie.js → index-BqOfMG1d.js} +1 -1
- package/ui-dist/assets/{index-uR3zjYaD.js → index-C0hw7cTu.js} +1 -1
- package/ui-dist/assets/{index-Ds7vLTSK.js → index-C1ENEd6Y.js} +1 -1
- package/ui-dist/assets/{index-CeDCs_2i.js → index-CGB1OHQi.js} +1 -1
- package/ui-dist/assets/{index-DBy0vJy3.js → index-CZlfAt7E.js} +1 -1
- package/ui-dist/assets/{index-00kuG4sI.js → index-CeL-QouZ.js} +1 -1
- package/ui-dist/assets/{index-Bv4xCjxl.js → index-Cz0TxJbw.js} +1 -1
- package/ui-dist/assets/{index-DJf8diAA.js → index-DBxUCwDG.js} +1 -1
- package/ui-dist/assets/{index-DnIPDZLp.js → index-DGzQUMWC.js} +1 -1
- package/ui-dist/assets/{index-CbGtsjW7.js → index-DI9dat7c.js} +1 -1
- package/ui-dist/assets/{index-BfB4lKJN.js → index-DMpo-QSZ.js} +1 -1
- package/ui-dist/assets/{index-DcfLFstG.js → index-DQ6xyFaN.js} +1 -1
- package/ui-dist/assets/{index-B1ZMzzs0.js → index-DWMQ1Fyj.js} +1 -1
- package/ui-dist/assets/index-DbrFgvLd.css +1 -0
- package/ui-dist/assets/{index-C8XyGAr9.js → index-Er4i9aLN.js} +1 -1
- package/ui-dist/assets/{index-C2SZYIDA.js → index-I5K-yQx5.js} +1 -1
- package/ui-dist/assets/index-MuodIbDJ.js +1120 -0
- package/ui-dist/assets/{index-BeeKMqNU.js → index-auLN8BHe.js} +1 -1
- package/ui-dist/assets/{index-DoTq-BeR.js → index-xw01-Pl4.js} +1 -1
- package/ui-dist/assets/{infoDiagram-HS3SLOUP-CDEfWpme.js → infoDiagram-HS3SLOUP-DHb4TS1W.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-i7nsbg_Y.js → journeyDiagram-XKPGCS4Q-CLRBeXVU.js} +1 -1
- package/ui-dist/assets/{kanban-definition-3W4ZIXB7-DDlx1qVE.js → kanban-definition-3W4ZIXB7-CsQp6woE.js} +1 -1
- package/ui-dist/assets/{layout-C7AtmJzX.js → layout-DwD9tZ5r.js} +1 -1
- package/ui-dist/assets/{linear-C5jHT-WP.js → linear-DF9n_1d3.js} +1 -1
- package/ui-dist/assets/{mermaid.core-C8YQ4fcY.js → mermaid.core-CDm4Crkq.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-VGOIOE7T-B9m9PuUg.js → mindmap-definition-VGOIOE7T-CVzU1x4i.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ADFJNKIX-SvKywCSE.js → pieDiagram-ADFJNKIX-CWgl0Up8.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-QfBPm7Y1.js → quadrantDiagram-AYHSOK5B-CcedyN6Q.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-DnfQQuwi.js → requirementDiagram-UZGBJVZJ-DZ4BVz3s.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-DvLkjzIW.js → sankeyDiagram-TZEHDZUN-CLHEx34B.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-WL72ISMW-5Lq2rWBc.js → sequenceDiagram-WL72ISMW-nmTJbPyy.js} +1 -1
- package/ui-dist/assets/{stateDiagram-FKZM4ZOC-DcYPHDyi.js → stateDiagram-FKZM4ZOC-_UGwFEqN.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-CvFVoOUd.js +1 -0
- package/ui-dist/assets/{timeline-definition-IT6M3QCI-lrN4JmWa.js → timeline-definition-IT6M3QCI-Bibk8Daj.js} +1 -1
- package/ui-dist/assets/{treemap-GDKQZRPO-DFJKIBTQ.js → treemap-GDKQZRPO-Ch3rlaqT.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-PRI3JC2R-CT47vtdm.js → xychartDiagram-PRI3JC2R-DBUudr-E.js} +1 -1
- package/ui-dist/index.html +4 -2
- package/skills/create-agent-adapter/SKILL.md +0 -718
- package/ui-dist/assets/channel-BViQDbSq.js +0 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-CjMCmxMT.js +0 -1
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-CjMCmxMT.js +0 -1
- package/ui-dist/assets/clone-Dbn9wtE1.js +0 -1
- package/ui-dist/assets/index-BHP9dico.js +0 -1006
- package/ui-dist/assets/index-BfNaDZnn.css +0 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-nv50YYrl.js +0 -1
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PluginWorkerManager — spawns and manages out-of-process plugin worker child
|
|
3
|
+
* processes, routes JSON-RPC 2.0 calls over stdio, and handles lifecycle
|
|
4
|
+
* management including crash recovery with exponential backoff.
|
|
5
|
+
*
|
|
6
|
+
* Each installed plugin gets one dedicated worker process. The host sends
|
|
7
|
+
* JSON-RPC requests over the child's stdin and reads responses from stdout.
|
|
8
|
+
* Worker stderr is captured and forwarded to the host logger.
|
|
9
|
+
*
|
|
10
|
+
* Process Model (from PLUGIN_SPEC.md §12):
|
|
11
|
+
* - One worker process per installed plugin
|
|
12
|
+
* - Failure isolation: plugin crashes do not affect the host
|
|
13
|
+
* - Graceful shutdown: 10-second drain, then SIGTERM, then SIGKILL
|
|
14
|
+
* - Automatic restart with exponential backoff on unexpected exits
|
|
15
|
+
*
|
|
16
|
+
* @see PLUGIN_SPEC.md §12 — Process Model
|
|
17
|
+
* @see PLUGIN_SPEC.md §12.5 — Graceful Shutdown Policy
|
|
18
|
+
* @see PLUGIN_SPEC.md §13 — Host-Worker Protocol
|
|
19
|
+
*/
|
|
20
|
+
import type { PaperclipPluginManifestV1 } from "@paperclipai/shared";
|
|
21
|
+
import type { HostToWorkerMethodName, HostToWorkerMethods, WorkerToHostMethodName, WorkerToHostMethods } from "@paperclipai/plugin-sdk";
|
|
22
|
+
/**
|
|
23
|
+
* Status of a managed worker process.
|
|
24
|
+
*/
|
|
25
|
+
export type WorkerStatus = "stopped" | "starting" | "running" | "stopping" | "crashed" | "backoff";
|
|
26
|
+
/**
|
|
27
|
+
* Worker-to-host method handler. The host registers these to service calls
|
|
28
|
+
* that the plugin worker makes back to the host (e.g. state.get, events.emit).
|
|
29
|
+
*/
|
|
30
|
+
export type WorkerToHostHandler<M extends WorkerToHostMethodName> = (params: WorkerToHostMethods[M][0]) => Promise<WorkerToHostMethods[M][1]>;
|
|
31
|
+
/**
|
|
32
|
+
* A map of all worker-to-host method handlers provided by the host.
|
|
33
|
+
*/
|
|
34
|
+
export type WorkerToHostHandlers = {
|
|
35
|
+
[M in WorkerToHostMethodName]?: WorkerToHostHandler<M>;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Events emitted by a PluginWorkerHandle.
|
|
39
|
+
*/
|
|
40
|
+
export interface WorkerHandleEvents {
|
|
41
|
+
/** Worker process started and is ready (initialize succeeded). */
|
|
42
|
+
"ready": {
|
|
43
|
+
pluginId: string;
|
|
44
|
+
};
|
|
45
|
+
/** Worker process exited. */
|
|
46
|
+
"exit": {
|
|
47
|
+
pluginId: string;
|
|
48
|
+
code: number | null;
|
|
49
|
+
signal: NodeJS.Signals | null;
|
|
50
|
+
};
|
|
51
|
+
/** Worker process crashed unexpectedly. */
|
|
52
|
+
"crash": {
|
|
53
|
+
pluginId: string;
|
|
54
|
+
code: number | null;
|
|
55
|
+
signal: NodeJS.Signals | null;
|
|
56
|
+
willRestart: boolean;
|
|
57
|
+
};
|
|
58
|
+
/** Worker process errored (e.g. spawn failure). */
|
|
59
|
+
"error": {
|
|
60
|
+
pluginId: string;
|
|
61
|
+
error: Error;
|
|
62
|
+
};
|
|
63
|
+
/** Worker status changed. */
|
|
64
|
+
"status": {
|
|
65
|
+
pluginId: string;
|
|
66
|
+
status: WorkerStatus;
|
|
67
|
+
previousStatus: WorkerStatus;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
type WorkerHandleEventName = keyof WorkerHandleEvents;
|
|
71
|
+
export declare function appendStderrExcerpt(current: string, chunk: string): string;
|
|
72
|
+
export declare function formatWorkerFailureMessage(message: string, stderrExcerpt: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Options for starting a worker process.
|
|
75
|
+
*/
|
|
76
|
+
export interface WorkerStartOptions {
|
|
77
|
+
/** Absolute path to the plugin worker entrypoint (CJS bundle). */
|
|
78
|
+
entrypointPath: string;
|
|
79
|
+
/** Plugin manifest. */
|
|
80
|
+
manifest: PaperclipPluginManifestV1;
|
|
81
|
+
/** Resolved plugin configuration. */
|
|
82
|
+
config: Record<string, unknown>;
|
|
83
|
+
/** Host instance information for the initialize call. */
|
|
84
|
+
instanceInfo: {
|
|
85
|
+
instanceId: string;
|
|
86
|
+
hostVersion: string;
|
|
87
|
+
};
|
|
88
|
+
/** Host API version. */
|
|
89
|
+
apiVersion: number;
|
|
90
|
+
/** Handlers for worker→host RPC calls. */
|
|
91
|
+
hostHandlers: WorkerToHostHandlers;
|
|
92
|
+
/** Default timeout for RPC calls (ms). Defaults to 30s. */
|
|
93
|
+
rpcTimeoutMs?: number;
|
|
94
|
+
/** Whether to auto-restart on crash. Defaults to true. */
|
|
95
|
+
autoRestart?: boolean;
|
|
96
|
+
/** Node.js execArgv passed to the child process. */
|
|
97
|
+
execArgv?: string[];
|
|
98
|
+
/** Environment variables passed to the child process. */
|
|
99
|
+
env?: Record<string, string>;
|
|
100
|
+
/**
|
|
101
|
+
* Callback for stream notifications from the worker (streams.open/emit/close).
|
|
102
|
+
* The host wires this to the PluginStreamBus to fan out events to SSE clients.
|
|
103
|
+
*/
|
|
104
|
+
onStreamNotification?: (method: string, params: Record<string, unknown>) => void;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Handle for a single plugin worker process.
|
|
108
|
+
*
|
|
109
|
+
* Callers use `start()` to spawn the worker, `call()` to send RPC requests,
|
|
110
|
+
* and `stop()` to gracefully shut down. The handle manages crash recovery
|
|
111
|
+
* with exponential backoff automatically when `autoRestart` is enabled.
|
|
112
|
+
*/
|
|
113
|
+
export interface PluginWorkerHandle {
|
|
114
|
+
/** The plugin ID this worker serves. */
|
|
115
|
+
readonly pluginId: string;
|
|
116
|
+
/** Current worker status. */
|
|
117
|
+
readonly status: WorkerStatus;
|
|
118
|
+
/** Start the worker process. Resolves when initialize completes. */
|
|
119
|
+
start(): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Stop the worker process gracefully.
|
|
122
|
+
*
|
|
123
|
+
* Sends a `shutdown` RPC call, waits up to 10 seconds for the worker to
|
|
124
|
+
* exit, then escalates to SIGTERM, and finally SIGKILL if needed.
|
|
125
|
+
*/
|
|
126
|
+
stop(): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Restart the worker process (stop + start).
|
|
129
|
+
*/
|
|
130
|
+
restart(): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Send a typed host→worker RPC call.
|
|
133
|
+
*
|
|
134
|
+
* @param method - The RPC method name
|
|
135
|
+
* @param params - Method parameters
|
|
136
|
+
* @param timeoutMs - Optional per-call timeout override
|
|
137
|
+
* @returns The method result
|
|
138
|
+
* @throws {JsonRpcCallError} if the worker returns an error response
|
|
139
|
+
* @throws {Error} if the worker is not running or the call times out
|
|
140
|
+
*/
|
|
141
|
+
call<M extends HostToWorkerMethodName>(method: M, params: HostToWorkerMethods[M][0], timeoutMs?: number): Promise<HostToWorkerMethods[M][1]>;
|
|
142
|
+
/**
|
|
143
|
+
* Send a fire-and-forget notification to the worker (no response expected).
|
|
144
|
+
*/
|
|
145
|
+
notify(method: string, params: unknown): void;
|
|
146
|
+
/** Subscribe to worker events. */
|
|
147
|
+
on<K extends WorkerHandleEventName>(event: K, listener: (payload: WorkerHandleEvents[K]) => void): void;
|
|
148
|
+
/** Unsubscribe from worker events. */
|
|
149
|
+
off<K extends WorkerHandleEventName>(event: K, listener: (payload: WorkerHandleEvents[K]) => void): void;
|
|
150
|
+
/** Optional methods the worker reported during initialization. */
|
|
151
|
+
readonly supportedMethods: string[];
|
|
152
|
+
/** Get diagnostic info about the worker. */
|
|
153
|
+
diagnostics(): WorkerDiagnostics;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Diagnostic information about a worker process.
|
|
157
|
+
*/
|
|
158
|
+
export interface WorkerDiagnostics {
|
|
159
|
+
pluginId: string;
|
|
160
|
+
status: WorkerStatus;
|
|
161
|
+
pid: number | null;
|
|
162
|
+
uptime: number | null;
|
|
163
|
+
consecutiveCrashes: number;
|
|
164
|
+
totalCrashes: number;
|
|
165
|
+
pendingRequests: number;
|
|
166
|
+
lastCrashAt: number | null;
|
|
167
|
+
nextRestartAt: number | null;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* The top-level manager that holds all plugin worker handles.
|
|
171
|
+
*
|
|
172
|
+
* Provides a registry of workers keyed by plugin ID, with convenience methods
|
|
173
|
+
* for starting/stopping all workers and routing RPC calls.
|
|
174
|
+
*/
|
|
175
|
+
export interface PluginWorkerManager {
|
|
176
|
+
/**
|
|
177
|
+
* Register and start a worker for a plugin.
|
|
178
|
+
*
|
|
179
|
+
* @returns The worker handle
|
|
180
|
+
* @throws if a worker is already registered for this plugin
|
|
181
|
+
*/
|
|
182
|
+
startWorker(pluginId: string, options: WorkerStartOptions): Promise<PluginWorkerHandle>;
|
|
183
|
+
/**
|
|
184
|
+
* Stop and unregister a specific plugin worker.
|
|
185
|
+
*/
|
|
186
|
+
stopWorker(pluginId: string): Promise<void>;
|
|
187
|
+
/**
|
|
188
|
+
* Get the worker handle for a plugin.
|
|
189
|
+
*/
|
|
190
|
+
getWorker(pluginId: string): PluginWorkerHandle | undefined;
|
|
191
|
+
/**
|
|
192
|
+
* Check if a worker is registered and running for a plugin.
|
|
193
|
+
*/
|
|
194
|
+
isRunning(pluginId: string): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Stop all managed workers. Called during server shutdown.
|
|
197
|
+
*/
|
|
198
|
+
stopAll(): Promise<void>;
|
|
199
|
+
/**
|
|
200
|
+
* Get diagnostic info for all workers.
|
|
201
|
+
*/
|
|
202
|
+
diagnostics(): WorkerDiagnostics[];
|
|
203
|
+
/**
|
|
204
|
+
* Send an RPC call to a specific plugin worker.
|
|
205
|
+
*
|
|
206
|
+
* @throws if the worker is not running
|
|
207
|
+
*/
|
|
208
|
+
call<M extends HostToWorkerMethodName>(pluginId: string, method: M, params: HostToWorkerMethods[M][0], timeoutMs?: number): Promise<HostToWorkerMethods[M][1]>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Create a handle for a single plugin worker process.
|
|
212
|
+
*
|
|
213
|
+
* @internal Exported for testing; consumers should use `createPluginWorkerManager`.
|
|
214
|
+
*/
|
|
215
|
+
export declare function createPluginWorkerHandle(pluginId: string, options: WorkerStartOptions): PluginWorkerHandle;
|
|
216
|
+
/**
|
|
217
|
+
* Options for creating a PluginWorkerManager.
|
|
218
|
+
*/
|
|
219
|
+
export interface PluginWorkerManagerOptions {
|
|
220
|
+
/**
|
|
221
|
+
* Optional callback invoked when a worker emits a lifecycle event
|
|
222
|
+
* (crash, restart). Used by the server to publish global live events.
|
|
223
|
+
*/
|
|
224
|
+
onWorkerEvent?: (event: {
|
|
225
|
+
type: "plugin.worker.crashed" | "plugin.worker.restarted";
|
|
226
|
+
pluginId: string;
|
|
227
|
+
code?: number | null;
|
|
228
|
+
signal?: string | null;
|
|
229
|
+
willRestart?: boolean;
|
|
230
|
+
}) => void;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Create a new PluginWorkerManager.
|
|
234
|
+
*
|
|
235
|
+
* The manager holds all plugin worker handles and provides a unified API for
|
|
236
|
+
* starting, stopping, and communicating with plugin workers.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```ts
|
|
240
|
+
* const manager = createPluginWorkerManager();
|
|
241
|
+
*
|
|
242
|
+
* const handle = await manager.startWorker("acme.linear", {
|
|
243
|
+
* entrypointPath: "/path/to/worker.cjs",
|
|
244
|
+
* manifest,
|
|
245
|
+
* config: resolvedConfig,
|
|
246
|
+
* instanceInfo: { instanceId: "inst-1", hostVersion: "1.0.0" },
|
|
247
|
+
* apiVersion: 1,
|
|
248
|
+
* hostHandlers: { "config.get": async () => resolvedConfig, ... },
|
|
249
|
+
* });
|
|
250
|
+
*
|
|
251
|
+
* // Send RPC call to the worker
|
|
252
|
+
* const health = await manager.call("acme.linear", "health", {});
|
|
253
|
+
*
|
|
254
|
+
* // Shutdown all workers on server exit
|
|
255
|
+
* await manager.stopAll();
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
export declare function createPluginWorkerManager(managerOptions?: PluginWorkerManagerOptions): PluginWorkerManager;
|
|
259
|
+
export {};
|
|
260
|
+
//# sourceMappingURL=plugin-worker-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-worker-manager.d.ts","sourceRoot":"","sources":["../../src/services/plugin-worker-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAgBrE,OAAO,KAAK,EAKV,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EAEpB,MAAM,yBAAyB,CAAC;AA4CjC;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,sBAAsB,IAAI,CAClE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAC9B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,sBAAsB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,6BAA6B;IAC7B,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;IACjF,2CAA2C;IAC3C,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACxG,mDAAmD;IACnD,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAC5C,6BAA6B;IAC7B,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,cAAc,EAAE,YAAY,CAAA;KAAE,CAAC;CACpF;AAED,KAAK,qBAAqB,GAAG,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,yDAAyD;IACzD,YAAY,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,EAAE,oBAAoB,CAAC;IACnC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClF;AAsBD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,oEAAoE;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;;OAKG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;;;;;;OASG;IACH,IAAI,CAAC,CAAC,SAAS,sBAAsB,EACnC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAE9C,kCAAkC;IAClC,EAAE,CAAC,CAAC,SAAS,qBAAqB,EAChC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GACjD,IAAI,CAAC;IAER,sCAAsC;IACtC,GAAG,CAAC,CAAC,SAAS,qBAAqB,EACjC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GACjD,IAAI,CAAC;IAER,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAEpC,4CAA4C;IAC5C,WAAW,IAAI,iBAAiB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExF;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE,CAAC;IAEnC;;;;OAIG;IACH,IAAI,CAAC,CAAC,SAAS,sBAAsB,EACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvC;AAMD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,CAyyBpB;AAMD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,IAAI,EAAE,uBAAuB,GAAG,yBAAyB,CAAC;QAC1D,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,KAAK,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,CAAC,EAAE,0BAA0B,GAC1C,mBAAmB,CA0HrB"}
|