@unbrained/pm-cli 2026.5.18 → 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/CHANGELOG.md +60 -0
- package/README.md +2 -1
- package/dist/cli/commander-usage.js +16 -2
- package/dist/cli/commander-usage.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 +3 -7
- package/dist/cli/commands/append.js.map +1 -1
- package/dist/cli/commands/calendar.js +3 -6
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/claim.js +12 -22
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.js +61 -9
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments.d.ts +5 -0
- package/dist/cli/commands/comments.js +27 -117
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.js +102 -15
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/context.js +4 -10
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +168 -36
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.js +49 -44
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/dedupe-audit.js +7 -4
- 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 +9 -8
- package/dist/cli/commands/delete.js.map +1 -1
- package/dist/cli/commands/docs.d.ts +1 -0
- package/dist/cli/commands/docs.js +4 -8
- 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 +1 -0
- package/dist/cli/commands/extension.js +138 -21
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/files.js +6 -13
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/gc.js +17 -4
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/get.d.ts +3 -2
- package/dist/cli/commands/get.js +50 -8
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/health.d.ts +10 -0
- package/dist/cli/commands/health.js +254 -75
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-redact.d.ts +8 -0
- package/dist/cli/commands/history-redact.js +14 -97
- package/dist/cli/commands/history-redact.js.map +1 -1
- 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 -4
- package/dist/cli/commands/history.js +10 -88
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -1
- package/dist/cli/commands/index.js +5 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +28 -0
- package/dist/cli/commands/init.js +23 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learnings.js +20 -119
- 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.js +32 -22
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/notes.js +20 -119
- package/dist/cli/commands/notes.js.map +1 -1
- package/dist/cli/commands/plan.d.ts +3 -0
- package/dist/cli/commands/plan.js +184 -22
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/restore.js +7 -50
- 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 +151 -40
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/templates.d.ts +4 -0
- package/dist/cli/commands/templates.js +89 -17
- package/dist/cli/commands/templates.js.map +1 -1
- package/dist/cli/commands/test-all.js +4 -8
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test.d.ts +1 -0
- package/dist/cli/commands/test.js +7 -10
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.js +4 -8
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.js +109 -51
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +3 -1
- package/dist/cli/commands/validate.js +23 -71
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.js +96 -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 +2 -13
- 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 +106 -7
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/help-content.d.ts +0 -1
- package/dist/cli/help-content.js +13 -9
- 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 +33 -3
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +35 -29
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.d.ts +1 -1
- package/dist/cli/register-list-query.js +40 -17
- 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 +232 -64
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +16 -11
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +26 -14
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +0 -2
- package/dist/cli/registration-helpers.js +13 -40
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli.js +23 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/extensions/index.d.ts +0 -1
- package/dist/core/extensions/index.js +2 -14
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.js +3 -9
- package/dist/core/extensions/loader.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/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/item-format.js +11 -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/parse.js +3 -2
- 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/status.d.ts +14 -1
- package/dist/core/item/status.js +22 -2
- 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 +13 -84
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/packages/manifest.js +3 -9
- package/dist/core/packages/manifest.js.map +1 -1
- 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-schema.d.ts +2 -1
- package/dist/core/schema/runtime-schema.js +11 -9
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/search/semantic-defaults.js +3 -3
- package/dist/core/search/semantic-defaults.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/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/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/text-normalization.d.ts +0 -1
- package/dist/core/shared/text-normalization.js +2 -5
- package/dist/core/shared/text-normalization.js.map +1 -1
- package/dist/core/store/item-store.d.ts +2 -0
- package/dist/core/store/item-store.js +70 -39
- package/dist/core/store/item-store.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 +6 -343
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/runtime.js +5 -3
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.js +64 -13
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +9 -2
- package/dist/sdk/cli-contracts.js +204 -13
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/runtime.d.ts +25 -1
- package/dist/sdk/runtime.js +46 -3
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.js +10 -2
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +7 -1
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/COMMANDS.md +39 -6
- package/docs/CONFIGURATION.md +1 -1
- package/docs/RELEASING.md +11 -7
- package/docs/SDK.md +11 -2
- package/package.json +12 -11
- package/packages/pm-calendar/README.md +3 -1
- package/packages/pm-calendar/extensions/calendar/index.js +21 -2
- package/packages/pm-calendar/extensions/calendar/index.ts +21 -2
- 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 +74 -0
- 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-templates/extensions/templates/runtime.js +11 -202
- package/packages/pm-templates/extensions/templates/runtime.ts +38 -230
- package/dist/core/output/command-aware.d.ts +0 -1
- package/dist/core/output/command-aware.js +0 -397
- package/dist/core/output/command-aware.js.map +0 -1
|
@@ -1,397 +0,0 @@
|
|
|
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]="e0e3f31e-a8a7-51a9-adf9-3ed3fdff8012")}catch(e){}}();
|
|
3
|
-
function asRecord(value) {
|
|
4
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
5
|
-
return null;
|
|
6
|
-
}
|
|
7
|
-
return value;
|
|
8
|
-
}
|
|
9
|
-
function toItemId(result) {
|
|
10
|
-
const record = asRecord(result);
|
|
11
|
-
if (!record) {
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
|
-
const directId = typeof record.id === "string" ? record.id.trim() : "";
|
|
15
|
-
if (directId.length > 0) {
|
|
16
|
-
return directId;
|
|
17
|
-
}
|
|
18
|
-
const item = asRecord(record.item);
|
|
19
|
-
const nestedId = item && typeof item.id === "string" ? item.id.trim() : "";
|
|
20
|
-
return nestedId.length > 0 ? nestedId : null;
|
|
21
|
-
}
|
|
22
|
-
function toCount(record, key) {
|
|
23
|
-
const value = record[key];
|
|
24
|
-
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
25
|
-
}
|
|
26
|
-
function fallbackSummary(command) {
|
|
27
|
-
return `Executed ${command} successfully.`;
|
|
28
|
-
}
|
|
29
|
-
function resolveSummary(command, result) {
|
|
30
|
-
const record = asRecord(result);
|
|
31
|
-
if (!record) {
|
|
32
|
-
return fallbackSummary(command);
|
|
33
|
-
}
|
|
34
|
-
const itemId = toItemId(result);
|
|
35
|
-
switch (command) {
|
|
36
|
-
case "create":
|
|
37
|
-
return itemId ? `Created item ${itemId}.` : "Created item.";
|
|
38
|
-
case "update":
|
|
39
|
-
return itemId ? `Updated item ${itemId}.` : "Updated item.";
|
|
40
|
-
case "close":
|
|
41
|
-
return itemId ? `Closed item ${itemId}.` : "Closed item.";
|
|
42
|
-
case "delete":
|
|
43
|
-
return itemId ? `Deleted item ${itemId}.` : "Deleted item.";
|
|
44
|
-
case "append":
|
|
45
|
-
return itemId ? `Appended body content for ${itemId}.` : "Appended body content.";
|
|
46
|
-
case "claim":
|
|
47
|
-
return itemId ? `Claimed item ${itemId}.` : "Claimed item.";
|
|
48
|
-
case "release":
|
|
49
|
-
return itemId ? `Released claim for ${itemId}.` : "Released claim.";
|
|
50
|
-
case "get":
|
|
51
|
-
return itemId ? `Loaded item ${itemId}.` : "Loaded item details.";
|
|
52
|
-
case "history":
|
|
53
|
-
return itemId ? `Loaded history for ${itemId}.` : "Loaded item history.";
|
|
54
|
-
case "comments":
|
|
55
|
-
return itemId ? `Loaded comments for ${itemId}.` : "Loaded comments.";
|
|
56
|
-
case "notes":
|
|
57
|
-
return itemId ? `Loaded notes for ${itemId}.` : "Loaded notes.";
|
|
58
|
-
case "learnings":
|
|
59
|
-
return itemId ? `Loaded learnings for ${itemId}.` : "Loaded learnings.";
|
|
60
|
-
case "files":
|
|
61
|
-
return itemId ? `Updated linked files for ${itemId}.` : "Updated linked files.";
|
|
62
|
-
case "docs":
|
|
63
|
-
return itemId ? `Updated linked docs for ${itemId}.` : "Updated linked docs.";
|
|
64
|
-
case "test":
|
|
65
|
-
if ("started" in record && "run" in record) {
|
|
66
|
-
const run = asRecord(record.run);
|
|
67
|
-
const runId = run && typeof run.id === "string" ? run.id : null;
|
|
68
|
-
const started = record.started === true;
|
|
69
|
-
if (started) {
|
|
70
|
-
return runId ? `Started background test run ${runId} for ${itemId ?? "item tests"}.` : "Started background test run.";
|
|
71
|
-
}
|
|
72
|
-
return runId ? `Reused active background test run ${runId}.` : "Background test run already active.";
|
|
73
|
-
}
|
|
74
|
-
return itemId ? `Processed linked tests for ${itemId}.` : "Processed linked tests.";
|
|
75
|
-
case "test-all": {
|
|
76
|
-
if ("started" in record && "run" in record) {
|
|
77
|
-
const run = asRecord(record.run);
|
|
78
|
-
const runId = run && typeof run.id === "string" ? run.id : null;
|
|
79
|
-
const started = record.started === true;
|
|
80
|
-
if (started) {
|
|
81
|
-
return runId ? `Started background test-all run ${runId}.` : "Started background test-all run.";
|
|
82
|
-
}
|
|
83
|
-
return runId ? `Reused active background run ${runId}.` : "Background test-all run already active.";
|
|
84
|
-
}
|
|
85
|
-
const failed = toCount(record, "failed");
|
|
86
|
-
if (failed !== null) {
|
|
87
|
-
return failed > 0 ? `Finished test-all with ${failed} failing result group(s).` : "Finished test-all with no failures.";
|
|
88
|
-
}
|
|
89
|
-
return "Finished test-all run.";
|
|
90
|
-
}
|
|
91
|
-
case "test-runs list": {
|
|
92
|
-
const count = toCount(record, "count");
|
|
93
|
-
return count !== null ? `Listed ${count} background test run(s).` : "Listed background test runs.";
|
|
94
|
-
}
|
|
95
|
-
case "test-runs status": {
|
|
96
|
-
const run = asRecord(record.run);
|
|
97
|
-
const runId = run && typeof run.id === "string" ? run.id : null;
|
|
98
|
-
return runId ? `Loaded background run status for ${runId}.` : "Loaded background run status.";
|
|
99
|
-
}
|
|
100
|
-
case "test-runs logs":
|
|
101
|
-
return "Loaded background run logs.";
|
|
102
|
-
case "test-runs stop":
|
|
103
|
-
return "Requested stop for background test run.";
|
|
104
|
-
case "test-runs resume":
|
|
105
|
-
return "Started resumed background test run.";
|
|
106
|
-
case "list":
|
|
107
|
-
case "list-all":
|
|
108
|
-
case "list-draft":
|
|
109
|
-
case "list-open":
|
|
110
|
-
case "list-in-progress":
|
|
111
|
-
case "list-blocked":
|
|
112
|
-
case "list-closed":
|
|
113
|
-
case "list-canceled": {
|
|
114
|
-
const count = toCount(record, "count");
|
|
115
|
-
return count !== null ? `Returned ${count} item(s).` : "Returned list results.";
|
|
116
|
-
}
|
|
117
|
-
case "search": {
|
|
118
|
-
const count = toCount(record, "count");
|
|
119
|
-
const mode = typeof record.mode === "string" ? record.mode : "keyword";
|
|
120
|
-
return count !== null ? `Search returned ${count} item(s) in ${mode} mode.` : `Search completed in ${mode} mode.`;
|
|
121
|
-
}
|
|
122
|
-
case "reindex": {
|
|
123
|
-
const mode = typeof record.mode === "string" ? record.mode : "keyword";
|
|
124
|
-
const total = toCount(record, "total_items");
|
|
125
|
-
return total !== null ? `Reindexed ${total} item(s) in ${mode} mode.` : `Reindex completed in ${mode} mode.`;
|
|
126
|
-
}
|
|
127
|
-
case "calendar": {
|
|
128
|
-
const view = typeof record.view === "string" ? record.view : "agenda";
|
|
129
|
-
const summary = asRecord(record.summary);
|
|
130
|
-
const total = summary && typeof summary.events === "number" ? summary.events : null;
|
|
131
|
-
return total !== null ? `Calendar ${view} view returned ${total} event(s).` : `Calendar ${view} view completed.`;
|
|
132
|
-
}
|
|
133
|
-
case "activity": {
|
|
134
|
-
const count = toCount(record, "count");
|
|
135
|
-
return count !== null ? `Returned ${count} activity entry(ies).` : "Loaded activity stream.";
|
|
136
|
-
}
|
|
137
|
-
case "stats":
|
|
138
|
-
return "Loaded tracker statistics.";
|
|
139
|
-
case "health":
|
|
140
|
-
return "Loaded tracker health diagnostics.";
|
|
141
|
-
case "gc":
|
|
142
|
-
return "Garbage collection summary completed.";
|
|
143
|
-
case "config":
|
|
144
|
-
return "Config command completed.";
|
|
145
|
-
case "init":
|
|
146
|
-
return "Tracker initialization completed.";
|
|
147
|
-
case "restore":
|
|
148
|
-
return itemId ? `Restored item ${itemId}.` : "Restore command completed.";
|
|
149
|
-
case "completion":
|
|
150
|
-
return "Generated completion script.";
|
|
151
|
-
default:
|
|
152
|
-
return fallbackSummary(command);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
function resolveHighlights(command, result) {
|
|
156
|
-
const record = asRecord(result);
|
|
157
|
-
if (!record) {
|
|
158
|
-
return [];
|
|
159
|
-
}
|
|
160
|
-
const highlights = [];
|
|
161
|
-
const itemId = toItemId(result);
|
|
162
|
-
if (itemId) {
|
|
163
|
-
highlights.push(`item_id=${itemId}`);
|
|
164
|
-
}
|
|
165
|
-
const changedFields = Array.isArray(record.changed_fields) ? record.changed_fields.length : null;
|
|
166
|
-
if (changedFields !== null) {
|
|
167
|
-
highlights.push(`changed_fields=${changedFields}`);
|
|
168
|
-
}
|
|
169
|
-
if (command.startsWith("list")) {
|
|
170
|
-
const count = toCount(record, "count");
|
|
171
|
-
if (count !== null) {
|
|
172
|
-
highlights.push(`count=${count}`);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
if (command === "search") {
|
|
176
|
-
if (typeof record.mode === "string") {
|
|
177
|
-
highlights.push(`mode=${record.mode}`);
|
|
178
|
-
}
|
|
179
|
-
const count = toCount(record, "count");
|
|
180
|
-
if (count !== null) {
|
|
181
|
-
highlights.push(`count=${count}`);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
if (command === "reindex") {
|
|
185
|
-
if (typeof record.mode === "string") {
|
|
186
|
-
highlights.push(`mode=${record.mode}`);
|
|
187
|
-
}
|
|
188
|
-
const totalItems = toCount(record, "total_items");
|
|
189
|
-
if (totalItems !== null) {
|
|
190
|
-
highlights.push(`total_items=${totalItems}`);
|
|
191
|
-
}
|
|
192
|
-
const warnings = Array.isArray(record.warnings) ? record.warnings.length : null;
|
|
193
|
-
if (warnings !== null) {
|
|
194
|
-
highlights.push(`warnings=${warnings}`);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (command === "test-all") {
|
|
198
|
-
if ("started" in record && "run" in record) {
|
|
199
|
-
const run = asRecord(record.run);
|
|
200
|
-
if (typeof record.started === "boolean") {
|
|
201
|
-
highlights.push(`started=${record.started ? "true" : "false"}`);
|
|
202
|
-
}
|
|
203
|
-
if (run && typeof run.id === "string") {
|
|
204
|
-
highlights.push(`run_id=${run.id}`);
|
|
205
|
-
}
|
|
206
|
-
if (typeof record.duplicate_of === "string") {
|
|
207
|
-
highlights.push(`duplicate_of=${record.duplicate_of}`);
|
|
208
|
-
}
|
|
209
|
-
return highlights;
|
|
210
|
-
}
|
|
211
|
-
const failed = toCount(record, "failed");
|
|
212
|
-
const passed = toCount(record, "passed");
|
|
213
|
-
const skipped = toCount(record, "skipped");
|
|
214
|
-
if (failed !== null)
|
|
215
|
-
highlights.push(`failed=${failed}`);
|
|
216
|
-
if (passed !== null)
|
|
217
|
-
highlights.push(`passed=${passed}`);
|
|
218
|
-
if (skipped !== null)
|
|
219
|
-
highlights.push(`skipped=${skipped}`);
|
|
220
|
-
const totals = asRecord(record.totals);
|
|
221
|
-
const failureCategories = asRecord(totals?.failure_categories);
|
|
222
|
-
if (failureCategories) {
|
|
223
|
-
for (const key of Object.keys(failureCategories).sort((left, right) => left.localeCompare(right))) {
|
|
224
|
-
const value = failureCategories[key];
|
|
225
|
-
if (typeof value === "number" && Number.isFinite(value) && value > 0) {
|
|
226
|
-
highlights.push(`failed_${key}=${value}`);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
if (command === "test") {
|
|
232
|
-
if ("started" in record && "run" in record) {
|
|
233
|
-
const run = asRecord(record.run);
|
|
234
|
-
if (typeof record.started === "boolean") {
|
|
235
|
-
highlights.push(`started=${record.started ? "true" : "false"}`);
|
|
236
|
-
}
|
|
237
|
-
if (run && typeof run.id === "string") {
|
|
238
|
-
highlights.push(`run_id=${run.id}`);
|
|
239
|
-
}
|
|
240
|
-
if (typeof record.duplicate_of === "string") {
|
|
241
|
-
highlights.push(`duplicate_of=${record.duplicate_of}`);
|
|
242
|
-
}
|
|
243
|
-
return highlights;
|
|
244
|
-
}
|
|
245
|
-
const count = toCount(record, "count");
|
|
246
|
-
if (count !== null) {
|
|
247
|
-
highlights.push(`linked_tests=${count}`);
|
|
248
|
-
}
|
|
249
|
-
const runResults = Array.isArray(record.run_results) ? record.run_results.length : null;
|
|
250
|
-
if (runResults !== null) {
|
|
251
|
-
highlights.push(`run_results=${runResults}`);
|
|
252
|
-
}
|
|
253
|
-
const failureCategories = asRecord(record.failure_categories);
|
|
254
|
-
if (failureCategories) {
|
|
255
|
-
for (const key of Object.keys(failureCategories).sort((left, right) => left.localeCompare(right))) {
|
|
256
|
-
const value = failureCategories[key];
|
|
257
|
-
if (typeof value === "number" && Number.isFinite(value) && value > 0) {
|
|
258
|
-
highlights.push(`failed_${key}=${value}`);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
if (command === "calendar") {
|
|
264
|
-
const summary = asRecord(record.summary);
|
|
265
|
-
if (summary && typeof summary.events === "number") {
|
|
266
|
-
highlights.push(`events=${String(summary.events)}`);
|
|
267
|
-
}
|
|
268
|
-
if (summary && typeof summary.deadlines === "number") {
|
|
269
|
-
highlights.push(`deadlines=${String(summary.deadlines)}`);
|
|
270
|
-
}
|
|
271
|
-
if (summary && typeof summary.reminders === "number") {
|
|
272
|
-
highlights.push(`reminders=${String(summary.reminders)}`);
|
|
273
|
-
}
|
|
274
|
-
if (summary && typeof summary.scheduled === "number") {
|
|
275
|
-
highlights.push(`scheduled=${String(summary.scheduled)}`);
|
|
276
|
-
}
|
|
277
|
-
if (typeof record.view === "string") {
|
|
278
|
-
highlights.push(`view=${record.view}`);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
if (command === "get") {
|
|
282
|
-
const claimState = asRecord(record.claim_state);
|
|
283
|
-
if (claimState && typeof claimState.claimed === "boolean") {
|
|
284
|
-
highlights.push(`claimed=${claimState.claimed ? "true" : "false"}`);
|
|
285
|
-
}
|
|
286
|
-
if (claimState && typeof claimState.assignee === "string" && claimState.assignee.trim().length > 0) {
|
|
287
|
-
highlights.push(`assignee=${claimState.assignee.trim()}`);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
if (command.startsWith("test-runs")) {
|
|
291
|
-
const run = asRecord(record.run);
|
|
292
|
-
if (run && typeof run.id === "string") {
|
|
293
|
-
highlights.push(`run_id=${run.id}`);
|
|
294
|
-
}
|
|
295
|
-
const signalSent = typeof record.signal_sent === "string" ? record.signal_sent : null;
|
|
296
|
-
if (signalSent) {
|
|
297
|
-
highlights.push(`signal=${signalSent}`);
|
|
298
|
-
}
|
|
299
|
-
const health = asRecord(record.health);
|
|
300
|
-
if (health && typeof health.state === "string") {
|
|
301
|
-
highlights.push(`health=${health.state}`);
|
|
302
|
-
}
|
|
303
|
-
const count = toCount(record, "count");
|
|
304
|
-
if (count !== null) {
|
|
305
|
-
highlights.push(`count=${count}`);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
return highlights;
|
|
309
|
-
}
|
|
310
|
-
function resolveNextSteps(command, result) {
|
|
311
|
-
const record = asRecord(result);
|
|
312
|
-
const itemId = toItemId(result) ?? "pm-<id>";
|
|
313
|
-
switch (command) {
|
|
314
|
-
case "create":
|
|
315
|
-
return [
|
|
316
|
-
`pm files ${itemId} --add "path=<file>,scope=project,note=<context>"`,
|
|
317
|
-
`pm test ${itemId} --add "command=node scripts/run-tests.mjs test,scope=project,timeout_seconds=240"`,
|
|
318
|
-
`pm update ${itemId} --status in_progress --message "Start implementation"`,
|
|
319
|
-
];
|
|
320
|
-
case "update":
|
|
321
|
-
return [
|
|
322
|
-
`pm get ${itemId}`,
|
|
323
|
-
`pm comments ${itemId} --add "Progress update"`,
|
|
324
|
-
`pm notes ${itemId} --add "Implementation note"`,
|
|
325
|
-
];
|
|
326
|
-
case "close":
|
|
327
|
-
return [`pm release ${itemId}`, `pm history ${itemId} --limit 10`];
|
|
328
|
-
case "delete":
|
|
329
|
-
return ["pm list-all --limit 20", "pm activity --limit 20"];
|
|
330
|
-
case "claim":
|
|
331
|
-
return [`pm update ${itemId} --status in_progress --message "Start work"`];
|
|
332
|
-
case "release":
|
|
333
|
-
return ["pm list-in-progress --limit 20"];
|
|
334
|
-
case "list":
|
|
335
|
-
case "list-open":
|
|
336
|
-
case "list-in-progress":
|
|
337
|
-
case "list-blocked":
|
|
338
|
-
case "list-all":
|
|
339
|
-
return ["pm get <id>", "pm history <id> --limit 20", "pm update <id> --status in_progress --message \"...\""];
|
|
340
|
-
case "search":
|
|
341
|
-
return ['pm get <id>', 'pm search "<query>" --mode hybrid --include-linked'];
|
|
342
|
-
case "reindex":
|
|
343
|
-
return ['pm search "<query>" --mode hybrid --limit 10'];
|
|
344
|
-
case "test":
|
|
345
|
-
return [`pm test ${itemId} --run --background`, "pm test-runs list --limit 10", "node scripts/run-tests.mjs coverage"];
|
|
346
|
-
case "test-all":
|
|
347
|
-
return ["pm test-all --status in_progress --background", "pm test-runs list --status running", "node scripts/run-tests.mjs coverage"];
|
|
348
|
-
case "test-runs list":
|
|
349
|
-
return ["pm test-runs status <runId>", "pm test-runs logs <runId> --stream stderr --tail 200"];
|
|
350
|
-
case "test-runs status":
|
|
351
|
-
return ["pm test-runs logs <runId> --tail 200", "pm test-runs stop <runId>"];
|
|
352
|
-
case "test-runs stop":
|
|
353
|
-
return ["pm test-runs status <runId>", "pm test-runs resume <runId>"];
|
|
354
|
-
case "test-runs resume":
|
|
355
|
-
return ["pm test-runs status <runId>", "pm test-runs logs <runId> --tail 200"];
|
|
356
|
-
case "calendar":
|
|
357
|
-
return ["pm calendar --view agenda --from +0d --to +7d", "pm calendar --view month --format json"];
|
|
358
|
-
case "init":
|
|
359
|
-
return [
|
|
360
|
-
"pm init --preset minimal",
|
|
361
|
-
'pm create --title "Example" --description "..." --type Task --status open --priority 1 --message "Create initial item"',
|
|
362
|
-
];
|
|
363
|
-
case "config":
|
|
364
|
-
return ["pm config project get definition-of-done", "pm config project get item-format", "pm config project get test-result-tracking"];
|
|
365
|
-
case "get":
|
|
366
|
-
return [
|
|
367
|
-
...(record && asRecord(record.claim_state)?.claimed === true
|
|
368
|
-
? [`pm release ${itemId}`, `pm release ${itemId} --allow-audit-release --author "<auditor>"`]
|
|
369
|
-
: [`pm claim ${itemId}`]),
|
|
370
|
-
`pm history ${itemId} --limit 20`,
|
|
371
|
-
`pm comments ${itemId} --limit 10`,
|
|
372
|
-
`pm notes ${itemId} --limit 10`,
|
|
373
|
-
`pm learnings ${itemId} --limit 10`,
|
|
374
|
-
];
|
|
375
|
-
case "history":
|
|
376
|
-
return ["pm restore <id> <timestamp|version>", "pm activity --limit 20"];
|
|
377
|
-
case "activity":
|
|
378
|
-
return ["pm list-in-progress --limit 20", "pm list-blocked --limit 20"];
|
|
379
|
-
case "completion":
|
|
380
|
-
return ["pm completion bash", "pm completion zsh", "pm completion fish"];
|
|
381
|
-
default:
|
|
382
|
-
return [];
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
export function buildCommandAwareEnvelope(command, result) {
|
|
386
|
-
return {
|
|
387
|
-
summary: {
|
|
388
|
-
command,
|
|
389
|
-
message: resolveSummary(command, result),
|
|
390
|
-
},
|
|
391
|
-
highlights: resolveHighlights(command, result),
|
|
392
|
-
next_steps: resolveNextSteps(command, result),
|
|
393
|
-
result,
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
//# sourceMappingURL=command-aware.js.map
|
|
397
|
-
//# debugId=e0e3f31e-a8a7-51a9-adf9-3ed3fdff8012
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-aware.js","sources":["core/output/command-aware.ts"],"sourceRoot":"/","sourcesContent":["function asRecord(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return null;\n }\n return value as Record<string, unknown>;\n}\n\nfunction toItemId(result: unknown): string | null {\n const record = asRecord(result);\n if (!record) {\n return null;\n }\n const directId = typeof record.id === \"string\" ? record.id.trim() : \"\";\n if (directId.length > 0) {\n return directId;\n }\n const item = asRecord(record.item);\n const nestedId = item && typeof item.id === \"string\" ? item.id.trim() : \"\";\n return nestedId.length > 0 ? nestedId : null;\n}\n\nfunction toCount(record: Record<string, unknown>, key: string): number | null {\n const value = record[key];\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n}\n\nfunction fallbackSummary(command: string): string {\n return `Executed ${command} successfully.`;\n}\n\nfunction resolveSummary(command: string, result: unknown): string {\n const record = asRecord(result);\n if (!record) {\n return fallbackSummary(command);\n }\n const itemId = toItemId(result);\n switch (command) {\n case \"create\":\n return itemId ? `Created item ${itemId}.` : \"Created item.\";\n case \"update\":\n return itemId ? `Updated item ${itemId}.` : \"Updated item.\";\n case \"close\":\n return itemId ? `Closed item ${itemId}.` : \"Closed item.\";\n case \"delete\":\n return itemId ? `Deleted item ${itemId}.` : \"Deleted item.\";\n case \"append\":\n return itemId ? `Appended body content for ${itemId}.` : \"Appended body content.\";\n case \"claim\":\n return itemId ? `Claimed item ${itemId}.` : \"Claimed item.\";\n case \"release\":\n return itemId ? `Released claim for ${itemId}.` : \"Released claim.\";\n case \"get\":\n return itemId ? `Loaded item ${itemId}.` : \"Loaded item details.\";\n case \"history\":\n return itemId ? `Loaded history for ${itemId}.` : \"Loaded item history.\";\n case \"comments\":\n return itemId ? `Loaded comments for ${itemId}.` : \"Loaded comments.\";\n case \"notes\":\n return itemId ? `Loaded notes for ${itemId}.` : \"Loaded notes.\";\n case \"learnings\":\n return itemId ? `Loaded learnings for ${itemId}.` : \"Loaded learnings.\";\n case \"files\":\n return itemId ? `Updated linked files for ${itemId}.` : \"Updated linked files.\";\n case \"docs\":\n return itemId ? `Updated linked docs for ${itemId}.` : \"Updated linked docs.\";\n case \"test\":\n if (\"started\" in record && \"run\" in record) {\n const run = asRecord(record.run);\n const runId = run && typeof run.id === \"string\" ? run.id : null;\n const started = record.started === true;\n if (started) {\n return runId ? `Started background test run ${runId} for ${itemId ?? \"item tests\"}.` : \"Started background test run.\";\n }\n return runId ? `Reused active background test run ${runId}.` : \"Background test run already active.\";\n }\n return itemId ? `Processed linked tests for ${itemId}.` : \"Processed linked tests.\";\n case \"test-all\": {\n if (\"started\" in record && \"run\" in record) {\n const run = asRecord(record.run);\n const runId = run && typeof run.id === \"string\" ? run.id : null;\n const started = record.started === true;\n if (started) {\n return runId ? `Started background test-all run ${runId}.` : \"Started background test-all run.\";\n }\n return runId ? `Reused active background run ${runId}.` : \"Background test-all run already active.\";\n }\n const failed = toCount(record, \"failed\");\n if (failed !== null) {\n return failed > 0 ? `Finished test-all with ${failed} failing result group(s).` : \"Finished test-all with no failures.\";\n }\n return \"Finished test-all run.\";\n }\n case \"test-runs list\": {\n const count = toCount(record, \"count\");\n return count !== null ? `Listed ${count} background test run(s).` : \"Listed background test runs.\";\n }\n case \"test-runs status\": {\n const run = asRecord(record.run);\n const runId = run && typeof run.id === \"string\" ? run.id : null;\n return runId ? `Loaded background run status for ${runId}.` : \"Loaded background run status.\";\n }\n case \"test-runs logs\":\n return \"Loaded background run logs.\";\n case \"test-runs stop\":\n return \"Requested stop for background test run.\";\n case \"test-runs resume\":\n return \"Started resumed background test run.\";\n case \"list\":\n case \"list-all\":\n case \"list-draft\":\n case \"list-open\":\n case \"list-in-progress\":\n case \"list-blocked\":\n case \"list-closed\":\n case \"list-canceled\": {\n const count = toCount(record, \"count\");\n return count !== null ? `Returned ${count} item(s).` : \"Returned list results.\";\n }\n case \"search\": {\n const count = toCount(record, \"count\");\n const mode = typeof record.mode === \"string\" ? record.mode : \"keyword\";\n return count !== null ? `Search returned ${count} item(s) in ${mode} mode.` : `Search completed in ${mode} mode.`;\n }\n case \"reindex\": {\n const mode = typeof record.mode === \"string\" ? record.mode : \"keyword\";\n const total = toCount(record, \"total_items\");\n return total !== null ? `Reindexed ${total} item(s) in ${mode} mode.` : `Reindex completed in ${mode} mode.`;\n }\n case \"calendar\": {\n const view = typeof record.view === \"string\" ? record.view : \"agenda\";\n const summary = asRecord(record.summary);\n const total = summary && typeof summary.events === \"number\" ? summary.events : null;\n return total !== null ? `Calendar ${view} view returned ${total} event(s).` : `Calendar ${view} view completed.`;\n }\n case \"activity\": {\n const count = toCount(record, \"count\");\n return count !== null ? `Returned ${count} activity entry(ies).` : \"Loaded activity stream.\";\n }\n case \"stats\":\n return \"Loaded tracker statistics.\";\n case \"health\":\n return \"Loaded tracker health diagnostics.\";\n case \"gc\":\n return \"Garbage collection summary completed.\";\n case \"config\":\n return \"Config command completed.\";\n case \"init\":\n return \"Tracker initialization completed.\";\n case \"restore\":\n return itemId ? `Restored item ${itemId}.` : \"Restore command completed.\";\n case \"completion\":\n return \"Generated completion script.\";\n default:\n return fallbackSummary(command);\n }\n}\n\nfunction resolveHighlights(command: string, result: unknown): string[] {\n const record = asRecord(result);\n if (!record) {\n return [];\n }\n const highlights: string[] = [];\n const itemId = toItemId(result);\n if (itemId) {\n highlights.push(`item_id=${itemId}`);\n }\n\n const changedFields = Array.isArray(record.changed_fields) ? record.changed_fields.length : null;\n if (changedFields !== null) {\n highlights.push(`changed_fields=${changedFields}`);\n }\n\n if (command.startsWith(\"list\")) {\n const count = toCount(record, \"count\");\n if (count !== null) {\n highlights.push(`count=${count}`);\n }\n }\n if (command === \"search\") {\n if (typeof record.mode === \"string\") {\n highlights.push(`mode=${record.mode}`);\n }\n const count = toCount(record, \"count\");\n if (count !== null) {\n highlights.push(`count=${count}`);\n }\n }\n if (command === \"reindex\") {\n if (typeof record.mode === \"string\") {\n highlights.push(`mode=${record.mode}`);\n }\n const totalItems = toCount(record, \"total_items\");\n if (totalItems !== null) {\n highlights.push(`total_items=${totalItems}`);\n }\n const warnings = Array.isArray(record.warnings) ? record.warnings.length : null;\n if (warnings !== null) {\n highlights.push(`warnings=${warnings}`);\n }\n }\n if (command === \"test-all\") {\n if (\"started\" in record && \"run\" in record) {\n const run = asRecord(record.run);\n if (typeof record.started === \"boolean\") {\n highlights.push(`started=${record.started ? \"true\" : \"false\"}`);\n }\n if (run && typeof run.id === \"string\") {\n highlights.push(`run_id=${run.id}`);\n }\n if (typeof record.duplicate_of === \"string\") {\n highlights.push(`duplicate_of=${record.duplicate_of}`);\n }\n return highlights;\n }\n const failed = toCount(record, \"failed\");\n const passed = toCount(record, \"passed\");\n const skipped = toCount(record, \"skipped\");\n if (failed !== null) highlights.push(`failed=${failed}`);\n if (passed !== null) highlights.push(`passed=${passed}`);\n if (skipped !== null) highlights.push(`skipped=${skipped}`);\n const totals = asRecord(record.totals);\n const failureCategories = asRecord(totals?.failure_categories);\n if (failureCategories) {\n for (const key of Object.keys(failureCategories).sort((left, right) => left.localeCompare(right))) {\n const value = failureCategories[key];\n if (typeof value === \"number\" && Number.isFinite(value) && value > 0) {\n highlights.push(`failed_${key}=${value}`);\n }\n }\n }\n }\n if (command === \"test\") {\n if (\"started\" in record && \"run\" in record) {\n const run = asRecord(record.run);\n if (typeof record.started === \"boolean\") {\n highlights.push(`started=${record.started ? \"true\" : \"false\"}`);\n }\n if (run && typeof run.id === \"string\") {\n highlights.push(`run_id=${run.id}`);\n }\n if (typeof record.duplicate_of === \"string\") {\n highlights.push(`duplicate_of=${record.duplicate_of}`);\n }\n return highlights;\n }\n const count = toCount(record, \"count\");\n if (count !== null) {\n highlights.push(`linked_tests=${count}`);\n }\n const runResults = Array.isArray(record.run_results) ? record.run_results.length : null;\n if (runResults !== null) {\n highlights.push(`run_results=${runResults}`);\n }\n const failureCategories = asRecord(record.failure_categories);\n if (failureCategories) {\n for (const key of Object.keys(failureCategories).sort((left, right) => left.localeCompare(right))) {\n const value = failureCategories[key];\n if (typeof value === \"number\" && Number.isFinite(value) && value > 0) {\n highlights.push(`failed_${key}=${value}`);\n }\n }\n }\n }\n if (command === \"calendar\") {\n const summary = asRecord(record.summary);\n if (summary && typeof summary.events === \"number\") {\n highlights.push(`events=${String(summary.events)}`);\n }\n if (summary && typeof summary.deadlines === \"number\") {\n highlights.push(`deadlines=${String(summary.deadlines)}`);\n }\n if (summary && typeof summary.reminders === \"number\") {\n highlights.push(`reminders=${String(summary.reminders)}`);\n }\n if (summary && typeof summary.scheduled === \"number\") {\n highlights.push(`scheduled=${String(summary.scheduled)}`);\n }\n if (typeof record.view === \"string\") {\n highlights.push(`view=${record.view}`);\n }\n }\n if (command === \"get\") {\n const claimState = asRecord(record.claim_state);\n if (claimState && typeof claimState.claimed === \"boolean\") {\n highlights.push(`claimed=${claimState.claimed ? \"true\" : \"false\"}`);\n }\n if (claimState && typeof claimState.assignee === \"string\" && claimState.assignee.trim().length > 0) {\n highlights.push(`assignee=${claimState.assignee.trim()}`);\n }\n }\n if (command.startsWith(\"test-runs\")) {\n const run = asRecord(record.run);\n if (run && typeof run.id === \"string\") {\n highlights.push(`run_id=${run.id}`);\n }\n const signalSent = typeof record.signal_sent === \"string\" ? record.signal_sent : null;\n if (signalSent) {\n highlights.push(`signal=${signalSent}`);\n }\n const health = asRecord(record.health);\n if (health && typeof health.state === \"string\") {\n highlights.push(`health=${health.state}`);\n }\n const count = toCount(record, \"count\");\n if (count !== null) {\n highlights.push(`count=${count}`);\n }\n }\n return highlights;\n}\n\nfunction resolveNextSteps(command: string, result: unknown): string[] {\n const record = asRecord(result);\n const itemId = toItemId(result) ?? \"pm-<id>\";\n switch (command) {\n case \"create\":\n return [\n `pm files ${itemId} --add \"path=<file>,scope=project,note=<context>\"`,\n `pm test ${itemId} --add \"command=node scripts/run-tests.mjs test,scope=project,timeout_seconds=240\"`,\n `pm update ${itemId} --status in_progress --message \"Start implementation\"`,\n ];\n case \"update\":\n return [\n `pm get ${itemId}`,\n `pm comments ${itemId} --add \"Progress update\"`,\n `pm notes ${itemId} --add \"Implementation note\"`,\n ];\n case \"close\":\n return [`pm release ${itemId}`, `pm history ${itemId} --limit 10`];\n case \"delete\":\n return [\"pm list-all --limit 20\", \"pm activity --limit 20\"];\n case \"claim\":\n return [`pm update ${itemId} --status in_progress --message \"Start work\"`];\n case \"release\":\n return [\"pm list-in-progress --limit 20\"];\n case \"list\":\n case \"list-open\":\n case \"list-in-progress\":\n case \"list-blocked\":\n case \"list-all\":\n return [\"pm get <id>\", \"pm history <id> --limit 20\", \"pm update <id> --status in_progress --message \\\"...\\\"\"];\n case \"search\":\n return ['pm get <id>', 'pm search \"<query>\" --mode hybrid --include-linked'];\n case \"reindex\":\n return ['pm search \"<query>\" --mode hybrid --limit 10'];\n case \"test\":\n return [`pm test ${itemId} --run --background`, \"pm test-runs list --limit 10\", \"node scripts/run-tests.mjs coverage\"];\n case \"test-all\":\n return [\"pm test-all --status in_progress --background\", \"pm test-runs list --status running\", \"node scripts/run-tests.mjs coverage\"];\n case \"test-runs list\":\n return [\"pm test-runs status <runId>\", \"pm test-runs logs <runId> --stream stderr --tail 200\"];\n case \"test-runs status\":\n return [\"pm test-runs logs <runId> --tail 200\", \"pm test-runs stop <runId>\"];\n case \"test-runs stop\":\n return [\"pm test-runs status <runId>\", \"pm test-runs resume <runId>\"];\n case \"test-runs resume\":\n return [\"pm test-runs status <runId>\", \"pm test-runs logs <runId> --tail 200\"];\n case \"calendar\":\n return [\"pm calendar --view agenda --from +0d --to +7d\", \"pm calendar --view month --format json\"];\n case \"init\":\n return [\n \"pm init --preset minimal\",\n 'pm create --title \"Example\" --description \"...\" --type Task --status open --priority 1 --message \"Create initial item\"',\n ];\n case \"config\":\n return [\"pm config project get definition-of-done\", \"pm config project get item-format\", \"pm config project get test-result-tracking\"];\n case \"get\":\n return [\n ...(record && asRecord(record.claim_state)?.claimed === true\n ? [`pm release ${itemId}`, `pm release ${itemId} --allow-audit-release --author \"<auditor>\"`]\n : [`pm claim ${itemId}`]),\n `pm history ${itemId} --limit 20`,\n `pm comments ${itemId} --limit 10`,\n `pm notes ${itemId} --limit 10`,\n `pm learnings ${itemId} --limit 10`,\n ];\n case \"history\":\n return [\"pm restore <id> <timestamp|version>\", \"pm activity --limit 20\"];\n case \"activity\":\n return [\"pm list-in-progress --limit 20\", \"pm list-blocked --limit 20\"];\n case \"completion\":\n return [\"pm completion bash\", \"pm completion zsh\", \"pm completion fish\"];\n default:\n return [];\n }\n}\n\nexport function buildCommandAwareEnvelope(command: string, result: unknown): Record<string, unknown> {\n return {\n summary: {\n command,\n message: resolveSummary(command, result),\n },\n highlights: resolveHighlights(command, result),\n next_steps: resolveNextSteps(command, result),\n result,\n };\n}\n"],"names":[],"mappings":"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","debugId":"e0e3f31e-a8a7-51a9-adf9-3ed3fdff8012"}
|