@unbrained/pm-cli 2026.9.8 → 2026.9.10
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/.agents/skills/pm-user/SKILL.md +2 -2
- package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +1 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +38 -2
- package/dist/cli/command-namespaces.d.ts +9 -0
- package/dist/cli/command-namespaces.js +2 -0
- package/dist/cli/help-content.js +1 -1
- package/dist/cli/help-json-payload.d.ts +5 -1
- package/dist/cli/help-json-payload.js +2 -2
- package/dist/cli/main.d.ts +1 -0
- package/dist/cli/main.js +3 -3
- package/dist/cli/register-list-query.js +4 -4
- package/dist/cli/register-mutation.d.ts +0 -5
- package/dist/cli/register-mutation.js +2 -2
- package/dist/cli/register-operations.d.ts +0 -5
- package/dist/cli/register-operations.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +154 -154
- package/dist/cli-bundle/chunks/chunk-4SFBH77G.js +2233 -0
- package/dist/cli-bundle/chunks/{chunk-LEZOUXG6.js → chunk-74RGSPLL.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-7WIHZI2M.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-JAAEYHUA.js → chunk-EOCKPCEY.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-GLQMKUGP.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-FLDWYEND.js → chunk-I6XT3DLQ.js} +62 -60
- package/dist/cli-bundle/chunks/chunk-MACGGTLQ.js +29 -0
- package/dist/cli-bundle/chunks/chunk-NKOYVKFM.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-YVEQ2AMO.js → chunk-P6BEYAON.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G5ADGQ2D.js → chunk-PYUITRSV.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-T3AMFUCN.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-XOD2PCB6.js → chunk-TSWEX72T.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-YKQTETJI.js +235 -0
- package/dist/cli-bundle/chunks/{register-list-query-KSK3R63M.js → register-list-query-CUIW7SSE.js} +7 -7
- package/dist/cli-bundle/chunks/register-mutation-5F5CYUWZ.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-XIZPLPQY.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-BQ5SVD4B.js → register-setup-JVGPCAIL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RXT4P5QH.js → chunk-26O2WB73.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-5YU75QLV.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-EE5QSM4Z.js → chunk-7N5MRONP.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-B2CMFYRZ.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-OPFHFGDD.js → chunk-CRY5MHEI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-COPBO5HW.js → chunk-F6WKFXBT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-HJVARYM3.js → chunk-FHUARRMA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3WRPWLA7.js → chunk-M36SF4GE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-OROZM37I.js +177 -0
- package/dist/cli-bundle/focused-chunks/{chunk-7MBUII7U.js → chunk-PNGYYQY7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SL5YVVPV.js +58 -0
- package/dist/cli-bundle/focused-chunks/chunk-TPOL4TWE.js +9 -0
- package/dist/cli-bundle/focused-chunks/{chunk-RMWES4M6.js → chunk-U5SHHU7E.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-XSMA2W6Q.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZAWAL2CG.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZDNAWWQI.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-DUN4IXYN.js → chunk-ZJHYQOTM.js} +2 -2
- package/dist/cli-bundle/main.js +26 -26
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +29 -29
- 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 +42 -42
- 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 +10 -10
- package/dist/core/config/nested-settings.js +1 -1
- package/dist/core/policy/workflow-policy-schema.d.ts +312 -0
- package/dist/core/policy/workflow-policy-schema.js +2 -0
- package/dist/core/policy/workflow-policy-store.d.ts +24 -0
- package/dist/core/policy/workflow-policy-store.js +2 -0
- package/dist/core/policy/workflow-policy.d.ts +139 -0
- package/dist/core/policy/workflow-policy.js +2 -0
- package/dist/core/shared/constants.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/core/store/settings-validator.d.ts +1 -0
- package/dist/core/store/settings-validator.js +1 -1
- package/dist/core/store/settings.js +1 -1
- package/dist/mcp/tool-definitions.js +1 -1
- package/dist/sdk/agent/item-addressing.js +1 -1
- package/dist/sdk/agent-capability-contracts.js +1 -1
- package/dist/sdk/cli-bootstrap.js +1 -1
- package/dist/sdk/cli-contracts/command-aliases.d.ts +11 -1
- package/dist/sdk/cli-contracts/command-aliases.js +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +4 -1
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -3
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +2 -0
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -1
- package/dist/sdk/completion.js +375 -347
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/validate.d.ts +3 -1
- package/dist/sdk/governance/validate.js +1 -1
- package/dist/sdk/governance/workflow-completeness.d.ts +32 -0
- package/dist/sdk/governance/workflow-completeness.js +2 -0
- package/dist/sdk/governance/workflow-policy.d.ts +47 -0
- package/dist/sdk/governance/workflow-policy.js +4 -0
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +1 -1
- package/dist/sdk/index.d.ts +2 -2
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/lifecycle-transitions.d.ts +1 -1
- package/dist/sdk/lifecycle/lifecycle-transitions.js +1 -1
- package/dist/sdk/lifecycle/mcp-actions.js +1 -1
- package/dist/sdk/lifecycle/recurrence-parsers.d.ts +1 -1
- package/dist/sdk/lifecycle/recurrence-parsers.js +1 -1
- package/dist/sdk/lifecycle/restore.js +1 -1
- package/dist/sdk/lifecycle/task-composition.d.ts +17 -0
- package/dist/sdk/lifecycle/task-composition.js +2 -0
- package/dist/sdk/lifecycle/update.js +1 -1
- package/dist/sdk/package-import-adapters.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/search-contracts.d.ts +27 -0
- package/dist/sdk/query/search-contracts.js +1 -1
- package/dist/sdk/query/search.d.ts +6 -4
- package/dist/sdk/query/search.js +2 -2
- package/dist/sdk/query/workspace-contracts.d.ts +3 -0
- package/dist/sdk/query/workspace-contracts.js +2 -0
- package/dist/sdk/read-output-contracts.d.ts +1 -1
- package/dist/sdk/read-output-contracts.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime-public-contracts.d.ts +2 -1
- package/dist/sdk/runtime.d.ts +73 -9
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/schema.d.ts +2 -1
- package/dist/sdk/schema.js +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.js +1 -1
- package/docs/COMMANDS.md +36 -24
- package/docs/COMMAND_NAMESPACES.md +65 -0
- package/docs/CONFIGURATION.md +12 -1
- package/docs/LIFECYCLE_COMMANDS.md +77 -0
- package/docs/README.md +3 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +5 -0
- package/docs/TESTING.md +10 -0
- package/docs/WORKFLOW_POLICIES.md +129 -0
- package/docs/generated/AGENT_CAPABILITY_ROUTING.md +6 -6
- package/docs/generated/AGENT_COMMAND_SURFACE.md +19 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +23 -5
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -5
- package/marketplace.json +2 -2
- package/package.json +5 -5
- 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/README.md +4 -2
- 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/README.md +6 -4
- 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/dist/cli-bundle/chunks/chunk-3BZZA6A3.js +0 -5
- package/dist/cli-bundle/chunks/chunk-AMRDVX36.js +0 -235
- package/dist/cli-bundle/chunks/chunk-DAM4CBBR.js +0 -2202
- package/dist/cli-bundle/chunks/chunk-KR3RP4FH.js +0 -3
- package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +0 -2
- package/dist/cli-bundle/chunks/chunk-QOEKOECV.js +0 -29
- package/dist/cli-bundle/chunks/chunk-RHSFOMHU.js +0 -2
- package/dist/cli-bundle/chunks/register-mutation-IQ5C7U6O.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-DWVHR2NC.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-IAUOUGVR.js +0 -177
- package/dist/cli-bundle/focused-chunks/chunk-KOOMJ54F.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-MZDXX7JY.js +0 -56
- package/dist/cli-bundle/focused-chunks/chunk-QHNETP77.js +0 -9
- package/dist/cli-bundle/focused-chunks/chunk-SDOL6FM2.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-SQV4AAUC.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-WE3IUNIW.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-YALOUBWJ.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as L,h as T}from"./chunk-KR3RP4FH.js";import{Ka as I,Pa as j,Ra as P,ta as U,wa as O}from"./chunk-FLDWYEND.js";import"./chunk-DEZPZOQ7.js";import{I as d,K as m,Nn as y,Qn as k,Vi as R,cb as D,f as G,g as $,lh as S,oh as w,ph as h}from"./chunk-AMRDVX36.js";import C from"node:fs/promises";import W from"node:path";(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]="66c6b511-901e-596f-bf5b-6af9652519bb")}catch{}})();(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]="0b0e08e0-f6e7-59c4-ac96-9f47b172727a")}catch{}})();(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]="d975120a-964e-5b19-ae10-8ba011ba9bf8")}catch{}})();(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]="74e48eb2-5a8d-51da-9abb-43d6451e5f11")}catch{}})();(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]="a22921b3-d233-5bf8-aa95-ab98ae854502")}catch{}})();(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]="3c84ab8c-970a-5d71-a5a3-9166a8da9e64")}catch{}})();(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]="4720a00c-4389-5dd4-a9f9-63aeff8c8762")}catch{}})();var H={extension:"extension",package:void 0};async function _(e,t){if(!e)return;let o=G(e),a=y(t);await R(D(process.cwd(),a.path)).then(r=>r.ux.deprecation_hints)&&h($(o))}var V={init:"init",install:"install",uninstall:"uninstall",explore:"explore",manage:"manage",describe:"describe",reload:"reload",doctor:"doctor",catalog:"catalog",adopt:"adopt","adopt-all":"adoptAll",activate:"activate",deactivate:"deactivate",migrate:"migrate"};function X(e){let t=e.capability,o=typeof t=="string"?[t]:Array.isArray(t)?t.filter(i=>typeof i=="string"):[],a=[...new Set(o.map(i=>i.trim().toLowerCase()).filter(i=>i.length>0))];if(a.length>1)throw new m(`Multiple scaffold capabilities cannot be combined yet: ${a.join(", ")}. Choose one capability per scaffold.`,d.USAGE);return a[0]}function A(e,t,o="extension"){let a={...e};t!==void 0&&(a[V[t]]=!0);let i=(...c)=>c.some(s=>a[s]===!0),r=(...c)=>{for(let s of c)if(typeof a[s]=="string")return a[s]};return{init:i("init"),scaffold:i("scaffold"),install:i("install"),uninstall:i("uninstall"),explore:i("explore","list"),manage:i("manage"),describe:i("describe"),markdown:i("markdown"),reload:i("reload"),doctor:i("doctor"),catalog:i("catalog"),adopt:i("adopt"),adoptAll:i("adoptAll","adopt_all","adopt-all"),activate:i("activate"),deactivate:i("deactivate"),migrate:i("migrate"),project:i("project"),local:i("local"),global:i("global"),gh:r("gh"),github:r("github"),ref:r("ref"),capability:X(e),declarative:i("declarative"),fields:r("fields"),detail:r("detail"),output:r("output"),trace:i("trace"),watch:i("watch"),runtimeProbe:i("runtimeProbe","runtime_probe","runtime-probe"),fixManagedState:i("fixManagedState","fix_managed_state","fix-managed-state"),isolated:i("isolated"),ignoreGlobal:i("ignoreGlobal","ignore_global","ignore-global"),strictExit:i("strictExit","strict_exit","strict-exit"),failOnWarn:i("failOnWarn","fail_on_warn","fail-on-warn"),dryRun:i("dryRun","dry_run","dry-run"),vocabulary:o}}async function Y(e){let t=(await C.readdir(process.cwd())).filter(a=>!a.startsWith(".")).sort((a,i)=>a.localeCompare(i)),o=[...e].sort((a,i)=>a.localeCompare(i));return t.length===o.length&&t.every((a,i)=>a===o[i])}async function J(e){let t=(e??[]).map(o=>o.trim()).filter(o=>o.length>0);return t.length<=1?t.length===0?void 0:t:await Y(t)?["*"]:t}function M(e,t,o){let a=e.markdown===!0;if(o!==void 0&&o==="")throw new m("--output requires a non-empty file path.",d.USAGE);if(o!==void 0&&!a)throw new m("--output is only supported with --markdown describe output.",d.USAGE);if(a){if(t.json)throw new m("Cannot combine --json with --markdown.",d.USAGE);if(e.describe!==!0)throw new m("--markdown is only supported by the describe action.",d.USAGE)}}async function Q(e){let t=O(e.result.details,e.vocabulary);if(e.outputPath!==void 0){let o=W.resolve(e.outputPath);await C.mkdir(W.dirname(o),{recursive:!0}),await C.writeFile(o,t,"utf8")}if(!e.globalOptions.quiet){for(let o of e.result.warnings)h(`warning: ${o}`);e.outputPath===void 0&&S(t)}}function Z(e,t){let o=!!t.strictExit||!!t.failOnWarn;if(e.action!=="doctor"||!o)return;let a=e.details!==null&&typeof e.details=="object"?e.details:{},i=a.summary!==null&&typeof a.summary=="object"?a.summary:null,r=i&&typeof i.status=="string"?i.status:void 0;(e.warnings.length>0||r!==void 0&&r!=="ok")&&(process.exitCode=d.GENERIC_FAILURE)}async function p(e,t,o,a,i="extension"){let r=y(o),c=Date.now(),s=i==="extension"?"package":i;await _(H[i],o);let n=A(t,a,s),f=(typeof n.output=="string"?n.output:void 0)?.trim();M(n,r,f);let g=await I(e,n,r);n.markdown===!0?await Q({result:g,vocabulary:s,outputPath:f,globalOptions:r}):w(g,r),Z(g,n),g.ok===!1&&(process.exitCode=d.GENERIC_FAILURE),r.profile&&h(`profile:command=extension took_ms=${Date.now()-c}`)}function ee(e){return e.details!==null&&typeof e.details=="object"?e.details:{}}function te(e){return e instanceof m?{message:e.message,exit_code:e.exitCode,...e.context}:{message:e instanceof Error?e.message:String(e),exit_code:d.GENERIC_FAILURE}}async function oe(e,t,o){let a=[],i=[],r=d.GENERIC_FAILURE;for(let c of e)try{let s=await I(c,t,o),n=ee(s),l=Array.isArray(s.warnings)?s.warnings:[];i.push(...l);let f=s.ok===!0;a.push({target:c,ok:f,extension:n.extension,source:n.source,install_plan:n.install_plan,dry_run:n.dry_run,destination_path:n.destination_path,activated:n.activated,settings_changed:n.settings_changed,command_paths:n.command_paths,action_paths:n.action_paths,runtime_activation_status:n.runtime_activation_status,activation_diagnostics:n.activation_diagnostics,command_discovery:n.command_discovery,verification:n.verification,warnings:l,...f?{}:{error:{message:"Extension install returned ok=false without throwing an error.",exit_code:d.GENERIC_FAILURE,code:"extension_install_soft_failed"}}})}catch(s){let n=te(s),l=n.exit_code;typeof l=="number"&&r===d.GENERIC_FAILURE&&l!==d.GENERIC_FAILURE&&(r=l),a.push({target:c,ok:!1,error:n})}return{rows:a,warnings:i,failureExitCode:r}}async function z(e,t,o,a){let i=a==="extension"?"package":a;await _(H[a],o);let r=await J(e);if(r===void 0||r.length<=1){await p(r?.[0],t,o,"install",i);return}let c=y(o),s=Date.now(),n=A(t,"install",i);if(M(n,c,void 0),[n.gh,n.github].some(b=>typeof b=="string"&&b.trim().length>0))throw new m("Multiple install targets cannot be combined with --gh/--github. Install one GitHub source per command, or pass multiple explicit local, bundled, or npm: targets.",d.USAGE,{code:"multi_target_github_install_ambiguous",required:"Use exactly one positional target with --gh/--github, or omit --gh/--github when installing multiple targets.",examples:["pm install --gh owner/repo","pm install npm:pm-guide-shell pm-todos"]});let{rows:f,warnings:g,failureExitCode:E}=await oe(r,n,c),v=f.filter(b=>b.ok!==!0).length,K={ok:v===0,action:"install",scope:n.global===!0?"global":"project",installed_count:n.dryRun===!0?0:f.length-v,...n.dryRun===!0?{dry_run:!0,planned_count:f.length-v}:{},failed_count:v,targets:f,warnings:[...new Set(g)].sort((b,B)=>b.localeCompare(B))};w(K,c),v>0&&(process.exitCode=E),c.profile&&h(`profile:command=extension took_ms=${Date.now()-s}`)}function ae(e){return e.option("--project","Use project extension scope (default)").option("--local","Alias for --project").option("--global","Use global extension scope")}function x(e){return e.option("--project","Use project package scope (default)").option("--local","Alias for --project").option("--global","Use global package scope")}function u(e,t){return t==="package"?x(e):ae(e)}function N(e){return e.option("--dry-run","Plan CLI/package upgrades without running npm or reinstalling packages").option("--cli-only","Upgrade only the pm CLI/SDK npm package").option("--packages-only","Upgrade only managed pm packages").option("--repair","Force npm global reinstall when upgrading the pm CLI/SDK").option("--tag <value>","npm dist-tag/version for CLI and registry package upgrades").option("--package-name <value>","Override the CLI package name for self-upgrade testing")}async function q(e,t,o){let a=y(t),i=Date.now();o&&await _("upgrade",t);let r=await L(e,t.optsWithGlobals(),a);w(r,a),r.ok||(process.exitCode=d.GENERIC_FAILURE),a.profile&&h(`profile:command=package-upgrade took_ms=${Date.now()-i}`)}function F(e,t){let o=t==="package"?"package":"extension",a=t==="package"?"packages":"extensions",i=t,r=e.command(i,{hidden:t==="extension"}).argument("[target]",`${o[0].toUpperCase()}${o.slice(1)} source, name, or scaffold path`).option("--init",`Generate a starter ${o} scaffold at target path`).option("--scaffold","Alias for --init").option("--capability <kind>","Starter capability for --init (default: commands)",k).option("--install",`Install a ${o} source`).option("--dry-run","Resolve install sources and estimate copying without destination writes or activation").option("--uninstall",`Uninstall an installed ${o}`).option("--explore",`List discovered ${a} in selected scope`).option("--list","Alias for --explore").option("--manage",`List managed ${a} with update-check metadata`).option("--describe",`Map every surface a loaded ${o} registers (optionally one by name)`).option("--markdown","Render describe output as a Markdown reference document (describe only)").option("--output <path>","Write describe Markdown to a file (requires --markdown)").option("--reload",`Reload ${a} with cache-busted module imports`).option("--watch","Use watch mode with --reload").option("--doctor",`Run consolidated ${o} diagnostics (summary/deep modes)`).option("--catalog",`List bundled first-party ${o} catalog metadata`).option("--adopt",`Adopt an existing unmanaged ${o} into managed metadata`).option("--adopt-all",`Adopt all unmanaged ${a} into managed metadata`).option("--activate",`Activate a ${o} in selected scope settings`).option("--deactivate",`Deactivate a ${o} in selected scope settings`).option("--project",`Use project ${o} scope (default)`).option("--local","Alias for --project").option("--global",`Use global ${o} scope`).option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").option("--detail <mode>",`${o[0].toUpperCase()}${o.slice(1)} diagnostics detail mode (summary|deep)`).option("--trace","Include actionable registration traces in doctor deep diagnostics").option("--runtime-probe","Opt-in runtime activation probe for manage output parity").option("--fix-managed-state",`Adopt unmanaged ${a} before diagnostics/update checks`).option("--isolated",`Run doctor against project-scope ${a} only, ignoring global registrations`).option("--ignore-global","Alias for --isolated").option("--strict-exit","Return non-zero exit when doctor warnings are present (ok=false)").option("--fail-on-warn","Alias for --strict-exit (doctor)").description(t==="package"?"Manage package lifecycle in project or global scope.":"Manage extension lifecycle in project or global scope.").action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,void 0,t)});t==="package"&&(r.alias("packages"),r.option("--declarative","Scaffold the composeExtension blueprint starter (any capability)"));let c=r.command("init").alias("scaffold").argument("<target>","Scaffold target directory path").option("--capability <kind>",`Capability the starter targets (${U.join("|")}; default commands)`,k).description(t==="package"?"Generate a starter package scaffold with package metadata, manifest, and entrypoint.":"Generate a starter extension scaffold with manifest and entrypoint.");t==="package"&&c.option("--declarative","Scaffold the composeExtension blueprint starter (any capability)"),u(c,t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"init",t)}),u(r.command("install").option("--dry-run","Resolve sources and estimate copying without destination writes or activation").argument("[targets...]",`${o[0].toUpperCase()}${o.slice(1)} source (local path, bundled alias, npm: source, wildcard, or GitHub source)`).option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").description(`Install ${o} from local path, bundled alias, npm: source, wildcard, or GitHub source.`),t).action(async(s,n,l)=>{await z(s,l.optsWithGlobals(),l,t)}),u(r.command("uninstall").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Uninstall an installed ${o}.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"uninstall",t)}),u(r.command("explore").description(`List discovered ${a} in selected scope.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"explore",t)}),u(r.command("manage").option("--runtime-probe","Opt-in runtime activation probe for manage output parity").option("--fix-managed-state",`Adopt unmanaged ${a} before diagnostics/update checks`).description(`List managed ${a} with update-check metadata.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"manage",t)}),u(r.command("describe").argument("[target]",`${o[0].toUpperCase()}${o.slice(1)} name to describe (omit for every loaded ${o})`).option("--markdown","Render the surface map as a Markdown reference document instead of toon/json").option("--output <path>","Write Markdown output to a file (requires --markdown)").description(`Map every surface a loaded ${o} registers (commands, hooks, item types, providers, overrides, ...).`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"describe",t)}),u(r.command("reload").option("--watch","Use watch mode for repeated reload checks").description(`Reload ${a} with cache-busted module imports.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"reload",t)}),u(r.command("doctor").option("--detail <mode>",`Detail mode for ${o} diagnostics (summary|deep)`).option("--trace","Include actionable registration traces in doctor deep diagnostics").option("--fix-managed-state",`Adopt unmanaged ${a} before diagnostics/update checks`).option("--isolated",`Run doctor against project-scope ${a} only, ignoring global registrations`).option("--ignore-global","Alias for --isolated").option("--strict-exit","Return non-zero exit when doctor warnings are present (ok=false)").option("--fail-on-warn","Alias for --strict-exit (doctor)").description(`Run consolidated ${o} diagnostics (summary/deep modes).`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"doctor",t)}),u(r.command("catalog").alias("list").option("--fields <value>","Render compact comma-separated catalog fields, for example: alias,installed,install_command").description(`List bundled first-party ${o} catalog metadata.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"catalog",t)}),u(r.command("adopt").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).option("--gh <owner/repo[/path]>",`GitHub provenance shorthand for adopted ${o}`).option("--github <owner/repo[/path]>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub shorthand source").description(`Adopt an existing unmanaged ${o} into managed metadata.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"adopt",t)}),u(r.command("adopt-all").description(`Adopt all unmanaged ${a} into managed metadata.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"adopt-all",t)}),u(r.command("migrate").option("--dry-run","Plan active migrations without invoking extension code").description(`Plan or apply active ${o} migrations with durable receipts.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"migrate",t)}),u(r.command("activate").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Activate a ${o} in selected scope settings.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"activate",t)}),u(r.command("deactivate").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Deactivate a ${o} in selected scope settings.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"deactivate",t)}),t==="package"&&N(x(r.command("upgrade").argument("[target]","Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages").description("Upgrade the pm CLI/SDK and refresh managed installable pm packages."))).action(async(s,n,l)=>{await q(s,l,!1)})}async function ie(e,t,o){let a=y(o),i=Date.now(),r=await P(e,a,{idPrefix:typeof t.idPrefix=="string"?t.idPrefix:void 0,preset:typeof t.preset=="string"?t.preset:void 0,defaults:t.defaults===!0||t.yes===!0,author:typeof t.author=="string"?t.author:void 0,agentGuidance:typeof t.agentGuidance=="string"?t.agentGuidance:void 0,typePreset:typeof t.typePreset=="string"?t.typePreset:void 0,withPackages:t.withPackages===!0,mergeFence:t.mergeFence!==!1,force:t.force===!0,workspace:typeof t.workspace=="string"?t.workspace:void 0}),s=t.verbose===!0||a.json===!0;w(s?r:j(r),a),a.profile&&h(`profile:command=init took_ms=${Date.now()-i}`)}function ne(e,t,o,a){let r=e!==void 0&&new Set(["get","set","list","export"]).has(e);return{resolvedScope:r?"project":e??"project",resolvedAction:r?e:t??"list",resolvedKey:r?t:o,resolvedValue:r?o:a}}function re(e){return{criterion:Array.isArray(e.criterion)?e.criterion:[],format:typeof e.format=="string"?e.format:void 0,policy:typeof e.policy=="string"?e.policy:void 0,value:typeof e.value=="string"?e.value:void 0,clearCriteria:e.clearCriteria===!0,defaultDepth:typeof e.defaultDepth=="string"?e.defaultDepth:void 0,activityLimit:typeof e.activityLimit=="string"?e.activityLimit:void 0,staleThresholdDays:typeof e.staleThresholdDays=="string"?e.staleThresholdDays:void 0,sectionHierarchy:typeof e.sectionHierarchy=="string"?e.sectionHierarchy:void 0,sectionActivity:typeof e.sectionActivity=="string"?e.sectionActivity:void 0,sectionProgress:typeof e.sectionProgress=="string"?e.sectionProgress:void 0,sectionBlockers:typeof e.sectionBlockers=="string"?e.sectionBlockers:void 0,sectionFiles:typeof e.sectionFiles=="string"?e.sectionFiles:void 0,sectionWorkload:typeof e.sectionWorkload=="string"?e.sectionWorkload:void 0,sectionStaleness:typeof e.sectionStaleness=="string"?e.sectionStaleness:void 0,sectionTests:typeof e.sectionTests=="string"?e.sectionTests:void 0}}async function se(e,t,o,a,i,r){let c=y(r),s=Date.now(),{resolvedScope:n,resolvedAction:l,resolvedKey:f,resolvedValue:g}=ne(e,t,o,a),E=await T(n,l,f,re(i),c,typeof g=="string"?g:void 0);w(E,c),c.profile&&h(`profile:command=config took_ms=${Date.now()-s}`)}var Se={normalizeExtensionOptions:A};function Re(e){e.command("init").argument("[prefix-or-path]","Optional id prefix, or path-like tracker target such as ./pm-sandbox").option("--prefix, --id-prefix <value>","Set the item ID prefix (alias for the positional prefix)").option("--preset <value>","Governance preset for new setups: minimal|default|strict").option("--defaults","Use non-interactive setup defaults without opening the wizard").option("-y, --yes","Alias for --defaults (non-interactive setup)").option("--author <value>","Set the default mutation author for this project").option("--agent-guidance <mode>","Agent guidance mode: ask|add|skip|status").option("--type-preset <name>","Register domain item types during init: agile|ops|research").option("--with-packages","Install all bundled first-party packages during initialization").option("--no-merge-fence","Skip automatic merge-driver installation for a fresh Git-backed tracker").option("--workspace <dir>","Initialize repository-local tracker storage at <dir>/.agents/pm").option("--force","Allow initializing tracker files directly in a directory that looks like a workspace root").option("--verbose","Include the full resolved settings tree in the output (default output is a concise summary)").description("Initialize pm storage and defaults for the current workspace or a path-like tracker target.").action(async(t,o,a)=>{await ie(t,o,a)}),e.command("config").argument("[scope]","Config scope: project|global, or action shorthand list|export|get|set for project scope").argument("[action]","Config action: get|set|list|export").argument("[key]","Config key for get|set; use `pm config project list` for the complete typed inventory, including mutation-guard-* policies").argument("[value]",'Optional value for set: routed to the right typed flag by key (e.g. config set telemetry-tracking off, config set item-format toon, config set definition-of-done "Tests pass"). Equivalent to --policy/--format/--criterion. context keys still require --default-depth/--section-* flags.').option("--criterion <text>","Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)",k).option("--clear-criteria","Clear criteria-list keys for config set operations").option("--format <value>","Item format for item-format key: toon").option("--policy <value>","Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-require-close-reason=enabled|disabled; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; governance-duplicate-detection-mode=off|advisory|strict; test-result-tracking=enabled|disabled; untrusted-linked-test-execution=enabled|disabled; telemetry-tracking=enabled|disabled").option("--value <value>","Typed nested setting value. Mutation guards: require-attributed-author=true|false, secret-guard=off|advise|block, stale-in-progress-hours=integer>=1. Kebab-case is preferred; underscore aliases remain accepted.").option("--default-depth <value>","Context default depth: brief|standard|deep").option("--activity-limit <n>","Context default activity limit").option("--stale-threshold-days <n>","Context staleness cutoff in days").option("--section-hierarchy <value>","Enable/disable context hierarchy section (true|false)").option("--section-activity <value>","Enable/disable context activity section (true|false)").option("--section-progress <value>","Enable/disable context progress section (true|false)").option("--section-blockers <value>","Enable/disable context blockers section (true|false)").option("--section-files <value>","Enable/disable context files section (true|false)").option("--section-workload <value>","Enable/disable context workload section (true|false)").option("--section-staleness <value>","Enable/disable context staleness section (true|false)").option("--section-tests <value>","Enable/disable context tests section (true|false)").description("Read or update pm settings for the current workspace or global profile.").action(async(t,o,a,i,r,c)=>{await se(t,o,a,i,r,c)}),F(e,"extension"),F(e,"package"),x(e.command("install",{hidden:!0}).option("--dry-run","Resolve sources and estimate copying without destination writes or activation").argument("[targets...]","Package source (local path, bundled alias, npm: source, wildcard, or GitHub source)").option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").description("Install a pm package into the project package scope by default.")).action(async(t,o,a)=>{await _("install",a),await z(t,a.optsWithGlobals(),a,"package")}),N(x(e.command("upgrade",{hidden:!0}).argument("[target]","Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages").description("Upgrade the pm CLI/SDK and refresh managed installable pm packages."))).action(async(t,o,a)=>{await q(t,a,!0)})}export{Se as _testOnlyRegisterSetup,Re as registerSetupCommands};
|
|
2
|
-
//# sourceMappingURL=register-setup-
|
|
1
|
+
import{a as L,h as T}from"./chunk-NKOYVKFM.js";import{Ca as O,Qa as I,Va as j,Xa as P,za as U}from"./chunk-I6XT3DLQ.js";import"./chunk-DEZPZOQ7.js";import{Bh as S,Eh as w,Fh as h,N as d,P as m,hb as D,ho as y,jj as R,k as G,ko as k,l as $}from"./chunk-YKQTETJI.js";import C from"node:fs/promises";import W from"node:path";(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]="66c6b511-901e-596f-bf5b-6af9652519bb")}catch{}})();(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]="0b0e08e0-f6e7-59c4-ac96-9f47b172727a")}catch{}})();(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]="d975120a-964e-5b19-ae10-8ba011ba9bf8")}catch{}})();(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]="74e48eb2-5a8d-51da-9abb-43d6451e5f11")}catch{}})();(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]="a22921b3-d233-5bf8-aa95-ab98ae854502")}catch{}})();(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]="3c84ab8c-970a-5d71-a5a3-9166a8da9e64")}catch{}})();(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]="4720a00c-4389-5dd4-a9f9-63aeff8c8762")}catch{}})();var H={extension:"extension",package:void 0};async function _(e,t){if(!e)return;let o=G(e),a=y(t);await R(D(process.cwd(),a.path)).then(r=>r.ux.deprecation_hints)&&h($(o))}var V={init:"init",install:"install",uninstall:"uninstall",explore:"explore",manage:"manage",describe:"describe",reload:"reload",doctor:"doctor",catalog:"catalog",adopt:"adopt","adopt-all":"adoptAll",activate:"activate",deactivate:"deactivate",migrate:"migrate"};function X(e){let t=e.capability,o=typeof t=="string"?[t]:Array.isArray(t)?t.filter(i=>typeof i=="string"):[],a=[...new Set(o.map(i=>i.trim().toLowerCase()).filter(i=>i.length>0))];if(a.length>1)throw new m(`Multiple scaffold capabilities cannot be combined yet: ${a.join(", ")}. Choose one capability per scaffold.`,d.USAGE);return a[0]}function A(e,t,o="extension"){let a={...e};t!==void 0&&(a[V[t]]=!0);let i=(...c)=>c.some(s=>a[s]===!0),r=(...c)=>{for(let s of c)if(typeof a[s]=="string")return a[s]};return{init:i("init"),scaffold:i("scaffold"),install:i("install"),uninstall:i("uninstall"),explore:i("explore","list"),manage:i("manage"),describe:i("describe"),markdown:i("markdown"),reload:i("reload"),doctor:i("doctor"),catalog:i("catalog"),adopt:i("adopt"),adoptAll:i("adoptAll","adopt_all","adopt-all"),activate:i("activate"),deactivate:i("deactivate"),migrate:i("migrate"),project:i("project"),local:i("local"),global:i("global"),gh:r("gh"),github:r("github"),ref:r("ref"),capability:X(e),declarative:i("declarative"),fields:r("fields"),detail:r("detail"),output:r("output"),trace:i("trace"),watch:i("watch"),runtimeProbe:i("runtimeProbe","runtime_probe","runtime-probe"),fixManagedState:i("fixManagedState","fix_managed_state","fix-managed-state"),isolated:i("isolated"),ignoreGlobal:i("ignoreGlobal","ignore_global","ignore-global"),strictExit:i("strictExit","strict_exit","strict-exit"),failOnWarn:i("failOnWarn","fail_on_warn","fail-on-warn"),dryRun:i("dryRun","dry_run","dry-run"),vocabulary:o}}async function Y(e){let t=(await C.readdir(process.cwd())).filter(a=>!a.startsWith(".")).sort((a,i)=>a.localeCompare(i)),o=[...e].sort((a,i)=>a.localeCompare(i));return t.length===o.length&&t.every((a,i)=>a===o[i])}async function J(e){let t=(e??[]).map(o=>o.trim()).filter(o=>o.length>0);return t.length<=1?t.length===0?void 0:t:await Y(t)?["*"]:t}function M(e,t,o){let a=e.markdown===!0;if(o!==void 0&&o==="")throw new m("--output requires a non-empty file path.",d.USAGE);if(o!==void 0&&!a)throw new m("--output is only supported with --markdown describe output.",d.USAGE);if(a){if(t.json)throw new m("Cannot combine --json with --markdown.",d.USAGE);if(e.describe!==!0)throw new m("--markdown is only supported by the describe action.",d.USAGE)}}async function Q(e){let t=O(e.result.details,e.vocabulary);if(e.outputPath!==void 0){let o=W.resolve(e.outputPath);await C.mkdir(W.dirname(o),{recursive:!0}),await C.writeFile(o,t,"utf8")}if(!e.globalOptions.quiet){for(let o of e.result.warnings)h(`warning: ${o}`);e.outputPath===void 0&&S(t)}}function Z(e,t){let o=!!t.strictExit||!!t.failOnWarn;if(e.action!=="doctor"||!o)return;let a=e.details!==null&&typeof e.details=="object"?e.details:{},i=a.summary!==null&&typeof a.summary=="object"?a.summary:null,r=i&&typeof i.status=="string"?i.status:void 0;(e.warnings.length>0||r!==void 0&&r!=="ok")&&(process.exitCode=d.GENERIC_FAILURE)}async function p(e,t,o,a,i="extension"){let r=y(o),c=Date.now(),s=i==="extension"?"package":i;await _(H[i],o);let n=A(t,a,s),f=(typeof n.output=="string"?n.output:void 0)?.trim();M(n,r,f);let g=await I(e,n,r);n.markdown===!0?await Q({result:g,vocabulary:s,outputPath:f,globalOptions:r}):w(g,r),Z(g,n),g.ok===!1&&(process.exitCode=d.GENERIC_FAILURE),r.profile&&h(`profile:command=extension took_ms=${Date.now()-c}`)}function ee(e){return e.details!==null&&typeof e.details=="object"?e.details:{}}function te(e){return e instanceof m?{message:e.message,exit_code:e.exitCode,...e.context}:{message:e instanceof Error?e.message:String(e),exit_code:d.GENERIC_FAILURE}}async function oe(e,t,o){let a=[],i=[],r=d.GENERIC_FAILURE;for(let c of e)try{let s=await I(c,t,o),n=ee(s),l=Array.isArray(s.warnings)?s.warnings:[];i.push(...l);let f=s.ok===!0;a.push({target:c,ok:f,extension:n.extension,source:n.source,install_plan:n.install_plan,dry_run:n.dry_run,destination_path:n.destination_path,activated:n.activated,settings_changed:n.settings_changed,command_paths:n.command_paths,action_paths:n.action_paths,runtime_activation_status:n.runtime_activation_status,activation_diagnostics:n.activation_diagnostics,command_discovery:n.command_discovery,verification:n.verification,warnings:l,...f?{}:{error:{message:"Extension install returned ok=false without throwing an error.",exit_code:d.GENERIC_FAILURE,code:"extension_install_soft_failed"}}})}catch(s){let n=te(s),l=n.exit_code;typeof l=="number"&&r===d.GENERIC_FAILURE&&l!==d.GENERIC_FAILURE&&(r=l),a.push({target:c,ok:!1,error:n})}return{rows:a,warnings:i,failureExitCode:r}}async function z(e,t,o,a){let i=a==="extension"?"package":a;await _(H[a],o);let r=await J(e);if(r===void 0||r.length<=1){await p(r?.[0],t,o,"install",i);return}let c=y(o),s=Date.now(),n=A(t,"install",i);if(M(n,c,void 0),[n.gh,n.github].some(b=>typeof b=="string"&&b.trim().length>0))throw new m("Multiple install targets cannot be combined with --gh/--github. Install one GitHub source per command, or pass multiple explicit local, bundled, or npm: targets.",d.USAGE,{code:"multi_target_github_install_ambiguous",required:"Use exactly one positional target with --gh/--github, or omit --gh/--github when installing multiple targets.",examples:["pm install --gh owner/repo","pm install npm:pm-guide-shell pm-todos"]});let{rows:f,warnings:g,failureExitCode:E}=await oe(r,n,c),v=f.filter(b=>b.ok!==!0).length,K={ok:v===0,action:"install",scope:n.global===!0?"global":"project",installed_count:n.dryRun===!0?0:f.length-v,...n.dryRun===!0?{dry_run:!0,planned_count:f.length-v}:{},failed_count:v,targets:f,warnings:[...new Set(g)].sort((b,B)=>b.localeCompare(B))};w(K,c),v>0&&(process.exitCode=E),c.profile&&h(`profile:command=extension took_ms=${Date.now()-s}`)}function ae(e){return e.option("--project","Use project extension scope (default)").option("--local","Alias for --project").option("--global","Use global extension scope")}function x(e){return e.option("--project","Use project package scope (default)").option("--local","Alias for --project").option("--global","Use global package scope")}function u(e,t){return t==="package"?x(e):ae(e)}function N(e){return e.option("--dry-run","Plan CLI/package upgrades without running npm or reinstalling packages").option("--cli-only","Upgrade only the pm CLI/SDK npm package").option("--packages-only","Upgrade only managed pm packages").option("--repair","Force npm global reinstall when upgrading the pm CLI/SDK").option("--tag <value>","npm dist-tag/version for CLI and registry package upgrades").option("--package-name <value>","Override the CLI package name for self-upgrade testing")}async function q(e,t,o){let a=y(t),i=Date.now();o&&await _("upgrade",t);let r=await L(e,t.optsWithGlobals(),a);w(r,a),r.ok||(process.exitCode=d.GENERIC_FAILURE),a.profile&&h(`profile:command=package-upgrade took_ms=${Date.now()-i}`)}function F(e,t){let o=t==="package"?"package":"extension",a=t==="package"?"packages":"extensions",i=t,r=e.command(i,{hidden:t==="extension"}).argument("[target]",`${o[0].toUpperCase()}${o.slice(1)} source, name, or scaffold path`).option("--init",`Generate a starter ${o} scaffold at target path`).option("--scaffold","Alias for --init").option("--capability <kind>","Starter capability for --init (default: commands)",k).option("--install",`Install a ${o} source`).option("--dry-run","Resolve install sources and estimate copying without destination writes or activation").option("--uninstall",`Uninstall an installed ${o}`).option("--explore",`List discovered ${a} in selected scope`).option("--list","Alias for --explore").option("--manage",`List managed ${a} with update-check metadata`).option("--describe",`Map every surface a loaded ${o} registers (optionally one by name)`).option("--markdown","Render describe output as a Markdown reference document (describe only)").option("--output <path>","Write describe Markdown to a file (requires --markdown)").option("--reload",`Reload ${a} with cache-busted module imports`).option("--watch","Use watch mode with --reload").option("--doctor",`Run consolidated ${o} diagnostics (summary/deep modes)`).option("--catalog",`List bundled first-party ${o} catalog metadata`).option("--adopt",`Adopt an existing unmanaged ${o} into managed metadata`).option("--adopt-all",`Adopt all unmanaged ${a} into managed metadata`).option("--activate",`Activate a ${o} in selected scope settings`).option("--deactivate",`Deactivate a ${o} in selected scope settings`).option("--project",`Use project ${o} scope (default)`).option("--local","Alias for --project").option("--global",`Use global ${o} scope`).option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").option("--detail <mode>",`${o[0].toUpperCase()}${o.slice(1)} diagnostics detail mode (summary|deep)`).option("--trace","Include actionable registration traces in doctor deep diagnostics").option("--runtime-probe","Opt-in runtime activation probe for manage output parity").option("--fix-managed-state",`Adopt unmanaged ${a} before diagnostics/update checks`).option("--isolated",`Run doctor against project-scope ${a} only, ignoring global registrations`).option("--ignore-global","Alias for --isolated").option("--strict-exit","Return non-zero exit when doctor warnings are present (ok=false)").option("--fail-on-warn","Alias for --strict-exit (doctor)").description(t==="package"?"Manage package lifecycle in project or global scope.":"Manage extension lifecycle in project or global scope.").action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,void 0,t)});t==="package"&&(r.alias("packages"),r.option("--declarative","Scaffold the composeExtension blueprint starter (any capability)"));let c=r.command("init").alias("scaffold").argument("<target>","Scaffold target directory path").option("--capability <kind>",`Capability the starter targets (${U.join("|")}; default commands)`,k).description(t==="package"?"Generate a starter package scaffold with package metadata, manifest, and entrypoint.":"Generate a starter extension scaffold with manifest and entrypoint.");t==="package"&&c.option("--declarative","Scaffold the composeExtension blueprint starter (any capability)"),u(c,t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"init",t)}),u(r.command("install").option("--dry-run","Resolve sources and estimate copying without destination writes or activation").argument("[targets...]",`${o[0].toUpperCase()}${o.slice(1)} source (local path, bundled alias, npm: source, wildcard, or GitHub source)`).option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").description(`Install ${o} from local path, bundled alias, npm: source, wildcard, or GitHub source.`),t).action(async(s,n,l)=>{await z(s,l.optsWithGlobals(),l,t)}),u(r.command("uninstall").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Uninstall an installed ${o}.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"uninstall",t)}),u(r.command("explore").description(`List discovered ${a} in selected scope.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"explore",t)}),u(r.command("manage").option("--runtime-probe","Opt-in runtime activation probe for manage output parity").option("--fix-managed-state",`Adopt unmanaged ${a} before diagnostics/update checks`).description(`List managed ${a} with update-check metadata.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"manage",t)}),u(r.command("describe").argument("[target]",`${o[0].toUpperCase()}${o.slice(1)} name to describe (omit for every loaded ${o})`).option("--markdown","Render the surface map as a Markdown reference document instead of toon/json").option("--output <path>","Write Markdown output to a file (requires --markdown)").description(`Map every surface a loaded ${o} registers (commands, hooks, item types, providers, overrides, ...).`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"describe",t)}),u(r.command("reload").option("--watch","Use watch mode for repeated reload checks").description(`Reload ${a} with cache-busted module imports.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"reload",t)}),u(r.command("doctor").option("--detail <mode>",`Detail mode for ${o} diagnostics (summary|deep)`).option("--trace","Include actionable registration traces in doctor deep diagnostics").option("--fix-managed-state",`Adopt unmanaged ${a} before diagnostics/update checks`).option("--isolated",`Run doctor against project-scope ${a} only, ignoring global registrations`).option("--ignore-global","Alias for --isolated").option("--strict-exit","Return non-zero exit when doctor warnings are present (ok=false)").option("--fail-on-warn","Alias for --strict-exit (doctor)").description(`Run consolidated ${o} diagnostics (summary/deep modes).`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"doctor",t)}),u(r.command("catalog").alias("list").option("--fields <value>","Render compact comma-separated catalog fields, for example: alias,installed,install_command").description(`List bundled first-party ${o} catalog metadata.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"catalog",t)}),u(r.command("adopt").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).option("--gh <owner/repo[/path]>",`GitHub provenance shorthand for adopted ${o}`).option("--github <owner/repo[/path]>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub shorthand source").description(`Adopt an existing unmanaged ${o} into managed metadata.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"adopt",t)}),u(r.command("adopt-all").description(`Adopt all unmanaged ${a} into managed metadata.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"adopt-all",t)}),u(r.command("migrate").option("--dry-run","Plan active migrations without invoking extension code").description(`Plan or apply active ${o} migrations with durable receipts.`),t).action(async(s,n)=>{await p(void 0,n.optsWithGlobals(),n,"migrate",t)}),u(r.command("activate").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Activate a ${o} in selected scope settings.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"activate",t)}),u(r.command("deactivate").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Deactivate a ${o} in selected scope settings.`),t).action(async(s,n,l)=>{await p(s,l.optsWithGlobals(),l,"deactivate",t)}),t==="package"&&N(x(r.command("upgrade").argument("[target]","Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages").description("Upgrade the pm CLI/SDK and refresh managed installable pm packages."))).action(async(s,n,l)=>{await q(s,l,!1)})}async function ie(e,t,o){let a=y(o),i=Date.now(),r=await P(e,a,{idPrefix:typeof t.idPrefix=="string"?t.idPrefix:void 0,preset:typeof t.preset=="string"?t.preset:void 0,defaults:t.defaults===!0||t.yes===!0,author:typeof t.author=="string"?t.author:void 0,agentGuidance:typeof t.agentGuidance=="string"?t.agentGuidance:void 0,typePreset:typeof t.typePreset=="string"?t.typePreset:void 0,withPackages:t.withPackages===!0,mergeFence:t.mergeFence!==!1,force:t.force===!0,workspace:typeof t.workspace=="string"?t.workspace:void 0}),s=t.verbose===!0||a.json===!0;w(s?r:j(r),a),a.profile&&h(`profile:command=init took_ms=${Date.now()-i}`)}function ne(e,t,o,a){let r=e!==void 0&&new Set(["get","set","list","export"]).has(e);return{resolvedScope:r?"project":e??"project",resolvedAction:r?e:t??"list",resolvedKey:r?t:o,resolvedValue:r?o:a}}function re(e){return{criterion:Array.isArray(e.criterion)?e.criterion:[],format:typeof e.format=="string"?e.format:void 0,policy:typeof e.policy=="string"?e.policy:void 0,value:typeof e.value=="string"?e.value:void 0,clearCriteria:e.clearCriteria===!0,defaultDepth:typeof e.defaultDepth=="string"?e.defaultDepth:void 0,activityLimit:typeof e.activityLimit=="string"?e.activityLimit:void 0,staleThresholdDays:typeof e.staleThresholdDays=="string"?e.staleThresholdDays:void 0,sectionHierarchy:typeof e.sectionHierarchy=="string"?e.sectionHierarchy:void 0,sectionActivity:typeof e.sectionActivity=="string"?e.sectionActivity:void 0,sectionProgress:typeof e.sectionProgress=="string"?e.sectionProgress:void 0,sectionBlockers:typeof e.sectionBlockers=="string"?e.sectionBlockers:void 0,sectionFiles:typeof e.sectionFiles=="string"?e.sectionFiles:void 0,sectionWorkload:typeof e.sectionWorkload=="string"?e.sectionWorkload:void 0,sectionStaleness:typeof e.sectionStaleness=="string"?e.sectionStaleness:void 0,sectionTests:typeof e.sectionTests=="string"?e.sectionTests:void 0}}async function se(e,t,o,a,i,r){let c=y(r),s=Date.now(),{resolvedScope:n,resolvedAction:l,resolvedKey:f,resolvedValue:g}=ne(e,t,o,a),E=await T(n,l,f,re(i),c,typeof g=="string"?g:void 0);w(E,c),c.profile&&h(`profile:command=config took_ms=${Date.now()-s}`)}var Se={normalizeExtensionOptions:A};function Re(e){e.command("init").argument("[prefix-or-path]","Optional id prefix, or path-like tracker target such as ./pm-sandbox").option("--prefix, --id-prefix <value>","Set the item ID prefix (alias for the positional prefix)").option("--preset <value>","Governance preset for new setups: minimal|default|strict").option("--defaults","Use non-interactive setup defaults without opening the wizard").option("-y, --yes","Alias for --defaults (non-interactive setup)").option("--author <value>","Set the default mutation author for this project").option("--agent-guidance <mode>","Agent guidance mode: ask|add|skip|status").option("--type-preset <name>","Register domain item types during init: agile|ops|research").option("--with-packages","Install all bundled first-party packages during initialization").option("--no-merge-fence","Skip automatic merge-driver installation for a fresh Git-backed tracker").option("--workspace <dir>","Initialize repository-local tracker storage at <dir>/.agents/pm").option("--force","Allow initializing tracker files directly in a directory that looks like a workspace root").option("--verbose","Include the full resolved settings tree in the output (default output is a concise summary)").description("Initialize pm storage and defaults for the current workspace or a path-like tracker target.").action(async(t,o,a)=>{await ie(t,o,a)}),e.command("config").argument("[scope]","Config scope: project|global, or action shorthand list|export|get|set for project scope").argument("[action]","Config action: get|set|list|export").argument("[key]","Config key for get|set; use `pm config project list` for the complete typed inventory, including mutation-guard-* policies").argument("[value]",'Optional value for set: routed to the right typed flag by key (e.g. config set telemetry-tracking off, config set item-format toon, config set definition-of-done "Tests pass"). Equivalent to --policy/--format/--criterion. context keys still require --default-depth/--section-* flags.').option("--criterion <text>","Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)",k).option("--clear-criteria","Clear criteria-list keys for config set operations").option("--format <value>","Item format for item-format key: toon").option("--policy <value>","Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-require-close-reason=enabled|disabled; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; governance-duplicate-detection-mode=off|advisory|strict; test-result-tracking=enabled|disabled; untrusted-linked-test-execution=enabled|disabled; telemetry-tracking=enabled|disabled").option("--value <value>","Typed nested setting value. Mutation guards: require-attributed-author=true|false, secret-guard=off|advise|block, stale-in-progress-hours=integer>=1. Kebab-case is preferred; underscore aliases remain accepted.").option("--default-depth <value>","Context default depth: brief|standard|deep").option("--activity-limit <n>","Context default activity limit").option("--stale-threshold-days <n>","Context staleness cutoff in days").option("--section-hierarchy <value>","Enable/disable context hierarchy section (true|false)").option("--section-activity <value>","Enable/disable context activity section (true|false)").option("--section-progress <value>","Enable/disable context progress section (true|false)").option("--section-blockers <value>","Enable/disable context blockers section (true|false)").option("--section-files <value>","Enable/disable context files section (true|false)").option("--section-workload <value>","Enable/disable context workload section (true|false)").option("--section-staleness <value>","Enable/disable context staleness section (true|false)").option("--section-tests <value>","Enable/disable context tests section (true|false)").description("Read or update pm settings for the current workspace or global profile.").action(async(t,o,a,i,r,c)=>{await se(t,o,a,i,r,c)}),F(e,"extension"),F(e,"package"),x(e.command("install",{hidden:!0}).option("--dry-run","Resolve sources and estimate copying without destination writes or activation").argument("[targets...]","Package source (local path, bundled alias, npm: source, wildcard, or GitHub source)").option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").description("Install a pm package into the project package scope by default.")).action(async(t,o,a)=>{await _("install",a),await z(t,a.optsWithGlobals(),a,"package")}),N(x(e.command("upgrade",{hidden:!0}).argument("[target]","Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages").description("Upgrade the pm CLI/SDK and refresh managed installable pm packages."))).action(async(t,o,a)=>{await q(t,a,!0)})}export{Se as _testOnlyRegisterSetup,Re as registerSetupCommands};
|
|
2
|
+
//# sourceMappingURL=register-setup-JVGPCAIL.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as v
|
|
1
|
+
import{$ as v,$c as ve,Na as le,Rc as W,Ta as fe,Tb as be,aa as k,la as N,rd as ke,sd as Ee,tb as me,ub as _e,vb as pe,wb as ge,xb as ye,yb as he,zb as we}from"./chunk-TPOL4TWE.js";import kt from"node:crypto";import{AsyncLocalStorage as Et}from"node:async_hooks";(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]="38ed5847-939e-5846-bc7d-6d257d36a25f")}catch{}})();var xe=new Et,Ie=1024;function Ce(){let e=xe.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function xo(e){let t=xe.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>Ie)throw new Error(`Reproducible token length must be an integer between 0 and ${Ie}`);let n="";for(;n.length<e;){let o=kt.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let r of o)if(n+=(r%36).toString(36),n.length===e)break}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]="a5bd8db9-cd23-5529-ad78-b7e87bd43b59")}catch{}})();var It=/^([+-]?)(\d+)([hdwm])$/i,xt=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Ct=/^(\d{4})(\d{2})(\d{2})$/,At=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,St=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Tt=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ot=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function Se(){return Ce()??new Date().toISOString()}function Ro(e){return Number.isFinite(Date.parse(e))}function Rt(e){let t=Ot.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,o,r,i,s,a,c,d]=t,[f,m,u,l,_,p]=[n,o,r,i,s,a].map(Number);return m>=1&&m<=12&&u>=1&&u<=te(f,m-1)&&l<=23&&_<=59&&p<=59&&(c===void 0||Number(c)<=23)&&(d===void 0||Number(d)<=59)}function Do(e){let t=/\.(\d+)(?:Z|[+-]\d{2}:\d{2})$/iu.exec(e)?.[1];return Rt(e)&&(t===void 0||/^\d{0,3}0*$/u.test(t))}var Dt=1e4,q=new Map;function Ae(e){let t=q.get(e);if(t!==void 0)return t;let n=Date.parse(e);return q.size>=Dt&&be(q),q.set(e,n),n}function M(e,t){let n=Ae(e),o=Ae(t);return Number.isFinite(n)&&Number.isFinite(o)&&n!==o?n-o:e.localeCompare(t)}function No(e,t){return!(t.deadlineBefore&&(!e.deadline||M(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||M(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&M(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&M(e.updated_at,t.updatedBefore)>0||t.createdAfter&&M(e.created_at,t.createdAfter)<0||t.createdBefore&&M(e.created_at,t.createdBefore)>0)}function Q(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function ee(e){if(!e)return"";if(e.toUpperCase()==="Z")return"Z";let t=/^([+-]\d{2})(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function Nt(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Mt(e){let t=[],n=d=>Nt(t,e,d),o=Ct.exec(e);if(o){let[,d,f,m]=o;n(`${d}-${f}-${m}`)}let r=At.exec(e);if(r){let[,d,f,m,u,l,_,p,g]=r,b=_?`:${_}`:"";n(`${d}-${f}-${m}T${u}:${l}${b}${Q(p)}${ee(g)}`)}let i=St.exec(e);if(i){let[,d,f,m,u,l,_]=i,p=u?`:${u}`:"";n(`${d}T${f}:${m}${p}${Q(l)}${ee(_)}`)}let s=Tt.exec(e);if(s){let[,d,f,m,u,l,_]=s,p=u?`:${u}`:"";n(`${d}T${f}:${m}${p}${Q(l)}${ee(_)}`)}let a=10,c=e.slice(0,a);if($t(c)){let d=a;for(;d<e.length&&Bt(e[d]);)d+=1;d<e.length&&n(`${c}T${e.slice(d)}`)}return t}function Lt(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Mt(e)){let o=Date.parse(n);if(Number.isFinite(o))return o}return Number.NaN}function $t(e){if(e.length!==10)return!1;for(let t=0;t<e.length;t+=1){let n=e[t];if(t===4||t===7){if(n!=="-")return!1;continue}let o=n.charCodeAt(0);if(o<48||o>57)return!1}return!0}function Bt(e){return e?e===" "||e===" "||e===`
|
|
2
2
|
`||e==="\r"||e==="\f"||e==="\v":!1}function te(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Pt=["January","February","March","April","May","June","July","August","September","October","November","December"],Ut=/^(\d{4})-(\d{2})-(\d{2})/,Ft=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Gt(e,t,n){let o=Ut.exec(t)??Ft.exec(t);if(!o)return;let r=Number.parseInt(o[1],10),i=Number.parseInt(o[2],10),s=Number.parseInt(o[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new k(`Invalid ${a} value "${e}". Month "${o[2]}" is out of range \u2014 use a month between 01 and 12.`,v.USAGE);let c=te(r,i-1);if(s<1||s>c)throw new k(`Invalid ${a} value "${e}". ${Pt[i-1]} ${r} has ${c} days, so day "${o[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,v.USAGE)}function Wt(e,t){let n=new Date(e.getTime()),o=n.getUTCDate(),r=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(r/12),s=(r%12+12)%12,a=Math.min(o,te(i,s));return n.setUTCFullYear(i,s,a),n}function Mo(e,t=new Date,n="deadline"){let o=e.trim();if(o.toLowerCase()==="now")return t.toISOString();let r=It.exec(o);if(r){let s=r[1]==="-"?-1:1,a=Number.parseInt(r[2],10)*s,c=r[3].toLowerCase();if(c==="m")return Wt(t,a).toISOString();let d=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*d).toISOString()}Gt(e,o,n);let i=Lt(o);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=xt.test(o)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new k(`Invalid ${s} value "${e}". ${a}`,v.USAGE)}return new Date(i).toISOString()}import{randomUUID as vn}from"node:crypto";import{constants as $}from"node:fs";import{lstat as Qe,mkdir as kn,open as tt,rename as En,rm as In}from"node:fs/promises";import X from"node:path";import{constants as Qt}from"node:fs";import I from"node:fs/promises";import j from"node:path";import{randomUUID as oe}from"node:crypto";import{existsSync as zt}from"node:fs";import{AsyncLocalStorage as Ht}from"node:async_hooks";import C from"node:path";(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]="b2cf7f56-432d-5c74-ba0f-248c42a97255")}catch{}})();(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]="07566a0b-2917-5ed8-828a-d811ae48dfaf")}catch{}})();function Uo(){let e=Promise.resolve(),t=new Set;return{async read(n){let o=e,r,i=new Promise(s=>{r=s});t.add(i),await o;try{return await n()}finally{t.delete(i),r()}},write(n){let r=Promise.all([e,...t]).then(()=>n());return e=r.then(()=>{},()=>{}),r}}}function qt(){let e=Promise.resolve(),t=0,n=[],o=()=>{if(t!==0)return;let r=n.splice(0);for(let i of r)i()};return{enqueue(r){t++;let i=e.then(()=>r());return e=i.then(()=>{},()=>{}).finally(()=>{t--,o()}),i},idle(){return t===0?Promise.resolve():new Promise(r=>n.push(r))}}}(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]="0989270e-6969-5059-b3df-06411211f701")}catch{}})();var L=null,Oe=null,jt=null,Xt=null,ne=null,Yt=null,Re=null,Kt=null;var Jt=[],De=new Ht;function y(){return De.getStore()}function Zo(e){return De.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var Vt=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Te(e){let t=C.resolve(e);for(;;){if(zt(C.join(t,".git")))return t;let n=C.dirname(t);if(n===t)return;t=n}}function Zt(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Te(t)??C.resolve(t),o=Te(n);if(!e)return{source_workspace_root:n,...o?{repo_root:o}:{}};let r=C.relative(n,C.resolve(e)),i=r.length>0&&!r.startsWith(`..${C.sep}`)&&r!==".."&&!C.isAbsolute(r);return{source_workspace_root:n,...o?{repo_root:o}:{},...i?{pm_root_rel:r.split(C.sep).join("/")}:{}}}function Qo(e){let t=y();if(t){t.hooks=e;return}L=e}function er(e){let t=y();if(t){t.commands=e;return}Oe=e}function tr(e){let t=y();if(t){t.parsers=e;return}jt=e}function nr(e){let t=y();if(t){t.preflight=e;return}Xt=e}function or(e){let t=y();if(t){t.services=e;return}ne=e}function rr(e){let t=y();if(t){t.renderers=e;return}Yt=e}function ir(e){let t=y();if(t){t.registrations=e;return}Re=e}function sr(){let e=y();return e?e.registrations:Re}function ar(e){if(!e)return;let t=y();t?t.affectedItems.push(e):Jt.push(e)}function cr(e,t){if(!e||!e.id)return{};let n={id:e.id,type:e.type,status:e.status};if(!Array.isArray(t))return n;let o=e;for(let r of t){if(typeof r!="string")continue;let i=r.startsWith("unset:")?r.slice(6):r;i==="id"||i==="type"||i==="status"||Vt.has(i)||Object.hasOwn(o,i)&&o[i]!==void 0&&(n[i]=o[i])}return n}async function Ne(e){let t=y(),n=t?t.hooks:L;return n?_e(n,e):[]}async function dr(e){let t=y(),n=t?t.hooks:L;n&&await me(n,e)}async function Me(e){let t=y(),n=t?t.hooks:L;return n?pe(n,e):[]}function ur(){let e=y();return((e?e.hooks:L)?.onRead?.length??0)>0}async function lr(e){let t=y(),n=t?t.hooks:L;return n?ge(n,e):[]}async function fr(e){let t=y(),n=t?t.commands:Oe;return n?ye(n,{...e,...Zt(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function Le(e,t){let n=y(),o=n?n.commandContext:Kt;return{service:e,command:o?.command,args:o?[...o.args]:[],options:o?.options?{...o.options}:{},global:o?.global?{...o.global}:void 0,pm_root:o?.pm_root,source_workspace_root:o?.source_workspace_root,repo_root:o?.repo_root,pm_root_rel:o?.pm_root_rel,payload:t}}async function z(e,t){let n=y(),o=n?n.services:ne;return o?we(o,Le(e,t)):{handled:!1,result:t,warnings:[]}}function mr(e,t){let n=y(),o=n?n.services:ne;return o?he(o,Le(e,t)):{handled:!1,result:t,warnings:[]}}(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]="962659bb-37dc-52fa-9d07-6216d34c0d53")}catch{}})();function en(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,o=n.id,r=n.pid,i=n.owner,s=n.token,a=n.created_at,c=n.ttl_seconds;return typeof o!="string"||typeof r!="number"||!Number.isFinite(r)||typeof i!="string"||s!==void 0&&(typeof s!="string"||s.trim().length===0)||typeof a!="string"||typeof c!="number"||!Number.isFinite(c)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:o,pid:r,owner:i,...typeof s=="string"?{token:s}:{},created_at:a,ttl_seconds:c},warnings:[]}}async function H(e,t=!0){try{let n=await I.readFile(e,"utf8");return t&&await Me({path:e,scope:"project"}),en(n)}catch(n){return N(n)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function A(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function tn(e,t,n=process.platform){if(A(e,"EEXIST"))return!0;if(!A(e,"EPERM")&&!A(e,"EACCES")&&!A(e,"EBUSY"))return!1;try{return await I.lstat(t),!0}catch(o){if(n!=="win32"||!N(o)&&!A(o,"EPERM")&&!A(o,"EACCES")&&!A(o,"EBUSY"))return!1}try{return await I.access(j.dirname(t),Qt.W_OK),!0}catch{return!1}}async function Ge(e,t){await Ne({path:e,scope:"project",op:t})}function nn(e,t,n,o=oe()){return{id:e,pid:process.pid,owner:t,token:o,created_at:Se(),ttl_seconds:n}}async function on(e,t,n,o,r){await I.mkdir(j.dirname(e),{recursive:!0});let i=await I.open(e,"wx");try{await i.writeFile(`${JSON.stringify(nn(t,n,o,r),null,2)}
|
|
3
3
|
`,"utf8")}finally{await i.close()}await Ge(e,"lock:create")}async function We(e,t){try{return await I.unlink(e),await Ge(e,t),!0}catch{return!1}}async function rn(e,t,n,o){let r=Date.now(),i=ze;for(;;){let s=await Ve(e,t);if(s!==null){try{let d=await H(e,!1);$e(d.info,t,n,o)&&await We(e,"lock:release")}finally{await s()}return}let a=await H(e,!1);if(!$e(a.info,t,n,o))return;let c=Date.now()-r;if(c>=Be)return;await Xe(Math.min(i,Be-c)),i=Math.min(i*2,re)}}function $e(e,t,n,o){return e?.id===t&&e.pid===process.pid&&e.owner===n&&e.token===o}function qe(e,t){let n=e?.created_at?Date.parse(e.created_at):Number.NaN;return(Number.isFinite(n)?Date.now()-n:Number.POSITIVE_INFINITY)>t*1e3}function sn(e){return e?.owner?` (owner ${e.owner})`:""}var ze=25,re=200,an=250,cn=3,dn=".stale-cleanup",He="owner.json",je=1e4,Be=je+re,un=60*6e4;function Pe(e){if(typeof e=="string"){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return Math.trunc(e)}function ln(e){let t=process.env.PM_LOCK_WAIT_MS,n=Pe(t);if(n!==void 0)return n;let o=Pe(e);return o!==void 0?o:0}function Xe(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function Ye(e,t,n){let o=n>0?` after waiting ${n}ms`:"";return new k(`Item ${e} is locked${sn(t)}${o}`,v.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:an}})}function fn(e){if(typeof e=="function")return e;if(typeof e=="object"&&e!==null&&"release"in e){let t=e.release;return typeof t=="function"?t:null}return null}function mn(e,t,n,o){if(!n&&o){let r=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new k(`Item ${e} lock is stale${r}; rerun with --force when supported for this command`,v.CONFLICT)}}function _n(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null||Array.isArray(t))return null;let n=t,o=n.pid,r=n.token,i=n.process_start_identity;return typeof o!="number"||!Number.isInteger(o)||o<=0||typeof r!="string"||r.length===0||i!==void 0&&(typeof i!="string"||!/^\d+$/u.test(i))?null:{pid:o,token:r,...typeof i=="string"?{process_start_identity:i}:{}}}async function Ke(e){try{return _n(await I.readFile(j.join(e,He),"utf8"))}catch{return null}}function pn(e){if(!Number.isSafeInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return!A(t,"ESRCH")}}function gn(e){let t=e.lastIndexOf(")");if(t<0)return null;let n=e.slice(t+2).trim().split(/\s+/u)[19];return n!==void 0&&/^\d+$/u.test(n)?n:null}async function Je(e){try{return gn(await I.readFile(`/proc/${e}/stat`,"utf8"))}catch{return null}}async function yn(e=process.pid){let t=await Je(e);return{pid:e,...t===null?{}:{process_start_identity:t}}}async function hn(e,t,n){if(!pn(e.pid))return!1;let o=await Je(e.pid);return e.process_start_identity!==void 0&&o!==null?o===e.process_start_identity:t<=n}async function ie(e){try{return await I.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function Ue(e,t){let n=await Ke(e);n===null||n.token!==t||await ie(e)}async function Fe(e){try{await I.mkdir(e)}catch(n){return A(n,"EEXIST"),null}let t={...await yn(),token:oe()};try{await I.writeFile(j.join(e,He),`${JSON.stringify(t)}
|
|
4
4
|
`,"utf8")}catch{return await ie(e),null}return t}async function wn(e){let t;try{let o=await I.stat(e);if(t=Date.now()-o.mtimeMs,t<=je)return!1}catch(o){return N(o)}let n=await Ke(e);return n!==null&&await hn(n,t,un)?!1:ie(e)}async function Ve(e,t){let n=`${e}${dn}`,o=await Fe(n);if(o!==null)return async()=>Ue(n,o.token);if(!await wn(n))return null;let r=await Fe(n);return r===null?null:async()=>Ue(n,r.token)}async function bn(e){let t=await Ve(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await H(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!qe(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(mn(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=cn)throw Ye(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await We(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function Ze(e,t,n,o,r=!1,i=!0,s){let a=await z("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:o,force:r,force_required_for_stale_lock:i});if(a.handled){let _=fn(a.result);if(_)return async()=>{await Promise.resolve(_()),await z("lock_release",{pm_root:e,id:t,owner:o})}}let c=le(e,t),d=ln(s),f=Date.now(),m=0,u=ze,l=oe();for(;;)try{return await on(c,t,o,n,l),async()=>{await rn(c,t,o,l),await z("lock_release",{pm_root:e,id:t,owner:o})}}catch(_){if(!await tn(_,c))throw new k(`Failed to acquire lock for ${t}: ${fe(_)}`,v.GENERIC_FAILURE);let p=await H(c);if(qe(p.info,n)){let b=await bn({lockPath:c,id:t,ttlSeconds:n,force:r,forceRequiredForStaleLock:i,staleRemovals:m,waitBudgetMs:d,startedAtMs:f,fallbackLockInfo:p});if(p=b.lockInfo,b.staleRemovalCounted&&(m+=1),b.shouldRetryCreate)continue}let g=Date.now()-f;if(d===0||g>=d)throw Ye(t,p.info,d===0?0:g);await Xe(Math.min(u,d-g)),u=Math.min(u*2,re)}}(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]="72eb01a9-e8b8-59cd-b178-3c594d3faff9")}catch{}})();var S={max_serving_rows:256,max_bytes:262144,max_event_bytes:32768,retained_byte_fraction:.5,max_events:2048,retention_days:30},h=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function R(e){let t=Date.parse(e.now??new Date().toISOString());if(!Number.isFinite(t))throw new h("Context usage now must be a valid timestamp");return{iso:new Date(t).toISOString(),ms:t}}function nt(e){let t=e.maxBytes??S.max_bytes,n=e.maxEvents??S.max_events,o=e.retentionDays??S.retention_days;if(!Number.isSafeInteger(t)||t<1024||t>S.max_bytes||!Number.isSafeInteger(n)||n<1||!Number.isFinite(o)||o<=0)throw new h("Context usage retention requires positive maxEvents and retentionDays, and maxBytes from 1024 through 262144");return{maxBytes:t,maxEvents:n,cutoff:R(e).ms-o*864e5}}async function ot(e,t){if(!(await Qe(X.dirname(e))).isDirectory())throw new h("Context usage runtime must be a real directory");try{if((await Qe(e)).isSymbolicLink())throw new h("Context usage ledger must not be a symbolic link")}catch(o){if(!N(o))throw o}let n=await tt(e,t|$.O_NOFOLLOW|$.O_NONBLOCK,384);try{let o=await n.stat();if(!o.isFile()||o.nlink!==1)throw new h("Context usage ledger must be an unshared regular file");return n}catch(o){throw await n.close(),o}}async function Y(e){let t=nt(e);try{let n=await ot(X.join(e.pmRoot,"runtime","context-usage.jsonl"),$.O_RDONLY);try{let o=(await n.stat()).size,r=Math.max(0,o-t.maxBytes),i=Buffer.alloc(Math.min(o,t.maxBytes)),{bytesRead:s}=await n.read(i,0,i.length,r),a=i.subarray(0,s).toString("utf8");return(r>0?a.includes(`
|
|
@@ -7,4 +7,4 @@ import{$ as v,Bc as W,Lc as ve,Na as le,Ob as be,Ta as fe,aa as k,bd as ke,cd as
|
|
|
7
7
|
`).flatMap(d=>{try{let f=JSON.parse(d);return f&&Date.parse(f.at)>=t.cutoff?[f]:[]}catch{return[]}}).slice(-t.maxEvents)}finally{await n.close()}}catch{return[]}}function et(e,t,n){let o=[],r=0;for(let i=e.length-1;i>=0&&o.length<n;i-=1){let s=`${JSON.stringify(e[i])}
|
|
8
8
|
`;if(r+=Buffer.byteLength(s),r>t)break;o.push(s)}return o.reverse().join("")}async function F(e,t,n){let o=nt(e),r=X.join(e.pmRoot,"runtime","context-usage.jsonl"),i=Math.floor(o.maxBytes*S.retained_byte_fraction),s=Math.min(S.max_event_bytes,i);if(t.some(u=>Buffer.byteLength(`${JSON.stringify(u)}
|
|
9
9
|
`)>s))throw new h("Context usage event exceeds the declared byte ceiling");let a=t.filter(u=>Date.parse(u.at)>=o.cutoff),c=et(a,i,o.maxEvents),d=performance.now(),f=await Ze(e.pmRoot,"context-usage-ledger",30,`context-usage:${process.pid}`,!1,!1,3e3),m=performance.now()-d;try{await kn(X.dirname(r),{recursive:!0});let u=await ot(r,$.O_WRONLY|$.O_CREAT|$.O_APPEND);try{let l=(await u.stat()).size,_=n===void 0?void 0:await Y(e);if(_?.some(G=>G.kind==="delivery"&&G.serve_id===n))return{written_bytes:0,ledger_bytes:l,compacted:!1,lock_wait_ms:m};if(!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&l+Buffer.byteLength(c)<=o.maxBytes)return await u.writeFile(c,"utf8"),{written_bytes:Buffer.byteLength(c),ledger_bytes:l+Buffer.byteLength(c),compacted:!1,lock_wait_ms:m};let g=et([..._??await Y(e),...a],i,o.maxEvents),b=`${r}.${process.pid}.${vn()}.tmp`,U=await tt(b,"wx",384);try{try{await U.writeFile(g,"utf8")}finally{await U.close()}return await u.close(),u=void 0,await En(b,r),{written_bytes:Buffer.byteLength(g),ledger_bytes:Buffer.byteLength(g),compacted:!0,lock_wait_ms:m}}finally{await In(b,{force:!0})}}finally{await u?.close()}}finally{await f()}}import{randomUUID as xn}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]="3b38d564-6034-54ae-ad24-eddba01a2c5c")}catch{}})();var Cn=864e5,K=Symbol.for("@unbrained/pm-cli/context-usage-serving-receipt");function w(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Gr(e,t){let n=w(e);n!==null&&t!==null&&(n[K]=t)}function se(e,t){let n=w(e),o=w(t),r=n?.[K];o!==null&&r!==void 0&&(o[K]=r)}function An(e){return w(e)?.[K]??null}function it(e){let t=w(e);for(let n of["read_output","context_intent"])if(w(t?.[n])?.result_omitted===!0)return!0;return!1}function T(e,t){typeof t=="string"&&t.trim().length>0&&e.add(t.trim())}function st(e,t){if(Array.isArray(t))for(let n of t)T(e,w(n)?.id)}function rt(e,t){if(Array.isArray(t))for(let n of t)T(e,n)}function Sn(e,t){let n=w(e.recommended)===null?[]:[e.recommended];for(let o of["ready","decision_needed","gate_needed","containers","blocked","held_by_others"])Array.isArray(e[o])&&n.push(...e[o]);for(let o of n){let r=w(o);T(t,r?.id);for(let i of Array.isArray(r?.blockers)?r.blockers:[])T(t,w(i)?.id);for(let i of Array.isArray(r?.unblocks)?r.unblocks:[])T(t,i)}}function Tn(e,t){for(let n of["high_level","low_level","blocked_fallback","recently_created","unparented","activity","progress","blockers","staleness"])st(t,e[n]);for(let n of Array.isArray(e.blockers)?e.blockers:[])T(t,w(n)?.blocked_by);On(e,t)}function On(e,t){for(let r of Array.isArray(e.hierarchy)?e.hierarchy:[]){let i=w(r);T(t,i?.id),st(t,i?.children)}for(let r of["files","workload"])for(let i of Array.isArray(e[r])?e[r]:[])rt(t,w(i)?.items);let n=w(e.agenda);for(let r of Array.isArray(n?.events)?n.events:[])T(t,w(r)?.item_id);let o=w(e.tests);rt(t,o?.items_failing)}function Rn(e,t){let n=w(e);if(n===null||it(e))return[];let o=new Set;return t==="next"?Sn(n,o):Tn(n,o),[...o]}async function Wr(e){let t=An(e.result);if(t===null)return!1;let n=it(e.result);return await Dn({pmRoot:e.pmRoot,receipt:t,deliveredItemIds:Rn(e.result,t.surface),resultOmitted:n}),!0}async function qr(e){if([process.env.PM_CONTEXT_USAGE_DISABLED==="1",e.enabled===!1].includes(!0))return null;if(!e.author.trim()||e.rows.some(r=>!r.id.trim()||!Number.isInteger(r.rank)||r.rank<1))throw new h("Context usage serving requires an author and valid ranked rows");let t=e.rows.map(r=>({id:r.id.trim(),rank:r.rank,included:r.included}));if(new Set(t.map(r=>r.id)).size!==t.length)throw new h("Context usage serving requires unique normalized row ids");let n=t.slice(0,S.max_serving_rows),o={serve_id:xn(),author:e.author.trim(),surface:e.surface,rows:t,recorded_item_ids:n.map(r=>r.id)};return o.storage=await F(e,[{kind:"serve",schema_version:2,serve_id:o.serve_id,at:R(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:n,candidate_count:t.length,omitted_row_count:t.length-n.length,result_omitted:!1,packed_item_ids:n.filter(r=>r.included).map(r=>r.id)}]),o}async function Dn(e){if(e.receipt===null||process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return;let t=new Set(e.receipt.rows.map(i=>i.id)),n=[...new Set(e.deliveredItemIds.map(i=>i.trim()))];if(n.some(i=>i.length===0||!t.has(i))||e.resultOmitted&&n.length>0)throw new h("Context usage delivery requires emitted ranked ids and zero ids for an omitted result");let o=new Set(e.receipt.recorded_item_ids??e.receipt.rows.map(i=>i.id)),r={kind:"delivery",schema_version:2,serve_id:e.receipt.serve_id,at:R(e).iso,author:e.receipt.author,surface:e.receipt.surface,result_omitted:e.resultOmitted,delivered_item_ids:n.filter(i=>o.has(i))};await F(e,[r],r.serve_id)}async function zr(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new h("Context usage touch requires author, itemId, and intent");await F(e,[{kind:"touch",at:R(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()}])}}async function Hr(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new h("Context usage touch requires author and intent");let o=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new h("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new h("Context usage touch requires non-empty itemId");o.add(a)}let r=R(e).iso,i=[...o].map(s=>({kind:"touch",at:r,author:t,item_id:s,intent:n}));await F(e,i)}function Nn(e,t,n,o){return e.find(({entry:r,time:i})=>r.item_id===t&&i>=n&&i-n<=o)?.time}function Mn(e,t){let n=new Map;for(let o of e)o.kind==="delivery"&&o.schema_version===2&&o.author===t&&!n.has(o.serve_id)&&n.set(o.serve_id,o);return n}async function jr(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0,untrusted_serving_events:0};let t=await Y(e),n=R(e).ms,o=(e.horizonHours??24)*36e5;if(![Number.isFinite(o),o>0].every(Boolean))throw new h("Context usage horizonHours must be positive");let r=e.author.trim(),i=t.filter(l=>l.kind==="touch").filter(l=>l.author===r).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,c=0,d=0,f=Mn(t,r);t.filter(l=>l.kind==="serve").filter(l=>l.author===r).forEach(l=>{if(![l.schema_version===2,!!l.serve_id].every(Boolean)){c+=1;return}a+=1;let _=Date.parse(l.at),p=f.get(l.serve_id),g=new Set(p?.delivered_item_ids??[]);for(let b of l.rows){if(!g.has(b.id))continue;let U=Nn(i,b.id,_,o);if(U===void 0)continue;d+=1;let G=Math.max(0,(n-U)/Cn);s.set(b.id,(s.get(b.id)??0)+Math.exp(-G/14))}});let m=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,_])=>[l,m===0?.05:.05+.95*_/m])),positive_judgments:d,serving_events:a,untrusted_serving_events:c}}import{AsyncLocalStorage as no}from"node:async_hooks";(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]="b18eefc1-0d1d-5c9c-b98a-b96771070301")}catch{}})();var at=new Set(["--pm-path","--path","--author","--output-include","--output-limit","--output-budget","--output-format","--output-session","--output-cursor"]),Ln=new Set(["--no-extensions","--no-pager","--json","--quiet","--lean","--token-accounting","--output-row-contract","--all"]);function $n(e){let t=e.indexOf("=");return t>0&&at.has(e.slice(0,t))}function Bn(e,t){return typeof t!="string"?!1:e==="--path"||e==="--pm-path"||!t.startsWith("-")}function ct(e){for(let t=0;t<e.length;t+=1){let n=e[t];if(n==="--")return;if(at.has(n)){t+=Bn(n,e[t+1])?1:0;continue}if(!($n(n)||Ln.has(n)||n==="--profile"||n==="--id-only"||n==="--explain")&&!n.startsWith("-"))return t}}function Yr(e){let t=ct(e);return t===void 0?void 0:e[t].trim().toLowerCase()}(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]="4ed3e8a4-97a1-5082-afd3-5942d47bc054")}catch{}})();var Pn=e=>{let t='"',n=0;for(let o of e){if(o==="\\"){n+=1;continue}t+="\\".repeat(o==='"'?n*2+1:n),t+=o,n=0}return`${t}${"\\".repeat(n*2)}"`},Un=(e,t=process.platform)=>(t==="win32"?/^[A-Za-z0-9._:/\\@=-]+$/:/^[A-Za-z0-9._:/@=-]+$/).test(e)?e:t==="win32"?Pn(e):`"${e.replace(/(["\\$`])/g,"\\$1")}"`,ae=(e,t=process.platform)=>{let n=e.map(o=>Un(o,t)).join(" ");return n.length>0?`pm ${n}`:"pm"};(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]="6c87b004-3647-531a-9599-d37fd91c2807")}catch{}})();var ft=new WeakMap;function ei(e,t){ft.set(e,new Set(t))}var dt='.row_contract.row_keys[] as $key | getpath($key | split(".")) | if type == "array" then .[] else if type == "object" then to_entries[] else empty end end',Fn={context:{row_keys:["high_level","low_level"],fields:"supported"},get:{row_keys:["children"],fields:"supported"},list:{row_keys:["items"],fields:"supported"},next:{row_keys:["recommended","ready","decision_needed","gate_needed","containers","blocked","held_by_others"],fields:"unsupported"},search:{row_keys:["items"],fields:"supported"},activity:{row_keys:["activity_digest","compact_activity","provenance_activity","activity"],fields:"unsupported"},history:{row_keys:["compact_history","provenance_history","history"],fields:"unsupported"},deps:{row_keys:["graph.nodes","graph.edges","context.nodes","context.edges"],fields:"unsupported"},health:{row_keys:["checks"],fields:"unsupported"},aggregate:{row_keys:["groups"],fields:"unsupported"},duplicates:{row_keys:["clusters"],fields:"unsupported"},stats:{row_keys:["by_type","by_status"],fields:"unsupported"},comments:{row_keys:["comments"],fields:"unsupported"},notes:{row_keys:["notes"],fields:"unsupported"},learnings:{row_keys:["learnings"],fields:"unsupported"},files:{row_keys:["files"],fields:"unsupported"},docs:{row_keys:["docs"],fields:"unsupported"},validate:{row_keys:["checks","warnings"],fields:"unsupported"},contracts:{row_keys:["command_summaries","commands"],fields:"unsupported"}},Gn=[{command:"activity",complete_mode:"full",omissions_by_mode:{digest:[{name:"event_rows",restore_with:"--raw"}],compact:[{name:"provenance",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}},{command:"history",complete_mode:"full",omissions_by_mode:{compact:[{name:"raw_history",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}}];function ti(e,t,n){if(e&&t)throw new k(`${n} cannot be combined with --full`,v.USAGE)}function x(e,t=new Set){let n=e.filter(o=>!t.has(o.name)).map(o=>({...o}));return{has_omissions:n.length>0,omitted_field_group_count:n.length,omitted_field_groups:n}}function ni(e,t){let n=Gn.find(r=>r.command===e);if(n===void 0)throw new TypeError(`Unknown mode-paired output command: ${e}`);if(t===n.complete_mode)return x([]);let o=n.omissions_by_mode[t];if(o===void 0)throw new TypeError(`Unknown ${e} output mode: ${t}`);return x(o)}var Wn=[{name:"hierarchy",restore_with:"--depth standard"},{name:"activity",restore_with:"--depth standard"},{name:"progress",restore_with:"--depth standard"},{name:"blockers",restore_with:"--depth standard"},{name:"recently_created",restore_with:"--depth standard"},{name:"unparented",restore_with:"--depth standard"},{name:"files",restore_with:"--depth deep"},{name:"workload",restore_with:"--depth standard"},{name:"staleness",restore_with:"--depth deep"},{name:"tests",restore_with:"--depth deep"},{name:"workspace_memory",restore_with:"--depth deep"}];function E(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var qn=new Set([void 0,"tabular_when_uniform"]),zn=new Set(["collection","none"]),Hn=new Set(["supported","unsupported"]);function ut(e,t){return Array.isArray(e)&&(t||e.length>0)&&e.every(n=>typeof n=="string"&&n.length>0)&&new Set(e).size===e.length}function jn(e){return E(e)&&typeof e.command=="string"&&e.command.trim().length>0&&zn.has(e.row_kind)&&ut(e.row_keys,!0)&&(e.continuation_row_keys===void 0||ut(e.continuation_row_keys,!1))&&Hn.has(e.fields)&&qn.has(e.toon_encoding)&&(e.row_kind==="collection"?e.row_keys.length>0&&typeof e.jq_selector=="string"&&e.jq_selector.trim().length>0:e.row_keys.length===0&&e.jq_selector===void 0)}var Xn={ancestors:["ids"],descendants:["ids"],predecessors:["ids"],successors:["ids"],paths:["paths"],impact:["affected"],audit:["findings"],communities:["communities"],redundancy:["redundant"],dominators:["bottlenecks"],slack:["rows"],centrality:["rows"],articulation:["articulation_points","bridges"],plan:["steps"]},Yn={context:["sections_included","high_level","low_level"],get:["item"],list:["items","projection"],next:["recommended","ready","decision_needed","gate_needed","containers","blocked","held_by_others"],search:["items","projection"],activity:["activity_digest","compact_activity","provenance_activity","activity"],history:["compact_history","provenance_history","history"],deps:["tree","graph","projection"],health:["checks"],aggregate:["groups"],duplicates:["clusters"],stats:["totals","by_type","by_status"],comments:["comments"],notes:["notes"],learnings:["learnings"],files:["files"],docs:["docs"],validate:["checks","warnings"],contracts:["command_summaries","commands","selected"]};function Kn(e,t){let n=e.trim().toLowerCase().split(/\s+/u,1)[0],o=n?.startsWith("list-")?"list":n;if(o==="graph"){let s=typeof t.subcommand=="string"?t.subcommand:"";if(s.length===0)return;let a=Xn[s];if(a===void 0)return;let c=a.filter(d=>Array.isArray(t[d])||E(t[d]));return{command:"graph",row_kind:c.length>0?"collection":"none",row_keys:c,fields:"unsupported",...c.length>0?{jq_selector:dt}:{},toon_encoding:"tabular_when_uniform"}}let r=Fn[o],i=Yn[o];return r===void 0||i===void 0||!i.some(s=>Object.hasOwn(t,s))?void 0:(()=>{let s=r.row_keys.filter(a=>{let c=a.split(".").reduce((d,f)=>E(d)?d[f]:void 0,t);return Array.isArray(c)||E(c)});return{command:o,row_kind:s.length>0?"collection":"none",row_keys:s,fields:r.fields,...s.length>0?{jq_selector:dt}:{},toon_encoding:"tabular_when_uniform"}})()}function Jn(e){if(!E(e.projection)||typeof e.projection.mode!="string"||e.projection.mode.trim().length===0)return;let t=e.projection.declared_field_groups,n=e.projection.included_field_groups;if(!Array.isArray(t)||!Array.isArray(n))return;let o=t.filter(s=>E(s)&&typeof s.name=="string"&&s.name.trim().length>0&&typeof s.restore_with=="string"&&s.restore_with.trim().length>0),r=n.filter(s=>typeof s=="string");if(o.length!==t.length||r.length!==n.length)return;let i=new Set(o.map(s=>s.name));if(!(i.size!==o.length||new Set(r).size!==r.length||r.some(s=>!i.has(s))))return x(o,new Set(r))}function Vn(e){if(!Array.isArray(e.sections_included))return;let t=x(Wn,new Set(e.sections_included.filter(n=>typeof n=="string")));return E(e.summary)&&e.summary.scope==="matching_items"&&(t.summary_scope="matching_items"),t}function Zn(e){if(!E(e.item))return;let t=e.item,n=["comments","notes","learnings","files","tests","docs","reminders","events"],o=["body","children","claim_state","linked","schedule"],r=ft.get(e),i=a=>n.includes(a)||a==="body"?t:e,s=["body",...n,...o.slice(1)].filter(a=>r===void 0||r.has(a)||Object.hasOwn(i(a),a)).map(a=>({name:a,restore_with:`--fields ${a}`}));return x(s,new Set(s.flatMap(({name:a})=>Object.hasOwn(i(a),a)?[a]:[])))}function lt(e){if(E(e.projection))return x([{name:"full_item_fields",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_item_fields"]:[]))}function Qn(e){if(!E(e.projection))return x([]);if(typeof e.projection.mode=="string")return x([{name:"full_check_details",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_check_details"]:[]))}function eo(e){if(!(!E(e.selected)||typeof e.selected.summary!="boolean"))return x([{name:"full_contract_catalog",restore_with:"--full"}],new Set(e.selected.summary?[]:["full_contract_catalog"]))}function to(e,t){let n=Jn(t);if(n!==void 0)return n;let[o]=e.split(/\s+/u,1);if(o==="context")return Vn(t);if(o==="get")return Zn(t);if(o==="list"||o.startsWith("list-"))return lt(t);if(o==="search")return lt(t)??x([{name:"projection_metadata",restore_with:"--full"}]);if(o==="health")return Qn(t);if(o==="contracts")return eo(t)}function mt(e,t){if(e===void 0||!E(t))return t;let n=to(e,t),o=t.row_contract,r=jn(o)?o:Kn(e,t),i=r!==void 0?{...t,row_contract:r}:Object.hasOwn(t,"row_contract")?Object.fromEntries(Object.entries(t).filter(([s])=>s!=="row_contract")):t;return E(i.omission_receipt)||n===void 0?i:{...i,omission_receipt: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]="6436107d-eedc-5c97-9d8f-6f119c9bbe29")}catch{}})();var pt=Object.freeze([{command:"context",intent:"orient",description:"Bounded active hierarchy, ownership, blockers, and recent progress.",included_field_groups:["summary","focus","hierarchy","blockers","activity"],token_budget:3e3,source:"core"},{command:"context",intent:"handoff",description:"Active ownership, evidence, decisions, and immediate continuation context.",included_field_groups:["summary","focus","in_progress","decisions","activity"],token_budget:2200,source:"core"},{command:"get",intent:"inspect",description:"Standard-depth item metadata, relationships, evidence, and lifecycle state.",included_field_groups:["item","children","claim_state","linked"],token_budget:3200,source:"core"},{command:"list",intent:"triage",description:"A budget-derived page of compact governance, ownership, priority, and blocker rows for triage.",included_field_groups:["identity","governance","ownership","dependencies"],token_budget:3200,source:"core"},{command:"next",intent:"execute",description:"The highest-ranked actionable work with concise ranking evidence.",included_field_groups:["recommended"],token_budget:1200,source:"core"},{command:"search",intent:"discover",description:"A budget-derived page of ranked canonical lineage candidates with compact match evidence.",included_field_groups:["identity","status","lineage","match"],token_budget:1800,source:"core"}]),gt=new no;function oo(){return gt.getStore()??pt}function fi(e,t){return gt.run(io(e.workspaceContracts,e.packageContracts),t)}function ro(e,t){let n=e.command.trim().toLowerCase(),o=e.intent.trim().toLowerCase(),r=`${n}:${o}`;if(!/^[a-z0-9][a-z0-9-]*$/.test(n)||!/^[a-z0-9][a-z0-9-]*$/.test(o))throw new TypeError(`Invalid context intent command or name: ${r}`);if(e.description.trim().length===0)throw new TypeError(`Context intent ${r} requires a non-empty description`);if(!Number.isSafeInteger(e.token_budget)||e.token_budget<=0)throw new TypeError(`Context intent ${r} requires a positive integer token_budget`);let i=[...new Set(e.included_field_groups.map(s=>s.trim()).filter(Boolean))];if(i.length===0)throw new TypeError(`Context intent ${r} requires included_field_groups`);return{command:n,intent:o,description:e.description.trim(),included_field_groups:i,token_budget:e.token_budget,source:t}}function io(e=[],t=[]){let n=[{source:"core",contracts:pt,allowOverride:!1},{source:"package",contracts:t,allowOverride:!1},{source:"workspace",contracts:e,allowOverride:!0}],o=new Map,r=new Set;for(let i of n){r.clear();for(let s of i.contracts){let a=ro(s,i.source),c=`${a.command}:${a.intent}`;if(r.has(c))throw new TypeError(`Duplicate context intent declaration: ${c}`);if(r.add(c),!i.allowOverride&&o.has(c))throw new TypeError(`Duplicate context intent declaration: ${c}`);o.set(c,a)}}return[...o.values()].sort((i,s)=>i.command.localeCompare(s.command)||i.intent.localeCompare(s.intent))}function yt(e,t,n=oo(),o=[]){let r=e.trim().toLowerCase(),i=t.trim().toLowerCase(),s=n.find(u=>u.command===r&&u.intent===i);if(s)return{...s,source:s.source??"core"};let a=n.filter(u=>u.command===r).map(u=>u.intent);if(a.length===0)return;let c=a.map(u=>{let l=Array.from({length:i.length+1},(_,p)=>p);for(let _=1;_<=u.length;_+=1){let p=l[0];l[0]=_;for(let g=1;g<=i.length;g+=1){let b=l[g];l[g]=Math.min(l[g]+1,l[g-1]+1,p+(u[_-1]===i[g-1]?0:1)),p=b}}return{candidate:u,distance:l[i.length]}}).sort((u,l)=>u.distance-l.distance||u.candidate.localeCompare(l.candidate))[0].candidate,d=[r,...o,"--for",i],f=[r,...o,"--for",c],m=ae(f);throw new k(`Unknown context intent "${i}" for ${r}. Did you mean "${c}"?`,v.USAGE,{code:"unknown_context_intent",reason:"unknown_intent",field:"for",flag:"--for",value:i,required:`Use a declared ${r} intent.`,why:"Intent names are command-local contracts and cannot be inferred from output section names.",nextSteps:[m],recovery:{recovery_mode:"compact",attempted_command:ae(d),allowed_values:[...a].sort(),suggested_retry:m,suggested_retry_args:f}})}var ht={context:(e,t,n)=>{e.depth===void 0&&(e.depth=t.intent==="handoff"?"deep":"standard"),e.section===void 0&&(e.section=t.intent==="handoff"?["activity","progress","blockers"]:["hierarchy","blockers","activity"]);let o=V(e.tokenBudget,t.token_budget),r=Z("context",t.intent,o,n),i=D(e.limit),s=String(i===void 0?r:Math.min(i,r));(e.limit===void 0||i!==void 0)&&(e.limit=s),e.activityLimit===void 0&&(e.activityLimit=s)},get:e=>{e.depth===void 0&&e.fields===void 0&&(e.depth="standard")},list:(e,t,n)=>{e.brief===void 0&&e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.fields="id,title,status,type,priority,parent,assignee,risk,blocked_by");let o=V(e.tokenBudget,t.token_budget),r=Z("list",t.intent,o,n),i=D(e.limit);(e.limit===void 0||i!==void 0)&&(e.limit=String(i===void 0?r:Math.min(i,r)))},next:e=>{e.readyOnly===void 0&&(e.readyOnly=!0)},search:(e,t,n)=>{e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.compact=!0);let o=V(e.tokenBudget,t.token_budget),r=Z("search",t.intent,o,n),i=D(e.limit);(e.limit===void 0||i!==void 0)&&(e.limit=String(i===void 0?r:Math.min(i,r)))}};function mi(e,t,n=[]){let o=t.tokenBudget??t.token_budget;if(typeof t.for!="string"){if(o!==void 0&&(e==="get"||e==="list"||e==="search"))throw new k("--token-budget requires a declared context intent selected with --for",v.USAGE,{code:"missing_required_option",field:"for",required:"Select a context intent with --for when setting --token-budget.",why:"A token-budget override has no projection contract to constrain without a selected intent.",nextSteps:["Retry with --for <intent> --token-budget <n>, or omit --token-budget."]});if(t.tokenBudget!==void 0||t.token_budget===void 0)return t;let a={...t,tokenBudget:o};return delete a.token_budget,a}let r=yt(e,t.for,void 0,n),i=D(o)!==void 0,s={...t};return s.tokenBudget===void 0&&o!==void 0&&(s.tokenBudget=o),delete s.token_budget,s.tokenBudget===void 0&&(s.tokenBudget=String(r.token_budget)),ht[e](s,r,i),s}var so={context:"bounded_sections",get:"standard_item",list:"bounded_fields_and_rows",next:"bounded_ranked_rows",search:"bounded_ranked_rows"},J=256;function ce(e){return Array.isArray(e)?e.map(ce):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,ce(n)])):typeof e=="string"&&e.length>240?`${e.slice(0,240)}\u2026`:e}function D(e){let t=typeof e=="number"?e:typeof e=="string"&&/^\d+$/u.test(e.trim())?Number(e):Number.NaN;return Number.isSafeInteger(t)&&t>0?t:void 0}function V(e,t){let n=D(e);if(n===void 0)return t;if(n<J)throw new k(`Context intent token budget must be at least ${J}`,v.USAGE,{code:"invalid_argument_value",reason:"below_minimum",field:"tokenBudget",required:`Use an integer token budget of at least ${J}.`,why:"Smaller ceilings cannot contain the minimum machine-readable intent receipt.",nextSteps:[`Retry with --token-budget ${J} or omit the override.`]});return n}function Z(e,t,n,o){if(e==="get"||e==="next")return;let r=e==="context"&&t==="orient",i=e==="context"?r?1200:800:e==="list"?520:480,s=e==="context"?r?600:500:16,a=Math.max(e==="context"?1:2,Math.floor((n-i)/s));return o?a:Math.min(e==="context"?20:100,a)}function O(e,t){let n=t.estimated_tokens;for(;;){t.estimated_tokens=n;let o=Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4);if(o===n)return;n=o}}var _t={context:["high_level","low_level","blocked_fallback","recently_created","unparented","hierarchy","activity","blockers"],get:["children"],list:["items"],next:["ready","decision_needed","gate_needed","containers","blocked","held_by_others"],search:["items"]};function wt(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString("utf8"));return typeof t.fingerprint!="string"||!Number.isSafeInteger(t.after_index)?void 0:{fingerprint:t.fingerprint,after_index:t.after_index,...typeof t.snapshot=="string"?{snapshot:t.snapshot}:{}}}catch{return}}function ao(e){if(e===null||typeof e!="object")return;if(typeof e.id=="string")return e.id;let t=e.item?.id;return typeof t=="string"?t:void 0}function co(e,t,n){let o=!1;for(;;){if(O(e,t),t.estimated_tokens<=t.token_budget||n.length<=1)return o;let r=Buffer.byteLength(JSON.stringify(n),"utf8"),i=(t.estimated_tokens-t.token_budget)*4;n.splice(-Math.min(n.length-1,Math.max(1,Math.ceil(i/Math.max(1,Math.ceil(r/n.length)))))),o=!0}}function uo(e,t,n){let o=e.items,r=typeof e.next_cursor=="string",i=r?e.next_cursor:n.after;if(!Array.isArray(o)||typeof i!="string")return!1;let s=wt(i);if(s===void 0)return!1;let a=o.length,c=[...o],d=!1;for(;;){if(d=co(e,t,o)||d,!d)return!1;let f=ao(o.at(-1));if(f===void 0)return o.splice(0,o.length,...c),O(e,t),!1;if(e.next_cursor=ve(s.fingerprint,f,r?s.after_index-(a-o.length):s.after_index+o.length,s.snapshot),O(e,t),t.estimated_tokens<=t.token_budget||o.length<=1)break}return typeof e.count=="number"&&(e.count=o.length),typeof e.applied_limit=="number"&&(e.applied_limit=o.length),!0}function lo(e,t,n,o){if(e==="list"||e==="search")return uo(t,n,o);if(e!=="next"||typeof t.next_cursor=="string")return!1;let r=!1;for(;;){if(O(t,n),n.estimated_tokens<=n.token_budget)return r;let i=_t[e].map(u=>({key:u,rows:Array.isArray(t[u])?t[u]:[]})).filter(({rows:u})=>u.length>0).sort((u,l)=>l.rows.length-u.rows.length||u.key.localeCompare(l.key))[0];if(i===void 0)return r;let s=_t[e].reduce((u,l)=>u+(Array.isArray(t[l])?t[l].length:0),0);if(s<=1)return r;let a=Math.min(i.rows.length,s-1),c=Buffer.byteLength(JSON.stringify(i.rows),"utf8"),d=Math.max(1,Math.ceil(c/i.rows.length)),f=(n.estimated_tokens-n.token_budget)*4,m=Math.min(a,Math.max(1,Math.ceil(f/d)));i.rows.splice(-m,m),r=!0}}function fo(e,t,n){if(typeof t.for!="string")return n;let o=e.startsWith("list-")?"list":e;if(!(o in ht))return n;let r=o,i=yt(r,t.for),s=V(t.tokenBudget??t.token_budget,i.token_budget),a={command:r,intent:i.intent,source:i.source,included_field_groups:[...i.included_field_groups],token_budget:s,declared_token_budget:i.token_budget,token_budget_override:s-i.token_budget,estimated_tokens:0,within_budget:!0,degradation:so[r],declaration_feasible:!0,result_omitted:!1},c={...n},d=Z(r,i.intent,a.token_budget,D(t.tokenBudget??t.token_budget)!==void 0);if(d!==void 0){let m=D(t.limit),u=m!==void 0&&m<d;a.budget_derived_limit=d,a.binding_constraint=u?"explicit_limit":"token_budget",a.limit_reason=u?"The caller supplied a smaller row limit than the budget-derived ceiling.":"The selected intent token budget constrains the effective row ceiling.",c.budget_derived_limit=d}let f={...c,context_intent:a};return O(f,a),a.estimated_tokens>a.token_budget&&(a.degradation="recursive_budget_compaction",f={...ce(c),context_intent:a},O(f,a)),a.estimated_tokens>a.token_budget&&lo(r,f,a,t)&&(a.degradation="budget_row_compaction",O(f,a)),a.declaration_feasible=a.estimated_tokens<=a.declared_token_budget,a.estimated_tokens>a.token_budget&&(a.degradation="budget_receipt_only",a.result_omitted=!0,a.within_budget=!1,f={budget_exceeded:{omitted_result:!0,reason:a.token_budget_override===0?"declared_budget_infeasible":"effective_budget_infeasible",restore_with:_o(e,r,i.intent,a,c)},context_intent:a}),f}function mo(e,t){if(typeof e.after!="string"||e.after.length===0)return t;let n=wt(e.after)?.fingerprint??"opaque_cursor",o={...t};for(let r of["applied_limit","completeness","context_intent","count","filters","has_more","now","omission_receipt","projection","row_contract","sorting","total","truncated"])delete o[r];return o.continuation_contract={fingerprint:n,metadata:"reference",restore_with:"omit --after"},o}function de(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function _o(e,t,n,o,r){let i=t==="get"&&de(r.item)&&typeof r.item.id=="string"?r.item.id:t==="search"&&typeof r.query=="string"?r.query:void 0,s=i===void 0?"":` '${i.replaceAll("'",`'"'"'`)}'`,a=t==="get"?"":` --limit ${o.budget_derived_limit??1}`;return`pm ${e}${s} --for ${n} --token-budget ${Math.ceil(o.estimated_tokens/100)*100}${a}`}function B(e,t){if(de(e))return typeof e[t]=="number"?e[t]:void 0}function po(e,t){let n=e;for(let o=0;o<8;o+=1){let r=B(n.context_intent,"estimated_tokens"),i=B(n.read_output,"estimated_tokens"),s=B(n.read_session,"spent_this_call_tokens");if(de(n.context_intent)&&O(n,n.context_intent),n=ke(n,t),B(n.context_intent,"estimated_tokens")===r&&B(n.read_output,"estimated_tokens")===i&&B(n.read_session,"spent_this_call_tokens")===s)break}return n}function _i(e,t,n){let o=mt(e,n),r=typeof o=="object"&&o!==null&&!Array.isArray(o)?Ee(e??"",t,mo(t,fo(e??"",t,o))):o;if(se(n,r),t.outputRowContract===!0||t.output_row_contract===!0||typeof r!="object"||r===null||Array.isArray(r)||!Object.hasOwn(r,"row_contract"))return r;let i=po(Object.fromEntries(Object.entries(r).filter(([s])=>s!=="row_contract")),t);return se(r,i),i}(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]="83c82348-64f8-5f10-9396-b03add0b7932")}catch{}})();var P=["result_rows","envelope","diagnostics","hints"],go=/^(?:items|results|rows|ready|blocked|recommended|decision_needed|children|dependencies|events|matches|commands|tools)$/u,yo=/^(?:diagnostics|errors?|warnings?|findings|violations|failures?)$/u,ho=/^(?:hints?|suggestions?|next_steps?|recovery|remediation|examples?)$/u,wo=8;function ue(e){return Buffer.byteLength(e,"utf8")}function bt(e){return ue(JSON.stringify(e)??"null")}function bo(e,t){return yo.test(e)?"diagnostics":ho.test(e)?"hints":go.test(e)||Array.isArray(t)?"result_rows":"envelope"}function vo(e){let t={result_rows:0,envelope:0,diagnostics:0,hints:0};if(typeof e!="object"||e===null||Array.isArray(e))return t[Array.isArray(e)?"result_rows":"envelope"]=bt(e),t;for(let[n,o]of Object.entries(e))t[bo(n,o)]+=bt({[n]:o});return Object.values(t).every(n=>n===0)&&(t.envelope=1),t}function ko(e,t){let n=P.reduce((s,a)=>s+t[a],0),o=P.map(s=>({section:s,value:e*t[s]/n})),r={result_rows:0,envelope:0,diagnostics:0,hints:0};for(let s of o)r[s.section]=Math.floor(s.value);let i=e-P.reduce((s,a)=>s+r[a],0);for(let s of[...o].sort((a,c)=>c.value-Math.floor(c.value)-(a.value-Math.floor(a.value))||P.indexOf(a.section)-P.indexOf(c.section))){if(i===0)break;r[s.section]+=1,i-=1}return r}function vt(e,t){return typeof e=="object"&&e!==null&&!Array.isArray(e)?{...e,token_accounting:t}:{result:e,token_accounting:t}}function yi(e,t){let n=ue(t(e)),o=ko(n,vo(e)),r=Object.fromEntries(P.map(a=>[a,{bytes:o[a],estimated_tokens:W(o[a])}])),i={version:1,measurement_scope:"output_before_token_accounting",estimator:"ceil(utf8_bytes / 4)",total_bytes:n,total_estimated_tokens:W(n),sections:r,accounting_receipt_bytes:0,accounting_receipt_estimated_tokens:0,excluded_fields:["token_accounting"],section_allocation:"proportional_canonical_json"},s=vt(e,i);for(let a=0;a<wo;a+=1){let c=ue(t(s))-n;if(c===i.accounting_receipt_bytes)return s;i={...i,accounting_receipt_bytes:c,accounting_receipt_estimated_tokens:W(c)},s=vt(e,i)}return s}export{at as a,ct as b,Yr as c,Un as d,ae as e,ei as f,ti as g,ni as h,mt as i,Uo as j,qt as k,Zo as l,Zt as m,Qo as n,er as o,tr as p,nr as q,or as r,rr as s,ir as t,sr as u,ar as v,cr as w,Ne as x,dr as y,Me as z,ur as A,lr as B,fr as C,z as D,mr as E,xo as F,Se as G,Ro as H,Rt as I,Do as J,M as K,No as L,Mo as M,yn as N,hn as O,Ze as P,S as Q,h as R,Gr as S,se as T,Rn as U,Wr as V,qr as W,Dn as X,zr as Y,Hr as Z,jr as _,pt as $,oo as aa,fi as ba,io as ca,yt as da,mi as ea,wt as fa,ao as ga,fo as ha,_i as ia,yi as ja};
|
|
10
|
-
//# sourceMappingURL=chunk-
|
|
10
|
+
//# sourceMappingURL=chunk-26O2WB73.js.map
|