watch-tail 0.9.0 → 0.10.1
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/README.md +111 -10
- package/build/client/_app/immutable/assets/0.B5hI3s8c.css +2 -0
- package/build/client/_app/immutable/assets/2.Cn4w1JYv.css +1 -0
- package/build/client/_app/immutable/chunks/0bp2Fczu.js +1 -0
- package/build/client/_app/immutable/chunks/B2En4t_E.js +3 -0
- package/build/client/_app/immutable/chunks/{DS3cLPAu.js → B7X5bVGV.js} +1 -1
- package/build/client/_app/immutable/chunks/BDcWO4cr.js +1 -0
- package/build/client/_app/immutable/chunks/{Dkh4Dwm8.js → BDdUgtQ9.js} +1 -1
- package/build/client/_app/immutable/chunks/{0b2v80OK.js → BP77Fyht.js} +1 -1
- package/build/client/_app/immutable/chunks/{dqF8mxBW.js → B_Mg_9D4.js} +1 -1
- package/build/client/_app/immutable/chunks/BvE-N_5_.js +1 -0
- package/build/client/_app/immutable/chunks/C0Fq51PS.js +1 -0
- package/build/client/_app/immutable/chunks/CBu7zaX6.js +15 -0
- package/build/client/_app/immutable/chunks/CDs2jokv.js +1 -0
- package/build/client/_app/immutable/chunks/{B5RiPG8Z.js → CL6wPCzw.js} +1 -1
- package/build/client/_app/immutable/chunks/CMPe3AwH.js +1 -0
- package/build/client/_app/immutable/chunks/{b77-bq1n.js → CRxuTO84.js} +1 -1
- package/build/client/_app/immutable/chunks/CXlCR4o6.js +10 -0
- package/build/client/_app/immutable/chunks/{DQqLOGLe.js → CZZUqHxO.js} +1 -1
- package/build/client/_app/immutable/chunks/{aI_O2VuQ.js → CaFHnwyo.js} +1 -1
- package/build/client/_app/immutable/chunks/CbtqT1c8.js +1 -0
- package/build/client/_app/immutable/chunks/{DGYKsRyW.js → CfRqDrzx.js} +1 -1
- package/build/client/_app/immutable/chunks/CwzJ9AB4.js +1 -0
- package/build/client/_app/immutable/chunks/{DwOZdLDj.js → Cy2yzzl5.js} +1 -1
- package/build/client/_app/immutable/chunks/D067lFSc.js +2 -0
- package/build/client/_app/immutable/chunks/{C_U_Jvk5.js → D27MZEE2.js} +1 -1
- package/build/client/_app/immutable/chunks/{IlwbfbOu.js → D9KJP6hv.js} +1 -1
- package/build/client/_app/immutable/chunks/DO938hpm.js +1 -0
- package/build/client/_app/immutable/chunks/DrLgrJ3k.js +1 -0
- package/build/client/_app/immutable/chunks/DrupwIIS.js +1 -0
- package/build/client/_app/immutable/chunks/LGzrUxfF.js +1 -0
- package/build/client/_app/immutable/chunks/{D7vimbmk.js → PUpq0Ki5.js} +1 -1
- package/build/client/_app/immutable/chunks/{DvxMaQv_.js → kSuEE8Bt.js} +1 -1
- package/build/client/_app/immutable/chunks/y79YFfGW.js +1 -0
- package/build/client/_app/immutable/chunks/zP_HZRCk.js +1 -0
- package/build/client/_app/immutable/entry/app.BEq8gOel.js +2 -0
- package/build/client/_app/immutable/entry/start.DmBlaUbV.js +1 -0
- package/build/client/_app/immutable/nodes/0.D63E8Q6i.js +1 -0
- package/build/client/_app/immutable/nodes/1.DXfG5P6X.js +1 -0
- package/build/client/_app/immutable/nodes/2.45XrHxUU.js +5 -0
- package/build/client/_app/version.json +1 -1
- package/build/env.js +0 -1
- package/build/handler.js +6 -9
- package/build/index.js +6 -9
- package/build/server/chunks/chunks/{archive.js-D2jtMmDo.js → archive.js-D7cGVWaq.js} +331 -31
- package/build/server/chunks/chunks/env.js-l0sNRNKZ.js +0 -1
- package/build/server/chunks/chunks/env2.js-C5BgBJDY.js +0 -1
- package/build/server/chunks/chunks/{exports.js-ClPPfcHj.js → exports.js-CvFPPbaH.js} +0 -6
- package/build/server/chunks/chunks/identity.js-NmGXxBz3.js +0 -1
- package/build/server/chunks/chunks/{index-server.js-CtH9Hqwf.js → index-server.js-DOq0LmqS.js} +87 -112
- package/build/server/chunks/chunks/internal.js-DZ8ZzzjN.js +0 -1
- package/build/server/chunks/chunks/{legacy-client.js-DAqKExQD.js → internal2.js-B2FekELn.js} +279 -7
- package/build/server/chunks/chunks/{level-filter.js-D9MNrew3.js → level-filter.js-kKdNjmbR.js} +2 -3
- package/build/server/chunks/chunks/{log-buffer.js-A9FA-Qv8.js → log-buffer.js-BjT3sJlh.js} +1 -2
- package/build/server/chunks/chunks/regions.js-COf7DgnH.js +0 -1
- package/build/server/chunks/chunks/shared-server.js-Dn5XheXH.js +0 -1
- package/build/server/chunks/chunks/shared.js-CgjUIvRK.js +0 -1
- package/build/server/chunks/chunks/source.js-DZEVvuho.js +0 -1
- package/build/server/chunks/chunks/{state.js-i-NVNGIq.js → state.js-CdO6iuBd.js} +3 -4
- package/build/server/chunks/chunks/text-size.svelte.js-D09gVgvI.js +309 -0
- package/build/server/chunks/chunks/{time-range.js-BLMT8aU3.js → time-range.js-__87ZPq6.js} +9 -5
- package/build/server/chunks/chunks/uneval.js-DaakSYFQ.js +0 -1
- package/build/server/chunks/chunks/utils.js-BIlHjgGW.js +0 -1
- package/build/server/chunks/entries/endpoints/api/archive/{_server.ts.js-C4hWyXuu.js → _server.ts.js-D-97I3hr.js} +2 -3
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-C5tfrpmC.js +0 -1
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-PWRPScuN.js +0 -1
- package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-D4y43Vwe.js → _server.ts.js-BBBsBX5h.js} +2 -3
- package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-9_g0ojki.js +0 -1
- package/build/server/chunks/entries/endpoints/api/series/{_server.ts.js-DibT3Hjc.js → _server.ts.js-bsGqvQ1O.js} +4 -5
- package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-BxXw5K0R.js → _server.ts.js-B6obpUbh.js} +211 -49
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-ylsqA41Y.js → error.svelte.js-BupH3lxJ.js} +4 -7
- package/build/server/chunks/entries/pages/_layout.svelte.js-C3CVxu2T.js +621 -0
- package/build/server/chunks/entries/pages/{_page.svelte.js-C9-7d7mD.js → _page.svelte.js-DS9p1LVo.js} +643 -191
- package/build/server/chunks/{handler-Bqo8aDgP.js → handler-DrjCpeeA.js} +4 -5
- package/build/server/chunks/{index.js-fPvMujCL.js → index.js-BLTOesya.js} +3 -4
- package/build/server/chunks/{manifest.js-Bkj-8GaD.js → manifest.js-C1_IS4sj.js} +8 -9
- package/build/server/chunks/nodes/0.js-BHXaR9OX.js +8 -0
- package/build/server/chunks/nodes/1.js-C-coUSdu.js +8 -0
- package/build/server/chunks/nodes/2.js-Dor6Xgc7.js +8 -0
- package/build/shims.js +0 -1
- package/dist/cli/completions.js +24 -0
- package/dist/cli/index.js +144 -3
- package/dist/cli/mcp/agents.js +344 -0
- package/dist/cli/mcp/backend.js +235 -0
- package/dist/cli/mcp/run.js +245 -0
- package/dist/cli/mcp/stdio.js +103 -0
- package/dist/cli/mcp/tools.js +245 -0
- package/dist/cli/options.js +138 -25
- package/dist/cli/server.js +28 -0
- package/dist/cli/ui.js +20 -1
- package/dist/lib/time-range.js +14 -3
- package/package.json +21 -6
- package/build/client/_app/immutable/assets/0.ChTKqSf6.css +0 -2
- package/build/client/_app/immutable/assets/0.ChTKqSf6.css.br +0 -0
- package/build/client/_app/immutable/assets/0.ChTKqSf6.css.gz +0 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css.br +0 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css.br +0 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css.gz +0 -0
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css.br +0 -1
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css.gz +0 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css.br +0 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css.gz +0 -0
- package/build/client/_app/immutable/assets/EventScatter.0BkgJO-l.css.br +0 -0
- package/build/client/_app/immutable/assets/EventScatter.0BkgJO-l.css.gz +0 -0
- package/build/client/_app/immutable/assets/Labels.sEaJtb97.css.br +0 -0
- package/build/client/_app/immutable/assets/Labels.sEaJtb97.css.gz +0 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css.br +0 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css.gz +0 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css.br +0 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css.gz +0 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css.br +0 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css.gz +0 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css.br +0 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css.gz +0 -0
- package/build/client/_app/immutable/chunks/0b2v80OK.js.br +0 -0
- package/build/client/_app/immutable/chunks/0b2v80OK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/5EFAIHuJ.js +0 -1
- package/build/client/_app/immutable/chunks/5EFAIHuJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/5EFAIHuJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B15XBe8D.js +0 -1
- package/build/client/_app/immutable/chunks/B15XBe8D.js.br +0 -0
- package/build/client/_app/immutable/chunks/B15XBe8D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5RiPG8Z.js.br +0 -2
- package/build/client/_app/immutable/chunks/B5RiPG8Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BR2LaRms.js.br +0 -1
- package/build/client/_app/immutable/chunks/BR2LaRms.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_KVdCQT.js +0 -10
- package/build/client/_app/immutable/chunks/B_KVdCQT.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_KVdCQT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BuCpRsEL.js +0 -1
- package/build/client/_app/immutable/chunks/BuCpRsEL.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuCpRsEL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BvZtsVvW.js +0 -1
- package/build/client/_app/immutable/chunks/BvZtsVvW.js.br +0 -0
- package/build/client/_app/immutable/chunks/BvZtsVvW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3Y15ONf.js +0 -2
- package/build/client/_app/immutable/chunks/C3Y15ONf.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3Y15ONf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js.br +0 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C9GPQYs7.js +0 -1
- package/build/client/_app/immutable/chunks/C9GPQYs7.js.br +0 -0
- package/build/client/_app/immutable/chunks/C9GPQYs7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CBZpkDc1.js.br +0 -0
- package/build/client/_app/immutable/chunks/CBZpkDc1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C_U_Jvk5.js.br +0 -0
- package/build/client/_app/immutable/chunks/C_U_Jvk5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cd7JqZj9.js +0 -1
- package/build/client/_app/immutable/chunks/Cd7JqZj9.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cd7JqZj9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D2PbcyDU.js +0 -1
- package/build/client/_app/immutable/chunks/D2PbcyDU.js.br +0 -0
- package/build/client/_app/immutable/chunks/D2PbcyDU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7vimbmk.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7vimbmk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DAqXSYzi.js +0 -1
- package/build/client/_app/immutable/chunks/DAqXSYzi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DAqXSYzi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DGYKsRyW.js.br +0 -0
- package/build/client/_app/immutable/chunks/DGYKsRyW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPaulGql.js +0 -1
- package/build/client/_app/immutable/chunks/DPaulGql.js.br +0 -1
- package/build/client/_app/immutable/chunks/DPaulGql.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQqLOGLe.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQqLOGLe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DS3cLPAu.js.br +0 -0
- package/build/client/_app/immutable/chunks/DS3cLPAu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js.br +0 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dkh4Dwm8.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dkh4Dwm8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DnqfXHAL.js +0 -15
- package/build/client/_app/immutable/chunks/DnqfXHAL.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnqfXHAL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DsYron7_.js +0 -1
- package/build/client/_app/immutable/chunks/DsYron7_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DsYron7_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DuM1cPdZ.js +0 -1
- package/build/client/_app/immutable/chunks/DuM1cPdZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuM1cPdZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvxMaQv_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvxMaQv_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DwOZdLDj.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwOZdLDj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js.br +0 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/IlwbfbOu.js.br +0 -0
- package/build/client/_app/immutable/chunks/IlwbfbOu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/RobXhXPM.js.br +0 -1
- package/build/client/_app/immutable/chunks/RobXhXPM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js.br +0 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aI_O2VuQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/aI_O2VuQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/b77-bq1n.js.br +0 -0
- package/build/client/_app/immutable/chunks/b77-bq1n.js.gz +0 -0
- package/build/client/_app/immutable/chunks/dqF8mxBW.js.br +0 -0
- package/build/client/_app/immutable/chunks/dqF8mxBW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gkAHSOnS.js +0 -1
- package/build/client/_app/immutable/chunks/gkAHSOnS.js.br +0 -0
- package/build/client/_app/immutable/chunks/gkAHSOnS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js +0 -3
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js.br +0 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ti8ecMFX.js +0 -1
- package/build/client/_app/immutable/chunks/ti8ecMFX.js.br +0 -0
- package/build/client/_app/immutable/chunks/ti8ecMFX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +0 -1
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js.br +0 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CTR4aUFT.js +0 -2
- package/build/client/_app/immutable/entry/app.CTR4aUFT.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CTR4aUFT.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CC6Ln8E2.js +0 -1
- package/build/client/_app/immutable/entry/start.CC6Ln8E2.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CC6Ln8E2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CvUxmLsM.js +0 -1
- package/build/client/_app/immutable/nodes/0.CvUxmLsM.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CvUxmLsM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CbSHqfEx.js +0 -1
- package/build/client/_app/immutable/nodes/1.CbSHqfEx.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CbSHqfEx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DcD5v8dU.js +0 -5
- package/build/client/_app/immutable/nodes/2.DcD5v8dU.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DcD5v8dU.js.gz +0 -0
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/robots.txt.br +0 -0
- package/build/client/robots.txt.gz +0 -0
- package/build/env.js.map +0 -1
- package/build/handler.js.map +0 -1
- package/build/index.js.map +0 -1
- package/build/server/chunks/chunks/Arc.canvas.js-CN0KDoHG.js +0 -701
- package/build/server/chunks/chunks/Arc.canvas.js-CN0KDoHG.js.map +0 -1
- package/build/server/chunks/chunks/Arc.js-C8EC9NoE.js +0 -31
- package/build/server/chunks/chunks/Arc.js-C8EC9NoE.js.map +0 -1
- package/build/server/chunks/chunks/Bar.js-DtAb3LZZ.js +0 -448
- package/build/server/chunks/chunks/Bar.js-DtAb3LZZ.js.map +0 -1
- package/build/server/chunks/chunks/ChartAnnotations.js-twzDSVzY.js +0 -983
- package/build/server/chunks/chunks/ChartAnnotations.js-twzDSVzY.js.map +0 -1
- package/build/server/chunks/chunks/Circle.html.js-BJywADGK.js +0 -355
- package/build/server/chunks/chunks/Circle.html.js-BJywADGK.js.map +0 -1
- package/build/server/chunks/chunks/ClipPath.canvas.js-9Fc0bTEM.js +0 -170
- package/build/server/chunks/chunks/ClipPath.canvas.js-9Fc0bTEM.js.map +0 -1
- package/build/server/chunks/chunks/DefaultTooltip.js-C2NWK2AD.js +0 -352
- package/build/server/chunks/chunks/DefaultTooltip.js-C2NWK2AD.js.map +0 -1
- package/build/server/chunks/chunks/EventScatter.js-CO2GonW-.js +0 -7370
- package/build/server/chunks/chunks/EventScatter.js-CO2GonW-.js.map +0 -1
- package/build/server/chunks/chunks/Labels.js-DB9qoyZ3.js +0 -497
- package/build/server/chunks/chunks/Labels.js-DB9qoyZ3.js.map +0 -1
- package/build/server/chunks/chunks/Legend.js-B_ArjxQ7.js +0 -343
- package/build/server/chunks/chunks/Legend.js-B_ArjxQ7.js.map +0 -1
- package/build/server/chunks/chunks/Line.html.js-B1REcOFe.js +0 -423
- package/build/server/chunks/chunks/Line.html.js-B1REcOFe.js.map +0 -1
- package/build/server/chunks/chunks/Link.canvas.js-nWimAHfH.js +0 -756
- package/build/server/chunks/chunks/Link.canvas.js-nWimAHfH.js.map +0 -1
- package/build/server/chunks/chunks/Path.canvas.js-5A9wB8zQ.js +0 -1259
- package/build/server/chunks/chunks/Path.canvas.js-5A9wB8zQ.js.map +0 -1
- package/build/server/chunks/chunks/Points.html.js-B2o3k-ZZ.js +0 -228
- package/build/server/chunks/chunks/Points.html.js-B2o3k-ZZ.js.map +0 -1
- package/build/server/chunks/chunks/Points.js-D7ozN9W5.js +0 -14
- package/build/server/chunks/chunks/Points.js-D7ozN9W5.js.map +0 -1
- package/build/server/chunks/chunks/Points2.js-BVbWugLT.js +0 -25
- package/build/server/chunks/chunks/Points2.js-BVbWugLT.js.map +0 -1
- package/build/server/chunks/chunks/Rect.html.js-DnQ6ObhQ.js +0 -547
- package/build/server/chunks/chunks/Rect.html.js-DnQ6ObhQ.js.map +0 -1
- package/build/server/chunks/chunks/Spline.js-YnAxvrKY.js +0 -516
- package/build/server/chunks/chunks/Spline.js-YnAxvrKY.js.map +0 -1
- package/build/server/chunks/chunks/Text.html.js-LbmYJb11.js +0 -847
- package/build/server/chunks/chunks/Text.html.js-LbmYJb11.js.map +0 -1
- package/build/server/chunks/chunks/TooltipItem.js-Ce-blieA.js +0 -314
- package/build/server/chunks/chunks/TooltipItem.js-Ce-blieA.js.map +0 -1
- package/build/server/chunks/chunks/Voronoi.js-CalFJAXH.js +0 -2052
- package/build/server/chunks/chunks/Voronoi.js-CalFJAXH.js.map +0 -1
- package/build/server/chunks/chunks/archive.js-D2jtMmDo.js.map +0 -1
- package/build/server/chunks/chunks/array.js-CBp0H4t3.js +0 -8
- package/build/server/chunks/chunks/array.js-CBp0H4t3.js.map +0 -1
- package/build/server/chunks/chunks/attributes.js-CbKEpZKa.js +0 -25
- package/build/server/chunks/chunks/attributes.js-CbKEpZKa.js.map +0 -1
- package/build/server/chunks/chunks/band.js-CjzHWr4k.js +0 -155
- package/build/server/chunks/chunks/band.js-CjzHWr4k.js.map +0 -1
- package/build/server/chunks/chunks/centroid.js-BnGN3LH0.js +0 -1356
- package/build/server/chunks/chunks/centroid.js-BnGN3LH0.js.map +0 -1
- package/build/server/chunks/chunks/common.js-BvQnfkFo.js +0 -5760
- package/build/server/chunks/chunks/common.js-BvQnfkFo.js.map +0 -1
- package/build/server/chunks/chunks/env.js-l0sNRNKZ.js.map +0 -1
- package/build/server/chunks/chunks/env2.js-C5BgBJDY.js.map +0 -1
- package/build/server/chunks/chunks/events.js-zIVaXIP1.js +0 -95
- package/build/server/chunks/chunks/events.js-zIVaXIP1.js.map +0 -1
- package/build/server/chunks/chunks/exports.js-ClPPfcHj.js.map +0 -1
- package/build/server/chunks/chunks/group.js-D0SfevId.js +0 -30
- package/build/server/chunks/chunks/group.js-D0SfevId.js.map +0 -1
- package/build/server/chunks/chunks/identity.js-NmGXxBz3.js.map +0 -1
- package/build/server/chunks/chunks/index-server.js-CtH9Hqwf.js.map +0 -1
- package/build/server/chunks/chunks/index-server2.js-l0sNRNKZ.js +0 -2
- package/build/server/chunks/chunks/index-server2.js-l0sNRNKZ.js.map +0 -1
- package/build/server/chunks/chunks/internal.js-DZ8ZzzjN.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js-CfVVfAb5.js +0 -188
- package/build/server/chunks/chunks/internal2.js-CfVVfAb5.js.map +0 -1
- package/build/server/chunks/chunks/key.svelte.js-Cq0L6YlN.js +0 -695
- package/build/server/chunks/chunks/key.svelte.js-Cq0L6YlN.js.map +0 -1
- package/build/server/chunks/chunks/legacy-client.js-DAqKExQD.js.map +0 -1
- package/build/server/chunks/chunks/level-filter.js-D9MNrew3.js.map +0 -1
- package/build/server/chunks/chunks/lineRadial.js-B7ZNP_Jp.js +0 -126
- package/build/server/chunks/chunks/lineRadial.js-B7ZNP_Jp.js.map +0 -1
- package/build/server/chunks/chunks/linear.js-CHlwr1I4.js +0 -1046
- package/build/server/chunks/chunks/linear.js-CHlwr1I4.js.map +0 -1
- package/build/server/chunks/chunks/log-buffer.js-A9FA-Qv8.js.map +0 -1
- package/build/server/chunks/chunks/math.js-BqujbaBs.js +0 -50
- package/build/server/chunks/chunks/math.js-BqujbaBs.js.map +0 -1
- package/build/server/chunks/chunks/max.js-CuS0BpRI.js +0 -11
- package/build/server/chunks/chunks/max.js-CuS0BpRI.js.map +0 -1
- package/build/server/chunks/chunks/min.js-DZWt5tPl.js +0 -11
- package/build/server/chunks/chunks/min.js-DZWt5tPl.js.map +0 -1
- package/build/server/chunks/chunks/motion.svelte.js-Crk8ri1u.js +0 -677
- package/build/server/chunks/chunks/motion.svelte.js-Crk8ri1u.js.map +0 -1
- package/build/server/chunks/chunks/occlusion.js-ot9_OqWn.js +0 -33
- package/build/server/chunks/chunks/occlusion.js-ot9_OqWn.js.map +0 -1
- package/build/server/chunks/chunks/path.js-BizMrlzb.js +0 -488
- package/build/server/chunks/chunks/path.js-BizMrlzb.js.map +0 -1
- package/build/server/chunks/chunks/path2.js-DLVU8nc9.js +0 -27
- package/build/server/chunks/chunks/path2.js-DLVU8nc9.js.map +0 -1
- package/build/server/chunks/chunks/pointRadial.js-Deeu1LXx.js +0 -7
- package/build/server/chunks/chunks/pointRadial.js-Deeu1LXx.js.map +0 -1
- package/build/server/chunks/chunks/rect.svelte.js-_0PgI5fe.js +0 -187
- package/build/server/chunks/chunks/rect.svelte.js-_0PgI5fe.js.map +0 -1
- package/build/server/chunks/chunks/regions.js-COf7DgnH.js.map +0 -1
- package/build/server/chunks/chunks/scales.svelte.js-DeNkKcI-.js +0 -276
- package/build/server/chunks/chunks/scales.svelte.js-DeNkKcI-.js.map +0 -1
- package/build/server/chunks/chunks/series-buckets.js-C-vMEJT2.js +0 -316
- package/build/server/chunks/chunks/series-buckets.js-C-vMEJT2.js.map +0 -1
- package/build/server/chunks/chunks/shared-server.js-Dn5XheXH.js.map +0 -1
- package/build/server/chunks/chunks/shared.js-CgjUIvRK.js.map +0 -1
- package/build/server/chunks/chunks/source.js-DZEVvuho.js.map +0 -1
- package/build/server/chunks/chunks/state.js-i-NVNGIq.js.map +0 -1
- package/build/server/chunks/chunks/time-range.js-BLMT8aU3.js.map +0 -1
- package/build/server/chunks/chunks/types.js-x3GyGPOz.js +0 -11
- package/build/server/chunks/chunks/types.js-x3GyGPOz.js.map +0 -1
- package/build/server/chunks/chunks/uneval.js-DaakSYFQ.js.map +0 -1
- package/build/server/chunks/chunks/utils.js-BIlHjgGW.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/archive/_server.ts.js-C4hWyXuu.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-C5tfrpmC.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-PWRPScuN.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/log-groups/_server.ts.js-D4y43Vwe.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-9_g0ojki.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/series/_server.ts.js-DibT3Hjc.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-BxXw5K0R.js.map +0 -1
- package/build/server/chunks/entries/fallbacks/error.svelte.js-ylsqA41Y.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.svelte.js-D7sAdBVX.js +0 -113
- package/build/server/chunks/entries/pages/_layout.svelte.js-D7sAdBVX.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-C9-7d7mD.js.map +0 -1
- package/build/server/chunks/handler-Bqo8aDgP.js.map +0 -1
- package/build/server/chunks/index.js-fPvMujCL.js.map +0 -1
- package/build/server/chunks/manifest.js-Bkj-8GaD.js.map +0 -1
- package/build/server/chunks/nodes/0.js-7J6kXnEo.js +0 -9
- package/build/server/chunks/nodes/0.js-7J6kXnEo.js.map +0 -1
- package/build/server/chunks/nodes/1.js-DZXnUx67.js +0 -9
- package/build/server/chunks/nodes/1.js-DZXnUx67.js.map +0 -1
- package/build/server/chunks/nodes/2.js-85y9-1SS.js +0 -9
- package/build/server/chunks/nodes/2.js-85y9-1SS.js.map +0 -1
- package/build/shims.js.map +0 -1
|
@@ -9,8 +9,8 @@ import * as qs from 'node:querystring';
|
|
|
9
9
|
import { Readable } from 'node:stream';
|
|
10
10
|
import { S as SvelteKitError } from './chunks/shared.js-CgjUIvRK.js';
|
|
11
11
|
import './chunks/utils.js-BIlHjgGW.js';
|
|
12
|
-
import { S as Server } from './index.js-
|
|
13
|
-
import { m as manifest } from './manifest.js-
|
|
12
|
+
import { S as Server } from './index.js-BLTOesya.js';
|
|
13
|
+
import { m as manifest } from './manifest.js-C1_IS4sj.js';
|
|
14
14
|
import { env, dir, env_prefix } from '../../env.js';
|
|
15
15
|
import { format } from 'node:url';
|
|
16
16
|
|
|
@@ -1534,8 +1534,8 @@ function serve(path, client = false) {
|
|
|
1534
1534
|
return fs__default.existsSync(path)
|
|
1535
1535
|
? sirv(path, {
|
|
1536
1536
|
etag: true,
|
|
1537
|
-
gzip:
|
|
1538
|
-
brotli:
|
|
1537
|
+
gzip: false,
|
|
1538
|
+
brotli: false,
|
|
1539
1539
|
setHeaders: client
|
|
1540
1540
|
? (res, pathname) => {
|
|
1541
1541
|
// only apply to build directory, not e.g. version.json
|
|
@@ -1732,4 +1732,3 @@ const handler = sequence(
|
|
|
1732
1732
|
);
|
|
1733
1733
|
|
|
1734
1734
|
export { format_listening_address as f, handler as h, polka as p };
|
|
1735
|
-
//# sourceMappingURL=handler-Bqo8aDgP.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { a2 as __commonJSMin, a3 as writable, a4 as readable } from './chunks/index-server.js-
|
|
1
|
+
import { a2 as __commonJSMin, a3 as writable, a4 as readable } from './chunks/index-server.js-DOq0LmqS.js';
|
|
2
2
|
import { n as noop, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, R as Redirect, b as get_relative_path, S as SvelteKitError, g as get_status, t as text_encoder, o as once, H as HttpError, d as normalize_error, e as create_remote_key, f as parse_remote_arg, s as stringify, h as stringify$1, A as ActionFailure, i as split_remote_key, j as base64_encode } from './chunks/shared.js-CgjUIvRK.js';
|
|
3
3
|
import { b as base, o as override, a as assets, r as reset, c as app_dir } from './chunks/internal.js-DZ8ZzzjN.js';
|
|
4
4
|
import { f as format_server_error, j as json, i as is_form_content_type, t as text, h as has_prerendered_path, a as handle_fatal_error, r as redirect_response, g as get_set_cookies, n as negotiate, w as with_request_store, p as parseString, m as merge_tracing, b as method_not_allowed, s as static_error_page, c as handle_error_and_jsonify, d as get_global_name, e as create_replacer, k as serialize_uses, l as clarify_devalue_error, E as ENDPOINT_METHODS, P as PAGE_METHODS, o as get_node_type, q as isRedirect, u as escape_html, v as error, x as deserialize_binary_form } from './chunks/utils.js-BIlHjgGW.js';
|
|
5
5
|
import { u as uneval } from './chunks/uneval.js-DaakSYFQ.js';
|
|
6
6
|
import { s as set_private_env, a as set_public_env, p as public_env } from './chunks/shared-server.js-Dn5XheXH.js';
|
|
7
|
-
import { d as decode_pathname, f as find_route, n as normalize_path, a as disable_search, v as validate_layout_server_exports, b as validate_layout_exports, c as validate_page_server_exports, e as validate_page_exports, r as resolve, h as hash, m as make_trackable } from './chunks/exports.js-
|
|
8
|
-
import { o as options, g as get_hooks, r as read_implementation, s as set_read_implementation } from './chunks/internal2.js-
|
|
7
|
+
import { d as decode_pathname, f as find_route, n as normalize_path, a as disable_search, v as validate_layout_server_exports, b as validate_layout_exports, c as validate_page_server_exports, e as validate_page_exports, r as resolve, h as hash, m as make_trackable } from './chunks/exports.js-CvFPPbaH.js';
|
|
8
|
+
import { o as options, g as get_hooks, r as read_implementation, s as set_read_implementation } from './chunks/internal2.js-B2FekELn.js';
|
|
9
9
|
|
|
10
10
|
//#region node_modules/.pnpm/@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0_vite@8.2.2_@types_ab6e39593f61aae0ad0b9a1bac6935c7/node_modules/@sveltejs/kit/src/utils/promise.js
|
|
11
11
|
/** @see https://github.com/microsoft/TypeScript/blob/904e7dd97dc8da1352c8e05d70829dff17c73214/src/lib/es2024.promise.d.ts */
|
|
@@ -3800,4 +3800,3 @@ var Server = class {
|
|
|
3800
3800
|
};
|
|
3801
3801
|
|
|
3802
3802
|
export { Server as S };
|
|
3803
|
-
//# sourceMappingURL=index.js-fPvMujCL.js.map
|
|
@@ -10,11 +10,11 @@ return {
|
|
|
10
10
|
assets: new Set(["robots.txt"]),
|
|
11
11
|
mimeTypes: {".txt":"text/plain"},
|
|
12
12
|
_: {
|
|
13
|
-
client: {start:"_app/immutable/entry/start.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.DmBlaUbV.js",app:"_app/immutable/entry/app.BEq8gOel.js",imports:["_app/immutable/entry/start.DmBlaUbV.js","_app/immutable/chunks/DrupwIIS.js","_app/immutable/chunks/B2En4t_E.js","_app/immutable/entry/app.BEq8gOel.js","_app/immutable/chunks/B2En4t_E.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
14
|
nodes: [
|
|
15
|
-
__memo(() => import('./nodes/0.js-
|
|
16
|
-
__memo(() => import('./nodes/1.js-
|
|
17
|
-
__memo(() => import('./nodes/2.js-
|
|
15
|
+
__memo(() => import('./nodes/0.js-BHXaR9OX.js')),
|
|
16
|
+
__memo(() => import('./nodes/1.js-C-coUSdu.js')),
|
|
17
|
+
__memo(() => import('./nodes/2.js-Dor6Xgc7.js'))
|
|
18
18
|
],
|
|
19
19
|
remotes: {
|
|
20
20
|
|
|
@@ -32,7 +32,7 @@ return {
|
|
|
32
32
|
pattern: /^\/api\/archive\/?$/,
|
|
33
33
|
params: [],
|
|
34
34
|
page: null,
|
|
35
|
-
endpoint: __memo(() => import('./entries/endpoints/api/archive/_server.ts.js-
|
|
35
|
+
endpoint: __memo(() => import('./entries/endpoints/api/archive/_server.ts.js-D-97I3hr.js'))
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
id: "/api/health",
|
|
@@ -53,7 +53,7 @@ return {
|
|
|
53
53
|
pattern: /^\/api\/log-groups\/?$/,
|
|
54
54
|
params: [],
|
|
55
55
|
page: null,
|
|
56
|
-
endpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js-
|
|
56
|
+
endpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js-BBBsBX5h.js'))
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
id: "/api/regions",
|
|
@@ -67,14 +67,14 @@ return {
|
|
|
67
67
|
pattern: /^\/api\/series\/?$/,
|
|
68
68
|
params: [],
|
|
69
69
|
page: null,
|
|
70
|
-
endpoint: __memo(() => import('./entries/endpoints/api/series/_server.ts.js-
|
|
70
|
+
endpoint: __memo(() => import('./entries/endpoints/api/series/_server.ts.js-bsGqvQ1O.js'))
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
id: "/api/stream",
|
|
74
74
|
pattern: /^\/api\/stream\/?$/,
|
|
75
75
|
params: [],
|
|
76
76
|
page: null,
|
|
77
|
-
endpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js-
|
|
77
|
+
endpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js-B6obpUbh.js'))
|
|
78
78
|
}
|
|
79
79
|
],
|
|
80
80
|
prerendered_routes: new Set([]),
|
|
@@ -88,4 +88,3 @@ return {
|
|
|
88
88
|
})();
|
|
89
89
|
|
|
90
90
|
export { manifest as m };
|
|
91
|
-
//# sourceMappingURL=manifest.js-Bkj-8GaD.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const index = 0;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js-C3CVxu2T.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/0.D63E8Q6i.js","_app/immutable/chunks/B2En4t_E.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/LGzrUxfF.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/0.B5hI3s8c.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const index = 1;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js-BupH3lxJ.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/1.DXfG5P6X.js","_app/immutable/chunks/B2En4t_E.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/CL6wPCzw.js","_app/immutable/chunks/DrupwIIS.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const index = 2;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-DS9p1LVo.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/2.45XrHxUU.js","_app/immutable/chunks/B2En4t_E.js","_app/immutable/chunks/DrupwIIS.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/LGzrUxfF.js","_app/immutable/chunks/CL6wPCzw.js","_app/immutable/chunks/CBZpkDc1.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/2.Cn4w1JYv.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
package/build/shims.js
CHANGED
package/dist/cli/completions.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import t from '@bomb.sh/tab';
|
|
9
9
|
import { readProfiles } from "../lib/cli/aws.js";
|
|
10
|
+
import { AGENTS } from "./mcp/agents.js";
|
|
10
11
|
import { DEFAULT_HOST, DEFAULT_PORT, FLOCI_ENDPOINT } from "./options.js";
|
|
11
12
|
/** Shells `tab` can generate scripts for. */
|
|
12
13
|
export const SHELLS = ['zsh', 'bash', 'fish', 'powershell'];
|
|
@@ -75,6 +76,29 @@ function registerCompletionSpec(profiles = []) {
|
|
|
75
76
|
for (const shell of SHELLS)
|
|
76
77
|
emit(shell, `${shell} completion script`);
|
|
77
78
|
});
|
|
79
|
+
const mcp = t.command('mcp', 'Serve watch-tail to an AI agent over stdio');
|
|
80
|
+
mcp.argument('subcommand', function (emit) {
|
|
81
|
+
emit('init', 'Detect agents and write watch-tail into them');
|
|
82
|
+
});
|
|
83
|
+
mcp.option('url', 'Use a watch-tail already running at this URL', function (emit) {
|
|
84
|
+
emit('http://127.0.0.1:4517', 'a watch-tail on the default port');
|
|
85
|
+
});
|
|
86
|
+
mcp.option('agent', 'Agents to configure, comma separated', function (emit) {
|
|
87
|
+
for (const agent of AGENTS)
|
|
88
|
+
emit(agent.id, agent.name);
|
|
89
|
+
});
|
|
90
|
+
mcp.option('yes', 'Configure every detected agent without asking');
|
|
91
|
+
mcp.option('scope', 'Where to write the configuration', function (emit) {
|
|
92
|
+
emit('user', 'user-wide configuration');
|
|
93
|
+
emit('project', 'configuration for this project');
|
|
94
|
+
});
|
|
95
|
+
mcp.option('command', 'Executable written into the agent config', function (emit) {
|
|
96
|
+
emit('npx', 'the published package (default)');
|
|
97
|
+
emit('node', 'run a local build');
|
|
98
|
+
});
|
|
99
|
+
mcp.option('args', 'Arguments written before `mcp`', function (emit) {
|
|
100
|
+
emit('-y watch-tail', 'the published package (default)');
|
|
101
|
+
});
|
|
78
102
|
}
|
|
79
103
|
/**
|
|
80
104
|
* Handles `complete ...`.
|
package/dist/cli/index.js
CHANGED
|
@@ -8,13 +8,17 @@
|
|
|
8
8
|
* `$lib/cli/aws.ts`, and the side effects are injectable through {@link CliIo}.
|
|
9
9
|
*/
|
|
10
10
|
import { spawn } from 'node:child_process';
|
|
11
|
-
import { readFileSync } from 'node:fs';
|
|
12
|
-
import {
|
|
11
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from 'node:fs';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
13
|
+
import { delimiter, join } from 'node:path';
|
|
13
14
|
import { buildChildEnv, describeChildEnv, isEmulatorEndpoint, isLocalEnvPresent, readConfigText, readCredentialsText, readLocalEnvValues, readProfiles, resolveRunRegion, signalExitCode, suppressLocalEnvValues, } from "../lib/cli/aws.js";
|
|
14
15
|
import { classifyCredentialFailure, describeStyle, isCredentialFailure, loginAdvice, readProfileStyle, } from "../lib/cli/credentials.js";
|
|
15
16
|
import { handleCompletion } from "./completions.js";
|
|
17
|
+
import { createHttpBackend } from "./mcp/backend.js";
|
|
18
|
+
import { runMcpInit, runMcpServer } from "./mcp/run.js";
|
|
19
|
+
import { serveMcp } from "./mcp/stdio.js";
|
|
16
20
|
import { isLoopbackHost, parseCliArgs, usageText } from "./options.js";
|
|
17
|
-
import { appRootFromHere, healthUrl, openBrowser as openBrowserDefault, startServer, stopServer, uiUrl, waitForHealth, } from "./server.js";
|
|
21
|
+
import { appRootFromHere, findFreePort, healthUrl, openBrowser as openBrowserDefault, startServer, stopServer, uiUrl, waitForHealth, } from "./server.js";
|
|
18
22
|
import { describeArchive, isHeadless, probeCredentials as probeCredentialsDefault, readArchive as readArchiveDefault, readIdentity as readIdentityDefault, runLogin as runLoginDefault, shortIdentity, } from "./preflight.js";
|
|
19
23
|
import { PromptCancelled, createUi, isInteractive } from "./ui.js";
|
|
20
24
|
/** Reads the version from the package manifest next to the app root. */
|
|
@@ -61,6 +65,45 @@ function waitForStop(child) {
|
|
|
61
65
|
});
|
|
62
66
|
});
|
|
63
67
|
}
|
|
68
|
+
/** True when `binary` is an executable found on `PATH`. */
|
|
69
|
+
function commandExists(binary, env = process.env, exists = existsSync, platform = process.platform) {
|
|
70
|
+
const directories = (env.PATH ?? '').split(delimiter).filter((dir) => dir.length > 0);
|
|
71
|
+
const suffixes = platform === 'win32' ? ['', '.exe', '.cmd', '.bat'] : [''];
|
|
72
|
+
for (const directory of directories) {
|
|
73
|
+
for (const suffix of suffixes) {
|
|
74
|
+
if (exists(join(directory, `${binary}${suffix}`)))
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Replaces a file without ever leaving it half-written.
|
|
82
|
+
*
|
|
83
|
+
* `mcp init` edits files other programs own and rewrite (Claude Code keeps its
|
|
84
|
+
* whole state in `~/.claude.json`), so the new contents go to a temporary file
|
|
85
|
+
* beside it, take the original's permissions, and are renamed over it.
|
|
86
|
+
*/
|
|
87
|
+
export function writeFileAtomic(path, contents) {
|
|
88
|
+
const temporary = `${path}.watch-tail-${process.pid}.tmp`;
|
|
89
|
+
let mode = null;
|
|
90
|
+
try {
|
|
91
|
+
mode = statSync(path).mode & 0o777;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// A new file takes the default permissions.
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
writeFileSync(temporary, contents, { encoding: 'utf8', mode: mode ?? 0o666 });
|
|
98
|
+
if (mode !== null)
|
|
99
|
+
chmodSync(temporary, mode);
|
|
100
|
+
renameSync(temporary, path);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
rmSync(temporary, { force: true });
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
64
107
|
/** Real process environment for the CLI. */
|
|
65
108
|
function defaultIo() {
|
|
66
109
|
const appRoot = appRootFromHere();
|
|
@@ -82,6 +125,21 @@ function defaultIo() {
|
|
|
82
125
|
readArchive: (input) => readArchiveDefault(input),
|
|
83
126
|
waitForHealth,
|
|
84
127
|
startServerImpl: startServer,
|
|
128
|
+
stopServerImpl: stopServer,
|
|
129
|
+
findFreePort,
|
|
130
|
+
serveMcp,
|
|
131
|
+
stdin: process.stdin,
|
|
132
|
+
mcpStdout: process.stdout,
|
|
133
|
+
agentFs: {
|
|
134
|
+
home: homedir(),
|
|
135
|
+
platform: process.platform,
|
|
136
|
+
cwd: process.cwd(),
|
|
137
|
+
exists: (path) => existsSync(path),
|
|
138
|
+
commandExists: (binary) => commandExists(binary),
|
|
139
|
+
readFile: (path) => readFileSync(path, 'utf8'),
|
|
140
|
+
writeFile: (path, contents) => writeFileAtomic(path, contents),
|
|
141
|
+
ensureDir: (dir) => mkdirSync(dir, { recursive: true }),
|
|
142
|
+
},
|
|
85
143
|
spawnImpl: spawn,
|
|
86
144
|
waitForStop,
|
|
87
145
|
};
|
|
@@ -179,6 +237,81 @@ async function offerLogin(input) {
|
|
|
179
237
|
}
|
|
180
238
|
return { login: 'succeeded' };
|
|
181
239
|
}
|
|
240
|
+
/** Idle time after which the MCP server's private watch-tail releases the archive file. */
|
|
241
|
+
const MCP_ARCHIVE_IDLE_MS = 5000;
|
|
242
|
+
/** Runs `watch-tail mcp`: a headless server an agent talks to over stdio. */
|
|
243
|
+
async function runMcpWired(options, io) {
|
|
244
|
+
const region = resolveCliRegion(options, io);
|
|
245
|
+
const profile = options.profile ?? ambientProfile(io.env);
|
|
246
|
+
let baseEnv = io.env;
|
|
247
|
+
if (options.endpoint === null) {
|
|
248
|
+
// Same guard as the browser path: a checkout's `.env.local` must not send
|
|
249
|
+
// an agent at the emulator unless `--floci` asked for it.
|
|
250
|
+
baseEnv = suppressLocalEnvValues({ env: io.env, values: io.readLocalEnvValues() }).env;
|
|
251
|
+
}
|
|
252
|
+
const childEnv = buildChildEnv({
|
|
253
|
+
base: baseEnv,
|
|
254
|
+
profile: options.profile,
|
|
255
|
+
region,
|
|
256
|
+
endpoint: options.endpoint,
|
|
257
|
+
clearStaticKeys: options.profile === null && profile !== null,
|
|
258
|
+
archive: { enabled: options.archive, path: options.db },
|
|
259
|
+
});
|
|
260
|
+
// DuckDB lets one process hold the archive file. An agent session can last all
|
|
261
|
+
// day, so its private server releases the file between tool calls rather than
|
|
262
|
+
// locking the browser UI (or another agent) out of the archive.
|
|
263
|
+
childEnv.WATCH_TAIL_ARCHIVE_IDLE_MS = String(MCP_ARCHIVE_IDLE_MS);
|
|
264
|
+
const deps = {
|
|
265
|
+
startServer: io.startServerImpl,
|
|
266
|
+
waitForHealth: io.waitForHealth,
|
|
267
|
+
stopServer: io.stopServerImpl,
|
|
268
|
+
findFreePort: io.findFreePort,
|
|
269
|
+
serve: io.serveMcp,
|
|
270
|
+
createBackend: createHttpBackend,
|
|
271
|
+
fetchImpl: fetch,
|
|
272
|
+
};
|
|
273
|
+
return runMcpServer({
|
|
274
|
+
version: io.version,
|
|
275
|
+
region,
|
|
276
|
+
url: options.mcpServer.url,
|
|
277
|
+
host: options.host,
|
|
278
|
+
port: options.portGiven ? options.port : null,
|
|
279
|
+
appRoot: io.appRoot,
|
|
280
|
+
childEnv,
|
|
281
|
+
input: io.stdin,
|
|
282
|
+
output: io.mcpStdout,
|
|
283
|
+
stderr: io.stderr,
|
|
284
|
+
}, deps);
|
|
285
|
+
}
|
|
286
|
+
/** Runs `watch-tail mcp init`: writes watch-tail into installed agent configs. */
|
|
287
|
+
async function runMcpInitWired(options, io) {
|
|
288
|
+
const ui = io.ui ?? createUi({ interactive: io.interactive });
|
|
289
|
+
const deps = {
|
|
290
|
+
ctx: {
|
|
291
|
+
home: io.agentFs.home,
|
|
292
|
+
platform: io.agentFs.platform,
|
|
293
|
+
env: io.env,
|
|
294
|
+
cwd: io.agentFs.cwd,
|
|
295
|
+
},
|
|
296
|
+
exists: io.agentFs.exists,
|
|
297
|
+
commandExists: io.agentFs.commandExists,
|
|
298
|
+
readFile: io.agentFs.readFile,
|
|
299
|
+
writeFile: io.agentFs.writeFile,
|
|
300
|
+
ensureDir: io.agentFs.ensureDir,
|
|
301
|
+
log: io.stdout,
|
|
302
|
+
warn: io.stderr,
|
|
303
|
+
chooseAgents: (message, choices, initial) => ui.multiChoose(message, choices, initial),
|
|
304
|
+
};
|
|
305
|
+
try {
|
|
306
|
+
return await runMcpInit({ version: io.version, options: options.mcpInit }, deps);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
if (!(error instanceof PromptCancelled))
|
|
310
|
+
throw error;
|
|
311
|
+
ui.outro('stopped');
|
|
312
|
+
return 130;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
182
315
|
/** Runs the CLI and returns its exit code. */
|
|
183
316
|
export async function run(argv, overrides = {}) {
|
|
184
317
|
const io = { ...defaultIo(), ...overrides };
|
|
@@ -211,6 +344,14 @@ export async function run(argv, overrides = {}) {
|
|
|
211
344
|
}
|
|
212
345
|
return 0;
|
|
213
346
|
}
|
|
347
|
+
// The MCP entry points are dispatched before the browser path resolves its
|
|
348
|
+
// region and environment: `mcp init` needs neither, and `mcp` resolves its own
|
|
349
|
+
// so a failure to start the headless server is reported on stderr, never on
|
|
350
|
+
// the stdout reserved for the protocol.
|
|
351
|
+
if (options.command === 'mcp-init')
|
|
352
|
+
return runMcpInitWired(options, io);
|
|
353
|
+
if (options.command === 'mcp')
|
|
354
|
+
return runMcpWired(options, io);
|
|
214
355
|
const region = resolveCliRegion(options, io);
|
|
215
356
|
// `--profile` wins, then the ambient AWS_PROFILE: the credential check and
|
|
216
357
|
// the login advice both need to know which profile is actually in play.
|