@unbrained/pm-cli 2026.8.9 → 2026.8.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/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +40 -0
- package/dist/cli/commander-usage.js +17 -12
- package/dist/cli/help-json-payload.js +51 -16
- package/dist/cli/main.js +7 -6
- package/dist/cli-bundle/bundle-manifest.json +165 -165
- package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
- package/dist/cli-bundle/chunks/{chunk-YC3UF2IO.js → chunk-EBO7OUUE.js} +57 -57
- package/dist/cli-bundle/chunks/{chunk-GMX5YOI3.js → chunk-ETML5C6H.js} +48 -48
- package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
- package/dist/cli-bundle/chunks/{chunk-PYO5GZU6.js → chunk-JZSNADRR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-EF43KODO.js → chunk-MENWVGJW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5JO6R4BS.js → chunk-S4EITGLA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2DTCZXSD.js → chunk-TIGKWVLA.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-RJC7TPF4.js → chunk-TRWXF476.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-BUE7PTCU.js → register-list-query-OJ6ZXKV4.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-FC3XLVIK.js → register-mutation-DKI7QC7O.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-UQDTNTLJ.js → register-setup-S3KT2LTH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6DO4YQWZ.js → chunk-2COZ67XT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-KNEHLPBF.js → chunk-34SX654S.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MRWVJ3ZG.js → chunk-7UN6BHHO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-VRXJSGIT.js → chunk-CHIBMEZR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZG54B4XG.js → chunk-GHTN2ILR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3WVHTUAW.js → chunk-JMVA4HKR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-C3GCHDSQ.js → chunk-KR5RVXLQ.js} +31 -31
- package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-73FIJONU.js → chunk-M6RPIXKC.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
- package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-U46GQJNY.js → chunk-RKWSCYYN.js} +2 -2
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +38 -38
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +1 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/diagnostics/remediation.js +9 -9
- package/dist/core/fs/fs-utils.d.ts +10 -0
- package/dist/core/fs/fs-utils.js +16 -4
- package/dist/core/item/item-format.js +3 -32
- package/dist/core/schema/fields-file.d.ts +1 -2
- package/dist/core/schema/fields-file.js +4 -11
- package/dist/core/schema/runtime-schema.js +3 -10
- package/dist/core/schema/status-defs-file.d.ts +1 -2
- package/dist/core/schema/status-defs-file.js +4 -32
- package/dist/core/schema/status-token.d.ts +2 -0
- package/dist/core/schema/status-token.js +32 -0
- package/dist/core/schema/type-workflows.d.ts +1 -2
- package/dist/core/schema/type-workflows.js +4 -11
- package/dist/core/shared/author.d.ts +1 -1
- package/dist/core/shared/author.js +21 -8
- package/dist/core/shared/errors.d.ts +4 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/text-normalization.d.ts +1 -1
- package/dist/core/shared/text-normalization.js +2 -2
- package/dist/sdk/agent/command-recovery.d.ts +4 -0
- package/dist/sdk/agent/command-recovery.js +52 -0
- package/dist/sdk/agent/command-suggestions.d.ts +4 -0
- package/dist/sdk/agent/command-suggestions.js +67 -0
- package/dist/sdk/agent/create-option-policy.d.ts +12 -0
- package/dist/sdk/agent/create-option-policy.js +32 -0
- package/dist/sdk/agent/item-addressing.d.ts +19 -0
- package/dist/sdk/agent/item-addressing.js +208 -0
- package/dist/sdk/cli-bootstrap.d.ts +1 -1
- package/dist/sdk/cli-bootstrap.js +20 -5
- package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
- package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
- package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +5 -3
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
- package/dist/sdk/cli-contracts/tool-schema.js +17 -4
- package/dist/sdk/context-intent-runtime.js +8 -5
- package/dist/sdk/context-signal-store.d.ts +34 -0
- package/dist/sdk/context-signal-store.js +24 -2
- package/dist/sdk/dependency-flag-validation.d.ts +15 -1
- package/dist/sdk/dependency-flag-validation.js +54 -2
- package/dist/sdk/generated-error-code-catalog.js +74 -2
- package/dist/sdk/governance/health.js +14 -7
- package/dist/sdk/governance/provenance-health.d.ts +13 -0
- package/dist/sdk/governance/provenance-health.js +63 -17
- package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
- package/dist/sdk/governance/validate-item-reader.js +18 -0
- package/dist/sdk/governance/validate.d.ts +2 -2
- package/dist/sdk/governance/validate.js +15 -6
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +6 -2
- package/dist/sdk/lifecycle/close.js +17 -14
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +62 -9
- package/dist/sdk/lifecycle/update-many.js +39 -27
- package/dist/sdk/lifecycle/update.d.ts +6 -1
- package/dist/sdk/lifecycle/update.js +47 -10
- package/dist/sdk/merge/index.d.ts +1 -1
- package/dist/sdk/merge/index.js +3 -3
- package/dist/sdk/merge/install.d.ts +4 -0
- package/dist/sdk/merge/install.js +28 -16
- package/dist/sdk/merge/receipts.d.ts +3 -0
- package/dist/sdk/merge/receipts.js +81 -17
- package/dist/sdk/output-projection.js +24 -4
- package/dist/sdk/query/context.d.ts +2 -0
- package/dist/sdk/query/context.js +7 -4
- package/dist/sdk/query/light-metadata.d.ts +3 -0
- package/dist/sdk/query/light-metadata.js +19 -0
- package/dist/sdk/runtime.d.ts +4 -1
- package/dist/sdk/runtime.js +8 -3
- package/dist/sdk/schema-migration.js +7 -9
- package/dist/sdk/similarity-scoring.d.ts +1 -2
- package/dist/sdk/similarity-scoring.js +4 -16
- package/dist/sdk/workspace-snapshot.d.ts +4 -0
- package/dist/sdk/workspace-snapshot.js +24 -11
- package/docs/AGENT_GUIDE.md +3 -1
- package/docs/COMMANDS.md +8 -5
- package/docs/MERGE_SAFETY.md +7 -5
- package/docs/README.md +2 -5
- package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
- package/docs/SDK.md +33 -8
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +3 -2
- package/docs/SDK_CONTEXT.md +97 -0
- package/docs/SDK_CONTEXT_INTEGRITY.md +18 -3
- package/docs/agent-task-token-baseline.json +2 -2
- package/marketplace.json +2 -2
- package/package.json +5 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +194 -26
- package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +0 -194
- package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +0 -28
- package/dist/cli-bundle/chunks/chunk-MHBVCUF2.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-YH2WAOXU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-3GSFUDAI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-54TZJ4BM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NK5TJ5D.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-JGRSQZJT.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-P6BBIQRG.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-PZAGVQNN.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +0 -14
- package/dist/cli-bundle/focused-chunks/chunk-T4IGQCSY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-XC2ZW3CJ.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as w,
|
|
1
|
+
import{f as w,i as f,j as B,k as j,l as U,o as y,p as X,q as W,r as Y}from"./chunk-75774JWP.js";import{B as H,a as P,b as D}from"./chunk-I4YM2I7S.js";import{c as u,f as M,g as z,i as q}from"./chunk-DZGAHZZV.js";import{Ea as F,c as L,f as R}from"./chunk-36FTZ2NT.js";import{Ia as g,Ka as K,X as k}from"./chunk-2EXI2DKR.js";import{a as N,e as x,f as O,g as A,i as C,l as $}from"./chunk-GHTN2ILR.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bb16b445-3bd4-520d-becf-c55621bfa186")}catch{}})();var Ce=N,$e=x,Pe=C,De=O,Le=A;function G(e,t,n,s){let r=e.flag.slice(2).replace(/[-_]([a-z])/gu,(i,a)=>a.toUpperCase()),o=n.has(r);return{long:t,...s?{short:s}:{},description:e.description??`Standard pm ${e.flag} option.`,...e.required===!0?{required:!0}:{},...e.list===!0?{list:!0}:{},...e.repeatable===!0?{repeatable:!0}:{},value_type:o?"string":"boolean",...o?{value_name:e.value_name??"value"}:{}}}function Q(e,t=[]){let n=new Set(t.flatMap(r=>r.keys)),s=[];for(let r of L(e.map(o=>({...o})))){s.push(G(r,r.flag,n,r.short));for(let o of r.aliases??[])s.push(G(r,o,n))}return s}var Re=Q(R,P),Fe=Q(F,D);(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]="bed1d1d4-0c1d-59e5-8267-fbe800dfd83b")}catch{}})();var _=["agile","ops","research"],I={agile:{name:"agile",title:"Agile delivery",summary:"Story/Spike delivery with a review stage, story points, and acceptance ownership.",types:w.agile,statuses:[{id:"review",roles:["active"],aliases:["in-review"],description:"Work is implementation-complete and awaiting peer review."}],fields:[{key:"story_points",type:"number",commands:["create","update","list"],description:"Relative estimation size for a story or spike.",aliases:["points"]},{key:"acceptance_owner",type:"string",commands:["create","update","list"],description:"Stakeholder accountable for accepting the delivered story.",aliases:["acceptor"]}],workflows:[{type:"Story",allowed_transitions:[["open","in_progress"],["in_progress","review"],["review","in_progress"],["review","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search works without an embedding service."},{key:"search_max_results",value:"20",summary:"Sprint-sized result cap for quick triage."}],templates:[{name:"story",options:{type:"Story",priority:"2",tags:"story",acceptanceCriteria:"Story delivers the stated user outcome with tests and docs updated.",body:`## As a
|
|
2
2
|
|
|
3
3
|
## I want
|
|
4
4
|
|
|
@@ -23,4 +23,4 @@ import{f as w,j as f,k as B,l as j,m as U,q as y,r as X,s as W,t as Y}from"./chu
|
|
|
23
23
|
|
|
24
24
|
## Conclusion
|
|
25
25
|
`}}],packages:[{spec:"search-advanced",reason:"Semantic retrieval over experiments and findings."},{spec:"templates",reason:"Consistent experiment and hypothesis scaffolds."},{spec:"beads",reason:"Import structured prior work into the tracker."}]}};function ne(e){if(e===void 0)return;let t=p(e);if(t.length===0)throw new Error("Profile name must not be empty.");if(_.includes(t))return t;throw new Error(`Invalid profile "${e}". Allowed: ${_.join(", ")}.`)}function qe(e){let t=ne(e);if(t===void 0)throw new Error(`Profile name is required. Allowed: ${_.join(", ")}.`);return I[t]}function Be(){return _.map(e=>I[e])}function p(e){return e.trim().toLowerCase().replaceAll("-","_")}function J(e){return e.map(t=>t.definition.name).join(", ")}function se(e=[]){let t=_.map(o=>({definition:I[o],source:"builtin"})),n=new Set(_.map(o=>p(o))),s=new Set(n),r=[];for(let o of e){let i=p(o.profile.name);if(n.has(i)){r.push(`Extension "${o.name}" profile "${o.profile.name}" uses a name reserved by a built-in archetype and was ignored.`);continue}if(s.has(i)){r.push(`Profile "${o.profile.name}" from extension "${o.name}" duplicates an already-registered profile and was ignored.`);continue}s.add(i),t.push({definition:o.profile,source:"extension",package:o.name})}return{profiles:t,warnings:r}}function je(e,t=[]){let{profiles:n,warnings:s}=se(t);if(typeof e!="string"||e.trim().length===0)throw new Error(`Profile name is required. Allowed: ${J(n)}.`);let r=p(e),o=n.find(i=>p(i.definition.name)===r);if(o===void 0)throw new Error(`Invalid profile "${e}". Allowed: ${J(n)}.`);return{resolved:o,warnings:s}}(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]="933d8f74-c4aa-58d0-bd3b-8932a35d3702")}catch{}})();function re(e){return{types:e.types.length,statuses:e.statuses.length,fields:e.fields.length,workflows:e.workflows.length,config:e.config.length,templates:e.templates.length,packages:e.packages.length}}function Ye(e){return{name:e.name,title:e.title,summary:e.summary,composition:re(e),types:e.types.map(t=>S(()=>u(t).name,()=>String(t.name??""))),statuses:e.statuses.map(t=>S(()=>y(t).id,()=>String(t.id??""))),fields:e.fields.map(t=>S(()=>f(t).key,()=>String(t.key??""))),workflows:e.workflows.map(t=>t.type),config:e.config.map(t=>`${t.key}=${t.value}`),templates:e.templates.map(t=>t.name),packages:e.packages.map(t=>({spec:t.spec,reason:t.reason}))}}function S(e,t){try{return e()}catch{return t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b4af534e-32f9-5271-b6f1-7d901c282de0")}catch{}})();var oe=[{key:"search_provider",path:"search.provider",kind:"string",summary:"Search embedding provider name (e.g. openai, ollama, or an extension provider)."},{key:"search_mutation_refresh_policy",path:"search.mutation_refresh_policy",kind:"string",choices:["cache_only","semantic_configured","semantic_auto"],summary:"Mutation-time search refresh policy: cache_only, semantic_configured, or semantic_auto."},{key:"search_query_expansion_enabled",path:"search.query_expansion.enabled",kind:"boolean",summary:"Enable or disable query expansion for semantic/hybrid search."},{key:"search_query_expansion_provider",path:"search.query_expansion.provider",kind:"string",summary:"Query expansion provider name (built-in openai/ollama or extension provider)."},{key:"search_rerank_enabled",path:"search.rerank.enabled",kind:"boolean",summary:"Enable or disable post-retrieval reranking for hybrid search."},{key:"search_rerank_model",path:"search.rerank.model",kind:"string",summary:"Rerank model name override used by built-in providers."},{key:"search_rerank_top_k",path:"search.rerank.top_k",kind:"integer",min:1,summary:"Number of top hybrid candidates to rerank when rerank is enabled."},{key:"search_embedding_model",path:"search.embedding_model",kind:"string",summary:"Default embedding model name (overrides provider-specific model when set)."},{key:"search_embedding_corpus_max_characters",path:"search.embedding_corpus_max_characters",kind:"integer",min:1,summary:"Maximum semantic corpus characters per item before truncation."},{key:"search_embedding_batch_size",path:"search.embedding_batch_size",kind:"integer",min:1,summary:"Number of items embedded per request batch."},{key:"search_embedding_timeout_ms",path:"search.embedding_timeout_ms",kind:"integer",min:1,summary:"Per-request embedding timeout in milliseconds."},{key:"search_score_threshold",path:"search.score_threshold",kind:"number",summary:"Minimum score for a hit to be returned (0 keeps all matches)."},{key:"search_hybrid_semantic_weight",path:"search.hybrid_semantic_weight",kind:"ratio",summary:"Hybrid mode semantic weight in [0, 1] (1-weight goes to keyword)."},{key:"search_max_results",path:"search.max_results",kind:"integer",min:1,summary:"Default upper bound on search hits when --limit is not supplied."},{key:"search_bm25_k1",path:"search.bm25.k1",kind:"number",min:0,summary:"Offline BM25 term-frequency saturation (k1); higher saturates repeated terms slower (default 1.2)."},{key:"search_bm25_b",path:"search.bm25.b",kind:"ratio",summary:"Offline BM25 document-length normalization (b) in [0, 1]; 0 disables, 1 fully normalizes (default 0.75)."},{key:"openai_base_url",path:"providers.openai.base_url",kind:"string",summary:"OpenAI-compatible API base URL (LM Studio/vLLM also use this)."},{key:"openai_api_key",path:"providers.openai.api_key",kind:"string",summary:"OpenAI-compatible API key."},{key:"openai_model",path:"providers.openai.model",kind:"string",summary:"OpenAI-compatible embedding model name."},{key:"ollama_base_url",path:"providers.ollama.base_url",kind:"string",summary:"Ollama API base URL (typically http://localhost:11434)."},{key:"ollama_model",path:"providers.ollama.model",kind:"string",summary:"Ollama embedding model name (e.g. nomic-embed-text)."},{key:"vector_store_adapter",path:"vector_store.adapter",kind:"string",summary:"Vector store adapter name (lancedb, qdrant, or an extension adapter)."},{key:"vector_store_collection_name",path:"vector_store.collection_name",kind:"string",non_empty:!0,summary:"Vector collection/table name shared by Qdrant and LanceDB adapters."},{key:"qdrant_url",path:"vector_store.qdrant.url",kind:"string",summary:"Qdrant HTTP API URL."},{key:"qdrant_api_key",path:"vector_store.qdrant.api_key",kind:"string",summary:"Qdrant API key (empty if running unauthenticated)."},{key:"lancedb_path",path:"vector_store.lancedb.path",kind:"string",summary:"LanceDB storage path (relative to pm root or absolute)."},{key:"id_prefix",path:"id_prefix",kind:"string",non_empty:!0,summary:'Prefix for generated item IDs (e.g. "pm" produces pm-xxxx).'},{key:"author_default",path:"author_default",kind:"string",non_empty:!0,summary:"Default author recorded on mutations when --author is not supplied."},{key:"mutation_guard_require_attributed_author",path:"mutation_guard.require_attributed_author",kind:"boolean",summary:"Reject mutations whose effective author resolves to unknown."},{key:"mutation_guard_secret_guard",path:"mutation_guard.secret_guard",kind:"string",choices:["off","advise","block"],summary:"Detect credential-shaped mutation content: off, advise, or block."},{key:"mutation_guard_stale_in_progress_hours",path:"mutation_guard.stale_in_progress_hours",kind:"integer",min:1,summary:"Age threshold for unclaimed in-progress work surfaced by health."},{key:"governance_duplicate_detection_mode",path:"governance.duplicate_detection_mode",kind:"string",choices:["off","advisory","strict"],summary:"Create/copy duplicate governance: off, advisory, or strict explicit-bypass enforcement."},{key:"governance_duplicate_detection_threshold",path:"governance.duplicate_detection_threshold",kind:"ratio",summary:"Minimum shared similarity score in [0, 1] for create/copy duplicate governance."},{key:"governance_duplicate_detection_limit",path:"governance.duplicate_detection_limit",kind:"integer",min:0,max:20,summary:"Maximum likely duplicates returned by create/copy governance (0-20)."},{key:"output_default_format",path:"output.default_format",kind:"string",choices:["toon","json"],summary:"Default output format for commands that support it: toon or json."},{key:"locks_ttl_seconds",path:"locks.ttl_seconds",kind:"integer",min:1,summary:"Claim/lock time-to-live in seconds before a stale lock can be reclaimed."},{key:"locks_wait_ms",path:"locks.wait_ms",kind:"integer",min:0,summary:"Bounded jittered wait in milliseconds before a contended item mutation fails with lock_conflict; 0 fails fast. PM_LOCK_WAIT_MS overrides per invocation."},{key:"ids_token_length",path:"ids.token_length",kind:"integer",min:4,max:12,summary:"Random base36 token length for newly minted item ids (4-12, default 4). Raise it to shrink cross-branch id collision odds in concurrent multi-agent workflows (pm-pibw)."},{key:"checkpoints_retention_days",path:"checkpoints.retention_days",kind:"integer",min:1,summary:"Age in days above which pm gc --scope checkpoints prunes bulk-mutation rollback checkpoints."},{key:"schema_unknown_field_policy",path:"schema.unknown_field_policy",kind:"string",choices:["allow","warn","reject"],summary:"How item I/O handles metadata keys not in the field registry: allow, warn, or reject."},{key:"history_compact_policy_enabled",path:"history.compact_policy.enabled",kind:"boolean",summary:"Enable the history-compaction advisory: pm health warns on over-threshold streams."},{key:"history_compact_policy_max_entries",path:"history.compact_policy.max_entries",kind:"integer",min:1,summary:"Entry count above which a history stream is flagged (and the default pm history-compact --all-over threshold)."},{key:"history_compact_policy_trigger",path:"history.compact_policy.trigger",kind:"string",choices:["health_warn","auto"],summary:"History-compaction policy intent: health_warn (advisory only) or auto (scheduled sweeps expected)."}],ie=new Map(oe.flatMap(e=>[[e.key,e],[e.path.toLowerCase().replaceAll("-","_"),e]]));function b(e){if(typeof e!="string")return;let t=e.trim().toLowerCase().replaceAll("-","_");if(t.length!==0)return ie.get(t)}function ae(e,t){let n=t.trim().toLowerCase();return n==="true"||n==="1"||n==="yes"||n==="on"?{ok:!0,parsed:{descriptor:e,value:!0}}:n==="false"||n==="0"||n==="no"||n==="off"?{ok:!0,parsed:{descriptor:e,value:!1}}:{ok:!1,error:{message:`Config set ${e.key} requires a boolean value (true|false), got "${t}"`}}}function le(e,t,n){return e.non_empty===!0&&n.length===0?{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}}:e.choices&&!e.choices.includes(n)?{ok:!1,error:{message:`Config set ${e.key} must be one of ${e.choices.join("|")}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function de(e,t,n){if(n.length===0)return{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}};let s=Number(n);return Number.isFinite(s)?{ok:!0,value:s}:{ok:!1,error:{message:`Config set ${e.key} requires a finite number, got "${t}"`}}}function ce(e,t,n){return!Number.isInteger(n)||n<0?{ok:!1,error:{message:`Config set ${e.key} requires a non-negative integer, got "${t}"`}}:e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires an integer >= ${e.min}, got "${t}" (the runtime silently ignores 0 here and falls back to the default)`}}:e.max!==void 0&&n>e.max?{ok:!1,error:{message:`Config set ${e.key} requires an integer <= ${e.max}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function me(e,t,n){return n<0||n>1?{ok:!1,error:{message:`Config set ${e.key} requires a number in [0, 1], got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function pe(e,t,n){return e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires a number >= ${e.min}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function v(e,t){if(typeof t!="string")return{ok:!1,error:{message:`Config set ${e.key} requires a string value`}};let n=t.trim();if(e.kind==="boolean")return ae(e,t);if(e.kind==="string")return le(e,t,n);let s=de(e,t,n);return s.ok?e.kind==="integer"?ce(e,t,s.value):e.kind==="ratio"?me(e,t,s.value):pe(e,t,s.value):{ok:!1,error:s.error}}function V(e,t){let n=t.path.split("."),s=e;for(let r of n){if(typeof s!="object"||s===null)return null;s=s[r]}return typeof s=="string"||typeof s=="number"||typeof s=="boolean"?s:null}function Ge(e,t,n){let s=t.path.split("."),r=e;for(let a=0;a<s.length-1;a+=1){let c=s[a],d=r[c];if(typeof d!="object"||d===null||Array.isArray(d)){let l={};r[c]=l,r=l}else r=d}let o=s[s.length-1];return r[o]===n?!1:(r[o]=n,!0)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f9b22df0-7ec2-5d72-bc88-3eb7201a6051")}catch{}})();var at=["profile","types","statuses","fields","workflows","config","templates","packages"],lt=["profile_name_empty","profile_name_not_normalized","profile_title_empty","profile_summary_empty","type_invalid","type_duplicate","status_invalid","status_duplicate","field_invalid","field_duplicate","field_mcp_input_collision","workflow_type_empty","workflow_type_unknown","workflow_duplicate_type","workflow_transition_malformed","workflow_status_unknown","config_key_unknown","config_value_invalid","config_duplicate","template_type_unknown","package_spec_empty"],ue=new Set(K.flatMap(e=>[g(e.id),...(e.aliases??[]).map(t=>g(t))]).filter(e=>e.length>0)),Z=new Set($.map(e=>e.toLowerCase()));function fe(e,t){e.name.trim().length===0?t.push({severity:"error",code:"profile_name_empty",dimension:"profile",message:"Profile name must not be empty; profile resolution requires a non-blank name."}):e.name!==p(e.name)&&t.push({severity:"warning",code:"profile_name_not_normalized",dimension:"profile",target:e.name,message:`Profile name "${e.name}" is not in canonical form; resolution folds it to "${p(e.name)}" (lowercase, hyphens as underscores).`}),e.title.trim().length===0&&t.push({severity:"warning",code:"profile_title_empty",dimension:"profile",message:"Profile title is empty; list and show surfaces will render a blank title."}),e.summary.trim().length===0&&t.push({severity:"warning",code:"profile_summary_empty",dimension:"profile",message:"Profile summary is empty; list and show surfaces will render a blank archetype description."})}function ye(e,t){let n=new Set,s=new Set;for(let[r,o]of e.types.entries()){let i;try{i=u(o).name}catch(c){t.push({severity:"error",code:"type_invalid",dimension:"types",target:typeof o.name=="string"?o.name:`#${r}`,message:k(c)});continue}let a=i.toLowerCase();if(s.has(a)){t.push({severity:"error",code:"type_duplicate",dimension:"types",target:i,message:`Item type "${i}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}s.add(a),n.add(a)}return n}function he(e,t){let n=new Set,s=new Set;for(let[r,o]of e.statuses.entries()){let i;try{i=y(o)}catch(a){t.push({severity:"error",code:"status_invalid",dimension:"statuses",target:typeof o.id=="string"?o.id:`#${r}`,message:k(a)});continue}if(s.has(i.id)){t.push({severity:"error",code:"status_duplicate",dimension:"statuses",target:i.id,message:`Status "${i.id}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}s.add(i.id),n.add(i.id);for(let a of i.aliases??[])n.add(g(a))}return n}function ge(e,t){let n=new Set;for(let[s,r]of e.fields.entries()){let o;try{o=f(r).key}catch(a){t.push({severity:"error",code:"field_invalid",dimension:"fields",target:typeof r.key=="string"?r.key:`#${s}`,message:k(a)});continue}if(n.has(o)){t.push({severity:"error",code:"field_duplicate",dimension:"fields",target:o,message:`Field "${o}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}n.add(o);let i=H(o);i&&t.push({severity:"warning",code:"field_mcp_input_collision",dimension:"fields",target:o,message:`Field "${o}" collides with canonical MCP property "${i.property}" owned by ${i.owner}; callers must pass the custom value through ${i.nested_path}.`})}}function _e(e,t,n,s){let r=new Set;for(let[o,i]of e.workflows.entries()){let a=i.type.trim().toLowerCase();if(a.length===0){s.push({severity:"error",code:"workflow_type_empty",dimension:"workflows",target:`#${o}`,message:"Workflow has an empty type; the workflow resolver drops entries without a type."});continue}let c=r.has(a);r.add(a),c?s.push({severity:"warning",code:"workflow_duplicate_type",dimension:"workflows",target:i.type,message:`Workflow type "${i.type}" is declared more than once; the later transition set wins.`}):!Z.has(a)&&!t.has(a)&&s.push({severity:"warning",code:"workflow_type_unknown",dimension:"workflows",target:i.type,message:`Workflow governs type "${i.type}" which is neither a built-in type nor declared by this profile; it has no effect unless that type already exists.`});let d=new Set;for(let l of i.allowed_transitions){let m=g(l[0]),E=g(l[1]);if(m.length===0||E.length===0){s.push({severity:"error",code:"workflow_transition_malformed",dimension:"workflows",target:i.type,message:`Workflow "${i.type}" has a transition with an empty status; the workflow resolver silently drops it.`});continue}for(let h of[m,E])ue.has(h)||n.has(h)||d.has(h)||(d.add(h),s.push({severity:"warning",code:"workflow_status_unknown",dimension:"workflows",target:h,message:`Workflow "${i.type}" references status "${h}" which is neither a built-in status nor declared by this profile; transitions to or from it are unreachable.`}))}}}function ke(e,t){let n=new Set;for(let s of e.config){let r=b(s.key);if(r===void 0){t.push({severity:"error",code:"config_key_unknown",dimension:"config",target:s.key,message:`Config knob "${s.key}" is not a recognized setting; apply rejects it with a usage error.`});continue}n.has(r.key)?t.push({severity:"error",code:"config_duplicate",dimension:"config",target:r.key,message:`Config knob "${r.key}" is set more than once; the later value silently overwrites the earlier one.`}):n.add(r.key);let o=v(r,s.value);o.ok||t.push({severity:"error",code:"config_value_invalid",dimension:"config",target:s.key,message:o.error.message})}}function we(e,t,n){for(let s of e.templates){let r=s.options.type;if(typeof r!="string"||r.trim().length===0)continue;let o=r.trim().toLowerCase();!Z.has(o)&&!t.has(o)&&n.push({severity:"warning",code:"template_type_unknown",dimension:"templates",target:s.name,message:`Template "${s.name}" creates type "${r}" which is neither a built-in type nor declared by this profile.`})}}function be(e,t){for(let[n,s]of e.packages.entries())s.spec.trim().length===0&&t.push({severity:"warning",code:"package_spec_empty",dimension:"packages",target:`#${n}`,message:"Package recommendation has an empty spec; it cannot be surfaced as an install hint."})}function dt(e){let t=[];fe(e,t);let n=ye(e,t),s=he(e,t);ge(e,t),_e(e,n,s,t),ke(e,t),we(e,n,t),be(e,t);let r=t.filter(i=>i.severity==="error").length,o=t.length-r;return{profile:e.name,ok:r===0,findings:t,errorCount:r,warningCount:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ead1caea-8e8b-5208-9fba-23fb114044b5")}catch{}})();function T(e,t,n,s,r){let o=e,i=[];for(let a of t){let c=s(o),d=r(o,a),l=s(d.file);o=d.file;let m=c===l?"unchanged":d.replaced?"update":"add";i.push({key:n(a),status:m})}return{file:o,changes:i,changed:i.some(a=>a.status!=="unchanged")}}function ee(e){return JSON.stringify(e.map(t=>t.join("\0")).sort())}function ve(e,t){let n=e.map(r=>({...r})),s=[];for(let r of t){let o=n.findIndex(a=>a.type===r.type),i={type:r.type,allowed_transitions:r.allowed_transitions};o<0?(n.push(i),s.push({type:r.type,status:"add"})):ee(n[o].allowed_transitions)===ee(r.allowed_transitions)?s.push({type:r.type,status:"unchanged"}):(n[o]=i,s.push({type:r.type,status:"update"}))}return{changes:s,result:n,changed:s.some(r=>r.status!=="unchanged")}}function Ie(e,t){let n=[];for(let s of e.config){let r=b(s.key);if(r===void 0)throw new Error(`Profile "${e.name}" references unknown config key "${s.key}".`);let o=v(r,s.value);if(!o.ok)throw new Error(`Profile "${e.name}" config ${s.key}: ${o.error.message}`);let i=V(t,r),a=i===null?"add":i===o.parsed.value?"unchanged":"update";n.push({key:r.key,path:r.path,value:o.parsed.value,status:a})}return{changes:n,changed:n.some(s=>s.status!=="unchanged")}}function te(e){let t=Object.entries(e).sort(([n],[s])=>n.localeCompare(s));return JSON.stringify(t)}function Se(e,t){let n=[];for(let s of e.templates){let r=t.get(s.name),o;r===void 0?o="add":te(r)===te(s.options)?o="unchanged":o="update",n.push({name:s.name,options:s.options,status:o})}return{changes:n,changed:n.some(s=>s.status!=="unchanged")}}function yt(e,t){let n=T(M(t.typesRaw),e.types,l=>u(l).name,q,(l,m)=>z(l,u(m))),s=T(X(t.statusesRaw),e.statuses,l=>y(l).id,W,(l,m)=>Y(l,y(m))),r=T(B(t.fieldsRaw),e.fields,l=>f(l).key,j,(l,m)=>U(l,f(m))),o=ve(t.workflows,e.workflows),i=Ie(e,t.settings),a=Se(e,t.templates),c=e.packages.map(l=>({spec:l.spec,reason:l.reason,status:t.installedPackages.has(l.spec)?"installed":"recommended"})),d=n.changed||s.changed||r.changed||o.changed||i.changed||a.changed;return{profile:{name:e.name,title:e.title,summary:e.summary},types:n,statuses:s,fields:r,workflows:o,config:i,templates:a,packages:c,changed:d}}export{Ce as a,$e as b,Pe as c,De as d,Le as e,Q as f,Re as g,Fe as h,_ as i,I as j,ne as k,qe as l,Be as m,se as n,je as o,re as p,Ye as q,oe as r,b as s,v as t,V as u,Ge as v,at as w,lt as x,dt as y,yt as z};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-2COZ67XT.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{$ as Fe,L as Pn,M as On,N as me,O as pe,R as ne,S as Dn,Y as S,Z as x,a as q,b as De,ba as Nn,c as bn,e as vn,f as En,g as kn,h as xn,i as Sn,j as Ne,k as Cn,m as Tn,n as In,o as An,p as fe,q as $n,r as Rn}from"./chunk-GHTN2ILR.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="294d43fb-b6e8-5a5f-91fe-73ba21075bf5")}catch{}})();function ge(e,n,r){if(e===n)return 0;if(Math.abs(e.length-n.length)>r)return null;let t=n.length+1,o=new Array(t),i=new Array(t),s=new Array(t);for(let l=0;l<t;l+=1)o[l]=0,i[l]=l;for(let l=1;l<=e.length;l+=1){s[0]=l;let c=s[0];for(let d=1;d<=n.length;d+=1){let u=e[l-1]===n[d-1]?0:1,m=i[d-1]+u,f=s[d-1]+1,h=i[d]+1,p=Math.min(m,f,h);l>1&&d>1&&e[l-1]===n[d-2]&&e[l-2]===n[d-1]&&(p=Math.min(p,o[d-2]+1)),s[d]=p,p<c&&(c=p)}if(c>r)return null;for(let d=0;d<t;d+=1)o[d]=i[d],i[d]=s[d]}let a=i[n.length];return a<=r?a:null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f6ec614c-2e47-5ce0-bbf6-8dde97ffb99e")}catch{}})();var he=fe;function ye(e){let n=e.trim().toLowerCase();return he.includes(n)?n:null}function Fn(e){let n=e.trim().toLowerCase();if(n.length===0)return null;let r=Math.max(1,Math.floor(n.length*.34));for(let t of he)if(ge(n,t,r)!==null)return t;return null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ce320988-b999-57c9-a786-a94ac66c5628")}catch{}})();var V=new Set(Dn),_e=Object.freeze({get size(){return V.size},has(e){return V.has(e)},entries(){return V.entries()},keys(){return V.keys()},values(){return V.values()},forEach(e,n){V.forEach(r=>e.call(n,r,r,_e))},[Symbol.iterator](){return V.values()}});function Mn(e){if(typeof e!="string")return null;let n=e.trim();return n.length>0?n:null}function zn(e){return typeof e!="string"?null:ye(e)}function vt(e){try{return structuredClone(e)}catch{return e}}function Et(e){let n=e.trim(),r=n.indexOf("=");if(r<=0)throw new x(`--field entries must use name=value syntax, received: ${e}`,S.USAGE);let t=n.slice(0,r).trim(),o=n.slice(r+1);return{key:t,value:o}}function kt(e){return`--${e.replaceAll("_","-")}`}function xt(e,n,r){try{let t=JSON.parse(e);if(r==="array"&&Array.isArray(t)||r==="object"&&typeof t=="object"&&t!==null&&!Array.isArray(t))return t}catch{}throw new x(`--field ${n}=... must be valid JSON ${r}`,S.USAGE)}function St(e,n,r){if(n==="string")return r;if(n==="number"){let t=r.trim();if(t.length===0)throw new x(`--field ${e}=... must be a number`,S.USAGE);let o=Number(t);if(!Number.isFinite(o))throw new x(`--field ${e}=... must be a number`,S.USAGE);return o}if(n==="boolean"){let t=r.trim().toLowerCase();if(t==="true"||t==="1"||t==="yes")return!0;if(t==="false"||t==="0"||t==="no")return!1;throw new x(`--field ${e}=... must be one of true|false|1|0|yes|no`,S.USAGE)}return n==="string_array"?r.split(/[\n,|]/u).map(t=>t.trim()).filter(t=>t.length>0):xt(r,e,n)}function Me(e){let n=new Map;if(!e)return n;for(let r of e.item_fields)for(let t of r.fields){let o=Mn(t.name),i=zn(t.type);if(!o||!i)continue;let s=n.get(o);if(s&&s.type!==i)throw new x(`Extension item field "${o}" is declared with conflicting types: ${s.type}, ${i}`,S.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});n.set(o,{name:o,type:i})}return n}function jn(e){if(_e.has(e))throw new x(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[..._e].sort((n,r)=>n.localeCompare(r)).join(", ")}.`,S.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function aa(e){return[...Me(e).keys()].sort((n,r)=>n.localeCompare(r))}function la(e,n){if(!e||e.length===0)return{};let r=Me(n),t={};for(let o of e){let{key:i,value:s}=Et(o),a=r.get(i);if(!a){if(_e.has(i)){let c=kt(i);throw new x(`--field ${i} is a core item field, not an extension field`,S.USAGE,{code:"core_item_field_requires_dedicated_flag",field:i,recovery:{provided_fields:[i],suggested_flags:[c]},nextSteps:[`Set the core field with its dedicated flag: pm update <id> ${c} <value>`,`When closing an item, pm close <id> also accepts ${c} <value>.`]})}let l=[...r.keys()].sort((c,d)=>c.localeCompare(d));throw new x(`--field ${i} is not declared by an active extension item-field registration`,S.USAGE,{code:"extension_item_field_unknown",recovery:{provided_fields:l},nextSteps:l.length>0?[`Use one of the declared fields: ${l.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}jn(a.name),t[a.name]=St(a.name,a.type,s)}return t}function Ct(e,n){return n==="string"?typeof e=="string":n==="number"?typeof e=="number"&&Number.isFinite(e):n==="boolean"?typeof e=="boolean":n==="array"?Array.isArray(e):n==="string_array"?Array.isArray(e)&&e.every(r=>typeof r=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function Tt(e,n){return!n||n.length===0?!0:n.some(r=>Object.is(r,e))}function ca(e,n,r={}){if(n){Me(n);for(let t of n.item_fields)for(let o of t.fields){let i=Mn(o.name);if(!i)continue;jn(i),!(i in e)&&!r.skipDefaultFields?.has(i)&&Object.prototype.hasOwnProperty.call(o,"default")&&(e[i]=vt(o.default));let s=e[i];if(s===void 0)continue;let a=zn(o.type);if(a&&!Ct(s,a))throw new TypeError(`Item field "${i}" must be of type ${a}`);let l=Array.isArray(o.values)?o.values:void 0;if(!Tt(s,l))throw new TypeError(`Item field "${i}" must match one of the configured allowed values`)}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="49a83ce3-4c55-5b3f-b061-bc21b716d498")}catch{}})();var ze=[{kind:"blocked_by",direction:"directed",inverse:"blocks",ordering:!0,precedence:"target_before_source",hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"persistent",aliases:["depends_on"],compatibilityVersion:1,allowSelf:!1},{kind:"blocks",direction:"directed",inverse:"blocked_by",ordering:!0,precedence:"source_before_target",hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"persistent",compatibilityVersion:1,allowSelf:!1},{kind:"parent",direction:"directed",inverse:"child",ordering:!1,hierarchy:!0,hierarchyDirection:"target_parent",outgoing:"one",incoming:"many",lifecycle:"supersedable",aliases:["child_of","epic"],compatibilityVersion:1,allowSelf:!1},{kind:"child",direction:"directed",inverse:"parent",ordering:!1,hierarchy:!0,hierarchyDirection:"source_parent",outgoing:"many",incoming:"one",lifecycle:"supersedable",aliases:["parent_child","task"],compatibilityVersion:1,allowSelf:!1},{kind:"related",direction:"undirected",ordering:!1,hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"persistent",aliases:["related_to"],compatibilityVersion:1,allowSelf:!1},{kind:"discovered_from",direction:"directed",ordering:!1,hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"persistent",compatibilityVersion:1,allowSelf:!1},{kind:"incident_from",direction:"directed",ordering:!1,hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"persistent",compatibilityVersion:1,allowSelf:!1},{kind:"implements",direction:"directed",ordering:!1,hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"persistent",compatibilityVersion:1,allowSelf:!1},{kind:"verifies",direction:"directed",ordering:!1,hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"persistent",compatibilityVersion:1,allowSelf:!1},{kind:"supersedes",direction:"directed",ordering:!1,hierarchy:!1,outgoing:"many",incoming:"many",lifecycle:"supersedable",compatibilityVersion:1,allowSelf:!1}];(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="05e01593-acb6-5e28-a5ac-8c8f74359c62")}catch{}})();function ve(e){return e.trim().toLowerCase().replaceAll("-","_")}function It(e){if(e===void 0)return;let n=ve(e);if(!/^[a-z][a-z0-9_]*$/.test(n))throw new TypeError(`Invalid inverse relationship kind: ${e}`);return n}function Le(e,n=new Set){if(e===null||typeof e!="object"||n.has(e))return e;if(n.add(e),Array.isArray(e)){for(let r of e)Le(r,n);return Object.freeze(e)}for(let r of Object.values(e))Le(r,n);return Object.freeze(e)}function At(e,n){if(e.precedence!==void 0&&e.precedence!=="source_before_target"&&e.precedence!=="target_before_source")throw new TypeError(`Invalid relationship precedence for ${n}`);if(!e.ordering&&e.precedence!==void 0)throw new TypeError(`Non-ordering relationship kind cannot declare precedence: ${n}`)}function $t(e,n){if(e.hierarchyDirection!==void 0&&e.hierarchyDirection!=="source_parent"&&e.hierarchyDirection!=="target_parent")throw new TypeError(`Invalid relationship hierarchy direction for ${n}`);if(!e.hierarchy&&e.hierarchyDirection!==void 0)throw new TypeError(`Non-hierarchy relationship kind cannot declare hierarchy direction: ${n}`)}function Rt(e){if(typeof e!="object"||e===null)throw new TypeError("Relationship kind definition requires an object");if(typeof e.kind!="string")throw new TypeError("Relationship kind requires a string identifier");let n=ve(e.kind);if(!/^[a-z][a-z0-9_]*$/.test(n))throw new TypeError(`Invalid relationship kind: ${e.kind}`);if(!Number.isInteger(e.compatibilityVersion)||e.compatibilityVersion<1)throw new TypeError(`Invalid compatibility version for ${n}`);return n}function Pt(e,n){if(!["directed","undirected"].includes(e.direction))throw new TypeError(`Invalid relationship direction for ${n}`);if(typeof e.ordering!="boolean")throw new TypeError(`Invalid relationship ordering flag for ${n}`);if(![void 0,!0,!1].includes(e.hierarchy))throw new TypeError(`Invalid relationship hierarchy flag for ${n}`);if(!["one","many"].includes(e.outgoing))throw new TypeError(`Invalid outgoing relationship cardinality for ${n}`);if(!["one","many"].includes(e.incoming))throw new TypeError(`Invalid incoming relationship cardinality for ${n}`);if(!["persistent","supersedable","ephemeral"].includes(e.lifecycle))throw new TypeError(`Invalid relationship lifecycle for ${n}`);if(typeof e.allowSelf!="boolean")throw new TypeError(`Invalid relationship self-edge flag for ${n}`)}function Ot(e,n){if(e.payloadSchema!==void 0&&(typeof e.payloadSchema!="object"||e.payloadSchema===null||Array.isArray(e.payloadSchema)))throw new TypeError(`Invalid relationship payload schema for ${n}`);if(e.aliases!==void 0&&(!Array.isArray(e.aliases)||e.aliases.some(r=>typeof r!="string")))throw new TypeError(`Invalid relationship aliases for ${n}`)}var qe=class{#e=new Map;#r=new Map;constructor(n=ze){for(let r of n)this.register(r)}register(n){let r=Rt(n);if(Pt(n,r),Ot(n,r),At(n,r),$t(n,r),this.#e.has(r)||this.#r.has(r))throw new TypeError(`Relationship kind already registered: ${r}`);let t=It(n.inverse),o=[...new Set((n.aliases??[]).map(ve))].sort();for(let s of o){if(!/^[a-z][a-z0-9_]*$/.test(s))throw new TypeError(`Invalid relationship alias: ${s}`);if(s===r||this.#e.has(s)||this.#r.has(s))throw new TypeError(`Relationship alias already registered: ${s}`)}let i=Object.freeze({...n,kind:r,hierarchy:n.hierarchy??!1,inverse:t,aliases:Object.freeze(o),payloadSchema:n.payloadSchema?Le(structuredClone(n.payloadSchema)):void 0});this.#e.set(r,i);for(let s of o)this.#r.set(s,r);return this}resolve(n){if(typeof n!="string")return;let r=ve(n);return this.#e.get(this.#r.get(r)??r)}require(n){let r=this.resolve(n);if(!r)throw new TypeError(`Unknown relationship kind: ${n}`);return r}list(){return Object.freeze([...this.#e.values()].sort((n,r)=>n.kind.localeCompare(r.kind)))}};function Ve(){return new qe}var U=Ve();function ma(e){return U.require(e).kind}function pa(e){return U.resolve(e)?.kind}function ga(e,n=U){return n.resolve(e)?.ordering===!0}function Dt(e,n,r,t=U){let o=re(e),i=re(n);if(!o||!i)throw new TypeError("Relationship endpoint must not be empty");let s=t.require(r);if(o===i&&!s.allowSelf)throw new TypeError(`Self relationship is not allowed for ${s.kind}`);return s}function we(e,n){return e.source.localeCompare(n.source)||e.target.localeCompare(n.target)||e.kind.localeCompare(n.kind)}function Nt(e,n,r){let t=typeof e.source=="string"?e.source.trim():"",o=typeof e.target=="string"?e.target.trim():"";if(!n.has(t)||!n.has(o))throw new TypeError(`Relationship endpoint not found: ${t} -> ${o}`);let i=Dt(t,o,e.kind,r),s=Object.freeze({...e,source:t,target:o,kind:i.kind}),a=i.direction==="undirected"?[t,o].sort().join("\0"):`${t}\0${o}`;return{edge:s,identity:`${i.kind}\0${a}`}}function be(e,n,r){let t=e.get(n);t?t.push(r):e.set(n,[r])}function re(e){return typeof e=="string"?e.trim():""}function je(e,n){let r=re(e);return r&&n.has(r)?r:void 0}function Ft(e,n,r){let t=[n],o=n;for(;o!==e;)o=r.get(o),t.push(o);return t.reverse()}var Ln=class e{#e;#r;#o;#t;#s=new Map;#a=new Map;constructor(n,r,t=U){this.#e=t,this.#r=new Set([...n].filter(i=>typeof i=="string").map(i=>i.trim()).filter(Boolean)),this.#o=Object.freeze([...this.#r].sort());let o=new Map;for(let i of r){let{edge:s,identity:a}=Nt(i,this.#r,t);o.set(a,s)}this.#t=Object.freeze([...o.values()].sort(we));for(let i of this.#t)be(this.#s,i.source,i),be(this.#a,i.target,i),t.require(i.kind).direction==="undirected"&&(be(this.#s,i.target,i),be(this.#a,i.source,i))}static fromItems(n,r=U){let t=new Set(n.map(i=>re(i.id)).filter(Boolean)),o=[];for(let i of n){let s=re(i.id);if(!s)continue;let a=je(i.parent,t);a&&o.push({source:s,target:a,kind:"parent"});let l=je(i.blocked_by,t);l&&o.push({source:s,target:l,kind:"blocked_by"});for(let c of i.dependencies??[]){let d=je(c.id,t);d&&r.resolve(c.kind)&&o.push({source:s,target:d,kind:c.kind,createdAt:c.created_at,author:c.author})}}return new e(t,o,r)}edges(){return this.#t}incidentEdges(n){this.#i(n);let r=this.#s.get(n)??[],t=this.#a.get(n)??[];if(r.length===0)return Object.freeze([...t]);if(t.length===0)return Object.freeze([...r]);let o=[],i=0,s=0;for(;i<r.length||s<t.length;){let a=r[i],l=t[s],c=a===void 0?l:l===void 0||we(a,l)<=0?a:l;o.at(-1)!==c&&o.push(c),a===c&&(i+=1),l===c&&(s+=1)}return Object.freeze(o)}nodes(){return this.#o}hasNode(n){return this.#r.has(n)}registry(){return this.#e}#i(n){if(!this.#r.has(n))throw new TypeError(`Relationship node not found: ${n}`)}#l(n,r){if(!r)return!0;let t=this.#e.require(n.kind);return r.has(n.kind)||t.inverse!==void 0&&r.has(t.inverse)}#n(n,r,t){let o=[...r==="incoming"?[]:this.#s.get(n)??[],...r==="outgoing"?[]:this.#a.get(n)??[]];return[...new Set(o)].filter(i=>this.#l(i,t)).map(i=>({id:i.source===n?i.target:i.source,edge:i})).sort((i,s)=>i.id.localeCompare(s.id)||we(i.edge,s.edge))}adjacency(n,r={}){this.#i(n),r.signal?.throwIfAborted();let t=r.kinds?new Set(r.kinds.map(l=>this.#e.require(l).kind)):void 0,o=this.#n(n,r.direction??"outgoing",t),i=r.limit??Number.POSITIVE_INFINITY,s=[...new Set(o.map(l=>l.id))],a=s.slice(0,i);return{value:a,meta:{visitedNodes:1,inspectedEdges:o.length,truncated:a.length<s.length,nextCursor:a.at(-1)}}}neighborEdges(n,r={}){this.#i(n),r.signal?.throwIfAborted();let t=r.kinds?new Set(r.kinds.map(a=>this.#e.require(a).kind)):void 0,o=this.#n(n,r.direction??"outgoing",t),i=r.limit??Number.POSITIVE_INFINITY,s=o.slice(0,i);return{value:s,meta:{visitedNodes:1,inspectedEdges:o.length,truncated:s.length<o.length,nextCursor:s.at(-1)?.id}}}closure(n,r={}){this.#i(n);let t=r.kinds?new Set(r.kinds.map(f=>this.#e.require(f).kind)):void 0,o=r.direction??"outgoing",i=r.limit??Number.POSITIVE_INFINITY,s=r.maxDepth??Number.POSITIVE_INFINITY,a=new Set([n]),l=[],c=[{id:n,depth:0}],d=0,u=0,m=!1;e:for(let f=0;f<c.length;f+=1){r.signal?.throwIfAborted();let h=c[f];d+=1;let p=this.#n(h.id,o,t);if(u+=p.length,h.depth>=s){p.some(g=>!a.has(g.id))&&(m=!0);continue}for(let g of p)if(!a.has(g.id)){if(l.length>=i){m=!0;break e}a.add(g.id),l.push(g.id),c.push({id:g.id,depth:h.depth+1})}}return{value:l,meta:{visitedNodes:d,inspectedEdges:u,truncated:m,nextCursor:l.at(-1)}}}shortestPath(n,r,t={}){if(this.#i(n),this.#i(r),n===r)return{value:[n],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}};let o=t.kinds?new Set(t.kinds.map(f=>this.#e.require(f).kind)):void 0,i=t.direction??"outgoing",s=t.maxDepth??Number.POSITIVE_INFINITY,a=[{id:n,depth:0}],l=new Map,c=new Set([n]),d=0,u=0,m=!1;for(let f=0;f<a.length;f+=1){t.signal?.throwIfAborted();let h=a[f];d+=1;let p=this.#n(h.id,i,o);if(u+=p.length,h.depth>=s){p.some(g=>!c.has(g.id))&&(m=!0);continue}for(let g of p)if(!c.has(g.id)){if(l.set(g.id,h.id),g.id===r)return{value:Ft(n,r,l),meta:{visitedNodes:d,inspectedEdges:u,truncated:!1}};c.add(g.id),a.push({id:g.id,depth:h.depth+1})}}return{value:[],meta:{visitedNodes:d,inspectedEdges:u,truncated:m}}}subgraph(n,r={}){let t=this.closure(n,r),o=[n,...t.value].sort(),i=new Set(o),s=r.kinds?new Set(r.kinds.map(l=>this.#e.require(l).kind)):void 0,a=new Set;for(let l of o)for(let c of this.#s.get(l)??[])i.has(c.source)&&i.has(c.target)&&this.#l(c,s)&&a.add(c);return{value:{nodes:o,edges:[...a].sort(we)},meta:t.meta}}};function ha(e,n,r=U){return{source:e,target:n.id,kind:r.require(n.kind).kind,createdAt:n.created_at,author:n.author}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2f268c53-f096-5eed-9ddb-01fed4839ae5")}catch{}})();function v(e){return e.trim().toLowerCase().split(/\s+/).filter(n=>n.length>0).join(" ")}function Mt(){return{json:!1,quiet:!1,noExtensions:!1,profile:!1}}function qn(e){return e?k(e):{}}function Vn(e){return e?k(e):Mt()}function k(e){return structuredClone(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2c4e3831-6644-5db3-a28b-1c6a131da2e1")}catch{}})();var zt=new Set(["commands","command_overrides","command_handlers","flag_commands","parser_overrides"]),jt=["commands","command_overrides","command_handlers","hooks","flag_commands","item_types","item_fields","relationship_kinds","migrations","profiles","importers","exporters","search_providers","vector_store_adapters","parser_overrides","service_overrides","renderer_overrides"];function Lt(e,n){for(let r of jt){let t=e[r];if(t===void 0)continue;if(!Array.isArray(t)||t.some(i=>typeof i!="string"))return!1;let o=t.map(i=>zt.has(r)?v(i):i.trim()).filter(i=>i.length>0);n[r]=[...new Set(o)].sort((i,s)=>i.localeCompare(s))}return!0}function qt(e){if(!Array.isArray(e))return null;let n=[];for(let r of e){if(typeof r!="object"||r===null)return null;let t=r;if(t.format!=="json"&&t.format!=="toon"||!Array.isArray(t.commands)||t.commands.some(o=>typeof o!="string")||typeof t.result_discriminator!="boolean")return null;n.push({format:t.format,commands:[...new Set(t.commands.map(o=>v(o)))].sort((o,i)=>o.localeCompare(i)),result_discriminator:t.result_discriminator})}return n.sort((r,t)=>r.format.localeCompare(t.format))}function Vt(e){if(!Array.isArray(e))return null;let n=[];for(let r of e){if(typeof r!="object"||r===null)return null;let t=r.commands;if(!Array.isArray(t)||t.some(o=>typeof o!="string"))return null;n.push({commands:[...new Set(t.map(o=>v(o)))].filter(o=>o.length>0).sort((o,i)=>o.localeCompare(i))})}return n}function Ue(e){if(e==null)return;if(typeof e!="object"||Array.isArray(e))return null;let n=e;if(n.schema_version!==1)return null;let r={schema_version:1};if(!Lt(n,r))return null;let t=n.preflight_overrides;if(t!==void 0&&(!Number.isInteger(t)||t<0))return null;typeof t=="number"&&(r.preflight_overrides=t);let o=n.renderer_ownership;if(o!==void 0){let s=qt(o);if(s===null)return null;r.renderer_ownership=s}let i=n.preflight_ownership;if(i!==void 0){let s=Vt(i);if(s===null)return null;r.preflight_ownership=s}return r}function va(e){return{schema_version:1,commands:e.commands,command_overrides:e.command_overrides,command_handlers:e.command_handlers,hooks:e.hooks,flag_commands:e.flag_commands,item_types:e.item_types,item_fields:e.item_fields,...e.relationship_kinds?{relationship_kinds:e.relationship_kinds}:{},migrations:e.migrations,profiles:e.profiles,importers:e.importers,exporters:e.exporters,search_providers:e.search_providers,vector_store_adapters:e.vector_store_adapters,parser_overrides:e.parser_overrides,service_overrides:e.service_overrides,renderer_overrides:e.renderer_overrides,...e.renderer_ownership?{renderer_ownership:e.renderer_ownership}:{},preflight_overrides:e.preflight_overrides,...e.preflight_ownership?{preflight_ownership:e.preflight_ownership}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3225f4de-aa48-55b7-a704-d93ccb3ee0f4")}catch{}})();function te(e){return[...new Set(e.map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r))}function N(e){return q.includes(e)}function Un(e){let n=e.trim().toLowerCase();return N(n)?n:null}function Wn(e){return e.filter(n=>!N(n))}function We(e){let n=e.trim().toLowerCase();return n.length===0?null:bn[n]??null}function Kn(e){let n=te([...e].map(i=>i.toLowerCase())),r=[],t=[];for(let i of n){let s=We(i);if(s){r.push(s),t.push({alias:i,target:s});continue}r.push(i)}let o=[...new Map(t.map(i=>[`${i.alias}>${i.target}`,i])).values()].sort((i,s)=>i.alias.localeCompare(s.alias));return{capabilities:te(r),legacy_aliases:o}}function Ut(e){let n=e.trim().toLowerCase();if(n.length===0)return null;let r=We(n);if(r)return r;let t=Math.max(1,Math.floor(n.length*.34)),o=null,i=Number.POSITIVE_INFINITY;for(let s of q){let a=ge(n,s,t);a!==null&&a<i&&(i=a,o=s)}return o}function Bn(e,n,r){let t=q.join(","),o=Ut(r)??"none";return`extension_capability_unknown:${e}:${n}:${r}:allowed=${t}:suggested=${o}`}function Hn(e,n,r){let t=r.map(o=>`${o.alias}>${o.target}`).join(",");return`extension_capability_legacy_alias:${e}:${n}:aliases=${t}`}function Wt(e){let n=/^extension_capability_unknown:(global|project):([^:]+):([^:]+):allowed=([^:]+):suggested=([^:]+)$/.exec(e.trim());if(!n)return null;let[,r,t,o,i,s]=n,a=r,l=i.split(",").map(f=>f.trim()).filter(f=>f.length>0),c=We(o),u=(s==="none"?void 0:s)??c??void 0;return{layer:a,name:t,capability:o,allowed_capabilities:l,capability_contract_version:De,suggested_capability:u,suggestion_source:u?c===u?"legacy_alias":"nearest_match":void 0,legacy_alias_target:c??void 0}}function Kt(e){let n=/^extension_capability_legacy_alias:(global|project):([^:]+):aliases=(.+)$/.exec(e.trim());if(!n)return[];let[,r,t,o]=n,i=r,s=[...q],a=[];for(let l of o.split(",")){let[c,d]=l.split(">"),u=c?.trim(),m=d?.trim().toLowerCase();!u||!m||!N(m)||a.push({layer:i,name:t,capability:u,allowed_capabilities:s,capability_contract_version:De,suggested_capability:m,suggestion_source:"legacy_alias",legacy_alias_target:m})}return a}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3f347c0d-2e1f-5d17-9e38-bae834f845d3")}catch{}})();var Ta={commands:["registerCommand","command override","command handler"],renderers:["registerRenderer"],hooks:["hooks.beforeCommand","hooks.beforeMutation","hooks.afterCommand","hooks.onWrite","hooks.onRead","hooks.onIndex"],schema:["registerFlags","registerItemFields","registerItemTypes","registerRelationshipKinds","registerMigration","registerProfile"],importers:["registerImporter","registerExporter"],search:["registerSearchProvider","registerVectorStoreAdapter"],parser:["registerParser"],preflight:["registerPreflight"],services:["registerService"]},Gn=":";function Yn(e,n){return`${e}${Gn}${Ke(n)}`}function Bt(e){return e.slice(e.indexOf(Gn)+1)}function Ke(e){return e.trim().toLowerCase()}function Ht(e){if(!Array.isArray(e))return[];let n=new Set;for(let r of e){let t=Un(r);t!==null&&n.add(t)}return[...n].sort((r,t)=>r.localeCompare(t))}function Xn(e){let n=new Map,r=(d,u)=>{for(let m of d){let f=Yn(m.layer,m.name),h=n.get(f);h===void 0&&(h=new Set,n.set(f,h)),h.add(u)}},{registrations:t,commands:o,parsers:i,preflight:s,services:a,renderers:l,hooks:c}=e;return r(t.commands,"commands"),r(o.overrides,"commands"),r(o.handlers,"commands"),r(t.flags,"schema"),r(t.item_fields,"schema"),r(t.item_types,"schema"),r(t.relationship_kinds??[],"schema"),r(t.migrations,"schema"),r(t.profiles,"schema"),r(t.importers,"importers"),r(t.exporters,"importers"),r(t.search_providers,"search"),r(t.vector_store_adapters,"search"),r(i.overrides,"parser"),r(s.overrides,"preflight"),r(a.overrides,"services"),r(l.overrides,"renderers"),r(c.beforeCommand,"hooks"),r(c.beforeMutation,"hooks"),r(c.afterCommand,"hooks"),r(c.onWrite,"hooks"),r(c.onRead,"hooks"),r(c.onIndex,"hooks"),n}function Ia(e,n={}){let r=Xn(e),t=new Set;n.extensionName!==void 0&&t.add(Ke(n.extensionName));for(let i of n.extensionNames??[])t.add(Ke(i));let o=new Set;for(let[i,s]of r)if(!(t.size>0&&!t.has(Bt(i))))for(let a of s)o.add(a);return[...o].sort((i,s)=>i.localeCompare(s))}function Aa(e,n){let r=Xn(n),t=[];for(let o of e){let i=Ht(o.capabilities);if(i.length===0)continue;let s=r.get(Yn(o.layer,o.name))??new Set,a=[...s].sort((c,d)=>c.localeCompare(d)),l=i.filter(c=>!s.has(c));t.push({layer:o.layer,name:o.name,declared:i,used:a,unused:l})}return t}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4eccf02f-7401-539f-b843-f55b63ed878c")}catch{}})();var Gt=/^--[a-z0-9][a-z0-9_-]*(?:[ =](?:<[^<>]+>|\[[^[\]]+\]))?$/;function Yt(e){if(typeof e!="string")return null;let n=e.trim(),r=n.split(/[ =]/,1)[0];return Fe.has(r)?"host_owned_flag_collision":Gt.test(n)?null:"malformed_long_flag"}function Jn(e,n){let r=[e,n].find(i=>typeof i=="string"&&Fe.has(i.trim().split(/[ =]/,1)[0]));if(typeof r=="string")return{token:r.trim().split(/[ =]/,1)[0],failure:"host_owned_flag_collision"};if(typeof e!="string")return null;let t=e.trim(),o=Yt(t);return o===null?null:{token:t,failure:o}}function Zn(e,n){return n==="host_owned_flag_collision"?`cannot shadow host-owned global flag "${e}"; read it from context.global instead`:`long flag "${e}" must start with a double-dash name such as "--my-flag" or "--my-flag <value>"`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="849502d0-2616-500c-96de-228c0759459d")}catch{}})();function Qn(e){return typeof e=="string"?e:String(e)}function oe(e){let r=e.trim().replace(/^>=\s*/,"").replace(/^v/i,"").split(/[+-]/,1)[0];return/^\d+(?:[.-]\d+)*$/.test(r)?r.split(/[.-]/).map(t=>Number(t)):null}function Be(e,n){let r=oe(e),t=oe(n);if(!r||!t)return null;let o=Math.max(r.length,t.length);for(let i=0;i<o;i+=1){let s=r[i]??0,a=t[i]??0;if(s>a)return 1;if(s<a)return-1}return 0}function er(e,n){if(e==null)return{kind:"pm_min_version",status:"absent",allowed:!0,required:"",current:n};let r=Qn(e);if(typeof e!="string"||r.trim().length===0)return{kind:"pm_min_version",status:"invalid",allowed:!1,required:r,current:n};if(!oe(r))return{kind:"pm_min_version",status:"invalid",allowed:!1,required:r,current:n};if(n===null)return{kind:"pm_min_version",status:"unchecked",allowed:!0,required:r,current:null};let t=Be(n,r);return t===null?{kind:"pm_min_version",status:"unchecked",allowed:!0,required:r,current:n}:t<0?{kind:"pm_min_version",status:"unmet",allowed:!1,required:r,current:n}:{kind:"pm_min_version",status:"ok",allowed:!0,required:r,current:n}}function nr(e,n,r){if(e==null)return{kind:"pm_max_version",status:"absent",allowed:!0,required:"",current:n};let t=Qn(e);if(typeof e!="string"||t.trim().length===0)return{kind:"pm_max_version",status:"invalid",allowed:!1,required:t,current:n};if(/^[<>=~^]/.test(t.trim())||!oe(t))return{kind:"pm_max_version",status:"invalid",allowed:!1,required:t,current:n};if(n===null)return{kind:"pm_max_version",status:"unchecked",allowed:!0,required:t,current:null};let o=Be(n,t);return o===null?{kind:"pm_max_version",status:"unchecked",allowed:!0,required:t,current:n}:o>0?r==="warn"?{kind:"pm_max_version",status:"exceeded_warn",allowed:!0,required:t,current:n}:{kind:"pm_max_version",status:"exceeded",allowed:!1,required:t,current:n}:{kind:"pm_max_version",status:"ok",allowed:!0,required:t,current:n}}import*as E from"node:fs/promises";import Ee from"node:path";import Xt from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5aef9dc6-948a-5c82-9e3c-2f85fef46beb")}catch{}})();var Jt=[10,25,50,100];async function rr(e){await E.mkdir(e,{recursive:!0})}async function ie(e){try{return await E.access(e),!0}catch{return!1}}function tr(e){return W(e,"ENOENT")||W(e,"ENOTDIR")}async function or(e){try{return await E.readFile(e,"utf8")}catch(n){if(tr(n))return null;throw n}}async function ir(e,n){let r=Ee.dirname(e);await rr(r);let t=Ee.join(r,`.${Ee.basename(e)}.${process.pid}.${Date.now()}.${Xt.randomBytes(4).toString("hex")}.tmp`);await E.writeFile(t,n,"utf8");try{await E.rename(t,e)}catch(o){if(process.platform==="win32"&&(W(o,"EPERM")||W(o,"EBUSY"))){let i=o;for(let s of Jt){await new Promise(a=>setTimeout(a,s));try{await E.rename(t,e);return}catch(a){if(i=a,!W(a,"EPERM")&&!W(a,"EBUSY"))break}}try{await E.unlink(t)}catch{}throw i}if(W(o,"EXDEV")){try{await E.copyFile(t,e)}finally{try{await E.unlink(t)}catch{}}return}try{await E.unlink(t)}catch{}throw o}}async function Fa(e,n){let r=Ee.dirname(e);await rr(r);let t=await E.open(e,"a");try{await t.writeFile(`${n}
|
|
2
|
+
`,"utf8")}finally{await t.close()}}async function Ma(e){try{await E.unlink(e)}catch(n){if(!tr(n))throw n}}function W(e,n){return typeof e=="object"&&e!==null&&"code"in e&&e.code===n}import sr from"path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="624aced5-552c-5354-9e34-b96e267d34d1")}catch{}})();function He(e,n){let r=sr.relative(e,n);return r.length===0?!0:!r.startsWith("..")&&!sr.isAbsolute(r)}import Y from"node:fs";import F from"node:path";import{fileURLToPath as Zt}from"node:url";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="dffcc28d-16a3-53d4-ba02-5298ae7a6d63")}catch{}})();var Qt="@unbrained/pm-cli";function eo(e){try{return JSON.parse(Y.readFileSync(e,"utf8")).name===Qt}catch{return!1}}function no(e){let n=Y.existsSync(e)&&Y.statSync(e).isDirectory()?F.resolve(e):F.dirname(F.resolve(e));for(;;){let r=F.join(n,"package.json");if(Y.existsSync(r)&&eo(r))return n;let t=F.dirname(n);if(t===n)return;n=t}}function Ge(e,n=[]){let r=Zt(e),t=no(r);return t||F.resolve(F.dirname(r),...n)}function Wa(e,n=[]){try{let r=F.join(Ge(e,n),"package.json");if(!Y.existsSync(r))return;let t=JSON.parse(Y.readFileSync(r,"utf8"));return typeof t.version=="string"&&t.version.trim().length>0?t.version:void 0}catch{return}}import so from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="815165a9-27a7-5933-adae-c7e55330c8e4")}catch{}})();function M(e){return[...new Set((e??[]).map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r))}function ro(e){let n=e.key.trim();if(n.length===0)return null;let r=M(e.aliases),t=e.description?.trim();return{key:n,values:M(e.values),required:e.required===!0?!0:void 0,aliases:r.length>0?r:void 0,description:t&&t.length>0?t:void 0}}var to=e=>e,lr=e=>{let n=e.trim().toLowerCase();return n==="create"||n==="update"?n:null};function oo(e,n){let r=n(e.command);if(r===null)return null;let t=e.option.trim();return t.length===0?null:{command:r,option:t,required:e.required,visible:e.visible,enabled:e.enabled}}function io(e,n){let r=new Map;for(let t of e??[]){let o=oo(t,n);o&&r.set(`${o.command}:${o.option.toLowerCase()}`,o)}return[...r.values()].sort((t,o)=>t.command===o.command?t.option.localeCompare(o.option):t.command.localeCompare(o.command))}function ar(e,n){return n?M(e):void 0}function Ye(e){let n=e?.trim();return n&&n.length>0?n:void 0}function cr(e,n={}){let r=n.resolvePolicyCommand??to,t=e.name.trim();if(t.length===0)return null;let o=e.required_create_fields!==void 0,i=e.required_create_repeatables!==void 0,s=e.options!==void 0,a=e.command_option_policies!==void 0,l=M(e.aliases),c=(e.options??[]).map(u=>ro(u)).filter(u=>u!==null).sort((u,m)=>u.key.localeCompare(m.key)),d=io(e.command_option_policies,r);return{name:t,description:Ye(e.description),default_status:Ye(e.default_status),folder:Ye(e.folder),aliases:l.length>0?l:void 0,required_create_fields:ar(e.required_create_fields,o),required_create_repeatables:ar(e.required_create_repeatables,i),options:s?c:void 0,command_option_policies:a?d:void 0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="88b2ed4e-b5fd-5014-abf1-c163db033abf")}catch{}})();var ao=["title","description","status","priority","tags","body","deadline","estimatedMinutes","acceptanceCriteria","author","message","assignee"],lo=["dep","comment","note","learning","file","test","doc"],ur=["deadline","estimatedMinutes","acceptanceCriteria","definitionOfReady","order","goal","objective","value","impact","outcome","whyNow","assignee","parent","reviewer","risk","confidence","sprint","release","blockedBy","blockedReason","unblockNote","reporter","severity","environment","reproSteps","resolution","expectedResult","actualResult","affectedVersion","fixedVersion","component","regression","customerImpact"],co=["title","description","type","status","priority","tags","body",...ur,"author","message","dep","comment","note","learning","file","test","doc","reminder","event","typeOption","field"],uo=["title","description","body","status","closeReason","priority","type","tags",...ur,"author","message","comment","note","learning","file","test","doc","reminder","event","typeOption","field","ownershipMetadataBypass","ownershipDependencyBypass","force"],fr={"close-reason":"closeReason",close_reason:"closeReason","estimated-minutes":"estimatedMinutes",estimated_minutes:"estimatedMinutes",estimate:"estimatedMinutes","acceptance-criteria":"acceptanceCriteria",acceptance_criteria:"acceptanceCriteria",ac:"acceptanceCriteria","definition-of-ready":"definitionOfReady",definition_of_ready:"definitionOfReady",rank:"order","why-now":"whyNow",why_now:"whyNow","blocked-by":"blockedBy",blocked_by:"blockedBy","blocked-reason":"blockedReason",blocked_reason:"blockedReason","unblock-note":"unblockNote",unblock_note:"unblockNote","repro-steps":"reproSteps",repro_steps:"reproSteps","expected-result":"expectedResult",expected_result:"expectedResult","actual-result":"actualResult",actual_result:"actualResult","affected-version":"affectedVersion",affected_version:"affectedVersion","fixed-version":"fixedVersion",fixed_version:"fixedVersion","customer-impact":"customerImpact",customer_impact:"customerImpact","type-option":"typeOption",type_option:"typeOption",type_options:"typeOption"},fo={...fr},mo={...fr},mr=[["deadline","--deadline"],["estimatedMinutes","--estimate/--estimated-minutes"],["acceptanceCriteria","--acceptance-criteria/--ac"],["definitionOfReady","--definition-of-ready"],["order","--order/--rank"],["goal","--goal"],["objective","--objective"],["value","--value"],["impact","--impact"],["outcome","--outcome"],["whyNow","--why-now"],["assignee","--assignee"],["parent","--parent"],["reviewer","--reviewer"],["risk","--risk"],["confidence","--confidence"],["sprint","--sprint"],["release","--release"],["blockedBy","--blocked-by"],["blockedReason","--blocked-reason"],["unblockNote","--unblock-note"],["reporter","--reporter"],["severity","--severity"],["environment","--environment"],["reproSteps","--repro-steps"],["resolution","--resolution"],["expectedResult","--expected-result"],["actualResult","--actual-result"],["affectedVersion","--affected-version"],["fixedVersion","--fixed-version"],["component","--component"],["regression","--regression"],["customerImpact","--customer-impact"]],pr=[["comment","--comment"],["note","--note"],["learning","--learning"],["file","--file"],["test","--test"],["doc","--doc"],["reminder","--reminder"],["event","--event"],["typeOption","--type-option"]];function gr(e){return Object.fromEntries(e)}var po=gr([["title","--title"],["description","--description"],["type","--type"],["status","--status"],["priority","--priority"],["tags","--tags"],["body","--body"],...mr,["author","--author"],["message","--message"],["dep","--dep"],...pr]),go=gr([["title","--title"],["description","--description"],["body","--body"],["status","--status"],["closeReason","--close-reason"],["priority","--priority"],["type","--type"],["tags","--tags"],...mr,...pr,["author","--author"],["message","--message"],["force","--force"]]);function ho(e){return e.trim().replace(/^--+/,"").toLowerCase()}function yo(e){return e==="create"?co:uo}function _o(e){return e==="create"?fo:mo}function hr(e,n){let r=ho(n);if(r.length===0)return;let t=_o(e)[r];return t||yo(e).find(o=>o.toLowerCase()===r)}function Ja(e,n){return(e==="create"?po:go)[n]??`--${n.replace(/([A-Z])/g,"-$1").toLowerCase()}`}function Je(e){let n=bo(e);return n.length===0?"items":n.endsWith("s")?n:`${n}s`}function wo(e){let n=e.trim(),t=n.replaceAll("\\","/").replace(/^\/+/,""),o=so.posix.normalize(t);if(n.includes("\0")||/^[A-Za-z]:/.test(o)||o==="."||o===".."||o.startsWith("../"))throw new Error(`Item type folder "${e}" must stay inside the pm tracker root.`);return o}function bo(e){let n=e.trim().toLowerCase(),r="",t=!1;for(let o of n){let i=o.charCodeAt(0),s=i>=97&&i<=122,a=i>=48&&i<=57;if(s||a){t&&r.length>0&&(r+="-"),r+=o,t=!1;continue}r.length>0&&(t=!0)}return r}function vo(e){return cr(e,{resolvePolicyCommand:lr})}function se(e,n){let r=e[n];return Array.isArray(r)?r.filter(t=>typeof t=="string"):void 0}function Eo(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let n=e;return typeof n.key!="string"?null:{key:n.key,values:se(n,"values")??[],required:n.required===void 0?void 0:!!n.required,aliases:se(n,"aliases"),description:typeof n.description=="string"?n.description:void 0}}function ko(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let n=e;if(typeof n.command!="string"||typeof n.option!="string")return null;let r=n.command.trim().toLowerCase();return r!=="create"&&r!=="update"?null:{command:r,option:n.option,required:n.required===void 0?void 0:!!n.required,visible:n.visible===void 0?void 0:!!n.visible,enabled:n.enabled===void 0?void 0:!!n.enabled}}function xo(e){if(Array.isArray(e.options))return e.options.map(n=>Eo(n)).filter(n=>n!==null)}function So(e){if(Array.isArray(e.command_option_policies))return e.command_option_policies.map(n=>ko(n)).filter(n=>n!==null)}function Co(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let n=e,r=typeof n.name=="string"?n.name:"";if(r.trim().length===0)return null;let t=typeof n.folder=="string"?n.folder:void 0,o=typeof n.description=="string"?n.description:void 0,i=typeof n.default_status=="string"?n.default_status:void 0;return{name:r,description:o,default_status:i,folder:t,aliases:se(n,"aliases"),required_create_fields:se(n,"required_create_fields"),required_create_repeatables:se(n,"required_create_repeatables"),options:xo(n),command_option_policies:So(n)}}function To(e,n){return e.required_create_fields?M(e.required_create_fields):n?.required_create_fields??[]}function Io(e,n){return e.required_create_repeatables?M(e.required_create_repeatables):n?.required_create_repeatables??[]}function Ao(e,n){return e.options?e.options:n?.options?[...n.options]:[]}function $o(e,n){return e.command_option_policies?e.command_option_policies:n?.command_option_policies?[...n.command_option_policies]:[]}function Ro(e,n){let r=n?.name??e.name,t=e.description??n?.description,o=e.default_status??n?.default_status,i=wo(e.folder??n?.folder??Je(r)),s={name:r,folder:i,aliases:M([...n?.aliases??[],...e.aliases??[]]),required_create_fields:To(e,n),required_create_repeatables:Io(e,n),options:Ao(e,n),command_option_policies:$o(e,n)};return t&&(s.description=t),o&&(s.default_status=o),s}function dr(e,n){for(let r of e){let t=vo(r);if(!t)continue;let o=t.name.toLowerCase(),i=n.get(o);n.set(o,Ro(t,i))}}function Po(e){if(!e)return[];let n=[];for(let r of e.item_types??[]){let t=r.types;if(Array.isArray(t))for(let o of t){let i=Co(o);i&&n.push(i)}}return n}function Za(e,n=null){let r=new Map;for(let l of Tn)r.set(l.toLowerCase(),{name:l,folder:ne[l],aliases:[],required_create_fields:[...ao],required_create_repeatables:[...lo],options:[],command_option_policies:[]});dr(e.item_types?.definitions??[],r),dr(Po(n),r);let t=[...r.values()].sort((l,c)=>l.name.localeCompare(c.name)),o={},i={},s={};for(let l of t){o[l.name]=l,s[l.name]=l.folder,i[l.name.toLowerCase()]=l.name;for(let c of l.aliases)i[c.toLowerCase()]=l.name}let a=[...new Set(t.map(l=>l.folder))].sort((l,c)=>l.localeCompare(c));return{types:t.map(l=>l.name),folders:a,type_to_folder:s,by_type:o,alias_to_type:i}}function Oo(e,n){if(e!==void 0)return n.alias_to_type[e.trim().toLowerCase()]}function Do(e,n){let r=Oo(e,n);if(r)return n.by_type[r]}function No(e,n,r,t){for(let o of t){let i=hr(r,o);if(i){e.required.add(i);continue}e.errors.push(`Unsupported base required option "${o}" for command "${r}" on type "${n.name}"`)}}function Xe(e,n,r){if(r){e.add(n);return}e.delete(n)}function Fo(e,n,r,t){let o=hr(r,t.option);if(!o){e.errors.push(`Unsupported command_option_policies option "${t.option}" for command "${r}" on type "${n.name}"`);return}t.required!==void 0&&Xe(e.required,o,t.required),t.visible!==void 0&&Xe(e.hidden,o,!t.visible),t.enabled!==void 0&&Xe(e.disabled,o,!t.enabled)}function Mo(e,n,r){for(let t of n.command_option_policies)t.command===r&&Fo(e,n,r,t)}function zo(e,n,r){for(let t of e.required)e.disabled.has(t)&&e.errors.push(`Option "${t}" cannot be both required and disabled for command "${r}" on type "${n.name}"`)}function Qa(e,n,r){let t=[],o=new Set,i=new Set,s=new Set,a={required:o,hidden:i,disabled:s,errors:t};return No(a,e,n,r),Mo(a,e,n),zo(a,e,n),{required:[...o],hidden:[...i].sort((l,c)=>l.localeCompare(c)),disabled:[...s].sort((l,c)=>l.localeCompare(c)),errors:t}}function jo(e){let n=new Map;for(let r of e.options){n.set(r.key.toLowerCase(),r);for(let t of r.aliases??[])n.set(t.toLowerCase(),r)}return n}function Lo(e,n,r){let t=e.values;if(t.length===0)return n;let i=new Map(t.map(s=>[s.toLowerCase(),s])).get(n.toLowerCase());if(!i){r.push(`Invalid value "${n}" for type option "${e.key}". Allowed: ${t.join(", ")}`);return}return i}function el(e,n,r){let t=Do(e,r);if(!t)return{normalized:void 0,errors:[`Unknown type "${e}"`]};let o=[],i=jo(t),s={};for(let[l,c]of Object.entries(n??{})){let d=l.trim(),u=c.trim();if(d.length===0){o.push("type option keys must not be empty");continue}if(u.length===0){o.push(`type option "${d}" must not be empty`);continue}let m=i.get(d.toLowerCase());if(!m){let h=t.options.map(p=>p.key).join(", ");o.push(t.options.length>0?`Unknown type option "${d}" for type "${t.name}". Allowed: ${h}`:`Type "${t.name}" does not define any configurable type options`);continue}let f=Lo(m,u,o);f!==void 0&&(s[m.key]=f)}for(let l of t.options)l.required&&!(l.key in s)&&o.push(`Missing required type option "${l.key}" for type "${t.name}"`);let a=Object.keys(s).sort((l,c)=>l.localeCompare(c));return a.length===0?{normalized:void 0,errors:o}:{normalized:Object.fromEntries(a.map(l=>[l,s[l]])),errors:o}}import{readFileSync as qo,readdirSync as tl,statSync as Vo}from"node:fs";import Uo from"node:os";import b from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c155ccd1-cf4c-57fd-9d0e-5274eb29a764")}catch{}})();var Wo={json_markdown:".md",toon:".toon"},Ko={".md":"json_markdown",".toon":"toon"};var ll=[".md",".toon"];function ke(e){try{return Vo(e),!0}catch{return!1}}function Bo(e){try{let n=JSON.parse(qo(e,"utf8"));return typeof n!="object"||n===null||Array.isArray(n)?!1:"id_prefix"in n||"item_format"in n}catch{return!1}}function Ho(e){let n=b.resolve(e);for(;;){let r=b.join(n,me),t=b.join(r,pe);if(ke(t))return r;let o=b.join(n,pe);if(ke(o)&&Bo(o))return n;let i=b.dirname(n);if(i===n)return;n=i}}function Go(e){return Ho(e)??b.resolve(e,me)}function cl(e,n){let r=process.env.PM_PATH,t=n?.trim()||r?.trim();if(t){let o=b.resolve(e,t);if(!ke(yr(o))){let i=b.join(o,me);if(ke(yr(i)))return i}return o}return Go(e)}function dl(e){let n=b.resolve(e),r=b.dirname(n);return b.basename(n)==="pm"&&b.basename(r)===".agents"?b.dirname(r):n}function _r(e){let n=process.env.PM_GLOBAL_PATH?.trim(),r=n&&n.length>0?n:b.join(Uo.homedir(),".pm-cli");return b.resolve(e,r)}function yr(e){return b.join(e,pe)}function Yo(e,n,r=ne){let t=r[n]??Je(n);return b.join(e,t)}function ul(e,n,r,t="toon",o=ne){return b.join(Yo(e,n,o),`${r}${Wo[t]}`)}function fl(e){let n=e.replaceAll("\\","/"),r=b.posix.extname(n).toLowerCase();return Ko[r]??null}function ml(e,n){return b.join(e,"history",`${n}.jsonl`)}function pl(e,n){return b.join(e,"locks",`${n}.lock`)}function gl(e){return b.join(e,"runtime")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c29511ab-8c01-57f2-b353-cbc72900cb90")}catch{}})();function Xo(e){if(typeof e!="string")return null;let n=e.trim();return n.length>0?n:null}function yl(e){return Xo(e)??void 0}function _l(e){let n=e.length;for(;n>0&&e.charCodeAt(n-1)===47;)n-=1;return n===e.length?e:e.slice(0,n)}function wl(e){return Array.isArray(e)&&e.every(n=>typeof n=="number"&&Number.isFinite(n))}function bl(e){if(e instanceof Error){let n=e.message.trim();return n.length>0?n:e.name}return String(e)}function br(e){let n=typeof e=="number"?e:typeof e=="string"&&e.trim().length>0?Number(e.trim()):Number.NaN;return Number.isFinite(n)?n:null}function vl(e){let n=br(e);return n===null||n<=0||!Number.isInteger(n)?null:n}function El(e,n,r){let t=br(e);return t===null||t<n||t>r?null:t}function X(e){return typeof e!="object"||e===null?null:e}function wr(e){return typeof e!="object"&&typeof e!="function"||e===null?null:e}function vr(e){let n=wr(e);if(!n)return null;if(typeof n.activate=="function")return n;let r=wr(n.default);return typeof r?.activate=="function"?r:null}function kl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?{...e}:{}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8a7dca67-8f1e-5451-b45c-4a75b1117d72")}catch{}})();var Jo=Object.freeze({string:"string",number:"number",int:"number",integer:"number",float:"number",boolean:"boolean",bool:"boolean"});function Er(e){return typeof e!="string"?null:Jo[e.trim().toLowerCase()]??null}function kr(e){let n=[],r=t=>{if(Array.isArray(t)){for(let o of t)r(o);return}if(typeof t=="string"){for(let o of t.split(",")){let i=o.trim();i.length>0&&n.push(i)}return}t!=null&&n.push(t)};return r(e),n}function xr(e,n){return n==="string"?!0:n==="number"?typeof e=="number"?Number.isFinite(e):typeof e=="string"&&e.trim().length>0&&Number.isFinite(Number(e)):typeof e=="boolean"?!0:typeof e=="string"&&["true","false","1","0"].includes(e.trim().toLowerCase())}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="baa8b608-7f1e-5382-abe3-b1af79e46da4")}catch{}})();function Ze(){return{beforeCommand:[],beforeMutation:[],afterCommand:[],onWrite:[],onRead:[],onIndex:[]}}function Qe(){return{overrides:[],handlers:[]}}function en(){return{overrides:[]}}function nn(){return{overrides:[]}}function rn(){return{overrides:[]}}function tn(){return{overrides:[]}}function on(){return{commands:[],flags:[],item_fields:[],item_types:[],relationship_kinds:[],migrations:[],profiles:[],importers:[],exporters:[],search_providers:[],vector_store_adapters:[]}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ac377139-8ce2-58ad-8005-0ac907a9baed")}catch{}})();var Zo=5e3;async function sn(e,n,r){let t=[];for(let o of e)try{await o.run(k(r))}catch{t.push(`extension_hook_failed:${o.layer}:${o.name}:${n}`)}return t}function Qo(e,n,r){if(e===void 0)return;if(typeof e!="object"||e===null||!("allow"in e)||e.allow!==!0&&e.allow!==!1)throw new x(`Extension mutation guard ${n.name} returned an invalid decision.`,S.CONFLICT,{code:"extension_mutation_guard_invalid_decision",reason:`${n.layer}:${n.name}`,nextSteps:["Return { allow: true } or a structured denial from the guard."]});if(e.allow)return;let t=e,o=typeof t.code=="string"?t.code.trim():"",i=typeof t.remediation=="string"?t.remediation.trim():"";if(o.length===0||i.length===0)throw new x(`Extension mutation guard ${n.name} returned an invalid denial.`,S.CONFLICT,{code:"extension_mutation_guard_invalid_denial",reason:`${n.layer}:${n.name}`,nextSteps:["Return non-empty code and remediation fields from the guard."]});let s=typeof t.message=="string"?t.message.trim():"";throw new x(s||`Extension mutation guard ${n.name} denied ${r}.`,S.CONFLICT,{code:o,reason:`${n.layer}:${n.name}`,nextSteps:[i]})}async function ei(e,n){for(let r of e.beforeMutation??[]){let t,o;try{let i=Promise.resolve().then(()=>r.run({pm_root:n.pm_root,operation:n.operation,before:n.before===null?null:k(n.before),after:n.after===null?null:k(n.after),changed_fields:[...n.changed_fields],sdk:n.sdk}));i.catch(()=>{}),t=await Promise.race([i,new Promise((s,a)=>{o=setTimeout(()=>{a(new x(`Extension mutation guard ${r.name} timed out before ${n.operation}.`,S.CONFLICT,{code:"extension_mutation_guard_timed_out",reason:`${r.layer}:${r.name}`,nextSteps:["Fix or disable the stalled extension guard, then retry the mutation."]}))},Zo),o.unref?.()})])}catch(i){throw i instanceof x?i:new x(`Extension mutation guard ${r.name} failed before ${n.operation}.`,S.CONFLICT,{code:"extension_mutation_guard_failed",reason:`${r.layer}:${r.name}`,nextSteps:["Fix or disable the failing extension guard, then retry the mutation."]})}finally{clearTimeout(o)}Qo(t,r,n.operation)}}async function ni(e,n){return sn(e.onWrite,"onWrite",n)}async function ri(e,n){return sn(e.onRead,"onRead",n)}async function ti(e,n){return sn(e.onIndex,"onIndex",n)}function oi(e){let n="";e instanceof Error&&typeof e.message=="string"?n=e.message:typeof e=="string"?n=e:typeof e=="object"&&e!==null&&typeof e.message=="string"&&(n=e.message);let r=n.replace(/\s+/gu," ").trim();if(r.length===0)return"";let t=300;return r.length>t?`${r.slice(0,t-1)}\u2026`:r}function xe(e,n){if(typeof e!="object"||e===null||typeof e[n]!="string")return;let r=String(e[n]).replace(/\s+/gu," ").trim();return r.length>0?r.slice(0,300):void 0}function ii(e){if(typeof e!="object"||e===null||!Object.hasOwn(e,"exit_code"))return;let n=e.exit_code;if(typeof n!="number"||!Number.isInteger(n)||n<1||n>255)throw new TypeError("Extension command result exit_code must be an integer from 1 to 255.");return n}async function si(e,n){let r=v(n.command);if(r.length===0)return{handled:!1,result:null,warnings:[]};let t=[...e.handlers].reverse().find(o=>o.command===r);if(!t)return{handled:!1,result:null,warnings:[]};try{let o=await t.run({command:r,args:k(n.args),options:k(n.options),global:k(n.global),pm_root:n.pm_root,source_workspace_root:n.source_workspace_root,repo_root:n.repo_root,pm_root_rel:n.pm_root_rel,...n.sdk===void 0?{}:{sdk:n.sdk}});return{handled:!0,result:o,warnings:[],...Object.fromEntries([["exitCode",ii(o)],["errorCode",xe(o,"code")],["remediation",xe(o,"remediation")]].filter(i=>i[1]!==void 0))}}catch(o){let i=typeof o=="object"&&o!==null&&"exitCode"in o?o.exitCode:void 0;if(typeof i=="number"&&Number.isFinite(i))throw o;return{handled:!1,result:null,warnings:[`extension_command_handler_failed:${t.layer}:${t.name}:${t.command}`],errorMessage:oi(o),...Object.fromEntries([["errorCode",xe(o,"code")],["remediation",xe(o,"remediation")]].filter(s=>s[1]!==void 0))}}}function Sr(e){return{handled:!1,result:e.payload,warnings:[]}}function Cr(e,n){return[...e.overrides].reverse().filter(r=>r.service===n)}function Tr(e){return{service:e.service,command:e.command?v(e.command):void 0,args:e.args?k(e.args):void 0,options:e.options?qn(e.options):void 0,global:e.global?Vn(e.global):void 0,pm_root:e.pm_root,source_workspace_root:e.source_workspace_root,repo_root:e.repo_root,pm_root_rel:e.pm_root_rel,payload:k(e.payload)}}function ai(e){if(typeof e!="object"||e===null||!Object.hasOwn(e,"handled"))return!1;let n=e.handled;return n===!0?Object.hasOwn(e,"result"):n===!1&&Reflect.ownKeys(e).length===1}function Ir(e,n){return ai(e)?e.handled?{handled:!0,result:e.result}:{handled:!1,result:n.payload}:n.service==="output_format"&&e==null?{handled:!1,result:n.payload}:{handled:!0,result:e}}function Ar(e,n,r){return n.service==="output_format"&&typeof e=="object"&&e!==null&&Nn(e,r.payload)}function li(e,n){let r=Cr(e,n.service);if(r.length===0)return Sr(n);let t=[];for(let o of r)try{let i=Tr(n),s=o.run(i);if(s instanceof Promise){t.push(`extension_service_override_async_unsupported:${o.layer}:${o.name}:${o.service}`);continue}if(Ar(s,n,i)){t.push(`extension_output_format_payload_echo_deprecated:${o.layer}:${o.name}`);continue}let a=Ir(s,n);if(!a.handled)continue;return{handled:!0,result:a.result,warnings:t}}catch{t.push(`extension_service_override_failed:${o.layer}:${o.name}:${o.service}`)}return{handled:!1,result:n.payload,warnings:t}}async function ci(e,n){let r=Cr(e,n.service);if(r.length===0)return Sr(n);let t=[];for(let o of r)try{let i=Tr(n),s=await Promise.resolve(o.run(i));if(Ar(s,n,i)){t.push(`extension_output_format_payload_echo_deprecated:${o.layer}:${o.name}`);continue}let a=Ir(s,n);if(!a.handled)continue;return{handled:!0,result:a.result,warnings:t}}catch{t.push(`extension_service_override_failed:${o.layer}:${o.name}:${o.service}`)}return{handled:!1,result:n.payload,warnings:t}}import G from"node:fs/promises";import H from"node:path";import{pathToFileURL as xi}from"node:url";import di from"node:fs/promises";import ae from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e81790e9-3de2-5639-a84d-2c4714afbbf4")}catch{}})();async function $r(e,n){let r=ae.dirname(n.manifest_path),t=ae.relative(r,n.entry_path);if(t.startsWith("..")||ae.isAbsolute(t))throw new Error(`Cannot snapshot extension entry outside its package directory: ${n.entry_path}`);let o=ae.join(e,`${n.layer}-${n.directory.replace(/[^a-zA-Z0-9._-]/gu,"_")}`);return await di.cp(r,o,{recursive:!0,force:!0}),ae.join(o,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1558713a-91ea-5eef-8426-d910e0b77045")}catch{}})();function Rr(e){let n={beforeCommand:e.hooks.beforeCommand.length,beforeMutation:e.hooks.beforeMutation.length,afterCommand:e.hooks.afterCommand.length,onWrite:e.hooks.onWrite.length,onRead:e.hooks.onRead.length,onIndex:e.hooks.onIndex.length,commandOverrides:e.commands.overrides.length,commandHandlers:e.commands.handlers.length,parserOverrides:e.parsers.overrides.length,preflightOverrides:e.preflight.overrides.length,serviceOverrides:e.services.overrides.length,rendererOverrides:e.renderers.overrides.length,registrations:Object.fromEntries(Object.entries(e.registrations).map(([r,t])=>[r,t.length]))};return()=>{e.hooks.beforeCommand.length=n.beforeCommand,e.hooks.beforeMutation.length=n.beforeMutation,e.hooks.afterCommand.length=n.afterCommand,e.hooks.onWrite.length=n.onWrite,e.hooks.onRead.length=n.onRead,e.hooks.onIndex.length=n.onIndex,e.commands.overrides.length=n.commandOverrides,e.commands.handlers.length=n.commandHandlers,e.parsers.overrides.length=n.parserOverrides,e.preflight.overrides.length=n.preflightOverrides,e.services.overrides.length=n.serviceOverrides,e.renderers.overrides.length=n.rendererOverrides;for(let[r,t]of Object.entries(n.registrations))e.registrations[r].length=t}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="065f61c6-2123-5a6d-984a-569bb14d6911")}catch{}})();function Pr(e){let n=typeof e=="function"?e:e.run;if(typeof n!="function")throw new TypeError("registerPreflight override requires a function handler");let r=[...new Set((typeof e=="function"?[]:e.commands??[]).map(t=>{if(typeof t!="string"||t.trim().length===0)throw new TypeError("registerPreflight ownership.commands must contain non-empty command paths");return v(t)}))];return{run:n,...r.length>0?{commands:r}:{}}}function Or(e){let n=[];for(let r=1;r<e.overrides.length;r+=1){let t=e.overrides[r];for(let o of e.overrides.slice(0,r))t.commands?.length&&o.commands?.length&&!o.commands.some(i=>t.commands.includes(i))||n.push(`extension_preflight_override_collision:${t.layer}:${t.name}:${o.layer}:${o.name}`)}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="dc9a3977-a78a-501e-b600-45e7031dcebd")}catch{}})();function O(e,n){if(typeof n!="object"||n===null||Array.isArray(n))throw new TypeError(`${e} requires an object definition`);return n}function T(e,n){if(n!==void 0&&typeof n!="boolean")throw new TypeError(`${e} must be a boolean when provided`)}function C(e,n){if(n!==void 0&&(typeof n!="string"||n.trim().length===0))throw new TypeError(`${e} must be a non-empty string when provided`)}function Dr(e,n){if(n===void 0)return;let r=t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean";if(Array.isArray(n)){for(let[t,o]of n.entries())if(!r(o))throw new TypeError(`${e}[${t}] must be a string, number, or boolean`);return}if(!r(n))throw new TypeError(`${e} must be a string, number, or boolean, or an array of these when provided`)}function K(e,n){if(n!==void 0){if(!Array.isArray(n))throw new TypeError(`${e} must be an array of non-empty strings when provided`);for(let[r,t]of n.entries())if(typeof t!="string"||t.trim().length===0)throw new TypeError(`${e}[${r}] must be a non-empty string`)}}function le(e,n){if(K(e,n),!Array.isArray(n))return[];let r=[],t=new Set;for(let o of n){let i=o.trim();i.length===0||t.has(i)||(t.add(i),r.push(i))}return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="45d00ef3-870c-5f3f-89c1-6abd54c518fe")}catch{}})();function Nr(e){C("registerCommand definition.action",e.action),C("registerCommand definition.description",e.description),C("registerCommand definition.intent",e.intent),C("registerCommand definition.tier",e.tier);let n=e.tier;if(n!==void 0&&n!=="core"&&n!=="standard"&&n!=="full"&&n!=="internal")throw new Error("registerCommand definition.tier must be core, standard, full, or internal")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="24383c0a-592e-5105-84a3-a6cfb7801281")}catch{}})();function A(e){return typeof e!="string"?"":e.trim().toLowerCase()}function y(e){return new Set((e??[]).map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))}function ui(e){let n=e.trim().toLowerCase();if(n.length===0)return"";let r=n.split(/[.:/]/).map(t=>t.replace(/[\s_-]+/g,"")).filter(t=>t.length>0);return r.length===0?"":r.length===1?r[0]:`${r[0]}.${r.slice(1).join("")}`}function J(e){return new Set((e??[]).map(n=>ui(n)).filter(n=>n.length>0))}function Fr(e){let n=A(e);return vn.includes(n)?n:"off"}function Mr(e){let n=A(e);return En.includes(n)?n:"off"}function ce(e){let n=A(e);return kn.includes(n)?n:"none"}function an(e){if(typeof e!="string")return;let n=e.trim().toLowerCase();return xn.includes(n)?n:void 0}function zr(e){if(typeof e=="string"){let n=an(e)??"block";return{global:n,project:n}}return typeof e=="object"&&e!==null&&!Array.isArray(e)?{global:an(e.global)??"block",project:an(e.project)??"block"}:{global:"block",project:"block"}}function fi(e){return e.global===e.project?e.global:{global:e.global,project:e.project}}function _(e){return[...new Set(e)].sort((n,r)=>n.localeCompare(r))}function mi(e){let n=A(e.name);return n.length===0?null:{name:n,normalized:{name:n,disabled:e.disabled===!0,requireTrusted:e.require_trusted===!0,requireProvenance:e.require_provenance===!0,sandboxProfile:e.sandbox_profile!==void 0?ce(e.sandbox_profile):void 0,allowedCapabilities:y(e.allowed_capabilities),blockedCapabilities:y(e.blocked_capabilities),allowedSurfaces:J(e.allowed_surfaces),blockedSurfaces:J(e.blocked_surfaces),allowedCommands:y(e.allowed_commands),blockedCommands:y(e.blocked_commands),allowedActions:y(e.allowed_actions),blockedActions:y(e.blocked_actions),allowedServices:y(e.allowed_services),blockedServices:y(e.blocked_services)}}}function jr(e){let n=new Map;for(let r of e??[]){let t=mi(r);t&&n.set(t.name,t.normalized)}return n}function pi(e){let n=[],r=[...e.overridesByName.values()].sort((o,i)=>o.name.localeCompare(i.name));for(let o of _([...e.allowedCapabilities,...e.blockedCapabilities]))N(o)||n.push(`extension_policy_unknown_capability:${o}`);for(let o of r)for(let i of _([...o.allowedCapabilities,...o.blockedCapabilities]))N(i)||n.push(`extension_policy_unknown_capability:${o.name}:${i}`);let t=new Set(Sn);for(let o of _([...e.allowedSurfaces,...e.blockedSurfaces]))t.has(o)||n.push(`extension_policy_unknown_surface:${o}`);for(let o of r)for(let i of _([...o.allowedSurfaces,...o.blockedSurfaces]))t.has(i)||n.push(`extension_policy_unknown_surface:${o.name}:${i}`);return[...new Set(n)].sort((o,i)=>o.localeCompare(i))}function Lr(e){let n=e.extensions?.policy??{},r=y(n.allowed_capabilities),t=y(n.blocked_capabilities),o=J(n.allowed_surfaces),i=J(n.blocked_surfaces),s=jr(n.extension_overrides);return{mode:Fr(n.mode),trustMode:Mr(n.trust_mode),pmMaxVersionExceededMode:zr(n.pm_max_version_exceeded_mode),requireProvenance:n.require_provenance===!0,trustedExtensions:y(n.trusted_extensions),defaultSandboxProfile:ce(n.default_sandbox_profile),allowedExtensions:y(n.allowed_extensions),blockedExtensions:y(n.blocked_extensions),allowedCapabilities:r,blockedCapabilities:t,allowedSurfaces:o,blockedSurfaces:i,allowedCommands:y(n.allowed_commands),blockedCommands:y(n.blocked_commands),allowedActions:y(n.allowed_actions),blockedActions:y(n.blocked_actions),allowedServices:y(n.allowed_services),blockedServices:y(n.blocked_services),overridesByName:s,warnings:pi({allowedCapabilities:r,blockedCapabilities:t,allowedSurfaces:o,blockedSurfaces:i,overridesByName:s})}}function qr(e){let n=[...e.overridesByName.values()].sort((r,t)=>r.name.localeCompare(t.name)).map(r=>({name:r.name,...r.disabled?{disabled:!0}:{},...r.requireTrusted?{require_trusted:!0}:{},...r.requireProvenance?{require_provenance:!0}:{},...r.sandboxProfile?{sandbox_profile:r.sandboxProfile}:{},...r.allowedCapabilities.size>0?{allowed_capabilities:_(r.allowedCapabilities)}:{},...r.blockedCapabilities.size>0?{blocked_capabilities:_(r.blockedCapabilities)}:{},...r.allowedSurfaces.size>0?{allowed_surfaces:_(r.allowedSurfaces)}:{},...r.blockedSurfaces.size>0?{blocked_surfaces:_(r.blockedSurfaces)}:{},...r.allowedCommands.size>0?{allowed_commands:_(r.allowedCommands)}:{},...r.blockedCommands.size>0?{blocked_commands:_(r.blockedCommands)}:{},...r.allowedActions.size>0?{allowed_actions:_(r.allowedActions)}:{},...r.blockedActions.size>0?{blocked_actions:_(r.blockedActions)}:{},...r.allowedServices.size>0?{allowed_services:_(r.allowedServices)}:{},...r.blockedServices.size>0?{blocked_services:_(r.blockedServices)}:{}}));return{mode:e.mode,trust_mode:e.trustMode,pm_max_version_exceeded_mode:fi(e.pmMaxVersionExceededMode),require_provenance:e.requireProvenance,trusted_extensions:_(e.trustedExtensions),default_sandbox_profile:e.defaultSandboxProfile,allowed_extensions:_(e.allowedExtensions),blocked_extensions:_(e.blockedExtensions),allowed_capabilities:_(e.allowedCapabilities),blocked_capabilities:_(e.blockedCapabilities),allowed_surfaces:_(e.allowedSurfaces),blocked_surfaces:_(e.blockedSurfaces),allowed_commands:_(e.allowedCommands),blocked_commands:_(e.blockedCommands),allowed_actions:_(e.allowedActions),blocked_actions:_(e.blockedActions),allowed_services:_(e.allowedServices),blocked_services:_(e.blockedServices),extension_overrides:n}}function Vr(e){let n=jr(e.extension_overrides);return{mode:Fr(e.mode),trustMode:Mr(e.trust_mode),pmMaxVersionExceededMode:zr(e.pm_max_version_exceeded_mode),requireProvenance:e.require_provenance===!0,trustedExtensions:y(e.trusted_extensions),defaultSandboxProfile:ce(e.default_sandbox_profile),allowedExtensions:y(e.allowed_extensions),blockedExtensions:y(e.blocked_extensions),allowedCapabilities:y(e.allowed_capabilities),blockedCapabilities:y(e.blocked_capabilities),allowedSurfaces:J(e.allowed_surfaces),blockedSurfaces:J(e.blocked_surfaces),allowedCommands:y(e.allowed_commands),blockedCommands:y(e.blocked_commands),allowedActions:y(e.allowed_actions),blockedActions:y(e.blocked_actions),allowedServices:y(e.allowed_services),blockedServices:y(e.blocked_services),overridesByName:n,warnings:[]}}function z(e,n){return e.overridesByName.get(A(n))??null}function Z(e,n,r,t,o){return n.has(r)?o:e.size>0&&!e.has(r)?t:null}function Ur(e,n,r){let t=r.trim().toLowerCase(),o=z(e,n.name),i=o&&o.allowedCapabilities.size>0?o.allowedCapabilities:e.allowedCapabilities,s=new Set([...e.blockedCapabilities,...o?o.blockedCapabilities:[]]);return Z(i,s,t,"capability_not_allowlisted","capability_blocked")}function gi(e,n,r){let t=z(e,n.name),o=t&&t.allowedSurfaces.size>0?t.allowedSurfaces:e.allowedSurfaces,i=new Set([...e.blockedSurfaces,...t?t.blockedSurfaces:[]]);return Z(o,i,r,"surface_not_allowlisted","surface_blocked")}function hi(e,n,r){let t=v(r);if(t.length===0)return null;let o=z(e,n.name),i=o&&o.allowedCommands.size>0?o.allowedCommands:e.allowedCommands,s=new Set([...e.blockedCommands,...o?o.blockedCommands:[]]);return Z(i,s,t,"command_not_allowlisted","command_blocked")}function yi(e,n,r){let t=A(r).replace(/\s+/g,"-");if(t.length===0)return null;let o=z(e,n.name),i=o&&o.allowedActions.size>0?o.allowedActions:e.allowedActions,s=new Set([...e.blockedActions,...o?o.blockedActions:[]]);return Z(i,s,t,"action_not_allowlisted","action_blocked")}function _i(e,n,r){let t=A(r);if(t.length===0)return null;let o=z(e,n.name),i=o&&o.allowedServices.size>0?o.allowedServices:e.allowedServices,s=new Set([...e.blockedServices,...o?o.blockedServices:[]]);return Z(i,s,t,"service_not_allowlisted","service_blocked")}function wi(e,n){let r=A(n.name);return z(e,n.name)?.disabled===!0?"extension_override_disabled":Z(e.allowedExtensions,e.blockedExtensions,r,"extension_not_allowlisted","extension_blocked")}function bi(e,n){if(e.trustMode==="off")return null;let r=z(e,n.name),t=A(n.name),o=n.trusted===!0,i=n.provenanceVerified===!0;return e.trustedExtensions.size>0&&!e.trustedExtensions.has(t)?"extension_not_trusted":(r?.requireTrusted===!0||e.trustMode==="warn"||e.trustMode==="enforce")&&!o?"extension_untrusted":(e.requireProvenance||r?.requireProvenance===!0)&&!i?"provenance_missing_or_unverified":null}function vi(e,n){if(e.mode==="off")return null;let t=z(e,n.name)?.sandboxProfile??n.sandboxProfile??e.defaultSandboxProfile;if(t==="none")return null;let o=n.permissions;if(!o)return"sandbox_permissions_missing";let i=s=>o[s]===!0;return t==="restricted"?i("process_spawn")?"sandbox_restricted_disallows_process_spawn":i("env_write")?"sandbox_restricted_disallows_env_write":null:i("process_spawn")?"sandbox_strict_disallows_process_spawn":i("network")?"sandbox_strict_disallows_network":i("fs_write")?"sandbox_strict_disallows_fs_write":i("env_write")?"sandbox_strict_disallows_env_write":null}function Se(e,n,r,t,o={}){let i=Object.entries(o).sort((a,l)=>a[0].localeCompare(l[0])).map(([a,l])=>`${a}=${l}`).join(":"),s=i.length>0?`:${i}`:"";return`extension_policy_${e}_${n}:${r.layer}:${r.name}:reason=${t}${s}`}function Wr(e,n){if(e.mode==="off"&&e.trustMode==="off")return{allowed:!0,warning:null};let r=[],t=wi(e,n);t&&r.push({reason:t,scope:"extension",mode:e.mode});let o=bi(e,n);o&&r.push({reason:o,scope:"trust",mode:e.trustMode});let i=vi(e,n);i&&r.push({reason:i,scope:"extension",mode:e.mode});let s=r.find(l=>l.mode==="enforce");if(s)return{allowed:!1,warning:Se("blocked",s.scope,n,s.reason)};let a=r.find(l=>l.mode==="warn");return a?{allowed:!0,warning:Se("violation",a.scope,n,a.reason)}:{allowed:!0,warning:null}}function Kr(e,n,r){if(e.mode==="off")return{allowed:!0,warning:null};let t=Ur(e,n,r);return t?{allowed:e.mode==="warn",warning:Se(e.mode==="warn"?"violation":"blocked","capability",n,t,{capability:r.trim().toLowerCase()})}:{allowed:!0,warning:null}}function Ei(e,n,r,t,o){let i=typeof t=="string"?Ur(e,n,t):null,s=gi(e,n,r),a=o.command?hi(e,n,o.command):null,l=o.action?yi(e,n,o.action):null,c=o.service?_i(e,n,o.service):null;return i??s??a??l??c}function ki(e,n,r,t){let o={method:A(e).replace(/\s+/g,"_"),surface:n};return r&&(o.capability=r),t.command&&(o.command=v(t.command)),t.action&&(o.action=A(t.action).replace(/\s+/g,"-")),t.service&&(o.service=A(t.service)),o}function Br(e,n,r,t,o,i){if(e.mode==="off")return{allowed:!0,warning:null};let s=i??{},a=Ei(e,n,r,o,s);if(!a)return{allowed:!0,warning:null};let l=Se(e.mode==="warn"?"violation":"blocked","registration",n,a,ki(t,r,o,s));return{allowed:e.mode==="warn",warning:l}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8725b7dd-ec6f-5c71-897a-7a84ce93f5f0")}catch{}})();function Hr(e){return!e.extensionReady||!e.enabledForLoad?null:{layer:e.layer,directory:e.directory,manifest_path:e.manifestPath,entry_path:e.entryPath,manifest:e.manifest,source_package:e.sourceIdentity?.package_name,source_aliases:e.sourceIdentity?.aliases,contributions:e.sourceIdentity?.contributions}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3d5208e5-0ea5-54a5-82a8-50294b4a0655")}catch{}})();var Si=100,Gr=null,Ci=Object.freeze(Cn()),Yr=0;function Ti(e=Date.now()){return Yr+=1,`${Yr}-${e}`}function Xr(e,n){let r=e[n];if(r!=null)return typeof r!="string"||r.trim().length===0?null:r.trim()}function Ii(e){if(e==null)return;let n=X(e);if(!n)return null;let r={};for(let t of Object.keys(n).sort((o,i)=>o.localeCompare(i))){if(t.trim().length===0)return null;let o=n[t];if(typeof o!="string"||o.trim().length===0)return null;r[t.trim()]=o.trim()}return Object.keys(r).length>0?r:void 0}function ln(e,n){let r=e[n];return typeof r!="string"||r.trim().length===0?null:r.trim()}function at(e){if(e!=null)return typeof e!="number"||!Number.isInteger(e)?null:e}function B(e){if(e!=null)return typeof e!="boolean"?null:e}function Ai(e){let n=at(e.priority);return n===void 0?Si:n}function $i(e){let n=e.sandbox_profile;if(n==null)return;if(typeof n!="string")return null;let r=ce(n);return r!==n.trim().toLowerCase()?null:r}function cn(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Ri(e){if(e==null)return;let n=X(e);if(!n)return null;let r=cn(n.source),t=cn(n.signature),o=cn(n.attestation),i=n.verified===void 0||n.verified===null?void 0:typeof n.verified=="boolean"?n.verified:null;return i===null?null:{...r?{source:r}:{},...t?{signature:t}:{},...o?{attestation:o}:{},...typeof i=="boolean"?{verified:i}:{}}}function Pi(e){if(e==null)return;let n=X(e);if(!n)return null;let r=B(n.fs_read),t=B(n.fs_write),o=B(n.network),i=B(n.env_read),s=B(n.env_write),a=B(n.process_spawn);return[r,t,o,i,s,a].includes(null)?null:{...typeof r=="boolean"?{fs_read:r}:{},...typeof t=="boolean"?{fs_write:t}:{},...typeof o=="boolean"?{network:o}:{},...typeof i=="boolean"?{env_read:i}:{},...typeof s=="boolean"?{env_write:s}:{},...typeof a=="boolean"?{process_spawn:a}:{}}}function Oi(e){if(e==null)return{capabilities:[],legacy_aliases:[]};if(!Array.isArray(e)||e.some(r=>typeof r!="string"))return null;let n=Kn(e);return{capabilities:n.capabilities,legacy_aliases:n.legacy_aliases}}function Di(e){if(e==null)return;let n=X(e);if(!n)return null;let r=n.commands;if(r==null)return;if(!Array.isArray(r)||r.some(o=>typeof o!="string"))return null;let t=[...new Set(r.map(o=>v(o)).filter(o=>o.length>0))].sort((o,i)=>o.localeCompare(i));return t.length>0?{commands:t}:void 0}function Ni(e){let n=at(e.manifest_version);if(n===null)return null;let r=Xr(e,"pm_min_version");if(r===null)return null;let t=Xr(e,"pm_max_version");if(t===null)return null;let o=Ii(e.engines);if(o===null)return null;let i=B(e.trusted);if(i===null)return null;let s=$i(e);if(s===null)return null;let a=Ri(e.provenance);if(a===null)return null;let l=Pi(e.permissions);if(l===null)return null;let c=Oi(e.capabilities);if(c===null)return null;let d=Di(e.activation);if(d===null)return null;let u=Ue(e.contributions);return u===null?null:{manifest_version:n,pm_min_version:r,pm_max_version:t,engines:o,trusted:i,sandbox_profile:s,provenance:a,permissions:l,capabilities:c.capabilities,legacy_capability_aliases:c.legacy_aliases,activation:d,contributions:u}}function Fi(e){if(typeof e!="object"||e===null)return null;let n=e,r=ln(n,"name");if(r===null)return null;let t=ln(n,"version");if(t===null)return null;let o=ln(n,"entry");if(o===null)return null;let i=Ai(n);if(i===null)return null;let s=Ni(n);return s===null?null:{name:r,version:t,entry:o,priority:i,manifest_version:s.manifest_version,pm_min_version:s.pm_min_version,pm_max_version:s.pm_max_version,engines:s.engines,trusted:s.trusted,provenance:s.provenance,sandbox_profile:s.sandbox_profile,permissions:s.permissions,activation:s.activation,contributions:s.contributions,capabilities:s.capabilities,legacy_capability_aliases:s.legacy_capability_aliases.length>0?s.legacy_capability_aliases:void 0}}function Mi(e,n,r){return r.has(e)?!1:n.size===0?!0:n.has(e)}async function zi(e,n){let[r,t]=await Promise.all([G.realpath(e),G.realpath(n)]);return He(r,t)}function ji(e,n=process.cwd()){return{global:H.join(_r(n),"extensions"),project:H.join(e,"extensions")}}async function Li(e){try{return(await G.readdir(e,{withFileTypes:!0})).filter(r=>r.isDirectory()).map(r=>r.name).sort((r,t)=>r.localeCompare(t))}catch{return[]}}function qi(e){let n={layer:e.layer,directory:e.directory,manifest_path:e.manifest_path,name:e.manifest.name,version:e.manifest.version,entry:e.manifest.entry,priority:e.manifest.priority,entry_path:e.entry_path,manifest_version:e.manifest.manifest_version,pm_min_version:e.manifest.pm_min_version,pm_max_version:e.manifest.pm_max_version,engines:e.manifest.engines,trusted:e.manifest.trusted,provenance:e.manifest.provenance,sandbox_profile:e.manifest.sandbox_profile,permissions:e.manifest.permissions,capabilities:[...e.manifest.capabilities],activation:e.manifest.activation?{commands:[...e.manifest.activation.commands]}:void 0,contributions:e.manifest.contributions??e.contributions};return e.source_package&&(n.source_package=e.source_package),e.source_aliases&&(n.source_aliases=[...e.source_aliases]),n}function Jr(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}async function Vi(e){let n=new Map;try{let r=JSON.parse(await G.readFile(H.join(e,".managed-extensions.json"),"utf8")),o=X(r)?.entries;if(!Array.isArray(o))return n;for(let i of o){if(typeof i!="object"||i===null)continue;let s=i,a=Jr(s.source?.package),l=[s.source?.input,s.source?.name,a].map(u=>Jr(u)).filter(u=>u!==void 0),c=Ue(s.contributions),d={aliases:[...new Set(l)],...a?{package_name:a}:{},...c?{contributions:c}:{}};typeof s.directory=="string"&&s.directory.trim().length>0&&n.set(`directory:${s.directory.trim()}`,d),typeof s.name=="string"&&s.name.trim().length>0&&n.set(`name:${s.name.trim()}`,d)}}catch{return n}return n}function Zr(e){return[...e].sort((n,r)=>{if(n.manifest.priority!==r.manifest.priority)return n.manifest.priority-r.manifest.priority;let t=n.manifest.name.localeCompare(r.manifest.name);return t!==0?t:n.directory.localeCompare(r.directory)})}function Ui(e,n){let r=[...Zr(e),...Zr(n)],t=[];for(let o of r){let i=t.findIndex(s=>s.manifest.name===o.manifest.name);i>=0&&t.splice(i,1),t.push(o)}return t}async function Qr(e,n,r,t,o){let i=[],s=[],a=[],l=await Li(n),c=await Vi(n);for(let d of l){let u=await Bi(e,n,d,r,t,c,o);i.push(u.diagnostic),s.push(...u.warnings),u.candidate&&a.push(u.candidate)}return{diagnostics:i,warnings:s,candidates:a}}function Wi(){return{diagnostics:[],warnings:[],candidates:[]}}function et(e,n,r,t){return{diagnostic:{layer:e,directory:n,manifest_path:r,name:null,version:null,entry:null,priority:null,entry_path:null,enabled:null,status:"warn"},warnings:[t],candidate:null}}function Ki(e,n,r,t,o,i){let s=[];Array.isArray(n.legacy_capability_aliases)&&n.legacy_capability_aliases.length>0&&s.push(Hn(e,n.name,n.legacy_capability_aliases));for(let a of Wn(n.capabilities))s.push(Bn(e,n.name,a));return r?t||s.push(`extension_entry_missing:${e}:${n.name}`):s.push(`extension_entry_outside_extension:${e}:${n.name}`),o.warning&&s.push(o.warning),i.warning&&s.push(i.warning),s}async function Bi(e,n,r,t,o,i,s){let a=H.join(n,r),l=H.join(a,"manifest.json");if(!await ie(l))return et(e,r,l,`extension_manifest_missing:${e}:${r}`);let c;try{let Oe=JSON.parse(await G.readFile(l,"utf8"));c=Fi(Oe)}catch{c=null}if(!c)return et(e,r,l,`extension_manifest_invalid:${e}:${r}`);let d=H.resolve(a,c.entry),u=He(a,d),m=u?await ie(d):!1,f=u&&m?await zi(a,d):u,h=Mi(c.name,t,o),p=await Yi(e,c),g=await Xi(e,c,s),$=Ki(e,c,f,m,p,g),ee=f&&m&&p.allowed&&g.allowed,Pe=i.get(`directory:${r}`)??i.get(`name:${c.name}`);return{diagnostic:{layer:e,directory:r,manifest_path:l,name:c.name,version:c.version,entry:c.entry,priority:c.priority,entry_path:d,enabled:h,status:ee?"ok":"warn"},warnings:$,candidate:Hr({layer:e,directory:r,manifestPath:l,entryPath:d,manifest:c,sourceIdentity:Pe,extensionReady:ee,enabledForLoad:h})}}async function Hi(e){let n=ji(e.pmRoot,e.cwd??process.cwd()),r=te(e.settings.extensions.enabled),t=te(e.settings.extensions.disabled),o=Lr(e.settings),i=qr(o);if(e.noExtensions)return{disabled_by_flag:!0,roots:n,configured_enabled:r,configured_disabled:t,discovered:[],effective:[],warnings:[...o.warnings],policy:i};let s=new Set(r),a=new Set(t),l=e.ignoreGlobalExtensions===!0?Wi():await Qr("global",n.global,s,a,o.pmMaxVersionExceededMode.global),c=await Qr("project",n.project,s,a,o.pmMaxVersionExceededMode.project),d=[...o.warnings],u=Ui(l.candidates,c.candidates),m=[];for(let f of u){let h={layer:f.layer,name:f.manifest.name,trusted:f.manifest.trusted===!0,provenanceVerified:f.manifest.provenance?.verified===!0,sandboxProfile:f.manifest.sandbox_profile,permissions:f.manifest.permissions&&typeof f.manifest.permissions=="object"?{fs_read:f.manifest.permissions.fs_read,fs_write:f.manifest.permissions.fs_write,network:f.manifest.permissions.network,env_read:f.manifest.permissions.env_read,env_write:f.manifest.permissions.env_write,process_spawn:f.manifest.permissions.process_spawn}:void 0},p=Wr(o,h);if(p.warning&&d.push(p.warning),!!p.allowed){for(let g of f.manifest.capabilities){let $=Kr(o,h,g);$.warning&&d.push($.warning)}m.push(qi(f))}}return{disabled_by_flag:!1,roots:n,configured_enabled:r,configured_disabled:t,discovered:[...l.diagnostics,...c.diagnostics],effective:m,warnings:[...new Set([...l.warnings,...c.warnings,...d])],policy:i}}function $e(e){return e instanceof Error&&e.message.trim().length>0?e.message:String(e)}async function Gi(){try{let e=Ge(import.meta.url,["../../.."]),n=await G.readFile(H.join(e,"package.json"),"utf8"),r=JSON.parse(n);return typeof r.version=="string"&&r.version.trim().length>0?r.version.trim():null}catch{return null}}function lt(){return Gr??=Gi(),Gr}function ct(e,n,r){let t=r.current??"unknown";if(r.kind==="pm_min_version")switch(r.status){case"invalid":return`extension_pm_min_version_invalid:${e}:${n.name}:required=${r.required}`;case"unchecked":return`extension_pm_min_version_unchecked:${e}:${n.name}:required=${r.required}:current=${t}`;case"unmet":return`extension_pm_min_version_unmet:${e}:${n.name}:required=${r.required}:current=${t}`;default:return}switch(r.status){case"invalid":return`extension_pm_max_version_invalid:${e}:${n.name}:allowed=${r.required}`;case"unchecked":return`extension_pm_max_version_unchecked:${e}:${n.name}:allowed=${r.required}:current=${t}`;case"exceeded_warn":return`extension_pm_max_version_exceeded_warn:${e}:${n.name}:allowed=${r.required}:current=${t}`;case"exceeded":return`extension_pm_max_version_exceeded:${e}:${n.name}:allowed=${r.required}:current=${t}`;default:return}}async function Yi(e,n){if(n.pm_min_version===void 0)return{allowed:!0};let r=er(n.pm_min_version,await lt()),t=ct(e,n,r);return t?{allowed:r.allowed,warning:t}:{allowed:r.allowed}}async function Xi(e,n,r){if(n.pm_max_version===void 0)return{allowed:!0};let t=nr(n.pm_max_version,await lt(),r),o=ct(e,n,t);return o?{allowed:t.allowed,warning:o}:{allowed:t.allowed}}async function nt(e){try{let n=await G.stat(e);return`${Math.trunc(n.mtimeMs)}-${n.size}`}catch{return"missing"}}async function Ji(e,n){let r=e.entry_path;n.module_graph_snapshot_root&&(r=await $r(n.module_graph_snapshot_root,e));let t=new URL(xi(r).href);if(!(n.cache_bust===!0||typeof n.reload_token=="string"))return t.href;let[i,s]=await Promise.all([nt(e.entry_path),nt(e.manifest_path)]),a=n.reload_token??Ti();return t.searchParams.set("pm_ext_reload",a),t.searchParams.set("pm_ext_entry",i),t.searchParams.set("pm_ext_manifest",s),t.href}async function kc(e){let n=await Hi(e),r=[],t=[],o=[...n.warnings];if(n.disabled_by_flag)return{...n,warnings:o,loaded:r,failed:t};let i=typeof e.extensionFilter=="function"?n.effective.filter(e.extensionFilter):n.effective;for(let s of i)try{let l=await import(await Ji(s,e));r.push({...s,module:l})}catch(a){o.push(`extension_load_failed:${s.layer}:${s.name}`),t.push({layer:s.layer,name:s.name,entry_path:s.entry_path,error:$e(a)})}return{...n,warnings:o,loaded:r,failed:t}}var rt=5e3,Zi=2147483647;function Qi(e){let r={activate:e.activate.bind(e)};if(typeof e.deactivate=="function"){let t=e.deactivate;r.deactivate=t.bind(e)}return r}function dt(e){let n=vr(e);return n?Qi(n):null}async function xc(e,n,r={}){let t=es(r?.deactivate_timeout_ms),o=new Set((n?.failed??[]).map(d=>`${d.layer}:${d.name}`)),i=[];for(let d of e.loaded){if(o.has(`${d.layer}:${d.name}`))continue;let u=dt(d.module);!u||typeof u.deactivate!="function"||i.push({extension:d,deactivate:u.deactivate})}let s=await Promise.all(i.map(async({extension:d,deactivate:u})=>{try{return await ns(u,t),{ok:!0}}catch(m){return{ok:!1,layer:d.layer,name:d.name,error:$e(m)}}})),a=[],l=[],c=0;for(let d of s){if(d.ok){c+=1;continue}a.push(`extension_deactivate_failed:${d.layer}:${d.name}`),l.push({layer:d.layer,name:d.name,error:d.error})}return{deactivated:c,warnings:a,failed:l}}function es(e){return typeof e!="number"||e<0?rt:e===0||e===1/0?0:Number.isFinite(e)?Math.min(Zi,Math.max(1,Math.floor(e))):rt}async function ns(e,n){if(n===0){await e();return}let r;try{let t=Promise.resolve().then(()=>e());t.catch(()=>{}),await Promise.race([t,new Promise((o,i)=>{r=setTimeout(()=>{i(new Error(`extension deactivate timed out after ${n}ms`))},n),r.unref?.()})])}finally{clearTimeout(r)}}function rs(e){return e==="toon"||e==="json"}function ts(e){return Ne.includes(e)}function Q(e,n){if(typeof n!="function")throw new TypeError(`api.hooks.${e} requires a function handler`)}function I(e,n){if(typeof n!="string"||n.trim().length===0)throw new TypeError(`${e} requires a non-empty string`);return n.trim()}function Ce(e,n){if(typeof n!="function")throw new TypeError(`${e} requires a function handler`)}function tt(e){return e.trim().toLowerCase().split(/\s+/).filter(n=>n.length>0).join(" ")}function ot(e,n){return v(`${e} ${n}`)}function Ie(e){if(e===null)return null;if(Array.isArray(e))return e.map(n=>Ie(n));if(typeof e=="function")return"[Function]";if(typeof e=="bigint"||typeof e=="symbol")return e.toString();if(typeof e=="object"){let n=e,r={},t=Object.keys(n).sort((o,i)=>o.localeCompare(i));for(let o of t)r[o]=Ie(n[o]);return r}return e}function Ae(e){if(Array.isArray(e))return e.map(n=>Ae(n));if(typeof e=="object"&&e!==null){let n=e,r={};for(let t of Object.keys(n).sort((o,i)=>o.localeCompare(i)))r[t]=Ae(n[t]);return r}return e}var ut=Symbol("extension_registration_trace");function j(e,n){let r=new TypeError(e);return Object.defineProperty(r,ut,{value:n,enumerable:!1,configurable:!1,writable:!1}),r}function os(e){if(e instanceof Error)return e[ut]}function Te(e,n){if(typeof n!="object"||n===null||Array.isArray(n))throw new TypeError(`${e} requires an object definition`);return Ie(n)}function dn(e,n){if(typeof n!="object"||n===null||Array.isArray(n))throw new TypeError(`${e} requires an object definition`);return Ae(n)}function pn(e,n){if(!Array.isArray(n))throw new TypeError(`${e} requires an array of object definitions`);return n.map(r=>Te(e,r))}var is=new Set(["default","description","enabled","list","long","repeatable","required","short","type","value_name","value_type","visible"]);function un(e,n){return pn(e,n).map(r=>(r.repeatable===!0&&(r.list=!0),r))}function ss(e){return e.trim().toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function it(e,n){if(n===void 0)return e.replace(/\s+/g,"-");if(typeof n!="string"||n.trim().length===0)throw new TypeError("registerCommand definition.action must be a non-empty string when provided");let r=ss(n);if(r.length===0)throw new TypeError("registerCommand definition.action must contain alphanumeric characters");return r}function st(e){if(e===void 0)return[];if(!Array.isArray(e))throw new TypeError("registerCommand definition.arguments must be an array when provided");let n=[];for(let[t,o]of e.entries()){let i=O(`registerCommand definition.arguments[${t}]`,o),s=I(`registerCommand definition.arguments[${t}].name`,i.name);if(T(`registerCommand definition.arguments[${t}].required`,i.required),T(`registerCommand definition.arguments[${t}].variadic`,i.variadic),C(`registerCommand definition.arguments[${t}].description`,i.description),s.includes(" "))throw new TypeError(`registerCommand definition.arguments[${t}].name must not contain spaces`);let a={name:s};i.required===!0&&(a.required=!0),i.variadic===!0&&(a.variadic=!0),typeof i.description=="string"&&(a.description=i.description.trim()),n.push(a)}let r=n.map((t,o)=>t.variadic?o:-1).filter(t=>t>=0);if(r.length>1)throw new TypeError("registerCommand definition.arguments supports at most one variadic argument");if(r.length===1&&r[0]!==n.length-1)throw new TypeError("registerCommand definition.arguments variadic argument must be the final argument");return n}function fn(e){if(!Array.isArray(e))throw new TypeError("registerFlags flags requires an array of object definitions");for(let[n,r]of e.entries()){let t=O(`registerFlags flags[${n}]`,r),o=Object.keys(t).filter(l=>!is.has(l)).sort((l,c)=>l.localeCompare(c));if(o.length>0)throw new TypeError(`registerFlags flags[${n}] contains unknown field(s): ${o.join(", ")}`);let i=t.long,s=t.short;if(i===void 0&&s===void 0)throw new TypeError(`registerFlags flags[${n}] requires at least one of long or short`);C(`registerFlags flags[${n}].long`,i),C(`registerFlags flags[${n}].short`,s);let a=Jn(i,s);if(a!==null)throw new TypeError(`registerFlags flags[${n}] ${Zn(a.token,a.failure)}`);if(C(`registerFlags flags[${n}].value_name`,t.value_name),C(`registerFlags flags[${n}].description`,t.description),T(`registerFlags flags[${n}].required`,t.required),T(`registerFlags flags[${n}].enabled`,t.enabled),T(`registerFlags flags[${n}].visible`,t.visible),T(`registerFlags flags[${n}].list`,t.list),T(`registerFlags flags[${n}].repeatable`,t.repeatable),t.list!==void 0&&t.repeatable!==void 0&&t.list!==t.repeatable)throw new TypeError(`registerFlags flags[${n}].list and repeatable must match when both are provided`);if(Dr(`registerFlags flags[${n}].default`,t.default),Array.isArray(t.default)&&t.list!==!0&&t.repeatable!==!0)throw new TypeError(`registerFlags flags[${n}].default cannot be an array unless list is true.`);as(`registerFlags flags[${n}]`,t)}}function as(e,n){let r=(typeof n.value_type=="string"?n.value_type:void 0)??(typeof n.type=="string"?n.type:void 0);if(r===void 0)return;let t=Er(r);if(t===null)throw new TypeError(`${e} value_type "${r}" is not a known flag value type (expected one of: string, number, boolean).`);if(n.default===void 0)return;let o=n.list===!0||n.repeatable===!0?kr(n.default):[n.default];for(let[i,s]of o.entries())if(!xr(s,t)){let a=o.length>1?`default[${i}]`:"default";throw new TypeError(`${e}.${a} (${JSON.stringify(s)}) is not coercible to ${t}.`)}}function ls(e){if(!Array.isArray(e))throw new TypeError("registerItemFields fields requires an array of object definitions");for(let[n,r]of e.entries()){let t=O(`registerItemFields fields[${n}]`,r);I(`registerItemFields fields[${n}].name`,t.name);let o=I(`registerItemFields fields[${n}].type`,t.type);if(ye(o)===null){let i=Fn(o),s=i?` Did you mean "${i}"?`:"";throw new TypeError(`registerItemFields fields[${n}].type "${o}" is not a known field type (expected one of: ${he.join(", ")}).${s}`)}T(`registerItemFields fields[${n}].optional`,t.optional)}}function cs(e,n){if(n===void 0)return;let r=`registerItemTypes types[${e}].command_option_policies`;if(!Array.isArray(n))throw new TypeError(`${r} must be an array when provided`);for(let[t,o]of n.entries()){let i=`${r}[${t}]`,s=O(i,o);I(`${i}.command`,s.command),I(`${i}.option`,s.option),T(`${i}.enabled`,s.enabled),T(`${i}.required`,s.required),T(`${i}.visible`,s.visible)}}function ds(e,n){if(n===void 0)return;let r=`registerItemTypes types[${e}].options`;if(!Array.isArray(n))throw new TypeError(`${r} must be an array when provided`);for(let[t,o]of n.entries()){let i=`${r}[${t}]`,s=O(i,o);I(`${i}.key`,s.key),K(`${i}.values`,s.values),T(`${i}.required`,s.required),K(`${i}.aliases`,s.aliases)}}function us(e){if(!Array.isArray(e))throw new TypeError("registerItemTypes types requires an array of object definitions");for(let[n,r]of e.entries()){let t=`registerItemTypes types[${n}]`,o=O(t,r);I(`${t}.name`,o.name),C(`${t}.folder`,o.folder),K(`${t}.aliases`,o.aliases),K(`${t}.required_create_fields`,o.required_create_fields),K(`${t}.required_create_repeatables`,o.required_create_repeatables),cs(n,o.command_option_policies),ds(n,o.options)}}function fs(e){let n=O("registerMigration definition",e);if(n.id!==void 0&&typeof n.id!="string")throw new TypeError("registerMigration definition.id must be a string when provided");if(n.description!==void 0&&typeof n.description!="string")throw new TypeError("registerMigration definition.description must be a string when provided");if(n.status!==void 0&&typeof n.status!="string")throw new TypeError("registerMigration definition.status must be a string when provided");if(T("registerMigration definition.mandatory",n.mandatory),n.run!==void 0&&typeof n.run!="function")throw new TypeError("registerMigration definition.run must be a function when provided")}var ft=["types","statuses","fields","workflows","config","templates","packages"],ms={types:(e,n)=>{if(n.name!==void 0&&typeof n.name!="string")throw new TypeError(`${e}.name must be a string when provided`)},workflows:(e,n)=>{if(typeof n.type!="string")throw new TypeError(`${e}.type must be a string`);if(!Array.isArray(n.allowed_transitions))throw new TypeError(`${e}.allowed_transitions must be an array`);for(let[r,t]of n.allowed_transitions.entries())if(!Array.isArray(t))throw new TypeError(`${e}.allowed_transitions[${r}] must be a [from, to] array`)},templates:(e,n)=>{if(typeof n.name!="string")throw new TypeError(`${e}.name must be a string`);if(typeof n.options!="object"||n.options===null||Array.isArray(n.options))throw new TypeError(`${e}.options must be an object`)},packages:(e,n)=>{if(typeof n.spec!="string")throw new TypeError(`${e}.spec must be a string`)}};function ps(e){let n=O("registerProfile profile",e);if(I("registerProfile profile.name",n.name),I("registerProfile profile.title",n.title),n.summary!==void 0&&typeof n.summary!="string")throw new TypeError("registerProfile profile.summary must be a string when provided");for(let r of ft){let t=n[r];if(t!==void 0){if(!Array.isArray(t))throw new TypeError(`registerProfile profile.${r} must be an array when provided`);for(let[o,i]of t.entries()){if(typeof i!="object"||i===null||Array.isArray(i))throw new TypeError(`registerProfile profile.${r}[${o}] must be an object`);ms[r]?.(`registerProfile profile.${r}[${o}]`,i)}}}}function gs(e){e.summary===void 0&&(e.summary="");for(let n of ft)e[n]===void 0&&(e[n]=[]);return e}function mn(e,n){return Object.defineProperty(e,"runtime_definition",{value:n,enumerable:!1,writable:!1,configurable:!1}),e}function hs(e){if(!Array.isArray(e.capabilities))return null;let n=new Set;for(let r of e.capabilities){let t=r.trim().toLowerCase();N(t)&&n.add(t)}return n}function w(e,n,r){let t=hs(e);if(t!==null&&!t.has(n))throw j(`${r} requires capability '${n}' in extension manifest capabilities`,{method:r,registration_index:-1,capability:n,missing_capability:n,expected_schema:`"capabilities": [..., "${n}"]`,received:e.capabilities,hint:`Add "${n}" to ${e.name} manifest capabilities, or remove the ${r} registration call.`})}function ys(e){return Object.freeze({name:e.name,layer:e.layer,version:e.version,capabilities:Object.freeze((e.capabilities??[]).filter(n=>q.includes(n))),pm_min_version:e.pm_min_version,pm_max_version:e.pm_max_version,source_package:e.source_package})}function _s(e){return{layer:e.layer,name:e.name,trusted:e.trusted===!0,provenanceVerified:e.provenance?.verified===!0,sandboxProfile:e.sandbox_profile,permissions:e.permissions&&typeof e.permissions=="object"?{fs_read:e.permissions.fs_read,fs_write:e.permissions.fs_write,network:e.permissions.network,env_read:e.permissions.env_read,env_write:e.permissions.env_write,process_spawn:e.permissions.process_spawn}:void 0}}var gn=class{extension;hooks;#e;#r;#o;#t;#s;#a;#i;#l;#n;#c;#d;#u;constructor(n,r,t,o,i,s,a,l,c,d,u){this.#e=n,this.extension=ys(n),this.#r=_s(n),this.#o=r,this.#t=t,this.#s=o,this.#a=i,this.#i=s,this.#l=a,this.#n=l,this.#c=c,this.#d=d,this.#u=u,this.registerCommand=this.registerCommand.bind(this),this.registerParser=this.registerParser.bind(this),this.registerPreflight=this.registerPreflight.bind(this),this.registerService=this.registerService.bind(this),this.registerFlags=this.registerFlags.bind(this),this.registerItemFields=this.registerItemFields.bind(this),this.registerItemTypes=this.registerItemTypes.bind(this),this.registerRelationshipKinds=this.registerRelationshipKinds.bind(this),this.registerMigration=this.registerMigration.bind(this),this.registerProfile=this.registerProfile.bind(this),this.registerRenderer=this.registerRenderer.bind(this),this.registerImporter=this.registerImporter.bind(this),this.registerExporter=this.registerExporter.bind(this),this.registerSearchProvider=this.registerSearchProvider.bind(this),this.registerVectorStoreAdapter=this.registerVectorStoreAdapter.bind(this),this.hooks={beforeCommand:m=>this.registerBeforeCommand(m),beforeMutation:m=>this.registerBeforeMutation(m),afterCommand:m=>this.registerAfterCommand(m),onWrite:m=>this.registerOnWrite(m),onRead:m=>this.registerOnRead(m),onIndex:m=>this.registerOnIndex(m)}}allowRegistration(n,r,t,o){let i=Br(this.#u,this.#r,n,r,t,o);return i.warning&&this.#c.push(i.warning),i.allowed}registerCommandTrace(n,r,t,o,i){return{method:"registerCommand",registration_index:n==="override"?this.#t.overrides.length:this.#t.handlers.length,command:r,expected_schema:t,received:Ie(o),hint:i}}registerCommandOverride(n,r){let t=v(n);if(t.length===0)throw j("registerCommand requires a non-empty command name",this.registerCommandTrace("override",n,'registerCommand("<command>", (context) => unknown)',n,"Provide a non-empty command path as the first argument."));if(typeof r!="function"){let o=this.registerCommandTrace("override",t,'registerCommand("<command>", (context) => unknown)',r,"Provide a function as the second registerCommand argument.");throw j(`registerCommand requires an override function when command name is provided (command="${t}", registration_index=${o.registration_index})`,o)}this.allowRegistration("commands.override","registerCommand","commands",{command:t})&&this.#t.overrides.push({layer:this.#e.layer,name:this.#e.name,command:t,run:r})}resolveCommandDefinitionRunHandler(n,r){let t=typeof n.run=="function"?n.run:void 0,o=typeof n.handler=="function"?n.handler:void 0;return!t&&o&&this.#c.push(`extension_command_definition_legacy_handler_alias:${this.#e.layer}:${this.#e.name}:${r}`),t??o}registerCommandDefinition(n){if(typeof n!="object"||n===null)throw j("registerCommand requires a command definition object",this.registerCommandTrace("definition",void 0,"{ name: string; run: (context) => unknown; }",n,'Use registerCommand({ name: "command path", run: (context) => ... }).'));if(typeof n.name!="string")throw j("registerCommand requires a command definition name",this.registerCommandTrace("definition",void 0,"{ name: string; run: (context) => unknown; }",n,"Set command definition.name to a non-empty string command path."));let r=v(n.name);if(r.length===0)throw j("registerCommand requires a non-empty command definition name",this.registerCommandTrace("definition",n.name,"{ name: string; run: (context) => unknown; }",n,"Ensure command definition.name contains a non-empty command path."));let t=this.resolveCommandDefinitionRunHandler(n,r);if(typeof t!="function"){let o=this.registerCommandTrace("definition",r,"{ name: string; run: (context) => unknown; }",t,"Define command definition.run as a function.");throw j(`registerCommand requires a command definition run handler (command="${r}", registration_index=${o.registration_index})`,o)}try{Nr(n);let o=it(r,n.action);if(!this.allowRegistration("commands.handler","registerCommand","commands",{command:r,action:o}))return;let i=n.description?.trim(),s=n.intent?.trim(),a=le("registerCommand definition.examples",n.examples),l=le("registerCommand definition.failure_hints",n.failure_hints),c=st(n.arguments);n.flags!==void 0&&(w(this.#e,"schema","registerCommand flags"),this.allowRegistration("schema.flags","registerCommand flags","schema")&&(fn(n.flags),this.#n.flags.push({layer:this.#e.layer,name:this.#e.name,target_command:r,flags:un("registerCommand definition.flags",n.flags)})));let d={layer:this.#e.layer,name:this.#e.name,source_package:this.#e.source_package,command:r,action:o,examples:a,failure_hints:l,arguments:c,tier:n.tier};i&&(d.description=i),s&&(d.intent=s),this.#n.commands.push(d)}catch(o){let i=$e(o),s=this.registerCommandTrace("definition",r,"{ name: string; run: (context) => unknown; action?: string; arguments?: object[]; flags?: object[]; }",n,i),a=j(`registerCommand definition metadata invalid (command="${r}", registration_index=${s.registration_index}): ${i}`,s);this.#c.push(`extension_command_quarantined:${this.#e.layer}:${this.#e.name}:${r}`),this.#d.push({layer:this.#e.layer,name:this.#e.name,entry_path:this.#e.entry_path,error:a.message,trace:s});return}this.#t.handlers.push({layer:this.#e.layer,name:this.#e.name,command:r,run:t})}registerCommand(n,r){if(w(this.#e,"commands","registerCommand"),typeof n=="string"){this.registerCommandOverride(n,r);return}this.registerCommandDefinition(n)}registerParser(n,r){if(w(this.#e,"parser","registerParser"),!this.allowRegistration("parser.override","registerParser","parser"))return;let t=v(I("registerParser command",n));Ce("registerParser override",r),this.#s.overrides.push({layer:this.#e.layer,name:this.#e.name,command:t,run:r})}registerPreflight(n){if(w(this.#e,"preflight","registerPreflight"),!this.allowRegistration("preflight.override","registerPreflight","preflight"))return;let r=Pr(n);this.#a.overrides.push({layer:this.#e.layer,name:this.#e.name,...r})}registerService(n,r){w(this.#e,"services","registerService");let t=String(n).trim().toLowerCase();if(!ts(t))throw new TypeError(`registerService service must be one of: ${Ne.join(", ")}`);this.allowRegistration("services.override","registerService","services",{service:t})&&(Ce("registerService override",r),this.#i.overrides.push({layer:this.#e.layer,name:this.#e.name,service:t,run:r}))}registerRenderer(n,r,t={}){if(w(this.#e,"renderers","registerRenderer"),!this.allowRegistration("renderers.override","registerRenderer","renderers"))return;if(typeof r!="function")throw new TypeError("registerRenderer requires a renderer function");let o=String(n).trim().toLowerCase();if(!rs(o))throw new Error(`registerRenderer format must be toon|json, received: ${String(n)}`);if(t.resultDiscriminator!==void 0&&typeof t.resultDiscriminator!="function")throw new TypeError("registerRenderer ownership.resultDiscriminator must be a function when provided");let i=[...new Set((t.commands??[]).map(s=>{if(typeof s!="string"||s.trim().length===0)throw new TypeError("registerRenderer ownership.commands must contain non-empty command paths");return v(s)}))];this.#l.overrides.push({layer:this.#e.layer,name:this.#e.name,format:o,run:r,commands:i,...t.resultDiscriminator?{resultDiscriminator:t.resultDiscriminator}:{}})}registerFlags(n,r){if(w(this.#e,"schema","registerFlags"),!this.allowRegistration("schema.flags","registerFlags","schema"))return;let t=v(I("registerFlags targetCommand",n));fn(r);let o=un("registerFlags flags",r);if(o.length===0)throw new TypeError("registerFlags requires at least one flag definition");this.#n.flags.push({layer:this.#e.layer,name:this.#e.name,target_command:t,flags:o})}registerItemFields(n){if(w(this.#e,"schema","registerItemFields"),!this.allowRegistration("schema.itemfields","registerItemFields","schema"))return;ls(n);let r=pn("registerItemFields fields",n);if(r.length===0)throw new TypeError("registerItemFields requires at least one field definition");this.#n.item_fields.push({layer:this.#e.layer,name:this.#e.name,fields:r})}registerItemTypes(n){if(w(this.#e,"schema","registerItemTypes"),!this.allowRegistration("schema.itemtypes","registerItemTypes","schema"))return;us(n);let r=pn("registerItemTypes types",n);if(r.length===0)throw new TypeError("registerItemTypes requires at least one type definition");this.#n.item_types.push({layer:this.#e.layer,name:this.#e.name,types:r})}registerRelationshipKinds(n){if(w(this.#e,"schema","registerRelationshipKinds"),!this.allowRegistration("schema.relationshipkinds","registerRelationshipKinds","schema"))return;if(!Array.isArray(n))throw new TypeError("registerRelationshipKinds definitions requires an array of object definitions");if(n.length===0)throw new TypeError("registerRelationshipKinds requires at least one definition");let r=Ve();for(let o of this.#n.relationship_kinds)for(let i of o.definitions)r.register(i);let t=n.map(o=>(r.register(o),r.require(o.kind)));this.#n.relationship_kinds.push({layer:this.#e.layer,name:this.#e.name,definitions:t})}registerMigration(n){if(w(this.#e,"schema","registerMigration"),!this.allowRegistration("schema.migrations","registerMigration","schema"))return;fs(n);let r=dn("registerMigration definition",n);this.#n.migrations.push(mn({layer:this.#e.layer,name:this.#e.name,definition:Te("registerMigration definition",n)},r))}registerProfile(n){if(w(this.#e,"schema","registerProfile"),!this.allowRegistration("schema.profiles","registerProfile","schema"))return;let r=Ae(n);ps(r),this.#n.profiles.push({layer:this.#e.layer,name:this.#e.name,profile:gs(r)})}applyImportExportCommandMetadata(n,r,t){if(t!==void 0&&(typeof t!="object"||t===null||Array.isArray(t)))throw new TypeError(`${n} options must be an object when provided`);let o=`${n==="registerImporter"?"Import":"Export"} items with the registered extension adapter.`,i=[{name:"file",required:!1,description:"Optional input or output file path."}],s={...t,description:t?.description??o,arguments:t?.arguments??i};C(`${n} options.action`,s.action),C(`${n} options.description`,s.description),C(`${n} options.intent`,s.intent);let a=it(r,s.action),l=le(`${n} options.examples`,s.examples),c=le(`${n} options.failure_hints`,s.failure_hints),d=st(s.arguments);s.flags!==void 0&&(w(this.#e,"schema",`${n} options.flags`),this.allowRegistration("schema.flags",`${n} options.flags`,"schema")&&(fn(s.flags),this.#n.flags.push({layer:this.#e.layer,name:this.#e.name,target_command:r,flags:un(`${n} options.flags`,s.flags)})));let u={layer:this.#e.layer,name:this.#e.name,source_package:this.#e.source_package,command:r,action:a,examples:l,failure_hints:c,arguments:d},m=s.description?.trim();m&&(u.description=m);let f=s.intent?.trim();f&&(u.intent=f),this.#n.commands.push(u)}registerImporter(n,r,t){if(w(this.#e,"importers","registerImporter"),!this.allowRegistration("importers.importer","registerImporter","importers"))return;let o=tt(I("registerImporter name",n));Ce("registerImporter importer",r);let i=ot(o,"import");this.applyImportExportCommandMetadata("registerImporter",i,t),this.#n.importers.push({layer:this.#e.layer,name:this.#e.name,importer:o}),this.#t.handlers.push({layer:this.#e.layer,name:this.#e.name,command:i,run:async s=>r({registration:o,action:"import",command:s.command,args:k(s.args),options:k(s.options),global:k(s.global),pm_root:s.pm_root,source_workspace_root:s.source_workspace_root,repo_root:s.repo_root,pm_root_rel:s.pm_root_rel,...s.sdk===void 0?{}:{sdk:s.sdk}})})}registerExporter(n,r,t){if(w(this.#e,"importers","registerExporter"),!this.allowRegistration("importers.exporter","registerExporter","importers"))return;let o=tt(I("registerExporter name",n));Ce("registerExporter exporter",r);let i=ot(o,"export");this.applyImportExportCommandMetadata("registerExporter",i,t),this.#n.exporters.push({layer:this.#e.layer,name:this.#e.name,exporter:o}),this.#t.handlers.push({layer:this.#e.layer,name:this.#e.name,command:i,run:async s=>r({registration:o,action:"export",command:s.command,args:k(s.args),options:k(s.options),global:k(s.global),pm_root:s.pm_root,source_workspace_root:s.source_workspace_root,repo_root:s.repo_root,pm_root_rel:s.pm_root_rel,...s.sdk===void 0?{}:{sdk:s.sdk}})})}registerSearchProvider(n){if(w(this.#e,"search","registerSearchProvider"),!this.allowRegistration("search.provider","registerSearchProvider","search"))return;let r=dn("registerSearchProvider provider",n);this.#n.search_providers.push(mn({layer:this.#e.layer,name:this.#e.name,definition:Te("registerSearchProvider provider",n)},r))}registerVectorStoreAdapter(n){if(w(this.#e,"search","registerVectorStoreAdapter"),!this.allowRegistration("search.vectorstore","registerVectorStoreAdapter","search"))return;let r=dn("registerVectorStoreAdapter adapter",n);this.#n.vector_store_adapters.push(mn({layer:this.#e.layer,name:this.#e.name,definition:Te("registerVectorStoreAdapter adapter",n)},r))}registerBeforeCommand(n){w(this.#e,"hooks","api.hooks.beforeCommand"),this.allowRegistration("hooks.beforecommand","api.hooks.beforeCommand","hooks")&&(Q("beforeCommand",n),this.#o.beforeCommand.push({layer:this.#e.layer,name:this.#e.name,run:n}))}registerBeforeMutation(n){w(this.#e,"hooks","api.hooks.beforeMutation"),this.allowRegistration("hooks.beforemutation","api.hooks.beforeMutation","hooks")&&(Q("beforeMutation",n),this.#o.beforeMutation.push({layer:this.#e.layer,name:this.#e.name,run:n}))}registerAfterCommand(n){w(this.#e,"hooks","api.hooks.afterCommand"),this.allowRegistration("hooks.aftercommand","api.hooks.afterCommand","hooks")&&(Q("afterCommand",n),this.#o.afterCommand.push({layer:this.#e.layer,name:this.#e.name,run:n}))}registerOnWrite(n){w(this.#e,"hooks","api.hooks.onWrite"),this.allowRegistration("hooks.onwrite","api.hooks.onWrite","hooks")&&(Q("onWrite",n),this.#o.onWrite.push({layer:this.#e.layer,name:this.#e.name,run:n}))}registerOnRead(n){w(this.#e,"hooks","api.hooks.onRead"),this.allowRegistration("hooks.onread","api.hooks.onRead","hooks")&&(Q("onRead",n),this.#o.onRead.push({layer:this.#e.layer,name:this.#e.name,run:n}))}registerOnIndex(n){w(this.#e,"hooks","api.hooks.onIndex"),this.allowRegistration("hooks.onindex","api.hooks.onIndex","hooks")&&(Q("onIndex",n),this.#o.onIndex.push({layer:this.#e.layer,name:this.#e.name,run:n}))}};function ws(e,n,r,t,o,i,s,a,l,c,d){return new gn(e,n,r,t,o,i,s,a,l,c,d)}function bs(e){let n=e.commands.length,r=e.flags.reduce((s,a)=>s+a.flags.length,0),t=e.item_fields.reduce((s,a)=>s+a.fields.length,0),o=e.item_types.reduce((s,a)=>s+a.types.length,0),i=(e.relationship_kinds??[]).reduce((s,a)=>s+a.definitions.length,0);return{commands:n,flags:r,item_fields:t,item_types:o,...i>0?{relationship_kinds:i}:{},migrations:e.migrations.length,profiles:e.profiles.length,importers:e.importers.length,exporters:e.exporters.length,search_providers:e.search_providers.length,vector_store_adapters:e.vector_store_adapters.length}}function vs(e){let n=[],r=(i,s)=>{let a=new Map;for(let l of i){let c=a.get(l.command)??[];c.push(l),a.set(l.command,c)}for(let l of[...a.keys()].sort((c,d)=>c.localeCompare(d))){let c=a.get(l);if(c.length<=1)continue;let d=c[c.length-1];for(let u of c.slice(0,-1))n.push(`${s}:${l}:${d.layer}:${d.name}:${u.layer}:${u.name}`)}};r(e.handlers,"extension_command_handler_collision"),r(e.overrides,"extension_command_override_collision");let t=new Set(e.handlers.map(i=>i.command)),o=[...new Set(e.overrides.map(i=>i.command))].filter(i=>t.has(i));o.sort((i,s)=>i.localeCompare(s));for(let i of o){let s=e.handlers.filter(l=>l.command===i),a=e.overrides.filter(l=>l.command===i);for(let l of a)for(let c of s)n.push(`extension_command_override_handler_overlap:${i}:${l.layer}:${l.name}:${c.layer}:${c.name}`)}return n}function Es(e){let n=new Map;for(let t of e.overrides){let o=n.get(t.format)??[];o.push(t),n.set(t.format,o)}let r=[];for(let t of[...n.keys()].sort((o,i)=>o.localeCompare(i))){let o=n.get(t);if(o.length<=1)continue;let i=o[o.length-1];for(let s of o.slice(0,-1))i.commands?.length&&s.commands?.length&&!s.commands.some(a=>i.commands?.includes(a))||r.push(`extension_renderer_collision:${t}:${i.layer}:${i.name}:${s.layer}:${s.name}`)}return r}function ks(e){let n=[],r=new Map;for(let t of e.overrides){let o=r.get(t.command)??[];o.push(t),r.set(t.command,o)}for(let t of[...r.keys()].sort((o,i)=>o.localeCompare(i))){let o=r.get(t);if(o.length<=1)continue;let i=o[o.length-1];for(let s of o.slice(0,-1))n.push(`extension_parser_override_collision:${t}:${i.layer}:${i.name}:${s.layer}:${s.name}`)}return n}var xs=new Set(["output_format"]);function Ss(e){let n=[],r=new Map;for(let t of e.overrides){let o=r.get(t.service)??[];o.push(t),r.set(t.service,o)}for(let t of[...r.keys()].sort((o,i)=>o.localeCompare(i))){let o=r.get(t);if(o.length<=1||xs.has(t))continue;let i=o[o.length-1];for(let s of o.slice(0,-1))n.push(`extension_service_override_collision:${t}:${i.layer}:${i.name}:${s.layer}:${s.name}`)}return n}async function Sc(e){let n=Vr(e.policy??Ci),r=Ze(),t=Qe(),o=en(),i=nn(),s=rn(),a=tn(),l=on(),c=[],d=[];for(let f of e.loaded){let h=dt(f.module);if(!h)continue;let p=c.length,g=Rr({hooks:r,commands:t,parsers:o,preflight:i,services:s,renderers:a,registrations:l});try{await h.activate(ws(f,r,t,o,i,s,a,l,d,c,n)),c.length>p&&(g(),d.push(`extension_activation_rolled_back:${f.layer}:${f.name}`))}catch($){g(),d.push(`extension_activate_failed:${f.layer}:${f.name}`);let ee=os($);c.push({layer:f.layer,name:f.name,entry_path:f.entry_path,error:$e($),trace:ee})}}let u=[...vs(t),...ks(o),...Or(i),...Ss(s),...Es(a)],m=[...new Set([...d,...u])];return{hooks:r,commands:t,parsers:o,preflight:i,services:s,renderers:a,registrations:l,failed:c,warnings:m,hook_counts:{before_command:r.beforeCommand.length,before_mutation:r.beforeMutation.length,after_command:r.afterCommand.length,on_write:r.onWrite.length,on_read:r.onRead.length,on_index:r.onIndex.length},command_override_count:t.overrides.length,command_handler_count:t.handlers.length,parser_override_count:o.overrides.length,preflight_override_count:i.overrides.length,service_override_count:s.overrides.length,renderer_override_count:a.overrides.length,registration_counts:bs(l)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b2649352-0afa-5972-8c48-b999f86d5522")}catch{}})();function mt(e){let n=Math.ceil(e.size/2);for(let r of e.keys()){if(n===0)return;e.delete(r),n-=1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d6056922-237d-525a-b354-687493a4e123")}catch{}})();var Cs=2e3,Re=new Map;function L(e){if(typeof e!="string")return"";let n=Re.get(e);if(n!==void 0)return n;let r=e.trim().toLowerCase().replaceAll(/[\s-]+/g,"_");return Re.size>=Cs&&mt(Re),Re.set(e,r),r}import pt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a9ff482a-f9f9-5e35-88d0-240db815ec08")}catch{}})();var P=Object.freeze({types:"schema/types.json",statuses:"schema/statuses.json",fields:"schema/fields.json",workflows:"schema/workflows.json"}),yt=On,_n=Pn,Ts=["create","update"],Is=new Set(An),As=new Set(fe),$s=new Set($n),Rs=new Set(Rn);function de(e){let n=Array.isArray(e)?e:[];return[...new Set(n.map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0))].sort((r,t)=>r.localeCompare(t))}function R(e){if(typeof e!="string"||e.length===0)return;let n=L(e);return n.length>0?n:void 0}function Ps(e){return e.startsWith("--")?e.slice(2):e}function gt(e){return typeof e=="string"?Ps(e.trim().toLowerCase().replaceAll(/[\s_]+/g,"-")):""}function _t(e){return e.replaceAll("_","-")}function Os(e){let n=e.replaceAll(/[^A-Za-z0-9]+/g," ").trim().split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(n.length===0)return e;let[r,...t]=n;return`${r}${t.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function yn(e,n){let r=R(e.id);if(!r)return null;let t=[...new Set(de(e.aliases).map(L).filter(a=>a.length>0))].sort((a,l)=>a.localeCompare(l)),o=de(e.roles).filter(a=>Is.has(a)),i=e.description?.trim(),s=typeof e.order=="number"&&Number.isFinite(e.order)?e.order:n;return{id:r,aliases:t,roles:o,description:i&&i.length>0?i:void 0,order:s}}function Ds(e){return{draft_status:R(e?.draft_status),open_status:R(e?.open_status),in_progress_status:R(e?.in_progress_status),blocked_status:R(e?.blocked_status),close_status:R(e?.close_status),canceled_status:R(e?.canceled_status)}}function wt(e,n){if(!Array.isArray(n)||n.length!==2)return;let r=L(n[0]),t=L(n[1]);r.length===0||t.length===0||e.pairs.some(o=>o[0]===r&&o[1]===t)||e.pairs.push([r,t])}function Ns(e){let n=typeof e?.type=="string"?e.type.trim():"";if(n.length===0||!Array.isArray(e?.allowed_transitions))return null;let r={type:n,pairs:[],denyAll:e.allowed_transitions.length===0};for(let t of e.allowed_transitions)wt(r,t);return{typeKey:n.toLowerCase(),record:r}}function Fs(e){if(!Array.isArray(e)||e.length===0)return;let n=new Map;for(let t of e){let o=Ns(t);if(o===null)continue;let i=n.get(o.typeKey)??o.record;i.denyAll||=o.record.denyAll;for(let s of o.record.pairs)wt(i,s);n.set(o.typeKey,i)}let r=[];for(let t of n.values())(t.pairs.length>0||t.denyAll)&&r.push({type:t.type,allowed_transitions:t.pairs});return r.sort((t,o)=>t.type.localeCompare(o.type)),r.length>0?r:void 0}function bt(e){let n=L(e.key??"");if(!n)return null;let r=L(e.metadata_key??e.front_matter_key??n),t=gt(e.cli_flag??_t(n));if(!t)return null;let o=de(e.cli_aliases).map(d=>gt(d)).filter(d=>d.length>0&&d!==t),i=typeof e.type=="string"?e.type.trim().toLowerCase():"string",s=As.has(i)?i:"string",a=(()=>{let d=de(e.commands).filter(u=>$s.has(u));return d.length>0?d:[...Ts]})(),l=e.description?.trim(),c=de(e.required_types);return{key:n,metadata_key:r,cli_flag:t,cli_aliases:o,description:l&&l.length>0?l:void 0,type:s,commands:a,repeatable:e.repeatable===!0||s==="string_array",required:e.required===!0,required_on_create:e.required_on_create===!0,required_types:c,allow_unset:e.allow_unset!==!1}}function Ms(e){let n=new Map;for(let[t,o]of e.entries()){let i=yn(o,t);i&&n.set(i.id,i)}let r=ht([...n.values()]);return r.length>0?r:ht(_n.map((t,o)=>yn(t,o)).filter(t=>t!==null))}function ht(e){return e.sort((n,r)=>n.order===r.order?n.id.localeCompare(r.id):n.order-r.order)}function zs(e){let n=new Map;for(let r of e??[]){let t=bt(r);t&&n.set(t.key,t)}return[...n.values()].sort((r,t)=>r.key.localeCompare(t.key))}function js(e){return{id:e.id,aliases:e.aliases.length>0?[...e.aliases]:void 0,roles:e.roles.length>0?[...e.roles]:void 0,description:e.description,order:e.order}}function Ls(e){return{key:e.key,metadata_key:e.metadata_key!==e.key?e.metadata_key:void 0,cli_flag:e.cli_flag!==_t(e.key)?e.cli_flag:void 0,cli_aliases:e.cli_aliases.length>0?[...e.cli_aliases]:void 0,description:e.description,type:e.type,commands:[...e.commands],repeatable:e.repeatable===!0?!0:void 0,required:e.required===!0?!0:void 0,required_on_create:e.required_on_create===!0?!0:void 0,required_types:e.required_types.length>0?[...e.required_types]:void 0,allow_unset:e.allow_unset===!1?!1:void 0}}function qs(e){let n=typeof e=="string"?e.trim().toLowerCase():"allow";return Rs.has(n)?n:"allow"}function ue(e){let n={...P,...e?.files},r=e?.statuses&&e.statuses.length>0?e.statuses:_n,t=Ms(r),o=zs(e?.fields);return{version:typeof e?.version=="number"&&Number.isFinite(e.version)?Math.floor(e.version):1,files:n,statuses:t.map(js),fields:o.map(Ls),workflow:{...yt,...Ds(e?.workflow)},type_workflows:Fs(e?.type_workflows),unknown_field_policy:qs(e?.unknown_field_policy)}}function Vs(e){return`${JSON.stringify(e,null,2)}
|
|
3
|
+
`}function Us(){return{definitions:[]}}function Ws(){return{statuses:_n}}function Ks(){return{fields:[]}}function Bs(){return{workflow:yt}}function Hs(e,n,r){try{return JSON.parse(e)}catch{r.push(n);return}}function Gs(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let n=e;if(Array.isArray(n.definitions))return n.definitions;if(typeof n.item_types=="object"&&n.item_types!==null){let r=n.item_types;if(Array.isArray(r.definitions))return r.definitions}}function Ys(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let n=e;if(Array.isArray(n.statuses))return n.statuses;if(Array.isArray(n.definitions))return n.definitions}function Xs(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let n=e;if(Array.isArray(n.fields))return n.fields;if(Array.isArray(n.definitions))return n.definitions}function Js(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let n=e;return typeof n.workflow=="object"&&n.workflow!==null&&!Array.isArray(n.workflow)?n.workflow:typeof n.workflows=="object"&&n.workflows!==null&&!Array.isArray(n.workflows)?n.workflows:n}function Zs(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let n=e;if(Array.isArray(n.type_workflows))return n.type_workflows}function D(e,n,r){let t=n?.trim()||r;return pt.isAbsolute(t)?t:pt.join(e,t)}function jc(e,n){return D(e,n.files.types,P.types)}async function Lc(e,n){let r=ue(n),t=[{path:D(e,r.files.types,P.types),seed:Us()},{path:D(e,r.files.statuses,P.statuses),seed:Ws()},{path:D(e,r.files.fields,P.fields),seed:Ks()},{path:D(e,r.files.workflows,P.workflows),seed:Bs()}],o=[];for(let i of t)await ie(i.path)||(await ir(i.path,Vs(i.seed)),o.push(i.path));return{created_paths:o}}async function qc(e,n){let r=ue(n),t=[],o=D(e,r.files.types,P.types),i=D(e,r.files.statuses,P.statuses),s=D(e,r.files.fields,P.fields),a=D(e,r.files.workflows,P.workflows),l,c,d,u,m,f=async(Pe,Oe)=>{let wn=await or(Pe);if(wn!==null)return Hs(wn,Oe,t)},h=await f(o,"runtime_schema_types_invalid_json");h!==void 0&&(l=Gs(h),l===void 0&&t.push("runtime_schema_types_invalid_shape"));let p=await f(i,"runtime_schema_statuses_invalid_json");p!==void 0&&(c=Ys(p),c===void 0&&t.push("runtime_schema_statuses_invalid_shape"));let g=await f(s,"runtime_schema_fields_invalid_json");g!==void 0&&(d=Xs(g),d===void 0&&t.push("runtime_schema_fields_invalid_shape"));let $=await f(a,"runtime_schema_workflows_invalid_json");return $!==void 0&&(u=Js($),u===void 0&&t.push("runtime_schema_workflows_invalid_shape"),m=Zs($)),{schema:ue({...r,statuses:[...r.statuses,...c??[]],fields:[...r.fields,...d??[]],workflow:{...r.workflow,...u},type_workflows:[...r.type_workflows??[],...m??[]]}),type_definitions_from_file:l,warnings:t,created_paths:[]}}function hn(e,n,r){let t=e.filter(i=>i.roles.includes(n));if(t.length>0)return t[0].id;let o=r.map(i=>R(i)).filter(i=>typeof i=="string");for(let i of o)if(e.some(s=>s.id===i))return i;return e[0]?.id}function Vc(e){let n=ue(e),r=n.statuses.map((p,g)=>yn(p,g)).filter(p=>p!==null),t=new Map,o=new Map;for(let p of r){o.set(p.id,p),t.set(p.id,p.id),t.set(p.id.replaceAll("_","-"),p.id),t.set(p.id.replaceAll("_"," "),p.id);for(let g of p.aliases)t.set(g,p.id),t.set(g.replaceAll("_","-"),p.id),t.set(g.replaceAll("_"," "),p.id)}let i=new Set,s=new Set,a=new Set,l=new Set,c=new Set,d=new Set;for(let p of r){let g=new Set(p.roles);(g.has("terminal")||g.has("terminal_done")||g.has("terminal_canceled"))&&i.add(p.id),g.has("terminal_done")&&s.add(p.id),g.has("terminal_canceled")&&a.add(p.id),g.has("active")&&l.add(p.id),g.has("blocked")&&c.add(p.id),g.has("draft")&&d.add(p.id)}let u=n.workflow,m=R(u.open_status)??hn(r,"default_open",["open","in_progress",In[0]]),f=R(u.close_status)??hn(r,"default_close",["closed","done","complete"]),h=R(u.canceled_status)??hn(r,"default_cancel",["canceled","cancelled"]);return{definitions:r,by_id:o,alias_to_id:t,terminal_statuses:i,terminal_done_statuses:s,terminal_canceled_statuses:a,active_statuses:l,blocked_statuses:c,draft_statuses:d,open_status:m,close_status:f,canceled_status:h}}function Qs(e,n){let r=L(e);if(r)return n.alias_to_id.get(r)}function Uc(e){let n=ue(e),r=new Map,t=n.fields.map(l=>bt(l)).filter(l=>l!==null);for(let l of t)r.set(l.key,l);let o=[...r.values()].sort((l,c)=>l.key.localeCompare(c.key)),i=new Map,s=new Map,a=new Map;for(let l of o){i.set(l.key,l),s.set(l.cli_flag,l);for(let c of l.cli_aliases)s.set(c,l);for(let c of l.commands){let d=a.get(c)??[];d.push(l),a.set(c,d)}}for(let[l,c]of a.entries())c.sort((d,u)=>d.key.localeCompare(u.key)),a.set(l,c);return{definitions:o,by_key:i,by_cli_token:s,command_to_fields:a}}function Wc(e){return Os(e.key)}function Kc(e,n){let r=Qs(e,n);return r?n.terminal_statuses.has(r):!1}export{ge as a,Un as b,We as c,Wt as d,Kt as e,v as f,_e as g,aa as h,la as i,ca as j,Jn as k,Zn as l,er as m,nr as n,rr as o,ie as p,tr as q,or as r,ir as s,Fa as t,Ma as u,He as v,Ge as w,Wa as x,cr as y,ur as z,hr as A,Ja as B,Je as C,wo as D,Za as E,Oo as F,Do as G,Qa as H,el as I,ll as J,cl as K,dl as L,_r as M,yr as N,ul as O,fl as P,ml as Q,pl as R,gl as S,Xo as T,yl as U,_l as V,wl as W,bl as X,br as Y,vl as Z,El as _,kl as $,ze as aa,qe as ba,Ve as ca,ma as da,pa as ea,ga as fa,Dt as ga,Ln as ha,ha as ia,Ze as ja,Qe as ka,en as la,nn as ma,rn as na,tn as oa,on as pa,Ue as qa,va as ra,ei as sa,ni as ta,ri as ua,ti as va,si as wa,li as xa,ci as ya,Ti as za,Fi as Aa,zi as Ba,ji as Ca,Hi as Da,kc as Ea,xc as Fa,Sc as Ga,mt as Ha,L as Ia,P as Ja,_n as Ka,ue as La,D as Ma,jc as Na,Lc as Oa,qc as Pa,Vc as Qa,Qs as Ra,Uc as Sa,Wc as Ta,Kc as Ua,Ta as Va,Ke as Wa,Ia as Xa,Aa as Ya};
|
|
4
|
+
//# sourceMappingURL=chunk-2EXI2DKR.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{$a as st,Aa as Z,Ca as tt,Ka as et,L as V,M as S,Ma as rt,Q as W,Ra as nt,Sa as ot,Za as it,bb as P,cb as D,fa as Y,ga as X,ha as J,k as z,n as C,na as p,qa as K,sa as _,ua as d,va as L,za as Q}from"./chunk-2VVP5RAA.js";import{D as M,J as G,M as B,N as q,P as j,p as k,q as H,r as m}from"./chunk-NL57J7BZ.js";import{Y as c,Z as l}from"./chunk-ZG54B4XG.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="47c087c2-124a-58b7-a5c9-09403235f4a2")}catch{}})();function yt(t,e){let n=-1;return t.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new l(`History for this item contains invalid timestamp at entry ${o+1}.`,c.GENERIC_FAILURE);i<=e&&(n=o)}),n}function wt(t){let e=t[0]?.ts??null,n=t.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:e,last_timestamp:n}};return n!==null&&(r.examples=["1",String(t.length),n],r.valid_range.first_version=1,r.valid_range.last_version=t.length),{guidance:r,lastTimestamp:n}}function pt(t,e){let n={};if(e instanceof Error&&e.message.trim().length>0&&(n.reason=e.message.trim()),typeof e!="object"||e===null)return n;let r=e;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=t[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function Mt(t,e,n={}){let r=t.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=wt(e);if(!r)throw new l(`Missing ${o} target. Use a timestamp or version number.`,c.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>e.length)throw new l(`${i} version must be between 1 and ${e.length} for this item.`,c.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let h=Date.parse(r);if(!Number.isFinite(h))throw new l(`Invalid ${o} target "${t}". Use a positive version number or ISO timestamp.`,c.USAGE,s);let f=yt(e,h);if(f<0||n.allowFutureTimestamp!==!0&&h>Date.parse(a))throw new l(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,c.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:f}}function A(t,e,n,r){let o=Q(t,e);if(o.ok)return o.document;let i=pt(e,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new l(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,c.GENERIC_FAILURE)}function Gt(t,e){let n=structuredClone(_);for(let r=0;r<=e;r+=1){let o=t[r];if(!o)throw new l(`History target entry ${r+1} does not exist.`,c.USAGE);if(d(n)!==o.before_hash)throw new l(`History hash mismatch before replay at entry ${r+1}.`,c.GENERIC_FAILURE);if(n=A(n,o.patch,r+1,o.op),d(n)!==o.after_hash)throw new l(`History hash mismatch after replay at entry ${r+1}.`,c.GENERIC_FAILURE)}return n}function Bt(t,e){if(Object.keys(t.metadata).length>0)return t;throw new l(`History target ${e.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,c.USAGE)}import U from"node:fs/promises";import gt from"node:fs/promises";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="a2ec9f1a-aae2-59d5-8c9a-7acd8bf5a7a2")}catch{}})();function It(t){if(!t.itemDocument)return[];let e=t.itemDocument.metadata?.assignee?.trim();if(!e||e===t.author||t.force)return[];let n=et(t.settings);if(n.ownership_enforcement==="strict")throw new l(`Item ${t.subjectId} is assigned to ${e}. Use --force to override.`,c.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${t.subjectId}:${e}`]:[]}async function _t(t){let e=await H(t.subject.historyPath);if(e!==t.historyRawBeforeLock)throw new l(`History for ${t.subject.id} changed while waiting for lock; retry ${t.operation}.`,c.CONFLICT);let n=await P(t.pmRoot,t.subject.id,t.settings.id_prefix,t.settings.item_format,t.typeRegistry.type_to_folder),r=n?await D(n,{schema:t.settings.schema}):null;if((r?.raw??null)!==(t.currentItemRawBeforeLock??null))throw new l(`Item ${t.subject.id} changed while waiting for lock; retry ${t.operation}.`,c.CONFLICT);return{historyRawUnderLock:e,locatedUnderLock:n,loadedItemUnderLock:r}}async function Zt(t){let e=t.writeHistoryRaw??m;try{await e(t.historyPath,t.nextHistoryRaw),await p(t.historyPath)}catch(n){try{t.historyRawUnderLock===null?await gt.rm(t.historyPath,{force:!0}):await e(t.historyPath,t.historyRawUnderLock),await p(t.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function at(t){let e=[...It({itemDocument:t.itemDocument,subjectId:t.subject.id,author:t.author,force:t.force,settings:t.settings})],n=await W(t.pmRoot,t.subject.id,t.settings.locks.ttl_seconds,t.author,!!t.force,t.settings.governance.force_required_for_stale_lock,t.settings.locks.wait_ms);try{let r=await _t({pmRoot:t.pmRoot,subject:t.subject,settings:t.settings,typeRegistry:t.typeRegistry,historyRawBeforeLock:t.historyRawBeforeLock,currentItemRawBeforeLock:t.currentItemRawBeforeLock,operation:t.operation});return await t.applyRewrite(r),t.applyPostRewrite&&e.push(...await t.applyPostRewrite(r)),e}finally{await n()}}(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="cd2a27ec-0f12-591d-ab34-529ddda05063")}catch{}})();function ct(t){return Array.isArray(t)?t:typeof t=="string"?[t]:[]}function xt(t){let e=[];for(let n of t)e.includes(n)||e.push(n);return e.includes("g")||e.push("g"),e.join("")}function bt(t){let e=t.trim();if(e.length===0)throw new l("history-redact --regex requires a non-empty pattern.",c.USAGE);let n=e,r="g";if(e.startsWith("/")&&e.length>1){let o=e.lastIndexOf("/");o>0&&(n=e.slice(1,o),r=xt(e.slice(o+1)))}if(n.length===0)throw new l("history-redact --regex cannot use an empty pattern.",c.USAGE);try{new RegExp(n,r)}catch{throw new l("Invalid --regex value; provide a valid JavaScript regular expression.",c.USAGE)}return{kind:"regex",source:n,flags:r}}function Rt(t,e){let n=[...new Set(ct(t).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(ct(e).map(i=>i.trim()))].filter(i=>i.length>0).map(bt),o=[...n,...r];if(o.length===0)throw new l("history-redact requires at least one matcher via --literal or --regex.",c.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function Et(t,e,n){if(e.length===0)return{value:t,replacements:0};let r=0,o=0;for(;r<=t.length;){let i=t.indexOf(e,r);if(i===-1)break;o+=1,r=i+Math.max(1,e.length)}return o===0?{value:t,replacements:0}:{value:t.split(e).join(n),replacements:o}}function vt(t,e,n){let r=new RegExp(e.source,e.flags),o=[...t.matchAll(r)];return o.length===0?{value:t,replacements:0}:{value:t.replace(r,n),replacements:o.length}}function lt(t,e,n){let r=t,o=0;for(let i of e){let s=i.kind==="literal"?Et(r,i.value,n):vt(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function F(t,e,n){if(typeof t=="string")return lt(t,e,n);if(Array.isArray(t)){let r=0;return{value:t.map(i=>{let s=F(i,e,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof t=="object"&&t!==null){let r=0,o={};for(let[i,s]of Object.entries(t)){let a=F(s,e,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:t,replacements:0}}function kt(t){let e=structuredClone(_),n=0,r=0;for(let o=0;o<t.length;o+=1){let i=t[o];d(e)!==i.before_hash&&(n+=1),e=A(e,i.patch,o+1,i.op),d(e)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:e}}function Ht(t,e,n){let r=0,o=!1,i=t.message;if(typeof t.message=="string"){let a=lt(t.message,e,n);i=a.value,r+=a.replacements,a.replacements>0&&(o=!0)}let s=t.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let h=F(a.value,e,n);return r+=h.replacements,h.replacements>0?(o=!0,{...a,value:h.value}):a});return{entry:{...t,message:i,patch:s},replacements:r,changed:o}}function Pt(t,e,n){let r=structuredClone(_),o=0,i=0,s=[];for(let a=0;a<t.length;a+=1){let h=Ht(t[a],e,n);i+=h.replacements,h.changed&&(o+=1);let f=d(r);r=A(r,h.entry.patch,a+1,h.entry.op);let u=d(r);s.push({...h.entry,before_hash:f,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function Dt(t){return Object.keys(t.metadata).length>0}async function At(t,e){let n=t.located?.itemPath??null;if(!t.located)return{raw:null,path:n,document:null};let r=await D(t.located,{schema:e.schema});return{raw:r.raw,path:n,document:r.document}}function Tt(t){if(!Dt(t.finalDocument))return{raw:null,path:null,document:null};let e=X(L(t.finalDocument),{schema:t.settings.schema});if(e.metadata.id!==t.subject.id)throw new l("history-redact would change the item id; narrow your patterns.",c.USAGE);return{document:e,path:q(t.pmRoot,e.metadata.type,t.subject.id,"toon",t.typeToFolder),raw:Y(e,{format:"toon",schema:t.settings.schema})}}function $t(t,e){return typeof t.message=="string"&&t.message.trim().length>0?t.message:`history-redact replaced ${e.replacements} match(es) across ${e.entriesChanged} entr${e.entriesChanged===1?"y":"ies"}.`}function jt(t){let e=[...t.rewritten.entries];if(t.dryRun||!t.changed)return{rewrittenEntries:e,auditEntryAdded:!1};let n=t.nextItemDocument??L(t.rewritten.finalDocument);return e.push(K({nowIso:S(),author:t.author,op:"history_redact",before:n,after:n,message:t.message})),{rewrittenEntries:e,auditEntryAdded:!0}}async function Ct(t){let e=[];return at({pmRoot:t.pmRoot,subject:t.subject,settings:t.settings,typeRegistry:t.typeRegistry,historyRawBeforeLock:t.historyRawBeforeLock,currentItemRawBeforeLock:t.currentItem.raw,operation:"history-redact",author:t.author,force:t.force,itemDocument:t.currentItem.document,applyRewrite:async({historyRawUnderLock:n})=>{let r=await it(t.pmRoot,t.author),o=new Set;t.currentItem.path&&o.add(t.currentItem.path),t.nextItem.path&&o.add(t.nextItem.path);let i=new Map;t.currentItem.path&&t.currentItem.raw!==null&&i.set(t.currentItem.path,t.currentItem.raw);let s=()=>{};try{try{t.nextItem.path&&t.nextItem.raw!==null&&t.nextItem.raw!==t.currentItem.raw&&await m(t.nextItem.path,t.nextItem.raw),t.currentItem.path&&(!t.nextItem.path||t.nextItem.path!==t.currentItem.path)&&await U.rm(t.currentItem.path,{force:!0}),await m(t.subject.historyPath,tt(t.rewrittenEntries))}catch(h){try{await St(t.subject.historyPath,n,o,i)}finally{await p(t.subject.historyPath)}throw h}await p(t.subject.historyPath);let a=t.nextItem.path??t.currentItem.path;a&&(e=await st({pmRoot:t.pmRoot,preferredFormat:t.settings.item_format,typeToFolder:t.typeRegistry.type_to_folder,schema:t.settings.schema,itemPath:a,...t.currentItem.path?{previousItemPath:t.currentItem.path}:{},document:t.nextItem.document}))}finally{await r().catch(a=>{s=()=>{throw a}})}s()},applyPostRewrite:async()=>[...e,...await Lt(t.subject.historyPath,[t.nextItem.path,t.currentItem.path])]})}async function St(t,e,n,r){e===null?await U.rm(t,{force:!0}):await m(t,e);for(let o of n){let i=r.get(o);i===void 0?await U.rm(o,{force:!0}):await m(o,i)}}async function Lt(t,e){let n=[],r=new Set(e.filter(o=>o!==null));for(let o of r)n.push(...await C({path:o,scope:"project",op:"history_redact"}));return n.push(...await C({path:t,scope:"project",op:"history_redact:history"})),n}async function Ut(t,e,n,r){let o=await P(t,e,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:j(t,o.id),located:o};let i=ot(e,n.id_prefix),s=nt(e),a=i===s?[i]:[i,s];for(let h of a){let f=j(t,h);if(await k(f))return{id:h,historyPath:f,located:null}}throw new l(`Item ${e} not found`,c.NOT_FOUND)}async function xe(t,e,n){let r=G(process.cwd(),n.path);if(!await k(B(r)))throw new l(`Tracker is not initialized at ${r}. Run pm init first.`,c.NOT_FOUND);let o=await rt(r),i=M(o,z()),s=e.replacement??"",a=s.length===0,h=a?"[redacted]":s,f=Rt(e.literal,e.regex),u=await Ut(r,t,o,i.type_to_folder);if(!await k(u.historyPath))throw new l(`No history stream exists for ${u.id}.`,c.NOT_FOUND);let ht=await H(u.historyPath),x=await J(u.historyPath,u.id);if(x.length===0)throw new l(`No history entries exist for ${u.id}; nothing to redact.`,c.USAGE);let b=kt(x),y=Pt(x,f,h),T=b.hashMismatchesBefore+b.hashMismatchesAfter,$=!!e.dryRun,R=y.replacements>0,E=[];T>0&&E.push(`history_redact_preexisting_hash_mismatches:${T}`),R||E.push("history_redact_no_matches");let g=await At(u,o),w=Tt({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:y.finalDocument}),ut=(g.path??null)!==(w.path??null)||(g.raw??null)!==(w.raw??null),N=V(e.author,o.author_default),ft=$t(e,y),{rewrittenEntries:O,auditEntryAdded:dt}=jt({rewritten:y,dryRun:$,changed:R,nextItemDocument:w.document,author:N,message:ft}),v=Z(O);if(!v.ok)throw new l(`history-redact produced an invalid rewritten chain (${v.errors.join(", ")}).`,c.GENERIC_FAILURE);return!$&&R&&E.push(...await Ct({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:ht,currentItem:g,nextItem:w,author:N,force:e.force,rewrittenEntries:O})),{id:u.id,dry_run:$,changed:R,patterns:{literal_count:f.filter(I=>I.kind==="literal").length,regex_count:f.filter(I=>I.kind==="regex").length,total_count:f.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:x.length,entries_changed:y.entriesChanged,replacements:y.replacements,hash_mismatches_before:b.hashMismatchesBefore,hash_mismatches_after:b.hashMismatchesAfter,preexisting_hash_mismatches:T,audit_entry_added:dt,verify_ok:v.ok,verify_errors:v.errors},item:{existed_before:g.path!==null,exists_after:w.path!==null,path_before:g.path,path_after:w.path,changed:ut},warnings:[...new Set(E)].sort((I,mt)=>I.localeCompare(mt)),generated_at:S()}}export{Mt as a,A as b,Gt as c,Bt as d,Zt as e,at as f,Ut as g,xe as h};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{$a as st,Aa as Z,Ca as tt,Ka as et,L as V,M as S,Ma as rt,Q as W,Ra as nt,Sa as ot,Za as it,bb as P,cb as D,fa as Y,ga as X,ha as J,k as z,n as C,na as p,qa as K,sa as _,ua as d,va as L,za as Q}from"./chunk-FF4MNAYB.js";import{E as M,K as G,N as B,O as q,Q as j,p as k,r as H,s as m}from"./chunk-2EXI2DKR.js";import{Y as c,Z as l}from"./chunk-GHTN2ILR.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="47c087c2-124a-58b7-a5c9-09403235f4a2")}catch{}})();function yt(t,e){let n=-1;return t.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new l(`History for this item contains invalid timestamp at entry ${o+1}.`,c.GENERIC_FAILURE);i<=e&&(n=o)}),n}function wt(t){let e=t[0]?.ts??null,n=t.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:e,last_timestamp:n}};return n!==null&&(r.examples=["1",String(t.length),n],r.valid_range.first_version=1,r.valid_range.last_version=t.length),{guidance:r,lastTimestamp:n}}function pt(t,e){let n={};if(e instanceof Error&&e.message.trim().length>0&&(n.reason=e.message.trim()),typeof e!="object"||e===null)return n;let r=e;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=t[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function Mt(t,e,n={}){let r=t.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=wt(e);if(!r)throw new l(`Missing ${o} target. Use a timestamp or version number.`,c.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>e.length)throw new l(`${i} version must be between 1 and ${e.length} for this item.`,c.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let h=Date.parse(r);if(!Number.isFinite(h))throw new l(`Invalid ${o} target "${t}". Use a positive version number or ISO timestamp.`,c.USAGE,s);let f=yt(e,h);if(f<0||n.allowFutureTimestamp!==!0&&h>Date.parse(a))throw new l(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,c.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:f}}function A(t,e,n,r){let o=Q(t,e);if(o.ok)return o.document;let i=pt(e,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new l(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,c.GENERIC_FAILURE)}function Gt(t,e){let n=structuredClone(_);for(let r=0;r<=e;r+=1){let o=t[r];if(!o)throw new l(`History target entry ${r+1} does not exist.`,c.USAGE);if(d(n)!==o.before_hash)throw new l(`History hash mismatch before replay at entry ${r+1}.`,c.GENERIC_FAILURE);if(n=A(n,o.patch,r+1,o.op),d(n)!==o.after_hash)throw new l(`History hash mismatch after replay at entry ${r+1}.`,c.GENERIC_FAILURE)}return n}function Bt(t,e){if(Object.keys(t.metadata).length>0)return t;throw new l(`History target ${e.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,c.USAGE)}import U from"node:fs/promises";import gt from"node:fs/promises";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="a2ec9f1a-aae2-59d5-8c9a-7acd8bf5a7a2")}catch{}})();function It(t){if(!t.itemDocument)return[];let e=t.itemDocument.metadata?.assignee?.trim();if(!e||e===t.author||t.force)return[];let n=et(t.settings);if(n.ownership_enforcement==="strict")throw new l(`Item ${t.subjectId} is assigned to ${e}. Use --force to override.`,c.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${t.subjectId}:${e}`]:[]}async function _t(t){let e=await H(t.subject.historyPath);if(e!==t.historyRawBeforeLock)throw new l(`History for ${t.subject.id} changed while waiting for lock; retry ${t.operation}.`,c.CONFLICT);let n=await P(t.pmRoot,t.subject.id,t.settings.id_prefix,t.settings.item_format,t.typeRegistry.type_to_folder),r=n?await D(n,{schema:t.settings.schema}):null;if((r?.raw??null)!==(t.currentItemRawBeforeLock??null))throw new l(`Item ${t.subject.id} changed while waiting for lock; retry ${t.operation}.`,c.CONFLICT);return{historyRawUnderLock:e,locatedUnderLock:n,loadedItemUnderLock:r}}async function Zt(t){let e=t.writeHistoryRaw??m;try{await e(t.historyPath,t.nextHistoryRaw),await p(t.historyPath)}catch(n){try{t.historyRawUnderLock===null?await gt.rm(t.historyPath,{force:!0}):await e(t.historyPath,t.historyRawUnderLock),await p(t.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function at(t){let e=[...It({itemDocument:t.itemDocument,subjectId:t.subject.id,author:t.author,force:t.force,settings:t.settings})],n=await W(t.pmRoot,t.subject.id,t.settings.locks.ttl_seconds,t.author,!!t.force,t.settings.governance.force_required_for_stale_lock,t.settings.locks.wait_ms);try{let r=await _t({pmRoot:t.pmRoot,subject:t.subject,settings:t.settings,typeRegistry:t.typeRegistry,historyRawBeforeLock:t.historyRawBeforeLock,currentItemRawBeforeLock:t.currentItemRawBeforeLock,operation:t.operation});return await t.applyRewrite(r),t.applyPostRewrite&&e.push(...await t.applyPostRewrite(r)),e}finally{await n()}}(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="cd2a27ec-0f12-591d-ab34-529ddda05063")}catch{}})();function ct(t){return Array.isArray(t)?t:typeof t=="string"?[t]:[]}function xt(t){let e=[];for(let n of t)e.includes(n)||e.push(n);return e.includes("g")||e.push("g"),e.join("")}function bt(t){let e=t.trim();if(e.length===0)throw new l("history-redact --regex requires a non-empty pattern.",c.USAGE);let n=e,r="g";if(e.startsWith("/")&&e.length>1){let o=e.lastIndexOf("/");o>0&&(n=e.slice(1,o),r=xt(e.slice(o+1)))}if(n.length===0)throw new l("history-redact --regex cannot use an empty pattern.",c.USAGE);try{new RegExp(n,r)}catch{throw new l("Invalid --regex value; provide a valid JavaScript regular expression.",c.USAGE)}return{kind:"regex",source:n,flags:r}}function Rt(t,e){let n=[...new Set(ct(t).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(ct(e).map(i=>i.trim()))].filter(i=>i.length>0).map(bt),o=[...n,...r];if(o.length===0)throw new l("history-redact requires at least one matcher via --literal or --regex.",c.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function Et(t,e,n){if(e.length===0)return{value:t,replacements:0};let r=0,o=0;for(;r<=t.length;){let i=t.indexOf(e,r);if(i===-1)break;o+=1,r=i+Math.max(1,e.length)}return o===0?{value:t,replacements:0}:{value:t.split(e).join(n),replacements:o}}function vt(t,e,n){let r=new RegExp(e.source,e.flags),o=[...t.matchAll(r)];return o.length===0?{value:t,replacements:0}:{value:t.replace(r,n),replacements:o.length}}function lt(t,e,n){let r=t,o=0;for(let i of e){let s=i.kind==="literal"?Et(r,i.value,n):vt(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function F(t,e,n){if(typeof t=="string")return lt(t,e,n);if(Array.isArray(t)){let r=0;return{value:t.map(i=>{let s=F(i,e,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof t=="object"&&t!==null){let r=0,o={};for(let[i,s]of Object.entries(t)){let a=F(s,e,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:t,replacements:0}}function kt(t){let e=structuredClone(_),n=0,r=0;for(let o=0;o<t.length;o+=1){let i=t[o];d(e)!==i.before_hash&&(n+=1),e=A(e,i.patch,o+1,i.op),d(e)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:e}}function Ht(t,e,n){let r=0,o=!1,i=t.message;if(typeof t.message=="string"){let a=lt(t.message,e,n);i=a.value,r+=a.replacements,a.replacements>0&&(o=!0)}let s=t.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let h=F(a.value,e,n);return r+=h.replacements,h.replacements>0?(o=!0,{...a,value:h.value}):a});return{entry:{...t,message:i,patch:s},replacements:r,changed:o}}function Pt(t,e,n){let r=structuredClone(_),o=0,i=0,s=[];for(let a=0;a<t.length;a+=1){let h=Ht(t[a],e,n);i+=h.replacements,h.changed&&(o+=1);let f=d(r);r=A(r,h.entry.patch,a+1,h.entry.op);let u=d(r);s.push({...h.entry,before_hash:f,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function Dt(t){return Object.keys(t.metadata).length>0}async function At(t,e){let n=t.located?.itemPath??null;if(!t.located)return{raw:null,path:n,document:null};let r=await D(t.located,{schema:e.schema});return{raw:r.raw,path:n,document:r.document}}function Tt(t){if(!Dt(t.finalDocument))return{raw:null,path:null,document:null};let e=X(L(t.finalDocument),{schema:t.settings.schema});if(e.metadata.id!==t.subject.id)throw new l("history-redact would change the item id; narrow your patterns.",c.USAGE);return{document:e,path:q(t.pmRoot,e.metadata.type,t.subject.id,"toon",t.typeToFolder),raw:Y(e,{format:"toon",schema:t.settings.schema})}}function $t(t,e){return typeof t.message=="string"&&t.message.trim().length>0?t.message:`history-redact replaced ${e.replacements} match(es) across ${e.entriesChanged} entr${e.entriesChanged===1?"y":"ies"}.`}function jt(t){let e=[...t.rewritten.entries];if(t.dryRun||!t.changed)return{rewrittenEntries:e,auditEntryAdded:!1};let n=t.nextItemDocument??L(t.rewritten.finalDocument);return e.push(K({nowIso:S(),author:t.author,op:"history_redact",before:n,after:n,message:t.message})),{rewrittenEntries:e,auditEntryAdded:!0}}async function Ct(t){let e=[];return at({pmRoot:t.pmRoot,subject:t.subject,settings:t.settings,typeRegistry:t.typeRegistry,historyRawBeforeLock:t.historyRawBeforeLock,currentItemRawBeforeLock:t.currentItem.raw,operation:"history-redact",author:t.author,force:t.force,itemDocument:t.currentItem.document,applyRewrite:async({historyRawUnderLock:n})=>{let r=await it(t.pmRoot,t.author),o=new Set;t.currentItem.path&&o.add(t.currentItem.path),t.nextItem.path&&o.add(t.nextItem.path);let i=new Map;t.currentItem.path&&t.currentItem.raw!==null&&i.set(t.currentItem.path,t.currentItem.raw);let s=()=>{};try{try{t.nextItem.path&&t.nextItem.raw!==null&&t.nextItem.raw!==t.currentItem.raw&&await m(t.nextItem.path,t.nextItem.raw),t.currentItem.path&&(!t.nextItem.path||t.nextItem.path!==t.currentItem.path)&&await U.rm(t.currentItem.path,{force:!0}),await m(t.subject.historyPath,tt(t.rewrittenEntries))}catch(h){try{await St(t.subject.historyPath,n,o,i)}finally{await p(t.subject.historyPath)}throw h}await p(t.subject.historyPath);let a=t.nextItem.path??t.currentItem.path;a&&(e=await st({pmRoot:t.pmRoot,preferredFormat:t.settings.item_format,typeToFolder:t.typeRegistry.type_to_folder,schema:t.settings.schema,itemPath:a,...t.currentItem.path?{previousItemPath:t.currentItem.path}:{},document:t.nextItem.document}))}finally{await r().catch(a=>{s=()=>{throw a}})}s()},applyPostRewrite:async()=>[...e,...await Lt(t.subject.historyPath,[t.nextItem.path,t.currentItem.path])]})}async function St(t,e,n,r){e===null?await U.rm(t,{force:!0}):await m(t,e);for(let o of n){let i=r.get(o);i===void 0?await U.rm(o,{force:!0}):await m(o,i)}}async function Lt(t,e){let n=[],r=new Set(e.filter(o=>o!==null));for(let o of r)n.push(...await C({path:o,scope:"project",op:"history_redact"}));return n.push(...await C({path:t,scope:"project",op:"history_redact:history"})),n}async function Ut(t,e,n,r){let o=await P(t,e,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:j(t,o.id),located:o};let i=ot(e,n.id_prefix),s=nt(e),a=i===s?[i]:[i,s];for(let h of a){let f=j(t,h);if(await k(f))return{id:h,historyPath:f,located:null}}throw new l(`Item ${e} not found`,c.NOT_FOUND)}async function xe(t,e,n){let r=G(process.cwd(),n.path);if(!await k(B(r)))throw new l(`Tracker is not initialized at ${r}. Run pm init first.`,c.NOT_FOUND);let o=await rt(r),i=M(o,z()),s=e.replacement??"",a=s.length===0,h=a?"[redacted]":s,f=Rt(e.literal,e.regex),u=await Ut(r,t,o,i.type_to_folder);if(!await k(u.historyPath))throw new l(`No history stream exists for ${u.id}.`,c.NOT_FOUND);let ht=await H(u.historyPath),x=await J(u.historyPath,u.id);if(x.length===0)throw new l(`No history entries exist for ${u.id}; nothing to redact.`,c.USAGE);let b=kt(x),y=Pt(x,f,h),T=b.hashMismatchesBefore+b.hashMismatchesAfter,$=!!e.dryRun,R=y.replacements>0,E=[];T>0&&E.push(`history_redact_preexisting_hash_mismatches:${T}`),R||E.push("history_redact_no_matches");let g=await At(u,o),w=Tt({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:y.finalDocument}),ut=(g.path??null)!==(w.path??null)||(g.raw??null)!==(w.raw??null),N=V(e.author,o.author_default),ft=$t(e,y),{rewrittenEntries:O,auditEntryAdded:dt}=jt({rewritten:y,dryRun:$,changed:R,nextItemDocument:w.document,author:N,message:ft}),v=Z(O);if(!v.ok)throw new l(`history-redact produced an invalid rewritten chain (${v.errors.join(", ")}).`,c.GENERIC_FAILURE);return!$&&R&&E.push(...await Ct({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:ht,currentItem:g,nextItem:w,author:N,force:e.force,rewrittenEntries:O})),{id:u.id,dry_run:$,changed:R,patterns:{literal_count:f.filter(I=>I.kind==="literal").length,regex_count:f.filter(I=>I.kind==="regex").length,total_count:f.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:x.length,entries_changed:y.entriesChanged,replacements:y.replacements,hash_mismatches_before:b.hashMismatchesBefore,hash_mismatches_after:b.hashMismatchesAfter,preexisting_hash_mismatches:T,audit_entry_added:dt,verify_ok:v.ok,verify_errors:v.errors},item:{existed_before:g.path!==null,exists_after:w.path!==null,path_before:g.path,path_after:w.path,changed:ut},warnings:[...new Set(E)].sort((I,mt)=>I.localeCompare(mt)),generated_at:S()}}export{Mt as a,A as b,Gt as c,Bt as d,Zt as e,at as f,Ut as g,xe as h};
|
|
2
|
+
//# sourceMappingURL=chunk-34SX654S.js.map
|