@unbrained/pm-cli 2026.8.30 → 2026.8.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
- package/.agents/skills/README.md +1 -1
- package/.agents/skills/pm-developer/SKILL.md +1 -1
- package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +2 -2
- package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +1 -1
- package/.agents/skills/pm-developer/references/TOKEN_BUDGETS.md +1 -1
- package/.agents/skills/pm-extensions/SKILL.md +2 -2
- package/.agents/skills/pm-extensions/references/AUTHORING.md +1 -1
- package/.agents/skills/pm-extensions/references/LIFECYCLE.md +1 -1
- package/.agents/skills/pm-sdk/SKILL.md +1 -1
- package/.agents/skills/pm-user/SKILL.md +2 -2
- package/.agents/skills/pm-user/references/WORKFLOWS.md +2 -2
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/cli/register-list-query.js +32 -17
- package/dist/cli/register-operations.d.ts +2 -0
- package/dist/cli/register-operations.js +20 -9
- package/dist/cli-bundle/bundle-manifest.json +137 -137
- package/dist/cli-bundle/chunks/chunk-2XVV45NJ.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-N6OR6FAR.js → chunk-3FCSFWZT.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-WS2GJQVG.js → chunk-52JXYSDW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TGNAA66W.js → chunk-5DH5XCJL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2UETTHY6.js → chunk-IEFJ3ZEB.js} +29 -29
- package/dist/cli-bundle/chunks/{chunk-MTTKAUBX.js → chunk-JIFYOJF7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3TEF3HM5.js → chunk-MWIN6OH2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GNWPTEBW.js → chunk-NW6LV3TU.js} +64 -64
- package/dist/cli-bundle/chunks/{chunk-7SKMLSMX.js → chunk-OUGDA7NR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2MKLQL2E.js → chunk-QZCIBZR3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CMIEDWAY.js → chunk-SXMHPK4V.js} +41 -41
- package/dist/cli-bundle/chunks/{register-list-query-OMKJ5ONN.js → register-list-query-7C7DKZ2U.js} +11 -11
- package/dist/cli-bundle/chunks/{register-mutation-QBSNCOY3.js → register-mutation-OI4BJLUX.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-IIMA5OKO.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-GLQ5SYV3.js → register-setup-52H36QCB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-HVQ22RC4.js → chunk-2FEZ5SKM.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y3JJXRVK.js → chunk-4O4CJAR6.js} +5 -5
- package/dist/cli-bundle/focused-chunks/{chunk-RKOKG43G.js → chunk-APN4QN6R.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LYFWQMVC.js → chunk-BEVHCEWG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3UMBF26I.js → chunk-BMD42PUG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XXOWRJZ5.js → chunk-BPWJ4QM5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-G6PATS5E.js → chunk-EUTABA4M.js} +15 -15
- package/dist/cli-bundle/focused-chunks/{chunk-73EDXGYE.js → chunk-FOMZ6NG5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-JCOOAUHK.js +51 -0
- package/dist/cli-bundle/focused-chunks/chunk-JEFKLWMM.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-JZYPPMXF.js → chunk-KB5OFSFD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AD6ULRAF.js → chunk-QDFJIRKN.js} +4 -4
- package/dist/cli-bundle/focused-chunks/{chunk-THEPQMLX.js → chunk-SVXJYD6G.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3AVAWVZA.js → chunk-UN34D63M.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TDK3OCX3.js → chunk-VJ7EFMFL.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +29 -29
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +33 -33
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/schema/runtime-schema.d.ts +4 -0
- package/dist/core/schema/runtime-schema.js +60 -48
- package/dist/core/schema/status-defs-file.js +5 -2
- package/dist/mcp/legacy-adapter.d.ts +11 -2
- package/dist/mcp/legacy-adapter.js +26 -12
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +6 -2
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +12 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +3 -2
- package/dist/sdk/cli-contracts/tool-schema.js +11 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +14 -2
- package/dist/sdk/governance/health.js +17 -6
- package/dist/sdk/governance/status-role-diagnostics.d.ts +27 -0
- package/dist/sdk/governance/status-role-diagnostics.js +36 -0
- package/dist/sdk/governance/validate-normalization.d.ts +6 -0
- package/dist/sdk/governance/validate-normalization.js +37 -0
- package/dist/sdk/governance/validate.d.ts +1 -1
- package/dist/sdk/governance/validate.js +20 -35
- package/dist/sdk/governance/workspace-position.d.ts +69 -0
- package/dist/sdk/governance/workspace-position.js +164 -0
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/mcp/protocol.d.ts +10 -2
- package/dist/sdk/mcp/protocol.js +15 -4
- package/dist/sdk/query/context.js +11 -14
- package/dist/sdk/query/list.d.ts +2 -0
- package/dist/sdk/query/list.js +33 -12
- package/dist/sdk/runtime-extended-actions.js +8 -4
- package/dist/sdk/schema.js +12 -2
- package/dist/sdk/test/execution.d.ts +15 -0
- package/dist/sdk/test/execution.js +35 -27
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/AGENT_PROVENANCE_ADR.md +1 -1
- package/docs/AGENT_RUNTIME_PRIMITIVES.md +2 -2
- package/docs/CLAUDE_CODE_PLUGIN.md +3 -3
- package/docs/COMMANDS.md +12 -12
- package/docs/CONFIGURATION.md +1 -1
- package/docs/DEFECT_RECURRENCE.md +2 -0
- package/docs/MCP_2026_07_28.md +28 -8
- package/docs/MCP_2026_07_28_CONFORMANCE.md +1 -0
- package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +4 -2
- package/docs/ONBOARDING.md +1 -1
- package/docs/README.md +2 -1
- package/docs/READ_OUTPUT_CONTRACTS.md +1 -1
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
- package/docs/SDK.md +3 -3
- package/docs/TESTING.md +23 -14
- package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +113 -0
- package/docs/examples/policy-restricted-extension/README.md +2 -2
- package/docs/examples/starter-extension/README.md +1 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
- package/marketplace.json +2 -2
- package/package.json +3 -3
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +171 -10
- package/dist/cli-bundle/chunks/chunk-7X6OZEIV.js +0 -34
- package/dist/cli-bundle/chunks/register-operations-UC77FQZC.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AXZ5AJAF.js +0 -50
- package/dist/cli-bundle/focused-chunks/chunk-LLNTHF5X.js +0 -2
package/.agents/skills/README.md
CHANGED
|
@@ -15,7 +15,7 @@ pnpm build
|
|
|
15
15
|
```bash
|
|
16
16
|
pm context --limit 10
|
|
17
17
|
pm search "<keywords>" --limit 10
|
|
18
|
-
pm list
|
|
18
|
+
pm list --status open --limit 20
|
|
19
19
|
pm claim <ID>
|
|
20
20
|
pm update <ID> --status in_progress --description "..."
|
|
21
21
|
pm append <ID> --body "Implementation notes"
|
|
@@ -42,7 +42,7 @@ pm release <ID>
|
|
|
42
42
|
## Local Docs Routing
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
pm install guide-shell --project
|
|
45
|
+
pm package install guide-shell --project
|
|
46
46
|
pm guide workflows
|
|
47
47
|
pm guide commands --depth standard
|
|
48
48
|
pm guide release --json
|
|
@@ -22,7 +22,7 @@ Skipping this is the single most common cause of tracker merge conflicts.
|
|
|
22
22
|
- `pm claim <ID>` before substantial edits. A claim is a recorded lease, not a
|
|
23
23
|
lock file, and it survives branching.
|
|
24
24
|
- `pm release <ID>` when pausing, handing off, closing, or canceling.
|
|
25
|
-
- `pm list
|
|
25
|
+
- `pm list --status in_progress` shows what the fleet currently holds.
|
|
26
26
|
- Never force an ownership or lock override without explicit human approval.
|
|
27
27
|
|
|
28
28
|
Author identity is detected per invocation — harness, model, effort, role, and
|
|
@@ -81,5 +81,5 @@ pm next # ~2.5k tok — one actionable item with its context
|
|
|
81
81
|
pm contracts --summary # ~2.6k tok — the command surface with per-command ceilings
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
Prefer `pm next` over `pm list
|
|
84
|
+
Prefer `pm next` over `pm list --status open` when the goal is to start work: it applies
|
|
85
85
|
relevance ranking and returns a working set rather than a page of rows.
|
|
@@ -29,7 +29,7 @@ profiles over the same substrate.
|
|
|
29
29
|
Optional deep routing that never goes stale:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
pm install guide-shell --project
|
|
32
|
+
pm package install guide-shell --project
|
|
33
33
|
pm guide extensions
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -59,7 +59,7 @@ pm contracts --runtime-only --availability-only
|
|
|
59
59
|
pm package explore --project # inspect state first
|
|
60
60
|
pm package manage --detail summary
|
|
61
61
|
pm package doctor --detail deep
|
|
62
|
-
pm install <package> --project # then mutate
|
|
62
|
+
pm package install <package> --project # then mutate
|
|
63
63
|
pm contracts --command <extension-command> --flags-only
|
|
64
64
|
pm package doctor --detail deep # verify after
|
|
65
65
|
```
|
|
@@ -74,7 +74,7 @@ moment the package publishes.
|
|
|
74
74
|
```bash
|
|
75
75
|
pm package init <name> # scaffold
|
|
76
76
|
# ...implement extensions/*.ts...
|
|
77
|
-
pm install <path-or-name> --project # install locally
|
|
77
|
+
pm package install <path-or-name> --project # install locally
|
|
78
78
|
pm package doctor --detail deep # activation diagnostics
|
|
79
79
|
pm contracts --command <your-command> --flags-only
|
|
80
80
|
pm <your-command> --help --json # the contract a consumer will read
|
|
@@ -29,7 +29,7 @@ integration should never import repository internals to get it.
|
|
|
29
29
|
Optional deep routing that never goes stale:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
pm install guide-shell --project
|
|
32
|
+
pm package install guide-shell --project
|
|
33
33
|
pm guide sdk
|
|
34
34
|
pm guide tokens --depth brief
|
|
35
35
|
```
|
|
@@ -28,7 +28,7 @@ agent can rebuild the full situation from it alone.
|
|
|
28
28
|
Optional deep routing that never goes stale:
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
pm install guide-shell --project
|
|
31
|
+
pm package install guide-shell --project
|
|
32
32
|
pm guide quickstart
|
|
33
33
|
pm guide commands --depth brief
|
|
34
34
|
```
|
|
@@ -47,7 +47,7 @@ pm guide commands --depth brief
|
|
|
47
47
|
```bash
|
|
48
48
|
pm context --limit 10
|
|
49
49
|
pm search "<request keywords>" --limit 10
|
|
50
|
-
pm list
|
|
50
|
+
pm list --status open --limit 20 --brief
|
|
51
51
|
# reuse if it exists; otherwise create with lineage
|
|
52
52
|
pm create --create-mode progressive \
|
|
53
53
|
--title "..." --description "..." --type Task --status open \
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
```bash
|
|
8
8
|
pm context --limit 10
|
|
9
9
|
pm search "<keywords>" --limit 10
|
|
10
|
-
pm list
|
|
11
|
-
pm list
|
|
10
|
+
pm list --status open --limit 20
|
|
11
|
+
pm list --status in_progress --limit 20
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
2. If existing item matches, reuse and update it.
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
|
|
9
|
-
"version": "2026.8.
|
|
9
|
+
"version": "2026.8.31"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "pm-claude",
|
|
14
14
|
"source": "./plugins/pm-claude",
|
|
15
15
|
"description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.",
|
|
16
|
-
"version": "2026.8.
|
|
16
|
+
"version": "2026.8.31",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "unbrained",
|
|
19
19
|
"url": "https://github.com/unbraind/pm-cli"
|
package/AGENTS.md
CHANGED
|
@@ -19,7 +19,7 @@ Use runtime contracts for exact flags because packages and settings can change t
|
|
|
19
19
|
```bash
|
|
20
20
|
pm <command> --help --json
|
|
21
21
|
pm contracts --command <command> --flags-only --json
|
|
22
|
-
pm install guide-shell --project
|
|
22
|
+
pm package install guide-shell --project
|
|
23
23
|
pm guide <topic>
|
|
24
24
|
```
|
|
25
25
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.8.31 - 2026-08-31
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Workspace position read: one bounded answer to where this workspace stands in the branch-and-merge workflow and what to run next, replacing a protocol the agent must remember ([pm-bq0ii8](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-bq0ii8.toon))
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Custom statuses registered without a lifecycle role are silently orphaned from every work-selection surface ([pm-0mhspz](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-0mhspz.toon))
|
|
12
|
+
- GH-1158: Windows Node 24 nightly receipt fixture derives a root-relative expectation from a drive-qualified path ([pm-46hpx8](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-46hpx8.toon))
|
|
13
|
+
- GH-1154: linked-test sandbox guard is command-shape inconsistent and undocumented ([pm-s8cth5](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-s8cth5.toon))
|
|
14
|
+
- The local preflight token-budget gate is red on a workstation and green in hosted CI for the same commit again, because the earlier remediation closed the one ambient channel that had bitten instead of closing the fixture's environment ([pm-4o7tlx](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-4o7tlx.toon))
|
|
15
|
+
- The bounded legacy MCP compatibility set stops one revision short of the spec's own legacy boundary, so every current host is refused at initialize and the dual-era guarantee is unmet ([pm-edywqn](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-edywqn.toon))
|
|
16
|
+
|
|
17
|
+
### Deprecated
|
|
18
|
+
|
|
19
|
+
- The project's own agent-facing documentation and skills instruct deprecated command spellings, so the alias-usage signal that decides when a spelling can be retired is manufactured by the instructions rather than observed from callers ([pm-q2n4vd](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-q2n4vd.toon))
|
|
20
|
+
|
|
3
21
|
## 2026.8.30 - 2026-08-30
|
|
4
22
|
|
|
5
23
|
### Other
|
|
@@ -1,11 +1,11 @@
|
|
|
1
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]="
|
|
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]="1c6a0524-a8eb-5a20-b395-b488249c4e83")}catch(e){}}();
|
|
3
3
|
import { EXIT_CODE, PmCliError, readSettings, renderRowsAsCsv, renderRowsAsTable, resolvePmRoot, } from "../sdk/runtime-primitives.js";
|
|
4
4
|
import { renderPmCommandAliasMigrationHint, resolvePmCommandAlias, } from "../sdk/cli-contracts.js";
|
|
5
5
|
import { EVAL_QUERY_SET_SCHEMA_ID } from "../sdk/eval.js";
|
|
6
6
|
import { applyContextIntentProjection } from "../sdk/context-intent-contracts.js";
|
|
7
7
|
import { renderPmClosedDomainHelp } from "../sdk/agent/closed-domain-contracts.js";
|
|
8
|
-
import { serializeNdjsonRows, serializeNdjsonStream
|
|
8
|
+
import { serializeNdjsonRows, serializeNdjsonStream } from "../sdk/output.js";
|
|
9
9
|
import { listMutationEvents, subscribeMutationEventBatches, subscribeMutationEvents, } from "../sdk/mutation-events.js";
|
|
10
10
|
import { runActivity } from "./commands/activity.js";
|
|
11
11
|
import { runAggregate } from "./commands/aggregate.js";
|
|
@@ -169,6 +169,22 @@ async function runRegisteredListCommand(params) {
|
|
|
169
169
|
}
|
|
170
170
|
const intentOptions = applyContextIntentProjection("list", params.options);
|
|
171
171
|
const listOptions = normalizeListOptions(intentOptions);
|
|
172
|
+
const selection = resolveRegisteredListSelection(params, listOptions);
|
|
173
|
+
const { effectiveName, effectiveStatus, effectiveDependencyBlocked, effectiveExcludeTerminal, } = selection;
|
|
174
|
+
applyDefaultListProjection(listOptions, effectiveName);
|
|
175
|
+
Object.assign(listOptions, { projectionCommand: effectiveName });
|
|
176
|
+
if (effectiveExcludeTerminal)
|
|
177
|
+
listOptions.excludeTerminal = true;
|
|
178
|
+
listOptions.dependencyBlocked = effectiveDependencyBlocked;
|
|
179
|
+
const output = resolveRegisteredListOutputContext(intentOptions, globalOptions);
|
|
180
|
+
const result = await runList(effectiveDependencyBlocked ? undefined : effectiveStatus, listOptions, globalOptions);
|
|
181
|
+
renderRegisteredListResult("list", result, output);
|
|
182
|
+
if (globalOptions.profile) {
|
|
183
|
+
printError(`profile:command=list took_ms=${Date.now() - startedAt}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/** Resolve aliases and lifecycle buckets into one SDK list selection. */
|
|
187
|
+
function resolveRegisteredListSelection(params, listOptions) {
|
|
172
188
|
let effectiveName = params.name;
|
|
173
189
|
let effectiveStatus = params.status;
|
|
174
190
|
let effectiveDependencyBlocked = params.dependencyBlocked === true;
|
|
@@ -183,7 +199,8 @@ async function runRegisteredListCommand(params) {
|
|
|
183
199
|
effectiveExcludeTerminal = false;
|
|
184
200
|
listOptions.status = undefined;
|
|
185
201
|
}
|
|
186
|
-
else if (requestedStatus !== undefined &&
|
|
202
|
+
else if (requestedStatus !== undefined &&
|
|
203
|
+
requestedVariant !== undefined) {
|
|
187
204
|
effectiveName = requestedVariant.name;
|
|
188
205
|
effectiveStatus = requestedStatus;
|
|
189
206
|
effectiveDependencyBlocked = requestedVariant.dependencyBlocked;
|
|
@@ -191,17 +208,17 @@ async function runRegisteredListCommand(params) {
|
|
|
191
208
|
listOptions.status = undefined;
|
|
192
209
|
}
|
|
193
210
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
listOptions.dependencyBlocked = effectiveDependencyBlocked;
|
|
199
|
-
const output = resolveRegisteredListOutputContext(intentOptions, globalOptions);
|
|
200
|
-
const result = await runList(effectiveDependencyBlocked ? undefined : effectiveStatus, listOptions, globalOptions);
|
|
201
|
-
renderRegisteredListResult("list", result, output);
|
|
202
|
-
if (globalOptions.profile) {
|
|
203
|
-
printError(`profile:command=list took_ms=${Date.now() - startedAt}`);
|
|
211
|
+
if (effectiveName === "list-open" || effectiveName === "list-in-progress") {
|
|
212
|
+
listOptions.lifecycleBucket =
|
|
213
|
+
effectiveName === "list-open" ? "open" : "in_progress";
|
|
214
|
+
effectiveStatus = undefined;
|
|
204
215
|
}
|
|
216
|
+
return {
|
|
217
|
+
effectiveName,
|
|
218
|
+
effectiveStatus,
|
|
219
|
+
effectiveDependencyBlocked,
|
|
220
|
+
effectiveExcludeTerminal,
|
|
221
|
+
};
|
|
205
222
|
}
|
|
206
223
|
function registerListCommand(program, descriptor) {
|
|
207
224
|
const { name, description, status, excludeTerminal, allowStatusFilter, dependencyBlocked, aliasContract, } = descriptor;
|
|
@@ -465,9 +482,7 @@ function buildMutationEventOptions(options, pmRoot) {
|
|
|
465
482
|
limit: typeof options.limit === "string" ? Number(options.limit) : undefined,
|
|
466
483
|
full: options.full === true,
|
|
467
484
|
...(options.provenance === true ? { provenance: true } : {}),
|
|
468
|
-
...(options.provenanceSummary === true
|
|
469
|
-
? { provenanceSummary: true }
|
|
470
|
-
: {}),
|
|
485
|
+
...(options.provenanceSummary === true ? { provenanceSummary: true } : {}),
|
|
471
486
|
...(harness === undefined ? {} : { harness }),
|
|
472
487
|
...(agentInstance === undefined ? {} : { agentInstance }),
|
|
473
488
|
...(provenanceFilter === undefined ? {} : { provenanceFilter }),
|
|
@@ -924,4 +939,4 @@ export const _testOnlyRegisterListQuery = {
|
|
|
924
939
|
parseListFormat,
|
|
925
940
|
};
|
|
926
941
|
//# sourceMappingURL=register-list-query.js.map
|
|
927
|
-
//# debugId=
|
|
942
|
+
//# debugId=1c6a0524-a8eb-5a20-b395-b488249c4e83
|
|
@@ -53,6 +53,7 @@ declare function buildRunTestOptions(options: Record<string, unknown>, values: {
|
|
|
53
53
|
export declare const _testOnlyRegisterOperations: {
|
|
54
54
|
buildRunTestOptions: typeof buildRunTestOptions;
|
|
55
55
|
buildRunTestAllOptions: typeof buildRunTestAllOptions;
|
|
56
|
+
runWorkspacePositionAction: typeof runWorkspacePositionAction;
|
|
56
57
|
validateBackgroundTestOptions: typeof validateBackgroundTestOptions;
|
|
57
58
|
};
|
|
58
59
|
declare function buildRunTestAllOptions(options: Record<string, unknown>): {
|
|
@@ -76,6 +77,7 @@ declare function buildRunTestAllOptions(options: Record<string, unknown>): {
|
|
|
76
77
|
checkContext: boolean;
|
|
77
78
|
autoPmContext: boolean;
|
|
78
79
|
};
|
|
80
|
+
declare function runWorkspacePositionAction(_options: Record<string, unknown>, command: Command): Promise<void>;
|
|
79
81
|
/** Enforces the claim target XOR selection contract before dispatch. */
|
|
80
82
|
export declare function requireClaimTarget(id: string | undefined, next: boolean): void;
|
|
81
83
|
/** Implements register operation commands for the public runtime surface of this module. */
|
|
@@ -1,9 +1,10 @@
|
|
|
1
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]="
|
|
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]="ecf75f5d-6345-5487-b7e4-1bd8f97326fd")}catch(e){}}();
|
|
3
3
|
import { resolveRuntimeStatusRegistry, setActiveCommandResult, EXIT_CODE, PmCliError, createUnknownSubcommandError, resolveAuthor, resolvePmRoot, readSettings, } from "../sdk/runtime-primitives.js";
|
|
4
4
|
import { resolveStartTaskInProgressStatus } from "../sdk/start-task-status.js";
|
|
5
5
|
import { parseStatsAnalyticsJson } from "./stats-analytics-json.js";
|
|
6
6
|
import { createWorkspaceSnapshot, deleteWorkspaceSnapshot, inspectWorkspaceSnapshot, listWorkspaceSnapshots, planWorkspaceSnapshotRestore, restoreWorkspaceSnapshotWithRecovery, WORKSPACE_SNAPSHOT_ACTIONS, } from "../sdk/workspace-snapshot.js";
|
|
7
|
+
import { readWorkspacePosition } from "../sdk/governance/workspace-position.js";
|
|
7
8
|
import { runClaim, runClaimNext, runRelease } from "./commands/claim.js";
|
|
8
9
|
import { runClose } from "./commands/close.js";
|
|
9
10
|
import { runContracts } from "./commands/contracts.js";
|
|
@@ -141,6 +142,7 @@ function buildRunTestOptions(options, values) {
|
|
|
141
142
|
export const _testOnlyRegisterOperations = {
|
|
142
143
|
buildRunTestOptions,
|
|
143
144
|
buildRunTestAllOptions,
|
|
145
|
+
runWorkspacePositionAction,
|
|
144
146
|
validateBackgroundTestOptions,
|
|
145
147
|
};
|
|
146
148
|
async function runForegroundLinkedTests(id, options, globalOptions, values) {
|
|
@@ -308,7 +310,7 @@ async function runHealthAction(options, command) {
|
|
|
308
310
|
const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
|
|
309
311
|
const result = await runHealth(globalOptions, {
|
|
310
312
|
strictDirectories: Boolean(options.strictDirectories),
|
|
311
|
-
requireMergeDrivers: Boolean(options.requireMergeDrivers),
|
|
313
|
+
requireMergeDrivers: Boolean(options.requireMergeDrivers) || strictExit,
|
|
312
314
|
checkOnly: Boolean(options.checkOnly),
|
|
313
315
|
checkTelemetry: Boolean(options.checkTelemetry),
|
|
314
316
|
noRefresh: Boolean(options.noRefresh),
|
|
@@ -446,6 +448,10 @@ async function runWorkspaceSnapshotAction(action, target, options, command) {
|
|
|
446
448
|
}
|
|
447
449
|
printResult(await deleteWorkspaceSnapshot(pmRoot, target), globalOptions);
|
|
448
450
|
}
|
|
451
|
+
async function runWorkspacePositionAction(_options, command) {
|
|
452
|
+
const globalOptions = getGlobalOptions(command);
|
|
453
|
+
printResult(await readWorkspacePosition(globalOptions), globalOptions);
|
|
454
|
+
}
|
|
449
455
|
async function runContractsAction(options, command) {
|
|
450
456
|
const globalOptions = getGlobalOptions(command);
|
|
451
457
|
const startedAt = Date.now();
|
|
@@ -595,8 +601,8 @@ export function registerOperationCommands(program) {
|
|
|
595
601
|
const testCommand = program
|
|
596
602
|
.command("test")
|
|
597
603
|
.argument("<id>", "Item id")
|
|
598
|
-
.option("--add <value>", "Add
|
|
599
|
-
.option("--add-json <value>", "Add
|
|
604
|
+
.option("--add <value>", "Add verified isolated test (CSV/markdown or stdin)", collect)
|
|
605
|
+
.option("--add-json <value>", "Add verified isolated test (JSON object/array or stdin)", collect)
|
|
600
606
|
.option("--remove <value>", "Remove linked test entry by exact command/path (command=<value> and path=<value> preserve commas and equals signs; or - for stdin)", collect)
|
|
601
607
|
.option("--remove-index <n>", "Remove the 1-based linked-test index from --list order (repeatable)", collect)
|
|
602
608
|
.option("--list", "List linked tests without mutating")
|
|
@@ -712,13 +718,18 @@ export function registerOperationCommands(program) {
|
|
|
712
718
|
.option("--scope <value>", "Limit cleanup to one or more scopes (comma-separated or repeatable): index, embeddings, runtime, locks, checkpoints, transactions", collect)
|
|
713
719
|
.description("Delete optional cache artifacts by default (including expired lock debris) and show a summary.")
|
|
714
720
|
.action(runGcAction);
|
|
715
|
-
program
|
|
721
|
+
const workspaceCommand = program
|
|
716
722
|
.command("workspace")
|
|
717
|
-
.description("
|
|
723
|
+
.description("Inspect workspace state and snapshots.");
|
|
724
|
+
workspaceCommand
|
|
725
|
+
.command("position")
|
|
726
|
+
.description("Show merge and history readiness.")
|
|
727
|
+
.action(runWorkspacePositionAction);
|
|
728
|
+
workspaceCommand
|
|
718
729
|
.command("snapshot")
|
|
719
|
-
.argument("<action>", "
|
|
730
|
+
.argument("<action>", "Action: create, list, inspect, restore, delete")
|
|
720
731
|
.argument("[target]", "Optional name for create; name or fingerprint otherwise")
|
|
721
|
-
.description("
|
|
732
|
+
.description("Manage content-addressed tracker snapshots.")
|
|
722
733
|
.option("--dry-run", "Preview restore file, item, stream, and history-entry impact without mutating state")
|
|
723
734
|
.option("--force", "Explicitly confirm a whole-workspace snapshot restore")
|
|
724
735
|
.option("--author <value>", "Actor recorded on the restore audit event")
|
|
@@ -898,4 +909,4 @@ function registerSchedulingShortcutCommands(program) {
|
|
|
898
909
|
});
|
|
899
910
|
}
|
|
900
911
|
//# sourceMappingURL=register-operations.js.map
|
|
901
|
-
//# debugId=
|
|
912
|
+
//# debugId=ecf75f5d-6345-5487-b7e4-1bd8f97326fd
|