@unbrained/pm-cli 2026.9.7 → 2026.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/pm-developer/SKILL.md +12 -4
- package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +19 -10
- package/.agents/skills/pm-extensions/SKILL.md +6 -0
- package/.agents/skills/pm-sdk/SKILL.md +11 -2
- package/.agents/skills/pm-user/SKILL.md +7 -2
- package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +95 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +231 -182
- package/dist/cli/after-command-context-usage.js +1 -48
- package/dist/cli/argv-utils.js +1 -40
- package/dist/cli/bootstrap-args.js +1 -9
- package/dist/cli/bundle-integrity.js +2 -110
- package/dist/cli/commander-usage.js +11 -771
- package/dist/cli/commands/activity.js +1 -9
- package/dist/cli/commands/aggregate.js +1 -5
- package/dist/cli/commands/append.js +1 -5
- package/dist/cli/commands/claim.js +1 -5
- package/dist/cli/commands/close-many.js +1 -5
- package/dist/cli/commands/close.js +1 -9
- package/dist/cli/commands/comments.js +1 -5
- package/dist/cli/commands/config.js +1 -9
- package/dist/cli/commands/context.js +1 -9
- package/dist/cli/commands/contracts.js +1 -5
- package/dist/cli/commands/copy.js +1 -9
- package/dist/cli/commands/create.js +1 -9
- package/dist/cli/commands/delete.js +1 -9
- package/dist/cli/commands/deps.js +1 -9
- package/dist/cli/commands/docs.js +1 -9
- package/dist/cli/commands/duplicates.js +1 -9
- package/dist/cli/commands/eval.js +1 -9
- package/dist/cli/commands/extension/describe.js +1 -5
- package/dist/cli/commands/extension/scaffold.js +1 -5
- package/dist/cli/commands/extension/shared.js +1 -5
- package/dist/cli/commands/extension.js +1 -9
- package/dist/cli/commands/files.js +1 -9
- package/dist/cli/commands/focus.js +1 -9
- package/dist/cli/commands/gc.js +1 -9
- package/dist/cli/commands/get.js +1 -9
- package/dist/cli/commands/graph.js +1 -10
- package/dist/cli/commands/health.js +1 -9
- package/dist/cli/commands/history-compact.js +1 -10
- package/dist/cli/commands/history-redact.js +1 -11
- package/dist/cli/commands/history-repair.js +1 -10
- package/dist/cli/commands/history.js +1 -5
- package/dist/cli/commands/index.js +1 -58
- package/dist/cli/commands/init-agent-guidance.js +1 -9
- package/dist/cli/commands/init.js +1 -9
- package/dist/cli/commands/learnings.js +1 -5
- package/dist/cli/commands/lifecycle-transitions.js +1 -5
- package/dist/cli/commands/list.js +1 -9
- package/dist/cli/commands/merge.js +1 -11
- package/dist/cli/commands/next.js +1 -9
- package/dist/cli/commands/notes.js +1 -5
- package/dist/cli/commands/plan.js +1 -9
- package/dist/cli/commands/profile.js +1 -9
- package/dist/cli/commands/restore.js +1 -9
- package/dist/cli/commands/scheduling-shortcuts.js +1 -9
- package/dist/cli/commands/schema.js +1 -10
- package/dist/cli/commands/search.js +1 -9
- package/dist/cli/commands/stats.js +1 -9
- package/dist/cli/commands/telemetry.js +1 -9
- package/dist/cli/commands/test-all.js +1 -9
- package/dist/cli/commands/test-runs.js +1 -9
- package/dist/cli/commands/test.js +1 -9
- package/dist/cli/commands/update-many.js +1 -5
- package/dist/cli/commands/update.js +1 -9
- package/dist/cli/commands/upgrade.js +1 -5
- package/dist/cli/commands/validate.js +1 -15
- package/dist/cli/context-intent-invocation.js +1 -20
- package/dist/cli/description-stdin.js +1 -17
- package/dist/cli/error-guidance.js +1 -1353
- package/dist/cli/extension-command-help.js +5 -636
- package/dist/cli/extension-command-options.js +1 -427
- package/dist/cli/extension-recovery.js +1 -126
- package/dist/cli/help-content.js +2 -1001
- package/dist/cli/help-json-payload.js +4 -570
- package/dist/cli/main.d.ts +4 -0
- package/dist/cli/main.js +5 -2573
- package/dist/cli/migration-gates.js +1 -289
- package/dist/cli/public.js +1 -20
- package/dist/cli/register-annotations.js +1 -270
- package/dist/cli/register-assurance.js +1 -62
- package/dist/cli/register-files-lookup.js +1 -56
- package/dist/cli/register-history-activity.d.ts +8 -0
- package/dist/cli/register-history-activity.js +2 -0
- package/dist/cli/register-history-author.js +1 -38
- package/dist/cli/register-history-maintenance.d.ts +9 -0
- package/dist/cli/register-history-maintenance.js +2 -0
- package/dist/cli/register-list-query.js +10 -943
- package/dist/cli/register-mutation-options.js +1 -9
- package/dist/cli/register-mutation.d.ts +0 -5
- package/dist/cli/register-mutation.js +19 -1893
- package/dist/cli/register-operations.js +1 -920
- package/dist/cli/register-setup.js +1 -716
- package/dist/cli/register-structured-mutation.js +1 -196
- package/dist/cli/registration-helpers.js +1 -5
- package/dist/cli/runtime-compatibility-boundary.js +4 -42
- package/dist/cli/schema-registration-helpers.js +1 -73
- package/dist/cli/search-refresh.js +1 -13
- package/dist/cli/stats-analytics-json.js +1 -68
- package/dist/cli/telemetry-flush.js +1 -10
- package/dist/cli-bundle/bundle-manifest.json +164 -156
- package/dist/cli-bundle/chunks/{chunk-NPN5I67J.js → chunk-3IPRM75M.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-4VL5P22L.js +2 -0
- package/dist/cli-bundle/chunks/chunk-AAFBV3U3.js +29 -0
- package/dist/cli-bundle/chunks/chunk-D3YVILJJ.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-WYRZZ5ZE.js → chunk-DEZPZOQ7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ECBLPN7B.js +3 -0
- package/dist/cli-bundle/chunks/chunk-J6ERHBV2.js +235 -0
- package/dist/cli-bundle/chunks/chunk-JUNJ5EKI.js +2 -0
- package/dist/cli-bundle/chunks/chunk-L5RCDKQ2.js +2 -0
- package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +2 -0
- package/dist/cli-bundle/chunks/chunk-OHNLSGGV.js +79 -0
- package/dist/cli-bundle/chunks/chunk-WQKMSFBV.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-BAX2BYUW.js → chunk-XZ6T7YPP.js} +256 -150
- package/dist/cli-bundle/chunks/{chunk-JT6XF6GE.js → chunk-Z3XVXUVF.js} +4 -4
- package/dist/cli-bundle/chunks/register-list-query-UIHRCS6D.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-WHWMGRVX.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-64YZYTC5.js +2 -0
- package/dist/cli-bundle/chunks/register-setup-PERI45EM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2W4XIYOB.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2WSBXIGF.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-5FHTCOHS.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-7N6DOREF.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3BZEOXLT.js → chunk-7PC4R5QB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-BUCJUZVG.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-FE3BABLJ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IWITF53W.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-OQUGRHKV.js +10 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M6PBRFSH.js → chunk-PNKIANFZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LIJIA4TY.js → chunk-QQQ4SAUO.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-TTYXF5YD.js +177 -0
- package/dist/cli-bundle/focused-chunks/chunk-XNR3DM6J.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-XSS3APUF.js +9 -0
- package/dist/cli-bundle/focused-chunks/chunk-YCDQ2N23.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-YJUXGS57.js +20 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZTCE4UO6.js +58 -0
- package/dist/cli-bundle/main.js +20 -20
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +37 -37
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +42 -42
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/cli.js +1 -104
- package/dist/core/checkpoint/checkpoint-gc.js +1 -169
- package/dist/core/checkpoint/mutation-checkpoint.js +2 -133
- package/dist/core/config/nested-settings.js +1 -534
- package/dist/core/config/positional-value.js +1 -109
- package/dist/core/diagnostics/remediation.js +1 -506
- package/dist/core/extensions/activation-summary-markdown.js +2 -145
- package/dist/core/extensions/activation-summary.js +1 -92
- package/dist/core/extensions/activation-transaction.js +1 -46
- package/dist/core/extensions/capability-usage.js +1 -173
- package/dist/core/extensions/command-hook-context.js +1 -13
- package/dist/core/extensions/command-metadata-contract.js +1 -22
- package/dist/core/extensions/command-visibility-tier.js +1 -29
- package/dist/core/extensions/contribution-inventory.js +1 -173
- package/dist/core/extensions/exporter-output-contract.js +1 -66
- package/dist/core/extensions/extension-candidate.js +1 -18
- package/dist/core/extensions/extension-capability-aliases.js +1 -158
- package/dist/core/extensions/extension-hook-runtime.js +1 -699
- package/dist/core/extensions/extension-policy.js +1 -599
- package/dist/core/extensions/extension-registries.js +1 -62
- package/dist/core/extensions/extension-runtime-helpers.js +1 -33
- package/dist/core/extensions/extension-types.js +1 -102
- package/dist/core/extensions/flag-definition-validation.js +1 -52
- package/dist/core/extensions/flag-value-types.js +1 -64
- package/dist/core/extensions/index.js +1 -526
- package/dist/core/extensions/item-field-types.js +1 -39
- package/dist/core/extensions/item-fields.js +1 -261
- package/dist/core/extensions/loader.js +1 -2223
- package/dist/core/extensions/manifest-schema.js +1 -69
- package/dist/core/extensions/module-graph-snapshot.js +1 -33
- package/dist/core/extensions/preflight-ownership.js +1 -41
- package/dist/core/extensions/registration-validation.js +1 -82
- package/dist/core/extensions/registration-values.js +1 -209
- package/dist/core/extensions/reserved-host-flags.js +1 -36
- package/dist/core/extensions/runtime-registrations.js +1 -67
- package/dist/core/extensions/service-ownership.js +1 -19
- package/dist/core/extensions/version-compat.js +1 -216
- package/dist/core/fs/fs-utils.js +2 -158
- package/dist/core/fs/host-environment-errors.js +1 -141
- package/dist/core/fs/index.js +1 -9
- package/dist/core/fs/path-utils.js +1 -17
- package/dist/core/governance/content-fields.js +1 -160
- package/dist/core/governance/issue-codes.js +1 -151
- package/dist/core/governance/metadata-coverage.js +1 -358
- package/dist/core/history/drift-cache.js +3 -72
- package/dist/core/history/drift-scan.js +1 -342
- package/dist/core/history/event-classification.js +1 -109
- package/dist/core/history/event-index.js +8 -784
- package/dist/core/history/history-compact-bulk.js +1 -104
- package/dist/core/history/history-diff.js +1 -158
- package/dist/core/history/history-rewrite.d.ts +6 -1
- package/dist/core/history/history-rewrite.js +1 -107
- package/dist/core/history/history-storage-stats.js +1 -102
- package/dist/core/history/history-stream-policy.js +1 -62
- package/dist/core/history/history.js +2 -617
- package/dist/core/history/identity.js +1 -30
- package/dist/core/history/index.js +1 -9
- package/dist/core/history/projection.js +1 -196
- package/dist/core/history/read.d.ts +9 -0
- package/dist/core/history/read.js +1 -57
- package/dist/core/history/replay.js +2 -439
- package/dist/core/history/version-address.js +1 -32
- package/dist/core/history/workspace-history.js +2 -433
- package/dist/core/io/body-file.js +1 -62
- package/dist/core/io/bulk-ids-input.js +1 -112
- package/dist/core/item/actionability.js +1 -327
- package/dist/core/item/dependency-reference.js +1 -20
- package/dist/core/item/id.js +1 -112
- package/dist/core/item/index.js +1 -12
- package/dist/core/item/item-format-version.js +1 -78
- package/dist/core/item/item-format.js +5 -1473
- package/dist/core/item/item-record.js +1 -23
- package/dist/core/item/item-type-definition.js +1 -133
- package/dist/core/item/parent-reference-policy.js +1 -57
- package/dist/core/item/parse.js +2 -603
- package/dist/core/item/plan-lifecycle.js +1 -19
- package/dist/core/item/priority.js +1 -61
- package/dist/core/item/sprint-release-format.js +1 -38
- package/dist/core/item/status-filter.js +1 -115
- package/dist/core/item/status.js +1 -43
- package/dist/core/item/toon-decode.js +1 -29
- package/dist/core/item/type-registry.js +1 -715
- package/dist/core/item/type-synonyms.js +1 -38
- package/dist/core/lock/index.js +1 -9
- package/dist/core/lock/lock-gc.js +1 -240
- package/dist/core/lock/lock.js +3 -590
- package/dist/core/output/mutation-projection.js +1 -217
- package/dist/core/output/output-control.js +1 -25
- package/dist/core/output/output.js +11 -494
- package/dist/core/output/query-summary.js +1 -58
- package/dist/core/output/tabular.js +1 -77
- package/dist/core/packages/manifest.js +1 -244
- package/dist/core/packages/root.js +1 -84
- package/dist/core/policy/workflow-policy-schema.d.ts +312 -0
- package/dist/core/policy/workflow-policy-schema.js +2 -0
- package/dist/core/policy/workflow-policy-store.d.ts +24 -0
- package/dist/core/policy/workflow-policy-store.js +2 -0
- package/dist/core/policy/workflow-policy.d.ts +139 -0
- package/dist/core/policy/workflow-policy.js +2 -0
- package/dist/core/profile/profile-describe.js +1 -83
- package/dist/core/profile/profile-lint.js +1 -415
- package/dist/core/profile/profile-plan.js +0 -0
- package/dist/core/profile/profile-presets.js +1 -370
- package/dist/core/reproducibility/context.js +1 -82
- package/dist/core/schema/fields-file.js +2 -288
- package/dist/core/schema/item-types-file.js +2 -296
- package/dist/core/schema/runtime-field-filters.js +1 -49
- package/dist/core/schema/runtime-field-values.js +1 -313
- package/dist/core/schema/runtime-schema.js +2 -826
- package/dist/core/schema/status-defs-file.js +2 -227
- package/dist/core/schema/status-token.js +1 -31
- package/dist/core/schema/type-inference.js +1 -95
- package/dist/core/schema/type-presets.js +1 -87
- package/dist/core/schema/type-workflows.js +1 -104
- package/dist/core/search/background-refresh.js +2 -286
- package/dist/core/search/bm25.js +1 -146
- package/dist/core/search/cache.js +2 -534
- package/dist/core/search/corpus.js +1 -311
- package/dist/core/search/embedding-batches.js +1 -163
- package/dist/core/search/eval.js +1 -225
- package/dist/core/search/http-client.js +1 -75
- package/dist/core/search/providers.js +1 -242
- package/dist/core/search/relevance.js +1 -244
- package/dist/core/search/semantic-defaults.js +1 -199
- package/dist/core/search/staleness.js +1 -30
- package/dist/core/search/vector-stores.js +2 -664
- package/dist/core/search/vectorization-metadata.js +1 -81
- package/dist/core/sentry/helpers.js +1 -272
- package/dist/core/sentry/instrument.js +1 -387
- package/dist/core/session/session-state.js +1 -260
- package/dist/core/shared/agent-session-context.js +1 -133
- package/dist/core/shared/author.js +1 -1172
- package/dist/core/shared/command-types.js +1 -4
- package/dist/core/shared/conflict-markers.js +1 -31
- package/dist/core/shared/constants.js +1 -405
- package/dist/core/shared/errors.js +1 -20
- package/dist/core/shared/html-entity-decode.js +1 -131
- package/dist/core/shared/index.js +1 -12
- package/dist/core/shared/item-metadata-contract.js +1 -89
- package/dist/core/shared/lazy-module.js +1 -16
- package/dist/core/shared/levenshtein.js +1 -61
- package/dist/core/shared/memo.js +1 -19
- package/dist/core/shared/numeric-parsers.js +1 -20
- package/dist/core/shared/option-alias-visibility.js +1 -67
- package/dist/core/shared/primitives.js +1 -127
- package/dist/core/shared/serial-queue.js +1 -79
- package/dist/core/shared/serialization.js +1 -210
- package/dist/core/shared/split-comma-list.js +1 -30
- package/dist/core/shared/text-normalization.js +1 -38
- package/dist/core/shared/time.js +1 -306
- package/dist/core/store/index.js +1 -12
- package/dist/core/store/item-format-migration.js +1 -125
- package/dist/core/store/item-metadata-cache.js +1 -1116
- package/dist/core/store/item-metadata-query-index.js +9 -394
- package/dist/core/store/item-metadata-read-work.js +1 -43
- package/dist/core/store/item-store.js +1 -693
- package/dist/core/store/paths.d.ts +1 -1
- package/dist/core/store/paths.js +1 -214
- package/dist/core/store/settings-read-cache.js +1 -85
- package/dist/core/store/settings-validator.d.ts +1 -0
- package/dist/core/store/settings-validator.js +1 -421
- package/dist/core/store/settings.js +3 -1309
- package/dist/core/store/tracker-preflight.js +1 -141
- package/dist/core/telemetry/consent.js +5 -108
- package/dist/core/telemetry/observability.js +1 -246
- package/dist/core/telemetry/runtime.js +4 -1988
- package/dist/core/test/background-runs.js +4 -945
- package/dist/core/test/item-test-run-tracking.js +1 -63
- package/dist/core/test/run-selectors.js +1 -120
- package/dist/core/validate/estimate-defaults.js +1 -89
- package/dist/core/validate/fix-planning.js +1 -189
- package/dist/core/validate/linked-artifact-reference.js +1 -36
- package/dist/core/validate/missing-by-type.js +1 -34
- package/dist/core/validate/missing-link-owners.js +1 -95
- package/dist/core/validate/stale-file-classification.js +1 -82
- package/dist/mcp/http-server.js +5 -448
- package/dist/mcp/legacy-adapter.js +1 -77
- package/dist/mcp/runtime-capabilities.js +1 -200
- package/dist/mcp/server.js +4 -1233
- package/dist/mcp/tool-definitions.js +1 -804
- package/dist/sdk/actionability.js +1 -13
- package/dist/sdk/agent/closed-domain-contracts.js +1 -161
- package/dist/sdk/agent/command-recovery.js +1 -59
- package/dist/sdk/agent/command-suggestions.js +1 -66
- package/dist/sdk/agent/create-option-policy.js +1 -31
- package/dist/sdk/agent/identity-config.js +1 -106
- package/dist/sdk/agent/item-addressing.js +1 -207
- package/dist/sdk/agent/refusal-closure-census.js +1 -151
- package/dist/sdk/agent/refusal-closure.js +1 -133
- package/dist/sdk/agent/refusal-corpus-contracts.js +1 -193
- package/dist/sdk/agent/refusal-reachability.js +1 -593
- package/dist/sdk/agent/subcommand-recovery.js +1 -83
- package/dist/sdk/agent/task-transcript-contracts.js +1 -197
- package/dist/sdk/agent/tracker-preflight-contracts.js +1 -126
- package/dist/sdk/agent-capability-contracts.js +1 -428
- package/dist/sdk/agent-session-context.js +1 -9
- package/dist/sdk/annotations.js +1 -448
- package/dist/sdk/author-attribution.js +1 -468
- package/dist/sdk/authoring.js +1 -20
- package/dist/sdk/cli-bootstrap.js +1 -838
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/agent-output-contracts.js +4 -476
- package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -79
- package/dist/sdk/cli-contracts/command-aliases.d.ts +4 -0
- package/dist/sdk/cli-contracts/command-aliases.js +1 -107
- package/dist/sdk/cli-contracts/command-exit-contracts.js +1 -151
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1081
- package/dist/sdk/cli-contracts/commander-types.js +1 -159
- package/dist/sdk/cli-contracts/completeness.js +1 -393
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +1 -222
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1947
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -347
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -986
- package/dist/sdk/cli-contracts/registration-helpers.js +7 -990
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +5 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -2090
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +1 -324
- package/dist/sdk/cli-contracts/string-lists.js +1 -16
- package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -461
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -2167
- package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1664
- package/dist/sdk/cli-contracts/typed-action-inputs.js +1 -4
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -17
- package/dist/sdk/cli-program.js +1 -49
- package/dist/sdk/command-line.d.ts +2 -5
- package/dist/sdk/command-line.js +1 -78
- package/dist/sdk/comments.js +1 -133
- package/dist/sdk/compile-cache.js +1 -73
- package/dist/sdk/completion.js +174 -839
- package/dist/sdk/compose.js +1 -1090
- package/dist/sdk/config.js +1 -1204
- package/dist/sdk/context/recency.js +1 -33
- package/dist/sdk/context/semantic-session-attribution.js +1 -82
- package/dist/sdk/context/usage-egress.js +1 -29
- package/dist/sdk/context/usage-ledger.js +3 -185
- package/dist/sdk/context-intent-contracts.js +1 -709
- package/dist/sdk/context-intent-runtime.js +1 -115
- package/dist/sdk/context-packing.js +1 -218
- package/dist/sdk/context-relevance.js +1 -503
- package/dist/sdk/context-signal-store.js +2 -426
- package/dist/sdk/context-usage.js +1 -367
- package/dist/sdk/contracts.js +1 -23
- package/dist/sdk/core-governance.js +1 -14
- package/dist/sdk/core.js +1 -14
- package/dist/sdk/corpus-shape.js +1 -401
- package/dist/sdk/define.js +1 -220
- package/dist/sdk/dependencies.js +1 -718
- package/dist/sdk/dependency-flag-validation.js +1 -156
- package/dist/sdk/dependency-provenance.js +1 -135
- package/dist/sdk/docs.js +1 -14
- package/dist/sdk/duplicates.js +1 -40
- package/dist/sdk/environment/agent-environment.js +1 -466
- package/dist/sdk/environment/host-environment-errors.js +1 -8
- package/dist/sdk/environment/project-runtime-compatibility.js +1 -481
- package/dist/sdk/environment/source-context.js +1 -28
- package/dist/sdk/environment/tracker-preflight.js +1 -9
- package/dist/sdk/error-code-catalog.js +1 -153
- package/dist/sdk/error-runtime.js +1 -58
- package/dist/sdk/errors.js +1 -58
- package/dist/sdk/eval.js +1 -190
- package/dist/sdk/extension/author-manifest.js +1 -92
- package/dist/sdk/extension/bundled-catalog.js +1 -332
- package/dist/sdk/extension/concurrency.js +1 -25
- package/dist/sdk/extension/copy-scope.d.ts +2 -0
- package/dist/sdk/extension/copy-scope.js +2 -0
- package/dist/sdk/extension/custom-field-collisions.js +1 -30
- package/dist/sdk/extension/describe.js +3 -189
- package/dist/sdk/extension/doctor.js +1 -606
- package/dist/sdk/extension/install-plan.d.ts +69 -0
- package/dist/sdk/extension/install-plan.js +2 -0
- package/dist/sdk/extension/install-receipts.d.ts +7 -0
- package/dist/sdk/extension/install-receipts.js +2 -0
- package/dist/sdk/extension/install-runtime.js +3 -313
- package/dist/sdk/extension/install-snapshot.js +1 -66
- package/dist/sdk/extension/install-sources.js +5 -1057
- package/dist/sdk/extension/managed-state.js +2 -252
- package/dist/sdk/extension/migrations.js +2 -174
- package/dist/sdk/extension/output-ownership.js +1 -25
- package/dist/sdk/extension/runtime-summary.js +1 -18
- package/dist/sdk/extension/scaffold.js +4 -2308
- package/dist/sdk/extension/shared.js +1 -147
- package/dist/sdk/extension/source-resolution.js +1 -65
- package/dist/sdk/extension/update-check.js +1 -67
- package/dist/sdk/extension-command-context.js +1 -44
- package/dist/sdk/extension-contracts.js +1 -73
- package/dist/sdk/extension.d.ts +7 -2
- package/dist/sdk/extension.js +1 -2196
- package/dist/sdk/files.js +1 -535
- package/dist/sdk/flag-invocation-contracts.d.ts +0 -5
- package/dist/sdk/flag-invocation-contracts.js +1 -344
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -2224
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -2236
- package/dist/sdk/generated-error-code-catalog.js +1 -16
- package/dist/sdk/governance/assurance-action-contracts.js +1 -4
- package/dist/sdk/governance/assurance-action.js +1 -411
- package/dist/sdk/governance/assurance-limits.js +1 -10
- package/dist/sdk/governance/assurance-mutation-error.js +1 -81
- package/dist/sdk/governance/assurance-presets.js +1 -135
- package/dist/sdk/governance/assurance-runtime.js +1 -238
- package/dist/sdk/governance/assurance.js +4 -1182
- package/dist/sdk/governance/boundary-fixtures.js +1 -200
- package/dist/sdk/governance/coverage-assurance.js +1 -60
- package/dist/sdk/governance/defect-recurrence-coverage.js +1 -188
- package/dist/sdk/governance/defect-recurrence-graph.js +1 -120
- package/dist/sdk/governance/defect-recurrence-signals.js +1 -24
- package/dist/sdk/governance/defect-recurrence.js +1 -623
- package/dist/sdk/governance/extension-host-version.js +1 -115
- package/dist/sdk/governance/gc.js +1 -368
- package/dist/sdk/governance/health.js +1 -2367
- package/dist/sdk/governance/hierarchy-validation.js +1 -108
- package/dist/sdk/governance/linked-file-report.js +1 -71
- package/dist/sdk/governance/merge-receipt-history.js +1 -206
- package/dist/sdk/governance/provenance-health.js +1 -282
- package/dist/sdk/governance/reindex.js +4 -761
- package/dist/sdk/governance/stale-work.js +1 -82
- package/dist/sdk/governance/status-role-diagnostics.js +1 -35
- package/dist/sdk/governance/storage-integrity.js +1 -280
- package/dist/sdk/governance/tracked-runtime-cache.js +1 -106
- package/dist/sdk/governance/upgrade.js +2 -327
- package/dist/sdk/governance/validate-history-drift.js +1 -81
- package/dist/sdk/governance/validate-item-reader.js +1 -17
- package/dist/sdk/governance/validate-normalization.js +1 -36
- package/dist/sdk/governance/validate.d.ts +3 -1
- package/dist/sdk/governance/validate.js +1 -2261
- package/dist/sdk/governance/workflow-completeness.d.ts +32 -0
- package/dist/sdk/governance/workflow-completeness.js +2 -0
- package/dist/sdk/governance/workflow-policy.d.ts +47 -0
- package/dist/sdk/governance/workflow-policy.js +4 -0
- package/dist/sdk/governance/workspace-position.js +1 -163
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +1 -31
- package/dist/sdk/graph/adapter.js +1 -181
- package/dist/sdk/graph/analytics.js +1 -474
- package/dist/sdk/graph/assembly.js +1 -377
- package/dist/sdk/graph/cache.js +1 -160
- package/dist/sdk/graph/centrality.js +1 -258
- package/dist/sdk/graph/conformance.js +1 -130
- package/dist/sdk/graph/deadline-scheduling.d.ts +90 -0
- package/dist/sdk/graph/deadline-scheduling.js +2 -0
- package/dist/sdk/graph/durable-cache.d.ts +1 -1
- package/dist/sdk/graph/durable-cache.js +1 -361
- package/dist/sdk/graph/governance-contracts.js +1 -34
- package/dist/sdk/graph/governance.d.ts +13 -1
- package/dist/sdk/graph/governance.js +1 -735
- package/dist/sdk/graph/hierarchy-integrity.js +1 -310
- package/dist/sdk/graph/index.d.ts +3 -2
- package/dist/sdk/graph/index.js +1 -26
- package/dist/sdk/graph/lifecycle-coverage.d.ts +32 -0
- package/dist/sdk/graph/lifecycle-coverage.js +2 -0
- package/dist/sdk/graph/mutation-advisory.js +1 -176
- package/dist/sdk/graph/remediation.js +1 -197
- package/dist/sdk/graph/run.d.ts +15 -1
- package/dist/sdk/graph/run.js +1 -768
- package/dist/sdk/graph/scheduling.js +1 -124
- package/dist/sdk/graph/traversal.js +1 -284
- package/dist/sdk/graph/workspace-relationship-kind-registry.js +1 -27
- package/dist/sdk/graph.js +1 -15
- package/dist/sdk/guide-topics.js +1 -707
- package/dist/sdk/guide.js +1 -279
- package/dist/sdk/history/maintenance.d.ts +71 -0
- package/dist/sdk/history/maintenance.js +2 -0
- package/dist/sdk/history/salvage.js +2 -247
- package/dist/sdk/history/subject.d.ts +19 -0
- package/dist/sdk/history/subject.js +2 -0
- package/dist/sdk/history-analytics.js +1 -282
- package/dist/sdk/history-compact.js +1 -527
- package/dist/sdk/history-mcp.js +1 -68
- package/dist/sdk/history-provenance.js +1 -182
- package/dist/sdk/history-read.js +1 -96
- package/dist/sdk/history-redact.d.ts +1 -14
- package/dist/sdk/history-redact.js +1 -643
- package/dist/sdk/history-repair.d.ts +5 -0
- package/dist/sdk/history-repair.js +1 -657
- package/dist/sdk/improvement-ledger-validation.js +1 -62
- package/dist/sdk/improvement-ledger.js +2 -257
- package/dist/sdk/index.d.ts +4 -1
- package/dist/sdk/index.js +1 -183
- package/dist/sdk/init-agent-guidance.js +2 -496
- package/dist/sdk/init.js +2 -820
- package/dist/sdk/invocation-author.js +1 -39
- package/dist/sdk/item-children.js +1 -90
- package/dist/sdk/item-metadata-index.js +1 -15
- package/dist/sdk/item-schedule.js +1 -27
- package/dist/sdk/item-transaction.js +1 -396
- package/dist/sdk/learnings.js +1 -29
- package/dist/sdk/lifecycle/append.js +2 -53
- package/dist/sdk/lifecycle/claim.d.ts +2 -0
- package/dist/sdk/lifecycle/claim.js +1 -242
- package/dist/sdk/lifecycle/close-many.js +1 -438
- package/dist/sdk/lifecycle/close.js +1 -468
- package/dist/sdk/lifecycle/copy.js +1 -212
- package/dist/sdk/lifecycle/create.js +1 -1949
- package/dist/sdk/lifecycle/delete.js +1 -45
- package/dist/sdk/lifecycle/event-validation-messages.js +1 -91
- package/dist/sdk/lifecycle/focus.js +1 -91
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -24
- package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -149
- package/dist/sdk/lifecycle/lifecycle-transitions.js +1 -40
- package/dist/sdk/lifecycle/mcp-actions.d.ts +2 -0
- package/dist/sdk/lifecycle/mcp-actions.js +1 -51
- package/dist/sdk/lifecycle/metadata-normalizers.js +1 -46
- package/dist/sdk/lifecycle/mutation-command-options.js +1 -9
- package/dist/sdk/lifecycle/plan.js +1 -1606
- package/dist/sdk/lifecycle/recurrence-parsers.d.ts +1 -1
- package/dist/sdk/lifecycle/recurrence-parsers.js +1 -147
- package/dist/sdk/lifecycle/reopen.js +1 -68
- package/dist/sdk/lifecycle/repeatable-metadata-parsers.js +1 -143
- package/dist/sdk/lifecycle/restore.d.ts +1 -0
- package/dist/sdk/lifecycle/restore.js +1 -330
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -295
- package/dist/sdk/lifecycle/update-many.js +1 -861
- package/dist/sdk/lifecycle/update.js +1 -2136
- package/dist/sdk/lifecycle-completion.js +1 -92
- package/dist/sdk/lifecycle-policy.js +1 -120
- package/dist/sdk/linked-artifacts.js +1 -530
- package/dist/sdk/mcp/apps.js +4 -133
- package/dist/sdk/mcp/authorization.js +1 -404
- package/dist/sdk/mcp/discovery.js +1 -494
- package/dist/sdk/mcp/interactions.js +1 -336
- package/dist/sdk/mcp/protocol.d.ts +7 -0
- package/dist/sdk/mcp/protocol.js +1 -184
- package/dist/sdk/mcp/skills.js +1 -389
- package/dist/sdk/mcp/subscriptions.js +1 -211
- package/dist/sdk/mcp/tasks.js +2 -430
- package/dist/sdk/mcp/transport.js +1 -260
- package/dist/sdk/merge/abandoned-receipts.js +1 -46
- package/dist/sdk/merge/driver.js +1 -212
- package/dist/sdk/merge/index.js +1 -16
- package/dist/sdk/merge/install.js +3 -561
- package/dist/sdk/merge/receipt-file-boundary.js +1 -46
- package/dist/sdk/merge/receipt-operation.js +1 -96
- package/dist/sdk/merge/receipt-schema.js +1 -397
- package/dist/sdk/merge/receipts.js +4 -525
- package/dist/sdk/merge/reconcile.js +1 -352
- package/dist/sdk/merge/three-way.js +3 -775
- package/dist/sdk/merge.js +1 -10
- package/dist/sdk/mutation-events.js +1 -292
- package/dist/sdk/mutation-guard.js +1 -216
- package/dist/sdk/notes.js +1 -139
- package/dist/sdk/output-contracts.js +1 -172
- package/dist/sdk/output-projection.js +1 -430
- package/dist/sdk/output-token-accounting.js +1 -140
- package/dist/sdk/output.js +1 -64
- package/dist/sdk/ownership-source.js +1 -21
- package/dist/sdk/package-import-adapters.js +1 -442
- package/dist/sdk/package-migrations.js +1 -20
- package/dist/sdk/package-runtime-options.js +1 -80
- package/dist/sdk/pagination.js +1 -162
- package/dist/sdk/profile.js +1 -454
- package/dist/sdk/provenance.js +1 -258
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/activity.js +1 -401
- package/dist/sdk/query/aggregate.d.ts +16 -0
- package/dist/sdk/query/aggregate.js +1 -390
- package/dist/sdk/query/calendar.js +1 -964
- package/dist/sdk/query/complete-list.js +1 -215
- package/dist/sdk/query/context.js +1 -1702
- package/dist/sdk/query/duplicate-candidates.js +1 -70
- package/dist/sdk/query/get.js +1 -450
- package/dist/sdk/query/history.js +1 -186
- package/dist/sdk/query/item-filter-options.js +1 -9
- package/dist/sdk/query/light-metadata.js +1 -18
- package/dist/sdk/query/list-filter-shared.js +1 -81
- package/dist/sdk/query/list.js +1 -1304
- package/dist/sdk/query/multi-value-filters.js +1 -78
- package/dist/sdk/query/next.js +1 -513
- package/dist/sdk/query/parsers.js +1 -44
- package/dist/sdk/query/projection-contracts.js +1 -184
- package/dist/sdk/query/search-contracts.d.ts +27 -0
- package/dist/sdk/query/search-contracts.js +1 -230
- package/dist/sdk/query/search-pagination.js +1 -35
- package/dist/sdk/query/search-rendering.js +1 -105
- package/dist/sdk/query/search.d.ts +6 -4
- package/dist/sdk/query/search.js +2 -1987
- package/dist/sdk/query.js +1 -35
- package/dist/sdk/read-output/continuation.js +1 -194
- package/dist/sdk/read-output-budget.js +1 -135
- package/dist/sdk/read-output-contracts.d.ts +1 -1
- package/dist/sdk/read-output-contracts.js +1 -1225
- package/dist/sdk/read-output-rows.js +1 -186
- package/dist/sdk/read-output-session.js +1 -208
- package/dist/sdk/relationship-analytics.js +1 -410
- package/dist/sdk/relationship-context.js +1 -284
- package/dist/sdk/relationship-history.js +4 -519
- package/dist/sdk/relationship-kinds/contract.js +1 -22
- package/dist/sdk/relationship-migration.js +1 -77
- package/dist/sdk/relationships.js +1 -579
- package/dist/sdk/reproducibility/process.js +1 -87
- package/dist/sdk/runtime-action-aliases.js +1 -59
- package/dist/sdk/runtime-extended-actions.js +1 -177
- package/dist/sdk/runtime-input.js +1 -614
- package/dist/sdk/runtime-primitives.js +1 -84
- package/dist/sdk/runtime-public-contracts.d.ts +2 -1
- package/dist/sdk/runtime-public-contracts.js +1 -4
- package/dist/sdk/runtime-stats-options.js +1 -38
- package/dist/sdk/runtime.d.ts +4 -0
- package/dist/sdk/runtime.js +1 -1928
- package/dist/sdk/scheduling-shortcuts.js +1 -63
- package/dist/sdk/schema-migration.js +3 -856
- package/dist/sdk/schema.d.ts +2 -1
- package/dist/sdk/schema.js +1 -1376
- package/dist/sdk/search-refresh-worker.js +1 -18
- package/dist/sdk/similarity-scoring.js +1 -53
- package/dist/sdk/similarity.js +1 -326
- package/dist/sdk/start-task-status.js +1 -14
- package/dist/sdk/stats.js +1 -270
- package/dist/sdk/structured-mutations.js +1 -580
- package/dist/sdk/telemetry-flush.js +1 -13
- package/dist/sdk/telemetry.js +1 -405
- package/dist/sdk/templates.js +2 -292
- package/dist/sdk/test/batch.js +2 -509
- package/dist/sdk/test/entry.js +1 -70
- package/dist/sdk/test/execution.js +6 -2211
- package/dist/sdk/test/linked-command-detection.js +1 -546
- package/dist/sdk/test/measurements.js +1 -91
- package/dist/sdk/test/parsers.js +1 -545
- package/dist/sdk/test/runs.js +1 -193
- package/dist/sdk/test/trust.js +2 -206
- package/dist/sdk/testing.js +4 -1391
- package/dist/sdk/traceability/runtime-files-lookup.js +1 -32
- package/dist/sdk/traceability/source-traceability.js +1 -292
- package/dist/sdk/tracker-root-discovery.js +1 -9
- package/dist/sdk/workspace-contracts-cache.js +1 -28
- package/dist/sdk/workspace-contracts.js +1 -33
- package/dist/sdk/workspace-memory.js +2 -318
- package/dist/sdk/workspace-recipe.js +1 -71
- package/dist/sdk/workspace-snapshot.js +4 -613
- package/dist/sdk/workspace-transaction-gc.js +1 -149
- package/dist/sdk/workspace-transaction.js +2 -363
- package/dist/sdk/workspace.js +3 -127
- package/dist/types/index.js +1 -9
- package/dist/types.d.ts +4 -0
- package/dist/types.js +1 -245
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/COMMANDS.md +10 -0
- package/docs/CONFIGURATION.md +12 -1
- package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +167 -0
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +9 -3
- package/docs/EXTENSIONS.md +1 -0
- package/docs/HISTORY_MAINTENANCE.md +125 -0
- package/docs/MCP_2026_07_28_CONFORMANCE.md +20 -10
- package/docs/PACKAGE_EVIDENCE.md +92 -0
- package/docs/PLANNING_MEASUREMENTS.md +183 -0
- package/docs/README.md +4 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +5 -0
- package/docs/SCRIPTING.md +21 -0
- package/docs/TESTING.md +33 -0
- package/docs/WORKFLOW_POLICIES.md +129 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +7 -7
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -5
- package/marketplace.json +2 -2
- package/package.json +5 -5
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/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/scripts/finalize-build.mjs +45 -3
- package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +0 -9
- package/dist/cli-bundle/chunks/chunk-CKOL5U7J.js +0 -77
- package/dist/cli-bundle/chunks/chunk-JX4DH4WC.js +0 -3
- package/dist/cli-bundle/chunks/chunk-OF76PSDQ.js +0 -5
- package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +0 -232
- package/dist/cli-bundle/chunks/chunk-QWRRFYK3.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RWWBOWJ5.js +0 -2
- package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +0 -40
- package/dist/cli-bundle/chunks/chunk-WI2AYPA7.js +0 -2
- package/dist/cli-bundle/chunks/register-list-query-5JL52D33.js +0 -11
- package/dist/cli-bundle/chunks/register-mutation-ZPG7KMVP.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-I5W3KMGB.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-H4SVAVX7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-EZR3GHFE.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +0 -56
- package/dist/cli-bundle/focused-chunks/chunk-NTPY5GSO.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +0 -177
- package/dist/cli-bundle/focused-chunks/chunk-PEFABF7E.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-QTVCLMSZ.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-QTZRBUYA.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +0 -10
- package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +0 -2
|
@@ -1,388 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module core/sentry/instrument
|
|
3
|
-
*
|
|
4
|
-
* Integrates Sentry instrumentation and release diagnostics for Instrument.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8eb48648-6e55-5710-990e-6471c7cdcde0")}catch(e){}}();
|
|
8
|
-
import { createRequire } from "node:module";
|
|
9
|
-
import { resolvePmCliVersion } from "../packages/root.js";
|
|
10
|
-
const OPT_OUT_VALUES = new Set(["1", "true", "yes", "on"]);
|
|
11
|
-
function isSentryDisabled() {
|
|
12
|
-
if (OPT_OUT_VALUES.has((process.env.PM_SENTRY_DISABLED ?? "").trim().toLowerCase()))
|
|
13
|
-
return true;
|
|
14
|
-
if (OPT_OUT_VALUES.has((process.env.PM_TELEMETRY_DISABLED ?? "").trim().toLowerCase()))
|
|
15
|
-
return true;
|
|
16
|
-
if (process.env.VITEST || process.env.VITEST_WORKER_ID)
|
|
17
|
-
return true;
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
const SENSITIVE_KEY_PATTERN = /(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i;
|
|
21
|
-
const INLINE_SENSITIVE_ASSIGNMENT_RE = new RegExp(`\\b(${SENSITIVE_KEY_PATTERN.source})\\s*[:=]\\s*([^\\s,;]+)`, "giu");
|
|
22
|
-
const ABSOLUTE_PATH_TOKEN_RE = /(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g;
|
|
23
|
-
const FILE_URL_PATH_RE = /file:\/\/\/?[^\s"'`),;]+/giu;
|
|
24
|
-
const WINDOWS_PATH_TOKEN_RE = /\b[A-Za-z]:\\[^\s"'`),;]+/g;
|
|
25
|
-
const PRIVATE_IP_RE = /\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g;
|
|
26
|
-
const PATH_FIELD_KEY_PATTERN = /(?:^|[_-])(path|filename|file|module|cwd|dir|directory|location|source|script)s?$/i;
|
|
27
|
-
/**
|
|
28
|
-
* Upper bound on {@link KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS}. Enforced by a
|
|
29
|
-
* governance test so the allowlist cannot silently accumulate stale filters.
|
|
30
|
-
*/
|
|
31
|
-
const MAX_KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS = 15;
|
|
32
|
-
/**
|
|
33
|
-
* Substrings (lowercased) of console output that first-party example
|
|
34
|
-
* extensions emit at activation. Matching events/breadcrumbs are confirmed
|
|
35
|
-
* false-positives and are dropped before they reach Sentry.
|
|
36
|
-
*
|
|
37
|
-
* Policy: add a pattern only when a marketplace-shipped extension generates
|
|
38
|
-
* confirmed false-positive console captures, and remove it when that extension
|
|
39
|
-
* leaves the ecosystem. The list is capped at
|
|
40
|
-
* {@link MAX_KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS} to keep the filter bounded
|
|
41
|
-
* and prevent stale entries from masking genuine errors.
|
|
42
|
-
*/
|
|
43
|
-
const KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS = [
|
|
44
|
-
"[starter-extension] activating",
|
|
45
|
-
"[starter-extension] all 8 capabilities registered.",
|
|
46
|
-
"[starter-extension] commands:",
|
|
47
|
-
"[starter] preflight check for workspace",
|
|
48
|
-
"[starter] output_format service override active",
|
|
49
|
-
"[pm-ext-ts-starter] activating",
|
|
50
|
-
"[pm-ext-ts-starter] all capabilities registered.",
|
|
51
|
-
"run `pm init` first to initialise a pm workspace",
|
|
52
|
-
];
|
|
53
|
-
function looksLikeFilesystemPath(value) {
|
|
54
|
-
const normalized = value.trim();
|
|
55
|
-
if (normalized.length === 0) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
if (normalized.startsWith("/") || normalized.startsWith("file://")) {
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
if (/^[A-Za-z]:\\/.test(normalized) || normalized.startsWith("\\\\")) {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
return normalized.includes("/home/");
|
|
65
|
-
}
|
|
66
|
-
function scrubString(value, keyHint) {
|
|
67
|
-
if (keyHint &&
|
|
68
|
-
PATH_FIELD_KEY_PATTERN.test(keyHint) &&
|
|
69
|
-
looksLikeFilesystemPath(value)) {
|
|
70
|
-
return "[scrubbed_path]";
|
|
71
|
-
}
|
|
72
|
-
const scrubbed = value
|
|
73
|
-
.replaceAll(INLINE_SENSITIVE_ASSIGNMENT_RE, (_m, key) => `${key}=[scrubbed]`)
|
|
74
|
-
.replaceAll(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/giu, "[scrubbed_email]")
|
|
75
|
-
.replaceAll(/bearer\s+[a-z0-9._=-]+/giu, "bearer [scrubbed]")
|
|
76
|
-
.replaceAll(/sntr[ysu]_[A-Za-z0-9_-]+/g, "[scrubbed_sentry_token]")
|
|
77
|
-
.replaceAll(PRIVATE_IP_RE, "[scrubbed_ip]")
|
|
78
|
-
.replaceAll(FILE_URL_PATH_RE, "[scrubbed_path]")
|
|
79
|
-
.replaceAll(WINDOWS_PATH_TOKEN_RE, "[scrubbed_path]")
|
|
80
|
-
.replaceAll(ABSOLUTE_PATH_TOKEN_RE, (_match, prefix) => `${prefix}[scrubbed_path]`);
|
|
81
|
-
if (looksLikeFilesystemPath(scrubbed)) {
|
|
82
|
-
return "[scrubbed_path]";
|
|
83
|
-
}
|
|
84
|
-
return scrubbed;
|
|
85
|
-
}
|
|
86
|
-
function scrubEventData(obj) {
|
|
87
|
-
const result = {};
|
|
88
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
89
|
-
if (SENSITIVE_KEY_PATTERN.test(key)) {
|
|
90
|
-
result[key] = "[scrubbed]";
|
|
91
|
-
}
|
|
92
|
-
else if (typeof value === "string") {
|
|
93
|
-
result[key] = scrubString(value, key);
|
|
94
|
-
}
|
|
95
|
-
else if (Array.isArray(value)) {
|
|
96
|
-
result[key] = value.map((entry) => {
|
|
97
|
-
if (typeof entry === "string") {
|
|
98
|
-
return scrubString(entry, key);
|
|
99
|
-
}
|
|
100
|
-
if (entry && typeof entry === "object") {
|
|
101
|
-
return scrubEventData(entry);
|
|
102
|
-
}
|
|
103
|
-
return entry;
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
else if (value && typeof value === "object") {
|
|
107
|
-
result[key] = scrubEventData(value);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
result[key] = value;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return result;
|
|
114
|
-
}
|
|
115
|
-
function scrubStackFrame(frame) {
|
|
116
|
-
for (const key of ["filename", "absPath", "abs_path", "module"]) {
|
|
117
|
-
const rawValue = frame[key];
|
|
118
|
-
if (typeof rawValue === "string") {
|
|
119
|
-
frame[key] = scrubString(rawValue, key);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
const contextLine = frame.context_line;
|
|
123
|
-
if (typeof contextLine === "string") {
|
|
124
|
-
frame.context_line = scrubString(contextLine, "context_line");
|
|
125
|
-
}
|
|
126
|
-
for (const key of ["pre_context", "post_context"]) {
|
|
127
|
-
const context = frame[key];
|
|
128
|
-
if (!Array.isArray(context)) {
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
frame[key] = context.map((entry) => typeof entry === "string" ? scrubString(entry, key) : entry);
|
|
132
|
-
}
|
|
133
|
-
if (frame.vars && typeof frame.vars === "object") {
|
|
134
|
-
frame.vars = scrubEventData(frame.vars);
|
|
135
|
-
}
|
|
136
|
-
if (frame.data && typeof frame.data === "object") {
|
|
137
|
-
frame.data = scrubEventData(frame.data);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const requireFromInstrument = createRequire(import.meta.url);
|
|
141
|
-
const defaultSentryLoader = () => requireFromInstrument("@sentry/node");
|
|
142
|
-
let _sentry;
|
|
143
|
-
let _initDone = false;
|
|
144
|
-
let _loadSentry = defaultSentryLoader;
|
|
145
|
-
const PM_CLI_SENTRY_DSN = "https://bf7ad2ec76c0051c2ee94e48e8bd6868@o4510603477712896.ingest.de.sentry.io/4511316775338064";
|
|
146
|
-
function hasPmCliErrorPrefix(value) {
|
|
147
|
-
return /^\s*PmCliError:/.test(value);
|
|
148
|
-
}
|
|
149
|
-
function isKnownNoisyConsoleMessage(value) {
|
|
150
|
-
const normalized = value.trim().toLowerCase();
|
|
151
|
-
if (normalized.length === 0) {
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
return KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS.some((pattern) => normalized.includes(pattern));
|
|
155
|
-
}
|
|
156
|
-
function isKnownNoisyConsoleEvent(event) {
|
|
157
|
-
if (event.logger !== "console") {
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
if (typeof event.message === "string" &&
|
|
161
|
-
isKnownNoisyConsoleMessage(event.message)) {
|
|
162
|
-
return true;
|
|
163
|
-
}
|
|
164
|
-
return (Array.isArray(event.exception?.values) &&
|
|
165
|
-
event.exception.values.some((entry) => typeof entry.value === "string" &&
|
|
166
|
-
isKnownNoisyConsoleMessage(entry.value)));
|
|
167
|
-
}
|
|
168
|
-
/** Detect handled Node listener-pressure warnings captured through console stderr. */
|
|
169
|
-
function isNodeRuntimeWarningEvent(event) {
|
|
170
|
-
if (event.logger !== "console")
|
|
171
|
-
return false;
|
|
172
|
-
const isRuntimeWarning = (value) => typeof value === "string" &&
|
|
173
|
-
/^\(node:\d+\) MaxListenersExceededWarning: Possible EventEmitter memory leak detected\./.test(value);
|
|
174
|
-
if (isRuntimeWarning(event.message))
|
|
175
|
-
return true;
|
|
176
|
-
return (Array.isArray(event.exception?.values) &&
|
|
177
|
-
event.exception.values.some((entry) => isRuntimeWarning(entry.value)));
|
|
178
|
-
}
|
|
179
|
-
function isExpectedCliErrorEvent(event) {
|
|
180
|
-
if (event.exception?.values?.some((ex) => ex.type === "PmCliError"))
|
|
181
|
-
return true;
|
|
182
|
-
if (event.exception?.values?.some((ex) => typeof ex.value === "string" && hasPmCliErrorPrefix(ex.value)))
|
|
183
|
-
return true;
|
|
184
|
-
if (event.logger === "console" &&
|
|
185
|
-
typeof event.message === "string" &&
|
|
186
|
-
hasPmCliErrorPrefix(event.message))
|
|
187
|
-
return true;
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
function isPmCliErrorBreadcrumb(breadcrumb) {
|
|
191
|
-
return (breadcrumb.category === "console" &&
|
|
192
|
-
typeof breadcrumb.message === "string" &&
|
|
193
|
-
hasPmCliErrorPrefix(breadcrumb.message));
|
|
194
|
-
}
|
|
195
|
-
function isKnownNoisyConsoleBreadcrumb(breadcrumb) {
|
|
196
|
-
return (breadcrumb.category === "console" &&
|
|
197
|
-
typeof breadcrumb.message === "string" &&
|
|
198
|
-
isKnownNoisyConsoleMessage(breadcrumb.message));
|
|
199
|
-
}
|
|
200
|
-
function resolveCliVersion() {
|
|
201
|
-
return resolvePmCliVersion(import.meta.url, ["../../.."]) ?? "0.0.0";
|
|
202
|
-
}
|
|
203
|
-
function resolveEnvironment() {
|
|
204
|
-
const explicit = process.env.SENTRY_ENVIRONMENT?.trim();
|
|
205
|
-
if (explicit && explicit.length > 0)
|
|
206
|
-
return explicit;
|
|
207
|
-
if (process.env.VITEST ||
|
|
208
|
-
process.env.VITEST_WORKER_ID ||
|
|
209
|
-
process.env.NODE_ENV === "test")
|
|
210
|
-
return "test";
|
|
211
|
-
if (process.env.CI)
|
|
212
|
-
return "ci";
|
|
213
|
-
return "production";
|
|
214
|
-
}
|
|
215
|
-
const DEFAULT_TRACES_SAMPLE_RATE = 0.2;
|
|
216
|
-
/**
|
|
217
|
-
* Resolves the Sentry performance-tracing sample rate, honouring the standard
|
|
218
|
-
* `SENTRY_TRACES_SAMPLE_RATE` env var when it parses to a fraction in `[0, 1]`.
|
|
219
|
-
*
|
|
220
|
-
* The default (20%) keeps span volume modest for a low-frequency developer CLI
|
|
221
|
-
* while leaving an operational lever for full-trace performance debugging
|
|
222
|
-
* (`SENTRY_TRACES_SAMPLE_RATE=1`) or fully disabling traces (`=0`). Unset,
|
|
223
|
-
* non-numeric, or out-of-range values fall back to the default with no
|
|
224
|
-
* behaviour change for existing installs.
|
|
225
|
-
*/
|
|
226
|
-
function resolveTracesSampleRate() {
|
|
227
|
-
const raw = process.env.SENTRY_TRACES_SAMPLE_RATE?.trim();
|
|
228
|
-
if (!raw)
|
|
229
|
-
return DEFAULT_TRACES_SAMPLE_RATE;
|
|
230
|
-
const parsed = Number(raw);
|
|
231
|
-
if (!Number.isFinite(parsed) || parsed < 0 || parsed > 1) {
|
|
232
|
-
return DEFAULT_TRACES_SAMPLE_RATE;
|
|
233
|
-
}
|
|
234
|
-
return parsed;
|
|
235
|
-
}
|
|
236
|
-
function scrubSentryExceptionValues(event) {
|
|
237
|
-
if (!event.exception?.values) {
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
for (const exception of event.exception.values) {
|
|
241
|
-
if (exception.value) {
|
|
242
|
-
exception.value = scrubString(exception.value, "value");
|
|
243
|
-
}
|
|
244
|
-
if (exception.stacktrace?.frames) {
|
|
245
|
-
for (const frame of exception.stacktrace.frames) {
|
|
246
|
-
scrubStackFrame(frame);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
function scrubSentryBreadcrumbs(event) {
|
|
252
|
-
if (!event.breadcrumbs) {
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
for (const breadcrumb of event.breadcrumbs) {
|
|
256
|
-
if (breadcrumb.message) {
|
|
257
|
-
breadcrumb.message = scrubString(breadcrumb.message);
|
|
258
|
-
}
|
|
259
|
-
if (breadcrumb.data && typeof breadcrumb.data === "object") {
|
|
260
|
-
breadcrumb.data = scrubEventData(breadcrumb.data);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
function scrubSentryContexts(event) {
|
|
265
|
-
if (!event.contexts) {
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
for (const [ctxKey, ctx] of Object.entries(event.contexts)) {
|
|
269
|
-
if (ctx && typeof ctx === "object") {
|
|
270
|
-
event.contexts[ctxKey] = scrubEventData(ctx);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
function scrubSentryRecordField(event, key) {
|
|
275
|
-
const target = event;
|
|
276
|
-
const value = target[key];
|
|
277
|
-
if (value && typeof value === "object") {
|
|
278
|
-
target[key] = scrubEventData(value);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
const beforeSend = (event) => {
|
|
282
|
-
if (isExpectedCliErrorEvent(event) || isKnownNoisyConsoleEvent(event))
|
|
283
|
-
return null;
|
|
284
|
-
if (isNodeRuntimeWarningEvent(event)) {
|
|
285
|
-
event.level = "warning";
|
|
286
|
-
event.tags = {
|
|
287
|
-
...event.tags,
|
|
288
|
-
"pm.diagnostic_class": "node_runtime_warning",
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
if (event.message)
|
|
292
|
-
event.message = scrubString(event.message, "message");
|
|
293
|
-
if (event.transaction)
|
|
294
|
-
event.transaction = scrubString(event.transaction, "transaction");
|
|
295
|
-
scrubSentryExceptionValues(event);
|
|
296
|
-
scrubSentryBreadcrumbs(event);
|
|
297
|
-
scrubSentryRecordField(event, "extra");
|
|
298
|
-
scrubSentryContexts(event);
|
|
299
|
-
for (const key of ["request", "user", "tags"])
|
|
300
|
-
scrubSentryRecordField(event, key);
|
|
301
|
-
return event;
|
|
302
|
-
};
|
|
303
|
-
const beforeSendTransaction = (event) => {
|
|
304
|
-
if (event.breadcrumbs) {
|
|
305
|
-
event.breadcrumbs = event.breadcrumbs.filter((breadcrumb) => !isPmCliErrorBreadcrumb(breadcrumb) && !isKnownNoisyConsoleBreadcrumb(breadcrumb));
|
|
306
|
-
scrubSentryBreadcrumbs(event);
|
|
307
|
-
}
|
|
308
|
-
scrubSentryContexts(event);
|
|
309
|
-
return event;
|
|
310
|
-
};
|
|
311
|
-
const beforeBreadcrumb = (breadcrumb) => {
|
|
312
|
-
if (isPmCliErrorBreadcrumb(breadcrumb) || isKnownNoisyConsoleBreadcrumb(breadcrumb))
|
|
313
|
-
return null;
|
|
314
|
-
if (breadcrumb.message)
|
|
315
|
-
breadcrumb.message = scrubString(breadcrumb.message, "message");
|
|
316
|
-
if (breadcrumb.data && typeof breadcrumb.data === "object") {
|
|
317
|
-
breadcrumb.data = scrubEventData(breadcrumb.data);
|
|
318
|
-
}
|
|
319
|
-
return breadcrumb;
|
|
320
|
-
};
|
|
321
|
-
/** Implements ensure sentry init for the public runtime surface of this module. */
|
|
322
|
-
export async function ensureSentryInit() {
|
|
323
|
-
if (_initDone)
|
|
324
|
-
return _sentry;
|
|
325
|
-
_initDone = true;
|
|
326
|
-
if (isSentryDisabled())
|
|
327
|
-
return undefined;
|
|
328
|
-
const SentryModule = _loadSentry();
|
|
329
|
-
_sentry = SentryModule;
|
|
330
|
-
const dsn = process.env.SENTRY_DSN?.trim() || PM_CLI_SENTRY_DSN;
|
|
331
|
-
const release = resolveCliVersion();
|
|
332
|
-
SentryModule.init({
|
|
333
|
-
dsn,
|
|
334
|
-
release: `pm-cli@${release}`,
|
|
335
|
-
environment: resolveEnvironment(),
|
|
336
|
-
tracesSampleRate: resolveTracesSampleRate(),
|
|
337
|
-
enableLogs: true,
|
|
338
|
-
attachStacktrace: true,
|
|
339
|
-
normalizeDepth: 6,
|
|
340
|
-
shutdownTimeout: 3000,
|
|
341
|
-
sendDefaultPii: false,
|
|
342
|
-
serverName: undefined,
|
|
343
|
-
integrations: [
|
|
344
|
-
SentryModule.extraErrorDataIntegration({ depth: 4 }),
|
|
345
|
-
SentryModule.captureConsoleIntegration({ levels: ["warn", "error"] }),
|
|
346
|
-
],
|
|
347
|
-
initialScope: {
|
|
348
|
-
tags: {
|
|
349
|
-
"cli.name": "pm-cli",
|
|
350
|
-
"cli.version": release,
|
|
351
|
-
"runtime.node": process.version,
|
|
352
|
-
"runtime.platform": process.platform,
|
|
353
|
-
"runtime.arch": process.arch,
|
|
354
|
-
},
|
|
355
|
-
},
|
|
356
|
-
beforeSend,
|
|
357
|
-
beforeSendTransaction,
|
|
358
|
-
beforeBreadcrumb,
|
|
359
|
-
});
|
|
360
|
-
return SentryModule;
|
|
361
|
-
}
|
|
362
|
-
/** Implements get sentry for the public runtime surface of this module. */
|
|
363
|
-
export function getSentry() {
|
|
364
|
-
return _sentry;
|
|
365
|
-
}
|
|
366
|
-
/** Public contract for test only, shared by SDK and presentation-layer consumers. */
|
|
367
|
-
export const _testOnly = {
|
|
368
|
-
isExpectedCliErrorEvent,
|
|
369
|
-
isKnownNoisyConsoleEvent,
|
|
370
|
-
isNodeRuntimeWarningEvent,
|
|
371
|
-
isPmCliErrorBreadcrumb,
|
|
372
|
-
isKnownNoisyConsoleBreadcrumb,
|
|
373
|
-
scrubString,
|
|
374
|
-
scrubEventData,
|
|
375
|
-
resolveTracesSampleRate,
|
|
376
|
-
KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS,
|
|
377
|
-
MAX_KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS,
|
|
378
|
-
defaultSentryLoader,
|
|
379
|
-
setSentryLoaderForTests(loader) {
|
|
380
|
-
_loadSentry = loader ?? defaultSentryLoader;
|
|
381
|
-
},
|
|
382
|
-
resetSentryStateForTests() {
|
|
383
|
-
_sentry = undefined;
|
|
384
|
-
_initDone = false;
|
|
385
|
-
},
|
|
386
|
-
};
|
|
1
|
+
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f5bf9c68-8526-5c19-ac46-655cf348f0bb")}catch(e2){}})();import{createRequire}from"node:module";import{resolvePmCliVersion}from"../packages/root.js";const OPT_OUT_VALUES=new Set(["1","true","yes","on"]);function isSentryDisabled(){if(OPT_OUT_VALUES.has((process.env.PM_SENTRY_DISABLED??"").trim().toLowerCase()))return true;if(OPT_OUT_VALUES.has((process.env.PM_TELEMETRY_DISABLED??"").trim().toLowerCase()))return true;if(process.env.VITEST||process.env.VITEST_WORKER_ID)return true;return false}const SENSITIVE_KEY_PATTERN=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i;const INLINE_SENSITIVE_ASSIGNMENT_RE=new RegExp(`\\b(${SENSITIVE_KEY_PATTERN.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");const ABSOLUTE_PATH_TOKEN_RE=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g;const FILE_URL_PATH_RE=/file:\/\/\/?[^\s"'`),;]+/giu;const WINDOWS_PATH_TOKEN_RE=/\b[A-Za-z]:\\[^\s"'`),;]+/g;const PRIVATE_IP_RE=/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g;const PATH_FIELD_KEY_PATTERN=/(?:^|[_-])(path|filename|file|module|cwd|dir|directory|location|source|script)s?$/i;const MAX_KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS=15;const KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS=["[starter-extension] activating","[starter-extension] all 8 capabilities registered.","[starter-extension] commands:","[starter] preflight check for workspace","[starter] output_format service override active","[pm-ext-ts-starter] activating","[pm-ext-ts-starter] all capabilities registered.","run `pm init` first to initialise a pm workspace"];function looksLikeFilesystemPath(value){const normalized=value.trim();if(normalized.length===0){return false}if(normalized.startsWith("/")||normalized.startsWith("file://")){return true}if(/^[A-Za-z]:\\/.test(normalized)||normalized.startsWith("\\\\")){return true}return normalized.includes("/home/")}function scrubString(value,keyHint){if(keyHint&&PATH_FIELD_KEY_PATTERN.test(keyHint)&&looksLikeFilesystemPath(value)){return"[scrubbed_path]"}const scrubbed=value.replaceAll(INLINE_SENSITIVE_ASSIGNMENT_RE,(_m,key)=>`${key}=[scrubbed]`).replaceAll(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/giu,"[scrubbed_email]").replaceAll(/bearer\s+[a-z0-9._=-]+/giu,"bearer [scrubbed]").replaceAll(/sntr[ysu]_[A-Za-z0-9_-]+/g,"[scrubbed_sentry_token]").replaceAll(PRIVATE_IP_RE,"[scrubbed_ip]").replaceAll(FILE_URL_PATH_RE,"[scrubbed_path]").replaceAll(WINDOWS_PATH_TOKEN_RE,"[scrubbed_path]").replaceAll(ABSOLUTE_PATH_TOKEN_RE,(_match,prefix)=>`${prefix}[scrubbed_path]`);if(looksLikeFilesystemPath(scrubbed)){return"[scrubbed_path]"}return scrubbed}function scrubEventData(obj){const result={};for(const[key,value]of Object.entries(obj)){if(SENSITIVE_KEY_PATTERN.test(key)){result[key]="[scrubbed]"}else if(typeof value==="string"){result[key]=scrubString(value,key)}else if(Array.isArray(value)){result[key]=value.map(entry=>{if(typeof entry==="string"){return scrubString(entry,key)}if(entry&&typeof entry==="object"){return scrubEventData(entry)}return entry})}else if(value&&typeof value==="object"){result[key]=scrubEventData(value)}else{result[key]=value}}return result}function scrubStackFrame(frame){for(const key of["filename","absPath","abs_path","module"]){const rawValue=frame[key];if(typeof rawValue==="string"){frame[key]=scrubString(rawValue,key)}}const contextLine=frame.context_line;if(typeof contextLine==="string"){frame.context_line=scrubString(contextLine,"context_line")}for(const key of["pre_context","post_context"]){const context=frame[key];if(!Array.isArray(context)){continue}frame[key]=context.map(entry=>typeof entry==="string"?scrubString(entry,key):entry)}if(frame.vars&&typeof frame.vars==="object"){frame.vars=scrubEventData(frame.vars)}if(frame.data&&typeof frame.data==="object"){frame.data=scrubEventData(frame.data)}}const requireFromInstrument=createRequire(import.meta.url);const defaultSentryLoader=()=>requireFromInstrument("@sentry/node");let _sentry;let _initDone=false;let _loadSentry=defaultSentryLoader;const PM_CLI_SENTRY_DSN="https://bf7ad2ec76c0051c2ee94e48e8bd6868@o4510603477712896.ingest.de.sentry.io/4511316775338064";function hasPmCliErrorPrefix(value){return/^\s*PmCliError:/.test(value)}function isKnownNoisyConsoleMessage(value){const normalized=value.trim().toLowerCase();if(normalized.length===0){return false}return KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS.some(pattern=>normalized.includes(pattern))}function isKnownNoisyConsoleEvent(event){if(event.logger!=="console"){return false}if(typeof event.message==="string"&&isKnownNoisyConsoleMessage(event.message)){return true}return Array.isArray(event.exception?.values)&&event.exception.values.some(entry=>typeof entry.value==="string"&&isKnownNoisyConsoleMessage(entry.value))}function isNodeRuntimeWarningEvent(event){if(event.logger!=="console")return false;const isRuntimeWarning=value=>typeof value==="string"&&/^\(node:\d+\) MaxListenersExceededWarning: Possible EventEmitter memory leak detected\./.test(value);if(isRuntimeWarning(event.message))return true;return Array.isArray(event.exception?.values)&&event.exception.values.some(entry=>isRuntimeWarning(entry.value))}function isExpectedCliErrorEvent(event){if(event.exception?.values?.some(ex=>ex.type==="PmCliError"))return true;if(event.exception?.values?.some(ex=>typeof ex.value==="string"&&hasPmCliErrorPrefix(ex.value)))return true;if(event.logger==="console"&&typeof event.message==="string"&&hasPmCliErrorPrefix(event.message))return true;return false}function isPmCliErrorBreadcrumb(breadcrumb){return breadcrumb.category==="console"&&typeof breadcrumb.message==="string"&&hasPmCliErrorPrefix(breadcrumb.message)}function isKnownNoisyConsoleBreadcrumb(breadcrumb){return breadcrumb.category==="console"&&typeof breadcrumb.message==="string"&&isKnownNoisyConsoleMessage(breadcrumb.message)}function resolveCliVersion(){return resolvePmCliVersion(import.meta.url,["../../.."])??"0.0.0"}function resolveEnvironment(){const explicit=process.env.SENTRY_ENVIRONMENT?.trim();if(explicit&&explicit.length>0)return explicit;if(process.env.VITEST||process.env.VITEST_WORKER_ID||process.env.NODE_ENV==="test")return"test";if(process.env.CI)return"ci";return"production"}const DEFAULT_TRACES_SAMPLE_RATE=.2;function resolveTracesSampleRate(){const raw=process.env.SENTRY_TRACES_SAMPLE_RATE?.trim();if(!raw)return DEFAULT_TRACES_SAMPLE_RATE;const parsed=Number(raw);if(!Number.isFinite(parsed)||parsed<0||parsed>1){return DEFAULT_TRACES_SAMPLE_RATE}return parsed}function scrubSentryExceptionValues(event){if(!event.exception?.values){return}for(const exception of event.exception.values){if(exception.value){exception.value=scrubString(exception.value,"value")}if(exception.stacktrace?.frames){for(const frame of exception.stacktrace.frames){scrubStackFrame(frame)}}}}function scrubSentryBreadcrumbs(event){if(!event.breadcrumbs){return}for(const breadcrumb of event.breadcrumbs){if(breadcrumb.message){breadcrumb.message=scrubString(breadcrumb.message)}if(breadcrumb.data&&typeof breadcrumb.data==="object"){breadcrumb.data=scrubEventData(breadcrumb.data)}}}function scrubSentryContexts(event){if(!event.contexts){return}for(const[ctxKey,ctx]of Object.entries(event.contexts)){if(ctx&&typeof ctx==="object"){event.contexts[ctxKey]=scrubEventData(ctx)}}}function scrubSentryRecordField(event,key){const target=event;const value=target[key];if(value&&typeof value==="object"){target[key]=scrubEventData(value)}}const beforeSend=event=>{if(isExpectedCliErrorEvent(event)||isKnownNoisyConsoleEvent(event))return null;if(isNodeRuntimeWarningEvent(event)){event.level="warning";event.tags={...event.tags,"pm.diagnostic_class":"node_runtime_warning"}}if(event.message)event.message=scrubString(event.message,"message");if(event.transaction)event.transaction=scrubString(event.transaction,"transaction");scrubSentryExceptionValues(event);scrubSentryBreadcrumbs(event);scrubSentryRecordField(event,"extra");scrubSentryContexts(event);for(const key of["request","user","tags"])scrubSentryRecordField(event,key);return event};const beforeSendTransaction=event=>{if(event.breadcrumbs){event.breadcrumbs=event.breadcrumbs.filter(breadcrumb=>!isPmCliErrorBreadcrumb(breadcrumb)&&!isKnownNoisyConsoleBreadcrumb(breadcrumb));scrubSentryBreadcrumbs(event)}scrubSentryContexts(event);return event};const beforeBreadcrumb=breadcrumb=>{if(isPmCliErrorBreadcrumb(breadcrumb)||isKnownNoisyConsoleBreadcrumb(breadcrumb))return null;if(breadcrumb.message)breadcrumb.message=scrubString(breadcrumb.message,"message");if(breadcrumb.data&&typeof breadcrumb.data==="object"){breadcrumb.data=scrubEventData(breadcrumb.data)}return breadcrumb};async function ensureSentryInit(){if(_initDone)return _sentry;_initDone=true;if(isSentryDisabled())return void 0;const SentryModule=_loadSentry();_sentry=SentryModule;const dsn=process.env.SENTRY_DSN?.trim()||PM_CLI_SENTRY_DSN;const release=resolveCliVersion();SentryModule.init({dsn,release:`pm-cli@${release}`,environment:resolveEnvironment(),tracesSampleRate:resolveTracesSampleRate(),enableLogs:true,attachStacktrace:true,normalizeDepth:6,shutdownTimeout:3e3,sendDefaultPii:false,serverName:void 0,integrations:[SentryModule.extraErrorDataIntegration({depth:4}),SentryModule.captureConsoleIntegration({levels:["warn","error"]})],initialScope:{tags:{"cli.name":"pm-cli","cli.version":release,"runtime.node":process.version,"runtime.platform":process.platform,"runtime.arch":process.arch}},beforeSend,beforeSendTransaction,beforeBreadcrumb});return SentryModule}function getSentry(){return _sentry}const _testOnly={isExpectedCliErrorEvent,isKnownNoisyConsoleEvent,isNodeRuntimeWarningEvent,isPmCliErrorBreadcrumb,isKnownNoisyConsoleBreadcrumb,scrubString,scrubEventData,resolveTracesSampleRate,KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS,MAX_KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS,defaultSentryLoader,setSentryLoaderForTests(loader){_loadSentry=loader??defaultSentryLoader},resetSentryStateForTests(){_sentry=void 0;_initDone=false}};export{_testOnly,ensureSentryInit,getSentry};
|
|
387
2
|
//# sourceMappingURL=instrument.js.map
|
|
388
|
-
//# debugId=8eb48648-6e55-5710-990e-6471c7cdcde0
|