@unbrained/pm-cli 2026.5.14 → 2026.5.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +4 -4
- package/AGENTS.md +78 -457
- package/CHANGELOG.md +71 -0
- package/CONTRIBUTING.md +1 -0
- package/README.md +8 -6
- package/dist/cli/argv-utils.js +4 -1
- package/dist/cli/argv-utils.js.map +1 -1
- package/dist/cli/bootstrap-args.js +4 -1
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commander-usage.js +19 -1
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/activity.js +4 -1
- package/dist/cli/commands/activity.js.map +1 -1
- package/dist/cli/commands/aggregate.js +5 -2
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/annotation-command.d.ts +49 -0
- package/dist/cli/commands/annotation-command.js +135 -0
- package/dist/cli/commands/annotation-command.js.map +1 -0
- package/dist/cli/commands/append.js +5 -6
- package/dist/cli/commands/append.js.map +1 -1
- package/dist/cli/commands/calendar.js +5 -5
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/claim.d.ts +3 -0
- package/dist/cli/commands/claim.js +29 -23
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.js +63 -8
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments-audit.js +4 -1
- package/dist/cli/commands/comments-audit.js.map +1 -1
- package/dist/cli/commands/comments.d.ts +5 -0
- package/dist/cli/commands/comments.js +29 -116
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.js +198 -15
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.js +4 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/context.js +21 -13
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.d.ts +9 -0
- package/dist/cli/commands/contracts.js +314 -64
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.js +77 -48
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/dedupe-audit.js +9 -3
- package/dist/cli/commands/dedupe-audit.js.map +1 -1
- package/dist/cli/commands/delete.d.ts +3 -0
- package/dist/cli/commands/delete.js +11 -7
- package/dist/cli/commands/delete.js.map +1 -1
- package/dist/cli/commands/deps.js +4 -1
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/docs.d.ts +1 -0
- package/dist/cli/commands/docs.js +6 -7
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/cli/commands/event-validation-messages.d.ts +3 -0
- package/dist/cli/commands/event-validation-messages.js +44 -0
- package/dist/cli/commands/event-validation-messages.js.map +1 -0
- package/dist/cli/commands/extension.d.ts +3 -1
- package/dist/cli/commands/extension.js +259 -52
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/files.js +8 -12
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/gc.js +19 -3
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/get.d.ts +10 -5
- package/dist/cli/commands/get.js +135 -20
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/guide.js +6 -8
- package/dist/cli/commands/guide.js.map +1 -1
- package/dist/cli/commands/health.d.ts +14 -0
- package/dist/cli/commands/health.js +269 -67
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-redact.d.ts +50 -0
- package/dist/cli/commands/history-redact.js +476 -0
- package/dist/cli/commands/history-redact.js.map +1 -0
- package/dist/cli/commands/history-repair.d.ts +33 -0
- package/dist/cli/commands/history-repair.js +166 -0
- package/dist/cli/commands/history-repair.js.map +1 -0
- package/dist/cli/commands/history.d.ts +4 -0
- package/dist/cli/commands/history.js +12 -79
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +5 -1
- package/dist/cli/commands/index.js +9 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init-agent-guidance.d.ts +31 -0
- package/dist/cli/commands/init-agent-guidance.js +336 -0
- package/dist/cli/commands/init-agent-guidance.js.map +1 -0
- package/dist/cli/commands/init.d.ts +42 -0
- package/dist/cli/commands/init.js +96 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learnings.js +22 -118
- package/dist/cli/commands/learnings.js.map +1 -1
- package/dist/cli/commands/linked-test-entry.d.ts +3 -0
- package/dist/cli/commands/linked-test-entry.js +62 -0
- package/dist/cli/commands/linked-test-entry.js.map +1 -0
- package/dist/cli/commands/list.d.ts +1 -0
- package/dist/cli/commands/list.js +72 -38
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/metadata-normalizers.js +4 -1
- package/dist/cli/commands/metadata-normalizers.js.map +1 -1
- package/dist/cli/commands/normalize.js +4 -1
- package/dist/cli/commands/normalize.js.map +1 -1
- package/dist/cli/commands/notes.js +22 -118
- package/dist/cli/commands/notes.js.map +1 -1
- package/dist/cli/commands/plan.d.ts +121 -0
- package/dist/cli/commands/plan.js +1137 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/reindex.js +4 -1
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/restore.js +9 -49
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +31 -0
- package/dist/cli/commands/schema.js +98 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/search.js +156 -40
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/stats.js +4 -1
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/templates.d.ts +4 -0
- package/dist/cli/commands/templates.js +91 -16
- package/dist/cli/commands/templates.js.map +1 -1
- package/dist/cli/commands/test-all.js +6 -7
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test-runs.js +4 -1
- package/dist/cli/commands/test-runs.js.map +1 -1
- package/dist/cli/commands/test.d.ts +1 -0
- package/dist/cli/commands/test.js +9 -9
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.js +6 -7
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.js +204 -103
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/upgrade.js +6 -3
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +3 -1
- package/dist/cli/commands/validate.js +44 -64
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.js +99 -6
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/extension-command-help.d.ts +0 -1
- package/dist/cli/extension-command-help.js +4 -12
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/extension-command-options.d.ts +1 -0
- package/dist/cli/extension-command-options.js +108 -6
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/guide-topics.js +4 -1
- package/dist/cli/guide-topics.js.map +1 -1
- package/dist/cli/help-content.d.ts +0 -1
- package/dist/cli/help-content.js +46 -22
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/help-json-payload.d.ts +1 -0
- package/dist/cli/help-json-payload.js +35 -2
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +214 -30
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/migration-gates.js +4 -1
- package/dist/cli/migration-gates.js.map +1 -1
- package/dist/cli/register-list-query.d.ts +1 -1
- package/dist/cli/register-list-query.js +75 -29
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.d.ts +1 -1
- package/dist/cli/register-mutation.js +430 -38
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +47 -10
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +47 -25
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +0 -2
- package/dist/cli/registration-helpers.js +21 -40
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli/shared-parsers.js +4 -1
- package/dist/cli/shared-parsers.js.map +1 -1
- package/dist/cli/telemetry-flush.js +4 -1
- package/dist/cli/telemetry-flush.js.map +1 -1
- package/dist/cli.js +65 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/extensions/extension-types.js +4 -1
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +0 -1
- package/dist/core/extensions/index.js +4 -13
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/item-fields.js +4 -1
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/core/extensions/loader.js +78 -60
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runtime-registrations.js +4 -1
- package/dist/core/extensions/runtime-registrations.js.map +1 -1
- package/dist/core/fs/fs-utils.js +4 -1
- package/dist/core/fs/fs-utils.js.map +1 -1
- package/dist/core/fs/index.js +4 -1
- package/dist/core/fs/index.js.map +1 -1
- package/dist/core/fs/path-utils.d.ts +1 -0
- package/dist/core/fs/path-utils.js +12 -0
- package/dist/core/fs/path-utils.js.map +1 -0
- package/dist/core/history/drift-scan.d.ts +11 -0
- package/dist/core/history/drift-scan.js +67 -0
- package/dist/core/history/drift-scan.js.map +1 -0
- package/dist/core/history/history-stream-policy.js +4 -1
- package/dist/core/history/history-stream-policy.js.map +1 -1
- package/dist/core/history/history.js +4 -1
- package/dist/core/history/history.js.map +1 -1
- package/dist/core/history/index.js +4 -1
- package/dist/core/history/index.js.map +1 -1
- package/dist/core/history/replay.d.ts +82 -0
- package/dist/core/history/replay.js +249 -0
- package/dist/core/history/replay.js.map +1 -0
- package/dist/core/item/id.js +4 -1
- package/dist/core/item/id.js.map +1 -1
- package/dist/core/item/index.js +4 -1
- package/dist/core/item/index.js.map +1 -1
- package/dist/core/item/item-format.js +250 -8
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/item/item-type-definition.d.ts +52 -0
- package/dist/core/item/item-type-definition.js +123 -0
- package/dist/core/item/item-type-definition.js.map +1 -0
- package/dist/core/item/parent-reference-policy.js +4 -1
- package/dist/core/item/parent-reference-policy.js.map +1 -1
- package/dist/core/item/parse.js +34 -3
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/item/priority.d.ts +23 -0
- package/dist/core/item/priority.js +55 -0
- package/dist/core/item/priority.js.map +1 -0
- package/dist/core/item/sprint-release-format.js +4 -1
- package/dist/core/item/sprint-release-format.js.map +1 -1
- package/dist/core/item/status.d.ts +14 -1
- package/dist/core/item/status.js +24 -1
- package/dist/core/item/status.js.map +1 -1
- package/dist/core/item/toon-decode.d.ts +19 -0
- package/dist/core/item/toon-decode.js +69 -0
- package/dist/core/item/toon-decode.js.map +1 -0
- package/dist/core/item/type-registry.js +15 -83
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/lock/index.js +4 -1
- package/dist/core/lock/index.js.map +1 -1
- package/dist/core/lock/lock.js +4 -1
- package/dist/core/lock/lock.js.map +1 -1
- package/dist/core/output/output.d.ts +4 -0
- package/dist/core/output/output.js +47 -6
- package/dist/core/output/output.js.map +1 -1
- package/dist/core/packages/manifest.d.ts +1 -0
- package/dist/core/packages/manifest.js +6 -8
- package/dist/core/packages/manifest.js.map +1 -1
- package/dist/core/packages/root.d.ts +3 -0
- package/dist/core/packages/root.js +51 -0
- package/dist/core/packages/root.js.map +1 -0
- package/dist/core/schema/item-types-file.d.ts +85 -0
- package/dist/core/schema/item-types-file.js +243 -0
- package/dist/core/schema/item-types-file.js.map +1 -0
- package/dist/core/schema/runtime-field-filters.js +4 -1
- package/dist/core/schema/runtime-field-filters.js.map +1 -1
- package/dist/core/schema/runtime-field-values.js +4 -1
- package/dist/core/schema/runtime-field-values.js.map +1 -1
- package/dist/core/schema/runtime-schema.d.ts +2 -1
- package/dist/core/schema/runtime-schema.js +13 -8
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/search/cache.js +7 -2
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/corpus.d.ts +2 -0
- package/dist/core/search/corpus.js +77 -2
- package/dist/core/search/corpus.js.map +1 -1
- package/dist/core/search/embedding-batches.js +21 -7
- package/dist/core/search/embedding-batches.js.map +1 -1
- package/dist/core/search/http-client.js +4 -1
- package/dist/core/search/http-client.js.map +1 -1
- package/dist/core/search/providers.js +4 -1
- package/dist/core/search/providers.js.map +1 -1
- package/dist/core/search/semantic-defaults.js +12 -3
- package/dist/core/search/semantic-defaults.js.map +1 -1
- package/dist/core/search/vector-stores.js +4 -1
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/sentry/helpers.js +4 -1
- package/dist/core/sentry/helpers.js.map +1 -1
- package/dist/core/sentry/instrument.js +10 -13
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/shared/author.d.ts +1 -0
- package/dist/core/shared/author.js +9 -0
- package/dist/core/shared/author.js.map +1 -0
- package/dist/core/shared/command-types.js +4 -1
- package/dist/core/shared/command-types.js.map +1 -1
- package/dist/core/shared/conflict-markers.js +4 -1
- package/dist/core/shared/conflict-markers.js.map +1 -1
- package/dist/core/shared/constants.d.ts +2 -2
- package/dist/core/shared/constants.js +24 -1
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.js +4 -1
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/index.js +4 -1
- package/dist/core/shared/index.js.map +1 -1
- package/dist/core/shared/lazy-module.d.ts +1 -0
- package/dist/core/shared/lazy-module.js +11 -0
- package/dist/core/shared/lazy-module.js.map +1 -0
- package/dist/core/shared/levenshtein.js +4 -1
- package/dist/core/shared/levenshtein.js.map +1 -1
- package/dist/core/shared/option-alias-visibility.d.ts +44 -0
- package/dist/core/shared/option-alias-visibility.js +76 -0
- package/dist/core/shared/option-alias-visibility.js.map +1 -0
- package/dist/core/shared/primitives.js +4 -1
- package/dist/core/shared/primitives.js.map +1 -1
- package/dist/core/shared/serialization.js +4 -1
- package/dist/core/shared/serialization.js.map +1 -1
- package/dist/core/shared/text-normalization.d.ts +0 -1
- package/dist/core/shared/text-normalization.js +4 -4
- package/dist/core/shared/text-normalization.js.map +1 -1
- package/dist/core/shared/time.js +4 -1
- package/dist/core/shared/time.js.map +1 -1
- package/dist/core/store/front-matter-cache.js +8 -3
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/core/store/index.js +4 -1
- package/dist/core/store/index.js.map +1 -1
- package/dist/core/store/item-format-migration.js +4 -1
- package/dist/core/store/item-format-migration.js.map +1 -1
- package/dist/core/store/item-store.d.ts +4 -0
- package/dist/core/store/item-store.js +133 -39
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/paths.js +4 -1
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +106 -0
- package/dist/core/store/settings-validator.js +279 -0
- package/dist/core/store/settings-validator.js.map +1 -0
- package/dist/core/store/settings.js +32 -331
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/consent.js +4 -1
- package/dist/core/telemetry/consent.js.map +1 -1
- package/dist/core/telemetry/observability.d.ts +1 -1
- package/dist/core/telemetry/observability.js +11 -2
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/core/telemetry/runtime.js +34 -6
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/core/test/background-runs.js +4 -1
- package/dist/core/test/background-runs.js.map +1 -1
- package/dist/core/test/item-test-run-tracking.js +4 -1
- package/dist/core/test/item-test-run-tracking.js.map +1 -1
- package/dist/mcp/server.js +182 -22
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +10 -3
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.js +4 -1
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +13 -2
- package/dist/sdk/cli-contracts.js +410 -26
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.js +4 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runtime.d.ts +25 -1
- package/dist/sdk/runtime.js +48 -2
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/types/index.js +4 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types.d.ts +92 -2
- package/dist/types.js +42 -1
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +23 -7
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +10 -10
- package/docs/CODEX_PLUGIN.md +2 -2
- package/docs/COMMANDS.md +117 -12
- package/docs/CONFIGURATION.md +5 -2
- package/docs/EXTENSIONS.md +158 -814
- package/docs/QUICKSTART.md +11 -5
- package/docs/README.md +7 -6
- package/docs/RELEASING.md +13 -9
- package/docs/SDK.md +11 -2
- package/docs/TESTING.md +2 -2
- package/marketplace.json +3 -3
- package/package.json +15 -12
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/README.md +4 -2
- package/packages/pm-calendar/extensions/calendar/index.js +22 -3
- package/packages/pm-calendar/extensions/calendar/index.ts +22 -3
- package/packages/pm-calendar/extensions/calendar/runtime.js +26 -7
- package/packages/pm-calendar/extensions/calendar/runtime.ts +26 -7
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/extensions/guide-shell/index.js +1 -1
- package/packages/pm-guide-shell/extensions/guide-shell/index.ts +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/README.md +8 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +74 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +75 -1
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +67 -9
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +67 -9
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/README.md +1 -1
- package/packages/pm-templates/extensions/templates/runtime.js +11 -202
- package/packages/pm-templates/extensions/templates/runtime.ts +38 -230
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/plugins/{pm-cli-claude → pm-claude}/.claude-plugin/plugin.json +2 -2
- package/plugins/{pm-cli-claude → pm-claude}/.mcp.json +1 -1
- package/plugins/{pm-cli-claude → pm-claude}/README.md +4 -4
- package/plugins/{pm-cli-claude → pm-claude}/agents/pm-coordinator.md +1 -1
- package/plugins/{pm-cli-claude → pm-claude}/commands/pm-init.md +10 -1
- package/plugins/{pm-cli-claude → pm-claude}/commands/pm-planner.md +18 -0
- package/plugins/{pm-cli-claude → pm-claude}/skills/pm-planner/SKILL.md +46 -1
- package/plugins/{pm-cli-codex → pm-codex}/.codex-plugin/plugin.json +3 -3
- package/plugins/{pm-cli-codex → pm-codex}/.mcp.json +1 -1
- package/plugins/{pm-cli-codex → pm-codex}/README.md +7 -4
- package/plugins/pm-codex/skills/pm-native/SKILL.md +81 -0
- package/scripts/finalize-build.mjs +28 -0
- package/scripts/prepare-build-cache.mjs +37 -0
- package/dist/core/output/command-aware.d.ts +0 -1
- package/dist/core/output/command-aware.js +0 -394
- package/dist/core/output/command-aware.js.map +0 -1
- package/plugins/pm-cli-codex/skills/pm-native/SKILL.md +0 -57
- /package/plugins/{pm-cli-claude → pm-claude}/agents/pm-delivery-chain.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/agents/pm-triage-agent.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/agents/pm-verification-agent.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-audit.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-calendar.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-close-task.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-developer.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-list.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-new.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-release.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-search.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-start-task.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-status.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-triage.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/commands/pm-workflow.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/hooks/hooks.json +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/hooks/session-start.mjs +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/scripts/pm-mcp-server.mjs +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-audit/SKILL.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-developer/SKILL.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-release/SKILL.md +0 -0
- /package/plugins/{pm-cli-claude → pm-claude}/skills/pm-workflow/SKILL.md +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/assets/pm-cli-small.svg +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/commands/pm-audit.md +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/commands/pm-close-task.md +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/commands/pm-start-task.md +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/scripts/pm-mcp-server.mjs +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-auditor/SKILL.md +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-auditor/agents/openai.yaml +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-native/agents/openai.yaml +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-release/SKILL.md +0 -0
- /package/plugins/{pm-cli-codex → pm-codex}/skills/pm-release/agents/openai.yaml +0 -0
package/dist/mcp/server.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
!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]="e1643b39-5600-59ef-9b48-ad64525cb1aa")}catch(e){}}();
|
|
2
4
|
import readline from "node:readline";
|
|
3
5
|
import { fileURLToPath } from "node:url";
|
|
4
6
|
import { activateExtensions, loadExtensions, runActiveCommandHandler, setActiveExtensionCommands, setActiveExtensionHooks, setActiveExtensionParsers, setActiveExtensionPreflight, setActiveExtensionRegistrations, setActiveExtensionRenderers, setActiveExtensionServices, } from "../core/extensions/index.js";
|
|
@@ -6,7 +8,7 @@ import { pathExists } from "../core/fs/fs-utils.js";
|
|
|
6
8
|
import { PmCliError } from "../core/shared/errors.js";
|
|
7
9
|
import { getSettingsPath, resolvePmRoot } from "../core/store/paths.js";
|
|
8
10
|
import { readSettings } from "../core/store/settings.js";
|
|
9
|
-
import { runActivity, runAggregate, runAppend, runClaim, runClose, runComments, runContracts, runContext, runCreate, runConfig, runDelete, runDeps, runDocs, runExtension, runFiles, runFilesDiscover, runGc, runGet, runHealth, runHistory, runInit, runLearnings, runList, runNotes, runRelease, runSearch, runStats, runTest, runTestAll, runUpdate, runUpdateMany, runUpgrade, runValidate, } from "../cli/commands/index.js";
|
|
11
|
+
import { runActivity, runAggregate, runAppend, runClaim, runClose, runComments, runContracts, runContext, runCreate, runConfig, runDelete, runDeps, runDocs, runExtension, runFiles, runFilesDiscover, runGc, runGet, runHealth, runHistory, runHistoryRedact, runHistoryRepair, runInit, runLearnings, runList, runNotes, runPlan, runRelease, runSchemaAddType, runSearch, runStats, runTest, runTestAll, runUpdate, runUpdateMany, runUpgrade, runValidate, } from "../cli/commands/index.js";
|
|
10
12
|
const PM_PACKAGE_ROOT_ENV = "PM_CLI_PACKAGE_ROOT";
|
|
11
13
|
function resolvePmPackageRoot() {
|
|
12
14
|
return fileURLToPath(new URL("../..", import.meta.url));
|
|
@@ -69,18 +71,29 @@ const TOOLS = [
|
|
|
69
71
|
},
|
|
70
72
|
{
|
|
71
73
|
name: "pm_search",
|
|
72
|
-
description: "Search pm items with keyword, semantic, or hybrid search."
|
|
74
|
+
description: "Search pm items with keyword, semantic, or hybrid search. " +
|
|
75
|
+
"Defaults to a compact projection for token efficiency. " +
|
|
76
|
+
"Pass options.mode=keyword|semantic|hybrid, options.limit=N to cap hits, " +
|
|
77
|
+
"options.fields='id,title,score' for a custom projection, or options.full=true for full item bodies (can be large).",
|
|
73
78
|
inputSchema: objectSchema({ query: { type: "string" }, options: { type: "object" } }, ["query"]),
|
|
74
79
|
},
|
|
75
80
|
{
|
|
76
81
|
name: "pm_list",
|
|
77
|
-
description: "List pm items with status/type/tag/priority filters."
|
|
82
|
+
description: "List pm items with status/type/tag/priority filters. Defaults to compact projection for token efficiency. " +
|
|
83
|
+
"options.status accepts CSV (open,in_progress). " +
|
|
84
|
+
"Pass options.compact=false or options.includeBody=true for full bodies/comments. " +
|
|
85
|
+
"Pass options.brief=true for ultra-terse (id/status/type/title only). " +
|
|
86
|
+
"Pass options.fields='id,title,priority' for custom projection. " +
|
|
87
|
+
"Pass options.limit=N to cap row count.",
|
|
78
88
|
inputSchema: objectSchema({ options: { type: "object" } }),
|
|
79
89
|
},
|
|
80
90
|
{
|
|
81
91
|
name: "pm_get",
|
|
82
|
-
description: "Read one pm item
|
|
83
|
-
inputSchema: objectSchema({
|
|
92
|
+
description: "Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.",
|
|
93
|
+
inputSchema: objectSchema({
|
|
94
|
+
id: idSchema,
|
|
95
|
+
options: { type: "object", description: "Get options such as depth=brief|standard|deep or fields=id,title,status." },
|
|
96
|
+
}, ["id"]),
|
|
84
97
|
},
|
|
85
98
|
{
|
|
86
99
|
name: "pm_create",
|
|
@@ -111,7 +124,9 @@ const TOOLS = [
|
|
|
111
124
|
},
|
|
112
125
|
{
|
|
113
126
|
name: "pm_comments",
|
|
114
|
-
description: "List or add comments on a pm item. Use options.add to append."
|
|
127
|
+
description: "List or add comments on a pm item. Use options.add to append. " +
|
|
128
|
+
"List calls default to the most recent 20 comments with total_count/has_more metadata for token efficiency. " +
|
|
129
|
+
"Pass options.limit=N to choose a page size, options.limit=0 for summary-only metadata, or options.full=true for full history.",
|
|
115
130
|
inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
|
|
116
131
|
},
|
|
117
132
|
{
|
|
@@ -136,7 +151,7 @@ const TOOLS = [
|
|
|
136
151
|
},
|
|
137
152
|
{
|
|
138
153
|
name: "pm_health",
|
|
139
|
-
description: "Run pm health diagnostics.",
|
|
154
|
+
description: "Run pm health diagnostics. Pass options.brief=true for compact low-token details, options.skipIntegrity=true, options.skipDrift=true, options.skipVectors=true for a fast status-only check, or options.full=true for the complete deep check.",
|
|
140
155
|
inputSchema: objectSchema({ options: { type: "object" } }),
|
|
141
156
|
},
|
|
142
157
|
{
|
|
@@ -144,6 +159,16 @@ const TOOLS = [
|
|
|
144
159
|
description: "Inspect pm command, flag, schema, and availability contracts.",
|
|
145
160
|
inputSchema: objectSchema({ options: { type: "object" } }),
|
|
146
161
|
},
|
|
162
|
+
{
|
|
163
|
+
name: "pm_plan",
|
|
164
|
+
description: "Run agent-optimized Plan workflows. options.subcommand selects: create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize. Provide id for all non-create subcommands; provide stepRef for step lifecycle subcommands. Plans store agent-readable steps with dependencies, decisions, discoveries, validation, and resume context.",
|
|
165
|
+
inputSchema: objectSchema({
|
|
166
|
+
id: { type: "string", description: "Plan id (required for all subcommands except create)." },
|
|
167
|
+
stepRef: { type: "string", description: "Step id or order for step lifecycle subcommands." },
|
|
168
|
+
reorderTo: { type: "number", description: "New order for reorder-step." },
|
|
169
|
+
options: { type: "object", description: "Plan options including subcommand, stepRef, stepStatus, link, depth, etc." },
|
|
170
|
+
}),
|
|
171
|
+
},
|
|
147
172
|
];
|
|
148
173
|
function asRecord(value) {
|
|
149
174
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? { ...value } : {};
|
|
@@ -167,8 +192,60 @@ function globalOptions(args) {
|
|
|
167
192
|
noPager: true,
|
|
168
193
|
};
|
|
169
194
|
}
|
|
170
|
-
|
|
171
|
-
|
|
195
|
+
const ARRAY_TO_CSV_FIELDS = new Set(["tags", "blockedBy", "blocked_by", "skills"]);
|
|
196
|
+
const SCALAR_TO_ARRAY_FIELDS = new Set([
|
|
197
|
+
"comment",
|
|
198
|
+
"note",
|
|
199
|
+
"learning",
|
|
200
|
+
"reminder",
|
|
201
|
+
"event",
|
|
202
|
+
"dep",
|
|
203
|
+
"depRemove",
|
|
204
|
+
"dep_remove",
|
|
205
|
+
"file",
|
|
206
|
+
"doc",
|
|
207
|
+
"test",
|
|
208
|
+
"unset",
|
|
209
|
+
"addGlob",
|
|
210
|
+
"add_glob",
|
|
211
|
+
"migrate",
|
|
212
|
+
"envSet",
|
|
213
|
+
"env_set",
|
|
214
|
+
"envClear",
|
|
215
|
+
"env_clear",
|
|
216
|
+
]);
|
|
217
|
+
// Actions where the linked-resource fields `add` and `remove` are string[] arrays.
|
|
218
|
+
// For other actions (comments/notes/learnings) `add` and `remove` are scalar strings
|
|
219
|
+
// and must NOT be auto-promoted.
|
|
220
|
+
const ARRAY_ADD_REMOVE_ACTIONS = new Set([
|
|
221
|
+
"files",
|
|
222
|
+
"files-discover",
|
|
223
|
+
"docs",
|
|
224
|
+
"test",
|
|
225
|
+
"test-all",
|
|
226
|
+
]);
|
|
227
|
+
function normalizeOptionsArrays(options, action) {
|
|
228
|
+
const result = {};
|
|
229
|
+
const promoteAddRemove = action !== undefined && ARRAY_ADD_REMOVE_ACTIONS.has(action);
|
|
230
|
+
for (const [key, value] of Object.entries(options)) {
|
|
231
|
+
if (Array.isArray(value) && ARRAY_TO_CSV_FIELDS.has(key)) {
|
|
232
|
+
result[key] = value.join(",");
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
if (typeof value === "string" && SCALAR_TO_ARRAY_FIELDS.has(key)) {
|
|
236
|
+
result[key] = [value];
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (typeof value === "string" && promoteAddRemove && (key === "add" || key === "remove")) {
|
|
240
|
+
result[key] = [value];
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
result[key] = value;
|
|
244
|
+
}
|
|
245
|
+
return result;
|
|
246
|
+
}
|
|
247
|
+
function optionsWithAuthor(args, action) {
|
|
248
|
+
const options = normalizeOptionsArrays(asRecord(args.options), action);
|
|
172
249
|
const author = readString(args, "author");
|
|
173
250
|
return author && options.author === undefined ? { ...options, author } : options;
|
|
174
251
|
}
|
|
@@ -258,7 +335,7 @@ async function withCwd(cwd, run) {
|
|
|
258
335
|
async function runAction(args) {
|
|
259
336
|
const action = readRequiredString(args, "action");
|
|
260
337
|
const global = globalOptions(args);
|
|
261
|
-
const options = optionsWithAuthor(args);
|
|
338
|
+
const options = optionsWithAuthor(args, action);
|
|
262
339
|
const id = readString(args, "id");
|
|
263
340
|
const force = args.force === true;
|
|
264
341
|
switch (action) {
|
|
@@ -266,12 +343,27 @@ async function runAction(args) {
|
|
|
266
343
|
return runInit(readString(args, "prefix"), global, options);
|
|
267
344
|
case "context":
|
|
268
345
|
return runContext(options, global);
|
|
269
|
-
case "list":
|
|
270
|
-
|
|
346
|
+
case "list": {
|
|
347
|
+
const listOptions = { ...options };
|
|
348
|
+
if (listOptions.compact === undefined &&
|
|
349
|
+
listOptions.brief === undefined &&
|
|
350
|
+
listOptions.fields === undefined &&
|
|
351
|
+
listOptions.includeBody === undefined) {
|
|
352
|
+
listOptions.compact = true;
|
|
353
|
+
}
|
|
354
|
+
return runList(readString(args, "status"), listOptions, global);
|
|
355
|
+
}
|
|
271
356
|
case "get":
|
|
272
|
-
return runGet(id ?? readRequiredString(options, "id"), global);
|
|
273
|
-
case "search":
|
|
274
|
-
|
|
357
|
+
return runGet(id ?? readRequiredString(options, "id"), global, options);
|
|
358
|
+
case "search": {
|
|
359
|
+
const searchOptions = { ...options };
|
|
360
|
+
if (searchOptions.compact === undefined &&
|
|
361
|
+
searchOptions.full === undefined &&
|
|
362
|
+
searchOptions.fields === undefined) {
|
|
363
|
+
searchOptions.compact = true;
|
|
364
|
+
}
|
|
365
|
+
return runSearch(readRequiredString(args, "query"), searchOptions, global);
|
|
366
|
+
}
|
|
275
367
|
case "create":
|
|
276
368
|
return runCreate(options, global);
|
|
277
369
|
case "update":
|
|
@@ -282,8 +374,18 @@ async function runAction(args) {
|
|
|
282
374
|
return runRelease(id ?? readRequiredString(options, "id"), force, global, options);
|
|
283
375
|
case "close":
|
|
284
376
|
return runClose(id ?? readRequiredString(options, "id"), readRequiredString(args, "reason"), options, global);
|
|
285
|
-
case "comments":
|
|
286
|
-
|
|
377
|
+
case "comments": {
|
|
378
|
+
const commentOptions = { ...options };
|
|
379
|
+
const isListing = commentOptions.add === undefined && commentOptions.stdin === undefined && commentOptions.file === undefined;
|
|
380
|
+
if (isListing) {
|
|
381
|
+
commentOptions.includeMeta = true;
|
|
382
|
+
if (commentOptions.limit === undefined && commentOptions.full !== true) {
|
|
383
|
+
commentOptions.limit = "20";
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
delete commentOptions.full;
|
|
387
|
+
return runComments(id ?? readRequiredString(options, "id"), commentOptions, global);
|
|
388
|
+
}
|
|
287
389
|
case "notes":
|
|
288
390
|
return runNotes(id ?? readRequiredString(options, "id"), options, global);
|
|
289
391
|
case "learnings":
|
|
@@ -304,8 +406,14 @@ async function runAction(args) {
|
|
|
304
406
|
return runContracts(options, global);
|
|
305
407
|
case "config":
|
|
306
408
|
return runConfig(readString(args, "scope") ?? readString(options, "scope") ?? "project", readString(args, "configAction") ?? readRequiredString(options, "action"), readString(args, "key") ?? readString(options, "key"), options, global);
|
|
307
|
-
case "activity":
|
|
308
|
-
|
|
409
|
+
case "activity": {
|
|
410
|
+
const activityOptions = { ...options };
|
|
411
|
+
if (activityOptions.compact === undefined) {
|
|
412
|
+
activityOptions.compact = activityOptions.full === true ? false : true;
|
|
413
|
+
}
|
|
414
|
+
delete activityOptions.full;
|
|
415
|
+
return runActivity(activityOptions, global);
|
|
416
|
+
}
|
|
309
417
|
case "aggregate":
|
|
310
418
|
return runAggregate(options, global);
|
|
311
419
|
case "extension":
|
|
@@ -329,6 +437,54 @@ async function runAction(args) {
|
|
|
329
437
|
return runFilesDiscover(id ?? readRequiredString(options, "id"), options, global);
|
|
330
438
|
case "history":
|
|
331
439
|
return runHistory(id ?? readRequiredString(options, "id"), options, global);
|
|
440
|
+
case "history-redact":
|
|
441
|
+
return runHistoryRedact(id ?? readRequiredString(options, "id"), options, global);
|
|
442
|
+
case "history-repair":
|
|
443
|
+
return runHistoryRepair(id ?? readRequiredString(options, "id"), options, global);
|
|
444
|
+
case "plan": {
|
|
445
|
+
const subcommand = readRequiredString(options, "subcommand");
|
|
446
|
+
const planRecord = options;
|
|
447
|
+
const reorderToken = planRecord.reorderTo ?? args.reorderTo;
|
|
448
|
+
const reorderTo = typeof reorderToken === "number" && Number.isFinite(reorderToken)
|
|
449
|
+
? reorderToken
|
|
450
|
+
: typeof reorderToken === "string" && reorderToken.trim().length > 0
|
|
451
|
+
? Number.parseInt(reorderToken, 10)
|
|
452
|
+
: undefined;
|
|
453
|
+
const stepRef = typeof planRecord.stepRef === "string"
|
|
454
|
+
? planRecord.stepRef
|
|
455
|
+
: typeof args.stepRef === "string"
|
|
456
|
+
? args.stepRef
|
|
457
|
+
: undefined;
|
|
458
|
+
return runPlan({
|
|
459
|
+
subcommand: subcommand,
|
|
460
|
+
id: typeof id === "string" ? id : typeof planRecord.id === "string" ? planRecord.id : undefined,
|
|
461
|
+
stepRef,
|
|
462
|
+
reorderTo,
|
|
463
|
+
options: options,
|
|
464
|
+
global,
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
case "schema": {
|
|
468
|
+
// subcommand/name are top-level fields in the published action contract,
|
|
469
|
+
// so accept them from args first and fall back to options for parity.
|
|
470
|
+
const subcommand = readString(args, "subcommand") ?? readRequiredString(options, "subcommand");
|
|
471
|
+
if (subcommand.trim().toLowerCase() !== "add-type") {
|
|
472
|
+
throw new PmCliError(`Unknown pm schema subcommand "${subcommand}". Allowed: add-type`, 64);
|
|
473
|
+
}
|
|
474
|
+
const aliasSource = args.alias ?? options.alias;
|
|
475
|
+
const aliases = aliasSource === undefined ? undefined : readStringArray(aliasSource);
|
|
476
|
+
return runSchemaAddType(readString(args, "name") ?? readString(options, "name"), {
|
|
477
|
+
description: readString(args, "description") ?? readString(options, "description"),
|
|
478
|
+
defaultStatus: readString(args, "defaultStatus") ??
|
|
479
|
+
readString(args, "default_status") ??
|
|
480
|
+
readString(options, "defaultStatus") ??
|
|
481
|
+
readString(options, "default_status"),
|
|
482
|
+
folder: readString(args, "folder") ?? readString(options, "folder"),
|
|
483
|
+
alias: aliases,
|
|
484
|
+
author: readString(args, "author") ?? readString(options, "author"),
|
|
485
|
+
force: args.force === true || options.force === true,
|
|
486
|
+
}, global);
|
|
487
|
+
}
|
|
332
488
|
case "stats":
|
|
333
489
|
return runStats(global);
|
|
334
490
|
case "append":
|
|
@@ -359,6 +515,7 @@ const HANDLERS = {
|
|
|
359
515
|
pm_validate: (args) => runAction({ ...args, action: "validate" }),
|
|
360
516
|
pm_health: (args) => runAction({ ...args, action: "health" }),
|
|
361
517
|
pm_contracts: (args) => runAction({ ...args, action: "contracts" }),
|
|
518
|
+
pm_plan: (args) => runAction({ ...args, action: "plan" }),
|
|
362
519
|
};
|
|
363
520
|
function resultContent(result) {
|
|
364
521
|
return {
|
|
@@ -393,11 +550,13 @@ export async function handleRequest(request) {
|
|
|
393
550
|
return {
|
|
394
551
|
protocolVersion: "2025-06-18",
|
|
395
552
|
capabilities: { tools: {} },
|
|
396
|
-
serverInfo: { name: "pm-
|
|
553
|
+
serverInfo: { name: "pm-mcp", version: "1.0.0" },
|
|
397
554
|
instructions: "You have access to native pm CLI tools for git-based project management. " +
|
|
398
555
|
"Use pm_context or pm_search before creating new work. " +
|
|
399
|
-
"Prefer narrow tools (pm_context, pm_list, pm_get, pm_search, pm_create, pm_update, pm_claim, pm_release, pm_close, pm_comments, pm_files, pm_docs, pm_test, pm_validate, pm_health, pm_contracts) over pm_run when they cover the operation. " +
|
|
556
|
+
"Prefer narrow tools (pm_context, pm_list, pm_get, pm_search, pm_create, pm_update, pm_claim, pm_release, pm_close, pm_comments, pm_files, pm_docs, pm_test, pm_validate, pm_health, pm_contracts, pm_plan) over pm_run when they cover the operation. " +
|
|
557
|
+
"Use pm_plan for agent harness Plan workflows: it provides Codex/Claude/Cursor-style planning with durable steps, dependencies, decisions, discoveries, validation, and materialization. " +
|
|
400
558
|
"Use pm_run with an explicit action for package-owned operations (calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume), plus activity, aggregate, history, stats, append, notes, learnings, test-all, and gc. " +
|
|
559
|
+
"Use history-redact for audited history-stream redaction workflows, and history-repair to re-anchor a drifted history chain so pm health/validate report ok. " +
|
|
401
560
|
"Set author to 'claude-code-agent' on all mutations. " +
|
|
402
561
|
"Do not pass path during real repository tracking — only pass path for sandbox or test runs.",
|
|
403
562
|
};
|
|
@@ -461,4 +620,5 @@ export function startMcpServer() {
|
|
|
461
620
|
if (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
462
621
|
startMcpServer();
|
|
463
622
|
}
|
|
464
|
-
//# sourceMappingURL=server.js.map
|
|
623
|
+
//# sourceMappingURL=server.js.map
|
|
624
|
+
//# debugId=e1643b39-5600-59ef-9b48-ad64525cb1aa
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"/","sources":["mcp/server.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\nimport readline from \"node:readline\";\nimport { fileURLToPath } from \"node:url\";\nimport {\n activateExtensions,\n loadExtensions,\n runActiveCommandHandler,\n setActiveExtensionCommands,\n setActiveExtensionHooks,\n setActiveExtensionParsers,\n setActiveExtensionPreflight,\n setActiveExtensionRegistrations,\n setActiveExtensionRenderers,\n setActiveExtensionServices,\n} from \"../core/extensions/index.js\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../core/store/paths.js\";\nimport { readSettings } from \"../core/store/settings.js\";\nimport {\n runActivity,\n runAggregate,\n runAppend,\n runClaim,\n runClose,\n runComments,\n runContracts,\n runContext,\n runCreate,\n runConfig,\n runDelete,\n runDeps,\n runDocs,\n runExtension,\n runFiles,\n runFilesDiscover,\n runGc,\n runGet,\n runHealth,\n runHistory,\n runInit,\n runLearnings,\n runList,\n runNotes,\n runRelease,\n runSearch,\n runStats,\n runTest,\n runTestAll,\n runUpdate,\n runUpdateMany,\n runUpgrade,\n runValidate,\n} from \"../cli/commands/index.js\";\n\ninterface JsonRpcRequest {\n jsonrpc?: string;\n id?: string | number | null;\n method?: string;\n params?: Record<string, unknown>;\n}\n\ninterface ToolDefinition {\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n}\n\ntype ToolHandler = (args: Record<string, unknown>) => Promise<unknown>;\n\nconst PM_PACKAGE_ROOT_ENV = \"PM_CLI_PACKAGE_ROOT\";\n\nfunction resolvePmPackageRoot(): string {\n return fileURLToPath(new URL(\"../..\", import.meta.url));\n}\n\nif (typeof process.env[PM_PACKAGE_ROOT_ENV] !== \"string\" || process.env[PM_PACKAGE_ROOT_ENV]?.trim().length === 0) {\n process.env[PM_PACKAGE_ROOT_ENV] = resolvePmPackageRoot();\n}\n\nconst TOOL_SCHEMA_BASE = {\n type: \"object\",\n properties: {\n cwd: {\n type: \"string\",\n description: \"Workspace directory to run the native pm operation in. Defaults to the MCP server process cwd.\",\n },\n path: {\n type: \"string\",\n description: \"Optional pm data root, equivalent to PM_PATH/global --path. Leave unset for real repository tracking.\",\n },\n author: {\n type: \"string\",\n description: \"Mutation author. Defaults to PM_AUTHOR or pm settings when supported by the underlying operation.\",\n },\n },\n additionalProperties: true,\n} as const;\n\nconst idSchema = {\n type: \"string\",\n description: \"pm item id, for example pm-abc1.\",\n};\n\nfunction objectSchema(properties: Record<string, unknown>, required: string[] = []): Record<string, unknown> {\n return {\n ...TOOL_SCHEMA_BASE,\n properties: {\n ...TOOL_SCHEMA_BASE.properties,\n ...properties,\n },\n required,\n };\n}\n\nconst TOOLS: ToolDefinition[] = [\n {\n name: \"pm_run\",\n description:\n \"Run any supported pm operation natively through the pm library. Use this for commands not covered by narrower pm_* tools.\",\n inputSchema: objectSchema(\n {\n action: {\n type: \"string\",\n description:\n \"Operation name: init, context, list, get, search, create, update, delete, claim, release, close, comments, notes, learnings, files, files-discover, docs, deps, test, test-all, validate, health, contracts, config, activity, aggregate, extension, extension-reload, package, package-install, package-catalog, install, upgrade, history, stats, append, update-many, gc. Package-owned actions (for example calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume) are available dynamically when installed.\",\n },\n id: idSchema,\n query: { type: \"string\", description: \"Search query for action=search.\" },\n reason: { type: \"string\", description: \"Close reason for action=close.\" },\n force: { type: \"boolean\", description: \"Force ownership/terminal-state override when supported.\" },\n options: { type: \"object\", description: \"Underlying pm command options using camelCase keys.\" },\n },\n [\"action\"],\n ),\n },\n {\n name: \"pm_context\",\n description: \"Return the agent-oriented project context snapshot.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_search\",\n description: \"Search pm items with keyword, semantic, or hybrid search.\",\n inputSchema: objectSchema({ query: { type: \"string\" }, options: { type: \"object\" } }, [\"query\"]),\n },\n {\n name: \"pm_list\",\n description: \"List pm items with status/type/tag/priority filters.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_get\",\n description: \"Read one pm item with body, linked files/tests/docs, and claim state.\",\n inputSchema: objectSchema({ id: idSchema }, [\"id\"]),\n },\n {\n name: \"pm_create\",\n description: \"Create a pm item natively and write pm history.\",\n inputSchema: objectSchema({ options: { type: \"object\", description: \"Create options. title and description are required.\" } }, [\n \"options\",\n ]),\n },\n {\n name: \"pm_update\",\n description: \"Update pm item metadata/body/dependencies/log seeds natively.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\", \"options\"]),\n },\n {\n name: \"pm_claim\",\n description: \"Claim a pm item.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_release\",\n description: \"Release a pm item claim.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_close\",\n description: \"Close a pm item with a reason and optional close validation.\",\n inputSchema: objectSchema({ id: idSchema, reason: { type: \"string\" }, options: { type: \"object\" } }, [\"id\", \"reason\"]),\n },\n {\n name: \"pm_comments\",\n description: \"List or add comments on a pm item. Use options.add to append.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_files\",\n description: \"List, add, remove, audit, or validate linked files for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_docs\",\n description: \"List, add, or remove linked docs for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_test\",\n description: \"List, add, remove, or run linked tests for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_validate\",\n description: \"Run pm validation checks.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_health\",\n description: \"Run pm health diagnostics.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_contracts\",\n description: \"Inspect pm command, flag, schema, and availability contracts.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n];\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) ? { ...value } as Record<string, unknown> : {};\n}\n\nfunction readString(args: Record<string, unknown>, key: string): string | undefined {\n const value = args[key];\n return typeof value === \"string\" && value.trim().length > 0 ? value : undefined;\n}\n\nfunction readRequiredString(args: Record<string, unknown>, key: string): string {\n const value = readString(args, key);\n if (!value) {\n throw new PmCliError(`Missing required argument: ${key}`, 64);\n }\n return value;\n}\n\nfunction globalOptions(args: Record<string, unknown>): GlobalOptions {\n return {\n json: true,\n quiet: true,\n path: readString(args, \"path\"),\n noPager: true,\n };\n}\n\nfunction optionsWithAuthor(args: Record<string, unknown>): Record<string, unknown> {\n const options = asRecord(args.options);\n const author = readString(args, \"author\");\n return author && options.author === undefined ? { ...options, author } : options;\n}\n\nfunction normalizeActionName(value: string): string {\n return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, \"-\").replace(/^-+|-+$/g, \"\");\n}\n\nfunction normalizeCommandPath(value: string): string {\n return value.trim().toLowerCase().split(/\\s+/).filter(Boolean).join(\" \");\n}\n\nfunction readStringArray(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => String(entry)).filter((entry) => entry.length > 0);\n}\n\nfunction extensionOptionsFromArgs(args: Record<string, unknown>, options: Record<string, unknown>): Record<string, unknown> {\n const reserved = new Set([\"action\", \"args\", \"author\", \"cwd\", \"id\", \"options\", \"path\", \"query\", \"reason\", \"target\"]);\n const passthrough: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(args)) {\n if (!reserved.has(key)) {\n passthrough[key] = value;\n }\n }\n const normalizedOptions = { ...passthrough, ...options };\n delete normalizedOptions.args;\n return normalizedOptions;\n}\n\nasync function runDynamicExtensionAction(\n action: string,\n args: Record<string, unknown>,\n options: Record<string, unknown>,\n global: GlobalOptions,\n): Promise<unknown> {\n if (global.noExtensions) {\n throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n\n const normalizedAction = normalizeActionName(action);\n const definition = activationResult.registrations.commands.find((entry) =>\n normalizeActionName(entry.action) === normalizedAction\n );\n const command = definition?.command ??\n activationResult.commands.handlers.find((entry) => normalizeActionName(entry.command) === normalizedAction)?.command;\n if (!command) {\n throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n\n setActiveExtensionHooks(activationResult.hooks);\n setActiveExtensionCommands(activationResult.commands);\n setActiveExtensionParsers(activationResult.parsers);\n setActiveExtensionPreflight(activationResult.preflight);\n setActiveExtensionServices(activationResult.services);\n setActiveExtensionRenderers(activationResult.renderers);\n setActiveExtensionRegistrations(activationResult.registrations);\n\n const handlerResult = await runActiveCommandHandler({\n command: normalizeCommandPath(command),\n args: readStringArray(options.args ?? args.args),\n options: extensionOptionsFromArgs(args, options),\n global,\n pm_root: pmRoot,\n });\n if (!handlerResult.handled) {\n const suffix = handlerResult.warnings.length > 0 ? ` (${handlerResult.warnings.join(\", \")})` : \"\";\n throw new PmCliError(`Unsupported native pm action: ${action}${suffix}`, 64);\n }\n return handlerResult.result;\n}\n\nasync function withCwd<T>(cwd: unknown, run: () => Promise<T>): Promise<T> {\n if (typeof cwd !== \"string\" || cwd.trim().length === 0) {\n return run();\n }\n const previous = process.cwd();\n process.chdir(cwd);\n try {\n return await run();\n } finally {\n process.chdir(previous);\n }\n}\n\nasync function runAction(args: Record<string, unknown>): Promise<unknown> {\n const action = readRequiredString(args, \"action\");\n const global = globalOptions(args);\n const options = optionsWithAuthor(args);\n const id = readString(args, \"id\");\n const force = args.force === true;\n\n switch (action) {\n case \"init\":\n return runInit(readString(args, \"prefix\"), global, options);\n case \"context\":\n return runContext(options, global);\n case \"list\":\n return runList(readString(args, \"status\"), options, global);\n case \"get\":\n return runGet(id ?? readRequiredString(options, \"id\"), global);\n case \"search\":\n return runSearch(readRequiredString(args, \"query\"), options, global);\n case \"create\":\n return runCreate(options, global);\n case \"update\":\n return runUpdate(id ?? readRequiredString(options, \"id\"), options, global);\n case \"claim\":\n return runClaim(id ?? readRequiredString(options, \"id\"), force, global, options);\n case \"release\":\n return runRelease(id ?? readRequiredString(options, \"id\"), force, global, options);\n case \"close\":\n return runClose(id ?? readRequiredString(options, \"id\"), readRequiredString(args, \"reason\"), options, global);\n case \"comments\":\n return runComments(id ?? readRequiredString(options, \"id\"), options, global);\n case \"notes\":\n return runNotes(id ?? readRequiredString(options, \"id\"), options, global);\n case \"learnings\":\n return runLearnings(id ?? readRequiredString(options, \"id\"), options, global);\n case \"files\":\n return runFiles(id ?? readRequiredString(options, \"id\"), options, global);\n case \"docs\":\n return runDocs(id ?? readRequiredString(options, \"id\"), options, global);\n case \"test\":\n return runTest(id ?? readRequiredString(options, \"id\"), options, global);\n case \"test-all\":\n return runTestAll(options, global);\n case \"validate\":\n return runValidate(options, global);\n case \"health\":\n return runHealth(global, options);\n case \"contracts\":\n return runContracts(options, global);\n case \"config\":\n return runConfig(\n readString(args, \"scope\") ?? readString(options, \"scope\") ?? \"project\",\n readString(args, \"configAction\") ?? readRequiredString(options, \"action\"),\n readString(args, \"key\") ?? readString(options, \"key\"),\n options,\n global,\n );\n case \"activity\":\n return runActivity(options, global);\n case \"aggregate\":\n return runAggregate(options, global);\n case \"extension\":\n return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), options, global);\n case \"extension-reload\":\n return runExtension(undefined, { ...options, reload: true }, global);\n case \"package\":\n return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), options, global);\n case \"package-install\":\n case \"install\":\n return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), { ...options, install: true }, global);\n case \"package-catalog\":\n return runExtension(undefined, { ...options, catalog: true, vocabulary: \"package\" }, global);\n case \"upgrade\":\n return runUpgrade(readString(args, \"target\") ?? readString(options, \"target\"), options, global);\n case \"delete\":\n return runDelete(id ?? readRequiredString(options, \"id\"), options, global);\n case \"deps\":\n return runDeps(id ?? readRequiredString(options, \"id\"), options, global);\n case \"files-discover\":\n return runFilesDiscover(id ?? readRequiredString(options, \"id\"), options, global);\n case \"history\":\n return runHistory(id ?? readRequiredString(options, \"id\"), options, global);\n case \"stats\":\n return runStats(global);\n case \"append\":\n return runAppend(id ?? readRequiredString(options, \"id\"), options as never, global);\n case \"update-many\":\n return runUpdateMany(options as never, global);\n case \"gc\":\n return runGc(global, options);\n default:\n return runDynamicExtensionAction(action, args, options, global);\n }\n}\n\nconst HANDLERS: Record<string, ToolHandler> = {\n pm_run: (args) => runAction(args),\n pm_context: (args) => runAction({ ...args, action: \"context\" }),\n pm_search: (args) => runAction({ ...args, action: \"search\" }),\n pm_list: (args) => runAction({ ...args, action: \"list\" }),\n pm_get: (args) => runAction({ ...args, action: \"get\" }),\n pm_create: (args) => runAction({ ...args, action: \"create\" }),\n pm_update: (args) => runAction({ ...args, action: \"update\" }),\n pm_claim: (args) => runAction({ ...args, action: \"claim\" }),\n pm_release: (args) => runAction({ ...args, action: \"release\" }),\n pm_close: (args) => runAction({ ...args, action: \"close\" }),\n pm_comments: (args) => runAction({ ...args, action: \"comments\" }),\n pm_files: (args) => runAction({ ...args, action: \"files\" }),\n pm_docs: (args) => runAction({ ...args, action: \"docs\" }),\n pm_test: (args) => runAction({ ...args, action: \"test\" }),\n pm_validate: (args) => runAction({ ...args, action: \"validate\" }),\n pm_health: (args) => runAction({ ...args, action: \"health\" }),\n pm_contracts: (args) => runAction({ ...args, action: \"contracts\" }),\n};\n\nfunction resultContent(result: unknown): Record<string, unknown> {\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: { result },\n };\n}\n\nfunction errorContent(error: unknown): Record<string, unknown> {\n const code = error instanceof PmCliError ? error.exitCode : 1;\n const message = error instanceof Error ? error.message : String(error);\n return {\n isError: true,\n content: [\n {\n type: \"text\",\n text: JSON.stringify({ error: message, code }, null, 2),\n },\n ],\n structuredContent: { error: message, code },\n };\n}\n\nexport async function handleRequest(request: JsonRpcRequest): Promise<Record<string, unknown> | undefined> {\n if (!request.id && request.method?.startsWith(\"notifications/\")) {\n return undefined;\n }\n if (request.method === \"initialize\") {\n return {\n protocolVersion: \"2025-06-18\",\n capabilities: { tools: {} },\n serverInfo: { name: \"pm-cli-native\", version: \"1.0.0\" },\n instructions:\n \"You have access to native pm CLI tools for git-based project management. \" +\n \"Use pm_context or pm_search before creating new work. \" +\n \"Prefer narrow tools (pm_context, pm_list, pm_get, pm_search, pm_create, pm_update, pm_claim, pm_release, pm_close, pm_comments, pm_files, pm_docs, pm_test, pm_validate, pm_health, pm_contracts) over pm_run when they cover the operation. \" +\n \"Use pm_run with an explicit action for package-owned operations (calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume), plus activity, aggregate, history, stats, append, notes, learnings, test-all, and gc. \" +\n \"Set author to 'claude-code-agent' on all mutations. \" +\n \"Do not pass path during real repository tracking — only pass path for sandbox or test runs.\",\n };\n }\n if (request.method === \"tools/list\") {\n return { tools: TOOLS };\n }\n if (request.method === \"tools/call\") {\n const params = asRecord(request.params);\n const name = readRequiredString(params, \"name\");\n const handler = HANDLERS[name];\n if (!handler) {\n throw new PmCliError(`Unknown pm MCP tool: ${name}`, 64);\n }\n const args = asRecord(params.arguments);\n const result = await withCwd(args.cwd, () => handler(args));\n return resultContent(result);\n }\n throw new PmCliError(`Unsupported MCP method: ${request.method ?? \"(missing)\"}`, 64);\n}\n\nfunction writeResponse(id: JsonRpcRequest[\"id\"], payload: Record<string, unknown>): void {\n process.stdout.write(`${JSON.stringify({ jsonrpc: \"2.0\", id, result: payload })}\\n`);\n}\n\nfunction writeError(id: JsonRpcRequest[\"id\"], error: unknown): void {\n const code = error instanceof PmCliError ? error.exitCode : -32603;\n const message = error instanceof Error ? error.message : String(error);\n process.stdout.write(`${JSON.stringify({ jsonrpc: \"2.0\", id, error: { code, message } })}\\n`);\n}\n\nexport function startMcpServer(): void {\n const rl = readline.createInterface({ input: process.stdin, crlfDelay: Infinity });\n rl.on(\"line\", (line) => {\n void (async () => {\n if (line.trim().length === 0) {\n return;\n }\n let request: JsonRpcRequest;\n try {\n request = JSON.parse(line) as JsonRpcRequest;\n } catch (error) {\n writeError(null, error);\n return;\n }\n try {\n const result = await handleRequest(request);\n if (result !== undefined) {\n writeResponse(request.id, result);\n }\n } catch (error) {\n if (request.method === \"tools/call\") {\n writeResponse(request.id, errorContent(error));\n } else {\n writeError(request.id, error);\n }\n }\n })();\n });\n}\n\nif (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) {\n startMcpServer();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"server.js","sources":["mcp/server.ts"],"sourceRoot":"/","sourcesContent":["#!/usr/bin/env node\nimport readline from \"node:readline\";\nimport { fileURLToPath } from \"node:url\";\nimport {\n activateExtensions,\n loadExtensions,\n runActiveCommandHandler,\n setActiveExtensionCommands,\n setActiveExtensionHooks,\n setActiveExtensionParsers,\n setActiveExtensionPreflight,\n setActiveExtensionRegistrations,\n setActiveExtensionRenderers,\n setActiveExtensionServices,\n} from \"../core/extensions/index.js\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../core/store/paths.js\";\nimport { readSettings } from \"../core/store/settings.js\";\nimport {\n runActivity,\n runAggregate,\n runAppend,\n runClaim,\n runClose,\n runComments,\n runContracts,\n runContext,\n runCreate,\n runConfig,\n runDelete,\n runDeps,\n runDocs,\n runExtension,\n runFiles,\n runFilesDiscover,\n runGc,\n runGet,\n runHealth,\n runHistory,\n runHistoryRedact,\n runHistoryRepair,\n runInit,\n runLearnings,\n runList,\n runNotes,\n runPlan,\n runRelease,\n runSchemaAddType,\n runSearch,\n runStats,\n runTest,\n runTestAll,\n runUpdate,\n runUpdateMany,\n runUpgrade,\n runValidate,\n} from \"../cli/commands/index.js\";\n\ninterface JsonRpcRequest {\n jsonrpc?: string;\n id?: string | number | null;\n method?: string;\n params?: Record<string, unknown>;\n}\n\ninterface ToolDefinition {\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n}\n\ntype ToolHandler = (args: Record<string, unknown>) => Promise<unknown>;\n\nconst PM_PACKAGE_ROOT_ENV = \"PM_CLI_PACKAGE_ROOT\";\n\nfunction resolvePmPackageRoot(): string {\n return fileURLToPath(new URL(\"../..\", import.meta.url));\n}\n\nif (typeof process.env[PM_PACKAGE_ROOT_ENV] !== \"string\" || process.env[PM_PACKAGE_ROOT_ENV]?.trim().length === 0) {\n process.env[PM_PACKAGE_ROOT_ENV] = resolvePmPackageRoot();\n}\n\nconst TOOL_SCHEMA_BASE = {\n type: \"object\",\n properties: {\n cwd: {\n type: \"string\",\n description: \"Workspace directory to run the native pm operation in. Defaults to the MCP server process cwd.\",\n },\n path: {\n type: \"string\",\n description: \"Optional pm data root, equivalent to PM_PATH/global --path. Leave unset for real repository tracking.\",\n },\n author: {\n type: \"string\",\n description: \"Mutation author. Defaults to PM_AUTHOR or pm settings when supported by the underlying operation.\",\n },\n },\n additionalProperties: true,\n} as const;\n\nconst idSchema = {\n type: \"string\",\n description: \"pm item id, for example pm-abc1.\",\n};\n\nfunction objectSchema(properties: Record<string, unknown>, required: string[] = []): Record<string, unknown> {\n return {\n ...TOOL_SCHEMA_BASE,\n properties: {\n ...TOOL_SCHEMA_BASE.properties,\n ...properties,\n },\n required,\n };\n}\n\nconst TOOLS: ToolDefinition[] = [\n {\n name: \"pm_run\",\n description:\n \"Run any supported pm operation natively through the pm library. Use this for commands not covered by narrower pm_* tools.\",\n inputSchema: objectSchema(\n {\n action: {\n type: \"string\",\n description:\n \"Operation name: init, context, list, get, search, create, update, delete, claim, release, close, comments, notes, learnings, files, files-discover, docs, deps, test, test-all, validate, health, contracts, config, activity, aggregate, extension, extension-reload, package, package-install, package-catalog, install, upgrade, history, stats, append, update-many, gc. Package-owned actions (for example calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume) are available dynamically when installed.\",\n },\n id: idSchema,\n query: { type: \"string\", description: \"Search query for action=search.\" },\n reason: { type: \"string\", description: \"Close reason for action=close.\" },\n force: { type: \"boolean\", description: \"Force ownership/terminal-state override when supported.\" },\n options: { type: \"object\", description: \"Underlying pm command options using camelCase keys.\" },\n },\n [\"action\"],\n ),\n },\n {\n name: \"pm_context\",\n description: \"Return the agent-oriented project context snapshot.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_search\",\n description:\n \"Search pm items with keyword, semantic, or hybrid search. \" +\n \"Defaults to a compact projection for token efficiency. \" +\n \"Pass options.mode=keyword|semantic|hybrid, options.limit=N to cap hits, \" +\n \"options.fields='id,title,score' for a custom projection, or options.full=true for full item bodies (can be large).\",\n inputSchema: objectSchema({ query: { type: \"string\" }, options: { type: \"object\" } }, [\"query\"]),\n },\n {\n name: \"pm_list\",\n description:\n \"List pm items with status/type/tag/priority filters. Defaults to compact projection for token efficiency. \" +\n \"options.status accepts CSV (open,in_progress). \" +\n \"Pass options.compact=false or options.includeBody=true for full bodies/comments. \" +\n \"Pass options.brief=true for ultra-terse (id/status/type/title only). \" +\n \"Pass options.fields='id,title,priority' for custom projection. \" +\n \"Pass options.limit=N to cap row count.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_get\",\n description:\n \"Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.\",\n inputSchema: objectSchema({\n id: idSchema,\n options: { type: \"object\", description: \"Get options such as depth=brief|standard|deep or fields=id,title,status.\" },\n }, [\"id\"]),\n },\n {\n name: \"pm_create\",\n description: \"Create a pm item natively and write pm history.\",\n inputSchema: objectSchema({ options: { type: \"object\", description: \"Create options. title and description are required.\" } }, [\n \"options\",\n ]),\n },\n {\n name: \"pm_update\",\n description: \"Update pm item metadata/body/dependencies/log seeds natively.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\", \"options\"]),\n },\n {\n name: \"pm_claim\",\n description: \"Claim a pm item.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_release\",\n description: \"Release a pm item claim.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_close\",\n description: \"Close a pm item with a reason and optional close validation.\",\n inputSchema: objectSchema({ id: idSchema, reason: { type: \"string\" }, options: { type: \"object\" } }, [\"id\", \"reason\"]),\n },\n {\n name: \"pm_comments\",\n description:\n \"List or add comments on a pm item. Use options.add to append. \" +\n \"List calls default to the most recent 20 comments with total_count/has_more metadata for token efficiency. \" +\n \"Pass options.limit=N to choose a page size, options.limit=0 for summary-only metadata, or options.full=true for full history.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_files\",\n description: \"List, add, remove, audit, or validate linked files for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_docs\",\n description: \"List, add, or remove linked docs for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_test\",\n description: \"List, add, remove, or run linked tests for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_validate\",\n description: \"Run pm validation checks.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_health\",\n description: \"Run pm health diagnostics. Pass options.brief=true for compact low-token details, options.skipIntegrity=true, options.skipDrift=true, options.skipVectors=true for a fast status-only check, or options.full=true for the complete deep check.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_contracts\",\n description: \"Inspect pm command, flag, schema, and availability contracts.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_plan\",\n description:\n \"Run agent-optimized Plan workflows. options.subcommand selects: create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize. Provide id for all non-create subcommands; provide stepRef for step lifecycle subcommands. Plans store agent-readable steps with dependencies, decisions, discoveries, validation, and resume context.\",\n inputSchema: objectSchema({\n id: { type: \"string\", description: \"Plan id (required for all subcommands except create).\" },\n stepRef: { type: \"string\", description: \"Step id or order for step lifecycle subcommands.\" },\n reorderTo: { type: \"number\", description: \"New order for reorder-step.\" },\n options: { type: \"object\", description: \"Plan options including subcommand, stepRef, stepStatus, link, depth, etc.\" },\n }),\n },\n];\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) ? { ...value } as Record<string, unknown> : {};\n}\n\nfunction readString(args: Record<string, unknown>, key: string): string | undefined {\n const value = args[key];\n return typeof value === \"string\" && value.trim().length > 0 ? value : undefined;\n}\n\nfunction readRequiredString(args: Record<string, unknown>, key: string): string {\n const value = readString(args, key);\n if (!value) {\n throw new PmCliError(`Missing required argument: ${key}`, 64);\n }\n return value;\n}\n\nfunction globalOptions(args: Record<string, unknown>): GlobalOptions {\n return {\n json: true,\n quiet: true,\n path: readString(args, \"path\"),\n noPager: true,\n };\n}\n\nconst ARRAY_TO_CSV_FIELDS = new Set([\"tags\", \"blockedBy\", \"blocked_by\", \"skills\"]);\n\nconst SCALAR_TO_ARRAY_FIELDS = new Set([\n \"comment\",\n \"note\",\n \"learning\",\n \"reminder\",\n \"event\",\n \"dep\",\n \"depRemove\",\n \"dep_remove\",\n \"file\",\n \"doc\",\n \"test\",\n \"unset\",\n \"addGlob\",\n \"add_glob\",\n \"migrate\",\n \"envSet\",\n \"env_set\",\n \"envClear\",\n \"env_clear\",\n]);\n\n// Actions where the linked-resource fields `add` and `remove` are string[] arrays.\n// For other actions (comments/notes/learnings) `add` and `remove` are scalar strings\n// and must NOT be auto-promoted.\nconst ARRAY_ADD_REMOVE_ACTIONS = new Set([\n \"files\",\n \"files-discover\",\n \"docs\",\n \"test\",\n \"test-all\",\n]);\n\nfunction normalizeOptionsArrays(\n options: Record<string, unknown>,\n action?: string,\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n const promoteAddRemove = action !== undefined && ARRAY_ADD_REMOVE_ACTIONS.has(action);\n for (const [key, value] of Object.entries(options)) {\n if (Array.isArray(value) && ARRAY_TO_CSV_FIELDS.has(key)) {\n result[key] = value.join(\",\");\n continue;\n }\n if (typeof value === \"string\" && SCALAR_TO_ARRAY_FIELDS.has(key)) {\n result[key] = [value];\n continue;\n }\n if (typeof value === \"string\" && promoteAddRemove && (key === \"add\" || key === \"remove\")) {\n result[key] = [value];\n continue;\n }\n result[key] = value;\n }\n return result;\n}\n\nfunction optionsWithAuthor(args: Record<string, unknown>, action?: string): Record<string, unknown> {\n const options = normalizeOptionsArrays(asRecord(args.options), action);\n const author = readString(args, \"author\");\n return author && options.author === undefined ? { ...options, author } : options;\n}\n\nfunction normalizeActionName(value: string): string {\n return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, \"-\").replace(/^-+|-+$/g, \"\");\n}\n\nfunction normalizeCommandPath(value: string): string {\n return value.trim().toLowerCase().split(/\\s+/).filter(Boolean).join(\" \");\n}\n\nfunction readStringArray(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => String(entry)).filter((entry) => entry.length > 0);\n}\n\nfunction extensionOptionsFromArgs(args: Record<string, unknown>, options: Record<string, unknown>): Record<string, unknown> {\n const reserved = new Set([\"action\", \"args\", \"author\", \"cwd\", \"id\", \"options\", \"path\", \"query\", \"reason\", \"target\"]);\n const passthrough: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(args)) {\n if (!reserved.has(key)) {\n passthrough[key] = value;\n }\n }\n const normalizedOptions = { ...passthrough, ...options };\n delete normalizedOptions.args;\n return normalizedOptions;\n}\n\nasync function runDynamicExtensionAction(\n action: string,\n args: Record<string, unknown>,\n options: Record<string, unknown>,\n global: GlobalOptions,\n): Promise<unknown> {\n if (global.noExtensions) {\n throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n\n const normalizedAction = normalizeActionName(action);\n const definition = activationResult.registrations.commands.find((entry) =>\n normalizeActionName(entry.action) === normalizedAction\n );\n const command = definition?.command ??\n activationResult.commands.handlers.find((entry) => normalizeActionName(entry.command) === normalizedAction)?.command;\n if (!command) {\n throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n\n setActiveExtensionHooks(activationResult.hooks);\n setActiveExtensionCommands(activationResult.commands);\n setActiveExtensionParsers(activationResult.parsers);\n setActiveExtensionPreflight(activationResult.preflight);\n setActiveExtensionServices(activationResult.services);\n setActiveExtensionRenderers(activationResult.renderers);\n setActiveExtensionRegistrations(activationResult.registrations);\n\n const handlerResult = await runActiveCommandHandler({\n command: normalizeCommandPath(command),\n args: readStringArray(options.args ?? args.args),\n options: extensionOptionsFromArgs(args, options),\n global,\n pm_root: pmRoot,\n });\n if (!handlerResult.handled) {\n const suffix = handlerResult.warnings.length > 0 ? ` (${handlerResult.warnings.join(\", \")})` : \"\";\n throw new PmCliError(`Unsupported native pm action: ${action}${suffix}`, 64);\n }\n return handlerResult.result;\n}\n\nasync function withCwd<T>(cwd: unknown, run: () => Promise<T>): Promise<T> {\n if (typeof cwd !== \"string\" || cwd.trim().length === 0) {\n return run();\n }\n const previous = process.cwd();\n process.chdir(cwd);\n try {\n return await run();\n } finally {\n process.chdir(previous);\n }\n}\n\nasync function runAction(args: Record<string, unknown>): Promise<unknown> {\n const action = readRequiredString(args, \"action\");\n const global = globalOptions(args);\n const options = optionsWithAuthor(args, action);\n const id = readString(args, \"id\");\n const force = args.force === true;\n\n switch (action) {\n case \"init\":\n return runInit(readString(args, \"prefix\"), global, options);\n case \"context\":\n return runContext(options, global);\n case \"list\": {\n const listOptions: Record<string, unknown> = { ...options };\n if (\n listOptions.compact === undefined &&\n listOptions.brief === undefined &&\n listOptions.fields === undefined &&\n listOptions.includeBody === undefined\n ) {\n listOptions.compact = true;\n }\n return runList(readString(args, \"status\"), listOptions as never, global);\n }\n case \"get\":\n return runGet(id ?? readRequiredString(options, \"id\"), global, options);\n case \"search\": {\n const searchOptions: Parameters<typeof runSearch>[1] = { ...options };\n if (\n searchOptions.compact === undefined &&\n searchOptions.full === undefined &&\n searchOptions.fields === undefined\n ) {\n searchOptions.compact = true;\n }\n return runSearch(readRequiredString(args, \"query\"), searchOptions, global);\n }\n case \"create\":\n return runCreate(options, global);\n case \"update\":\n return runUpdate(id ?? readRequiredString(options, \"id\"), options, global);\n case \"claim\":\n return runClaim(id ?? readRequiredString(options, \"id\"), force, global, options);\n case \"release\":\n return runRelease(id ?? readRequiredString(options, \"id\"), force, global, options);\n case \"close\":\n return runClose(id ?? readRequiredString(options, \"id\"), readRequiredString(args, \"reason\"), options, global);\n case \"comments\": {\n const commentOptions: Record<string, unknown> = { ...options };\n const isListing =\n commentOptions.add === undefined && commentOptions.stdin === undefined && commentOptions.file === undefined;\n if (isListing) {\n commentOptions.includeMeta = true;\n if (commentOptions.limit === undefined && commentOptions.full !== true) {\n commentOptions.limit = \"20\";\n }\n }\n delete commentOptions.full;\n return runComments(id ?? readRequiredString(options, \"id\"), commentOptions, global);\n }\n case \"notes\":\n return runNotes(id ?? readRequiredString(options, \"id\"), options, global);\n case \"learnings\":\n return runLearnings(id ?? readRequiredString(options, \"id\"), options, global);\n case \"files\":\n return runFiles(id ?? readRequiredString(options, \"id\"), options, global);\n case \"docs\":\n return runDocs(id ?? readRequiredString(options, \"id\"), options, global);\n case \"test\":\n return runTest(id ?? readRequiredString(options, \"id\"), options, global);\n case \"test-all\":\n return runTestAll(options, global);\n case \"validate\":\n return runValidate(options, global);\n case \"health\":\n return runHealth(global, options);\n case \"contracts\":\n return runContracts(options, global);\n case \"config\":\n return runConfig(\n readString(args, \"scope\") ?? readString(options, \"scope\") ?? \"project\",\n readString(args, \"configAction\") ?? readRequiredString(options, \"action\"),\n readString(args, \"key\") ?? readString(options, \"key\"),\n options,\n global,\n );\n case \"activity\": {\n const activityOptions = { ...options } as Parameters<typeof runActivity>[0] & { full?: unknown };\n if (activityOptions.compact === undefined) {\n activityOptions.compact = activityOptions.full === true ? false : true;\n }\n delete activityOptions.full;\n return runActivity(activityOptions, global);\n }\n case \"aggregate\":\n return runAggregate(options, global);\n case \"extension\":\n return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), options, global);\n case \"extension-reload\":\n return runExtension(undefined, { ...options, reload: true }, global);\n case \"package\":\n return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), options, global);\n case \"package-install\":\n case \"install\":\n return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), { ...options, install: true }, global);\n case \"package-catalog\":\n return runExtension(undefined, { ...options, catalog: true, vocabulary: \"package\" }, global);\n case \"upgrade\":\n return runUpgrade(readString(args, \"target\") ?? readString(options, \"target\"), options, global);\n case \"delete\":\n return runDelete(id ?? readRequiredString(options, \"id\"), options, global);\n case \"deps\":\n return runDeps(id ?? readRequiredString(options, \"id\"), options, global);\n case \"files-discover\":\n return runFilesDiscover(id ?? readRequiredString(options, \"id\"), options, global);\n case \"history\":\n return runHistory(id ?? readRequiredString(options, \"id\"), options, global);\n case \"history-redact\":\n return runHistoryRedact(id ?? readRequiredString(options, \"id\"), options, global);\n case \"history-repair\":\n return runHistoryRepair(id ?? readRequiredString(options, \"id\"), options, global);\n case \"plan\": {\n const subcommand = readRequiredString(options, \"subcommand\");\n const planRecord = options as Record<string, unknown>;\n const reorderToken = planRecord.reorderTo ?? args.reorderTo;\n const reorderTo =\n typeof reorderToken === \"number\" && Number.isFinite(reorderToken)\n ? reorderToken\n : typeof reorderToken === \"string\" && reorderToken.trim().length > 0\n ? Number.parseInt(reorderToken, 10)\n : undefined;\n const stepRef = typeof planRecord.stepRef === \"string\"\n ? (planRecord.stepRef as string)\n : typeof args.stepRef === \"string\"\n ? (args.stepRef as string)\n : undefined;\n return runPlan({\n subcommand: subcommand as never,\n id: typeof id === \"string\" ? id : typeof planRecord.id === \"string\" ? (planRecord.id as string) : undefined,\n stepRef,\n reorderTo,\n options: options as never,\n global,\n });\n }\n case \"schema\": {\n // subcommand/name are top-level fields in the published action contract,\n // so accept them from args first and fall back to options for parity.\n const subcommand = readString(args, \"subcommand\") ?? readRequiredString(options, \"subcommand\");\n if (subcommand.trim().toLowerCase() !== \"add-type\") {\n throw new PmCliError(`Unknown pm schema subcommand \"${subcommand}\". Allowed: add-type`, 64);\n }\n const aliasSource = args.alias ?? options.alias;\n const aliases = aliasSource === undefined ? undefined : readStringArray(aliasSource);\n return runSchemaAddType(\n readString(args, \"name\") ?? readString(options, \"name\"),\n {\n description: readString(args, \"description\") ?? readString(options, \"description\"),\n defaultStatus:\n readString(args, \"defaultStatus\") ??\n readString(args, \"default_status\") ??\n readString(options, \"defaultStatus\") ??\n readString(options, \"default_status\"),\n folder: readString(args, \"folder\") ?? readString(options, \"folder\"),\n alias: aliases,\n author: readString(args, \"author\") ?? readString(options, \"author\"),\n force: args.force === true || options.force === true,\n },\n global,\n );\n }\n case \"stats\":\n return runStats(global);\n case \"append\":\n return runAppend(id ?? readRequiredString(options, \"id\"), options as never, global);\n case \"update-many\":\n return runUpdateMany(options as never, global);\n case \"gc\":\n return runGc(global, options);\n default:\n return runDynamicExtensionAction(action, args, options, global);\n }\n}\n\nconst HANDLERS: Record<string, ToolHandler> = {\n pm_run: (args) => runAction(args),\n pm_context: (args) => runAction({ ...args, action: \"context\" }),\n pm_search: (args) => runAction({ ...args, action: \"search\" }),\n pm_list: (args) => runAction({ ...args, action: \"list\" }),\n pm_get: (args) => runAction({ ...args, action: \"get\" }),\n pm_create: (args) => runAction({ ...args, action: \"create\" }),\n pm_update: (args) => runAction({ ...args, action: \"update\" }),\n pm_claim: (args) => runAction({ ...args, action: \"claim\" }),\n pm_release: (args) => runAction({ ...args, action: \"release\" }),\n pm_close: (args) => runAction({ ...args, action: \"close\" }),\n pm_comments: (args) => runAction({ ...args, action: \"comments\" }),\n pm_files: (args) => runAction({ ...args, action: \"files\" }),\n pm_docs: (args) => runAction({ ...args, action: \"docs\" }),\n pm_test: (args) => runAction({ ...args, action: \"test\" }),\n pm_validate: (args) => runAction({ ...args, action: \"validate\" }),\n pm_health: (args) => runAction({ ...args, action: \"health\" }),\n pm_contracts: (args) => runAction({ ...args, action: \"contracts\" }),\n pm_plan: (args) => runAction({ ...args, action: \"plan\" }),\n};\n\nfunction resultContent(result: unknown): Record<string, unknown> {\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(result, null, 2),\n },\n ],\n structuredContent: { result },\n };\n}\n\nfunction errorContent(error: unknown): Record<string, unknown> {\n const code = error instanceof PmCliError ? error.exitCode : 1;\n const message = error instanceof Error ? error.message : String(error);\n return {\n isError: true,\n content: [\n {\n type: \"text\",\n text: JSON.stringify({ error: message, code }, null, 2),\n },\n ],\n structuredContent: { error: message, code },\n };\n}\n\nexport async function handleRequest(request: JsonRpcRequest): Promise<Record<string, unknown> | undefined> {\n if (!request.id && request.method?.startsWith(\"notifications/\")) {\n return undefined;\n }\n if (request.method === \"initialize\") {\n return {\n protocolVersion: \"2025-06-18\",\n capabilities: { tools: {} },\n serverInfo: { name: \"pm-mcp\", version: \"1.0.0\" },\n instructions:\n \"You have access to native pm CLI tools for git-based project management. \" +\n \"Use pm_context or pm_search before creating new work. \" +\n \"Prefer narrow tools (pm_context, pm_list, pm_get, pm_search, pm_create, pm_update, pm_claim, pm_release, pm_close, pm_comments, pm_files, pm_docs, pm_test, pm_validate, pm_health, pm_contracts, pm_plan) over pm_run when they cover the operation. \" +\n \"Use pm_plan for agent harness Plan workflows: it provides Codex/Claude/Cursor-style planning with durable steps, dependencies, decisions, discoveries, validation, and materialization. \" +\n \"Use pm_run with an explicit action for package-owned operations (calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume), plus activity, aggregate, history, stats, append, notes, learnings, test-all, and gc. \" +\n \"Use history-redact for audited history-stream redaction workflows, and history-repair to re-anchor a drifted history chain so pm health/validate report ok. \" +\n \"Set author to 'claude-code-agent' on all mutations. \" +\n \"Do not pass path during real repository tracking — only pass path for sandbox or test runs.\",\n };\n }\n if (request.method === \"tools/list\") {\n return { tools: TOOLS };\n }\n if (request.method === \"tools/call\") {\n const params = asRecord(request.params);\n const name = readRequiredString(params, \"name\");\n const handler = HANDLERS[name];\n if (!handler) {\n throw new PmCliError(`Unknown pm MCP tool: ${name}`, 64);\n }\n const args = asRecord(params.arguments);\n const result = await withCwd(args.cwd, () => handler(args));\n return resultContent(result);\n }\n throw new PmCliError(`Unsupported MCP method: ${request.method ?? \"(missing)\"}`, 64);\n}\n\nfunction writeResponse(id: JsonRpcRequest[\"id\"], payload: Record<string, unknown>): void {\n process.stdout.write(`${JSON.stringify({ jsonrpc: \"2.0\", id, result: payload })}\\n`);\n}\n\nfunction writeError(id: JsonRpcRequest[\"id\"], error: unknown): void {\n const code = error instanceof PmCliError ? error.exitCode : -32603;\n const message = error instanceof Error ? error.message : String(error);\n process.stdout.write(`${JSON.stringify({ jsonrpc: \"2.0\", id, error: { code, message } })}\\n`);\n}\n\nexport function startMcpServer(): void {\n const rl = readline.createInterface({ input: process.stdin, crlfDelay: Infinity });\n rl.on(\"line\", (line) => {\n void (async () => {\n if (line.trim().length === 0) {\n return;\n }\n let request: JsonRpcRequest;\n try {\n request = JSON.parse(line) as JsonRpcRequest;\n } catch (error) {\n writeError(null, error);\n return;\n }\n try {\n const result = await handleRequest(request);\n if (result !== undefined) {\n writeResponse(request.id, result);\n }\n } catch (error) {\n if (request.method === \"tools/call\") {\n writeResponse(request.id, errorContent(error));\n } else {\n writeError(request.id, error);\n }\n }\n })();\n });\n}\n\nif (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) {\n startMcpServer();\n}\n"],"names":[],"mappings":"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","debugId":"e1643b39-5600-59ef-9b48-ad64525cb1aa"}
|
|
@@ -1,11 +1,17 @@
|
|
|
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]="0d489495-6a82-5ad5-9bf2-6b2d6bbf9fbc")}catch(e){}}();
|
|
1
3
|
export const CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS = [
|
|
2
|
-
{
|
|
4
|
+
{
|
|
5
|
+
target: "title",
|
|
6
|
+
keys: ["title"],
|
|
7
|
+
option: "--title, -t <value>",
|
|
8
|
+
description: "Item title [required] (or pass title as the first positional argument)",
|
|
9
|
+
},
|
|
3
10
|
{
|
|
4
11
|
target: "description",
|
|
5
12
|
keys: ["description"],
|
|
6
13
|
option: "--description, -d <value>",
|
|
7
14
|
description: "Item description (allow empty string)",
|
|
8
|
-
required: true,
|
|
9
15
|
},
|
|
10
16
|
{ target: "type", keys: ["type"], option: "--type <value>", description: "Item type (built-ins plus any configured custom types)" },
|
|
11
17
|
{ target: "template", keys: ["template"], option: "--template <value>", description: "Apply named create template defaults before explicit flags" },
|
|
@@ -474,4 +480,5 @@ export const UPDATE_COMMANDER_STRING_OPTION_CONTRACTS = UPDATE_COMMANDER_OPTION_
|
|
|
474
480
|
export const UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS = UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS
|
|
475
481
|
.filter((entry) => entry.repeatable === true)
|
|
476
482
|
.map((entry) => ({ target: entry.target, keys: entry.keys }));
|
|
477
|
-
//# sourceMappingURL=commander-mutation-options.js.map
|
|
483
|
+
//# sourceMappingURL=commander-mutation-options.js.map
|
|
484
|
+
//# debugId=0d489495-6a82-5ad5-9bf2-6b2d6bbf9fbc
|