vibedoc 1.9.0 → 1.10.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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +13 -13
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/board/page.js.nft.json +1 -1
- package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
- package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
- package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -1
- package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
- package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
- package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
- package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +23 -22
- package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +9 -11
- package/.next/server/app/activity.segments/_full.segment.rsc +23 -22
- package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/activity/route.js +1 -1
- package/.next/server/app/api/activity/route.js.nft.json +1 -1
- package/.next/server/app/api/backlinks/route.js +1 -1
- package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/route.js +1 -1
- package/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js +1 -1
- package/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/server/app/api/conversations/route.js +1 -1
- package/.next/server/app/api/conversations/route.js.nft.json +1 -1
- package/.next/server/app/api/decisions/route.js +1 -1
- package/.next/server/app/api/decisions/route.js.nft.json +1 -1
- package/.next/server/app/api/docs/route.js +1 -1
- package/.next/server/app/api/docs/route.js.nft.json +1 -1
- package/.next/server/app/api/explorer/route.js +1 -1
- package/.next/server/app/api/explorer/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +1 -1
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/delete/route.js +1 -1
- package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/restore/route.js +1 -1
- package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/route.js +1 -1
- package/.next/server/app/api/memory/entries/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/save/route.js +1 -1
- package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/graph/route.js +1 -1
- package/.next/server/app/api/memory/graph/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/history/route.js +1 -1
- package/.next/server/app/api/memory/history/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js +1 -1
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/apply/route.js +1 -1
- package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/route.js +1 -1
- package/.next/server/app/api/registry/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/create/route.js +1 -1
- package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/delete/route.js +1 -1
- package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/generate/route.js +1 -1
- package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/layout/route.js +1 -1
- package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/restore/route.js +1 -1
- package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/route.js +1 -1
- package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/update/route.js +1 -1
- package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/generate/route.js +1 -1
- package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/write/route.js +1 -1
- package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
- package/.next/server/app/api/summary/route.js +1 -1
- package/.next/server/app/api/summary/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/bulk/route.js +1 -1
- package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/create/route.js +1 -1
- package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/delete/route.js +1 -1
- package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/manual-tests/route.js +1 -1
- package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/restore/route.js +1 -1
- package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/review/route.js +1 -1
- package/.next/server/app/api/tasks/review/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js +1 -1
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/update/route.js +1 -1
- package/.next/server/app/api/tasks/update/route.js.nft.json +1 -1
- package/.next/server/app/api/views/route.js +1 -1
- package/.next/server/app/api/views/route.js.nft.json +1 -1
- package/.next/server/app/board.html +1 -1
- package/.next/server/app/board.rsc +23 -22
- package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/board.segments/_full.segment.rsc +23 -22
- package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +23 -22
- package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +11 -9
- package/.next/server/app/chat.segments/_full.segment.rsc +23 -22
- package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +23 -22
- package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/docs.segments/_full.segment.rsc +23 -22
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/explorer.html +1 -1
- package/.next/server/app/explorer.rsc +23 -22
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/explorer.segments/_full.segment.rsc +23 -22
- package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/manual-tests.html +1 -1
- package/.next/server/app/manual-tests.rsc +23 -22
- package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/manual-tests.segments/_full.segment.rsc +23 -22
- package/.next/server/app/manual-tests.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/memory.html +1 -1
- package/.next/server/app/memory.rsc +23 -22
- package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +9 -11
- package/.next/server/app/memory.segments/_full.segment.rsc +23 -22
- package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roadmap.html +1 -1
- package/.next/server/app/roadmap.rsc +23 -22
- package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/roadmap.segments/_full.segment.rsc +23 -22
- package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +23 -22
- package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/settings.segments/_full.segment.rsc +23 -22
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +23 -22
- package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/setup.segments/_full.segment.rsc +23 -22
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-_cqh8._.js → 11mp_@anthropic-ai_sdk_053zt3c._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_03cp17a._.js → 11mp_@anthropic-ai_sdk_0_zx69c._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00o5o78._.js → 11mp_@anthropic-ai_sdk_0gvxfg3._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07dk2er._.js → 11mp_@anthropic-ai_sdk_0gx5t2l._.js} +1 -1
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0krkw4y._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l0xzie._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0pgjvhr._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r-keh6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0tvfbjt._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0u4b8_f._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ud37xh._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0v3ar-t._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wk0b65._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wqkd2r._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wypotx._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yuq-9s._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0z-e57x._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_108ltz4._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_10c_i6_._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_14jogs8._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_15u-n39._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_194ahxu._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ahph2t._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ajy77y._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b57s9p._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1brf2xn._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1btfw2x._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1cyy_q6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fz9fev._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i_rz7h._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1it8zsv._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jzusvd._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lfknr2._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1mewd-3._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1mkm4u_._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rggqq3._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rhjf1m._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1s6ks8c._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u8z4hp._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vyy3_4._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_036bvwf._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_046taqd._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0bxad5f._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0g65abt._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0pb9bu1._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_120-cio._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13uyu_v._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13x2ww0._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17og64d._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1e_sh4o._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ecuo9i._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1go8d0m._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1i13ryx._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1jv_hid._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mh5mqk._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1oq7e8u._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1p-cq-p._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1the3g0._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1xubh-w._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0hfyuhq._.js → [root-of-the-server]__00o3mbd._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0y5usoz._.js → [root-of-the-server]__01n_hoh._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__08yaps5._.js → [root-of-the-server]__05tx02j._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0b2488c._.js → [root-of-the-server]__06dfvb0._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1tu85zx._.js → [root-of-the-server]__06z8i6e._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0qij7wy._.js → [root-of-the-server]__076d4xm._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1z3tswg._.js → [root-of-the-server]__09j_-hj._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js +11 -11
- package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1gvv2xp._.js → [root-of-the-server]__0kuhhna._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__008focd._.js → [root-of-the-server]__0p4w_o-._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1ssunti._.js → [root-of-the-server]__0uu9pgg._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1b448u7._.js → [root-of-the-server]__1-1hfrj._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0ikbk15._.js → [root-of-the-server]__15jhpgl._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js +11 -11
- package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0m8hmg0._.js → [root-of-the-server]__19w-7h9._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__01xmabe._.js → [root-of-the-server]__1af-wfk._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0cbh1s-._.js → [root-of-the-server]__1e_o8h4._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__16u25oa._.js → [root-of-the-server]__1gr4e22._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1jz98vb._.js → [root-of-the-server]__1h5hb6u._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1xpp36t._.js → [root-of-the-server]__1kw2vct._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0axugex._.js → [root-of-the-server]__1lt5cds._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js +11 -11
- package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__03ogp2r._.js → [root-of-the-server]__1rjgpbm._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0x8wtot._.js → [root-of-the-server]__1spley9._.js} +2 -2
- package/.next/server/chunks/_04byth9._.js +25 -25
- package/.next/server/chunks/_04byth9._.js.map +1 -1
- package/.next/server/chunks/_1au4syj._.js +1 -1
- package/.next/server/chunks/_1au4syj._.js.map +1 -1
- package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js → 0_nd_mermaid_dist_mermaid_core_mjs_0itmgkm._.js} +2 -2
- package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_1kb5xea._.js → 1u84_katex_dist_katex_mjs_08jn-sj._.js} +1 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_1tcci-3._.js +3 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_1tcci-3._.js.map +1 -0
- package/.next/server/chunks/ssr/{1x05_lucide-react_dist_esm_icons_14hl50o._.js → 1x05_lucide-react_dist_esm_icons_1uybmua._.js} +2 -2
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_1uybmua._.js.map +1 -0
- package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
- package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
- package/.next/server/chunks/ssr/_0h91h9n._.js +3 -0
- package/.next/server/chunks/ssr/_0h91h9n._.js.map +1 -0
- package/.next/server/chunks/ssr/_0idb-vo._.js.map +1 -1
- package/.next/server/chunks/ssr/_0ip7sg0._.js +3 -0
- package/.next/server/chunks/ssr/_0ip7sg0._.js.map +1 -0
- package/.next/server/chunks/ssr/_0ks_bep._.js +3 -0
- package/.next/server/chunks/ssr/_0ks_bep._.js.map +1 -0
- package/.next/server/chunks/ssr/{_1ocnpth._.js → _0lqrpim._.js} +2 -2
- package/.next/server/chunks/ssr/_0lqrpim._.js.map +1 -0
- package/.next/server/chunks/ssr/_0qp3gu7._.js +1 -1
- package/.next/server/chunks/ssr/_0qp3gu7._.js.map +1 -1
- package/.next/server/chunks/ssr/_0rmo9r-._.js +4 -0
- package/.next/server/chunks/ssr/_0rmo9r-._.js.map +1 -0
- package/.next/server/chunks/ssr/_0ust7tw._.js +4 -0
- package/.next/server/chunks/ssr/_0ust7tw._.js.map +1 -0
- package/.next/server/chunks/ssr/_197jl3g._.js +3 -0
- package/.next/server/chunks/ssr/_197jl3g._.js.map +1 -0
- package/.next/server/chunks/ssr/{src_components_docs_MarkdownRenderer_tsx_1kshaz1._.js → _19k2iz0._.js} +21 -21
- package/.next/server/chunks/ssr/_19k2iz0._.js.map +1 -0
- package/.next/server/chunks/ssr/_1el478k._.js +3 -0
- package/.next/server/chunks/ssr/_1el478k._.js.map +1 -0
- package/.next/server/chunks/ssr/_1s2ya35._.js +3 -0
- package/.next/server/chunks/ssr/_1t76zdx._.js +1 -1
- package/.next/server/chunks/ssr/_1t76zdx._.js.map +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1qp_jvj._.js → node_modules__pnpm_00lsytc._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1ygal0c._.js → node_modules__pnpm_02p2rqs._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1-76qxg._.js → node_modules__pnpm_05-p8zy._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1qmkxyo._.js → node_modules__pnpm_060kz-j._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0ctisl0._.js → node_modules__pnpm_0_83tv8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0ycbjbd._.js → node_modules__pnpm_0_ajzll._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0kpu0-2._.js → node_modules__pnpm_0abf_e9._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0fwp8jm._.js → node_modules__pnpm_0e55e7-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1q_hhr3._.js → node_modules__pnpm_0eub17j._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1-r94f7._.js → node_modules__pnpm_0gp90ei._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_16u1vfb._.js → node_modules__pnpm_0iqb0_x._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1uwkcin._.js → node_modules__pnpm_0j7asqf._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1f440kx._.js → node_modules__pnpm_0jlzk5z._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_14piqi4._.js → node_modules__pnpm_0rsfj9v._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_01bjcv9._.js → node_modules__pnpm_0s63lee._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_189m48n._.js → node_modules__pnpm_0s7j-tv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1ssjj4u._.js → node_modules__pnpm_0up4z7m._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_06d-fdo._.js → node_modules__pnpm_0v_mhl7._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1a48_nl._.js → node_modules__pnpm_0vuao3_._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0vry74x._.js → node_modules__pnpm_14j18h7._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_17i6z2d._.js → node_modules__pnpm_16bj927._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_192f222._.js → node_modules__pnpm_1ch46nl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1txccoj._.js → node_modules__pnpm_1dc-yxd._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1min2jl._.js → node_modules__pnpm_1fry8_2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1fn3ejy._.js → node_modules__pnpm_1gpkxns._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1aa37e1._.js → node_modules__pnpm_1hqh95z._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_03qrzdb._.js → node_modules__pnpm_1oaf50x._.js} +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +2 -2
- package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +2 -2
- package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +2 -2
- package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_0eyr_zi._.js +1 -1
- package/.next/server/chunks/ssr/src_components_0eyr_zi._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_1s861m8._.js +1 -1
- package/.next/server/chunks/ssr/src_components_1s861m8._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_docs_editor-theme_ts_0ji4rd5._.js +3 -0
- package/.next/server/chunks/ssr/src_components_docs_editor-theme_ts_0ji4rd5._.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/05qw7-fs1exlt.js +1 -0
- package/.next/static/chunks/{16k196zyl-n9q.js → 08sqjdq-43nbt.js} +1 -1
- package/.next/static/chunks/09r4_4wr0aga3.js +1 -0
- package/.next/static/chunks/0xw_sa58zqv5s.js +1 -0
- package/.next/static/chunks/{3ruw8lu2_re-h.js → 1-a3-6c_nce84.js} +1 -1
- package/.next/static/chunks/13cz-8lvre7gj.js +1 -0
- package/.next/static/chunks/149fj-mseo8q3.css +1 -0
- package/.next/static/chunks/1c11k-snzp541.js +1 -0
- package/.next/static/chunks/1c459q7xpgq6r.js +3 -0
- package/.next/static/chunks/1hh2cxd9ndxf-.js +68 -0
- package/.next/static/chunks/1huu1nljqois-.js +1 -0
- package/.next/static/chunks/{1l_dys0-y5-r7.js → 1n4_u3om7ye4z.js} +1 -1
- package/.next/static/chunks/1qhndyi2gdbkf.js +1 -0
- package/.next/static/chunks/1s64z5c36fv-4.js +21 -0
- package/.next/static/chunks/1x40-5s54wd5m.js +11 -0
- package/.next/static/chunks/2-0lpccy0f8bk.js +2 -0
- package/.next/static/chunks/2x6eh3w-u8lk4.js +1 -0
- package/.next/static/chunks/30s090l71e1gs.js +1 -0
- package/.next/static/chunks/37u2gjz5dzhep.js +1 -0
- package/.next/static/chunks/3t8px4aygy1s9.js +1 -0
- package/.next/static/chunks/{0b547y6rqct9z.js → 44gr_v5092gwh.js} +1 -1
- package/package.json +3 -2
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_e9zpr._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_xx_qf._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0aer9lc._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ax30pe._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0gn7vgs._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hye94a._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ir5cgk._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0je0_pa._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0jfgh0o._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0mha4x1._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0n__boa._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0sqv26_._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wnc6g-._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0xh0g59._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-5wyhj._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_13ahm3n._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_13e6aq4._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_14eg0ld._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_15md1n2._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_16av8b9._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_16hjhv1._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_16txvf7._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_198yu7d._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_9tfq3._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_izr2o._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fljcyg._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lrt6ul._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1nev_ee._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pgoe2i._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rgl7mu._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js.map +0 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js.map +0 -1
- package/.next/server/chunks/ssr/_071j6mr._.js +0 -4
- package/.next/server/chunks/ssr/_071j6mr._.js.map +0 -1
- package/.next/server/chunks/ssr/_0i75x-o._.js +0 -3
- package/.next/server/chunks/ssr/_0i75x-o._.js.map +0 -1
- package/.next/server/chunks/ssr/_15qpb4z._.js +0 -3
- package/.next/server/chunks/ssr/_15qpb4z._.js.map +0 -1
- package/.next/server/chunks/ssr/_1fg0usp._.js +0 -3
- package/.next/server/chunks/ssr/_1fg0usp._.js.map +0 -1
- package/.next/server/chunks/ssr/_1h0wfpz._.js +0 -3
- package/.next/server/chunks/ssr/_1h0wfpz._.js.map +0 -1
- package/.next/server/chunks/ssr/_1ncdakv._.js +0 -4
- package/.next/server/chunks/ssr/_1ncdakv._.js.map +0 -1
- package/.next/server/chunks/ssr/_1ocnpth._.js.map +0 -1
- package/.next/server/chunks/ssr/_1uno162._.js +0 -3
- package/.next/server/chunks/ssr/_1uno162._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js +0 -3
- package/.next/server/chunks/ssr/src_components_docs_MarkdownRenderer_tsx_1kshaz1._.js.map +0 -1
- package/.next/static/chunks/02cj5_i9np4sg.js +0 -3
- package/.next/static/chunks/0e3ha56i_0j05.css +0 -1
- package/.next/static/chunks/0f32hudp0yir7.js +0 -2
- package/.next/static/chunks/0rsmz1jgro1kj.js +0 -1
- package/.next/static/chunks/0wnq_kh8-6wc1.js +0 -2
- package/.next/static/chunks/13l4l-boqg8fx.js +0 -1
- package/.next/static/chunks/14hxe1qiaram9.js +0 -1
- package/.next/static/chunks/18b5l8p0vd9f8.js +0 -1
- package/.next/static/chunks/1acpfyut6j4e2.js +0 -1
- package/.next/static/chunks/1rko_88i85yqb.js +0 -21
- package/.next/static/chunks/1tu8lforstp1o.js +0 -1
- package/.next/static/chunks/20mdcup14_0yi.js +0 -11
- package/.next/static/chunks/23-xknrz6o748.js +0 -1
- package/.next/static/chunks/2p-pkveutoh75.js +0 -1
- package/.next/static/chunks/329sozud9-tvr.js +0 -1
- package/.next/static/chunks/3qqvn9vv6i0gy.js +0 -68
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-_cqh8._.js.map → 11mp_@anthropic-ai_sdk_053zt3c._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00o5o78._.js.map → 11mp_@anthropic-ai_sdk_0_zx69c._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_03cp17a._.js.map → 11mp_@anthropic-ai_sdk_0gvxfg3._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07dk2er._.js.map → 11mp_@anthropic-ai_sdk_0gx5t2l._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0_e9zpr._.js.map → 11mp_@anthropic-ai_sdk_0krkw4y._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0_xx_qf._.js.map → 11mp_@anthropic-ai_sdk_0l0xzie._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0aer9lc._.js.map → 11mp_@anthropic-ai_sdk_0pgjvhr._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0ax30pe._.js.map → 11mp_@anthropic-ai_sdk_0r-keh6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0gn7vgs._.js.map → 11mp_@anthropic-ai_sdk_0tvfbjt._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0hye94a._.js.map → 11mp_@anthropic-ai_sdk_0u4b8_f._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0ir5cgk._.js.map → 11mp_@anthropic-ai_sdk_0ud37xh._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0je0_pa._.js.map → 11mp_@anthropic-ai_sdk_0v3ar-t._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0jfgh0o._.js.map → 11mp_@anthropic-ai_sdk_0wk0b65._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0mha4x1._.js.map → 11mp_@anthropic-ai_sdk_0wqkd2r._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0n__boa._.js.map → 11mp_@anthropic-ai_sdk_0wypotx._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0sqv26_._.js.map → 11mp_@anthropic-ai_sdk_0yuq-9s._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0wnc6g-._.js.map → 11mp_@anthropic-ai_sdk_0z-e57x._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0xh0g59._.js.map → 11mp_@anthropic-ai_sdk_108ltz4._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1-5wyhj._.js.map → 11mp_@anthropic-ai_sdk_10c_i6_._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_13ahm3n._.js.map → 11mp_@anthropic-ai_sdk_14jogs8._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_13e6aq4._.js.map → 11mp_@anthropic-ai_sdk_15u-n39._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_14eg0ld._.js.map → 11mp_@anthropic-ai_sdk_194ahxu._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_15md1n2._.js.map → 11mp_@anthropic-ai_sdk_1ahph2t._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_16av8b9._.js.map → 11mp_@anthropic-ai_sdk_1ajy77y._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_16hjhv1._.js.map → 11mp_@anthropic-ai_sdk_1b57s9p._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_16txvf7._.js.map → 11mp_@anthropic-ai_sdk_1brf2xn._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_198yu7d._.js.map → 11mp_@anthropic-ai_sdk_1btfw2x._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_9tfq3._.js.map → 11mp_@anthropic-ai_sdk_1cyy_q6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_izr2o._.js.map → 11mp_@anthropic-ai_sdk_1fz9fev._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1fljcyg._.js.map → 11mp_@anthropic-ai_sdk_1i_rz7h._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1lrt6ul._.js.map → 11mp_@anthropic-ai_sdk_1it8zsv._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1nev_ee._.js.map → 11mp_@anthropic-ai_sdk_1jzusvd._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1pgoe2i._.js.map → 11mp_@anthropic-ai_sdk_1lfknr2._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1rgl7mu._.js.map → 11mp_@anthropic-ai_sdk_1mewd-3._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1slq49k._.js.map → 11mp_@anthropic-ai_sdk_1mkm4u_._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1t9bdf0._.js.map → 11mp_@anthropic-ai_sdk_1rggqq3._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1u6qqm2._.js.map → 11mp_@anthropic-ai_sdk_1rhjf1m._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1v7ygvz._.js.map → 11mp_@anthropic-ai_sdk_1s6ks8c._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1wls8zc._.js.map → 11mp_@anthropic-ai_sdk_1u8z4hp._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ywboja._.js.map → 11mp_@anthropic-ai_sdk_1vyy3_4._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_036bvwf._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_046taqd._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0bxad5f._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0g65abt._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0pb9bu1._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_120-cio._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_13uyu_v._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_13x2ww0._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_17og64d._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1e_sh4o._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1ecuo9i._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1go8d0m._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1i13ryx._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1jv_hid._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1mh5mqk._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1oq7e8u._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1p-cq-p._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1the3g0._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1xubh-w._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0hfyuhq._.js.map → [root-of-the-server]__00o3mbd._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0y5usoz._.js.map → [root-of-the-server]__01n_hoh._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__08yaps5._.js.map → [root-of-the-server]__05tx02j._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0b2488c._.js.map → [root-of-the-server]__06dfvb0._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1tu85zx._.js.map → [root-of-the-server]__06z8i6e._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0qij7wy._.js.map → [root-of-the-server]__076d4xm._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1ssunti._.js.map → [root-of-the-server]__09j_-hj._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1gvv2xp._.js.map → [root-of-the-server]__0kuhhna._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__008focd._.js.map → [root-of-the-server]__0p4w_o-._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1z3tswg._.js.map → [root-of-the-server]__0uu9pgg._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1b448u7._.js.map → [root-of-the-server]__1-1hfrj._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0ikbk15._.js.map → [root-of-the-server]__15jhpgl._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0m8hmg0._.js.map → [root-of-the-server]__19w-7h9._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__01xmabe._.js.map → [root-of-the-server]__1af-wfk._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0cbh1s-._.js.map → [root-of-the-server]__1e_o8h4._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__16u25oa._.js.map → [root-of-the-server]__1gr4e22._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1jz98vb._.js.map → [root-of-the-server]__1h5hb6u._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1xpp36t._.js.map → [root-of-the-server]__1kw2vct._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0axugex._.js.map → [root-of-the-server]__1lt5cds._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__03ogp2r._.js.map → [root-of-the-server]__1rjgpbm._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0x8wtot._.js.map → [root-of-the-server]__1spley9._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js.map → 0_nd_mermaid_dist_mermaid_core_mjs_0itmgkm._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_1kb5xea._.js.map → 1u84_katex_dist_katex_mjs_08jn-sj._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_14piqi4._.js.map → _1s2ya35._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1qp_jvj._.js.map → node_modules__pnpm_00lsytc._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1ygal0c._.js.map → node_modules__pnpm_02p2rqs._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1-76qxg._.js.map → node_modules__pnpm_05-p8zy._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1qmkxyo._.js.map → node_modules__pnpm_060kz-j._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0ctisl0._.js.map → node_modules__pnpm_0_83tv8._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0ycbjbd._.js.map → node_modules__pnpm_0_ajzll._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0kpu0-2._.js.map → node_modules__pnpm_0abf_e9._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0fwp8jm._.js.map → node_modules__pnpm_0e55e7-._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1q_hhr3._.js.map → node_modules__pnpm_0eub17j._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1-r94f7._.js.map → node_modules__pnpm_0gp90ei._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_16u1vfb._.js.map → node_modules__pnpm_0iqb0_x._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1uwkcin._.js.map → node_modules__pnpm_0j7asqf._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1f440kx._.js.map → node_modules__pnpm_0jlzk5z._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_189m48n._.js.map → node_modules__pnpm_0rsfj9v._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_01bjcv9._.js.map → node_modules__pnpm_0s63lee._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1xeothw._.js.map → node_modules__pnpm_0s7j-tv._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1ssjj4u._.js.map → node_modules__pnpm_0up4z7m._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_06d-fdo._.js.map → node_modules__pnpm_0v_mhl7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1a48_nl._.js.map → node_modules__pnpm_0vuao3_._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0vry74x._.js.map → node_modules__pnpm_14j18h7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_17i6z2d._.js.map → node_modules__pnpm_16bj927._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_192f222._.js.map → node_modules__pnpm_1ch46nl._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1txccoj._.js.map → node_modules__pnpm_1dc-yxd._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1min2jl._.js.map → node_modules__pnpm_1fry8_2._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1fn3ejy._.js.map → node_modules__pnpm_1gpkxns._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1aa37e1._.js.map → node_modules__pnpm_1hqh95z._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_03qrzdb._.js.map → node_modules__pnpm_1oaf50x._.js.map} +0 -0
- /package/.next/static/{Q29Tn_NjyVms0d3pKn4Yx → qCiKQ9_g49vaoQ-Fewybk}/_buildManifest.js +0 -0
- /package/.next/static/{Q29Tn_NjyVms0d3pKn4Yx → qCiKQ9_g49vaoQ-Fewybk}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{Q29Tn_NjyVms0d3pKn4Yx → qCiKQ9_g49vaoQ-Fewybk}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/glob%4013.0.6/node_modules/glob/dist/esm/index.min.js","../../../src/lib/diff.ts","../../../src/lib/owner.ts","../../../src/lib/sessions.ts","../../../src/lib/auto-dates.ts","../../../src/lib/statuses.ts","../../../src/lib/review.ts","../../../src/lib/manual-tests.ts","../../../src/lib/work-queue.ts","../../../src/lib/roadmap-import.ts","../../../src/lib/plan.ts","../../../src/lib/roadmap-health.ts","../../../src/lib/core.ts","../../../src/lib/entries.ts","../../../src/lib/recall.ts","../../../src/lib/memory-graph.ts"],"sourcesContent":["var Gt=(n,t,e)=>{let s=n instanceof RegExp?ce(n,e):n,i=t instanceof RegExp?ce(t,e):t,r=s!==null&&i!=null&&ss(s,i,e);return r&&{start:r[0],end:r[1],pre:e.slice(0,r[0]),body:e.slice(r[0]+s.length,r[1]),post:e.slice(r[1]+i.length)}},ce=(n,t)=>{let e=t.match(n);return e?e[0]:null},ss=(n,t,e)=>{let s,i,r,o,h,a=e.indexOf(n),l=e.indexOf(t,a+1),u=a;if(a>=0&&l>0){if(n===t)return[a,l];for(s=[],r=e.length;u>=0&&!h;){if(u===a)s.push(u),a=e.indexOf(n,u+1);else if(s.length===1){let c=s.pop();c!==void 0&&(h=[c,l])}else i=s.pop(),i!==void 0&&i<r&&(r=i,o=l),l=e.indexOf(t,u+1);u=a<l&&a>=0?a:l}s.length&&o!==void 0&&(h=[r,o])}return h};var fe=\"\\0SLASH\"+Math.random()+\"\\0\",ue=\"\\0OPEN\"+Math.random()+\"\\0\",qt=\"\\0CLOSE\"+Math.random()+\"\\0\",de=\"\\0COMMA\"+Math.random()+\"\\0\",pe=\"\\0PERIOD\"+Math.random()+\"\\0\",is=new RegExp(fe,\"g\"),rs=new RegExp(ue,\"g\"),ns=new RegExp(qt,\"g\"),os=new RegExp(de,\"g\"),hs=new RegExp(pe,\"g\"),as=/\\\\\\\\/g,ls=/\\\\{/g,cs=/\\\\}/g,fs=/\\\\,/g,us=/\\\\./g,ds=1e5;function Ht(n){return isNaN(n)?n.charCodeAt(0):parseInt(n,10)}function ps(n){return n.replace(as,fe).replace(ls,ue).replace(cs,qt).replace(fs,de).replace(us,pe)}function ms(n){return n.replace(is,\"\\\\\").replace(rs,\"{\").replace(ns,\"}\").replace(os,\",\").replace(hs,\".\")}function me(n){if(!n)return[\"\"];let t=[],e=Gt(\"{\",\"}\",n);if(!e)return n.split(\",\");let{pre:s,body:i,post:r}=e,o=s.split(\",\");o[o.length-1]+=\"{\"+i+\"}\";let h=me(r);return r.length&&(o[o.length-1]+=h.shift(),o.push.apply(o,h)),t.push.apply(t,o),t}function ge(n,t={}){if(!n)return[];let{max:e=ds}=t;return n.slice(0,2)===\"{}\"&&(n=\"\\\\{\\\\}\"+n.slice(2)),ht(ps(n),e,!0).map(ms)}function gs(n){return\"{\"+n+\"}\"}function ws(n){return/^-?0\\d/.test(n)}function ys(n,t){return n<=t}function bs(n,t){return n>=t}function ht(n,t,e){let s=[],i=Gt(\"{\",\"}\",n);if(!i)return[n];let r=i.pre,o=i.post.length?ht(i.post,t,!1):[\"\"];if(/\\$$/.test(i.pre))for(let h=0;h<o.length&&h<t;h++){let a=r+\"{\"+i.body+\"}\"+o[h];s.push(a)}else{let h=/^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(i.body),a=/^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(i.body),l=h||a,u=i.body.indexOf(\",\")>=0;if(!l&&!u)return i.post.match(/,(?!,).*\\}/)?(n=i.pre+\"{\"+i.body+qt+i.post,ht(n,t,!0)):[n];let c;if(l)c=i.body.split(/\\.\\./);else if(c=me(i.body),c.length===1&&c[0]!==void 0&&(c=ht(c[0],t,!1).map(gs),c.length===1))return o.map(f=>i.pre+c[0]+f);let d;if(l&&c[0]!==void 0&&c[1]!==void 0){let f=Ht(c[0]),m=Ht(c[1]),p=Math.max(c[0].length,c[1].length),w=c.length===3&&c[2]!==void 0?Math.abs(Ht(c[2])):1,g=ys;m<f&&(w*=-1,g=bs);let E=c.some(ws);d=[];for(let y=f;g(y,m);y+=w){let b;if(a)b=String.fromCharCode(y),b===\"\\\\\"&&(b=\"\");else if(b=String(y),E){let z=p-b.length;if(z>0){let $=new Array(z+1).join(\"0\");y<0?b=\"-\"+$+b.slice(1):b=$+b}}d.push(b)}}else{d=[];for(let f=0;f<c.length;f++)d.push.apply(d,ht(c[f],t,!1))}for(let f=0;f<d.length;f++)for(let m=0;m<o.length&&s.length<t;m++){let p=r+d[f]+o[m];(!e||l||p)&&s.push(p)}}return s}var at=n=>{if(typeof n!=\"string\")throw new TypeError(\"invalid pattern\");if(n.length>65536)throw new TypeError(\"pattern is too long\")};var Ss={\"[:alnum:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\",!0],\"[:alpha:]\":[\"\\\\p{L}\\\\p{Nl}\",!0],\"[:ascii:]\":[\"\\\\x00-\\\\x7f\",!1],\"[:blank:]\":[\"\\\\p{Zs}\\\\t\",!0],\"[:cntrl:]\":[\"\\\\p{Cc}\",!0],\"[:digit:]\":[\"\\\\p{Nd}\",!0],\"[:graph:]\":[\"\\\\p{Z}\\\\p{C}\",!0,!0],\"[:lower:]\":[\"\\\\p{Ll}\",!0],\"[:print:]\":[\"\\\\p{C}\",!0],\"[:punct:]\":[\"\\\\p{P}\",!0],\"[:space:]\":[\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\",!0],\"[:upper:]\":[\"\\\\p{Lu}\",!0],\"[:word:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\",!0],\"[:xdigit:]\":[\"A-Fa-f0-9\",!1]},lt=n=>n.replace(/[[\\]\\\\-]/g,\"\\\\$&\"),Es=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),we=n=>n.join(\"\"),ye=(n,t)=>{let e=t;if(n.charAt(e)!==\"[\")throw new Error(\"not in a brace expression\");let s=[],i=[],r=e+1,o=!1,h=!1,a=!1,l=!1,u=e,c=\"\";t:for(;r<n.length;){let p=n.charAt(r);if((p===\"!\"||p===\"^\")&&r===e+1){l=!0,r++;continue}if(p===\"]\"&&o&&!a){u=r+1;break}if(o=!0,p===\"\\\\\"&&!a){a=!0,r++;continue}if(p===\"[\"&&!a){for(let[w,[g,S,E]]of Object.entries(Ss))if(n.startsWith(w,r)){if(c)return[\"$.\",!1,n.length-e,!0];r+=w.length,E?i.push(g):s.push(g),h=h||S;continue t}}if(a=!1,c){p>c?s.push(lt(c)+\"-\"+lt(p)):p===c&&s.push(lt(p)),c=\"\",r++;continue}if(n.startsWith(\"-]\",r+1)){s.push(lt(p+\"-\")),r+=2;continue}if(n.startsWith(\"-\",r+1)){c=p,r+=2;continue}s.push(lt(p)),r++}if(u<r)return[\"\",!1,0,!1];if(!s.length&&!i.length)return[\"$.\",!1,n.length-e,!0];if(i.length===0&&s.length===1&&/^\\\\?.$/.test(s[0])&&!l){let p=s[0].length===2?s[0].slice(-1):s[0];return[Es(p),!1,u-e,!1]}let d=\"[\"+(l?\"^\":\"\")+we(s)+\"]\",f=\"[\"+(l?\"\":\"^\")+we(i)+\"]\";return[s.length&&i.length?\"(\"+d+\"|\"+f+\")\":s.length?d:f,h,u-e,!0]};var W=(n,{windowsPathsNoEscape:t=!1,magicalBraces:e=!0}={})=>e?t?n.replace(/\\[([^\\/\\\\])\\]/g,\"$1\"):n.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g,\"$1$2\").replace(/\\\\([^\\/])/g,\"$1\"):t?n.replace(/\\[([^\\/\\\\{}])\\]/g,\"$1\"):n.replace(/((?!\\\\).|^)\\[([^\\/\\\\{}])\\]/g,\"$1$2\").replace(/\\\\([^\\/{}])/g,\"$1\");var xs=new Set([\"!\",\"?\",\"+\",\"*\",\"@\"]),be=n=>xs.has(n),vs=\"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\",Ct=\"(?!\\\\.)\",Cs=new Set([\"[\",\".\"]),Ts=new Set([\"..\",\".\"]),As=new Set(\"().*{}+?[]^$\\\\!\"),ks=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),Kt=\"[^/]\",Se=Kt+\"*?\",Ee=Kt+\"+?\",Q=class n{type;#t;#s;#n=!1;#r=[];#o;#S;#w;#c=!1;#h;#u;#f=!1;constructor(t,e,s={}){this.type=t,t&&(this.#s=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#h=this.#t===this?s:this.#t.#h,this.#w=this.#t===this?[]:this.#t.#w,t===\"!\"&&!this.#t.#c&&this.#w.push(this),this.#S=this.#o?this.#o.#r.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#r)if(typeof t!=\"string\"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+\"(\"+this.#r.map(t=>String(t)).join(\"|\")+\")\":this.#u=this.#r.map(t=>String(t)).join(\"\")}#a(){if(this!==this.#t)throw new Error(\"should only call on root\");if(this.#c)return this;this.toString(),this.#c=!0;let t;for(;t=this.#w.pop();){if(t.type!==\"!\")continue;let e=t,s=e.#o;for(;s;){for(let i=e.#S+1;!s.type&&i<s.#r.length;i++)for(let r of t.#r){if(typeof r==\"string\")throw new Error(\"string part in extglob AST??\");r.copyIn(s.#r[i])}e=s,s=e.#o}}return this}push(...t){for(let e of t)if(e!==\"\"){if(typeof e!=\"string\"&&!(e instanceof n&&e.#o===this))throw new Error(\"invalid part: \"+e);this.#r.push(e)}}toJSON(){let t=this.type===null?this.#r.slice().map(e=>typeof e==\"string\"?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#c&&this.#o?.type===\"!\")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(this.#S===0)return!0;let t=this.#o;for(let e=0;e<this.#S;e++){let s=t.#r[e];if(!(s instanceof n&&s.type===\"!\"))return!1}return!0}isEnd(){if(this.#t===this||this.#o?.type===\"!\")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#r.length:0;return this.#S===t-1}copyIn(t){typeof t==\"string\"?this.push(t):this.push(t.clone(this))}clone(t){let e=new n(this.type,t);for(let s of this.#r)e.copyIn(s);return e}static#i(t,e,s,i){let r=!1,o=!1,h=-1,a=!1;if(e.type===null){let f=s,m=\"\";for(;f<t.length;){let p=t.charAt(f++);if(r||p===\"\\\\\"){r=!r,m+=p;continue}if(o){f===h+1?(p===\"^\"||p===\"!\")&&(a=!0):p===\"]\"&&!(f===h+2&&a)&&(o=!1),m+=p;continue}else if(p===\"[\"){o=!0,h=f,a=!1,m+=p;continue}if(!i.noext&&be(p)&&t.charAt(f)===\"(\"){e.push(m),m=\"\";let w=new n(p,e);f=n.#i(t,w,f,i),e.push(w);continue}m+=p}return e.push(m),f}let l=s+1,u=new n(null,e),c=[],d=\"\";for(;l<t.length;){let f=t.charAt(l++);if(r||f===\"\\\\\"){r=!r,d+=f;continue}if(o){l===h+1?(f===\"^\"||f===\"!\")&&(a=!0):f===\"]\"&&!(l===h+2&&a)&&(o=!1),d+=f;continue}else if(f===\"[\"){o=!0,h=l,a=!1,d+=f;continue}if(be(f)&&t.charAt(l)===\"(\"){u.push(d),d=\"\";let m=new n(f,u);u.push(m),l=n.#i(t,m,l,i);continue}if(f===\"|\"){u.push(d),d=\"\",c.push(u),u=new n(null,e);continue}if(f===\")\")return d===\"\"&&e.#r.length===0&&(e.#f=!0),u.push(d),d=\"\",e.push(...c,u),l;d+=f}return e.type=null,e.#s=void 0,e.#r=[t.substring(s-1)],l}static fromGlob(t,e={}){let s=new n(null,void 0,e);return n.#i(t,s,0,e),s}toMMPattern(){if(this!==this.#t)return this.#t.toMMPattern();let t=this.toString(),[e,s,i,r]=this.toRegExpSource();if(!(i||this.#s||this.#h.nocase&&!this.#h.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return s;let h=(this.#h.nocase?\"i\":\"\")+(r?\"u\":\"\");return Object.assign(new RegExp(`^${e}$`,h),{_src:e,_glob:t})}get options(){return this.#h}toRegExpSource(t){let e=t??!!this.#h.dot;if(this.#t===this&&this.#a(),!this.type){let a=this.isStart()&&this.isEnd()&&!this.#r.some(f=>typeof f!=\"string\"),l=this.#r.map(f=>{let[m,p,w,g]=typeof f==\"string\"?n.#E(f,this.#s,a):f.toRegExpSource(t);return this.#s=this.#s||w,this.#n=this.#n||g,m}).join(\"\"),u=\"\";if(this.isStart()&&typeof this.#r[0]==\"string\"&&!(this.#r.length===1&&Ts.has(this.#r[0]))){let m=Cs,p=e&&m.has(l.charAt(0))||l.startsWith(\"\\\\.\")&&m.has(l.charAt(2))||l.startsWith(\"\\\\.\\\\.\")&&m.has(l.charAt(4)),w=!e&&!t&&m.has(l.charAt(0));u=p?vs:w?Ct:\"\"}let c=\"\";return this.isEnd()&&this.#t.#c&&this.#o?.type===\"!\"&&(c=\"(?:$|\\\\/)\"),[u+l+c,W(l),this.#s=!!this.#s,this.#n]}let s=this.type===\"*\"||this.type===\"+\",i=this.type===\"!\"?\"(?:(?!(?:\":\"(?:\",r=this.#d(e);if(this.isStart()&&this.isEnd()&&!r&&this.type!==\"!\"){let a=this.toString();return this.#r=[a],this.type=null,this.#s=void 0,[a,W(this.toString()),!1,!1]}let o=!s||t||e||!Ct?\"\":this.#d(!0);o===r&&(o=\"\"),o&&(r=`(?:${r})(?:${o})*?`);let h=\"\";if(this.type===\"!\"&&this.#f)h=(this.isStart()&&!e?Ct:\"\")+Ee;else{let a=this.type===\"!\"?\"))\"+(this.isStart()&&!e&&!t?Ct:\"\")+Se+\")\":this.type===\"@\"?\")\":this.type===\"?\"?\")?\":this.type===\"+\"&&o?\")\":this.type===\"*\"&&o?\")?\":`)${this.type}`;h=i+r+a}return[h,W(r),this.#s=!!this.#s,this.#n]}#d(t){return this.#r.map(e=>{if(typeof e==\"string\")throw new Error(\"string type in extglob ast??\");let[s,i,r,o]=e.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join(\"|\")}static#E(t,e,s=!1){let i=!1,r=\"\",o=!1,h=!1;for(let a=0;a<t.length;a++){let l=t.charAt(a);if(i){i=!1,r+=(As.has(l)?\"\\\\\":\"\")+l;continue}if(l===\"*\"){if(h)continue;h=!0,r+=s&&/^[*]+$/.test(t)?Ee:Se,e=!0;continue}else h=!1;if(l===\"\\\\\"){a===t.length-1?r+=\"\\\\\\\\\":i=!0;continue}if(l===\"[\"){let[u,c,d,f]=ye(t,a);if(d){r+=u,o=o||c,a+=d-1,e=e||f;continue}}if(l===\"?\"){r+=Kt,e=!0;continue}r+=ks(l)}return[r,W(t),!!e,o]}};var tt=(n,{windowsPathsNoEscape:t=!1,magicalBraces:e=!1}={})=>e?t?n.replace(/[?*()[\\]{}]/g,\"[$&]\"):n.replace(/[?*()[\\]\\\\{}]/g,\"\\\\$&\"):t?n.replace(/[?*()[\\]]/g,\"[$&]\"):n.replace(/[?*()[\\]\\\\]/g,\"\\\\$&\");var O=(n,t,e={})=>(at(t),!e.nocomment&&t.charAt(0)===\"#\"?!1:new D(t,e).match(n)),Rs=/^\\*+([^+@!?\\*\\[\\(]*)$/,Os=n=>t=>!t.startsWith(\".\")&&t.endsWith(n),Fs=n=>t=>t.endsWith(n),Ds=n=>(n=n.toLowerCase(),t=>!t.startsWith(\".\")&&t.toLowerCase().endsWith(n)),Ms=n=>(n=n.toLowerCase(),t=>t.toLowerCase().endsWith(n)),Ns=/^\\*+\\.\\*+$/,_s=n=>!n.startsWith(\".\")&&n.includes(\".\"),Ls=n=>n!==\".\"&&n!==\"..\"&&n.includes(\".\"),Ws=/^\\.\\*+$/,Ps=n=>n!==\".\"&&n!==\"..\"&&n.startsWith(\".\"),js=/^\\*+$/,Is=n=>n.length!==0&&!n.startsWith(\".\"),zs=n=>n.length!==0&&n!==\".\"&&n!==\"..\",Bs=/^\\?+([^+@!?\\*\\[\\(]*)?$/,Us=([n,t=\"\"])=>{let e=Ce([n]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},$s=([n,t=\"\"])=>{let e=Te([n]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},Gs=([n,t=\"\"])=>{let e=Te([n]);return t?s=>e(s)&&s.endsWith(t):e},Hs=([n,t=\"\"])=>{let e=Ce([n]);return t?s=>e(s)&&s.endsWith(t):e},Ce=([n])=>{let t=n.length;return e=>e.length===t&&!e.startsWith(\".\")},Te=([n])=>{let t=n.length;return e=>e.length===t&&e!==\".\"&&e!==\"..\"},Ae=typeof process==\"object\"&&process?typeof process.env==\"object\"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:\"posix\",xe={win32:{sep:\"\\\\\"},posix:{sep:\"/\"}},qs=Ae===\"win32\"?xe.win32.sep:xe.posix.sep;O.sep=qs;var A=Symbol(\"globstar **\");O.GLOBSTAR=A;var Ks=\"[^/]\",Vs=Ks+\"*?\",Ys=\"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\",Xs=\"(?:(?!(?:\\\\/|^)\\\\.).)*?\",Js=(n,t={})=>e=>O(e,n,t);O.filter=Js;var N=(n,t={})=>Object.assign({},n,t),Zs=n=>{if(!n||typeof n!=\"object\"||!Object.keys(n).length)return O;let t=O;return Object.assign((s,i,r={})=>t(s,i,N(n,r)),{Minimatch:class extends t.Minimatch{constructor(i,r={}){super(i,N(n,r))}static defaults(i){return t.defaults(N(n,i)).Minimatch}},AST:class extends t.AST{constructor(i,r,o={}){super(i,r,N(n,o))}static fromGlob(i,r={}){return t.AST.fromGlob(i,N(n,r))}},unescape:(s,i={})=>t.unescape(s,N(n,i)),escape:(s,i={})=>t.escape(s,N(n,i)),filter:(s,i={})=>t.filter(s,N(n,i)),defaults:s=>t.defaults(N(n,s)),makeRe:(s,i={})=>t.makeRe(s,N(n,i)),braceExpand:(s,i={})=>t.braceExpand(s,N(n,i)),match:(s,i,r={})=>t.match(s,i,N(n,r)),sep:t.sep,GLOBSTAR:A})};O.defaults=Zs;var ke=(n,t={})=>(at(n),t.nobrace||!/\\{(?:(?!\\{).)*\\}/.test(n)?[n]:ge(n,{max:t.braceExpandMax}));O.braceExpand=ke;var Qs=(n,t={})=>new D(n,t).makeRe();O.makeRe=Qs;var ti=(n,t,e={})=>{let s=new D(t,e);return n=n.filter(i=>s.match(i)),s.options.nonull&&!n.length&&n.push(t),n};O.match=ti;var ve=/[?*]|[+@!]\\(.*?\\)|\\[|\\]/,ei=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),D=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){at(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Ae,this.isWindows=this.platform===\"win32\";let s=\"allowWindowsEscape\";this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e[s]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\\\/g,\"/\")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let e of t)if(typeof e!=\"string\")return!0;return!1}debug(...t){}make(){let t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)===\"#\"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...r)=>console.error(...r)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(r=>this.slashSplit(r));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((r,o,h)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=r[0]===\"\"&&r[1]===\"\"&&(r[2]===\"?\"||!ve.test(r[2]))&&!ve.test(r[3]),l=/^[a-z]:/i.test(r[0]);if(a)return[...r.slice(0,4),...r.slice(4).map(u=>this.parse(u))];if(l)return[r[0],...r.slice(1).map(u=>this.parse(u))]}return r.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r<this.set.length;r++){let o=this.set[r];o[0]===\"\"&&o[1]===\"\"&&this.globParts[r][2]===\"?\"&&typeof o[3]==\"string\"&&/^[a-z]:$/i.test(o[3])&&(o[2]=\"?\")}this.debug(this.pattern,this.set)}preprocess(t){if(this.options.noglobstar)for(let s=0;s<t.length;s++)for(let i=0;i<t[s].length;i++)t[s][i]===\"**\"&&(t[s][i]=\"*\");let{optimizationLevel:e=1}=this.options;return e>=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):e>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(e=>{let s=-1;for(;(s=e.indexOf(\"**\",s+1))!==-1;){let i=s;for(;e[i+1]===\"**\";)i++;i!==s&&e.splice(s,i-s)}return e})}levelOneOptimize(t){return t.map(e=>(e=e.reduce((s,i)=>{let r=s[s.length-1];return i===\"**\"&&r===\"**\"?s:i===\"..\"&&r&&r!==\"..\"&&r!==\".\"&&r!==\"**\"?(s.pop(),s):(s.push(i),s)},[]),e.length===0?[\"\"]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let i=1;i<t.length-1;i++){let r=t[i];i===1&&r===\"\"&&t[0]===\"\"||(r===\".\"||r===\"\")&&(e=!0,t.splice(i,1),i--)}t[0]===\".\"&&t.length===2&&(t[1]===\".\"||t[1]===\"\")&&(e=!0,t.pop())}let s=0;for(;(s=t.indexOf(\"..\",s+1))!==-1;){let i=t[s-1];i&&i!==\".\"&&i!==\"..\"&&i!==\"**\"&&(e=!0,t.splice(s-1,2),s-=2)}}while(e);return t.length===0?[\"\"]:t}firstPhasePreProcess(t){let e=!1;do{e=!1;for(let s of t){let i=-1;for(;(i=s.indexOf(\"**\",i+1))!==-1;){let o=i;for(;s[o+1]===\"**\";)o++;o>i&&s.splice(i+1,o-i);let h=s[i+1],a=s[i+2],l=s[i+3];if(h!==\"..\"||!a||a===\".\"||a===\"..\"||!l||l===\".\"||l===\"..\")continue;e=!0,s.splice(i,1);let u=s.slice(0);u[i]=\"**\",t.push(u),i--}if(!this.preserveMultipleSlashes){for(let o=1;o<s.length-1;o++){let h=s[o];o===1&&h===\"\"&&s[0]===\"\"||(h===\".\"||h===\"\")&&(e=!0,s.splice(o,1),o--)}s[0]===\".\"&&s.length===2&&(s[1]===\".\"||s[1]===\"\")&&(e=!0,s.pop())}let r=0;for(;(r=s.indexOf(\"..\",r+1))!==-1;){let o=s[r-1];if(o&&o!==\".\"&&o!==\"..\"&&o!==\"**\"){e=!0;let a=r===1&&s[r+1]===\"**\"?[\".\"]:[];s.splice(r-1,2,...a),s.length===0&&s.push(\"\"),r-=2}}}}while(e);return t}secondPhasePreProcess(t){for(let e=0;e<t.length-1;e++)for(let s=e+1;s<t.length;s++){let i=this.partsMatch(t[e],t[s],!this.preserveMultipleSlashes);if(i){t[e]=[],t[s]=i;break}}return t.filter(e=>e.length)}partsMatch(t,e,s=!1){let i=0,r=0,o=[],h=\"\";for(;i<t.length&&r<e.length;)if(t[i]===e[r])o.push(h===\"b\"?e[r]:t[i]),i++,r++;else if(s&&t[i]===\"**\"&&e[r]===t[i+1])o.push(t[i]),i++;else if(s&&e[r]===\"**\"&&t[i]===e[r+1])o.push(e[r]),r++;else if(t[i]===\"*\"&&e[r]&&(this.options.dot||!e[r].startsWith(\".\"))&&e[r]!==\"**\"){if(h===\"b\")return!1;h=\"a\",o.push(t[i]),i++,r++}else if(e[r]===\"*\"&&t[i]&&(this.options.dot||!t[i].startsWith(\".\"))&&t[i]!==\"**\"){if(h===\"a\")return!1;h=\"b\",o.push(e[r]),i++,r++}else return!1;return t.length===e.length&&o}parseNegate(){if(this.nonegate)return;let t=this.pattern,e=!1,s=0;for(let i=0;i<t.length&&t.charAt(i)===\"!\";i++)e=!e,s++;s&&(this.pattern=t.slice(s)),this.negate=e}matchOne(t,e,s=!1){let i=this.options;if(this.isWindows){let p=typeof t[0]==\"string\"&&/^[a-z]:$/i.test(t[0]),w=!p&&t[0]===\"\"&&t[1]===\"\"&&t[2]===\"?\"&&/^[a-z]:$/i.test(t[3]),g=typeof e[0]==\"string\"&&/^[a-z]:$/i.test(e[0]),S=!g&&e[0]===\"\"&&e[1]===\"\"&&e[2]===\"?\"&&typeof e[3]==\"string\"&&/^[a-z]:$/i.test(e[3]),E=w?3:p?0:void 0,y=S?3:g?0:void 0;if(typeof E==\"number\"&&typeof y==\"number\"){let[b,z]=[t[E],e[y]];b.toLowerCase()===z.toLowerCase()&&(e[y]=b,y>E?e=e.slice(y):E>y&&(t=t.slice(E)))}}let{optimizationLevel:r=1}=this.options;r>=2&&(t=this.levelTwoFileOptimize(t)),this.debug(\"matchOne\",this,{file:t,pattern:e}),this.debug(\"matchOne\",t.length,e.length);for(var o=0,h=0,a=t.length,l=e.length;o<a&&h<l;o++,h++){this.debug(\"matchOne loop\");var u=e[h],c=t[o];if(this.debug(e,u,c),u===!1)return!1;if(u===A){this.debug(\"GLOBSTAR\",[e,u,c]);var d=o,f=h+1;if(f===l){for(this.debug(\"** at the end\");o<a;o++)if(t[o]===\".\"||t[o]===\"..\"||!i.dot&&t[o].charAt(0)===\".\")return!1;return!0}for(;d<a;){var m=t[d];if(this.debug(`\nglobstar while`,t,d,e,f,m),this.matchOne(t.slice(d),e.slice(f),s))return this.debug(\"globstar found match!\",d,a,m),!0;if(m===\".\"||m===\"..\"||!i.dot&&m.charAt(0)===\".\"){this.debug(\"dot detected!\",t,d,e,f);break}this.debug(\"globstar swallow a segment, and continue\"),d++}return!!(s&&(this.debug(`\n>>> no match, partial?`,t,d,e,f),d===a))}let p;if(typeof u==\"string\"?(p=c===u,this.debug(\"string match\",u,c,p)):(p=u.test(c),this.debug(\"pattern match\",u,c,p)),!p)return!1}if(o===a&&h===l)return!0;if(o===a)return s;if(h===l)return o===a-1&&t[o]===\"\";throw new Error(\"wtf?\")}braceExpand(){return ke(this.pattern,this.options)}parse(t){at(t);let e=this.options;if(t===\"**\")return A;if(t===\"\")return\"\";let s,i=null;(s=t.match(js))?i=e.dot?zs:Is:(s=t.match(Rs))?i=(e.nocase?e.dot?Ms:Ds:e.dot?Fs:Os)(s[1]):(s=t.match(Bs))?i=(e.nocase?e.dot?$s:Us:e.dot?Gs:Hs)(s):(s=t.match(Ns))?i=e.dot?Ls:_s:(s=t.match(Ws))&&(i=Ps);let r=Q.fromGlob(t,this.options).toMMPattern();return i&&typeof r==\"object\"&&Reflect.defineProperty(r,\"test\",{value:i}),r}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let e=this.options,s=e.noglobstar?Vs:e.dot?Ys:Xs,i=new Set(e.nocase?[\"i\"]:[]),r=t.map(a=>{let l=a.map(c=>{if(c instanceof RegExp)for(let d of c.flags.split(\"\"))i.add(d);return typeof c==\"string\"?ei(c):c===A?A:c._src});l.forEach((c,d)=>{let f=l[d+1],m=l[d-1];c!==A||m===A||(m===void 0?f!==void 0&&f!==A?l[d+1]=\"(?:\\\\/|\"+s+\"\\\\/)?\"+f:l[d]=s:f===void 0?l[d-1]=m+\"(?:\\\\/|\\\\/\"+s+\")?\":f!==A&&(l[d-1]=m+\"(?:\\\\/|\\\\/\"+s+\"\\\\/)\"+f,l[d+1]=A))});let u=l.filter(c=>c!==A);if(this.partial&&u.length>=1){let c=[];for(let d=1;d<=u.length;d++)c.push(u.slice(0,d).join(\"/\"));return\"(?:\"+c.join(\"|\")+\")\"}return u.join(\"/\")}).join(\"|\"),[o,h]=t.length>1?[\"(?:\",\")\"]:[\"\",\"\"];r=\"^\"+o+r+h+\"$\",this.partial&&(r=\"^(?:\\\\/|\"+o+r.slice(1,-1)+h+\")$\"),this.negate&&(r=\"^(?!\"+r+\").+$\");try{this.regexp=new RegExp(r,[...i].join(\"\"))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split(\"/\"):this.isWindows&&/^\\/\\/[^\\/]+/.test(t)?[\"\",...t.split(/\\/+/)]:t.split(/\\/+/)}match(t,e=this.partial){if(this.debug(\"match\",t,this.pattern),this.comment)return!1;if(this.empty)return t===\"\";if(t===\"/\"&&e)return!0;let s=this.options;this.isWindows&&(t=t.split(\"\\\\\").join(\"/\"));let i=this.slashSplit(t);this.debug(this.pattern,\"split\",i);let r=this.set;this.debug(this.pattern,\"set\",r);let o=i[i.length-1];if(!o)for(let h=i.length-2;!o&&h>=0;h--)o=i[h];for(let h=0;h<r.length;h++){let a=r[h],l=i;if(s.matchBase&&a.length===1&&(l=[o]),this.matchOne(l,a,e))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(t){return O.defaults(t).Minimatch}};O.AST=Q;O.Minimatch=D;O.escape=tt;O.unescape=W;import{fileURLToPath as Wi}from\"node:url\";var si=typeof performance==\"object\"&&performance&&typeof performance.now==\"function\"?performance:Date,Oe=new Set,Vt=typeof process==\"object\"&&process?process:{},Fe=(n,t,e,s)=>{typeof Vt.emitWarning==\"function\"?Vt.emitWarning(n,t,e,s):console.error(`[${e}] ${t}: ${n}`)},At=globalThis.AbortController,Re=globalThis.AbortSignal;if(typeof At>\"u\"){Re=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(e,s){this._onabort.push(s)}},At=class{constructor(){t()}signal=new Re;abort(e){if(!this.signal.aborted){this.signal.reason=e,this.signal.aborted=!0;for(let s of this.signal._onabort)s(e);this.signal.onabort?.(e)}}};let n=Vt.env?.LRU_CACHE_IGNORE_AC_WARNING!==\"1\",t=()=>{n&&(n=!1,Fe(\"AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.\",\"NO_ABORT_CONTROLLER\",\"ENOTSUP\",t))}}var ii=n=>!Oe.has(n);var q=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),De=n=>q(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?Tt:null:null,Tt=class extends Array{constructor(n){super(n),this.fill(0)}},ri=class ct{heap;length;static#t=!1;static create(t){let e=De(t);if(!e)return[];ct.#t=!0;let s=new ct(t,e);return ct.#t=!1,s}constructor(t,e){if(!ct.#t)throw new TypeError(\"instantiate Stack using Stack.create(n)\");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},ft=class Me{#t;#s;#n;#r;#o;#S;#w;#c;get perf(){return this.#c}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#h;#u;#f;#a;#i;#d;#E;#b;#p;#R;#m;#C;#T;#g;#y;#x;#A;#e;#_;static unsafeExposeInternals(t){return{starts:t.#T,ttls:t.#g,autopurgeTimers:t.#y,sizes:t.#C,keyMap:t.#f,keyList:t.#a,valList:t.#i,next:t.#d,prev:t.#E,get head(){return t.#b},get tail(){return t.#p},free:t.#R,isBackgroundFetch:e=>t.#l(e),backgroundFetch:(e,s,i,r)=>t.#U(e,s,i,r),moveToTail:e=>t.#W(e),indexes:e=>t.#F(e),rindexes:e=>t.#D(e),isStale:e=>t.#v(e)}}get max(){return this.#t}get maxSize(){return this.#s}get calculatedSize(){return this.#u}get size(){return this.#h}get fetchMethod(){return this.#S}get memoMethod(){return this.#w}get dispose(){return this.#n}get onInsert(){return this.#r}get disposeAfter(){return this.#o}constructor(t){let{max:e=0,ttl:s,ttlResolution:i=1,ttlAutopurge:r,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:a,dispose:l,onInsert:u,disposeAfter:c,noDisposeOnSet:d,noUpdateTTL:f,maxSize:m=0,maxEntrySize:p=0,sizeCalculation:w,fetchMethod:g,memoMethod:S,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:y,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:z,ignoreFetchAbort:$,perf:J}=t;if(J!==void 0&&typeof J?.now!=\"function\")throw new TypeError(\"perf option must have a now() method if specified\");if(this.#c=J??si,e!==0&&!q(e))throw new TypeError(\"max option must be a nonnegative integer\");let Z=e?De(e):Array;if(!Z)throw new Error(\"invalid max value: \"+e);if(this.#t=e,this.#s=m,this.maxEntrySize=p||this.#s,this.sizeCalculation=w,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError(\"cannot set sizeCalculation without setting maxSize or maxEntrySize\");if(typeof this.sizeCalculation!=\"function\")throw new TypeError(\"sizeCalculation set to non-function\")}if(S!==void 0&&typeof S!=\"function\")throw new TypeError(\"memoMethod must be a function if defined\");if(this.#w=S,g!==void 0&&typeof g!=\"function\")throw new TypeError(\"fetchMethod must be a function if specified\");if(this.#S=g,this.#A=!!g,this.#f=new Map,this.#a=new Array(e).fill(void 0),this.#i=new Array(e).fill(void 0),this.#d=new Z(e),this.#E=new Z(e),this.#b=0,this.#p=0,this.#R=ri.create(e),this.#h=0,this.#u=0,typeof l==\"function\"&&(this.#n=l),typeof u==\"function\"&&(this.#r=u),typeof c==\"function\"?(this.#o=c,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#x=!!this.#n,this.#_=!!this.#r,this.#e=!!this.#o,this.noDisposeOnSet=!!d,this.noUpdateTTL=!!f,this.noDeleteOnFetchRejection=!!E,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!z,this.ignoreFetchAbort=!!$,this.maxEntrySize!==0){if(this.#s!==0&&!q(this.#s))throw new TypeError(\"maxSize must be a positive integer if specified\");if(!q(this.maxEntrySize))throw new TypeError(\"maxEntrySize must be a positive integer if specified\");this.#G()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!y,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=q(i)||i===0?i:1,this.ttlAutopurge=!!r,this.ttl=s||0,this.ttl){if(!q(this.ttl))throw new TypeError(\"ttl must be a positive integer if specified\");this.#M()}if(this.#t===0&&this.ttl===0&&this.#s===0)throw new TypeError(\"At least one of max, maxSize, or ttl is required\");if(!this.ttlAutopurge&&!this.#t&&!this.#s){let $t=\"LRU_CACHE_UNBOUNDED\";ii($t)&&(Oe.add($t),Fe(\"TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.\",\"UnboundedCacheWarning\",$t,Me))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#M(){let t=new Tt(this.#t),e=new Tt(this.#t);this.#g=t,this.#T=e;let s=this.ttlAutopurge?new Array(this.#t):void 0;this.#y=s,this.#j=(o,h,a=this.#c.now())=>{if(e[o]=h!==0?a:0,t[o]=h,s?.[o]&&(clearTimeout(s[o]),s[o]=void 0),h!==0&&s){let l=setTimeout(()=>{this.#v(o)&&this.#O(this.#a[o],\"expire\")},h+1);l.unref&&l.unref(),s[o]=l}},this.#k=o=>{e[o]=t[o]!==0?this.#c.now():0},this.#N=(o,h)=>{if(t[h]){let a=t[h],l=e[h];if(!a||!l)return;o.ttl=a,o.start=l,o.now=i||r();let u=o.now-l;o.remainingTTL=a-u}};let i=0,r=()=>{let o=this.#c.now();if(this.ttlResolution>0){i=o;let h=setTimeout(()=>i=0,this.ttlResolution);h.unref&&h.unref()}return o};this.getRemainingTTL=o=>{let h=this.#f.get(o);if(h===void 0)return 0;let a=t[h],l=e[h];if(!a||!l)return 1/0;let u=(i||r())-l;return a-u},this.#v=o=>{let h=e[o],a=t[o];return!!a&&!!h&&(i||r())-h>a}}#k=()=>{};#N=()=>{};#j=()=>{};#v=()=>!1;#G(){let t=new Tt(this.#t);this.#u=0,this.#C=t,this.#P=e=>{this.#u-=t[e],t[e]=0},this.#I=(e,s,i,r)=>{if(this.#l(s))return 0;if(!q(i))if(r){if(typeof r!=\"function\")throw new TypeError(\"sizeCalculation must be a function\");if(i=r(s,e),!q(i))throw new TypeError(\"sizeCalculation return invalid (expect positive integer)\")}else throw new TypeError(\"invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.\");return i},this.#L=(e,s,i)=>{if(t[e]=s,this.#s){let r=this.#s-t[e];for(;this.#u>r;)this.#B(!0)}this.#u+=t[e],i&&(i.entrySize=s,i.totalCalculatedSize=this.#u)}}#P=t=>{};#L=(t,e,s)=>{};#I=(t,e,s,i)=>{if(s||i)throw new TypeError(\"cannot set size without setting maxSize or maxEntrySize on cache\");return 0};*#F({allowStale:t=this.allowStale}={}){if(this.#h)for(let e=this.#p;!(!this.#z(e)||((t||!this.#v(e))&&(yield e),e===this.#b));)e=this.#E[e]}*#D({allowStale:t=this.allowStale}={}){if(this.#h)for(let e=this.#b;!(!this.#z(e)||((t||!this.#v(e))&&(yield e),e===this.#p));)e=this.#d[e]}#z(t){return t!==void 0&&this.#f.get(this.#a[t])===t}*entries(){for(let t of this.#F())this.#i[t]!==void 0&&this.#a[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#a[t],this.#i[t]])}*rentries(){for(let t of this.#D())this.#i[t]!==void 0&&this.#a[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#a[t],this.#i[t]])}*keys(){for(let t of this.#F()){let e=this.#a[t];e!==void 0&&!this.#l(this.#i[t])&&(yield e)}}*rkeys(){for(let t of this.#D()){let e=this.#a[t];e!==void 0&&!this.#l(this.#i[t])&&(yield e)}}*values(){for(let t of this.#F())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}*rvalues(){for(let t of this.#D())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]=\"LRUCache\";find(t,e={}){for(let s of this.#F()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;if(r!==void 0&&t(r,this.#a[s],this))return this.get(this.#a[s],e)}}forEach(t,e=this){for(let s of this.#F()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&t.call(e,r,this.#a[s],this)}}rforEach(t,e=this){for(let s of this.#D()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&t.call(e,r,this.#a[s],this)}}purgeStale(){let t=!1;for(let e of this.#D({allowStale:!0}))this.#v(e)&&(this.#O(this.#a[e],\"expire\"),t=!0);return t}info(t){let e=this.#f.get(t);if(e===void 0)return;let s=this.#i[e],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let r={value:i};if(this.#g&&this.#T){let o=this.#g[e],h=this.#T[e];if(o&&h){let a=o-(this.#c.now()-h);r.ttl=a,r.start=Date.now()}}return this.#C&&(r.size=this.#C[e]),r}dump(){let t=[];for(let e of this.#F({allowStale:!0})){let s=this.#a[e],i=this.#i[e],r=this.#l(i)?i.__staleWhileFetching:i;if(r===void 0||s===void 0)continue;let o={value:r};if(this.#g&&this.#T){o.ttl=this.#g[e];let h=this.#c.now()-this.#T[e];o.start=Math.floor(Date.now()-h)}this.#C&&(o.size=this.#C[e]),t.unshift([s,o])}return t}load(t){this.clear();for(let[e,s]of t){if(s.start){let i=Date.now()-s.start;s.start=this.#c.now()-i}this.set(e,s.value,s)}}set(t,e,s={}){if(e===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:r,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:a}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,u=this.#I(t,e,s.size||0,h);if(this.maxEntrySize&&u>this.maxEntrySize)return a&&(a.set=\"miss\",a.maxEntrySizeExceeded=!0),this.#O(t,\"set\"),this;let c=this.#h===0?void 0:this.#f.get(t);if(c===void 0)c=this.#h===0?this.#p:this.#R.length!==0?this.#R.pop():this.#h===this.#t?this.#B(!1):this.#h,this.#a[c]=t,this.#i[c]=e,this.#f.set(t,c),this.#d[this.#p]=c,this.#E[c]=this.#p,this.#p=c,this.#h++,this.#L(c,u,a),a&&(a.set=\"add\"),l=!1,this.#_&&this.#r?.(e,t,\"add\");else{this.#W(c);let d=this.#i[c];if(e!==d){if(this.#A&&this.#l(d)){d.__abortController.abort(new Error(\"replaced\"));let{__staleWhileFetching:f}=d;f!==void 0&&!o&&(this.#x&&this.#n?.(f,t,\"set\"),this.#e&&this.#m?.push([f,t,\"set\"]))}else o||(this.#x&&this.#n?.(d,t,\"set\"),this.#e&&this.#m?.push([d,t,\"set\"]));if(this.#P(c),this.#L(c,u,a),this.#i[c]=e,a){a.set=\"replace\";let f=d&&this.#l(d)?d.__staleWhileFetching:d;f!==void 0&&(a.oldValue=f)}}else a&&(a.set=\"update\");this.#_&&this.onInsert?.(e,t,e===d?\"update\":\"replace\")}if(i!==0&&!this.#g&&this.#M(),this.#g&&(l||this.#j(c,i,r),a&&this.#N(a,c)),!o&&this.#e&&this.#m){let d=this.#m,f;for(;f=d?.shift();)this.#o?.(...f)}return this}pop(){try{for(;this.#h;){let t=this.#i[this.#b];if(this.#B(!0),this.#l(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#e&&this.#m){let t=this.#m,e;for(;e=t?.shift();)this.#o?.(...e)}}}#B(t){let e=this.#b,s=this.#a[e],i=this.#i[e];return this.#A&&this.#l(i)?i.__abortController.abort(new Error(\"evicted\")):(this.#x||this.#e)&&(this.#x&&this.#n?.(i,s,\"evict\"),this.#e&&this.#m?.push([i,s,\"evict\"])),this.#P(e),this.#y?.[e]&&(clearTimeout(this.#y[e]),this.#y[e]=void 0),t&&(this.#a[e]=void 0,this.#i[e]=void 0,this.#R.push(e)),this.#h===1?(this.#b=this.#p=0,this.#R.length=0):this.#b=this.#d[e],this.#f.delete(s),this.#h--,e}has(t,e={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=e,r=this.#f.get(t);if(r!==void 0){let o=this.#i[r];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#v(r))i&&(i.has=\"stale\",this.#N(i,r));else return s&&this.#k(r),i&&(i.has=\"hit\",this.#N(i,r)),!0}else i&&(i.has=\"miss\");return!1}peek(t,e={}){let{allowStale:s=this.allowStale}=e,i=this.#f.get(t);if(i===void 0||!s&&this.#v(i))return;let r=this.#i[i];return this.#l(r)?r.__staleWhileFetching:r}#U(t,e,s,i){let r=e===void 0?void 0:this.#i[e];if(this.#l(r))return r;let o=new At,{signal:h}=s;h?.addEventListener(\"abort\",()=>o.abort(h.reason),{signal:o.signal});let a={signal:o.signal,options:s,context:i},l=(p,w=!1)=>{let{aborted:g}=o.signal,S=s.ignoreFetchAbort&&p!==void 0,E=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&p!==void 0);if(s.status&&(g&&!w?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,S&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),g&&!S&&!w)return c(o.signal.reason,E);let y=f,b=this.#i[e];return(b===f||S&&w&&b===void 0)&&(p===void 0?y.__staleWhileFetching!==void 0?this.#i[e]=y.__staleWhileFetching:this.#O(t,\"fetch\"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,p,a.options))),p},u=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),c(p,!1)),c=(p,w)=>{let{aborted:g}=o.signal,S=g&&s.allowStaleOnFetchAbort,E=S||s.allowStaleOnFetchRejection,y=E||s.noDeleteOnFetchRejection,b=f;if(this.#i[e]===f&&(!y||!w&&b.__staleWhileFetching===void 0?this.#O(t,\"fetch\"):S||(this.#i[e]=b.__staleWhileFetching)),E)return s.status&&b.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),b.__staleWhileFetching;if(b.__returned===b)throw p},d=(p,w)=>{let g=this.#S?.(t,r,a);g&&g instanceof Promise&&g.then(S=>p(S===void 0?void 0:S),w),o.signal.addEventListener(\"abort\",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=S=>l(S,!0)))})};s.status&&(s.status.fetchDispatched=!0);let f=new Promise(d).then(l,u),m=Object.assign(f,{__abortController:o,__staleWhileFetching:r,__returned:void 0});return e===void 0?(this.set(t,m,{...a.options,status:void 0}),e=this.#f.get(t)):this.#i[e]=m,m}#l(t){if(!this.#A)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty(\"__staleWhileFetching\")&&e.__abortController instanceof At}async fetch(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:c=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:d=this.allowStaleOnFetchRejection,ignoreFetchAbort:f=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:p,forceRefresh:w=!1,status:g,signal:S}=e;if(!this.#A)return g&&(g.fetch=\"get\"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,status:g});let E={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,ttl:o,noDisposeOnSet:h,size:a,sizeCalculation:l,noUpdateTTL:u,noDeleteOnFetchRejection:c,allowStaleOnFetchRejection:d,allowStaleOnFetchAbort:m,ignoreFetchAbort:f,status:g,signal:S},y=this.#f.get(t);if(y===void 0){g&&(g.fetch=\"miss\");let b=this.#U(t,y,E,p);return b.__returned=b}else{let b=this.#i[y];if(this.#l(b)){let Z=s&&b.__staleWhileFetching!==void 0;return g&&(g.fetch=\"inflight\",Z&&(g.returnedStale=!0)),Z?b.__staleWhileFetching:b.__returned=b}let z=this.#v(y);if(!w&&!z)return g&&(g.fetch=\"hit\"),this.#W(y),i&&this.#k(y),g&&this.#N(g,y),b;let $=this.#U(t,y,E,p),J=$.__staleWhileFetching!==void 0&&s;return g&&(g.fetch=z?\"stale\":\"refresh\",J&&z&&(g.returnedStale=!0)),J?$.__staleWhileFetching:$.__returned=$}}async forceFetch(t,e={}){let s=await this.fetch(t,e);if(s===void 0)throw new Error(\"fetch() returned undefined\");return s}memo(t,e={}){let s=this.#w;if(!s)throw new Error(\"no memoMethod provided to constructor\");let{context:i,forceRefresh:r,...o}=e,h=this.get(t,o);if(!r&&h!==void 0)return h;let a=s(t,h,{options:o,context:i});return this.set(t,a,o),a}get(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:o}=e,h=this.#f.get(t);if(h!==void 0){let a=this.#i[h],l=this.#l(a);return o&&this.#N(o,h),this.#v(h)?(o&&(o.get=\"stale\"),l?(o&&s&&a.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?a.__staleWhileFetching:void 0):(r||this.#O(t,\"expire\"),o&&s&&(o.returnedStale=!0),s?a:void 0)):(o&&(o.get=\"hit\"),l?a.__staleWhileFetching:(this.#W(h),i&&this.#k(h),a))}else o&&(o.get=\"miss\")}#$(t,e){this.#E[e]=t,this.#d[t]=e}#W(t){t!==this.#p&&(t===this.#b?this.#b=this.#d[t]:this.#$(this.#E[t],this.#d[t]),this.#$(this.#p,t),this.#p=t)}delete(t){return this.#O(t,\"delete\")}#O(t,e){let s=!1;if(this.#h!==0){let i=this.#f.get(t);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#h===1)this.#H(e);else{this.#P(i);let r=this.#i[i];if(this.#l(r)?r.__abortController.abort(new Error(\"deleted\")):(this.#x||this.#e)&&(this.#x&&this.#n?.(r,t,e),this.#e&&this.#m?.push([r,t,e])),this.#f.delete(t),this.#a[i]=void 0,this.#i[i]=void 0,i===this.#p)this.#p=this.#E[i];else if(i===this.#b)this.#b=this.#d[i];else{let o=this.#E[i];this.#d[o]=this.#d[i];let h=this.#d[i];this.#E[h]=this.#E[i]}this.#h--,this.#R.push(i)}}if(this.#e&&this.#m?.length){let i=this.#m,r;for(;r=i?.shift();)this.#o?.(...r)}return s}clear(){return this.#H(\"delete\")}#H(t){for(let e of this.#D({allowStale:!0})){let s=this.#i[e];if(this.#l(s))s.__abortController.abort(new Error(\"deleted\"));else{let i=this.#a[e];this.#x&&this.#n?.(s,i,t),this.#e&&this.#m?.push([s,i,t])}}if(this.#f.clear(),this.#i.fill(void 0),this.#a.fill(void 0),this.#g&&this.#T){this.#g.fill(0),this.#T.fill(0);for(let e of this.#y??[])e!==void 0&&clearTimeout(e);this.#y?.fill(void 0)}if(this.#C&&this.#C.fill(0),this.#b=0,this.#p=0,this.#R.length=0,this.#u=0,this.#h=0,this.#e&&this.#m){let e=this.#m,s;for(;s=e?.shift();)this.#o?.(...s)}}};import{posix as mi,win32 as re}from\"node:path\";import{fileURLToPath as gi}from\"node:url\";import{lstatSync as wi,readdir as yi,readdirSync as bi,readlinkSync as Si,realpathSync as Ei}from\"fs\";import*as xi from\"node:fs\";import{lstat as Ci,readdir as Ti,readlink as Ai,realpath as ki}from\"node:fs/promises\";import{EventEmitter as ee}from\"node:events\";import Pe from\"node:stream\";import{StringDecoder as ni}from\"node:string_decoder\";var Ne=typeof process==\"object\"&&process?process:{stdout:null,stderr:null},oi=n=>!!n&&typeof n==\"object\"&&(n instanceof V||n instanceof Pe||hi(n)||ai(n)),hi=n=>!!n&&typeof n==\"object\"&&n instanceof ee&&typeof n.pipe==\"function\"&&n.pipe!==Pe.Writable.prototype.pipe,ai=n=>!!n&&typeof n==\"object\"&&n instanceof ee&&typeof n.write==\"function\"&&typeof n.end==\"function\",G=Symbol(\"EOF\"),H=Symbol(\"maybeEmitEnd\"),K=Symbol(\"emittedEnd\"),kt=Symbol(\"emittingEnd\"),ut=Symbol(\"emittedError\"),Rt=Symbol(\"closed\"),_e=Symbol(\"read\"),Ot=Symbol(\"flush\"),Le=Symbol(\"flushChunk\"),P=Symbol(\"encoding\"),et=Symbol(\"decoder\"),v=Symbol(\"flowing\"),dt=Symbol(\"paused\"),st=Symbol(\"resume\"),C=Symbol(\"buffer\"),F=Symbol(\"pipes\"),T=Symbol(\"bufferLength\"),Yt=Symbol(\"bufferPush\"),Ft=Symbol(\"bufferShift\"),k=Symbol(\"objectMode\"),x=Symbol(\"destroyed\"),Xt=Symbol(\"error\"),Jt=Symbol(\"emitData\"),We=Symbol(\"emitEnd\"),Zt=Symbol(\"emitEnd2\"),B=Symbol(\"async\"),Qt=Symbol(\"abort\"),Dt=Symbol(\"aborted\"),pt=Symbol(\"signal\"),Y=Symbol(\"dataListeners\"),M=Symbol(\"discarded\"),mt=n=>Promise.resolve().then(n),li=n=>n(),ci=n=>n===\"end\"||n===\"finish\"||n===\"prefinish\",fi=n=>n instanceof ArrayBuffer||!!n&&typeof n==\"object\"&&n.constructor&&n.constructor.name===\"ArrayBuffer\"&&n.byteLength>=0,ui=n=>!Buffer.isBuffer(n)&&ArrayBuffer.isView(n),Mt=class{src;dest;opts;ondrain;constructor(t,e,s){this.src=t,this.dest=e,this.opts=s,this.ondrain=()=>t[st](),this.dest.on(\"drain\",this.ondrain)}unpipe(){this.dest.removeListener(\"drain\",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},te=class extends Mt{unpipe(){this.src.removeListener(\"error\",this.proxyErrors),super.unpipe()}constructor(t,e,s){super(t,e,s),this.proxyErrors=i=>this.dest.emit(\"error\",i),t.on(\"error\",this.proxyErrors)}},di=n=>!!n.objectMode,pi=n=>!n.objectMode&&!!n.encoding&&n.encoding!==\"buffer\",V=class extends ee{[v]=!1;[dt]=!1;[F]=[];[C]=[];[k];[P];[B];[et];[G]=!1;[K]=!1;[kt]=!1;[Rt]=!1;[ut]=null;[T]=0;[x]=!1;[pt];[Dt]=!1;[Y]=0;[M]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding==\"string\")throw new TypeError(\"Encoding and objectMode may not be used together\");di(e)?(this[k]=!0,this[P]=null):pi(e)?(this[P]=e.encoding,this[k]=!1):(this[k]=!1,this[P]=null),this[B]=!!e.async,this[et]=this[P]?new ni(this[P]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,\"buffer\",{get:()=>this[C]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,\"pipes\",{get:()=>this[F]});let{signal:s}=e;s&&(this[pt]=s,s.aborted?this[Qt]():s.addEventListener(\"abort\",()=>this[Qt]()))}get bufferLength(){return this[T]}get encoding(){return this[P]}set encoding(t){throw new Error(\"Encoding must be set at instantiation time\")}setEncoding(t){throw new Error(\"Encoding must be set at instantiation time\")}get objectMode(){return this[k]}set objectMode(t){throw new Error(\"objectMode must be set at instantiation time\")}get async(){return this[B]}set async(t){this[B]=this[B]||!!t}[Qt](){this[Dt]=!0,this.emit(\"abort\",this[pt]?.reason),this.destroy(this[pt]?.reason)}get aborted(){return this[Dt]}set aborted(t){}write(t,e,s){if(this[Dt])return!1;if(this[G])throw new Error(\"write after end\");if(this[x])return this.emit(\"error\",Object.assign(new Error(\"Cannot call write after a stream was destroyed\"),{code:\"ERR_STREAM_DESTROYED\"})),!0;typeof e==\"function\"&&(s=e,e=\"utf8\"),e||(e=\"utf8\");let i=this[B]?mt:li;if(!this[k]&&!Buffer.isBuffer(t)){if(ui(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(fi(t))t=Buffer.from(t);else if(typeof t!=\"string\")throw new Error(\"Non-contiguous data written to non-objectMode stream\")}return this[k]?(this[v]&&this[T]!==0&&this[Ot](!0),this[v]?this.emit(\"data\",t):this[Yt](t),this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v]):t.length?(typeof t==\"string\"&&!(e===this[P]&&!this[et]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[P]&&(t=this[et].write(t)),this[v]&&this[T]!==0&&this[Ot](!0),this[v]?this.emit(\"data\",t):this[Yt](t),this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v]):(this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v])}read(t){if(this[x])return null;if(this[M]=!1,this[T]===0||t===0||t&&t>this[T])return this[H](),null;this[k]&&(t=null),this[C].length>1&&!this[k]&&(this[C]=[this[P]?this[C].join(\"\"):Buffer.concat(this[C],this[T])]);let e=this[_e](t||null,this[C][0]);return this[H](),e}[_e](t,e){if(this[k])this[Ft]();else{let s=e;t===s.length||t===null?this[Ft]():typeof s==\"string\"?(this[C][0]=s.slice(t),e=s.slice(0,t),this[T]-=t):(this[C][0]=s.subarray(t),e=s.subarray(0,t),this[T]-=t)}return this.emit(\"data\",e),!this[C].length&&!this[G]&&this.emit(\"drain\"),e}end(t,e,s){return typeof t==\"function\"&&(s=t,t=void 0),typeof e==\"function\"&&(s=e,e=\"utf8\"),t!==void 0&&this.write(t,e),s&&this.once(\"end\",s),this[G]=!0,this.writable=!1,(this[v]||!this[dt])&&this[H](),this}[st](){this[x]||(!this[Y]&&!this[F].length&&(this[M]=!0),this[dt]=!1,this[v]=!0,this.emit(\"resume\"),this[C].length?this[Ot]():this[G]?this[H]():this.emit(\"drain\"))}resume(){return this[st]()}pause(){this[v]=!1,this[dt]=!0,this[M]=!1}get destroyed(){return this[x]}get flowing(){return this[v]}get paused(){return this[dt]}[Yt](t){this[k]?this[T]+=1:this[T]+=t.length,this[C].push(t)}[Ft](){return this[k]?this[T]-=1:this[T]-=this[C][0].length,this[C].shift()}[Ot](t=!1){do;while(this[Le](this[Ft]())&&this[C].length);!t&&!this[C].length&&!this[G]&&this.emit(\"drain\")}[Le](t){return this.emit(\"data\",t),this[v]}pipe(t,e){if(this[x])return t;this[M]=!1;let s=this[K];return e=e||{},t===Ne.stdout||t===Ne.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,s?e.end&&t.end():(this[F].push(e.proxyErrors?new te(this,t,e):new Mt(this,t,e)),this[B]?mt(()=>this[st]()):this[st]()),t}unpipe(t){let e=this[F].find(s=>s.dest===t);e&&(this[F].length===1?(this[v]&&this[Y]===0&&(this[v]=!1),this[F]=[]):this[F].splice(this[F].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let s=super.on(t,e);if(t===\"data\")this[M]=!1,this[Y]++,!this[F].length&&!this[v]&&this[st]();else if(t===\"readable\"&&this[T]!==0)super.emit(\"readable\");else if(ci(t)&&this[K])super.emit(t),this.removeAllListeners(t);else if(t===\"error\"&&this[ut]){let i=e;this[B]?mt(()=>i.call(this,this[ut])):i.call(this,this[ut])}return s}removeListener(t,e){return this.off(t,e)}off(t,e){let s=super.off(t,e);return t===\"data\"&&(this[Y]=this.listeners(\"data\").length,this[Y]===0&&!this[M]&&!this[F].length&&(this[v]=!1)),s}removeAllListeners(t){let e=super.removeAllListeners(t);return(t===\"data\"||t===void 0)&&(this[Y]=0,!this[M]&&!this[F].length&&(this[v]=!1)),e}get emittedEnd(){return this[K]}[H](){!this[kt]&&!this[K]&&!this[x]&&this[C].length===0&&this[G]&&(this[kt]=!0,this.emit(\"end\"),this.emit(\"prefinish\"),this.emit(\"finish\"),this[Rt]&&this.emit(\"close\"),this[kt]=!1)}emit(t,...e){let s=e[0];if(t!==\"error\"&&t!==\"close\"&&t!==x&&this[x])return!1;if(t===\"data\")return!this[k]&&!s?!1:this[B]?(mt(()=>this[Jt](s)),!0):this[Jt](s);if(t===\"end\")return this[We]();if(t===\"close\"){if(this[Rt]=!0,!this[K]&&!this[x])return!1;let r=super.emit(\"close\");return this.removeAllListeners(\"close\"),r}else if(t===\"error\"){this[ut]=s,super.emit(Xt,s);let r=!this[pt]||this.listeners(\"error\").length?super.emit(\"error\",s):!1;return this[H](),r}else if(t===\"resume\"){let r=super.emit(\"resume\");return this[H](),r}else if(t===\"finish\"||t===\"prefinish\"){let r=super.emit(t);return this.removeAllListeners(t),r}let i=super.emit(t,...e);return this[H](),i}[Jt](t){for(let s of this[F])s.dest.write(t)===!1&&this.pause();let e=this[M]?!1:super.emit(\"data\",t);return this[H](),e}[We](){return this[K]?!1:(this[K]=!0,this.readable=!1,this[B]?(mt(()=>this[Zt]()),!0):this[Zt]())}[Zt](){if(this[et]){let e=this[et].end();if(e){for(let s of this[F])s.dest.write(e);this[M]||super.emit(\"data\",e)}}for(let e of this[F])e.end();let t=super.emit(\"end\");return this.removeAllListeners(\"end\"),t}async collect(){let t=Object.assign([],{dataLength:0});this[k]||(t.dataLength=0);let e=this.promise();return this.on(\"data\",s=>{t.push(s),this[k]||(t.dataLength+=s.length)}),await e,t}async concat(){if(this[k])throw new Error(\"cannot concat in objectMode\");let t=await this.collect();return this[P]?t.join(\"\"):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(x,()=>e(new Error(\"stream destroyed\"))),this.on(\"error\",s=>e(s)),this.on(\"end\",()=>t())})}[Symbol.asyncIterator](){this[M]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[G])return e();let r,o,h=c=>{this.off(\"data\",a),this.off(\"end\",l),this.off(x,u),e(),o(c)},a=c=>{this.off(\"error\",h),this.off(\"end\",l),this.off(x,u),this.pause(),r({value:c,done:!!this[G]})},l=()=>{this.off(\"error\",h),this.off(\"data\",a),this.off(x,u),e(),r({done:!0,value:void 0})},u=()=>h(new Error(\"stream destroyed\"));return new Promise((c,d)=>{o=d,r=c,this.once(x,u),this.once(\"error\",h),this.once(\"end\",l),this.once(\"data\",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[M]=!1;let t=!1,e=()=>(this.pause(),this.off(Xt,e),this.off(x,e),this.off(\"end\",e),t=!0,{done:!0,value:void 0}),s=()=>{if(t)return e();let i=this.read();return i===null?e():{done:!1,value:i}};return this.once(\"end\",e),this.once(Xt,e),this.once(x,e),{next:s,throw:e,return:e,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(t){if(this[x])return t?this.emit(\"error\",t):this.emit(x),this;this[x]=!0,this[M]=!0,this[C].length=0,this[T]=0;let e=this;return typeof e.close==\"function\"&&!this[Rt]&&e.close(),t?this.emit(\"error\",t):this.emit(x),this}static get isStream(){return oi}};var vi=Ei.native,wt={lstatSync:wi,readdir:yi,readdirSync:bi,readlinkSync:Si,realpathSync:vi,promises:{lstat:Ci,readdir:Ti,readlink:Ai,realpath:ki}},Ue=n=>!n||n===wt||n===xi?wt:{...wt,...n,promises:{...wt.promises,...n.promises||{}}},$e=/^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i,Ri=n=>n.replace(/\\//g,\"\\\\\").replace($e,\"$1\\\\\"),Oi=/[\\\\\\/]/,L=0,Ge=1,He=2,U=4,qe=6,Ke=8,X=10,Ve=12,_=15,gt=~_,se=16,je=32,yt=64,j=128,Nt=256,Lt=512,Ie=yt|j|Lt,Fi=1023,ie=n=>n.isFile()?Ke:n.isDirectory()?U:n.isSymbolicLink()?X:n.isCharacterDevice()?He:n.isBlockDevice()?qe:n.isSocket()?Ve:n.isFIFO()?Ge:L,ze=new ft({max:2**12}),bt=n=>{let t=ze.get(n);if(t)return t;let e=n.normalize(\"NFKD\");return ze.set(n,e),e},Be=new ft({max:2**12}),_t=n=>{let t=Be.get(n);if(t)return t;let e=bt(n.toLowerCase());return Be.set(n,e),e},Wt=class extends ft{constructor(){super({max:256})}},ne=class extends ft{constructor(t=16*1024){super({maxSize:t,sizeCalculation:e=>e.length+1})}},Ye=Symbol(\"PathScurry setAsCwd\"),R=class{name;root;roots;parent;nocase;isCWD=!1;#t;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#o;get uid(){return this.#o}#S;get gid(){return this.#S}#w;get rdev(){return this.#w}#c;get blksize(){return this.#c}#h;get ino(){return this.#h}#u;get size(){return this.#u}#f;get blocks(){return this.#f}#a;get atimeMs(){return this.#a}#i;get mtimeMs(){return this.#i}#d;get ctimeMs(){return this.#d}#E;get birthtimeMs(){return this.#E}#b;get atime(){return this.#b}#p;get mtime(){return this.#p}#R;get ctime(){return this.#R}#m;get birthtime(){return this.#m}#C;#T;#g;#y;#x;#A;#e;#_;#M;#k;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,e=L,s,i,r,o,h){this.name=t,this.#C=r?_t(t):bt(t),this.#e=e&Fi,this.nocase=r,this.roots=i,this.root=s||this,this.#_=o,this.#g=h.fullpath,this.#x=h.relative,this.#A=h.relativePosix,this.parent=h.parent,this.parent?this.#t=this.parent.#t:this.#t=Ue(h.fs)}depth(){return this.#T!==void 0?this.#T:this.parent?this.#T=this.parent.depth()+1:this.#T=0}childrenCache(){return this.#_}resolve(t){if(!t)return this;let e=this.getRootString(t),i=t.substring(e.length).split(this.splitSep);return e?this.getRoot(e).#N(i):this.#N(i)}#N(t){let e=this;for(let s of t)e=e.child(s);return e}children(){let t=this.#_.get(this);if(t)return t;let e=Object.assign([],{provisional:0});return this.#_.set(this,e),this.#e&=~se,e}child(t,e){if(t===\"\"||t===\".\")return this;if(t===\"..\")return this.parent||this;let s=this.children(),i=this.nocase?_t(t):bt(t);for(let a of s)if(a.#C===i)return a;let r=this.parent?this.sep:\"\",o=this.#g?this.#g+r+t:void 0,h=this.newChild(t,L,{...e,parent:this,fullpath:o});return this.canReaddir()||(h.#e|=j),s.push(h),h}relative(){if(this.isCWD)return\"\";if(this.#x!==void 0)return this.#x;let t=this.name,e=this.parent;if(!e)return this.#x=this.name;let s=e.relative();return s+(!s||!e.parent?\"\":this.sep)+t}relativePosix(){if(this.sep===\"/\")return this.relative();if(this.isCWD)return\"\";if(this.#A!==void 0)return this.#A;let t=this.name,e=this.parent;if(!e)return this.#A=this.fullpathPosix();let s=e.relativePosix();return s+(!s||!e.parent?\"\":\"/\")+t}fullpath(){if(this.#g!==void 0)return this.#g;let t=this.name,e=this.parent;if(!e)return this.#g=this.name;let i=e.fullpath()+(e.parent?this.sep:\"\")+t;return this.#g=i}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep===\"/\")return this.#y=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\\\/g,\"/\");return/^[a-z]:\\//i.test(i)?this.#y=`//?/${i}`:this.#y=i}let t=this.parent,e=t.fullpathPosix(),s=e+(!e||!t.parent?\"\":\"/\")+this.name;return this.#y=s}isUnknown(){return(this.#e&_)===L}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?\"Unknown\":this.isDirectory()?\"Directory\":this.isFile()?\"File\":this.isSymbolicLink()?\"SymbolicLink\":this.isFIFO()?\"FIFO\":this.isCharacterDevice()?\"CharacterDevice\":this.isBlockDevice()?\"BlockDevice\":this.isSocket()?\"Socket\":\"Unknown\"}isFile(){return(this.#e&_)===Ke}isDirectory(){return(this.#e&_)===U}isCharacterDevice(){return(this.#e&_)===He}isBlockDevice(){return(this.#e&_)===qe}isFIFO(){return(this.#e&_)===Ge}isSocket(){return(this.#e&_)===Ve}isSymbolicLink(){return(this.#e&X)===X}lstatCached(){return this.#e&je?this:void 0}readlinkCached(){return this.#M}realpathCached(){return this.#k}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#M)return!0;if(!this.parent)return!1;let t=this.#e&_;return!(t!==L&&t!==X||this.#e&Nt||this.#e&j)}calledReaddir(){return!!(this.#e&se)}isENOENT(){return!!(this.#e&j)}isNamed(t){return this.nocase?this.#C===_t(t):this.#C===bt(t)}async readlink(){let t=this.#M;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=await this.#t.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(e);if(s)return this.#M=s}catch(e){this.#D(e.code);return}}readlinkSync(){let t=this.#M;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=this.#t.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(e);if(s)return this.#M=s}catch(e){this.#D(e.code);return}}#j(t){this.#e|=se;for(let e=t.provisional;e<t.length;e++){let s=t[e];s&&s.#v()}}#v(){this.#e&j||(this.#e=(this.#e|j)>,this.#G())}#G(){let t=this.children();t.provisional=0;for(let e of t)e.#v()}#P(){this.#e|=Lt,this.#L()}#L(){if(this.#e&yt)return;let t=this.#e;(t&_)===U&&(t&=gt),this.#e=t|yt,this.#G()}#I(t=\"\"){t===\"ENOTDIR\"||t===\"EPERM\"?this.#L():t===\"ENOENT\"?this.#v():this.children().provisional=0}#F(t=\"\"){t===\"ENOTDIR\"?this.parent.#L():t===\"ENOENT\"&&this.#v()}#D(t=\"\"){let e=this.#e;e|=Nt,t===\"ENOENT\"&&(e|=j),(t===\"EINVAL\"||t===\"UNKNOWN\")&&(e&=gt),this.#e=e,t===\"ENOTDIR\"&&this.parent&&this.parent.#L()}#z(t,e){return this.#U(t,e)||this.#B(t,e)}#B(t,e){let s=ie(t),i=this.newChild(t.name,s,{parent:this}),r=i.#e&_;return r!==U&&r!==X&&r!==L&&(i.#e|=yt),e.unshift(i),e.provisional++,i}#U(t,e){for(let s=e.provisional;s<e.length;s++){let i=e[s];if((this.nocase?_t(t.name):bt(t.name))===i.#C)return this.#l(t,i,s,e)}}#l(t,e,s,i){let r=e.name;return e.#e=e.#e>|ie(t),r!==t.name&&(e.name=t.name),s!==i.provisional&&(s===i.length-1?i.pop():i.splice(s,1),i.unshift(e)),i.provisional++,e}async lstat(){if((this.#e&j)===0)try{return this.#$(await this.#t.promises.lstat(this.fullpath())),this}catch(t){this.#F(t.code)}}lstatSync(){if((this.#e&j)===0)try{return this.#$(this.#t.lstatSync(this.fullpath())),this}catch(t){this.#F(t.code)}}#$(t){let{atime:e,atimeMs:s,birthtime:i,birthtimeMs:r,blksize:o,blocks:h,ctime:a,ctimeMs:l,dev:u,gid:c,ino:d,mode:f,mtime:m,mtimeMs:p,nlink:w,rdev:g,size:S,uid:E}=t;this.#b=e,this.#a=s,this.#m=i,this.#E=r,this.#c=o,this.#f=h,this.#R=a,this.#d=l,this.#s=u,this.#S=c,this.#h=d,this.#n=f,this.#p=m,this.#i=p,this.#r=w,this.#w=g,this.#u=S,this.#o=E;let y=ie(t);this.#e=this.#e>|y|je,y!==L&&y!==U&&y!==X&&(this.#e|=yt)}#W=[];#O=!1;#H(t){this.#O=!1;let e=this.#W.slice();this.#W.length=0,e.forEach(s=>s(null,t))}readdirCB(t,e=!1){if(!this.canReaddir()){e?t(null,[]):queueMicrotask(()=>t(null,[]));return}let s=this.children();if(this.calledReaddir()){let r=s.slice(0,s.provisional);e?t(null,r):queueMicrotask(()=>t(null,r));return}if(this.#W.push(t),this.#O)return;this.#O=!0;let i=this.fullpath();this.#t.readdir(i,{withFileTypes:!0},(r,o)=>{if(r)this.#I(r.code),s.provisional=0;else{for(let h of o)this.#z(h,s);this.#j(s)}this.#H(s.slice(0,s.provisional))})}#q;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();if(this.#q)await this.#q;else{let s=()=>{};this.#q=new Promise(i=>s=i);try{for(let i of await this.#t.promises.readdir(e,{withFileTypes:!0}))this.#z(i,t);this.#j(t)}catch(i){this.#I(i.code),t.provisional=0}this.#q=void 0,s()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();try{for(let s of this.#t.readdirSync(e,{withFileTypes:!0}))this.#z(s,t);this.#j(t)}catch(s){this.#I(s.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#e&Ie)return!1;let t=_&this.#e;return t===L||t===U||t===X}shouldWalk(t,e){return(this.#e&U)===U&&!(this.#e&Ie)&&!t.has(this)&&(!e||e(this))}async realpath(){if(this.#k)return this.#k;if(!((Lt|Nt|j)&this.#e))try{let t=await this.#t.promises.realpath(this.fullpath());return this.#k=this.resolve(t)}catch{this.#P()}}realpathSync(){if(this.#k)return this.#k;if(!((Lt|Nt|j)&this.#e))try{let t=this.#t.realpathSync(this.fullpath());return this.#k=this.resolve(t)}catch{this.#P()}}[Ye](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let e=new Set([]),s=[],i=this;for(;i&&i.parent;)e.add(i),i.#x=s.join(this.sep),i.#A=s.join(\"/\"),i=i.parent,s.push(\"..\");for(i=t;i&&i.parent&&!e.has(i);)i.#x=void 0,i.#A=void 0,i=i.parent}},Pt=class n extends R{sep=\"\\\\\";splitSep=Oi;constructor(t,e=L,s,i,r,o,h){super(t,e,s,i,r,o,h)}newChild(t,e=L,s={}){return new n(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return re.parse(t).root}getRoot(t){if(t=Ri(t.toUpperCase()),t===this.root.name)return this.root;for(let[e,s]of Object.entries(this.roots))if(this.sameRoot(t,e))return this.roots[t]=s;return this.roots[t]=new it(t,this).root}sameRoot(t,e=this.root.name){return t=t.toUpperCase().replace(/\\//g,\"\\\\\").replace($e,\"$1\\\\\"),t===e}},jt=class n extends R{splitSep=\"/\";sep=\"/\";constructor(t,e=L,s,i,r,o,h){super(t,e,s,i,r,o,h)}getRootString(t){return t.startsWith(\"/\")?\"/\":\"\"}getRoot(t){return this.root}newChild(t,e=L,s={}){return new n(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}},It=class{root;rootPath;roots;cwd;#t;#s;#n;nocase;#r;constructor(t=process.cwd(),e,s,{nocase:i,childrenCacheSize:r=16*1024,fs:o=wt}={}){this.#r=Ue(o),(t instanceof URL||t.startsWith(\"file://\"))&&(t=gi(t));let h=e.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(h),this.#t=new Wt,this.#s=new Wt,this.#n=new ne(r);let a=h.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError(\"must provide nocase setting to PathScurryBase ctor\");this.nocase=i,this.root=this.newRoot(this.#r),this.roots[this.rootPath]=this.root;let l=this.root,u=a.length-1,c=e.sep,d=this.rootPath,f=!1;for(let m of a){let p=u--;l=l.child(m,{relative:new Array(p).fill(\"..\").join(c),relativePosix:new Array(p).fill(\"..\").join(\"/\"),fullpath:d+=(f?\"\":c)+m}),f=!0}this.cwd=l}depth(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let e=\"\";for(let r=t.length-1;r>=0;r--){let o=t[r];if(!(!o||o===\".\")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#t.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpath();return this.#t.set(e,i),i}resolvePosix(...t){let e=\"\";for(let r=t.length-1;r>=0;r--){let o=t[r];if(!(!o||o===\".\")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#s.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpathPosix();return this.#s.set(e,i),i}relative(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,e={withFileTypes:!0}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s}=e;if(t.canReaddir()){let i=await t.readdir();return s?i:i.map(r=>r.name)}else return[]}readdirSync(t=this.cwd,e={withFileTypes:!0}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0}=e;return t.canReaddir()?s?t.readdirSync():t.readdirSync().map(i=>i.name):[]}async lstat(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=await t.readlink();return e?s:s?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=t.readlinkSync();return e?s:s?.fullpath()}async realpath(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=await t.realpath();return e?s:s?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=t.realpathSync();return e?s:s?.fullpath()}async walk(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=[];(!r||r(t))&&h.push(s?t:t.fullpath());let a=new Set,l=(c,d)=>{a.add(c),c.readdirCB((f,m)=>{if(f)return d(f);let p=m.length;if(!p)return d();let w=()=>{--p===0&&d()};for(let g of m)(!r||r(g))&&h.push(s?g:g.fullpath()),i&&g.isSymbolicLink()?g.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(a,o)?l(S,w):w()):g.shouldWalk(a,o)?l(g,w):w()},!0)},u=t;return new Promise((c,d)=>{l(u,f=>{if(f)return d(f);c(h)})})}walkSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=[];(!r||r(t))&&h.push(s?t:t.fullpath());let a=new Set([t]);for(let l of a){let u=l.readdirSync();for(let c of u){(!r||r(c))&&h.push(s?c:c.fullpath());let d=c;if(c.isSymbolicLink()){if(!(i&&(d=c.realpathSync())))continue;d.isUnknown()&&d.lstatSync()}d.shouldWalk(a,o)&&a.add(d)}}return h}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,e={}){return typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd),this.stream(t,e)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e;(!r||r(t))&&(yield s?t:t.fullpath());let h=new Set([t]);for(let a of h){let l=a.readdirSync();for(let u of l){(!r||r(u))&&(yield s?u:u.fullpath());let c=u;if(u.isSymbolicLink()){if(!(i&&(c=u.realpathSync())))continue;c.isUnknown()&&c.lstatSync()}c.shouldWalk(h,o)&&h.add(c)}}}stream(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=new V({objectMode:!0});(!r||r(t))&&h.write(s?t:t.fullpath());let a=new Set,l=[t],u=0,c=()=>{let d=!1;for(;!d;){let f=l.shift();if(!f){u===0&&h.end();return}u++,a.add(f);let m=(w,g,S=!1)=>{if(w)return h.emit(\"error\",w);if(i&&!S){let E=[];for(let y of g)y.isSymbolicLink()&&E.push(y.realpath().then(b=>b?.isUnknown()?b.lstat():b));if(E.length){Promise.all(E).then(()=>m(null,g,!0));return}}for(let E of g)E&&(!r||r(E))&&(h.write(s?E:E.fullpath())||(d=!0));u--;for(let E of g){let y=E.realpathCached()||E;y.shouldWalk(a,o)&&l.push(y)}d&&!h.flowing?h.once(\"drain\",c):p||c()},p=!0;f.readdirCB(m,!0),p=!1}};return c(),h}streamSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=new V({objectMode:!0}),a=new Set;(!r||r(t))&&h.write(s?t:t.fullpath());let l=[t],u=0,c=()=>{let d=!1;for(;!d;){let f=l.shift();if(!f){u===0&&h.end();return}u++,a.add(f);let m=f.readdirSync();for(let p of m)(!r||r(p))&&(h.write(s?p:p.fullpath())||(d=!0));u--;for(let p of m){let w=p;if(p.isSymbolicLink()){if(!(i&&(w=p.realpathSync())))continue;w.isUnknown()&&w.lstatSync()}w.shouldWalk(a,o)&&l.push(w)}}d&&!h.flowing&&h.once(\"drain\",c)};return c(),h}chdir(t=this.cwd){let e=this.cwd;this.cwd=typeof t==\"string\"?this.cwd.resolve(t):t,this.cwd[Ye](e)}},it=class extends It{sep=\"\\\\\";constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,re,\"\\\\\",{...e,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(t){return re.parse(t).root.toUpperCase()}newRoot(t){return new Pt(this.rootPath,U,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith(\"/\")||t.startsWith(\"\\\\\")||/^[a-z]:(\\/|\\\\)/i.test(t)}},rt=class extends It{sep=\"/\";constructor(t=process.cwd(),e={}){let{nocase:s=!1}=e;super(t,mi,\"/\",{...e,nocase:s}),this.nocase=s}parseRootPath(t){return\"/\"}newRoot(t){return new jt(this.rootPath,U,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith(\"/\")}},St=class extends rt{constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,{...e,nocase:s})}},Cr=process.platform===\"win32\"?Pt:jt,Xe=process.platform===\"win32\"?it:process.platform===\"darwin\"?St:rt;var Di=n=>n.length>=1,Mi=n=>n.length>=1,Ni=Symbol.for(\"nodejs.util.inspect.custom\"),nt=class n{#t;#s;#n;length;#r;#o;#S;#w;#c;#h;#u=!0;constructor(t,e,s,i){if(!Di(t))throw new TypeError(\"empty pattern list\");if(!Mi(e))throw new TypeError(\"empty glob list\");if(e.length!==t.length)throw new TypeError(\"mismatched pattern list and glob list lengths\");if(this.length=t.length,s<0||s>=this.length)throw new TypeError(\"index out of range\");if(this.#t=t,this.#s=e,this.#n=s,this.#r=i,this.#n===0){if(this.isUNC()){let[r,o,h,a,...l]=this.#t,[u,c,d,f,...m]=this.#s;l[0]===\"\"&&(l.shift(),m.shift());let p=[r,o,h,a,\"\"].join(\"/\"),w=[u,c,d,f,\"\"].join(\"/\");this.#t=[p,...l],this.#s=[w,...m],this.length=this.#t.length}else if(this.isDrive()||this.isAbsolute()){let[r,...o]=this.#t,[h,...a]=this.#s;o[0]===\"\"&&(o.shift(),a.shift());let l=r+\"/\",u=h+\"/\";this.#t=[l,...o],this.#s=[u,...a],this.length=this.#t.length}}}[Ni](){return\"Pattern <\"+this.#s.slice(this.#n).join(\"/\")+\">\"}pattern(){return this.#t[this.#n]}isString(){return typeof this.#t[this.#n]==\"string\"}isGlobstar(){return this.#t[this.#n]===A}isRegExp(){return this.#t[this.#n]instanceof RegExp}globString(){return this.#S=this.#S||(this.#n===0?this.isAbsolute()?this.#s[0]+this.#s.slice(1).join(\"/\"):this.#s.join(\"/\"):this.#s.slice(this.#n).join(\"/\"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new n(this.#t,this.#s,this.#n+1,this.#r),this.#o.#h=this.#h,this.#o.#c=this.#c,this.#o.#w=this.#w,this.#o):this.#o=null}isUNC(){let t=this.#t;return this.#c!==void 0?this.#c:this.#c=this.#r===\"win32\"&&this.#n===0&&t[0]===\"\"&&t[1]===\"\"&&typeof t[2]==\"string\"&&!!t[2]&&typeof t[3]==\"string\"&&!!t[3]}isDrive(){let t=this.#t;return this.#w!==void 0?this.#w:this.#w=this.#r===\"win32\"&&this.#n===0&&this.length>1&&typeof t[0]==\"string\"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#t;return this.#h!==void 0?this.#h:this.#h=t[0]===\"\"&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#t[0];return typeof t==\"string\"&&this.isAbsolute()&&this.#n===0?t:\"\"}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#u)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#u?!1:(this.#u=!1,!0)}};var _i=typeof process==\"object\"&&process&&typeof process.platform==\"string\"?process.platform:\"linux\",ot=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:e,nocase:s,noext:i,noglobstar:r,platform:o=_i}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=o,this.mmopts={dot:!0,nobrace:e,nocase:s,noext:i,noglobstar:r,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let h of t)this.add(h)}add(t){let e=new D(t,this.mmopts);for(let s=0;s<e.set.length;s++){let i=e.set[s],r=e.globParts[s];if(!i||!r)throw new Error(\"invalid pattern object\");for(;i[0]===\".\"&&r[0]===\".\";)i.shift(),r.shift();let o=new nt(i,r,0,this.platform),h=new D(o.globString(),this.mmopts),a=r[r.length-1]===\"**\",l=o.isAbsolute();l?this.absolute.push(h):this.relative.push(h),a&&(l?this.absoluteChildren.push(h):this.relativeChildren.push(h))}}ignored(t){let e=t.fullpath(),s=`${e}/`,i=t.relative()||\".\",r=`${i}/`;for(let o of this.relative)if(o.match(i)||o.match(r))return!0;for(let o of this.absolute)if(o.match(e)||o.match(s))return!0;return!1}childrenIgnored(t){let e=t.fullpath()+\"/\",s=(t.relative()||\".\")+\"/\";for(let i of this.relativeChildren)if(i.match(s))return!0;for(let i of this.absoluteChildren)if(i.match(e))return!0;return!1}};var oe=class n{store;constructor(t=new Map){this.store=t}copy(){return new n(new Map(this.store))}hasWalked(t,e){return this.store.get(t.fullpath())?.has(e.globString())}storeWalked(t,e){let s=t.fullpath(),i=this.store.get(s);i?i.add(e.globString()):this.store.set(s,new Set([e.globString()]))}},he=class{store=new Map;add(t,e,s){let i=(e?2:0)|(s?1:0),r=this.store.get(t);this.store.set(t,r===void 0?i:i&r)}entries(){return[...this.store.entries()].map(([t,e])=>[t,!!(e&2),!!(e&1)])}},ae=class{store=new Map;add(t,e){if(!t.canReaddir())return;let s=this.store.get(t);s?s.find(i=>i.globString()===e.globString())||s.push(e):this.store.set(t,[e])}get(t){let e=this.store.get(t);if(!e)throw new Error(\"attempting to walk unknown path\");return e}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}},Et=class n{hasWalkedCache;matches=new he;subwalks=new ae;patterns;follow;dot;opts;constructor(t,e){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=e?e.copy():new oe}processPatterns(t,e){this.patterns=e;let s=e.map(i=>[t,i]);for(let[i,r]of s){this.hasWalkedCache.storeWalked(i,r);let o=r.root(),h=r.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o===\"/\"&&this.opts.root!==void 0?this.opts.root:o);let c=r.rest();if(c)r=c;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let a,l,u=!1;for(;typeof(a=r.pattern())==\"string\"&&(l=r.rest());)i=i.resolve(a),r=l,u=!0;if(a=r.pattern(),l=r.rest(),u){if(this.hasWalkedCache.hasWalked(i,r))continue;this.hasWalkedCache.storeWalked(i,r)}if(typeof a==\"string\"){let c=a===\"..\"||a===\"\"||a===\".\";this.matches.add(i.resolve(a),h,c);continue}else if(a===A){(!i.isSymbolicLink()||this.follow||r.checkFollowGlobstar())&&this.subwalks.add(i,r);let c=l?.pattern(),d=l?.rest();if(!l||(c===\"\"||c===\".\")&&!d)this.matches.add(i,h,c===\"\"||c===\".\");else if(c===\"..\"){let f=i.parent||i;d?this.hasWalkedCache.hasWalked(f,d)||this.subwalks.add(f,d):this.matches.add(f,h,!0)}}else a instanceof RegExp&&this.subwalks.add(i,r)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new n(this.opts,this.hasWalkedCache)}filterEntries(t,e){let s=this.subwalks.get(t),i=this.child();for(let r of e)for(let o of s){let h=o.isAbsolute(),a=o.pattern(),l=o.rest();a===A?i.testGlobstar(r,o,l,h):a instanceof RegExp?i.testRegExp(r,a,l,h):i.testString(r,a,l,h)}return i}testGlobstar(t,e,s,i){if((this.dot||!t.name.startsWith(\".\"))&&(e.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,e):t.isSymbolicLink()&&(s&&e.checkFollowGlobstar()?this.subwalks.add(t,s):e.markFollowGlobstar()&&this.subwalks.add(t,e)))),s){let r=s.pattern();if(typeof r==\"string\"&&r!==\"..\"&&r!==\"\"&&r!==\".\")this.testString(t,r,s.rest(),i);else if(r===\"..\"){let o=t.parent||t;this.subwalks.add(o,s)}else r instanceof RegExp&&this.testRegExp(t,r,s.rest(),i)}}testRegExp(t,e,s,i){e.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,e,s,i){t.isNamed(e)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}};var Li=(n,t)=>typeof n==\"string\"?new ot([n],t):Array.isArray(n)?new ot(n,t):n,zt=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#t=[];#s;#n;signal;maxDepth;includeChildMatches;constructor(t,e,s){if(this.patterns=t,this.path=e,this.opts=s,this.#n=!s.posix&&s.platform===\"win32\"?\"\\\\\":\"/\",this.includeChildMatches=s.includeChildMatches!==!1,(s.ignore||!this.includeChildMatches)&&(this.#s=Li(s.ignore??[],s),!this.includeChildMatches&&typeof this.#s.add!=\"function\")){let i=\"cannot ignore child matches, ignore lacks add() method.\";throw new Error(i)}this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener(\"abort\",()=>{this.#t.length=0}))}#r(t){return this.seen.has(t)||!!this.#s?.ignored?.(t)}#o(t){return!!this.#s?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#t.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#t.push(t):t())}async matchCheck(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||await t.realpath(),!s)return;t=s}let r=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=await r.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(r,e)}matchCheckTest(t,e){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!e||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#r(t)?t:void 0}matchCheckSync(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||t.realpathSync(),!s)return;t=s}let r=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=r.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(r,e)}matchFinish(t,e){if(this.#r(t))return;if(!this.includeChildMatches&&this.#s?.add){let r=`${t.relativePosix()}/**`;this.#s.add(r)}let s=this.opts.absolute===void 0?e:this.opts.absolute;this.seen.add(t);let i=this.opts.mark&&t.isDirectory()?this.#n:\"\";if(this.opts.withFileTypes)this.matchEmit(t);else if(s){let r=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(r+i)}else{let r=this.opts.posix?t.relativePosix():t.relative(),o=this.opts.dotRelative&&!r.startsWith(\"..\"+this.#n)?\".\"+this.#n:\"\";this.matchEmit(r?o+r+i:\".\"+i)}}async match(t,e,s){let i=await this.matchCheck(t,s);i&&this.matchFinish(i,e)}matchSync(t,e,s){let i=this.matchCheckSync(t,s);i&&this.matchFinish(i,e)}walkCB(t,e,s){this.signal?.aborted&&s(),this.walkCB2(t,e,new Et(this.opts),s)}walkCB2(t,e,s,i){if(this.#o(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(t,e,s,i));return}s.processPatterns(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||(r++,this.match(h,a,l).then(()=>o()));for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;r++;let a=h.readdirCached();h.calledReaddir()?this.walkCB3(h,a,s,o):h.readdirCB((l,u)=>this.walkCB3(h,u,s,o),!0)}o()}walkCB3(t,e,s,i){s=s.filterEntries(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||(r++,this.match(h,a,l).then(()=>o()));for(let[h,a]of s.subwalks.entries())r++,this.walkCB2(h,a,s.child(),o);o()}walkCBSync(t,e,s){this.signal?.aborted&&s(),this.walkCB2Sync(t,e,new Et(this.opts),s)}walkCB2Sync(t,e,s,i){if(this.#o(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(t,e,s,i));return}s.processPatterns(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||this.matchSync(h,a,l);for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;r++;let a=h.readdirSync();this.walkCB3Sync(h,a,s,o)}o()}walkCB3Sync(t,e,s,i){s=s.filterEntries(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||this.matchSync(h,a,l);for(let[h,a]of s.subwalks.entries())r++,this.walkCB2Sync(h,a,s.child(),o);o()}},xt=class extends zt{matches=new Set;constructor(t,e,s){super(t,e,s)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,e)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?e(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},vt=class extends zt{results;constructor(t,e,s){super(t,e,s),this.results=new V({signal:this.signal,objectMode:!0}),this.results.on(\"drain\",()=>this.resume()),this.results.on(\"resume\",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var Pi=typeof process==\"object\"&&process&&typeof process.platform==\"string\"?process.platform:\"linux\",I=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,e){if(!e)throw new TypeError(\"glob options required\");if(this.withFileTypes=!!e.withFileTypes,this.signal=e.signal,this.follow=!!e.follow,this.dot=!!e.dot,this.dotRelative=!!e.dotRelative,this.nodir=!!e.nodir,this.mark=!!e.mark,e.cwd?(e.cwd instanceof URL||e.cwd.startsWith(\"file://\"))&&(e.cwd=Wi(e.cwd)):this.cwd=\"\",this.cwd=e.cwd||\"\",this.root=e.root,this.magicalBraces=!!e.magicalBraces,this.nobrace=!!e.nobrace,this.noext=!!e.noext,this.realpath=!!e.realpath,this.absolute=e.absolute,this.includeChildMatches=e.includeChildMatches!==!1,this.noglobstar=!!e.noglobstar,this.matchBase=!!e.matchBase,this.maxDepth=typeof e.maxDepth==\"number\"?e.maxDepth:1/0,this.stat=!!e.stat,this.ignore=e.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error(\"cannot set absolute and withFileTypes:true\");if(typeof t==\"string\"&&(t=[t]),this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(a=>a.replace(/\\\\/g,\"/\"))),this.matchBase){if(e.noglobstar)throw new TypeError(\"base matching requires globstar\");t=t.map(a=>a.includes(\"/\")?a:`./**/${a}`)}if(this.pattern=t,this.platform=e.platform||Pi,this.opts={...e,platform:this.platform},e.scurry){if(this.scurry=e.scurry,e.nocase!==void 0&&e.nocase!==e.scurry.nocase)throw new Error(\"nocase option contradicts provided scurry option\")}else{let a=e.platform===\"win32\"?it:e.platform===\"darwin\"?St:e.platform?rt:Xe;this.scurry=new a(this.cwd,{nocase:e.nocase,fs:e.fs})}this.nocase=this.scurry.nocase;let s=this.platform===\"darwin\"||this.platform===\"win32\",i={braceExpandMax:1e4,...e,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},r=this.pattern.map(a=>new D(a,i)),[o,h]=r.reduce((a,l)=>(a[0].push(...l.set),a[1].push(...l.globParts),a),[[],[]]);this.patterns=o.map((a,l)=>{let u=h[l];if(!u)throw new Error(\"invalid pattern object\");return new nt(a,u,0,this.platform)})}async walk(){return[...await new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new vt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new vt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var le=(n,t={})=>{Array.isArray(n)||(n=[n]);for(let e of n)if(new D(e,t).hasMagic())return!0;return!1};function Bt(n,t={}){return new I(n,t).streamSync()}function Qe(n,t={}){return new I(n,t).stream()}function ts(n,t={}){return new I(n,t).walkSync()}async function Je(n,t={}){return new I(n,t).walk()}function Ut(n,t={}){return new I(n,t).iterateSync()}function es(n,t={}){return new I(n,t).iterate()}var ji=Bt,Ii=Object.assign(Qe,{sync:Bt}),zi=Ut,Bi=Object.assign(es,{sync:Ut}),Ui=Object.assign(ts,{stream:Bt,iterate:Ut}),Ze=Object.assign(Je,{glob:Je,globSync:ts,sync:Ui,globStream:Qe,stream:Ii,globStreamSync:Bt,streamSync:ji,globIterate:es,iterate:Bi,globIterateSync:Ut,iterateSync:zi,Glob:I,hasMagic:le,escape:tt,unescape:W});Ze.glob=Ze;export{I as Glob,ot as Ignore,tt as escape,Ze as glob,es as globIterate,Ut as globIterateSync,Qe as globStream,Bt as globStreamSync,ts as globSync,le as hasMagic,Bi as iterate,zi as iterateSync,Ii as stream,ji as streamSync,Ui as sync,W as unescape};\n//# sourceMappingURL=index.min.js.map\n","export type DiffLine = { op: \" \" | \"+\" | \"-\"; text: string }\n\n// ponytail: O(n·m) LCS on the changed middle; fine for docs, swap for Myers if huge files show up.\nexport function lineDiff(before: string, after: string): DiffLine[] {\n const a = before.split(\"\\n\")\n const b = after.split(\"\\n\")\n let start = 0\n while (start < a.length && start < b.length && a[start] === b[start]) start++\n let endA = a.length\n let endB = b.length\n while (endA > start && endB > start && a[endA - 1] === b[endB - 1]) { endA--; endB-- }\n\n const x = a.slice(start, endA)\n const y = b.slice(start, endB)\n // lcs[i][j] = LCS length of x[i..] and y[j..]\n const lcs = Array.from({ length: x.length + 1 }, () => new Array<number>(y.length + 1).fill(0))\n for (let i = x.length - 1; i >= 0; i--) {\n for (let j = y.length - 1; j >= 0; j--) {\n lcs[i][j] = x[i] === y[j] ? lcs[i + 1][j + 1] + 1 : Math.max(lcs[i + 1][j], lcs[i][j + 1])\n }\n }\n\n const middle: DiffLine[] = []\n let i = 0\n let j = 0\n while (i < x.length || j < y.length) {\n if (i < x.length && j < y.length && x[i] === y[j]) { middle.push({ op: \" \", text: x[i] }); i++; j++ }\n else if (i < x.length && (j === y.length || lcs[i + 1][j] >= lcs[i][j + 1])) { middle.push({ op: \"-\", text: x[i] }); i++ }\n else { middle.push({ op: \"+\", text: y[j] }); j++ }\n }\n\n return [\n ...a.slice(0, start).map((text) => ({ op: \" \" as const, text })),\n ...middle,\n ...a.slice(endA).map((text) => ({ op: \" \" as const, text })),\n ]\n}\n\nexport type TextEdit = { old_string: string; new_string: string }\n\n// Same contract as Claude Code's Edit tool: each old_string must match exactly once, applied in order.\n// An empty old_string is only allowed on an empty/new file (write the first content).\nexport function applyEdits(text: string, edits: TextEdit[]): { content: string } | { error: string } {\n let content = text\n for (const [i, e] of edits.entries()) {\n if (typeof e?.old_string !== \"string\" || typeof e?.new_string !== \"string\") {\n return { error: `Edit ${i + 1}: old_string and new_string must be strings` }\n }\n if (e.old_string === \"\") {\n if (content !== \"\") return { error: `Edit ${i + 1}: empty old_string is only allowed for a new, empty doc` }\n content = e.new_string\n continue\n }\n const at = content.indexOf(e.old_string)\n if (at === -1) return { error: `Edit ${i + 1}: old_string not found in the doc` }\n if (content.indexOf(e.old_string, at + 1) !== -1) {\n return { error: `Edit ${i + 1}: old_string matches more than once; include more surrounding text` }\n }\n content = content.slice(0, at) + e.new_string + content.slice(at + e.old_string.length)\n }\n return { content }\n}\n","// Who is in charge of a task / epic (R055): `**Owner:** human` or `**Owner:** ai:<agent>`.\n// Pure (no React, no fs). Self-check: `node src/lib/owner.check.mts`.\n\nexport type OwnerKind = \"human\" | \"ai\" | \"none\"\n\nconst KNOWN_AGENTS = [\"claude\", \"cursor\", \"codex\", \"copilot\", \"gemini\", \"windsurf\", \"cline\", \"opencode\"]\n\n/** \"human\" | \"ai:<agent>\" (lowercase), or null for empty / \"—\" / anything else. A bare \"ai\" becomes \"ai:agent\". */\nexport function parseOwner(raw: string | null | undefined): string | null {\n const v = (raw ?? \"\").trim().toLowerCase()\n if (v === \"human\") return \"human\"\n const m = v.match(/^ai(?::\\s*([a-z0-9._-]+))?$/)\n return m ? `ai:${m[1] ?? \"agent\"}` : null\n}\n\nexport function ownerKind(owner: string | null): OwnerKind {\n return owner === \"human\" ? \"human\" : owner?.startsWith(\"ai:\") ? \"ai\" : \"none\"\n}\n\n/** \"Human\", \"claude\", \"No owner\". */\nexport function ownerLabel(owner: string | null): string {\n return owner === \"human\" ? \"Human\" : owner?.startsWith(\"ai:\") ? owner.slice(3) : \"No owner\"\n}\n\n/** Agent name from an MCP client's User-Agent (\"claude-code/2.1\" → \"claude\"); \"agent\" when unknown. */\nexport function agentFromUserAgent(ua: string | null | undefined): string {\n const s = (ua ?? \"\").toLowerCase()\n return KNOWN_AGENTS.find((a) => s.includes(a)) ?? \"agent\"\n}\n","/**\n * src/lib/sessions.ts\n * Pure grouping of the activity log into agent/human sessions (no fs). Used by /api/sessions and /api/mcp.\n * Stamped events group by `sessionId`; legacy events (no sessionId) split on a per-actor idle gap or `session_start`.\n */\nimport type { ActivityEvent, TaskStatus } from './core'\n\nexport const SESSION_GAP_MS = 30 * 60 * 1000\n\nexport interface Session {\n id: string\n actor: ActivityEvent['actor']\n start: string\n end: string\n eventCount: number\n eventIds: string[]\n tasks: { id: string; lastStatus: TaskStatus }[]\n docs: string[]\n decisions: string[]\n memoryUpdated: boolean\n headline: string\n}\n\n// Doc path a change event carries; null for events that don't change a doc (doc_read included).\nfunction changedDoc(e: ActivityEvent): string | null {\n switch (e.type) {\n case 'doc_created': return e.detail ?? e.title.replace(/^Created: /, '')\n case 'doc_deleted': return e.title.replace(/^Deleted /, '')\n case 'doc_renamed': return e.title.split(' → ')[1] ?? null\n default: return null\n }\n}\n\nconst plural = (n: number, word: string) => `${n} ${word}${n === 1 ? '' : 's'}`\n\nfunction summarize(id: string, events: ActivityEvent[]): Session {\n const tasks = new Map<string, TaskStatus>()\n const docs = new Set<string>()\n const decisions: string[] = []\n let memoryUpdated = false\n let roadmapEdits = 0\n for (const e of events) {\n if (e.type === 'task_updated' && e.taskId && e.taskStatus) tasks.set(e.taskId, e.taskStatus)\n const doc = changedDoc(e)\n if (doc) docs.add(doc)\n if (e.type === 'decision_logged') decisions.push(e.title)\n if (e.type === 'memory_updated') memoryUpdated = true\n if (e.type === 'roadmap_updated') roadmapEdits++\n }\n const taskList = [...tasks].map(([tid, lastStatus]) => ({ id: tid, lastStatus }))\n const done = taskList.filter(t => t.lastStatus === 'done').length\n const parts = [\n taskList.length ? `${plural(taskList.length, 'task')} moved${done ? ` (${done} done)` : ''}` : '',\n docs.size ? `${plural(docs.size, 'doc')} changed` : '',\n decisions.length ? plural(decisions.length, 'ADR') : '',\n roadmapEdits ? plural(roadmapEdits, 'roadmap edit') : '',\n memoryUpdated ? 'memory updated' : '',\n ].filter(Boolean)\n return {\n id,\n actor: events[0].actor,\n start: events[0].timestamp,\n end: events[events.length - 1].timestamp,\n eventCount: events.length,\n eventIds: events.map(e => e.id),\n tasks: taskList,\n docs: [...docs],\n decisions,\n memoryUpdated,\n headline: parts.join(' · ') || plural(events.length, 'event'),\n }\n}\n\n/** Events may come in any order (the log is newest-first). Returns sessions newest first. */\nexport function groupSessions(events: ActivityEvent[], opts: { gapMs?: number } = {}): Session[] {\n const gapMs = opts.gapMs ?? SESSION_GAP_MS\n const chrono = [...events].sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n const groups = new Map<string, ActivityEvent[]>()\n const legacy = new Map<string, { id: string; lastAt: number }>() // per actor\n for (const e of chrono) {\n let id = e.sessionId\n if (!id) {\n const at = Date.parse(e.timestamp)\n let cur = legacy.get(e.actor)\n if (!cur || e.type === 'session_start' || at - cur.lastAt > gapMs) {\n cur = { id: `legacy_${e.id}`, lastAt: at }\n legacy.set(e.actor, cur)\n }\n cur.lastAt = at\n id = cur.id\n }\n const g = groups.get(id)\n if (g) g.push(e)\n else groups.set(id, [e])\n }\n return [...groups]\n .map(([id, evs]) => summarize(id, evs))\n .sort((a, b) => b.start.localeCompare(a.start))\n}\n\nexport function sessionDuration(s: Pick<Session, 'start' | 'end'>): string {\n const min = Math.round((Date.parse(s.end) - Date.parse(s.start)) / 60_000)\n if (min < 1) return '<1m'\n return min < 60 ? `${min}m` : `${Math.floor(min / 60)}h ${min % 60}m`\n}\n\n/** A session still receiving events (last one within `windowMs`). */\nexport function isLive(s: Pick<Session, 'end'>, now = Date.now(), windowMs = 5 * 60 * 1000): boolean {\n return now - Date.parse(s.end) < windowMs\n}\n\n/** Totals for the \"catch up\" strip: sessions that ended at or after `sinceMs`. */\nexport function catchUp(sessions: Session[], sinceMs: number) {\n const recent = sessions.filter(s => Date.parse(s.end) >= sinceMs)\n return {\n sessions: recent.length,\n tasksDone: new Set(recent.flatMap(s => s.tasks.filter(t => t.lastStatus === 'done').map(t => t.id))).size,\n docs: new Set(recent.flatMap(s => s.docs)).size,\n decisions: recent.reduce((n, s) => n + s.decisions.length, 0),\n }\n}\n\nexport function sessionsForTask(sessions: Session[], taskId: string): Session[] {\n return sessions.filter(s => s.tasks.some(t => t.id === taskId))\n}\n","// Automatic task dates (R055): due filled from the epic or the size, Started / Done stamped on moves.\n// Pure (no React, no fs). Dates are local calendar strings \"YYYY-MM-DD\", never instants.\n// Self-check: `node src/lib/auto-dates.check.mts`.\n\nexport type SizeDays = Record<string, number>\n\n/** Calendar days of work per size letter; override with `tasks.sizeDays` in .vibedoc/settings.json. */\nexport const DEFAULT_SIZE_DAYS: SizeDays = { XS: 1, S: 1, M: 3, L: 7, XL: 14 }\n\n/** \"2026-10-01\" + 3 → \"2026-10-04\" (calendar math, no time zone involved). */\nexport function addDays(date: string, days: number): string {\n const [y, m, d] = date.split(\"-\").map(Number)\n return new Date(Date.UTC(y, m - 1, d + days)).toISOString().slice(0, 10)\n}\n\n/** \"M (2–3 hrs)\" → \"M\"; \"—\" / \"\" → null. */\nexport function sizeLetter(size: string): string | null {\n return size.trim().match(/^(XS|XL|S|M|L)\\b/i)?.[1].toUpperCase() ?? null\n}\n\nexport interface TaskDates {\n due: string | null\n started: string | null\n done: string | null\n}\n\n/**\n * Dates after a move to `status` on `today`. Only fills what is empty, so a hand-set due always wins:\n * - in-progress: Started = today (first start only); no due yet → Started + the size's days\n * - done: Done = today\n * - back to anything else from done: Done is cleared (Started stays)\n */\nexport function datesOnMove(\n status: string, current: TaskDates, size: string, today: string, sizeDays: SizeDays = DEFAULT_SIZE_DAYS,\n): TaskDates {\n const next = { ...current }\n if (status === \"in-progress\") {\n next.started ??= today\n const days = sizeDays[sizeLetter(size) ?? \"\"]\n if (!next.due && typeof days === \"number\" && days >= 0) next.due = addDays(next.started, days)\n }\n if (status === \"done\") next.done = today\n else if (next.done) next.done = null\n return next\n}\n","// Task statuses (R055): the seven built-ins plus a project's own, each mapped onto a built-in category.\n// Logic (queue, health, dependencies, board buckets) reads the category; the UI reads label and color.\n// Files store the status id (`**Status:** 👀 Qa`), so renaming a label never touches task files.\n// Pure (no React, no fs). Self-check: `node src/lib/statuses.check.mts`.\n\nimport type { TaskStatus } from \"./core\"\n\nexport const BUILTIN_STATUSES: TaskStatus[] = [\"todo\", \"in-progress\", \"review\", \"blocked\", \"paused\", \"done\", \"cancelled\"]\n\nexport const STATUS_ICONS: Record<TaskStatus, string> = {\n todo: \"📋\",\n \"in-progress\": \"🔨\",\n review: \"👀\",\n blocked: \"🚫\",\n paused: \"⏸️\",\n done: \"✅\",\n cancelled: \"❌\",\n}\n\nexport const STATUS_ALIASES: Record<string, TaskStatus> = {\n ready: \"todo\", planned: \"todo\", \"not started\": \"todo\",\n wip: \"in-progress\", doing: \"in-progress\", active: \"in-progress\", start: \"in-progress\", started: \"in-progress\",\n complete: \"done\", completed: \"done\", finished: \"done\", finish: \"done\",\n block: \"blocked\",\n \"on hold\": \"paused\", \"on-hold\": \"paused\", pause: \"paused\", hold: \"paused\",\n \"in review\": \"review\", reviewing: \"review\", \"needs review\": \"review\",\n cancel: \"cancelled\", skip: \"cancelled\",\n}\n\n/** Named colors only: Tailwind generates classes it sees literally, so the UI maps these names to fixed classes. */\nexport const STATUS_COLORS = [\"gray\", \"amber\", \"accent\", \"red\", \"slate\", \"teal\", \"blue\", \"pink\", \"green\", \"orange\"] as const\nexport type StatusColor = (typeof STATUS_COLORS)[number]\n\nexport interface StatusDef {\n /** Built-in id, or a custom slug ([a-z0-9-]) */\n id: string\n label: string\n color: StatusColor\n category: TaskStatus\n}\n\nexport const DEFAULT_STATUSES: StatusDef[] = [\n { id: \"todo\", label: \"Todo\", color: \"gray\", category: \"todo\" },\n { id: \"in-progress\", label: \"In progress\", color: \"amber\", category: \"in-progress\" },\n { id: \"review\", label: \"Review\", color: \"accent\", category: \"review\" },\n { id: \"blocked\", label: \"Blocked\", color: \"red\", category: \"blocked\" },\n { id: \"paused\", label: \"Paused\", color: \"slate\", category: \"paused\" },\n { id: \"done\", label: \"Done\", color: \"teal\", category: \"done\" },\n { id: \"cancelled\", label: \"Cancelled\", color: \"gray\", category: \"cancelled\" },\n]\n\nconst isBuiltin = (s: string): s is TaskStatus => (BUILTIN_STATUSES as string[]).includes(s)\n\n/** Why an id can't be a custom status, or null when it can. */\nexport function invalidStatusId(id: string): string | null {\n if (!/^[a-z0-9][a-z0-9-]{0,39}$/.test(id)) return \"use lowercase letters, digits and dashes\"\n if (isBuiltin(id) || id in STATUS_ALIASES || id.replace(/-/g, \" \") in STATUS_ALIASES) return `\"${id}\" already means a built-in status`\n return null\n}\n\n/**\n * The project's statuses: every built-in once (its label / color / position may be customised, its category\n * can't), plus valid custom ones. Anything malformed in settings is dropped, never thrown.\n */\nexport function statusDefs(fromSettings: unknown): StatusDef[] {\n if (!Array.isArray(fromSettings)) return DEFAULT_STATUSES\n const out: StatusDef[] = []\n for (const raw of fromSettings) {\n const r = raw as Partial<StatusDef> | null\n const id = typeof r?.id === \"string\" ? r.id.trim().toLowerCase() : \"\"\n if (!id || out.some((d) => d.id === id)) continue\n const builtin = isBuiltin(id)\n const category = builtin ? id : r?.category\n if (!category || !isBuiltin(category) || (!builtin && invalidStatusId(id))) continue\n const base = DEFAULT_STATUSES.find((d) => d.id === (builtin ? id : category))\n out.push({\n id,\n label: typeof r?.label === \"string\" && r.label.trim() ? r.label.trim() : base?.label ?? id,\n color: STATUS_COLORS.includes(r?.color as StatusColor) ? (r?.color as StatusColor) : base?.color ?? \"gray\",\n category,\n })\n }\n // built-ins that settings left out keep their default place at the end\n for (const d of DEFAULT_STATUSES) if (!out.some((o) => o.id === d.id)) out.push(d)\n return out\n}\n\nexport interface ResolvedStatus {\n status: TaskStatus\n /** Set only for a custom status */\n customStatus?: string\n /** The raw value matched nothing (read as todo) */\n unknown?: boolean\n}\n\n/** A `**Status:**` value (\"👀 Qa\", \"In review\", \"done\") → category + custom id. */\nexport function resolveStatus(raw: string, defs: StatusDef[] = DEFAULT_STATUSES): ResolvedStatus {\n const s = raw.toLowerCase().replace(/[📋🔨👀✅🚫❌⏸️]/g, \"\").trim()\n const key: string = STATUS_ALIASES[s] ?? s\n if (isBuiltin(key)) return { status: key }\n const custom = defs.find((d) => d.id === key || d.id === key.replace(/\\s+/g, \"-\"))\n if (custom && !isBuiltin(custom.id)) return { status: custom.category, customStatus: custom.id }\n return { status: \"todo\", unknown: true }\n}\n\n/** What goes after `**Status:** ` for a status key: built-ins exactly as always (\"🔨 In-progress\"), custom ids alike (\"👀 Qa\"). */\nexport function statusLine(key: string, defs: StatusDef[] = DEFAULT_STATUSES): string {\n const { status, customStatus } = resolveStatus(key, defs)\n const id = customStatus ?? status\n return `${STATUS_ICONS[status]} ${id.charAt(0).toUpperCase()}${id.slice(1)}`\n}\n\n/** The key a task shows under: its custom status, else its category. */\nexport const displayStatus = (t: { status: TaskStatus; customStatus?: string }) => t.customStatus ?? t.status\n","// Review history on a task (R043): a `## Review` section at the end of the task file, one `### ` entry per outcome.\n// Pure (no fs): core.ts writes the file; `node src/lib/review.check.mts` runs the self-check.\n//\n// ## Review\n// ### 2026-10-01T11:00:00Z — changes requested\n// The plan card doesn't scroll when there are 10+ tasks.\n// ### 2026-10-02T09:30:00Z — approved\n\nexport const REVIEW_HEADING = \"## Review\"\n\nexport type ReviewOutcome = \"approved\" | \"changes requested\"\n\nexport interface ReviewEntry {\n at: string\n outcome: ReviewOutcome\n note: string\n}\n\nconst ENTRY = /^###\\s+(\\S+)\\s+—\\s+(approved|changes requested)\\s*$/\n\n/** Lines inside ``` fences, so a quoted example is never taken for the real section. */\nfunction fenced(lines: string[]): boolean[] {\n let inFence = false\n return lines.map((l) => {\n if (/^\\s*```/.test(l)) { inFence = !inFence; return true }\n return inFence\n })\n}\n\nfunction sectionRange(lines: string[]): [number, number] | null {\n const code = fenced(lines)\n const start = lines.findIndex((l, i) => !code[i] && l.trim() === REVIEW_HEADING)\n if (start < 0) return null\n const next = lines.findIndex((l, i) => i > start && !code[i] && /^##\\s/.test(l))\n return [start, next < 0 ? lines.length : next]\n}\n\n/** Every review entry, oldest first. */\nexport function reviewHistory(raw: string): ReviewEntry[] {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return []\n const entries: ReviewEntry[] = []\n for (const line of lines.slice(range[0] + 1, range[1])) {\n const m = line.match(ENTRY)\n if (m) entries.push({ at: m[1], outcome: m[2] as ReviewOutcome, note: \"\" })\n else if (entries.length) {\n const last = entries[entries.length - 1]\n last.note = last.note ? `${last.note}\\n${line}` : line\n }\n }\n return entries.map((e) => ({ ...e, note: e.note.trim() }))\n}\n\nexport function latestReview(raw: string): ReviewEntry | null {\n const all = reviewHistory(raw)\n return all[all.length - 1] ?? null\n}\n\n/**\n * Add an entry to the `## Review` section (created at the end of the file if missing; an existing one keeps its\n * place and grows). A note is required for \"changes requested\".\n */\nexport function appendReviewEntry(raw: string, outcome: ReviewOutcome, note: string, at: string): string {\n const text = note.trim()\n if (outcome === \"changes requested\" && !text) throw new Error(\"A note is required to send a task back\")\n // \"## \" at the start of a note line would end the section early\n const body = text.split(\"\\n\").map((l) => (/^#{1,3}\\s/.test(l) ? `\\\\${l}` : l)).join(\"\\n\")\n const entry = [`### ${at} — ${outcome}`, ...(body ? [body] : [])]\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return `${raw.replace(/\\s+$/, \"\")}\\n\\n${REVIEW_HEADING}\\n${entry.join(\"\\n\")}\\n`\n // Insert after the section's last non-empty line, before the blank lines that separate it from what follows\n let end = range[1]\n while (end > range[0] + 1 && !lines[end - 1].trim()) end--\n const out = [...lines.slice(0, end), ...entry, ...lines.slice(end)]\n const joined = out.join(\"\\n\")\n return range[1] === lines.length ? `${joined.replace(/\\s+$/, \"\")}\\n` : joined\n}\n","// Manual test report on a task (R043): a `## Manual tests` checklist section at the end of the task file.\n// Pure (no fs): core.ts reads/writes the file; `node src/lib/manual-tests.check.mts` runs the self-check.\n//\n// ## Manual tests\n// _2026-10-01 — ai_\n// ### Steps\n// - [ ] Open /roadmap, click \"Break down\" on R043 → a chat opens titled with the epic\n// ### Regression risk\n// - [ ] Dragging a card between columns still works\n\nexport const MANUAL_TESTS_HEADING = \"## Manual tests\"\n\nexport type ManualTestGroup = \"steps\" | \"regression\"\n\nexport interface ManualTestItem {\n text: string\n checked: boolean\n group: ManualTestGroup\n /** Position among all checklist items in the section (T061 toggles by this) */\n index: number\n}\n\nexport interface ManualTests {\n items: ManualTestItem[]\n total: number\n done: number\n /** From the `_YYYY-MM-DD — actor_` line; null if missing */\n date: string | null\n}\n\nconst ITEM = /^\\s*[-*]\\s+\\[( |x|X)\\]\\s+(.*)$/\nconst BULLET = /^\\s*[-*]\\s+(.*)$/\n\n/** Lines inside ``` fences, so an example section quoted in a task's spec is never taken for the real one. */\nfunction fenced(lines: string[]): boolean[] {\n let inFence = false\n return lines.map((l) => {\n if (/^\\s*```/.test(l)) { inFence = !inFence; return true }\n return inFence\n })\n}\n\n/** [start, end) line range of the section: its heading up to the next `## ` heading or the end of the file. */\nfunction sectionRange(lines: string[]): [number, number] | null {\n const code = fenced(lines)\n const start = lines.findIndex((l, i) => !code[i] && l.trim() === MANUAL_TESTS_HEADING)\n if (start < 0) return null\n const next = lines.findIndex((l, i) => i > start && !code[i] && /^##\\s/.test(l))\n return [start, next < 0 ? lines.length : next]\n}\n\n/**\n * The report body as a checklist: `### ` group headings kept, every other non-empty line becomes `- [ ] …`\n * (plain text and plain bullets alike). Items before any heading go under `### Steps`.\n */\nexport function normalizeReport(report: string): string {\n const out: string[] = []\n for (const raw of report.replace(/\\r\\n/g, \"\\n\").split(\"\\n\")) {\n const line = raw.trimEnd()\n if (!line.trim()) continue\n if (/^\\s*###\\s/.test(line)) { out.push(line.trim()); continue }\n if (/^\\s*##?\\s/.test(line)) continue // a stray \"## Manual tests\" or H1 from the agent\n const item = line.match(ITEM)\n const text = item ? item[2] : (line.match(BULLET)?.[1] ?? line.trim())\n if (!out.some((l) => l.startsWith(\"### \"))) out.push(\"### Steps\")\n out.push(`- [${item && item[1] !== \" \" ? \"x\" : \" \"}] ${text.trim()}`)\n }\n return out.join(\"\\n\")\n}\n\n/** Write the report as the task's `## Manual tests` section, replacing an older one (old ticks no longer apply). */\nexport function setManualTests(raw: string, report: string, actor: \"ai\" | \"human\", date: string): string {\n const body = normalizeReport(report)\n if (!body) throw new Error(\"manualTests is empty: give at least one checklist item\")\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n const rest = range ? [...lines.slice(0, range[0]), ...lines.slice(range[1])] : lines\n const kept = rest.join(\"\\n\").replace(/\\s+$/, \"\")\n return `${kept}\\n\\n${MANUAL_TESTS_HEADING}\\n_${date} — ${actor}_\\n${body}\\n`\n}\n\n/** The checklist in a task file, or null when it has no `## Manual tests` section (or the section has no items). */\nexport function parseManualTests(raw: string): ManualTests | null {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return null\n const items: ManualTestItem[] = []\n let group: ManualTestGroup = \"steps\"\n let date: string | null = null\n for (const line of lines.slice(range[0] + 1, range[1])) {\n const stamp = line.match(/^_(\\d{4}-\\d{2}-\\d{2})\\b/)\n if (stamp && !date && !items.length) { date = stamp[1]; continue }\n if (/^\\s*###\\s/.test(line)) { group = /^\\s*###\\s+regression/i.test(line) ? \"regression\" : \"steps\"; continue }\n const m = line.match(ITEM)\n if (m) items.push({ text: m[2].trim(), checked: m[1] !== \" \", group, index: items.length })\n }\n if (!items.length) return null\n return { items, total: items.length, done: items.filter((i) => i.checked).length, date }\n}\n\n/** Tick or untick the `index`th checklist item of the `## Manual tests` section (file order), nothing else. */\nexport function toggleManualTest(raw: string, index: number, checked: boolean): string {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) throw new RangeError(\"This task has no manual tests\")\n let n = 0\n for (let i = range[0] + 1; i < range[1]; i++) {\n if (!ITEM.test(lines[i])) continue\n if (n++ === index) {\n lines[i] = lines[i].replace(/\\[( |x|X)\\]/, checked ? \"[x]\" : \"[ ]\")\n return lines.join(\"\\n\")\n }\n }\n throw new RangeError(`No manual test item ${index} (the task has ${n})`)\n}\n","// Pure next-task picker for an epic's work queue (no fs). Self-check: node src/lib/work-queue.check.mts\nimport type { RoadmapItem, Task } from './core'\n\nexport type QueueTask = Pick<Task, 'id' | 'status' | 'dependsOn'>\nexport type QueueResult =\n | { kind: 'ready'; taskId: string }\n | { kind: 'finished' }\n // needsHuman: no remaining task can move without someone unblocking or creating a task\n | { kind: 'waiting'; waiting: { taskId: string; reason: string }[]; needsHuman: boolean }\n\n/** Every `T\\d+` in a free-text \"Depends on\" line: \"T008, T009 (x)\" → [\"T008\",\"T009\"]. */\nexport function depIds(dependsOn: string): string[] {\n return [...new Set((dependsOn.match(/\\bT\\d+\\b/gi) ?? []).map(d => d.toUpperCase()))]\n}\n\nconst settled = (s: Task['status']) => s === 'done' || s === 'cancelled'\n\nexport function pickNextTask(epic: RoadmapItem, tasks: QueueTask[]): QueueResult {\n const byId = new Map(tasks.map(t => [t.id, t]))\n const linked = epic.tasks.map(id => byId.get(id)).filter((t): t is QueueTask => !!t)\n const unmet = (t: QueueTask) => depIds(t.dependsOn).filter(d => {\n const dep = byId.get(d)\n return !dep || !settled(dep.status)\n })\n\n for (const t of linked) {\n if (t.status === 'todo' && !unmet(t).length) return { kind: 'ready', taskId: t.id }\n }\n if (linked.every(t => settled(t.status))) return { kind: 'finished' }\n\n // Can this task still move without a human? in-progress/settled yes; blocked/paused/review/missing no\n // (review waits for someone to approve or send it back, R043);\n // todo only if it's in this epic (the queue never hands out outside tasks) and every unmet dep can.\n // Cycles count as stuck.\n const inEpic = new Set(epic.tasks)\n const memo = new Map<string, boolean>()\n const canMove = (id: string): boolean => {\n if (memo.has(id)) return memo.get(id) ?? false\n memo.set(id, false)\n const t = byId.get(id)\n const ok = !!t && t.status !== 'blocked' && t.status !== 'paused' && t.status !== 'review' && (t.status !== 'todo' || (inEpic.has(id) && unmet(t).every(canMove)))\n memo.set(id, ok)\n return ok\n }\n\n const waiting: { taskId: string; reason: string }[] = []\n for (const id of epic.tasks) {\n const t = byId.get(id)\n if (!t) waiting.push({ taskId: id, reason: `${id} has no task file` })\n else if (t.status === 'in-progress') waiting.push({ taskId: id, reason: `${id} is in progress (claimed)` })\n else if (t.status === 'blocked') waiting.push({ taskId: id, reason: `${id} is blocked` })\n else if (t.status === 'paused') waiting.push({ taskId: id, reason: `${id} is paused — needs a human to resume it` })\n else if (t.status === 'review') waiting.push({ taskId: id, reason: `${id} in review — needs a human` })\n else if (t.status === 'todo') {\n const deps = unmet(t).map(d => `${d} (${byId.get(d)?.status ?? 'missing'})`)\n waiting.push({ taskId: id, reason: `${id} waits on ${deps.join(', ')}` })\n }\n }\n return { kind: 'waiting', waiting, needsHuman: waiting.every(w => !canMove(w.taskId)) }\n}\n","/**\n * src/lib/roadmap-import.ts\n * Pure (no fs): draft a roadmap for a project that has none, from ROADMAP.md, from its tasks, or a starter.\n * core.ts `generateRoadmap()` assigns ids and writes the files.\n */\n\nimport type { RoadmapStatus, Task } from './core'\n\nexport interface RoadmapDraft {\n key: string\n title: string\n parent: string | null // key of the parent draft; null = horizon\n status: RoadmapStatus\n tasks: string[]\n body: string\n}\n\nexport type RoadmapSource = 'roadmap-md' | 'tasks' | 'starter'\n\nconst SHIPPED = /\\b(shipped|done|released|complete[d]?)\\b/i\nconst MAX_TITLE = 80\n\nfunction plain(s: string): string {\n return s\n .replace(/\\[([^\\]]+)\\]\\([^)]*\\)/g, '$1') // links\n .replace(/[*_`]/g, '')\n .replace(/\\s+/g, ' ')\n .trim()\n}\n\nfunction clip(s: string): string {\n return s.length > MAX_TITLE ? `${s.slice(0, MAX_TITLE - 1).trimEnd()}…` : s\n}\n\nfunction rollUp(statuses: RoadmapStatus[]): RoadmapStatus {\n if (statuses.length && statuses.every(s => s === 'done')) return 'done'\n if (statuses.some(s => s !== 'planned')) return 'in-progress'\n return 'planned'\n}\n\n/** `## Section` with top-level bullets → horizon + features. Sections without bullets are skipped. */\nexport function roadmapFromMarkdown(md: string): RoadmapDraft[] {\n const out: RoadmapDraft[] = []\n let horizon: RoadmapDraft | null = null\n let intro: string[] = []\n let feature: RoadmapDraft | null = null\n let kids = 0\n\n const closeHorizon = () => {\n if (horizon && kids > 0) {\n horizon.body = intro.join(' ').trim()\n const own = out.filter(d => d.parent === horizon?.key).map(d => d.status)\n if (horizon.status !== 'done') horizon.status = rollUp(own)\n } else if (horizon) {\n // no bullets: drop the heading\n out.splice(out.indexOf(horizon), 1)\n }\n horizon = null\n feature = null\n intro = []\n kids = 0\n }\n\n for (const line of md.split('\\n')) {\n const h2 = line.match(/^##\\s+(.+?)\\s*#*\\s*$/)\n if (h2) {\n closeHorizon()\n const title = clip(plain(h2[1]))\n horizon = { key: `h${out.length}`, title, parent: null, status: SHIPPED.test(title) ? 'done' : 'planned', tasks: [], body: '' }\n out.push(horizon)\n continue\n }\n if (!horizon) continue\n if (/^#/.test(line)) { closeHorizon(); continue } // H1 / H3+ ends the section\n\n const bullet = line.match(/^[-*]\\s+(?:\\[([ xX])\\]\\s+)?(.*)$/)\n if (bullet) {\n const text = bullet[2]\n const named = text.match(/^\\*\\*(.+?)\\*\\*\\s*(?:[—–:-]\\s*)?(.*)$/)\n const title = clip(plain(named ? named[1] : text))\n if (!title) continue\n const status: RoadmapStatus = bullet[1]\n ? (bullet[1].toLowerCase() === 'x' ? 'done' : 'planned')\n : horizon.status === 'done' ? 'done' : 'planned'\n feature = { key: `f${out.length}`, title, parent: horizon.key, status, tasks: [], body: named ? named[2].trim() : '' }\n out.push(feature)\n kids++\n continue\n }\n\n const cont = line.match(/^\\s+(\\S.*)$/)\n if (feature && cont) {\n feature.body = [feature.body, cont[1].replace(/^[-*]\\s+/, '- ')].filter(Boolean).join('\\n')\n } else if (!feature && line.trim() && !/^-{3,}$/.test(line.trim())) {\n intro.push(line.trim())\n }\n }\n closeHorizon()\n return out\n}\n\nconst phaseRank = (p: string) => {\n const n = parseFloat(p)\n return Number.isFinite(n) ? n : Infinity\n}\n\n/** One horizon per task phase, one feature per (non-cancelled) task. */\nexport function roadmapFromTasks(tasks: Pick<Task, 'id' | 'title' | 'status' | 'phase'>[]): RoadmapDraft[] {\n const groups = new Map<string, typeof tasks>()\n for (const t of tasks) {\n if (t.status === 'cancelled') continue\n const phase = plain(t.phase || '').replace(/^—$/, '') || 'Unphased'\n groups.set(phase, [...(groups.get(phase) ?? []), t])\n }\n const phases = [...groups.keys()].sort((a, b) => phaseRank(a) - phaseRank(b) || a.localeCompare(b))\n\n const out: RoadmapDraft[] = []\n for (const phase of phases) {\n const key = `h${out.length}`\n const features = (groups.get(phase) ?? []).map((t): RoadmapDraft => ({\n key: `f${t.id}`,\n title: clip(t.title),\n parent: key,\n status: t.status === 'done' ? 'done' : t.status === 'in-progress' ? 'in-progress' : 'planned',\n tasks: [t.id],\n body: '',\n }))\n out.push({ key, title: clip(phase), parent: null, status: rollUp(features.map(f => f.status)), tasks: [], body: '' }, ...features)\n }\n return out\n}\n\nexport function starterRoadmap(): RoadmapDraft[] {\n const h = (key: string, title: string, status: RoadmapStatus, body: string): RoadmapDraft =>\n ({ key, title, parent: null, status, tasks: [], body })\n return [\n h('shipped', 'Shipped', 'done', 'What is already live.'),\n h('now', 'Now', 'planned', 'What we are building right now.'),\n h('next', 'Next', 'planned', 'Planned once the current work ships.'),\n h('later', 'Later', 'planned', 'Ideas — not committed.'),\n ]\n}\n","// Pure plan model for \"plan from the chat\": the agent proposes, the user reviews, the server applies.\n// No fs here; core.applyPlan() does the writing. Self-check: node src/lib/plan.check.mts\nimport type { RoadmapItem, RoadmapStatus } from './core'\n\nexport interface PlanTask {\n key: string // stable within the plan, e.g. \"t1\"; becomes a T id on apply\n title: string\n size?: string // \"S (~1 hr)\" | \"M (2–3 hrs)\" | \"L (half day)\"\n dependsOn?: string[] // keys in this plan, or existing task ids (\"T030\")\n due?: string // YYYY-MM-DD\n body: string // full markdown below the meta block: Goal, Context, Scope, Files, …\n}\nexport interface PlanHorizon { key: string; title: string; body?: string }\nexport interface PlanEpic { key: string; title: string; parent: string; status?: RoadmapStatus; body: string } // parent: existing horizon id or a horizon key\nexport interface PlanNewEpic { title: string; parent: string; body: string } // parent: existing horizon id\n/** breakdown: exactly one of `epic` (existing) or `newEpic`, or neither (loose tasks, no Phase). */\nexport type Plan =\n | { kind: 'breakdown'; epic?: string; newEpic?: PlanNewEpic; tasks: PlanTask[] }\n | { kind: 'roadmap'; horizons: PlanHorizon[]; epics: PlanEpic[] }\n\nexport interface PlanContext { roadmap: RoadmapItem[]; taskIds: string[] }\n\n/** A real calendar date \"YYYY-MM-DD\" (rejects 2026-02-30), else null. Same rule as core's parseDue. */\nfunction isDate(raw: string): boolean {\n const m = raw.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/)\n if (!m) return false\n return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3])).toISOString().slice(0, 10) === raw\n}\n\nconst isObj = (v: unknown): v is Record<string, unknown> => !!v && typeof v === 'object' && !Array.isArray(v)\nconst str = (v: unknown) => (typeof v === 'string' ? v.trim() : '')\n\n/** Where a breakdown's tasks go, for one-line summaries: \"R002\", `new epic \"X\"`, or \"no epic\". */\nexport function planTarget(plan: Extract<Plan, { kind: 'breakdown' }>): string {\n if (str(plan.epic)) return str(plan.epic).toUpperCase()\n return plan.newEpic ? `new epic \"${str(plan.newEpic.title)}\"` : 'no epic'\n}\n\n/** An existing roadmap item that can parent an epic (a horizon), else the reason it can't. */\nfunction resolveHorizon(parent: string, roadmap: RoadmapItem[], missing = 'is not an existing roadmap item'): { id: string } | { error: string } {\n const p = roadmap.find(r => r.id === parent.toUpperCase())\n if (!p) return { error: `parent \"${parent}\" ${missing}` }\n if (p.parent !== null) return { error: `parent ${p.id} is an epic, not a horizon (max depth is 2)` }\n return { id: p.id }\n}\n\n/** Id of an existing item with this title under `parent` ('' = horizon level), case-insensitive. */\nconst titleTaken = (roadmap: RoadmapItem[], parent: string, title: string) =>\n roadmap.find(i => (i.parent ?? '') === parent && i.title.trim().toLowerCase() === title.toLowerCase())?.id\n\n/**\n * Just enough shape for the chat UI to render a proposal before the server has validated it\n * (the tool_use streams in before its tool_result). Returns null for anything a card can't draw.\n */\nexport function asRenderablePlan(p: unknown): Plan | null {\n if (!isObj(p)) return null\n const items = (v: unknown, need: string[]) => Array.isArray(v) && v.every(x =>\n isObj(x) && need.every(k => typeof x[k] === 'string') && (x.dependsOn === undefined || Array.isArray(x.dependsOn)))\n if (p.kind === 'breakdown') {\n const target = p.epic === undefined || typeof p.epic === 'string'\n const newEpic = p.newEpic === undefined || (isObj(p.newEpic) && typeof p.newEpic.title === 'string' && typeof p.newEpic.parent === 'string')\n return target && newEpic && items(p.tasks, ['key', 'title']) && (p.tasks as unknown[]).length > 0\n ? (p as unknown as Plan) : null\n }\n if (p.kind === 'roadmap') {\n const horizons = p.horizons ?? [], epics = p.epics ?? []\n return items(horizons, ['key', 'title']) && items(epics, ['key', 'title', 'parent'])\n ? ({ kind: 'roadmap', horizons, epics } as Plan) : null\n }\n return null\n}\n\n/** Every problem with the plan against the current files; [] = valid. */\nexport function validatePlan(plan: unknown, ctx: PlanContext): string[] {\n if (!isObj(plan)) return ['plan must be an object']\n if (plan.kind === 'roadmap') return validateRoadmapPlan(plan, ctx)\n if (plan.kind !== 'breakdown') return [`plan.kind must be \"breakdown\" or \"roadmap\" (got ${JSON.stringify(plan.kind)})`]\n\n const errors: string[] = []\n const epicId = str(plan.epic).toUpperCase()\n if (plan.epic !== undefined && typeof plan.epic !== 'string') errors.push('epic must be a string (an epic id)')\n else if (epicId && plan.newEpic !== undefined) errors.push('pass either epic (an existing epic) or newEpic, not both')\n else if (epicId) {\n const epic = ctx.roadmap.find(i => i.id === epicId)\n if (!epic) errors.push(`Epic ${JSON.stringify(plan.epic)} not found`)\n else if (!epic.parent) errors.push(`${epic.id} is a horizon, not an epic; pass an epic id`)\n } else if (plan.newEpic !== undefined) {\n const e = plan.newEpic\n if (!isObj(e)) errors.push('newEpic must be an object { title, parent, body }')\n else {\n const title = str(e.title), parent = str(e.parent)\n if (!title) errors.push('newEpic: title is required')\n if (typeof e.body !== 'string') errors.push('newEpic: body must be a markdown string')\n if (!parent) errors.push('newEpic: parent is required (an existing horizon id)')\n else {\n const h = resolveHorizon(parent, ctx.roadmap)\n if ('error' in h) errors.push(`newEpic: ${h.error}`)\n else if (title) {\n const other = titleTaken(ctx.roadmap, h.id, title)\n if (other) errors.push(`newEpic: \"${title}\" already exists under ${h.id} (${other})`)\n }\n }\n }\n }\n\n if (!Array.isArray(plan.tasks) || plan.tasks.length === 0) {\n errors.push('tasks must be a non-empty array')\n return errors\n }\n const tasks = plan.tasks as unknown[]\n const existing = new Set(ctx.taskIds.map(t => t.toUpperCase()))\n\n const index = new Map<string, number>()\n tasks.forEach((t, i) => {\n const key = isObj(t) ? str(t.key) : ''\n if (!key) errors.push(`task #${i + 1}: key is required`)\n else if (index.has(key)) errors.push(`duplicate key \"${key}\"`)\n else index.set(key, i)\n })\n\n const deps = new Map<string, string[]>() // key → plan keys it depends on\n tasks.forEach((t, i) => {\n if (!isObj(t)) { errors.push(`task #${i + 1} must be an object`); return }\n const label = str(t.key) || `task #${i + 1}`\n if (!str(t.title)) errors.push(`${label}: title is required`)\n if (typeof t.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n if (t.size !== undefined && typeof t.size !== 'string') errors.push(`${label}: size must be a string`)\n if (t.due !== undefined && !(typeof t.due === 'string' && isDate(t.due))) {\n errors.push(`${label}: due must be a date YYYY-MM-DD (got ${JSON.stringify(t.due)})`)\n }\n if (t.dependsOn === undefined) return\n if (!Array.isArray(t.dependsOn)) { errors.push(`${label}: dependsOn must be an array`); return }\n const own: string[] = []\n for (const d of t.dependsOn) {\n const dep = str(d)\n if (index.has(dep)) own.push(dep)\n else if (!existing.has(dep.toUpperCase())) {\n errors.push(`${label}: dependsOn \"${String(d)}\" is neither a key in this plan nor an existing task`)\n }\n }\n if (str(t.key)) deps.set(str(t.key), own)\n })\n\n // Cycles (DFS, report each once), then forward references: apply creates in order,\n // so a dependency must come earlier in the list to already have its T id.\n const state = new Map<string, 'open' | 'done'>()\n const cyclic = new Set<string>()\n const visit = (k: string, stack: string[]) => {\n if (state.get(k) === 'done') return\n if (state.get(k) === 'open') {\n const cycle = [...stack.slice(stack.indexOf(k)), k]\n if (!cycle.some(c => cyclic.has(c))) errors.push(`dependency cycle: ${cycle.join(' → ')}`)\n cycle.forEach(c => cyclic.add(c))\n return\n }\n state.set(k, 'open')\n for (const d of deps.get(k) ?? []) visit(d, [...stack, k])\n state.set(k, 'done')\n }\n for (const k of deps.keys()) visit(k, [])\n for (const [k, ds] of deps) {\n if (cyclic.has(k)) continue\n for (const d of ds) {\n if ((index.get(d) ?? 0) > (index.get(k) ?? 0)) errors.push(`${k} depends on ${d}, which comes later; list ${d} first`)\n }\n }\n return errors\n}\n\nconst STATUSES = ['planned', 'in-progress', 'done']\n\nfunction validateRoadmapPlan(plan: Record<string, unknown>, ctx: PlanContext): string[] {\n const errors: string[] = []\n const horizons = plan.horizons ?? []\n const epics = plan.epics ?? []\n if (!Array.isArray(horizons)) errors.push('horizons must be an array')\n if (!Array.isArray(epics)) errors.push('epics must be an array')\n if (errors.length > 0) return errors\n const hs = horizons as unknown[]\n const es = epics as unknown[]\n if (hs.length + es.length === 0) return ['a roadmap plan needs at least one horizon or epic']\n\n const keys = new Set<string>()\n const horizonKeys = new Set<string>()\n const checkKey = (v: unknown, label: string, isHorizon: boolean) => {\n const key = isObj(v) ? str(v.key) : ''\n if (!key) errors.push(`${label}: key is required`)\n else if (keys.has(key)) errors.push(`duplicate key \"${key}\"`)\n else { keys.add(key); if (isHorizon) horizonKeys.add(key) }\n }\n hs.forEach((h, i) => checkKey(h, `horizon #${i + 1}`, true))\n es.forEach((e, i) => checkKey(e, `epic #${i + 1}`, false))\n\n // Titles are unique per level (spine, or one horizon), against existing items and within the plan.\n const seen = new Map<string, string>() // \"parent\\0title\" → who in this plan has it\n const claimTitle = (parent: string, title: string, label: string) => {\n const k = `${parent}\\0${title.toLowerCase()}`\n const other = titleTaken(ctx.roadmap, parent, title) ?? seen.get(k)\n if (other) errors.push(`${label}: \"${title}\" already exists ${parent ? `under ${parent}` : 'as a horizon'} (${other})`)\n else seen.set(k, label)\n }\n\n hs.forEach((h, i) => {\n if (!isObj(h)) { errors.push(`horizon #${i + 1} must be an object`); return }\n const label = str(h.key) || `horizon #${i + 1}`\n const title = str(h.title)\n if (!title) errors.push(`${label}: title is required`)\n else claimTitle('', title, label)\n if (h.body !== undefined && typeof h.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n })\n\n es.forEach((e, i) => {\n if (!isObj(e)) { errors.push(`epic #${i + 1} must be an object`); return }\n const label = str(e.key) || `epic #${i + 1}`\n const title = str(e.title)\n if (!title) errors.push(`${label}: title is required`)\n if (typeof e.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n if (e.status !== undefined && !STATUSES.includes(e.status as string)) {\n errors.push(`${label}: status must be one of ${STATUSES.join(', ')} (got ${JSON.stringify(e.status)})`)\n }\n const parent = str(e.parent)\n let parentId = ''\n if (!parent) errors.push(`${label}: parent is required (an existing horizon id or a horizon key in this plan)`)\n else if (horizonKeys.has(parent)) parentId = parent\n else if (keys.has(parent)) errors.push(`${label}: parent \"${parent}\" is an epic in this plan; an epic's parent must be a horizon`)\n else {\n const h = resolveHorizon(parent, ctx.roadmap, 'is neither a horizon key in this plan nor an existing roadmap item')\n if ('id' in h) parentId = h.id\n else errors.push(`${label}: ${h.error}`)\n }\n if (title && parentId) claimTitle(parentId, title, label)\n })\n return errors\n}\n\n/** Keep only the selected items. A kept item depending on an unchecked one is an error. */\nexport function selectPlan(plan: Plan, selected: string[]): { plan: Plan; errors: string[] } {\n if (plan.kind === 'roadmap') return selectRoadmapPlan(plan, selected)\n const errors: string[] = []\n // Trim like validatePlan/applyPlan do, or \" t1 \" vs \"t1\" slips past the unchecked-dependency check\n const keys = new Set(plan.tasks.map(t => t.key.trim()))\n const sel = new Set(selected.map(k => k.trim()))\n for (const k of sel) if (!keys.has(k)) errors.push(`unknown key \"${k}\"`)\n const tasks = plan.tasks.filter(t => sel.has(t.key.trim()))\n if (tasks.length === 0) errors.push('nothing selected')\n for (const t of tasks) {\n for (const d of (t.dependsOn ?? []).map(d => d.trim())) {\n if (keys.has(d) && !sel.has(d)) errors.push(`${t.key.trim()} depends on ${d}, which you unchecked`)\n }\n }\n return { plan: { ...plan, tasks }, errors }\n}\n\nfunction selectRoadmapPlan(plan: Extract<Plan, { kind: 'roadmap' }>, selected: string[]): { plan: Plan; errors: string[] } {\n const errors: string[] = []\n const horizons = plan.horizons ?? []\n const epics = plan.epics ?? []\n const hKeys = new Set(horizons.map(h => h.key))\n const keys = new Set([...hKeys, ...epics.map(e => e.key)])\n const sel = new Set(selected)\n for (const k of sel) if (!keys.has(k)) errors.push(`unknown key \"${k}\"`)\n const keptH = horizons.filter(h => sel.has(h.key))\n const keptE = epics.filter(e => sel.has(e.key))\n if (keptH.length + keptE.length === 0) errors.push('nothing selected')\n for (const e of keptE) {\n const p = e.parent.trim()\n if (hKeys.has(p) && !sel.has(p)) errors.push(`${e.key} is under ${p}, which you unchecked; check ${p} or uncheck ${e.key}`)\n }\n return { plan: { ...plan, horizons: keptH, epics: keptE }, errors }\n}\n","/**\n * src/lib/roadmap-health.ts\n * Pure (no fs): roadmap progress + drift, shared by the Roadmap page and the MCP handler.\n * A feature's expected status comes from its linked tasks; a horizon's from its features.\n */\n\nimport type { RoadmapItem, RoadmapStatus, Task } from './core'\n\n/** What health needs from a task: status for progress, due for at-risk. */\nexport type TaskInfo = Pick<Task, 'status' | 'due'>\n\nexport interface RoadmapProgress { done: number; total: number }\n\nexport interface RoadmapDrift {\n id: string\n kind: 'status-mismatch' | 'missing-task' | 'overdue' | 'at-risk'\n message: string\n suggestedStatus?: RoadmapStatus\n}\n\nexport interface RoadmapHealth {\n progress: Record<string, RoadmapProgress>\n drift: RoadmapDrift[]\n}\n\nexport type DueState = 'overdue' | 'soon' | 'ok' | 'done'\n\nconst SOON_DAYS = 7\n\n/** Local calendar date \"YYYY-MM-DD\" (due dates are calendar dates, not instants). */\nexport function localToday(now = new Date()): string {\n const p = (n: number) => String(n).padStart(2, '0')\n return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())}`\n}\n\nfunction daysBetween(from: string, to: string): number {\n const utc = (d: string) => Date.UTC(+d.slice(0, 4), +d.slice(5, 7) - 1, +d.slice(8, 10))\n return Math.round((utc(to) - utc(from)) / 86_400_000)\n}\n\nexport function dueState(due: string | null, status: RoadmapStatus, today: string): DueState | null {\n if (!due) return null\n if (status === 'done') return 'done'\n if (due < today) return 'overdue'\n return daysBetween(today, due) <= SOON_DAYS ? 'soon' : 'ok'\n}\n\ntype Started = 'done' | 'in-progress' | 'other'\n\nfunction expectedStatus(states: Started[]): RoadmapStatus {\n if (states.every(s => s === 'done')) return 'done'\n if (states.some(s => s !== 'other')) return 'in-progress'\n return 'planned'\n}\n\nexport interface TaskDueSummary { overdue: number; next: string | null }\n\n/** Open tasks' deadlines for a map node: how many are overdue, and the nearest upcoming due. */\nexport function taskDueSummary(taskIds: string[], tasks: Record<string, TaskInfo>, today: string): TaskDueSummary | null {\n const dues = taskIds\n .map(id => tasks[id])\n .filter(t => t && t.due && t.status !== 'done' && t.status !== 'cancelled')\n .map(t => t.due as string)\n if (!dues.length) return null\n const upcoming = dues.filter(d => d >= today).sort()\n return { overdue: dues.length - upcoming.length, next: upcoming[0] ?? null }\n}\n\n/** Why an unfinished epic may miss its date: overdue or blocked tasks, or due soon with nothing started. */\nfunction atRiskReasons(item: RoadmapItem, linked: string[], tasks: Record<string, TaskInfo>, today: string): string[] {\n const reasons: string[] = []\n for (const id of linked) {\n const t = tasks[id]\n if (t.status !== 'done' && t.due && t.due < today) reasons.push(`${id} overdue since ${t.due}`)\n if (t.status === 'blocked') reasons.push(`${id} blocked`)\n }\n const started = linked.some(id => ['done', 'in-progress', 'review'].includes(tasks[id].status))\n if (item.due && dueState(item.due, item.status, today) === 'soon' && !started) {\n reasons.push(`due ${item.due}, nothing started`)\n }\n return reasons\n}\n\nexport function roadmapHealth(\n items: RoadmapItem[], tasks: Record<string, TaskInfo>, today: string,\n): RoadmapHealth {\n const progress: Record<string, RoadmapProgress> = {}\n const drift: RoadmapDrift[] = []\n\n for (const item of items) {\n if (item.due && dueState(item.due, item.status, today) === 'overdue') {\n drift.push({ id: item.id, kind: 'overdue', message: `${item.id} \"${item.title}\" is overdue since ${item.due}` })\n }\n }\n const horizonIds = new Set(items.filter(i => i.parent === null).map(i => i.id))\n\n for (const item of items) {\n if (item.parent === null) continue\n const missing = item.tasks.filter(t => !(t in tasks))\n if (missing.length) {\n drift.push({ id: item.id, kind: 'missing-task', message: `${item.id} links unknown task ${missing.join(', ')}` })\n }\n // cancelled tasks don't count toward progress or expected status\n const linked = item.tasks.filter(t => t in tasks && tasks[t].status !== 'cancelled')\n // a paused epic is stopped on purpose: not at risk\n const risks = item.status === 'done' || item.status === 'paused' ? [] : atRiskReasons(item, linked, tasks, today)\n if (risks.length) {\n drift.push({ id: item.id, kind: 'at-risk', message: `${item.id} \"${item.title}\" at risk: ${risks.join('; ')}` })\n }\n if (!linked.length) continue\n const states: Started[] = linked.map(t =>\n tasks[t].status === 'done' ? 'done' : tasks[t].status === 'in-progress' || tasks[t].status === 'review' ? 'in-progress' : 'other')\n progress[item.id] = { done: states.filter(s => s === 'done').length, total: linked.length }\n const expected = expectedStatus(states)\n // paused stays paused until everything is done\n if (expected !== item.status && !(item.status === 'paused' && expected !== 'done')) {\n const open = linked.filter(t => tasks[t].status !== 'done')\n drift.push({\n id: item.id,\n kind: 'status-mismatch',\n message: expected === 'done'\n ? `${item.id} \"${item.title}\": all tasks done but status is ${item.status}`\n : `${item.id} \"${item.title}\" is ${item.status} but tasks ${open.join(', ')} are not done`,\n suggestedStatus: expected,\n })\n }\n }\n\n for (const h of items) {\n if (!horizonIds.has(h.id)) continue\n const kids = items.filter(i => i.parent === h.id)\n if (!kids.length) continue\n const states: Started[] = kids.map(k => k.status === 'done' ? 'done' : k.status === 'in-progress' ? 'in-progress' : 'other')\n // weight by tasks; an epic not broken down yet counts as one unit\n progress[h.id] = kids.reduce((sum, k) => {\n const p = progress[k.id] ?? { done: k.status === 'done' ? 1 : 0, total: 1 }\n return { done: sum.done + p.done, total: sum.total + p.total }\n }, { done: 0, total: 0 })\n const expected = expectedStatus(states)\n if (expected !== h.status && !(h.status === 'paused' && expected !== 'done')) {\n drift.push({\n id: h.id,\n kind: 'status-mismatch',\n message: `${h.id} \"${h.title}\" is ${h.status} but its features say ${expected}`,\n suggestedStatus: expected,\n })\n }\n }\n\n return { progress, drift }\n}\n","/**\n * src/lib/core.ts\n * All file-system operations. Used by API routes, MCP handler, and SSR.\n * Runs server-side only.\n */\n\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { glob } from 'glob'\nimport { execFile } from 'child_process'\nimport { promisify } from 'util'\nimport { applyEdits, type TextEdit } from './diff'\nimport { roadmapFromMarkdown, roadmapFromTasks, starterRoadmap, type RoadmapDraft, type RoadmapSource } from './roadmap-import'\nimport { pickNextTask, type QueueResult } from './work-queue'\nimport { selectPlan, validatePlan, type Plan } from './plan'\nimport { SESSION_GAP_MS } from './sessions'\nimport { parseManualTests, setManualTests, toggleManualTest } from './manual-tests'\nimport { appendReviewEntry, type ReviewOutcome } from './review'\nimport type { SavedView } from './board-views'\nimport { parseOwner } from './owner'\nimport { DEFAULT_SIZE_DAYS, datesOnMove, type SizeDays } from './auto-dates'\nimport { resolveStatus, statusDefs, statusLine, type StatusDef } from './statuses'\nimport { localToday } from './roadmap-health'\nimport { DEFAULT_SESSION_BUDGET, fitToBudget, formatRelated, indexHits, rankEntries, taskQuery, type RecallHit } from './recall'\nimport { buildGraph, fileNode, type GraphItem, type MemoryGraph } from './memory-graph'\nimport { entrySlug, formatEntry, nextEntryId, normalizeEntryId, parseEntry, validateEntryInput, type Entry, type EntryInput, type EntryType } from './entries'\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type TaskStatus = 'todo' | 'in-progress' | 'review' | 'blocked' | 'paused' | 'done' | 'cancelled'\n\nexport interface Task {\n id: string\n title: string\n status: TaskStatus\n size: string\n phase: string\n dependsOn: string\n /** A project status (R055) this task is in; `status` then holds its category. Unset for built-ins. */\n customStatus?: string\n /** `**Owner:**` \"human\" | \"ai:<agent>\", null when unset (R055) */\n owner: string | null\n /** Optional `**Due:** YYYY-MM-DD` (local calendar date, compare as string). */\n due: string | null\n /** `**Started:**` / `**Done:**` dates, stamped on status moves (R055) */\n started: string | null\n finished: string | null\n /** The `## Manual tests` checklist (R043), counted; null when the task has none */\n manualTests: { total: number; done: number } | null\n file: string\n raw?: string\n}\n\nexport interface TaskBoard {\n todo: Task[]\n 'in-progress': Task[]\n /** Optional step (R043): waiting for a human to approve or send back. Nothing requires it. */\n review: Task[]\n blocked: Task[]\n /** Stopped on purpose (R055): not claimable, not a met dependency */\n paused: Task[]\n done: Task[]\n cancelled: Task[]\n}\n\nexport interface DocFile {\n path: string\n section: string\n name: string\n}\n\nexport interface DescriptionCache {\n [path: string]: {\n description: string\n source: 'extracted' | 'ai'\n updatedAt: string\n }\n}\n\nexport interface ExplorerFile {\n path: string\n name: string\n section: string\n description: string\n source: 'extracted' | 'ai'\n updatedAt: string\n mtime: string\n}\n\nexport interface SearchResult {\n file: string\n hits: { line: number; text: string }[]\n totalHits: number\n}\n\nexport interface ActivityEvent {\n id: string\n timestamp: string\n type: 'task_updated' | 'decision_logged' | 'memory_updated' | 'doc_read' | 'session_start' | 'doc_created' | 'doc_updated' | 'doc_deleted' | 'doc_renamed' | 'registry_rebuilt' | 'roadmap_updated'\n actor: 'ai' | 'human'\n title: string\n detail?: string\n taskId?: string\n taskStatus?: TaskStatus\n sessionId?: string\n}\n\nexport interface Project {\n id: string\n name: string\n root: string\n hasVibedoc: boolean\n}\n\n// ─── Constants ────────────────────────────────────────────────────────────────\n\n/** Loose status text (\"Ready\", \"🔨 In-progress\", \"on hold\") → built-in category. Custom ids need the project's defs (resolveStatus). */\nexport function normalizeStatus(raw: string): TaskStatus {\n return resolveStatus(raw).status\n}\n\n// ─── Project detection ────────────────────────────────────────────────────────\n\nexport async function findRoot(startDir = process.cwd()): Promise<string> {\n let dir = path.resolve(startDir)\n for (let i = 0; i < 12; i++) {\n for (const marker of ['CLAUDE.md', 'AGENTS.md', 'docs/architecture', '.vibedoc']) {\n try { await fs.access(path.join(dir, marker)); return dir } catch {}\n }\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n return path.resolve(startDir)\n}\n\nexport function getConfiguredRoot(): string {\n return process.env.VIBEDOC_ROOT || process.cwd()\n}\n\n// ─── Multi-project: scan parent directories ───────────────────────────────────\n\nexport async function discoverProjects(searchBase?: string): Promise<Project[]> {\n const base = searchBase || path.dirname(getConfiguredRoot())\n const projects: Project[] = []\n\n try {\n const entries = await fs.readdir(base, { withFileTypes: true })\n for (const entry of entries) {\n if (!entry.isDirectory()) continue\n const dir = path.join(base, entry.name)\n let hasVibedoc = false\n for (const marker of ['CLAUDE.md', 'AGENTS.md', 'docs/architecture', '.vibedoc']) {\n try { await fs.access(path.join(dir, marker)); hasVibedoc = true; break } catch {}\n }\n if (hasVibedoc) {\n projects.push({ id: entry.name, name: entry.name, root: dir, hasVibedoc: true })\n }\n }\n } catch {}\n\n // Always ensure configured root is first\n const root = getConfiguredRoot()\n const name = path.basename(root)\n const existingIdx = projects.findIndex(p => p.root === root)\n if (existingIdx > 0) {\n const [existing] = projects.splice(existingIdx, 1)\n projects.unshift(existing)\n } else if (existingIdx === -1) {\n projects.unshift({ id: name, name, root, hasVibedoc: true })\n }\n\n return projects\n}\n\n// ─── Docs ─────────────────────────────────────────────────────────────────────\n\nexport async function listDocs(root: string): Promise<DocFile[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n\n return files.sort().map(f => ({\n path: f,\n section: inferSection(f),\n name: path.basename(f, '.md'),\n }))\n}\n\nfunction inferSection(f: string): string {\n if (!f.includes('/')) return 'root'\n if (f.startsWith('memory/')) return 'memory'\n if (f.startsWith('plans/')) return 'plans'\n if (f.includes('01-overview')) return 'overview'\n if (f.includes('02-high-level') || f.includes('high-level-design')) return 'high-level-design'\n if (f.includes('03-services') || f.includes('/services/')) return 'services'\n if (f.includes('04-data') || f.includes('/data/')) return 'data'\n if (f.includes('05-infra') || f.includes('/infrastructure/')) return 'infrastructure'\n if (f.includes('06-security') || f.includes('/security/')) return 'security'\n if (f.includes('07-observ') || f.includes('/observability/')) return 'observability'\n if (f.includes('08-resil') || f.includes('/resilience/')) return 'resilience'\n if (f.includes('decisions/') || f.includes('ADR')) return 'decisions'\n return 'other'\n}\n\nexport async function readDoc(query: string, root: string): Promise<{ path: string; content: string }> {\n const candidates = [\n path.join(root, query),\n path.join(root, `${query}.md`),\n path.join(root, 'docs', query),\n path.join(root, 'docs', `${query}.md`),\n path.join(root, 'docs', 'architecture', query),\n path.join(root, 'docs', 'architecture', `${query}.md`),\n path.join(root, 'memory', query),\n path.join(root, 'memory', `${query}.md`),\n path.join(root, 'plans', query),\n path.join(root, 'plans', `${query}.md`),\n ]\n\n for (const c of candidates) {\n try {\n const content = await fs.readFile(c, 'utf8')\n return { path: path.relative(root, c), content }\n } catch {}\n }\n\n // Glob fallback\n for (const pattern of [`**/${query}.md`, `**/${query}*.md`, `**/*${query}*.md`]) {\n const matches = await glob(pattern, {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n nocase: true,\n })\n if (matches.length > 0) {\n const content = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return { path: matches[0], content }\n }\n }\n\n throw new Error(`Doc not found: \"${query}\"`)\n}\n\nexport async function writeDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, content, 'utf8')\n}\n\n// Reads the doc at an exact path ('' if missing) and applies old_string→new_string edits.\n// dryRun validates without writing (used to check a proposal before the user sees it).\nexport async function editDoc(\n docPath: string,\n edits: TextEdit[],\n root: string,\n dryRun = false,\n): Promise<{ before: string; content: string }> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep)) throw new Error('Path outside root')\n const before = await fs.readFile(fullPath, 'utf8').catch((e: NodeJS.ErrnoException) => {\n if (e.code === 'ENOENT') return ''\n throw e\n })\n const result = applyEdits(before, edits)\n if ('error' in result) throw new Error(result.error)\n if (!dryRun) {\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, result.content, 'utf8')\n }\n return { before, content: result.content }\n}\n\nexport async function getContext(paths: string[], root: string): Promise<string> {\n const parts: string[] = []\n for (const p of paths) {\n try {\n const { content } = await readDoc(p, root)\n parts.push(`--- FILE: ${p} ---\\n\\n${content.trim()}`)\n } catch {\n // skip missing or unreadable files\n }\n }\n return parts.join('\\n\\n---\\n\\n')\n}\n\nexport async function createDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n try {\n await fs.access(fullPath)\n const err = new Error(`File already exists: ${docPath}`) as NodeJS.ErrnoException\n err.code = 'EEXIST'\n throw err\n } catch (e) {\n const nodeErr = e as NodeJS.ErrnoException\n if (nodeErr.code !== 'ENOENT') throw e\n }\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, content, 'utf8')\n await appendActivity(root, { type: 'doc_created', actor: 'human', title: `Created: ${docPath}`, detail: docPath })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n}\n\nexport async function searchDocs(query: string, root: string): Promise<SearchResult[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n const qLower = query.toLowerCase()\n const results: SearchResult[] = []\n\n for (const f of files) {\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n const lines = content.split('\\n')\n const hits = lines\n .map((line, i) => ({ line: i + 1, text: line.trim().slice(0, 120) }))\n .filter(h => h.text.toLowerCase().includes(qLower))\n if (hits.length > 0) results.push({ file: f, hits: hits.slice(0, 4), totalHits: hits.length })\n } catch {}\n }\n\n return results.sort((a, b) => b.totalHits - a.totalHits).slice(0, 20)\n}\n\n// ─── Tasks ────────────────────────────────────────────────────────────────────\n\nconst warnedStatuses = new Set<string>()\n\nfunction parseTaskFile(filePath: string, content: string, defs: StatusDef[]): Task {\n const lines = content.split('\\n')\n const filename = path.basename(filePath, '.md')\n const titleLine = lines.find(l => l.startsWith('# '))\n const title = (titleLine || '').replace(/^#+\\s*/, '').replace(/^T\\d+\\s*[:—–-]\\s*/i, '').trim() || filename\n\n // Only the head block under the H1 counts, so a `**Depends on:**` quoted in the body can't override it.\n const meta: Record<string, string> = {}\n for (const line of lines.slice(0, roadmapMetaEnd(lines))) {\n const m = line.match(/\\*\\*([^*]+):\\*\\*\\s*(.+)/)\n if (m) meta[m[1].toLowerCase().trim()] = m[2].trim()\n }\n\n const resolved = resolveStatus(meta['status'] || 'todo', defs)\n const warnKey = `${filePath}\\0${meta['status']}`\n if (resolved.unknown && !warnedStatuses.has(warnKey)) {\n // listTasks runs on every refresh: warn once per file + value per process\n warnedStatuses.add(warnKey)\n console.warn(`[vibedoc] ${filePath}: unknown status \"${meta['status']}\", shown as todo`)\n }\n const { status, customStatus } = resolved\n const idM = filename.match(/^(T\\d+)/i)\n const id = idM ? idM[1].toUpperCase() : filename.toUpperCase()\n\n const tests = parseManualTests(content)\n const manualTests = tests && { total: tests.total, done: tests.done }\n return { id, title, status, ...(customStatus && { customStatus }), size: meta['size'] || '', phase: meta['phase'] || '', dependsOn: meta['depends on'] || '', owner: parseOwner(meta['owner']), due: parseDue(meta['due'] || ''), started: parseDue(meta['started'] || ''), finished: parseDue(meta['done'] || ''), manualTests, file: filePath, raw: content }\n}\n\nexport async function listTasks(root: string): Promise<{ tasks: Task[]; board: TaskBoard }> {\n const { statuses } = await readProjectSettings(root)\n let files = await glob('plans/tasks/T*.md', { cwd: root, nodir: true })\n if (files.length === 0) files = await glob('plans/T*.md', { cwd: root, nodir: true })\n\n const tasks: Task[] = []\n for (const f of files.sort()) {\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n tasks.push(parseTaskFile(f, content, statuses))\n } catch {}\n }\n\n const board: TaskBoard = { todo: [], 'in-progress': [], review: [], blocked: [], paused: [], done: [], cancelled: [] }\n for (const t of tasks) {\n const col = (board[t.status] ? t.status : 'todo') as TaskStatus\n board[col].push(t)\n }\n return { tasks, board }\n}\n\nexport async function getTask(taskId: string, root: string): Promise<Task> {\n const { statuses } = await readProjectSettings(root)\n const id = taskId.toUpperCase().startsWith('T') ? taskId.toUpperCase() : `T${taskId}`\n for (const pattern of [`plans/tasks/${id}*.md`, `plans/${id}*.md`]) {\n const matches = await glob(pattern, { cwd: root, nodir: true })\n if (matches.length > 0) {\n const content = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return parseTaskFile(matches[0], content, statuses)\n }\n }\n throw new Error(`Task not found: ${taskId}`)\n}\n\n/**\n * Owner that a status change assigns (R055): an agent that starts a task takes it over;\n * a human move only fills an empty owner. Approve / send back pass no mover and leave it alone.\n */\nfunction ownerAfterMove(current: string | null, status: TaskStatus, mover?: { actor: 'ai' | 'human'; agent?: string }): string | null {\n if (!mover) return current\n if (mover.actor === 'ai') return status === 'in-progress' ? parseOwner(`ai:${mover.agent || 'agent'}`) ?? 'ai:agent' : current\n return current ?? 'human'\n}\n\n/**\n * The task settings from .vibedoc/settings.json (R055): `tasks.sizeDays` over the defaults (automatic due dates)\n * and `statuses` (custom statuses; the built-ins when unset).\n */\nexport async function readProjectSettings(root: string): Promise<{ sizeDays: SizeDays; statuses: StatusDef[]; sessionBudgetTokens: number }> {\n let s: { tasks?: { sizeDays?: SizeDays }; statuses?: unknown; memory?: { sessionBudgetTokens?: unknown } } | null = null\n try { s = JSON.parse(await fs.readFile(path.join(root, '.vibedoc', 'settings.json'), 'utf8')) } catch {}\n const budget = Number(s?.memory?.sessionBudgetTokens)\n return {\n sizeDays: { ...DEFAULT_SIZE_DAYS, ...(s?.tasks?.sizeDays ?? {}) }, statuses: statusDefs(s?.statuses),\n // R048: token cap for what vibedoc_read_memory returns\n sessionBudgetTokens: budget > 0 ? budget : DEFAULT_SESSION_BUDGET,\n }\n}\n\n/** Replace-or-insert (or remove, for '' / null) one `**Label:**` line inside the head meta block. */\nfunction withMetaLine(content: string, label: string, value: string | null): string {\n const lines = content.split('\\n')\n const end = roadmapMetaEnd(lines)\n const at = lines.slice(0, end).findIndex(l => l.toLowerCase().startsWith(`**${label.toLowerCase()}:**`))\n if (!value) { if (at >= 0) lines.splice(at, 1) }\n else if (at >= 0) lines[at] = `**${label}:** ${value}`\n else lines.splice(end, 0, `**${label}:** ${value}`)\n return lines.join('\\n')\n}\n\nexport async function updateTaskStatus(\n /** A built-in status, an alias, or one of the project's custom status ids */\n taskId: string, statusKey: string, root: string, actor: 'ai' | 'human' = 'human',\n /** Set by a board move or an agent claim / update; drives the owner (see ownerAfterMove) */\n mover?: { actor: 'ai' | 'human'; agent?: string },\n): Promise<{ task: Task; previousStatus: TaskStatus }> {\n const task = await getTask(taskId, root)\n const previousStatus = task.status\n const { statuses, sizeDays } = await readProjectSettings(root)\n const resolved = resolveStatus(statusKey, statuses)\n if (resolved.unknown) throw new RoadmapError(`Unknown status \"${statusKey}\" (expected ${statuses.map(d => d.id).join(' | ')})`)\n const newStatus = resolved.status\n const line = statusLine(statusKey, statuses)\n\n let content = task.raw!\n const statusPattern = /(\\*\\*Status:\\*\\*\\s*).+/\n if (statusPattern.test(content)) {\n content = content.replace(statusPattern, `$1${line}`)\n } else {\n content = content.replace(/^(#[^\\n]+\\n)/, `$1**Status:** ${line}\\n`)\n }\n\n const owner = ownerAfterMove(task.owner, newStatus, mover)\n if (owner !== task.owner) content = withMetaLine(content, 'Owner', owner)\n\n const dates = datesOnMove(newStatus, { due: task.due, started: task.started, done: task.finished }, task.size, localToday(), sizeDays)\n if (dates.due !== task.due) content = withMetaLine(content, 'Due', dates.due)\n if (dates.started !== task.started) content = withMetaLine(content, 'Started', dates.started)\n if (dates.done !== task.finished) content = withMetaLine(content, 'Done', dates.done)\n\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n\n // Append to activity log\n await appendActivity(root, {\n type: 'task_updated', actor,\n title: `${task.id} moved to ${newStatus}`,\n detail: task.title,\n taskId: task.id,\n taskStatus: newStatus,\n })\n\n const { customStatus: _old, ...rest } = task\n return { task: { ...rest, status: newStatus, ...(resolved.customStatus && { customStatus: resolved.customStatus }), owner, due: dates.due, started: dates.started, finished: dates.done, raw: content }, previousStatus }\n}\n\n/** Write (or replace) the task's `## Manual tests` checklist. `report` is a markdown checklist; plain lines become items. */\nexport interface TaskMetaPatch {\n title?: string\n size?: string\n phase?: string\n dependsOn?: string\n /** YYYY-MM-DD, or null / '' to remove the line */\n due?: string | null\n /** \"human\" | \"ai:<agent>\", or null / '' to remove the line */\n owner?: string | null\n}\n\nconst TASK_META_LABELS: [keyof Omit<TaskMetaPatch, 'title'>, string][] = [\n ['phase', 'Phase'], ['size', 'Size'], ['dependsOn', 'Depends on'], ['due', 'Due'], ['owner', 'Owner'],\n]\n\n/** Rewrite the H1 and the head meta block only; the body (manual tests, review, spec) stays byte-for-byte. */\nexport async function updateTaskMeta(\n taskId: string, patch: TaskMetaPatch, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<Task> {\n const task = await getTask(taskId, root)\n const oneLine = (v: string) => v.replace(/\\s+/g, ' ').trim()\n const lines = task.raw!.split('\\n')\n let end = roadmapMetaEnd(lines)\n\n if (patch.title !== undefined) {\n const title = oneLine(patch.title)\n if (!title) throw new RoadmapError('title must not be empty')\n const h1 = lines.findIndex(l => l.startsWith('# '))\n if (h1 >= 0) lines[h1] = `# ${task.id}: ${title}`\n else { lines.unshift(`# ${task.id}: ${title}`); end++ }\n }\n\n for (const [key, label] of TASK_META_LABELS) {\n const raw = patch[key]\n if (raw === undefined) continue\n let value = raw === null ? '' : oneLine(raw)\n if (key === 'due' && value) {\n const d = parseDue(value)\n if (!d) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(raw)})`)\n value = d\n }\n if (key === 'owner' && value) {\n const o = parseOwner(value)\n if (!o) throw new RoadmapError(`owner must be \"human\" or \"ai:<agent>\" (got ${JSON.stringify(raw)})`)\n value = o\n }\n const at = lines.slice(0, end).findIndex(l => l.toLowerCase().startsWith(`**${label.toLowerCase()}:**`))\n if (!value && (key === 'due' || key === 'owner')) {\n if (at >= 0) { lines.splice(at, 1); end-- }\n continue\n }\n const line = `**${label}:** ${value || '—'}`\n if (at >= 0) lines[at] = line\n else { lines.splice(end, 0, line); end++ }\n }\n\n const content = lines.join('\\n')\n if (content === task.raw) return task\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n await appendActivity(root, { type: 'task_updated', actor, title: `${task.id} edited`, detail: task.title, taskId: task.id })\n return getTask(task.id, root)\n}\n\n/** Where a deleted task sat in an epic's **Tasks:** line, so Undo can put it back in place. */\nexport interface TaskLink { epic: string; index: number }\n\n/** Delete the task file and unlink it from every epic's **Tasks:** line. Returns the removed task (with raw) and its links. */\nexport function deleteTask(taskId: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<{ task: Task; links: TaskLink[] }> {\n return withTaskClaimLock(async () => {\n const task = await getTask(taskId, root)\n await fs.unlink(path.join(root, task.file))\n // Task lock, then roadmap lock: same order as applyPlan.\n const { items } = await listRoadmap(root)\n const links: TaskLink[] = []\n for (const epic of items.filter(i => i.tasks.includes(task.id))) {\n links.push({ epic: epic.id, index: epic.tasks.indexOf(task.id) })\n await updateRoadmapItem(epic.id, { tasks: epic.tasks.filter(t => t !== task.id) }, root, actor)\n }\n await appendActivity(root, { type: 'task_updated', actor, title: `${task.id} deleted`, detail: task.title, taskId: task.id })\n return { task, links }\n })\n}\n\n/** Move a task to an epic (or out of every epic): the epics' **Tasks:** lines and the task's **Phase:** follow. */\nexport async function setTaskEpic(taskId: string, epicId: string | null, root: string, actor: 'ai' | 'human' = 'human'): Promise<Task> {\n const task = await getTask(taskId, root)\n const { items } = await listRoadmap(root)\n const target = epicId ? items.find(i => i.id === epicId.trim().toUpperCase() && i.parent !== null) : undefined\n if (epicId && !target) throw new RoadmapError(`Epic not found: ${epicId}`)\n for (const e of items.filter(i => i.tasks.includes(task.id) && i.id !== target?.id)) {\n await updateRoadmapItem(e.id, { tasks: e.tasks.filter(t => t !== task.id) }, root, actor)\n }\n if (target && !target.tasks.includes(task.id)) await updateRoadmapItem(target.id, { tasks: [...target.tasks, task.id] }, root, actor)\n return updateTaskMeta(task.id, { phase: target ? `${target.id} — ${target.title}` : '' }, root, actor)\n}\n\nexport type BulkTaskAction = { status: string } | { epic: string | null } | { delete: true }\n\n/** One action over many tasks. Stops at the first failure; tasks before it keep the change. */\nexport async function bulkTasks(\n ids: string[], action: BulkTaskAction, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ deleted: { task: Task; links: TaskLink[] }[] }> {\n const deleted: { task: Task; links: TaskLink[] }[] = []\n for (const id of ids) {\n if ('status' in action) await updateTaskStatus(id, action.status, root, actor, { actor })\n else if ('epic' in action) await setTaskEpic(id, action.epic, root, actor)\n else if ('delete' in action) deleted.push(await deleteTask(id, root, actor))\n }\n return { deleted }\n}\n\n/** Only a plain `<dir>/<name>.md` path counts: no traversal, no subfolders. */\nfunction isFileIn(rel: unknown, dir: string, name: RegExp): rel is string {\n if (typeof rel !== 'string') return false\n const norm = path.posix.normalize(rel)\n return norm === rel && path.posix.dirname(norm) === dir && name.test(path.posix.basename(norm))\n}\n\n/** Undo for deleteTask: write the file back byte-for-byte (never over an existing one) and re-link it. */\nexport function restoreTask(file: unknown, raw: unknown, links: TaskLink[], root: string, actor: 'ai' | 'human' = 'human'): Promise<Task> {\n return withTaskClaimLock(async () => {\n if (!isFileIn(file, 'plans/tasks', /^T\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid task to restore')\n const id = path.basename(file).match(/^(T\\d+)/i)![1].toUpperCase()\n if (await getTask(id, root).then(() => true, () => false)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, 'plans/tasks'), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n const { items } = await listRoadmap(root)\n for (const link of Array.isArray(links) ? links : []) {\n const epic = items.find(i => i.id === link?.epic)\n if (!epic || epic.tasks.includes(id)) continue\n const tasks = [...epic.tasks]\n tasks.splice(Math.max(0, Math.min(Number(link.index) || 0, tasks.length)), 0, id)\n await updateRoadmapItem(epic.id, { tasks }, root, actor)\n }\n await appendActivity(root, { type: 'task_updated', actor, title: `${id} restored`, taskId: id })\n return getTask(id, root)\n })\n}\n\nexport async function saveManualTests(taskId: string, report: string, root: string, actor: 'ai' | 'human' = 'ai'): Promise<Task> {\n const task = await getTask(taskId, root)\n const content = setManualTests(task.raw ?? '', report, actor, new Date().toISOString().slice(0, 10))\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return getTask(task.id, root)\n}\n\n/** The task isn't in the state an action needs (e.g. approving a task that isn't in review). Routes map it to 409. */\nexport class TaskStateError extends Error {}\n\nasync function reviewTask(taskId: string, outcome: ReviewOutcome, note: string, next: TaskStatus, root: string) {\n const task = await getTask(taskId, root)\n if (task.status !== 'review') throw new TaskStateError(`${task.id} is ${task.status}, not in review`)\n const at = new Date().toISOString().replace(/\\.\\d{3}Z$/, 'Z')\n const content = appendReviewEntry(task.raw ?? '', outcome, note, at)\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return updateTaskStatus(task.id, next, root, 'human')\n}\n\n/** Review → done, with an `approved` entry in the task's `## Review` section. */\nexport function approveTask(taskId: string, root: string, note = '') {\n return reviewTask(taskId, 'approved', note, 'done', root)\n}\n\n/** Review → todo (so vibedoc_next_task hands it out again), with the note as a `changes requested` entry. Note required. */\nexport function sendBackTask(taskId: string, note: string, root: string) {\n return reviewTask(taskId, 'changes requested', note, 'todo', root)\n}\n\n/** Tick or untick one manual test item (index in file order). Never changes the task status. Throws RangeError for a bad index. */\nexport async function setManualTestChecked(taskId: string, index: number, checked: boolean, root: string): Promise<Task> {\n const task = await getTask(taskId, root)\n const content = toggleManualTest(task.raw ?? '', index, checked)\n if (content !== task.raw) await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return getTask(task.id, root)\n}\n\n// ponytail: in-process mutex so two agents never claim the same task; separate from the roadmap lock.\n// Doesn't cover a second VibeDoc process on the same root.\nlet taskClaimLock: Promise<unknown> = Promise.resolve()\nfunction withTaskClaimLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = taskClaimLock.then(fn, fn)\n taskClaimLock = run.catch(() => {})\n return run\n}\n\n/** Atomically pick the next ready task of an epic and move it to in-progress. */\nexport function claimNextTask(\n epicId: string, root: string, agent?: string\n): Promise<{ result: QueueResult; task?: Task; previousStatus?: TaskStatus }> {\n return withTaskClaimLock(async () => {\n const epic = await getRoadmapItem(epicId, root)\n if (!epic.parent) throw new Error(`${epic.id} is a horizon; pass an epic id`)\n const { tasks } = await listTasks(root)\n const result = pickNextTask(epic, tasks)\n if (result.kind !== 'ready') return { result }\n const { task, previousStatus } = await updateTaskStatus(result.taskId, 'in-progress', root, 'ai', { actor: 'ai', agent })\n return { result, task, previousStatus }\n })\n}\n\nexport interface CreateTaskParams {\n title: string\n phase?: string\n size?: string\n description?: string\n dependsOn?: string\n due?: string\n body?: string // replaces the template sections below the meta block\n}\n\n/** Serialized with next_task claims and plan applies, so concurrent creates never pick the same id. */\nexport function createTask(params: CreateTaskParams, root: string): Promise<Task> {\n return withTaskClaimLock(() => createTaskUnlocked(params, root))\n}\n\n/** Caller must hold withTaskClaimLock (applyPlan does). */\nasync function createTaskUnlocked(params: CreateTaskParams, root: string): Promise<Task> {\n const { tasks } = await listTasks(root)\n // One line only: a newline in the title would inject **Key:** lines into the meta block\n const title = params.title.replace(/\\s+/g, ' ').trim()\n\n const ids = tasks\n .map(t => parseInt(t.id.replace(/^T/i, ''), 10))\n .filter(n => !isNaN(n))\n const nextNum = ids.length > 0 ? Math.max(...ids) + 1 : 1\n const id = `T${String(nextNum).padStart(3, '0')}`\n\n const slug = title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, '')\n .slice(0, 40) || 'task'\n\n const filename = `${id}-${slug}.md`\n const tasksDir = path.join(root, 'plans', 'tasks')\n await fs.mkdir(tasksDir, { recursive: true })\n const filePath = path.join(tasksDir, filename)\n\n let due = params.due ? parseDue(params.due) : null\n if (params.due && !due) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(params.due)})`)\n // A new task in an epic with a deadline takes the epic's due (R055)\n const epicId = params.phase?.trim().match(/^(R\\d+)\\b/i)?.[1]\n if (!due && epicId) due = (await getRoadmapItem(epicId, root).catch(() => null))?.due ?? null\n\n const meta = `# ${id}: ${title}\n**Status:** 📋 Ready\n**Phase:** ${params.phase || '—'}\n**Size:** ${params.size || '—'}\n**Depends on:** ${params.dependsOn || '—'}\n${due ? `**Due:** ${due}\\n` : ''}`\n const content = params.body !== undefined ? `${meta}\\n${params.body.trim()}\\n` : `${meta}\n## What to build\n${params.description || '—'}\n\n## Scope\n- [ ]\n\n## Acceptance criteria\n- [ ]\n\n## Definition of done\n—\n`\n\n await fs.writeFile(filePath, content, { flag: 'wx', encoding: 'utf8' })\n return getTask(id, root)\n}\n\n/** Validate against the current files, then keep the selected keys. Throws RoadmapError on any problem. */\nfunction checkPlan(plan: unknown, selected: unknown, items: RoadmapItem[], taskIds: string[]): Plan {\n const errors = validatePlan(plan, { roadmap: items, taskIds })\n if (errors.length > 0) throw new RoadmapError(errors.join('\\n'))\n if (!Array.isArray(selected)) throw new RoadmapError('selected must be an array of plan keys')\n const { plan: sel, errors: selErrors } = selectPlan(plan as Plan, selected.map(String))\n if (selErrors.length > 0) throw new RoadmapError(selErrors.join('\\n'))\n return sel\n}\n\n/**\n * Write the selected items of a plan. Validates again against the current files.\n * breakdown: plan keys become real T ids in order (so `dependsOn` keys are written as those ids) and are\n * linked to the epic (an existing one, or `newEpic` created first; neither = loose tasks, no Phase); runs under the task-claim lock so ids can't collide with next_task or another apply.\n * roadmap: horizons first (keys → R ids), then epics under their resolved parent; order and status use\n * createRoadmapItem's defaults (after the last sibling, step 10; planned). Runs under the roadmap lock.\n * `epic` is the breakdown's epic, null for a roadmap plan or loose tasks.\n */\nexport function applyPlan(\n plan: unknown, selected: unknown, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ created: { key: string; id: string; file: string }[]; epic: RoadmapItem | null }> {\n if ((plan as { kind?: unknown } | null)?.kind === 'roadmap') {\n return withRoadmapLock(async () => {\n const [items, { tasks }] = await Promise.all([readRoadmapFiles(root), listTasks(root)])\n const sel = checkPlan(plan, selected, items.map(f => f.item), tasks.map(t => t.id))\n if (sel.kind !== 'roadmap') throw new RoadmapError('expected a roadmap plan')\n const ids = new Map<string, string>()\n const created: { key: string; id: string; file: string }[] = []\n // ponytail: not atomic; a failure mid-way leaves the items written so far (each is a valid item).\n for (const h of sel.horizons) {\n const item = await createRoadmapItemUnlocked({ title: h.title.trim(), body: h.body }, root, actor)\n ids.set(h.key.trim(), item.id)\n created.push({ key: h.key, id: item.id, file: item.file })\n }\n for (const e of sel.epics) {\n const parent = ids.get(e.parent.trim()) ?? e.parent.trim().toUpperCase()\n const item = await createRoadmapItemUnlocked({ title: e.title.trim(), parent, status: e.status, body: e.body }, root, actor)\n created.push({ key: e.key, id: item.id, file: item.file })\n }\n return { created, epic: null }\n })\n }\n return withTaskClaimLock(async () => {\n const [{ items }, { tasks }] = await Promise.all([listRoadmap(root), listTasks(root)])\n const sel = checkPlan(plan, selected, items, tasks.map(t => t.id))\n if (sel.kind !== 'breakdown') throw new RoadmapError('expected a breakdown plan')\n\n // Roadmap lock inside the task lock: same order as updateRoadmapItem below.\n // ponytail: not atomic; a failure after the new epic is written leaves it with no tasks.\n const epic = sel.epic?.trim() ? await getRoadmapItem(sel.epic, root)\n : sel.newEpic ? await createRoadmapItem({\n title: sel.newEpic.title.trim(), parent: sel.newEpic.parent.trim().toUpperCase(), body: sel.newEpic.body,\n }, root, actor)\n : null\n const ids = new Map<string, string>()\n const created: { key: string; id: string; file: string }[] = []\n for (const t of sel.tasks) {\n const deps = (t.dependsOn ?? []).map(d => ids.get(d.trim()) ?? d.trim().toUpperCase())\n const task = await createTaskUnlocked({\n title: t.title.trim(),\n phase: epic ? `${epic.id} — ${epic.title}` : undefined,\n size: t.size,\n dependsOn: deps.join(', ') || undefined,\n due: t.due,\n body: t.body,\n }, root)\n ids.set(t.key.trim(), task.id)\n created.push({ key: t.key, id: task.id, file: task.file })\n }\n\n if (!epic) return { created, epic: null }\n const fresh = await getRoadmapItem(epic.id, root)\n const updated = await updateRoadmapItem(epic.id, { tasks: [...fresh.tasks, ...created.map(c => c.id)] }, root, actor)\n return { created, epic: updated }\n })\n}\n\n\n// ─── Decisions (ADRs) ─────────────────────────────────────────────────────────\n\nexport interface ADRParams {\n title: string\n context: string\n decision: string\n rationale?: string\n alternatives?: { option: string; reason: string }[]\n consequences?: string\n}\n\nexport async function logDecision(params: ADRParams, root: string, actor: 'ai' | 'human' = 'human'): Promise<{ adrNumber: string; path: string }> {\n const { title, context, decision, rationale, alternatives = [], consequences } = params\n const existing = await glob('docs/architecture/decisions/ADR-*.md', { cwd: root, nodir: true })\n const nums = existing.map(f => parseInt(path.basename(f).match(/ADR-(\\d+)/)?.[1] || '0')).filter(n => !isNaN(n))\n const nextNum = nums.length > 0 ? Math.max(...nums) + 1 : 1\n const numStr = String(nextNum).padStart(3, '0')\n const slug = title.toLowerCase().replace(/[^a-z0-9\\s-]/g, '').replace(/\\s+/g, '-').slice(0, 50)\n const filename = `ADR-${numStr}-${slug}.md`\n const today = new Date().toISOString().split('T')[0]\n const altsTable = alternatives.length > 0\n ? alternatives.map(a => `| ${a.option} | ${a.reason} |`).join('\\n')\n : '| (none) | — |'\n\n const content = `# ADR-${numStr}: ${title}\\n\\n**Status:** ✅ Accepted\\n**Date:** ${today}\\n\\n## Context\\n${context}\\n\\n## Decision\\n${decision}\\n\\n## Rationale\\n${rationale || ''}\\n\\n## Alternatives considered\\n| Option | Why rejected |\\n|--------|-------------|\\n${altsTable}\\n\\n## Consequences\\n${consequences || ''}\\n`\n\n const filePath = path.join(root, 'docs/architecture/decisions', filename)\n await fs.mkdir(path.dirname(filePath), { recursive: true })\n await fs.writeFile(filePath, content, 'utf8')\n\n // Update index\n const indexPath = path.join(root, 'docs/architecture/decisions/_INDEX.md')\n try {\n let idx = await fs.readFile(indexPath, 'utf8')\n idx = idx.trimEnd() + `\\n| ADR-${numStr} | ${title} | ✅ Accepted | ${today} |\\n`\n await fs.writeFile(indexPath, idx, 'utf8')\n } catch {\n await fs.writeFile(indexPath, `# ADR Index\\n\\n| ADR | Title | Status | Date |\\n|-----|-------|--------|------|\\n| ADR-${numStr} | ${title} | ✅ Accepted | ${today} |\\n`, 'utf8')\n }\n\n await appendActivity(root, {\n type: 'decision_logged', actor,\n title: `ADR-${numStr}: ${title}`,\n detail: decision.slice(0, 100),\n })\n\n return { adrNumber: `ADR-${numStr}`, path: `docs/architecture/decisions/${filename}` }\n}\n\n// ─── Memory ───────────────────────────────────────────────────────────────────\n\nexport interface MemoryParams {\n currentState: string\n justCompleted?: string[]\n workingOn?: string\n upNext?: string[]\n issues?: (string | { issue: string; severity?: string; status?: string })[]\n decisions?: string[]\n techDebt?: string[]\n handoff: string\n}\n\nexport async function readMemory(root: string): Promise<{ content: string; exists: boolean }> {\n try {\n const content = await fs.readFile(path.join(root, 'memory', 'MEMORY.md'), 'utf8')\n return { content, exists: true }\n } catch {\n return { content: '*(No MEMORY.md found — AI will create one at end of session)*', exists: false }\n }\n}\n\nexport async function updateMemory(params: MemoryParams, root: string, actor: 'ai' | 'human' = 'human'): Promise<void> {\n const { currentState, justCompleted = [], workingOn = '', upNext = [], issues = [], decisions = [], techDebt = [], handoff } = params\n const now = new Date()\n const today = now.toISOString().split('T')[0]\n const time = now.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })\n\n const content = `# Project Memory\\n**Last updated:** ${today} at ${time}\\n\\n## Current state\\n${currentState}\\n\\n## Just completed\\n${justCompleted.map(i => `- ${i}`).join('\\n') || '- (nothing this session)'}\\n\\n## Working on now\\n${workingOn || '(nothing active)'}\\n\\n## Up next\\n${upNext.map((item, i) => `${i + 1}. ${item}`).join('\\n') || '1. (define next steps)'}\\n\\n## Active issues\\n| Issue | Severity | Status |\\n|-------|----------|--------|\\n${issues.map(i => typeof i === 'string' ? `| ${i} | medium | open |` : `| ${i.issue} | ${i.severity || 'medium'} | ${i.status || 'open'} |`).join('\\n') || '| None | — | — |'}\\n\\n## Recent decisions\\n${decisions.map(d => `- ${d}`).join('\\n') || '- (none this session)'}\\n\\n## Tech debt\\n${techDebt.map(d => `- ${d}`).join('\\n') || '- (none noted)'}\\n\\n## Handoff for next session\\n${handoff}\\n`\n\n await fs.mkdir(path.join(root, 'memory'), { recursive: true })\n await fs.writeFile(path.join(root, 'memory', 'MEMORY.md'), content, 'utf8')\n\n await appendActivity(root, {\n type: 'memory_updated', actor,\n title: 'Session memory updated',\n detail: handoff.slice(0, 120),\n })\n}\n\n// ─── Knowledge entries (R046) ─────────────────────────────────────────────────\n\nconst ENTRIES_DIR = path.join('memory', 'entries')\n\n// ponytail: in-process mutex so two agents never get the same new id; doesn't cover a second VibeDoc process on the same root.\nlet entryLock: Promise<unknown> = Promise.resolve()\nfunction withEntryLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = entryLock.then(fn, fn)\n entryLock = run.catch(() => {})\n return run\n}\n\n/** Every parseable `memory/entries/*.md`, sorted by id. Missing folder → []. */\nexport async function listEntries(root: string): Promise<Entry[]> {\n let names: string[]\n try {\n names = await fs.readdir(path.join(root, ENTRIES_DIR))\n } catch {\n return []\n }\n const entries = await Promise.all(names.filter(n => n.endsWith('.md')).map(async n => {\n const file = path.join(ENTRIES_DIR, n)\n return parseEntry(await fs.readFile(path.join(root, file), 'utf8'), file)\n }))\n return entries.filter((e): e is Entry => !!e).sort((a, b) => a.id.localeCompare(b.id, 'en', { numeric: true }))\n}\n\nexport async function getEntry(id: string, root: string): Promise<Entry | null> {\n const norm = normalizeEntryId(id)\n return (await listEntries(root)).find(e => e.id === norm) ?? null\n}\n\n/**\n * Create (no id) or update (id) one entry. Throws with the validation message on bad input or an unknown id.\n * Stamps `**By:**`: \"human\", or \"ai:<agent>\" for an agent save (R047).\n */\nexport function saveEntry(input: EntryInput, root: string, actor: 'ai' | 'human' = 'human', agent?: string): Promise<Entry> {\n const error = validateEntryInput(input)\n if (error) return Promise.reject(new Error(error))\n return withEntryLock(async () => {\n const entries = await listEntries(root)\n let id: string\n let previous: Entry | undefined\n if (input.id !== undefined) {\n id = normalizeEntryId(String(input.id)) as string\n previous = entries.find(e => e.id === id)\n if (!previous) throw new Error(`Entry ${id} not found`)\n } else {\n id = nextEntryId(entries.map(e => e.id))\n }\n const summary = input.summary.trim()\n const entry: Entry = {\n id, type: input.type as EntryType, summary, body: (input.body ?? '').trim(),\n updatedAt: localToday(), by: actor === 'human' ? 'human' : parseOwner(`ai:${agent || 'agent'}`) ?? 'ai:agent',\n file: path.join(ENTRIES_DIR, `${id}-${entrySlug(summary)}.md`),\n }\n await fs.mkdir(path.join(root, ENTRIES_DIR), { recursive: true })\n await fs.writeFile(path.join(root, entry.file), formatEntry(entry), 'utf8')\n // Summary changed → new slug; the id stays\n if (previous && previous.file !== entry.file) await fs.rm(path.join(root, previous.file), { force: true })\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${id} saved`, detail: summary })\n return entry\n })\n}\n\n/** Entries in the order of `ids` (any case / padding), plus the ids that matched nothing. */\nexport async function getEntriesByIds(ids: string[], root: string): Promise<{ found: Entry[]; missing: string[] }> {\n const byId = new Map((await listEntries(root)).map(e => [e.id, e]))\n const found: Entry[] = []\n const missing: string[] = []\n for (const raw of ids) {\n const entry = byId.get(normalizeEntryId(String(raw)) ?? '')\n if (entry) found.push(entry)\n else missing.push(String(raw))\n }\n return { found, missing }\n}\n\n/** What an agent reads at session start: MEMORY.md + the entry index, capped at `memory.sessionBudgetTokens` (R048). */\nexport async function sessionStartMemory(root: string): Promise<string> {\n const [memory, entries, { sessionBudgetTokens }] = await Promise.all([readMemory(root), listEntries(root), readProjectSettings(root)])\n return fitToBudget(memory.content, indexHits(entries), sessionBudgetTokens).text\n}\n\n/** The \"## Related memory\" block for a task (up to `limit` strong keyword matches), or '' (R048). */\nexport async function relatedEntries(task: Pick<Task, 'title' | 'phase' | 'raw'>, root: string, limit = 3): Promise<string> {\n // rank everything so the score filter in formatRelated sees all candidates before the limit\n const entries = await listEntries(root)\n return formatRelated(rankEntries(entries, taskQuery(task), { limit: entries.length }), limit)\n}\n\n// ─── File history from git (R053) ─────────────────────────────────────────────\n\nconst execFileP = promisify(execFile)\nconst GIT_SHA_RE = /^[0-9a-f]{7,40}$/\nconst HISTORY_MAX = 50\n\n/** One commit that touched a file; `path` is its repo-relative path after that commit ('' if the commit only deleted it). */\nexport type FileCommit = { sha: string; author: string; date: string; subject: string; path: string }\n/** `reason: 'no-git'` when the project isn't a git repo or git is missing. */\nexport type FileHistory = { history: FileCommit[]; uncommitted: boolean; reason?: 'no-git' }\n\n/** git with an argument array (never a shell string), run in the project root. */\nasync function git(args: string[], root: string): Promise<string> {\n const { stdout } = await execFileP('git', args, { cwd: root, maxBuffer: 4 * 1024 * 1024 })\n return stdout\n}\n\nfunction relInsideRoot(relPath: string, root: string): string {\n const full = path.resolve(root, relPath)\n if (!full.startsWith(path.resolve(root) + path.sep)) throw new RoadmapError('Path outside root')\n return path.relative(root, full).split(path.sep).join('/')\n}\n\n/**\n * Commits that touched `relPath`, newest first, plus whether it has uncommitted changes.\n * An entry file (`E001-<slug>.md`) is matched by its id, not its name: a new summary renames the file, and small\n * files often fall under git's rename detection, so `--follow` would lose the history before the rename.\n */\nexport async function getFileHistory(relPath: string, root: string, limit = 20): Promise<FileHistory> {\n const rel = relInsideRoot(relPath, root)\n const id = /^(E\\d+)-[^/]*\\.md$/.exec(path.posix.basename(rel))?.[1]\n // ponytail: a deleted id that gets reused later shares this history; fine while ids are rarely reused\n const spec = id ? [`:(glob)${path.posix.dirname(rel)}/${id}-*.md`] : ['--follow', rel]\n try {\n const out = await git(['log', '--name-status', '--format=%x1e%H%x1f%an%x1f%aI%x1f%s', '-n', String(Math.min(limit, HISTORY_MAX)), ...(id ? ['--', ...spec] : [spec[0], '--', spec[1]])], root)\n const history = out.split('\\x1e').filter(r => r.trim()).map((record): FileCommit => {\n const [head, ...rest] = record.split('\\n')\n const [sha, author, date, subject] = head.split('\\x1f')\n // \"M\\tpath\", \"A\\tpath\", \"R087\\told\\tnew\", \"D\\tpath\": the path that exists after this commit (none if only deleted)\n const kept = rest.map(l => l.split('\\t')).filter(f => f.length > 1 && f[0] !== 'D').map(f => f[f.length - 1])\n return { sha, author, date, subject, path: kept[0] ?? '' }\n })\n const status = await git(['status', '--porcelain', '--', id ? spec[0] : rel], root)\n return { history, uncommitted: status.trim().length > 0 }\n } catch (e) {\n console.warn(`git history unavailable for ${rel}`, e instanceof Error ? e.message : e)\n return { history: [], uncommitted: false, reason: 'no-git' }\n }\n}\n\n/** The file's text at `sha`, using the path it had in that commit. Throws 400 on a bad sha, 404 if `sha` isn't in its history. */\nexport async function getFileAtCommit(relPath: string, sha: string, root: string): Promise<string> {\n if (!GIT_SHA_RE.test(sha)) throw new RoadmapError(`Invalid commit \"${sha}\"`)\n const { history } = await getFileHistory(relPath, root, HISTORY_MAX)\n const commit = history.find(c => c.sha.startsWith(sha))\n if (!commit) throw new RoadmapError(`Commit ${sha} did not touch ${relPath}`, 404)\n if (!commit.path) throw new RoadmapError(`The file was deleted in ${commit.sha.slice(0, 7)}`, 404)\n // commit.path is relative to the repo top level, which may be above root\n const top = (await git(['rev-parse', '--show-toplevel'], root)).trim()\n return git(['show', `${commit.sha}:${commit.path}`], top)\n}\n\n/** Keyword recall over the entries: compact hits, no bodies (R048). */\nexport async function recallEntries(query: string, opts: { type?: string; limit?: number }, root: string): Promise<RecallHit[]> {\n return rankEntries(await listEntries(root), query, opts)\n}\n\n/** Removes the file for good; git keeps its history. Throws on an unknown id. */\n/** Returns the deleted entry plus its file text, so a UI can undo (restoreEntry). */\nexport function deleteEntry(id: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<Entry & { raw: string }> {\n const norm = normalizeEntryId(String(id ?? ''))\n if (!norm) return Promise.reject(new Error(`Invalid id \"${id}\": expected E followed by a number, e.g. E001`))\n // ponytail: ids come from files on disk, so deleting the highest entry lets the next save reuse its id; git history is per path and the slug differs\n return withEntryLock(async () => {\n const entry = (await listEntries(root)).find(e => e.id === norm)\n if (!entry) throw new Error(`Entry ${norm} not found`)\n const raw = await fs.readFile(path.join(root, entry.file), 'utf8')\n await fs.rm(path.join(root, entry.file))\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${norm} deleted`, detail: entry.summary })\n return { ...entry, raw }\n })\n}\n\n/** Undo for deleteEntry: write the file back byte-for-byte, only as a plain memory/entries/E<n>-*.md and only if that id is free. */\nexport function restoreEntry(file: unknown, raw: unknown, root: string, actor: 'ai' | 'human' = 'human'): Promise<Entry> {\n return withEntryLock(async () => {\n if (!isFileIn(file, 'memory/entries', /^E\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid entry to restore')\n const entry = parseEntry(raw, file)\n const id = normalizeEntryId(path.basename(file).match(/^(E\\d+)/i)?.[1] ?? '')\n if (!entry || entry.id !== id) throw new RoadmapError('Invalid entry to restore')\n // the next save can reuse the highest id, so the id may be taken by now\n if ((await listEntries(root)).some(e => e.id === id)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, ENTRIES_DIR), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${id} restored`, detail: entry.summary })\n return entry\n })\n}\n\n// ─── Activity log ─────────────────────────────────────────────────────────────\n\nconst ACTIVITY_FILE = '.vibedoc-activity.json'\nconst ACTIVITY_CAP = 2000\n\n// ─── Description cache ────────────────────────────────────────────────────────\n\nconst DESCRIPTIONS_FILE = '.vibedoc-descriptions.json'\n\nexport async function readDescriptions(root: string): Promise<DescriptionCache> {\n try {\n const raw = await fs.readFile(path.join(root, DESCRIPTIONS_FILE), 'utf8')\n return JSON.parse(raw) as DescriptionCache\n } catch {\n return {}\n }\n}\n\nexport async function writeDescriptions(root: string, cache: DescriptionCache): Promise<void> {\n const filePath = path.join(root, DESCRIPTIONS_FILE)\n await fs.mkdir(path.dirname(filePath), { recursive: true })\n await fs.writeFile(filePath, JSON.stringify(cache, null, 2), 'utf8')\n}\n\nexport async function writeDescriptionEntry(\n root: string,\n filePath: string,\n entry: DescriptionCache[string]\n): Promise<void> {\n const normalizedKey = path.normalize(filePath).replace(/\\\\/g, '/')\n const cache = await readDescriptions(root)\n cache[normalizedKey] = entry\n await writeDescriptions(root, cache)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet _anthropic: any = null\n\nasync function getAnthropicClient(): Promise<any> {\n if (!_anthropic) {\n const { default: Anthropic } = await import('@anthropic-ai/sdk')\n _anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY })\n }\n return _anthropic\n}\n\nexport function extractDescription(content: string): string {\n const lines = content.split('\\n')\n let heading = ''\n\n for (const line of lines) {\n const m = line.match(/^#{1,3}\\s+(.+)/)\n if (m && !heading) {\n heading = m[1].trim().slice(0, 120)\n continue\n }\n const t = line.trim()\n if (\n t &&\n !t.startsWith('#') &&\n !t.startsWith('```') &&\n !t.startsWith('|') &&\n !t.startsWith('-') &&\n !t.startsWith('*') &&\n t.length > 20\n ) {\n return t.slice(0, 120)\n }\n }\n return heading\n}\n\nexport async function enrichDescription(filePath: string, root: string): Promise<string> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, filePath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n\n const client = await getAnthropicClient()\n const content = await fs.readFile(fullPath, 'utf8')\n\n const message = await client.messages.create({\n model: 'claude-haiku-4-5-20251001',\n max_tokens: 100,\n messages: [{\n role: 'user',\n content: `Write a single sentence (max 120 characters) describing what this file is about. Output ONLY the sentence, nothing else.\\n\\n${content.slice(0, 2000)}`,\n }],\n })\n\n const textBlock = message.content.find((b: { type: string }) => b.type === 'text') as { type: 'text'; text: string } | undefined\n if (!textBlock) throw new Error('No text block in Anthropic response')\n const description = textBlock.text.trim().slice(0, 120)\n\n await writeDescriptionEntry(root, filePath, { description, source: 'ai', updatedAt: new Date().toISOString() })\n\n return description\n}\n\nexport async function listExplorerFiles(root: string): Promise<ExplorerFile[]> {\n const docs = await listDocs(root)\n const cache = await readDescriptions(root)\n\n return Promise.all(docs.map(async (doc) => {\n const cached = cache[doc.path]\n let description = cached?.description ?? ''\n const source: 'extracted' | 'ai' = cached?.source ?? 'extracted'\n\n // Get mtime first so we can use it as updatedAt fallback\n let mtime = new Date().toISOString()\n try {\n const stat = await fs.stat(path.join(root, doc.path))\n mtime = stat.mtime.toISOString()\n } catch { /* ignore */ }\n\n const updatedAt = cached?.updatedAt ?? mtime\n\n if (!cached) {\n try {\n const content = await fs.readFile(path.join(root, doc.path), 'utf8')\n description = extractDescription(content)\n } catch { /* ignore */ }\n }\n\n return { path: doc.path, name: doc.name, section: doc.section, description, source, updatedAt, mtime }\n }))\n}\n\n// ponytail: current session per root+actor lives in memory (on globalThis so dev HMR keeps it); a server restart starts a new session.\nconst globalForSessions = globalThis as unknown as { vibedocSessions?: Map<string, { id: string; lastAt: number }> }\nconst currentSessions = globalForSessions.vibedocSessions ?? (globalForSessions.vibedocSessions = new Map())\n\nfunction stampSession(root: string, event: Omit<ActivityEvent, 'id' | 'timestamp'>, now: number): string {\n const key = `${root}\\0${event.actor}`\n let cur = currentSessions.get(key)\n if (!cur || event.type === 'session_start' || now - cur.lastAt > SESSION_GAP_MS) {\n cur = { id: `ses_${now}_${Math.random().toString(36).slice(2, 7)}`, lastAt: now }\n currentSessions.set(key, cur)\n }\n cur.lastAt = now\n return cur.id\n}\n\nasync function appendActivity(root: string, event: Omit<ActivityEvent, 'id' | 'timestamp'>): Promise<void> {\n const now = Date.now()\n const full: ActivityEvent = {\n id: `evt_${now}_${Math.random().toString(36).slice(2, 7)}`,\n timestamp: new Date(now).toISOString(),\n ...event,\n sessionId: stampSession(root, event, now),\n }\n\n const file = path.join(root, ACTIVITY_FILE)\n let events: ActivityEvent[] = []\n try {\n const raw = await fs.readFile(file, 'utf8')\n events = JSON.parse(raw)\n } catch {}\n\n events.unshift(full)\n if (events.length > ACTIVITY_CAP) events = events.slice(0, ACTIVITY_CAP)\n await fs.writeFile(file, JSON.stringify(events, null, 2), 'utf8')\n}\n\nconst DOC_EDIT_COALESCE_MS = 10 * 60_000\nconst DOC_EDIT_LOOKBACK = 50\n\n/**\n * Record who last saved a doc (R055 doc owner). Autosave fires every few seconds, so a save by the same\n * actor within 10 minutes of the newest event for that doc just moves that event's time forward.\n */\nexport async function noteDocEdit(root: string, docPath: string, actor: 'ai' | 'human'): Promise<void> {\n const file = path.join(root, ACTIVITY_FILE)\n let events: ActivityEvent[] = []\n try { events = JSON.parse(await fs.readFile(file, 'utf8')) } catch {}\n // Other events (an agent moving tasks) land in between, so look back a little, not just at the top\n const i = events.slice(0, DOC_EDIT_LOOKBACK).findIndex(e => e.type === 'doc_updated' && e.detail === docPath)\n const prev = i >= 0 ? events[i] : undefined\n if (prev && prev.actor === actor && Date.now() - Date.parse(prev.timestamp) < DOC_EDIT_COALESCE_MS) {\n // move it to the top with the new time, so the log stays newest-first\n events.splice(i, 1)\n events.unshift({ ...prev, timestamp: new Date().toISOString() })\n await fs.writeFile(file, JSON.stringify(events, null, 2), 'utf8')\n return\n }\n await appendActivity(root, { type: 'doc_updated', actor, title: `Edited ${docPath}`, detail: docPath })\n}\n\n/** Who last created or saved the doc, from the activity log; null when the log has nothing on it. */\nexport async function docLastEdit(root: string, docPath: string): Promise<{ actor: 'ai' | 'human'; at: string } | null> {\n const e = (await readActivity(root, ACTIVITY_CAP)).find(\n (x) => (x.type === 'doc_updated' || x.type === 'doc_created') && x.detail === docPath,\n )\n return e ? { actor: e.actor, at: e.timestamp } : null\n}\n\nexport async function readActivity(root: string, limit = 50): Promise<ActivityEvent[]> {\n try {\n const raw = await fs.readFile(path.join(root, ACTIVITY_FILE), 'utf8')\n const events: ActivityEvent[] = JSON.parse(raw)\n return events.slice(0, limit)\n } catch {\n return []\n }\n}\n\nexport async function logSessionStart(root: string, actor: 'ai' | 'human' = 'ai'): Promise<void> {\n await appendActivity(root, { type: 'session_start', actor, title: 'Session started', detail: 'Agent connected' })\n}\n\n// ─── Status summary ───────────────────────────────────────────────────────────\n\n// ─── Doc operations (append, rename, delete) ──────────────────────────────────\n\nexport async function appendDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n let existing: string\n try {\n existing = await fs.readFile(fullPath, 'utf8')\n } catch {\n throw new Error(`Doc not found: ${docPath}`)\n }\n await fs.writeFile(fullPath, existing.trimEnd() + '\\n\\n' + content, 'utf8')\n}\n\nexport async function renameDoc(oldPath: string, newPath: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullOld = path.resolve(root, oldPath)\n const fullNew = path.resolve(root, newPath)\n if (!fullOld.startsWith(resolvedRoot + path.sep) && fullOld !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n if (!fullNew.startsWith(resolvedRoot + path.sep) && fullNew !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n // fs.rename silently replaces an existing file\n if (fullNew !== fullOld && await fs.access(fullNew).then(() => true, () => false)) {\n throw new Error(`A file already exists at ${newPath}`)\n }\n await fs.mkdir(path.dirname(fullNew), { recursive: true })\n try {\n await fs.rename(fullOld, fullNew)\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === 'EXDEV') {\n await fs.copyFile(fullOld, fullNew)\n await fs.unlink(fullOld)\n } else throw e\n }\n await appendActivity(root, { type: 'doc_renamed', actor: 'human', title: `Renamed ${oldPath} → ${newPath}` })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n}\n\n/** Returns the removed content, so the client can offer Undo (re-create via createDoc). */\nexport async function deleteDoc(docPath: string, root: string): Promise<string> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n const content = await fs.readFile(fullPath, 'utf8')\n await fs.unlink(fullPath)\n await appendActivity(root, { type: 'doc_deleted', actor: 'human', title: `Deleted ${docPath}` })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n return content\n}\n\n// ─── Document Registry ────────────────────────────────────────────────────────\n\nconst REGISTRY_PATH = 'docs/REGISTRY.md'\nconst ANNOTATIONS_START = '<!-- REGISTRY_ANNOTATIONS_START -->'\nconst ANNOTATIONS_END = '<!-- REGISTRY_ANNOTATIONS_END -->'\n\nfunction buildDocTree(files: string[]): string {\n // Build a map of directories and files\n const tree: Map<string, string[]> = new Map()\n for (const f of files) {\n const dir = path.dirname(f)\n if (!tree.has(dir)) tree.set(dir, [])\n tree.get(dir)!.push(path.basename(f))\n }\n\n const lines: string[] = []\n const dirs = Array.from(tree.keys()).sort()\n\n // Build indented tree\n const rendered = new Set<string>()\n function renderDir(dir: string, indent: number) {\n if (rendered.has(dir)) return\n rendered.add(dir)\n const prefix = ' '.repeat(indent)\n if (dir !== '.') {\n const parts = dir.split('/')\n lines.push(`${prefix}${parts[parts.length - 1]}/`)\n }\n const childIndent = dir === '.' ? 0 : indent + 1\n const childPrefix = ' '.repeat(childIndent)\n // Files directly in this dir\n const dirFiles = tree.get(dir) || []\n for (const f of dirFiles.sort()) {\n lines.push(`${childPrefix}${f}`)\n }\n // Subdirs\n for (const d of dirs) {\n if (d !== dir && path.dirname(d) === dir) {\n renderDir(d, childIndent)\n }\n }\n }\n\n renderDir('.', 0)\n return lines.join('\\n')\n}\n\nfunction parseAnnotations(content: string): Map<string, { description: string; keywords: string }> {\n const map = new Map<string, { description: string; keywords: string }>()\n const start = content.indexOf(ANNOTATIONS_START)\n const end = content.indexOf(ANNOTATIONS_END)\n if (start === -1 || end === -1) return map\n\n const section = content.slice(start + ANNOTATIONS_START.length, end)\n const rows = section.split('\\n').filter(l => l.startsWith('|') && !l.includes('---') && !l.includes('Path'))\n for (const row of rows) {\n const cols = row.split('|').map(c => c.trim()).filter(Boolean)\n if (cols.length >= 3) {\n map.set(cols[0], { description: cols[1], keywords: cols[2] })\n }\n }\n return map\n}\n\nexport async function readRegistry(root: string): Promise<{ content: string; exists: boolean }> {\n try {\n const content = await fs.readFile(path.join(root, REGISTRY_PATH), 'utf8')\n return { content, exists: true }\n } catch {\n return { content: '*(No REGISTRY.md found — call vibedoc_rebuild_registry to generate it)*', exists: false }\n }\n}\n\nexport async function rebuildRegistry(root: string, actor: 'ai' | 'human' = 'human'): Promise<{ path: string; totalFiles: number }> {\n const docs = await listDocs(root)\n const files = docs.map(d => d.path)\n\n // Parse existing annotations\n let existing = ''\n try {\n existing = await fs.readFile(path.join(root, REGISTRY_PATH), 'utf8')\n } catch {}\n const savedAnnotations = parseAnnotations(existing)\n\n // Build tree\n const tree = buildDocTree(files)\n\n // Build annotations table — preserve existing, stub new files\n const rows: string[] = []\n for (const f of files) {\n const saved = savedAnnotations.get(f)\n rows.push(`| ${f} | ${saved?.description ?? ''} | ${saved?.keywords ?? ''} |`)\n }\n\n const now = new Date().toISOString()\n const content = [\n `# Document Registry`,\n `**Generated:** ${now} **Total:** ${files.length} files`,\n ``,\n `> Edit the Annotations table — it survives rebuilds.`,\n `> Run \\`vibedoc_rebuild_registry\\` after adding/removing docs.`,\n ``,\n `## File Tree`,\n `\\`\\`\\``,\n tree,\n `\\`\\`\\``,\n ``,\n `## Annotations`,\n ``,\n ANNOTATIONS_START,\n `| Path | Description | Keywords |`,\n `|------|-------------|----------|`,\n ...rows,\n ANNOTATIONS_END,\n ``,\n ].join('\\n')\n\n await writeDoc(REGISTRY_PATH, content, root)\n await appendActivity(root, {\n type: 'registry_rebuilt',\n actor,\n title: 'Document registry rebuilt',\n detail: `${files.length} files indexed`,\n })\n\n return { path: REGISTRY_PATH, totalFiles: files.length }\n}\n\nexport async function updateRegistryAnnotation(\n docPath: string, description: string, keywords: string, root: string\n): Promise<void> {\n const { content, exists } = await readRegistry(root)\n if (!exists) throw new Error('Registry not found — call vibedoc_rebuild_registry first')\n\n const annotations = parseAnnotations(content)\n annotations.set(docPath, { description, keywords })\n\n // Rebuild the annotations block with updated data\n const start = content.indexOf(ANNOTATIONS_START)\n const end = content.indexOf(ANNOTATIONS_END)\n if (start === -1 || end === -1) throw new Error('Registry format invalid — rebuild first')\n\n const rows = Array.from(annotations.entries())\n .map(([p, a]) => `| ${p} | ${a.description} | ${a.keywords} |`)\n\n const newAnnotationsBlock = [\n ANNOTATIONS_START,\n `| Path | Description | Keywords |`,\n `|------|-------------|----------|`,\n ...rows,\n ANNOTATIONS_END,\n ].join('\\n')\n\n const newContent = content.slice(0, start) + newAnnotationsBlock + content.slice(end + ANNOTATIONS_END.length)\n await writeDoc(REGISTRY_PATH, newContent, root)\n}\n\n// ─── Backlinks ─────────────────────────────────────────────────────────────────\n\nexport async function findBacklinks(\n targetPath: string,\n root: string\n): Promise<{ file: string; line: number; text: string }[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n const normalTarget = targetPath.replace(/\\\\/g, '/')\n const basename = path.basename(normalTarget)\n const results: { file: string; line: number; text: string }[] = []\n\n for (const f of files) {\n if (f.replace(/\\\\/g, '/') === normalTarget) continue\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n const lines = content.split('\\n')\n lines.forEach((line, i) => {\n if (/\\[.*\\]\\(.*\\)/.test(line) &&\n (line.includes(basename) || line.includes(normalTarget))) {\n results.push({ file: f, line: i + 1, text: line.trim().slice(0, 120) })\n }\n })\n } catch { /* skip unreadable */ }\n }\n return results\n}\n\n/**\n * The memory link graph (R053), built on request from the files: every entry, plus the tasks, roadmap items,\n * ADRs and docs an entry mentions or that mention an entry id. Pure resolution in src/lib/memory-graph.ts.\n */\nexport async function getMemoryGraph(root: string): Promise<MemoryGraph> {\n // ponytail: reads every .md on each call, like findBacklinks; cache by mtime if big repos make it slow\n const [entries, files] = await Promise.all([\n listEntries(root),\n glob('**/*.md', { cwd: root, ignore: ['node_modules/**', '.git/**', '.next/**', 'memory/entries/**'], nodir: true }),\n ])\n const others = await Promise.all(files.map(async (f): Promise<GraphItem | null> => {\n try {\n const raw = await fs.readFile(path.join(root, f), 'utf8')\n return { ...fileNode(f, raw), text: raw }\n } catch (e) {\n console.warn(`memory graph: skipped ${f}`, e)\n return null\n }\n }))\n return buildGraph(\n entries.map(e => ({ id: e.id, kind: 'entry', label: e.summary, path: e.file.replace(/\\\\/g, '/'), text: `${e.summary}\\n${e.body}` })),\n others.filter((o): o is GraphItem => !!o),\n )\n}\n\n// ─── Status summary ───────────────────────────────────────────────────────────\n\nexport async function getProjectSummary(root: string) {\n const [{ tasks, board }, docs, memory, activity] = await Promise.all([\n listTasks(root),\n listDocs(root),\n readMemory(root),\n readActivity(root, 10),\n ])\n\n return {\n root,\n name: path.basename(root),\n tasks: {\n total: tasks.length,\n board: { todo: board.todo.length, 'in-progress': board['in-progress'].length, review: board.review.length, blocked: board.blocked.length, done: board.done.length, cancelled: board.cancelled.length },\n active: board['in-progress'],\n blocked: board.blocked,\n },\n docs: { total: docs.length },\n memory,\n activity,\n }\n}\n\n\n// ─── Roadmap ──────────────────────────────────────────────────────────────────\n// Items: plans/roadmap/R*.md (content + Parent/Status/Order/Tasks).\n// Positions: plans/roadmap/layout.json (presentation only, never in R*.md).\n\nexport type RoadmapStatus = 'planned' | 'in-progress' | 'paused' | 'done'\n\nexport interface RoadmapItem {\n id: string // \"R004\"\n title: string\n parent: string | null // null = horizon on the spine\n status: RoadmapStatus\n order: number\n tasks: string[] // [\"T001\", \"T012\"]\n due: string | null // \"2026-10-15\" — a calendar date, not an instant; compare as strings\n owner: string | null // \"human\" | \"ai:<agent>\" (R055)\n body: string // markdown after the metadata block\n file: string // path relative to root\n}\n\nexport type RoadmapLayout = Record<string, { x: number; y: number }>\n\nexport interface CreateRoadmapItemParams {\n title: string\n parent?: string | null\n status?: RoadmapStatus\n order?: number\n tasks?: string[]\n due?: string | null\n owner?: string | null\n body?: string\n}\n\nexport type UpdateRoadmapItemPatch = Partial<Omit<CreateRoadmapItemParams, 'title'> & { title: string }>\n\n\n/** Validation / not-found error from the roadmap API. `status` maps straight to an HTTP code. */\nexport class RoadmapError extends Error {\n constructor(message: string, public status: 400 | 404 = 400) {\n super(message)\n this.name = 'RoadmapError'\n }\n}\n\nconst ROADMAP_DIR = path.join('plans', 'roadmap')\nconst ROADMAP_LAYOUT = path.join(ROADMAP_DIR, 'layout.json')\nconst ROADMAP_STATUSES: RoadmapStatus[] = ['planned', 'in-progress', 'paused', 'done']\nconst META_LINE = /^\\*\\*([^*]+):\\*\\*/\n\nfunction normalizeRoadmapId(id: unknown): string {\n const s = String(id ?? '').trim().toUpperCase()\n if (!/^R\\d+$/.test(s)) throw new RoadmapError(`Invalid roadmap id: ${String(id)}`)\n return s\n}\n\nfunction roadmapIdOf(file: string): string | null {\n const m = path.basename(file).match(/^(R\\d+)(?:-|\\.md$)/i)\n return m ? m[1].toUpperCase() : null\n}\n\nfunction parseRoadmapStatus(raw: unknown): RoadmapStatus {\n const t = String(raw ?? '').toLowerCase().trim().replace(/\\s+/g, '-')\n const s = t === 'on-hold' ? 'paused' : t\n if (!ROADMAP_STATUSES.includes(s as RoadmapStatus)) {\n throw new RoadmapError(`Invalid status \"${String(raw)}\" (expected ${ROADMAP_STATUSES.join(' | ')})`)\n }\n return s as RoadmapStatus\n}\n\nfunction parseTaskIds(tasks: unknown): string[] {\n if (!Array.isArray(tasks)) throw new RoadmapError('tasks must be an array of task ids')\n return tasks.map(t => {\n const s = String(t).trim().toUpperCase()\n if (!/^T\\d+$/.test(s)) throw new RoadmapError(`Invalid task id: ${String(t)}`)\n return s\n })\n}\n\nfunction cleanTitle(title: unknown): string {\n const t = String(title ?? '').replace(/\\s+/g, ' ').trim()\n if (!t) throw new RoadmapError('Title is required')\n return t\n}\n\n/** A real calendar date \"YYYY-MM-DD\" (rejects 2026-02-30), else null. */\nfunction parseDue(raw: string): string | null {\n const m = raw.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/)\n if (!m) return null\n const d = new Date(Date.UTC(+m[1], +m[2] - 1, +m[3]))\n return d.toISOString().slice(0, 10) === raw ? raw : null\n}\n\nfunction cleanDue(due: unknown): string | null {\n if (due === null || due === '') return null\n const d = typeof due === 'string' ? parseDue(due.trim()) : null\n if (!d) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(due)})`)\n return d\n}\n\nfunction cleanOrder(order: unknown): number {\n const n = Number(order)\n if (typeof order !== 'number' || !Number.isFinite(n)) throw new RoadmapError('order must be a finite number')\n return n\n}\n\n/** Index of the first line after the H1 + contiguous `**Key:** Value` block. */\nfunction roadmapMetaEnd(lines: string[]): number {\n let i = lines.findIndex(l => l.startsWith('# '))\n i = i < 0 ? 0 : i + 1\n // Tolerate blank lines between the H1 and the meta block (common in hand-written files).\n let j = i\n while (j < lines.length && lines[j].trim() === '') j++\n if (j < lines.length && META_LINE.test(lines[j])) i = j\n while (i < lines.length && META_LINE.test(lines[i])) i++\n return i\n}\n\nfunction parseRoadmapFile(file: string, content: string): RoadmapItem {\n const lines = content.split('\\n')\n const titleLine = lines.find(l => l.startsWith('# '))\n const id = roadmapIdOf(file) ?? path.basename(file, '.md').toUpperCase()\n const title = (titleLine || '').replace(/^#+\\s*/, '').replace(/^R\\d+:\\s*/i, '').trim() || id\n\n // Only the head block counts, so a `**Status:**` inside the body can't override the item's meta.\n const metaEnd = roadmapMetaEnd(lines)\n const meta: Record<string, string> = {}\n for (const line of lines.slice(0, Math.min(metaEnd, 30))) {\n const m = line.match(/\\*\\*([^*]+):\\*\\*\\s*(.+)/)\n if (m) meta[m[1].toLowerCase().trim()] = m[2].trim()\n }\n\n const rawParent = (meta['parent'] || '').toUpperCase()\n let status: RoadmapStatus = 'planned'\n try { status = parseRoadmapStatus((meta['status'] || '').replace(/[^a-z\\s-]/gi, '')) } catch {}\n const order = parseFloat(meta['order'] || '')\n\n return {\n id,\n title,\n parent: /^R\\d+$/.test(rawParent) ? rawParent : null,\n status,\n order: Number.isFinite(order) ? order : 0,\n tasks: (meta['tasks'] || '').split(/[,\\s]+/).map(t => t.toUpperCase()).filter(t => /^T\\d+$/.test(t)),\n due: parseDue(meta['due'] || ''),\n owner: parseOwner(meta['owner']),\n body: lines.slice(metaEnd).join('\\n').trim(),\n file,\n }\n}\n\nasync function readRoadmapFiles(root: string): Promise<{ item: RoadmapItem; raw: string }[]> {\n const files = await glob('plans/roadmap/R*.md', { cwd: root, nodir: true })\n const out: { item: RoadmapItem; raw: string }[] = []\n for (const f of files) {\n if (!roadmapIdOf(f)) continue\n try {\n const raw = await fs.readFile(path.join(root, f), 'utf8')\n out.push({ item: parseRoadmapFile(f, raw), raw })\n } catch {}\n }\n return out\n}\n\nasync function findRoadmapFile(id: string, root: string): Promise<{ item: RoadmapItem; raw: string }> {\n const rid = normalizeRoadmapId(id)\n const matches = (await glob(`plans/roadmap/${rid}*.md`, { cwd: root, nodir: true }))\n .filter(f => roadmapIdOf(f) === rid)\n .sort()\n if (matches.length === 0) throw new RoadmapError(`Roadmap item not found: ${rid}`, 404)\n const raw = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return { item: parseRoadmapFile(matches[0], raw), raw }\n}\n\nfunction sortRoadmap(items: RoadmapItem[]): RoadmapItem[] {\n const num = (id: string) => parseInt(id.slice(1), 10)\n return items.sort((a, b) => a.order - b.order || num(a.id) - num(b.id))\n}\n\n/** A parent must be an existing horizon (parent null) and not the item itself. */\nfunction validateParent(parent: string, selfId: string | null, items: RoadmapItem[]): void {\n if (parent === selfId) throw new RoadmapError('An item cannot be its own parent')\n const p = items.find(i => i.id === parent)\n if (!p) throw new RoadmapError(`Parent not found: ${parent}`)\n if (p.parent !== null) throw new RoadmapError(`Parent ${parent} is not a horizon (max depth is 2)`)\n}\n\nfunction cleanBody(body: unknown): string {\n if (typeof body !== 'string') throw new RoadmapError('body must be a string')\n return body.trim()\n}\n\n// ponytail: in-process mutex serialising all roadmap writes (id allocation, layout merge).\n// Doesn't cover a second VibeDoc process on the same root; add a lockfile if that ever matters.\nlet roadmapLock: Promise<unknown> = Promise.resolve()\nfunction withRoadmapLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = roadmapLock.then(fn, fn)\n roadmapLock = run.catch(() => {})\n return run\n}\n\nfunction formatTasks(tasks: string[]): string {\n return tasks.length > 0 ? tasks.join(', ') : '—'\n}\n\nexport async function listRoadmap(root: string): Promise<{ items: RoadmapItem[]; layout: RoadmapLayout }> {\n const [files, layout] = await Promise.all([readRoadmapFiles(root), readRoadmapLayout(root)])\n return { items: sortRoadmap(files.map(f => f.item)), layout }\n}\n\nexport async function getRoadmapItem(id: string, root: string): Promise<RoadmapItem> {\n return (await findRoadmapFile(id, root)).item\n}\n\nexport function createRoadmapItem(\n params: CreateRoadmapItemParams, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(() => createRoadmapItemUnlocked(params ?? ({} as CreateRoadmapItemParams), root, actor))\n}\n\nconst roadmapId = (n: number) => `R${String(n).padStart(3, '0')}`\n\n/** Write a new R*.md (flag 'wx': never overwrites). Callers validate fields and mkdir first. */\nasync function writeRoadmapFile(root: string, f: Omit<RoadmapItem, 'file' | 'owner'>): Promise<void> {\n const slug = f.title.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40)\n const filename = slug ? `${f.id}-${slug}.md` : `${f.id}.md`\n const lines = [\n `# ${f.id}: ${f.title}`,\n ...(f.parent ? [`**Parent:** ${f.parent}`] : []),\n `**Status:** ${f.status}`,\n `**Order:** ${f.order}`,\n `**Tasks:** ${formatTasks(f.tasks)}`,\n ...(f.due ? [`**Due:** ${f.due}`] : []),\n '',\n ]\n const content = lines.join('\\n') + (f.body ? `\\n${f.body}\\n` : '')\n await fs.writeFile(path.join(root, ROADMAP_DIR, filename), content, { flag: 'wx', encoding: 'utf8' })\n}\n\n/** Where \"Generate roadmap\" would take its content from: ROADMAP.md, then tasks, then a starter. */\nexport async function detectRoadmapSource(root: string): Promise<RoadmapSource> {\n return (await roadmapDrafts(root)).source\n}\n\nasync function roadmapDrafts(root: string): Promise<{ source: RoadmapSource; drafts: RoadmapDraft[] }> {\n try {\n const drafts = roadmapFromMarkdown(await fs.readFile(path.join(root, 'ROADMAP.md'), 'utf8'))\n if (drafts.length > 0) return { source: 'roadmap-md', drafts }\n } catch {\n // no ROADMAP.md — fall through\n }\n const { tasks } = await listTasks(root)\n const fromTasks = roadmapFromTasks(tasks)\n if (fromTasks.length > 0) return { source: 'tasks', drafts: fromTasks }\n return { source: 'starter', drafts: starterRoadmap() }\n}\n\n/**\n * Build plans/roadmap/ for a project that has none. Never touches ROADMAP.md or tasks.\n * Refuses when any R*.md exists. One activity entry for the whole generation.\n */\nexport function generateRoadmap(\n root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ items: RoadmapItem[]; source: RoadmapSource }> {\n return withRoadmapLock(async () => {\n if ((await readRoadmapFiles(root)).length > 0) throw new RoadmapError('Roadmap already exists')\n const { source, drafts } = await roadmapDrafts(root)\n\n const ids = new Map(drafts.map((d, i) => [d.key, roadmapId(i + 1)]))\n const siblingCount = new Map<string | null, number>()\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n for (const d of drafts) {\n const n = (siblingCount.get(d.parent) ?? 0) + 1\n siblingCount.set(d.parent, n)\n await writeRoadmapFile(root, {\n id: ids.get(d.key) as string,\n title: d.title,\n parent: d.parent === null ? null : (ids.get(d.parent) ?? null),\n status: d.status,\n order: n * 10,\n tasks: d.tasks,\n due: null,\n body: d.body,\n })\n }\n\n await appendActivity(root, {\n type: 'roadmap_updated', actor,\n title: `Roadmap generated (${drafts.length} items)`,\n detail: `from ${source}`,\n })\n const { items } = await listRoadmap(root)\n return { items, source }\n })\n}\n\nasync function createRoadmapItemUnlocked(\n params: CreateRoadmapItemParams, root: string, actor: 'ai' | 'human'\n): Promise<RoadmapItem> {\n const title = cleanTitle(params.title)\n const status = params.status === undefined ? 'planned' : parseRoadmapStatus(params.status)\n const tasks = params.tasks === undefined ? [] : parseTaskIds(params.tasks)\n const body = params.body === undefined ? '' : cleanBody(params.body)\n const due = params.due === undefined ? null : cleanDue(params.due)\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n\n const parent = params.parent == null || params.parent === '' ? null : normalizeRoadmapId(params.parent)\n if (parent) validateParent(parent, null, items)\n\n const siblingOrders = items.filter(i => i.parent === parent).map(i => i.order)\n const order = params.order === undefined\n ? (siblingOrders.length > 0 ? Math.max(...siblingOrders) : 0) + 10\n : cleanOrder(params.order)\n\n const nums = items.map(i => parseInt(i.id.slice(1), 10)).filter(n => !isNaN(n))\n const id = roadmapId(nums.length > 0 ? Math.max(...nums) + 1 : 1)\n\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await writeRoadmapFile(root, { id, title, parent, status, order, tasks, due, body })\n\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${id} created`, detail: title })\n return getRoadmapItem(id, root)\n}\n\nexport function updateRoadmapItem(\n id: string, patch: UpdateRoadmapItemPatch, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(() => updateRoadmapItemUnlocked(id, patch, root, actor))\n}\n\nasync function updateRoadmapItemUnlocked(\n id: string, patch: UpdateRoadmapItemPatch, root: string, actor: 'ai' | 'human'\n): Promise<RoadmapItem> {\n const { item, raw } = await findRoadmapFile(id, root)\n const p = patch ?? {}\n\n // Validate everything before touching the file.\n const title = p.title === undefined ? undefined : cleanTitle(p.title)\n const status = p.status === undefined ? undefined : parseRoadmapStatus(p.status)\n const order = p.order === undefined ? undefined : cleanOrder(p.order)\n const tasks = p.tasks === undefined ? undefined : parseTaskIds(p.tasks)\n const body = p.body === undefined ? undefined : cleanBody(p.body)\n const due = p.due === undefined ? undefined : cleanDue(p.due)\n let owner: string | null | undefined\n if (p.owner !== undefined) {\n owner = p.owner === null || p.owner === '' ? null : parseOwner(p.owner)\n if (p.owner && !owner) throw new RoadmapError(`owner must be \"human\" or \"ai:<agent>\" (got ${JSON.stringify(p.owner)})`)\n }\n let parent: string | null | undefined\n if (p.parent !== undefined) {\n parent = p.parent === null || p.parent === '' ? null : normalizeRoadmapId(p.parent)\n if (parent !== null) {\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n validateParent(parent, item.id, items)\n if (items.some(i => i.parent === item.id)) {\n throw new RoadmapError(`${item.id} has children and cannot be given a parent`)\n }\n }\n }\n\n const lines = raw.split('\\n')\n if (title !== undefined) {\n const h1 = lines.findIndex(l => l.startsWith('# '))\n if (h1 >= 0) lines[h1] = `# ${item.id}: ${title}`\n else lines.unshift(`# ${item.id}: ${title}`)\n }\n\n const end = roadmapMetaEnd(lines)\n const head = lines.slice(0, end)\n let rest = lines.slice(end)\n\n // Replace-or-insert (or remove, for value null) a meta line inside the head block only.\n const setMeta = (key: string, value: string | null) => {\n const idx = head.findIndex(l => l.match(META_LINE)?.[1].trim().toLowerCase() === key.toLowerCase())\n if (value === null) { if (idx >= 0) head.splice(idx, 1); return }\n const line = `**${key}:** ${value}`\n if (idx >= 0) head[idx] = line\n else head.push(line)\n }\n\n if (parent !== undefined) setMeta('Parent', parent)\n if (status !== undefined) setMeta('Status', status)\n if (order !== undefined) setMeta('Order', String(order))\n if (tasks !== undefined) setMeta('Tasks', formatTasks(tasks))\n if (due !== undefined) setMeta('Due', due)\n if (owner !== undefined) setMeta('Owner', owner)\n if (body !== undefined) {\n rest = body ? ['', body, ''] : ['']\n }\n\n await fs.writeFile(path.join(root, item.file), [...head, ...rest].join('\\n'), 'utf8')\n const updated = await getRoadmapItem(item.id, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${item.id} updated`, detail: updated.title })\n return updated\n}\n\nexport interface DeletedRoadmapItem { item: RoadmapItem; raw: string; position: { x: number; y: number } | null }\n\nexport function deleteRoadmapItem(id: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<DeletedRoadmapItem> {\n return withRoadmapLock(() => deleteRoadmapItemUnlocked(id, root, actor))\n}\n\nasync function deleteRoadmapItemUnlocked(id: string, root: string, actor: 'ai' | 'human'): Promise<DeletedRoadmapItem> {\n const { item, raw } = await findRoadmapFile(id, root)\n const position = (await readRoadmapLayout(root))[item.id] ?? null\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n const children = items.filter(i => i.parent === item.id).map(i => i.id)\n if (children.length > 0) {\n throw new RoadmapError(`${item.id} still has children (${children.join(', ')}); move or delete them first`)\n }\n await fs.unlink(path.join(root, item.file))\n // Prune now so a later create reusing this id doesn't inherit the old position.\n await writeRoadmapLayoutUnlocked({}, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${item.id} deleted`, detail: item.title })\n return { item, raw, position }\n}\n\n/** Undo for deleteRoadmapItem: write the file back byte-for-byte (never over an existing id) and its position. */\nexport function restoreRoadmapItem(\n file: unknown, raw: unknown, position: unknown, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(async () => {\n if (!isFileIn(file, ROADMAP_DIR, /^R\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid roadmap item to restore')\n const id = roadmapIdOf(file)\n if (!id) throw new RoadmapError('Invalid roadmap item to restore')\n if (await findRoadmapFile(id, root).then(() => true, () => false)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n if (position) await writeRoadmapLayoutUnlocked({ [id]: position as { x: number; y: number } }, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${id} restored` })\n return (await findRoadmapFile(id, root)).item\n })\n}\n\nexport async function readRoadmapLayout(root: string): Promise<RoadmapLayout> {\n try {\n const parsed = JSON.parse(await fs.readFile(path.join(root, ROADMAP_LAYOUT), 'utf8'))\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return {}\n const out: RoadmapLayout = {}\n for (const [k, v] of Object.entries(parsed as Record<string, { x?: unknown; y?: unknown }>)) {\n if (v && Number.isFinite(v.x) && Number.isFinite(v.y)) out[k] = { x: v.x as number, y: v.y as number }\n }\n return out\n } catch {\n return {}\n }\n}\n\n/** Merge `positions` into layout.json and drop ids with no matching R*.md. Returns the saved layout. */\nexport function writeRoadmapLayout(positions: RoadmapLayout, root: string): Promise<RoadmapLayout> {\n return withRoadmapLock(() => writeRoadmapLayoutUnlocked(positions, root))\n}\n\nasync function writeRoadmapLayoutUnlocked(positions: RoadmapLayout, root: string): Promise<RoadmapLayout> {\n const clean: RoadmapLayout = {}\n for (const [k, v] of Object.entries(positions ?? {})) {\n const key = k.trim().toUpperCase()\n const ok = /^R\\d+$/.test(key) && v && typeof v === 'object'\n && typeof v.x === 'number' && typeof v.y === 'number' && Number.isFinite(v.x) && Number.isFinite(v.y)\n if (!ok) throw new RoadmapError(`Invalid position for ${k}`)\n clean[key] = { x: v.x, y: v.y }\n }\n const merged = { ...(await readRoadmapLayout(root)), ...clean }\n\n const existing = new Set((await readRoadmapFiles(root)).map(f => f.item.id))\n const layout: RoadmapLayout = {}\n for (const key of Object.keys(merged).sort()) {\n if (existing.has(key)) layout[key] = merged[key]\n }\n\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await fs.writeFile(path.join(root, ROADMAP_LAYOUT), JSON.stringify(layout, null, 2) + '\\n', 'utf8')\n return layout\n}\n\n// ─── Planning skills ──────────────────────────────────────────────────────────\n\nconst PLANNING_SKILLS = { roadmap: 'roadmap-planner', breakdown: 'epic-breakdown' } as const\nexport type PlanningKind = keyof typeof PLANNING_SKILLS\n\n/** Bundled skill body (frontmatter stripped). Read from the VibeDoc package (cwd), not the target project. */\nexport async function readPlanningSkill(kind: PlanningKind): Promise<string> {\n if (!Object.hasOwn(PLANNING_SKILLS, kind)) throw new Error(`Unknown planning kind \"${kind}\" (expected: ${Object.keys(PLANNING_SKILLS).join(', ')})`)\n const text = await fs.readFile(path.join(process.cwd(), 'skills', PLANNING_SKILLS[kind], 'SKILL.md'), 'utf-8')\n return text.replace(/^---\\r?\\n[\\s\\S]*?\\r?\\n---\\r?\\n/, '').trimStart()\n}\n\n// ─── Agent chats (.vibedoc/chats/<id>.json) ───────────────────────────────────\n// The browser owns the chat shape (src/lib/chats.ts); core only stores it by id.\n\nconst CHATS_DIR = path.join('.vibedoc', 'chats')\nconst CHAT_ID = /^[a-z0-9-]{1,64}$/\n\nfunction chatFile(id: string, root: string): string {\n if (!CHAT_ID.test(id)) throw new Error(`Invalid chat id \"${id}\"`)\n return path.join(root, CHATS_DIR, `${id}.json`)\n}\n\n/** Every saved chat, unparsed beyond JSON. Unreadable files are skipped (logged). */\nexport async function listChats(root: string): Promise<unknown[]> {\n const dir = path.join(root, CHATS_DIR)\n const files = await fs.readdir(dir).catch(() => [] as string[])\n // ponytail: reads every chat file on load; add a limit/index if projects collect hundreds of chats\n const chats = await Promise.all(files.filter(f => f.endsWith('.json')).map(async f => {\n try {\n return JSON.parse(await fs.readFile(path.join(dir, f), 'utf-8')) as unknown\n } catch (e) {\n console.warn(`[vibedoc] skipping unreadable chat ${f}: ${(e as Error).message}`)\n return null\n }\n }))\n return chats.filter(c => c !== null)\n}\n\nexport async function saveChat(chat: unknown, root: string): Promise<void> {\n const id = (chat as { id?: unknown } | null)?.id\n if (typeof id !== 'string') throw new Error('chat.id is required')\n const file = chatFile(id, root)\n await fs.mkdir(path.dirname(file), { recursive: true })\n // Write-then-rename so a crash mid-write never leaves half a JSON file\n const tmp = `${file}.tmp`\n await fs.writeFile(tmp, JSON.stringify(chat), 'utf-8')\n await fs.rename(tmp, file)\n}\n\nexport async function deleteChat(id: string, root: string): Promise<void> {\n await fs.rm(chatFile(id, root), { force: true })\n}\n\n// ─── Saved board views (.vibedoc/views.json) ─────────────────────────────────\n\nconst VIEWS_FILE = path.join('.vibedoc', 'views.json')\n\n/** null when the file is missing or unreadable (caller falls back to the built-ins). */\nexport async function readViews(root: string): Promise<SavedView[] | null> {\n let raw: string\n try {\n raw = await fs.readFile(path.join(root, VIEWS_FILE), 'utf-8')\n } catch {\n return null\n }\n try {\n const views = (JSON.parse(raw) as { views?: unknown })?.views\n if (!Array.isArray(views)) throw new Error('\"views\" is not an array')\n return views as SavedView[]\n } catch (e) {\n console.warn(`[vibedoc] ignoring unreadable ${VIEWS_FILE}: ${(e as Error).message}`)\n return null\n }\n}\n\nexport async function saveViews(views: SavedView[], root: string): Promise<void> {\n const file = path.join(root, VIEWS_FILE)\n await fs.mkdir(path.dirname(file), { recursive: true })\n // Write-then-rename so a crash mid-write never leaves half a JSON file\n const tmp = `${file}.tmp`\n await fs.writeFile(tmp, JSON.stringify({ views }, null, 2) + '\\n', 'utf-8')\n await fs.rename(tmp, file)\n}\n","// Pure knowledge-entry parsing and formatting (R046, no fs). Self-check: node src/lib/entries.check.mts\n// One long-lived fact per file: memory/entries/E001-<slug>.md\n\nexport const ENTRY_TYPES = ['convention', 'gotcha', 'decision', 'preference'] as const\nexport type EntryType = typeof ENTRY_TYPES[number]\n\n/**\n * updatedAt = the `**Updated:**` date (YYYY-MM-DD); by = `**By:**` who saved it last (\"human\" | \"ai:<agent>\",\n * null in files from before R047); file = path relative to root.\n */\nexport type Entry = { id: string; type: EntryType; summary: string; body: string; updatedAt: string; by: string | null; file: string }\nexport type EntryInput = { id?: string; type: string; summary: string; body?: string }\n\nexport const SUMMARY_MAX = 120\n\nconst isEntryType = (s: string): s is EntryType => (ENTRY_TYPES as readonly string[]).includes(s)\n\n/** \"e1\" / \"E01\" / \"E001\" → \"E001\"; anything else → null. */\nexport function normalizeEntryId(s: string): string | null {\n const m = /^e(\\d+)$/i.exec(s.trim())\n if (!m) return null\n const n = Number(m[1])\n return n > 0 ? `E${String(n).padStart(3, '0')}` : null\n}\n\n/** One past the highest id: [] → \"E001\"; [\"E001\",\"E007\"] → \"E008\". */\nexport function nextEntryId(ids: string[]): string {\n const max = Math.max(0, ...ids.map(id => Number(normalizeEntryId(id)?.slice(1) ?? 0)))\n return `E${String(max + 1).padStart(3, '0')}`\n}\n\nexport function entrySlug(summary: string): string {\n return summary.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40).replace(/-$/, '')\n}\n\n/** null when the `# E001: summary` H1 or a known `**Type:**` is missing. */\nexport function parseEntry(raw: string, file: string): Entry | null {\n const lines = raw.replace(/\\r\\n/g, '\\n').split('\\n')\n const h1 = /^#\\s+(E\\d+):\\s*(.+?)\\s*$/i.exec(lines[0] ?? '')\n const id = h1 && normalizeEntryId(h1[1])\n if (!h1 || !id) return null\n // Contiguous **Key:** Value block under the H1, like task files\n const meta: Record<string, string> = {}\n let i = 1\n for (; i < lines.length; i++) {\n const m = /^\\*\\*(\\w+):\\*\\*\\s*(.*)$/.exec(lines[i])\n if (!m) break\n meta[m[1].toLowerCase()] = m[2].trim()\n }\n const type = meta.type ?? ''\n if (!isEntryType(type)) return null\n return { id, type, summary: h1[2], body: lines.slice(i).join('\\n').trim(), updatedAt: meta.updated ?? '', by: meta.by || null, file }\n}\n\nexport function formatEntry(e: Omit<Entry, 'file'>): string {\n const head = `# ${e.id}: ${e.summary}\\n**Type:** ${e.type}\\n**Updated:** ${e.updatedAt}\\n${e.by ? `**By:** ${e.by}\\n` : ''}`\n return e.body.trim() ? `${head}\\n${e.body.trim()}\\n` : head\n}\n\n/** Error message, or null when valid. Does not check whether an id exists. */\nexport function validateEntryInput(i: EntryInput): string | null {\n if (i.id !== undefined && !normalizeEntryId(String(i.id))) return `Invalid id \"${i.id}\": expected E followed by a number, e.g. E001`\n if (!isEntryType(String(i.type ?? ''))) return `Invalid type \"${i.type ?? ''}\": use one of ${ENTRY_TYPES.join(', ')}`\n const summary = String(i.summary ?? '').trim()\n if (!summary) return 'summary is required'\n if (/\\n/.test(summary)) return 'summary must be one line'\n if (summary.length > SUMMARY_MAX) return `summary is ${summary.length} characters; keep it to ${SUMMARY_MAX}`\n if (i.body !== undefined && typeof i.body !== 'string') return 'body must be a string'\n return null\n}\n","// Pure keyword recall over knowledge entries (R048, no fs). Self-check: node src/lib/recall.check.mts\n// Index first, bodies on request: agents get compact lines here and fetch bodies with vibedoc_get_entries.\n\nexport type RecallEntry = { id: string; type: string; summary: string; body: string; updatedAt: string }\nexport type RecallHit = { id: string; type: string; summary: string; tokens: number; score: number }\n\nconst STOPWORDS = new Set(('a an and are as at be but by can do does for from how i if in into is it its of on or ' +\n 'our so that the their then there these this to use used using was we what when where which who why will with you your').split(' '))\n\n/** Lowercase, split on non-alphanumerics, drop stopwords and 1-char tokens, naive plural strip (\"events\" → \"event\"). */\nexport function tokenize(s: string): string[] {\n return s.toLowerCase().split(/[^a-z0-9]+/)\n .filter(t => t.length > 1 && !STOPWORDS.has(t))\n // ponytail: plural strip only, no real stemmer; add one if recall misses obvious matches\n .map(t => (t.length > 3 && t.endsWith('s') && !t.endsWith('ss') ? t.slice(0, -1) : t))\n}\n\nexport function estimateTokens(s: string): number {\n return Math.ceil(s.length / 4)\n}\n\n/** Per query token: +3 in summary, +2 matches id or type, +1 in body. Score 0 dropped; ties → newest first. */\nexport function rankEntries(entries: RecallEntry[], query: string, opts: { type?: string; limit?: number } = {}): RecallHit[] {\n const q = [...new Set(tokenize(query))]\n if (!q.length) return []\n const hits: (RecallHit & { updatedAt: string })[] = []\n for (const e of entries) {\n if (opts.type && e.type !== opts.type) continue\n const summary = new Set(tokenize(e.summary))\n const body = new Set(tokenize(e.body))\n const idType = new Set([e.id.toLowerCase(), ...tokenize(e.type)])\n let score = 0\n for (const t of q) {\n if (summary.has(t)) score += 3\n if (idType.has(t)) score += 2\n if (body.has(t)) score += 1\n }\n if (score > 0) {\n hits.push({ id: e.id, type: e.type, summary: e.summary, tokens: estimateTokens(`${e.summary}\\n${e.body}`), score, updatedAt: e.updatedAt })\n }\n }\n hits.sort((a, b) => b.score - a.score || b.updatedAt.localeCompare(a.updatedAt))\n return hits.slice(0, opts.limit ?? 10).map(({ updatedAt: _, ...h }) => h)\n}\n\n/** \"E012 · convention · Only core.ts touches fs (~120 tok)\" */\nexport function formatCompactLine(h: RecallHit): string {\n return `${h.id} · ${h.type} · ${h.summary} (~${h.tokens} tok)`\n}\n\n/** Every entry as a compact hit, newest first: the session-start index order. */\nexport function indexHits(entries: RecallEntry[]): RecallHit[] {\n return [...entries].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt) || a.id.localeCompare(b.id, 'en', { numeric: true }))\n .map(e => ({ id: e.id, type: e.type, summary: e.summary, tokens: estimateTokens(`${e.summary}\\n${e.body}`), score: 0 }))\n}\n\nexport const DEFAULT_SESSION_BUDGET = 2000\nconst INDEX_HINT = 'Save new facts with vibedoc_save_entry; fetch bodies with vibedoc_get_entries.'\n\n/**\n * Session start = the whole handoff + as many index lines (in the order given) as fit `budget` tokens,\n * then \"+N more\" when some were left out. Header, footer and hint count toward the budget. The handoff is never cut.\n */\nexport function fitToBudget(handoff: string, index: RecallHit[], budget: number):\n { text: string; shown: number; omitted: number; tokens: number } {\n const render = (n: number, warning?: string) => [\n handoff.trimEnd(), '',\n ...(warning ? [warning] : []),\n `## Knowledge entries (${index.length})`,\n ...index.slice(0, n).map(formatCompactLine),\n ...(n < index.length ? [`+${index.length - n} more entries — use vibedoc_recall { query }`] : []),\n INDEX_HINT,\n ].join('\\n')\n const fits = (n: number) => estimateTokens(render(n)) <= budget\n let text: string\n let shown = 0\n if (!fits(0)) {\n text = render(0, `⚠️ The handoff alone is ~${estimateTokens(handoff)} tokens, over the ${budget}-token session budget: trim memory/MEMORY.md.`)\n } else {\n // ponytail: re-renders per line (O(n²) chars); fine for hundreds of entries\n while (shown < index.length && fits(shown + 1)) shown++\n text = render(shown)\n }\n return { text, shown, omitted: index.length - shown, tokens: estimateTokens(text) }\n}\n\nexport const RELATED_MIN_SCORE = 3\nconst GOAL_CHARS = 500\n\n/** Recall query for a task: its title, the first 500 chars of its Goal, and the Phase epic title (id dropped). */\nexport function taskQuery(task: { title: string; phase?: string; raw?: string }): string {\n const goal = /^## Goal[ \\t]*\\n([\\s\\S]*?)(?=^## |(?![\\s\\S]))/m.exec(task.raw ?? '')?.[1].trim() ?? ''\n const epic = (task.phase ?? '').replace(/^R\\d+\\s*[—–-]\\s*/, '')\n return [task.title, goal.slice(0, GOAL_CHARS), epic].filter(Boolean).join(' ')\n}\n\n/** Only strong matches (at least one summary hit) → \"## Related memory\" block; '' when none qualify. */\nexport function formatRelated(hits: RecallHit[], limit = 3): string {\n const strong = hits.filter(h => h.score >= RELATED_MIN_SCORE).slice(0, limit)\n if (!strong.length) return ''\n return `## Related memory\\n${strong.map(formatCompactLine).join('\\n')}\\nFetch with vibedoc_get_entries`\n}\n\n/**\n * The Memory tab list (R047). No searchable words → the entries of `type`, newest first (session-start order).\n * Otherwise ranked like vibedoc_recall, so the UI and agents agree on the first hit. Returns the full entries.\n */\nexport function filterEntries<T extends RecallEntry>(entries: T[], opts: { query?: string; type?: string | null }): T[] {\n const pool = opts.type ? entries.filter(e => e.type === opts.type) : entries\n const byId = new Map(pool.map(e => [e.id, e]))\n const query = opts.query ?? ''\n const hits = tokenize(query).length ? rankEntries(pool, query, { limit: pool.length }) : indexHits(pool)\n return hits.map(h => byId.get(h.id)).filter((e): e is T => !!e)\n}\n","// Pure memory link graph (R053, no fs): links are inferred from text, never stored. Self-check: node src/lib/memory-graph.check.mts\n// Outgoing edges come from entry text; incoming edges from task, roadmap and doc files that mention an entry id.\n\nexport type NodeKind = 'entry' | 'task' | 'epic' | 'adr' | 'doc'\nexport type GraphNode = { id: string; kind: NodeKind; label: string; path: string }\nexport type GraphEdge = { from: string; to: string } // from mentions to\nexport type MemoryGraph = { nodes: GraphNode[]; edges: GraphEdge[] }\n/** A node plus the text scanned for its refs. */\nexport type GraphItem = GraphNode & { text: string }\n\n// Upper case only, whole tokens: \"XT0651\", \"e2e\" and \"T0651a\" don't match\nconst ID_RE = /(?<![A-Za-z0-9_-])(E\\d+|T\\d{3,}|R\\d{3,}|ADR-\\d+)(?![A-Za-z0-9_])/g\nconst BACKTICK_MD_RE = /`([^`\\s]+\\.md)`/g\nconst LINK_MD_RE = /\\]\\(\\s*<?([^)\\s>#]+\\.md)(?:#[^)\\s]*)?>?\\s*\\)/g\n\nconst pad3 = (n: string) => String(Number(n)).padStart(3, '0')\n\n/** \"E1\" → \"E001\", \"ADR-4\" → \"ADR-004\"; task and roadmap ids are already padded. */\nfunction normalizeId(id: string): string {\n if (id.startsWith('ADR-')) return `ADR-${pad3(id.slice(4))}`\n if (id.startsWith('E')) return `E${pad3(id.slice(1))}`\n return id\n}\n\nconst normalizePath = (p: string) => p.replace(/\\\\/g, '/').replace(/^\\.?\\//, '')\n\n/** Item ids (E/T/R/ADR) and `*.md` paths (in backticks or as link targets) mentioned in `text`, deduplicated. */\nexport function extractRefs(text: string): { ids: string[]; paths: string[] } {\n const ids = new Set<string>()\n for (const m of text.matchAll(ID_RE)) {\n if (/^E0+$/.test(m[1])) continue // E0 is not an entry id\n ids.add(normalizeId(m[1]))\n }\n const paths = new Set<string>()\n for (const re of [BACKTICK_MD_RE, LINK_MD_RE]) {\n for (const m of text.matchAll(re)) {\n if (/^[a-z]+:\\/\\//i.test(m[1])) continue // external URL\n paths.add(normalizePath(m[1]))\n }\n }\n return { ids: [...ids], paths: [...paths] }\n}\n\n/** Classify a non-entry markdown file by path. Label = its H1 without the \"ID: \" prefix, else the file name. */\nexport function fileNode(relPath: string, raw: string): GraphNode {\n const p = normalizePath(relPath)\n const name = p.split('/').pop() ?? p\n const h1 = /^#\\s+(.+?)\\s*$/m.exec(raw)?.[1] ?? ''\n const label = (id: string) => h1.replace(new RegExp(`^${id}\\\\s*[:—–-]\\\\s*`), '') || name.replace(/\\.md$/, '')\n let m: RegExpExecArray | null\n if ((m = /^plans\\/tasks\\/(T\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'task', label: label(m[1]), path: p }\n if ((m = /^plans\\/roadmap\\/(R\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'epic', label: label(m[1]), path: p }\n if ((m = /(?:^|\\/)(ADR-\\d+)[^/]*\\.md$/.exec(p))) {\n const id = normalizeId(m[1])\n return { id, kind: 'adr', label: label(m[1]), path: p }\n }\n return { id: p, kind: 'doc', label: h1 || name.replace(/\\.md$/, ''), path: p }\n}\n\n/**\n * Resolve refs into a graph. Unresolved refs, self-links and duplicate edges are dropped.\n * Nodes = every entry + every other item that touches an entry.\n */\nexport function buildGraph(entries: GraphItem[], others: GraphItem[]): MemoryGraph {\n const all = [...entries, ...others]\n const byId = new Map(all.map(n => [n.id, n]))\n const byPath = new Map(all.map(n => [n.path, n]))\n const entryIds = new Set(entries.map(e => e.id))\n const edges = new Map<string, GraphEdge>()\n const add = (from: string, to: string) => { if (from !== to) edges.set(`${from}\\u0000${to}`, { from, to }) }\n\n for (const e of entries) {\n const { ids, paths } = extractRefs(e.text)\n for (const id of ids) if (byId.has(id)) add(e.id, id)\n for (const p of paths) { const n = byPath.get(p); if (n) add(e.id, n.id) }\n }\n // incoming: other files that mention an entry id (not the whole doc-to-doc graph)\n for (const o of others) {\n for (const id of extractRefs(o.text).ids) if (entryIds.has(id)) add(o.id, id)\n }\n\n const touched = new Set(entryIds)\n for (const e of edges.values()) { touched.add(e.from); touched.add(e.to) }\n const nodes = all.filter(n => touched.has(n.id)).map(({ text: _, ...n }) => n)\n return { nodes, edges: [...edges.values()] }\n}\n\n/** One entry, its direct neighbours and the edges between it and them. Unknown id → empty graph. */\nexport function neighbourhood(graph: MemoryGraph, id: string): MemoryGraph {\n if (!graph.nodes.some(n => n.id === id)) return { nodes: [], edges: [] }\n const edges = graph.edges.filter(e => e.from === id || e.to === id)\n const keep = new Set([id, ...edges.flatMap(e => [e.from, e.to])])\n return { nodes: graph.nodes.filter(n => keep.has(n.id)), edges }\n}\n\n/**\n * \"Links: …\" / \"Linked from: …\" lines for one entry (vibedoc_get_entries). A line with nothing is left out;\n * each is capped at `cap` items plus \"+N more\", so a hub entry stays short.\n */\nexport function formatEntryLinks(graph: MemoryGraph, id: string, cap = 10): string[] {\n const line = (label: string, ids: string[]) => {\n if (!ids.length) return []\n const more = ids.length > cap ? `, +${ids.length - cap} more` : ''\n return [`${label}: ${ids.slice(0, cap).join(', ')}${more}`]\n }\n return [\n ...line('Links', graph.edges.filter(e => e.from === id).map(e => e.to)),\n ...line('Linked from', graph.edges.filter(e => e.to === id).map(e => e.from)),\n ]\n}\n\nexport const GRAPH_COL_W = 240\nexport const GRAPH_ROW_H = 48\n/** Column per kind: epics and tasks left of the entries, ADRs and docs right of them. */\nconst GRAPH_COL: Record<NodeKind, number> = { epic: -2, task: -1, entry: 0, adr: 1, doc: 2 }\n\n/**\n * Deterministic positions for the graph view (no layout library, no saved positions): entries stacked in the\n * centre column (sorted by type, then id), every other node in its kind's column at the average y of the\n * entries it links with, pushed down to keep one row of space. Same graph → same positions on every load.\n */\nexport function graphLayout(graph: MemoryGraph, entryType: Record<string, string> = {}): Record<string, { x: number; y: number }> {\n const pos: Record<string, { x: number; y: number }> = {}\n const num = (id: string) => Number(id.replace(/\\D/g, '')) || 0\n const entries = graph.nodes.filter(n => n.kind === 'entry')\n .sort((a, b) => (entryType[a.id] ?? '').localeCompare(entryType[b.id] ?? '') || num(a.id) - num(b.id))\n entries.forEach((e, i) => { pos[e.id] = { x: 0, y: i * GRAPH_ROW_H } })\n\n const neighbourYs = new Map<string, number[]>()\n for (const { from, to } of graph.edges) {\n for (const [other, entry] of [[from, to], [to, from]]) {\n if (pos[entry] && !pos[other]) neighbourYs.set(other, [...(neighbourYs.get(other) ?? []), pos[entry].y])\n }\n }\n for (const kind of ['epic', 'task', 'adr', 'doc'] as const) {\n const col = graph.nodes.filter(n => n.kind === kind).map(n => {\n const ys = neighbourYs.get(n.id) ?? [0]\n return { id: n.id, want: ys.reduce((a, b) => a + b, 0) / ys.length }\n }).sort((a, b) => a.want - b.want || a.id.localeCompare(b.id, 'en', { numeric: true }))\n let next = -Infinity\n for (const { id, want } of col) {\n const y = Math.max(want, next)\n pos[id] = { x: GRAPH_COL[kind] * GRAPH_COL_W, y }\n next = y + GRAPH_ROW_H\n }\n }\n return pos\n}\n"],"names":["Gt","n","t1","e","s","RegExp","ce","i","r","ss","start","end","pre","slice","body","length","post","match","o","h","a","indexOf","l","u","push","c","pop","fe","Math","random","ue","qt","de","pe","is","rs","ns","os","hs","as","ls","cs","fs","us","ds","Ht","isNaN","charCodeAt","parseInt","ps","replace","ms","me","split","shift","apply","ge","max","ht","map","gs","ws","test","ys","bs","f","d","m","p","w","abs","g","E","some","y","b","String","fromCharCode","z","$","Array","join","at","TypeError","Ss","lt","Es","we","ye","charAt","Error","t","S","Object","entries","startsWith","W","windowsPathsNoEscape","magicalBraces","xs","Set","be","has","vs","Ct","Cs","Ts","As","ks","Kt","Se","Ee","Q","type","hasMagic","toString","copyIn","toJSON","isStart","unshift","isEnd","clone","noext","substring","fromGlob","toMMPattern","toRegExpSource","nocase","nocaseMagicOnly","toUpperCase","toLowerCase","assign","_src","_glob","options","dot","filter","tt","O","nocomment","D","Rs","Os","endsWith","Fs","Ds","Ms","Ns","_s","includes","Ls","Ws","Ps","js","Is","zs","Bs","Us","Ce","$s","Te","Gs","Hs","Ae","process","env","__MINIMATCH_TESTING_PLATFORM__","platform","xe","win32","sep","posix","qs","A","Symbol","GLOBSTAR","Ks","Vs","Ys","Xs","Js","N","Zs","keys","Minimatch","defaults","AST","unescape","escape","makeRe","braceExpand","ke","nobrace","braceExpandMax","Qs","ti","nonull","ve","ei","set","pattern","nonegate","negate","comment","empty","preserveMultipleSlashes","partial","globSet","globParts","isWindows","windowsNoMagicRoot","regexp","make","debug","parseNegate","console","error","slashSplit","preprocess","parse","noglobstar","optimizationLevel","firstPhasePreProcess","secondPhasePreProcess","levelOneOptimize","adjascentGlobstarOptimize","splice","reduce","levelTwoFileOptimize","isArray","partsMatch","matchOne","file","Reflect","defineProperty","value","flags","add","forEach","matchBase","flipNegate","si","performance","now","Date","Oe","Vt","Fe","emitWarning","At","globalThis","AbortController","Re","AbortSignal","onabort","_onabort","reason","aborted","addEventListener","signal","abort","LRU_CACHE_IGNORE_AC_WARNING","ii","q","floor","isFinite","De","pow","Uint8Array","Uint16Array","Uint32Array","Number","MAX_SAFE_INTEGER","Tt","fill","ri","ct","heap","create","ft","Me","perf","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","noDisposeOnSet","noUpdateTTL","maxEntrySize","sizeCalculation","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchAbort","allowStaleOnFetchRejection","ignoreFetchAbort","unsafeExposeInternals","starts","ttls","autopurgeTimers","sizes","keyMap","keyList","valList","next","prev","head","tail","free","isBackgroundFetch","backgroundFetch","moveToTail","indexes","rindexes","isStale","maxSize","calculatedSize","size","fetchMethod","memoMethod","dispose","onInsert","disposeAfter","J","Z","Map","$t","getRemainingTTL","clearTimeout","setTimeout","unref","remainingTTL","get","entrySize","totalCalculatedSize","rentries","rkeys","values","rvalues","iterator","toStringTag","find","__staleWhileFetching","call","rforEach","purgeStale","info","dump","load","clear","delete","status","maxEntrySizeExceeded","__abortController","oldValue","peek","context","fetchAborted","fetchError","fetchAbortIgnored","fetchResolved","fetchUpdated","fetchRejected","returnedStale","__returned","Promise","then","fetchDispatched","hasOwnProperty","fetch","forceRefresh","forceFetch","memo","Ne","stdout","stderr","oi","V","hi","ai","pipe","Writable","prototype","write","G","H","K","kt","ut","Rt","_e","Ot","Le","P","et","v","dt","st","C","F","T","Yt","Ft","k","x","Xt","Jt","We","Zt","B","Qt","Dt","pt","Y","M","mt","resolve","li","ci","fi","ArrayBuffer","name","byteLength","ui","Buffer","isBuffer","isView","Mt","src","dest","opts","ondrain","on","unpipe","removeListener","proxyErrors","te","emit","di","objectMode","pi","encoding","writable","readable","async","debugExposeBuffer","debugExposePipes","bufferLength","setEncoding","destroy","code","from","buffer","byteOffset","lastNeed","read","concat","subarray","once","resume","pause","destroyed","flowing","paused","addListener","removeAllListeners","off","listeners","emittedEnd","collect","dataLength","promise","asyncIterator","done","throw","return","asyncDispose","close","isStream","vi","native","wt","lstatSync","readdir","readdirSync","readlinkSync","realpathSync","promises","lstat","readlink","realpath","Ue","imported module 902157","$e","Ri","Oi","L","Ge","He","U","qe","Ke","X","Ve","_","gt","se","je","yt","j","Nt","Lt","Ie","Fi","ie","isFile","isDirectory","isSymbolicLink","isCharacterDevice","isBlockDevice","isSocket","isFIFO","ze","bt","normalize","Be","_t","Wt","ne","Ye","R","root","roots","parent","isCWD","dev","mode","nlink","uid","gid","rdev","blksize","ino","blocks","atimeMs","mtimeMs","ctimeMs","birthtimeMs","atime","mtime","ctime","birthtime","parentPath","fullpath","path","relative","relativePosix","depth","childrenCache","getRootString","splitSep","getRoot","child","children","provisional","newChild","canReaddir","fullpathPosix","isUnknown","isType","getType","lstatCached","readlinkCached","realpathCached","readdirCached","canReadlink","calledReaddir","isENOENT","isNamed","readdirCB","queueMicrotask","withFileTypes","shouldWalk","Pt","sameRoot","it","jt","It","rootPath","cwd","childrenCacheSize","URL","parseRootPath","newRoot","isAbsolute","resolvePosix","basename","dirname","walk","follow","walkFilter","walkSync","iterate","stream","iterateSync","all","streamSync","chdir","rt","St","Cr","Xe","Di","Mi","Ni","for","nt","isUNC","isDrive","isString","isGlobstar","isRegExp","globString","hasMore","rest","checkFollowGlobstar","markFollowGlobstar","_i","ot","relativeChildren","absolute","absoluteChildren","mmopts","ignored","childrenIgnored","oe","store","copy","hasWalked","storeWalked","he","ae","Et","hasWalkedCache","matches","subwalks","patterns","processPatterns","subwalkTargets","filterEntries","testGlobstar","testRegExp","testString","Li","zt","seen","maxDepth","includeChildMatches","ignore","onResume","matchCheck","nodir","stat","matchCheckTest","matchCheckSync","matchFinish","mark","matchEmit","dotRelative","matchSync","walkCB","walkCB2","walkCB3","walkCBSync","walkCB2Sync","walkCB3Sync","xt","vt","results","Pi","I","scurry","allowWindowsEscape","le","Bt","Qe","ts","Je","Ut","es","ji","Ii","sync","zi","Bi","Ui","Ze","glob","globSync","globStream","globStreamSync","globIterate","globIterateSync","Glob","normalizeStatus","raw","findRoot","startDir","dir","marker","access","getConfiguredRoot","VIBEDOC_ROOT","discoverProjects","searchBase","base","projects","entry","hasVibedoc","id","existingIdx","findIndex","existing","listDocs","files","sort","section","inferSection","readDoc","query","candidates","content","readFile","writeDoc","docPath","resolvedRoot","fullPath","mkdir","recursive","writeFile","editDoc","edits","dryRun","before","catch","result","getContext","paths","parts","trim","createDoc","err","nodeErr","appendActivity","actor","title","detail","exists","readRegistry","rebuildRegistry","searchDocs","qLower","lines","hits","line","text","totalHits","warnedStatuses","parseTaskFile","filePath","defs","filename","titleLine","meta","roadmapMetaEnd","resolved","warnKey","unknown","warn","customStatus","idM","tests","manualTests","total","phase","dependsOn","owner","due","parseDue","started","finished","listTasks","statuses","readProjectSettings","tasks","board","todo","review","blocked","cancelled","col","getTask","taskId","ownerAfterMove","current","mover","agent","JSON","budget","memory","sessionBudgetTokens","sizeDays","withMetaLine","label","updateTaskStatus","statusKey","task","previousStatus","RoadmapError","newStatus","statusPattern","dates","taskStatus","_old","TASK_META_LABELS","updateTaskMeta","patch","oneLine","undefined","h1","key","stringify","deleteTask","withTaskClaimLock","unlink","items","listRoadmap","links","epic","index","updateRoadmapItem","setTaskEpic","epicId","target","bulkTasks","ids","action","deleted","isFileIn","rel","norm","restoreTask","flag","link","min","saveManualTests","report","toISOString","TaskStateError","reviewTask","outcome","note","approveTask","sendBackTask","setManualTestChecked","checked","taskClaimLock","fn","run","claimNextTask","getRoadmapItem","kind","createTask","params","createTaskUnlocked","nextNum","padStart","slug","tasksDir","description","checkPlan","plan","selected","taskIds","errors","roadmap","sel","selErrors","applyPlan","withRoadmapLock","readRoadmapFiles","item","created","horizons","createRoadmapItemUnlocked","epics","newEpic","createRoadmapItem","deps","fresh","updated","logDecision","decision","rationale","alternatives","consequences","nums","numStr","today","altsTable","option","indexPath","idx","trimEnd","adrNumber","readMemory","updateMemory","currentState","justCompleted","workingOn","upNext","issues","decisions","techDebt","handoff","time","toLocaleTimeString","hour","minute","issue","severity","ENTRIES_DIR","entryLock","withEntryLock","listEntries","names","localeCompare","numeric","getEntry","saveEntry","input","reject","previous","summary","updatedAt","by","rm","force","getEntriesByIds","byId","found","missing","sessionStartMemory","relatedEntries","limit","execFileP","GIT_SHA_RE","HISTORY_MAX","git","args","maxBuffer","relInsideRoot","relPath","full","getFileHistory","exec","spec","out","history","record","sha","author","date","subject","kept","uncommitted","message","getFileAtCommit","commit","top","recallEntries","deleteEntry","restoreEntry","ACTIVITY_FILE","ACTIVITY_CAP","DESCRIPTIONS_FILE","readDescriptions","writeDescriptions","cache","writeDescriptionEntry","normalizedKey","_anthropic","getAnthropicClient","default","Anthropic","apiKey","ANTHROPIC_API_KEY","extractDescription","heading","enrichDescription","client","messages","model","max_tokens","role","textBlock","source","listExplorerFiles","docs","doc","cached","globalForSessions","currentSessions","vibedocSessions","stampSession","event","cur","lastAt","timestamp","sessionId","events","DOC_EDIT_COALESCE_MS","DOC_EDIT_LOOKBACK","noteDocEdit","docLastEdit","readActivity","logSessionStart","appendDoc","renameDoc","oldPath","newPath","fullOld","fullNew","rename","copyFile","deleteDoc","REGISTRY_PATH","ANNOTATIONS_START","ANNOTATIONS_END","buildDocTree","tree","dirs","rendered","renderDir","indent","prefix","repeat","childIndent","childPrefix","dirFiles","parseAnnotations","rows","row","cols","Boolean","keywords","savedAnnotations","saved","totalFiles","updateRegistryAnnotation","annotations","newAnnotationsBlock","newContent","findBacklinks","targetPath","normalTarget","getMemoryGraph","others","getProjectSummary","activity","active","ROADMAP_DIR","ROADMAP_LAYOUT","ROADMAP_STATUSES","META_LINE","normalizeRoadmapId","roadmapIdOf","parseRoadmapStatus","parseTaskIds","cleanTitle","UTC","cleanDue","cleanOrder","order","parseRoadmapFile","metaEnd","rawParent","parseFloat","findRoadmapFile","rid","sortRoadmap","num","validateParent","selfId","cleanBody","roadmapLock","formatTasks","layout","readRoadmapLayout","roadmapId","writeRoadmapFile","detectRoadmapSource","roadmapDrafts","drafts","fromTasks","generateRoadmap","siblingCount","siblingOrders","updateRoadmapItemUnlocked","setMeta","deleteRoadmapItem","deleteRoadmapItemUnlocked","position","writeRoadmapLayoutUnlocked","restoreRoadmapItem","parsed","writeRoadmapLayout","positions","clean","ok","merged","PLANNING_SKILLS","breakdown","readPlanningSkill","hasOwn","trimStart","CHATS_DIR","CHAT_ID","chatFile","listChats","chats","saveChat","chat","tmp","deleteChat","VIEWS_FILE","readViews","views","saveViews","ENTRY_TYPES","SUMMARY_MAX","isEntryType","normalizeEntryId","nextEntryId","entrySlug","parseEntry","formatEntry","validateEntryInput","STOPWORDS","tokenize","estimateTokens","ceil","rankEntries","idType","score","tokens","formatCompactLine","indexHits","DEFAULT_SESSION_BUDGET","INDEX_HINT","fitToBudget","render","warning","fits","shown","omitted","RELATED_MIN_SCORE","GOAL_CHARS","taskQuery","goal","formatRelated","strong","pool"],"mappings":"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","ignoreList":[0]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/glob%4013.0.6/node_modules/glob/dist/esm/index.min.js","../../../src/lib/diff.ts","../../../src/lib/doc-priority.ts","../../../src/lib/owner.ts","../../../src/lib/sessions.ts","../../../src/lib/auto-dates.ts","../../../src/lib/statuses.ts","../../../src/lib/review.ts","../../../src/lib/manual-tests.ts","../../../src/lib/work-queue.ts","../../../src/lib/roadmap-import.ts","../../../src/lib/plan.ts","../../../src/lib/roadmap-health.ts","../../../src/lib/core.ts","../../../src/lib/entries.ts","../../../src/lib/recall.ts","../../../src/lib/memory-graph.ts"],"sourcesContent":["var Gt=(n,t,e)=>{let s=n instanceof RegExp?ce(n,e):n,i=t instanceof RegExp?ce(t,e):t,r=s!==null&&i!=null&&ss(s,i,e);return r&&{start:r[0],end:r[1],pre:e.slice(0,r[0]),body:e.slice(r[0]+s.length,r[1]),post:e.slice(r[1]+i.length)}},ce=(n,t)=>{let e=t.match(n);return e?e[0]:null},ss=(n,t,e)=>{let s,i,r,o,h,a=e.indexOf(n),l=e.indexOf(t,a+1),u=a;if(a>=0&&l>0){if(n===t)return[a,l];for(s=[],r=e.length;u>=0&&!h;){if(u===a)s.push(u),a=e.indexOf(n,u+1);else if(s.length===1){let c=s.pop();c!==void 0&&(h=[c,l])}else i=s.pop(),i!==void 0&&i<r&&(r=i,o=l),l=e.indexOf(t,u+1);u=a<l&&a>=0?a:l}s.length&&o!==void 0&&(h=[r,o])}return h};var fe=\"\\0SLASH\"+Math.random()+\"\\0\",ue=\"\\0OPEN\"+Math.random()+\"\\0\",qt=\"\\0CLOSE\"+Math.random()+\"\\0\",de=\"\\0COMMA\"+Math.random()+\"\\0\",pe=\"\\0PERIOD\"+Math.random()+\"\\0\",is=new RegExp(fe,\"g\"),rs=new RegExp(ue,\"g\"),ns=new RegExp(qt,\"g\"),os=new RegExp(de,\"g\"),hs=new RegExp(pe,\"g\"),as=/\\\\\\\\/g,ls=/\\\\{/g,cs=/\\\\}/g,fs=/\\\\,/g,us=/\\\\./g,ds=1e5;function Ht(n){return isNaN(n)?n.charCodeAt(0):parseInt(n,10)}function ps(n){return n.replace(as,fe).replace(ls,ue).replace(cs,qt).replace(fs,de).replace(us,pe)}function ms(n){return n.replace(is,\"\\\\\").replace(rs,\"{\").replace(ns,\"}\").replace(os,\",\").replace(hs,\".\")}function me(n){if(!n)return[\"\"];let t=[],e=Gt(\"{\",\"}\",n);if(!e)return n.split(\",\");let{pre:s,body:i,post:r}=e,o=s.split(\",\");o[o.length-1]+=\"{\"+i+\"}\";let h=me(r);return r.length&&(o[o.length-1]+=h.shift(),o.push.apply(o,h)),t.push.apply(t,o),t}function ge(n,t={}){if(!n)return[];let{max:e=ds}=t;return n.slice(0,2)===\"{}\"&&(n=\"\\\\{\\\\}\"+n.slice(2)),ht(ps(n),e,!0).map(ms)}function gs(n){return\"{\"+n+\"}\"}function ws(n){return/^-?0\\d/.test(n)}function ys(n,t){return n<=t}function bs(n,t){return n>=t}function ht(n,t,e){let s=[],i=Gt(\"{\",\"}\",n);if(!i)return[n];let r=i.pre,o=i.post.length?ht(i.post,t,!1):[\"\"];if(/\\$$/.test(i.pre))for(let h=0;h<o.length&&h<t;h++){let a=r+\"{\"+i.body+\"}\"+o[h];s.push(a)}else{let h=/^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(i.body),a=/^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(i.body),l=h||a,u=i.body.indexOf(\",\")>=0;if(!l&&!u)return i.post.match(/,(?!,).*\\}/)?(n=i.pre+\"{\"+i.body+qt+i.post,ht(n,t,!0)):[n];let c;if(l)c=i.body.split(/\\.\\./);else if(c=me(i.body),c.length===1&&c[0]!==void 0&&(c=ht(c[0],t,!1).map(gs),c.length===1))return o.map(f=>i.pre+c[0]+f);let d;if(l&&c[0]!==void 0&&c[1]!==void 0){let f=Ht(c[0]),m=Ht(c[1]),p=Math.max(c[0].length,c[1].length),w=c.length===3&&c[2]!==void 0?Math.abs(Ht(c[2])):1,g=ys;m<f&&(w*=-1,g=bs);let E=c.some(ws);d=[];for(let y=f;g(y,m);y+=w){let b;if(a)b=String.fromCharCode(y),b===\"\\\\\"&&(b=\"\");else if(b=String(y),E){let z=p-b.length;if(z>0){let $=new Array(z+1).join(\"0\");y<0?b=\"-\"+$+b.slice(1):b=$+b}}d.push(b)}}else{d=[];for(let f=0;f<c.length;f++)d.push.apply(d,ht(c[f],t,!1))}for(let f=0;f<d.length;f++)for(let m=0;m<o.length&&s.length<t;m++){let p=r+d[f]+o[m];(!e||l||p)&&s.push(p)}}return s}var at=n=>{if(typeof n!=\"string\")throw new TypeError(\"invalid pattern\");if(n.length>65536)throw new TypeError(\"pattern is too long\")};var Ss={\"[:alnum:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\",!0],\"[:alpha:]\":[\"\\\\p{L}\\\\p{Nl}\",!0],\"[:ascii:]\":[\"\\\\x00-\\\\x7f\",!1],\"[:blank:]\":[\"\\\\p{Zs}\\\\t\",!0],\"[:cntrl:]\":[\"\\\\p{Cc}\",!0],\"[:digit:]\":[\"\\\\p{Nd}\",!0],\"[:graph:]\":[\"\\\\p{Z}\\\\p{C}\",!0,!0],\"[:lower:]\":[\"\\\\p{Ll}\",!0],\"[:print:]\":[\"\\\\p{C}\",!0],\"[:punct:]\":[\"\\\\p{P}\",!0],\"[:space:]\":[\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\",!0],\"[:upper:]\":[\"\\\\p{Lu}\",!0],\"[:word:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\",!0],\"[:xdigit:]\":[\"A-Fa-f0-9\",!1]},lt=n=>n.replace(/[[\\]\\\\-]/g,\"\\\\$&\"),Es=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),we=n=>n.join(\"\"),ye=(n,t)=>{let e=t;if(n.charAt(e)!==\"[\")throw new Error(\"not in a brace expression\");let s=[],i=[],r=e+1,o=!1,h=!1,a=!1,l=!1,u=e,c=\"\";t:for(;r<n.length;){let p=n.charAt(r);if((p===\"!\"||p===\"^\")&&r===e+1){l=!0,r++;continue}if(p===\"]\"&&o&&!a){u=r+1;break}if(o=!0,p===\"\\\\\"&&!a){a=!0,r++;continue}if(p===\"[\"&&!a){for(let[w,[g,S,E]]of Object.entries(Ss))if(n.startsWith(w,r)){if(c)return[\"$.\",!1,n.length-e,!0];r+=w.length,E?i.push(g):s.push(g),h=h||S;continue t}}if(a=!1,c){p>c?s.push(lt(c)+\"-\"+lt(p)):p===c&&s.push(lt(p)),c=\"\",r++;continue}if(n.startsWith(\"-]\",r+1)){s.push(lt(p+\"-\")),r+=2;continue}if(n.startsWith(\"-\",r+1)){c=p,r+=2;continue}s.push(lt(p)),r++}if(u<r)return[\"\",!1,0,!1];if(!s.length&&!i.length)return[\"$.\",!1,n.length-e,!0];if(i.length===0&&s.length===1&&/^\\\\?.$/.test(s[0])&&!l){let p=s[0].length===2?s[0].slice(-1):s[0];return[Es(p),!1,u-e,!1]}let d=\"[\"+(l?\"^\":\"\")+we(s)+\"]\",f=\"[\"+(l?\"\":\"^\")+we(i)+\"]\";return[s.length&&i.length?\"(\"+d+\"|\"+f+\")\":s.length?d:f,h,u-e,!0]};var W=(n,{windowsPathsNoEscape:t=!1,magicalBraces:e=!0}={})=>e?t?n.replace(/\\[([^\\/\\\\])\\]/g,\"$1\"):n.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g,\"$1$2\").replace(/\\\\([^\\/])/g,\"$1\"):t?n.replace(/\\[([^\\/\\\\{}])\\]/g,\"$1\"):n.replace(/((?!\\\\).|^)\\[([^\\/\\\\{}])\\]/g,\"$1$2\").replace(/\\\\([^\\/{}])/g,\"$1\");var xs=new Set([\"!\",\"?\",\"+\",\"*\",\"@\"]),be=n=>xs.has(n),vs=\"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\",Ct=\"(?!\\\\.)\",Cs=new Set([\"[\",\".\"]),Ts=new Set([\"..\",\".\"]),As=new Set(\"().*{}+?[]^$\\\\!\"),ks=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),Kt=\"[^/]\",Se=Kt+\"*?\",Ee=Kt+\"+?\",Q=class n{type;#t;#s;#n=!1;#r=[];#o;#S;#w;#c=!1;#h;#u;#f=!1;constructor(t,e,s={}){this.type=t,t&&(this.#s=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#h=this.#t===this?s:this.#t.#h,this.#w=this.#t===this?[]:this.#t.#w,t===\"!\"&&!this.#t.#c&&this.#w.push(this),this.#S=this.#o?this.#o.#r.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#r)if(typeof t!=\"string\"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+\"(\"+this.#r.map(t=>String(t)).join(\"|\")+\")\":this.#u=this.#r.map(t=>String(t)).join(\"\")}#a(){if(this!==this.#t)throw new Error(\"should only call on root\");if(this.#c)return this;this.toString(),this.#c=!0;let t;for(;t=this.#w.pop();){if(t.type!==\"!\")continue;let e=t,s=e.#o;for(;s;){for(let i=e.#S+1;!s.type&&i<s.#r.length;i++)for(let r of t.#r){if(typeof r==\"string\")throw new Error(\"string part in extglob AST??\");r.copyIn(s.#r[i])}e=s,s=e.#o}}return this}push(...t){for(let e of t)if(e!==\"\"){if(typeof e!=\"string\"&&!(e instanceof n&&e.#o===this))throw new Error(\"invalid part: \"+e);this.#r.push(e)}}toJSON(){let t=this.type===null?this.#r.slice().map(e=>typeof e==\"string\"?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#c&&this.#o?.type===\"!\")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(this.#S===0)return!0;let t=this.#o;for(let e=0;e<this.#S;e++){let s=t.#r[e];if(!(s instanceof n&&s.type===\"!\"))return!1}return!0}isEnd(){if(this.#t===this||this.#o?.type===\"!\")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#r.length:0;return this.#S===t-1}copyIn(t){typeof t==\"string\"?this.push(t):this.push(t.clone(this))}clone(t){let e=new n(this.type,t);for(let s of this.#r)e.copyIn(s);return e}static#i(t,e,s,i){let r=!1,o=!1,h=-1,a=!1;if(e.type===null){let f=s,m=\"\";for(;f<t.length;){let p=t.charAt(f++);if(r||p===\"\\\\\"){r=!r,m+=p;continue}if(o){f===h+1?(p===\"^\"||p===\"!\")&&(a=!0):p===\"]\"&&!(f===h+2&&a)&&(o=!1),m+=p;continue}else if(p===\"[\"){o=!0,h=f,a=!1,m+=p;continue}if(!i.noext&&be(p)&&t.charAt(f)===\"(\"){e.push(m),m=\"\";let w=new n(p,e);f=n.#i(t,w,f,i),e.push(w);continue}m+=p}return e.push(m),f}let l=s+1,u=new n(null,e),c=[],d=\"\";for(;l<t.length;){let f=t.charAt(l++);if(r||f===\"\\\\\"){r=!r,d+=f;continue}if(o){l===h+1?(f===\"^\"||f===\"!\")&&(a=!0):f===\"]\"&&!(l===h+2&&a)&&(o=!1),d+=f;continue}else if(f===\"[\"){o=!0,h=l,a=!1,d+=f;continue}if(be(f)&&t.charAt(l)===\"(\"){u.push(d),d=\"\";let m=new n(f,u);u.push(m),l=n.#i(t,m,l,i);continue}if(f===\"|\"){u.push(d),d=\"\",c.push(u),u=new n(null,e);continue}if(f===\")\")return d===\"\"&&e.#r.length===0&&(e.#f=!0),u.push(d),d=\"\",e.push(...c,u),l;d+=f}return e.type=null,e.#s=void 0,e.#r=[t.substring(s-1)],l}static fromGlob(t,e={}){let s=new n(null,void 0,e);return n.#i(t,s,0,e),s}toMMPattern(){if(this!==this.#t)return this.#t.toMMPattern();let t=this.toString(),[e,s,i,r]=this.toRegExpSource();if(!(i||this.#s||this.#h.nocase&&!this.#h.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return s;let h=(this.#h.nocase?\"i\":\"\")+(r?\"u\":\"\");return Object.assign(new RegExp(`^${e}$`,h),{_src:e,_glob:t})}get options(){return this.#h}toRegExpSource(t){let e=t??!!this.#h.dot;if(this.#t===this&&this.#a(),!this.type){let a=this.isStart()&&this.isEnd()&&!this.#r.some(f=>typeof f!=\"string\"),l=this.#r.map(f=>{let[m,p,w,g]=typeof f==\"string\"?n.#E(f,this.#s,a):f.toRegExpSource(t);return this.#s=this.#s||w,this.#n=this.#n||g,m}).join(\"\"),u=\"\";if(this.isStart()&&typeof this.#r[0]==\"string\"&&!(this.#r.length===1&&Ts.has(this.#r[0]))){let m=Cs,p=e&&m.has(l.charAt(0))||l.startsWith(\"\\\\.\")&&m.has(l.charAt(2))||l.startsWith(\"\\\\.\\\\.\")&&m.has(l.charAt(4)),w=!e&&!t&&m.has(l.charAt(0));u=p?vs:w?Ct:\"\"}let c=\"\";return this.isEnd()&&this.#t.#c&&this.#o?.type===\"!\"&&(c=\"(?:$|\\\\/)\"),[u+l+c,W(l),this.#s=!!this.#s,this.#n]}let s=this.type===\"*\"||this.type===\"+\",i=this.type===\"!\"?\"(?:(?!(?:\":\"(?:\",r=this.#d(e);if(this.isStart()&&this.isEnd()&&!r&&this.type!==\"!\"){let a=this.toString();return this.#r=[a],this.type=null,this.#s=void 0,[a,W(this.toString()),!1,!1]}let o=!s||t||e||!Ct?\"\":this.#d(!0);o===r&&(o=\"\"),o&&(r=`(?:${r})(?:${o})*?`);let h=\"\";if(this.type===\"!\"&&this.#f)h=(this.isStart()&&!e?Ct:\"\")+Ee;else{let a=this.type===\"!\"?\"))\"+(this.isStart()&&!e&&!t?Ct:\"\")+Se+\")\":this.type===\"@\"?\")\":this.type===\"?\"?\")?\":this.type===\"+\"&&o?\")\":this.type===\"*\"&&o?\")?\":`)${this.type}`;h=i+r+a}return[h,W(r),this.#s=!!this.#s,this.#n]}#d(t){return this.#r.map(e=>{if(typeof e==\"string\")throw new Error(\"string type in extglob ast??\");let[s,i,r,o]=e.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join(\"|\")}static#E(t,e,s=!1){let i=!1,r=\"\",o=!1,h=!1;for(let a=0;a<t.length;a++){let l=t.charAt(a);if(i){i=!1,r+=(As.has(l)?\"\\\\\":\"\")+l;continue}if(l===\"*\"){if(h)continue;h=!0,r+=s&&/^[*]+$/.test(t)?Ee:Se,e=!0;continue}else h=!1;if(l===\"\\\\\"){a===t.length-1?r+=\"\\\\\\\\\":i=!0;continue}if(l===\"[\"){let[u,c,d,f]=ye(t,a);if(d){r+=u,o=o||c,a+=d-1,e=e||f;continue}}if(l===\"?\"){r+=Kt,e=!0;continue}r+=ks(l)}return[r,W(t),!!e,o]}};var tt=(n,{windowsPathsNoEscape:t=!1,magicalBraces:e=!1}={})=>e?t?n.replace(/[?*()[\\]{}]/g,\"[$&]\"):n.replace(/[?*()[\\]\\\\{}]/g,\"\\\\$&\"):t?n.replace(/[?*()[\\]]/g,\"[$&]\"):n.replace(/[?*()[\\]\\\\]/g,\"\\\\$&\");var O=(n,t,e={})=>(at(t),!e.nocomment&&t.charAt(0)===\"#\"?!1:new D(t,e).match(n)),Rs=/^\\*+([^+@!?\\*\\[\\(]*)$/,Os=n=>t=>!t.startsWith(\".\")&&t.endsWith(n),Fs=n=>t=>t.endsWith(n),Ds=n=>(n=n.toLowerCase(),t=>!t.startsWith(\".\")&&t.toLowerCase().endsWith(n)),Ms=n=>(n=n.toLowerCase(),t=>t.toLowerCase().endsWith(n)),Ns=/^\\*+\\.\\*+$/,_s=n=>!n.startsWith(\".\")&&n.includes(\".\"),Ls=n=>n!==\".\"&&n!==\"..\"&&n.includes(\".\"),Ws=/^\\.\\*+$/,Ps=n=>n!==\".\"&&n!==\"..\"&&n.startsWith(\".\"),js=/^\\*+$/,Is=n=>n.length!==0&&!n.startsWith(\".\"),zs=n=>n.length!==0&&n!==\".\"&&n!==\"..\",Bs=/^\\?+([^+@!?\\*\\[\\(]*)?$/,Us=([n,t=\"\"])=>{let e=Ce([n]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},$s=([n,t=\"\"])=>{let e=Te([n]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},Gs=([n,t=\"\"])=>{let e=Te([n]);return t?s=>e(s)&&s.endsWith(t):e},Hs=([n,t=\"\"])=>{let e=Ce([n]);return t?s=>e(s)&&s.endsWith(t):e},Ce=([n])=>{let t=n.length;return e=>e.length===t&&!e.startsWith(\".\")},Te=([n])=>{let t=n.length;return e=>e.length===t&&e!==\".\"&&e!==\"..\"},Ae=typeof process==\"object\"&&process?typeof process.env==\"object\"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:\"posix\",xe={win32:{sep:\"\\\\\"},posix:{sep:\"/\"}},qs=Ae===\"win32\"?xe.win32.sep:xe.posix.sep;O.sep=qs;var A=Symbol(\"globstar **\");O.GLOBSTAR=A;var Ks=\"[^/]\",Vs=Ks+\"*?\",Ys=\"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\",Xs=\"(?:(?!(?:\\\\/|^)\\\\.).)*?\",Js=(n,t={})=>e=>O(e,n,t);O.filter=Js;var N=(n,t={})=>Object.assign({},n,t),Zs=n=>{if(!n||typeof n!=\"object\"||!Object.keys(n).length)return O;let t=O;return Object.assign((s,i,r={})=>t(s,i,N(n,r)),{Minimatch:class extends t.Minimatch{constructor(i,r={}){super(i,N(n,r))}static defaults(i){return t.defaults(N(n,i)).Minimatch}},AST:class extends t.AST{constructor(i,r,o={}){super(i,r,N(n,o))}static fromGlob(i,r={}){return t.AST.fromGlob(i,N(n,r))}},unescape:(s,i={})=>t.unescape(s,N(n,i)),escape:(s,i={})=>t.escape(s,N(n,i)),filter:(s,i={})=>t.filter(s,N(n,i)),defaults:s=>t.defaults(N(n,s)),makeRe:(s,i={})=>t.makeRe(s,N(n,i)),braceExpand:(s,i={})=>t.braceExpand(s,N(n,i)),match:(s,i,r={})=>t.match(s,i,N(n,r)),sep:t.sep,GLOBSTAR:A})};O.defaults=Zs;var ke=(n,t={})=>(at(n),t.nobrace||!/\\{(?:(?!\\{).)*\\}/.test(n)?[n]:ge(n,{max:t.braceExpandMax}));O.braceExpand=ke;var Qs=(n,t={})=>new D(n,t).makeRe();O.makeRe=Qs;var ti=(n,t,e={})=>{let s=new D(t,e);return n=n.filter(i=>s.match(i)),s.options.nonull&&!n.length&&n.push(t),n};O.match=ti;var ve=/[?*]|[+@!]\\(.*?\\)|\\[|\\]/,ei=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),D=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){at(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Ae,this.isWindows=this.platform===\"win32\";let s=\"allowWindowsEscape\";this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e[s]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\\\/g,\"/\")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let e of t)if(typeof e!=\"string\")return!0;return!1}debug(...t){}make(){let t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)===\"#\"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...r)=>console.error(...r)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(r=>this.slashSplit(r));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((r,o,h)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=r[0]===\"\"&&r[1]===\"\"&&(r[2]===\"?\"||!ve.test(r[2]))&&!ve.test(r[3]),l=/^[a-z]:/i.test(r[0]);if(a)return[...r.slice(0,4),...r.slice(4).map(u=>this.parse(u))];if(l)return[r[0],...r.slice(1).map(u=>this.parse(u))]}return r.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r<this.set.length;r++){let o=this.set[r];o[0]===\"\"&&o[1]===\"\"&&this.globParts[r][2]===\"?\"&&typeof o[3]==\"string\"&&/^[a-z]:$/i.test(o[3])&&(o[2]=\"?\")}this.debug(this.pattern,this.set)}preprocess(t){if(this.options.noglobstar)for(let s=0;s<t.length;s++)for(let i=0;i<t[s].length;i++)t[s][i]===\"**\"&&(t[s][i]=\"*\");let{optimizationLevel:e=1}=this.options;return e>=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):e>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(e=>{let s=-1;for(;(s=e.indexOf(\"**\",s+1))!==-1;){let i=s;for(;e[i+1]===\"**\";)i++;i!==s&&e.splice(s,i-s)}return e})}levelOneOptimize(t){return t.map(e=>(e=e.reduce((s,i)=>{let r=s[s.length-1];return i===\"**\"&&r===\"**\"?s:i===\"..\"&&r&&r!==\"..\"&&r!==\".\"&&r!==\"**\"?(s.pop(),s):(s.push(i),s)},[]),e.length===0?[\"\"]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let i=1;i<t.length-1;i++){let r=t[i];i===1&&r===\"\"&&t[0]===\"\"||(r===\".\"||r===\"\")&&(e=!0,t.splice(i,1),i--)}t[0]===\".\"&&t.length===2&&(t[1]===\".\"||t[1]===\"\")&&(e=!0,t.pop())}let s=0;for(;(s=t.indexOf(\"..\",s+1))!==-1;){let i=t[s-1];i&&i!==\".\"&&i!==\"..\"&&i!==\"**\"&&(e=!0,t.splice(s-1,2),s-=2)}}while(e);return t.length===0?[\"\"]:t}firstPhasePreProcess(t){let e=!1;do{e=!1;for(let s of t){let i=-1;for(;(i=s.indexOf(\"**\",i+1))!==-1;){let o=i;for(;s[o+1]===\"**\";)o++;o>i&&s.splice(i+1,o-i);let h=s[i+1],a=s[i+2],l=s[i+3];if(h!==\"..\"||!a||a===\".\"||a===\"..\"||!l||l===\".\"||l===\"..\")continue;e=!0,s.splice(i,1);let u=s.slice(0);u[i]=\"**\",t.push(u),i--}if(!this.preserveMultipleSlashes){for(let o=1;o<s.length-1;o++){let h=s[o];o===1&&h===\"\"&&s[0]===\"\"||(h===\".\"||h===\"\")&&(e=!0,s.splice(o,1),o--)}s[0]===\".\"&&s.length===2&&(s[1]===\".\"||s[1]===\"\")&&(e=!0,s.pop())}let r=0;for(;(r=s.indexOf(\"..\",r+1))!==-1;){let o=s[r-1];if(o&&o!==\".\"&&o!==\"..\"&&o!==\"**\"){e=!0;let a=r===1&&s[r+1]===\"**\"?[\".\"]:[];s.splice(r-1,2,...a),s.length===0&&s.push(\"\"),r-=2}}}}while(e);return t}secondPhasePreProcess(t){for(let e=0;e<t.length-1;e++)for(let s=e+1;s<t.length;s++){let i=this.partsMatch(t[e],t[s],!this.preserveMultipleSlashes);if(i){t[e]=[],t[s]=i;break}}return t.filter(e=>e.length)}partsMatch(t,e,s=!1){let i=0,r=0,o=[],h=\"\";for(;i<t.length&&r<e.length;)if(t[i]===e[r])o.push(h===\"b\"?e[r]:t[i]),i++,r++;else if(s&&t[i]===\"**\"&&e[r]===t[i+1])o.push(t[i]),i++;else if(s&&e[r]===\"**\"&&t[i]===e[r+1])o.push(e[r]),r++;else if(t[i]===\"*\"&&e[r]&&(this.options.dot||!e[r].startsWith(\".\"))&&e[r]!==\"**\"){if(h===\"b\")return!1;h=\"a\",o.push(t[i]),i++,r++}else if(e[r]===\"*\"&&t[i]&&(this.options.dot||!t[i].startsWith(\".\"))&&t[i]!==\"**\"){if(h===\"a\")return!1;h=\"b\",o.push(e[r]),i++,r++}else return!1;return t.length===e.length&&o}parseNegate(){if(this.nonegate)return;let t=this.pattern,e=!1,s=0;for(let i=0;i<t.length&&t.charAt(i)===\"!\";i++)e=!e,s++;s&&(this.pattern=t.slice(s)),this.negate=e}matchOne(t,e,s=!1){let i=this.options;if(this.isWindows){let p=typeof t[0]==\"string\"&&/^[a-z]:$/i.test(t[0]),w=!p&&t[0]===\"\"&&t[1]===\"\"&&t[2]===\"?\"&&/^[a-z]:$/i.test(t[3]),g=typeof e[0]==\"string\"&&/^[a-z]:$/i.test(e[0]),S=!g&&e[0]===\"\"&&e[1]===\"\"&&e[2]===\"?\"&&typeof e[3]==\"string\"&&/^[a-z]:$/i.test(e[3]),E=w?3:p?0:void 0,y=S?3:g?0:void 0;if(typeof E==\"number\"&&typeof y==\"number\"){let[b,z]=[t[E],e[y]];b.toLowerCase()===z.toLowerCase()&&(e[y]=b,y>E?e=e.slice(y):E>y&&(t=t.slice(E)))}}let{optimizationLevel:r=1}=this.options;r>=2&&(t=this.levelTwoFileOptimize(t)),this.debug(\"matchOne\",this,{file:t,pattern:e}),this.debug(\"matchOne\",t.length,e.length);for(var o=0,h=0,a=t.length,l=e.length;o<a&&h<l;o++,h++){this.debug(\"matchOne loop\");var u=e[h],c=t[o];if(this.debug(e,u,c),u===!1)return!1;if(u===A){this.debug(\"GLOBSTAR\",[e,u,c]);var d=o,f=h+1;if(f===l){for(this.debug(\"** at the end\");o<a;o++)if(t[o]===\".\"||t[o]===\"..\"||!i.dot&&t[o].charAt(0)===\".\")return!1;return!0}for(;d<a;){var m=t[d];if(this.debug(`\nglobstar while`,t,d,e,f,m),this.matchOne(t.slice(d),e.slice(f),s))return this.debug(\"globstar found match!\",d,a,m),!0;if(m===\".\"||m===\"..\"||!i.dot&&m.charAt(0)===\".\"){this.debug(\"dot detected!\",t,d,e,f);break}this.debug(\"globstar swallow a segment, and continue\"),d++}return!!(s&&(this.debug(`\n>>> no match, partial?`,t,d,e,f),d===a))}let p;if(typeof u==\"string\"?(p=c===u,this.debug(\"string match\",u,c,p)):(p=u.test(c),this.debug(\"pattern match\",u,c,p)),!p)return!1}if(o===a&&h===l)return!0;if(o===a)return s;if(h===l)return o===a-1&&t[o]===\"\";throw new Error(\"wtf?\")}braceExpand(){return ke(this.pattern,this.options)}parse(t){at(t);let e=this.options;if(t===\"**\")return A;if(t===\"\")return\"\";let s,i=null;(s=t.match(js))?i=e.dot?zs:Is:(s=t.match(Rs))?i=(e.nocase?e.dot?Ms:Ds:e.dot?Fs:Os)(s[1]):(s=t.match(Bs))?i=(e.nocase?e.dot?$s:Us:e.dot?Gs:Hs)(s):(s=t.match(Ns))?i=e.dot?Ls:_s:(s=t.match(Ws))&&(i=Ps);let r=Q.fromGlob(t,this.options).toMMPattern();return i&&typeof r==\"object\"&&Reflect.defineProperty(r,\"test\",{value:i}),r}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let e=this.options,s=e.noglobstar?Vs:e.dot?Ys:Xs,i=new Set(e.nocase?[\"i\"]:[]),r=t.map(a=>{let l=a.map(c=>{if(c instanceof RegExp)for(let d of c.flags.split(\"\"))i.add(d);return typeof c==\"string\"?ei(c):c===A?A:c._src});l.forEach((c,d)=>{let f=l[d+1],m=l[d-1];c!==A||m===A||(m===void 0?f!==void 0&&f!==A?l[d+1]=\"(?:\\\\/|\"+s+\"\\\\/)?\"+f:l[d]=s:f===void 0?l[d-1]=m+\"(?:\\\\/|\\\\/\"+s+\")?\":f!==A&&(l[d-1]=m+\"(?:\\\\/|\\\\/\"+s+\"\\\\/)\"+f,l[d+1]=A))});let u=l.filter(c=>c!==A);if(this.partial&&u.length>=1){let c=[];for(let d=1;d<=u.length;d++)c.push(u.slice(0,d).join(\"/\"));return\"(?:\"+c.join(\"|\")+\")\"}return u.join(\"/\")}).join(\"|\"),[o,h]=t.length>1?[\"(?:\",\")\"]:[\"\",\"\"];r=\"^\"+o+r+h+\"$\",this.partial&&(r=\"^(?:\\\\/|\"+o+r.slice(1,-1)+h+\")$\"),this.negate&&(r=\"^(?!\"+r+\").+$\");try{this.regexp=new RegExp(r,[...i].join(\"\"))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split(\"/\"):this.isWindows&&/^\\/\\/[^\\/]+/.test(t)?[\"\",...t.split(/\\/+/)]:t.split(/\\/+/)}match(t,e=this.partial){if(this.debug(\"match\",t,this.pattern),this.comment)return!1;if(this.empty)return t===\"\";if(t===\"/\"&&e)return!0;let s=this.options;this.isWindows&&(t=t.split(\"\\\\\").join(\"/\"));let i=this.slashSplit(t);this.debug(this.pattern,\"split\",i);let r=this.set;this.debug(this.pattern,\"set\",r);let o=i[i.length-1];if(!o)for(let h=i.length-2;!o&&h>=0;h--)o=i[h];for(let h=0;h<r.length;h++){let a=r[h],l=i;if(s.matchBase&&a.length===1&&(l=[o]),this.matchOne(l,a,e))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(t){return O.defaults(t).Minimatch}};O.AST=Q;O.Minimatch=D;O.escape=tt;O.unescape=W;import{fileURLToPath as Wi}from\"node:url\";var si=typeof performance==\"object\"&&performance&&typeof performance.now==\"function\"?performance:Date,Oe=new Set,Vt=typeof process==\"object\"&&process?process:{},Fe=(n,t,e,s)=>{typeof Vt.emitWarning==\"function\"?Vt.emitWarning(n,t,e,s):console.error(`[${e}] ${t}: ${n}`)},At=globalThis.AbortController,Re=globalThis.AbortSignal;if(typeof At>\"u\"){Re=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(e,s){this._onabort.push(s)}},At=class{constructor(){t()}signal=new Re;abort(e){if(!this.signal.aborted){this.signal.reason=e,this.signal.aborted=!0;for(let s of this.signal._onabort)s(e);this.signal.onabort?.(e)}}};let n=Vt.env?.LRU_CACHE_IGNORE_AC_WARNING!==\"1\",t=()=>{n&&(n=!1,Fe(\"AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.\",\"NO_ABORT_CONTROLLER\",\"ENOTSUP\",t))}}var ii=n=>!Oe.has(n);var q=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),De=n=>q(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?Tt:null:null,Tt=class extends Array{constructor(n){super(n),this.fill(0)}},ri=class ct{heap;length;static#t=!1;static create(t){let e=De(t);if(!e)return[];ct.#t=!0;let s=new ct(t,e);return ct.#t=!1,s}constructor(t,e){if(!ct.#t)throw new TypeError(\"instantiate Stack using Stack.create(n)\");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},ft=class Me{#t;#s;#n;#r;#o;#S;#w;#c;get perf(){return this.#c}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#h;#u;#f;#a;#i;#d;#E;#b;#p;#R;#m;#C;#T;#g;#y;#x;#A;#e;#_;static unsafeExposeInternals(t){return{starts:t.#T,ttls:t.#g,autopurgeTimers:t.#y,sizes:t.#C,keyMap:t.#f,keyList:t.#a,valList:t.#i,next:t.#d,prev:t.#E,get head(){return t.#b},get tail(){return t.#p},free:t.#R,isBackgroundFetch:e=>t.#l(e),backgroundFetch:(e,s,i,r)=>t.#U(e,s,i,r),moveToTail:e=>t.#W(e),indexes:e=>t.#F(e),rindexes:e=>t.#D(e),isStale:e=>t.#v(e)}}get max(){return this.#t}get maxSize(){return this.#s}get calculatedSize(){return this.#u}get size(){return this.#h}get fetchMethod(){return this.#S}get memoMethod(){return this.#w}get dispose(){return this.#n}get onInsert(){return this.#r}get disposeAfter(){return this.#o}constructor(t){let{max:e=0,ttl:s,ttlResolution:i=1,ttlAutopurge:r,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:a,dispose:l,onInsert:u,disposeAfter:c,noDisposeOnSet:d,noUpdateTTL:f,maxSize:m=0,maxEntrySize:p=0,sizeCalculation:w,fetchMethod:g,memoMethod:S,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:y,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:z,ignoreFetchAbort:$,perf:J}=t;if(J!==void 0&&typeof J?.now!=\"function\")throw new TypeError(\"perf option must have a now() method if specified\");if(this.#c=J??si,e!==0&&!q(e))throw new TypeError(\"max option must be a nonnegative integer\");let Z=e?De(e):Array;if(!Z)throw new Error(\"invalid max value: \"+e);if(this.#t=e,this.#s=m,this.maxEntrySize=p||this.#s,this.sizeCalculation=w,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError(\"cannot set sizeCalculation without setting maxSize or maxEntrySize\");if(typeof this.sizeCalculation!=\"function\")throw new TypeError(\"sizeCalculation set to non-function\")}if(S!==void 0&&typeof S!=\"function\")throw new TypeError(\"memoMethod must be a function if defined\");if(this.#w=S,g!==void 0&&typeof g!=\"function\")throw new TypeError(\"fetchMethod must be a function if specified\");if(this.#S=g,this.#A=!!g,this.#f=new Map,this.#a=new Array(e).fill(void 0),this.#i=new Array(e).fill(void 0),this.#d=new Z(e),this.#E=new Z(e),this.#b=0,this.#p=0,this.#R=ri.create(e),this.#h=0,this.#u=0,typeof l==\"function\"&&(this.#n=l),typeof u==\"function\"&&(this.#r=u),typeof c==\"function\"?(this.#o=c,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#x=!!this.#n,this.#_=!!this.#r,this.#e=!!this.#o,this.noDisposeOnSet=!!d,this.noUpdateTTL=!!f,this.noDeleteOnFetchRejection=!!E,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!z,this.ignoreFetchAbort=!!$,this.maxEntrySize!==0){if(this.#s!==0&&!q(this.#s))throw new TypeError(\"maxSize must be a positive integer if specified\");if(!q(this.maxEntrySize))throw new TypeError(\"maxEntrySize must be a positive integer if specified\");this.#G()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!y,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=q(i)||i===0?i:1,this.ttlAutopurge=!!r,this.ttl=s||0,this.ttl){if(!q(this.ttl))throw new TypeError(\"ttl must be a positive integer if specified\");this.#M()}if(this.#t===0&&this.ttl===0&&this.#s===0)throw new TypeError(\"At least one of max, maxSize, or ttl is required\");if(!this.ttlAutopurge&&!this.#t&&!this.#s){let $t=\"LRU_CACHE_UNBOUNDED\";ii($t)&&(Oe.add($t),Fe(\"TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.\",\"UnboundedCacheWarning\",$t,Me))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#M(){let t=new Tt(this.#t),e=new Tt(this.#t);this.#g=t,this.#T=e;let s=this.ttlAutopurge?new Array(this.#t):void 0;this.#y=s,this.#j=(o,h,a=this.#c.now())=>{if(e[o]=h!==0?a:0,t[o]=h,s?.[o]&&(clearTimeout(s[o]),s[o]=void 0),h!==0&&s){let l=setTimeout(()=>{this.#v(o)&&this.#O(this.#a[o],\"expire\")},h+1);l.unref&&l.unref(),s[o]=l}},this.#k=o=>{e[o]=t[o]!==0?this.#c.now():0},this.#N=(o,h)=>{if(t[h]){let a=t[h],l=e[h];if(!a||!l)return;o.ttl=a,o.start=l,o.now=i||r();let u=o.now-l;o.remainingTTL=a-u}};let i=0,r=()=>{let o=this.#c.now();if(this.ttlResolution>0){i=o;let h=setTimeout(()=>i=0,this.ttlResolution);h.unref&&h.unref()}return o};this.getRemainingTTL=o=>{let h=this.#f.get(o);if(h===void 0)return 0;let a=t[h],l=e[h];if(!a||!l)return 1/0;let u=(i||r())-l;return a-u},this.#v=o=>{let h=e[o],a=t[o];return!!a&&!!h&&(i||r())-h>a}}#k=()=>{};#N=()=>{};#j=()=>{};#v=()=>!1;#G(){let t=new Tt(this.#t);this.#u=0,this.#C=t,this.#P=e=>{this.#u-=t[e],t[e]=0},this.#I=(e,s,i,r)=>{if(this.#l(s))return 0;if(!q(i))if(r){if(typeof r!=\"function\")throw new TypeError(\"sizeCalculation must be a function\");if(i=r(s,e),!q(i))throw new TypeError(\"sizeCalculation return invalid (expect positive integer)\")}else throw new TypeError(\"invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.\");return i},this.#L=(e,s,i)=>{if(t[e]=s,this.#s){let r=this.#s-t[e];for(;this.#u>r;)this.#B(!0)}this.#u+=t[e],i&&(i.entrySize=s,i.totalCalculatedSize=this.#u)}}#P=t=>{};#L=(t,e,s)=>{};#I=(t,e,s,i)=>{if(s||i)throw new TypeError(\"cannot set size without setting maxSize or maxEntrySize on cache\");return 0};*#F({allowStale:t=this.allowStale}={}){if(this.#h)for(let e=this.#p;!(!this.#z(e)||((t||!this.#v(e))&&(yield e),e===this.#b));)e=this.#E[e]}*#D({allowStale:t=this.allowStale}={}){if(this.#h)for(let e=this.#b;!(!this.#z(e)||((t||!this.#v(e))&&(yield e),e===this.#p));)e=this.#d[e]}#z(t){return t!==void 0&&this.#f.get(this.#a[t])===t}*entries(){for(let t of this.#F())this.#i[t]!==void 0&&this.#a[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#a[t],this.#i[t]])}*rentries(){for(let t of this.#D())this.#i[t]!==void 0&&this.#a[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#a[t],this.#i[t]])}*keys(){for(let t of this.#F()){let e=this.#a[t];e!==void 0&&!this.#l(this.#i[t])&&(yield e)}}*rkeys(){for(let t of this.#D()){let e=this.#a[t];e!==void 0&&!this.#l(this.#i[t])&&(yield e)}}*values(){for(let t of this.#F())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}*rvalues(){for(let t of this.#D())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]=\"LRUCache\";find(t,e={}){for(let s of this.#F()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;if(r!==void 0&&t(r,this.#a[s],this))return this.get(this.#a[s],e)}}forEach(t,e=this){for(let s of this.#F()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&t.call(e,r,this.#a[s],this)}}rforEach(t,e=this){for(let s of this.#D()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&t.call(e,r,this.#a[s],this)}}purgeStale(){let t=!1;for(let e of this.#D({allowStale:!0}))this.#v(e)&&(this.#O(this.#a[e],\"expire\"),t=!0);return t}info(t){let e=this.#f.get(t);if(e===void 0)return;let s=this.#i[e],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let r={value:i};if(this.#g&&this.#T){let o=this.#g[e],h=this.#T[e];if(o&&h){let a=o-(this.#c.now()-h);r.ttl=a,r.start=Date.now()}}return this.#C&&(r.size=this.#C[e]),r}dump(){let t=[];for(let e of this.#F({allowStale:!0})){let s=this.#a[e],i=this.#i[e],r=this.#l(i)?i.__staleWhileFetching:i;if(r===void 0||s===void 0)continue;let o={value:r};if(this.#g&&this.#T){o.ttl=this.#g[e];let h=this.#c.now()-this.#T[e];o.start=Math.floor(Date.now()-h)}this.#C&&(o.size=this.#C[e]),t.unshift([s,o])}return t}load(t){this.clear();for(let[e,s]of t){if(s.start){let i=Date.now()-s.start;s.start=this.#c.now()-i}this.set(e,s.value,s)}}set(t,e,s={}){if(e===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:r,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:a}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,u=this.#I(t,e,s.size||0,h);if(this.maxEntrySize&&u>this.maxEntrySize)return a&&(a.set=\"miss\",a.maxEntrySizeExceeded=!0),this.#O(t,\"set\"),this;let c=this.#h===0?void 0:this.#f.get(t);if(c===void 0)c=this.#h===0?this.#p:this.#R.length!==0?this.#R.pop():this.#h===this.#t?this.#B(!1):this.#h,this.#a[c]=t,this.#i[c]=e,this.#f.set(t,c),this.#d[this.#p]=c,this.#E[c]=this.#p,this.#p=c,this.#h++,this.#L(c,u,a),a&&(a.set=\"add\"),l=!1,this.#_&&this.#r?.(e,t,\"add\");else{this.#W(c);let d=this.#i[c];if(e!==d){if(this.#A&&this.#l(d)){d.__abortController.abort(new Error(\"replaced\"));let{__staleWhileFetching:f}=d;f!==void 0&&!o&&(this.#x&&this.#n?.(f,t,\"set\"),this.#e&&this.#m?.push([f,t,\"set\"]))}else o||(this.#x&&this.#n?.(d,t,\"set\"),this.#e&&this.#m?.push([d,t,\"set\"]));if(this.#P(c),this.#L(c,u,a),this.#i[c]=e,a){a.set=\"replace\";let f=d&&this.#l(d)?d.__staleWhileFetching:d;f!==void 0&&(a.oldValue=f)}}else a&&(a.set=\"update\");this.#_&&this.onInsert?.(e,t,e===d?\"update\":\"replace\")}if(i!==0&&!this.#g&&this.#M(),this.#g&&(l||this.#j(c,i,r),a&&this.#N(a,c)),!o&&this.#e&&this.#m){let d=this.#m,f;for(;f=d?.shift();)this.#o?.(...f)}return this}pop(){try{for(;this.#h;){let t=this.#i[this.#b];if(this.#B(!0),this.#l(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#e&&this.#m){let t=this.#m,e;for(;e=t?.shift();)this.#o?.(...e)}}}#B(t){let e=this.#b,s=this.#a[e],i=this.#i[e];return this.#A&&this.#l(i)?i.__abortController.abort(new Error(\"evicted\")):(this.#x||this.#e)&&(this.#x&&this.#n?.(i,s,\"evict\"),this.#e&&this.#m?.push([i,s,\"evict\"])),this.#P(e),this.#y?.[e]&&(clearTimeout(this.#y[e]),this.#y[e]=void 0),t&&(this.#a[e]=void 0,this.#i[e]=void 0,this.#R.push(e)),this.#h===1?(this.#b=this.#p=0,this.#R.length=0):this.#b=this.#d[e],this.#f.delete(s),this.#h--,e}has(t,e={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=e,r=this.#f.get(t);if(r!==void 0){let o=this.#i[r];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#v(r))i&&(i.has=\"stale\",this.#N(i,r));else return s&&this.#k(r),i&&(i.has=\"hit\",this.#N(i,r)),!0}else i&&(i.has=\"miss\");return!1}peek(t,e={}){let{allowStale:s=this.allowStale}=e,i=this.#f.get(t);if(i===void 0||!s&&this.#v(i))return;let r=this.#i[i];return this.#l(r)?r.__staleWhileFetching:r}#U(t,e,s,i){let r=e===void 0?void 0:this.#i[e];if(this.#l(r))return r;let o=new At,{signal:h}=s;h?.addEventListener(\"abort\",()=>o.abort(h.reason),{signal:o.signal});let a={signal:o.signal,options:s,context:i},l=(p,w=!1)=>{let{aborted:g}=o.signal,S=s.ignoreFetchAbort&&p!==void 0,E=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&p!==void 0);if(s.status&&(g&&!w?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,S&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),g&&!S&&!w)return c(o.signal.reason,E);let y=f,b=this.#i[e];return(b===f||S&&w&&b===void 0)&&(p===void 0?y.__staleWhileFetching!==void 0?this.#i[e]=y.__staleWhileFetching:this.#O(t,\"fetch\"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,p,a.options))),p},u=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),c(p,!1)),c=(p,w)=>{let{aborted:g}=o.signal,S=g&&s.allowStaleOnFetchAbort,E=S||s.allowStaleOnFetchRejection,y=E||s.noDeleteOnFetchRejection,b=f;if(this.#i[e]===f&&(!y||!w&&b.__staleWhileFetching===void 0?this.#O(t,\"fetch\"):S||(this.#i[e]=b.__staleWhileFetching)),E)return s.status&&b.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),b.__staleWhileFetching;if(b.__returned===b)throw p},d=(p,w)=>{let g=this.#S?.(t,r,a);g&&g instanceof Promise&&g.then(S=>p(S===void 0?void 0:S),w),o.signal.addEventListener(\"abort\",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=S=>l(S,!0)))})};s.status&&(s.status.fetchDispatched=!0);let f=new Promise(d).then(l,u),m=Object.assign(f,{__abortController:o,__staleWhileFetching:r,__returned:void 0});return e===void 0?(this.set(t,m,{...a.options,status:void 0}),e=this.#f.get(t)):this.#i[e]=m,m}#l(t){if(!this.#A)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty(\"__staleWhileFetching\")&&e.__abortController instanceof At}async fetch(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:c=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:d=this.allowStaleOnFetchRejection,ignoreFetchAbort:f=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:p,forceRefresh:w=!1,status:g,signal:S}=e;if(!this.#A)return g&&(g.fetch=\"get\"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,status:g});let E={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,ttl:o,noDisposeOnSet:h,size:a,sizeCalculation:l,noUpdateTTL:u,noDeleteOnFetchRejection:c,allowStaleOnFetchRejection:d,allowStaleOnFetchAbort:m,ignoreFetchAbort:f,status:g,signal:S},y=this.#f.get(t);if(y===void 0){g&&(g.fetch=\"miss\");let b=this.#U(t,y,E,p);return b.__returned=b}else{let b=this.#i[y];if(this.#l(b)){let Z=s&&b.__staleWhileFetching!==void 0;return g&&(g.fetch=\"inflight\",Z&&(g.returnedStale=!0)),Z?b.__staleWhileFetching:b.__returned=b}let z=this.#v(y);if(!w&&!z)return g&&(g.fetch=\"hit\"),this.#W(y),i&&this.#k(y),g&&this.#N(g,y),b;let $=this.#U(t,y,E,p),J=$.__staleWhileFetching!==void 0&&s;return g&&(g.fetch=z?\"stale\":\"refresh\",J&&z&&(g.returnedStale=!0)),J?$.__staleWhileFetching:$.__returned=$}}async forceFetch(t,e={}){let s=await this.fetch(t,e);if(s===void 0)throw new Error(\"fetch() returned undefined\");return s}memo(t,e={}){let s=this.#w;if(!s)throw new Error(\"no memoMethod provided to constructor\");let{context:i,forceRefresh:r,...o}=e,h=this.get(t,o);if(!r&&h!==void 0)return h;let a=s(t,h,{options:o,context:i});return this.set(t,a,o),a}get(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:o}=e,h=this.#f.get(t);if(h!==void 0){let a=this.#i[h],l=this.#l(a);return o&&this.#N(o,h),this.#v(h)?(o&&(o.get=\"stale\"),l?(o&&s&&a.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?a.__staleWhileFetching:void 0):(r||this.#O(t,\"expire\"),o&&s&&(o.returnedStale=!0),s?a:void 0)):(o&&(o.get=\"hit\"),l?a.__staleWhileFetching:(this.#W(h),i&&this.#k(h),a))}else o&&(o.get=\"miss\")}#$(t,e){this.#E[e]=t,this.#d[t]=e}#W(t){t!==this.#p&&(t===this.#b?this.#b=this.#d[t]:this.#$(this.#E[t],this.#d[t]),this.#$(this.#p,t),this.#p=t)}delete(t){return this.#O(t,\"delete\")}#O(t,e){let s=!1;if(this.#h!==0){let i=this.#f.get(t);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#h===1)this.#H(e);else{this.#P(i);let r=this.#i[i];if(this.#l(r)?r.__abortController.abort(new Error(\"deleted\")):(this.#x||this.#e)&&(this.#x&&this.#n?.(r,t,e),this.#e&&this.#m?.push([r,t,e])),this.#f.delete(t),this.#a[i]=void 0,this.#i[i]=void 0,i===this.#p)this.#p=this.#E[i];else if(i===this.#b)this.#b=this.#d[i];else{let o=this.#E[i];this.#d[o]=this.#d[i];let h=this.#d[i];this.#E[h]=this.#E[i]}this.#h--,this.#R.push(i)}}if(this.#e&&this.#m?.length){let i=this.#m,r;for(;r=i?.shift();)this.#o?.(...r)}return s}clear(){return this.#H(\"delete\")}#H(t){for(let e of this.#D({allowStale:!0})){let s=this.#i[e];if(this.#l(s))s.__abortController.abort(new Error(\"deleted\"));else{let i=this.#a[e];this.#x&&this.#n?.(s,i,t),this.#e&&this.#m?.push([s,i,t])}}if(this.#f.clear(),this.#i.fill(void 0),this.#a.fill(void 0),this.#g&&this.#T){this.#g.fill(0),this.#T.fill(0);for(let e of this.#y??[])e!==void 0&&clearTimeout(e);this.#y?.fill(void 0)}if(this.#C&&this.#C.fill(0),this.#b=0,this.#p=0,this.#R.length=0,this.#u=0,this.#h=0,this.#e&&this.#m){let e=this.#m,s;for(;s=e?.shift();)this.#o?.(...s)}}};import{posix as mi,win32 as re}from\"node:path\";import{fileURLToPath as gi}from\"node:url\";import{lstatSync as wi,readdir as yi,readdirSync as bi,readlinkSync as Si,realpathSync as Ei}from\"fs\";import*as xi from\"node:fs\";import{lstat as Ci,readdir as Ti,readlink as Ai,realpath as ki}from\"node:fs/promises\";import{EventEmitter as ee}from\"node:events\";import Pe from\"node:stream\";import{StringDecoder as ni}from\"node:string_decoder\";var Ne=typeof process==\"object\"&&process?process:{stdout:null,stderr:null},oi=n=>!!n&&typeof n==\"object\"&&(n instanceof V||n instanceof Pe||hi(n)||ai(n)),hi=n=>!!n&&typeof n==\"object\"&&n instanceof ee&&typeof n.pipe==\"function\"&&n.pipe!==Pe.Writable.prototype.pipe,ai=n=>!!n&&typeof n==\"object\"&&n instanceof ee&&typeof n.write==\"function\"&&typeof n.end==\"function\",G=Symbol(\"EOF\"),H=Symbol(\"maybeEmitEnd\"),K=Symbol(\"emittedEnd\"),kt=Symbol(\"emittingEnd\"),ut=Symbol(\"emittedError\"),Rt=Symbol(\"closed\"),_e=Symbol(\"read\"),Ot=Symbol(\"flush\"),Le=Symbol(\"flushChunk\"),P=Symbol(\"encoding\"),et=Symbol(\"decoder\"),v=Symbol(\"flowing\"),dt=Symbol(\"paused\"),st=Symbol(\"resume\"),C=Symbol(\"buffer\"),F=Symbol(\"pipes\"),T=Symbol(\"bufferLength\"),Yt=Symbol(\"bufferPush\"),Ft=Symbol(\"bufferShift\"),k=Symbol(\"objectMode\"),x=Symbol(\"destroyed\"),Xt=Symbol(\"error\"),Jt=Symbol(\"emitData\"),We=Symbol(\"emitEnd\"),Zt=Symbol(\"emitEnd2\"),B=Symbol(\"async\"),Qt=Symbol(\"abort\"),Dt=Symbol(\"aborted\"),pt=Symbol(\"signal\"),Y=Symbol(\"dataListeners\"),M=Symbol(\"discarded\"),mt=n=>Promise.resolve().then(n),li=n=>n(),ci=n=>n===\"end\"||n===\"finish\"||n===\"prefinish\",fi=n=>n instanceof ArrayBuffer||!!n&&typeof n==\"object\"&&n.constructor&&n.constructor.name===\"ArrayBuffer\"&&n.byteLength>=0,ui=n=>!Buffer.isBuffer(n)&&ArrayBuffer.isView(n),Mt=class{src;dest;opts;ondrain;constructor(t,e,s){this.src=t,this.dest=e,this.opts=s,this.ondrain=()=>t[st](),this.dest.on(\"drain\",this.ondrain)}unpipe(){this.dest.removeListener(\"drain\",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},te=class extends Mt{unpipe(){this.src.removeListener(\"error\",this.proxyErrors),super.unpipe()}constructor(t,e,s){super(t,e,s),this.proxyErrors=i=>this.dest.emit(\"error\",i),t.on(\"error\",this.proxyErrors)}},di=n=>!!n.objectMode,pi=n=>!n.objectMode&&!!n.encoding&&n.encoding!==\"buffer\",V=class extends ee{[v]=!1;[dt]=!1;[F]=[];[C]=[];[k];[P];[B];[et];[G]=!1;[K]=!1;[kt]=!1;[Rt]=!1;[ut]=null;[T]=0;[x]=!1;[pt];[Dt]=!1;[Y]=0;[M]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding==\"string\")throw new TypeError(\"Encoding and objectMode may not be used together\");di(e)?(this[k]=!0,this[P]=null):pi(e)?(this[P]=e.encoding,this[k]=!1):(this[k]=!1,this[P]=null),this[B]=!!e.async,this[et]=this[P]?new ni(this[P]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,\"buffer\",{get:()=>this[C]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,\"pipes\",{get:()=>this[F]});let{signal:s}=e;s&&(this[pt]=s,s.aborted?this[Qt]():s.addEventListener(\"abort\",()=>this[Qt]()))}get bufferLength(){return this[T]}get encoding(){return this[P]}set encoding(t){throw new Error(\"Encoding must be set at instantiation time\")}setEncoding(t){throw new Error(\"Encoding must be set at instantiation time\")}get objectMode(){return this[k]}set objectMode(t){throw new Error(\"objectMode must be set at instantiation time\")}get async(){return this[B]}set async(t){this[B]=this[B]||!!t}[Qt](){this[Dt]=!0,this.emit(\"abort\",this[pt]?.reason),this.destroy(this[pt]?.reason)}get aborted(){return this[Dt]}set aborted(t){}write(t,e,s){if(this[Dt])return!1;if(this[G])throw new Error(\"write after end\");if(this[x])return this.emit(\"error\",Object.assign(new Error(\"Cannot call write after a stream was destroyed\"),{code:\"ERR_STREAM_DESTROYED\"})),!0;typeof e==\"function\"&&(s=e,e=\"utf8\"),e||(e=\"utf8\");let i=this[B]?mt:li;if(!this[k]&&!Buffer.isBuffer(t)){if(ui(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(fi(t))t=Buffer.from(t);else if(typeof t!=\"string\")throw new Error(\"Non-contiguous data written to non-objectMode stream\")}return this[k]?(this[v]&&this[T]!==0&&this[Ot](!0),this[v]?this.emit(\"data\",t):this[Yt](t),this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v]):t.length?(typeof t==\"string\"&&!(e===this[P]&&!this[et]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[P]&&(t=this[et].write(t)),this[v]&&this[T]!==0&&this[Ot](!0),this[v]?this.emit(\"data\",t):this[Yt](t),this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v]):(this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v])}read(t){if(this[x])return null;if(this[M]=!1,this[T]===0||t===0||t&&t>this[T])return this[H](),null;this[k]&&(t=null),this[C].length>1&&!this[k]&&(this[C]=[this[P]?this[C].join(\"\"):Buffer.concat(this[C],this[T])]);let e=this[_e](t||null,this[C][0]);return this[H](),e}[_e](t,e){if(this[k])this[Ft]();else{let s=e;t===s.length||t===null?this[Ft]():typeof s==\"string\"?(this[C][0]=s.slice(t),e=s.slice(0,t),this[T]-=t):(this[C][0]=s.subarray(t),e=s.subarray(0,t),this[T]-=t)}return this.emit(\"data\",e),!this[C].length&&!this[G]&&this.emit(\"drain\"),e}end(t,e,s){return typeof t==\"function\"&&(s=t,t=void 0),typeof e==\"function\"&&(s=e,e=\"utf8\"),t!==void 0&&this.write(t,e),s&&this.once(\"end\",s),this[G]=!0,this.writable=!1,(this[v]||!this[dt])&&this[H](),this}[st](){this[x]||(!this[Y]&&!this[F].length&&(this[M]=!0),this[dt]=!1,this[v]=!0,this.emit(\"resume\"),this[C].length?this[Ot]():this[G]?this[H]():this.emit(\"drain\"))}resume(){return this[st]()}pause(){this[v]=!1,this[dt]=!0,this[M]=!1}get destroyed(){return this[x]}get flowing(){return this[v]}get paused(){return this[dt]}[Yt](t){this[k]?this[T]+=1:this[T]+=t.length,this[C].push(t)}[Ft](){return this[k]?this[T]-=1:this[T]-=this[C][0].length,this[C].shift()}[Ot](t=!1){do;while(this[Le](this[Ft]())&&this[C].length);!t&&!this[C].length&&!this[G]&&this.emit(\"drain\")}[Le](t){return this.emit(\"data\",t),this[v]}pipe(t,e){if(this[x])return t;this[M]=!1;let s=this[K];return e=e||{},t===Ne.stdout||t===Ne.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,s?e.end&&t.end():(this[F].push(e.proxyErrors?new te(this,t,e):new Mt(this,t,e)),this[B]?mt(()=>this[st]()):this[st]()),t}unpipe(t){let e=this[F].find(s=>s.dest===t);e&&(this[F].length===1?(this[v]&&this[Y]===0&&(this[v]=!1),this[F]=[]):this[F].splice(this[F].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let s=super.on(t,e);if(t===\"data\")this[M]=!1,this[Y]++,!this[F].length&&!this[v]&&this[st]();else if(t===\"readable\"&&this[T]!==0)super.emit(\"readable\");else if(ci(t)&&this[K])super.emit(t),this.removeAllListeners(t);else if(t===\"error\"&&this[ut]){let i=e;this[B]?mt(()=>i.call(this,this[ut])):i.call(this,this[ut])}return s}removeListener(t,e){return this.off(t,e)}off(t,e){let s=super.off(t,e);return t===\"data\"&&(this[Y]=this.listeners(\"data\").length,this[Y]===0&&!this[M]&&!this[F].length&&(this[v]=!1)),s}removeAllListeners(t){let e=super.removeAllListeners(t);return(t===\"data\"||t===void 0)&&(this[Y]=0,!this[M]&&!this[F].length&&(this[v]=!1)),e}get emittedEnd(){return this[K]}[H](){!this[kt]&&!this[K]&&!this[x]&&this[C].length===0&&this[G]&&(this[kt]=!0,this.emit(\"end\"),this.emit(\"prefinish\"),this.emit(\"finish\"),this[Rt]&&this.emit(\"close\"),this[kt]=!1)}emit(t,...e){let s=e[0];if(t!==\"error\"&&t!==\"close\"&&t!==x&&this[x])return!1;if(t===\"data\")return!this[k]&&!s?!1:this[B]?(mt(()=>this[Jt](s)),!0):this[Jt](s);if(t===\"end\")return this[We]();if(t===\"close\"){if(this[Rt]=!0,!this[K]&&!this[x])return!1;let r=super.emit(\"close\");return this.removeAllListeners(\"close\"),r}else if(t===\"error\"){this[ut]=s,super.emit(Xt,s);let r=!this[pt]||this.listeners(\"error\").length?super.emit(\"error\",s):!1;return this[H](),r}else if(t===\"resume\"){let r=super.emit(\"resume\");return this[H](),r}else if(t===\"finish\"||t===\"prefinish\"){let r=super.emit(t);return this.removeAllListeners(t),r}let i=super.emit(t,...e);return this[H](),i}[Jt](t){for(let s of this[F])s.dest.write(t)===!1&&this.pause();let e=this[M]?!1:super.emit(\"data\",t);return this[H](),e}[We](){return this[K]?!1:(this[K]=!0,this.readable=!1,this[B]?(mt(()=>this[Zt]()),!0):this[Zt]())}[Zt](){if(this[et]){let e=this[et].end();if(e){for(let s of this[F])s.dest.write(e);this[M]||super.emit(\"data\",e)}}for(let e of this[F])e.end();let t=super.emit(\"end\");return this.removeAllListeners(\"end\"),t}async collect(){let t=Object.assign([],{dataLength:0});this[k]||(t.dataLength=0);let e=this.promise();return this.on(\"data\",s=>{t.push(s),this[k]||(t.dataLength+=s.length)}),await e,t}async concat(){if(this[k])throw new Error(\"cannot concat in objectMode\");let t=await this.collect();return this[P]?t.join(\"\"):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(x,()=>e(new Error(\"stream destroyed\"))),this.on(\"error\",s=>e(s)),this.on(\"end\",()=>t())})}[Symbol.asyncIterator](){this[M]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[G])return e();let r,o,h=c=>{this.off(\"data\",a),this.off(\"end\",l),this.off(x,u),e(),o(c)},a=c=>{this.off(\"error\",h),this.off(\"end\",l),this.off(x,u),this.pause(),r({value:c,done:!!this[G]})},l=()=>{this.off(\"error\",h),this.off(\"data\",a),this.off(x,u),e(),r({done:!0,value:void 0})},u=()=>h(new Error(\"stream destroyed\"));return new Promise((c,d)=>{o=d,r=c,this.once(x,u),this.once(\"error\",h),this.once(\"end\",l),this.once(\"data\",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[M]=!1;let t=!1,e=()=>(this.pause(),this.off(Xt,e),this.off(x,e),this.off(\"end\",e),t=!0,{done:!0,value:void 0}),s=()=>{if(t)return e();let i=this.read();return i===null?e():{done:!1,value:i}};return this.once(\"end\",e),this.once(Xt,e),this.once(x,e),{next:s,throw:e,return:e,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(t){if(this[x])return t?this.emit(\"error\",t):this.emit(x),this;this[x]=!0,this[M]=!0,this[C].length=0,this[T]=0;let e=this;return typeof e.close==\"function\"&&!this[Rt]&&e.close(),t?this.emit(\"error\",t):this.emit(x),this}static get isStream(){return oi}};var vi=Ei.native,wt={lstatSync:wi,readdir:yi,readdirSync:bi,readlinkSync:Si,realpathSync:vi,promises:{lstat:Ci,readdir:Ti,readlink:Ai,realpath:ki}},Ue=n=>!n||n===wt||n===xi?wt:{...wt,...n,promises:{...wt.promises,...n.promises||{}}},$e=/^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i,Ri=n=>n.replace(/\\//g,\"\\\\\").replace($e,\"$1\\\\\"),Oi=/[\\\\\\/]/,L=0,Ge=1,He=2,U=4,qe=6,Ke=8,X=10,Ve=12,_=15,gt=~_,se=16,je=32,yt=64,j=128,Nt=256,Lt=512,Ie=yt|j|Lt,Fi=1023,ie=n=>n.isFile()?Ke:n.isDirectory()?U:n.isSymbolicLink()?X:n.isCharacterDevice()?He:n.isBlockDevice()?qe:n.isSocket()?Ve:n.isFIFO()?Ge:L,ze=new ft({max:2**12}),bt=n=>{let t=ze.get(n);if(t)return t;let e=n.normalize(\"NFKD\");return ze.set(n,e),e},Be=new ft({max:2**12}),_t=n=>{let t=Be.get(n);if(t)return t;let e=bt(n.toLowerCase());return Be.set(n,e),e},Wt=class extends ft{constructor(){super({max:256})}},ne=class extends ft{constructor(t=16*1024){super({maxSize:t,sizeCalculation:e=>e.length+1})}},Ye=Symbol(\"PathScurry setAsCwd\"),R=class{name;root;roots;parent;nocase;isCWD=!1;#t;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#o;get uid(){return this.#o}#S;get gid(){return this.#S}#w;get rdev(){return this.#w}#c;get blksize(){return this.#c}#h;get ino(){return this.#h}#u;get size(){return this.#u}#f;get blocks(){return this.#f}#a;get atimeMs(){return this.#a}#i;get mtimeMs(){return this.#i}#d;get ctimeMs(){return this.#d}#E;get birthtimeMs(){return this.#E}#b;get atime(){return this.#b}#p;get mtime(){return this.#p}#R;get ctime(){return this.#R}#m;get birthtime(){return this.#m}#C;#T;#g;#y;#x;#A;#e;#_;#M;#k;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,e=L,s,i,r,o,h){this.name=t,this.#C=r?_t(t):bt(t),this.#e=e&Fi,this.nocase=r,this.roots=i,this.root=s||this,this.#_=o,this.#g=h.fullpath,this.#x=h.relative,this.#A=h.relativePosix,this.parent=h.parent,this.parent?this.#t=this.parent.#t:this.#t=Ue(h.fs)}depth(){return this.#T!==void 0?this.#T:this.parent?this.#T=this.parent.depth()+1:this.#T=0}childrenCache(){return this.#_}resolve(t){if(!t)return this;let e=this.getRootString(t),i=t.substring(e.length).split(this.splitSep);return e?this.getRoot(e).#N(i):this.#N(i)}#N(t){let e=this;for(let s of t)e=e.child(s);return e}children(){let t=this.#_.get(this);if(t)return t;let e=Object.assign([],{provisional:0});return this.#_.set(this,e),this.#e&=~se,e}child(t,e){if(t===\"\"||t===\".\")return this;if(t===\"..\")return this.parent||this;let s=this.children(),i=this.nocase?_t(t):bt(t);for(let a of s)if(a.#C===i)return a;let r=this.parent?this.sep:\"\",o=this.#g?this.#g+r+t:void 0,h=this.newChild(t,L,{...e,parent:this,fullpath:o});return this.canReaddir()||(h.#e|=j),s.push(h),h}relative(){if(this.isCWD)return\"\";if(this.#x!==void 0)return this.#x;let t=this.name,e=this.parent;if(!e)return this.#x=this.name;let s=e.relative();return s+(!s||!e.parent?\"\":this.sep)+t}relativePosix(){if(this.sep===\"/\")return this.relative();if(this.isCWD)return\"\";if(this.#A!==void 0)return this.#A;let t=this.name,e=this.parent;if(!e)return this.#A=this.fullpathPosix();let s=e.relativePosix();return s+(!s||!e.parent?\"\":\"/\")+t}fullpath(){if(this.#g!==void 0)return this.#g;let t=this.name,e=this.parent;if(!e)return this.#g=this.name;let i=e.fullpath()+(e.parent?this.sep:\"\")+t;return this.#g=i}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep===\"/\")return this.#y=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\\\/g,\"/\");return/^[a-z]:\\//i.test(i)?this.#y=`//?/${i}`:this.#y=i}let t=this.parent,e=t.fullpathPosix(),s=e+(!e||!t.parent?\"\":\"/\")+this.name;return this.#y=s}isUnknown(){return(this.#e&_)===L}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?\"Unknown\":this.isDirectory()?\"Directory\":this.isFile()?\"File\":this.isSymbolicLink()?\"SymbolicLink\":this.isFIFO()?\"FIFO\":this.isCharacterDevice()?\"CharacterDevice\":this.isBlockDevice()?\"BlockDevice\":this.isSocket()?\"Socket\":\"Unknown\"}isFile(){return(this.#e&_)===Ke}isDirectory(){return(this.#e&_)===U}isCharacterDevice(){return(this.#e&_)===He}isBlockDevice(){return(this.#e&_)===qe}isFIFO(){return(this.#e&_)===Ge}isSocket(){return(this.#e&_)===Ve}isSymbolicLink(){return(this.#e&X)===X}lstatCached(){return this.#e&je?this:void 0}readlinkCached(){return this.#M}realpathCached(){return this.#k}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#M)return!0;if(!this.parent)return!1;let t=this.#e&_;return!(t!==L&&t!==X||this.#e&Nt||this.#e&j)}calledReaddir(){return!!(this.#e&se)}isENOENT(){return!!(this.#e&j)}isNamed(t){return this.nocase?this.#C===_t(t):this.#C===bt(t)}async readlink(){let t=this.#M;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=await this.#t.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(e);if(s)return this.#M=s}catch(e){this.#D(e.code);return}}readlinkSync(){let t=this.#M;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=this.#t.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(e);if(s)return this.#M=s}catch(e){this.#D(e.code);return}}#j(t){this.#e|=se;for(let e=t.provisional;e<t.length;e++){let s=t[e];s&&s.#v()}}#v(){this.#e&j||(this.#e=(this.#e|j)>,this.#G())}#G(){let t=this.children();t.provisional=0;for(let e of t)e.#v()}#P(){this.#e|=Lt,this.#L()}#L(){if(this.#e&yt)return;let t=this.#e;(t&_)===U&&(t&=gt),this.#e=t|yt,this.#G()}#I(t=\"\"){t===\"ENOTDIR\"||t===\"EPERM\"?this.#L():t===\"ENOENT\"?this.#v():this.children().provisional=0}#F(t=\"\"){t===\"ENOTDIR\"?this.parent.#L():t===\"ENOENT\"&&this.#v()}#D(t=\"\"){let e=this.#e;e|=Nt,t===\"ENOENT\"&&(e|=j),(t===\"EINVAL\"||t===\"UNKNOWN\")&&(e&=gt),this.#e=e,t===\"ENOTDIR\"&&this.parent&&this.parent.#L()}#z(t,e){return this.#U(t,e)||this.#B(t,e)}#B(t,e){let s=ie(t),i=this.newChild(t.name,s,{parent:this}),r=i.#e&_;return r!==U&&r!==X&&r!==L&&(i.#e|=yt),e.unshift(i),e.provisional++,i}#U(t,e){for(let s=e.provisional;s<e.length;s++){let i=e[s];if((this.nocase?_t(t.name):bt(t.name))===i.#C)return this.#l(t,i,s,e)}}#l(t,e,s,i){let r=e.name;return e.#e=e.#e>|ie(t),r!==t.name&&(e.name=t.name),s!==i.provisional&&(s===i.length-1?i.pop():i.splice(s,1),i.unshift(e)),i.provisional++,e}async lstat(){if((this.#e&j)===0)try{return this.#$(await this.#t.promises.lstat(this.fullpath())),this}catch(t){this.#F(t.code)}}lstatSync(){if((this.#e&j)===0)try{return this.#$(this.#t.lstatSync(this.fullpath())),this}catch(t){this.#F(t.code)}}#$(t){let{atime:e,atimeMs:s,birthtime:i,birthtimeMs:r,blksize:o,blocks:h,ctime:a,ctimeMs:l,dev:u,gid:c,ino:d,mode:f,mtime:m,mtimeMs:p,nlink:w,rdev:g,size:S,uid:E}=t;this.#b=e,this.#a=s,this.#m=i,this.#E=r,this.#c=o,this.#f=h,this.#R=a,this.#d=l,this.#s=u,this.#S=c,this.#h=d,this.#n=f,this.#p=m,this.#i=p,this.#r=w,this.#w=g,this.#u=S,this.#o=E;let y=ie(t);this.#e=this.#e>|y|je,y!==L&&y!==U&&y!==X&&(this.#e|=yt)}#W=[];#O=!1;#H(t){this.#O=!1;let e=this.#W.slice();this.#W.length=0,e.forEach(s=>s(null,t))}readdirCB(t,e=!1){if(!this.canReaddir()){e?t(null,[]):queueMicrotask(()=>t(null,[]));return}let s=this.children();if(this.calledReaddir()){let r=s.slice(0,s.provisional);e?t(null,r):queueMicrotask(()=>t(null,r));return}if(this.#W.push(t),this.#O)return;this.#O=!0;let i=this.fullpath();this.#t.readdir(i,{withFileTypes:!0},(r,o)=>{if(r)this.#I(r.code),s.provisional=0;else{for(let h of o)this.#z(h,s);this.#j(s)}this.#H(s.slice(0,s.provisional))})}#q;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();if(this.#q)await this.#q;else{let s=()=>{};this.#q=new Promise(i=>s=i);try{for(let i of await this.#t.promises.readdir(e,{withFileTypes:!0}))this.#z(i,t);this.#j(t)}catch(i){this.#I(i.code),t.provisional=0}this.#q=void 0,s()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();try{for(let s of this.#t.readdirSync(e,{withFileTypes:!0}))this.#z(s,t);this.#j(t)}catch(s){this.#I(s.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#e&Ie)return!1;let t=_&this.#e;return t===L||t===U||t===X}shouldWalk(t,e){return(this.#e&U)===U&&!(this.#e&Ie)&&!t.has(this)&&(!e||e(this))}async realpath(){if(this.#k)return this.#k;if(!((Lt|Nt|j)&this.#e))try{let t=await this.#t.promises.realpath(this.fullpath());return this.#k=this.resolve(t)}catch{this.#P()}}realpathSync(){if(this.#k)return this.#k;if(!((Lt|Nt|j)&this.#e))try{let t=this.#t.realpathSync(this.fullpath());return this.#k=this.resolve(t)}catch{this.#P()}}[Ye](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let e=new Set([]),s=[],i=this;for(;i&&i.parent;)e.add(i),i.#x=s.join(this.sep),i.#A=s.join(\"/\"),i=i.parent,s.push(\"..\");for(i=t;i&&i.parent&&!e.has(i);)i.#x=void 0,i.#A=void 0,i=i.parent}},Pt=class n extends R{sep=\"\\\\\";splitSep=Oi;constructor(t,e=L,s,i,r,o,h){super(t,e,s,i,r,o,h)}newChild(t,e=L,s={}){return new n(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return re.parse(t).root}getRoot(t){if(t=Ri(t.toUpperCase()),t===this.root.name)return this.root;for(let[e,s]of Object.entries(this.roots))if(this.sameRoot(t,e))return this.roots[t]=s;return this.roots[t]=new it(t,this).root}sameRoot(t,e=this.root.name){return t=t.toUpperCase().replace(/\\//g,\"\\\\\").replace($e,\"$1\\\\\"),t===e}},jt=class n extends R{splitSep=\"/\";sep=\"/\";constructor(t,e=L,s,i,r,o,h){super(t,e,s,i,r,o,h)}getRootString(t){return t.startsWith(\"/\")?\"/\":\"\"}getRoot(t){return this.root}newChild(t,e=L,s={}){return new n(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}},It=class{root;rootPath;roots;cwd;#t;#s;#n;nocase;#r;constructor(t=process.cwd(),e,s,{nocase:i,childrenCacheSize:r=16*1024,fs:o=wt}={}){this.#r=Ue(o),(t instanceof URL||t.startsWith(\"file://\"))&&(t=gi(t));let h=e.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(h),this.#t=new Wt,this.#s=new Wt,this.#n=new ne(r);let a=h.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError(\"must provide nocase setting to PathScurryBase ctor\");this.nocase=i,this.root=this.newRoot(this.#r),this.roots[this.rootPath]=this.root;let l=this.root,u=a.length-1,c=e.sep,d=this.rootPath,f=!1;for(let m of a){let p=u--;l=l.child(m,{relative:new Array(p).fill(\"..\").join(c),relativePosix:new Array(p).fill(\"..\").join(\"/\"),fullpath:d+=(f?\"\":c)+m}),f=!0}this.cwd=l}depth(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let e=\"\";for(let r=t.length-1;r>=0;r--){let o=t[r];if(!(!o||o===\".\")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#t.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpath();return this.#t.set(e,i),i}resolvePosix(...t){let e=\"\";for(let r=t.length-1;r>=0;r--){let o=t[r];if(!(!o||o===\".\")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#s.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpathPosix();return this.#s.set(e,i),i}relative(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,e={withFileTypes:!0}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s}=e;if(t.canReaddir()){let i=await t.readdir();return s?i:i.map(r=>r.name)}else return[]}readdirSync(t=this.cwd,e={withFileTypes:!0}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0}=e;return t.canReaddir()?s?t.readdirSync():t.readdirSync().map(i=>i.name):[]}async lstat(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=await t.readlink();return e?s:s?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=t.readlinkSync();return e?s:s?.fullpath()}async realpath(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=await t.realpath();return e?s:s?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=t.realpathSync();return e?s:s?.fullpath()}async walk(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=[];(!r||r(t))&&h.push(s?t:t.fullpath());let a=new Set,l=(c,d)=>{a.add(c),c.readdirCB((f,m)=>{if(f)return d(f);let p=m.length;if(!p)return d();let w=()=>{--p===0&&d()};for(let g of m)(!r||r(g))&&h.push(s?g:g.fullpath()),i&&g.isSymbolicLink()?g.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(a,o)?l(S,w):w()):g.shouldWalk(a,o)?l(g,w):w()},!0)},u=t;return new Promise((c,d)=>{l(u,f=>{if(f)return d(f);c(h)})})}walkSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=[];(!r||r(t))&&h.push(s?t:t.fullpath());let a=new Set([t]);for(let l of a){let u=l.readdirSync();for(let c of u){(!r||r(c))&&h.push(s?c:c.fullpath());let d=c;if(c.isSymbolicLink()){if(!(i&&(d=c.realpathSync())))continue;d.isUnknown()&&d.lstatSync()}d.shouldWalk(a,o)&&a.add(d)}}return h}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,e={}){return typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd),this.stream(t,e)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e;(!r||r(t))&&(yield s?t:t.fullpath());let h=new Set([t]);for(let a of h){let l=a.readdirSync();for(let u of l){(!r||r(u))&&(yield s?u:u.fullpath());let c=u;if(u.isSymbolicLink()){if(!(i&&(c=u.realpathSync())))continue;c.isUnknown()&&c.lstatSync()}c.shouldWalk(h,o)&&h.add(c)}}}stream(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=new V({objectMode:!0});(!r||r(t))&&h.write(s?t:t.fullpath());let a=new Set,l=[t],u=0,c=()=>{let d=!1;for(;!d;){let f=l.shift();if(!f){u===0&&h.end();return}u++,a.add(f);let m=(w,g,S=!1)=>{if(w)return h.emit(\"error\",w);if(i&&!S){let E=[];for(let y of g)y.isSymbolicLink()&&E.push(y.realpath().then(b=>b?.isUnknown()?b.lstat():b));if(E.length){Promise.all(E).then(()=>m(null,g,!0));return}}for(let E of g)E&&(!r||r(E))&&(h.write(s?E:E.fullpath())||(d=!0));u--;for(let E of g){let y=E.realpathCached()||E;y.shouldWalk(a,o)&&l.push(y)}d&&!h.flowing?h.once(\"drain\",c):p||c()},p=!0;f.readdirCB(m,!0),p=!1}};return c(),h}streamSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=new V({objectMode:!0}),a=new Set;(!r||r(t))&&h.write(s?t:t.fullpath());let l=[t],u=0,c=()=>{let d=!1;for(;!d;){let f=l.shift();if(!f){u===0&&h.end();return}u++,a.add(f);let m=f.readdirSync();for(let p of m)(!r||r(p))&&(h.write(s?p:p.fullpath())||(d=!0));u--;for(let p of m){let w=p;if(p.isSymbolicLink()){if(!(i&&(w=p.realpathSync())))continue;w.isUnknown()&&w.lstatSync()}w.shouldWalk(a,o)&&l.push(w)}}d&&!h.flowing&&h.once(\"drain\",c)};return c(),h}chdir(t=this.cwd){let e=this.cwd;this.cwd=typeof t==\"string\"?this.cwd.resolve(t):t,this.cwd[Ye](e)}},it=class extends It{sep=\"\\\\\";constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,re,\"\\\\\",{...e,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(t){return re.parse(t).root.toUpperCase()}newRoot(t){return new Pt(this.rootPath,U,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith(\"/\")||t.startsWith(\"\\\\\")||/^[a-z]:(\\/|\\\\)/i.test(t)}},rt=class extends It{sep=\"/\";constructor(t=process.cwd(),e={}){let{nocase:s=!1}=e;super(t,mi,\"/\",{...e,nocase:s}),this.nocase=s}parseRootPath(t){return\"/\"}newRoot(t){return new jt(this.rootPath,U,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith(\"/\")}},St=class extends rt{constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,{...e,nocase:s})}},Cr=process.platform===\"win32\"?Pt:jt,Xe=process.platform===\"win32\"?it:process.platform===\"darwin\"?St:rt;var Di=n=>n.length>=1,Mi=n=>n.length>=1,Ni=Symbol.for(\"nodejs.util.inspect.custom\"),nt=class n{#t;#s;#n;length;#r;#o;#S;#w;#c;#h;#u=!0;constructor(t,e,s,i){if(!Di(t))throw new TypeError(\"empty pattern list\");if(!Mi(e))throw new TypeError(\"empty glob list\");if(e.length!==t.length)throw new TypeError(\"mismatched pattern list and glob list lengths\");if(this.length=t.length,s<0||s>=this.length)throw new TypeError(\"index out of range\");if(this.#t=t,this.#s=e,this.#n=s,this.#r=i,this.#n===0){if(this.isUNC()){let[r,o,h,a,...l]=this.#t,[u,c,d,f,...m]=this.#s;l[0]===\"\"&&(l.shift(),m.shift());let p=[r,o,h,a,\"\"].join(\"/\"),w=[u,c,d,f,\"\"].join(\"/\");this.#t=[p,...l],this.#s=[w,...m],this.length=this.#t.length}else if(this.isDrive()||this.isAbsolute()){let[r,...o]=this.#t,[h,...a]=this.#s;o[0]===\"\"&&(o.shift(),a.shift());let l=r+\"/\",u=h+\"/\";this.#t=[l,...o],this.#s=[u,...a],this.length=this.#t.length}}}[Ni](){return\"Pattern <\"+this.#s.slice(this.#n).join(\"/\")+\">\"}pattern(){return this.#t[this.#n]}isString(){return typeof this.#t[this.#n]==\"string\"}isGlobstar(){return this.#t[this.#n]===A}isRegExp(){return this.#t[this.#n]instanceof RegExp}globString(){return this.#S=this.#S||(this.#n===0?this.isAbsolute()?this.#s[0]+this.#s.slice(1).join(\"/\"):this.#s.join(\"/\"):this.#s.slice(this.#n).join(\"/\"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new n(this.#t,this.#s,this.#n+1,this.#r),this.#o.#h=this.#h,this.#o.#c=this.#c,this.#o.#w=this.#w,this.#o):this.#o=null}isUNC(){let t=this.#t;return this.#c!==void 0?this.#c:this.#c=this.#r===\"win32\"&&this.#n===0&&t[0]===\"\"&&t[1]===\"\"&&typeof t[2]==\"string\"&&!!t[2]&&typeof t[3]==\"string\"&&!!t[3]}isDrive(){let t=this.#t;return this.#w!==void 0?this.#w:this.#w=this.#r===\"win32\"&&this.#n===0&&this.length>1&&typeof t[0]==\"string\"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#t;return this.#h!==void 0?this.#h:this.#h=t[0]===\"\"&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#t[0];return typeof t==\"string\"&&this.isAbsolute()&&this.#n===0?t:\"\"}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#u)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#u?!1:(this.#u=!1,!0)}};var _i=typeof process==\"object\"&&process&&typeof process.platform==\"string\"?process.platform:\"linux\",ot=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:e,nocase:s,noext:i,noglobstar:r,platform:o=_i}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=o,this.mmopts={dot:!0,nobrace:e,nocase:s,noext:i,noglobstar:r,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let h of t)this.add(h)}add(t){let e=new D(t,this.mmopts);for(let s=0;s<e.set.length;s++){let i=e.set[s],r=e.globParts[s];if(!i||!r)throw new Error(\"invalid pattern object\");for(;i[0]===\".\"&&r[0]===\".\";)i.shift(),r.shift();let o=new nt(i,r,0,this.platform),h=new D(o.globString(),this.mmopts),a=r[r.length-1]===\"**\",l=o.isAbsolute();l?this.absolute.push(h):this.relative.push(h),a&&(l?this.absoluteChildren.push(h):this.relativeChildren.push(h))}}ignored(t){let e=t.fullpath(),s=`${e}/`,i=t.relative()||\".\",r=`${i}/`;for(let o of this.relative)if(o.match(i)||o.match(r))return!0;for(let o of this.absolute)if(o.match(e)||o.match(s))return!0;return!1}childrenIgnored(t){let e=t.fullpath()+\"/\",s=(t.relative()||\".\")+\"/\";for(let i of this.relativeChildren)if(i.match(s))return!0;for(let i of this.absoluteChildren)if(i.match(e))return!0;return!1}};var oe=class n{store;constructor(t=new Map){this.store=t}copy(){return new n(new Map(this.store))}hasWalked(t,e){return this.store.get(t.fullpath())?.has(e.globString())}storeWalked(t,e){let s=t.fullpath(),i=this.store.get(s);i?i.add(e.globString()):this.store.set(s,new Set([e.globString()]))}},he=class{store=new Map;add(t,e,s){let i=(e?2:0)|(s?1:0),r=this.store.get(t);this.store.set(t,r===void 0?i:i&r)}entries(){return[...this.store.entries()].map(([t,e])=>[t,!!(e&2),!!(e&1)])}},ae=class{store=new Map;add(t,e){if(!t.canReaddir())return;let s=this.store.get(t);s?s.find(i=>i.globString()===e.globString())||s.push(e):this.store.set(t,[e])}get(t){let e=this.store.get(t);if(!e)throw new Error(\"attempting to walk unknown path\");return e}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}},Et=class n{hasWalkedCache;matches=new he;subwalks=new ae;patterns;follow;dot;opts;constructor(t,e){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=e?e.copy():new oe}processPatterns(t,e){this.patterns=e;let s=e.map(i=>[t,i]);for(let[i,r]of s){this.hasWalkedCache.storeWalked(i,r);let o=r.root(),h=r.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o===\"/\"&&this.opts.root!==void 0?this.opts.root:o);let c=r.rest();if(c)r=c;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let a,l,u=!1;for(;typeof(a=r.pattern())==\"string\"&&(l=r.rest());)i=i.resolve(a),r=l,u=!0;if(a=r.pattern(),l=r.rest(),u){if(this.hasWalkedCache.hasWalked(i,r))continue;this.hasWalkedCache.storeWalked(i,r)}if(typeof a==\"string\"){let c=a===\"..\"||a===\"\"||a===\".\";this.matches.add(i.resolve(a),h,c);continue}else if(a===A){(!i.isSymbolicLink()||this.follow||r.checkFollowGlobstar())&&this.subwalks.add(i,r);let c=l?.pattern(),d=l?.rest();if(!l||(c===\"\"||c===\".\")&&!d)this.matches.add(i,h,c===\"\"||c===\".\");else if(c===\"..\"){let f=i.parent||i;d?this.hasWalkedCache.hasWalked(f,d)||this.subwalks.add(f,d):this.matches.add(f,h,!0)}}else a instanceof RegExp&&this.subwalks.add(i,r)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new n(this.opts,this.hasWalkedCache)}filterEntries(t,e){let s=this.subwalks.get(t),i=this.child();for(let r of e)for(let o of s){let h=o.isAbsolute(),a=o.pattern(),l=o.rest();a===A?i.testGlobstar(r,o,l,h):a instanceof RegExp?i.testRegExp(r,a,l,h):i.testString(r,a,l,h)}return i}testGlobstar(t,e,s,i){if((this.dot||!t.name.startsWith(\".\"))&&(e.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,e):t.isSymbolicLink()&&(s&&e.checkFollowGlobstar()?this.subwalks.add(t,s):e.markFollowGlobstar()&&this.subwalks.add(t,e)))),s){let r=s.pattern();if(typeof r==\"string\"&&r!==\"..\"&&r!==\"\"&&r!==\".\")this.testString(t,r,s.rest(),i);else if(r===\"..\"){let o=t.parent||t;this.subwalks.add(o,s)}else r instanceof RegExp&&this.testRegExp(t,r,s.rest(),i)}}testRegExp(t,e,s,i){e.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,e,s,i){t.isNamed(e)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}};var Li=(n,t)=>typeof n==\"string\"?new ot([n],t):Array.isArray(n)?new ot(n,t):n,zt=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#t=[];#s;#n;signal;maxDepth;includeChildMatches;constructor(t,e,s){if(this.patterns=t,this.path=e,this.opts=s,this.#n=!s.posix&&s.platform===\"win32\"?\"\\\\\":\"/\",this.includeChildMatches=s.includeChildMatches!==!1,(s.ignore||!this.includeChildMatches)&&(this.#s=Li(s.ignore??[],s),!this.includeChildMatches&&typeof this.#s.add!=\"function\")){let i=\"cannot ignore child matches, ignore lacks add() method.\";throw new Error(i)}this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener(\"abort\",()=>{this.#t.length=0}))}#r(t){return this.seen.has(t)||!!this.#s?.ignored?.(t)}#o(t){return!!this.#s?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#t.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#t.push(t):t())}async matchCheck(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||await t.realpath(),!s)return;t=s}let r=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=await r.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(r,e)}matchCheckTest(t,e){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!e||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#r(t)?t:void 0}matchCheckSync(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||t.realpathSync(),!s)return;t=s}let r=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=r.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(r,e)}matchFinish(t,e){if(this.#r(t))return;if(!this.includeChildMatches&&this.#s?.add){let r=`${t.relativePosix()}/**`;this.#s.add(r)}let s=this.opts.absolute===void 0?e:this.opts.absolute;this.seen.add(t);let i=this.opts.mark&&t.isDirectory()?this.#n:\"\";if(this.opts.withFileTypes)this.matchEmit(t);else if(s){let r=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(r+i)}else{let r=this.opts.posix?t.relativePosix():t.relative(),o=this.opts.dotRelative&&!r.startsWith(\"..\"+this.#n)?\".\"+this.#n:\"\";this.matchEmit(r?o+r+i:\".\"+i)}}async match(t,e,s){let i=await this.matchCheck(t,s);i&&this.matchFinish(i,e)}matchSync(t,e,s){let i=this.matchCheckSync(t,s);i&&this.matchFinish(i,e)}walkCB(t,e,s){this.signal?.aborted&&s(),this.walkCB2(t,e,new Et(this.opts),s)}walkCB2(t,e,s,i){if(this.#o(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(t,e,s,i));return}s.processPatterns(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||(r++,this.match(h,a,l).then(()=>o()));for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;r++;let a=h.readdirCached();h.calledReaddir()?this.walkCB3(h,a,s,o):h.readdirCB((l,u)=>this.walkCB3(h,u,s,o),!0)}o()}walkCB3(t,e,s,i){s=s.filterEntries(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||(r++,this.match(h,a,l).then(()=>o()));for(let[h,a]of s.subwalks.entries())r++,this.walkCB2(h,a,s.child(),o);o()}walkCBSync(t,e,s){this.signal?.aborted&&s(),this.walkCB2Sync(t,e,new Et(this.opts),s)}walkCB2Sync(t,e,s,i){if(this.#o(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(t,e,s,i));return}s.processPatterns(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||this.matchSync(h,a,l);for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;r++;let a=h.readdirSync();this.walkCB3Sync(h,a,s,o)}o()}walkCB3Sync(t,e,s,i){s=s.filterEntries(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||this.matchSync(h,a,l);for(let[h,a]of s.subwalks.entries())r++,this.walkCB2Sync(h,a,s.child(),o);o()}},xt=class extends zt{matches=new Set;constructor(t,e,s){super(t,e,s)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,e)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?e(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},vt=class extends zt{results;constructor(t,e,s){super(t,e,s),this.results=new V({signal:this.signal,objectMode:!0}),this.results.on(\"drain\",()=>this.resume()),this.results.on(\"resume\",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var Pi=typeof process==\"object\"&&process&&typeof process.platform==\"string\"?process.platform:\"linux\",I=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,e){if(!e)throw new TypeError(\"glob options required\");if(this.withFileTypes=!!e.withFileTypes,this.signal=e.signal,this.follow=!!e.follow,this.dot=!!e.dot,this.dotRelative=!!e.dotRelative,this.nodir=!!e.nodir,this.mark=!!e.mark,e.cwd?(e.cwd instanceof URL||e.cwd.startsWith(\"file://\"))&&(e.cwd=Wi(e.cwd)):this.cwd=\"\",this.cwd=e.cwd||\"\",this.root=e.root,this.magicalBraces=!!e.magicalBraces,this.nobrace=!!e.nobrace,this.noext=!!e.noext,this.realpath=!!e.realpath,this.absolute=e.absolute,this.includeChildMatches=e.includeChildMatches!==!1,this.noglobstar=!!e.noglobstar,this.matchBase=!!e.matchBase,this.maxDepth=typeof e.maxDepth==\"number\"?e.maxDepth:1/0,this.stat=!!e.stat,this.ignore=e.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error(\"cannot set absolute and withFileTypes:true\");if(typeof t==\"string\"&&(t=[t]),this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(a=>a.replace(/\\\\/g,\"/\"))),this.matchBase){if(e.noglobstar)throw new TypeError(\"base matching requires globstar\");t=t.map(a=>a.includes(\"/\")?a:`./**/${a}`)}if(this.pattern=t,this.platform=e.platform||Pi,this.opts={...e,platform:this.platform},e.scurry){if(this.scurry=e.scurry,e.nocase!==void 0&&e.nocase!==e.scurry.nocase)throw new Error(\"nocase option contradicts provided scurry option\")}else{let a=e.platform===\"win32\"?it:e.platform===\"darwin\"?St:e.platform?rt:Xe;this.scurry=new a(this.cwd,{nocase:e.nocase,fs:e.fs})}this.nocase=this.scurry.nocase;let s=this.platform===\"darwin\"||this.platform===\"win32\",i={braceExpandMax:1e4,...e,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},r=this.pattern.map(a=>new D(a,i)),[o,h]=r.reduce((a,l)=>(a[0].push(...l.set),a[1].push(...l.globParts),a),[[],[]]);this.patterns=o.map((a,l)=>{let u=h[l];if(!u)throw new Error(\"invalid pattern object\");return new nt(a,u,0,this.platform)})}async walk(){return[...await new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new vt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new vt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var le=(n,t={})=>{Array.isArray(n)||(n=[n]);for(let e of n)if(new D(e,t).hasMagic())return!0;return!1};function Bt(n,t={}){return new I(n,t).streamSync()}function Qe(n,t={}){return new I(n,t).stream()}function ts(n,t={}){return new I(n,t).walkSync()}async function Je(n,t={}){return new I(n,t).walk()}function Ut(n,t={}){return new I(n,t).iterateSync()}function es(n,t={}){return new I(n,t).iterate()}var ji=Bt,Ii=Object.assign(Qe,{sync:Bt}),zi=Ut,Bi=Object.assign(es,{sync:Ut}),Ui=Object.assign(ts,{stream:Bt,iterate:Ut}),Ze=Object.assign(Je,{glob:Je,globSync:ts,sync:Ui,globStream:Qe,stream:Ii,globStreamSync:Bt,streamSync:ji,globIterate:es,iterate:Bi,globIterateSync:Ut,iterateSync:zi,Glob:I,hasMagic:le,escape:tt,unescape:W});Ze.glob=Ze;export{I as Glob,ot as Ignore,tt as escape,Ze as glob,es as globIterate,Ut as globIterateSync,Qe as globStream,Bt as globStreamSync,ts as globSync,le as hasMagic,Bi as iterate,zi as iterateSync,Ii as stream,ji as streamSync,Ui as sync,W as unescape};\n//# sourceMappingURL=index.min.js.map\n","export type DiffLine = { op: \" \" | \"+\" | \"-\"; text: string }\n\n// ponytail: O(n·m) LCS on the changed middle; fine for docs, swap for Myers if huge files show up.\nexport function lineDiff(before: string, after: string): DiffLine[] {\n const a = before.split(\"\\n\")\n const b = after.split(\"\\n\")\n let start = 0\n while (start < a.length && start < b.length && a[start] === b[start]) start++\n let endA = a.length\n let endB = b.length\n while (endA > start && endB > start && a[endA - 1] === b[endB - 1]) { endA--; endB-- }\n\n const x = a.slice(start, endA)\n const y = b.slice(start, endB)\n // lcs[i][j] = LCS length of x[i..] and y[j..]\n const lcs = Array.from({ length: x.length + 1 }, () => new Array<number>(y.length + 1).fill(0))\n for (let i = x.length - 1; i >= 0; i--) {\n for (let j = y.length - 1; j >= 0; j--) {\n lcs[i][j] = x[i] === y[j] ? lcs[i + 1][j + 1] + 1 : Math.max(lcs[i + 1][j], lcs[i][j + 1])\n }\n }\n\n const middle: DiffLine[] = []\n let i = 0\n let j = 0\n while (i < x.length || j < y.length) {\n if (i < x.length && j < y.length && x[i] === y[j]) { middle.push({ op: \" \", text: x[i] }); i++; j++ }\n else if (i < x.length && (j === y.length || lcs[i + 1][j] >= lcs[i][j + 1])) { middle.push({ op: \"-\", text: x[i] }); i++ }\n else { middle.push({ op: \"+\", text: y[j] }); j++ }\n }\n\n return [\n ...a.slice(0, start).map((text) => ({ op: \" \" as const, text })),\n ...middle,\n ...a.slice(endA).map((text) => ({ op: \" \" as const, text })),\n ]\n}\n\nexport type TextEdit = { old_string: string; new_string: string }\n\n// Same contract as Claude Code's Edit tool: each old_string must match exactly once, applied in order.\n// An empty old_string is only allowed on an empty/new file (write the first content).\nexport function applyEdits(text: string, edits: TextEdit[]): { content: string } | { error: string } {\n let content = text\n for (const [i, e] of edits.entries()) {\n if (typeof e?.old_string !== \"string\" || typeof e?.new_string !== \"string\") {\n return { error: `Edit ${i + 1}: old_string and new_string must be strings` }\n }\n if (e.old_string === \"\") {\n if (content !== \"\") return { error: `Edit ${i + 1}: empty old_string is only allowed for a new, empty doc` }\n content = e.new_string\n continue\n }\n const at = content.indexOf(e.old_string)\n if (at === -1) return { error: `Edit ${i + 1}: old_string not found in the doc` }\n if (content.indexOf(e.old_string, at + 1) !== -1) {\n return { error: `Edit ${i + 1}: old_string matches more than once; include more surrounding text` }\n }\n content = content.slice(0, at) + e.new_string + content.slice(at + e.old_string.length)\n }\n return { content }\n}\n","// Doc properties live in YAML frontmatter (`priority: P1`, `status: draft`) so agents reading the file see\n// them and they survive rename/move. Only flat `key: value` lines are properties; anything else in the\n// block (lists, nested maps) is kept byte-for-byte. Pure: no fs, no React.\n\nexport const PRIORITIES = ['P0', 'P1', 'P2', 'P3'] as const\nexport type Priority = (typeof PRIORITIES)[number]\n\nconst FRONTMATTER = /^---\\r?\\n([\\s\\S]*?)\\r?\\n?---[ \\t]*(?:\\r?\\n|$)/\nconst PROPERTY_LINE = /^([A-Za-z][\\w-]*):[ \\t]*(.*?)[ \\t]*$/\nexport const PROPERTY_KEY = /^[A-Za-z][\\w-]{0,39}$/\n\n/** \"P1\" / \"p1\" / \"high\"-free: a priority value, or null. Also used for `**Priority:**` meta lines. */\nexport function parsePriority(raw: string | null | undefined): Priority | null {\n const s = (raw ?? '').trim().replace(/^[\"']|[\"']$/g, '').toUpperCase()\n return (PRIORITIES as readonly string[]).includes(s) ? (s as Priority) : null\n}\n\n/** The leading `---` block, if any: its inner lines and total length. */\nfunction frontmatter(content: string): { inner: string; length: number } | null {\n const m = FRONTMATTER.exec(content)\n return m ? { inner: m[1], length: m[0].length } : null\n}\n\n/** Content without its frontmatter block, for rendering and stats. */\nexport function stripFrontmatter(content: string): string {\n const fm = frontmatter(content)\n return fm ? content.slice(fm.length).replace(/^\\r?\\n/, '') : content\n}\n\nfunction unquote(v: string): string {\n if (v.length >= 2 && v.startsWith('\"') && v.endsWith('\"')) return v.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\')\n if (v.length >= 2 && v.startsWith(\"'\") && v.endsWith(\"'\")) return v.slice(1, -1).replace(/''/g, \"'\")\n return v\n}\n\n/** YAML-safe scalar: plain when it can't be misread, double-quoted otherwise. */\nfunction quote(v: string): string {\n return /^[\\w][\\w .,/()+-]*$/.test(v) && !/^(true|false|null|yes|no|~)$/i.test(v) ? v : `\"${v.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`\n}\n\n/** Flat `key: value` frontmatter entries, in file order. A key with no value (a list or map follows) is left out. */\nexport function docProperties(content: string): { key: string; value: string }[] {\n const fm = frontmatter(content)\n if (!fm) return []\n return fm.inner.split(/\\r?\\n/).flatMap((l) => {\n const m = PROPERTY_LINE.exec(l)\n return m && m[2] !== '' ? [{ key: m[1], value: unquote(m[2]) }] : []\n })\n}\n\nexport function docPriority(content: string): Priority | null {\n return parsePriority(docProperties(content).find((p) => p.key.toLowerCase() === 'priority')?.value)\n}\n\n/** Set (or remove with null) one property. Other lines and the body stay as they are; an existing key keeps its place, a new one goes last. */\nexport function setDocProperty(content: string, key: string, value: string | null): string {\n const fm = frontmatter(content)\n const nl = content.includes('\\r\\n') ? '\\r\\n' : '\\n'\n const line = value === null ? null : `${key}: ${quote(value.replace(/\\s+/g, ' ').trim())}`\n if (!fm) return line ? `---${nl}${line}${nl}---${nl}${nl}${content}` : content\n const lines = fm.inner.split(/\\r?\\n/).filter((l) => l !== '')\n const at = lines.findIndex((l) => PROPERTY_LINE.exec(l)?.[1].toLowerCase() === key.toLowerCase())\n // `tags:` followed by list items: replacing the line would orphan them\n if (at >= 0 && PROPERTY_LINE.exec(lines[at])?.[2] === '') throw new Error(`\"${key}\" holds a list or map; edit it in the file`)\n if (at >= 0) {\n if (line) lines[at] = line\n else lines.splice(at, 1)\n } else if (line) lines.push(line)\n const body = content.slice(fm.length)\n // Dropping the last key drops the block and the blank line this module put after it\n if (lines.length === 0) return body.replace(/^\\r?\\n/, '')\n return `---${nl}${lines.join(nl)}${nl}---${nl}${body}`\n}\n\nexport function setDocPriority(content: string, priority: Priority | null): string {\n return setDocProperty(content, 'priority', priority)\n}\n\n/** Sort key: P0 first, unset last. */\nexport function priorityRank(p: Priority | null | undefined): number {\n return p ? PRIORITIES.indexOf(p) : PRIORITIES.length\n}\n","// Who is in charge of a task / epic (R055): `**Owner:** human` or `**Owner:** ai:<agent>`.\n// Pure (no React, no fs). Self-check: `node src/lib/owner.check.mts`.\n\nexport type OwnerKind = \"human\" | \"ai\" | \"none\"\n\nconst KNOWN_AGENTS = [\"claude\", \"cursor\", \"codex\", \"copilot\", \"gemini\", \"windsurf\", \"cline\", \"opencode\"]\n\n/** \"human\" | \"ai:<agent>\" (lowercase), or null for empty / \"—\" / anything else. A bare \"ai\" becomes \"ai:agent\". */\nexport function parseOwner(raw: string | null | undefined): string | null {\n const v = (raw ?? \"\").trim().toLowerCase()\n if (v === \"human\") return \"human\"\n const m = v.match(/^ai(?::\\s*([a-z0-9._-]+))?$/)\n return m ? `ai:${m[1] ?? \"agent\"}` : null\n}\n\nexport function ownerKind(owner: string | null): OwnerKind {\n return owner === \"human\" ? \"human\" : owner?.startsWith(\"ai:\") ? \"ai\" : \"none\"\n}\n\n/** \"Human\", \"claude\", \"No owner\". */\nexport function ownerLabel(owner: string | null): string {\n return owner === \"human\" ? \"Human\" : owner?.startsWith(\"ai:\") ? owner.slice(3) : \"No owner\"\n}\n\n/** Agent name from an MCP client's User-Agent (\"claude-code/2.1\" → \"claude\"); \"agent\" when unknown. */\nexport function agentFromUserAgent(ua: string | null | undefined): string {\n const s = (ua ?? \"\").toLowerCase()\n return KNOWN_AGENTS.find((a) => s.includes(a)) ?? \"agent\"\n}\n","/**\n * src/lib/sessions.ts\n * Pure grouping of the activity log into agent/human sessions (no fs). Used by /api/sessions and /api/mcp.\n * Stamped events group by `sessionId`; legacy events (no sessionId) split on a per-actor idle gap or `session_start`.\n */\nimport type { ActivityEvent, TaskStatus } from './core'\n\nexport const SESSION_GAP_MS = 30 * 60 * 1000\n\nexport interface Session {\n id: string\n actor: ActivityEvent['actor']\n start: string\n end: string\n eventCount: number\n eventIds: string[]\n tasks: { id: string; lastStatus: TaskStatus }[]\n docs: string[]\n decisions: string[]\n memoryUpdated: boolean\n headline: string\n}\n\n// Doc path a change event carries; null for events that don't change a doc (doc_read included).\nfunction changedDoc(e: ActivityEvent): string | null {\n switch (e.type) {\n case 'doc_created': return e.detail ?? e.title.replace(/^Created: /, '')\n case 'doc_deleted': return e.title.replace(/^Deleted /, '')\n case 'doc_renamed': return e.title.split(' → ')[1] ?? null\n default: return null\n }\n}\n\nconst plural = (n: number, word: string) => `${n} ${word}${n === 1 ? '' : 's'}`\n\nfunction summarize(id: string, events: ActivityEvent[]): Session {\n const tasks = new Map<string, TaskStatus>()\n const docs = new Set<string>()\n const decisions: string[] = []\n let memoryUpdated = false\n let roadmapEdits = 0\n for (const e of events) {\n if (e.type === 'task_updated' && e.taskId && e.taskStatus) tasks.set(e.taskId, e.taskStatus)\n const doc = changedDoc(e)\n if (doc) docs.add(doc)\n if (e.type === 'decision_logged') decisions.push(e.title)\n if (e.type === 'memory_updated') memoryUpdated = true\n if (e.type === 'roadmap_updated') roadmapEdits++\n }\n const taskList = [...tasks].map(([tid, lastStatus]) => ({ id: tid, lastStatus }))\n const done = taskList.filter(t => t.lastStatus === 'done').length\n const parts = [\n taskList.length ? `${plural(taskList.length, 'task')} moved${done ? ` (${done} done)` : ''}` : '',\n docs.size ? `${plural(docs.size, 'doc')} changed` : '',\n decisions.length ? plural(decisions.length, 'ADR') : '',\n roadmapEdits ? plural(roadmapEdits, 'roadmap edit') : '',\n memoryUpdated ? 'memory updated' : '',\n ].filter(Boolean)\n return {\n id,\n actor: events[0].actor,\n start: events[0].timestamp,\n end: events[events.length - 1].timestamp,\n eventCount: events.length,\n eventIds: events.map(e => e.id),\n tasks: taskList,\n docs: [...docs],\n decisions,\n memoryUpdated,\n headline: parts.join(' · ') || plural(events.length, 'event'),\n }\n}\n\n/** Events may come in any order (the log is newest-first). Returns sessions newest first. */\nexport function groupSessions(events: ActivityEvent[], opts: { gapMs?: number } = {}): Session[] {\n const gapMs = opts.gapMs ?? SESSION_GAP_MS\n const chrono = [...events].sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n const groups = new Map<string, ActivityEvent[]>()\n const legacy = new Map<string, { id: string; lastAt: number }>() // per actor\n for (const e of chrono) {\n let id = e.sessionId\n if (!id) {\n const at = Date.parse(e.timestamp)\n let cur = legacy.get(e.actor)\n if (!cur || e.type === 'session_start' || at - cur.lastAt > gapMs) {\n cur = { id: `legacy_${e.id}`, lastAt: at }\n legacy.set(e.actor, cur)\n }\n cur.lastAt = at\n id = cur.id\n }\n const g = groups.get(id)\n if (g) g.push(e)\n else groups.set(id, [e])\n }\n return [...groups]\n .map(([id, evs]) => summarize(id, evs))\n .sort((a, b) => b.start.localeCompare(a.start))\n}\n\nexport function sessionDuration(s: Pick<Session, 'start' | 'end'>): string {\n const min = Math.round((Date.parse(s.end) - Date.parse(s.start)) / 60_000)\n if (min < 1) return '<1m'\n return min < 60 ? `${min}m` : `${Math.floor(min / 60)}h ${min % 60}m`\n}\n\n/** A session still receiving events (last one within `windowMs`). */\nexport function isLive(s: Pick<Session, 'end'>, now = Date.now(), windowMs = 5 * 60 * 1000): boolean {\n return now - Date.parse(s.end) < windowMs\n}\n\n/** Totals for the \"catch up\" strip: sessions that ended at or after `sinceMs`. */\nexport function catchUp(sessions: Session[], sinceMs: number) {\n const recent = sessions.filter(s => Date.parse(s.end) >= sinceMs)\n return {\n sessions: recent.length,\n tasksDone: new Set(recent.flatMap(s => s.tasks.filter(t => t.lastStatus === 'done').map(t => t.id))).size,\n docs: new Set(recent.flatMap(s => s.docs)).size,\n decisions: recent.reduce((n, s) => n + s.decisions.length, 0),\n }\n}\n\nexport function sessionsForTask(sessions: Session[], taskId: string): Session[] {\n return sessions.filter(s => s.tasks.some(t => t.id === taskId))\n}\n","// Automatic task dates (R055): due filled from the epic or the size, Started / Done stamped on moves.\n// Pure (no React, no fs). Dates are local calendar strings \"YYYY-MM-DD\", never instants.\n// Self-check: `node src/lib/auto-dates.check.mts`.\n\nexport type SizeDays = Record<string, number>\n\n/** Calendar days of work per size letter; override with `tasks.sizeDays` in .vibedoc/settings.json. */\nexport const DEFAULT_SIZE_DAYS: SizeDays = { XS: 1, S: 1, M: 3, L: 7, XL: 14 }\n\n/** \"2026-10-01\" + 3 → \"2026-10-04\" (calendar math, no time zone involved). */\nexport function addDays(date: string, days: number): string {\n const [y, m, d] = date.split(\"-\").map(Number)\n return new Date(Date.UTC(y, m - 1, d + days)).toISOString().slice(0, 10)\n}\n\n/** \"M (2–3 hrs)\" → \"M\"; \"—\" / \"\" → null. */\nexport function sizeLetter(size: string): string | null {\n return size.trim().match(/^(XS|XL|S|M|L)\\b/i)?.[1].toUpperCase() ?? null\n}\n\nexport interface TaskDates {\n due: string | null\n started: string | null\n done: string | null\n}\n\n/**\n * Dates after a move to `status` on `today`. Only fills what is empty, so a hand-set due always wins:\n * - in-progress: Started = today (first start only); no due yet → Started + the size's days\n * - done: Done = today\n * - back to anything else from done: Done is cleared (Started stays)\n */\nexport function datesOnMove(\n status: string, current: TaskDates, size: string, today: string, sizeDays: SizeDays = DEFAULT_SIZE_DAYS,\n): TaskDates {\n const next = { ...current }\n if (status === \"in-progress\") {\n next.started ??= today\n const days = sizeDays[sizeLetter(size) ?? \"\"]\n if (!next.due && typeof days === \"number\" && days >= 0) next.due = addDays(next.started, days)\n }\n if (status === \"done\") next.done = today\n else if (next.done) next.done = null\n return next\n}\n","// Task statuses (R055): the seven built-ins plus a project's own, each mapped onto a built-in category.\n// Logic (queue, health, dependencies, board buckets) reads the category; the UI reads label and color.\n// Files store the status id (`**Status:** 👀 Qa`), so renaming a label never touches task files.\n// Pure (no React, no fs). Self-check: `node src/lib/statuses.check.mts`.\n\nimport type { TaskStatus } from \"./core\"\n\nexport const BUILTIN_STATUSES: TaskStatus[] = [\"todo\", \"in-progress\", \"review\", \"blocked\", \"paused\", \"done\", \"cancelled\"]\n\nexport const STATUS_ICONS: Record<TaskStatus, string> = {\n todo: \"📋\",\n \"in-progress\": \"🔨\",\n review: \"👀\",\n blocked: \"🚫\",\n paused: \"⏸️\",\n done: \"✅\",\n cancelled: \"❌\",\n}\n\nexport const STATUS_ALIASES: Record<string, TaskStatus> = {\n ready: \"todo\", planned: \"todo\", \"not started\": \"todo\",\n wip: \"in-progress\", doing: \"in-progress\", active: \"in-progress\", start: \"in-progress\", started: \"in-progress\",\n complete: \"done\", completed: \"done\", finished: \"done\", finish: \"done\",\n block: \"blocked\",\n \"on hold\": \"paused\", \"on-hold\": \"paused\", pause: \"paused\", hold: \"paused\",\n \"in review\": \"review\", reviewing: \"review\", \"needs review\": \"review\",\n cancel: \"cancelled\", skip: \"cancelled\",\n}\n\n/** Named colors only: Tailwind generates classes it sees literally, so the UI maps these names to fixed classes. */\nexport const STATUS_COLORS = [\"gray\", \"amber\", \"accent\", \"red\", \"slate\", \"teal\", \"blue\", \"pink\", \"green\", \"orange\"] as const\nexport type StatusColor = (typeof STATUS_COLORS)[number]\n\nexport interface StatusDef {\n /** Built-in id, or a custom slug ([a-z0-9-]) */\n id: string\n label: string\n color: StatusColor\n category: TaskStatus\n}\n\nexport const DEFAULT_STATUSES: StatusDef[] = [\n { id: \"todo\", label: \"Todo\", color: \"gray\", category: \"todo\" },\n { id: \"in-progress\", label: \"In progress\", color: \"amber\", category: \"in-progress\" },\n { id: \"review\", label: \"Review\", color: \"accent\", category: \"review\" },\n { id: \"blocked\", label: \"Blocked\", color: \"red\", category: \"blocked\" },\n { id: \"paused\", label: \"Paused\", color: \"slate\", category: \"paused\" },\n { id: \"done\", label: \"Done\", color: \"teal\", category: \"done\" },\n { id: \"cancelled\", label: \"Cancelled\", color: \"gray\", category: \"cancelled\" },\n]\n\nconst isBuiltin = (s: string): s is TaskStatus => (BUILTIN_STATUSES as string[]).includes(s)\n\n/** Why an id can't be a custom status, or null when it can. */\nexport function invalidStatusId(id: string): string | null {\n if (!/^[a-z0-9][a-z0-9-]{0,39}$/.test(id)) return \"use lowercase letters, digits and dashes\"\n if (isBuiltin(id) || id in STATUS_ALIASES || id.replace(/-/g, \" \") in STATUS_ALIASES) return `\"${id}\" already means a built-in status`\n return null\n}\n\n/**\n * The project's statuses: every built-in once (its label / color / position may be customised, its category\n * can't), plus valid custom ones. Anything malformed in settings is dropped, never thrown.\n */\nexport function statusDefs(fromSettings: unknown): StatusDef[] {\n if (!Array.isArray(fromSettings)) return DEFAULT_STATUSES\n const out: StatusDef[] = []\n for (const raw of fromSettings) {\n const r = raw as Partial<StatusDef> | null\n const id = typeof r?.id === \"string\" ? r.id.trim().toLowerCase() : \"\"\n if (!id || out.some((d) => d.id === id)) continue\n const builtin = isBuiltin(id)\n const category = builtin ? id : r?.category\n if (!category || !isBuiltin(category) || (!builtin && invalidStatusId(id))) continue\n const base = DEFAULT_STATUSES.find((d) => d.id === (builtin ? id : category))\n out.push({\n id,\n label: typeof r?.label === \"string\" && r.label.trim() ? r.label.trim() : base?.label ?? id,\n color: STATUS_COLORS.includes(r?.color as StatusColor) ? (r?.color as StatusColor) : base?.color ?? \"gray\",\n category,\n })\n }\n // built-ins that settings left out keep their default place at the end\n for (const d of DEFAULT_STATUSES) if (!out.some((o) => o.id === d.id)) out.push(d)\n return out\n}\n\nexport interface ResolvedStatus {\n status: TaskStatus\n /** Set only for a custom status */\n customStatus?: string\n /** The raw value matched nothing (read as todo) */\n unknown?: boolean\n}\n\n/** A `**Status:**` value (\"👀 Qa\", \"In review\", \"done\") → category + custom id. */\nexport function resolveStatus(raw: string, defs: StatusDef[] = DEFAULT_STATUSES): ResolvedStatus {\n const s = raw.toLowerCase().replace(/[📋🔨👀✅🚫❌⏸️]/g, \"\").trim()\n const key: string = STATUS_ALIASES[s] ?? s\n if (isBuiltin(key)) return { status: key }\n const custom = defs.find((d) => d.id === key || d.id === key.replace(/\\s+/g, \"-\"))\n if (custom && !isBuiltin(custom.id)) return { status: custom.category, customStatus: custom.id }\n return { status: \"todo\", unknown: true }\n}\n\n/** What goes after `**Status:** ` for a status key: built-ins exactly as always (\"🔨 In-progress\"), custom ids alike (\"👀 Qa\"). */\nexport function statusLine(key: string, defs: StatusDef[] = DEFAULT_STATUSES): string {\n const { status, customStatus } = resolveStatus(key, defs)\n const id = customStatus ?? status\n return `${STATUS_ICONS[status]} ${id.charAt(0).toUpperCase()}${id.slice(1)}`\n}\n\n/** The key a task shows under: its custom status, else its category. */\nexport const displayStatus = (t: { status: TaskStatus; customStatus?: string }) => t.customStatus ?? t.status\n","// Review history on a task (R043): a `## Review` section at the end of the task file, one `### ` entry per outcome.\n// Pure (no fs): core.ts writes the file; `node src/lib/review.check.mts` runs the self-check.\n//\n// ## Review\n// ### 2026-10-01T11:00:00Z — changes requested\n// The plan card doesn't scroll when there are 10+ tasks.\n// ### 2026-10-02T09:30:00Z — approved\n\nexport const REVIEW_HEADING = \"## Review\"\n\nexport type ReviewOutcome = \"approved\" | \"changes requested\"\n\nexport interface ReviewEntry {\n at: string\n outcome: ReviewOutcome\n note: string\n}\n\nconst ENTRY = /^###\\s+(\\S+)\\s+—\\s+(approved|changes requested)\\s*$/\n\n/** Lines inside ``` fences, so a quoted example is never taken for the real section. */\nfunction fenced(lines: string[]): boolean[] {\n let inFence = false\n return lines.map((l) => {\n if (/^\\s*```/.test(l)) { inFence = !inFence; return true }\n return inFence\n })\n}\n\nfunction sectionRange(lines: string[]): [number, number] | null {\n const code = fenced(lines)\n const start = lines.findIndex((l, i) => !code[i] && l.trim() === REVIEW_HEADING)\n if (start < 0) return null\n const next = lines.findIndex((l, i) => i > start && !code[i] && /^##\\s/.test(l))\n return [start, next < 0 ? lines.length : next]\n}\n\n/** Every review entry, oldest first. */\nexport function reviewHistory(raw: string): ReviewEntry[] {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return []\n const entries: ReviewEntry[] = []\n for (const line of lines.slice(range[0] + 1, range[1])) {\n const m = line.match(ENTRY)\n if (m) entries.push({ at: m[1], outcome: m[2] as ReviewOutcome, note: \"\" })\n else if (entries.length) {\n const last = entries[entries.length - 1]\n last.note = last.note ? `${last.note}\\n${line}` : line\n }\n }\n return entries.map((e) => ({ ...e, note: e.note.trim() }))\n}\n\nexport function latestReview(raw: string): ReviewEntry | null {\n const all = reviewHistory(raw)\n return all[all.length - 1] ?? null\n}\n\n/**\n * Add an entry to the `## Review` section (created at the end of the file if missing; an existing one keeps its\n * place and grows). A note is required for \"changes requested\".\n */\nexport function appendReviewEntry(raw: string, outcome: ReviewOutcome, note: string, at: string): string {\n const text = note.trim()\n if (outcome === \"changes requested\" && !text) throw new Error(\"A note is required to send a task back\")\n // \"## \" at the start of a note line would end the section early\n const body = text.split(\"\\n\").map((l) => (/^#{1,3}\\s/.test(l) ? `\\\\${l}` : l)).join(\"\\n\")\n const entry = [`### ${at} — ${outcome}`, ...(body ? [body] : [])]\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return `${raw.replace(/\\s+$/, \"\")}\\n\\n${REVIEW_HEADING}\\n${entry.join(\"\\n\")}\\n`\n // Insert after the section's last non-empty line, before the blank lines that separate it from what follows\n let end = range[1]\n while (end > range[0] + 1 && !lines[end - 1].trim()) end--\n const out = [...lines.slice(0, end), ...entry, ...lines.slice(end)]\n const joined = out.join(\"\\n\")\n return range[1] === lines.length ? `${joined.replace(/\\s+$/, \"\")}\\n` : joined\n}\n","// Manual test report on a task (R043): a `## Manual tests` checklist section at the end of the task file.\n// Pure (no fs): core.ts reads/writes the file; `node src/lib/manual-tests.check.mts` runs the self-check.\n//\n// ## Manual tests\n// _2026-10-01 — ai_\n// ### Steps\n// - [ ] Open /roadmap, click \"Break down\" on R043 → a chat opens titled with the epic\n// ### Regression risk\n// - [ ] Dragging a card between columns still works\n\nexport const MANUAL_TESTS_HEADING = \"## Manual tests\"\n\nexport type ManualTestGroup = \"steps\" | \"regression\"\n\nexport interface ManualTestItem {\n text: string\n checked: boolean\n group: ManualTestGroup\n /** Position among all checklist items in the section (T061 toggles by this) */\n index: number\n}\n\nexport interface ManualTests {\n items: ManualTestItem[]\n total: number\n done: number\n /** From the `_YYYY-MM-DD — actor_` line; null if missing */\n date: string | null\n}\n\nconst ITEM = /^\\s*[-*]\\s+\\[( |x|X)\\]\\s+(.*)$/\nconst BULLET = /^\\s*[-*]\\s+(.*)$/\n\n/** Lines inside ``` fences, so an example section quoted in a task's spec is never taken for the real one. */\nfunction fenced(lines: string[]): boolean[] {\n let inFence = false\n return lines.map((l) => {\n if (/^\\s*```/.test(l)) { inFence = !inFence; return true }\n return inFence\n })\n}\n\n/** [start, end) line range of the section: its heading up to the next `## ` heading or the end of the file. */\nfunction sectionRange(lines: string[]): [number, number] | null {\n const code = fenced(lines)\n const start = lines.findIndex((l, i) => !code[i] && l.trim() === MANUAL_TESTS_HEADING)\n if (start < 0) return null\n const next = lines.findIndex((l, i) => i > start && !code[i] && /^##\\s/.test(l))\n return [start, next < 0 ? lines.length : next]\n}\n\n/**\n * The report body as a checklist: `### ` group headings kept, every other non-empty line becomes `- [ ] …`\n * (plain text and plain bullets alike). Items before any heading go under `### Steps`.\n */\nexport function normalizeReport(report: string): string {\n const out: string[] = []\n for (const raw of report.replace(/\\r\\n/g, \"\\n\").split(\"\\n\")) {\n const line = raw.trimEnd()\n if (!line.trim()) continue\n if (/^\\s*###\\s/.test(line)) { out.push(line.trim()); continue }\n if (/^\\s*##?\\s/.test(line)) continue // a stray \"## Manual tests\" or H1 from the agent\n const item = line.match(ITEM)\n const text = item ? item[2] : (line.match(BULLET)?.[1] ?? line.trim())\n if (!out.some((l) => l.startsWith(\"### \"))) out.push(\"### Steps\")\n out.push(`- [${item && item[1] !== \" \" ? \"x\" : \" \"}] ${text.trim()}`)\n }\n return out.join(\"\\n\")\n}\n\n/** Write the report as the task's `## Manual tests` section, replacing an older one (old ticks no longer apply). */\nexport function setManualTests(raw: string, report: string, actor: \"ai\" | \"human\", date: string): string {\n const body = normalizeReport(report)\n if (!body) throw new Error(\"manualTests is empty: give at least one checklist item\")\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n const rest = range ? [...lines.slice(0, range[0]), ...lines.slice(range[1])] : lines\n const kept = rest.join(\"\\n\").replace(/\\s+$/, \"\")\n return `${kept}\\n\\n${MANUAL_TESTS_HEADING}\\n_${date} — ${actor}_\\n${body}\\n`\n}\n\n/** The checklist in a task file, or null when it has no `## Manual tests` section (or the section has no items). */\nexport function parseManualTests(raw: string): ManualTests | null {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return null\n const items: ManualTestItem[] = []\n let group: ManualTestGroup = \"steps\"\n let date: string | null = null\n for (const line of lines.slice(range[0] + 1, range[1])) {\n const stamp = line.match(/^_(\\d{4}-\\d{2}-\\d{2})\\b/)\n if (stamp && !date && !items.length) { date = stamp[1]; continue }\n if (/^\\s*###\\s/.test(line)) { group = /^\\s*###\\s+regression/i.test(line) ? \"regression\" : \"steps\"; continue }\n const m = line.match(ITEM)\n if (m) items.push({ text: m[2].trim(), checked: m[1] !== \" \", group, index: items.length })\n }\n if (!items.length) return null\n return { items, total: items.length, done: items.filter((i) => i.checked).length, date }\n}\n\n/** Tick or untick the `index`th checklist item of the `## Manual tests` section (file order), nothing else. */\nexport function toggleManualTest(raw: string, index: number, checked: boolean): string {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) throw new RangeError(\"This task has no manual tests\")\n let n = 0\n for (let i = range[0] + 1; i < range[1]; i++) {\n if (!ITEM.test(lines[i])) continue\n if (n++ === index) {\n lines[i] = lines[i].replace(/\\[( |x|X)\\]/, checked ? \"[x]\" : \"[ ]\")\n return lines.join(\"\\n\")\n }\n }\n throw new RangeError(`No manual test item ${index} (the task has ${n})`)\n}\n","// Pure next-task picker for an epic's work queue (no fs). Self-check: node src/lib/work-queue.check.mts\nimport type { RoadmapItem, Task } from './core'\n\nexport type QueueTask = Pick<Task, 'id' | 'status' | 'dependsOn'>\nexport type QueueResult =\n | { kind: 'ready'; taskId: string }\n | { kind: 'finished' }\n // needsHuman: no remaining task can move without someone unblocking or creating a task\n | { kind: 'waiting'; waiting: { taskId: string; reason: string }[]; needsHuman: boolean }\n\n/** Every `T\\d+` in a free-text \"Depends on\" line: \"T008, T009 (x)\" → [\"T008\",\"T009\"]. */\nexport function depIds(dependsOn: string): string[] {\n return [...new Set((dependsOn.match(/\\bT\\d+\\b/gi) ?? []).map(d => d.toUpperCase()))]\n}\n\nconst settled = (s: Task['status']) => s === 'done' || s === 'cancelled'\n\nexport function pickNextTask(epic: RoadmapItem, tasks: QueueTask[]): QueueResult {\n const byId = new Map(tasks.map(t => [t.id, t]))\n const linked = epic.tasks.map(id => byId.get(id)).filter((t): t is QueueTask => !!t)\n const unmet = (t: QueueTask) => depIds(t.dependsOn).filter(d => {\n const dep = byId.get(d)\n return !dep || !settled(dep.status)\n })\n\n for (const t of linked) {\n if (t.status === 'todo' && !unmet(t).length) return { kind: 'ready', taskId: t.id }\n }\n if (linked.every(t => settled(t.status))) return { kind: 'finished' }\n\n // Can this task still move without a human? in-progress/settled yes; blocked/paused/review/missing no\n // (review waits for someone to approve or send it back, R043);\n // todo only if it's in this epic (the queue never hands out outside tasks) and every unmet dep can.\n // Cycles count as stuck.\n const inEpic = new Set(epic.tasks)\n const memo = new Map<string, boolean>()\n const canMove = (id: string): boolean => {\n if (memo.has(id)) return memo.get(id) ?? false\n memo.set(id, false)\n const t = byId.get(id)\n const ok = !!t && t.status !== 'blocked' && t.status !== 'paused' && t.status !== 'review' && (t.status !== 'todo' || (inEpic.has(id) && unmet(t).every(canMove)))\n memo.set(id, ok)\n return ok\n }\n\n const waiting: { taskId: string; reason: string }[] = []\n for (const id of epic.tasks) {\n const t = byId.get(id)\n if (!t) waiting.push({ taskId: id, reason: `${id} has no task file` })\n else if (t.status === 'in-progress') waiting.push({ taskId: id, reason: `${id} is in progress (claimed)` })\n else if (t.status === 'blocked') waiting.push({ taskId: id, reason: `${id} is blocked` })\n else if (t.status === 'paused') waiting.push({ taskId: id, reason: `${id} is paused — needs a human to resume it` })\n else if (t.status === 'review') waiting.push({ taskId: id, reason: `${id} in review — needs a human` })\n else if (t.status === 'todo') {\n const deps = unmet(t).map(d => `${d} (${byId.get(d)?.status ?? 'missing'})`)\n waiting.push({ taskId: id, reason: `${id} waits on ${deps.join(', ')}` })\n }\n }\n return { kind: 'waiting', waiting, needsHuman: waiting.every(w => !canMove(w.taskId)) }\n}\n","/**\n * src/lib/roadmap-import.ts\n * Pure (no fs): draft a roadmap for a project that has none, from ROADMAP.md, from its tasks, or a starter.\n * core.ts `generateRoadmap()` assigns ids and writes the files.\n */\n\nimport type { RoadmapStatus, Task } from './core'\n\nexport interface RoadmapDraft {\n key: string\n title: string\n parent: string | null // key of the parent draft; null = horizon\n status: RoadmapStatus\n tasks: string[]\n body: string\n}\n\nexport type RoadmapSource = 'roadmap-md' | 'tasks' | 'starter'\n\nconst SHIPPED = /\\b(shipped|done|released|complete[d]?)\\b/i\nconst MAX_TITLE = 80\n\nfunction plain(s: string): string {\n return s\n .replace(/\\[([^\\]]+)\\]\\([^)]*\\)/g, '$1') // links\n .replace(/[*_`]/g, '')\n .replace(/\\s+/g, ' ')\n .trim()\n}\n\nfunction clip(s: string): string {\n return s.length > MAX_TITLE ? `${s.slice(0, MAX_TITLE - 1).trimEnd()}…` : s\n}\n\nfunction rollUp(statuses: RoadmapStatus[]): RoadmapStatus {\n if (statuses.length && statuses.every(s => s === 'done')) return 'done'\n if (statuses.some(s => s !== 'planned')) return 'in-progress'\n return 'planned'\n}\n\n/** `## Section` with top-level bullets → horizon + features. Sections without bullets are skipped. */\nexport function roadmapFromMarkdown(md: string): RoadmapDraft[] {\n const out: RoadmapDraft[] = []\n let horizon: RoadmapDraft | null = null\n let intro: string[] = []\n let feature: RoadmapDraft | null = null\n let kids = 0\n\n const closeHorizon = () => {\n if (horizon && kids > 0) {\n horizon.body = intro.join(' ').trim()\n const own = out.filter(d => d.parent === horizon?.key).map(d => d.status)\n if (horizon.status !== 'done') horizon.status = rollUp(own)\n } else if (horizon) {\n // no bullets: drop the heading\n out.splice(out.indexOf(horizon), 1)\n }\n horizon = null\n feature = null\n intro = []\n kids = 0\n }\n\n for (const line of md.split('\\n')) {\n const h2 = line.match(/^##\\s+(.+?)\\s*#*\\s*$/)\n if (h2) {\n closeHorizon()\n const title = clip(plain(h2[1]))\n horizon = { key: `h${out.length}`, title, parent: null, status: SHIPPED.test(title) ? 'done' : 'planned', tasks: [], body: '' }\n out.push(horizon)\n continue\n }\n if (!horizon) continue\n if (/^#/.test(line)) { closeHorizon(); continue } // H1 / H3+ ends the section\n\n const bullet = line.match(/^[-*]\\s+(?:\\[([ xX])\\]\\s+)?(.*)$/)\n if (bullet) {\n const text = bullet[2]\n const named = text.match(/^\\*\\*(.+?)\\*\\*\\s*(?:[—–:-]\\s*)?(.*)$/)\n const title = clip(plain(named ? named[1] : text))\n if (!title) continue\n const status: RoadmapStatus = bullet[1]\n ? (bullet[1].toLowerCase() === 'x' ? 'done' : 'planned')\n : horizon.status === 'done' ? 'done' : 'planned'\n feature = { key: `f${out.length}`, title, parent: horizon.key, status, tasks: [], body: named ? named[2].trim() : '' }\n out.push(feature)\n kids++\n continue\n }\n\n const cont = line.match(/^\\s+(\\S.*)$/)\n if (feature && cont) {\n feature.body = [feature.body, cont[1].replace(/^[-*]\\s+/, '- ')].filter(Boolean).join('\\n')\n } else if (!feature && line.trim() && !/^-{3,}$/.test(line.trim())) {\n intro.push(line.trim())\n }\n }\n closeHorizon()\n return out\n}\n\nconst phaseRank = (p: string) => {\n const n = parseFloat(p)\n return Number.isFinite(n) ? n : Infinity\n}\n\n/** One horizon per task phase, one feature per (non-cancelled) task. */\nexport function roadmapFromTasks(tasks: Pick<Task, 'id' | 'title' | 'status' | 'phase'>[]): RoadmapDraft[] {\n const groups = new Map<string, typeof tasks>()\n for (const t of tasks) {\n if (t.status === 'cancelled') continue\n const phase = plain(t.phase || '').replace(/^—$/, '') || 'Unphased'\n groups.set(phase, [...(groups.get(phase) ?? []), t])\n }\n const phases = [...groups.keys()].sort((a, b) => phaseRank(a) - phaseRank(b) || a.localeCompare(b))\n\n const out: RoadmapDraft[] = []\n for (const phase of phases) {\n const key = `h${out.length}`\n const features = (groups.get(phase) ?? []).map((t): RoadmapDraft => ({\n key: `f${t.id}`,\n title: clip(t.title),\n parent: key,\n status: t.status === 'done' ? 'done' : t.status === 'in-progress' ? 'in-progress' : 'planned',\n tasks: [t.id],\n body: '',\n }))\n out.push({ key, title: clip(phase), parent: null, status: rollUp(features.map(f => f.status)), tasks: [], body: '' }, ...features)\n }\n return out\n}\n\nexport function starterRoadmap(): RoadmapDraft[] {\n const h = (key: string, title: string, status: RoadmapStatus, body: string): RoadmapDraft =>\n ({ key, title, parent: null, status, tasks: [], body })\n return [\n h('shipped', 'Shipped', 'done', 'What is already live.'),\n h('now', 'Now', 'planned', 'What we are building right now.'),\n h('next', 'Next', 'planned', 'Planned once the current work ships.'),\n h('later', 'Later', 'planned', 'Ideas — not committed.'),\n ]\n}\n","// Pure plan model for \"plan from the chat\": the agent proposes, the user reviews, the server applies.\n// No fs here; core.applyPlan() does the writing. Self-check: node src/lib/plan.check.mts\nimport type { RoadmapItem, RoadmapStatus } from './core'\n\nexport interface PlanTask {\n key: string // stable within the plan, e.g. \"t1\"; becomes a T id on apply\n title: string\n size?: string // \"S (~1 hr)\" | \"M (2–3 hrs)\" | \"L (half day)\"\n dependsOn?: string[] // keys in this plan, or existing task ids (\"T030\")\n due?: string // YYYY-MM-DD\n body: string // full markdown below the meta block: Goal, Context, Scope, Files, …\n}\nexport interface PlanHorizon { key: string; title: string; body?: string }\nexport interface PlanEpic { key: string; title: string; parent: string; status?: RoadmapStatus; body: string } // parent: existing horizon id or a horizon key\nexport interface PlanNewEpic { title: string; parent: string; body: string } // parent: existing horizon id\n/** breakdown: exactly one of `epic` (existing) or `newEpic`, or neither (loose tasks, no Phase). */\nexport type Plan =\n | { kind: 'breakdown'; epic?: string; newEpic?: PlanNewEpic; tasks: PlanTask[] }\n | { kind: 'roadmap'; horizons: PlanHorizon[]; epics: PlanEpic[] }\n\nexport interface PlanContext { roadmap: RoadmapItem[]; taskIds: string[] }\n\n/** A real calendar date \"YYYY-MM-DD\" (rejects 2026-02-30), else null. Same rule as core's parseDue. */\nfunction isDate(raw: string): boolean {\n const m = raw.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/)\n if (!m) return false\n return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3])).toISOString().slice(0, 10) === raw\n}\n\nconst isObj = (v: unknown): v is Record<string, unknown> => !!v && typeof v === 'object' && !Array.isArray(v)\nconst str = (v: unknown) => (typeof v === 'string' ? v.trim() : '')\n\n/** Where a breakdown's tasks go, for one-line summaries: \"R002\", `new epic \"X\"`, or \"no epic\". */\nexport function planTarget(plan: Extract<Plan, { kind: 'breakdown' }>): string {\n if (str(plan.epic)) return str(plan.epic).toUpperCase()\n return plan.newEpic ? `new epic \"${str(plan.newEpic.title)}\"` : 'no epic'\n}\n\n/** An existing roadmap item that can parent an epic (a horizon), else the reason it can't. */\nfunction resolveHorizon(parent: string, roadmap: RoadmapItem[], missing = 'is not an existing roadmap item'): { id: string } | { error: string } {\n const p = roadmap.find(r => r.id === parent.toUpperCase())\n if (!p) return { error: `parent \"${parent}\" ${missing}` }\n if (p.parent !== null) return { error: `parent ${p.id} is an epic, not a horizon (max depth is 2)` }\n return { id: p.id }\n}\n\n/** Id of an existing item with this title under `parent` ('' = horizon level), case-insensitive. */\nconst titleTaken = (roadmap: RoadmapItem[], parent: string, title: string) =>\n roadmap.find(i => (i.parent ?? '') === parent && i.title.trim().toLowerCase() === title.toLowerCase())?.id\n\n/**\n * Just enough shape for the chat UI to render a proposal before the server has validated it\n * (the tool_use streams in before its tool_result). Returns null for anything a card can't draw.\n */\nexport function asRenderablePlan(p: unknown): Plan | null {\n if (!isObj(p)) return null\n const items = (v: unknown, need: string[]) => Array.isArray(v) && v.every(x =>\n isObj(x) && need.every(k => typeof x[k] === 'string') && (x.dependsOn === undefined || Array.isArray(x.dependsOn)))\n if (p.kind === 'breakdown') {\n const target = p.epic === undefined || typeof p.epic === 'string'\n const newEpic = p.newEpic === undefined || (isObj(p.newEpic) && typeof p.newEpic.title === 'string' && typeof p.newEpic.parent === 'string')\n return target && newEpic && items(p.tasks, ['key', 'title']) && (p.tasks as unknown[]).length > 0\n ? (p as unknown as Plan) : null\n }\n if (p.kind === 'roadmap') {\n const horizons = p.horizons ?? [], epics = p.epics ?? []\n return items(horizons, ['key', 'title']) && items(epics, ['key', 'title', 'parent'])\n ? ({ kind: 'roadmap', horizons, epics } as Plan) : null\n }\n return null\n}\n\n/** Every problem with the plan against the current files; [] = valid. */\nexport function validatePlan(plan: unknown, ctx: PlanContext): string[] {\n if (!isObj(plan)) return ['plan must be an object']\n if (plan.kind === 'roadmap') return validateRoadmapPlan(plan, ctx)\n if (plan.kind !== 'breakdown') return [`plan.kind must be \"breakdown\" or \"roadmap\" (got ${JSON.stringify(plan.kind)})`]\n\n const errors: string[] = []\n const epicId = str(plan.epic).toUpperCase()\n if (plan.epic !== undefined && typeof plan.epic !== 'string') errors.push('epic must be a string (an epic id)')\n else if (epicId && plan.newEpic !== undefined) errors.push('pass either epic (an existing epic) or newEpic, not both')\n else if (epicId) {\n const epic = ctx.roadmap.find(i => i.id === epicId)\n if (!epic) errors.push(`Epic ${JSON.stringify(plan.epic)} not found`)\n else if (!epic.parent) errors.push(`${epic.id} is a horizon, not an epic; pass an epic id`)\n } else if (plan.newEpic !== undefined) {\n const e = plan.newEpic\n if (!isObj(e)) errors.push('newEpic must be an object { title, parent, body }')\n else {\n const title = str(e.title), parent = str(e.parent)\n if (!title) errors.push('newEpic: title is required')\n if (typeof e.body !== 'string') errors.push('newEpic: body must be a markdown string')\n if (!parent) errors.push('newEpic: parent is required (an existing horizon id)')\n else {\n const h = resolveHorizon(parent, ctx.roadmap)\n if ('error' in h) errors.push(`newEpic: ${h.error}`)\n else if (title) {\n const other = titleTaken(ctx.roadmap, h.id, title)\n if (other) errors.push(`newEpic: \"${title}\" already exists under ${h.id} (${other})`)\n }\n }\n }\n }\n\n if (!Array.isArray(plan.tasks) || plan.tasks.length === 0) {\n errors.push('tasks must be a non-empty array')\n return errors\n }\n const tasks = plan.tasks as unknown[]\n const existing = new Set(ctx.taskIds.map(t => t.toUpperCase()))\n\n const index = new Map<string, number>()\n tasks.forEach((t, i) => {\n const key = isObj(t) ? str(t.key) : ''\n if (!key) errors.push(`task #${i + 1}: key is required`)\n else if (index.has(key)) errors.push(`duplicate key \"${key}\"`)\n else index.set(key, i)\n })\n\n const deps = new Map<string, string[]>() // key → plan keys it depends on\n tasks.forEach((t, i) => {\n if (!isObj(t)) { errors.push(`task #${i + 1} must be an object`); return }\n const label = str(t.key) || `task #${i + 1}`\n if (!str(t.title)) errors.push(`${label}: title is required`)\n if (typeof t.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n if (t.size !== undefined && typeof t.size !== 'string') errors.push(`${label}: size must be a string`)\n if (t.due !== undefined && !(typeof t.due === 'string' && isDate(t.due))) {\n errors.push(`${label}: due must be a date YYYY-MM-DD (got ${JSON.stringify(t.due)})`)\n }\n if (t.dependsOn === undefined) return\n if (!Array.isArray(t.dependsOn)) { errors.push(`${label}: dependsOn must be an array`); return }\n const own: string[] = []\n for (const d of t.dependsOn) {\n const dep = str(d)\n if (index.has(dep)) own.push(dep)\n else if (!existing.has(dep.toUpperCase())) {\n errors.push(`${label}: dependsOn \"${String(d)}\" is neither a key in this plan nor an existing task`)\n }\n }\n if (str(t.key)) deps.set(str(t.key), own)\n })\n\n // Cycles (DFS, report each once), then forward references: apply creates in order,\n // so a dependency must come earlier in the list to already have its T id.\n const state = new Map<string, 'open' | 'done'>()\n const cyclic = new Set<string>()\n const visit = (k: string, stack: string[]) => {\n if (state.get(k) === 'done') return\n if (state.get(k) === 'open') {\n const cycle = [...stack.slice(stack.indexOf(k)), k]\n if (!cycle.some(c => cyclic.has(c))) errors.push(`dependency cycle: ${cycle.join(' → ')}`)\n cycle.forEach(c => cyclic.add(c))\n return\n }\n state.set(k, 'open')\n for (const d of deps.get(k) ?? []) visit(d, [...stack, k])\n state.set(k, 'done')\n }\n for (const k of deps.keys()) visit(k, [])\n for (const [k, ds] of deps) {\n if (cyclic.has(k)) continue\n for (const d of ds) {\n if ((index.get(d) ?? 0) > (index.get(k) ?? 0)) errors.push(`${k} depends on ${d}, which comes later; list ${d} first`)\n }\n }\n return errors\n}\n\nconst STATUSES = ['planned', 'in-progress', 'done']\n\nfunction validateRoadmapPlan(plan: Record<string, unknown>, ctx: PlanContext): string[] {\n const errors: string[] = []\n const horizons = plan.horizons ?? []\n const epics = plan.epics ?? []\n if (!Array.isArray(horizons)) errors.push('horizons must be an array')\n if (!Array.isArray(epics)) errors.push('epics must be an array')\n if (errors.length > 0) return errors\n const hs = horizons as unknown[]\n const es = epics as unknown[]\n if (hs.length + es.length === 0) return ['a roadmap plan needs at least one horizon or epic']\n\n const keys = new Set<string>()\n const horizonKeys = new Set<string>()\n const checkKey = (v: unknown, label: string, isHorizon: boolean) => {\n const key = isObj(v) ? str(v.key) : ''\n if (!key) errors.push(`${label}: key is required`)\n else if (keys.has(key)) errors.push(`duplicate key \"${key}\"`)\n else { keys.add(key); if (isHorizon) horizonKeys.add(key) }\n }\n hs.forEach((h, i) => checkKey(h, `horizon #${i + 1}`, true))\n es.forEach((e, i) => checkKey(e, `epic #${i + 1}`, false))\n\n // Titles are unique per level (spine, or one horizon), against existing items and within the plan.\n const seen = new Map<string, string>() // \"parent\\0title\" → who in this plan has it\n const claimTitle = (parent: string, title: string, label: string) => {\n const k = `${parent}\\0${title.toLowerCase()}`\n const other = titleTaken(ctx.roadmap, parent, title) ?? seen.get(k)\n if (other) errors.push(`${label}: \"${title}\" already exists ${parent ? `under ${parent}` : 'as a horizon'} (${other})`)\n else seen.set(k, label)\n }\n\n hs.forEach((h, i) => {\n if (!isObj(h)) { errors.push(`horizon #${i + 1} must be an object`); return }\n const label = str(h.key) || `horizon #${i + 1}`\n const title = str(h.title)\n if (!title) errors.push(`${label}: title is required`)\n else claimTitle('', title, label)\n if (h.body !== undefined && typeof h.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n })\n\n es.forEach((e, i) => {\n if (!isObj(e)) { errors.push(`epic #${i + 1} must be an object`); return }\n const label = str(e.key) || `epic #${i + 1}`\n const title = str(e.title)\n if (!title) errors.push(`${label}: title is required`)\n if (typeof e.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n if (e.status !== undefined && !STATUSES.includes(e.status as string)) {\n errors.push(`${label}: status must be one of ${STATUSES.join(', ')} (got ${JSON.stringify(e.status)})`)\n }\n const parent = str(e.parent)\n let parentId = ''\n if (!parent) errors.push(`${label}: parent is required (an existing horizon id or a horizon key in this plan)`)\n else if (horizonKeys.has(parent)) parentId = parent\n else if (keys.has(parent)) errors.push(`${label}: parent \"${parent}\" is an epic in this plan; an epic's parent must be a horizon`)\n else {\n const h = resolveHorizon(parent, ctx.roadmap, 'is neither a horizon key in this plan nor an existing roadmap item')\n if ('id' in h) parentId = h.id\n else errors.push(`${label}: ${h.error}`)\n }\n if (title && parentId) claimTitle(parentId, title, label)\n })\n return errors\n}\n\n/** Keep only the selected items. A kept item depending on an unchecked one is an error. */\nexport function selectPlan(plan: Plan, selected: string[]): { plan: Plan; errors: string[] } {\n if (plan.kind === 'roadmap') return selectRoadmapPlan(plan, selected)\n const errors: string[] = []\n // Trim like validatePlan/applyPlan do, or \" t1 \" vs \"t1\" slips past the unchecked-dependency check\n const keys = new Set(plan.tasks.map(t => t.key.trim()))\n const sel = new Set(selected.map(k => k.trim()))\n for (const k of sel) if (!keys.has(k)) errors.push(`unknown key \"${k}\"`)\n const tasks = plan.tasks.filter(t => sel.has(t.key.trim()))\n if (tasks.length === 0) errors.push('nothing selected')\n for (const t of tasks) {\n for (const d of (t.dependsOn ?? []).map(d => d.trim())) {\n if (keys.has(d) && !sel.has(d)) errors.push(`${t.key.trim()} depends on ${d}, which you unchecked`)\n }\n }\n return { plan: { ...plan, tasks }, errors }\n}\n\nfunction selectRoadmapPlan(plan: Extract<Plan, { kind: 'roadmap' }>, selected: string[]): { plan: Plan; errors: string[] } {\n const errors: string[] = []\n const horizons = plan.horizons ?? []\n const epics = plan.epics ?? []\n const hKeys = new Set(horizons.map(h => h.key))\n const keys = new Set([...hKeys, ...epics.map(e => e.key)])\n const sel = new Set(selected)\n for (const k of sel) if (!keys.has(k)) errors.push(`unknown key \"${k}\"`)\n const keptH = horizons.filter(h => sel.has(h.key))\n const keptE = epics.filter(e => sel.has(e.key))\n if (keptH.length + keptE.length === 0) errors.push('nothing selected')\n for (const e of keptE) {\n const p = e.parent.trim()\n if (hKeys.has(p) && !sel.has(p)) errors.push(`${e.key} is under ${p}, which you unchecked; check ${p} or uncheck ${e.key}`)\n }\n return { plan: { ...plan, horizons: keptH, epics: keptE }, errors }\n}\n","/**\n * src/lib/roadmap-health.ts\n * Pure (no fs): roadmap progress + drift, shared by the Roadmap page and the MCP handler.\n * A feature's expected status comes from its linked tasks; a horizon's from its features.\n */\n\nimport type { RoadmapItem, RoadmapStatus, Task } from './core'\n\n/** What health needs from a task: status for progress, due for at-risk. */\nexport type TaskInfo = Pick<Task, 'status' | 'due'>\n\nexport interface RoadmapProgress { done: number; total: number }\n\nexport interface RoadmapDrift {\n id: string\n kind: 'status-mismatch' | 'missing-task' | 'overdue' | 'at-risk'\n message: string\n suggestedStatus?: RoadmapStatus\n}\n\nexport interface RoadmapHealth {\n progress: Record<string, RoadmapProgress>\n drift: RoadmapDrift[]\n}\n\nexport type DueState = 'overdue' | 'soon' | 'ok' | 'done'\n\nconst SOON_DAYS = 7\n\n/** Local calendar date \"YYYY-MM-DD\" (due dates are calendar dates, not instants). */\nexport function localToday(now = new Date()): string {\n const p = (n: number) => String(n).padStart(2, '0')\n return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())}`\n}\n\nfunction daysBetween(from: string, to: string): number {\n const utc = (d: string) => Date.UTC(+d.slice(0, 4), +d.slice(5, 7) - 1, +d.slice(8, 10))\n return Math.round((utc(to) - utc(from)) / 86_400_000)\n}\n\nexport function dueState(due: string | null, status: RoadmapStatus, today: string): DueState | null {\n if (!due) return null\n if (status === 'done') return 'done'\n if (due < today) return 'overdue'\n return daysBetween(today, due) <= SOON_DAYS ? 'soon' : 'ok'\n}\n\ntype Started = 'done' | 'in-progress' | 'other'\n\nfunction expectedStatus(states: Started[]): RoadmapStatus {\n if (states.every(s => s === 'done')) return 'done'\n if (states.some(s => s !== 'other')) return 'in-progress'\n return 'planned'\n}\n\nexport interface TaskDueSummary { overdue: number; next: string | null }\n\n/** Open tasks' deadlines for a map node: how many are overdue, and the nearest upcoming due. */\nexport function taskDueSummary(taskIds: string[], tasks: Record<string, TaskInfo>, today: string): TaskDueSummary | null {\n const dues = taskIds\n .map(id => tasks[id])\n .filter(t => t && t.due && t.status !== 'done' && t.status !== 'cancelled')\n .map(t => t.due as string)\n if (!dues.length) return null\n const upcoming = dues.filter(d => d >= today).sort()\n return { overdue: dues.length - upcoming.length, next: upcoming[0] ?? null }\n}\n\n/** Why an unfinished epic may miss its date: overdue or blocked tasks, or due soon with nothing started. */\nfunction atRiskReasons(item: RoadmapItem, linked: string[], tasks: Record<string, TaskInfo>, today: string): string[] {\n const reasons: string[] = []\n for (const id of linked) {\n const t = tasks[id]\n if (t.status !== 'done' && t.due && t.due < today) reasons.push(`${id} overdue since ${t.due}`)\n if (t.status === 'blocked') reasons.push(`${id} blocked`)\n }\n const started = linked.some(id => ['done', 'in-progress', 'review'].includes(tasks[id].status))\n if (item.due && dueState(item.due, item.status, today) === 'soon' && !started) {\n reasons.push(`due ${item.due}, nothing started`)\n }\n return reasons\n}\n\nexport function roadmapHealth(\n items: RoadmapItem[], tasks: Record<string, TaskInfo>, today: string,\n): RoadmapHealth {\n const progress: Record<string, RoadmapProgress> = {}\n const drift: RoadmapDrift[] = []\n\n for (const item of items) {\n if (item.due && dueState(item.due, item.status, today) === 'overdue') {\n drift.push({ id: item.id, kind: 'overdue', message: `${item.id} \"${item.title}\" is overdue since ${item.due}` })\n }\n }\n const horizonIds = new Set(items.filter(i => i.parent === null).map(i => i.id))\n\n for (const item of items) {\n if (item.parent === null) continue\n const missing = item.tasks.filter(t => !(t in tasks))\n if (missing.length) {\n drift.push({ id: item.id, kind: 'missing-task', message: `${item.id} links unknown task ${missing.join(', ')}` })\n }\n // cancelled tasks don't count toward progress or expected status\n const linked = item.tasks.filter(t => t in tasks && tasks[t].status !== 'cancelled')\n // a paused epic is stopped on purpose: not at risk\n const risks = item.status === 'done' || item.status === 'paused' ? [] : atRiskReasons(item, linked, tasks, today)\n if (risks.length) {\n drift.push({ id: item.id, kind: 'at-risk', message: `${item.id} \"${item.title}\" at risk: ${risks.join('; ')}` })\n }\n if (!linked.length) continue\n const states: Started[] = linked.map(t =>\n tasks[t].status === 'done' ? 'done' : tasks[t].status === 'in-progress' || tasks[t].status === 'review' ? 'in-progress' : 'other')\n progress[item.id] = { done: states.filter(s => s === 'done').length, total: linked.length }\n const expected = expectedStatus(states)\n // paused stays paused until everything is done\n if (expected !== item.status && !(item.status === 'paused' && expected !== 'done')) {\n const open = linked.filter(t => tasks[t].status !== 'done')\n drift.push({\n id: item.id,\n kind: 'status-mismatch',\n message: expected === 'done'\n ? `${item.id} \"${item.title}\": all tasks done but status is ${item.status}`\n : `${item.id} \"${item.title}\" is ${item.status} but tasks ${open.join(', ')} are not done`,\n suggestedStatus: expected,\n })\n }\n }\n\n for (const h of items) {\n if (!horizonIds.has(h.id)) continue\n const kids = items.filter(i => i.parent === h.id)\n if (!kids.length) continue\n const states: Started[] = kids.map(k => k.status === 'done' ? 'done' : k.status === 'in-progress' ? 'in-progress' : 'other')\n // weight by tasks; an epic not broken down yet counts as one unit\n progress[h.id] = kids.reduce((sum, k) => {\n const p = progress[k.id] ?? { done: k.status === 'done' ? 1 : 0, total: 1 }\n return { done: sum.done + p.done, total: sum.total + p.total }\n }, { done: 0, total: 0 })\n const expected = expectedStatus(states)\n if (expected !== h.status && !(h.status === 'paused' && expected !== 'done')) {\n drift.push({\n id: h.id,\n kind: 'status-mismatch',\n message: `${h.id} \"${h.title}\" is ${h.status} but its features say ${expected}`,\n suggestedStatus: expected,\n })\n }\n }\n\n return { progress, drift }\n}\n","/**\n * src/lib/core.ts\n * All file-system operations. Used by API routes, MCP handler, and SSR.\n * Runs server-side only.\n */\n\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { glob } from 'glob'\nimport { execFile } from 'child_process'\nimport { promisify } from 'util'\nimport { applyEdits, type TextEdit } from './diff'\nimport { roadmapFromMarkdown, roadmapFromTasks, starterRoadmap, type RoadmapDraft, type RoadmapSource } from './roadmap-import'\nimport { pickNextTask, type QueueResult } from './work-queue'\nimport { selectPlan, validatePlan, type Plan } from './plan'\nimport { SESSION_GAP_MS } from './sessions'\nimport { parseManualTests, setManualTests, toggleManualTest } from './manual-tests'\nimport { appendReviewEntry, type ReviewOutcome } from './review'\nimport type { SavedView } from './board-views'\nimport { parseOwner } from './owner'\nimport { DEFAULT_SIZE_DAYS, datesOnMove, type SizeDays } from './auto-dates'\nimport { resolveStatus, statusDefs, statusLine, type StatusDef } from './statuses'\nimport { localToday } from './roadmap-health'\nimport { docPriority, parsePriority, setDocProperty, type Priority } from './doc-priority'\nimport { DEFAULT_SESSION_BUDGET, fitToBudget, formatRelated, indexHits, rankEntries, taskQuery, type RecallHit } from './recall'\nimport { buildGraph, fileNode, type GraphItem, type MemoryGraph } from './memory-graph'\nimport { entrySlug, formatEntry, nextEntryId, normalizeEntryId, parseEntry, validateEntryInput, type Entry, type EntryInput, type EntryType } from './entries'\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type TaskStatus = 'todo' | 'in-progress' | 'review' | 'blocked' | 'paused' | 'done' | 'cancelled'\n\nexport interface Task {\n id: string\n title: string\n status: TaskStatus\n size: string\n phase: string\n dependsOn: string\n /** A project status (R055) this task is in; `status` then holds its category. Unset for built-ins. */\n customStatus?: string\n /** `**Owner:**` \"human\" | \"ai:<agent>\", null when unset (R055) */\n owner: string | null\n /** `**Priority:** P0–P3`, null when unset */\n priority: Priority | null\n /** Optional `**Due:** YYYY-MM-DD` (local calendar date, compare as string). */\n due: string | null\n /** `**Started:**` / `**Done:**` dates, stamped on status moves (R055) */\n started: string | null\n finished: string | null\n /** The `## Manual tests` checklist (R043), counted; null when the task has none */\n manualTests: { total: number; done: number } | null\n file: string\n raw?: string\n}\n\nexport interface TaskBoard {\n todo: Task[]\n 'in-progress': Task[]\n /** Optional step (R043): waiting for a human to approve or send back. Nothing requires it. */\n review: Task[]\n blocked: Task[]\n /** Stopped on purpose (R055): not claimable, not a met dependency */\n paused: Task[]\n done: Task[]\n cancelled: Task[]\n}\n\nexport interface DocFile {\n path: string\n section: string\n name: string\n /** `priority:` in the doc's frontmatter, null when unset */\n priority?: Priority | null\n}\n\nexport interface DescriptionCache {\n [path: string]: {\n description: string\n source: 'extracted' | 'ai'\n updatedAt: string\n }\n}\n\nexport interface ExplorerFile {\n path: string\n name: string\n section: string\n description: string\n source: 'extracted' | 'ai'\n updatedAt: string\n mtime: string\n}\n\nexport interface SearchResult {\n file: string\n hits: { line: number; text: string }[]\n totalHits: number\n}\n\nexport interface ActivityEvent {\n id: string\n timestamp: string\n type: 'task_updated' | 'decision_logged' | 'memory_updated' | 'doc_read' | 'session_start' | 'doc_created' | 'doc_updated' | 'doc_deleted' | 'doc_renamed' | 'registry_rebuilt' | 'roadmap_updated'\n actor: 'ai' | 'human'\n title: string\n detail?: string\n taskId?: string\n taskStatus?: TaskStatus\n sessionId?: string\n}\n\nexport interface Project {\n id: string\n name: string\n root: string\n hasVibedoc: boolean\n}\n\n// ─── Constants ────────────────────────────────────────────────────────────────\n\n/** Loose status text (\"Ready\", \"🔨 In-progress\", \"on hold\") → built-in category. Custom ids need the project's defs (resolveStatus). */\nexport function normalizeStatus(raw: string): TaskStatus {\n return resolveStatus(raw).status\n}\n\n// ─── Project detection ────────────────────────────────────────────────────────\n\nexport async function findRoot(startDir = process.cwd()): Promise<string> {\n let dir = path.resolve(startDir)\n for (let i = 0; i < 12; i++) {\n for (const marker of ['CLAUDE.md', 'AGENTS.md', 'docs/architecture', '.vibedoc']) {\n try { await fs.access(path.join(dir, marker)); return dir } catch {}\n }\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n return path.resolve(startDir)\n}\n\nexport function getConfiguredRoot(): string {\n return process.env.VIBEDOC_ROOT || process.cwd()\n}\n\n// ─── Multi-project: scan parent directories ───────────────────────────────────\n\nexport async function discoverProjects(searchBase?: string): Promise<Project[]> {\n const base = searchBase || path.dirname(getConfiguredRoot())\n const projects: Project[] = []\n\n try {\n const entries = await fs.readdir(base, { withFileTypes: true })\n for (const entry of entries) {\n if (!entry.isDirectory()) continue\n const dir = path.join(base, entry.name)\n let hasVibedoc = false\n for (const marker of ['CLAUDE.md', 'AGENTS.md', 'docs/architecture', '.vibedoc']) {\n try { await fs.access(path.join(dir, marker)); hasVibedoc = true; break } catch {}\n }\n if (hasVibedoc) {\n projects.push({ id: entry.name, name: entry.name, root: dir, hasVibedoc: true })\n }\n }\n } catch {}\n\n // Always ensure configured root is first\n const root = getConfiguredRoot()\n const name = path.basename(root)\n const existingIdx = projects.findIndex(p => p.root === root)\n if (existingIdx > 0) {\n const [existing] = projects.splice(existingIdx, 1)\n projects.unshift(existing)\n } else if (existingIdx === -1) {\n projects.unshift({ id: name, name, root, hasVibedoc: true })\n }\n\n return projects\n}\n\n// ─── Docs ─────────────────────────────────────────────────────────────────────\n\nexport async function listDocs(root: string): Promise<DocFile[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n\n // ponytail: reads every doc for its frontmatter; read only the head of each file if lists get slow\n return Promise.all(files.sort().map(async f => ({\n path: f,\n section: inferSection(f),\n name: path.basename(f, '.md'),\n priority: docPriority(await fs.readFile(path.join(root, f), 'utf8').catch(() => '')),\n })))\n}\n\n/** Sets (value) or removes (null) frontmatter properties of a doc; the rest of the file is untouched. */\nexport async function setDocProperties(docPath: string, props: Record<string, string | null>, root: string): Promise<void> {\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(path.resolve(root) + path.sep)) throw new Error('Path outside root')\n const content = await fs.readFile(fullPath, 'utf8')\n const next = Object.entries(props).reduce((c, [k, v]) => setDocProperty(c, k, v), content)\n if (next !== content) await fs.writeFile(fullPath, next, 'utf8')\n}\n\nfunction inferSection(f: string): string {\n if (!f.includes('/')) return 'root'\n if (f.startsWith('memory/')) return 'memory'\n if (f.startsWith('plans/')) return 'plans'\n if (f.includes('01-overview')) return 'overview'\n if (f.includes('02-high-level') || f.includes('high-level-design')) return 'high-level-design'\n if (f.includes('03-services') || f.includes('/services/')) return 'services'\n if (f.includes('04-data') || f.includes('/data/')) return 'data'\n if (f.includes('05-infra') || f.includes('/infrastructure/')) return 'infrastructure'\n if (f.includes('06-security') || f.includes('/security/')) return 'security'\n if (f.includes('07-observ') || f.includes('/observability/')) return 'observability'\n if (f.includes('08-resil') || f.includes('/resilience/')) return 'resilience'\n if (f.includes('decisions/') || f.includes('ADR')) return 'decisions'\n return 'other'\n}\n\nexport async function readDoc(query: string, root: string): Promise<{ path: string; content: string }> {\n const candidates = [\n path.join(root, query),\n path.join(root, `${query}.md`),\n path.join(root, 'docs', query),\n path.join(root, 'docs', `${query}.md`),\n path.join(root, 'docs', 'architecture', query),\n path.join(root, 'docs', 'architecture', `${query}.md`),\n path.join(root, 'memory', query),\n path.join(root, 'memory', `${query}.md`),\n path.join(root, 'plans', query),\n path.join(root, 'plans', `${query}.md`),\n ]\n\n for (const c of candidates) {\n try {\n const content = await fs.readFile(c, 'utf8')\n return { path: path.relative(root, c), content }\n } catch {}\n }\n\n // Glob fallback\n for (const pattern of [`**/${query}.md`, `**/${query}*.md`, `**/*${query}*.md`]) {\n const matches = await glob(pattern, {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n nocase: true,\n })\n if (matches.length > 0) {\n const content = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return { path: matches[0], content }\n }\n }\n\n throw new Error(`Doc not found: \"${query}\"`)\n}\n\nexport async function writeDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, content, 'utf8')\n}\n\n// Reads the doc at an exact path ('' if missing) and applies old_string→new_string edits.\n// dryRun validates without writing (used to check a proposal before the user sees it).\nexport async function editDoc(\n docPath: string,\n edits: TextEdit[],\n root: string,\n dryRun = false,\n): Promise<{ before: string; content: string }> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep)) throw new Error('Path outside root')\n const before = await fs.readFile(fullPath, 'utf8').catch((e: NodeJS.ErrnoException) => {\n if (e.code === 'ENOENT') return ''\n throw e\n })\n const result = applyEdits(before, edits)\n if ('error' in result) throw new Error(result.error)\n if (!dryRun) {\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, result.content, 'utf8')\n }\n return { before, content: result.content }\n}\n\nexport async function getContext(paths: string[], root: string): Promise<string> {\n const parts: string[] = []\n for (const p of paths) {\n try {\n const { content } = await readDoc(p, root)\n parts.push(`--- FILE: ${p} ---\\n\\n${content.trim()}`)\n } catch {\n // skip missing or unreadable files\n }\n }\n return parts.join('\\n\\n---\\n\\n')\n}\n\nexport async function createDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n try {\n await fs.access(fullPath)\n const err = new Error(`File already exists: ${docPath}`) as NodeJS.ErrnoException\n err.code = 'EEXIST'\n throw err\n } catch (e) {\n const nodeErr = e as NodeJS.ErrnoException\n if (nodeErr.code !== 'ENOENT') throw e\n }\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, content, 'utf8')\n await appendActivity(root, { type: 'doc_created', actor: 'human', title: `Created: ${docPath}`, detail: docPath })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n}\n\nexport async function searchDocs(query: string, root: string): Promise<SearchResult[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n const qLower = query.toLowerCase()\n const results: SearchResult[] = []\n\n for (const f of files) {\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n const lines = content.split('\\n')\n const hits = lines\n .map((line, i) => ({ line: i + 1, text: line.trim().slice(0, 120) }))\n .filter(h => h.text.toLowerCase().includes(qLower))\n if (hits.length > 0) results.push({ file: f, hits: hits.slice(0, 4), totalHits: hits.length })\n } catch {}\n }\n\n return results.sort((a, b) => b.totalHits - a.totalHits).slice(0, 20)\n}\n\n// ─── Tasks ────────────────────────────────────────────────────────────────────\n\nconst warnedStatuses = new Set<string>()\n\nfunction parseTaskFile(filePath: string, content: string, defs: StatusDef[]): Task {\n const lines = content.split('\\n')\n const filename = path.basename(filePath, '.md')\n const titleLine = lines.find(l => l.startsWith('# '))\n const title = (titleLine || '').replace(/^#+\\s*/, '').replace(/^T\\d+\\s*[:—–-]\\s*/i, '').trim() || filename\n\n // Only the head block under the H1 counts, so a `**Depends on:**` quoted in the body can't override it.\n const meta: Record<string, string> = {}\n for (const line of lines.slice(0, roadmapMetaEnd(lines))) {\n const m = line.match(/\\*\\*([^*]+):\\*\\*\\s*(.+)/)\n if (m) meta[m[1].toLowerCase().trim()] = m[2].trim()\n }\n\n const resolved = resolveStatus(meta['status'] || 'todo', defs)\n const warnKey = `${filePath}\\0${meta['status']}`\n if (resolved.unknown && !warnedStatuses.has(warnKey)) {\n // listTasks runs on every refresh: warn once per file + value per process\n warnedStatuses.add(warnKey)\n console.warn(`[vibedoc] ${filePath}: unknown status \"${meta['status']}\", shown as todo`)\n }\n const { status, customStatus } = resolved\n const idM = filename.match(/^(T\\d+)/i)\n const id = idM ? idM[1].toUpperCase() : filename.toUpperCase()\n\n const tests = parseManualTests(content)\n const manualTests = tests && { total: tests.total, done: tests.done }\n return { id, title, status, ...(customStatus && { customStatus }), size: meta['size'] || '', phase: meta['phase'] || '', dependsOn: meta['depends on'] || '', owner: parseOwner(meta['owner']), priority: parsePriority(meta['priority']), due: parseDue(meta['due'] || ''), started: parseDue(meta['started'] || ''), finished: parseDue(meta['done'] || ''), manualTests, file: filePath, raw: content }\n}\n\nexport async function listTasks(root: string): Promise<{ tasks: Task[]; board: TaskBoard }> {\n const { statuses } = await readProjectSettings(root)\n let files = await glob('plans/tasks/T*.md', { cwd: root, nodir: true })\n if (files.length === 0) files = await glob('plans/T*.md', { cwd: root, nodir: true })\n\n const tasks: Task[] = []\n for (const f of files.sort()) {\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n tasks.push(parseTaskFile(f, content, statuses))\n } catch {}\n }\n\n const board: TaskBoard = { todo: [], 'in-progress': [], review: [], blocked: [], paused: [], done: [], cancelled: [] }\n for (const t of tasks) {\n const col = (board[t.status] ? t.status : 'todo') as TaskStatus\n board[col].push(t)\n }\n return { tasks, board }\n}\n\nexport async function getTask(taskId: string, root: string): Promise<Task> {\n const { statuses } = await readProjectSettings(root)\n const id = taskId.toUpperCase().startsWith('T') ? taskId.toUpperCase() : `T${taskId}`\n for (const pattern of [`plans/tasks/${id}*.md`, `plans/${id}*.md`]) {\n const matches = await glob(pattern, { cwd: root, nodir: true })\n if (matches.length > 0) {\n const content = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return parseTaskFile(matches[0], content, statuses)\n }\n }\n throw new Error(`Task not found: ${taskId}`)\n}\n\n/**\n * Owner that a status change assigns (R055): an agent that starts a task takes it over;\n * a human move only fills an empty owner. Approve / send back pass no mover and leave it alone.\n */\nfunction ownerAfterMove(current: string | null, status: TaskStatus, mover?: { actor: 'ai' | 'human'; agent?: string }): string | null {\n if (!mover) return current\n if (mover.actor === 'ai') return status === 'in-progress' ? parseOwner(`ai:${mover.agent || 'agent'}`) ?? 'ai:agent' : current\n return current ?? 'human'\n}\n\n/**\n * The task settings from .vibedoc/settings.json (R055): `tasks.sizeDays` over the defaults (automatic due dates)\n * and `statuses` (custom statuses; the built-ins when unset).\n */\nexport async function readProjectSettings(root: string): Promise<{ sizeDays: SizeDays; statuses: StatusDef[]; sessionBudgetTokens: number }> {\n let s: { tasks?: { sizeDays?: SizeDays }; statuses?: unknown; memory?: { sessionBudgetTokens?: unknown } } | null = null\n try { s = JSON.parse(await fs.readFile(path.join(root, '.vibedoc', 'settings.json'), 'utf8')) } catch {}\n const budget = Number(s?.memory?.sessionBudgetTokens)\n return {\n sizeDays: { ...DEFAULT_SIZE_DAYS, ...(s?.tasks?.sizeDays ?? {}) }, statuses: statusDefs(s?.statuses),\n // R048: token cap for what vibedoc_read_memory returns\n sessionBudgetTokens: budget > 0 ? budget : DEFAULT_SESSION_BUDGET,\n }\n}\n\n/** Replace-or-insert (or remove, for '' / null) one `**Label:**` line inside the head meta block. */\nfunction withMetaLine(content: string, label: string, value: string | null): string {\n const lines = content.split('\\n')\n const end = roadmapMetaEnd(lines)\n const at = lines.slice(0, end).findIndex(l => l.toLowerCase().startsWith(`**${label.toLowerCase()}:**`))\n if (!value) { if (at >= 0) lines.splice(at, 1) }\n else if (at >= 0) lines[at] = `**${label}:** ${value}`\n else lines.splice(end, 0, `**${label}:** ${value}`)\n return lines.join('\\n')\n}\n\nexport async function updateTaskStatus(\n /** A built-in status, an alias, or one of the project's custom status ids */\n taskId: string, statusKey: string, root: string, actor: 'ai' | 'human' = 'human',\n /** Set by a board move or an agent claim / update; drives the owner (see ownerAfterMove) */\n mover?: { actor: 'ai' | 'human'; agent?: string },\n): Promise<{ task: Task; previousStatus: TaskStatus }> {\n const task = await getTask(taskId, root)\n const previousStatus = task.status\n const { statuses, sizeDays } = await readProjectSettings(root)\n const resolved = resolveStatus(statusKey, statuses)\n if (resolved.unknown) throw new RoadmapError(`Unknown status \"${statusKey}\" (expected ${statuses.map(d => d.id).join(' | ')})`)\n const newStatus = resolved.status\n const line = statusLine(statusKey, statuses)\n\n let content = task.raw!\n const statusPattern = /(\\*\\*Status:\\*\\*\\s*).+/\n if (statusPattern.test(content)) {\n content = content.replace(statusPattern, `$1${line}`)\n } else {\n content = content.replace(/^(#[^\\n]+\\n)/, `$1**Status:** ${line}\\n`)\n }\n\n const owner = ownerAfterMove(task.owner, newStatus, mover)\n if (owner !== task.owner) content = withMetaLine(content, 'Owner', owner)\n\n const dates = datesOnMove(newStatus, { due: task.due, started: task.started, done: task.finished }, task.size, localToday(), sizeDays)\n if (dates.due !== task.due) content = withMetaLine(content, 'Due', dates.due)\n if (dates.started !== task.started) content = withMetaLine(content, 'Started', dates.started)\n if (dates.done !== task.finished) content = withMetaLine(content, 'Done', dates.done)\n\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n\n // Append to activity log\n await appendActivity(root, {\n type: 'task_updated', actor,\n title: `${task.id} moved to ${newStatus}`,\n detail: task.title,\n taskId: task.id,\n taskStatus: newStatus,\n })\n\n const { customStatus: _old, ...rest } = task\n return { task: { ...rest, status: newStatus, ...(resolved.customStatus && { customStatus: resolved.customStatus }), owner, due: dates.due, started: dates.started, finished: dates.done, raw: content }, previousStatus }\n}\n\n/** Write (or replace) the task's `## Manual tests` checklist. `report` is a markdown checklist; plain lines become items. */\nexport interface TaskMetaPatch {\n title?: string\n size?: string\n phase?: string\n dependsOn?: string\n /** YYYY-MM-DD, or null / '' to remove the line */\n due?: string | null\n /** \"human\" | \"ai:<agent>\", or null / '' to remove the line */\n owner?: string | null\n /** P0–P3, or null / '' to remove the line */\n priority?: string | null\n}\n\nconst TASK_META_LABELS: [keyof Omit<TaskMetaPatch, 'title'>, string][] = [\n ['phase', 'Phase'], ['size', 'Size'], ['dependsOn', 'Depends on'], ['due', 'Due'], ['owner', 'Owner'], ['priority', 'Priority'],\n]\n\n/** Rewrite the H1 and the head meta block only; the body (manual tests, review, spec) stays byte-for-byte. */\nexport async function updateTaskMeta(\n taskId: string, patch: TaskMetaPatch, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<Task> {\n const task = await getTask(taskId, root)\n const oneLine = (v: string) => v.replace(/\\s+/g, ' ').trim()\n const lines = task.raw!.split('\\n')\n let end = roadmapMetaEnd(lines)\n\n if (patch.title !== undefined) {\n const title = oneLine(patch.title)\n if (!title) throw new RoadmapError('title must not be empty')\n const h1 = lines.findIndex(l => l.startsWith('# '))\n if (h1 >= 0) lines[h1] = `# ${task.id}: ${title}`\n else { lines.unshift(`# ${task.id}: ${title}`); end++ }\n }\n\n for (const [key, label] of TASK_META_LABELS) {\n const raw = patch[key]\n if (raw === undefined) continue\n let value = raw === null ? '' : oneLine(raw)\n if (key === 'due' && value) {\n const d = parseDue(value)\n if (!d) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(raw)})`)\n value = d\n }\n if (key === 'owner' && value) {\n const o = parseOwner(value)\n if (!o) throw new RoadmapError(`owner must be \"human\" or \"ai:<agent>\" (got ${JSON.stringify(raw)})`)\n value = o\n }\n if (key === 'priority' && value) {\n const p = parsePriority(value)\n if (!p) throw new RoadmapError(`priority must be P0, P1, P2 or P3 (got ${JSON.stringify(raw)})`)\n value = p\n }\n const at = lines.slice(0, end).findIndex(l => l.toLowerCase().startsWith(`**${label.toLowerCase()}:**`))\n if (!value && (key === 'due' || key === 'owner' || key === 'priority')) {\n if (at >= 0) { lines.splice(at, 1); end-- }\n continue\n }\n const line = `**${label}:** ${value || '—'}`\n if (at >= 0) lines[at] = line\n else { lines.splice(end, 0, line); end++ }\n }\n\n const content = lines.join('\\n')\n if (content === task.raw) return task\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n await appendActivity(root, { type: 'task_updated', actor, title: `${task.id} edited`, detail: task.title, taskId: task.id })\n return getTask(task.id, root)\n}\n\n/** Where a deleted task sat in an epic's **Tasks:** line, so Undo can put it back in place. */\nexport interface TaskLink { epic: string; index: number }\n\n/** Delete the task file and unlink it from every epic's **Tasks:** line. Returns the removed task (with raw) and its links. */\nexport function deleteTask(taskId: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<{ task: Task; links: TaskLink[] }> {\n return withTaskClaimLock(async () => {\n const task = await getTask(taskId, root)\n await fs.unlink(path.join(root, task.file))\n // Task lock, then roadmap lock: same order as applyPlan.\n const { items } = await listRoadmap(root)\n const links: TaskLink[] = []\n for (const epic of items.filter(i => i.tasks.includes(task.id))) {\n links.push({ epic: epic.id, index: epic.tasks.indexOf(task.id) })\n await updateRoadmapItem(epic.id, { tasks: epic.tasks.filter(t => t !== task.id) }, root, actor)\n }\n await appendActivity(root, { type: 'task_updated', actor, title: `${task.id} deleted`, detail: task.title, taskId: task.id })\n return { task, links }\n })\n}\n\n/** Move a task to an epic (or out of every epic): the epics' **Tasks:** lines and the task's **Phase:** follow. */\nexport async function setTaskEpic(taskId: string, epicId: string | null, root: string, actor: 'ai' | 'human' = 'human'): Promise<Task> {\n const task = await getTask(taskId, root)\n const { items } = await listRoadmap(root)\n const target = epicId ? items.find(i => i.id === epicId.trim().toUpperCase() && i.parent !== null) : undefined\n if (epicId && !target) throw new RoadmapError(`Epic not found: ${epicId}`)\n for (const e of items.filter(i => i.tasks.includes(task.id) && i.id !== target?.id)) {\n await updateRoadmapItem(e.id, { tasks: e.tasks.filter(t => t !== task.id) }, root, actor)\n }\n if (target && !target.tasks.includes(task.id)) await updateRoadmapItem(target.id, { tasks: [...target.tasks, task.id] }, root, actor)\n return updateTaskMeta(task.id, { phase: target ? `${target.id} — ${target.title}` : '' }, root, actor)\n}\n\nexport type BulkTaskAction = { status: string } | { epic: string | null } | { delete: true }\n\n/** One action over many tasks. Stops at the first failure; tasks before it keep the change. */\nexport async function bulkTasks(\n ids: string[], action: BulkTaskAction, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ deleted: { task: Task; links: TaskLink[] }[] }> {\n const deleted: { task: Task; links: TaskLink[] }[] = []\n for (const id of ids) {\n if ('status' in action) await updateTaskStatus(id, action.status, root, actor, { actor })\n else if ('epic' in action) await setTaskEpic(id, action.epic, root, actor)\n else if ('delete' in action) deleted.push(await deleteTask(id, root, actor))\n }\n return { deleted }\n}\n\n/** Only a plain `<dir>/<name>.md` path counts: no traversal, no subfolders. */\nfunction isFileIn(rel: unknown, dir: string, name: RegExp): rel is string {\n if (typeof rel !== 'string') return false\n const norm = path.posix.normalize(rel)\n return norm === rel && path.posix.dirname(norm) === dir && name.test(path.posix.basename(norm))\n}\n\n/** Undo for deleteTask: write the file back byte-for-byte (never over an existing one) and re-link it. */\nexport function restoreTask(file: unknown, raw: unknown, links: TaskLink[], root: string, actor: 'ai' | 'human' = 'human'): Promise<Task> {\n return withTaskClaimLock(async () => {\n if (!isFileIn(file, 'plans/tasks', /^T\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid task to restore')\n const id = path.basename(file).match(/^(T\\d+)/i)![1].toUpperCase()\n if (await getTask(id, root).then(() => true, () => false)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, 'plans/tasks'), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n const { items } = await listRoadmap(root)\n for (const link of Array.isArray(links) ? links : []) {\n const epic = items.find(i => i.id === link?.epic)\n if (!epic || epic.tasks.includes(id)) continue\n const tasks = [...epic.tasks]\n tasks.splice(Math.max(0, Math.min(Number(link.index) || 0, tasks.length)), 0, id)\n await updateRoadmapItem(epic.id, { tasks }, root, actor)\n }\n await appendActivity(root, { type: 'task_updated', actor, title: `${id} restored`, taskId: id })\n return getTask(id, root)\n })\n}\n\nexport async function saveManualTests(taskId: string, report: string, root: string, actor: 'ai' | 'human' = 'ai'): Promise<Task> {\n const task = await getTask(taskId, root)\n const content = setManualTests(task.raw ?? '', report, actor, new Date().toISOString().slice(0, 10))\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return getTask(task.id, root)\n}\n\n/** The task isn't in the state an action needs (e.g. approving a task that isn't in review). Routes map it to 409. */\nexport class TaskStateError extends Error {}\n\nasync function reviewTask(taskId: string, outcome: ReviewOutcome, note: string, next: TaskStatus, root: string) {\n const task = await getTask(taskId, root)\n if (task.status !== 'review') throw new TaskStateError(`${task.id} is ${task.status}, not in review`)\n const at = new Date().toISOString().replace(/\\.\\d{3}Z$/, 'Z')\n const content = appendReviewEntry(task.raw ?? '', outcome, note, at)\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return updateTaskStatus(task.id, next, root, 'human')\n}\n\n/** Review → done, with an `approved` entry in the task's `## Review` section. */\nexport function approveTask(taskId: string, root: string, note = '') {\n return reviewTask(taskId, 'approved', note, 'done', root)\n}\n\n/** Review → todo (so vibedoc_next_task hands it out again), with the note as a `changes requested` entry. Note required. */\nexport function sendBackTask(taskId: string, note: string, root: string) {\n return reviewTask(taskId, 'changes requested', note, 'todo', root)\n}\n\n/** Tick or untick one manual test item (index in file order). Never changes the task status. Throws RangeError for a bad index. */\nexport async function setManualTestChecked(taskId: string, index: number, checked: boolean, root: string): Promise<Task> {\n const task = await getTask(taskId, root)\n const content = toggleManualTest(task.raw ?? '', index, checked)\n if (content !== task.raw) await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return getTask(task.id, root)\n}\n\n// ponytail: in-process mutex so two agents never claim the same task; separate from the roadmap lock.\n// Doesn't cover a second VibeDoc process on the same root.\nlet taskClaimLock: Promise<unknown> = Promise.resolve()\nfunction withTaskClaimLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = taskClaimLock.then(fn, fn)\n taskClaimLock = run.catch(() => {})\n return run\n}\n\n/** Atomically pick the next ready task of an epic and move it to in-progress. */\nexport function claimNextTask(\n epicId: string, root: string, agent?: string\n): Promise<{ result: QueueResult; task?: Task; previousStatus?: TaskStatus }> {\n return withTaskClaimLock(async () => {\n const epic = await getRoadmapItem(epicId, root)\n if (!epic.parent) throw new Error(`${epic.id} is a horizon; pass an epic id`)\n const { tasks } = await listTasks(root)\n const result = pickNextTask(epic, tasks)\n if (result.kind !== 'ready') return { result }\n const { task, previousStatus } = await updateTaskStatus(result.taskId, 'in-progress', root, 'ai', { actor: 'ai', agent })\n return { result, task, previousStatus }\n })\n}\n\nexport interface CreateTaskParams {\n title: string\n phase?: string\n size?: string\n description?: string\n dependsOn?: string\n due?: string\n body?: string // replaces the template sections below the meta block\n}\n\n/** Serialized with next_task claims and plan applies, so concurrent creates never pick the same id. */\nexport function createTask(params: CreateTaskParams, root: string): Promise<Task> {\n return withTaskClaimLock(() => createTaskUnlocked(params, root))\n}\n\n/** Caller must hold withTaskClaimLock (applyPlan does). */\nasync function createTaskUnlocked(params: CreateTaskParams, root: string): Promise<Task> {\n const { tasks } = await listTasks(root)\n // One line only: a newline in the title would inject **Key:** lines into the meta block\n const title = params.title.replace(/\\s+/g, ' ').trim()\n\n const ids = tasks\n .map(t => parseInt(t.id.replace(/^T/i, ''), 10))\n .filter(n => !isNaN(n))\n const nextNum = ids.length > 0 ? Math.max(...ids) + 1 : 1\n const id = `T${String(nextNum).padStart(3, '0')}`\n\n const slug = title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, '')\n .slice(0, 40) || 'task'\n\n const filename = `${id}-${slug}.md`\n const tasksDir = path.join(root, 'plans', 'tasks')\n await fs.mkdir(tasksDir, { recursive: true })\n const filePath = path.join(tasksDir, filename)\n\n let due = params.due ? parseDue(params.due) : null\n if (params.due && !due) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(params.due)})`)\n // A new task in an epic with a deadline takes the epic's due (R055)\n const epicId = params.phase?.trim().match(/^(R\\d+)\\b/i)?.[1]\n if (!due && epicId) due = (await getRoadmapItem(epicId, root).catch(() => null))?.due ?? null\n\n const meta = `# ${id}: ${title}\n**Status:** 📋 Ready\n**Phase:** ${params.phase || '—'}\n**Size:** ${params.size || '—'}\n**Depends on:** ${params.dependsOn || '—'}\n${due ? `**Due:** ${due}\\n` : ''}`\n const content = params.body !== undefined ? `${meta}\\n${params.body.trim()}\\n` : `${meta}\n## What to build\n${params.description || '—'}\n\n## Scope\n- [ ]\n\n## Acceptance criteria\n- [ ]\n\n## Definition of done\n—\n`\n\n await fs.writeFile(filePath, content, { flag: 'wx', encoding: 'utf8' })\n return getTask(id, root)\n}\n\n/** Validate against the current files, then keep the selected keys. Throws RoadmapError on any problem. */\nfunction checkPlan(plan: unknown, selected: unknown, items: RoadmapItem[], taskIds: string[]): Plan {\n const errors = validatePlan(plan, { roadmap: items, taskIds })\n if (errors.length > 0) throw new RoadmapError(errors.join('\\n'))\n if (!Array.isArray(selected)) throw new RoadmapError('selected must be an array of plan keys')\n const { plan: sel, errors: selErrors } = selectPlan(plan as Plan, selected.map(String))\n if (selErrors.length > 0) throw new RoadmapError(selErrors.join('\\n'))\n return sel\n}\n\n/**\n * Write the selected items of a plan. Validates again against the current files.\n * breakdown: plan keys become real T ids in order (so `dependsOn` keys are written as those ids) and are\n * linked to the epic (an existing one, or `newEpic` created first; neither = loose tasks, no Phase); runs under the task-claim lock so ids can't collide with next_task or another apply.\n * roadmap: horizons first (keys → R ids), then epics under their resolved parent; order and status use\n * createRoadmapItem's defaults (after the last sibling, step 10; planned). Runs under the roadmap lock.\n * `epic` is the breakdown's epic, null for a roadmap plan or loose tasks.\n */\nexport function applyPlan(\n plan: unknown, selected: unknown, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ created: { key: string; id: string; file: string }[]; epic: RoadmapItem | null }> {\n if ((plan as { kind?: unknown } | null)?.kind === 'roadmap') {\n return withRoadmapLock(async () => {\n const [items, { tasks }] = await Promise.all([readRoadmapFiles(root), listTasks(root)])\n const sel = checkPlan(plan, selected, items.map(f => f.item), tasks.map(t => t.id))\n if (sel.kind !== 'roadmap') throw new RoadmapError('expected a roadmap plan')\n const ids = new Map<string, string>()\n const created: { key: string; id: string; file: string }[] = []\n // ponytail: not atomic; a failure mid-way leaves the items written so far (each is a valid item).\n for (const h of sel.horizons) {\n const item = await createRoadmapItemUnlocked({ title: h.title.trim(), body: h.body }, root, actor)\n ids.set(h.key.trim(), item.id)\n created.push({ key: h.key, id: item.id, file: item.file })\n }\n for (const e of sel.epics) {\n const parent = ids.get(e.parent.trim()) ?? e.parent.trim().toUpperCase()\n const item = await createRoadmapItemUnlocked({ title: e.title.trim(), parent, status: e.status, body: e.body }, root, actor)\n created.push({ key: e.key, id: item.id, file: item.file })\n }\n return { created, epic: null }\n })\n }\n return withTaskClaimLock(async () => {\n const [{ items }, { tasks }] = await Promise.all([listRoadmap(root), listTasks(root)])\n const sel = checkPlan(plan, selected, items, tasks.map(t => t.id))\n if (sel.kind !== 'breakdown') throw new RoadmapError('expected a breakdown plan')\n\n // Roadmap lock inside the task lock: same order as updateRoadmapItem below.\n // ponytail: not atomic; a failure after the new epic is written leaves it with no tasks.\n const epic = sel.epic?.trim() ? await getRoadmapItem(sel.epic, root)\n : sel.newEpic ? await createRoadmapItem({\n title: sel.newEpic.title.trim(), parent: sel.newEpic.parent.trim().toUpperCase(), body: sel.newEpic.body,\n }, root, actor)\n : null\n const ids = new Map<string, string>()\n const created: { key: string; id: string; file: string }[] = []\n for (const t of sel.tasks) {\n const deps = (t.dependsOn ?? []).map(d => ids.get(d.trim()) ?? d.trim().toUpperCase())\n const task = await createTaskUnlocked({\n title: t.title.trim(),\n phase: epic ? `${epic.id} — ${epic.title}` : undefined,\n size: t.size,\n dependsOn: deps.join(', ') || undefined,\n due: t.due,\n body: t.body,\n }, root)\n ids.set(t.key.trim(), task.id)\n created.push({ key: t.key, id: task.id, file: task.file })\n }\n\n if (!epic) return { created, epic: null }\n const fresh = await getRoadmapItem(epic.id, root)\n const updated = await updateRoadmapItem(epic.id, { tasks: [...fresh.tasks, ...created.map(c => c.id)] }, root, actor)\n return { created, epic: updated }\n })\n}\n\n\n// ─── Decisions (ADRs) ─────────────────────────────────────────────────────────\n\nexport interface ADRParams {\n title: string\n context: string\n decision: string\n rationale?: string\n alternatives?: { option: string; reason: string }[]\n consequences?: string\n}\n\nexport async function logDecision(params: ADRParams, root: string, actor: 'ai' | 'human' = 'human'): Promise<{ adrNumber: string; path: string }> {\n const { title, context, decision, rationale, alternatives = [], consequences } = params\n const existing = await glob('docs/architecture/decisions/ADR-*.md', { cwd: root, nodir: true })\n const nums = existing.map(f => parseInt(path.basename(f).match(/ADR-(\\d+)/)?.[1] || '0')).filter(n => !isNaN(n))\n const nextNum = nums.length > 0 ? Math.max(...nums) + 1 : 1\n const numStr = String(nextNum).padStart(3, '0')\n const slug = title.toLowerCase().replace(/[^a-z0-9\\s-]/g, '').replace(/\\s+/g, '-').slice(0, 50)\n const filename = `ADR-${numStr}-${slug}.md`\n const today = new Date().toISOString().split('T')[0]\n const altsTable = alternatives.length > 0\n ? alternatives.map(a => `| ${a.option} | ${a.reason} |`).join('\\n')\n : '| (none) | — |'\n\n const content = `# ADR-${numStr}: ${title}\\n\\n**Status:** ✅ Accepted\\n**Date:** ${today}\\n\\n## Context\\n${context}\\n\\n## Decision\\n${decision}\\n\\n## Rationale\\n${rationale || ''}\\n\\n## Alternatives considered\\n| Option | Why rejected |\\n|--------|-------------|\\n${altsTable}\\n\\n## Consequences\\n${consequences || ''}\\n`\n\n const filePath = path.join(root, 'docs/architecture/decisions', filename)\n await fs.mkdir(path.dirname(filePath), { recursive: true })\n await fs.writeFile(filePath, content, 'utf8')\n\n // Update index\n const indexPath = path.join(root, 'docs/architecture/decisions/_INDEX.md')\n try {\n let idx = await fs.readFile(indexPath, 'utf8')\n idx = idx.trimEnd() + `\\n| ADR-${numStr} | ${title} | ✅ Accepted | ${today} |\\n`\n await fs.writeFile(indexPath, idx, 'utf8')\n } catch {\n await fs.writeFile(indexPath, `# ADR Index\\n\\n| ADR | Title | Status | Date |\\n|-----|-------|--------|------|\\n| ADR-${numStr} | ${title} | ✅ Accepted | ${today} |\\n`, 'utf8')\n }\n\n await appendActivity(root, {\n type: 'decision_logged', actor,\n title: `ADR-${numStr}: ${title}`,\n detail: decision.slice(0, 100),\n })\n\n return { adrNumber: `ADR-${numStr}`, path: `docs/architecture/decisions/${filename}` }\n}\n\n// ─── Memory ───────────────────────────────────────────────────────────────────\n\nexport interface MemoryParams {\n currentState: string\n justCompleted?: string[]\n workingOn?: string\n upNext?: string[]\n issues?: (string | { issue: string; severity?: string; status?: string })[]\n decisions?: string[]\n techDebt?: string[]\n handoff: string\n}\n\nexport async function readMemory(root: string): Promise<{ content: string; exists: boolean }> {\n try {\n const content = await fs.readFile(path.join(root, 'memory', 'MEMORY.md'), 'utf8')\n return { content, exists: true }\n } catch {\n return { content: '*(No MEMORY.md found — AI will create one at end of session)*', exists: false }\n }\n}\n\nexport async function updateMemory(params: MemoryParams, root: string, actor: 'ai' | 'human' = 'human'): Promise<void> {\n const { currentState, justCompleted = [], workingOn = '', upNext = [], issues = [], decisions = [], techDebt = [], handoff } = params\n const now = new Date()\n const today = now.toISOString().split('T')[0]\n const time = now.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })\n\n const content = `# Project Memory\\n**Last updated:** ${today} at ${time}\\n\\n## Current state\\n${currentState}\\n\\n## Just completed\\n${justCompleted.map(i => `- ${i}`).join('\\n') || '- (nothing this session)'}\\n\\n## Working on now\\n${workingOn || '(nothing active)'}\\n\\n## Up next\\n${upNext.map((item, i) => `${i + 1}. ${item}`).join('\\n') || '1. (define next steps)'}\\n\\n## Active issues\\n| Issue | Severity | Status |\\n|-------|----------|--------|\\n${issues.map(i => typeof i === 'string' ? `| ${i} | medium | open |` : `| ${i.issue} | ${i.severity || 'medium'} | ${i.status || 'open'} |`).join('\\n') || '| None | — | — |'}\\n\\n## Recent decisions\\n${decisions.map(d => `- ${d}`).join('\\n') || '- (none this session)'}\\n\\n## Tech debt\\n${techDebt.map(d => `- ${d}`).join('\\n') || '- (none noted)'}\\n\\n## Handoff for next session\\n${handoff}\\n`\n\n await fs.mkdir(path.join(root, 'memory'), { recursive: true })\n await fs.writeFile(path.join(root, 'memory', 'MEMORY.md'), content, 'utf8')\n\n await appendActivity(root, {\n type: 'memory_updated', actor,\n title: 'Session memory updated',\n detail: handoff.slice(0, 120),\n })\n}\n\n// ─── Knowledge entries (R046) ─────────────────────────────────────────────────\n\nconst ENTRIES_DIR = path.join('memory', 'entries')\n\n// ponytail: in-process mutex so two agents never get the same new id; doesn't cover a second VibeDoc process on the same root.\nlet entryLock: Promise<unknown> = Promise.resolve()\nfunction withEntryLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = entryLock.then(fn, fn)\n entryLock = run.catch(() => {})\n return run\n}\n\n/** Every parseable `memory/entries/*.md`, sorted by id. Missing folder → []. */\nexport async function listEntries(root: string): Promise<Entry[]> {\n let names: string[]\n try {\n names = await fs.readdir(path.join(root, ENTRIES_DIR))\n } catch {\n return []\n }\n const entries = await Promise.all(names.filter(n => n.endsWith('.md')).map(async n => {\n const file = path.join(ENTRIES_DIR, n)\n return parseEntry(await fs.readFile(path.join(root, file), 'utf8'), file)\n }))\n return entries.filter((e): e is Entry => !!e).sort((a, b) => a.id.localeCompare(b.id, 'en', { numeric: true }))\n}\n\nexport async function getEntry(id: string, root: string): Promise<Entry | null> {\n const norm = normalizeEntryId(id)\n return (await listEntries(root)).find(e => e.id === norm) ?? null\n}\n\n/**\n * Create (no id) or update (id) one entry. Throws with the validation message on bad input or an unknown id.\n * Stamps `**By:**`: \"human\", or \"ai:<agent>\" for an agent save (R047).\n */\nexport function saveEntry(input: EntryInput, root: string, actor: 'ai' | 'human' = 'human', agent?: string): Promise<Entry> {\n const error = validateEntryInput(input)\n if (error) return Promise.reject(new Error(error))\n return withEntryLock(async () => {\n const entries = await listEntries(root)\n let id: string\n let previous: Entry | undefined\n if (input.id !== undefined) {\n id = normalizeEntryId(String(input.id)) as string\n previous = entries.find(e => e.id === id)\n if (!previous) throw new Error(`Entry ${id} not found`)\n } else {\n id = nextEntryId(entries.map(e => e.id))\n }\n const summary = input.summary.trim()\n const entry: Entry = {\n id, type: input.type as EntryType, summary, body: (input.body ?? '').trim(),\n updatedAt: localToday(), by: actor === 'human' ? 'human' : parseOwner(`ai:${agent || 'agent'}`) ?? 'ai:agent',\n file: path.join(ENTRIES_DIR, `${id}-${entrySlug(summary)}.md`),\n }\n await fs.mkdir(path.join(root, ENTRIES_DIR), { recursive: true })\n await fs.writeFile(path.join(root, entry.file), formatEntry(entry), 'utf8')\n // Summary changed → new slug; the id stays\n if (previous && previous.file !== entry.file) await fs.rm(path.join(root, previous.file), { force: true })\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${id} saved`, detail: summary })\n return entry\n })\n}\n\n/** Entries in the order of `ids` (any case / padding), plus the ids that matched nothing. */\nexport async function getEntriesByIds(ids: string[], root: string): Promise<{ found: Entry[]; missing: string[] }> {\n const byId = new Map((await listEntries(root)).map(e => [e.id, e]))\n const found: Entry[] = []\n const missing: string[] = []\n for (const raw of ids) {\n const entry = byId.get(normalizeEntryId(String(raw)) ?? '')\n if (entry) found.push(entry)\n else missing.push(String(raw))\n }\n return { found, missing }\n}\n\n/** What an agent reads at session start: MEMORY.md + the entry index, capped at `memory.sessionBudgetTokens` (R048). */\nexport async function sessionStartMemory(root: string): Promise<string> {\n const [memory, entries, { sessionBudgetTokens }] = await Promise.all([readMemory(root), listEntries(root), readProjectSettings(root)])\n return fitToBudget(memory.content, indexHits(entries), sessionBudgetTokens).text\n}\n\n/** The \"## Related memory\" block for a task (up to `limit` strong keyword matches), or '' (R048). */\nexport async function relatedEntries(task: Pick<Task, 'title' | 'phase' | 'raw'>, root: string, limit = 3): Promise<string> {\n // rank everything so the score filter in formatRelated sees all candidates before the limit\n const entries = await listEntries(root)\n return formatRelated(rankEntries(entries, taskQuery(task), { limit: entries.length }), limit)\n}\n\n// ─── File history from git (R053) ─────────────────────────────────────────────\n\nconst execFileP = promisify(execFile)\nconst GIT_SHA_RE = /^[0-9a-f]{7,40}$/\nconst HISTORY_MAX = 50\n\n/** One commit that touched a file; `path` is its repo-relative path after that commit ('' if the commit only deleted it). */\nexport type FileCommit = { sha: string; author: string; date: string; subject: string; path: string }\n/** `reason: 'no-git'` when the project isn't a git repo or git is missing. */\nexport type FileHistory = { history: FileCommit[]; uncommitted: boolean; reason?: 'no-git' }\n\n/** git with an argument array (never a shell string), run in the project root. */\nasync function git(args: string[], root: string): Promise<string> {\n const { stdout } = await execFileP('git', args, { cwd: root, maxBuffer: 4 * 1024 * 1024 })\n return stdout\n}\n\nfunction relInsideRoot(relPath: string, root: string): string {\n const full = path.resolve(root, relPath)\n if (!full.startsWith(path.resolve(root) + path.sep)) throw new RoadmapError('Path outside root')\n return path.relative(root, full).split(path.sep).join('/')\n}\n\n/**\n * Commits that touched `relPath`, newest first, plus whether it has uncommitted changes.\n * An entry file (`E001-<slug>.md`) is matched by its id, not its name: a new summary renames the file, and small\n * files often fall under git's rename detection, so `--follow` would lose the history before the rename.\n */\nexport async function getFileHistory(relPath: string, root: string, limit = 20): Promise<FileHistory> {\n const rel = relInsideRoot(relPath, root)\n const id = /^(E\\d+)-[^/]*\\.md$/.exec(path.posix.basename(rel))?.[1]\n // ponytail: a deleted id that gets reused later shares this history; fine while ids are rarely reused\n const spec = id ? [`:(glob)${path.posix.dirname(rel)}/${id}-*.md`] : ['--follow', rel]\n try {\n const out = await git(['log', '--name-status', '--format=%x1e%H%x1f%an%x1f%aI%x1f%s', '-n', String(Math.min(limit, HISTORY_MAX)), ...(id ? ['--', ...spec] : [spec[0], '--', spec[1]])], root)\n const history = out.split('\\x1e').filter(r => r.trim()).map((record): FileCommit => {\n const [head, ...rest] = record.split('\\n')\n const [sha, author, date, subject] = head.split('\\x1f')\n // \"M\\tpath\", \"A\\tpath\", \"R087\\told\\tnew\", \"D\\tpath\": the path that exists after this commit (none if only deleted)\n const kept = rest.map(l => l.split('\\t')).filter(f => f.length > 1 && f[0] !== 'D').map(f => f[f.length - 1])\n return { sha, author, date, subject, path: kept[0] ?? '' }\n })\n const status = await git(['status', '--porcelain', '--', id ? spec[0] : rel], root)\n return { history, uncommitted: status.trim().length > 0 }\n } catch (e) {\n console.warn(`git history unavailable for ${rel}`, e instanceof Error ? e.message : e)\n return { history: [], uncommitted: false, reason: 'no-git' }\n }\n}\n\n/** The file's text at `sha`, using the path it had in that commit. Throws 400 on a bad sha, 404 if `sha` isn't in its history. */\nexport async function getFileAtCommit(relPath: string, sha: string, root: string): Promise<string> {\n if (!GIT_SHA_RE.test(sha)) throw new RoadmapError(`Invalid commit \"${sha}\"`)\n const { history } = await getFileHistory(relPath, root, HISTORY_MAX)\n const commit = history.find(c => c.sha.startsWith(sha))\n if (!commit) throw new RoadmapError(`Commit ${sha} did not touch ${relPath}`, 404)\n if (!commit.path) throw new RoadmapError(`The file was deleted in ${commit.sha.slice(0, 7)}`, 404)\n // commit.path is relative to the repo top level, which may be above root\n const top = (await git(['rev-parse', '--show-toplevel'], root)).trim()\n return git(['show', `${commit.sha}:${commit.path}`], top)\n}\n\n/** Keyword recall over the entries: compact hits, no bodies (R048). */\nexport async function recallEntries(query: string, opts: { type?: string; limit?: number }, root: string): Promise<RecallHit[]> {\n return rankEntries(await listEntries(root), query, opts)\n}\n\n/** Removes the file for good; git keeps its history. Throws on an unknown id. */\n/** Returns the deleted entry plus its file text, so a UI can undo (restoreEntry). */\nexport function deleteEntry(id: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<Entry & { raw: string }> {\n const norm = normalizeEntryId(String(id ?? ''))\n if (!norm) return Promise.reject(new Error(`Invalid id \"${id}\": expected E followed by a number, e.g. E001`))\n // ponytail: ids come from files on disk, so deleting the highest entry lets the next save reuse its id; git history is per path and the slug differs\n return withEntryLock(async () => {\n const entry = (await listEntries(root)).find(e => e.id === norm)\n if (!entry) throw new Error(`Entry ${norm} not found`)\n const raw = await fs.readFile(path.join(root, entry.file), 'utf8')\n await fs.rm(path.join(root, entry.file))\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${norm} deleted`, detail: entry.summary })\n return { ...entry, raw }\n })\n}\n\n/** Undo for deleteEntry: write the file back byte-for-byte, only as a plain memory/entries/E<n>-*.md and only if that id is free. */\nexport function restoreEntry(file: unknown, raw: unknown, root: string, actor: 'ai' | 'human' = 'human'): Promise<Entry> {\n return withEntryLock(async () => {\n if (!isFileIn(file, 'memory/entries', /^E\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid entry to restore')\n const entry = parseEntry(raw, file)\n const id = normalizeEntryId(path.basename(file).match(/^(E\\d+)/i)?.[1] ?? '')\n if (!entry || entry.id !== id) throw new RoadmapError('Invalid entry to restore')\n // the next save can reuse the highest id, so the id may be taken by now\n if ((await listEntries(root)).some(e => e.id === id)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, ENTRIES_DIR), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${id} restored`, detail: entry.summary })\n return entry\n })\n}\n\n// ─── Activity log ─────────────────────────────────────────────────────────────\n\nconst ACTIVITY_FILE = '.vibedoc-activity.json'\nconst ACTIVITY_CAP = 2000\n\n// ─── Description cache ────────────────────────────────────────────────────────\n\nconst DESCRIPTIONS_FILE = '.vibedoc-descriptions.json'\n\nexport async function readDescriptions(root: string): Promise<DescriptionCache> {\n try {\n const raw = await fs.readFile(path.join(root, DESCRIPTIONS_FILE), 'utf8')\n return JSON.parse(raw) as DescriptionCache\n } catch {\n return {}\n }\n}\n\nexport async function writeDescriptions(root: string, cache: DescriptionCache): Promise<void> {\n const filePath = path.join(root, DESCRIPTIONS_FILE)\n await fs.mkdir(path.dirname(filePath), { recursive: true })\n await fs.writeFile(filePath, JSON.stringify(cache, null, 2), 'utf8')\n}\n\nexport async function writeDescriptionEntry(\n root: string,\n filePath: string,\n entry: DescriptionCache[string]\n): Promise<void> {\n const normalizedKey = path.normalize(filePath).replace(/\\\\/g, '/')\n const cache = await readDescriptions(root)\n cache[normalizedKey] = entry\n await writeDescriptions(root, cache)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet _anthropic: any = null\n\nasync function getAnthropicClient(): Promise<any> {\n if (!_anthropic) {\n const { default: Anthropic } = await import('@anthropic-ai/sdk')\n _anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY })\n }\n return _anthropic\n}\n\nexport function extractDescription(content: string): string {\n const lines = content.split('\\n')\n let heading = ''\n\n for (const line of lines) {\n const m = line.match(/^#{1,3}\\s+(.+)/)\n if (m && !heading) {\n heading = m[1].trim().slice(0, 120)\n continue\n }\n const t = line.trim()\n if (\n t &&\n !t.startsWith('#') &&\n !t.startsWith('```') &&\n !t.startsWith('|') &&\n !t.startsWith('-') &&\n !t.startsWith('*') &&\n t.length > 20\n ) {\n return t.slice(0, 120)\n }\n }\n return heading\n}\n\nexport async function enrichDescription(filePath: string, root: string): Promise<string> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, filePath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n\n const client = await getAnthropicClient()\n const content = await fs.readFile(fullPath, 'utf8')\n\n const message = await client.messages.create({\n model: 'claude-haiku-4-5-20251001',\n max_tokens: 100,\n messages: [{\n role: 'user',\n content: `Write a single sentence (max 120 characters) describing what this file is about. Output ONLY the sentence, nothing else.\\n\\n${content.slice(0, 2000)}`,\n }],\n })\n\n const textBlock = message.content.find((b: { type: string }) => b.type === 'text') as { type: 'text'; text: string } | undefined\n if (!textBlock) throw new Error('No text block in Anthropic response')\n const description = textBlock.text.trim().slice(0, 120)\n\n await writeDescriptionEntry(root, filePath, { description, source: 'ai', updatedAt: new Date().toISOString() })\n\n return description\n}\n\nexport async function listExplorerFiles(root: string): Promise<ExplorerFile[]> {\n const docs = await listDocs(root)\n const cache = await readDescriptions(root)\n\n return Promise.all(docs.map(async (doc) => {\n const cached = cache[doc.path]\n let description = cached?.description ?? ''\n const source: 'extracted' | 'ai' = cached?.source ?? 'extracted'\n\n // Get mtime first so we can use it as updatedAt fallback\n let mtime = new Date().toISOString()\n try {\n const stat = await fs.stat(path.join(root, doc.path))\n mtime = stat.mtime.toISOString()\n } catch { /* ignore */ }\n\n const updatedAt = cached?.updatedAt ?? mtime\n\n if (!cached) {\n try {\n const content = await fs.readFile(path.join(root, doc.path), 'utf8')\n description = extractDescription(content)\n } catch { /* ignore */ }\n }\n\n return { path: doc.path, name: doc.name, section: doc.section, description, source, updatedAt, mtime }\n }))\n}\n\n// ponytail: current session per root+actor lives in memory (on globalThis so dev HMR keeps it); a server restart starts a new session.\nconst globalForSessions = globalThis as unknown as { vibedocSessions?: Map<string, { id: string; lastAt: number }> }\nconst currentSessions = globalForSessions.vibedocSessions ?? (globalForSessions.vibedocSessions = new Map())\n\nfunction stampSession(root: string, event: Omit<ActivityEvent, 'id' | 'timestamp'>, now: number): string {\n const key = `${root}\\0${event.actor}`\n let cur = currentSessions.get(key)\n if (!cur || event.type === 'session_start' || now - cur.lastAt > SESSION_GAP_MS) {\n cur = { id: `ses_${now}_${Math.random().toString(36).slice(2, 7)}`, lastAt: now }\n currentSessions.set(key, cur)\n }\n cur.lastAt = now\n return cur.id\n}\n\nasync function appendActivity(root: string, event: Omit<ActivityEvent, 'id' | 'timestamp'>): Promise<void> {\n const now = Date.now()\n const full: ActivityEvent = {\n id: `evt_${now}_${Math.random().toString(36).slice(2, 7)}`,\n timestamp: new Date(now).toISOString(),\n ...event,\n sessionId: stampSession(root, event, now),\n }\n\n const file = path.join(root, ACTIVITY_FILE)\n let events: ActivityEvent[] = []\n try {\n const raw = await fs.readFile(file, 'utf8')\n events = JSON.parse(raw)\n } catch {}\n\n events.unshift(full)\n if (events.length > ACTIVITY_CAP) events = events.slice(0, ACTIVITY_CAP)\n await fs.writeFile(file, JSON.stringify(events, null, 2), 'utf8')\n}\n\nconst DOC_EDIT_COALESCE_MS = 10 * 60_000\nconst DOC_EDIT_LOOKBACK = 50\n\n/**\n * Record who last saved a doc (R055 doc owner). Autosave fires every few seconds, so a save by the same\n * actor within 10 minutes of the newest event for that doc just moves that event's time forward.\n */\nexport async function noteDocEdit(root: string, docPath: string, actor: 'ai' | 'human'): Promise<void> {\n const file = path.join(root, ACTIVITY_FILE)\n let events: ActivityEvent[] = []\n try { events = JSON.parse(await fs.readFile(file, 'utf8')) } catch {}\n // Other events (an agent moving tasks) land in between, so look back a little, not just at the top\n const i = events.slice(0, DOC_EDIT_LOOKBACK).findIndex(e => e.type === 'doc_updated' && e.detail === docPath)\n const prev = i >= 0 ? events[i] : undefined\n if (prev && prev.actor === actor && Date.now() - Date.parse(prev.timestamp) < DOC_EDIT_COALESCE_MS) {\n // move it to the top with the new time, so the log stays newest-first\n events.splice(i, 1)\n events.unshift({ ...prev, timestamp: new Date().toISOString() })\n await fs.writeFile(file, JSON.stringify(events, null, 2), 'utf8')\n return\n }\n await appendActivity(root, { type: 'doc_updated', actor, title: `Edited ${docPath}`, detail: docPath })\n}\n\n/** Who last created or saved the doc, from the activity log; null when the log has nothing on it. */\nexport async function docLastEdit(root: string, docPath: string): Promise<{ actor: 'ai' | 'human'; at: string } | null> {\n const e = (await readActivity(root, ACTIVITY_CAP)).find(\n (x) => (x.type === 'doc_updated' || x.type === 'doc_created') && x.detail === docPath,\n )\n return e ? { actor: e.actor, at: e.timestamp } : null\n}\n\nexport async function readActivity(root: string, limit = 50): Promise<ActivityEvent[]> {\n try {\n const raw = await fs.readFile(path.join(root, ACTIVITY_FILE), 'utf8')\n const events: ActivityEvent[] = JSON.parse(raw)\n return events.slice(0, limit)\n } catch {\n return []\n }\n}\n\nexport async function logSessionStart(root: string, actor: 'ai' | 'human' = 'ai'): Promise<void> {\n await appendActivity(root, { type: 'session_start', actor, title: 'Session started', detail: 'Agent connected' })\n}\n\n// ─── Status summary ───────────────────────────────────────────────────────────\n\n// ─── Doc operations (append, rename, delete) ──────────────────────────────────\n\nexport async function appendDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n let existing: string\n try {\n existing = await fs.readFile(fullPath, 'utf8')\n } catch {\n throw new Error(`Doc not found: ${docPath}`)\n }\n await fs.writeFile(fullPath, existing.trimEnd() + '\\n\\n' + content, 'utf8')\n}\n\nexport async function renameDoc(oldPath: string, newPath: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullOld = path.resolve(root, oldPath)\n const fullNew = path.resolve(root, newPath)\n if (!fullOld.startsWith(resolvedRoot + path.sep) && fullOld !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n if (!fullNew.startsWith(resolvedRoot + path.sep) && fullNew !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n // fs.rename silently replaces an existing file\n if (fullNew !== fullOld && await fs.access(fullNew).then(() => true, () => false)) {\n throw new Error(`A file already exists at ${newPath}`)\n }\n await fs.mkdir(path.dirname(fullNew), { recursive: true })\n try {\n await fs.rename(fullOld, fullNew)\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === 'EXDEV') {\n await fs.copyFile(fullOld, fullNew)\n await fs.unlink(fullOld)\n } else throw e\n }\n await appendActivity(root, { type: 'doc_renamed', actor: 'human', title: `Renamed ${oldPath} → ${newPath}` })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n}\n\n/** Returns the removed content, so the client can offer Undo (re-create via createDoc). */\nexport async function deleteDoc(docPath: string, root: string): Promise<string> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n const content = await fs.readFile(fullPath, 'utf8')\n await fs.unlink(fullPath)\n await appendActivity(root, { type: 'doc_deleted', actor: 'human', title: `Deleted ${docPath}` })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n return content\n}\n\n// ─── Document Registry ────────────────────────────────────────────────────────\n\nconst REGISTRY_PATH = 'docs/REGISTRY.md'\nconst ANNOTATIONS_START = '<!-- REGISTRY_ANNOTATIONS_START -->'\nconst ANNOTATIONS_END = '<!-- REGISTRY_ANNOTATIONS_END -->'\n\nfunction buildDocTree(files: string[]): string {\n // Build a map of directories and files\n const tree: Map<string, string[]> = new Map()\n for (const f of files) {\n const dir = path.dirname(f)\n if (!tree.has(dir)) tree.set(dir, [])\n tree.get(dir)!.push(path.basename(f))\n }\n\n const lines: string[] = []\n const dirs = Array.from(tree.keys()).sort()\n\n // Build indented tree\n const rendered = new Set<string>()\n function renderDir(dir: string, indent: number) {\n if (rendered.has(dir)) return\n rendered.add(dir)\n const prefix = ' '.repeat(indent)\n if (dir !== '.') {\n const parts = dir.split('/')\n lines.push(`${prefix}${parts[parts.length - 1]}/`)\n }\n const childIndent = dir === '.' ? 0 : indent + 1\n const childPrefix = ' '.repeat(childIndent)\n // Files directly in this dir\n const dirFiles = tree.get(dir) || []\n for (const f of dirFiles.sort()) {\n lines.push(`${childPrefix}${f}`)\n }\n // Subdirs\n for (const d of dirs) {\n if (d !== dir && path.dirname(d) === dir) {\n renderDir(d, childIndent)\n }\n }\n }\n\n renderDir('.', 0)\n return lines.join('\\n')\n}\n\nfunction parseAnnotations(content: string): Map<string, { description: string; keywords: string }> {\n const map = new Map<string, { description: string; keywords: string }>()\n const start = content.indexOf(ANNOTATIONS_START)\n const end = content.indexOf(ANNOTATIONS_END)\n if (start === -1 || end === -1) return map\n\n const section = content.slice(start + ANNOTATIONS_START.length, end)\n const rows = section.split('\\n').filter(l => l.startsWith('|') && !l.includes('---') && !l.includes('Path'))\n for (const row of rows) {\n const cols = row.split('|').map(c => c.trim()).filter(Boolean)\n if (cols.length >= 3) {\n map.set(cols[0], { description: cols[1], keywords: cols[2] })\n }\n }\n return map\n}\n\nexport async function readRegistry(root: string): Promise<{ content: string; exists: boolean }> {\n try {\n const content = await fs.readFile(path.join(root, REGISTRY_PATH), 'utf8')\n return { content, exists: true }\n } catch {\n return { content: '*(No REGISTRY.md found — call vibedoc_rebuild_registry to generate it)*', exists: false }\n }\n}\n\nexport async function rebuildRegistry(root: string, actor: 'ai' | 'human' = 'human'): Promise<{ path: string; totalFiles: number }> {\n const docs = await listDocs(root)\n const files = docs.map(d => d.path)\n\n // Parse existing annotations\n let existing = ''\n try {\n existing = await fs.readFile(path.join(root, REGISTRY_PATH), 'utf8')\n } catch {}\n const savedAnnotations = parseAnnotations(existing)\n\n // Build tree\n const tree = buildDocTree(files)\n\n // Build annotations table — preserve existing, stub new files\n const rows: string[] = []\n for (const f of files) {\n const saved = savedAnnotations.get(f)\n rows.push(`| ${f} | ${saved?.description ?? ''} | ${saved?.keywords ?? ''} |`)\n }\n\n const now = new Date().toISOString()\n const content = [\n `# Document Registry`,\n `**Generated:** ${now} **Total:** ${files.length} files`,\n ``,\n `> Edit the Annotations table — it survives rebuilds.`,\n `> Run \\`vibedoc_rebuild_registry\\` after adding/removing docs.`,\n ``,\n `## File Tree`,\n `\\`\\`\\``,\n tree,\n `\\`\\`\\``,\n ``,\n `## Annotations`,\n ``,\n ANNOTATIONS_START,\n `| Path | Description | Keywords |`,\n `|------|-------------|----------|`,\n ...rows,\n ANNOTATIONS_END,\n ``,\n ].join('\\n')\n\n await writeDoc(REGISTRY_PATH, content, root)\n await appendActivity(root, {\n type: 'registry_rebuilt',\n actor,\n title: 'Document registry rebuilt',\n detail: `${files.length} files indexed`,\n })\n\n return { path: REGISTRY_PATH, totalFiles: files.length }\n}\n\nexport async function updateRegistryAnnotation(\n docPath: string, description: string, keywords: string, root: string\n): Promise<void> {\n const { content, exists } = await readRegistry(root)\n if (!exists) throw new Error('Registry not found — call vibedoc_rebuild_registry first')\n\n const annotations = parseAnnotations(content)\n annotations.set(docPath, { description, keywords })\n\n // Rebuild the annotations block with updated data\n const start = content.indexOf(ANNOTATIONS_START)\n const end = content.indexOf(ANNOTATIONS_END)\n if (start === -1 || end === -1) throw new Error('Registry format invalid — rebuild first')\n\n const rows = Array.from(annotations.entries())\n .map(([p, a]) => `| ${p} | ${a.description} | ${a.keywords} |`)\n\n const newAnnotationsBlock = [\n ANNOTATIONS_START,\n `| Path | Description | Keywords |`,\n `|------|-------------|----------|`,\n ...rows,\n ANNOTATIONS_END,\n ].join('\\n')\n\n const newContent = content.slice(0, start) + newAnnotationsBlock + content.slice(end + ANNOTATIONS_END.length)\n await writeDoc(REGISTRY_PATH, newContent, root)\n}\n\n// ─── Backlinks ─────────────────────────────────────────────────────────────────\n\nexport async function findBacklinks(\n targetPath: string,\n root: string\n): Promise<{ file: string; line: number; text: string }[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n const normalTarget = targetPath.replace(/\\\\/g, '/')\n const basename = path.basename(normalTarget)\n const results: { file: string; line: number; text: string }[] = []\n\n for (const f of files) {\n if (f.replace(/\\\\/g, '/') === normalTarget) continue\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n const lines = content.split('\\n')\n lines.forEach((line, i) => {\n if (/\\[.*\\]\\(.*\\)/.test(line) &&\n (line.includes(basename) || line.includes(normalTarget))) {\n results.push({ file: f, line: i + 1, text: line.trim().slice(0, 120) })\n }\n })\n } catch { /* skip unreadable */ }\n }\n return results\n}\n\n/**\n * The memory link graph (R053), built on request from the files: every entry, plus the tasks, roadmap items,\n * ADRs and docs an entry mentions or that mention an entry id. Pure resolution in src/lib/memory-graph.ts.\n */\nexport async function getMemoryGraph(root: string): Promise<MemoryGraph> {\n // ponytail: reads every .md on each call, like findBacklinks; cache by mtime if big repos make it slow\n const [entries, files] = await Promise.all([\n listEntries(root),\n glob('**/*.md', { cwd: root, ignore: ['node_modules/**', '.git/**', '.next/**', 'memory/entries/**'], nodir: true }),\n ])\n const others = await Promise.all(files.map(async (f): Promise<GraphItem | null> => {\n try {\n const raw = await fs.readFile(path.join(root, f), 'utf8')\n return { ...fileNode(f, raw), text: raw }\n } catch (e) {\n console.warn(`memory graph: skipped ${f}`, e)\n return null\n }\n }))\n return buildGraph(\n entries.map(e => ({ id: e.id, kind: 'entry', label: e.summary, path: e.file.replace(/\\\\/g, '/'), text: `${e.summary}\\n${e.body}` })),\n others.filter((o): o is GraphItem => !!o),\n )\n}\n\n// ─── Status summary ───────────────────────────────────────────────────────────\n\nexport async function getProjectSummary(root: string) {\n const [{ tasks, board }, docs, memory, activity] = await Promise.all([\n listTasks(root),\n listDocs(root),\n readMemory(root),\n readActivity(root, 10),\n ])\n\n return {\n root,\n name: path.basename(root),\n tasks: {\n total: tasks.length,\n board: { todo: board.todo.length, 'in-progress': board['in-progress'].length, review: board.review.length, blocked: board.blocked.length, done: board.done.length, cancelled: board.cancelled.length },\n active: board['in-progress'],\n blocked: board.blocked,\n },\n docs: { total: docs.length },\n memory,\n activity,\n }\n}\n\n\n// ─── Roadmap ──────────────────────────────────────────────────────────────────\n// Items: plans/roadmap/R*.md (content + Parent/Status/Order/Tasks).\n// Positions: plans/roadmap/layout.json (presentation only, never in R*.md).\n\nexport type RoadmapStatus = 'planned' | 'in-progress' | 'paused' | 'done'\n\nexport interface RoadmapItem {\n id: string // \"R004\"\n title: string\n parent: string | null // null = horizon on the spine\n status: RoadmapStatus\n order: number\n tasks: string[] // [\"T001\", \"T012\"]\n due: string | null // \"2026-10-15\" — a calendar date, not an instant; compare as strings\n owner: string | null // \"human\" | \"ai:<agent>\" (R055)\n priority: Priority | null // **Priority:** P0–P3\n body: string // markdown after the metadata block\n file: string // path relative to root\n}\n\nexport type RoadmapLayout = Record<string, { x: number; y: number }>\n\nexport interface CreateRoadmapItemParams {\n title: string\n parent?: string | null\n status?: RoadmapStatus\n order?: number\n tasks?: string[]\n due?: string | null\n owner?: string | null\n priority?: string | null\n body?: string\n}\n\nexport type UpdateRoadmapItemPatch = Partial<Omit<CreateRoadmapItemParams, 'title'> & { title: string }>\n\n\n/** Validation / not-found error from the roadmap API. `status` maps straight to an HTTP code. */\nexport class RoadmapError extends Error {\n constructor(message: string, public status: 400 | 404 = 400) {\n super(message)\n this.name = 'RoadmapError'\n }\n}\n\nconst ROADMAP_DIR = path.join('plans', 'roadmap')\nconst ROADMAP_LAYOUT = path.join(ROADMAP_DIR, 'layout.json')\nconst ROADMAP_STATUSES: RoadmapStatus[] = ['planned', 'in-progress', 'paused', 'done']\nconst META_LINE = /^\\*\\*([^*]+):\\*\\*/\n\nfunction normalizeRoadmapId(id: unknown): string {\n const s = String(id ?? '').trim().toUpperCase()\n if (!/^R\\d+$/.test(s)) throw new RoadmapError(`Invalid roadmap id: ${String(id)}`)\n return s\n}\n\nfunction roadmapIdOf(file: string): string | null {\n const m = path.basename(file).match(/^(R\\d+)(?:-|\\.md$)/i)\n return m ? m[1].toUpperCase() : null\n}\n\nfunction parseRoadmapStatus(raw: unknown): RoadmapStatus {\n const t = String(raw ?? '').toLowerCase().trim().replace(/\\s+/g, '-')\n const s = t === 'on-hold' ? 'paused' : t\n if (!ROADMAP_STATUSES.includes(s as RoadmapStatus)) {\n throw new RoadmapError(`Invalid status \"${String(raw)}\" (expected ${ROADMAP_STATUSES.join(' | ')})`)\n }\n return s as RoadmapStatus\n}\n\nfunction parseTaskIds(tasks: unknown): string[] {\n if (!Array.isArray(tasks)) throw new RoadmapError('tasks must be an array of task ids')\n return tasks.map(t => {\n const s = String(t).trim().toUpperCase()\n if (!/^T\\d+$/.test(s)) throw new RoadmapError(`Invalid task id: ${String(t)}`)\n return s\n })\n}\n\nfunction cleanTitle(title: unknown): string {\n const t = String(title ?? '').replace(/\\s+/g, ' ').trim()\n if (!t) throw new RoadmapError('Title is required')\n return t\n}\n\n/** A real calendar date \"YYYY-MM-DD\" (rejects 2026-02-30), else null. */\nfunction parseDue(raw: string): string | null {\n const m = raw.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/)\n if (!m) return null\n const d = new Date(Date.UTC(+m[1], +m[2] - 1, +m[3]))\n return d.toISOString().slice(0, 10) === raw ? raw : null\n}\n\nfunction cleanDue(due: unknown): string | null {\n if (due === null || due === '') return null\n const d = typeof due === 'string' ? parseDue(due.trim()) : null\n if (!d) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(due)})`)\n return d\n}\n\nfunction cleanOrder(order: unknown): number {\n const n = Number(order)\n if (typeof order !== 'number' || !Number.isFinite(n)) throw new RoadmapError('order must be a finite number')\n return n\n}\n\n/** Index of the first line after the H1 + contiguous `**Key:** Value` block. */\nfunction roadmapMetaEnd(lines: string[]): number {\n let i = lines.findIndex(l => l.startsWith('# '))\n i = i < 0 ? 0 : i + 1\n // Tolerate blank lines between the H1 and the meta block (common in hand-written files).\n let j = i\n while (j < lines.length && lines[j].trim() === '') j++\n if (j < lines.length && META_LINE.test(lines[j])) i = j\n while (i < lines.length && META_LINE.test(lines[i])) i++\n return i\n}\n\nfunction parseRoadmapFile(file: string, content: string): RoadmapItem {\n const lines = content.split('\\n')\n const titleLine = lines.find(l => l.startsWith('# '))\n const id = roadmapIdOf(file) ?? path.basename(file, '.md').toUpperCase()\n const title = (titleLine || '').replace(/^#+\\s*/, '').replace(/^R\\d+:\\s*/i, '').trim() || id\n\n // Only the head block counts, so a `**Status:**` inside the body can't override the item's meta.\n const metaEnd = roadmapMetaEnd(lines)\n const meta: Record<string, string> = {}\n for (const line of lines.slice(0, Math.min(metaEnd, 30))) {\n const m = line.match(/\\*\\*([^*]+):\\*\\*\\s*(.+)/)\n if (m) meta[m[1].toLowerCase().trim()] = m[2].trim()\n }\n\n const rawParent = (meta['parent'] || '').toUpperCase()\n let status: RoadmapStatus = 'planned'\n try { status = parseRoadmapStatus((meta['status'] || '').replace(/[^a-z\\s-]/gi, '')) } catch {}\n const order = parseFloat(meta['order'] || '')\n\n return {\n id,\n title,\n parent: /^R\\d+$/.test(rawParent) ? rawParent : null,\n status,\n order: Number.isFinite(order) ? order : 0,\n tasks: (meta['tasks'] || '').split(/[,\\s]+/).map(t => t.toUpperCase()).filter(t => /^T\\d+$/.test(t)),\n due: parseDue(meta['due'] || ''),\n owner: parseOwner(meta['owner']),\n priority: parsePriority(meta['priority']),\n body: lines.slice(metaEnd).join('\\n').trim(),\n file,\n }\n}\n\nasync function readRoadmapFiles(root: string): Promise<{ item: RoadmapItem; raw: string }[]> {\n const files = await glob('plans/roadmap/R*.md', { cwd: root, nodir: true })\n const out: { item: RoadmapItem; raw: string }[] = []\n for (const f of files) {\n if (!roadmapIdOf(f)) continue\n try {\n const raw = await fs.readFile(path.join(root, f), 'utf8')\n out.push({ item: parseRoadmapFile(f, raw), raw })\n } catch {}\n }\n return out\n}\n\nasync function findRoadmapFile(id: string, root: string): Promise<{ item: RoadmapItem; raw: string }> {\n const rid = normalizeRoadmapId(id)\n const matches = (await glob(`plans/roadmap/${rid}*.md`, { cwd: root, nodir: true }))\n .filter(f => roadmapIdOf(f) === rid)\n .sort()\n if (matches.length === 0) throw new RoadmapError(`Roadmap item not found: ${rid}`, 404)\n const raw = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return { item: parseRoadmapFile(matches[0], raw), raw }\n}\n\nfunction sortRoadmap(items: RoadmapItem[]): RoadmapItem[] {\n const num = (id: string) => parseInt(id.slice(1), 10)\n return items.sort((a, b) => a.order - b.order || num(a.id) - num(b.id))\n}\n\n/** A parent must be an existing horizon (parent null) and not the item itself. */\nfunction validateParent(parent: string, selfId: string | null, items: RoadmapItem[]): void {\n if (parent === selfId) throw new RoadmapError('An item cannot be its own parent')\n const p = items.find(i => i.id === parent)\n if (!p) throw new RoadmapError(`Parent not found: ${parent}`)\n if (p.parent !== null) throw new RoadmapError(`Parent ${parent} is not a horizon (max depth is 2)`)\n}\n\nfunction cleanBody(body: unknown): string {\n if (typeof body !== 'string') throw new RoadmapError('body must be a string')\n return body.trim()\n}\n\n// ponytail: in-process mutex serialising all roadmap writes (id allocation, layout merge).\n// Doesn't cover a second VibeDoc process on the same root; add a lockfile if that ever matters.\nlet roadmapLock: Promise<unknown> = Promise.resolve()\nfunction withRoadmapLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = roadmapLock.then(fn, fn)\n roadmapLock = run.catch(() => {})\n return run\n}\n\nfunction formatTasks(tasks: string[]): string {\n return tasks.length > 0 ? tasks.join(', ') : '—'\n}\n\nexport async function listRoadmap(root: string): Promise<{ items: RoadmapItem[]; layout: RoadmapLayout }> {\n const [files, layout] = await Promise.all([readRoadmapFiles(root), readRoadmapLayout(root)])\n return { items: sortRoadmap(files.map(f => f.item)), layout }\n}\n\nexport async function getRoadmapItem(id: string, root: string): Promise<RoadmapItem> {\n return (await findRoadmapFile(id, root)).item\n}\n\nexport function createRoadmapItem(\n params: CreateRoadmapItemParams, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(() => createRoadmapItemUnlocked(params ?? ({} as CreateRoadmapItemParams), root, actor))\n}\n\nconst roadmapId = (n: number) => `R${String(n).padStart(3, '0')}`\n\n/** Write a new R*.md (flag 'wx': never overwrites). Callers validate fields and mkdir first. */\nasync function writeRoadmapFile(root: string, f: Omit<RoadmapItem, 'file' | 'owner' | 'priority'>): Promise<void> {\n const slug = f.title.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40)\n const filename = slug ? `${f.id}-${slug}.md` : `${f.id}.md`\n const lines = [\n `# ${f.id}: ${f.title}`,\n ...(f.parent ? [`**Parent:** ${f.parent}`] : []),\n `**Status:** ${f.status}`,\n `**Order:** ${f.order}`,\n `**Tasks:** ${formatTasks(f.tasks)}`,\n ...(f.due ? [`**Due:** ${f.due}`] : []),\n '',\n ]\n const content = lines.join('\\n') + (f.body ? `\\n${f.body}\\n` : '')\n await fs.writeFile(path.join(root, ROADMAP_DIR, filename), content, { flag: 'wx', encoding: 'utf8' })\n}\n\n/** Where \"Generate roadmap\" would take its content from: ROADMAP.md, then tasks, then a starter. */\nexport async function detectRoadmapSource(root: string): Promise<RoadmapSource> {\n return (await roadmapDrafts(root)).source\n}\n\nasync function roadmapDrafts(root: string): Promise<{ source: RoadmapSource; drafts: RoadmapDraft[] }> {\n try {\n const drafts = roadmapFromMarkdown(await fs.readFile(path.join(root, 'ROADMAP.md'), 'utf8'))\n if (drafts.length > 0) return { source: 'roadmap-md', drafts }\n } catch {\n // no ROADMAP.md — fall through\n }\n const { tasks } = await listTasks(root)\n const fromTasks = roadmapFromTasks(tasks)\n if (fromTasks.length > 0) return { source: 'tasks', drafts: fromTasks }\n return { source: 'starter', drafts: starterRoadmap() }\n}\n\n/**\n * Build plans/roadmap/ for a project that has none. Never touches ROADMAP.md or tasks.\n * Refuses when any R*.md exists. One activity entry for the whole generation.\n */\nexport function generateRoadmap(\n root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ items: RoadmapItem[]; source: RoadmapSource }> {\n return withRoadmapLock(async () => {\n if ((await readRoadmapFiles(root)).length > 0) throw new RoadmapError('Roadmap already exists')\n const { source, drafts } = await roadmapDrafts(root)\n\n const ids = new Map(drafts.map((d, i) => [d.key, roadmapId(i + 1)]))\n const siblingCount = new Map<string | null, number>()\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n for (const d of drafts) {\n const n = (siblingCount.get(d.parent) ?? 0) + 1\n siblingCount.set(d.parent, n)\n await writeRoadmapFile(root, {\n id: ids.get(d.key) as string,\n title: d.title,\n parent: d.parent === null ? null : (ids.get(d.parent) ?? null),\n status: d.status,\n order: n * 10,\n tasks: d.tasks,\n due: null,\n body: d.body,\n })\n }\n\n await appendActivity(root, {\n type: 'roadmap_updated', actor,\n title: `Roadmap generated (${drafts.length} items)`,\n detail: `from ${source}`,\n })\n const { items } = await listRoadmap(root)\n return { items, source }\n })\n}\n\nasync function createRoadmapItemUnlocked(\n params: CreateRoadmapItemParams, root: string, actor: 'ai' | 'human'\n): Promise<RoadmapItem> {\n const title = cleanTitle(params.title)\n const status = params.status === undefined ? 'planned' : parseRoadmapStatus(params.status)\n const tasks = params.tasks === undefined ? [] : parseTaskIds(params.tasks)\n const body = params.body === undefined ? '' : cleanBody(params.body)\n const due = params.due === undefined ? null : cleanDue(params.due)\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n\n const parent = params.parent == null || params.parent === '' ? null : normalizeRoadmapId(params.parent)\n if (parent) validateParent(parent, null, items)\n\n const siblingOrders = items.filter(i => i.parent === parent).map(i => i.order)\n const order = params.order === undefined\n ? (siblingOrders.length > 0 ? Math.max(...siblingOrders) : 0) + 10\n : cleanOrder(params.order)\n\n const nums = items.map(i => parseInt(i.id.slice(1), 10)).filter(n => !isNaN(n))\n const id = roadmapId(nums.length > 0 ? Math.max(...nums) + 1 : 1)\n\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await writeRoadmapFile(root, { id, title, parent, status, order, tasks, due, body })\n\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${id} created`, detail: title })\n return getRoadmapItem(id, root)\n}\n\nexport function updateRoadmapItem(\n id: string, patch: UpdateRoadmapItemPatch, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(() => updateRoadmapItemUnlocked(id, patch, root, actor))\n}\n\nasync function updateRoadmapItemUnlocked(\n id: string, patch: UpdateRoadmapItemPatch, root: string, actor: 'ai' | 'human'\n): Promise<RoadmapItem> {\n const { item, raw } = await findRoadmapFile(id, root)\n const p = patch ?? {}\n\n // Validate everything before touching the file.\n const title = p.title === undefined ? undefined : cleanTitle(p.title)\n const status = p.status === undefined ? undefined : parseRoadmapStatus(p.status)\n const order = p.order === undefined ? undefined : cleanOrder(p.order)\n const tasks = p.tasks === undefined ? undefined : parseTaskIds(p.tasks)\n const body = p.body === undefined ? undefined : cleanBody(p.body)\n const due = p.due === undefined ? undefined : cleanDue(p.due)\n let owner: string | null | undefined\n if (p.owner !== undefined) {\n owner = p.owner === null || p.owner === '' ? null : parseOwner(p.owner)\n if (p.owner && !owner) throw new RoadmapError(`owner must be \"human\" or \"ai:<agent>\" (got ${JSON.stringify(p.owner)})`)\n }\n let priority: string | null | undefined\n if (p.priority !== undefined) {\n priority = p.priority === null || p.priority === '' ? null : parsePriority(p.priority)\n if (p.priority && !priority) throw new RoadmapError(`priority must be P0, P1, P2 or P3 (got ${JSON.stringify(p.priority)})`)\n }\n let parent: string | null | undefined\n if (p.parent !== undefined) {\n parent = p.parent === null || p.parent === '' ? null : normalizeRoadmapId(p.parent)\n if (parent !== null) {\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n validateParent(parent, item.id, items)\n if (items.some(i => i.parent === item.id)) {\n throw new RoadmapError(`${item.id} has children and cannot be given a parent`)\n }\n }\n }\n\n const lines = raw.split('\\n')\n if (title !== undefined) {\n const h1 = lines.findIndex(l => l.startsWith('# '))\n if (h1 >= 0) lines[h1] = `# ${item.id}: ${title}`\n else lines.unshift(`# ${item.id}: ${title}`)\n }\n\n const end = roadmapMetaEnd(lines)\n const head = lines.slice(0, end)\n let rest = lines.slice(end)\n\n // Replace-or-insert (or remove, for value null) a meta line inside the head block only.\n const setMeta = (key: string, value: string | null) => {\n const idx = head.findIndex(l => l.match(META_LINE)?.[1].trim().toLowerCase() === key.toLowerCase())\n if (value === null) { if (idx >= 0) head.splice(idx, 1); return }\n const line = `**${key}:** ${value}`\n if (idx >= 0) head[idx] = line\n else head.push(line)\n }\n\n if (parent !== undefined) setMeta('Parent', parent)\n if (status !== undefined) setMeta('Status', status)\n if (order !== undefined) setMeta('Order', String(order))\n if (tasks !== undefined) setMeta('Tasks', formatTasks(tasks))\n if (due !== undefined) setMeta('Due', due)\n if (owner !== undefined) setMeta('Owner', owner)\n if (priority !== undefined) setMeta('Priority', priority)\n if (body !== undefined) {\n rest = body ? ['', body, ''] : ['']\n }\n\n await fs.writeFile(path.join(root, item.file), [...head, ...rest].join('\\n'), 'utf8')\n const updated = await getRoadmapItem(item.id, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${item.id} updated`, detail: updated.title })\n return updated\n}\n\nexport interface DeletedRoadmapItem { item: RoadmapItem; raw: string; position: { x: number; y: number } | null }\n\nexport function deleteRoadmapItem(id: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<DeletedRoadmapItem> {\n return withRoadmapLock(() => deleteRoadmapItemUnlocked(id, root, actor))\n}\n\nasync function deleteRoadmapItemUnlocked(id: string, root: string, actor: 'ai' | 'human'): Promise<DeletedRoadmapItem> {\n const { item, raw } = await findRoadmapFile(id, root)\n const position = (await readRoadmapLayout(root))[item.id] ?? null\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n const children = items.filter(i => i.parent === item.id).map(i => i.id)\n if (children.length > 0) {\n throw new RoadmapError(`${item.id} still has children (${children.join(', ')}); move or delete them first`)\n }\n await fs.unlink(path.join(root, item.file))\n // Prune now so a later create reusing this id doesn't inherit the old position.\n await writeRoadmapLayoutUnlocked({}, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${item.id} deleted`, detail: item.title })\n return { item, raw, position }\n}\n\n/** Undo for deleteRoadmapItem: write the file back byte-for-byte (never over an existing id) and its position. */\nexport function restoreRoadmapItem(\n file: unknown, raw: unknown, position: unknown, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(async () => {\n if (!isFileIn(file, ROADMAP_DIR, /^R\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid roadmap item to restore')\n const id = roadmapIdOf(file)\n if (!id) throw new RoadmapError('Invalid roadmap item to restore')\n if (await findRoadmapFile(id, root).then(() => true, () => false)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n if (position) await writeRoadmapLayoutUnlocked({ [id]: position as { x: number; y: number } }, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${id} restored` })\n return (await findRoadmapFile(id, root)).item\n })\n}\n\nexport async function readRoadmapLayout(root: string): Promise<RoadmapLayout> {\n try {\n const parsed = JSON.parse(await fs.readFile(path.join(root, ROADMAP_LAYOUT), 'utf8'))\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return {}\n const out: RoadmapLayout = {}\n for (const [k, v] of Object.entries(parsed as Record<string, { x?: unknown; y?: unknown }>)) {\n if (v && Number.isFinite(v.x) && Number.isFinite(v.y)) out[k] = { x: v.x as number, y: v.y as number }\n }\n return out\n } catch {\n return {}\n }\n}\n\n/** Merge `positions` into layout.json and drop ids with no matching R*.md. Returns the saved layout. */\nexport function writeRoadmapLayout(positions: RoadmapLayout, root: string): Promise<RoadmapLayout> {\n return withRoadmapLock(() => writeRoadmapLayoutUnlocked(positions, root))\n}\n\nasync function writeRoadmapLayoutUnlocked(positions: RoadmapLayout, root: string): Promise<RoadmapLayout> {\n const clean: RoadmapLayout = {}\n for (const [k, v] of Object.entries(positions ?? {})) {\n const key = k.trim().toUpperCase()\n const ok = /^R\\d+$/.test(key) && v && typeof v === 'object'\n && typeof v.x === 'number' && typeof v.y === 'number' && Number.isFinite(v.x) && Number.isFinite(v.y)\n if (!ok) throw new RoadmapError(`Invalid position for ${k}`)\n clean[key] = { x: v.x, y: v.y }\n }\n const merged = { ...(await readRoadmapLayout(root)), ...clean }\n\n const existing = new Set((await readRoadmapFiles(root)).map(f => f.item.id))\n const layout: RoadmapLayout = {}\n for (const key of Object.keys(merged).sort()) {\n if (existing.has(key)) layout[key] = merged[key]\n }\n\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await fs.writeFile(path.join(root, ROADMAP_LAYOUT), JSON.stringify(layout, null, 2) + '\\n', 'utf8')\n return layout\n}\n\n// ─── Planning skills ──────────────────────────────────────────────────────────\n\nconst PLANNING_SKILLS = { roadmap: 'roadmap-planner', breakdown: 'epic-breakdown' } as const\nexport type PlanningKind = keyof typeof PLANNING_SKILLS\n\n/** Bundled skill body (frontmatter stripped). Read from the VibeDoc package (cwd), not the target project. */\nexport async function readPlanningSkill(kind: PlanningKind): Promise<string> {\n if (!Object.hasOwn(PLANNING_SKILLS, kind)) throw new Error(`Unknown planning kind \"${kind}\" (expected: ${Object.keys(PLANNING_SKILLS).join(', ')})`)\n const text = await fs.readFile(path.join(process.cwd(), 'skills', PLANNING_SKILLS[kind], 'SKILL.md'), 'utf-8')\n return text.replace(/^---\\r?\\n[\\s\\S]*?\\r?\\n---\\r?\\n/, '').trimStart()\n}\n\n// ─── Agent chats (.vibedoc/chats/<id>.json) ───────────────────────────────────\n// The browser owns the chat shape (src/lib/chats.ts); core only stores it by id.\n\nconst CHATS_DIR = path.join('.vibedoc', 'chats')\nconst CHAT_ID = /^[a-z0-9-]{1,64}$/\n\nfunction chatFile(id: string, root: string): string {\n if (!CHAT_ID.test(id)) throw new Error(`Invalid chat id \"${id}\"`)\n return path.join(root, CHATS_DIR, `${id}.json`)\n}\n\n/** Every saved chat, unparsed beyond JSON. Unreadable files are skipped (logged). */\nexport async function listChats(root: string): Promise<unknown[]> {\n const dir = path.join(root, CHATS_DIR)\n const files = await fs.readdir(dir).catch(() => [] as string[])\n // ponytail: reads every chat file on load; add a limit/index if projects collect hundreds of chats\n const chats = await Promise.all(files.filter(f => f.endsWith('.json')).map(async f => {\n try {\n return JSON.parse(await fs.readFile(path.join(dir, f), 'utf-8')) as unknown\n } catch (e) {\n console.warn(`[vibedoc] skipping unreadable chat ${f}: ${(e as Error).message}`)\n return null\n }\n }))\n return chats.filter(c => c !== null)\n}\n\nexport async function saveChat(chat: unknown, root: string): Promise<void> {\n const id = (chat as { id?: unknown } | null)?.id\n if (typeof id !== 'string') throw new Error('chat.id is required')\n const file = chatFile(id, root)\n await fs.mkdir(path.dirname(file), { recursive: true })\n // Write-then-rename so a crash mid-write never leaves half a JSON file\n const tmp = `${file}.tmp`\n await fs.writeFile(tmp, JSON.stringify(chat), 'utf-8')\n await fs.rename(tmp, file)\n}\n\nexport async function deleteChat(id: string, root: string): Promise<void> {\n await fs.rm(chatFile(id, root), { force: true })\n}\n\n// ─── Saved board views (.vibedoc/views.json) ─────────────────────────────────\n\nconst VIEWS_FILE = path.join('.vibedoc', 'views.json')\n\n/** null when the file is missing or unreadable (caller falls back to the built-ins). */\nexport async function readViews(root: string): Promise<SavedView[] | null> {\n let raw: string\n try {\n raw = await fs.readFile(path.join(root, VIEWS_FILE), 'utf-8')\n } catch {\n return null\n }\n try {\n const views = (JSON.parse(raw) as { views?: unknown })?.views\n if (!Array.isArray(views)) throw new Error('\"views\" is not an array')\n return views as SavedView[]\n } catch (e) {\n console.warn(`[vibedoc] ignoring unreadable ${VIEWS_FILE}: ${(e as Error).message}`)\n return null\n }\n}\n\nexport async function saveViews(views: SavedView[], root: string): Promise<void> {\n const file = path.join(root, VIEWS_FILE)\n await fs.mkdir(path.dirname(file), { recursive: true })\n // Write-then-rename so a crash mid-write never leaves half a JSON file\n const tmp = `${file}.tmp`\n await fs.writeFile(tmp, JSON.stringify({ views }, null, 2) + '\\n', 'utf-8')\n await fs.rename(tmp, file)\n}\n","// Pure knowledge-entry parsing and formatting (R046, no fs). Self-check: node src/lib/entries.check.mts\n// One long-lived fact per file: memory/entries/E001-<slug>.md\n\nexport const ENTRY_TYPES = ['convention', 'gotcha', 'decision', 'preference'] as const\nexport type EntryType = typeof ENTRY_TYPES[number]\n\n/**\n * updatedAt = the `**Updated:**` date (YYYY-MM-DD); by = `**By:**` who saved it last (\"human\" | \"ai:<agent>\",\n * null in files from before R047); file = path relative to root.\n */\nexport type Entry = { id: string; type: EntryType; summary: string; body: string; updatedAt: string; by: string | null; file: string }\nexport type EntryInput = { id?: string; type: string; summary: string; body?: string }\n\nexport const SUMMARY_MAX = 120\n\nconst isEntryType = (s: string): s is EntryType => (ENTRY_TYPES as readonly string[]).includes(s)\n\n/** \"e1\" / \"E01\" / \"E001\" → \"E001\"; anything else → null. */\nexport function normalizeEntryId(s: string): string | null {\n const m = /^e(\\d+)$/i.exec(s.trim())\n if (!m) return null\n const n = Number(m[1])\n return n > 0 ? `E${String(n).padStart(3, '0')}` : null\n}\n\n/** One past the highest id: [] → \"E001\"; [\"E001\",\"E007\"] → \"E008\". */\nexport function nextEntryId(ids: string[]): string {\n const max = Math.max(0, ...ids.map(id => Number(normalizeEntryId(id)?.slice(1) ?? 0)))\n return `E${String(max + 1).padStart(3, '0')}`\n}\n\nexport function entrySlug(summary: string): string {\n return summary.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40).replace(/-$/, '')\n}\n\n/** null when the `# E001: summary` H1 or a known `**Type:**` is missing. */\nexport function parseEntry(raw: string, file: string): Entry | null {\n const lines = raw.replace(/\\r\\n/g, '\\n').split('\\n')\n const h1 = /^#\\s+(E\\d+):\\s*(.+?)\\s*$/i.exec(lines[0] ?? '')\n const id = h1 && normalizeEntryId(h1[1])\n if (!h1 || !id) return null\n // Contiguous **Key:** Value block under the H1, like task files\n const meta: Record<string, string> = {}\n let i = 1\n for (; i < lines.length; i++) {\n const m = /^\\*\\*(\\w+):\\*\\*\\s*(.*)$/.exec(lines[i])\n if (!m) break\n meta[m[1].toLowerCase()] = m[2].trim()\n }\n const type = meta.type ?? ''\n if (!isEntryType(type)) return null\n return { id, type, summary: h1[2], body: lines.slice(i).join('\\n').trim(), updatedAt: meta.updated ?? '', by: meta.by || null, file }\n}\n\nexport function formatEntry(e: Omit<Entry, 'file'>): string {\n const head = `# ${e.id}: ${e.summary}\\n**Type:** ${e.type}\\n**Updated:** ${e.updatedAt}\\n${e.by ? `**By:** ${e.by}\\n` : ''}`\n return e.body.trim() ? `${head}\\n${e.body.trim()}\\n` : head\n}\n\n/** Error message, or null when valid. Does not check whether an id exists. */\nexport function validateEntryInput(i: EntryInput): string | null {\n if (i.id !== undefined && !normalizeEntryId(String(i.id))) return `Invalid id \"${i.id}\": expected E followed by a number, e.g. E001`\n if (!isEntryType(String(i.type ?? ''))) return `Invalid type \"${i.type ?? ''}\": use one of ${ENTRY_TYPES.join(', ')}`\n const summary = String(i.summary ?? '').trim()\n if (!summary) return 'summary is required'\n if (/\\n/.test(summary)) return 'summary must be one line'\n if (summary.length > SUMMARY_MAX) return `summary is ${summary.length} characters; keep it to ${SUMMARY_MAX}`\n if (i.body !== undefined && typeof i.body !== 'string') return 'body must be a string'\n return null\n}\n","// Pure keyword recall over knowledge entries (R048, no fs). Self-check: node src/lib/recall.check.mts\n// Index first, bodies on request: agents get compact lines here and fetch bodies with vibedoc_get_entries.\n\nexport type RecallEntry = { id: string; type: string; summary: string; body: string; updatedAt: string }\nexport type RecallHit = { id: string; type: string; summary: string; tokens: number; score: number }\n\nconst STOPWORDS = new Set(('a an and are as at be but by can do does for from how i if in into is it its of on or ' +\n 'our so that the their then there these this to use used using was we what when where which who why will with you your').split(' '))\n\n/** Lowercase, split on non-alphanumerics, drop stopwords and 1-char tokens, naive plural strip (\"events\" → \"event\"). */\nexport function tokenize(s: string): string[] {\n return s.toLowerCase().split(/[^a-z0-9]+/)\n .filter(t => t.length > 1 && !STOPWORDS.has(t))\n // ponytail: plural strip only, no real stemmer; add one if recall misses obvious matches\n .map(t => (t.length > 3 && t.endsWith('s') && !t.endsWith('ss') ? t.slice(0, -1) : t))\n}\n\nexport function estimateTokens(s: string): number {\n return Math.ceil(s.length / 4)\n}\n\n/** Per query token: +3 in summary, +2 matches id or type, +1 in body. Score 0 dropped; ties → newest first. */\nexport function rankEntries(entries: RecallEntry[], query: string, opts: { type?: string; limit?: number } = {}): RecallHit[] {\n const q = [...new Set(tokenize(query))]\n if (!q.length) return []\n const hits: (RecallHit & { updatedAt: string })[] = []\n for (const e of entries) {\n if (opts.type && e.type !== opts.type) continue\n const summary = new Set(tokenize(e.summary))\n const body = new Set(tokenize(e.body))\n const idType = new Set([e.id.toLowerCase(), ...tokenize(e.type)])\n let score = 0\n for (const t of q) {\n if (summary.has(t)) score += 3\n if (idType.has(t)) score += 2\n if (body.has(t)) score += 1\n }\n if (score > 0) {\n hits.push({ id: e.id, type: e.type, summary: e.summary, tokens: estimateTokens(`${e.summary}\\n${e.body}`), score, updatedAt: e.updatedAt })\n }\n }\n hits.sort((a, b) => b.score - a.score || b.updatedAt.localeCompare(a.updatedAt))\n return hits.slice(0, opts.limit ?? 10).map(({ updatedAt: _, ...h }) => h)\n}\n\n/** \"E012 · convention · Only core.ts touches fs (~120 tok)\" */\nexport function formatCompactLine(h: RecallHit): string {\n return `${h.id} · ${h.type} · ${h.summary} (~${h.tokens} tok)`\n}\n\n/** Every entry as a compact hit, newest first: the session-start index order. */\nexport function indexHits(entries: RecallEntry[]): RecallHit[] {\n return [...entries].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt) || a.id.localeCompare(b.id, 'en', { numeric: true }))\n .map(e => ({ id: e.id, type: e.type, summary: e.summary, tokens: estimateTokens(`${e.summary}\\n${e.body}`), score: 0 }))\n}\n\nexport const DEFAULT_SESSION_BUDGET = 2000\nconst INDEX_HINT = 'Save new facts with vibedoc_save_entry; fetch bodies with vibedoc_get_entries.'\n\n/**\n * Session start = the whole handoff + as many index lines (in the order given) as fit `budget` tokens,\n * then \"+N more\" when some were left out. Header, footer and hint count toward the budget. The handoff is never cut.\n */\nexport function fitToBudget(handoff: string, index: RecallHit[], budget: number):\n { text: string; shown: number; omitted: number; tokens: number } {\n const render = (n: number, warning?: string) => [\n handoff.trimEnd(), '',\n ...(warning ? [warning] : []),\n `## Knowledge entries (${index.length})`,\n ...index.slice(0, n).map(formatCompactLine),\n ...(n < index.length ? [`+${index.length - n} more entries — use vibedoc_recall { query }`] : []),\n INDEX_HINT,\n ].join('\\n')\n const fits = (n: number) => estimateTokens(render(n)) <= budget\n let text: string\n let shown = 0\n if (!fits(0)) {\n text = render(0, `⚠️ The handoff alone is ~${estimateTokens(handoff)} tokens, over the ${budget}-token session budget: trim memory/MEMORY.md.`)\n } else {\n // ponytail: re-renders per line (O(n²) chars); fine for hundreds of entries\n while (shown < index.length && fits(shown + 1)) shown++\n text = render(shown)\n }\n return { text, shown, omitted: index.length - shown, tokens: estimateTokens(text) }\n}\n\nexport const RELATED_MIN_SCORE = 3\nconst GOAL_CHARS = 500\n\n/** Recall query for a task: its title, the first 500 chars of its Goal, and the Phase epic title (id dropped). */\nexport function taskQuery(task: { title: string; phase?: string; raw?: string }): string {\n const goal = /^## Goal[ \\t]*\\n([\\s\\S]*?)(?=^## |(?![\\s\\S]))/m.exec(task.raw ?? '')?.[1].trim() ?? ''\n const epic = (task.phase ?? '').replace(/^R\\d+\\s*[—–-]\\s*/, '')\n return [task.title, goal.slice(0, GOAL_CHARS), epic].filter(Boolean).join(' ')\n}\n\n/** Only strong matches (at least one summary hit) → \"## Related memory\" block; '' when none qualify. */\nexport function formatRelated(hits: RecallHit[], limit = 3): string {\n const strong = hits.filter(h => h.score >= RELATED_MIN_SCORE).slice(0, limit)\n if (!strong.length) return ''\n return `## Related memory\\n${strong.map(formatCompactLine).join('\\n')}\\nFetch with vibedoc_get_entries`\n}\n\n/**\n * The Memory tab list (R047). No searchable words → the entries of `type`, newest first (session-start order).\n * Otherwise ranked like vibedoc_recall, so the UI and agents agree on the first hit. Returns the full entries.\n */\nexport function filterEntries<T extends RecallEntry>(entries: T[], opts: { query?: string; type?: string | null }): T[] {\n const pool = opts.type ? entries.filter(e => e.type === opts.type) : entries\n const byId = new Map(pool.map(e => [e.id, e]))\n const query = opts.query ?? ''\n const hits = tokenize(query).length ? rankEntries(pool, query, { limit: pool.length }) : indexHits(pool)\n return hits.map(h => byId.get(h.id)).filter((e): e is T => !!e)\n}\n","// Pure memory link graph (R053, no fs): links are inferred from text, never stored. Self-check: node src/lib/memory-graph.check.mts\n// Outgoing edges come from entry text; incoming edges from task, roadmap and doc files that mention an entry id.\n\nexport type NodeKind = 'entry' | 'task' | 'epic' | 'adr' | 'doc'\nexport type GraphNode = { id: string; kind: NodeKind; label: string; path: string }\nexport type GraphEdge = { from: string; to: string } // from mentions to\nexport type MemoryGraph = { nodes: GraphNode[]; edges: GraphEdge[] }\n/** A node plus the text scanned for its refs. */\nexport type GraphItem = GraphNode & { text: string }\n\n// Upper case only, whole tokens: \"XT0651\", \"e2e\" and \"T0651a\" don't match\nconst ID_RE = /(?<![A-Za-z0-9_-])(E\\d+|T\\d{3,}|R\\d{3,}|ADR-\\d+)(?![A-Za-z0-9_])/g\nconst BACKTICK_MD_RE = /`([^`\\s]+\\.md)`/g\nconst LINK_MD_RE = /\\]\\(\\s*<?([^)\\s>#]+\\.md)(?:#[^)\\s]*)?>?\\s*\\)/g\n\nconst pad3 = (n: string) => String(Number(n)).padStart(3, '0')\n\n/** \"E1\" → \"E001\", \"ADR-4\" → \"ADR-004\"; task and roadmap ids are already padded. */\nfunction normalizeId(id: string): string {\n if (id.startsWith('ADR-')) return `ADR-${pad3(id.slice(4))}`\n if (id.startsWith('E')) return `E${pad3(id.slice(1))}`\n return id\n}\n\nconst normalizePath = (p: string) => p.replace(/\\\\/g, '/').replace(/^\\.?\\//, '')\n\n/** Item ids (E/T/R/ADR) and `*.md` paths (in backticks or as link targets) mentioned in `text`, deduplicated. */\nexport function extractRefs(text: string): { ids: string[]; paths: string[] } {\n const ids = new Set<string>()\n for (const m of text.matchAll(ID_RE)) {\n if (/^E0+$/.test(m[1])) continue // E0 is not an entry id\n ids.add(normalizeId(m[1]))\n }\n const paths = new Set<string>()\n for (const re of [BACKTICK_MD_RE, LINK_MD_RE]) {\n for (const m of text.matchAll(re)) {\n if (/^[a-z]+:\\/\\//i.test(m[1])) continue // external URL\n paths.add(normalizePath(m[1]))\n }\n }\n return { ids: [...ids], paths: [...paths] }\n}\n\n/** Classify a non-entry markdown file by path. Label = its H1 without the \"ID: \" prefix, else the file name. */\nexport function fileNode(relPath: string, raw: string): GraphNode {\n const p = normalizePath(relPath)\n const name = p.split('/').pop() ?? p\n const h1 = /^#\\s+(.+?)\\s*$/m.exec(raw)?.[1] ?? ''\n const label = (id: string) => h1.replace(new RegExp(`^${id}\\\\s*[:—–-]\\\\s*`), '') || name.replace(/\\.md$/, '')\n let m: RegExpExecArray | null\n if ((m = /^plans\\/tasks\\/(T\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'task', label: label(m[1]), path: p }\n if ((m = /^plans\\/roadmap\\/(R\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'epic', label: label(m[1]), path: p }\n if ((m = /(?:^|\\/)(ADR-\\d+)[^/]*\\.md$/.exec(p))) {\n const id = normalizeId(m[1])\n return { id, kind: 'adr', label: label(m[1]), path: p }\n }\n return { id: p, kind: 'doc', label: h1 || name.replace(/\\.md$/, ''), path: p }\n}\n\n/**\n * Resolve refs into a graph. Unresolved refs, self-links and duplicate edges are dropped.\n * Nodes = every entry + every other item that touches an entry.\n */\nexport function buildGraph(entries: GraphItem[], others: GraphItem[]): MemoryGraph {\n const all = [...entries, ...others]\n const byId = new Map(all.map(n => [n.id, n]))\n const byPath = new Map(all.map(n => [n.path, n]))\n const entryIds = new Set(entries.map(e => e.id))\n const edges = new Map<string, GraphEdge>()\n const add = (from: string, to: string) => { if (from !== to) edges.set(`${from}\\u0000${to}`, { from, to }) }\n\n for (const e of entries) {\n const { ids, paths } = extractRefs(e.text)\n for (const id of ids) if (byId.has(id)) add(e.id, id)\n for (const p of paths) { const n = byPath.get(p); if (n) add(e.id, n.id) }\n }\n // incoming: other files that mention an entry id (not the whole doc-to-doc graph)\n for (const o of others) {\n for (const id of extractRefs(o.text).ids) if (entryIds.has(id)) add(o.id, id)\n }\n\n const touched = new Set(entryIds)\n for (const e of edges.values()) { touched.add(e.from); touched.add(e.to) }\n const nodes = all.filter(n => touched.has(n.id)).map(({ text: _, ...n }) => n)\n return { nodes, edges: [...edges.values()] }\n}\n\n/** One entry, its direct neighbours and the edges between it and them. Unknown id → empty graph. */\nexport function neighbourhood(graph: MemoryGraph, id: string): MemoryGraph {\n if (!graph.nodes.some(n => n.id === id)) return { nodes: [], edges: [] }\n const edges = graph.edges.filter(e => e.from === id || e.to === id)\n const keep = new Set([id, ...edges.flatMap(e => [e.from, e.to])])\n return { nodes: graph.nodes.filter(n => keep.has(n.id)), edges }\n}\n\n/**\n * \"Links: …\" / \"Linked from: …\" lines for one entry (vibedoc_get_entries). A line with nothing is left out;\n * each is capped at `cap` items plus \"+N more\", so a hub entry stays short.\n */\nexport function formatEntryLinks(graph: MemoryGraph, id: string, cap = 10): string[] {\n const line = (label: string, ids: string[]) => {\n if (!ids.length) return []\n const more = ids.length > cap ? `, +${ids.length - cap} more` : ''\n return [`${label}: ${ids.slice(0, cap).join(', ')}${more}`]\n }\n return [\n ...line('Links', graph.edges.filter(e => e.from === id).map(e => e.to)),\n ...line('Linked from', graph.edges.filter(e => e.to === id).map(e => e.from)),\n ]\n}\n\nexport const GRAPH_COL_W = 240\nexport const GRAPH_ROW_H = 48\n/** Column per kind: epics and tasks left of the entries, ADRs and docs right of them. */\nconst GRAPH_COL: Record<NodeKind, number> = { epic: -2, task: -1, entry: 0, adr: 1, doc: 2 }\n\n/**\n * Deterministic positions for the graph view (no layout library, no saved positions): entries stacked in the\n * centre column (sorted by type, then id), every other node in its kind's column at the average y of the\n * entries it links with, pushed down to keep one row of space. Same graph → same positions on every load.\n */\nexport function graphLayout(graph: MemoryGraph, entryType: Record<string, string> = {}): Record<string, { x: number; y: number }> {\n const pos: Record<string, { x: number; y: number }> = {}\n const num = (id: string) => Number(id.replace(/\\D/g, '')) || 0\n const entries = graph.nodes.filter(n => n.kind === 'entry')\n .sort((a, b) => (entryType[a.id] ?? '').localeCompare(entryType[b.id] ?? '') || num(a.id) - num(b.id))\n entries.forEach((e, i) => { pos[e.id] = { x: 0, y: i * GRAPH_ROW_H } })\n\n const neighbourYs = new Map<string, number[]>()\n for (const { from, to } of graph.edges) {\n for (const [other, entry] of [[from, to], [to, from]]) {\n if (pos[entry] && !pos[other]) neighbourYs.set(other, [...(neighbourYs.get(other) ?? []), pos[entry].y])\n }\n }\n for (const kind of ['epic', 'task', 'adr', 'doc'] as const) {\n const col = graph.nodes.filter(n => n.kind === kind).map(n => {\n const ys = neighbourYs.get(n.id) ?? [0]\n return { id: n.id, want: ys.reduce((a, b) => a + b, 0) / ys.length }\n }).sort((a, b) => a.want - b.want || a.id.localeCompare(b.id, 'en', { numeric: true }))\n let next = -Infinity\n for (const { id, want } of col) {\n const y = Math.max(want, next)\n pos[id] = { x: GRAPH_COL[kind] * GRAPH_COL_W, y }\n next = y + GRAPH_ROW_H\n }\n }\n return pos\n}\n"],"names":["Gt","n","t1","e","s","RegExp","ce","i","r","ss","start","end","pre","slice","body","length","post","match","o","h","a","indexOf","l","u","push","c","pop","fe","Math","random","ue","qt","de","pe","is","rs","ns","os","hs","as","ls","cs","fs","us","ds","Ht","isNaN","charCodeAt","parseInt","ps","replace","ms","me","split","shift","apply","ge","max","ht","map","gs","ws","test","ys","bs","f","d","m","p","w","abs","g","E","some","y","b","String","fromCharCode","z","$","Array","join","at","TypeError","Ss","lt","Es","we","ye","charAt","Error","t","S","Object","entries","startsWith","W","windowsPathsNoEscape","magicalBraces","xs","Set","be","has","vs","Ct","Cs","Ts","As","ks","Kt","Se","Ee","Q","type","hasMagic","toString","copyIn","toJSON","isStart","unshift","isEnd","clone","noext","substring","fromGlob","toMMPattern","toRegExpSource","nocase","nocaseMagicOnly","toUpperCase","toLowerCase","assign","_src","_glob","options","dot","filter","tt","O","nocomment","D","Rs","Os","endsWith","Fs","Ds","Ms","Ns","_s","includes","Ls","Ws","Ps","js","Is","zs","Bs","Us","Ce","$s","Te","Gs","Hs","Ae","process","env","__MINIMATCH_TESTING_PLATFORM__","platform","xe","win32","sep","posix","qs","A","Symbol","GLOBSTAR","Ks","Vs","Ys","Xs","Js","N","Zs","keys","Minimatch","defaults","AST","unescape","escape","makeRe","braceExpand","ke","nobrace","braceExpandMax","Qs","ti","nonull","ve","ei","set","pattern","nonegate","negate","comment","empty","preserveMultipleSlashes","partial","globSet","globParts","isWindows","windowsNoMagicRoot","regexp","make","debug","parseNegate","console","error","slashSplit","preprocess","parse","noglobstar","optimizationLevel","firstPhasePreProcess","secondPhasePreProcess","levelOneOptimize","adjascentGlobstarOptimize","splice","reduce","levelTwoFileOptimize","isArray","partsMatch","matchOne","file","Reflect","defineProperty","value","flags","add","forEach","matchBase","flipNegate","si","performance","now","Date","Oe","Vt","Fe","emitWarning","At","globalThis","AbortController","Re","AbortSignal","onabort","_onabort","reason","aborted","addEventListener","signal","abort","LRU_CACHE_IGNORE_AC_WARNING","ii","q","floor","isFinite","De","pow","Uint8Array","Uint16Array","Uint32Array","Number","MAX_SAFE_INTEGER","Tt","fill","ri","ct","heap","create","ft","Me","perf","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","noDisposeOnSet","noUpdateTTL","maxEntrySize","sizeCalculation","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchAbort","allowStaleOnFetchRejection","ignoreFetchAbort","unsafeExposeInternals","starts","ttls","autopurgeTimers","sizes","keyMap","keyList","valList","next","prev","head","tail","free","isBackgroundFetch","backgroundFetch","moveToTail","indexes","rindexes","isStale","maxSize","calculatedSize","size","fetchMethod","memoMethod","dispose","onInsert","disposeAfter","J","Z","Map","$t","getRemainingTTL","clearTimeout","setTimeout","unref","remainingTTL","get","entrySize","totalCalculatedSize","rentries","rkeys","values","rvalues","iterator","toStringTag","find","__staleWhileFetching","call","rforEach","purgeStale","info","dump","load","clear","delete","status","maxEntrySizeExceeded","__abortController","oldValue","peek","context","fetchAborted","fetchError","fetchAbortIgnored","fetchResolved","fetchUpdated","fetchRejected","returnedStale","__returned","Promise","then","fetchDispatched","hasOwnProperty","fetch","forceRefresh","forceFetch","memo","Ne","stdout","stderr","oi","V","hi","ai","pipe","Writable","prototype","write","G","H","K","kt","ut","Rt","_e","Ot","Le","P","et","v","dt","st","C","F","T","Yt","Ft","k","x","Xt","Jt","We","Zt","B","Qt","Dt","pt","Y","M","mt","resolve","li","ci","fi","ArrayBuffer","name","byteLength","ui","Buffer","isBuffer","isView","Mt","src","dest","opts","ondrain","on","unpipe","removeListener","proxyErrors","te","emit","di","objectMode","pi","encoding","writable","readable","async","debugExposeBuffer","debugExposePipes","bufferLength","setEncoding","destroy","code","from","buffer","byteOffset","lastNeed","read","concat","subarray","once","resume","pause","destroyed","flowing","paused","addListener","removeAllListeners","off","listeners","emittedEnd","collect","dataLength","promise","asyncIterator","done","throw","return","asyncDispose","close","isStream","vi","native","wt","lstatSync","readdir","readdirSync","readlinkSync","realpathSync","promises","lstat","readlink","realpath","Ue","imported module 902157","$e","Ri","Oi","L","Ge","He","U","qe","Ke","X","Ve","_","gt","se","je","yt","j","Nt","Lt","Ie","Fi","ie","isFile","isDirectory","isSymbolicLink","isCharacterDevice","isBlockDevice","isSocket","isFIFO","ze","bt","normalize","Be","_t","Wt","ne","Ye","R","root","roots","parent","isCWD","dev","mode","nlink","uid","gid","rdev","blksize","ino","blocks","atimeMs","mtimeMs","ctimeMs","birthtimeMs","atime","mtime","ctime","birthtime","parentPath","fullpath","path","relative","relativePosix","depth","childrenCache","getRootString","splitSep","getRoot","child","children","provisional","newChild","canReaddir","fullpathPosix","isUnknown","isType","getType","lstatCached","readlinkCached","realpathCached","readdirCached","canReadlink","calledReaddir","isENOENT","isNamed","readdirCB","queueMicrotask","withFileTypes","shouldWalk","Pt","sameRoot","it","jt","It","rootPath","cwd","childrenCacheSize","URL","parseRootPath","newRoot","isAbsolute","resolvePosix","basename","dirname","walk","follow","walkFilter","walkSync","iterate","stream","iterateSync","all","streamSync","chdir","rt","St","Cr","Xe","Di","Mi","Ni","for","nt","isUNC","isDrive","isString","isGlobstar","isRegExp","globString","hasMore","rest","checkFollowGlobstar","markFollowGlobstar","_i","ot","relativeChildren","absolute","absoluteChildren","mmopts","ignored","childrenIgnored","oe","store","copy","hasWalked","storeWalked","he","ae","Et","hasWalkedCache","matches","subwalks","patterns","processPatterns","subwalkTargets","filterEntries","testGlobstar","testRegExp","testString","Li","zt","seen","maxDepth","includeChildMatches","ignore","onResume","matchCheck","nodir","stat","matchCheckTest","matchCheckSync","matchFinish","mark","matchEmit","dotRelative","matchSync","walkCB","walkCB2","walkCB3","walkCBSync","walkCB2Sync","walkCB3Sync","xt","vt","results","Pi","I","scurry","allowWindowsEscape","le","Bt","Qe","ts","Je","Ut","es","ji","Ii","sync","zi","Bi","Ui","Ze","glob","globSync","globStream","globStreamSync","globIterate","globIterateSync","Glob","normalizeStatus","raw","findRoot","startDir","dir","marker","access","getConfiguredRoot","VIBEDOC_ROOT","discoverProjects","searchBase","base","projects","entry","hasVibedoc","id","existingIdx","findIndex","existing","listDocs","files","sort","section","inferSection","priority","readFile","catch","setDocProperties","docPath","props","fullPath","content","writeFile","readDoc","query","candidates","writeDoc","resolvedRoot","mkdir","recursive","editDoc","edits","dryRun","before","result","getContext","paths","parts","trim","createDoc","err","nodeErr","appendActivity","actor","title","detail","exists","readRegistry","rebuildRegistry","searchDocs","qLower","lines","hits","line","text","totalHits","warnedStatuses","parseTaskFile","filePath","defs","filename","titleLine","meta","roadmapMetaEnd","resolved","warnKey","unknown","warn","customStatus","idM","tests","manualTests","total","phase","dependsOn","owner","due","parseDue","started","finished","listTasks","statuses","readProjectSettings","tasks","board","todo","review","blocked","cancelled","col","getTask","taskId","ownerAfterMove","current","mover","agent","JSON","budget","memory","sessionBudgetTokens","sizeDays","withMetaLine","label","updateTaskStatus","statusKey","task","previousStatus","RoadmapError","newStatus","statusPattern","dates","taskStatus","_old","TASK_META_LABELS","updateTaskMeta","patch","oneLine","undefined","h1","key","stringify","deleteTask","withTaskClaimLock","unlink","items","listRoadmap","links","epic","index","updateRoadmapItem","setTaskEpic","epicId","target","bulkTasks","ids","action","deleted","isFileIn","rel","norm","restoreTask","flag","link","min","saveManualTests","report","toISOString","TaskStateError","reviewTask","outcome","note","approveTask","sendBackTask","setManualTestChecked","checked","taskClaimLock","fn","run","claimNextTask","getRoadmapItem","kind","createTask","params","createTaskUnlocked","nextNum","padStart","slug","tasksDir","description","checkPlan","plan","selected","taskIds","errors","roadmap","sel","selErrors","applyPlan","withRoadmapLock","readRoadmapFiles","item","created","horizons","createRoadmapItemUnlocked","epics","newEpic","createRoadmapItem","deps","fresh","updated","logDecision","decision","rationale","alternatives","consequences","nums","numStr","today","altsTable","option","indexPath","idx","trimEnd","adrNumber","readMemory","updateMemory","currentState","justCompleted","workingOn","upNext","issues","decisions","techDebt","handoff","time","toLocaleTimeString","hour","minute","issue","severity","ENTRIES_DIR","entryLock","withEntryLock","listEntries","names","localeCompare","numeric","getEntry","saveEntry","input","reject","previous","summary","updatedAt","by","rm","force","getEntriesByIds","byId","found","missing","sessionStartMemory","relatedEntries","limit","execFileP","GIT_SHA_RE","HISTORY_MAX","git","args","maxBuffer","relInsideRoot","relPath","full","getFileHistory","exec","spec","out","history","record","sha","author","date","subject","kept","uncommitted","message","getFileAtCommit","commit","top","recallEntries","deleteEntry","restoreEntry","ACTIVITY_FILE","ACTIVITY_CAP","DESCRIPTIONS_FILE","readDescriptions","writeDescriptions","cache","writeDescriptionEntry","normalizedKey","_anthropic","getAnthropicClient","default","Anthropic","apiKey","ANTHROPIC_API_KEY","extractDescription","heading","enrichDescription","client","messages","model","max_tokens","role","textBlock","source","listExplorerFiles","docs","doc","cached","globalForSessions","currentSessions","vibedocSessions","stampSession","event","cur","lastAt","timestamp","sessionId","events","DOC_EDIT_COALESCE_MS","DOC_EDIT_LOOKBACK","noteDocEdit","docLastEdit","readActivity","logSessionStart","appendDoc","renameDoc","oldPath","newPath","fullOld","fullNew","rename","copyFile","deleteDoc","REGISTRY_PATH","ANNOTATIONS_START","ANNOTATIONS_END","buildDocTree","tree","dirs","rendered","renderDir","indent","prefix","repeat","childIndent","childPrefix","dirFiles","parseAnnotations","rows","row","cols","Boolean","keywords","savedAnnotations","saved","totalFiles","updateRegistryAnnotation","annotations","newAnnotationsBlock","newContent","findBacklinks","targetPath","normalTarget","getMemoryGraph","others","getProjectSummary","activity","active","ROADMAP_DIR","ROADMAP_LAYOUT","ROADMAP_STATUSES","META_LINE","normalizeRoadmapId","roadmapIdOf","parseRoadmapStatus","parseTaskIds","cleanTitle","UTC","cleanDue","cleanOrder","order","parseRoadmapFile","metaEnd","rawParent","parseFloat","findRoadmapFile","rid","sortRoadmap","num","validateParent","selfId","cleanBody","roadmapLock","formatTasks","layout","readRoadmapLayout","roadmapId","writeRoadmapFile","detectRoadmapSource","roadmapDrafts","drafts","fromTasks","generateRoadmap","siblingCount","siblingOrders","updateRoadmapItemUnlocked","setMeta","deleteRoadmapItem","deleteRoadmapItemUnlocked","position","writeRoadmapLayoutUnlocked","restoreRoadmapItem","parsed","writeRoadmapLayout","positions","clean","ok","merged","PLANNING_SKILLS","breakdown","readPlanningSkill","hasOwn","trimStart","CHATS_DIR","CHAT_ID","chatFile","listChats","chats","saveChat","chat","tmp","deleteChat","VIEWS_FILE","readViews","views","saveViews","ENTRY_TYPES","SUMMARY_MAX","isEntryType","normalizeEntryId","nextEntryId","entrySlug","parseEntry","formatEntry","validateEntryInput","STOPWORDS","tokenize","estimateTokens","ceil","rankEntries","idType","score","tokens","formatCompactLine","indexHits","DEFAULT_SESSION_BUDGET","INDEX_HINT","fitToBudget","render","warning","fits","shown","omitted","RELATED_MIN_SCORE","GOAL_CHARS","taskQuery","goal","formatRelated","strong","pool"],"mappings":"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","ignoreList":[0]}
|