@unbrained/pm-cli 2026.8.4 → 2026.8.5
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/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +39 -13
- package/dist/cli/error-guidance.js +4 -4
- package/dist/cli/register-structured-mutation.d.ts +2 -0
- package/dist/cli/register-structured-mutation.js +124 -12
- package/dist/cli-bundle/bundle-manifest.json +407 -407
- package/dist/cli-bundle/chunks/append-VXXGOXSG.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-QVO3VTA4.js → chunk-2WFXWAYX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NM5G7RLU.js → chunk-3FTILRJ2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VH2EAGUG.js → chunk-42E7YPLG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RB65T4RX.js → chunk-43HQQI6S.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-J4EPW4GT.js → chunk-45G53IU4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PQXEB7W4.js → chunk-4VN6GS4U.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-4YUBDMQM.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-D2MBVMVE.js → chunk-54FNT7U2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NRDKVOUE.js → chunk-5ZBOIPGP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3XZYTRPC.js → chunk-6MSQJOTG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GOICHIX4.js → chunk-7A5OT5J2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HTYC76A4.js → chunk-7C4PTJG6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BKMZTZYL.js → chunk-A62CYISG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5H47J5FG.js → chunk-BPELKUQD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HE3DZFN4.js → chunk-BXQLRKWF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BLINBTMX.js → chunk-CSI3WS5I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KH4GVBMC.js → chunk-DXDREUXT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KIKLF2W4.js → chunk-E2RKBKWB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-377OOXUF.js → chunk-EGJ4JTUG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SULWTPQO.js → chunk-FPBQHMFT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-V5K52PYW.js → chunk-GE4KCSZP.js} +35 -35
- package/dist/cli-bundle/chunks/{chunk-NPUJ7OLK.js → chunk-HNFD72UK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QMWUL66F.js → chunk-HWRRMBJO.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-L3AZOELJ.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-CGY5I2GO.js → chunk-LKDGK44W.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-LN2WFEU4.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-ZSH4GNBH.js → chunk-M72BKL5Q.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HQ2WU7OY.js → chunk-MHK6LIWE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-H6FITE7D.js → chunk-NE5VRDAI.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-NY4T3JWN.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-DCJ6CM6F.js → chunk-OMXVBQ2N.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-OPVH7SKD.js +8 -0
- package/dist/cli-bundle/chunks/{chunk-CU5ENFNP.js → chunk-OTHLDSFP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NH35JNK5.js → chunk-PMXJEU3F.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SVDH5CHC.js → chunk-Q35VBGOQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5PZGZMPG.js → chunk-R546TPDE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q5F6OI7C.js → chunk-RKAVWO3O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JMKVCQSE.js → chunk-SSF4PIUR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PA5XRN2A.js → chunk-UN66FZRO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FQ4EFFDU.js → chunk-UP7DTVMD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NFF3JAQR.js → chunk-UZBWIUYD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2POYGY53.js → chunk-V3774P7D.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-B5ZLCD5Z.js → chunk-V3EUXXOF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6S7I3UKV.js → chunk-VCKLFEUN.js} +19 -19
- package/dist/cli-bundle/chunks/{chunk-PYYPQLHC.js → chunk-VN5VITU3.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-WRL4KNDL.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-UJHUR3LZ.js → chunk-XCEZYMNI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JDPKBV5P.js → chunk-YEWNL576.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OB7TRZ2G.js → chunk-YSO3YFZ4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UVZREFZU.js → chunk-ZYHOB3SN.js} +2 -2
- package/dist/cli-bundle/chunks/close-VZ3OQPN5.js +2 -0
- package/dist/cli-bundle/chunks/close-many-SB4TI27P.js +2 -0
- package/dist/cli-bundle/chunks/comments-BIF3Q4KY.js +2 -0
- package/dist/cli-bundle/chunks/copy-6AI5Z57X.js +2 -0
- package/dist/cli-bundle/chunks/{create-RLLCBCXM.js → create-XLKTXTUF.js} +2 -2
- package/dist/cli-bundle/chunks/delete-ZY2VHQTP.js +2 -0
- package/dist/cli-bundle/chunks/{deps-J4ONTF4X.js → deps-ITTY3GIC.js} +2 -2
- package/dist/cli-bundle/chunks/{docs-YL2DJ4WD.js → docs-W4OSRTYR.js} +2 -2
- package/dist/cli-bundle/chunks/{files-NGNAIYKK.js → files-EOK4AZI4.js} +2 -2
- package/dist/cli-bundle/chunks/focus-DLBNWL7L.js +2 -0
- package/dist/cli-bundle/chunks/{history-compact-HW62K5XP.js → history-compact-7UGTMLL3.js} +2 -2
- package/dist/cli-bundle/chunks/{history-redact-HVBKUJOW.js → history-redact-4DZRMD6Z.js} +2 -2
- package/dist/cli-bundle/chunks/{history-repair-OPNBH5JJ.js → history-repair-UPOSZW5R.js} +2 -2
- package/dist/cli-bundle/chunks/{learnings-F36PZXT6.js → learnings-GMRNCBS3.js} +2 -2
- package/dist/cli-bundle/chunks/{profile-N3XMWBM7.js → profile-2MUUMHRE.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-BKGHBI7Y.js → register-list-query-LR3SQ5ZF.js} +2 -2
- package/dist/cli-bundle/chunks/register-mutation-SUOHFVWM.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-ARRRKOVN.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-KWV6UD77.js → register-setup-O6AYP6NP.js} +2 -2
- package/dist/cli-bundle/chunks/restore-ZVCVHTB5.js +2 -0
- package/dist/cli-bundle/chunks/{schema-4PJQMGUY.js → schema-FJ4EA3XF.js} +2 -2
- package/dist/cli-bundle/chunks/update-YHV52CSS.js +2 -0
- package/dist/cli-bundle/chunks/update-many-M6YHVNXM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-7J5TUBUJ.js +153 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ONIX2KKW.js → chunk-A7BJ5SS6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-B7LJWAZE.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QM2BIVK7.js → chunk-BIMTMOS7.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-BOGRY7M6.js → chunk-FGKY4MBE.js} +10 -10
- package/dist/cli-bundle/focused-chunks/chunk-G6ETT4QK.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-C2QSL62X.js → chunk-GJ2TG2CW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RO5BQFG3.js → chunk-IPWSFADF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UFCPSWIL.js → chunk-MJ7HWSFK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-2VIIXOAD.js → chunk-N5XU5UVK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-PG2RIZBX.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-OYTK4VNH.js → chunk-PIMMYG7Q.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-K37BB4JL.js → chunk-QVHKCI4T.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SQXVGHMH.js → chunk-RUR5I3TK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SV3O7TSH.js +8 -0
- package/dist/cli-bundle/focused-chunks/{chunk-L6A4NVQC.js → chunk-UIL2M2NA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WVGJAD7L.js → chunk-VLYOEYML.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-W7BJEWHX.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-DQ4PLKEE.js → chunk-WEM2E2PE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-WVIVUWVL.js +5 -0
- package/dist/cli-bundle/focused-chunks/chunk-Y4LDYLLT.js +2 -0
- package/dist/cli-bundle/main.js +4 -4
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +28 -28
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +1 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +1 -1
- package/dist/core/extensions/loader.js +5 -2
- package/dist/core/item/item-format.js +14 -20
- package/dist/core/shared/constants.js +3 -2
- package/dist/core/store/item-store.js +2 -2
- package/dist/core/store/settings.js +2 -2
- package/dist/mcp/server.js +12 -6
- package/dist/mcp/tool-definitions.js +14 -7
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +18 -18
- package/dist/sdk/cli-contracts/agent-output-contracts.js +51 -23
- package/dist/sdk/cli-contracts/commander-mutation-options.js +26 -2
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +28 -2
- package/dist/sdk/cli-contracts/registration-helpers.js +4 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +20 -5
- package/dist/sdk/cli-contracts/tool-schema.js +4 -2
- package/dist/sdk/cli-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts.js +4 -4
- package/dist/sdk/cli-program.js +3 -3
- package/dist/sdk/contracts.d.ts +1 -0
- package/dist/sdk/contracts.js +3 -2
- package/dist/sdk/dependency-provenance.d.ts +2 -0
- package/dist/sdk/dependency-provenance.js +7 -3
- package/dist/sdk/error-code-catalog.d.ts +23 -0
- package/dist/sdk/error-code-catalog.js +25 -5
- package/dist/sdk/generated-error-code-catalog.js +499 -3
- package/dist/sdk/graph/governance.js +3 -3
- package/dist/sdk/graph/remediation.js +3 -3
- package/dist/sdk/graph/run.js +4 -8
- package/dist/sdk/index.d.ts +2 -1
- package/dist/sdk/index.js +4 -3
- package/dist/sdk/item-transaction.d.ts +51 -6
- package/dist/sdk/item-transaction.js +132 -22
- package/dist/sdk/lifecycle/create.d.ts +4 -0
- package/dist/sdk/lifecycle/create.js +26 -10
- package/dist/sdk/lifecycle-policy.d.ts +9 -0
- package/dist/sdk/lifecycle-policy.js +22 -9
- package/dist/sdk/merge/driver.js +6 -3
- package/dist/sdk/output-contracts.d.ts +67 -0
- package/dist/sdk/output-contracts.js +173 -0
- package/dist/sdk/package-import-adapters.js +2 -2
- package/dist/sdk/structured-mutations.d.ts +23 -0
- package/dist/sdk/structured-mutations.js +219 -10
- package/dist/sdk/workspace-snapshot.js +58 -12
- package/dist/sdk/workspace.js +30 -4
- package/docs/COMMANDS.md +40 -10
- package/docs/EXTENSIONS.md +1 -1
- package/docs/MERGE_SAFETY.md +2 -0
- package/docs/PR_REVIEW_LOOP.md +10 -4
- package/docs/README.md +22 -22
- package/docs/RELEASING.md +3 -3
- package/docs/SCRIPTING.md +32 -9
- package/docs/SDK.md +91 -11
- package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +13 -0
- package/docs/TESTING.md +25 -0
- package/docs/examples/sdk-contract-consumer/README.md +11 -1
- package/docs/examples/sdk-contract-consumer/package.json +2 -1
- package/docs/examples/sdk-contract-consumer/parse-receipt.mjs +22 -0
- package/marketplace.json +2 -2
- package/package.json +3 -2
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +292 -14
- package/dist/cli-bundle/chunks/append-DHBRLHHS.js +0 -2
- package/dist/cli-bundle/chunks/chunk-2INN52SU.js +0 -8
- package/dist/cli-bundle/chunks/chunk-6RSK4IFN.js +0 -20
- package/dist/cli-bundle/chunks/chunk-ASJJKA57.js +0 -2
- package/dist/cli-bundle/chunks/chunk-IYAVULRN.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RRQBHQOV.js +0 -2
- package/dist/cli-bundle/chunks/chunk-XBLOD5TZ.js +0 -2
- package/dist/cli-bundle/chunks/close-VLHNN6YB.js +0 -2
- package/dist/cli-bundle/chunks/close-many-LSJNZKU6.js +0 -2
- package/dist/cli-bundle/chunks/comments-AAIA6A6X.js +0 -2
- package/dist/cli-bundle/chunks/copy-Z7YMLEHN.js +0 -2
- package/dist/cli-bundle/chunks/delete-KNOHHQJM.js +0 -2
- package/dist/cli-bundle/chunks/focus-LFRCGALV.js +0 -2
- package/dist/cli-bundle/chunks/register-mutation-GU3DCECN.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-PTWH727R.js +0 -2
- package/dist/cli-bundle/chunks/restore-4HZSLILR.js +0 -2
- package/dist/cli-bundle/chunks/update-E6LPS5IV.js +0 -2
- package/dist/cli-bundle/chunks/update-many-OSIC6KRO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5MTKO7TV.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-6GIZK7VQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AOP2WIZZ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CL75YW32.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-E7OFMWGT.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-I5F5UK3Q.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-T5TSY36R.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-VT6BF2IX.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ne,b as ie,c as se,d as P,e as C}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as ne,b as ie,c as se,d as P,e as C}from"./chunk-ZYHOB3SN.js";import{A as f,Ad as G,Af as te,C as h,Da as N,Hf as oe,Jf as re,La as S,Lf as F,Mf as O,Oa as $,Pa as W,Qf as ae,R as A,Ra as b,Ze as X,_e as J,b as R,c as v,cf as K,d as p,df as Q,ef as T,hd as B,id as M,kf as V,lc as j,mf as Y,qc as z,rc as k,tf as Z,uc as x,uf as ee,vc as U,zd as q}from"./chunk-GE4KCSZP.js";import Re from"fast-json-patch";import L from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="353be665-9f67-5d0e-99c9-6bbb7e927e0b")}catch{}})();function ce(e,t){return ie(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function de(e){let t=P(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:M(K(t))}async function le(e,t,a,d){let r=await F(e,t,a.id_prefix,a.item_format,d);if(r){let c=b(e,r.id),m=await V({pmRoot:e,settings:a,itemId:r.id,commandLabel:"restore"});return{id:r.id,historyPath:c,located:r,historyPolicyWarnings:m.warnings}}let o=ee(t,a.id_prefix),i=Z(t),n=o===i?[o]:[o,i];for(let c of n){let m=b(e,c);if(await R(m))return{id:c,historyPath:m,located:null,historyPolicyWarnings:[]}}throw new h(`Item ${t} not found`,f.NOT_FOUND)}function fe(e,t){let a=T(e),d=T(t),r=Re.compare(a,d),o=new Set;for(let i of r){if(i.path==="/body"||i.path.startsWith("/body/")){o.add("body");continue}let n=i.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];o.add(n.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(o).sort((i,n)=>i.localeCompare(n))}async function ve(e){if(await v(e.subject.historyPath)!==e.historyRawBeforeLock)throw new h(`History for ${e.resolvedId} changed while waiting for lock; retry restore.`,f.CONFLICT);let a=await F(e.pmRoot,e.resolvedId,e.settings.id_prefix,e.settings.item_format,e.typeToFolder),d=a?await O(a,{schema:e.settings.schema}):null;if((d?.raw??null)!==e.currentItemRawBeforeLock)throw new h(`Item ${e.resolvedId} changed while waiting for lock; retry restore.`,f.CONFLICT);return{loadedItemUnderLock:d,existingItemPath:a?.itemPath??null}}function be(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:de(t),originalRaw:null}}function ke(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new h(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,f.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function xe(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await p(e.existingItemPath,e.resolvedOriginalRaw),await L.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await p(e.existingItemPath,e.resolvedOriginalRaw);return}await L.rm(e.restoredItemPath,{force:!0})}async function Te(e){return[...await x({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await x({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function He(e,t,a,d){let r=S(process.cwd(),d.path);if(!await R($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,f.NOT_FOUND);let o=await te(r),i=N(o,j()),n=await le(r,e,o,i.type_to_folder),c=n.id,m=await v(n.historyPath),y=await G(n.historyPath,c);if(y.length===0)throw new h(`No history exists for ${c}; restore is unavailable.`,f.NOT_FOUND);let u=ce(t,y),he=C(P(y,u.historyIndex),u),s=Q(he,{schema:o.schema});if(s.metadata.id!==c)throw new h(`Restore target resolved to item ${s.metadata.id}, expected ${c}.`,f.GENERIC_FAILURE);let me=(n.located?await O(n.located,{schema:o.schema}):null)?.raw??null,_=q(a.author,o.author_default),ue=await Y(r,c,o.locks.ttl_seconds,_,!!a.force,o.governance.force_required_for_stale_lock,o.locks.wait_ms);try{let{loadedItemUnderLock:ye,existingItemPath:w}=await ve({pmRoot:r,resolvedId:c,subject:n,settings:o,typeToFolder:i.type_to_folder,historyRawBeforeLock:m,currentItemRawBeforeLock:me}),D="toon",l=be(ye,y),we=ke({document:l.document,author:_,force:a.force,enforcement:o.governance.ownership_enforcement,resolvedId:c}),g=fe(l.document,s);await U({pm_root:r,operation:"restore",before:l.document,after:s,changed_fields:g,sdk:ae({pmRoot:r,settings:o,typeToFolder:i.type_to_folder})});let ge=B(s,{format:D,schema:o.schema}),I=W(r,s.metadata.type,c,D,i.type_to_folder),Ie=await oe(r,_),E=[];try{await p(I,ge),w&&I!==w&&await L.rm(w);let pe=X({nowIso:A(),author:_,op:"restore",before:l.document,after:s,message:a.message});try{await J(n.historyPath,pe)}catch(Pe){throw await xe({existingItemPath:w,resolvedOriginalRaw:l.originalRaw,restoredItemPath:I}),Pe}E=await re({pmRoot:r,preferredFormat:o.item_format,typeToFolder:i.type_to_folder,schema:o.schema,itemPath:I,previousItemPath:w??void 0,document:s})}finally{await Ie()}let _e=await Te({restoredItemPath:I,historyPath:n.historyPath,before:l.document,after:s});z({id:s.metadata.id,op:"restore",item_type:s.metadata.type,previous_status:l.document.metadata.status,status:s.metadata.status,previous:k(l.document.metadata,g),current:k(s.metadata,g),changed_fields:g});let H=y[u.historyIndex];return{item:s.metadata,restored_from:{kind:u.kind,target:u.raw,history_index:u.historyIndex+1,entry_ts:H.ts,entry_op:H.op},changed_fields:g,warnings:[...n.historyPolicyWarnings,...we,...E,..._e]}}finally{await ue()}}var Ae={applyHistoryPatch:se,changedFields:fe,ensureMaterializedRestoreTarget:C,ensureReplayTarget:ce,extractPatchFailureContext:ne,replayCurrentDocument:de,replayToTarget:P,resolveRestoreSubject:le};export{He as a,Ae as b};
|
|
2
|
+
//# sourceMappingURL=chunk-HNFD72UK.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
`)?!0:go.test(e)}function gn(e,t){let n={},r=[];for(let[o,a]of Object.entries(e)){let i=o.toLowerCase();if(!yo.has(i)){r.push(o);continue}if(Object.hasOwn(n,i))throw new c(`${t} provides key "${o}" more than once after case normalization`,s.USAGE);n[i]=a}if(r.length>0)throw new c(`${t} does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${N.join(", ")}.`,s.USAGE);if(n.cmd!==void 0){if(n.command!==void 0&&n.command.trim()!==n.cmd.trim())throw new c(`${t} command and cmd must match when both are provided`,s.USAGE);let{cmd:o,...a}=n;return{...a,command:a.command??o}}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f592ba2b-fc8d-5930-a2a5-d02835c457a3")}catch{}})();var ne=new Set(["PM_PATH","PM_GLOBAL_PATH","PM_SOURCE_PM_PATH","PM_SOURCE_WORKSPACE_ROOT","FORCE_COLOR"]),re=/^[A-Za-z_][A-Za-z0-9_]*$/,Q=["schema","tracker","auto"];function wn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} env_set must include at least one KEY=VALUE assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} env_set entries must use KEY=VALUE and be separated by semicolons. Example: env_set=PORT=0;PLAYWRIGHT_BASE_URL=http://127.0.0.1:4173`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1);if(!re.test(i))throw new c(`${t} env_set key "${i}" is invalid`,s.USAGE);if(ne.has(i.toUpperCase()))throw new c(`${t} env_set key "${i}" is reserved for sandbox safety`,s.USAGE);r[i]=d}return Object.keys(r).length>0?r:void 0}function En(e,t){if(!e)return;let n=Te(e,{separators:/[;,\n]/});if(n.length===0)throw new c(`${t} env_clear must include at least one environment variable name`,s.USAGE);for(let r of n){if(!re.test(r))throw new c(`${t} env_clear key "${r}" is invalid`,s.USAGE);if(ne.has(r.toUpperCase()))throw new c(`${t} env_clear key "${r}" is reserved for sandbox safety`,s.USAGE)}return n}function bn(e,t,n){if(!e)return;let r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1;throw new c(`${t} ${n} must be one of true|false|1|0|yes|no`,s.USAGE)}function vn(e,t){if(!e)return;let n=e.trim().toLowerCase();if(Q.includes(n))return n;throw new c(`${t} pm_context_mode must be one of: ${Q.join(", ")}`,s.USAGE)}function oe(e){if(!e)return;let t=Te(e,{separators:/[;\n]/});return t.length>0?t:void 0}function Re(e,t,n){let r=oe(e);if(!(!r||r.length===0)){for(let o of r)try{new RegExp(o,"m")}catch(a){throw new c(`${t} ${n} includes invalid regex "${o}": ${a instanceof Error?a.message:String(a)}`,s.USAGE)}return r}}function Sn(e,t){if(!e)return;let n=R(e,"assert_stdout_min_lines");if(!Number.isInteger(n)||n<0)throw new c(`${t} assert_stdout_min_lines must be an integer >= 0`,s.USAGE);return n}function kn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} assert_json_field_equals must include at least one path=value assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} assert_json_field_equals entries must use path=value and be separated by semicolons`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1).trim();if(i.length===0||d.length===0)throw new c(`${t} assert_json_field_equals entries must include non-empty path and value`,s.USAGE);r[i]=d}return Object.keys(r).length>0?r:void 0}function Tn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} assert_json_field_gte must include at least one path=value assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} assert_json_field_gte entries must use path=value and be separated by semicolons`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1).trim();if(i.length===0||d.length===0)throw new c(`${t} assert_json_field_gte entries must include non-empty path and value`,s.USAGE);let l=Number(d);if(!Number.isFinite(l))throw new c(`${t} assert_json_field_gte value for "${i}" must be numeric`,s.USAGE);r[i]=l}return Object.keys(r).length>0?r:void 0}var ho=new Set(N);function ae(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wo(e,t){let n={},r=[];for(let[o,a]of Object.entries(e)){let i=o.toLowerCase();if(!ho.has(i)){r.push(o);continue}if(Object.hasOwn(n,i))throw t(`provides key "${o}" more than once after case normalization`);n[i]=a}if(r.length>0)throw t(`does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${N.join(", ")}.`);return n}function P(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="string")throw n(`field "${t}" must be a JSON string`);return r}}function ee(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r===void 0)return;let o=typeof r=="string"?[r]:r;if(!Array.isArray(o)||o.some(i=>typeof i!="string"))throw n(`field "${t}" must be a string or an array of strings`);let a=o.filter(i=>i.length>0);return a.length>0?a:void 0}function hn(e,t,n){let r=ee(e,t,n);if(r){for(let o of r)try{new RegExp(o,"m")}catch(a){throw n(`field "${t}" includes invalid regex "${o}": ${a instanceof Error?a.message:String(a)}`)}return r}}function te(e,t,n){let r=typeof e=="number"?e:typeof e=="string"&&e.trim().length>0?Number(e.trim()):Number.NaN;if(typeof e=="boolean"||!Number.isFinite(r))throw n(`field "${t}" must be a finite number (or numeric string)`);return r}function Eo(e,t){let n=e.timeout_seconds,r=e.timeout;if(n===void 0&&r===void 0)return;let o=n===void 0?void 0:te(n,"timeout_seconds",t),a=r===void 0?void 0:te(r,"timeout",t);if(o!==void 0&&a!==void 0&&o!==a)throw t("timeout and timeout_seconds must match when both are provided");let i=o??a;if(!Number.isInteger(i)||i<=0)throw t("timeout_seconds must be a positive integer");return i}function bo(e,t){let n=P(e,"scope",t);if(n===void 0)return"project";if(!$.includes(n))throw t(`field "scope" must be one of: ${$.join(", ")}`);return n}function vo(e,t){if(!Object.hasOwn(e,"env_set"))return;let n=e.env_set;if(n===void 0)return;if(!ae(n))throw t('field "env_set" must be a JSON object mapping environment names to string values');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw t(`field "env_set" value for "${o}" must be a string`);if(!re.test(o))throw t(`field "env_set" key "${o}" is invalid`);if(ne.has(o.toUpperCase()))throw t(`field "env_set" key "${o}" is reserved for sandbox safety`);r[o]=a}return Object.keys(r).length>0?r:void 0}function So(e,t){let n=ee(e,"env_clear",t);if(n){for(let r of n){if(!re.test(r))throw t(`field "env_clear" key "${r}" is invalid`);if(ne.has(r.toUpperCase()))throw t(`field "env_clear" key "${r}" is reserved for sandbox safety`)}return n}}function ko(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="boolean")throw n(`field "${t}" must be a JSON boolean (true or false)`);return r}}function To(e,t){if(!Object.hasOwn(e,"assert_stdout_min_lines"))return;let n=e.assert_stdout_min_lines;if(n===void 0)return;let r=te(n,"assert_stdout_min_lines",t);if(!Number.isInteger(r)||r<0)throw t('field "assert_stdout_min_lines" must be an integer >= 0');return r}function xo(e,t){if(!Object.hasOwn(e,"assert_json_field_equals"))return;let n=e.assert_json_field_equals;if(n===void 0)return;if(!ae(n))throw t('field "assert_json_field_equals" must be a JSON object mapping field paths to expected values');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_equals" keys must be non-empty field paths');if(typeof a!="string"&&typeof a!="number"&&typeof a!="boolean")throw t(`field "assert_json_field_equals" value for "${o}" must be a string, number, or boolean`);r[o]=String(a)}return Object.keys(r).length>0?r:void 0}function Ro(e,t){if(!Object.hasOwn(e,"assert_json_field_gte"))return;let n=e.assert_json_field_gte;if(n===void 0)return;if(!ae(n))throw t('field "assert_json_field_gte" must be a JSON object mapping field paths to numeric minimums');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_gte" keys must be non-empty field paths');r[o]=te(a,`assert_json_field_gte.${o}`,t)}return Object.keys(r).length>0?r:void 0}function Ao(e,t,n){let r=p=>new c(`${n} ${t} ${p}`,s.USAGE);if(!ae(e))throw r(`must be a JSON object with linked-test fields. Allowed keys: ${N.join(", ")}.`);let o=wo(e,r),a=P(o,"command",r),i=P(o,"cmd",r);if(a!==void 0&&i!==void 0&&a!==i)throw r("command and cmd must match when both are provided");let d=a??i;if(d===void 0||d.trim().length===0)throw r('requires a non-empty "command" string');let l=P(o,"path",r),u=P(o,"pm_context_mode",r);if(u!==void 0&&!Q.includes(u))throw r(`field "pm_context_mode" must be one of: ${Q.join(", ")}`);let f=P(o,"note",r);return{command:d,path:l!==void 0&&l.length>0?l:void 0,scope:bo(o,r),timeout_seconds:Eo(o,r),pm_context_mode:u,env_set:vo(o,r),env_clear:So(o,r),shared_host_safe:ko(o,"shared_host_safe",r),assert_stdout_contains:ee(o,"assert_stdout_contains",r),assert_stdout_regex:hn(o,"assert_stdout_regex",r),assert_stderr_contains:ee(o,"assert_stderr_contains",r),assert_stderr_regex:hn(o,"assert_stderr_regex",r),assert_stdout_min_lines:To(o,r),assert_json_field_equals:xo(o,r),assert_json_field_gte:Ro(o,r),note:f!==void 0&&f.trim().length>0?f.trim():void 0}}function Qa(e,t){let n=e.trim();if(n.length===0)throw new c(`${t} requires a JSON object or array of objects describing linked-test entries`,s.USAGE);let r;try{r=JSON.parse(n)}catch(a){throw new c(`${t} value is not valid JSON: ${a instanceof Error?a.message:String(a)}. Provide a JSON object or array of objects, e.g. '{"command":"node scripts/check.js --flag value, with commas","timeout_seconds":120}'.`,s.USAGE)}let o=Array.isArray(r)?r:[r];if(o.length===0)throw new c(`${t} array must include at least one linked-test entry object`,s.USAGE);return o.map((a,i)=>Ao(a,o.length>1?`entry ${i+1}`:"entry",t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dcbb6070-7457-5454-abf1-fa8153c8efd6")}catch{}})();function xn(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function Rn(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function An(e){let t=e.trim().toLowerCase();if(t==="med")return"medium";if(ct.includes(t))return t;let n=R(e,"confidence");if(!Number.isInteger(n)||n<0||n>100)throw new c("Confidence must be an integer 0..100 or one of low|med|medium|high",s.USAGE);return n}function Cn(e){let t=e.trim().toLowerCase();if(t==="true"||t==="1")return!0;if(t==="false"||t==="0")return!1;throw new c("Regression must be one of true|false|1|0",s.USAGE)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="afc4f3d5-ba5e-5dd7-abc9-531b319cdb4e")}catch{}})();var Co=new Set(["none","null"]);function In(e={}){return[{optionKey:"dep",clearFlagKey:"clearDeps",valueFlag:"--dep",clearFlag:"--clear-deps",...e.depDisableFlagKey===void 0?{}:{disableFlagKey:e.depDisableFlagKey}},{optionKey:"comment",clearFlagKey:"clearComments",valueFlag:"--comment",clearFlag:"--clear-comments"},{optionKey:"note",clearFlagKey:"clearNotes",valueFlag:"--note",clearFlag:"--clear-notes"},{optionKey:"learning",clearFlagKey:"clearLearnings",valueFlag:"--learning",clearFlag:"--clear-learnings"},{optionKey:"file",clearFlagKey:"clearFiles",valueFlag:"--file",clearFlag:"--clear-files",...e.fileDisableFlagKey===void 0?{}:{disableFlagKey:e.fileDisableFlagKey}},{optionKey:"test",clearFlagKey:"clearTests",valueFlag:"--test",clearFlag:"--clear-tests",...e.testDisableFlagKey===void 0?{}:{disableFlagKey:e.testDisableFlagKey}},{optionKey:"doc",clearFlagKey:"clearDocs",valueFlag:"--doc",clearFlag:"--clear-docs",...e.docDisableFlagKey===void 0?{}:{disableFlagKey:e.docDisableFlagKey}},{optionKey:"reminder",clearFlagKey:"clearReminders",valueFlag:"--reminder",clearFlag:"--clear-reminders"},{optionKey:"event",clearFlagKey:"clearEvents",valueFlag:"--event",clearFlag:"--clear-events"},{optionKey:"typeOption",clearFlagKey:"clearTypeOptions",valueFlag:"--type-option",clearFlag:"--clear-type-options"}]}function I(e){return e===void 0?!1:Co.has(e.trim().toLowerCase())}function Kn(e,t,n){if(!I(e))return;let r=n?` ${n}`:"";throw new c(`${t} no longer accepts "none" or "null".${r}`.trim(),s.USAGE)}function K(e,t,n){if(!e||e.length===0||!e.some(a=>I(a)))return;let o=n?` ${n}`:"";throw new c(`${t} no longer accepts "none" or "null".${o}`.trim(),s.USAGE)}function Un(e,t){for(let n of t){let r=e[n.optionKey];if(!Array.isArray(r)||r.length===0)continue;if(!r.every(d=>typeof d=="string"))throw new c(`${n.valueFlag} entries must be strings.`,s.USAGE);let o=r;if(!o.some(d=>I(d)))continue;if(o.filter(d=>!I(d)).length>0)throw new c(`Cannot mix legacy clear token "none"/"null" with concrete ${n.valueFlag} entries. Use ${n.clearFlag} to clear or provide explicit entries.`,s.USAGE);e[n.optionKey]=void 0,e[n.clearFlagKey]=!0,n.disableFlagKey&&(e[n.disableFlagKey]=!1)}return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e009d7f9-8d50-519a-9a43-632efd3bf443")}catch{}})();var Io=new Set(["event","meeting","reminder","milestone","decision","adr"]);function Ln(e,t,n,r){if(Io.has(t.trim().toLowerCase())||n!==r.open_status)return;let o=Ct("in_progress",r);if(!(o===void 0||o===r.open_status))return{command:`pm start-task ${e}`,to_status:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0062e981-158a-5e6a-b028-6c7cef0f59ba")}catch{}})();var Ko=[{canonical:"tags",aliases:["tags"],optionKey:"tags",metadataKey:"tags"}],Uo=[{canonical:"deadline",aliases:["deadline"],optionKey:"deadline",metadataKey:"deadline"},{canonical:"estimate",aliases:["estimate","estimated_minutes","estimated-minutes"],optionKey:"estimatedMinutes",metadataKey:"estimated_minutes"},{canonical:"acceptance-criteria",aliases:["acceptance_criteria","acceptance-criteria","ac"],optionKey:"acceptanceCriteria",metadataKey:"acceptance_criteria"},{canonical:"definition-of-ready",aliases:["definition_of_ready","definition-of-ready"],optionKey:"definitionOfReady",metadataKey:"definition_of_ready"},{canonical:"order",aliases:["order","rank"],optionKey:"order",metadataKey:"order"},{canonical:"goal",aliases:["goal"],optionKey:"goal",metadataKey:"goal"},{canonical:"objective",aliases:["objective"],optionKey:"objective",metadataKey:"objective"},{canonical:"value",aliases:["value"],optionKey:"value",metadataKey:"value"},{canonical:"impact",aliases:["impact"],optionKey:"impact",metadataKey:"impact"},{canonical:"outcome",aliases:["outcome"],optionKey:"outcome",metadataKey:"outcome"},{canonical:"why-now",aliases:["why_now","why-now"],optionKey:"whyNow",metadataKey:"why_now"}],Dn=[...Ko,...Uo],$n=[{canonical:"assignee",aliases:["assignee"],optionKey:"assignee",metadataKey:"assignee"},{canonical:"parent",aliases:["parent"],optionKey:"parent",metadataKey:"parent"},{canonical:"reviewer",aliases:["reviewer"],optionKey:"reviewer",metadataKey:"reviewer"},{canonical:"risk",aliases:["risk"],optionKey:"risk",metadataKey:"risk"},{canonical:"confidence",aliases:["confidence"],optionKey:"confidence",metadataKey:"confidence"},{canonical:"sprint",aliases:["sprint"],optionKey:"sprint",metadataKey:"sprint"},{canonical:"release",aliases:["release"],optionKey:"release",metadataKey:"release"},{canonical:"blocked-by",aliases:["blocked_by","blocked-by"],optionKey:"blockedBy",metadataKey:"blocked_by"},{canonical:"blocked-reason",aliases:["blocked_reason","blocked-reason"],optionKey:"blockedReason",metadataKey:"blocked_reason"},{canonical:"unblock-note",aliases:["unblock_note","unblock-note"],optionKey:"unblockNote",metadataKey:"unblock_note"},{canonical:"reporter",aliases:["reporter"],optionKey:"reporter",metadataKey:"reporter"},{canonical:"severity",aliases:["severity"],optionKey:"severity",metadataKey:"severity"},{canonical:"environment",aliases:["environment"],optionKey:"environment",metadataKey:"environment"},{canonical:"repro-steps",aliases:["repro_steps","repro-steps"],optionKey:"reproSteps",metadataKey:"repro_steps"},{canonical:"resolution",aliases:["resolution"],optionKey:"resolution",metadataKey:"resolution"},{canonical:"expected-result",aliases:["expected_result","expected-result"],optionKey:"expectedResult",metadataKey:"expected_result"},{canonical:"actual-result",aliases:["actual_result","actual-result"],optionKey:"actualResult",metadataKey:"actual_result"},{canonical:"affected-version",aliases:["affected_version","affected-version"],optionKey:"affectedVersion",metadataKey:"affected_version"},{canonical:"fixed-version",aliases:["fixed_version","fixed-version"],optionKey:"fixedVersion",metadataKey:"fixed_version"},{canonical:"component",aliases:["component"],optionKey:"component",metadataKey:"component"},{canonical:"regression",aliases:["regression"],optionKey:"regression",metadataKey:"regression"},{canonical:"customer-impact",aliases:["customer_impact","customer-impact"],optionKey:"customerImpact",metadataKey:"customer_impact"}];function Nn(e){let t=new Set,n=new Set;if(!e.raw||e.raw.length===0)return{metadataKeys:t,optionKeys:n};for(let r of e.raw){let o=r.trim().toLowerCase();if(!o)throw new c("--unset values must not be empty",s.USAGE);if(I(o))throw new c('--unset no longer accepts "none" or "null". Specify concrete field names such as --unset deadline',s.USAGE);let a=e.resolveDefinition(o);if(!a)throw new c(`Unsupported --unset field "${r}". Supported fields: ${e.supportedFields}`,s.USAGE);t.add(a.metadataKey),n.add(a.optionKey)}return{metadataKeys:t,optionKeys:n}}function Ae(e,t,n){let r=e.trim().toLowerCase();if(!n)return;let o=n.command_to_fields?.get(t)??[];for(let a of o){if(a.allow_unset===!1)continue;let i=new Set;if(typeof a.key=="string"&&a.key.length>0&&i.add(a.key.toLowerCase()),typeof a.metadata_key=="string"&&a.metadata_key.length>0&&i.add(a.metadata_key.toLowerCase()),typeof a.cli_flag=="string"&&a.cli_flag.length>0&&(i.add(a.cli_flag.replaceAll("-","_").toLowerCase()),i.add(a.cli_flag.toLowerCase())),Array.isArray(a.cli_aliases))for(let d of a.cli_aliases)typeof d!="string"||d.length===0||(i.add(d.replaceAll("-","_").toLowerCase()),i.add(d.toLowerCase()));if(i.has(r))return{optionKey:a.key,metadataKey:a.metadata_key}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2fcfbe50-039b-5031-8b18-a208908a0d87")}catch{}})();function On(e,t){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new c(`${t} must be one of true|false|1|0|yes|no`,s.USAGE)}function Ce(e){return e?e.split("|").map(t=>t.trim()).filter(t=>t.length>0):[]}function U(e,t,n){if(!t.includes(e))throw new c(`Invalid ${n} value "${e}". Allowed: ${t.join(", ")}`,s.USAGE);return e}var jn=["recur_freq","recur_interval","recur_count","recur_until","recur_by_weekday","recur_by_month_day","recur_exdates"];function Lo(e,t){return t==="defined"?e!==void 0:!!e}function Fn(e,t,n){if(!Lo(e,n))return;let r=R(e,`event ${t}`);if(!Number.isInteger(r)||r<1)throw new c(`--event ${t} must be an integer >= 1`,s.USAGE);return r}function Do(e,t,n){let r=e?k(e,n,"event.recur_until"):void 0;if(r&&r<t)throw new c("--event recur_until must be at or after start",s.USAGE);return r}function $o(e){return Array.from(new Set(Ce(e).map(t=>U(t.toLowerCase(),lt,"event weekday")))).sort((t,n)=>Ee(t)-Ee(n))}function No(e){return Array.from(new Set(Ce(e).map(t=>{let n=R(t,"event recur_by_month_day");if(!Number.isInteger(n)||n<1||n>31)throw new c("--event recur_by_month_day values must be integers 1..31",s.USAGE);return n}))).sort((t,n)=>t-n)}function Fo(e,t){return Array.from(new Set(Ce(e).map(n=>k(n,t,"event.recur_exdates")))).sort((n,r)=>n.localeCompare(r))}function Gn(e,t,n,r){let o=e.recur_freq?.trim(),a=e.recur_interval?.trim(),i=e.recur_count?.trim(),d=e.recur_until?.trim(),l=e.recur_by_weekday?.trim(),u=e.recur_by_month_day?.trim(),f=e.recur_exdates?.trim();if(![o,a,i,d,l,u,f].some(T=>T!==void 0))return;if(!o)throw new c("--event recurrence fields require recur_freq=<daily|weekly|monthly|yearly>",s.USAGE);let y=U(o.toLowerCase(),dt,"event recurrence frequency"),h=Fn(a,"recur_interval",r),E=Fn(i,"recur_count",r),b=Do(d,t,n),_=$o(l),S=No(u),A=Fo(f,n);return{freq:y,interval:h,count:E,until:b,by_weekday:_.length>0?_:void 0,by_month_day:S.length>0?S:void 0,exdates:A.length>0?A:void 0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1c1314f1-b54f-562c-b6f0-950fcac4c9cc")}catch{}})();function Mn(e,t){if(!t&&/[:,=]/.test(e))throw new c(`Invalid --dep value "${e}". Use a bare item id or id=<id>,kind=<kind>.`,s.USAGE)}function Pn(e,t,n=Z()){for(let r of t??[])try{wt(e,r.id,r.kind,n)}catch(o){throw new c(rt(o),s.USAGE,{code:"dependency_edge_not_allowed",why:`${e} -> ${r.id} (${r.kind}) violates the active relationship-kind policy`})}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8248687e-ba97-5e1b-afbf-a322a72eb1aa")}catch{}})();var Vn="--event end must be strictly after start. Equal start/end timestamps are treated as an instant event (end is dropped); an end earlier than start is rejected. Omit end for an instant event or set end later than start.",Oo="--event end and duration are mutually exclusive; provide only one (use duration=<relative> like duration=2h, duration=30min, or duration=PT30M, or set an explicit end).",jo=/^([+-]?)(\d+)(min|mins|minute|minutes)$/i,Go=/^([+-]?)[Pp][Tt](?:(\d+)[Hh])?(?:(\d+)[Mm])?(?:(\d+)[Ss])?$/,zn=1e3,Ie=60*zn,Mo=60*Ie;function qn(e,t){let n=new Date(e);if(!Number.isFinite(n.getTime()))throw new c(`Invalid event.duration value "${t}". Duration is out of supported timestamp range.`,s.USAGE);return n.toISOString()}function Po(e,t){let n=new Date(e),r=t.trim(),o=jo.exec(r);if(o){let d=o[1]==="-"?-1:1,l=Number.parseInt(o[2],10)*d;return qn(n.getTime()+l*Ie,r)}let a=Go.exec(r);if(a){let[,d,l,u,f]=a;if(l||u||f){let y=d==="-"?-1:1,h=Number.parseInt(l??"0",10),E=Number.parseInt(u??"0",10),b=Number.parseInt(f??"0",10),_=h*Mo+E*Ie+b*zn;return qn(n.getTime()+y*_,r)}}let i=r.startsWith("+")||r.startsWith("-")?r:`+${r}`;return k(i,n,"event.duration")}function Bn(e,t,n,r){if(t&&n)throw new c(Oo,s.USAGE);if(n){let a=Po(e,n);if(a<e)throw new c(Vn,s.USAGE);return a===e?void 0:a}if(!t)return;let o=k(t,r,"event.end");if(o<e)throw new c(Vn,s.USAGE);if(o!==e)return o}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fd41d2bf-7be0-55ee-9048-a9d5092a9a21")}catch{}})();var Vo=["at","date","text","title"],qo=["start","date","end","duration","title","description","location","timezone","all_day",...jn],zo=["key","value"];function Yn(e,t){return t==="trimmed"?e?.trim():e}function Bo(e,t){return t==="defined"?e!==void 0:!!e}function Wn(e,t,n){return e.map(r=>{let o=x(r,"--reminder");L(o,"--reminder",Vo);let a=Yn(o.at??o.date,n.valueMode),i=Yn(o.text??o.title,n.valueMode);if(!a||!i)throw new c("--reminder requires at=<iso|relative> or date=<iso|relative>, plus text=<value> or title=<value>",s.USAGE);let d=i.trim();if(!d)throw new c("--reminder text must not be empty",s.USAGE);return{at:k(a,t,"reminder.at"),text:d}})}function Jn(e,t,n){return e.map(r=>{let o=x(r,"--event");L(o,"--event",qo);let a=(o.start??o.date)?.trim();if(!a)throw new c("--event requires start=<iso|relative> or date=<iso|relative>",s.USAGE);let i=k(a,t,"event.start"),d=o.end?.trim(),l=o.duration?.trim(),u=Bn(i,d,l,t),f=o.title,p=o.description,y=o.location,h=o.timezone,E=f?.trim(),b=p?.trim(),_=y?.trim(),S=h?.trim(),A=[["title",f,E],["description",p,b],["location",y,_],["timezone",h,S]];for(let[O,D,de]of A)if(D!==void 0&&!de)throw new c(`--event ${O} must not be empty`,s.USAGE);let T=o.all_day?.trim(),z=Gn(o,i,t,n.recurrenceEmptyNumericGuard),V=Bo(T,n.allDayEmptyGuard)?On(T,"--event all_day"):void 0;return{start_at:i,end_at:u,title:E,description:b,location:_,all_day:V,timezone:S,recurrence:z}})}function Hn(e){let t={};for(let n of e){let r=n.trim();if(r.length===0)throw new c("--type-option values must not be empty",s.USAGE);let o,a;if(r.includes(",")||r.includes(`
|
|
3
|
-
`)||r.startsWith("```")||/^(?:[-*+]\s+)?(?:key|value)\s*[:=]/i.test(r)){let d=x(r,"--type-option");L(d,"--type-option",
|
|
4
|
-
`))return!0;let n=t.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${n})\\s*[:=]`,"i").test(e)?!0:Bt(e)}function Ke(e,t,n,r){return!t||t.length===0?{values:void 0,explicitEmpty:!1}:(K(t,e,e==="--comment"?"Use --clear-comments to clear comments.":e==="--note"?"Use --clear-notes to clear notes.":"Use --clear-learnings to clear learnings."),{values:t.map(i=>{let d=i.trim(),l=()=>{if(d.length===0)throw new c(`${e} requires text=<value>`,s.USAGE);return{created_at:n,author:r,text:d}},u;try{u=x(i,e)}catch(y){if(e==="--comment"||e==="--note"||e==="--learning")return l();throw y}if(Object.keys(u).filter(y=>!Jo.has(y)).length>0)return{created_at:Ue(u.created_at,n),author:v(u.author)??r,text:d};let p=u.text??"";if(p==="")throw new c(`${e} requires text=<value>`,s.USAGE);return{created_at:Ue(u.created_at,n),author:v(u.author)??r,text:p}}),explicitEmpty:!1})}function ra(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--file","Use --clear-files to clear linked files."),{values:e.map(n=>{let r=n.trim(),o=ce(r,se),a=o?x(n,"--file"):{path:r};if(o&&L(a,"--file",se),!a.path)throw new c("--file requires path=<value> or a bare file path",s.USAGE);return{path:a.path,scope:U(a.scope??"project",$,"file scope"),note:v(a.note)}}),explicitEmpty:!1})}function oa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--test","Use --clear-tests to clear linked tests."),{values:e.map(n=>{let r=n.trim(),o=_n(r)?gn(x(n,"--test"),"--test"):{command:r},a=v(o.command),i=v(o.path);if(!a)throw new c("--test requires command=<value> or a bare command (path=<value> is optional metadata)",s.USAGE);let d=v(o.timeout_seconds),l=v(o.timeout);if(d&&l&&d!==l)throw new c("--test timeout and timeout_seconds must match when both are provided",s.USAGE);let u=d??l;return{command:a,path:i,scope:U(o.scope??"project",$,"test scope"),timeout_seconds:u?R(u,"timeout_seconds"):void 0,pm_context_mode:vn(o.pm_context_mode,"--test"),env_set:wn(o.env_set,"--test"),env_clear:En(o.env_clear,"--test"),shared_host_safe:bn(o.shared_host_safe,"--test","shared_host_safe"),assert_stdout_contains:oe(o.assert_stdout_contains),assert_stdout_regex:Re(o.assert_stdout_regex,"--test","assert_stdout_regex"),assert_stderr_contains:oe(o.assert_stderr_contains),assert_stderr_regex:Re(o.assert_stderr_regex,"--test","assert_stderr_regex"),assert_stdout_min_lines:Sn(o.assert_stdout_min_lines,"--test"),assert_json_field_equals:kn(o.assert_json_field_equals,"--test"),assert_json_field_gte:Tn(o.assert_json_field_gte,"--test"),note:v(o.note)}}),explicitEmpty:!1})}function aa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--doc","Use --clear-docs to clear linked docs."),{values:e.map(n=>{let r=n.trim(),o=ce(r,se),a=o?x(n,"--doc"):{path:r};if(o&&L(a,"--doc",se),!a.path)throw new c("--doc requires path=<value> or a bare doc path",s.USAGE);return{path:a.path,scope:U(a.scope??"project",$,"doc scope"),note:v(a.note)}}),explicitEmpty:!1})}function ia(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--reminder","Use --clear-reminders to clear reminders."),{values:Wn(e,new Date(t),{valueMode:"raw"}),explicitEmpty:!1})}function sa(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--event","Use --clear-events to clear linked events."),{values:Jn(e,new Date(t),{allDayEmptyGuard:"defined",recurrenceEmptyNumericGuard:"defined"}),explicitEmpty:!1})}function ca(e,t,n,r=[]){let o=[...nt.filter(a=>e[a]!==void 0),...r.filter(a=>e[a]!==void 0),...t.length>0?["body"]:[],...n.map(a=>`unset:${a}`)];return Array.from(new Set(o))}function or(e,t){let n=e??"";if(t.length===0)return n;let r=`explicit_unset=${t.join(",")}`;return n?`${n} | ${r}`:r}function Le(e,t,n){let r=be("create",e);if(!r)throw new c(`Unsupported ${n} entry "${e}" for type "${t}"`,s.CONFLICT);return r}function da(e){return{scalarValues:{title:e.title,description:e.description,type:e.type,status:e.status,priority:e.priority,tags:e.tags,body:e.body,deadline:e.deadline,estimatedMinutes:e.estimatedMinutes,acceptanceCriteria:e.acceptanceCriteria,definitionOfReady:e.definitionOfReady,order:e.order??e.rank,goal:e.goal,objective:e.objective,value:e.value,impact:e.impact,outcome:e.outcome,whyNow:e.whyNow,author:e.author,message:e.message,assignee:e.assignee,parent:e.parent,reviewer:e.reviewer,risk:e.risk,confidence:e.confidence,sprint:e.sprint,release:e.release,blockedBy:e.blockedBy,blockedReason:e.blockedReason,unblockNote:e.unblockNote,reporter:e.reporter,severity:e.severity,environment:e.environment,reproSteps:e.reproSteps,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult,affectedVersion:e.affectedVersion,fixedVersion:e.fixedVersion,component:e.component,regression:e.regression,customerImpact:e.customerImpact},repeatableValues:{dep:e.dep,comment:e.comment,note:e.note,learning:e.learning,file:e.file,test:e.test,doc:e.doc,reminder:e.reminder,event:e.event,typeOption:e.typeOption,field:e.field},addTags:e.addTags}}function $e(e,t){if(t==="tags")return e.scalarValues.tags!==void 0||Array.isArray(e.addTags)&&e.addTags.length>0;if(Object.prototype.hasOwnProperty.call(e.scalarValues,t))return e.scalarValues[t]!==void 0;if(Object.prototype.hasOwnProperty.call(e.repeatableValues,t)){let n=e.repeatableValues[t];return Array.isArray(n)&&n.length>0}return!1}function la(e,t){let n=new Set(["title","type"]);if(t!=="strict")return n;for(let r of e.required_create_fields)n.add(Le(r,e.name,"required_create_fields"));for(let r of e.required_create_repeatables)n.add(Le(r,e.name,"required_create_repeatables"));return n}function ua(e,t,n,r){for(let o of e)if(!(!$e(t,o)&&!n.has(o)))throw new c(`Option ${M("create",o)} is disabled for type "${r}" by command_option_policies`,s.USAGE)}function fa(e,t,n){if(t!=="strict")return;let r=e.filter(a=>n.has(a));if(r.length===0)return;let o=[...new Set(r.map(a=>M("create",a)))].sort((a,i)=>a.localeCompare(i));throw new c(`Strict create mode requires concrete values for ${o.join(", ")}; --unset/--clear-* directives cannot satisfy required options`,s.USAGE)}function ma(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--type-option","Use --clear-type-options to clear existing type options."),{values:Hn(e),explicitEmpty:!1})}async function pa(e){let t=Yt();return{...e,body:await t.resolveValue(e.body,"--body"),dep:await t.resolveList(e.dep,"--dep"),comment:await t.resolveList(e.comment,"--comment"),note:await t.resolveList(e.note,"--note"),learning:await t.resolveList(e.learning,"--learning"),file:await t.resolveList(e.file,"--file"),test:await t.resolveList(e.test,"--test"),doc:await t.resolveList(e.doc,"--doc"),reminder:await t.resolveList(e.reminder,"--reminder"),event:await t.resolveList(e.event,"--event"),typeOption:await t.resolveList(e.typeOption,"--type-option"),field:await t.resolveList(e.field,"--field")}}function ya(e,t){if(e===void 0)return t;let n=e.trim().toLowerCase();if(n.length===0)return t;if(n==="strict"||n==="progressive")return n;throw new c(`Invalid --create-mode value "${e}". Allowed: ${Yo.join(", ")}`,s.USAGE)}function _a(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0)throw new c("--schedule-preset must not be empty",s.USAGE);if(t==="lightweight"||t==="lite"||t==="schedule-lite")return"lightweight";throw new c(`Invalid --schedule-preset value "${e}". Allowed: ${Wo.join(", ")}`,s.USAGE)}function ga(e,t,n){let r=ya(e,n);if(t===void 0)return r;if(typeof e=="string"&&e.trim().length>0&&r==="strict")throw new c("--schedule-preset lightweight cannot be combined with --create-mode strict. Use --create-mode progressive or omit --create-mode.",s.USAGE);return"progressive"}function ha(e,t,n,r){let o=e.name,a=da(t),i=la(e,n),d=mt(e,"create",i);if(d.errors.length>0)throw new c(d.errors.join("; "),s.CONFLICT);ua(d.disabled,a,r,o),fa(d.required,n,r);let l=f=>f==="status"&&e.default_status!==void 0?!0:$e(a,f),u=d.required.filter(f=>!l(f));return[...new Set(u.map(f=>M("create",f)))].sort((f,p)=>f.localeCompare(p))}var ar=/^Missing required type option "([^"]+)" for type "([^"]+)"$/;function ir(e,t){let n=[];for(let r of e){let o=r.match(ar);o&&o[2]===t&&n.push(o[1])}return[...new Set(n)].sort((r,o)=>r.localeCompare(o))}function sr(e,t){return e.filter(n=>{let r=n.match(ar);return!r||r[2]!==t})}function wa(e,t,n,r){let o=sr(e,t);if(o.length===0)return;let a=Ne(n,[],[],r.open_status);throw new c(o.join("; "),s.USAGE,{code:"invalid_argument_value",required:`Provide valid --type-option key/value pairs for type "${t}".`,examples:[a],nextSteps:[`Run "pm create --help --type ${t}" to review allowed type-option keys and values.`]})}function cr(e,t){let r=e.options.find(o=>o.key===t)?.values[0];return typeof r=="string"&&r.trim().length>0?r:"<value>"}function dr(e,t,n){switch(e){case"--title":return["--title",`"${t} example title"`];case"--description":return["--description",`"${t} example description"`];case"--type":return["--type",t];case"--status":return["--status",n];case"--priority":return["--priority","1"];case"--message":return["--message",`"Create ${t} item"`];case"--dep":return["--dep",'"id=pm-xxxx,kind=related,author=maintainer,created_at=now"'];case"--comment":return["--comment",'"author=maintainer,created_at=now,text=Implementation context"'];case"--note":return["--note",'"author=maintainer,created_at=now,text=Design note"'];case"--learning":return["--learning",'"author=maintainer,created_at=now,text=Durable lesson"'];case"--file":return["--file",'"path=src/example.ts,note=implementation file"'];case"--test":return["--test",'"command=node scripts/run-tests.mjs test,timeout_seconds=240"'];case"--doc":return["--doc",'"path=README.md,note=reference doc"'];default:return[e,'"<value>"']}}function Ne(e,t,n,r){let o=["pm","create","--title",`"${e.name} example title"`,"--description",`"${e.name} example description"`,"--type",e.name],a=["--status","--priority","--message"],i=[...new Set([...a,...t])],d=new Set(["--title","--description","--type"]);for(let l of i)d.has(l)||(o.push(...dr(l,e.name,r)),d.add(l));for(let l of n){let u=cr(e,l);o.push("--type-option",`${l}=${u}`)}return o.join(" ")}function lr(e,t){let n=e?.trim();if(!n)throw t==="--title"?e!==void 0?new c("Title cannot be empty or whitespace-only. Retry: pass a non-empty title with --title.",s.USAGE):new c('Missing required option --title. Why required: every item needs a human-readable title for lookup, search, and reporting. Retry: pass the title as the first positional argument (example: pm create "Fix login bug" --type Issue) or with --title.',s.USAGE):new c(`Missing required option ${t}`,s.USAGE);return n}function Ea(e){return Jt(e)}function ur(e,t){let n={};for(let[r,o]of Object.entries(e))n[r]=Array.isArray(o)?[...o]:o;for(let[r,o]of Object.entries(t))o!==void 0&&(n[r]=Array.isArray(o)?[...o]:o);return n}function fr(e){return e.trim().toLowerCase().split(/\s+/).filter(t=>t.length>0).join(" ")}function mr(){let e=J();return e?e.commands.some(t=>t.action==="templates-show"||fr(t.command)==="templates show"):!1}function pr(e,t){if(typeof e!="object"||e===null||!("options"in e))throw new c(`Templates package returned invalid payload for template "${t}". Expected an options object.`,s.GENERIC_FAILURE);let n=e.options;if(typeof n!="object"||n===null||Array.isArray(n))throw new c(`Templates package returned invalid options for template "${t}".`,s.GENERIC_FAILURE);let r={};for(let[o,a]of Object.entries(n)){if(typeof a=="string"||typeof a=="number"||typeof a=="boolean"){r[o]=a;continue}if(Array.isArray(a)&&a.every(i=>typeof i=="string")){r[o]=[...a];continue}throw new c(`Templates package returned unsupported option value for "${o}" in template "${t}".`,s.GENERIC_FAILURE)}return r}async function yr(e,t,n){if(!mr())throw new c("--template requires the templates package. Install it first (for example: pm install templates --project).",s.USAGE);let r=await St({command:"templates show",args:[e],options:{},global:t,pm_root:n});if(!r.handled){let o=r.warnings.length>0?` (${r.warnings.join(", ")})`:"";throw new c(`Unable to resolve template "${e}" via templates package. Run "pm templates show ${e}" for details.${o}`,s.USAGE)}return pr(r.result,e)}function ba(e){return Qe(_t(e)).then(t=>{if(!t)throw new c(`Tracker is not initialized at ${e}. Run pm init first.`,s.NOT_FOUND)})}function g(e,t,n){return e.has(t)||n===void 0?void 0:v(n)}function F(e,t,n,r){return e.has(t)||n===void 0?void 0:r(n)}var va=new Set(["milestone","meeting","reminder","event"]);function _r(e,t,n,r){let o=t!==void 0,a=n!==void 0&&n.length>0,i=r!==void 0&&r.length>0;return va.has(e.toLowerCase())&&!o&&!a&&!i}function Sa(e,t,n,r,o){let a=[];return e.toLowerCase()==="event"&&(o===void 0||o.length===0)&&a.push(`event_without_schedule:${t}:no_time_set`),_r(e,n,r,o)&&a.push(`calendar_item_without_schedule:${t}:no_deadline_or_reminder_or_event (hint: set --deadline <ISO> or --reminder "<when>", or link an Event via --event "start=<ISO>,end=<ISO>"; otherwise this item never appears on pm calendar)`),a}async function ka(e,t,n,r){if(e!==void 0||n.has("parent")||t.parent!==void 0)return{parent:e,parentSource:void 0};let o=await on(r);return o===void 0?{parent:e,parentSource:void 0}:{parent:o,parentSource:"focus"}}async function Ta(e,t,n,r,o,a){let i=Gt(o);if(Vt(r,i,t.id_prefix),await X(e,i,t.id_prefix,t.item_format,n.type_to_folder))return{parent:i,warnings:[]};let l=H(i,t.id_prefix);return{parent:i,warnings:Pt(l,a).warnings}}async function xa(e){return e.parent===void 0?{parent:void 0,warnings:[]}:await Ta(e.pmRoot,e.settings,e.typeRegistry,e.itemId,e.parent,e.policy)}async function Ra(e){if(e.explicitId===void 0)return jt(e.pmRoot,e.settings.id_prefix,{tokenLength:e.settings.ids.token_length,typeToFolder:e.typeRegistry.type_to_folder,probeExisting:!1});if(typeof e.explicitId!="string")throw new c("--id must be a string",s.USAGE);let t=e.explicitId.trim();if(t.length===0||Mt(t))throw new c("--id must not be empty or use a placeholder token",s.USAGE);let n=H(t,e.settings.id_prefix);if(!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(n))throw new c("--id must contain only letters, numbers, and dashes after normalization",s.USAGE);return n}function Zn(e,t,n,r,o){let a=g(e,t,n);if(a===void 0)return{value:void 0,warnings:[]};let i=Ht(r,a,o);return{value:i.value,warnings:i.warnings}}async function Aa(e){let{pmRoot:t,settings:n,typeRegistry:r,statusRegistry:o,blockedBy:a,status:i,statusExplicit:d,nowValue:l,author:u}=e,f=e.dependencyValues;if(a===void 0)return{dependencyValues:f,status:i};let p=H(a,n.id_prefix),y=await X(t,p,n.id_prefix,n.item_format,r.type_to_folder);if(!y)return{dependencyValues:f,status:i};if((f??[]).some(b=>b.id===y.id&&b.kind==="blocked_by")||(f=[...f??[],{id:y.id,kind:"blocked_by",created_at:l,author:u,source_kind:"cli:create:blocked_by",author_source:"detected"}]),d)return{dependencyValues:f,status:i};let E=o.blocked_statuses.has("blocked")?"blocked":[...o.blocked_statuses].sort((b,_)=>b.localeCompare(_))[0]??o.open_status;return{dependencyValues:f,status:E}}function Ca(e,t,n){if(typeof e.createMode=="string"&&e.createMode.trim().toLowerCase()==="strict")return;let o=t.governance.create_default_type?.trim();if(o&&o.length>0&&q(o,n)){e.type=o;return}q("Task",n)&&(e.type="Task")}function Ia(e,t){return e.options.filter(n=>be("create",n.key)===void 0).flatMap(n=>{let r=t[n.key];if(r===void 0)return[];if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return[n];throw new c(`Template custom type option "${n.key}" must be a string, number, or boolean value`,s.USAGE)})}async function Ka(e,t,n,r,o){let a=e;if(a.template!==void 0){let h=a.template.trim();if(h.length===0)throw new c("--template must not be empty. Omit --template to disable template usage.",s.USAGE);let E=await yr(h,t,n);a=er(ur(E,a))}if(a.type===void 0&&Ca(a,r,o),a.type===void 0)throw new c("Missing required option --type <value>",s.USAGE);let i=q(a.type,o);if(!i){let h=Xt(a.type),E=h?q(h,o):void 0;if(E)ke(`[pm] note: type '${a.type.trim()}' is not defined; using closest match '${E}'. Run 'pm schema add-type "${a.type.trim()}"' to track it as a distinct type.`),a.type=E,i=E;else throw new c(Zt(a.type,o.types,Rt(n,r.schema)),s.USAGE)}let d=ft(i,o);if(!d)throw new c(`Invalid type value "${a.type}"`,s.USAGE);let l=d.name,u=Ia(d,a),f=u.map(h=>`${h.key}=${String(a[h.key])}`);if(f.length>0){a.typeOption=[...f,...a.typeOption??[]];for(let h of u)delete a[h.key]}let p=_a(a.schedulePreset);if(p!==void 0&&!Qn.has(l))throw new c(`--schedule-preset ${p} is only supported for Reminder, Meeting, or Event types`,s.USAGE);let y=ga(a.createMode,p,r.governance.create_mode_default);return{resolvedOptions:a,typeDefinition:d,type:l,schedulePreset:p,createMode:y}}function Ua(e,t){let n=new Set(t.metadataKeys),r=new Set(t.optionKeys),o=[{enabled:e.clearDeps,optionKey:"dep",clearFlag:"--clear-deps",valueFlag:"--dep",values:e.dep,metadataKey:"dependencies"},{enabled:e.clearComments,optionKey:"comment",clearFlag:"--clear-comments",valueFlag:"--comment",values:e.comment,metadataKey:"comments"},{enabled:e.clearNotes,optionKey:"note",clearFlag:"--clear-notes",valueFlag:"--note",values:e.note,metadataKey:"notes"},{enabled:e.clearLearnings,optionKey:"learning",clearFlag:"--clear-learnings",valueFlag:"--learning",values:e.learning,metadataKey:"learnings"},{enabled:e.clearFiles,optionKey:"file",clearFlag:"--clear-files",valueFlag:"--file",values:e.file,metadataKey:"files"},{enabled:e.clearTests,optionKey:"test",clearFlag:"--clear-tests",valueFlag:"--test",values:e.test,metadataKey:"tests"},{enabled:e.clearDocs,optionKey:"doc",clearFlag:"--clear-docs",valueFlag:"--doc",values:e.doc,metadataKey:"docs"},{enabled:e.clearReminders,optionKey:"reminder",clearFlag:"--clear-reminders",valueFlag:"--reminder",values:e.reminder,metadataKey:"reminders"},{enabled:e.clearEvents,optionKey:"event",clearFlag:"--clear-events",valueFlag:"--event",values:e.event,metadataKey:"events"},{enabled:e.clearTypeOptions,optionKey:"typeOption",clearFlag:"--clear-type-options",valueFlag:"--type-option",values:e.typeOption,metadataKey:"type_options"}];for(let a of o)if(a.enabled){if(a.values&&a.values.length>0)throw new c(`Cannot combine ${a.clearFlag} with ${a.valueFlag}`,s.USAGE);n.add(a.metadataKey),r.add(a.optionKey)}return{explicitUnsets:n,clearOptionKeys:r}}function La(e,t){let n={tags:e.tags!==void 0,deadline:e.deadline!==void 0,estimatedMinutes:e.estimatedMinutes!==void 0,acceptanceCriteria:e.acceptanceCriteria!==void 0,definitionOfReady:e.definitionOfReady!==void 0,order:e.order!==void 0||e.rank!==void 0,goal:e.goal!==void 0,objective:e.objective!==void 0,value:e.value!==void 0,impact:e.impact!==void 0,outcome:e.outcome!==void 0,whyNow:e.whyNow!==void 0,author:e.author!==void 0,assignee:e.assignee!==void 0,parent:e.parent!==void 0,reviewer:e.reviewer!==void 0,risk:e.risk!==void 0,confidence:e.confidence!==void 0,sprint:e.sprint!==void 0,release:e.release!==void 0,blockedBy:e.blockedBy!==void 0,blockedReason:e.blockedReason!==void 0,unblockNote:e.unblockNote!==void 0,reporter:e.reporter!==void 0,severity:e.severity!==void 0,environment:e.environment!==void 0,reproSteps:e.reproSteps!==void 0,resolution:e.resolution!==void 0,expectedResult:e.expectedResult!==void 0,actualResult:e.actualResult!==void 0,affectedVersion:e.affectedVersion!==void 0,fixedVersion:e.fixedVersion!==void 0,component:e.component!==void 0,regression:e.regression!==void 0,customerImpact:e.customerImpact!==void 0};for(let[r,o]of Object.entries(n)){if(!o||!t.optionKeys.has(r))continue;let a=ie.get(r)??r;throw new c(`Cannot combine --unset ${a} with ${M("create",r)}`,s.USAGE)}}function Da(e){let t=(n,r)=>{let o=ie.get(r),a=o?`Use --unset ${o} to clear this field.`:void 0;Kn(n,M("create",r),a)};t(e.tags,"tags"),t(e.deadline,"deadline"),t(e.estimatedMinutes,"estimatedMinutes"),t(e.acceptanceCriteria,"acceptanceCriteria"),t(e.definitionOfReady,"definitionOfReady"),t(e.order??e.rank,"order"),t(e.goal,"goal"),t(e.objective,"objective"),t(e.value,"value"),t(e.impact,"impact"),t(e.outcome,"outcome"),t(e.whyNow,"whyNow"),t(e.author,"author"),t(e.assignee,"assignee"),t(e.parent,"parent"),t(e.reviewer,"reviewer"),t(e.risk,"risk"),t(e.confidence,"confidence"),t(e.sprint,"sprint"),t(e.release,"release"),t(e.blockedBy,"blockedBy"),t(e.blockedReason,"blockedReason"),t(e.unblockNote,"unblockNote"),t(e.reporter,"reporter"),t(e.severity,"severity"),t(e.environment,"environment"),t(e.reproSteps,"reproSteps"),t(e.resolution,"resolution"),t(e.expectedResult,"expectedResult"),t(e.actualResult,"actualResult"),t(e.affectedVersion,"affectedVersion"),t(e.fixedVersion,"fixedVersion"),t(e.component,"component"),t(e.regression,"regression"),t(e.customerImpact,"customerImpact")}function $a(e,t,n){for(let r of Object.keys(e))if(n.metadataKeys.has(r))throw new c(`Cannot combine --unset ${r.replaceAll("_","-")} with --field ${r}=...`,s.USAGE);for(let r of Object.keys(t.values??{}))if(n.metadataKeys.has(r))throw new c(`Cannot combine --unset ${r.replaceAll("_","-")} with its value flag`,s.USAGE)}function Na(e){let{combinedMissingFlags:t,typeDefinition:n,missingRequiredCreateFlags:r,missingRequiredTypeOptionKeys:o,openStatus:a,type:i,createMode:d}=e;if(t.length===0)return;let l=Ne(n,r,o,a),u=[`Run "pm create --help --type ${i}" for type-aware required option guidance.`];t.includes("--title")&&u.push('Title can also be passed as the first positional argument (example: pm create "Your title" --type '+i+")."),d==="strict"&&(u.push('For staged onboarding, retry with "--create-mode progressive".'),Qn.has(i)&&u.push('For minimal scheduling inputs, try "--schedule-preset lightweight".'));let f=t.length===1?`Missing required option ${t[0]} for type "${i}"`:`Missing required options ${t.join(", ")} for type "${i}"`;throw new c(f,s.USAGE,{code:"missing_required_option",required:`Provide all required create options and type options for type "${i}" in one invocation.`,examples:[l],nextSteps:u,recovery:d==="strict"?{recovery_mode:"compact",missing_required_fields:t,suggested_flags:["--create-mode progressive",...t]}:void 0})}function Fa(e,t){if(e.has("tags")&&Array.isArray(t.addTags)&&t.addTags.length>0)throw new c("Cannot combine --unset tags with --add-tags",s.USAGE);let n=e.has("tags")?[]:t.tags!==void 0?qt(t.tags):[];return zt(n,t.addTags)}function Oa(e,t){if(t.order!==void 0&&t.rank!==void 0&&t.order!==t.rank)throw new c("--order and --rank must match when both are provided",s.USAGE);let n=t.order??t.rank,r=F(e,"order",n,o=>R(o,"order"));if(r!==void 0&&!Number.isInteger(r))throw new c("Order must be an integer",s.USAGE);return r}function ja(e,t,n,r,o){return e!==t.close_status||!n.governance.require_close_reason?{closeReason:void 0,warnings:[]}:{closeReason:an({explicit:r.message,resolution:o},!0).closeReason,warnings:[]}}async function Ga(e){let{pmRoot:t,type:n,id:r,settings:o,typeRegistry:a,author:i,extensionFieldNames:d,afterDocument:l,beforeDocument:u,historyMessage:f,changedFields:p,nowValue:y,similarityCandidate:h,allowDuplicate:E}=e,b=gt(t,n,r,o.item_format,a.type_to_folder),_=ht(t,r),S=await Ot(t,r,o.locks.ttl_seconds,i,!1,o.governance.force_required_for_stale_lock,o.locks.wait_ms),A=[];try{let T=l.metadata.dependencies&&l.metadata.dependencies.length>0?await nn(t,o.item_format,a.type_to_folder,void 0,o.schema):void 0;if(await X(t,r,o.id_prefix,o.item_format,a.type_to_folder))throw new c(`Item "${r}" already exists`,s.CONFLICT);await vt({pm_root:t,operation:"create",before:null,after:l,changed_fields:p,sdk:rn({pmRoot:t,settings:o,typeToFolder:a.type_to_folder})});let V=await en(t,i,{required:o.governance.duplicate_detection_mode==="strict"&&E!==!0}),O=[];try{o.governance.duplicate_detection_mode==="strict"&&E!==!0&&await xe(h,{pmRoot:t,mode:"strict",threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:!1}),await et(b,Lt(l,{format:o.item_format,schema:o.schema,extensionFieldNames:d}));try{let D=Nt({nowIso:y,author:i,op:"create",before:u,after:l,message:f});await Ft(_,D)}catch(D){throw await tt(b),D}O=await tn({pmRoot:t,preferredFormat:o.item_format,typeToFolder:a.type_to_folder,schema:o.schema,itemPath:b,document:l})}finally{await V()}A=[...T?yn(T,[...T,l.metadata],r):[],...O,...await ve({path:b,scope:"project",op:"create",item_id:l.metadata.id,item_type:l.metadata.type,before:u,after:l,changed_fields:p}),...await ve({path:_,scope:"project",op:"create:history",item_id:l.metadata.id,item_type:l.metadata.type,before:u,after:l,changed_fields:p})],Et({id:l.metadata.id,op:"create",item_type:l.metadata.type,status:l.metadata.status,current:bt(l.metadata,p),changed_fields:p})}finally{await S()}return A}async function Pi(e,t){let n=er(await pa(e)),r=yt(process.cwd(),t.path);await ba(r);let o=await Qt(r),a=At(o.schema),i=It(o.schema),d=ut(o,J()),l=await Ka(n,t,r,o,d);n=l.resolvedOptions;let{typeDefinition:u,type:f,createMode:p}=l,y=tr(n.unset,i),{explicitUnsets:h,clearOptionKeys:E}=Ua(n,y);La(n,y),Da(n);let b=ha(u,n,p,E),_=ot(),S=$t(v(n.author),o.author_default),A=nr(n.dep,_,o.id_prefix,S),T=Ke("--comment",n.comment,_,S),z=Ke("--note",n.note,_,S),V=Ke("--learning",n.learning,_,S),O=ra(n.file),D=oa(n.test),de=aa(n.doc),le=ia(n.reminder,_),ue=sa(n.event,_),gr=ma(n.typeOption),fe=pt(f,gr.values,d),me=J(),Fe=kt(me),pe=Tt(n.field,me),B=Kt(n,i,f);$a(pe,B,y);let Oe=ir(fe.errors,f),hr=Oe.map(w=>`--type-option ${w}=<value>`),wr=[...new Set([...b,...hr,...B.missing_required_flags])].sort((w,we)=>w.localeCompare(we));Na({combinedMissingFlags:wr,typeDefinition:u,missingRequiredCreateFlags:b,missingRequiredTypeOptionKeys:Oe,openStatus:a.open_status,type:f,createMode:p}),wa(fe.errors,f,u,a);let C=await Ra({pmRoot:r,settings:o,typeRegistry:d,explicitId:n.id}),j=n.status!==void 0?Qo(n.status,a):ea(u,a),Er=n.priority!==void 0?Ea(n.priority):2,m=y.metadataKeys,br=Fa(m,n),ye=F(m,"deadline",n.deadline,w=>k(w,new Date(_),"deadline")),vr=F(m,"estimated_minutes",n.estimatedMinutes,w=>Wt(w,"estimated-minutes")),Sr=g(m,"acceptance_criteria",n.acceptanceCriteria),kr=g(m,"definition_of_ready",n.definitionOfReady),Tr=Oa(m,n),xr=g(m,"goal",n.goal),Rr=g(m,"objective",n.objective),Ar=g(m,"value",n.value),Cr=g(m,"impact",n.impact),Ir=g(m,"outcome",n.outcome),Kr=g(m,"why_now",n.whyNow),Ur=g(m,"assignee",n.assignee),Lr=m.has("author")?void 0:v(n.author)??S,Dr=g(m,"parent",n.parent),je=await ka(Dr,n,m,r),_e=je.parent,$r=je.parentSource,Nr=g(m,"reviewer",n.reviewer),Fr=F(m,"risk",n.risk,w=>U(xn(w),it,"risk")),Or=F(m,"confidence",n.confidence,w=>An(w)),jr=n.allowMissingParent===!0&&o.validation.parent_reference==="strict_error"?"warn":o.validation.parent_reference,Ge=o.validation.sprint_release_format,G=Sa(f,C,ye,le.values,ue.values),Me=await xa({itemId:C,parent:_e,pmRoot:r,settings:o,typeRegistry:d,policy:jr});_e=Me.parent,G.push(...Me.warnings);let Pe=Zn(m,"sprint",n.sprint,"sprint",Ge),Gr=Pe.value;G.push(...Pe.warnings);let Ve=Zn(m,"release",n.release,"release",Ge),Mr=Ve.value;G.push(...Ve.warnings);let qe=g(m,"blocked_by",n.blockedBy),ze=await Aa({pmRoot:r,settings:o,typeRegistry:d,statusRegistry:a,blockedBy:qe,dependencyValues:A.values,status:j,statusExplicit:n.status!==void 0,nowValue:_,author:S}),Be=ze.dependencyValues;Pn(C,Be),j=ze.status;let Pr=g(m,"blocked_reason",n.blockedReason),Vr=g(m,"unblock_note",n.unblockNote),qr=g(m,"reporter",n.reporter),zr=F(m,"severity",n.severity,w=>U(Rn(w),st,"severity")),Br=g(m,"environment",n.environment),Yr=g(m,"repro_steps",n.reproSteps),Ye=g(m,"resolution",n.resolution),Wr=g(m,"expected_result",n.expectedResult),Jr=g(m,"actual_result",n.actualResult),Hr=g(m,"affected_version",n.affectedVersion),Xr=g(m,"fixed_version",n.fixedVersion),Zr=g(m,"component",n.component),Qr=F(m,"regression",n.regression,w=>Cn(w)),eo=g(m,"customer_impact",n.customerImpact),ge=lr(n.title,"--title"),he=n.description??"",Y=n.body??"",We=await xe({title:ge,description:he,body:Y},{pmRoot:r,mode:o.governance.duplicate_detection_mode,threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:n.allowDuplicate});G.push(...un(We));let Je=ja(j,a,o,n,Ye),to=Je.closeReason,He=j===a.close_status?_:void 0;G.push(...Je.warnings);let W=Ut({id:C,title:ge,description:he,type:f,type_options:fe.normalized,status:j,closed_at:He,completed_at:He,close_reason:to,priority:Er,tags:br,created_at:_,updated_at:_,deadline:ye,assignee:Ur,author:Lr,estimated_minutes:vr,acceptance_criteria:Sr,definition_of_ready:kr,order:Tr,goal:xr,objective:Rr,value:Ar,impact:Cr,outcome:Ir,why_now:Kr,parent:_e,reviewer:Nr,risk:Fr,confidence:Or,sprint:Gr,release:Mr,blocked_by:qe,blocked_reason:Pr,unblock_note:Vr,reporter:qr,severity:zr,environment:Br,repro_steps:Yr,resolution:Ye,expected_result:Wr,actual_result:Jr,affected_version:Hr,fixed_version:Xr,component:Zr,regression:Qr,customer_impact:eo,dependencies:Be,comments:T.values,notes:z.values,learnings:V.values,files:O.values,tests:D.values,docs:de.values,reminders:le.values,events:ue.values,...pe,...B.values});try{xt(W,me)}catch(w){throw new c(w instanceof Error?w.message:"Invalid extension item field values",s.USAGE)}let no=Dt({metadata:W,body:Y},{schema:o.schema,extensionFieldNames:Fe}),ro={metadata:{},body:""},Xe=[...h].sort((w,we)=>w.localeCompare(we)),oo=or(n.message,Xe),Ze=ca(W,Y,Xe,[...Object.keys(pe),...Object.keys(B.values??{})]),ao=await Ga({pmRoot:r,type:f,id:C,settings:o,typeRegistry:d,author:S,extensionFieldNames:Fe,afterDocument:no,beforeDocument:ro,historyMessage:oo,changedFields:Ze,nowValue:_,similarityCandidate:{title:ge,description:he,body:Y},allowDuplicate:n.allowDuplicate}),io=structuredClone(W),so=Ln(C,f,j,a);return _r(f,ye,le.values,ue.values)&&ke(`[pm] warning: ${f} '${C}' has no deadline/reminder/event \u2014 it will not appear on the calendar. Add one via 'pm update ${C} --deadline <ISO>' or 'pm update ${C} --event "start=<ISO>,end=<ISO>"'.`),{item:io,changed_fields:Ze,warnings:[...G,...ao],...Object.fromEntries([["parent_source",$r],["next_transition",so],["similarity_advisory",We]].filter(w=>w[1]!==void 0))}}var Vi={buildHistoryMessage:or,buildInvalidLogSeedKeysMessage:Zo,buildTypeSpecificCreateExample:Ne,collectMissingRequiredTypeOptionKeys:ir,createExampleTokensForFlag:dr,filterNonMissingTypeOptionErrors:sr,hasTemplatesShowHandler:mr,hasCreateOptionValue:$e,loadCreateTemplateOptionsFromRuntime:yr,looksLikeStructuredEntry:ce,mergeCreateOptionsWithTemplate:ur,normalizeCreatePolicyOptionKey:Le,normalizeDependencyKindInput:rr,parseDependencies:nr,normalizeExtensionCommandPath:fr,parseCreateUnsetTargets:tr,requireStringOption:lr,readTemplateOptionsFromRuntimeResult:pr,resolveRuntimeCreateUnsetDefinition:(e,t)=>Ae(e,"create",t),typeOptionExampleValue:cr};export{xn as a,Rn as b,An as c,Cn as d,In as e,I as f,Kn as g,K as h,Un as i,U as j,Wn as k,Jn as l,Hn as m,Mn as n,Pn as o,yn as p,_n as q,gn as r,ne as s,re as t,Q as u,wn as v,En as w,bn as x,vn as y,oe as z,Re as A,Sn as B,kn as C,Tn as D,Qa as E,Ko as F,Uo as G,$n as H,Nn as I,Ae as J,Ke as K,ra as L,oa as M,aa as N,lr as O,Pi as P,Vi as Q};
|
|
5
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as ln,e as Re}from"./chunk-YSO3YFZ4.js";import{k as dn}from"./chunk-NE5VRDAI.js";import{d as an,e as sn,f as cn,g as Z}from"./chunk-L3AZOELJ.js";import{d as on}from"./chunk-NY4T3JWN.js";import{ga as rn,j as jt,k as Gt,l as Mt,m as Pt,n as Wt,p as Jt,s as Ht}from"./chunk-A62CYISG.js";import{a as xe}from"./chunk-A6KGKEWT.js";import{a as qt,d as Vt,f as x,g as zt,h as L,i as Bt,j as R,k as Yt}from"./chunk-42E7YPLG.js";import{k as Xt}from"./chunk-M72BKL5Q.js";import{A as s,Aa as M,Af as Zt,C as c,Da as lt,Ea as V,Ec as St,Fa as ut,Fc as kt,Ga as ft,Gc as Tt,H as nt,Ha as mt,Hf as Qt,Jf as en,La as pt,Lc as xt,Lf as X,Nc as Rt,Oa as yt,Oc as At,Of as tn,Pa as _t,Pc as It,Qf as nn,R as rt,Ra as gt,Uc as Ct,Ue as Te,V as k,Ze as $t,_e as Nt,ad as ke,b as Ze,d as Qe,ed as Kt,f as et,ga as ot,ha as $,hd as Ut,ia as at,id as Lt,ja as it,ka as st,kb as ht,lc as J,mf as Ft,pa as ct,qa as dt,qc as wt,ra as be,rc as Et,uc as Se,uf as H,v as tt,vc as bt,vf as Ot,za as ve,zc as vt,zd as Dt}from"./chunk-GE4KCSZP.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4198a3b2-2541-50eb-bec5-93ac58601f40")}catch{}})();function un(e){return[...e].sort().join("\0")}function lo(e,t,n){let r=e.successors.get(t);r?r.push(n):e.successors.set(t,[n]);let o=e.predecessors.get(n);o?o.push(t):e.predecessors.set(n,[t])}function fn(e,t,n,r,o){let a=t.resolve(o);if(a?.ordering!==!0)return;let i=cn(r),d=i===void 0?void 0:e.canonicalIds.get(i.toLowerCase());if(d===void 0)return;let l=(a.precedence??"source_before_target")==="source_before_target";lo(e,l?n:d,l?d:n)}function uo(e,t){let n={successors:new Map,predecessors:new Map,canonicalIds:new Map},r=e.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0);for(let o of r){let a=o.id.trim();n.canonicalIds.set(a.toLowerCase(),a)}for(let o of r){let a=o.id.trim();fn(n,t,a,o.blocked_by,"blocked_by");for(let i of o.dependencies??[])typeof i!="object"||i===null||fn(n,t,a,i.id,typeof i.kind=="string"?i.kind:"related")}for(let o of[n.successors,n.predecessors])for(let a of o.values())a.sort();return n}function fo(e,t){let n=new Set([t]),r=[t];for(;r.length>0;){let o=r.pop();for(let a of[e.successors,e.predecessors])for(let i of a.get(o)??[])n.has(i)||(n.add(i),r.push(i))}return n}function mo(e,t){let n=new Map;for(let r of t){let o=(e.successors.get(r)??[]).filter(a=>t.has(a));o.length>0&&n.set(r,o)}return n}function mn(e,t,n){let r=uo(e,t),o=r.canonicalIds.get(n.trim().toLowerCase());if(o===void 0)return{cycles:[],successors:new Map,canonical:n};let a=mo(r,fo(r,o));return{cycles:dn(a).filter(i=>i.includes(o)),successors:a,canonical:o}}function po(e,t,n){let r=new Set(t),o=r.has(n)?n:t[0];if(e.get(o)?.includes(o))return[o,o];for(let a of e.get(o)??[]){if(!r.has(a))continue;let i=yo(e,r,o,a);if(i)return i}return[...t,t[0]]}function yo(e,t,n,r){let o=[[r]],a=new Set([n,r]);for(;o.length>0;){let i=o.shift(),d=i.at(-1);for(let l of e.get(d)??[]){if(l===n)return[n,...i,n];!t.has(l)||a.has(l)||(a.add(l),o.push([...i,l]))}}}function pn(e,t,n){let r=Z(),o=mn(e,r,n),a=mn(t,r,n),i=new Set(o.cycles.map(un));return a.cycles.filter(d=>!i.has(un(d))).map(d=>`ordering_cycle_created:${po(a.successors,d,a.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2b20ab37-ffbe-5c65-ac0f-800abf876e16")}catch{}})();var N=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","env_set","env_clear","shared_host_safe","assert_stdout_contains","assert_stdout_regex","assert_stderr_contains","assert_stderr_regex","assert_stdout_min_lines","assert_json_field_equals","assert_json_field_gte","note"],_o=new Set(N),go=N.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),ho=new RegExp(`^(?:[-*+]\\s+)?(?:${go})\\s*[:=]`,"i");function yn(e){return e.startsWith("```")||e.includes(`
|
|
2
|
+
`)?!0:ho.test(e)}function _n(e,t){let n={},r=[];for(let[o,a]of Object.entries(e)){let i=o.toLowerCase();if(!_o.has(i)){r.push(o);continue}if(Object.hasOwn(n,i))throw new c(`${t} provides key "${o}" more than once after case normalization`,s.USAGE);n[i]=a}if(r.length>0)throw new c(`${t} does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${N.join(", ")}.`,s.USAGE);if(n.cmd!==void 0){if(n.command!==void 0&&n.command.trim()!==n.cmd.trim())throw new c(`${t} command and cmd must match when both are provided`,s.USAGE);let{cmd:o,...a}=n;return{...a,command:a.command??o}}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f592ba2b-fc8d-5930-a2a5-d02835c457a3")}catch{}})();var ne=new Set(["PM_PATH","PM_GLOBAL_PATH","PM_SOURCE_PM_PATH","PM_SOURCE_WORKSPACE_ROOT","FORCE_COLOR"]),re=/^[A-Za-z_][A-Za-z0-9_]*$/,Q=["schema","tracker","auto"];function hn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} env_set must include at least one KEY=VALUE assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} env_set entries must use KEY=VALUE and be separated by semicolons. Example: env_set=PORT=0;PLAYWRIGHT_BASE_URL=http://127.0.0.1:4173`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1);if(!re.test(i))throw new c(`${t} env_set key "${i}" is invalid`,s.USAGE);if(ne.has(i.toUpperCase()))throw new c(`${t} env_set key "${i}" is reserved for sandbox safety`,s.USAGE);r[i]=d}return Object.keys(r).length>0?r:void 0}function wn(e,t){if(!e)return;let n=xe(e,{separators:/[;,\n]/});if(n.length===0)throw new c(`${t} env_clear must include at least one environment variable name`,s.USAGE);for(let r of n){if(!re.test(r))throw new c(`${t} env_clear key "${r}" is invalid`,s.USAGE);if(ne.has(r.toUpperCase()))throw new c(`${t} env_clear key "${r}" is reserved for sandbox safety`,s.USAGE)}return n}function En(e,t,n){if(!e)return;let r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1;throw new c(`${t} ${n} must be one of true|false|1|0|yes|no`,s.USAGE)}function bn(e,t){if(!e)return;let n=e.trim().toLowerCase();if(Q.includes(n))return n;throw new c(`${t} pm_context_mode must be one of: ${Q.join(", ")}`,s.USAGE)}function oe(e){if(!e)return;let t=xe(e,{separators:/[;\n]/});return t.length>0?t:void 0}function Ae(e,t,n){let r=oe(e);if(!(!r||r.length===0)){for(let o of r)try{new RegExp(o,"m")}catch(a){throw new c(`${t} ${n} includes invalid regex "${o}": ${a instanceof Error?a.message:String(a)}`,s.USAGE)}return r}}function vn(e,t){if(!e)return;let n=R(e,"assert_stdout_min_lines");if(!Number.isInteger(n)||n<0)throw new c(`${t} assert_stdout_min_lines must be an integer >= 0`,s.USAGE);return n}function Sn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} assert_json_field_equals must include at least one path=value assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} assert_json_field_equals entries must use path=value and be separated by semicolons`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1).trim();if(i.length===0||d.length===0)throw new c(`${t} assert_json_field_equals entries must include non-empty path and value`,s.USAGE);r[i]=d}return Object.keys(r).length>0?r:void 0}function kn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} assert_json_field_gte must include at least one path=value assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} assert_json_field_gte entries must use path=value and be separated by semicolons`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1).trim();if(i.length===0||d.length===0)throw new c(`${t} assert_json_field_gte entries must include non-empty path and value`,s.USAGE);let l=Number(d);if(!Number.isFinite(l))throw new c(`${t} assert_json_field_gte value for "${i}" must be numeric`,s.USAGE);r[i]=l}return Object.keys(r).length>0?r:void 0}var wo=new Set(N);function ae(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Eo(e,t){let n={},r=[];for(let[o,a]of Object.entries(e)){let i=o.toLowerCase();if(!wo.has(i)){r.push(o);continue}if(Object.hasOwn(n,i))throw t(`provides key "${o}" more than once after case normalization`);n[i]=a}if(r.length>0)throw t(`does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${N.join(", ")}.`);return n}function P(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="string")throw n(`field "${t}" must be a JSON string`);return r}}function ee(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r===void 0)return;let o=typeof r=="string"?[r]:r;if(!Array.isArray(o)||o.some(i=>typeof i!="string"))throw n(`field "${t}" must be a string or an array of strings`);let a=o.filter(i=>i.length>0);return a.length>0?a:void 0}function gn(e,t,n){let r=ee(e,t,n);if(r){for(let o of r)try{new RegExp(o,"m")}catch(a){throw n(`field "${t}" includes invalid regex "${o}": ${a instanceof Error?a.message:String(a)}`)}return r}}function te(e,t,n){let r=typeof e=="number"?e:typeof e=="string"&&e.trim().length>0?Number(e.trim()):Number.NaN;if(typeof e=="boolean"||!Number.isFinite(r))throw n(`field "${t}" must be a finite number (or numeric string)`);return r}function bo(e,t){let n=e.timeout_seconds,r=e.timeout;if(n===void 0&&r===void 0)return;let o=n===void 0?void 0:te(n,"timeout_seconds",t),a=r===void 0?void 0:te(r,"timeout",t);if(o!==void 0&&a!==void 0&&o!==a)throw t("timeout and timeout_seconds must match when both are provided");let i=o??a;if(!Number.isInteger(i)||i<=0)throw t("timeout_seconds must be a positive integer");return i}function vo(e,t){let n=P(e,"scope",t);if(n===void 0)return"project";if(!$.includes(n))throw t(`field "scope" must be one of: ${$.join(", ")}`);return n}function So(e,t){if(!Object.hasOwn(e,"env_set"))return;let n=e.env_set;if(n===void 0)return;if(!ae(n))throw t('field "env_set" must be a JSON object mapping environment names to string values');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw t(`field "env_set" value for "${o}" must be a string`);if(!re.test(o))throw t(`field "env_set" key "${o}" is invalid`);if(ne.has(o.toUpperCase()))throw t(`field "env_set" key "${o}" is reserved for sandbox safety`);r[o]=a}return Object.keys(r).length>0?r:void 0}function ko(e,t){let n=ee(e,"env_clear",t);if(n){for(let r of n){if(!re.test(r))throw t(`field "env_clear" key "${r}" is invalid`);if(ne.has(r.toUpperCase()))throw t(`field "env_clear" key "${r}" is reserved for sandbox safety`)}return n}}function To(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="boolean")throw n(`field "${t}" must be a JSON boolean (true or false)`);return r}}function xo(e,t){if(!Object.hasOwn(e,"assert_stdout_min_lines"))return;let n=e.assert_stdout_min_lines;if(n===void 0)return;let r=te(n,"assert_stdout_min_lines",t);if(!Number.isInteger(r)||r<0)throw t('field "assert_stdout_min_lines" must be an integer >= 0');return r}function Ro(e,t){if(!Object.hasOwn(e,"assert_json_field_equals"))return;let n=e.assert_json_field_equals;if(n===void 0)return;if(!ae(n))throw t('field "assert_json_field_equals" must be a JSON object mapping field paths to expected values');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_equals" keys must be non-empty field paths');if(typeof a!="string"&&typeof a!="number"&&typeof a!="boolean")throw t(`field "assert_json_field_equals" value for "${o}" must be a string, number, or boolean`);r[o]=String(a)}return Object.keys(r).length>0?r:void 0}function Ao(e,t){if(!Object.hasOwn(e,"assert_json_field_gte"))return;let n=e.assert_json_field_gte;if(n===void 0)return;if(!ae(n))throw t('field "assert_json_field_gte" must be a JSON object mapping field paths to numeric minimums');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_gte" keys must be non-empty field paths');r[o]=te(a,`assert_json_field_gte.${o}`,t)}return Object.keys(r).length>0?r:void 0}function Io(e,t,n){let r=p=>new c(`${n} ${t} ${p}`,s.USAGE);if(!ae(e))throw r(`must be a JSON object with linked-test fields. Allowed keys: ${N.join(", ")}.`);let o=Eo(e,r),a=P(o,"command",r),i=P(o,"cmd",r);if(a!==void 0&&i!==void 0&&a!==i)throw r("command and cmd must match when both are provided");let d=a??i;if(d===void 0||d.trim().length===0)throw r('requires a non-empty "command" string');let l=P(o,"path",r),u=P(o,"pm_context_mode",r);if(u!==void 0&&!Q.includes(u))throw r(`field "pm_context_mode" must be one of: ${Q.join(", ")}`);let f=P(o,"note",r);return{command:d,path:l!==void 0&&l.length>0?l:void 0,scope:vo(o,r),timeout_seconds:bo(o,r),pm_context_mode:u,env_set:So(o,r),env_clear:ko(o,r),shared_host_safe:To(o,"shared_host_safe",r),assert_stdout_contains:ee(o,"assert_stdout_contains",r),assert_stdout_regex:gn(o,"assert_stdout_regex",r),assert_stderr_contains:ee(o,"assert_stderr_contains",r),assert_stderr_regex:gn(o,"assert_stderr_regex",r),assert_stdout_min_lines:xo(o,r),assert_json_field_equals:Ro(o,r),assert_json_field_gte:Ao(o,r),note:f!==void 0&&f.trim().length>0?f.trim():void 0}}function ei(e,t){let n=e.trim();if(n.length===0)throw new c(`${t} requires a JSON object or array of objects describing linked-test entries`,s.USAGE);let r;try{r=JSON.parse(n)}catch(a){throw new c(`${t} value is not valid JSON: ${a instanceof Error?a.message:String(a)}. Provide a JSON object or array of objects, e.g. '{"command":"node scripts/check.js --flag value, with commas","timeout_seconds":120}'.`,s.USAGE)}let o=Array.isArray(r)?r:[r];if(o.length===0)throw new c(`${t} array must include at least one linked-test entry object`,s.USAGE);return o.map((a,i)=>Io(a,o.length>1?`entry ${i+1}`:"entry",t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dcbb6070-7457-5454-abf1-fa8153c8efd6")}catch{}})();function Tn(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function xn(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function Rn(e){let t=e.trim().toLowerCase();if(t==="med")return"medium";if(st.includes(t))return t;let n=R(e,"confidence");if(!Number.isInteger(n)||n<0||n>100)throw new c("Confidence must be an integer 0..100 or one of low|med|medium|high",s.USAGE);return n}function An(e){let t=e.trim().toLowerCase();if(t==="true"||t==="1")return!0;if(t==="false"||t==="0")return!1;throw new c("Regression must be one of true|false|1|0",s.USAGE)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="afc4f3d5-ba5e-5dd7-abc9-531b319cdb4e")}catch{}})();var Co=new Set(["none","null"]);function In(e={}){return[{optionKey:"dep",clearFlagKey:"clearDeps",valueFlag:"--dep",clearFlag:"--clear-deps",...e.depDisableFlagKey===void 0?{}:{disableFlagKey:e.depDisableFlagKey}},{optionKey:"comment",clearFlagKey:"clearComments",valueFlag:"--comment",clearFlag:"--clear-comments"},{optionKey:"note",clearFlagKey:"clearNotes",valueFlag:"--note",clearFlag:"--clear-notes"},{optionKey:"learning",clearFlagKey:"clearLearnings",valueFlag:"--learning",clearFlag:"--clear-learnings"},{optionKey:"file",clearFlagKey:"clearFiles",valueFlag:"--file",clearFlag:"--clear-files",...e.fileDisableFlagKey===void 0?{}:{disableFlagKey:e.fileDisableFlagKey}},{optionKey:"test",clearFlagKey:"clearTests",valueFlag:"--test",clearFlag:"--clear-tests",...e.testDisableFlagKey===void 0?{}:{disableFlagKey:e.testDisableFlagKey}},{optionKey:"doc",clearFlagKey:"clearDocs",valueFlag:"--doc",clearFlag:"--clear-docs",...e.docDisableFlagKey===void 0?{}:{disableFlagKey:e.docDisableFlagKey}},{optionKey:"reminder",clearFlagKey:"clearReminders",valueFlag:"--reminder",clearFlag:"--clear-reminders"},{optionKey:"event",clearFlagKey:"clearEvents",valueFlag:"--event",clearFlag:"--clear-events"},{optionKey:"typeOption",clearFlagKey:"clearTypeOptions",valueFlag:"--type-option",clearFlag:"--clear-type-options"}]}function C(e){return e===void 0?!1:Co.has(e.trim().toLowerCase())}function Cn(e,t,n){if(!C(e))return;let r=n?` ${n}`:"";throw new c(`${t} no longer accepts "none" or "null".${r}`.trim(),s.USAGE)}function K(e,t,n){if(!e||e.length===0||!e.some(a=>C(a)))return;let o=n?` ${n}`:"";throw new c(`${t} no longer accepts "none" or "null".${o}`.trim(),s.USAGE)}function Kn(e,t){for(let n of t){let r=e[n.optionKey];if(!Array.isArray(r)||r.length===0)continue;if(!r.every(d=>typeof d=="string"))throw new c(`${n.valueFlag} entries must be strings.`,s.USAGE);let o=r;if(!o.some(d=>C(d)))continue;if(o.filter(d=>!C(d)).length>0)throw new c(`Cannot mix legacy clear token "none"/"null" with concrete ${n.valueFlag} entries. Use ${n.clearFlag} to clear or provide explicit entries.`,s.USAGE);e[n.optionKey]=void 0,e[n.clearFlagKey]=!0,n.disableFlagKey&&(e[n.disableFlagKey]=!1)}return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e009d7f9-8d50-519a-9a43-632efd3bf443")}catch{}})();var Ko=new Set(["event","meeting","reminder","milestone","decision","adr"]);function Un(e,t,n,r){if(Ko.has(t.trim().toLowerCase())||n!==r.open_status)return;let o=At("in_progress",r);if(!(o===void 0||o===r.open_status))return{command:`pm start-task ${e}`,to_status:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0062e981-158a-5e6a-b028-6c7cef0f59ba")}catch{}})();var Uo=[{canonical:"tags",aliases:["tags"],optionKey:"tags",metadataKey:"tags"}],Lo=[{canonical:"deadline",aliases:["deadline"],optionKey:"deadline",metadataKey:"deadline"},{canonical:"estimate",aliases:["estimate","estimated_minutes","estimated-minutes"],optionKey:"estimatedMinutes",metadataKey:"estimated_minutes"},{canonical:"acceptance-criteria",aliases:["acceptance_criteria","acceptance-criteria","ac"],optionKey:"acceptanceCriteria",metadataKey:"acceptance_criteria"},{canonical:"definition-of-ready",aliases:["definition_of_ready","definition-of-ready"],optionKey:"definitionOfReady",metadataKey:"definition_of_ready"},{canonical:"order",aliases:["order","rank"],optionKey:"order",metadataKey:"order"},{canonical:"goal",aliases:["goal"],optionKey:"goal",metadataKey:"goal"},{canonical:"objective",aliases:["objective"],optionKey:"objective",metadataKey:"objective"},{canonical:"value",aliases:["value"],optionKey:"value",metadataKey:"value"},{canonical:"impact",aliases:["impact"],optionKey:"impact",metadataKey:"impact"},{canonical:"outcome",aliases:["outcome"],optionKey:"outcome",metadataKey:"outcome"},{canonical:"why-now",aliases:["why_now","why-now"],optionKey:"whyNow",metadataKey:"why_now"}],Ln=[...Uo,...Lo],Dn=[{canonical:"assignee",aliases:["assignee"],optionKey:"assignee",metadataKey:"assignee"},{canonical:"parent",aliases:["parent"],optionKey:"parent",metadataKey:"parent"},{canonical:"reviewer",aliases:["reviewer"],optionKey:"reviewer",metadataKey:"reviewer"},{canonical:"risk",aliases:["risk"],optionKey:"risk",metadataKey:"risk"},{canonical:"confidence",aliases:["confidence"],optionKey:"confidence",metadataKey:"confidence"},{canonical:"sprint",aliases:["sprint"],optionKey:"sprint",metadataKey:"sprint"},{canonical:"release",aliases:["release"],optionKey:"release",metadataKey:"release"},{canonical:"blocked-by",aliases:["blocked_by","blocked-by"],optionKey:"blockedBy",metadataKey:"blocked_by"},{canonical:"blocked-reason",aliases:["blocked_reason","blocked-reason"],optionKey:"blockedReason",metadataKey:"blocked_reason"},{canonical:"unblock-note",aliases:["unblock_note","unblock-note"],optionKey:"unblockNote",metadataKey:"unblock_note"},{canonical:"reporter",aliases:["reporter"],optionKey:"reporter",metadataKey:"reporter"},{canonical:"severity",aliases:["severity"],optionKey:"severity",metadataKey:"severity"},{canonical:"environment",aliases:["environment"],optionKey:"environment",metadataKey:"environment"},{canonical:"repro-steps",aliases:["repro_steps","repro-steps"],optionKey:"reproSteps",metadataKey:"repro_steps"},{canonical:"resolution",aliases:["resolution"],optionKey:"resolution",metadataKey:"resolution"},{canonical:"expected-result",aliases:["expected_result","expected-result"],optionKey:"expectedResult",metadataKey:"expected_result"},{canonical:"actual-result",aliases:["actual_result","actual-result"],optionKey:"actualResult",metadataKey:"actual_result"},{canonical:"affected-version",aliases:["affected_version","affected-version"],optionKey:"affectedVersion",metadataKey:"affected_version"},{canonical:"fixed-version",aliases:["fixed_version","fixed-version"],optionKey:"fixedVersion",metadataKey:"fixed_version"},{canonical:"component",aliases:["component"],optionKey:"component",metadataKey:"component"},{canonical:"regression",aliases:["regression"],optionKey:"regression",metadataKey:"regression"},{canonical:"customer-impact",aliases:["customer_impact","customer-impact"],optionKey:"customerImpact",metadataKey:"customer_impact"}];function $n(e){let t=new Set,n=new Set;if(!e.raw||e.raw.length===0)return{metadataKeys:t,optionKeys:n};for(let r of e.raw){let o=r.trim().toLowerCase();if(!o)throw new c("--unset values must not be empty",s.USAGE);if(C(o))throw new c('--unset no longer accepts "none" or "null". Specify concrete field names such as --unset deadline',s.USAGE);let a=e.resolveDefinition(o);if(!a)throw new c(`Unsupported --unset field "${r}". Supported fields: ${e.supportedFields}`,s.USAGE);t.add(a.metadataKey),n.add(a.optionKey)}return{metadataKeys:t,optionKeys:n}}function Ie(e,t,n){let r=e.trim().toLowerCase();if(!n)return;let o=n.command_to_fields?.get(t)??[];for(let a of o){if(a.allow_unset===!1)continue;let i=new Set;if(typeof a.key=="string"&&a.key.length>0&&i.add(a.key.toLowerCase()),typeof a.metadata_key=="string"&&a.metadata_key.length>0&&i.add(a.metadata_key.toLowerCase()),typeof a.cli_flag=="string"&&a.cli_flag.length>0&&(i.add(a.cli_flag.replaceAll("-","_").toLowerCase()),i.add(a.cli_flag.toLowerCase())),Array.isArray(a.cli_aliases))for(let d of a.cli_aliases)typeof d!="string"||d.length===0||(i.add(d.replaceAll("-","_").toLowerCase()),i.add(d.toLowerCase()));if(i.has(r))return{optionKey:a.key,metadataKey:a.metadata_key}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2fcfbe50-039b-5031-8b18-a208908a0d87")}catch{}})();function Fn(e,t){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new c(`${t} must be one of true|false|1|0|yes|no`,s.USAGE)}function Ce(e){return e?e.split("|").map(t=>t.trim()).filter(t=>t.length>0):[]}function U(e,t,n){if(!t.includes(e))throw new c(`Invalid ${n} value "${e}". Allowed: ${t.join(", ")}`,s.USAGE);return e}var On=["recur_freq","recur_interval","recur_count","recur_until","recur_by_weekday","recur_by_month_day","recur_exdates"];function Do(e,t){return t==="defined"?e!==void 0:!!e}function Nn(e,t,n){if(!Do(e,n))return;let r=R(e,`event ${t}`);if(!Number.isInteger(r)||r<1)throw new c(`--event ${t} must be an integer >= 1`,s.USAGE);return r}function $o(e,t,n){let r=e?k(e,n,"event.recur_until"):void 0;if(r&&r<t)throw new c("--event recur_until must be at or after start",s.USAGE);return r}function No(e){return Array.from(new Set(Ce(e).map(t=>U(t.toLowerCase(),dt,"event weekday")))).sort((t,n)=>be(t)-be(n))}function Fo(e){return Array.from(new Set(Ce(e).map(t=>{let n=R(t,"event recur_by_month_day");if(!Number.isInteger(n)||n<1||n>31)throw new c("--event recur_by_month_day values must be integers 1..31",s.USAGE);return n}))).sort((t,n)=>t-n)}function Oo(e,t){return Array.from(new Set(Ce(e).map(n=>k(n,t,"event.recur_exdates")))).sort((n,r)=>n.localeCompare(r))}function jn(e,t,n,r){let o=e.recur_freq?.trim(),a=e.recur_interval?.trim(),i=e.recur_count?.trim(),d=e.recur_until?.trim(),l=e.recur_by_weekday?.trim(),u=e.recur_by_month_day?.trim(),f=e.recur_exdates?.trim();if(![o,a,i,d,l,u,f].some(T=>T!==void 0))return;if(!o)throw new c("--event recurrence fields require recur_freq=<daily|weekly|monthly|yearly>",s.USAGE);let y=U(o.toLowerCase(),ct,"event recurrence frequency"),h=Nn(a,"recur_interval",r),E=Nn(i,"recur_count",r),b=$o(d,t,n),_=No(l),S=Fo(u),A=Oo(f,n);return{freq:y,interval:h,count:E,until:b,by_weekday:_.length>0?_:void 0,by_month_day:S.length>0?S:void 0,exdates:A.length>0?A:void 0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1c1314f1-b54f-562c-b6f0-950fcac4c9cc")}catch{}})();function Gn(e,t){if(!t&&/[:,=]/.test(e))throw new c(`Invalid --dep value "${e}". Use a bare item id or id=<id>,kind=<kind>.`,s.USAGE)}function Mn(e,t,n=Z()){for(let r of t??[])try{ht(e,r.id,r.kind,n)}catch(o){throw new c(nt(o),s.USAGE,{code:"dependency_edge_not_allowed",why:`${e} -> ${r.id} (${r.kind}) violates the active relationship-kind policy`})}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8248687e-ba97-5e1b-afbf-a322a72eb1aa")}catch{}})();var Pn="--event end must be strictly after start. Equal start/end timestamps are treated as an instant event (end is dropped); an end earlier than start is rejected. Omit end for an instant event or set end later than start.",jo="--event end and duration are mutually exclusive; provide only one (use duration=<relative> like duration=2h, duration=30min, or duration=PT30M, or set an explicit end).",Go=/^([+-]?)(\d+)(min|mins|minute|minutes)$/i,Mo=/^([+-]?)[Pp][Tt](?:(\d+)[Hh])?(?:(\d+)[Mm])?(?:(\d+)[Ss])?$/,Vn=1e3,Ke=60*Vn,Po=60*Ke;function qn(e,t){let n=new Date(e);if(!Number.isFinite(n.getTime()))throw new c(`Invalid event.duration value "${t}". Duration is out of supported timestamp range.`,s.USAGE);return n.toISOString()}function qo(e,t){let n=new Date(e),r=t.trim(),o=Go.exec(r);if(o){let d=o[1]==="-"?-1:1,l=Number.parseInt(o[2],10)*d;return qn(n.getTime()+l*Ke,r)}let a=Mo.exec(r);if(a){let[,d,l,u,f]=a;if(l||u||f){let y=d==="-"?-1:1,h=Number.parseInt(l??"0",10),E=Number.parseInt(u??"0",10),b=Number.parseInt(f??"0",10),_=h*Po+E*Ke+b*Vn;return qn(n.getTime()+y*_,r)}}let i=r.startsWith("+")||r.startsWith("-")?r:`+${r}`;return k(i,n,"event.duration")}function zn(e,t,n,r){if(t&&n)throw new c(jo,s.USAGE);if(n){let a=qo(e,n);if(a<e)throw new c(Pn,s.USAGE);return a===e?void 0:a}if(!t)return;let o=k(t,r,"event.end");if(o<e)throw new c(Pn,s.USAGE);if(o!==e)return o}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fd41d2bf-7be0-55ee-9048-a9d5092a9a21")}catch{}})();var Vo=["at","date","text","title"],zo=["start","date","end","duration","title","description","location","timezone","all_day",...On],Bo=["key","value"];function Bn(e,t){return t==="trimmed"?e?.trim():e}function Yo(e,t){return t==="defined"?e!==void 0:!!e}function Yn(e,t,n){return e.map(r=>{let o=x(r,"--reminder");L(o,"--reminder",Vo);let a=Bn(o.at??o.date,n.valueMode),i=Bn(o.text??o.title,n.valueMode);if(!a||!i)throw new c("--reminder requires at=<iso|relative> or date=<iso|relative>, plus text=<value> or title=<value>",s.USAGE);let d=i.trim();if(!d)throw new c("--reminder text must not be empty",s.USAGE);return{at:k(a,t,"reminder.at"),text:d}})}function Wn(e,t,n){return e.map(r=>{let o=x(r,"--event");L(o,"--event",zo);let a=(o.start??o.date)?.trim();if(!a)throw new c("--event requires start=<iso|relative> or date=<iso|relative>",s.USAGE);let i=k(a,t,"event.start"),d=o.end?.trim(),l=o.duration?.trim(),u=zn(i,d,l,t),f=o.title,p=o.description,y=o.location,h=o.timezone,E=f?.trim(),b=p?.trim(),_=y?.trim(),S=h?.trim(),A=[["title",f,E],["description",p,b],["location",y,_],["timezone",h,S]];for(let[O,D,de]of A)if(D!==void 0&&!de)throw new c(`--event ${O} must not be empty`,s.USAGE);let T=o.all_day?.trim(),z=jn(o,i,t,n.recurrenceEmptyNumericGuard),q=Yo(T,n.allDayEmptyGuard)?Fn(T,"--event all_day"):void 0;return{start_at:i,end_at:u,title:E,description:b,location:_,all_day:q,timezone:S,recurrence:z}})}function Jn(e){let t={};for(let n of e){let r=n.trim();if(r.length===0)throw new c("--type-option values must not be empty",s.USAGE);let o,a;if(r.includes(",")||r.includes(`
|
|
3
|
+
`)||r.startsWith("```")||/^(?:[-*+]\s+)?(?:key|value)\s*[:=]/i.test(r)){let d=x(r,"--type-option");L(d,"--type-option",Bo),o=d.key?.trim(),a=d.value?.trim()}else{let d=r.indexOf("="),l=r.indexOf(":"),u=d;if(d<=0&&l>0&&(u=l),u<=0||u===r.length-1)throw new c("--type-option requires key=value or key=<name>,value=<value> entries",s.USAGE);o=r.slice(0,u).trim(),a=r.slice(u+1).trim()}if(!o||!a)throw new c("--type-option requires key and value",s.USAGE);t[o]=a}return Object.fromEntries(Object.entries(t).sort((n,r)=>n[0].localeCompare(r[0])))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="93dc76a3-f205-5a44-85bd-5a6fad80c8d4")}catch{}})();var Wo=["strict","progressive"],Jo=["lightweight"],Zn=new Set(["Reminder","Meeting","Event"]),Ho=new Set(["author","created_at","text"]),$e=[...Ln,{canonical:"author",aliases:["author"],optionKey:"author",metadataKey:"author"},...Dn],Xo=(()=>{let e=new Map;for(let t of $e)for(let n of t.aliases)e.set(n,{optionKey:t.optionKey,metadataKey:t.metadataKey});return e})(),ie=new Map($e.map(e=>[e.optionKey,e.canonical])),Zo=$e.map(e=>e.canonical).sort((e,t)=>e.localeCompare(t)).join(", ");function Qo(e,t){let n=[...t].sort((o,a)=>o.localeCompare(a)),r=n.length===1?"key":"keys";return`${e} supports only author, created_at, and text seed fields. Found unsupported ${r}: ${n.join(", ")}. If text contains comma-separated key:value-like fragments, wrap text in quotes (for example text="first,scope:project"), use markdown-style key/value input, or pass ${e} - with piped stdin.`}function ea(e,t){let n=ke(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new c(`Invalid status value "${e}". Allowed: ${r.join(", ")}`,s.USAGE)}return n}function ta(e,t){let n=e.default_status;if(n!==void 0){let r=ke(n,t);if(r)return r}return t.open_status}function Le(e,t){if(!e||e.trim()===""||e.trim().toLowerCase()==="now")return t;let n=Date.parse(e);if(!Number.isFinite(n))throw new c(`Invalid created_at timestamp "${e}"`,s.USAGE);return new Date(n).toISOString()}var na=In();function Qn(e){let t={...e,unset:e.unset?[...e.unset]:void 0},n=o=>{let a=t.unset?[...t.unset]:[];a.includes(o)||a.push(o),t.unset=a};C(t.template)&&(t.template=void 0);let r=new Set([...ie.keys(),"rank"]);for(let o of r){let a=t[o];if(typeof a!="string"||!C(a))continue;let i=o==="rank"?"order":ie.get(o)??o;n(i),t[o]=void 0}return Kn(t,na)}function v(e){if(e!==void 0)return e}function er(e,t){return $n({raw:e,supportedFields:Zo,resolveDefinition:n=>Xo.get(n)??Ie(n,"create",t)})}var Hn=["id","kind","type","author","created_at","source_kind"],se=["path","scope","note"];function tr(e,t,n,r){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--dep","Use --clear-deps to clear dependencies."),{values:e.map(a=>{let i=a.trim(),d=ce(i,Hn);Gn(i,d);let l=d?x(a,"--dep"):{id:i,kind:"related"};d&&L(l,"--dep",Hn);let u=v(l.id),f=nr(v(l.kind??l.type));if(!u||!f)throw new c("--dep requires id and kind, or a bare item id to create a related dependency",s.USAGE);if(u.trim().toLowerCase()==="undefined")throw new c(`--dep id must not use placeholder token "${u}". Use --clear-deps to clear dependencies.`,s.USAGE);let p=an(v(l.source_kind)),y=v(l.author);return{id:sn(u,n,p),kind:U(f,ot,"dependency kind"),created_at:Le(l.created_at,t),author:y??r,source_kind:p??"cli:create:dep",author_source:y?"asserted":"detected"}}),explicitEmpty:!1})}var ra={"blocked-by":"blocked_by",depends_on:"blocked_by","depends-on":"blocked_by"};function nr(e){return typeof e!="string"?e:ra[e.toLowerCase()]??e}function ce(e,t){if(e.startsWith("```")||e.includes(`
|
|
4
|
+
`))return!0;let n=t.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${n})\\s*[:=]`,"i").test(e)?!0:zt(e)}function Ue(e,t,n,r){return!t||t.length===0?{values:void 0,explicitEmpty:!1}:(K(t,e,e==="--comment"?"Use --clear-comments to clear comments.":e==="--note"?"Use --clear-notes to clear notes.":"Use --clear-learnings to clear learnings."),{values:t.map(i=>{let d=i.trim(),l=()=>{if(d.length===0)throw new c(`${e} requires text=<value>`,s.USAGE);return{created_at:n,author:r,text:d}},u;try{u=x(i,e)}catch(y){if(e==="--comment"||e==="--note"||e==="--learning")return l();throw y}if(Object.keys(u).filter(y=>!Ho.has(y)).length>0)return{created_at:Le(u.created_at,n),author:v(u.author)??r,text:d};let p=u.text??"";if(p==="")throw new c(`${e} requires text=<value>`,s.USAGE);return{created_at:Le(u.created_at,n),author:v(u.author)??r,text:p}}),explicitEmpty:!1})}function oa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--file","Use --clear-files to clear linked files."),{values:e.map(n=>{let r=n.trim(),o=ce(r,se),a=o?x(n,"--file"):{path:r};if(o&&L(a,"--file",se),!a.path)throw new c("--file requires path=<value> or a bare file path",s.USAGE);return{path:a.path,scope:U(a.scope??"project",$,"file scope"),note:v(a.note)}}),explicitEmpty:!1})}function aa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--test","Use --clear-tests to clear linked tests."),{values:e.map(n=>{let r=n.trim(),o=yn(r)?_n(x(n,"--test"),"--test"):{command:r},a=v(o.command),i=v(o.path);if(!a)throw new c("--test requires command=<value> or a bare command (path=<value> is optional metadata)",s.USAGE);let d=v(o.timeout_seconds),l=v(o.timeout);if(d&&l&&d!==l)throw new c("--test timeout and timeout_seconds must match when both are provided",s.USAGE);let u=d??l;return{command:a,path:i,scope:U(o.scope??"project",$,"test scope"),timeout_seconds:u?R(u,"timeout_seconds"):void 0,pm_context_mode:bn(o.pm_context_mode,"--test"),env_set:hn(o.env_set,"--test"),env_clear:wn(o.env_clear,"--test"),shared_host_safe:En(o.shared_host_safe,"--test","shared_host_safe"),assert_stdout_contains:oe(o.assert_stdout_contains),assert_stdout_regex:Ae(o.assert_stdout_regex,"--test","assert_stdout_regex"),assert_stderr_contains:oe(o.assert_stderr_contains),assert_stderr_regex:Ae(o.assert_stderr_regex,"--test","assert_stderr_regex"),assert_stdout_min_lines:vn(o.assert_stdout_min_lines,"--test"),assert_json_field_equals:Sn(o.assert_json_field_equals,"--test"),assert_json_field_gte:kn(o.assert_json_field_gte,"--test"),note:v(o.note)}}),explicitEmpty:!1})}function ia(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--doc","Use --clear-docs to clear linked docs."),{values:e.map(n=>{let r=n.trim(),o=ce(r,se),a=o?x(n,"--doc"):{path:r};if(o&&L(a,"--doc",se),!a.path)throw new c("--doc requires path=<value> or a bare doc path",s.USAGE);return{path:a.path,scope:U(a.scope??"project",$,"doc scope"),note:v(a.note)}}),explicitEmpty:!1})}function sa(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--reminder","Use --clear-reminders to clear reminders."),{values:Yn(e,new Date(t),{valueMode:"raw"}),explicitEmpty:!1})}function ca(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--event","Use --clear-events to clear linked events."),{values:Wn(e,new Date(t),{allDayEmptyGuard:"defined",recurrenceEmptyNumericGuard:"defined"}),explicitEmpty:!1})}function da(e,t,n,r=[]){let o=[...tt.filter(a=>e[a]!==void 0),...r.filter(a=>e[a]!==void 0),...t.length>0?["body"]:[],...n.map(a=>`unset:${a}`)];return Array.from(new Set(o))}function rr(e,t){let n=e??"";if(t.length===0)return n;let r=`explicit_unset=${t.join(",")}`;return n?`${n} | ${r}`:r}function De(e,t,n){let r=ve("create",e);if(!r)throw new c(`Unsupported ${n} entry "${e}" for type "${t}"`,s.CONFLICT);return r}function la(e){return{scalarValues:{title:e.title,description:e.description,type:e.type,status:e.status,priority:e.priority,tags:e.tags,body:e.body,deadline:e.deadline,estimatedMinutes:e.estimatedMinutes,acceptanceCriteria:e.acceptanceCriteria,definitionOfReady:e.definitionOfReady,order:e.order??e.rank,goal:e.goal,objective:e.objective,value:e.value,impact:e.impact,outcome:e.outcome,whyNow:e.whyNow,author:e.author,message:e.message,assignee:e.assignee,parent:e.parent,reviewer:e.reviewer,risk:e.risk,confidence:e.confidence,sprint:e.sprint,release:e.release,blockedBy:e.blockedBy,blockedReason:e.blockedReason,unblockNote:e.unblockNote,reporter:e.reporter,severity:e.severity,environment:e.environment,reproSteps:e.reproSteps,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult,affectedVersion:e.affectedVersion,fixedVersion:e.fixedVersion,component:e.component,regression:e.regression,customerImpact:e.customerImpact},repeatableValues:{dep:e.dep,comment:e.comment,note:e.note,learning:e.learning,file:e.file,test:e.test,doc:e.doc,reminder:e.reminder,event:e.event,typeOption:e.typeOption,field:e.field},addTags:e.addTags}}function Ne(e,t){if(t==="tags")return e.scalarValues.tags!==void 0||Array.isArray(e.addTags)&&e.addTags.length>0;if(Object.prototype.hasOwnProperty.call(e.scalarValues,t))return e.scalarValues[t]!==void 0;if(Object.prototype.hasOwnProperty.call(e.repeatableValues,t)){let n=e.repeatableValues[t];return Array.isArray(n)&&n.length>0}return!1}function ua(e,t){let n=new Set(["title","type"]);if(t!=="strict")return n;for(let r of e.required_create_fields)n.add(De(r,e.name,"required_create_fields"));for(let r of e.required_create_repeatables)n.add(De(r,e.name,"required_create_repeatables"));return n}function fa(e,t,n,r){for(let o of e)if(!(!Ne(t,o)&&!n.has(o)))throw new c(`Option ${M("create",o)} is disabled for type "${r}" by command_option_policies`,s.USAGE)}function ma(e,t,n){if(t!=="strict")return;let r=e.filter(a=>n.has(a));if(r.length===0)return;let o=[...new Set(r.map(a=>M("create",a)))].sort((a,i)=>a.localeCompare(i));throw new c(`Strict create mode requires concrete values for ${o.join(", ")}; --unset/--clear-* directives cannot satisfy required options`,s.USAGE)}function pa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--type-option","Use --clear-type-options to clear existing type options."),{values:Jn(e),explicitEmpty:!1})}async function ya(e){let t=Bt();return{...e,body:await t.resolveValue(e.body,"--body"),dep:await t.resolveList(e.dep,"--dep"),comment:await t.resolveList(e.comment,"--comment"),note:await t.resolveList(e.note,"--note"),learning:await t.resolveList(e.learning,"--learning"),file:await t.resolveList(e.file,"--file"),test:await t.resolveList(e.test,"--test"),doc:await t.resolveList(e.doc,"--doc"),reminder:await t.resolveList(e.reminder,"--reminder"),event:await t.resolveList(e.event,"--event"),typeOption:await t.resolveList(e.typeOption,"--type-option"),field:await t.resolveList(e.field,"--field")}}function _a(e,t){if(e===void 0)return t;let n=e.trim().toLowerCase();if(n.length===0)return t;if(n==="strict"||n==="progressive")return n;throw new c(`Invalid --create-mode value "${e}". Allowed: ${Wo.join(", ")}`,s.USAGE)}function ga(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0)throw new c("--schedule-preset must not be empty",s.USAGE);if(t==="lightweight"||t==="lite"||t==="schedule-lite")return"lightweight";throw new c(`Invalid --schedule-preset value "${e}". Allowed: ${Jo.join(", ")}`,s.USAGE)}function ha(e,t,n){let r=_a(e,n);if(t===void 0)return r;if(typeof e=="string"&&e.trim().length>0&&r==="strict")throw new c("--schedule-preset lightweight cannot be combined with --create-mode strict. Use --create-mode progressive or omit --create-mode.",s.USAGE);return"progressive"}function wa(e,t,n,r){let o=e.name,a=la(t),i=ua(e,n),d=ft(e,"create",i);if(d.errors.length>0)throw new c(d.errors.join("; "),s.CONFLICT);fa(d.disabled,a,r,o),ma(d.required,n,r);let l=f=>f==="status"&&e.default_status!==void 0?!0:Ne(a,f),u=d.required.filter(f=>!l(f));return[...new Set(u.map(f=>M("create",f)))].sort((f,p)=>f.localeCompare(p))}var or=/^Missing required type option "([^"]+)" for type "([^"]+)"$/;function ar(e,t){let n=[];for(let r of e){let o=r.match(or);o&&o[2]===t&&n.push(o[1])}return[...new Set(n)].sort((r,o)=>r.localeCompare(o))}function ir(e,t){return e.filter(n=>{let r=n.match(or);return!r||r[2]!==t})}function Ea(e,t,n,r){let o=ir(e,t);if(o.length===0)return;let a=Fe(n,[],[],r.open_status);throw new c(o.join("; "),s.USAGE,{code:"invalid_argument_value",required:`Provide valid --type-option key/value pairs for type "${t}".`,examples:[a],nextSteps:[`Run "pm create --help --type ${t}" to review allowed type-option keys and values.`]})}function sr(e,t){let r=e.options.find(o=>o.key===t)?.values[0];return typeof r=="string"&&r.trim().length>0?r:"<value>"}function cr(e,t,n){switch(e){case"--title":return["--title",`"${t} example title"`];case"--description":return["--description",`"${t} example description"`];case"--type":return["--type",t];case"--status":return["--status",n];case"--priority":return["--priority","1"];case"--message":return["--message",`"Create ${t} item"`];case"--dep":return["--dep",'"id=pm-xxxx,kind=related,author=maintainer,created_at=now"'];case"--comment":return["--comment",'"author=maintainer,created_at=now,text=Implementation context"'];case"--note":return["--note",'"author=maintainer,created_at=now,text=Design note"'];case"--learning":return["--learning",'"author=maintainer,created_at=now,text=Durable lesson"'];case"--file":return["--file",'"path=src/example.ts,note=implementation file"'];case"--test":return["--test",'"command=node scripts/run-tests.mjs test,timeout_seconds=240"'];case"--doc":return["--doc",'"path=README.md,note=reference doc"'];default:return[e,'"<value>"']}}function Fe(e,t,n,r){let o=["pm","create","--title",`"${e.name} example title"`,"--description",`"${e.name} example description"`,"--type",e.name],a=["--status","--priority","--message"],i=[...new Set([...a,...t])],d=new Set(["--title","--description","--type"]);for(let l of i)d.has(l)||(o.push(...cr(l,e.name,r)),d.add(l));for(let l of n){let u=sr(e,l);o.push("--type-option",`${l}=${u}`)}return o.join(" ")}function dr(e,t){let n=e?.trim();if(!n)throw t==="--title"?e!==void 0?new c("Title cannot be empty or whitespace-only. Retry: pass a non-empty title with --title.",s.USAGE):new c('Missing required option --title. Why required: every item needs a human-readable title for lookup, search, and reporting. Retry: pass the title as the first positional argument (example: pm create "Fix login bug" --type Issue) or with --title.',s.USAGE):new c(`Missing required option ${t}`,s.USAGE);return n}function ba(e){return Wt(e)}function lr(e,t){let n={};for(let[r,o]of Object.entries(e))n[r]=Array.isArray(o)?[...o]:o;for(let[r,o]of Object.entries(t))o!==void 0&&(n[r]=Array.isArray(o)?[...o]:o);return n}function ur(e){return e.trim().toLowerCase().split(/\s+/).filter(t=>t.length>0).join(" ")}function fr(){let e=J();return e?e.commands.some(t=>t.action==="templates-show"||ur(t.command)==="templates show"):!1}function mr(e,t){if(typeof e!="object"||e===null||!("options"in e))throw new c(`Templates package returned invalid payload for template "${t}". Expected an options object.`,s.GENERIC_FAILURE);let n=e.options;if(typeof n!="object"||n===null||Array.isArray(n))throw new c(`Templates package returned invalid options for template "${t}".`,s.GENERIC_FAILURE);let r={};for(let[o,a]of Object.entries(n)){if(typeof a=="string"||typeof a=="number"||typeof a=="boolean"){r[o]=a;continue}if(Array.isArray(a)&&a.every(i=>typeof i=="string")){r[o]=[...a];continue}throw new c(`Templates package returned unsupported option value for "${o}" in template "${t}".`,s.GENERIC_FAILURE)}return r}async function pr(e,t,n){if(!fr())throw new c("--template requires the templates package. Install it first (for example: pm install templates --project).",s.USAGE);let r=await vt({command:"templates show",args:[e],options:{},global:t,pm_root:n});if(!r.handled){let o=r.warnings.length>0?` (${r.warnings.join(", ")})`:"";throw new c(`Unable to resolve template "${e}" via templates package. Run "pm templates show ${e}" for details.${o}`,s.USAGE)}return mr(r.result,e)}function va(e){return Ze(yt(e)).then(t=>{if(!t)throw new c(`Tracker is not initialized at ${e}. Run pm init first.`,s.NOT_FOUND)})}function g(e,t,n){return e.has(t)||n===void 0?void 0:v(n)}function F(e,t,n,r){return e.has(t)||n===void 0?void 0:r(n)}var Sa=new Set(["milestone","meeting","reminder","event"]);function yr(e,t,n,r){let o=t!==void 0,a=n!==void 0&&n.length>0,i=r!==void 0&&r.length>0;return Sa.has(e.toLowerCase())&&!o&&!a&&!i}function ka(e,t,n,r,o){let a=[];return e.toLowerCase()==="event"&&(o===void 0||o.length===0)&&a.push(`event_without_schedule:${t}:no_time_set`),yr(e,n,r,o)&&a.push(`calendar_item_without_schedule:${t}:no_deadline_or_reminder_or_event (hint: set --deadline <ISO> or --reminder "<when>", or link an Event via --event "start=<ISO>,end=<ISO>"; otherwise this item never appears on pm calendar)`),a}async function Ta(e,t,n,r){if(e!==void 0||n.has("parent")||t.parent!==void 0)return{parent:e,parentSource:void 0};let o=await rn(r);return o===void 0?{parent:e,parentSource:void 0}:{parent:o,parentSource:"focus"}}async function xa(e,t,n,r,o,a){let i=jt(o);if(Pt(r,i,t.id_prefix),await X(e,i,t.id_prefix,t.item_format,n.type_to_folder))return{parent:i,warnings:[]};let l=H(i,t.id_prefix);return{parent:i,warnings:Mt(l,a).warnings}}async function Ra(e){return e.parent===void 0?{parent:void 0,warnings:[]}:await xa(e.pmRoot,e.settings,e.typeRegistry,e.itemId,e.parent,e.policy)}async function Aa(e){if(e.explicitId===void 0)return Ot(e.pmRoot,e.settings.id_prefix,{tokenLength:e.settings.ids.token_length,typeToFolder:e.typeRegistry.type_to_folder,probeExisting:!1});if(typeof e.explicitId!="string")throw new c("--id must be a string",s.USAGE);let t=e.explicitId.trim();if(t.length===0||Gt(t))throw new c("--id must not be empty or use a placeholder token",s.USAGE);let n=H(t,e.settings.id_prefix);if(!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(n))throw new c("--id must contain only letters, numbers, and dashes after normalization",s.USAGE);return n}function Xn(e,t,n,r,o){let a=g(e,t,n);if(a===void 0)return{value:void 0,warnings:[]};let i=Jt(r,a,o);return{value:i.value,warnings:i.warnings}}async function Ia(e){let{pmRoot:t,settings:n,typeRegistry:r,statusRegistry:o,blockedBy:a,status:i,statusExplicit:d,nowValue:l,author:u}=e,f=e.dependencyValues;if(a===void 0)return{dependencyValues:f,status:i};let p=H(a,n.id_prefix),y=await X(t,p,n.id_prefix,n.item_format,r.type_to_folder);if(!y)return{dependencyValues:f,status:i};if((f??[]).some(b=>b.id===y.id&&b.kind==="blocked_by")||(f=[...f??[],{id:y.id,kind:"blocked_by",created_at:l,author:u,source_kind:"cli:create:blocked_by",author_source:"detected"}]),d)return{dependencyValues:f,status:i};let E=o.blocked_statuses.has("blocked")?"blocked":[...o.blocked_statuses].sort((b,_)=>b.localeCompare(_))[0]??o.open_status;return{dependencyValues:f,status:E}}function Ca(e,t,n){if(typeof e.createMode=="string"&&e.createMode.trim().toLowerCase()==="strict")return;let o=t.governance.create_default_type?.trim();if(o&&o.length>0&&V(o,n)){e.type=o;return}V("Task",n)&&(e.type="Task")}function Ka(e,t){return e.options.filter(n=>ve("create",n.key)===void 0).flatMap(n=>{let r=t[n.key];if(r===void 0)return[];if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return[n];throw new c(`Template custom type option "${n.key}" must be a string, number, or boolean value`,s.USAGE)})}async function Ua(e,t,n,r,o){let a=e;if(a.template!==void 0){let h=a.template.trim();if(h.length===0)throw new c("--template must not be empty. Omit --template to disable template usage.",s.USAGE);let E=await pr(h,t,n);a=Qn(lr(E,a))}if(a.type===void 0&&Ca(a,r,o),a.type===void 0)throw new c("Missing required option --type <value>",s.USAGE);let i=V(a.type,o);if(!i){let h=Ht(a.type),E=h?V(h,o):void 0;if(E)Te(`[pm] note: type '${a.type.trim()}' is not defined; using closest match '${E}'. Run 'pm schema add-type "${a.type.trim()}"' to track it as a distinct type.`),a.type=E,i=E;else throw new c(Xt(a.type,o.types,xt(n,r.schema)),s.USAGE)}let d=ut(i,o);if(!d)throw new c(`Invalid type value "${a.type}"`,s.USAGE);let l=d.name,u=Ka(d,a),f=u.map(h=>`${h.key}=${String(a[h.key])}`);if(f.length>0){a.typeOption=[...f,...a.typeOption??[]];for(let h of u)delete a[h.key]}let p=ga(a.schedulePreset);if(p!==void 0&&!Zn.has(l))throw new c(`--schedule-preset ${p} is only supported for Reminder, Meeting, or Event types`,s.USAGE);let y=ha(a.createMode,p,r.governance.create_mode_default);return{resolvedOptions:a,typeDefinition:d,type:l,schedulePreset:p,createMode:y}}function La(e,t){let n=new Set(t.metadataKeys),r=new Set(t.optionKeys),o=[{enabled:e.clearDeps,optionKey:"dep",clearFlag:"--clear-deps",valueFlag:"--dep",values:e.dep,metadataKey:"dependencies"},{enabled:e.clearComments,optionKey:"comment",clearFlag:"--clear-comments",valueFlag:"--comment",values:e.comment,metadataKey:"comments"},{enabled:e.clearNotes,optionKey:"note",clearFlag:"--clear-notes",valueFlag:"--note",values:e.note,metadataKey:"notes"},{enabled:e.clearLearnings,optionKey:"learning",clearFlag:"--clear-learnings",valueFlag:"--learning",values:e.learning,metadataKey:"learnings"},{enabled:e.clearFiles,optionKey:"file",clearFlag:"--clear-files",valueFlag:"--file",values:e.file,metadataKey:"files"},{enabled:e.clearTests,optionKey:"test",clearFlag:"--clear-tests",valueFlag:"--test",values:e.test,metadataKey:"tests"},{enabled:e.clearDocs,optionKey:"doc",clearFlag:"--clear-docs",valueFlag:"--doc",values:e.doc,metadataKey:"docs"},{enabled:e.clearReminders,optionKey:"reminder",clearFlag:"--clear-reminders",valueFlag:"--reminder",values:e.reminder,metadataKey:"reminders"},{enabled:e.clearEvents,optionKey:"event",clearFlag:"--clear-events",valueFlag:"--event",values:e.event,metadataKey:"events"},{enabled:e.clearTypeOptions,optionKey:"typeOption",clearFlag:"--clear-type-options",valueFlag:"--type-option",values:e.typeOption,metadataKey:"type_options"}];for(let a of o)if(a.enabled){if(a.values&&a.values.length>0)throw new c(`Cannot combine ${a.clearFlag} with ${a.valueFlag}`,s.USAGE);n.add(a.metadataKey),r.add(a.optionKey)}return{explicitUnsets:n,clearOptionKeys:r}}function Da(e,t){let n={tags:e.tags!==void 0,deadline:e.deadline!==void 0,estimatedMinutes:e.estimatedMinutes!==void 0,acceptanceCriteria:e.acceptanceCriteria!==void 0,definitionOfReady:e.definitionOfReady!==void 0,order:e.order!==void 0||e.rank!==void 0,goal:e.goal!==void 0,objective:e.objective!==void 0,value:e.value!==void 0,impact:e.impact!==void 0,outcome:e.outcome!==void 0,whyNow:e.whyNow!==void 0,author:e.author!==void 0,assignee:e.assignee!==void 0,parent:e.parent!==void 0,reviewer:e.reviewer!==void 0,risk:e.risk!==void 0,confidence:e.confidence!==void 0,sprint:e.sprint!==void 0,release:e.release!==void 0,blockedBy:e.blockedBy!==void 0,blockedReason:e.blockedReason!==void 0,unblockNote:e.unblockNote!==void 0,reporter:e.reporter!==void 0,severity:e.severity!==void 0,environment:e.environment!==void 0,reproSteps:e.reproSteps!==void 0,resolution:e.resolution!==void 0,expectedResult:e.expectedResult!==void 0,actualResult:e.actualResult!==void 0,affectedVersion:e.affectedVersion!==void 0,fixedVersion:e.fixedVersion!==void 0,component:e.component!==void 0,regression:e.regression!==void 0,customerImpact:e.customerImpact!==void 0};for(let[r,o]of Object.entries(n)){if(!o||!t.optionKeys.has(r))continue;let a=ie.get(r)??r;throw new c(`Cannot combine --unset ${a} with ${M("create",r)}`,s.USAGE)}}function $a(e){let t=(n,r)=>{let o=ie.get(r),a=o?`Use --unset ${o} to clear this field.`:void 0;Cn(n,M("create",r),a)};t(e.tags,"tags"),t(e.deadline,"deadline"),t(e.estimatedMinutes,"estimatedMinutes"),t(e.acceptanceCriteria,"acceptanceCriteria"),t(e.definitionOfReady,"definitionOfReady"),t(e.order??e.rank,"order"),t(e.goal,"goal"),t(e.objective,"objective"),t(e.value,"value"),t(e.impact,"impact"),t(e.outcome,"outcome"),t(e.whyNow,"whyNow"),t(e.author,"author"),t(e.assignee,"assignee"),t(e.parent,"parent"),t(e.reviewer,"reviewer"),t(e.risk,"risk"),t(e.confidence,"confidence"),t(e.sprint,"sprint"),t(e.release,"release"),t(e.blockedBy,"blockedBy"),t(e.blockedReason,"blockedReason"),t(e.unblockNote,"unblockNote"),t(e.reporter,"reporter"),t(e.severity,"severity"),t(e.environment,"environment"),t(e.reproSteps,"reproSteps"),t(e.resolution,"resolution"),t(e.expectedResult,"expectedResult"),t(e.actualResult,"actualResult"),t(e.affectedVersion,"affectedVersion"),t(e.fixedVersion,"fixedVersion"),t(e.component,"component"),t(e.regression,"regression"),t(e.customerImpact,"customerImpact")}function Na(e,t,n){for(let r of Object.keys(e))if(n.metadataKeys.has(r))throw new c(`Cannot combine --unset ${r.replaceAll("_","-")} with --field ${r}=...`,s.USAGE);for(let r of Object.keys(t.values??{}))if(n.metadataKeys.has(r))throw new c(`Cannot combine --unset ${r.replaceAll("_","-")} with its value flag`,s.USAGE)}function Fa(e){let{combinedMissingFlags:t,typeDefinition:n,missingRequiredCreateFlags:r,missingRequiredTypeOptionKeys:o,openStatus:a,type:i,createMode:d}=e;if(t.length===0)return;let l=Fe(n,r,o,a),u=[`Run "pm create --help --type ${i}" for type-aware required option guidance.`];t.includes("--title")&&u.push('Title can also be passed as the first positional argument (example: pm create "Your title" --type '+i+")."),d==="strict"&&(u.push('For staged onboarding, retry with "--create-mode progressive".'),Zn.has(i)&&u.push('For minimal scheduling inputs, try "--schedule-preset lightweight".'));let f=t.length===1?`Missing required option ${t[0]} for type "${i}"`:`Missing required options ${t.join(", ")} for type "${i}"`;throw new c(f,s.USAGE,{code:"missing_required_option",required:`Provide all required create options and type options for type "${i}" in one invocation.`,examples:[l],nextSteps:u,recovery:d==="strict"?{recovery_mode:"compact",missing_required_fields:t,suggested_flags:["--create-mode progressive",...t]}:void 0})}function Oa(e,t){if(e.has("tags")&&Array.isArray(t.addTags)&&t.addTags.length>0)throw new c("Cannot combine --unset tags with --add-tags",s.USAGE);let n=e.has("tags")?[]:t.tags!==void 0?qt(t.tags):[];return Vt(n,t.addTags)}function ja(e,t){if(t.order!==void 0&&t.rank!==void 0&&t.order!==t.rank)throw new c("--order and --rank must match when both are provided",s.USAGE);let n=t.order??t.rank,r=F(e,"order",n,o=>R(o,"order"));if(r!==void 0&&!Number.isInteger(r))throw new c("Order must be an integer",s.USAGE);return r}function Ga(e,t,n,r,o,a){if(r.completedAt!==void 0&&e!==t.close_status)throw new c("--completed-at requires a terminal create status.",s.USAGE);let i=e!==t.close_status?void 0:r.completedAt===void 0?a:k(r.completedAt,new Date(a),"completed-at");if(e!==t.close_status)return{closeReason:void 0,completedAt:i,warnings:[]};let d=n.governance.require_close_reason?{explicit:r.closeReason??r.message,resolution:o}:{explicit:r.closeReason};return{closeReason:on(d,n.governance.require_close_reason,{operation:"create",status:e}).closeReason,completedAt:i,warnings:[]}}async function Ma(e){let{pmRoot:t,type:n,id:r,settings:o,typeRegistry:a,author:i,extensionFieldNames:d,afterDocument:l,beforeDocument:u,historyMessage:f,changedFields:p,nowValue:y,similarityCandidate:h,allowDuplicate:E}=e,b=_t(t,n,r,o.item_format,a.type_to_folder),_=gt(t,r),S=await Ft(t,r,o.locks.ttl_seconds,i,!1,o.governance.force_required_for_stale_lock,o.locks.wait_ms),A=[];try{let T=l.metadata.dependencies&&l.metadata.dependencies.length>0?await tn(t,o.item_format,a.type_to_folder,void 0,o.schema):void 0;if(await X(t,r,o.id_prefix,o.item_format,a.type_to_folder))throw new c(`Item "${r}" already exists`,s.CONFLICT);await bt({pm_root:t,operation:"create",before:null,after:l,changed_fields:p,sdk:nn({pmRoot:t,settings:o,typeToFolder:a.type_to_folder})});let q=await Qt(t,i,{required:o.governance.duplicate_detection_mode==="strict"&&E!==!0}),O=[];try{o.governance.duplicate_detection_mode==="strict"&&E!==!0&&await Re(h,{pmRoot:t,mode:"strict",threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:!1}),await Qe(b,Ut(l,{format:o.item_format,schema:o.schema,extensionFieldNames:d}));try{let D=$t({nowIso:y,author:i,op:"create",before:u,after:l,message:f});await Nt(_,D)}catch(D){throw await et(b),D}O=await en({pmRoot:t,preferredFormat:o.item_format,typeToFolder:a.type_to_folder,schema:o.schema,itemPath:b,document:l})}finally{await q()}A=[...T?pn(T,[...T,l.metadata],r):[],...O,...await Se({path:b,scope:"project",op:"create",item_id:l.metadata.id,item_type:l.metadata.type,before:u,after:l,changed_fields:p}),...await Se({path:_,scope:"project",op:"create:history",item_id:l.metadata.id,item_type:l.metadata.type,before:u,after:l,changed_fields:p})],wt({id:l.metadata.id,op:"create",item_type:l.metadata.type,status:l.metadata.status,current:Et(l.metadata,p),changed_fields:p})}finally{await S()}return A}async function qi(e,t){let n=Qn(await ya(e)),r=pt(process.cwd(),t.path);await va(r);let o=await Zt(r),a=Rt(o.schema),i=It(o.schema),d=lt(o,J()),l=await Ua(n,t,r,o,d);n=l.resolvedOptions;let{typeDefinition:u,type:f,createMode:p}=l,y=er(n.unset,i),{explicitUnsets:h,clearOptionKeys:E}=La(n,y);Da(n,y),$a(n);let b=wa(u,n,p,E),_=rt(),S=Dt(v(n.author),o.author_default),A=tr(n.dep,_,o.id_prefix,S),T=Ue("--comment",n.comment,_,S),z=Ue("--note",n.note,_,S),q=Ue("--learning",n.learning,_,S),O=oa(n.file),D=aa(n.test),de=ia(n.doc),le=sa(n.reminder,_),ue=ca(n.event,_),_r=pa(n.typeOption),fe=mt(f,_r.values,d),me=J(),Oe=St(me),pe=kt(n.field,me),B=Ct(n,i,f);Na(pe,B,y);let je=ar(fe.errors,f),gr=je.map(w=>`--type-option ${w}=<value>`),hr=[...new Set([...b,...gr,...B.missing_required_flags])].sort((w,Ee)=>w.localeCompare(Ee));Fa({combinedMissingFlags:hr,typeDefinition:u,missingRequiredCreateFlags:b,missingRequiredTypeOptionKeys:je,openStatus:a.open_status,type:f,createMode:p}),Ea(fe.errors,f,u,a);let I=await Aa({pmRoot:r,settings:o,typeRegistry:d,explicitId:n.id}),j=n.status!==void 0?ea(n.status,a):ta(u,a),wr=n.priority!==void 0?ba(n.priority):2,m=y.metadataKeys,Er=Oa(m,n),ye=F(m,"deadline",n.deadline,w=>k(w,new Date(_),"deadline")),br=F(m,"estimated_minutes",n.estimatedMinutes,w=>Yt(w,"estimated-minutes")),vr=g(m,"acceptance_criteria",n.acceptanceCriteria),Sr=g(m,"definition_of_ready",n.definitionOfReady),kr=ja(m,n),Tr=g(m,"goal",n.goal),xr=g(m,"objective",n.objective),Rr=g(m,"value",n.value),Ar=g(m,"impact",n.impact),Ir=g(m,"outcome",n.outcome),Cr=g(m,"why_now",n.whyNow),Kr=g(m,"assignee",n.assignee),Ur=m.has("author")?void 0:v(n.author)??S,Lr=g(m,"parent",n.parent),Ge=await Ta(Lr,n,m,r),_e=Ge.parent,Dr=Ge.parentSource,$r=g(m,"reviewer",n.reviewer),Nr=F(m,"risk",n.risk,w=>U(Tn(w),at,"risk")),Fr=F(m,"confidence",n.confidence,w=>Rn(w)),Or=n.allowMissingParent===!0&&o.validation.parent_reference==="strict_error"?"warn":o.validation.parent_reference,Me=o.validation.sprint_release_format,G=ka(f,I,ye,le.values,ue.values),Pe=await Ra({itemId:I,parent:_e,pmRoot:r,settings:o,typeRegistry:d,policy:Or});_e=Pe.parent,G.push(...Pe.warnings);let qe=Xn(m,"sprint",n.sprint,"sprint",Me),jr=qe.value;G.push(...qe.warnings);let Ve=Xn(m,"release",n.release,"release",Me),Gr=Ve.value;G.push(...Ve.warnings);let ze=g(m,"blocked_by",n.blockedBy),Be=await Ia({pmRoot:r,settings:o,typeRegistry:d,statusRegistry:a,blockedBy:ze,dependencyValues:A.values,status:j,statusExplicit:n.status!==void 0,nowValue:_,author:S}),Ye=Be.dependencyValues;Mn(I,Ye),j=Be.status;let Mr=g(m,"blocked_reason",n.blockedReason),Pr=g(m,"unblock_note",n.unblockNote),qr=g(m,"reporter",n.reporter),Vr=F(m,"severity",n.severity,w=>U(xn(w),it,"severity")),zr=g(m,"environment",n.environment),Br=g(m,"repro_steps",n.reproSteps),We=g(m,"resolution",n.resolution),Yr=g(m,"expected_result",n.expectedResult),Wr=g(m,"actual_result",n.actualResult),Jr=g(m,"affected_version",n.affectedVersion),Hr=g(m,"fixed_version",n.fixedVersion),Xr=g(m,"component",n.component),Zr=F(m,"regression",n.regression,w=>An(w)),Qr=g(m,"customer_impact",n.customerImpact),ge=dr(n.title,"--title"),he=n.description??"",Y=n.body??"",Je=await Re({title:ge,description:he,body:Y},{pmRoot:r,mode:o.governance.duplicate_detection_mode,threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:n.allowDuplicate});G.push(...ln(Je));let we=Ga(j,a,o,n,We,_),eo=we.closeReason,to=j===a.close_status?_:void 0,no=we.completedAt;G.push(...we.warnings);let W=Kt({id:I,title:ge,description:he,type:f,type_options:fe.normalized,status:j,closed_at:to,completed_at:no,close_reason:eo,priority:wr,tags:Er,created_at:_,updated_at:_,deadline:ye,assignee:Kr,author:Ur,estimated_minutes:br,acceptance_criteria:vr,definition_of_ready:Sr,order:kr,goal:Tr,objective:xr,value:Rr,impact:Ar,outcome:Ir,why_now:Cr,parent:_e,reviewer:$r,risk:Nr,confidence:Fr,sprint:jr,release:Gr,blocked_by:ze,blocked_reason:Mr,unblock_note:Pr,reporter:qr,severity:Vr,environment:zr,repro_steps:Br,resolution:We,expected_result:Yr,actual_result:Wr,affected_version:Jr,fixed_version:Hr,component:Xr,regression:Zr,customer_impact:Qr,dependencies:Ye,comments:T.values,notes:z.values,learnings:q.values,files:O.values,tests:D.values,docs:de.values,reminders:le.values,events:ue.values,...pe,...B.values});try{Tt(W,me)}catch(w){throw new c(w instanceof Error?w.message:"Invalid extension item field values",s.USAGE)}let ro=Lt({metadata:W,body:Y},{schema:o.schema,extensionFieldNames:Oe}),oo={metadata:{},body:""},He=[...h].sort((w,Ee)=>w.localeCompare(Ee)),ao=rr(n.message,He),Xe=da(W,Y,He,[...Object.keys(pe),...Object.keys(B.values??{})]),io=await Ma({pmRoot:r,type:f,id:I,settings:o,typeRegistry:d,author:S,extensionFieldNames:Oe,afterDocument:ro,beforeDocument:oo,historyMessage:ao,changedFields:Xe,nowValue:_,similarityCandidate:{title:ge,description:he,body:Y},allowDuplicate:n.allowDuplicate}),so=structuredClone(W),co=Un(I,f,j,a);return yr(f,ye,le.values,ue.values)&&Te(`[pm] warning: ${f} '${I}' has no deadline/reminder/event \u2014 it will not appear on the calendar. Add one via 'pm update ${I} --deadline <ISO>' or 'pm update ${I} --event "start=<ISO>,end=<ISO>"'.`),{item:so,changed_fields:Xe,warnings:[...G,...io],...Object.fromEntries([["parent_source",Dr],["next_transition",co],["similarity_advisory",Je]].filter(w=>w[1]!==void 0))}}var Vi={buildHistoryMessage:rr,buildInvalidLogSeedKeysMessage:Qo,buildTypeSpecificCreateExample:Fe,collectMissingRequiredTypeOptionKeys:ar,createExampleTokensForFlag:cr,filterNonMissingTypeOptionErrors:ir,hasTemplatesShowHandler:fr,hasCreateOptionValue:Ne,loadCreateTemplateOptionsFromRuntime:pr,looksLikeStructuredEntry:ce,mergeCreateOptionsWithTemplate:lr,normalizeCreatePolicyOptionKey:De,normalizeDependencyKindInput:nr,parseDependencies:tr,normalizeExtensionCommandPath:ur,parseCreateUnsetTargets:er,requireStringOption:dr,readTemplateOptionsFromRuntimeResult:mr,resolveRuntimeCreateUnsetDefinition:(e,t)=>Ie(e,"create",t),typeOptionExampleValue:sr};export{Tn as a,xn as b,Rn as c,An as d,In as e,C as f,Cn as g,K as h,Kn as i,U as j,Yn as k,Wn as l,Jn as m,Gn as n,Mn as o,pn as p,yn as q,_n as r,ne as s,re as t,Q as u,hn as v,wn as w,En as x,bn as y,oe as z,Ae as A,vn as B,Sn as C,kn as D,ei as E,Uo as F,Lo as G,Dn as H,$n as I,Ie as J,Ue as K,oa as L,aa as M,ia as N,dr as O,qi as P,Vi as Q};
|
|
5
|
+
//# sourceMappingURL=chunk-HWRRMBJO.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ib as h,lb as I,lc as L,uf as D}from"./chunk-GE4KCSZP.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var x="global",E="external";function u(t){let e=t?.trim().toLowerCase();return e===x||e===E}function A(t){let e=t?.trim();if(e)return u(e)?x:e}function G(t,e,r){let o=t.trim();return u(r)?o:D(o,e)}(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="8368a519-4c09-540e-b0fb-f74cfdc1d7b2")}catch{}})();function y(t){if(typeof t!="string")return;let e=t.trim();if(!(!e||["none","null","n/a","na"].includes(e.toLowerCase())))return e}function b(t){let e=y(t);return e?.toLowerCase()==="no-active-blocker"?void 0:e}function v(){let t=h();for(let e of L()?.relationship_kinds??[])for(let r of e.definitions)t.register(r);return t}function k(t,e){let r=t.toLowerCase(),o=e.toLowerCase();return r!==o?r<o?-1:1:t!==e?t<e?-1:1:0}function z(t){let e=new Map;for(let r of t.dependencies??[]){if(typeof r!="object"||r===null)continue;let o=r,i=y(o.id);if(!i)continue;let c=typeof o.kind=="string"?o.kind:"related",l=`${c}\0${i.toLowerCase()}`,p=e.get(l);p?p.count+=1:e.set(l,{target_id:i,kind:c,count:1})}return e}function S(t,e=r=>r==="closed"||r==="canceled"){let r=[];for(let o of t)if(!(typeof o?.id!="string"||o.id.trim().length===0))for(let i of z(o).values())i.count<2||r.push({holder_id:o.id.trim(),target_id:i.target_id,kind:i.kind,occurrences:i.count,holder_status:o.status,legacy_terminal:e(o.status)});return r.sort((o,i)=>{let c=k(o.holder_id,i.holder_id);if(c!==0)return c;let l=k(o.target_id,i.target_id);return l!==0?l:k(o.kind,i.kind)})}function T(t,e=r=>r==="closed"||r==="canceled"){let r=t.filter(s=>typeof s?.id=="string"&&s.id.trim().length>0),o=new Set(r.map(s=>s.id.trim().toLowerCase())),i=new Map,c=(s,d,f,m)=>{let n=y(d);if(!n||o.has(n.toLowerCase()))return;let a={holder_id:s.id.trim(),target_id:n,kind:f,source:m,holder_status:s.status,legacy_terminal:e(s.status),no_active_blocker_sentinel:n.toLowerCase()==="no-active-blocker"};i.set(`${a.holder_id}::${a.target_id}::${a.kind}::${a.source}`,a)};for(let s of r){c(s,s.parent,"parent","parent"),c(s,s.blocked_by,"blocked_by","blocked_by");for(let d of s.dependencies??[]){if(typeof d!="object"||d===null)continue;let f=d;u(f.source_kind)||c(s,f.id,typeof f.kind=="string"?f.kind:"related","dependency")}}let l=[...i.values()].sort((s,d)=>s.holder_id.localeCompare(d.holder_id)||s.target_id.localeCompare(d.target_id)||s.kind.localeCompare(d.kind)||s.source.localeCompare(d.source)),p=l.filter(s=>s.legacy_terminal);return{active:l.filter(s=>!s.legacy_terminal),legacy_terminal:p,no_active_blocker_sentinels:l.filter(s=>s.no_active_blocker_sentinel)}}function $(t){let e=new Map;for(let r of[...t.active,...t.legacy_terminal]){if(r.no_active_blocker_sentinel)continue;let o=r.target_id.trim(),i=o.toLowerCase();e.has(i)||e.set(i,o)}return[...e.values()].sort((r,o)=>r.localeCompare(o))}function M(t){let e=new Map;for(let r of t)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null||!u(o.source_kind))continue;let i=y(o.id);i&&!e.has(i.toLowerCase())&&e.set(i.toLowerCase(),i)}return[...e.values()].sort((r,o)=>r.localeCompare(o))}function W(t,e,r){let o=r??v(),i=t.filter(n=>typeof n?.id=="string"&&n.id.trim().length>0),c=new Map(i.map(n=>[n.id.trim().toLowerCase(),n.id.trim()])),l=T(i,e),p=$(l);for(let n of p)c.set(n.toLowerCase(),n);let s=M(i),d=new Set(c.keys()),f=new Map;for(let n of s){let a=n;for(;d.has(a.toLowerCase());)a=`external:${a}`;f.set(n.toLowerCase(),a),d.add(a.toLowerCase())}let m=i.map(n=>{let a=b(n.parent),C=b(n.blocked_by),R=(n.dependencies??[]).flatMap(_=>{if(typeof _!="object"||_===null)return[];let g=_,w=b(g.id);return w?[{id:u(g.source_kind)?f.get(w.toLowerCase()):c.get(w.toLowerCase()),kind:typeof g.kind=="string"?g.kind:"related"}]:[]});return{id:n.id.trim(),...a?{parent:c.get(a.toLowerCase())}:{},...C?{blocked_by:c.get(C.toLowerCase())}:{},dependencies:R}});return{graph:I.fromItems([...m,...p.map(n=>({id:n})),...s.map(n=>({id:f.get(n.toLowerCase())}))],o),details:[...i.map(n=>({id:n.id.trim(),title:n.title,status:n.status,...typeof n.type=="string"&&n.type.trim().length>0?{type:n.type.trim()}:{}})),...p.map(n=>({id:n,title:`[missing] ${n}`,status:"missing"})),...s.map(n=>({id:f.get(n.toLowerCase()),title:`[external] ${n}`,status:"external"}))],missingIdSet:new Set(p.map(n=>n.toLowerCase())),dangling:l,duplicateRows:S(i,e)}}export{x as a,E as b,u as c,A as d,G as e,b as f,v as g,S as h,T as i,$ as j,W as k};
|
|
2
|
+
//# sourceMappingURL=chunk-L3AZOELJ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as re,h as de,j as A}from"./chunk-XBLOD5TZ.js";import{A as y,Bb as J,C as _,Da as X,Jf as se,Kd as Y,Kf as oe,La as q,Mf as ie,Nc as V,Ne as C,Oa as H,Qd as $,Qe as N,Sd as Z,Td as ee,Wd as te,b as z,cd as O,ib as v,lc as Q,yf as ne}from"./chunk-V5K52PYW.js";import{createHash as Te}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var be=64,xe=8;function Re(e,t){let s=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let o=n;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",s].join("\0")}function ae(e,t=n=>n==="closed"||n==="canceled",s=v()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Re(i,t)).sort(),o=s.list().map(i=>J(i)).sort();return Te("sha256").update(n.join("")).update("").update(o.join("")).digest("hex")}function ce(e,t,s){let n=t??s;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var M=class{#e=new Map;#t;#n;constructor(t={}){this.#t=ce("maxResultsPerWorkspace",t.maxResultsPerWorkspace,be),this.#n=ce("maxWorkspaces",t.maxWorkspaces,xe)}lookup(t,s,n){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==s)&&(o={fingerprint:s,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let d=o,r=this.#t;return{assembly:d.assembly,assemblyReused:i,fingerprint:s,memoize(c,f){let a=d.results.get(c);if(a!==void 0||d.results.has(c))return d.results.delete(c),d.results.set(c,a),{value:structuredClone(a),reused:!0};let l=f();return d.results.size>=r&&d.results.delete(d.results.keys().next().value),d.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},ue=new M;function le(){return ue}function ut(){ue.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Le=["prerequisite","dependent","ancestor","descendant","provenance","related"],Ce=new TextEncoder;function P(e,t,s){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${s} must be positive`);return n}function S(e){return Math.max(1,Math.ceil(Ce.encode(JSON.stringify(e)).byteLength/4))}function U(e,t,s){let n=s.resolve(e.kind);if(n?.ordering){let i=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(n?.hierarchy){let i=(n.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Se(e,t,s,n){let o=e.filter(i=>i.source===t&&i.target===s||i.target===t&&i.source===s).map(i=>U(i,s,n));return[...new Set(o)].sort()}function De(e){return Le.find(t=>e.includes(t))}function Ie(e,t,s,n){let o=n.direction??"both",i=n.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let d=new Set([t]),r=[{id:t,distance:0}],c=[],f=0,a=!1;for(let l=0;l<r.length;l+=1){n.signal?.throwIfAborted();let u=r[l];if(u.distance>=i&&a)continue;let g=e.neighborEdges(u.id,{direction:o,kinds:n.kinds,signal:n.signal});if(f+=g.meta.inspectedEdges,u.distance>=i){g.value.some(m=>!d.has(m.id))&&(a=!0);continue}for(let{id:m,edge:p}of g.value){if(d.has(m))continue;d.add(m);let h={id:m,distance:u.distance+1,via:u.id,role:U(p,m,s)};c.push(h),r.push(h)}}return c.sort((l,u)=>l.distance-u.distance||l.id.localeCompare(u.id)),{rows:c,visitedNodes:r.length,inspectedEdges:f,depthTruncated:a}}function Be(e,t,s,n){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:d,edge:r}of i)o[U(r,d,s)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:d})=>d)}}function Oe(e){let t=[],s=e.initialTokens;for(let n of e.candidates){if(t.length>=e.nodeLimit)break;let o=n.distance===1?Se(e.rootEdges,e.rootId,n.id,e.registry):[],i={...e.details.get(n.id)??{id:n.id},distance:n.distance,role:o.length>0?De(o):n.role,via:n.via,reasons:o.length>0?o:[`${n.role} via ${n.via} (depth ${n.distance})`]},d=S(i);if(s+d>e.tokenBudget)break;t.push(i),s+=d}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:s}}function $e(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,s=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let d=e.registry.resolve(i.kind)?.inverse;return d!==void 0&&t.has(d)}),n=[],o=e.initialTokens;for(let i of s){if(n.length>=e.edgeLimit)break;let d=S(i);if(o+d>e.tokenBudget)break;n.push(i),o+=d}return{edges:n,usedTokens:o,candidateCount:s.length}}function fe(e,t,s,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=P(n.nodeLimit,20,"nodeLimit"),i=P(n.edgeLimit,40,"edgeLimit"),d=P(n.tokenBudget,1200,"tokenBudget"),r=n.registry??v(),c=new Map(s.map(T=>[T.id,T])),f=c.get(t)??{id:t},{evidence:a=[],...l}=f,u=[...a],g=Ie(e,t,r,n),{rootEdges:m,...p}=Be(e,t,r,n),h=Z("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3}),k=te(g.rows,n.cursor,h,({id:T})=>T),E=g.rows.slice(k),w=S(l)+S(u);if(w>d)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let G=Oe({candidates:E,details:c,rootEdges:m,rootId:t,registry:r,nodeLimit:o,tokenBudget:d,initialTokens:w}),{nodes:R}=G,we=new Set([t,...R.map(({id:T})=>T)]),j=$e({graph:e,included:we,options:n,registry:r,edgeLimit:i,tokenBudget:d,initialTokens:G.usedTokens}),{edges:D,usedTokens:ve}=j,L=k+R.length,I=L<g.rows.length,W=R.at(-1),B=j.candidateCount-D.length,K=g.depthTruncated||I||B>0,Ee={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...p,discoveredNodes:g.rows.length,returnedNodes:R.length,returnedEdges:D.length,omittedNodes:g.rows.length-L,omittedEdges:B,evidenceCount:u.length,hasMore:I};return{root:l,summary:Ee,nodes:R,edges:D,evidence:u,meta:{exact:!0,truncated:K,completeness:K?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:d,usedTokens:ve,visitedNodes:g.visitedNodes,inspectedEdges:g.inspectedEdges,omittedNodes:g.rows.length-L,omittedEdges:B,...I&&W?{nextCursor:ee(h,W.id,L-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a3535267-c69a-5a44-bdf9-02925e02aaeb")}catch{}})();var Ne=["tree","graph","context"],Ae=["none","repeated"],Me=["outgoing","incoming","both"],Pe=32,Ue=200,Fe=400,Ge=16e3;function je(e){let t=e?.trim().toLowerCase()??"tree";if(Ne.includes(t))return t;throw new _(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,y.USAGE)}function b(e,t){if(e===void 0)return;let s=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(s)||s<1)throw new _(`Invalid --${t} value "${e}". Use a positive integer.`,y.USAGE);return s}function pe(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new _(`Invalid --max-depth value "${e}". Use a non-negative integer.`,y.USAGE);return t}function We(e){let t=e?.trim().toLowerCase()??"none";if(Ae.includes(t))return t;throw new _(`Invalid --collapse value "${e}". Use "none" or "repeated".`,y.USAGE)}function Ke(e){let t=e?.trim().toLowerCase()??"both";if(Me.includes(t))return t;throw new _(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,y.USAGE)}function ze(e,t=v()){if(e===void 0)return;let s=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(s.length===0)return;let n=new Set;for(let o of s){let i=t.resolve(o);if(!i){let d=t.list().map(r=>r.kind).join(", ");throw new _(`Invalid --kind value "${o}". Registered kinds: ${d}.`,y.USAGE)}n.add(i.kind)}return[...n].sort()}function Xe(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:o})=>({id:n.trim(),kind:o.trim().toLowerCase()})).sort((n,o)=>{let i=n.kind.localeCompare(o.kind);return i!==0?i:n.id.localeCompare(o.id)}),s=new Map;for(let n of t){let o=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;s.has(o)||s.set(o,{id:n.id,kind:n.kind})}return[...s.values()]}function qe(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Xe(e.dependencies)}}function He(e){return C(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Je(e,t,s,n,o,i,d,r,c){for(let f of t.dependencies){let a=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:f.id,kind:f.kind}).length/3));if(r.nodes>=r.nodeLimit){e.truncated=!0,r.reasons.add("node_limit");break}if(r.edges>=r.edgeLimit){e.truncated=!0,r.reasons.add("edge_limit");break}if(r.estimatedTokens+a>=r.tokenBudget){e.truncated=!0,r.reasons.add("token_budget");break}r.edges+=1,r.estimatedTokens+=a,e.dependencies.push(ge(f.id,s,n,o,i,d,r,c+1,f.kind))}}function Qe(e,t,s,n,o,i,d,r){return d.estimatedTokens>=d.tokenBudget&&t?.dependencies.length?(e.truncated=!0,d.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&r>=n?(t.dependencies.length>0&&(e.truncated=!0,d.reasons.add("max_depth")),!0):o==="repeated"&&i.has(s)?(e.collapsed=!0,!0):!1}function ge(e,t,s,n,o,i,d,r=0,c){let f=e.trim().toLowerCase(),a=t.get(f),l={id:a?.id??e,title:a?.title,type:a?.type,status:a?.status,via:c,missing:!a,cycle:s.has(f),dependencies:[]};if(d.nodes+=1,d.estimatedTokens+=He(l),Qe(l,a,f,n,o,i,d,r))return l;o==="repeated"&&i.add(f);let u=new Set(s);return u.add(f),Je(l,a,t,u,n,o,i,d,r),l}function me(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Ve(e){let t=new Map,s=new Map,n=[e];for(;n.length>0;){let r=n.pop();t.set(r.id,me(t.get(r.id),{id:r.id,title:r.title,type:r.type,status:r.status,missing:r.missing}));for(let c of r.dependencies){t.set(c.id,me(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let f=c.via??"related",a=`${r.id}::${c.id}::${f}`;s.has(a)||s.set(a,{from:r.id,to:c.id,kind:f}),c.cycle||n.push(c)}}let o=[...t.values()].sort((r,c)=>r.id.localeCompare(c.id)),i=[...s.values()].sort((r,c)=>{let f=r.from.localeCompare(c.from);if(f!==0)return f;let a=r.to.localeCompare(c.to);return a!==0?a:r.kind.localeCompare(c.kind)}),d=o.filter(r=>r.missing).map(r=>r.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:d}}function he(e,t,s){let n=new Set,o=new Set,i=new Set,d=new Set,r=[{id:e,depth:0}],c=0;for(;c<r.length;){let f=r[c++],a=f.id.trim().toLowerCase();n.add(a);let l=t.get(a);if(!l){i.add(a);continue}if(!(s!==void 0&&f.depth>=s)&&!d.has(a)){d.add(a);for(let u of l.dependencies)o.add(`${a}::${u.id.trim().toLowerCase()}::${u.kind}`),r.push({id:u.id,depth:f.depth+1})}}return{node_count:n.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function ke(e,t=v()){let s=pe(e.maxDepth),n=b(e.nodeLimit,"node-limit"),o=b(e.edgeLimit,"edge-limit"),i=b(e.tokenBudget,"token-budget"),d=ze(e.kind,t);return{direction:Ke(e.direction),...d===void 0?{}:{kinds:d},...s===void 0?{}:{maxDepth:s},...n===void 0?{}:{nodeLimit:n},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function ye(e,t,s,n){return fe(e.graph,t,e.details.map(o=>o.id===t&&n.length>0?{...o,evidence:n}:o),s)}function Bt(e,t,s,n=[]){let o=A(t);return ye(o,e,ke(s,o.graph.registry()),n)}function F(e,t,s,n){for(let o of s.slice(0,n)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Ye(e,t,s,n){let o=await se(e,t,s.id_prefix,s.item_format,n);if(!o)return[];let{document:i}=await oe(o,{schema:s.schema}),d=i.metadata,r=d.files??[],c=d.tests??[],f=d.docs??[],a=[["files",r.length],["tests",c.length],["docs",f.length],["comments",(d.comments??[]).length],["notes",(d.notes??[]).length],["learnings",(d.learnings??[]).length]];if(a.every(([,u])=>u===0))return[];let l=[`linked:${a.map(([u,g])=>`${u}=${g}`).join(",")}`];return F(l,"file",r.map(u=>u.path),3),F(l,"test",c.map(u=>u.command??u.path),2),F(l,"doc",f.map(u=>u.path),2),l}function Ze(e){let{canonicalId:t,context:s,missingCount:n,missingReferences:o,referenceLimit:i,summaryOnly:d}=e;return{id:t,format:"context",node_count:s.nodes.length+1,edge_count:s.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:o.length,...d?{}:{missing_references:o.slice(0,i),context:s}}}function et(e){let{row:t,missingReachableSet:s,packetIds:n,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!s.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(o===void 0)return!0;let d=i.resolve(t.kind);return d!==void 0&&(o.has(d.kind)||d.inverse!==void 0&&o.has(d.inverse))}function _e(e,t,s){let n;for(;;){let o=C(new TextEncoder().encode(N($("deps",e),t)).byteLength);if(o===n)return o;s(o),n=o}}function tt(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function nt(e){try{return ye(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&tt(t))return e.smallestResult;throw t}}function st(e){let{assembly:t,canonicalId:s,contextOptions:n,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:r,missingReferences:c}=e,a=n.edgeLimit??40,l=n.tokenBudget,u,g;for(;;){let m=nt({assembly:t,canonicalId:s,contextOptions:n,internalTokenBudget:l,rootEvidence:o,smallestResult:g});if("format"in m)return m;let p=m;u??=p.meta.tokenBudget,l??=u;let h=Ze({canonicalId:s,context:p,missingCount:r,missingReferences:c,referenceLimit:a,summaryOnly:i});if(g=h,i||(p.meta.tokenBudget=u,p.meta.usedTokens=_e(x(h,!1),d,w=>{p.meta.usedTokens=w}),p.meta.usedTokens<=u))return h;if(a>0){a-=1;continue}let k=l,E=k*u/p.meta.usedTokens;l=Math.min(k-1,Math.max(1,Math.floor(E*.9)))}}function ot(e){let{assembly:t,canonicalId:s,options:n,rootEvidence:o,summaryOnly:i,outputFormat:d}=e,r=ke(n,t.graph.registry()),c=t.graph.closure(s,{direction:r.direction,...r.kinds===void 0?{}:{kinds:r.kinds},maxDepth:r.maxDepth??3}),f=c.value.filter(p=>t.missingIdSet.has(p.toLowerCase())),a=new Set(f.map(p=>p.toLowerCase())),l=t.graph.registry(),u=r.kinds?new Set(r.kinds.map(p=>l.require(p).kind)):void 0,g=new Set([s,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(p=>et({row:p,missingReachableSet:a,packetIds:g,filteredKinds:u,registry:l}));return st({assembly:t,canonicalId:s,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:f.length,missingReferences:m})}function it(e){let t=[e],s;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(s=n,t.push(...n.dependencies))}return s?(s.dependencies.pop(),s.truncated=!0,!0):!1}function rt(e,t,s,n,o,i,d){let r=o??Pe,c=b(s.nodeLimit,"node-limit")??Ue,f=b(s.edgeLimit,"edge-limit")??Fe,a=b(s.tokenBudget,"token-budget")??Ge,l={nodeLimit:c,edgeLimit:f,tokenBudget:a,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},u=ge(e,n,new Set,r,t==="graph"?"repeated":i,new Set,l),g=he(e,n,void 0),m;for(;;){let p=Ve(u),h=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:r,node_limit:c,edge_limit:f,token_budget:a},estimated_tokens:0,total_node_count:g.node_count,total_edge_count:g.edge_count,omitted_node_count:Math.max(0,g.node_count-p.nodes.length),omitted_edge_count:Math.max(0,g.edge_count-p.edges.length)},k={id:e,format:t,node_count:p.nodes.length,edge_count:p.edges.length,edge_basis:"deduplicated_directed",missing_count:p.missing_ids.length,...h?{truncation:h}:{}};if(m=t==="tree"?{...k,tree:u}:{...k,graph:p},(m.truncation===void 0?C(new TextEncoder().encode(N($("deps",x(m,!1)),d)).byteLength):_e(x(m,!1),d,w=>{m.truncation.estimated_tokens=w}))<=a)return m;if(!it(u))return l.reasons.add("token_budget"),m;l.reasons.add("token_budget")}}function x(e,t){let s={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,projection:{mode:t?"summary":"full",declared_field_groups:[s],included_field_groups:t?[]:[s.name]}}}async function Ot(e,t,s){let n=q(process.cwd(),s.path);if(!await z(H(n)))throw new _(`Tracker is not initialized at ${n}. Run pm init first.`,y.NOT_FOUND);let o=je(t.format),i=pe(t.maxDepth),d=We(t.collapse);Y(t.summary===!0,t.full===!0,"--summary");let r=t.summary===!0,c=await ne(n),f=X(c,Q()),a=await ie(n,c.item_format,f.type_to_folder,void 0,c.schema),l=V(c.schema),u=new Map(a.map(m=>[m.id.trim().toLowerCase(),qe(m)])),g=de(a,m=>O(m,l));for(let m of[...g.active,...g.legacy_terminal]){let p=u.get(m.holder_id.trim().toLowerCase()),h=m.kind.trim().toLowerCase();p&&!p.dependencies.some(k=>k.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&k.kind===h)&&p.dependencies.push({id:m.target_id,kind:h})}if(!u.has(e.trim().toLowerCase()))throw new _(`Item ${e} not found`,y.NOT_FOUND);if(o==="context"){let m=u.get(e.trim().toLowerCase()).id,p=r?[]:await Ye(n,m,c,f.type_to_folder),h=w=>O(w,l),k=re(),E=le().lookup(n,ae(a,h,k),()=>A(a,h,k));return x(ot({assembly:E.assembly,canonicalId:m,options:t,rootEvidence:p,summaryOnly:r,outputFormat:s.json===!0?"json":"toon"}),r)}return r?x({id:e,format:o,...he(e,u,i)},!0):x(rt(e,o,t,u,i,d,s.json===!0?"json":"toon"),!1)}export{ae as a,M as b,le as c,ut as d,fe as e,Ne as f,Ae as g,Me as h,b as i,pe as j,Ke as k,ze as l,Bt as m,Ot as n};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{g as re,i as de,k as A}from"./chunk-L3AZOELJ.js";import{A as y,Af as ne,Bb as J,C as _,Da as X,Kd as Y,La as q,Lf as se,Mf as oe,Nc as V,Oa as H,Of as ie,Pe as C,Qd as $,Sd as Z,Se as N,Td as ee,Wd as te,b as z,cd as O,ib as v,lc as Q}from"./chunk-GE4KCSZP.js";import{createHash as Te}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var be=64,xe=8;function Re(e,t){let s=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let o=n;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",s].join("\0")}function ae(e,t=n=>n==="closed"||n==="canceled",s=v()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Re(i,t)).sort(),o=s.list().map(i=>J(i)).sort();return Te("sha256").update(n.join("")).update("").update(o.join("")).digest("hex")}function ce(e,t,s){let n=t??s;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var M=class{#e=new Map;#t;#n;constructor(t={}){this.#t=ce("maxResultsPerWorkspace",t.maxResultsPerWorkspace,be),this.#n=ce("maxWorkspaces",t.maxWorkspaces,xe)}lookup(t,s,n){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==s)&&(o={fingerprint:s,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let d=o,r=this.#t;return{assembly:d.assembly,assemblyReused:i,fingerprint:s,memoize(c,f){let a=d.results.get(c);if(a!==void 0||d.results.has(c))return d.results.delete(c),d.results.set(c,a),{value:structuredClone(a),reused:!0};let l=f();return d.results.size>=r&&d.results.delete(d.results.keys().next().value),d.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},ue=new M;function le(){return ue}function ut(){ue.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Le=["prerequisite","dependent","ancestor","descendant","provenance","related"],Ce=new TextEncoder;function P(e,t,s){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${s} must be positive`);return n}function S(e){return Math.max(1,Math.ceil(Ce.encode(JSON.stringify(e)).byteLength/4))}function U(e,t,s){let n=s.resolve(e.kind);if(n?.ordering){let i=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(n?.hierarchy){let i=(n.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Se(e,t,s,n){let o=e.filter(i=>i.source===t&&i.target===s||i.target===t&&i.source===s).map(i=>U(i,s,n));return[...new Set(o)].sort()}function De(e){return Le.find(t=>e.includes(t))}function Ie(e,t,s,n){let o=n.direction??"both",i=n.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let d=new Set([t]),r=[{id:t,distance:0}],c=[],f=0,a=!1;for(let l=0;l<r.length;l+=1){n.signal?.throwIfAborted();let u=r[l];if(u.distance>=i&&a)continue;let g=e.neighborEdges(u.id,{direction:o,kinds:n.kinds,signal:n.signal});if(f+=g.meta.inspectedEdges,u.distance>=i){g.value.some(m=>!d.has(m.id))&&(a=!0);continue}for(let{id:m,edge:p}of g.value){if(d.has(m))continue;d.add(m);let h={id:m,distance:u.distance+1,via:u.id,role:U(p,m,s)};c.push(h),r.push(h)}}return c.sort((l,u)=>l.distance-u.distance||l.id.localeCompare(u.id)),{rows:c,visitedNodes:r.length,inspectedEdges:f,depthTruncated:a}}function Be(e,t,s,n){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:d,edge:r}of i)o[U(r,d,s)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:d})=>d)}}function Oe(e){let t=[],s=e.initialTokens;for(let n of e.candidates){if(t.length>=e.nodeLimit)break;let o=n.distance===1?Se(e.rootEdges,e.rootId,n.id,e.registry):[],i={...e.details.get(n.id)??{id:n.id},distance:n.distance,role:o.length>0?De(o):n.role,via:n.via,reasons:o.length>0?o:[`${n.role} via ${n.via} (depth ${n.distance})`]},d=S(i);if(s+d>e.tokenBudget)break;t.push(i),s+=d}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:s}}function $e(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,s=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let d=e.registry.resolve(i.kind)?.inverse;return d!==void 0&&t.has(d)}),n=[],o=e.initialTokens;for(let i of s){if(n.length>=e.edgeLimit)break;let d=S(i);if(o+d>e.tokenBudget)break;n.push(i),o+=d}return{edges:n,usedTokens:o,candidateCount:s.length}}function fe(e,t,s,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=P(n.nodeLimit,20,"nodeLimit"),i=P(n.edgeLimit,40,"edgeLimit"),d=P(n.tokenBudget,1200,"tokenBudget"),r=n.registry??v(),c=new Map(s.map(T=>[T.id,T])),f=c.get(t)??{id:t},{evidence:a=[],...l}=f,u=[...a],g=Ie(e,t,r,n),{rootEdges:m,...p}=Be(e,t,r,n),h=Z("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3}),k=te(g.rows,n.cursor,h,({id:T})=>T),E=g.rows.slice(k),w=S(l)+S(u);if(w>d)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let G=Oe({candidates:E,details:c,rootEdges:m,rootId:t,registry:r,nodeLimit:o,tokenBudget:d,initialTokens:w}),{nodes:R}=G,we=new Set([t,...R.map(({id:T})=>T)]),j=$e({graph:e,included:we,options:n,registry:r,edgeLimit:i,tokenBudget:d,initialTokens:G.usedTokens}),{edges:D,usedTokens:ve}=j,L=k+R.length,I=L<g.rows.length,W=R.at(-1),B=j.candidateCount-D.length,K=g.depthTruncated||I||B>0,Ee={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...p,discoveredNodes:g.rows.length,returnedNodes:R.length,returnedEdges:D.length,omittedNodes:g.rows.length-L,omittedEdges:B,evidenceCount:u.length,hasMore:I};return{root:l,summary:Ee,nodes:R,edges:D,evidence:u,meta:{exact:!0,truncated:K,completeness:K?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:d,usedTokens:ve,visitedNodes:g.visitedNodes,inspectedEdges:g.inspectedEdges,omittedNodes:g.rows.length-L,omittedEdges:B,...I&&W?{nextCursor:ee(h,W.id,L-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a3535267-c69a-5a44-bdf9-02925e02aaeb")}catch{}})();var Ne=["tree","graph","context"],Ae=["none","repeated"],Me=["outgoing","incoming","both"],Pe=32,Ue=200,Fe=400,Ge=16e3;function je(e){let t=e?.trim().toLowerCase()??"tree";if(Ne.includes(t))return t;throw new _(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,y.USAGE)}function b(e,t){if(e===void 0)return;let s=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(s)||s<1)throw new _(`Invalid --${t} value "${e}". Use a positive integer.`,y.USAGE);return s}function pe(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new _(`Invalid --max-depth value "${e}". Use a non-negative integer.`,y.USAGE);return t}function We(e){let t=e?.trim().toLowerCase()??"none";if(Ae.includes(t))return t;throw new _(`Invalid --collapse value "${e}". Use "none" or "repeated".`,y.USAGE)}function Ke(e){let t=e?.trim().toLowerCase()??"both";if(Me.includes(t))return t;throw new _(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,y.USAGE)}function ze(e,t=v()){if(e===void 0)return;let s=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(s.length===0)return;let n=new Set;for(let o of s){let i=t.resolve(o);if(!i){let d=t.list().map(r=>r.kind).join(", ");throw new _(`Invalid --kind value "${o}". Registered kinds: ${d}.`,y.USAGE)}n.add(i.kind)}return[...n].sort()}function Xe(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:o})=>({id:n.trim(),kind:o.trim().toLowerCase()})).sort((n,o)=>{let i=n.kind.localeCompare(o.kind);return i!==0?i:n.id.localeCompare(o.id)}),s=new Map;for(let n of t){let o=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;s.has(o)||s.set(o,{id:n.id,kind:n.kind})}return[...s.values()]}function qe(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Xe(e.dependencies)}}function He(e){return C(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Je(e,t,s,n,o,i,d,r,c){for(let f of t.dependencies){let a=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:f.id,kind:f.kind}).length/3));if(r.nodes>=r.nodeLimit){e.truncated=!0,r.reasons.add("node_limit");break}if(r.edges>=r.edgeLimit){e.truncated=!0,r.reasons.add("edge_limit");break}if(r.estimatedTokens+a>=r.tokenBudget){e.truncated=!0,r.reasons.add("token_budget");break}r.edges+=1,r.estimatedTokens+=a,e.dependencies.push(ge(f.id,s,n,o,i,d,r,c+1,f.kind))}}function Qe(e,t,s,n,o,i,d,r){return d.estimatedTokens>=d.tokenBudget&&t?.dependencies.length?(e.truncated=!0,d.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&r>=n?(t.dependencies.length>0&&(e.truncated=!0,d.reasons.add("max_depth")),!0):o==="repeated"&&i.has(s)?(e.collapsed=!0,!0):!1}function ge(e,t,s,n,o,i,d,r=0,c){let f=e.trim().toLowerCase(),a=t.get(f),l={id:a?.id??e,title:a?.title,type:a?.type,status:a?.status,via:c,missing:!a,cycle:s.has(f),dependencies:[]};if(d.nodes+=1,d.estimatedTokens+=He(l),Qe(l,a,f,n,o,i,d,r))return l;o==="repeated"&&i.add(f);let u=new Set(s);return u.add(f),Je(l,a,t,u,n,o,i,d,r),l}function me(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Ve(e){let t=new Map,s=new Map,n=[e];for(;n.length>0;){let r=n.pop();t.set(r.id,me(t.get(r.id),{id:r.id,title:r.title,type:r.type,status:r.status,missing:r.missing}));for(let c of r.dependencies){t.set(c.id,me(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let f=c.via??"related",a=`${r.id}::${c.id}::${f}`;s.has(a)||s.set(a,{from:r.id,to:c.id,kind:f}),c.cycle||n.push(c)}}let o=[...t.values()].sort((r,c)=>r.id.localeCompare(c.id)),i=[...s.values()].sort((r,c)=>{let f=r.from.localeCompare(c.from);if(f!==0)return f;let a=r.to.localeCompare(c.to);return a!==0?a:r.kind.localeCompare(c.kind)}),d=o.filter(r=>r.missing).map(r=>r.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:d}}function he(e,t,s){let n=new Set,o=new Set,i=new Set,d=new Set,r=[{id:e,depth:0}],c=0;for(;c<r.length;){let f=r[c++],a=f.id.trim().toLowerCase();n.add(a);let l=t.get(a);if(!l){i.add(a);continue}if(!(s!==void 0&&f.depth>=s)&&!d.has(a)){d.add(a);for(let u of l.dependencies)o.add(`${a}::${u.id.trim().toLowerCase()}::${u.kind}`),r.push({id:u.id,depth:f.depth+1})}}return{node_count:n.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function ke(e,t=v()){let s=pe(e.maxDepth),n=b(e.nodeLimit,"node-limit"),o=b(e.edgeLimit,"edge-limit"),i=b(e.tokenBudget,"token-budget"),d=ze(e.kind,t);return{direction:Ke(e.direction),...d===void 0?{}:{kinds:d},...s===void 0?{}:{maxDepth:s},...n===void 0?{}:{nodeLimit:n},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function ye(e,t,s,n){return fe(e.graph,t,e.details.map(o=>o.id===t&&n.length>0?{...o,evidence:n}:o),s)}function Bt(e,t,s,n=[]){let o=A(t);return ye(o,e,ke(s,o.graph.registry()),n)}function F(e,t,s,n){for(let o of s.slice(0,n)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Ye(e,t,s,n){let o=await se(e,t,s.id_prefix,s.item_format,n);if(!o)return[];let{document:i}=await oe(o,{schema:s.schema}),d=i.metadata,r=d.files??[],c=d.tests??[],f=d.docs??[],a=[["files",r.length],["tests",c.length],["docs",f.length],["comments",(d.comments??[]).length],["notes",(d.notes??[]).length],["learnings",(d.learnings??[]).length]];if(a.every(([,u])=>u===0))return[];let l=[`linked:${a.map(([u,g])=>`${u}=${g}`).join(",")}`];return F(l,"file",r.map(u=>u.path),3),F(l,"test",c.map(u=>u.command??u.path),2),F(l,"doc",f.map(u=>u.path),2),l}function Ze(e){let{canonicalId:t,context:s,missingCount:n,missingReferences:o,referenceLimit:i,summaryOnly:d}=e;return{id:t,format:"context",node_count:s.nodes.length+1,edge_count:s.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:o.length,...d?{}:{missing_references:o.slice(0,i),context:s}}}function et(e){let{row:t,missingReachableSet:s,packetIds:n,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!s.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(o===void 0)return!0;let d=i.resolve(t.kind);return d!==void 0&&(o.has(d.kind)||d.inverse!==void 0&&o.has(d.inverse))}function _e(e,t,s){let n;for(;;){let o=C(new TextEncoder().encode(N($("deps",e),t)).byteLength);if(o===n)return o;s(o),n=o}}function tt(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function nt(e){try{return ye(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&tt(t))return e.smallestResult;throw t}}function st(e){let{assembly:t,canonicalId:s,contextOptions:n,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:r,missingReferences:c}=e,a=n.edgeLimit??40,l=n.tokenBudget,u,g;for(;;){let m=nt({assembly:t,canonicalId:s,contextOptions:n,internalTokenBudget:l,rootEvidence:o,smallestResult:g});if("format"in m)return m;let p=m;u??=p.meta.tokenBudget,l??=u;let h=Ze({canonicalId:s,context:p,missingCount:r,missingReferences:c,referenceLimit:a,summaryOnly:i});if(g=h,i||(p.meta.tokenBudget=u,p.meta.usedTokens=_e(x(h,!1),d,w=>{p.meta.usedTokens=w}),p.meta.usedTokens<=u))return h;if(a>0){a-=1;continue}let k=l,E=k*u/p.meta.usedTokens;l=Math.min(k-1,Math.max(1,Math.floor(E*.9)))}}function ot(e){let{assembly:t,canonicalId:s,options:n,rootEvidence:o,summaryOnly:i,outputFormat:d}=e,r=ke(n,t.graph.registry()),c=t.graph.closure(s,{direction:r.direction,...r.kinds===void 0?{}:{kinds:r.kinds},maxDepth:r.maxDepth??3}),f=c.value.filter(p=>t.missingIdSet.has(p.toLowerCase())),a=new Set(f.map(p=>p.toLowerCase())),l=t.graph.registry(),u=r.kinds?new Set(r.kinds.map(p=>l.require(p).kind)):void 0,g=new Set([s,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(p=>et({row:p,missingReachableSet:a,packetIds:g,filteredKinds:u,registry:l}));return st({assembly:t,canonicalId:s,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:f.length,missingReferences:m})}function it(e){let t=[e],s;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(s=n,t.push(...n.dependencies))}return s?(s.dependencies.pop(),s.truncated=!0,!0):!1}function rt(e,t,s,n,o,i,d){let r=o??Pe,c=b(s.nodeLimit,"node-limit")??Ue,f=b(s.edgeLimit,"edge-limit")??Fe,a=b(s.tokenBudget,"token-budget")??Ge,l={nodeLimit:c,edgeLimit:f,tokenBudget:a,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},u=ge(e,n,new Set,r,t==="graph"?"repeated":i,new Set,l),g=he(e,n,void 0),m;for(;;){let p=Ve(u),h=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:r,node_limit:c,edge_limit:f,token_budget:a},estimated_tokens:0,total_node_count:g.node_count,total_edge_count:g.edge_count,omitted_node_count:Math.max(0,g.node_count-p.nodes.length),omitted_edge_count:Math.max(0,g.edge_count-p.edges.length)},k={id:e,format:t,node_count:p.nodes.length,edge_count:p.edges.length,edge_basis:"deduplicated_directed",missing_count:p.missing_ids.length,...h?{truncation:h}:{}};if(m=t==="tree"?{...k,tree:u}:{...k,graph:p},(m.truncation===void 0?C(new TextEncoder().encode(N($("deps",x(m,!1)),d)).byteLength):_e(x(m,!1),d,w=>{m.truncation.estimated_tokens=w}))<=a)return m;if(!it(u))return l.reasons.add("token_budget"),m;l.reasons.add("token_budget")}}function x(e,t){let s={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,projection:{mode:t?"summary":"full",declared_field_groups:[s],included_field_groups:t?[]:[s.name]}}}async function Ot(e,t,s){let n=q(process.cwd(),s.path);if(!await z(H(n)))throw new _(`Tracker is not initialized at ${n}. Run pm init first.`,y.NOT_FOUND);let o=je(t.format),i=pe(t.maxDepth),d=We(t.collapse);Y(t.summary===!0,t.full===!0,"--summary");let r=t.summary===!0,c=await ne(n),f=X(c,Q()),a=await ie(n,c.item_format,f.type_to_folder,void 0,c.schema),l=V(c.schema),u=new Map(a.map(m=>[m.id.trim().toLowerCase(),qe(m)])),g=de(a,m=>O(m,l));for(let m of[...g.active,...g.legacy_terminal]){let p=u.get(m.holder_id.trim().toLowerCase()),h=m.kind.trim().toLowerCase();p&&!p.dependencies.some(k=>k.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&k.kind===h)&&p.dependencies.push({id:m.target_id,kind:h})}if(!u.has(e.trim().toLowerCase()))throw new _(`Item ${e} not found`,y.NOT_FOUND);if(o==="context"){let m=u.get(e.trim().toLowerCase()).id,p=r?[]:await Ye(n,m,c,f.type_to_folder),h=w=>O(w,l),k=re(),E=le().lookup(n,ae(a,h,k),()=>A(a,h,k));return x(ot({assembly:E.assembly,canonicalId:m,options:t,rootEvidence:p,summaryOnly:r,outputFormat:s.json===!0?"json":"toon"}),r)}return r?x({id:e,format:o,...he(e,u,i)},!0):x(rt(e,o,t,u,i,d,s.json===!0?"json":"toon"),!1)}export{ae as a,M as b,le as c,ut as d,fe as e,Ne as f,Ae as g,Me as h,b as i,pe as j,Ke as k,ze as l,Bt as m,Ot as n};
|
|
2
|
+
//# sourceMappingURL=chunk-LKDGK44W.js.map
|