@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,371 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
!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]="bed1d1d4-0c1d-59e5-8267-fbe800dfd83b")}catch(e){}}();
|
|
3
|
-
import { TYPE_PRESET_DEFINITIONS } from "../schema/type-presets.js";
|
|
4
|
-
/** Ordered list of first-party profile names. Drives CLI help, completion, contracts, and the `pm profile list` ordering. */
|
|
5
|
-
export const PROFILE_NAMES = ["agile", "ops", "research"];
|
|
6
|
-
/**
|
|
7
|
-
* First-party archetype profiles. Each composes its matching
|
|
8
|
-
* {@link TYPE_PRESET_DEFINITIONS} entry (so item types stay identical to the
|
|
9
|
-
* standalone type preset) with archetype-appropriate statuses, fields, a primary
|
|
10
|
-
* workflow, offline-friendly search config, a starter template, and package
|
|
11
|
-
* recommendations.
|
|
12
|
-
*/
|
|
13
|
-
export const BUILTIN_PROFILES = {
|
|
14
|
-
agile: {
|
|
15
|
-
name: "agile",
|
|
16
|
-
title: "Agile delivery",
|
|
17
|
-
summary: "Story/Spike delivery with a review stage, story points, and acceptance ownership.",
|
|
18
|
-
types: TYPE_PRESET_DEFINITIONS.agile,
|
|
19
|
-
statuses: [
|
|
20
|
-
{
|
|
21
|
-
id: "review",
|
|
22
|
-
roles: ["active"],
|
|
23
|
-
aliases: ["in-review"],
|
|
24
|
-
description: "Work is implementation-complete and awaiting peer review.",
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
fields: [
|
|
28
|
-
{
|
|
29
|
-
key: "story_points",
|
|
30
|
-
type: "number",
|
|
31
|
-
commands: ["create", "update", "list"],
|
|
32
|
-
description: "Relative estimation size for a story or spike.",
|
|
33
|
-
aliases: ["points"],
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
key: "acceptance_owner",
|
|
37
|
-
type: "string",
|
|
38
|
-
commands: ["create", "update", "list"],
|
|
39
|
-
description: "Stakeholder accountable for accepting the delivered story.",
|
|
40
|
-
aliases: ["acceptor"],
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
workflows: [
|
|
44
|
-
{
|
|
45
|
-
type: "Story",
|
|
46
|
-
allowed_transitions: [
|
|
47
|
-
["open", "in_progress"],
|
|
48
|
-
["in_progress", "review"],
|
|
49
|
-
["review", "in_progress"],
|
|
50
|
-
["review", "closed"],
|
|
51
|
-
["in_progress", "blocked"],
|
|
52
|
-
["blocked", "in_progress"],
|
|
53
|
-
],
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
config: [
|
|
57
|
-
{
|
|
58
|
-
key: "search_provider",
|
|
59
|
-
value: "bm25",
|
|
60
|
-
summary: "Offline BM25 lexical search works without an embedding service.",
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
key: "search_max_results",
|
|
64
|
-
value: "20",
|
|
65
|
-
summary: "Sprint-sized result cap for quick triage.",
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
templates: [
|
|
69
|
-
{
|
|
70
|
-
name: "story",
|
|
71
|
-
options: {
|
|
72
|
-
type: "Story",
|
|
73
|
-
priority: "2",
|
|
74
|
-
tags: "story",
|
|
75
|
-
acceptanceCriteria: "Story delivers the stated user outcome with tests and docs updated.",
|
|
76
|
-
body: "## As a\n\n## I want\n\n## So that\n\n## Acceptance\n- [ ] \n",
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
packages: [
|
|
81
|
-
{
|
|
82
|
-
spec: "templates",
|
|
83
|
-
reason: "Reusable create templates for recurring story shapes.",
|
|
84
|
-
},
|
|
85
|
-
{ spec: "calendar", reason: "Sprint and iteration scheduling views." },
|
|
86
|
-
{
|
|
87
|
-
spec: "search-advanced",
|
|
88
|
-
reason: "Richer retrieval as the backlog grows.",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
},
|
|
92
|
-
ops: {
|
|
93
|
-
name: "ops",
|
|
94
|
-
title: "Operations",
|
|
95
|
-
summary: "Incident/Runbook response with mitigation and monitoring stages, severity, and service fields.",
|
|
96
|
-
types: TYPE_PRESET_DEFINITIONS.ops,
|
|
97
|
-
statuses: [
|
|
98
|
-
{
|
|
99
|
-
id: "mitigating",
|
|
100
|
-
roles: ["active"],
|
|
101
|
-
aliases: ["mitigation"],
|
|
102
|
-
description: "Active mitigation is underway to restore service.",
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
id: "monitoring",
|
|
106
|
-
roles: ["active"],
|
|
107
|
-
aliases: ["observing"],
|
|
108
|
-
description: "Mitigation applied; monitoring for recurrence before closure.",
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
fields: [
|
|
112
|
-
{
|
|
113
|
-
key: "severity",
|
|
114
|
-
type: "string",
|
|
115
|
-
commands: ["create", "update", "list"],
|
|
116
|
-
description: "Incident severity classification (e.g. sev1, sev2, sev3).",
|
|
117
|
-
aliases: ["sev"],
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
key: "service",
|
|
121
|
-
type: "string",
|
|
122
|
-
commands: ["create", "update", "list"],
|
|
123
|
-
description: "Primary affected service or component.",
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
workflows: [
|
|
127
|
-
{
|
|
128
|
-
type: "Incident",
|
|
129
|
-
allowed_transitions: [
|
|
130
|
-
["open", "mitigating"],
|
|
131
|
-
["mitigating", "monitoring"],
|
|
132
|
-
["monitoring", "mitigating"],
|
|
133
|
-
["monitoring", "closed"],
|
|
134
|
-
["mitigating", "blocked"],
|
|
135
|
-
["blocked", "mitigating"],
|
|
136
|
-
],
|
|
137
|
-
},
|
|
138
|
-
],
|
|
139
|
-
config: [
|
|
140
|
-
{
|
|
141
|
-
key: "search_provider",
|
|
142
|
-
value: "bm25",
|
|
143
|
-
summary: "Offline BM25 lexical search for fast incident lookup.",
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
key: "search_max_results",
|
|
147
|
-
value: "25",
|
|
148
|
-
summary: "Wider result cap to surface related incidents and runbooks.",
|
|
149
|
-
},
|
|
150
|
-
],
|
|
151
|
-
templates: [
|
|
152
|
-
{
|
|
153
|
-
name: "incident",
|
|
154
|
-
options: {
|
|
155
|
-
type: "Incident",
|
|
156
|
-
priority: "1",
|
|
157
|
-
tags: "incident",
|
|
158
|
-
acceptanceCriteria: "Service restored, root cause documented, and follow-ups filed.",
|
|
159
|
-
body: "## Impact\n\n## Timeline\n\n## Root cause\n\n## Mitigation\n\n## Follow-ups\n",
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
],
|
|
163
|
-
packages: [
|
|
164
|
-
{
|
|
165
|
-
spec: "lifecycle-hooks",
|
|
166
|
-
reason: "Automate transitions and notifications on incident state changes.",
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
spec: "governance-audit",
|
|
170
|
-
reason: "Audit incident metadata completeness and closure quality.",
|
|
171
|
-
},
|
|
172
|
-
{ spec: "calendar", reason: "On-call and follow-up scheduling." },
|
|
173
|
-
],
|
|
174
|
-
},
|
|
175
|
-
research: {
|
|
176
|
-
name: "research",
|
|
177
|
-
title: "Research",
|
|
178
|
-
summary: "Experiment/Hypothesis investigation with an analysis stage, hypothesis, and method fields.",
|
|
179
|
-
types: TYPE_PRESET_DEFINITIONS.research,
|
|
180
|
-
statuses: [
|
|
181
|
-
{
|
|
182
|
-
id: "analyzing",
|
|
183
|
-
roles: ["active"],
|
|
184
|
-
aliases: ["analysis"],
|
|
185
|
-
description: "Data collected; analysis and synthesis in progress.",
|
|
186
|
-
},
|
|
187
|
-
],
|
|
188
|
-
fields: [
|
|
189
|
-
{
|
|
190
|
-
key: "hypothesis",
|
|
191
|
-
type: "string",
|
|
192
|
-
commands: ["create", "update"],
|
|
193
|
-
description: "The testable claim the experiment evaluates.",
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
key: "method",
|
|
197
|
-
type: "string",
|
|
198
|
-
commands: ["create", "update", "list"],
|
|
199
|
-
description: "Experimental method or protocol used to evaluate the hypothesis.",
|
|
200
|
-
aliases: ["protocol"],
|
|
201
|
-
},
|
|
202
|
-
],
|
|
203
|
-
workflows: [
|
|
204
|
-
{
|
|
205
|
-
type: "Experiment",
|
|
206
|
-
allowed_transitions: [
|
|
207
|
-
["open", "in_progress"],
|
|
208
|
-
["in_progress", "analyzing"],
|
|
209
|
-
["analyzing", "in_progress"],
|
|
210
|
-
["analyzing", "closed"],
|
|
211
|
-
["in_progress", "blocked"],
|
|
212
|
-
["blocked", "in_progress"],
|
|
213
|
-
],
|
|
214
|
-
},
|
|
215
|
-
],
|
|
216
|
-
config: [
|
|
217
|
-
{
|
|
218
|
-
key: "search_provider",
|
|
219
|
-
value: "bm25",
|
|
220
|
-
summary: "Offline BM25 lexical search across the research corpus.",
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
key: "search_max_results",
|
|
224
|
-
value: "50",
|
|
225
|
-
summary: "Broader recall cap for literature and prior-experiment discovery.",
|
|
226
|
-
},
|
|
227
|
-
],
|
|
228
|
-
templates: [
|
|
229
|
-
{
|
|
230
|
-
name: "experiment",
|
|
231
|
-
options: {
|
|
232
|
-
type: "Experiment",
|
|
233
|
-
priority: "2",
|
|
234
|
-
tags: "experiment",
|
|
235
|
-
acceptanceCriteria: "Hypothesis is supported, rejected, or refined with recorded evidence.",
|
|
236
|
-
body: "## Hypothesis\n\n## Method\n\n## Results\n\n## Conclusion\n",
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
],
|
|
240
|
-
packages: [
|
|
241
|
-
{
|
|
242
|
-
spec: "search-advanced",
|
|
243
|
-
reason: "Semantic retrieval over experiments and findings.",
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
spec: "templates",
|
|
247
|
-
reason: "Consistent experiment and hypothesis scaffolds.",
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
spec: "beads",
|
|
251
|
-
reason: "Import structured prior work into the tracker.",
|
|
252
|
-
},
|
|
253
|
-
],
|
|
254
|
-
},
|
|
255
|
-
};
|
|
256
|
-
/**
|
|
257
|
-
* Validates and normalizes a raw profile-name value. Returns `undefined` when the
|
|
258
|
-
* value is omitted. Throws a plain Error with a stable message for an empty or
|
|
259
|
-
* unknown name; CLI layers map it to a USAGE exit code. Accepts hyphen/underscore
|
|
260
|
-
* and casing variations for ergonomics, mirroring {@link normalizeTypePresetName}.
|
|
261
|
-
*/
|
|
262
|
-
export function normalizeProfileName(rawValue) {
|
|
263
|
-
if (rawValue === undefined) {
|
|
264
|
-
return undefined;
|
|
265
|
-
}
|
|
266
|
-
const normalized = normalizeProfileLookupKey(rawValue);
|
|
267
|
-
if (normalized.length === 0) {
|
|
268
|
-
throw new Error("Profile name must not be empty.");
|
|
269
|
-
}
|
|
270
|
-
// Validate against PROFILE_NAMES so adding a profile never drifts from the
|
|
271
|
-
// accepted set (single source of truth shared with BUILTIN_PROFILES).
|
|
272
|
-
if (PROFILE_NAMES.includes(normalized)) {
|
|
273
|
-
return normalized;
|
|
274
|
-
}
|
|
275
|
-
throw new Error(`Invalid profile "${rawValue}". Allowed: ${PROFILE_NAMES.join(", ")}.`);
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Resolves a built-in profile definition by validated name. Throws (via
|
|
279
|
-
* {@link normalizeProfileName}) when the name is missing or unknown.
|
|
280
|
-
*/
|
|
281
|
-
export function resolveProfile(rawValue) {
|
|
282
|
-
const name = normalizeProfileName(rawValue);
|
|
283
|
-
if (name === undefined) {
|
|
284
|
-
throw new Error(`Profile name is required. Allowed: ${PROFILE_NAMES.join(", ")}.`);
|
|
285
|
-
}
|
|
286
|
-
return BUILTIN_PROFILES[name];
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Returns all built-in profile definitions in {@link PROFILE_NAMES} order. Used by
|
|
290
|
-
* `pm profile list` and SDK consumers enumerating available archetypes.
|
|
291
|
-
*/
|
|
292
|
-
export function listProfiles() {
|
|
293
|
-
return PROFILE_NAMES.map((name) => BUILTIN_PROFILES[name]);
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Canonical lookup key for a profile name: trimmed, lowercased, with hyphens
|
|
297
|
-
* folded to underscores. Shared by both sides of every catalog match (and by
|
|
298
|
-
* {@link normalizeProfileName}) so a user can type `my-flow`, `My-Flow`, or
|
|
299
|
-
* `my_flow ` interchangeably. Interior spaces are preserved — only the
|
|
300
|
-
* hyphen/underscore distinction and surrounding whitespace/casing are folded.
|
|
301
|
-
*/
|
|
302
|
-
export function normalizeProfileLookupKey(rawValue) {
|
|
303
|
-
return rawValue.trim().toLowerCase().replaceAll("-", "_");
|
|
304
|
-
}
|
|
305
|
-
function formatAvailableProfileNames(profiles) {
|
|
306
|
-
return profiles.map((entry) => entry.definition.name).join(", ");
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Merges the core-baked {@link BUILTIN_PROFILES} with profiles contributed by
|
|
310
|
-
* active extensions into one resolvable catalog.
|
|
311
|
-
*
|
|
312
|
-
* Built-in names are reserved: an extension profile whose normalized name
|
|
313
|
-
* collides with a built-in archetype is dropped with a warning, so a package can
|
|
314
|
-
* never silently shadow a core profile. Two extension profiles that normalize to
|
|
315
|
-
* the same key keep the first contribution and warn on each later duplicate.
|
|
316
|
-
* Builtins always sort first, preserving the established `pm profile list`
|
|
317
|
-
* ordering. Names are non-blank by construction — the loader's
|
|
318
|
-
* `registerProfile` validation rejects an empty `name` before it can reach the
|
|
319
|
-
* registry that feeds this resolver.
|
|
320
|
-
*/
|
|
321
|
-
export function resolveProfileCatalog(contributions = []) {
|
|
322
|
-
const profiles = PROFILE_NAMES.map((name) => ({
|
|
323
|
-
definition: BUILTIN_PROFILES[name],
|
|
324
|
-
source: "builtin",
|
|
325
|
-
}));
|
|
326
|
-
const builtinKeys = new Set(PROFILE_NAMES.map((name) => normalizeProfileLookupKey(name)));
|
|
327
|
-
const seen = new Set(builtinKeys);
|
|
328
|
-
const warnings = [];
|
|
329
|
-
for (const contribution of contributions) {
|
|
330
|
-
const key = normalizeProfileLookupKey(contribution.profile.name);
|
|
331
|
-
if (builtinKeys.has(key)) {
|
|
332
|
-
warnings.push(`Extension "${contribution.name}" profile "${contribution.profile.name}" uses a name reserved by a built-in archetype and was ignored.`);
|
|
333
|
-
continue;
|
|
334
|
-
}
|
|
335
|
-
if (seen.has(key)) {
|
|
336
|
-
warnings.push(`Profile "${contribution.profile.name}" from extension "${contribution.name}" duplicates an already-registered profile and was ignored.`);
|
|
337
|
-
continue;
|
|
338
|
-
}
|
|
339
|
-
seen.add(key);
|
|
340
|
-
profiles.push({
|
|
341
|
-
definition: contribution.profile,
|
|
342
|
-
source: "extension",
|
|
343
|
-
package: contribution.name,
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
return { profiles, warnings };
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Resolves a single profile by name from the merged catalog (builtins +
|
|
350
|
-
* extension contributions), returning it alongside the catalog's merge warnings.
|
|
351
|
-
* Throws a plain Error with a stable, name-listing message when the value is
|
|
352
|
-
* missing or unknown, so CLI layers map it to a USAGE exit code — the
|
|
353
|
-
* extension-aware counterpart to {@link resolveProfile}.
|
|
354
|
-
*/
|
|
355
|
-
export function resolveProfileEntry(rawValue, contributions = []) {
|
|
356
|
-
const { profiles, warnings } = resolveProfileCatalog(contributions);
|
|
357
|
-
// Treat any non-string name as missing — undefined, null, or a non-string
|
|
358
|
-
// primitive slipping in from an untyped JS caller or parsed payload — so the
|
|
359
|
-
// `.trim()` below never throws.
|
|
360
|
-
if (typeof rawValue !== "string" || rawValue.trim().length === 0) {
|
|
361
|
-
throw new Error(`Profile name is required. Allowed: ${formatAvailableProfileNames(profiles)}.`);
|
|
362
|
-
}
|
|
363
|
-
const key = normalizeProfileLookupKey(rawValue);
|
|
364
|
-
const match = profiles.find((entry) => normalizeProfileLookupKey(entry.definition.name) === key);
|
|
365
|
-
if (match === undefined) {
|
|
366
|
-
throw new Error(`Invalid profile "${rawValue}". Allowed: ${formatAvailableProfileNames(profiles)}.`);
|
|
367
|
-
}
|
|
368
|
-
return { resolved: match, warnings };
|
|
369
|
-
}
|
|
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]="ddcc068c-6727-5508-baa3-e089bcd0a0a9")}catch(e2){}})();import{TYPE_PRESET_DEFINITIONS}from"../schema/type-presets.js";const PROFILE_NAMES=["agile","ops","research"];const BUILTIN_PROFILES={agile:{name:"agile",title:"Agile delivery",summary:"Story/Spike delivery with a review stage, story points, and acceptance ownership.",types:TYPE_PRESET_DEFINITIONS.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\n\n## I want\n\n## So that\n\n## Acceptance\n- [ ] \n"}}],packages:[{spec:"templates",reason:"Reusable create templates for recurring story shapes."},{spec:"calendar",reason:"Sprint and iteration scheduling views."},{spec:"search-advanced",reason:"Richer retrieval as the backlog grows."}]},ops:{name:"ops",title:"Operations",summary:"Incident/Runbook response with mitigation and monitoring stages, severity, and service fields.",types:TYPE_PRESET_DEFINITIONS.ops,statuses:[{id:"mitigating",roles:["active"],aliases:["mitigation"],description:"Active mitigation is underway to restore service."},{id:"monitoring",roles:["active"],aliases:["observing"],description:"Mitigation applied; monitoring for recurrence before closure."}],fields:[{key:"severity",type:"string",commands:["create","update","list"],description:"Incident severity classification (e.g. sev1, sev2, sev3).",aliases:["sev"]},{key:"service",type:"string",commands:["create","update","list"],description:"Primary affected service or component."}],workflows:[{type:"Incident",allowed_transitions:[["open","mitigating"],["mitigating","monitoring"],["monitoring","mitigating"],["monitoring","closed"],["mitigating","blocked"],["blocked","mitigating"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search for fast incident lookup."},{key:"search_max_results",value:"25",summary:"Wider result cap to surface related incidents and runbooks."}],templates:[{name:"incident",options:{type:"Incident",priority:"1",tags:"incident",acceptanceCriteria:"Service restored, root cause documented, and follow-ups filed.",body:"## Impact\n\n## Timeline\n\n## Root cause\n\n## Mitigation\n\n## Follow-ups\n"}}],packages:[{spec:"lifecycle-hooks",reason:"Automate transitions and notifications on incident state changes."},{spec:"governance-audit",reason:"Audit incident metadata completeness and closure quality."},{spec:"calendar",reason:"On-call and follow-up scheduling."}]},research:{name:"research",title:"Research",summary:"Experiment/Hypothesis investigation with an analysis stage, hypothesis, and method fields.",types:TYPE_PRESET_DEFINITIONS.research,statuses:[{id:"analyzing",roles:["active"],aliases:["analysis"],description:"Data collected; analysis and synthesis in progress."}],fields:[{key:"hypothesis",type:"string",commands:["create","update"],description:"The testable claim the experiment evaluates."},{key:"method",type:"string",commands:["create","update","list"],description:"Experimental method or protocol used to evaluate the hypothesis.",aliases:["protocol"]}],workflows:[{type:"Experiment",allowed_transitions:[["open","in_progress"],["in_progress","analyzing"],["analyzing","in_progress"],["analyzing","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search across the research corpus."},{key:"search_max_results",value:"50",summary:"Broader recall cap for literature and prior-experiment discovery."}],templates:[{name:"experiment",options:{type:"Experiment",priority:"2",tags:"experiment",acceptanceCriteria:"Hypothesis is supported, rejected, or refined with recorded evidence.",body:"## Hypothesis\n\n## Method\n\n## Results\n\n## Conclusion\n"}}],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 normalizeProfileName(rawValue){if(rawValue===void 0){return void 0}const normalized=normalizeProfileLookupKey(rawValue);if(normalized.length===0){throw new Error("Profile name must not be empty.")}if(PROFILE_NAMES.includes(normalized)){return normalized}throw new Error(`Invalid profile "${rawValue}". Allowed: ${PROFILE_NAMES.join(", ")}.`)}function resolveProfile(rawValue){const name=normalizeProfileName(rawValue);if(name===void 0){throw new Error(`Profile name is required. Allowed: ${PROFILE_NAMES.join(", ")}.`)}return BUILTIN_PROFILES[name]}function listProfiles(){return PROFILE_NAMES.map(name=>BUILTIN_PROFILES[name])}function normalizeProfileLookupKey(rawValue){return rawValue.trim().toLowerCase().replaceAll("-","_")}function formatAvailableProfileNames(profiles){return profiles.map(entry=>entry.definition.name).join(", ")}function resolveProfileCatalog(contributions=[]){const profiles=PROFILE_NAMES.map(name=>({definition:BUILTIN_PROFILES[name],source:"builtin"}));const builtinKeys=new Set(PROFILE_NAMES.map(name=>normalizeProfileLookupKey(name)));const seen=new Set(builtinKeys);const warnings=[];for(const contribution of contributions){const key=normalizeProfileLookupKey(contribution.profile.name);if(builtinKeys.has(key)){warnings.push(`Extension "${contribution.name}" profile "${contribution.profile.name}" uses a name reserved by a built-in archetype and was ignored.`);continue}if(seen.has(key)){warnings.push(`Profile "${contribution.profile.name}" from extension "${contribution.name}" duplicates an already-registered profile and was ignored.`);continue}seen.add(key);profiles.push({definition:contribution.profile,source:"extension",package:contribution.name})}return{profiles,warnings}}function resolveProfileEntry(rawValue,contributions=[]){const{profiles,warnings}=resolveProfileCatalog(contributions);if(typeof rawValue!=="string"||rawValue.trim().length===0){throw new Error(`Profile name is required. Allowed: ${formatAvailableProfileNames(profiles)}.`)}const key=normalizeProfileLookupKey(rawValue);const match=profiles.find(entry=>normalizeProfileLookupKey(entry.definition.name)===key);if(match===void 0){throw new Error(`Invalid profile "${rawValue}". Allowed: ${formatAvailableProfileNames(profiles)}.`)}return{resolved:match,warnings}}export{BUILTIN_PROFILES,PROFILE_NAMES,listProfiles,normalizeProfileLookupKey,normalizeProfileName,resolveProfile,resolveProfileCatalog,resolveProfileEntry};
|
|
370
2
|
//# sourceMappingURL=profile-presets.js.map
|
|
371
|
-
//# debugId=bed1d1d4-0c1d-59e5-8267-fbe800dfd83b
|
|
@@ -1,83 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module core/reproducibility/context
|
|
3
|
-
*
|
|
4
|
-
* Provides opt-in deterministic time and identifier entropy for reproducible
|
|
5
|
-
* workspace executions. SDK recipes and supported process adapters install
|
|
6
|
-
* this context explicitly; default execution remains nondeterministic.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
!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]="aacc48ae-e9b2-5c8e-945f-89d05aff48e8")}catch(e){}}();
|
|
10
|
-
import crypto from "node:crypto";
|
|
11
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
12
|
-
const executionStorage = new AsyncLocalStorage();
|
|
13
|
-
const MAX_REPRODUCIBLE_TOKEN_LENGTH = 1_024;
|
|
14
|
-
/** Validate and normalize deterministic execution settings before work starts. */
|
|
15
|
-
export function validateReproducibleExecutionSettings(settings) {
|
|
16
|
-
const clockMs = Date.parse(settings.clock);
|
|
17
|
-
if (!Number.isFinite(clockMs)) {
|
|
18
|
-
throw new Error(`Invalid reproducible workspace clock: ${settings.clock}`);
|
|
19
|
-
}
|
|
20
|
-
if (!Number.isSafeInteger(settings.tickMs) || settings.tickMs < 0) {
|
|
21
|
-
throw new Error("Reproducible workspace tickMs must be a non-negative integer");
|
|
22
|
-
}
|
|
23
|
-
if (settings.seed.trim().length === 0) {
|
|
24
|
-
throw new Error("Reproducible workspace seed must not be empty");
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
...settings,
|
|
28
|
-
clock: new Date(clockMs).toISOString(),
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/** Create a runner whose serial operations share deterministic clock and entropy state. */
|
|
32
|
-
export function createReproducibleExecutionRunner(settings) {
|
|
33
|
-
const normalized = validateReproducibleExecutionSettings(settings);
|
|
34
|
-
const state = {
|
|
35
|
-
...normalized,
|
|
36
|
-
clockReads: 0,
|
|
37
|
-
tokenReads: 0,
|
|
38
|
-
};
|
|
39
|
-
return (operation) => executionStorage.run(state, operation);
|
|
40
|
-
}
|
|
41
|
-
/** Run an isolated async operation with deterministic clock and entropy state. */
|
|
42
|
-
export async function runWithReproducibleExecution(settings, operation) {
|
|
43
|
-
return createReproducibleExecutionRunner(settings)(operation);
|
|
44
|
-
}
|
|
45
|
-
/** Return the next deterministic clock value, or undefined outside a recipe. */
|
|
46
|
-
export function nextReproducibleTimestamp() {
|
|
47
|
-
const state = executionStorage.getStore();
|
|
48
|
-
if (state === undefined) {
|
|
49
|
-
return undefined;
|
|
50
|
-
}
|
|
51
|
-
const timestamp = new Date(Date.parse(state.clock) + state.clockReads * state.tickMs).toISOString();
|
|
52
|
-
state.clockReads += 1;
|
|
53
|
-
return timestamp;
|
|
54
|
-
}
|
|
55
|
-
/** Return a deterministic base36 token, or undefined outside a recipe. */
|
|
56
|
-
export function nextReproducibleToken(length) {
|
|
57
|
-
const state = executionStorage.getStore();
|
|
58
|
-
if (state === undefined) {
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
if (!Number.isSafeInteger(length) ||
|
|
62
|
-
length < 0 ||
|
|
63
|
-
length > MAX_REPRODUCIBLE_TOKEN_LENGTH) {
|
|
64
|
-
throw new Error(`Reproducible token length must be an integer between 0 and ${MAX_REPRODUCIBLE_TOKEN_LENGTH}`);
|
|
65
|
-
}
|
|
66
|
-
let token = "";
|
|
67
|
-
while (token.length < length) {
|
|
68
|
-
const digest = crypto
|
|
69
|
-
.createHash("sha256")
|
|
70
|
-
.update(`${state.seed}\0${state.tokenReads}`)
|
|
71
|
-
.digest();
|
|
72
|
-
state.tokenReads += 1;
|
|
73
|
-
for (const byte of digest) {
|
|
74
|
-
token += (byte % 36).toString(36);
|
|
75
|
-
if (token.length === length) {
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return token;
|
|
81
|
-
}
|
|
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]="38ed5847-939e-5846-bc7d-6d257d36a25f")}catch(e2){}})();import crypto from"node:crypto";import{AsyncLocalStorage}from"node:async_hooks";const executionStorage=new AsyncLocalStorage;const MAX_REPRODUCIBLE_TOKEN_LENGTH=1024;function validateReproducibleExecutionSettings(settings){const clockMs=Date.parse(settings.clock);if(!Number.isFinite(clockMs)){throw new Error(`Invalid reproducible workspace clock: ${settings.clock}`)}if(!Number.isSafeInteger(settings.tickMs)||settings.tickMs<0){throw new Error("Reproducible workspace tickMs must be a non-negative integer")}if(settings.seed.trim().length===0){throw new Error("Reproducible workspace seed must not be empty")}return{...settings,clock:new Date(clockMs).toISOString()}}function createReproducibleExecutionRunner(settings){const normalized=validateReproducibleExecutionSettings(settings);const state={...normalized,clockReads:0,tokenReads:0};return operation=>executionStorage.run(state,operation)}async function runWithReproducibleExecution(settings,operation){return createReproducibleExecutionRunner(settings)(operation)}function nextReproducibleTimestamp(){const state=executionStorage.getStore();if(state===void 0){return void 0}const timestamp=new Date(Date.parse(state.clock)+state.clockReads*state.tickMs).toISOString();state.clockReads+=1;return timestamp}function nextReproducibleToken(length){const state=executionStorage.getStore();if(state===void 0){return void 0}if(!Number.isSafeInteger(length)||length<0||length>MAX_REPRODUCIBLE_TOKEN_LENGTH){throw new Error(`Reproducible token length must be an integer between 0 and ${MAX_REPRODUCIBLE_TOKEN_LENGTH}`)}let token="";while(token.length<length){const digest=crypto.createHash("sha256").update(`${state.seed}\0${state.tokenReads}`).digest();state.tokenReads+=1;for(const byte of digest){token+=(byte%36).toString(36);if(token.length===length){break}}}return token}export{createReproducibleExecutionRunner,nextReproducibleTimestamp,nextReproducibleToken,runWithReproducibleExecution,validateReproducibleExecutionSettings};
|
|
82
2
|
//# sourceMappingURL=context.js.map
|
|
83
|
-
//# debugId=aacc48ae-e9b2-5c8e-945f-89d05aff48e8
|