@unbrained/pm-cli 2026.5.11 → 2026.5.14
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.md +3 -116
- package/CHANGELOG.md +18 -0
- package/PRD.md +18 -39
- package/README.md +8 -5
- package/dist/cli/commander-usage.js +27 -0
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/activity.js +19 -4
- package/dist/cli/commands/activity.js.map +1 -1
- package/dist/cli/commands/calendar.js +5 -2
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/contracts.js +63 -19
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.js +58 -3
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +14 -3
- package/dist/cli/commands/extension.js +481 -95
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -8
- package/dist/cli/commands/index.js +1 -8
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/reindex.d.ts +8 -0
- package/dist/cli/commands/reindex.js +96 -23
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/search.js +51 -25
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/test.js +14 -6
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +63 -0
- package/dist/cli/commands/upgrade.js +260 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/guide-topics.js +18 -16
- package/dist/cli/guide-topics.js.map +1 -1
- package/dist/cli/help-content.js +57 -18
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/main.js +73 -7
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +24 -142
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +49 -257
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +29 -198
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +181 -204
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +2 -2
- package/dist/cli/registration-helpers.js +1 -19
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/core/extensions/loader.js +7 -1
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/packages/manifest.d.ts +38 -0
- package/dist/core/packages/manifest.js +221 -0
- package/dist/core/packages/manifest.js.map +1 -0
- package/dist/core/search/embedding-batches.d.ts +13 -1
- package/dist/core/search/embedding-batches.js +19 -1
- package/dist/core/search/embedding-batches.js.map +1 -1
- package/dist/core/store/front-matter-cache.d.ts +8 -1
- package/dist/core/store/front-matter-cache.js +20 -11
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.js +100 -43
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.d.ts +7 -0
- package/dist/sdk/cli-contracts/commander-mutation-options.js +477 -0
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -0
- package/dist/sdk/cli-contracts/commander-types.d.ts +21 -0
- package/dist/sdk/cli-contracts/commander-types.js +92 -0
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -0
- package/dist/sdk/cli-contracts.d.ts +22 -32
- package/dist/sdk/cli-contracts.js +155 -296
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -0
- package/dist/sdk/index.js +2 -0
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runtime.d.ts +29 -0
- package/dist/sdk/runtime.js +28 -0
- package/dist/sdk/runtime.js.map +1 -0
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/COMMANDS.md +17 -1
- package/docs/EXTENSIONS.md +169 -61
- package/docs/QUICKSTART.md +11 -2
- package/docs/README.md +4 -6
- package/docs/RELEASING.md +4 -2
- package/docs/SDK.md +79 -438
- package/package.json +6 -23
- package/packages/pm-beads/README.md +10 -0
- package/packages/pm-beads/extensions/beads/index.js +113 -0
- package/{.agents/pm/extensions/beads/index.js → packages/pm-beads/extensions/beads/index.ts} +42 -20
- package/{.agents/pm → packages/pm-beads}/extensions/beads/runtime.js +2 -17
- package/{.agents/pm → packages/pm-beads}/extensions/beads/runtime.ts +41 -18
- package/packages/pm-beads/package.json +50 -0
- package/packages/pm-calendar/README.md +13 -0
- package/packages/pm-calendar/extensions/calendar/index.js +56 -0
- package/packages/pm-calendar/extensions/calendar/index.ts +62 -0
- package/packages/pm-calendar/extensions/calendar/manifest.json +7 -0
- package/packages/pm-calendar/extensions/calendar/runtime.js +95 -0
- package/packages/pm-calendar/extensions/calendar/runtime.ts +104 -0
- package/packages/pm-calendar/package.json +51 -0
- package/packages/pm-governance-audit/README.md +23 -0
- package/packages/pm-governance-audit/extensions/governance-audit/index.js +117 -0
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +118 -0
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +7 -0
- package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +159 -0
- package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +176 -0
- package/packages/pm-governance-audit/package.json +52 -0
- package/packages/pm-guide-shell/README.md +23 -0
- package/packages/pm-guide-shell/extensions/guide-shell/index.js +76 -0
- package/packages/pm-guide-shell/extensions/guide-shell/index.ts +81 -0
- package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +7 -0
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +263 -0
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +327 -0
- package/packages/pm-guide-shell/package.json +52 -0
- package/packages/pm-linked-test-adapters/README.md +24 -0
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.js +101 -0
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +102 -0
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +7 -0
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +142 -0
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +173 -0
- package/packages/pm-linked-test-adapters/package.json +53 -0
- package/packages/pm-search-advanced/README.md +27 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +93 -0
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +94 -0
- package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +7 -0
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +120 -0
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +144 -0
- package/packages/pm-search-advanced/package.json +54 -0
- package/packages/pm-templates/README.md +20 -0
- package/packages/pm-templates/extensions/templates/index.js +101 -0
- package/packages/pm-templates/extensions/templates/index.ts +109 -0
- package/packages/pm-templates/extensions/templates/manifest.json +7 -0
- package/packages/pm-templates/extensions/templates/runtime.js +226 -0
- package/packages/pm-templates/extensions/templates/runtime.ts +283 -0
- package/packages/pm-templates/package.json +50 -0
- package/packages/pm-todos/README.md +11 -0
- package/packages/pm-todos/extensions/todos/index.js +130 -0
- package/{.agents/pm/extensions/todos/index.js → packages/pm-todos/extensions/todos/index.ts} +47 -23
- package/{.agents/pm → packages/pm-todos}/extensions/todos/runtime.js +3 -18
- package/{.agents/pm → packages/pm-todos}/extensions/todos/runtime.ts +42 -20
- package/packages/pm-todos/package.json +51 -0
- package/plugins/pm-cli-claude/README.md +1 -2
- package/plugins/pm-cli-claude/hooks/session-start.mjs +4 -55
- package/plugins/pm-cli-claude/scripts/pm-mcp-server.mjs +4 -2
- package/plugins/pm-cli-codex/scripts/pm-mcp-server.mjs +4 -2
- package/.agents/pm/extensions/.managed-extensions.json +0 -42
- package/.agents/skills/HARNESS_COMPATIBILITY.md +0 -45
- package/.agents/skills/README.md +0 -21
- package/.agents/skills/pm-developer/SKILL.md +0 -73
- package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +0 -48
- package/.agents/skills/pm-developer/references/PROMPTS.md +0 -17
- package/.agents/skills/pm-extensions/SKILL.md +0 -57
- package/.agents/skills/pm-extensions/references/LIFECYCLE.md +0 -40
- package/.agents/skills/pm-extensions/references/TROUBLESHOOTING.md +0 -25
- package/.agents/skills/pm-sdk/SKILL.md +0 -50
- package/.agents/skills/pm-sdk/references/INTEGRATION_CHECKLIST.md +0 -31
- package/.agents/skills/pm-sdk/references/PROMPTS.md +0 -13
- package/.agents/skills/pm-user/SKILL.md +0 -59
- package/.agents/skills/pm-user/references/PROMPTS.md +0 -17
- package/.agents/skills/pm-user/references/WORKFLOWS.md +0 -35
- package/.pi/README.md +0 -35
- package/.pi/agents/pm-triage-agent.md +0 -19
- package/.pi/agents/pm-verification-agent.md +0 -21
- package/.pi/chains/pm-native-delivery.chain.md +0 -11
- package/.pi/extensions/pm-cli/index.js +0 -387
- package/.pi/prompts/pm-workflow.md +0 -5
- package/.pi/skills/pm-native/SKILL.md +0 -44
- package/.pi/skills/pm-release/SKILL.md +0 -35
- package/dist/pi/native.d.ts +0 -5
- package/dist/pi/native.js +0 -236
- package/dist/pi/native.js.map +0 -1
- package/docs/PI_PACKAGE.md +0 -141
- /package/{.agents/pm → packages/pm-beads}/extensions/beads/manifest.json +0 -0
- /package/{.agents/pm → packages/pm-todos}/extensions/todos/manifest.json +0 -0
package/dist/pi/native.js
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
3
|
-
import { PmCliError } from "../core/shared/errors.js";
|
|
4
|
-
import { readSettings } from "../core/store/settings.js";
|
|
5
|
-
import { resolvePmRoot } from "../core/store/paths.js";
|
|
6
|
-
import { normalizeStatusInput } from "../core/item/status.js";
|
|
7
|
-
import { resolveRuntimeStatusRegistry } from "../core/schema/runtime-schema.js";
|
|
8
|
-
import { PM_TOOL_ACTIONS, isPmToolAction } from "../sdk/cli-contracts.js";
|
|
9
|
-
import { runActivity, runAggregate, runAppend, runCalendar, runClaim, runClose, runComments, runCommentsAudit, runCompletion, runConfig, runContext, runContracts, runCreate, runDedupeAudit, runDelete, runDeps, runDocs, runExtension, runFiles, runFilesDiscover, runGc, runGet, runGuide, runHealth, runHistory, runInit, runLearnings, runList, runNormalize, runNotes, runReindex, runRelease, runRestore, runSearch, runStats, runTemplatesList, runTemplatesSave, runTemplatesShow, runTest, runTestAll, runTestRunsList, runTestRunsLogs, runTestRunsResume, runTestRunsStatus, runTestRunsStop, runUpdate, runUpdateMany, runValidate, } from "../cli/commands/index.js";
|
|
10
|
-
const GLOBAL_KEYS = new Set([
|
|
11
|
-
"action",
|
|
12
|
-
"cwd",
|
|
13
|
-
"path",
|
|
14
|
-
"json",
|
|
15
|
-
"quiet",
|
|
16
|
-
"profile",
|
|
17
|
-
"noExtensions",
|
|
18
|
-
"noPager",
|
|
19
|
-
"pmExecutable",
|
|
20
|
-
"timeoutMs",
|
|
21
|
-
"options",
|
|
22
|
-
]);
|
|
23
|
-
const NATIVE_PM_ACTION_ALIASES = ["files-discover"];
|
|
24
|
-
const NATIVE_PM_ACTIONS = new Set([...PM_TOOL_ACTIONS, ...NATIVE_PM_ACTION_ALIASES]);
|
|
25
|
-
function asRecord(value) {
|
|
26
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? { ...value } : {};
|
|
27
|
-
}
|
|
28
|
-
function readString(args, key) {
|
|
29
|
-
const value = args[key];
|
|
30
|
-
return typeof value === "string" && value.trim().length > 0 ? value : undefined;
|
|
31
|
-
}
|
|
32
|
-
function mutationOptions(options) {
|
|
33
|
-
return {
|
|
34
|
-
author: readString(options, "author"),
|
|
35
|
-
message: typeof options.message === "string" ? options.message : undefined,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function requiredString(args, key, action) {
|
|
39
|
-
const value = readString(args, key);
|
|
40
|
-
if (!value) {
|
|
41
|
-
throw new PmCliError(`Action "${action}" requires "${key}".`, 64);
|
|
42
|
-
}
|
|
43
|
-
return value;
|
|
44
|
-
}
|
|
45
|
-
export function nativeGlobalOptions(args) {
|
|
46
|
-
return {
|
|
47
|
-
json: args.json !== false,
|
|
48
|
-
quiet: args.quiet === true,
|
|
49
|
-
profile: args.profile === true,
|
|
50
|
-
noExtensions: args.noExtensions === true,
|
|
51
|
-
noPager: args.noPager !== false,
|
|
52
|
-
path: readString(args, "path"),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export function nativeCommandOptions(args) {
|
|
56
|
-
const options = asRecord(args.options);
|
|
57
|
-
for (const [key, value] of Object.entries(args)) {
|
|
58
|
-
if (GLOBAL_KEYS.has(key) || value === undefined)
|
|
59
|
-
continue;
|
|
60
|
-
if (options[key] === undefined)
|
|
61
|
-
options[key] = value;
|
|
62
|
-
}
|
|
63
|
-
const author = readString(args, "author");
|
|
64
|
-
if (author && options.author === undefined)
|
|
65
|
-
options.author = author;
|
|
66
|
-
return options;
|
|
67
|
-
}
|
|
68
|
-
async function withCwd(cwd, run) {
|
|
69
|
-
if (typeof cwd !== "string" || cwd.trim().length === 0)
|
|
70
|
-
return run();
|
|
71
|
-
const previous = process.cwd();
|
|
72
|
-
process.chdir(cwd);
|
|
73
|
-
try {
|
|
74
|
-
return await run();
|
|
75
|
-
}
|
|
76
|
-
finally {
|
|
77
|
-
process.chdir(previous);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
async function runStartTask(id, options, global) {
|
|
81
|
-
const pmRoot = resolvePmRoot(process.cwd(), global.path);
|
|
82
|
-
const settings = await readSettings(pmRoot);
|
|
83
|
-
const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
|
|
84
|
-
const status = normalizeStatusInput("in_progress", statusRegistry) ?? statusRegistry.open_status;
|
|
85
|
-
const force = options.force === true;
|
|
86
|
-
const baseOptions = mutationOptions(options);
|
|
87
|
-
const claim = await runClaim(id, force, global, baseOptions);
|
|
88
|
-
const update = await runUpdate(id, { ...baseOptions, status, force }, global);
|
|
89
|
-
return { id, action: "start_task", claim, update };
|
|
90
|
-
}
|
|
91
|
-
async function runPauseTask(id, options, global) {
|
|
92
|
-
const pmRoot = resolvePmRoot(process.cwd(), global.path);
|
|
93
|
-
const settings = await readSettings(pmRoot);
|
|
94
|
-
const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
|
|
95
|
-
const force = options.force === true;
|
|
96
|
-
const baseOptions = mutationOptions(options);
|
|
97
|
-
const update = await runUpdate(id, { ...baseOptions, status: statusRegistry.open_status, force }, global);
|
|
98
|
-
const release = await runRelease(id, force, global, baseOptions);
|
|
99
|
-
return { id, action: "pause_task", update, release };
|
|
100
|
-
}
|
|
101
|
-
async function runCloseTask(id, reason, options, global) {
|
|
102
|
-
const force = options.force === true;
|
|
103
|
-
const baseOptions = mutationOptions(options);
|
|
104
|
-
const close = await runClose(id, reason, { ...baseOptions, validateClose: readString(options, "validateClose"), force }, global);
|
|
105
|
-
const release = await runRelease(id, force, global, baseOptions);
|
|
106
|
-
return { id, action: "close_task", close, release };
|
|
107
|
-
}
|
|
108
|
-
function resolvePackageRoot() {
|
|
109
|
-
return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
|
110
|
-
}
|
|
111
|
-
let bundledExtensionRuntimeReloadEpoch = 0;
|
|
112
|
-
async function loadBundledExtensionRuntime(name, options) {
|
|
113
|
-
const runtimePath = path.join(resolvePackageRoot(), ".agents", "pm", "extensions", name, "runtime.js");
|
|
114
|
-
const runtimeUrl = new URL(pathToFileURL(runtimePath).href);
|
|
115
|
-
if (options?.cacheBust === true) {
|
|
116
|
-
bundledExtensionRuntimeReloadEpoch += 1;
|
|
117
|
-
runtimeUrl.searchParams.set("pm_ext_reload", `${name}-${bundledExtensionRuntimeReloadEpoch}-${Date.now()}`);
|
|
118
|
-
}
|
|
119
|
-
return import(runtimeUrl.href);
|
|
120
|
-
}
|
|
121
|
-
async function runBeadsImport(options, global) {
|
|
122
|
-
const runtime = await loadBundledExtensionRuntime("beads", { cacheBust: options.reload === true });
|
|
123
|
-
const runner = runtime.runBeadsImport;
|
|
124
|
-
if (typeof runner !== "function") {
|
|
125
|
-
throw new PmCliError("Bundled beads runtime is missing runBeadsImport().", 1);
|
|
126
|
-
}
|
|
127
|
-
return runner(options, global);
|
|
128
|
-
}
|
|
129
|
-
async function runTodosImport(options, global) {
|
|
130
|
-
const runtime = await loadBundledExtensionRuntime("todos", { cacheBust: options.reload === true });
|
|
131
|
-
const runner = runtime.runTodosImport;
|
|
132
|
-
if (typeof runner !== "function") {
|
|
133
|
-
throw new PmCliError("Bundled todos runtime is missing runTodosImport().", 1);
|
|
134
|
-
}
|
|
135
|
-
return runner(options, global);
|
|
136
|
-
}
|
|
137
|
-
async function runTodosExport(options, global) {
|
|
138
|
-
const runtime = await loadBundledExtensionRuntime("todos", { cacheBust: options.reload === true });
|
|
139
|
-
const runner = runtime.runTodosExport;
|
|
140
|
-
if (typeof runner !== "function") {
|
|
141
|
-
throw new PmCliError("Bundled todos runtime is missing runTodosExport().", 1);
|
|
142
|
-
}
|
|
143
|
-
return runner(options, global);
|
|
144
|
-
}
|
|
145
|
-
export async function runNativePmAction(args) {
|
|
146
|
-
return withCwd(args.cwd, async () => {
|
|
147
|
-
const action = requiredString(args, "action", "pm").trim().toLowerCase();
|
|
148
|
-
if (!NATIVE_PM_ACTIONS.has(action) && !isPmToolAction(action)) {
|
|
149
|
-
throw new PmCliError(`Unsupported native pm action: ${action}`, 64);
|
|
150
|
-
}
|
|
151
|
-
const global = nativeGlobalOptions(args);
|
|
152
|
-
const options = nativeCommandOptions(args);
|
|
153
|
-
const id = readString(args, "id") ?? readString(options, "id");
|
|
154
|
-
const force = args.force === true || options.force === true;
|
|
155
|
-
switch (action) {
|
|
156
|
-
case "init": return runInit(readString(args, "prefix") ?? readString(options, "prefix"), global, options);
|
|
157
|
-
case "config": return runConfig(readString(args, "scope") ?? readString(options, "scope") ?? "project", readString(args, "configAction") ?? readString(options, "configAction") ?? requiredString(options, "action", action), readString(args, "key") ?? readString(options, "key"), options, global);
|
|
158
|
-
case "extension-init": return runExtension(requiredString(args, "target", action), { ...options, init: true }, global);
|
|
159
|
-
case "extension-install": return runExtension(readString(args, "target") ?? readString(options, "target"), { ...options, install: true }, global);
|
|
160
|
-
case "extension-uninstall": return runExtension(requiredString(args, "target", action), { ...options, uninstall: true }, global);
|
|
161
|
-
case "extension-explore": return runExtension(undefined, { ...options, explore: true }, global);
|
|
162
|
-
case "extension-manage": return runExtension(undefined, { ...options, manage: true }, global);
|
|
163
|
-
case "extension-reload": return runExtension(undefined, { ...options, reload: true }, global);
|
|
164
|
-
case "extension-doctor": return runExtension(undefined, { ...options, doctor: true }, global);
|
|
165
|
-
case "extension-adopt": return runExtension(requiredString(args, "target", action), { ...options, adopt: true }, global);
|
|
166
|
-
case "extension-adopt-all": return runExtension(undefined, { ...options, adoptAll: true }, global);
|
|
167
|
-
case "extension-activate": return runExtension(requiredString(args, "target", action), { ...options, activate: true }, global);
|
|
168
|
-
case "extension-deactivate": return runExtension(requiredString(args, "target", action), { ...options, deactivate: true }, global);
|
|
169
|
-
case "extension": return runExtension(readString(args, "target") ?? readString(options, "target"), options, global);
|
|
170
|
-
case "beads-import": return runBeadsImport(options, global);
|
|
171
|
-
case "todos-import": return runTodosImport(options, global);
|
|
172
|
-
case "todos-export": return runTodosExport(options, global);
|
|
173
|
-
case "create": return runCreate(options, global);
|
|
174
|
-
case "list":
|
|
175
|
-
case "list-all":
|
|
176
|
-
case "list-draft":
|
|
177
|
-
case "list-open":
|
|
178
|
-
case "list-in-progress":
|
|
179
|
-
case "list-blocked":
|
|
180
|
-
case "list-closed":
|
|
181
|
-
case "list-canceled": return runList(action === "list" ? readString(args, "status") : action === "list-all" ? undefined : action.replace("list-", "").replaceAll("-", "_"), options, global);
|
|
182
|
-
case "aggregate": return runAggregate(options, global);
|
|
183
|
-
case "dedupe-audit": return runDedupeAudit(options, global);
|
|
184
|
-
case "calendar":
|
|
185
|
-
case "cal": return runCalendar(options, global);
|
|
186
|
-
case "context":
|
|
187
|
-
case "ctx": return runContext(options, global);
|
|
188
|
-
case "get": return runGet(id ?? requiredString(options, "id", action), global);
|
|
189
|
-
case "search": return runSearch(readString(args, "query") ?? readString(args, "keywords") ?? requiredString(options, "query", action), options, global);
|
|
190
|
-
case "reindex": return runReindex(options, global);
|
|
191
|
-
case "history": return runHistory(id ?? requiredString(options, "id", action), options, global);
|
|
192
|
-
case "activity": return runActivity(options, global);
|
|
193
|
-
case "restore": return runRestore(id ?? requiredString(options, "id", action), readString(args, "target") ?? requiredString(options, "target", action), options, global);
|
|
194
|
-
case "update": return runUpdate(id ?? requiredString(options, "id", action), options, global);
|
|
195
|
-
case "update-many": return runUpdateMany(options, global);
|
|
196
|
-
case "normalize": return runNormalize(options, global);
|
|
197
|
-
case "close": return runClose(id ?? requiredString(options, "id", action), readString(args, "text") ?? readString(args, "reason") ?? requiredString(options, "text", action), options, global);
|
|
198
|
-
case "delete": return runDelete(id ?? requiredString(options, "id", action), options, global);
|
|
199
|
-
case "append": return runAppend(id ?? requiredString(options, "id", action), options, global);
|
|
200
|
-
case "comments": return runComments(id ?? requiredString(options, "id", action), options, global);
|
|
201
|
-
case "comments-audit": return runCommentsAudit(options, global);
|
|
202
|
-
case "notes": return runNotes(id ?? requiredString(options, "id", action), options, global);
|
|
203
|
-
case "learnings": return runLearnings(id ?? requiredString(options, "id", action), options, global);
|
|
204
|
-
case "files": return runFiles(id ?? requiredString(options, "id", action), options, global);
|
|
205
|
-
case "files-discover": return runFilesDiscover(id ?? requiredString(options, "id", action), options, global);
|
|
206
|
-
case "docs": return runDocs(id ?? requiredString(options, "id", action), options, global);
|
|
207
|
-
case "deps": return runDeps(id ?? requiredString(options, "id", action), options, global);
|
|
208
|
-
case "test": return runTest(id ?? requiredString(options, "id", action), options, global);
|
|
209
|
-
case "test-all": return runTestAll(options, global);
|
|
210
|
-
case "test-runs-list": return runTestRunsList(options, global);
|
|
211
|
-
case "test-runs-status": return runTestRunsStatus(requiredString(args, "runId", action), global);
|
|
212
|
-
case "test-runs-logs": return runTestRunsLogs(requiredString(args, "runId", action), options, global);
|
|
213
|
-
case "test-runs-stop": return runTestRunsStop(requiredString(args, "runId", action), options, global);
|
|
214
|
-
case "test-runs-resume": return runTestRunsResume(requiredString(args, "runId", action), options, global);
|
|
215
|
-
case "stats": return runStats(global);
|
|
216
|
-
case "health": return runHealth(global, options);
|
|
217
|
-
case "validate": return runValidate(options, global);
|
|
218
|
-
case "gc": return runGc(global, options);
|
|
219
|
-
case "contracts": return runContracts(options, global);
|
|
220
|
-
case "completion": return runCompletion(requiredString(args, "shell", action), undefined, undefined, options.eagerTags === true, options.runtime);
|
|
221
|
-
case "templates-save":
|
|
222
|
-
return runTemplatesSave(readString(args, "template") ?? readString(options, "template") ?? requiredString(options, "name", action), options, global);
|
|
223
|
-
case "templates-list": return runTemplatesList(global);
|
|
224
|
-
case "templates-show":
|
|
225
|
-
return runTemplatesShow(readString(args, "template") ?? readString(options, "template") ?? requiredString(options, "name", action), global);
|
|
226
|
-
case "claim": return runClaim(id ?? requiredString(options, "id", action), force, global, options);
|
|
227
|
-
case "release": return runRelease(id ?? requiredString(options, "id", action), force, global, options);
|
|
228
|
-
case "start-task": return runStartTask(id ?? requiredString(options, "id", action), options, global);
|
|
229
|
-
case "pause-task": return runPauseTask(id ?? requiredString(options, "id", action), options, global);
|
|
230
|
-
case "close-task": return runCloseTask(id ?? requiredString(options, "id", action), readString(args, "text") ?? readString(args, "reason") ?? requiredString(options, "text", action), options, global);
|
|
231
|
-
case "guide": return runGuide(options, global);
|
|
232
|
-
default: throw new PmCliError(`Unsupported native pm action: ${action}`, 64);
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
//# sourceMappingURL=native.js.map
|
package/dist/pi/native.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"/","sources":["pi/native.ts"],"names":[],"mappings":"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","sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { readSettings } from \"../core/store/settings.js\";\nimport { resolvePmRoot } from \"../core/store/paths.js\";\nimport { normalizeStatusInput } from \"../core/item/status.js\";\nimport { resolveRuntimeStatusRegistry } from \"../core/schema/runtime-schema.js\";\nimport { PM_TOOL_ACTIONS, isPmToolAction } from \"../sdk/cli-contracts.js\";\nimport {\n runActivity,\n runAggregate,\n runAppend,\n runCalendar,\n runClaim,\n runClose,\n runComments,\n runCommentsAudit,\n runCompletion,\n runConfig,\n runContext,\n runContracts,\n runCreate,\n runDedupeAudit,\n runDelete,\n runDeps,\n runDocs,\n runExtension,\n runFiles,\n runFilesDiscover,\n runGc,\n runGet,\n runGuide,\n runHealth,\n runHistory,\n runInit,\n runLearnings,\n runList,\n runNormalize,\n runNotes,\n runReindex,\n runRelease,\n runRestore,\n runSearch,\n runStats,\n runTemplatesList,\n runTemplatesSave,\n runTemplatesShow,\n runTest,\n runTestAll,\n runTestRunsList,\n runTestRunsLogs,\n runTestRunsResume,\n runTestRunsStatus,\n runTestRunsStop,\n runUpdate,\n runUpdateMany,\n runValidate,\n} from \"../cli/commands/index.js\";\n\nexport type NativePmArgs = Record<string, unknown>;\n\nconst GLOBAL_KEYS = new Set([\n \"action\",\n \"cwd\",\n \"path\",\n \"json\",\n \"quiet\",\n \"profile\",\n \"noExtensions\",\n \"noPager\",\n \"pmExecutable\",\n \"timeoutMs\",\n \"options\",\n]);\n\nconst NATIVE_PM_ACTION_ALIASES = [\"files-discover\"] as const;\nconst NATIVE_PM_ACTIONS = new Set<string>([...PM_TOOL_ACTIONS, ...NATIVE_PM_ACTION_ALIASES]);\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) ? { ...(value as Record<string, unknown>) } : {};\n}\n\nfunction readString(args: Record<string, unknown>, key: string): string | undefined {\n const value = args[key];\n return typeof value === \"string\" && value.trim().length > 0 ? value : undefined;\n}\n\nfunction mutationOptions(options: Record<string, unknown>): { author?: string; message?: string } {\n return {\n author: readString(options, \"author\"),\n message: typeof options.message === \"string\" ? options.message : undefined,\n };\n}\n\nfunction requiredString(args: Record<string, unknown>, key: string, action: string): string {\n const value = readString(args, key);\n if (!value) {\n throw new PmCliError(`Action \"${action}\" requires \"${key}\".`, 64);\n }\n return value;\n}\n\nexport function nativeGlobalOptions(args: NativePmArgs): GlobalOptions {\n return {\n json: args.json !== false,\n quiet: args.quiet === true,\n profile: args.profile === true,\n noExtensions: args.noExtensions === true,\n noPager: args.noPager !== false,\n path: readString(args, \"path\"),\n };\n}\n\nexport function nativeCommandOptions(args: NativePmArgs): Record<string, unknown> {\n const options = asRecord(args.options);\n for (const [key, value] of Object.entries(args)) {\n if (GLOBAL_KEYS.has(key) || value === undefined) continue;\n if (options[key] === undefined) options[key] = value;\n }\n const author = readString(args, \"author\");\n if (author && options.author === undefined) options.author = author;\n return options;\n}\n\nasync function withCwd<T>(cwd: unknown, run: () => Promise<T>): Promise<T> {\n if (typeof cwd !== \"string\" || cwd.trim().length === 0) return run();\n const previous = process.cwd();\n process.chdir(cwd);\n try {\n return await run();\n } finally {\n process.chdir(previous);\n }\n}\n\nasync function runStartTask(id: string, options: Record<string, unknown>, global: GlobalOptions): Promise<unknown> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const status = normalizeStatusInput(\"in_progress\", statusRegistry) ?? statusRegistry.open_status;\n const force = options.force === true;\n const baseOptions = mutationOptions(options);\n const claim = await runClaim(id, force, global, baseOptions);\n const update = await runUpdate(id, { ...baseOptions, status, force }, global);\n return { id, action: \"start_task\", claim, update };\n}\n\nasync function runPauseTask(id: string, options: Record<string, unknown>, global: GlobalOptions): Promise<unknown> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const force = options.force === true;\n const baseOptions = mutationOptions(options);\n const update = await runUpdate(id, { ...baseOptions, status: statusRegistry.open_status, force }, global);\n const release = await runRelease(id, force, global, baseOptions);\n return { id, action: \"pause_task\", update, release };\n}\n\nasync function runCloseTask(id: string, reason: string, options: Record<string, unknown>, global: GlobalOptions): Promise<unknown> {\n const force = options.force === true;\n const baseOptions = mutationOptions(options);\n const close = await runClose(id, reason, { ...baseOptions, validateClose: readString(options, \"validateClose\"), force }, global);\n const release = await runRelease(id, force, global, baseOptions);\n return { id, action: \"close_task\", close, release };\n}\n\nfunction resolvePackageRoot(): string {\n return path.resolve(path.dirname(fileURLToPath(import.meta.url)), \"../..\");\n}\n\nlet bundledExtensionRuntimeReloadEpoch = 0;\n\nasync function loadBundledExtensionRuntime(\n name: \"beads\" | \"todos\",\n options?: { cacheBust?: boolean },\n): Promise<Record<string, unknown>> {\n const runtimePath = path.join(resolvePackageRoot(), \".agents\", \"pm\", \"extensions\", name, \"runtime.js\");\n const runtimeUrl = new URL(pathToFileURL(runtimePath).href);\n if (options?.cacheBust === true) {\n bundledExtensionRuntimeReloadEpoch += 1;\n runtimeUrl.searchParams.set(\"pm_ext_reload\", `${name}-${bundledExtensionRuntimeReloadEpoch}-${Date.now()}`);\n }\n return import(runtimeUrl.href) as Promise<Record<string, unknown>>;\n}\n\nasync function runBeadsImport(options: Record<string, unknown>, global: GlobalOptions): Promise<unknown> {\n const runtime = await loadBundledExtensionRuntime(\"beads\", { cacheBust: options.reload === true });\n const runner = runtime.runBeadsImport;\n if (typeof runner !== \"function\") {\n throw new PmCliError(\"Bundled beads runtime is missing runBeadsImport().\", 1);\n }\n return runner(options, global) as Promise<unknown>;\n}\n\nasync function runTodosImport(options: Record<string, unknown>, global: GlobalOptions): Promise<unknown> {\n const runtime = await loadBundledExtensionRuntime(\"todos\", { cacheBust: options.reload === true });\n const runner = runtime.runTodosImport;\n if (typeof runner !== \"function\") {\n throw new PmCliError(\"Bundled todos runtime is missing runTodosImport().\", 1);\n }\n return runner(options, global) as Promise<unknown>;\n}\n\nasync function runTodosExport(options: Record<string, unknown>, global: GlobalOptions): Promise<unknown> {\n const runtime = await loadBundledExtensionRuntime(\"todos\", { cacheBust: options.reload === true });\n const runner = runtime.runTodosExport;\n if (typeof runner !== \"function\") {\n throw new PmCliError(\"Bundled todos runtime is missing runTodosExport().\", 1);\n }\n return runner(options, global) as Promise<unknown>;\n}\n\nexport async function runNativePmAction(args: NativePmArgs): Promise<unknown> {\n return withCwd(args.cwd, async () => {\n const action = requiredString(args, \"action\", \"pm\").trim().toLowerCase();\n if (!NATIVE_PM_ACTIONS.has(action) && !isPmToolAction(action)) {\n throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n const global = nativeGlobalOptions(args);\n const options = nativeCommandOptions(args);\n const id = readString(args, \"id\") ?? readString(options, \"id\");\n const force = args.force === true || options.force === true;\n\n switch (action) {\n case \"init\": return runInit(readString(args, \"prefix\") ?? readString(options, \"prefix\"), global, options);\n case \"config\": return runConfig(readString(args, \"scope\") ?? readString(options, \"scope\") ?? \"project\", readString(args, \"configAction\") ?? readString(options, \"configAction\") ?? requiredString(options, \"action\", action), readString(args, \"key\") ?? readString(options, \"key\"), options, global);\n case \"extension-init\": return runExtension(requiredString(args, \"target\", action), { ...options, init: true }, global);\n case \"extension-install\": return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), { ...options, install: true }, global);\n case \"extension-uninstall\": return runExtension(requiredString(args, \"target\", action), { ...options, uninstall: true }, global);\n case \"extension-explore\": return runExtension(undefined, { ...options, explore: true }, global);\n case \"extension-manage\": return runExtension(undefined, { ...options, manage: true }, global);\n case \"extension-reload\": return runExtension(undefined, { ...options, reload: true }, global);\n case \"extension-doctor\": return runExtension(undefined, { ...options, doctor: true }, global);\n case \"extension-adopt\": return runExtension(requiredString(args, \"target\", action), { ...options, adopt: true }, global);\n case \"extension-adopt-all\": return runExtension(undefined, { ...options, adoptAll: true }, global);\n case \"extension-activate\": return runExtension(requiredString(args, \"target\", action), { ...options, activate: true }, global);\n case \"extension-deactivate\": return runExtension(requiredString(args, \"target\", action), { ...options, deactivate: true }, global);\n case \"extension\": return runExtension(readString(args, \"target\") ?? readString(options, \"target\"), options, global);\n case \"beads-import\": return runBeadsImport(options, global);\n case \"todos-import\": return runTodosImport(options, global);\n case \"todos-export\": return runTodosExport(options, global);\n case \"create\": return runCreate(options, global);\n case \"list\": case \"list-all\": case \"list-draft\": case \"list-open\": case \"list-in-progress\": case \"list-blocked\": case \"list-closed\": case \"list-canceled\": return runList(action === \"list\" ? readString(args, \"status\") : action === \"list-all\" ? undefined : action.replace(\"list-\", \"\").replaceAll(\"-\", \"_\"), options, global);\n case \"aggregate\": return runAggregate(options, global);\n case \"dedupe-audit\": return runDedupeAudit(options, global);\n case \"calendar\": case \"cal\": return runCalendar(options, global);\n case \"context\": case \"ctx\": return runContext(options, global);\n case \"get\": return runGet(id ?? requiredString(options, \"id\", action), global);\n case \"search\": return runSearch(readString(args, \"query\") ?? readString(args, \"keywords\") ?? requiredString(options, \"query\", action), options, global);\n case \"reindex\": return runReindex(options, global);\n case \"history\": return runHistory(id ?? requiredString(options, \"id\", action), options, global);\n case \"activity\": return runActivity(options, global);\n case \"restore\": return runRestore(id ?? requiredString(options, \"id\", action), readString(args, \"target\") ?? requiredString(options, \"target\", action), options, global);\n case \"update\": return runUpdate(id ?? requiredString(options, \"id\", action), options, global);\n case \"update-many\": return runUpdateMany(options as never, global);\n case \"normalize\": return runNormalize(options as never, global);\n case \"close\": return runClose(id ?? requiredString(options, \"id\", action), readString(args, \"text\") ?? readString(args, \"reason\") ?? requiredString(options, \"text\", action), options, global);\n case \"delete\": return runDelete(id ?? requiredString(options, \"id\", action), options, global);\n case \"append\": return runAppend(id ?? requiredString(options, \"id\", action), options as never, global);\n case \"comments\": return runComments(id ?? requiredString(options, \"id\", action), options, global);\n case \"comments-audit\": return runCommentsAudit(options, global);\n case \"notes\": return runNotes(id ?? requiredString(options, \"id\", action), options, global);\n case \"learnings\": return runLearnings(id ?? requiredString(options, \"id\", action), options, global);\n case \"files\": return runFiles(id ?? requiredString(options, \"id\", action), options, global);\n case \"files-discover\": return runFilesDiscover(id ?? requiredString(options, \"id\", action), options, global);\n case \"docs\": return runDocs(id ?? requiredString(options, \"id\", action), options, global);\n case \"deps\": return runDeps(id ?? requiredString(options, \"id\", action), options, global);\n case \"test\": return runTest(id ?? requiredString(options, \"id\", action), options, global);\n case \"test-all\": return runTestAll(options, global);\n case \"test-runs-list\": return runTestRunsList(options, global);\n case \"test-runs-status\": return runTestRunsStatus(requiredString(args, \"runId\", action), global);\n case \"test-runs-logs\": return runTestRunsLogs(requiredString(args, \"runId\", action), options, global);\n case \"test-runs-stop\": return runTestRunsStop(requiredString(args, \"runId\", action), options, global);\n case \"test-runs-resume\": return runTestRunsResume(requiredString(args, \"runId\", action), options, global);\n case \"stats\": return runStats(global);\n case \"health\": return runHealth(global, options);\n case \"validate\": return runValidate(options, global);\n case \"gc\": return runGc(global, options);\n case \"contracts\": return runContracts(options, global);\n case \"completion\": return runCompletion(requiredString(args, \"shell\", action), undefined, undefined, options.eagerTags === true, options.runtime as never);\n case \"templates-save\":\n return runTemplatesSave(\n readString(args, \"template\") ?? readString(options, \"template\") ?? requiredString(options, \"name\", action),\n options,\n global,\n );\n case \"templates-list\": return runTemplatesList(global);\n case \"templates-show\":\n return runTemplatesShow(\n readString(args, \"template\") ?? readString(options, \"template\") ?? requiredString(options, \"name\", action),\n global,\n );\n case \"claim\": return runClaim(id ?? requiredString(options, \"id\", action), force, global, options);\n case \"release\": return runRelease(id ?? requiredString(options, \"id\", action), force, global, options);\n case \"start-task\": return runStartTask(id ?? requiredString(options, \"id\", action), options, global);\n case \"pause-task\": return runPauseTask(id ?? requiredString(options, \"id\", action), options, global);\n case \"close-task\": return runCloseTask(id ?? requiredString(options, \"id\", action), readString(args, \"text\") ?? readString(args, \"reason\") ?? requiredString(options, \"text\", action), options, global);\n case \"guide\": return runGuide(options, global);\n default: throw new PmCliError(`Unsupported native pm action: ${action}`, 64);\n }\n });\n}\n"]}
|
package/docs/PI_PACKAGE.md
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
# Pi Native Package & Claude Code Plugin
|
|
2
|
-
|
|
3
|
-
pm-cli ships both an official Pi package and a Claude Code plugin so AI coding agents can use pm through native integrations instead of shelling out to the `pm` CLI.
|
|
4
|
-
|
|
5
|
-
## Claude Code Plugin
|
|
6
|
-
|
|
7
|
-
The Claude Code plugin (`plugins/pm-cli-claude/`) provides full native pm integration for Claude Code without any CLI dependency.
|
|
8
|
-
|
|
9
|
-
### Install
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
/plugin install pm-cli@pm
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Both `pm` and `pm-cli` marketplace IDs work:
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
/plugin install pm-cli@pm # canonical
|
|
19
|
-
/plugin install pm-cli@pm-cli # legacy alias
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
To add the marketplace first (local checkout):
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
claude plugin marketplace add /path/to/pm-cli
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
After npm publish, the marketplace will be available via GitHub:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
claude plugin marketplace add unbraind/pm-cli
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Plugin Components
|
|
35
|
-
|
|
36
|
-
| Component | Path | What it provides |
|
|
37
|
-
|-----------|------|-----------------|
|
|
38
|
-
| MCP server | `scripts/pm-mcp-server.mjs` | 18 native MCP tools |
|
|
39
|
-
| Skills | `skills/` | 5 workflow skills auto-loaded in Claude Code |
|
|
40
|
-
| Commands | `commands/` | 14 slash commands |
|
|
41
|
-
| Agents | `agents/` | 3 subagents + 1 delivery chain |
|
|
42
|
-
| Hooks | `hooks/` | Session-start context injection |
|
|
43
|
-
|
|
44
|
-
### MCP Tools (18)
|
|
45
|
-
|
|
46
|
-
Narrow tools: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_update`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, `pm_guide`
|
|
47
|
-
|
|
48
|
-
General tool: `pm_run` (with explicit `action` for everything else)
|
|
49
|
-
|
|
50
|
-
### Subagents (4)
|
|
51
|
-
|
|
52
|
-
| Agent | Description |
|
|
53
|
-
|-------|-------------|
|
|
54
|
-
| `pm-coordinator` | Multi-item batch coordination |
|
|
55
|
-
| `pm-triage-agent` | Duplicate-safe item creation with lineage |
|
|
56
|
-
| `pm-verification-agent` | Evidence collection and close readiness |
|
|
57
|
-
| `pm-delivery-chain` | Full triage → implement → verify orchestration |
|
|
58
|
-
|
|
59
|
-
### Session Hook
|
|
60
|
-
|
|
61
|
-
The session-start hook runs natively:
|
|
62
|
-
1. Walks up from plugin root to find `dist/pi/native.js` in a repo checkout
|
|
63
|
-
2. Falls back to `npx @unbrained/pm-cli` if no local dist
|
|
64
|
-
3. No `pm` CLI global install required in either path
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Pi Native Package
|
|
69
|
-
|
|
70
|
-
The Pi package at `.pi/` exposes pm through Pi's native extension API.
|
|
71
|
-
|
|
72
|
-
### Install
|
|
73
|
-
|
|
74
|
-
After the package is published:
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
pi install npm:@unbrained/pm-cli
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
From a local checkout:
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
pnpm build
|
|
84
|
-
pi install -l .
|
|
85
|
-
# or try without writing settings
|
|
86
|
-
pi --no-extensions -e .
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
`pnpm build` is required for local checkouts because the Pi extension imports the compiled native integration from `dist/pi/native.js`.
|
|
90
|
-
|
|
91
|
-
### Package Resources
|
|
92
|
-
|
|
93
|
-
The root `package.json` declares the Pi manifest:
|
|
94
|
-
|
|
95
|
-
- `pi.extensions`: `.pi/extensions/pm-cli/index.js`
|
|
96
|
-
- `pi.skills`: `.pi/skills`
|
|
97
|
-
- `pi.prompts`: `.pi/prompts`
|
|
98
|
-
|
|
99
|
-
The extension registers:
|
|
100
|
-
|
|
101
|
-
- native `pm` tool using pm command modules directly, not the `pm` shell command
|
|
102
|
-
- custom TUI rendering for pm tool calls/results (context, list/search, item details, history/activity)
|
|
103
|
-
- `/pm-context`, `/pm-board`, `/pm-item`, `/pm-history`, `/pm-start`, `/pm-close`, `/pm-actions`, and `/pm-workflows` helper commands
|
|
104
|
-
- `@pm-...` item autocomplete layered on top of Pi's editor completion
|
|
105
|
-
- footer status and a small below-editor widget (`pm native ready`) in interactive mode
|
|
106
|
-
|
|
107
|
-
### Native Tool Usage
|
|
108
|
-
|
|
109
|
-
Use the Pi `pm` tool with an `action` field. Examples:
|
|
110
|
-
|
|
111
|
-
```json
|
|
112
|
-
{ "action": "context", "limit": 10 }
|
|
113
|
-
{ "action": "search", "query": "pi extension", "limit": 10 }
|
|
114
|
-
{ "action": "start-task", "id": "pm-1234", "author": "pi-agent" }
|
|
115
|
-
{ "action": "files", "id": "pm-1234", "add": ["path=src/file.ts,scope=project,note=implementation"], "author": "pi-agent" }
|
|
116
|
-
{ "action": "close-task", "id": "pm-1234", "text": "Verified and complete", "author": "pi-agent", "validateClose": "warn" }
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
For real project tracking, leave `path` unset. For tests, set `path` to a sandbox pm root and isolate `PM_GLOBAL_PATH`.
|
|
120
|
-
|
|
121
|
-
### Pi TUI Commands
|
|
122
|
-
|
|
123
|
-
```text
|
|
124
|
-
/pm-board [limit] # context dashboard with active items
|
|
125
|
-
/pm-item <pm-id> # item details and recent comments
|
|
126
|
-
/pm-history <pm-id> # item history panel
|
|
127
|
-
/pm-actions # installed native action list
|
|
128
|
-
/pm-workflows # suggested native pm workflows
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Pi Skills and Subagents
|
|
132
|
-
|
|
133
|
-
- Skills: `pm-native`, `pm-release`
|
|
134
|
-
- Prompt template: `/pm-workflow`
|
|
135
|
-
- Subagent files: `.pi/agents/pm-triage-agent.md`, `.pi/agents/pm-verification-agent.md`, `.pi/chains/pm-native-delivery.chain.md`
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## Supported Surface
|
|
140
|
-
|
|
141
|
-
Both integrations cover the core pm action set: init/config/extensions, item creation and lifecycle, list/search/context/calendar/activity, files/docs/deps/tests, validation/health/gc/contracts, templates, test-runs, guide workflows, bundled beads/todos import/export, and lifecycle shortcuts (`start-task`, `pause-task`, `close-task`).
|
|
File without changes
|
|
File without changes
|