@unbrained/pm-cli 2026.7.17 → 2026.7.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +13 -0
- package/dist/cli/commands/close.d.ts +1 -1
- package/dist/cli/commands/close.js +3 -3
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +47 -5
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/context.d.ts +2 -2
- package/dist/cli/commands/context.js +42 -28
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +5 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/graph.d.ts +7 -0
- package/dist/cli/commands/graph.js +11 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +3 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/next.d.ts +1 -1
- package/dist/cli/commands/next.js +3 -3
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/main.js +3 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +49 -7
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +7 -3
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +157 -149
- package/dist/cli-bundle/chunks/{chunk-N7I2DGLP.js → chunk-35FHWD4C.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-37V5MXAU.js.map → chunk-35FHWD4C.js.map} +1 -7
- package/dist/cli-bundle/chunks/{chunk-MSGETE6I.js → chunk-3CUQZNQ6.js} +67 -509
- package/dist/cli-bundle/chunks/chunk-3CUQZNQ6.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-3QDR6ZLU.js +800 -0
- package/dist/cli-bundle/chunks/chunk-3QDR6ZLU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QNUAZYGW.js → chunk-43UMFKCK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HF63SBLC.js → chunk-6VHUGVNP.js} +39 -16
- package/dist/cli-bundle/chunks/chunk-6VHUGVNP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-B6SH2YNN.js → chunk-7R6UIHYY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NCAFUBJX.js → chunk-7UCY6DR5.js} +183 -12
- package/dist/cli-bundle/chunks/chunk-7UCY6DR5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-23TCGBRK.js → chunk-ADXDCAKP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7LTCLTRG.js → chunk-AXRT7K5V.js} +16 -3
- package/dist/cli-bundle/chunks/chunk-AXRT7K5V.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-P56LKFQX.js → chunk-BDA35QG5.js} +34 -4
- package/dist/cli-bundle/chunks/chunk-BDA35QG5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2MPMKJF2.js → chunk-DHNG452T.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AFSV5HBB.js → chunk-E4FXM2XB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QKVVV6QO.js → chunk-EWIT5WIC.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-EX7OQT3Y.js +783 -0
- package/dist/cli-bundle/chunks/chunk-EX7OQT3Y.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LLODAQMP.js → chunk-F3VC3GOV.js} +41 -18
- package/dist/cli-bundle/chunks/chunk-F3VC3GOV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-S46R2M3W.js → chunk-GKPCTQYG.js} +1709 -5
- package/dist/cli-bundle/chunks/chunk-GKPCTQYG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HXVHBERL.js → chunk-HPAYDSR2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XNPMDSQQ.js → chunk-HYTOJW2Q.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-V3VBXQQV.js → chunk-I3INI567.js} +516 -429
- package/dist/cli-bundle/chunks/chunk-I3INI567.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-V7MP6YTN.js → chunk-IL5SPRMH.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YQCWK2MB.js → chunk-L5BTTDU5.js} +68 -503
- package/dist/cli-bundle/chunks/chunk-L5BTTDU5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SIJV365F.js → chunk-NCVT6XEL.js} +17 -4
- package/dist/cli-bundle/chunks/chunk-NCVT6XEL.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-DCC2AQBD.js → chunk-OGVTB5VO.js} +32 -31
- package/dist/cli-bundle/chunks/chunk-OGVTB5VO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6XAZB6SE.js → chunk-QPGQNLPI.js} +1660 -7
- package/dist/cli-bundle/chunks/chunk-QPGQNLPI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KOEZCHRF.js → chunk-QRZNCRNA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G6KM4YKY.js → chunk-RXPQ5Q23.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7CTQ7WW5.js → chunk-SIPOACV5.js} +514 -427
- package/dist/cli-bundle/chunks/chunk-SIPOACV5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XYJK6GIQ.js → chunk-TGBTLGPX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-37V5MXAU.js → chunk-TLWJP5BF.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-TLWJP5BF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3D4YVTNG.js → chunk-TZAE66GQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-S6FF7VW6.js → chunk-WQXRZMFN.js} +187 -16
- package/dist/cli-bundle/chunks/chunk-WQXRZMFN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SPFZV2GR.js → chunk-XPUTSGJU.js} +32 -31
- package/dist/cli-bundle/chunks/chunk-XPUTSGJU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CFSUNEL7.js → chunk-XWBD6DSR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-MNV226E4.js → chunk-XWYQ2LT4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-I7GY4X6Y.js → chunk-YFE7JHX3.js} +26 -5
- package/dist/cli-bundle/chunks/chunk-YFE7JHX3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FZGM3PNA.js → chunk-YIIIAKCE.js} +2 -2
- package/dist/cli-bundle/chunks/{close-BEP7MHF3.js → close-GPD7DTJV.js} +3 -3
- package/dist/cli-bundle/chunks/{close-Y6QFUJQN.js → close-X3CF6FQP.js} +3 -3
- package/dist/cli-bundle/chunks/{close-many-JJFW7KTT.js → close-many-J7A5EHOQ.js} +5 -5
- package/dist/cli-bundle/chunks/{close-many-QJ6FKJUE.js → close-many-NQLYGPYW.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-EVTOQMKW.js → deps-MQ4ZIGZB.js} +13 -4
- package/dist/cli-bundle/chunks/{deps-5NC4IZH7.js → deps-NIIKXLPB.js} +13 -4
- package/dist/cli-bundle/chunks/{profile-U2B6Y7GE.js → profile-AVCIIZID.js} +3 -3
- package/dist/cli-bundle/chunks/{profile-AGUKS52S.js → profile-LFYO3HHX.js} +3 -3
- package/dist/cli-bundle/chunks/{register-list-query-A5KRJ5J2.js → register-list-query-MZUF2EEC.js} +41 -13
- package/dist/cli-bundle/chunks/register-list-query-MZUF2EEC.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-NEYP3TXO.js → register-list-query-UKMF55FT.js} +40 -12
- package/dist/cli-bundle/chunks/register-list-query-UKMF55FT.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-6LOPBAHC.js → register-mutation-2PBW2GEX.js} +15 -13
- package/dist/cli-bundle/chunks/register-mutation-2PBW2GEX.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-GCZOALNJ.js → register-mutation-T6RVNJC4.js} +14 -12
- package/dist/cli-bundle/chunks/{register-mutation-GCZOALNJ.js.map → register-mutation-T6RVNJC4.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-6ZZIF27A.js → register-operations-KHZYR6MG.js} +11 -11
- package/dist/cli-bundle/chunks/{register-operations-REDIAEGI.js → register-operations-WPQ2LWZJ.js} +11 -11
- package/dist/cli-bundle/chunks/{register-setup-J3JS2ZVT.js → register-setup-PGDNOXDQ.js} +5 -5
- package/dist/cli-bundle/chunks/{register-setup-BHPMN5SK.js → register-setup-TDN7WAO6.js} +5 -5
- package/dist/cli-bundle/chunks/{update-SA6AG23P.js → update-SQYZA3ZW.js} +4 -4
- package/dist/cli-bundle/chunks/{update-PQQHLYCC.js → update-XZJYS5X7.js} +4 -4
- package/dist/cli-bundle/chunks/{update-many-RQVTFJPD.js → update-many-R24B3GBK.js} +6 -6
- package/dist/cli-bundle/chunks/{update-many-TV3L3KBX.js → update-many-WQ3R3J6N.js} +6 -6
- package/dist/cli-bundle/main.js +25 -9
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli-bundle/sdk-runtime.js +19 -16
- package/dist/cli-bundle/sdk.js +95 -305
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/core/item/actionability.d.ts +12 -0
- package/dist/core/item/actionability.js +39 -4
- package/dist/core/item/actionability.js.map +1 -1
- package/dist/core/sentry/instrument.d.ts +11 -0
- package/dist/core/sentry/instrument.js +21 -2
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/mcp/server.d.ts +16 -18
- package/dist/mcp/server.js +84 -31
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-definitions.js +17 -4
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/actionability.d.ts +10 -0
- package/dist/sdk/actionability.js +14 -0
- package/dist/sdk/actionability.js.map +1 -0
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +6 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +19 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +21 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +16 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +80 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +20 -0
- package/dist/sdk/cli-contracts/tool-schema.js +97 -9
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts.js +4 -4
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/dependencies.d.ts +42 -53
- package/dist/sdk/dependencies.js +177 -125
- package/dist/sdk/dependencies.js.map +1 -1
- package/dist/sdk/governance/validate.js +3 -3
- package/dist/sdk/governance/validate.js.map +1 -1
- package/dist/sdk/graph/analytics.d.ts +124 -0
- package/dist/sdk/graph/analytics.js +464 -0
- package/dist/sdk/graph/analytics.js.map +1 -0
- package/dist/sdk/graph/assembly.d.ts +97 -0
- package/dist/sdk/graph/assembly.js +146 -0
- package/dist/sdk/graph/assembly.js.map +1 -0
- package/dist/sdk/graph/cache.d.ts +66 -0
- package/dist/sdk/graph/cache.js +148 -0
- package/dist/sdk/graph/cache.js.map +1 -0
- package/dist/sdk/graph/governance.d.ts +108 -0
- package/dist/sdk/graph/governance.js +360 -0
- package/dist/sdk/graph/governance.js.map +1 -0
- package/dist/sdk/graph/index.d.ts +16 -0
- package/dist/sdk/graph/index.js +20 -0
- package/dist/sdk/graph/index.js.map +1 -0
- package/dist/sdk/graph/remediation.d.ts +52 -0
- package/dist/sdk/graph/remediation.js +148 -0
- package/dist/sdk/graph/remediation.js.map +1 -0
- package/dist/sdk/graph/run.d.ts +295 -0
- package/dist/sdk/graph/run.js +468 -0
- package/dist/sdk/graph/run.js.map +1 -0
- package/dist/sdk/graph/traversal.d.ts +77 -0
- package/dist/sdk/graph/traversal.js +262 -0
- package/dist/sdk/graph/traversal.js.map +1 -0
- package/dist/sdk/index.d.ts +4 -2
- package/dist/sdk/index.js +6 -4
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/query/list.d.ts +8 -0
- package/dist/sdk/query/list.js +19 -3
- package/dist/sdk/query/list.js.map +1 -1
- package/dist/sdk/relationship-context.d.ts +42 -0
- package/dist/sdk/relationship-context.js +99 -20
- package/dist/sdk/relationship-context.js.map +1 -1
- package/dist/sdk/relationships.d.ts +13 -0
- package/dist/sdk/relationships.js +30 -2
- package/dist/sdk/relationships.js.map +1 -1
- package/dist/sdk/runtime-input.d.ts +41 -0
- package/dist/sdk/runtime-input.js +422 -2
- package/dist/sdk/runtime-input.js.map +1 -1
- package/dist/sdk/runtime.d.ts +12 -23
- package/dist/sdk/runtime.js +19 -371
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/test/linked-command-detection.js +12 -3
- package/dist/sdk/test/linked-command-detection.js.map +1 -1
- package/docs/AGENT_GUIDE.md +1 -0
- package/docs/COMMANDS.md +19 -1
- package/docs/RELATIONSHIP_GRAPH.md +99 -3
- package/docs/SDK.md +17 -3
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli-bundle/chunks/chunk-6XAZB6SE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7CTQ7WW5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7LTCLTRG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-DCC2AQBD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HF63SBLC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-I7GY4X6Y.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LLODAQMP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MSGETE6I.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-N7I2DGLP.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-NCAFUBJX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-P56LKFQX.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-S46R2M3W.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-S6FF7VW6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SIJV365F.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SPFZV2GR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-V3VBXQQV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YQCWK2MB.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-A5KRJ5J2.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-NEYP3TXO.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-6LOPBAHC.js.map +0 -1
- /package/dist/cli-bundle/chunks/{chunk-QNUAZYGW.js.map → chunk-43UMFKCK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B6SH2YNN.js.map → chunk-7R6UIHYY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-23TCGBRK.js.map → chunk-ADXDCAKP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2MPMKJF2.js.map → chunk-DHNG452T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AFSV5HBB.js.map → chunk-E4FXM2XB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QKVVV6QO.js.map → chunk-EWIT5WIC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HXVHBERL.js.map → chunk-HPAYDSR2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XNPMDSQQ.js.map → chunk-HYTOJW2Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-V7MP6YTN.js.map → chunk-IL5SPRMH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KOEZCHRF.js.map → chunk-QRZNCRNA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G6KM4YKY.js.map → chunk-RXPQ5Q23.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XYJK6GIQ.js.map → chunk-TGBTLGPX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3D4YVTNG.js.map → chunk-TZAE66GQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CFSUNEL7.js.map → chunk-XWBD6DSR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MNV226E4.js.map → chunk-XWYQ2LT4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FZGM3PNA.js.map → chunk-YIIIAKCE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-BEP7MHF3.js.map → close-GPD7DTJV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-Y6QFUJQN.js.map → close-X3CF6FQP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-JJFW7KTT.js.map → close-many-J7A5EHOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-QJ6FKJUE.js.map → close-many-NQLYGPYW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-EVTOQMKW.js.map → deps-MQ4ZIGZB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-5NC4IZH7.js.map → deps-NIIKXLPB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-U2B6Y7GE.js.map → profile-AVCIIZID.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-AGUKS52S.js.map → profile-LFYO3HHX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-6ZZIF27A.js.map → register-operations-KHZYR6MG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-REDIAEGI.js.map → register-operations-WPQ2LWZJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-J3JS2ZVT.js.map → register-setup-PGDNOXDQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-BHPMN5SK.js.map → register-setup-TDN7WAO6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-SA6AG23P.js.map → update-SQYZA3ZW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-PQQHLYCC.js.map → update-XZJYS5X7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-RQVTFJPD.js.map → update-many-R24B3GBK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-TV3L3KBX.js.map → update-many-WQ3R3J6N.js.map} +0 -0
package/dist/sdk/runtime.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Defines public SDK APIs and package-author helpers for Runtime.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
7
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="eceb55d4-5d10-5d1f-b060-4ea493f70d9d")}catch(e){}}();
|
|
8
8
|
export { PM_GITIGNORE_END, PM_GITIGNORE_START, ensurePmGitignore, getPmGitignoreBlock, } from "./workspace.js";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { createEmptyExtensionCommandRegistry, createEmptyExtensionHookRegistry, createEmptyExtensionParserRegistry, createEmptyExtensionPreflightRegistry, createEmptyExtensionRegistrationRegistry, createEmptyExtensionRendererRegistry, createEmptyExtensionServiceRegistry, } from "../core/extensions/extension-registries.js";
|
|
@@ -19,8 +19,6 @@ import { createSerialQueue } from "../core/shared/serial-queue.js";
|
|
|
19
19
|
import { resolveRuntimeStatusRegistry } from "../core/schema/runtime-schema.js";
|
|
20
20
|
import { getSettingsPath, resolvePmRoot } from "../core/store/paths.js";
|
|
21
21
|
import { readSettings } from "../core/store/settings.js";
|
|
22
|
-
import { normalizeListOptions, normalizeUpdateOptions, } from "../cli/registration-helpers.js";
|
|
23
|
-
import { UPDATE_COMMANDER_STRING_OPTION_CONTRACTS } from "./cli-contracts/commander-mutation-options.js";
|
|
24
22
|
import { clearWorkspaceContractsCache, memoizeWorkspaceExtensionRegistrations, } from "./workspace-contracts-cache.js";
|
|
25
23
|
export { clearWorkspaceContractsCache } from "./workspace-contracts-cache.js";
|
|
26
24
|
import { runActivity, runAggregate, runAppend, runClaim, runClaimNext, runClose, runCloseMany, runComments, runContext, runCopy, runCreate, runDelete, runFocus, runGet, runHistory, runLearnings, runNext, runNotes, runPlan, runRestore, runRelease, runUpdate, runUpdateMany, runUpgrade, } from "../cli/commands/index.js";
|
|
@@ -33,9 +31,10 @@ import { runInit } from "./init.js";
|
|
|
33
31
|
import { runProfileApply, runProfileLint, runProfileList, runProfileShow, } from "./profile.js";
|
|
34
32
|
import { runHistoryRedact, } from "./history-redact.js";
|
|
35
33
|
import { runMcpHistoryCompactAction, runMcpHistoryRepairAction, } from "./history-mcp.js";
|
|
36
|
-
import {
|
|
34
|
+
import { actionGlobalOptions as globalOptions, closeManyOptionsFromFlat, extensionOptionsFromArgs, graphOptionsFromFlat, mutationListOptions, normalizeActionName, normalizeCommandPath, normalizeMcpOptionsArrays, normalizeMcpUpdateOptions, optionsWithAuthor, parseRuntimeInteger as parseMcpInteger, readRuntimeScalarString as readScalarString, readRuntimeScalarStringAllowBlank as readScalarStringAllowBlank, readRuntimeString as readString, readRuntimeStringArray as readStringArray, updateManyOptionsFromFlat, withAddNoteOption, withFilesDiscoveryOptions, withMutationCompaction, } from "./runtime-input.js";
|
|
37
35
|
import { runDeps } from "./dependencies.js";
|
|
38
36
|
import { runDocs } from "./docs.js";
|
|
37
|
+
import { runGraph, } from "./graph/run.js";
|
|
39
38
|
import { runFiles, runFilesDiscover } from "./files.js";
|
|
40
39
|
import { runContracts, } from "../cli/commands/contracts.js";
|
|
41
40
|
import { runList } from "./query/list.js";
|
|
@@ -172,6 +171,10 @@ export class PmClient {
|
|
|
172
171
|
deps(id, options = {}) {
|
|
173
172
|
return this.runTyped("deps", { id, options });
|
|
174
173
|
}
|
|
174
|
+
/** Run bounded workspace graph traversal, analytics, or governance-audit queries. */
|
|
175
|
+
graph(subcommand, ids = {}, options = {}) {
|
|
176
|
+
return this.runTyped("graph", { subcommand, ...ids, options });
|
|
177
|
+
}
|
|
175
178
|
/** Append markdown/body text to an item through the mutation pipeline. */
|
|
176
179
|
append(id, body, options = {}) {
|
|
177
180
|
return this.runTyped("append", {
|
|
@@ -638,6 +641,10 @@ export function docs(id, options = {}, clientOptions = {}) {
|
|
|
638
641
|
export function deps(id, options = {}, clientOptions = {}) {
|
|
639
642
|
return new PmClient(clientOptions).deps(id, options);
|
|
640
643
|
}
|
|
644
|
+
/** Run bounded workspace graph queries without constructing a reusable client. */
|
|
645
|
+
export function graph(subcommand, ids = {}, options = {}, clientOptions = {}) {
|
|
646
|
+
return new PmClient(clientOptions).graph(subcommand, ids, options);
|
|
647
|
+
}
|
|
641
648
|
/** Append markdown/body text to an item without constructing a reusable client. */
|
|
642
649
|
export function append(id, body, options = {}, clientOptions = {}) {
|
|
643
650
|
return new PmClient(clientOptions).append(id, body, options);
|
|
@@ -941,230 +948,6 @@ export function readRequiredString(args, key) {
|
|
|
941
948
|
}
|
|
942
949
|
return value;
|
|
943
950
|
}
|
|
944
|
-
function globalOptions(args) {
|
|
945
|
-
return {
|
|
946
|
-
json: true,
|
|
947
|
-
quiet: true,
|
|
948
|
-
path: readString(args, "path"),
|
|
949
|
-
noExtensions: args.noExtensions === true || args.no_extensions === true,
|
|
950
|
-
noPager: true,
|
|
951
|
-
};
|
|
952
|
-
}
|
|
953
|
-
const ARRAY_TO_CSV_FIELDS = new Set([
|
|
954
|
-
"tags",
|
|
955
|
-
"blockedBy",
|
|
956
|
-
"blocked_by",
|
|
957
|
-
"skills",
|
|
958
|
-
"fields",
|
|
959
|
-
]);
|
|
960
|
-
const SCALAR_TO_ARRAY_FIELDS = new Set([
|
|
961
|
-
"comment",
|
|
962
|
-
"note",
|
|
963
|
-
"learning",
|
|
964
|
-
"reminder",
|
|
965
|
-
"event",
|
|
966
|
-
"dep",
|
|
967
|
-
"depRemove",
|
|
968
|
-
"dep_remove",
|
|
969
|
-
"file",
|
|
970
|
-
"doc",
|
|
971
|
-
"test",
|
|
972
|
-
"unset",
|
|
973
|
-
"addGlob",
|
|
974
|
-
"add_glob",
|
|
975
|
-
"migrate",
|
|
976
|
-
"envSet",
|
|
977
|
-
"env_set",
|
|
978
|
-
"envClear",
|
|
979
|
-
"env_clear",
|
|
980
|
-
]);
|
|
981
|
-
// Actions where the linked-resource fields `add` and `remove` are string[] arrays.
|
|
982
|
-
// For other actions (comments/notes/learnings) `add` and `remove` are scalar strings
|
|
983
|
-
// and must NOT be auto-promoted.
|
|
984
|
-
const ARRAY_ADD_REMOVE_ACTIONS = new Set([
|
|
985
|
-
"files",
|
|
986
|
-
"files-discover",
|
|
987
|
-
"docs",
|
|
988
|
-
"test",
|
|
989
|
-
"test-all",
|
|
990
|
-
]);
|
|
991
|
-
const LIFECYCLE_AUTHOR_ALIAS_ACTIONS = new Set([
|
|
992
|
-
"claim",
|
|
993
|
-
"release",
|
|
994
|
-
"start-task",
|
|
995
|
-
"pause-task",
|
|
996
|
-
"close-task",
|
|
997
|
-
]);
|
|
998
|
-
function normalizeMcpOptionsArrays(options, action) {
|
|
999
|
-
const result = {};
|
|
1000
|
-
const promoteAddRemove = action !== undefined && ARRAY_ADD_REMOVE_ACTIONS.has(action);
|
|
1001
|
-
const preserveStandaloneNote = action === "files" || action === "files-discover" || action === "docs";
|
|
1002
|
-
for (const [key, value] of Object.entries(options)) {
|
|
1003
|
-
if (Array.isArray(value) && ARRAY_TO_CSV_FIELDS.has(key)) {
|
|
1004
|
-
result[key] = value.join(",");
|
|
1005
|
-
continue;
|
|
1006
|
-
}
|
|
1007
|
-
if (key === "note" && preserveStandaloneNote) {
|
|
1008
|
-
result[key] = value;
|
|
1009
|
-
continue;
|
|
1010
|
-
}
|
|
1011
|
-
if (typeof value === "string" && SCALAR_TO_ARRAY_FIELDS.has(key)) {
|
|
1012
|
-
result[key] = [value];
|
|
1013
|
-
continue;
|
|
1014
|
-
}
|
|
1015
|
-
if (typeof value === "string" &&
|
|
1016
|
-
promoteAddRemove &&
|
|
1017
|
-
(key === "add" || key === "remove")) {
|
|
1018
|
-
result[key] = [value];
|
|
1019
|
-
continue;
|
|
1020
|
-
}
|
|
1021
|
-
result[key] = value;
|
|
1022
|
-
}
|
|
1023
|
-
return result;
|
|
1024
|
-
}
|
|
1025
|
-
function optionsWithAuthor(args, action) {
|
|
1026
|
-
const baseOptions = asRecordClone(args.options);
|
|
1027
|
-
const hoistedTopLevel = {};
|
|
1028
|
-
const hoistKey = (key) => {
|
|
1029
|
-
if (baseOptions[key] !== undefined || args[key] === undefined) {
|
|
1030
|
-
return;
|
|
1031
|
-
}
|
|
1032
|
-
hoistedTopLevel[key] = args[key];
|
|
1033
|
-
};
|
|
1034
|
-
if (action === "list") {
|
|
1035
|
-
hoistKey("status");
|
|
1036
|
-
hoistKey("type");
|
|
1037
|
-
hoistKey("tag");
|
|
1038
|
-
hoistKey("priority");
|
|
1039
|
-
hoistKey("limit");
|
|
1040
|
-
hoistKey("offset");
|
|
1041
|
-
}
|
|
1042
|
-
else if (action === "search") {
|
|
1043
|
-
hoistKey("mode");
|
|
1044
|
-
hoistKey("status");
|
|
1045
|
-
hoistKey("type");
|
|
1046
|
-
hoistKey("tag");
|
|
1047
|
-
hoistKey("priority");
|
|
1048
|
-
hoistKey("limit");
|
|
1049
|
-
}
|
|
1050
|
-
else if (action === "create") {
|
|
1051
|
-
hoistKey("title");
|
|
1052
|
-
hoistKey("type");
|
|
1053
|
-
hoistKey("status");
|
|
1054
|
-
hoistKey("description");
|
|
1055
|
-
hoistKey("body");
|
|
1056
|
-
hoistKey("priority");
|
|
1057
|
-
hoistKey("tags");
|
|
1058
|
-
hoistKey("parent");
|
|
1059
|
-
hoistKey("createMode");
|
|
1060
|
-
hoistKey("create_mode");
|
|
1061
|
-
hoistKey("allowMissingParent");
|
|
1062
|
-
}
|
|
1063
|
-
else if (action === "close") {
|
|
1064
|
-
hoistKey("duplicateOf");
|
|
1065
|
-
}
|
|
1066
|
-
else if (action === "append") {
|
|
1067
|
-
// pm-7u9j: the narrow pm_append tool declares `body` top-level; runAppend
|
|
1068
|
-
// reads it from options, so hoist unless options.body already wins.
|
|
1069
|
-
// (pm_schema/pm_config top-level args are consumed directly by runAction's
|
|
1070
|
-
// schema/config cases, which read args before options — no hoist needed.)
|
|
1071
|
-
hoistKey("body");
|
|
1072
|
-
}
|
|
1073
|
-
const options = normalizeMcpOptionsArrays({ ...hoistedTopLevel, ...baseOptions }, action);
|
|
1074
|
-
const author = readString(args, "author");
|
|
1075
|
-
const authorFromAssignee = action !== undefined && LIFECYCLE_AUTHOR_ALIAS_ACTIONS.has(action)
|
|
1076
|
-
? (readString(args, "assignee") ?? readString(options, "assignee"))
|
|
1077
|
-
: undefined;
|
|
1078
|
-
if (author && options.author === undefined) {
|
|
1079
|
-
return { ...options, author };
|
|
1080
|
-
}
|
|
1081
|
-
if (authorFromAssignee && options.author === undefined) {
|
|
1082
|
-
return { ...options, author: authorFromAssignee };
|
|
1083
|
-
}
|
|
1084
|
-
return options;
|
|
1085
|
-
}
|
|
1086
|
-
// GH-170 (pm-pfnx): the narrow pm_files/pm_docs tools spell the CLI --note flag
|
|
1087
|
-
// as `addNote` (the shared `note` parameter is the array-typed create/update
|
|
1088
|
-
// note seed). Translate it onto the runner's `note` option; an explicit
|
|
1089
|
-
// options.note (pm_run callers) wins.
|
|
1090
|
-
function withAddNoteOption(options) {
|
|
1091
|
-
if (options.addNote === undefined) {
|
|
1092
|
-
return options;
|
|
1093
|
-
}
|
|
1094
|
-
const next = { ...options };
|
|
1095
|
-
if (next.note === undefined && typeof next.addNote === "string") {
|
|
1096
|
-
next.note = next.addNote;
|
|
1097
|
-
}
|
|
1098
|
-
delete next.addNote;
|
|
1099
|
-
return next;
|
|
1100
|
-
}
|
|
1101
|
-
function withFilesDiscoveryOptions(options) {
|
|
1102
|
-
const next = { ...options };
|
|
1103
|
-
if (next.discoveryNote !== undefined &&
|
|
1104
|
-
next.note === undefined &&
|
|
1105
|
-
typeof next.discoveryNote === "string") {
|
|
1106
|
-
next.note = next.discoveryNote;
|
|
1107
|
-
}
|
|
1108
|
-
delete next.discover;
|
|
1109
|
-
delete next.discoveryNote;
|
|
1110
|
-
return next;
|
|
1111
|
-
}
|
|
1112
|
-
function normalizeActionName(value) {
|
|
1113
|
-
const chunks = [];
|
|
1114
|
-
let lastWasSeparator = true;
|
|
1115
|
-
for (const character of value.trim().toLowerCase()) {
|
|
1116
|
-
const isAlphaNumeric = (character >= "a" && character <= "z") ||
|
|
1117
|
-
(character >= "0" && character <= "9");
|
|
1118
|
-
if (isAlphaNumeric) {
|
|
1119
|
-
chunks.push(character);
|
|
1120
|
-
lastWasSeparator = false;
|
|
1121
|
-
continue;
|
|
1122
|
-
}
|
|
1123
|
-
if (!lastWasSeparator) {
|
|
1124
|
-
chunks.push("-");
|
|
1125
|
-
lastWasSeparator = true;
|
|
1126
|
-
}
|
|
1127
|
-
}
|
|
1128
|
-
if (chunks.at(-1) === "-") {
|
|
1129
|
-
chunks.pop();
|
|
1130
|
-
}
|
|
1131
|
-
return chunks.join("");
|
|
1132
|
-
}
|
|
1133
|
-
function normalizeCommandPath(value) {
|
|
1134
|
-
return value.trim().toLowerCase().split(/\s+/).filter(Boolean).join(" ");
|
|
1135
|
-
}
|
|
1136
|
-
function readStringArray(value) {
|
|
1137
|
-
if (!Array.isArray(value)) {
|
|
1138
|
-
return [];
|
|
1139
|
-
}
|
|
1140
|
-
return value
|
|
1141
|
-
.map((entry) => String(entry))
|
|
1142
|
-
.filter((entry) => entry.length > 0);
|
|
1143
|
-
}
|
|
1144
|
-
function extensionOptionsFromArgs(args, options) {
|
|
1145
|
-
const reserved = new Set([
|
|
1146
|
-
"action",
|
|
1147
|
-
"args",
|
|
1148
|
-
"author",
|
|
1149
|
-
"cwd",
|
|
1150
|
-
"fullChangedFields",
|
|
1151
|
-
"id",
|
|
1152
|
-
"options",
|
|
1153
|
-
"path",
|
|
1154
|
-
"query",
|
|
1155
|
-
"reason",
|
|
1156
|
-
"target",
|
|
1157
|
-
]);
|
|
1158
|
-
const passthrough = {};
|
|
1159
|
-
for (const [key, value] of Object.entries(args)) {
|
|
1160
|
-
if (!reserved.has(key)) {
|
|
1161
|
-
passthrough[key] = value;
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
const normalizedOptions = { ...passthrough, ...options };
|
|
1165
|
-
delete normalizedOptions.args;
|
|
1166
|
-
return normalizedOptions;
|
|
1167
|
-
}
|
|
1168
951
|
// pm-bl6m / pm-zumn: every native MCP action runs inside an activation cycle that
|
|
1169
952
|
// mutates the process-global active extension registries (set globals -> run -> clear
|
|
1170
953
|
// globals in a finally). The stdio transport already processes JSON-RPC lines
|
|
@@ -1337,148 +1120,6 @@ async function withCwd(cwd, run) {
|
|
|
1337
1120
|
process.chdir(previous);
|
|
1338
1121
|
}
|
|
1339
1122
|
}
|
|
1340
|
-
/** Mutation tools (create/update/close/append/update-many) return a verbose `changed_fields` array. On the agent path we drop it to a `changed_field_count` by default for token efficiency, restoring the full array only when the caller explicitly passes the MCP-level fullChangedFields=true control. Mutation options are forwarded unchanged so runtime fields named `full` remain valid user data. */
|
|
1341
|
-
function withMutationCompaction(args, options) {
|
|
1342
|
-
return {
|
|
1343
|
-
changedFields: args.fullChangedFields === true ? "full" : "compact",
|
|
1344
|
-
idOnly: args.idOnly === true,
|
|
1345
|
-
runnerOptions: { ...options },
|
|
1346
|
-
};
|
|
1347
|
-
}
|
|
1348
|
-
function mutationListOptions(options) {
|
|
1349
|
-
return {
|
|
1350
|
-
type: readScalarString(options, "filterType"),
|
|
1351
|
-
tag: readScalarString(options, "filterTag"),
|
|
1352
|
-
priority: readScalarString(options, "filterPriority"),
|
|
1353
|
-
deadlineBefore: readScalarString(options, "filterDeadlineBefore"),
|
|
1354
|
-
deadlineAfter: readScalarString(options, "filterDeadlineAfter"),
|
|
1355
|
-
updatedAfter: readScalarString(options, "filterUpdatedAfter"),
|
|
1356
|
-
updatedBefore: readScalarString(options, "filterUpdatedBefore"),
|
|
1357
|
-
createdAfter: readScalarString(options, "filterCreatedAfter"),
|
|
1358
|
-
createdBefore: readScalarString(options, "filterCreatedBefore"),
|
|
1359
|
-
ids: readScalarStringAllowBlank(options, "ids"),
|
|
1360
|
-
assignee: readScalarString(options, "filterAssignee"),
|
|
1361
|
-
assigneeFilter: readScalarString(options, "filterAssigneeFilter") ??
|
|
1362
|
-
readScalarString(options, "filterAssignee_filter"),
|
|
1363
|
-
parent: readScalarString(options, "filterParent"),
|
|
1364
|
-
sprint: readScalarString(options, "filterSprint"),
|
|
1365
|
-
release: readScalarString(options, "filterRelease"),
|
|
1366
|
-
limit: readScalarString(options, "limit"),
|
|
1367
|
-
offset: readScalarString(options, "offset"),
|
|
1368
|
-
};
|
|
1369
|
-
}
|
|
1370
|
-
function closeManyOptionsFromFlat(options) {
|
|
1371
|
-
return {
|
|
1372
|
-
status: readString(options, "filterStatus"),
|
|
1373
|
-
list: isRecord(options.list)
|
|
1374
|
-
? normalizeListOptions(options.list)
|
|
1375
|
-
: mutationListOptions(options),
|
|
1376
|
-
reason: readString(options, "reason"),
|
|
1377
|
-
resolution: readString(options, "resolution"),
|
|
1378
|
-
expectedResult: readString(options, "expectedResult") ??
|
|
1379
|
-
readString(options, "expected_result") ??
|
|
1380
|
-
readString(options, "expected"),
|
|
1381
|
-
actualResult: readString(options, "actualResult") ??
|
|
1382
|
-
readString(options, "actual_result") ??
|
|
1383
|
-
readString(options, "actual"),
|
|
1384
|
-
validateClose: readString(options, "validateClose") ??
|
|
1385
|
-
readString(options, "validate_close"),
|
|
1386
|
-
author: readString(options, "author"),
|
|
1387
|
-
message: readString(options, "message"),
|
|
1388
|
-
force: options.force === true ? true : undefined,
|
|
1389
|
-
dryRun: options.dryRun === true || options.dry_run === true ? true : undefined,
|
|
1390
|
-
rollback: readString(options, "rollback"),
|
|
1391
|
-
checkpoint: options.checkpoint === false ||
|
|
1392
|
-
options.noCheckpoint === true ||
|
|
1393
|
-
options.no_checkpoint === true
|
|
1394
|
-
? false
|
|
1395
|
-
: undefined,
|
|
1396
|
-
};
|
|
1397
|
-
}
|
|
1398
|
-
const UPDATE_MANY_FLAT_CONTROL_KEYS = new Set([
|
|
1399
|
-
"filterStatus",
|
|
1400
|
-
"filterType",
|
|
1401
|
-
"filterTag",
|
|
1402
|
-
"filterPriority",
|
|
1403
|
-
"filterDeadlineBefore",
|
|
1404
|
-
"filterDeadlineAfter",
|
|
1405
|
-
"filterUpdatedAfter",
|
|
1406
|
-
"filterUpdatedBefore",
|
|
1407
|
-
"filterCreatedAfter",
|
|
1408
|
-
"filterCreatedBefore",
|
|
1409
|
-
"filterAssignee",
|
|
1410
|
-
"filterAssigneeFilter",
|
|
1411
|
-
"filterAssignee_filter",
|
|
1412
|
-
"filterParent",
|
|
1413
|
-
"filterSprint",
|
|
1414
|
-
"filterRelease",
|
|
1415
|
-
"ids",
|
|
1416
|
-
"list",
|
|
1417
|
-
"update",
|
|
1418
|
-
"limit",
|
|
1419
|
-
"offset",
|
|
1420
|
-
"dryRun",
|
|
1421
|
-
"dry_run",
|
|
1422
|
-
"rollback",
|
|
1423
|
-
"checkpoint",
|
|
1424
|
-
"noCheckpoint",
|
|
1425
|
-
"no_checkpoint",
|
|
1426
|
-
]);
|
|
1427
|
-
function updateManyUpdateOptionsFromFlat(options) {
|
|
1428
|
-
const update = {};
|
|
1429
|
-
for (const [key, value] of Object.entries(options)) {
|
|
1430
|
-
if (UPDATE_MANY_FLAT_CONTROL_KEYS.has(key)) {
|
|
1431
|
-
continue;
|
|
1432
|
-
}
|
|
1433
|
-
update[key] = value;
|
|
1434
|
-
}
|
|
1435
|
-
return normalizeMcpUpdateOptions(update);
|
|
1436
|
-
}
|
|
1437
|
-
function normalizeMcpUpdateOptions(options) {
|
|
1438
|
-
const normalizedInput = normalizeMcpOptionsArrays(options, "update-many");
|
|
1439
|
-
for (const contract of UPDATE_COMMANDER_STRING_OPTION_CONTRACTS) {
|
|
1440
|
-
for (const key of contract.keys) {
|
|
1441
|
-
const value = normalizedInput[key];
|
|
1442
|
-
if (typeof value === "number" && Number.isFinite(value)) {
|
|
1443
|
-
normalizedInput[key] = String(value);
|
|
1444
|
-
}
|
|
1445
|
-
}
|
|
1446
|
-
}
|
|
1447
|
-
return normalizeUpdateOptions(normalizedInput);
|
|
1448
|
-
}
|
|
1449
|
-
function updateManyOptionsFromFlat(options) {
|
|
1450
|
-
if (isRecord(options.list) || isRecord(options.update)) {
|
|
1451
|
-
const updateSource = isRecord(options.update)
|
|
1452
|
-
? options.update
|
|
1453
|
-
: updateManyUpdateOptionsFromFlat(options);
|
|
1454
|
-
return {
|
|
1455
|
-
status: readScalarString(options, "filterStatus"),
|
|
1456
|
-
list: isRecord(options.list)
|
|
1457
|
-
? normalizeListOptions(options.list)
|
|
1458
|
-
: mutationListOptions(options),
|
|
1459
|
-
update: normalizeMcpUpdateOptions(updateSource),
|
|
1460
|
-
dryRun: options.dryRun === true || options.dry_run === true ? true : undefined,
|
|
1461
|
-
rollback: readString(options, "rollback"),
|
|
1462
|
-
checkpoint: options.checkpoint === false ||
|
|
1463
|
-
options.noCheckpoint === true ||
|
|
1464
|
-
options.no_checkpoint === true
|
|
1465
|
-
? false
|
|
1466
|
-
: undefined,
|
|
1467
|
-
};
|
|
1468
|
-
}
|
|
1469
|
-
return {
|
|
1470
|
-
status: readScalarString(options, "filterStatus"),
|
|
1471
|
-
list: mutationListOptions(options),
|
|
1472
|
-
update: updateManyUpdateOptionsFromFlat(options),
|
|
1473
|
-
dryRun: options.dryRun === true || options.dry_run === true ? true : undefined,
|
|
1474
|
-
rollback: readString(options, "rollback"),
|
|
1475
|
-
checkpoint: options.checkpoint === false ||
|
|
1476
|
-
options.noCheckpoint === true ||
|
|
1477
|
-
options.no_checkpoint === true
|
|
1478
|
-
? false
|
|
1479
|
-
: undefined,
|
|
1480
|
-
};
|
|
1481
|
-
}
|
|
1482
1123
|
const WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS = new Set([
|
|
1483
1124
|
"activity",
|
|
1484
1125
|
"aggregate",
|
|
@@ -1487,6 +1128,7 @@ const WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS = new Set([
|
|
|
1487
1128
|
"deps",
|
|
1488
1129
|
"files-discover",
|
|
1489
1130
|
"get",
|
|
1131
|
+
"graph",
|
|
1490
1132
|
"health",
|
|
1491
1133
|
"history",
|
|
1492
1134
|
"list",
|
|
@@ -2044,6 +1686,11 @@ async function runMcpCloseTaskAction(ctx) {
|
|
|
2044
1686
|
release: releaseResult,
|
|
2045
1687
|
};
|
|
2046
1688
|
}
|
|
1689
|
+
/** Dispatch the graph action merging flat MCP parameters onto runner options. */
|
|
1690
|
+
function runMcpGraphAction(ctx) {
|
|
1691
|
+
const merged = { ...ctx.args, ...ctx.options };
|
|
1692
|
+
return runGraph(readRequiredString(merged, "subcommand"), readString(merged, "id") ?? ctx.id, readString(merged, "target"), graphOptionsFromFlat(merged), ctx.global);
|
|
1693
|
+
}
|
|
2047
1694
|
const SDK_ACTION_HANDLERS = {
|
|
2048
1695
|
init: (ctx) => runInit(readString(ctx.args, "prefix"), ctx.global, ctx.options),
|
|
2049
1696
|
context: (ctx) => runContext(ctx.options, ctx.global),
|
|
@@ -2086,6 +1733,7 @@ const SDK_ACTION_HANDLERS = {
|
|
|
2086
1733
|
upgrade: (ctx) => runUpgrade(readMcpTarget(ctx), ctx.options, ctx.global),
|
|
2087
1734
|
delete: (ctx) => runDelete(requireMcpItemId(ctx), ctx.options, ctx.global),
|
|
2088
1735
|
deps: (ctx) => runDeps(requireMcpItemId(ctx), ctx.options, ctx.global),
|
|
1736
|
+
graph: runMcpGraphAction,
|
|
2089
1737
|
"files-discover": (ctx) => runFilesDiscover(requireMcpItemId(ctx), ctx.options, ctx.global),
|
|
2090
1738
|
history: (ctx) => runHistory(requireMcpItemId(ctx), ctx.options, ctx.global),
|
|
2091
1739
|
"history-redact": (ctx) => runHistoryRedact(requireMcpItemId(ctx), ctx.options, ctx.global),
|
|
@@ -2161,4 +1809,4 @@ async function loadWorkspaceExtensionRegistrations(pmRoot, settings, cwd) {
|
|
|
2161
1809
|
}
|
|
2162
1810
|
}
|
|
2163
1811
|
//# sourceMappingURL=runtime.js.map
|
|
2164
|
-
//# debugId=
|
|
1812
|
+
//# debugId=eceb55d4-5d10-5d1f-b060-4ea493f70d9d
|