@unbrained/pm-cli 2026.9.6 → 2026.9.8
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 +5 -0
- package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +95 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +218 -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.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-3BZZA6A3.js +5 -0
- package/dist/cli-bundle/chunks/chunk-AMRDVX36.js +235 -0
- package/dist/cli-bundle/chunks/chunk-DAM4CBBR.js +2202 -0
- package/dist/cli-bundle/chunks/{chunk-WYRZZ5ZE.js → chunk-DEZPZOQ7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-FLDWYEND.js +77 -0
- package/dist/cli-bundle/chunks/{chunk-NPN5I67J.js → chunk-G5ADGQ2D.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-JAAEYHUA.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-JX4DH4WC.js → chunk-KR3RP4FH.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-LEZOUXG6.js +2 -0
- package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +2 -0
- package/dist/cli-bundle/chunks/chunk-QOEKOECV.js +29 -0
- package/dist/cli-bundle/chunks/chunk-RHSFOMHU.js +2 -0
- package/dist/cli-bundle/chunks/chunk-XOD2PCB6.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-JT6XF6GE.js → chunk-YVEQ2AMO.js} +4 -4
- package/dist/cli-bundle/chunks/register-list-query-KSK3R63M.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-IQ5C7U6O.js +20 -0
- package/dist/cli-bundle/chunks/{register-operations-I5W3KMGB.js → register-operations-DWVHR2NC.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-BQ5SVD4B.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3WRPWLA7.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-7MBUII7U.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-COPBO5HW.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-DUN4IXYN.js +20 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LIJIA4TY.js → chunk-EE5QSM4Z.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-HJVARYM3.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-IAUOUGVR.js +177 -0
- package/dist/cli-bundle/focused-chunks/chunk-KOOMJ54F.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MZDXX7JY.js +56 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M6PBRFSH.js → chunk-OPFHFGDD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-QHNETP77.js +9 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3BZEOXLT.js → chunk-RMWES4M6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-RXT4P5QH.js +10 -0
- package/dist/cli-bundle/focused-chunks/chunk-SDOL6FM2.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-SQV4AAUC.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PEFABF7E.js → chunk-WE3IUNIW.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-YALOUBWJ.js +2 -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 +29 -29
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +42 -42
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +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/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.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.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 +157 -837
- 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.js +1 -2261
- package/dist/sdk/governance/workspace-position.js +1 -163
- package/dist/sdk/governance.d.ts +1 -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 -0
- 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.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.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.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.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.js +1 -4
- package/dist/sdk/runtime-stats-options.js +1 -38
- 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.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.js +1 -245
- package/docs/AGENT_GUIDE.md +1 -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 +3 -0
- package/docs/RELEASING.md +1 -0
- package/docs/SCRIPTING.md +21 -0
- package/docs/TESTING.md +23 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +5 -5
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +2 -2
- package/marketplace.json +2 -2
- package/package.json +1 -1
- 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-BAX2BYUW.js +0 -2111
- package/dist/cli-bundle/chunks/chunk-CKOL5U7J.js +0 -77
- 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-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-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,45 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/query/parsers
|
|
3
|
-
*
|
|
4
|
-
* Provides shared query parsers for SDK and CLI runtime consumers.
|
|
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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch(e){}}();
|
|
8
|
-
import { PmCliError } from "../../core/shared/errors.js";
|
|
9
|
-
import { EXIT_CODE } from "../../core/shared/constants.js";
|
|
10
|
-
export { parseLimit } from "../../core/shared/numeric-parsers.js";
|
|
11
|
-
import { resolveTypeName, } from "../../core/item/type-registry.js";
|
|
12
|
-
/** Implements parse integer limit for the public runtime surface of this module. */
|
|
13
|
-
export function parseIntegerLimit(raw, label = "--limit") {
|
|
14
|
-
if (raw === undefined)
|
|
15
|
-
return undefined;
|
|
16
|
-
const normalized = String(raw).trim();
|
|
17
|
-
const parsed = normalized.length === 0 ? Number.NaN : Number(normalized);
|
|
18
|
-
if (!Number.isInteger(parsed) || parsed < 0) {
|
|
19
|
-
throw new PmCliError(`${label} must be a non-negative integer`, EXIT_CODE.USAGE);
|
|
20
|
-
}
|
|
21
|
-
return parsed;
|
|
22
|
-
}
|
|
23
|
-
/** Implements parse priority for the public runtime surface of this module. */
|
|
24
|
-
export function parsePriority(raw, label = "--priority") {
|
|
25
|
-
if (raw === undefined)
|
|
26
|
-
return undefined;
|
|
27
|
-
const normalized = String(raw).trim();
|
|
28
|
-
const parsed = normalized.length === 0 ? Number.NaN : Number(normalized);
|
|
29
|
-
if (!Number.isInteger(parsed) || parsed < 0 || parsed > 4) {
|
|
30
|
-
throw new PmCliError(`${label} filter must be 0..4`, EXIT_CODE.USAGE);
|
|
31
|
-
}
|
|
32
|
-
return parsed;
|
|
33
|
-
}
|
|
34
|
-
/** Implements parse type for the public runtime surface of this module. */
|
|
35
|
-
export function parseType(raw, typeRegistry, label = "--type") {
|
|
36
|
-
if (raw === undefined)
|
|
37
|
-
return undefined;
|
|
38
|
-
const parsed = resolveTypeName(raw, typeRegistry);
|
|
39
|
-
if (!parsed) {
|
|
40
|
-
throw new PmCliError(`${label} filter must be one of ${typeRegistry.types.join("|")}`, EXIT_CODE.USAGE);
|
|
41
|
-
}
|
|
42
|
-
return parsed;
|
|
43
|
-
}
|
|
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]="fdc16f69-f63f-5e17-9139-35d54db7bab5")}catch(e2){}})();import{PmCliError}from"../../core/shared/errors.js";import{EXIT_CODE}from"../../core/shared/constants.js";import{parseLimit}from"../../core/shared/numeric-parsers.js";import{resolveTypeName}from"../../core/item/type-registry.js";function parseIntegerLimit(raw,label="--limit"){if(raw===void 0)return void 0;const normalized=String(raw).trim();const parsed=normalized.length===0?Number.NaN:Number(normalized);if(!Number.isInteger(parsed)||parsed<0){throw new PmCliError(`${label} must be a non-negative integer`,EXIT_CODE.USAGE)}return parsed}function parsePriority(raw,label="--priority"){if(raw===void 0)return void 0;const normalized=String(raw).trim();const parsed=normalized.length===0?Number.NaN:Number(normalized);if(!Number.isInteger(parsed)||parsed<0||parsed>4){throw new PmCliError(`${label} filter must be 0..4`,EXIT_CODE.USAGE)}return parsed}function parseType(raw,typeRegistry,label="--type"){if(raw===void 0)return void 0;const parsed=resolveTypeName(raw,typeRegistry);if(!parsed){throw new PmCliError(`${label} filter must be one of ${typeRegistry.types.join("|")}`,EXIT_CODE.USAGE)}return parsed}export{parseIntegerLimit,parseLimit,parsePriority,parseType};
|
|
44
2
|
//# sourceMappingURL=parsers.js.map
|
|
45
|
-
//# debugId=eb044a23-d43b-5e9c-9ae7-4ac91b5e587a
|
|
@@ -1,185 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/query/projection-contracts
|
|
3
|
-
*
|
|
4
|
-
* Declares dependency-light projection vocabularies for list, get, and search
|
|
5
|
-
* so contract-only SDK imports do not initialize query runtimes or storage.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
!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]="5bb71ec1-7eb1-558e-a965-acd779570c2e")}catch(e){}}();
|
|
9
|
-
import { ITEM_METADATA_KEY_ORDER } from "../../core/shared/item-metadata-contract.js";
|
|
10
|
-
/** Stable field order for the compact list projection. */
|
|
11
|
-
export const DEFAULT_COMPACT_LIST_FIELDS = [
|
|
12
|
-
"id",
|
|
13
|
-
"title",
|
|
14
|
-
"status",
|
|
15
|
-
"type",
|
|
16
|
-
"priority",
|
|
17
|
-
"parent",
|
|
18
|
-
"updated_at",
|
|
19
|
-
];
|
|
20
|
-
/** Stable field order for the agent-optimized brief list projection. */
|
|
21
|
-
export const BRIEF_LIST_FIELDS = ["id", "status", "type", "title"];
|
|
22
|
-
/** Machine-readable default projection contract for every list command. */
|
|
23
|
-
export const LIST_COMMAND_DEFAULT_PROJECTIONS = {
|
|
24
|
-
list: "brief",
|
|
25
|
-
"list-all": "full",
|
|
26
|
-
"list-draft": "full",
|
|
27
|
-
"list-open": "brief",
|
|
28
|
-
"list-in-progress": "brief",
|
|
29
|
-
"list-blocked": "brief",
|
|
30
|
-
"list-closed": "full",
|
|
31
|
-
"list-canceled": "full",
|
|
32
|
-
};
|
|
33
|
-
const TREE_METADATA_FIELDS = [
|
|
34
|
-
"tree_depth",
|
|
35
|
-
"tree_parent",
|
|
36
|
-
"tree_children",
|
|
37
|
-
"tree_title",
|
|
38
|
-
];
|
|
39
|
-
/** Return every accepted list projection selector for core and runtime metadata. */
|
|
40
|
-
export function listListProjectionFields(runtimeMetadataKeys = []) {
|
|
41
|
-
return [
|
|
42
|
-
...new Set([
|
|
43
|
-
...ITEM_METADATA_KEY_ORDER,
|
|
44
|
-
"body",
|
|
45
|
-
...TREE_METADATA_FIELDS,
|
|
46
|
-
...runtimeMetadataKeys,
|
|
47
|
-
]),
|
|
48
|
-
]
|
|
49
|
-
.flatMap((field) => [field, `item.${field}`])
|
|
50
|
-
.sort();
|
|
51
|
-
}
|
|
52
|
-
/** Canonical get depth values. The CLI also accepts full as an alias for deep. */
|
|
53
|
-
export const GET_DEPTH_VALUES = ["brief", "standard", "deep"];
|
|
54
|
-
const GET_ROOT_PROJECTION_FIELDS = [
|
|
55
|
-
"body",
|
|
56
|
-
"linked",
|
|
57
|
-
"claim_state",
|
|
58
|
-
"children",
|
|
59
|
-
"schedule",
|
|
60
|
-
];
|
|
61
|
-
const GET_LINKED_PROJECTION_FIELDS = [
|
|
62
|
-
"linked.files",
|
|
63
|
-
"linked.tests",
|
|
64
|
-
"linked.docs",
|
|
65
|
-
];
|
|
66
|
-
const GET_CLAIM_STATE_PROJECTION_FIELDS = [
|
|
67
|
-
"claim_state.claimed",
|
|
68
|
-
"claim_state.assignee",
|
|
69
|
-
"claim_state.last_claim",
|
|
70
|
-
"claim_state.last_release",
|
|
71
|
-
];
|
|
72
|
-
const GET_SCHEDULE_PROJECTION_FIELDS = [
|
|
73
|
-
"schedule.deadline",
|
|
74
|
-
"schedule.start_at",
|
|
75
|
-
"schedule.end_at",
|
|
76
|
-
"schedule.location",
|
|
77
|
-
"schedule.reminders",
|
|
78
|
-
"schedule.events",
|
|
79
|
-
];
|
|
80
|
-
/** Return every accepted get projection selector for core and runtime metadata. */
|
|
81
|
-
export function listGetProjectionFields(runtimeMetadataKeys = []) {
|
|
82
|
-
const itemFields = [
|
|
83
|
-
...new Set([
|
|
84
|
-
...ITEM_METADATA_KEY_ORDER,
|
|
85
|
-
...runtimeMetadataKeys,
|
|
86
|
-
"notes_count",
|
|
87
|
-
"tests_count",
|
|
88
|
-
"collection_counts",
|
|
89
|
-
]),
|
|
90
|
-
];
|
|
91
|
-
return [
|
|
92
|
-
...itemFields.flatMap((field) => [field, `item.${field}`]),
|
|
93
|
-
...GET_ROOT_PROJECTION_FIELDS,
|
|
94
|
-
...GET_LINKED_PROJECTION_FIELDS,
|
|
95
|
-
...GET_CLAIM_STATE_PROJECTION_FIELDS,
|
|
96
|
-
...GET_SCHEDULE_PROJECTION_FIELDS,
|
|
97
|
-
].sort();
|
|
98
|
-
}
|
|
99
|
-
/** Stable field order for compact search results. */
|
|
100
|
-
export const DEFAULT_COMPACT_SEARCH_FIELDS = [
|
|
101
|
-
"id",
|
|
102
|
-
"title",
|
|
103
|
-
"status",
|
|
104
|
-
"type",
|
|
105
|
-
"priority",
|
|
106
|
-
"updated_at",
|
|
107
|
-
"score",
|
|
108
|
-
"matched_fields",
|
|
109
|
-
];
|
|
110
|
-
/** Search-result fields that live beside the nested item projection. */
|
|
111
|
-
export const SEARCH_HIT_FIELD_KEYS = [
|
|
112
|
-
"score",
|
|
113
|
-
"matched_fields",
|
|
114
|
-
"highlights",
|
|
115
|
-
];
|
|
116
|
-
/** Core item fields accepted by explicit search projections. */
|
|
117
|
-
export const SEARCH_ITEM_FIELD_KEYS = [
|
|
118
|
-
"id",
|
|
119
|
-
"title",
|
|
120
|
-
"description",
|
|
121
|
-
"type",
|
|
122
|
-
"status",
|
|
123
|
-
"priority",
|
|
124
|
-
"tags",
|
|
125
|
-
"created_at",
|
|
126
|
-
"updated_at",
|
|
127
|
-
"deadline",
|
|
128
|
-
"assignee",
|
|
129
|
-
"author",
|
|
130
|
-
"estimated_minutes",
|
|
131
|
-
"acceptance_criteria",
|
|
132
|
-
"dependencies",
|
|
133
|
-
"comments",
|
|
134
|
-
"notes",
|
|
135
|
-
"learnings",
|
|
136
|
-
"reminders",
|
|
137
|
-
"events",
|
|
138
|
-
"files",
|
|
139
|
-
"tests",
|
|
140
|
-
"docs",
|
|
141
|
-
"close_reason",
|
|
142
|
-
"parent",
|
|
143
|
-
"reviewer",
|
|
144
|
-
"risk",
|
|
145
|
-
"confidence",
|
|
146
|
-
"sprint",
|
|
147
|
-
"release",
|
|
148
|
-
"blocked_by",
|
|
149
|
-
"blocked_reason",
|
|
150
|
-
"reporter",
|
|
151
|
-
"severity",
|
|
152
|
-
"environment",
|
|
153
|
-
"repro_steps",
|
|
154
|
-
"resolution",
|
|
155
|
-
"expected_result",
|
|
156
|
-
"actual_result",
|
|
157
|
-
"affected_version",
|
|
158
|
-
"fixed_version",
|
|
159
|
-
"component",
|
|
160
|
-
"regression",
|
|
161
|
-
"customer_impact",
|
|
162
|
-
"definition_of_ready",
|
|
163
|
-
"order",
|
|
164
|
-
"rank",
|
|
165
|
-
"goal",
|
|
166
|
-
"objective",
|
|
167
|
-
"value",
|
|
168
|
-
"impact",
|
|
169
|
-
"outcome",
|
|
170
|
-
"why_now",
|
|
171
|
-
"plan",
|
|
172
|
-
];
|
|
173
|
-
/** Return every accepted search projection selector for core and runtime metadata. */
|
|
174
|
-
export function listSearchProjectionFields(runtimeMetadataKeys = []) {
|
|
175
|
-
const runtimeKeys = [...new Set(runtimeMetadataKeys)];
|
|
176
|
-
return [
|
|
177
|
-
...SEARCH_HIT_FIELD_KEYS,
|
|
178
|
-
...SEARCH_ITEM_FIELD_KEYS,
|
|
179
|
-
...SEARCH_ITEM_FIELD_KEYS.map((field) => `item.${field}`),
|
|
180
|
-
...runtimeKeys,
|
|
181
|
-
...runtimeKeys.map((field) => `item.${field}`),
|
|
182
|
-
].sort();
|
|
183
|
-
}
|
|
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]="7bef182d-ada7-542d-8ffa-10876e5a97b0")}catch(e2){}})();import{ITEM_METADATA_KEY_ORDER}from"../../core/shared/item-metadata-contract.js";const DEFAULT_COMPACT_LIST_FIELDS=["id","title","status","type","priority","parent","updated_at"];const BRIEF_LIST_FIELDS=["id","status","type","title"];const LIST_COMMAND_DEFAULT_PROJECTIONS={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"};const TREE_METADATA_FIELDS=["tree_depth","tree_parent","tree_children","tree_title"];function listListProjectionFields(runtimeMetadataKeys=[]){return[...new Set([...ITEM_METADATA_KEY_ORDER,"body",...TREE_METADATA_FIELDS,...runtimeMetadataKeys])].flatMap(field=>[field,`item.${field}`]).sort()}const GET_DEPTH_VALUES=["brief","standard","deep"];const GET_ROOT_PROJECTION_FIELDS=["body","linked","claim_state","children","schedule"];const GET_LINKED_PROJECTION_FIELDS=["linked.files","linked.tests","linked.docs"];const GET_CLAIM_STATE_PROJECTION_FIELDS=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"];const GET_SCHEDULE_PROJECTION_FIELDS=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function listGetProjectionFields(runtimeMetadataKeys=[]){const itemFields=[...new Set([...ITEM_METADATA_KEY_ORDER,...runtimeMetadataKeys,"notes_count","tests_count","collection_counts"])];return[...itemFields.flatMap(field=>[field,`item.${field}`]),...GET_ROOT_PROJECTION_FIELDS,...GET_LINKED_PROJECTION_FIELDS,...GET_CLAIM_STATE_PROJECTION_FIELDS,...GET_SCHEDULE_PROJECTION_FIELDS].sort()}const DEFAULT_COMPACT_SEARCH_FIELDS=["id","title","status","type","priority","updated_at","score","matched_fields"];const SEARCH_HIT_FIELD_KEYS=["score","matched_fields","highlights"];const SEARCH_ITEM_FIELD_KEYS=["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"];function listSearchProjectionFields(runtimeMetadataKeys=[]){const runtimeKeys=[...new Set(runtimeMetadataKeys)];return[...SEARCH_HIT_FIELD_KEYS,...SEARCH_ITEM_FIELD_KEYS,...SEARCH_ITEM_FIELD_KEYS.map(field=>`item.${field}`),...runtimeKeys,...runtimeKeys.map(field=>`item.${field}`)].sort()}export{BRIEF_LIST_FIELDS,DEFAULT_COMPACT_LIST_FIELDS,DEFAULT_COMPACT_SEARCH_FIELDS,GET_DEPTH_VALUES,LIST_COMMAND_DEFAULT_PROJECTIONS,SEARCH_HIT_FIELD_KEYS,SEARCH_ITEM_FIELD_KEYS,listGetProjectionFields,listListProjectionFields,listSearchProjectionFields};
|
|
184
2
|
//# sourceMappingURL=projection-contracts.js.map
|
|
185
|
-
//# debugId=5bb71ec1-7eb1-558e-a965-acd779570c2e
|
|
@@ -1,231 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/query/search-contracts
|
|
3
|
-
*
|
|
4
|
-
* Owns search input parsing, output projection contracts, and tuning defaults.
|
|
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]="d20ab01b-a8ae-5fe8-988a-d05fe87951f6")}catch(e){}}();
|
|
8
|
-
import { coerceNumberInRange } from "../../core/shared/primitives.js";
|
|
9
|
-
import { resolveIsoOrRelative } from "../../core/shared/time.js";
|
|
10
|
-
import { renderPmCommand } from "../command-line.js";
|
|
11
|
-
import { EXIT_CODE, PmCliError } from "../runtime-primitives.js";
|
|
12
|
-
import { DEFAULT_COMPACT_SEARCH_FIELDS, listSearchProjectionFields, } from "./projection-contracts.js";
|
|
13
|
-
export { DEFAULT_COMPACT_SEARCH_FIELDS, SEARCH_HIT_FIELD_KEYS, SEARCH_ITEM_FIELD_KEYS, listSearchProjectionFields, } from "./projection-contracts.js";
|
|
14
|
-
/** Parse the configured search execution mode. */
|
|
15
|
-
export function parseSearchMode(raw) {
|
|
16
|
-
if (raw === undefined)
|
|
17
|
-
return "keyword";
|
|
18
|
-
const normalized = raw.trim().toLowerCase();
|
|
19
|
-
if (normalized !== "keyword" &&
|
|
20
|
-
normalized !== "semantic" &&
|
|
21
|
-
normalized !== "hybrid") {
|
|
22
|
-
throw new PmCliError("Search mode must be one of keyword|semantic|hybrid", EXIT_CODE.USAGE);
|
|
23
|
-
}
|
|
24
|
-
return normalized;
|
|
25
|
-
}
|
|
26
|
-
/** Normalize an opt-in boolean search flag. */
|
|
27
|
-
export function parseSearchBoolean(raw) {
|
|
28
|
-
return raw === true;
|
|
29
|
-
}
|
|
30
|
-
/** Parse a per-query semantic weight override. */
|
|
31
|
-
export function parseSemanticWeightOverride(raw) {
|
|
32
|
-
return coerceNumberInRange(raw, 0, 1) ?? undefined;
|
|
33
|
-
}
|
|
34
|
-
/** Parse the lexical match strategy. */
|
|
35
|
-
export function parseSearchMatchMode(raw) {
|
|
36
|
-
if (raw === undefined)
|
|
37
|
-
return "or";
|
|
38
|
-
const normalized = raw.trim().toLowerCase();
|
|
39
|
-
if (normalized !== "and" && normalized !== "or" && normalized !== "exact") {
|
|
40
|
-
throw new PmCliError("Search --match-mode must be one of and|or|exact", EXIT_CODE.USAGE);
|
|
41
|
-
}
|
|
42
|
-
return normalized;
|
|
43
|
-
}
|
|
44
|
-
/** Parse a non-negative per-query score threshold. */
|
|
45
|
-
export function parseMinScoreOverride(raw) {
|
|
46
|
-
if (raw === undefined || raw === null || raw === "")
|
|
47
|
-
return undefined;
|
|
48
|
-
/* c8 ignore start -- numeric-vs-string coercion is exercised through CLI parsing */
|
|
49
|
-
const parsed = typeof raw === "number" ? raw : Number(String(raw).trim());
|
|
50
|
-
/* c8 ignore stop */
|
|
51
|
-
if (!Number.isFinite(parsed) || parsed < 0) {
|
|
52
|
-
throw new PmCliError("Search --min-score must be a finite number >= 0", EXIT_CODE.USAGE);
|
|
53
|
-
}
|
|
54
|
-
return parsed;
|
|
55
|
-
}
|
|
56
|
-
/** Parse an ISO or signed-relative timestamp window. */
|
|
57
|
-
export function parseTimestampWindow(raw, fieldLabel) {
|
|
58
|
-
if (raw == null)
|
|
59
|
-
return undefined;
|
|
60
|
-
const value = String(raw).trim();
|
|
61
|
-
if (value.length === 0)
|
|
62
|
-
return undefined;
|
|
63
|
-
return resolveIsoOrRelative(value, new Date(), fieldLabel);
|
|
64
|
-
}
|
|
65
|
-
/** Normalize a phrase for case-insensitive matching. */
|
|
66
|
-
export function normalizeSearchPhrase(value) {
|
|
67
|
-
return value.toLowerCase().replace(/\s+/g, " ").trim();
|
|
68
|
-
}
|
|
69
|
-
/** Parse an optional deadline filter. */
|
|
70
|
-
export function parseSearchDeadline(raw, fieldLabel) {
|
|
71
|
-
if (raw === undefined)
|
|
72
|
-
return undefined;
|
|
73
|
-
return resolveIsoOrRelative(raw, new Date(), fieldLabel);
|
|
74
|
-
}
|
|
75
|
-
function parseFieldSelectors(raw) {
|
|
76
|
-
if (raw === undefined)
|
|
77
|
-
return undefined;
|
|
78
|
-
const selectors = raw
|
|
79
|
-
.split(",")
|
|
80
|
-
.map((entry) => entry.trim())
|
|
81
|
-
.filter((entry) => entry.length > 0);
|
|
82
|
-
if (selectors.length === 0) {
|
|
83
|
-
throw new PmCliError("Search --fields requires a comma-separated list of field names", EXIT_CODE.USAGE);
|
|
84
|
-
}
|
|
85
|
-
return [...new Set(selectors)];
|
|
86
|
-
}
|
|
87
|
-
/** Resolve mutually exclusive compact, full, or explicit-field projection. */
|
|
88
|
-
export function parseSearchProjection(options, query = "<query>") {
|
|
89
|
-
const compactRequested = options.compact === true;
|
|
90
|
-
const fullRequested = options.full === true;
|
|
91
|
-
const fieldSelectors = parseFieldSelectors(options.fields);
|
|
92
|
-
const enabledModes = Number(compactRequested) +
|
|
93
|
-
Number(fullRequested) +
|
|
94
|
-
Number(fieldSelectors !== undefined);
|
|
95
|
-
if (enabledModes > 1) {
|
|
96
|
-
throw new PmCliError("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.", EXIT_CODE.USAGE, {
|
|
97
|
-
code: "projection_options_mutually_exclusive",
|
|
98
|
-
recovery: {
|
|
99
|
-
suggested_retry: renderPmCommand(["search", query, "--full"]),
|
|
100
|
-
suggested_retry_args: ["search", query, "--full"],
|
|
101
|
-
},
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
if (compactRequested) {
|
|
105
|
-
return { mode: "compact", fields: [...DEFAULT_COMPACT_SEARCH_FIELDS] };
|
|
106
|
-
}
|
|
107
|
-
if (fullRequested)
|
|
108
|
-
return { mode: "full", fields: [] };
|
|
109
|
-
if (fieldSelectors)
|
|
110
|
-
return { mode: "fields", fields: fieldSelectors };
|
|
111
|
-
return { mode: "full", fields: [] };
|
|
112
|
-
}
|
|
113
|
-
/** Validate explicit projection fields against core and runtime metadata. */
|
|
114
|
-
export function validateSearchProjectionFields(projection, runtimeFieldRegistry, query = "<query>") {
|
|
115
|
-
if (projection.mode !== "fields")
|
|
116
|
-
return;
|
|
117
|
-
const allowedValues = listSearchProjectionFields(runtimeFieldRegistry.definitions.flatMap((field) => [
|
|
118
|
-
field.key,
|
|
119
|
-
field.metadata_key,
|
|
120
|
-
]));
|
|
121
|
-
const allowed = new Set(allowedValues);
|
|
122
|
-
const unknown = projection.fields.filter((field) => {
|
|
123
|
-
const normalized = field.trim();
|
|
124
|
-
return !allowed.has(normalized);
|
|
125
|
-
});
|
|
126
|
-
if (unknown.length > 0) {
|
|
127
|
-
const suggestedRetryArguments = [
|
|
128
|
-
"search",
|
|
129
|
-
query,
|
|
130
|
-
"--fields",
|
|
131
|
-
"id,title,status,score",
|
|
132
|
-
];
|
|
133
|
-
throw new PmCliError(`Unknown search --fields value(s): ${unknown.join(", ")}`, EXIT_CODE.USAGE, {
|
|
134
|
-
code: "unknown_field_projection",
|
|
135
|
-
examples: [
|
|
136
|
-
"pm search <query> --fields id,title,status,score",
|
|
137
|
-
"pm search <query> --fields id,title,item.description,matched_fields",
|
|
138
|
-
],
|
|
139
|
-
nextSteps: [
|
|
140
|
-
"Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples.",
|
|
141
|
-
],
|
|
142
|
-
recovery: {
|
|
143
|
-
allowed_values: allowedValues,
|
|
144
|
-
suggested_retry: renderPmCommand(suggestedRetryArguments),
|
|
145
|
-
suggested_retry_args: suggestedRetryArguments,
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/** Parse a non-empty normalized query into lexical tokens. */
|
|
151
|
-
export function parseSearchTokens(query) {
|
|
152
|
-
const normalized = normalizeSearchPhrase(query);
|
|
153
|
-
if (!normalized) {
|
|
154
|
-
throw new PmCliError("Search query must not be empty", EXIT_CODE.USAGE);
|
|
155
|
-
}
|
|
156
|
-
return normalized.split(/\s+/u).filter(Boolean);
|
|
157
|
-
}
|
|
158
|
-
/** Resolve the bounded default maximum result count. */
|
|
159
|
-
export function resolveSearchMaxResults(settings) {
|
|
160
|
-
const candidate = settings.search
|
|
161
|
-
?.max_results;
|
|
162
|
-
if (typeof candidate === "number" &&
|
|
163
|
-
Number.isFinite(candidate) &&
|
|
164
|
-
candidate > 0) {
|
|
165
|
-
return Math.floor(candidate);
|
|
166
|
-
}
|
|
167
|
-
return 50;
|
|
168
|
-
}
|
|
169
|
-
/** Resolve the configured minimum result score. */
|
|
170
|
-
export function resolveSearchScoreThreshold(settings) {
|
|
171
|
-
const candidate = settings
|
|
172
|
-
.search?.score_threshold;
|
|
173
|
-
return typeof candidate === "number" && Number.isFinite(candidate)
|
|
174
|
-
? candidate
|
|
175
|
-
: 0;
|
|
176
|
-
}
|
|
177
|
-
/** Resolve the configured hybrid semantic weighting. */
|
|
178
|
-
export function resolveHybridSemanticWeight(settings) {
|
|
179
|
-
const candidate = settings.search?.hybrid_semantic_weight;
|
|
180
|
-
if (typeof candidate === "number" &&
|
|
181
|
-
Number.isFinite(candidate) &&
|
|
182
|
-
candidate >= 0 &&
|
|
183
|
-
candidate <= 1) {
|
|
184
|
-
return candidate;
|
|
185
|
-
}
|
|
186
|
-
return 0.7;
|
|
187
|
-
}
|
|
188
|
-
/** Resolve non-negative field weights over stable defaults. */
|
|
189
|
-
export function resolveSearchTuning(settings) {
|
|
190
|
-
const defaults = {
|
|
191
|
-
title_exact_bonus: 10,
|
|
192
|
-
title_weight: 48,
|
|
193
|
-
description_weight: 5,
|
|
194
|
-
tags_weight: 6,
|
|
195
|
-
status_weight: 2,
|
|
196
|
-
body_weight: 1,
|
|
197
|
-
comments_weight: 1,
|
|
198
|
-
notes_weight: 1,
|
|
199
|
-
learnings_weight: 1,
|
|
200
|
-
reminders_weight: 2,
|
|
201
|
-
events_weight: 2,
|
|
202
|
-
dependencies_weight: 3,
|
|
203
|
-
linked_content_weight: 1,
|
|
204
|
-
};
|
|
205
|
-
const tuning = settings
|
|
206
|
-
.search?.tuning;
|
|
207
|
-
if (!tuning)
|
|
208
|
-
return defaults;
|
|
209
|
-
const resolveWeight = (candidate, fallback) => typeof candidate === "number" &&
|
|
210
|
-
Number.isFinite(candidate) &&
|
|
211
|
-
candidate >= 0
|
|
212
|
-
? candidate
|
|
213
|
-
: fallback;
|
|
214
|
-
return {
|
|
215
|
-
title_exact_bonus: resolveWeight(tuning.title_exact_bonus, defaults.title_exact_bonus),
|
|
216
|
-
title_weight: resolveWeight(tuning.title_weight, defaults.title_weight),
|
|
217
|
-
description_weight: resolveWeight(tuning.description_weight, defaults.description_weight),
|
|
218
|
-
tags_weight: resolveWeight(tuning.tags_weight, defaults.tags_weight),
|
|
219
|
-
status_weight: resolveWeight(tuning.status_weight, defaults.status_weight),
|
|
220
|
-
body_weight: resolveWeight(tuning.body_weight, defaults.body_weight),
|
|
221
|
-
comments_weight: resolveWeight(tuning.comments_weight, defaults.comments_weight),
|
|
222
|
-
notes_weight: resolveWeight(tuning.notes_weight, defaults.notes_weight),
|
|
223
|
-
learnings_weight: resolveWeight(tuning.learnings_weight, defaults.learnings_weight),
|
|
224
|
-
reminders_weight: resolveWeight(tuning.reminders_weight, defaults.reminders_weight),
|
|
225
|
-
events_weight: resolveWeight(tuning.events_weight, defaults.events_weight),
|
|
226
|
-
dependencies_weight: resolveWeight(tuning.dependencies_weight, defaults.dependencies_weight),
|
|
227
|
-
linked_content_weight: resolveWeight(tuning.linked_content_weight, defaults.linked_content_weight),
|
|
228
|
-
};
|
|
229
|
-
}
|
|
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]="fdd0f9b0-bd89-5cc1-9b20-bea153f4d896")}catch(e2){}})();import{coerceNumberInRange}from"../../core/shared/primitives.js";import{resolveIsoOrRelative}from"../../core/shared/time.js";import{renderPmCommand}from"../command-line.js";import{EXIT_CODE,PmCliError}from"../runtime-primitives.js";import{DEFAULT_COMPACT_SEARCH_FIELDS,listSearchProjectionFields}from"./projection-contracts.js";import{DEFAULT_COMPACT_SEARCH_FIELDS as DEFAULT_COMPACT_SEARCH_FIELDS2,SEARCH_HIT_FIELD_KEYS,SEARCH_ITEM_FIELD_KEYS,listSearchProjectionFields as listSearchProjectionFields2}from"./projection-contracts.js";function parseSearchMode(raw){if(raw===void 0)return"keyword";const normalized=raw.trim().toLowerCase();if(normalized!=="keyword"&&normalized!=="semantic"&&normalized!=="hybrid"){throw new PmCliError("Search mode must be one of keyword|semantic|hybrid",EXIT_CODE.USAGE)}return normalized}function parseSearchBoolean(raw){return raw===true}function parseSemanticWeightOverride(raw){return coerceNumberInRange(raw,0,1)??void 0}function parseSearchMatchMode(raw){if(raw===void 0)return"or";const normalized=raw.trim().toLowerCase();if(normalized!=="and"&&normalized!=="or"&&normalized!=="exact"){throw new PmCliError("Search --match-mode must be one of and|or|exact",EXIT_CODE.USAGE)}return normalized}function parseMinScoreOverride(raw){if(raw===void 0||raw===null||raw==="")return void 0;const parsed=typeof raw==="number"?raw:Number(String(raw).trim());if(!Number.isFinite(parsed)||parsed<0){throw new PmCliError("Search --min-score must be a finite number >= 0",EXIT_CODE.USAGE)}return parsed}function parseTimestampWindow(raw,fieldLabel){if(raw==null)return void 0;const value=String(raw).trim();if(value.length===0)return void 0;return resolveIsoOrRelative(value,new Date,fieldLabel)}function normalizeSearchPhrase(value){return value.toLowerCase().replace(/\s+/g," ").trim()}function parseSearchDeadline(raw,fieldLabel){if(raw===void 0)return void 0;return resolveIsoOrRelative(raw,new Date,fieldLabel)}function parseFieldSelectors(raw){if(raw===void 0)return void 0;const selectors=raw.split(",").map(entry=>entry.trim()).filter(entry=>entry.length>0);if(selectors.length===0){throw new PmCliError("Search --fields requires a comma-separated list of field names",EXIT_CODE.USAGE)}return[...new Set(selectors)]}function parseSearchProjection(options,query="<query>"){const compactRequested=options.compact===true;const fullRequested=options.full===true;const fieldSelectors=parseFieldSelectors(options.fields);const enabledModes=Number(compactRequested)+Number(fullRequested)+Number(fieldSelectors!==void 0);if(enabledModes>1){throw new PmCliError("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",EXIT_CODE.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:renderPmCommand(["search",query,"--full"]),suggested_retry_args:["search",query,"--full"]}})}if(compactRequested){return{mode:"compact",fields:[...DEFAULT_COMPACT_SEARCH_FIELDS]}}if(fullRequested)return{mode:"full",fields:[]};if(fieldSelectors)return{mode:"fields",fields:fieldSelectors};return{mode:"full",fields:[]}}function validateSearchProjectionFields(projection,runtimeFieldRegistry,query="<query>"){if(projection.mode!=="fields")return;const allowedValues=listSearchProjectionFields(runtimeFieldRegistry.definitions.flatMap(field=>[field.key,field.metadata_key]));const allowed=new Set(allowedValues);const unknown=projection.fields.filter(field=>{const normalized=field.trim();return!allowed.has(normalized)});if(unknown.length>0){const suggestedRetryArguments=["search",query,"--fields","id,title,status,score"];throw new PmCliError(`Unknown search --fields value(s): ${unknown.join(", ")}`,EXIT_CODE.USAGE,{code:"unknown_field_projection",examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."],recovery:{allowed_values:allowedValues,suggested_retry:renderPmCommand(suggestedRetryArguments),suggested_retry_args:suggestedRetryArguments}})}}function parseSearchTokens(query){const normalized=normalizeSearchPhrase(query);if(!normalized){throw new PmCliError("Search query must not be empty",EXIT_CODE.USAGE)}return normalized.split(/\s+/u).filter(Boolean)}function resolveSearchMaxResults(settings){const candidate=settings.search?.max_results;if(typeof candidate==="number"&&Number.isFinite(candidate)&&candidate>0){return Math.floor(candidate)}return 50}function resolveSearchScoreThreshold(settings){const candidate=settings.search?.score_threshold;return typeof candidate==="number"&&Number.isFinite(candidate)?candidate:0}function resolveHybridSemanticWeight(settings){const candidate=settings.search?.hybrid_semantic_weight;if(typeof candidate==="number"&&Number.isFinite(candidate)&&candidate>=0&&candidate<=1){return candidate}return .7}function resolveSearchTuning(settings){const defaults={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1};const tuning=settings.search?.tuning;if(!tuning)return defaults;const resolveWeight=(candidate,fallback)=>typeof candidate==="number"&&Number.isFinite(candidate)&&candidate>=0?candidate:fallback;return{title_exact_bonus:resolveWeight(tuning.title_exact_bonus,defaults.title_exact_bonus),title_weight:resolveWeight(tuning.title_weight,defaults.title_weight),description_weight:resolveWeight(tuning.description_weight,defaults.description_weight),tags_weight:resolveWeight(tuning.tags_weight,defaults.tags_weight),status_weight:resolveWeight(tuning.status_weight,defaults.status_weight),body_weight:resolveWeight(tuning.body_weight,defaults.body_weight),comments_weight:resolveWeight(tuning.comments_weight,defaults.comments_weight),notes_weight:resolveWeight(tuning.notes_weight,defaults.notes_weight),learnings_weight:resolveWeight(tuning.learnings_weight,defaults.learnings_weight),reminders_weight:resolveWeight(tuning.reminders_weight,defaults.reminders_weight),events_weight:resolveWeight(tuning.events_weight,defaults.events_weight),dependencies_weight:resolveWeight(tuning.dependencies_weight,defaults.dependencies_weight),linked_content_weight:resolveWeight(tuning.linked_content_weight,defaults.linked_content_weight)}}export{DEFAULT_COMPACT_SEARCH_FIELDS2 as DEFAULT_COMPACT_SEARCH_FIELDS,SEARCH_HIT_FIELD_KEYS,SEARCH_ITEM_FIELD_KEYS,listSearchProjectionFields2 as listSearchProjectionFields,normalizeSearchPhrase,parseMinScoreOverride,parseSearchBoolean,parseSearchDeadline,parseSearchMatchMode,parseSearchMode,parseSearchProjection,parseSearchTokens,parseSemanticWeightOverride,parseTimestampWindow,resolveHybridSemanticWeight,resolveSearchMaxResults,resolveSearchScoreThreshold,resolveSearchTuning,validateSearchProjectionFields};
|
|
230
2
|
//# sourceMappingURL=search-contracts.js.map
|
|
231
|
-
//# debugId=d20ab01b-a8ae-5fe8-988a-d05fe87951f6
|
|
@@ -1,36 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/query/search-pagination
|
|
3
|
-
*
|
|
4
|
-
* Applies the shared SDK cursor contract to ranked search results.
|
|
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]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch(e){}}();
|
|
8
|
-
import { createQueryFingerprint, paginateQueryRows, selectCursorSemanticOptions, } from "../pagination.js";
|
|
9
|
-
import { SEARCH_FLAG_CONTRACTS } from "../cli-contracts/flag-contracts.js";
|
|
10
|
-
/** Build the query-only fingerprint shared by search retrieval and paging. */
|
|
11
|
-
export function createSearchCursorFingerprint(options) {
|
|
12
|
-
return createQueryFingerprint("search", {
|
|
13
|
-
query: options.query.trim(),
|
|
14
|
-
mode: options.mode,
|
|
15
|
-
options: selectCursorSemanticOptions(options.searchOptions, SEARCH_FLAG_CONTRACTS),
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
/** Page ranked search hits without coupling cursor mechanics to search scoring. */
|
|
19
|
-
export function resolveSearchPage(options) {
|
|
20
|
-
const page = paginateQueryRows(options.sorted, {
|
|
21
|
-
cursor: options.searchOptions.after,
|
|
22
|
-
fingerprint: createSearchCursorFingerprint(options),
|
|
23
|
-
limit: options.limit,
|
|
24
|
-
readId: (hit) => hit.item.id,
|
|
25
|
-
});
|
|
26
|
-
return {
|
|
27
|
-
limited: page.rows,
|
|
28
|
-
pageExtras: {
|
|
29
|
-
applied_limit: options.limit,
|
|
30
|
-
...(page.has_more ? { has_more: true, truncated: true } : {}),
|
|
31
|
-
...(page.next_cursor ? { next_cursor: page.next_cursor } : {}),
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
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]="91b01dd0-6a8d-5b97-96d2-c27f4044c009")}catch(e2){}})();import{createQueryFingerprint,paginateQueryRows,selectCursorSemanticOptions}from"../pagination.js";import{SEARCH_FLAG_CONTRACTS}from"../cli-contracts/flag-contracts.js";function createSearchCursorFingerprint(options){return createQueryFingerprint("search",{query:options.query.trim(),mode:options.mode,options:selectCursorSemanticOptions(options.searchOptions,SEARCH_FLAG_CONTRACTS)})}function resolveSearchPage(options){const page=paginateQueryRows(options.sorted,{cursor:options.searchOptions.after,fingerprint:createSearchCursorFingerprint(options),limit:options.limit,readId:hit=>hit.item.id});return{limited:page.rows,pageExtras:{applied_limit:options.limit,...page.has_more?{has_more:true,truncated:true}:{},...page.next_cursor?{next_cursor:page.next_cursor}:{}}}}export{createSearchCursorFingerprint,resolveSearchPage};
|
|
35
2
|
//# sourceMappingURL=search-pagination.js.map
|
|
36
|
-
//# debugId=0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1
|
|
@@ -1,106 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/query/search-rendering
|
|
3
|
-
*
|
|
4
|
-
* Builds stable compact and verbose filter projections for search responses.
|
|
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]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch(e){}}();
|
|
8
|
-
import { applyFilterValueEcho, buildContentFilterEcho, buildGovernanceMissingFilterEcho, } from "./list.js";
|
|
9
|
-
function isAllStatuses(value) {
|
|
10
|
-
if (typeof value !== "string")
|
|
11
|
-
return false;
|
|
12
|
-
const tokens = value
|
|
13
|
-
.split(",")
|
|
14
|
-
.map((entry) => entry.trim().toLowerCase())
|
|
15
|
-
.filter(Boolean);
|
|
16
|
-
return tokens.length === 1 && tokens[0] === "all";
|
|
17
|
-
}
|
|
18
|
-
const COMPACT_SEARCH_VALUE_FILTER_ECHO_ENTRIES = [
|
|
19
|
-
{
|
|
20
|
-
optionKey: "status",
|
|
21
|
-
summaryKey: "status",
|
|
22
|
-
normalize: (value) => (isAllStatuses(value) ? "all" : value),
|
|
23
|
-
},
|
|
24
|
-
{ optionKey: "type", summaryKey: "type" },
|
|
25
|
-
{ optionKey: "tag", summaryKey: "tag" },
|
|
26
|
-
{ optionKey: "priority", summaryKey: "priority" },
|
|
27
|
-
{ optionKey: "deadlineBefore", summaryKey: "deadline_before" },
|
|
28
|
-
{ optionKey: "deadlineAfter", summaryKey: "deadline_after" },
|
|
29
|
-
{ optionKey: "updatedAfter", summaryKey: "updated_after" },
|
|
30
|
-
{ optionKey: "updatedBefore", summaryKey: "updated_before" },
|
|
31
|
-
{ optionKey: "createdAfter", summaryKey: "created_after" },
|
|
32
|
-
{ optionKey: "createdBefore", summaryKey: "created_before" },
|
|
33
|
-
{ optionKey: "assignee", summaryKey: "assignee" },
|
|
34
|
-
{ optionKey: "sprint", summaryKey: "sprint" },
|
|
35
|
-
{ optionKey: "release", summaryKey: "release" },
|
|
36
|
-
{ optionKey: "parent", summaryKey: "parent" },
|
|
37
|
-
];
|
|
38
|
-
/** Builds the token-efficient filter echo used by compact search results. */
|
|
39
|
-
export function buildCompactSearchFilterSummary(params) {
|
|
40
|
-
const { mode, matchMode, options, includeLinked, titleExact, phraseExact, scoreThreshold, hybridSemanticWeight, runtimeFieldFilters } = params;
|
|
41
|
-
const filters = {};
|
|
42
|
-
applyFilterValueEcho(filters, options, COMPACT_SEARCH_VALUE_FILTER_ECHO_ENTRIES);
|
|
43
|
-
Object.assign(filters, buildGovernanceMissingFilterEcho(options));
|
|
44
|
-
Object.assign(filters, buildContentFilterEcho(options));
|
|
45
|
-
if (matchMode !== undefined && matchMode !== "or") {
|
|
46
|
-
filters.match_mode = matchMode;
|
|
47
|
-
}
|
|
48
|
-
if (includeLinked)
|
|
49
|
-
filters.include_linked = true;
|
|
50
|
-
if (titleExact)
|
|
51
|
-
filters.title_exact = true;
|
|
52
|
-
if (phraseExact)
|
|
53
|
-
filters.phrase_exact = true;
|
|
54
|
-
if (scoreThreshold > 0)
|
|
55
|
-
filters.score_threshold = scoreThreshold;
|
|
56
|
-
if (mode === "hybrid" && options.semanticWeight !== undefined) {
|
|
57
|
-
filters.hybrid_semantic_weight = hybridSemanticWeight;
|
|
58
|
-
}
|
|
59
|
-
if (options.limit !== undefined)
|
|
60
|
-
filters.limit = options.limit;
|
|
61
|
-
if (runtimeFieldFilters && Object.keys(runtimeFieldFilters).length > 0) {
|
|
62
|
-
filters.runtime_filters = runtimeFieldFilters;
|
|
63
|
-
}
|
|
64
|
-
return filters;
|
|
65
|
-
}
|
|
66
|
-
/** Builds the complete filter echo shared by verbose search response paths. */
|
|
67
|
-
export function buildVerboseSearchFilters(params) {
|
|
68
|
-
const { effectiveMode, matchMode, options, includeLinked, titleExact, phraseExact, scoreThreshold, hybridSemanticWeight, queryExpansion, rerank, runtimeFieldFilters } = params;
|
|
69
|
-
const valueOrNull = (value) => value ?? null;
|
|
70
|
-
return {
|
|
71
|
-
mode: effectiveMode,
|
|
72
|
-
match_mode: matchMode,
|
|
73
|
-
status: options.status === undefined || isAllStatuses(options.status)
|
|
74
|
-
? "all"
|
|
75
|
-
: options.status,
|
|
76
|
-
type: valueOrNull(options.type),
|
|
77
|
-
tag: valueOrNull(options.tag),
|
|
78
|
-
priority: valueOrNull(options.priority),
|
|
79
|
-
deadline_before: valueOrNull(options.deadlineBefore),
|
|
80
|
-
deadline_after: valueOrNull(options.deadlineAfter),
|
|
81
|
-
updated_after: valueOrNull(options.updatedAfter),
|
|
82
|
-
updated_before: valueOrNull(options.updatedBefore),
|
|
83
|
-
created_after: valueOrNull(options.createdAfter),
|
|
84
|
-
created_before: valueOrNull(options.createdBefore),
|
|
85
|
-
assignee: valueOrNull(options.assignee),
|
|
86
|
-
sprint: valueOrNull(options.sprint),
|
|
87
|
-
release: valueOrNull(options.release),
|
|
88
|
-
parent: valueOrNull(options.parent),
|
|
89
|
-
...buildGovernanceMissingFilterEcho(options),
|
|
90
|
-
...buildContentFilterEcho(options),
|
|
91
|
-
include_linked: includeLinked,
|
|
92
|
-
title_exact: titleExact,
|
|
93
|
-
phrase_exact: phraseExact,
|
|
94
|
-
score_threshold: scoreThreshold,
|
|
95
|
-
hybrid_semantic_weight: effectiveMode === "hybrid" ? hybridSemanticWeight : null,
|
|
96
|
-
query_expansion_enabled: queryExpansion.enabled,
|
|
97
|
-
query_expansion_provider: queryExpansion.provider,
|
|
98
|
-
rerank_enabled: rerank.enabled,
|
|
99
|
-
rerank_model: rerank.model,
|
|
100
|
-
rerank_top_k: rerank.top_k,
|
|
101
|
-
limit: valueOrNull(options.limit),
|
|
102
|
-
runtime_filters: runtimeFieldFilters,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
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]="48888c80-60e1-5905-afd5-8c1b6e532f99")}catch(e2){}})();import{applyFilterValueEcho,buildContentFilterEcho,buildGovernanceMissingFilterEcho}from"./list.js";function isAllStatuses(value){if(typeof value!=="string")return false;const tokens=value.split(",").map(entry=>entry.trim().toLowerCase()).filter(Boolean);return tokens.length===1&&tokens[0]==="all"}const COMPACT_SEARCH_VALUE_FILTER_ECHO_ENTRIES=[{optionKey:"status",summaryKey:"status",normalize:value=>isAllStatuses(value)?"all":value},{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function buildCompactSearchFilterSummary(params){const{mode,matchMode,options,includeLinked,titleExact,phraseExact,scoreThreshold,hybridSemanticWeight,runtimeFieldFilters}=params;const filters={};applyFilterValueEcho(filters,options,COMPACT_SEARCH_VALUE_FILTER_ECHO_ENTRIES);Object.assign(filters,buildGovernanceMissingFilterEcho(options));Object.assign(filters,buildContentFilterEcho(options));if(matchMode!==void 0&&matchMode!=="or"){filters.match_mode=matchMode}if(includeLinked)filters.include_linked=true;if(titleExact)filters.title_exact=true;if(phraseExact)filters.phrase_exact=true;if(scoreThreshold>0)filters.score_threshold=scoreThreshold;if(mode==="hybrid"&&options.semanticWeight!==void 0){filters.hybrid_semantic_weight=hybridSemanticWeight}if(options.limit!==void 0)filters.limit=options.limit;if(runtimeFieldFilters&&Object.keys(runtimeFieldFilters).length>0){filters.runtime_filters=runtimeFieldFilters}return filters}function buildVerboseSearchFilters(params){const{effectiveMode,matchMode,options,includeLinked,titleExact,phraseExact,scoreThreshold,hybridSemanticWeight,queryExpansion,rerank,runtimeFieldFilters}=params;const valueOrNull=value=>value??null;return{mode:effectiveMode,match_mode:matchMode,status:options.status===void 0||isAllStatuses(options.status)?"all":options.status,type:valueOrNull(options.type),tag:valueOrNull(options.tag),priority:valueOrNull(options.priority),deadline_before:valueOrNull(options.deadlineBefore),deadline_after:valueOrNull(options.deadlineAfter),updated_after:valueOrNull(options.updatedAfter),updated_before:valueOrNull(options.updatedBefore),created_after:valueOrNull(options.createdAfter),created_before:valueOrNull(options.createdBefore),assignee:valueOrNull(options.assignee),sprint:valueOrNull(options.sprint),release:valueOrNull(options.release),parent:valueOrNull(options.parent),...buildGovernanceMissingFilterEcho(options),...buildContentFilterEcho(options),include_linked:includeLinked,title_exact:titleExact,phrase_exact:phraseExact,score_threshold:scoreThreshold,hybrid_semantic_weight:effectiveMode==="hybrid"?hybridSemanticWeight:null,query_expansion_enabled:queryExpansion.enabled,query_expansion_provider:queryExpansion.provider,rerank_enabled:rerank.enabled,rerank_model:rerank.model,rerank_top_k:rerank.top_k,limit:valueOrNull(options.limit),runtime_filters:runtimeFieldFilters}}export{buildCompactSearchFilterSummary,buildVerboseSearchFilters};
|
|
105
2
|
//# sourceMappingURL=search-rendering.js.map
|
|
106
|
-
//# debugId=b0abcc02-bd6e-536a-b876-e13cfc8ea741
|