agentplane 0.1.4 → 0.1.6

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.
Files changed (85) hide show
  1. package/dist/agents/agents-template.d.ts.map +1 -0
  2. package/dist/{agents-template.js → agents/agents-template.js} +2 -2
  3. package/dist/{task-backend.d.ts → backends/task-backend.d.ts} +5 -3
  4. package/dist/backends/task-backend.d.ts.map +1 -0
  5. package/dist/{task-backend.js → backends/task-backend.js} +102 -268
  6. package/dist/backends/task-index.d.ts +16 -0
  7. package/dist/backends/task-index.d.ts.map +1 -0
  8. package/dist/backends/task-index.js +84 -0
  9. package/dist/cli/archive.d.ts +16 -0
  10. package/dist/cli/archive.d.ts.map +1 -0
  11. package/dist/cli/archive.js +149 -0
  12. package/dist/cli/checksum.d.ts +3 -0
  13. package/dist/cli/checksum.d.ts.map +1 -0
  14. package/dist/cli/checksum.js +12 -0
  15. package/dist/cli/command-guide.d.ts.map +1 -0
  16. package/dist/cli/error-map.d.ts +4 -0
  17. package/dist/cli/error-map.d.ts.map +1 -0
  18. package/dist/cli/error-map.js +42 -0
  19. package/dist/cli/exit-codes.d.ts +3 -0
  20. package/dist/cli/exit-codes.d.ts.map +1 -0
  21. package/dist/cli/exit-codes.js +12 -0
  22. package/dist/cli/help.d.ts.map +1 -0
  23. package/dist/{help.js → cli/help.js} +1 -1
  24. package/dist/cli/http.d.ts +4 -0
  25. package/dist/cli/http.d.ts.map +1 -0
  26. package/dist/cli/http.js +95 -0
  27. package/dist/cli/output.d.ts +16 -0
  28. package/dist/cli/output.d.ts.map +1 -0
  29. package/dist/cli/output.js +47 -0
  30. package/dist/cli/recipes-bundled.js +2 -2
  31. package/dist/cli/run-cli.d.ts.map +1 -0
  32. package/dist/cli/run-cli.js +2681 -0
  33. package/dist/{run-cli.test-helpers.d.ts → cli/run-cli.test-helpers.d.ts} +6 -0
  34. package/dist/cli/run-cli.test-helpers.d.ts.map +1 -0
  35. package/dist/{run-cli.test-helpers.js → cli/run-cli.test-helpers.js} +67 -0
  36. package/dist/cli/update-check.d.ts +31 -0
  37. package/dist/cli/update-check.d.ts.map +1 -0
  38. package/dist/cli/update-check.js +86 -0
  39. package/dist/cli.js +1 -1
  40. package/dist/commands/backend.d.ts +15 -0
  41. package/dist/commands/backend.d.ts.map +1 -0
  42. package/dist/commands/backend.js +211 -0
  43. package/dist/commands/recipes.d.ts +13 -0
  44. package/dist/commands/recipes.d.ts.map +1 -0
  45. package/dist/commands/recipes.js +1919 -0
  46. package/dist/commands/upgrade.d.ts +6 -0
  47. package/dist/commands/upgrade.d.ts.map +1 -0
  48. package/dist/commands/upgrade.js +291 -0
  49. package/dist/commands/workflow.d.ts +367 -0
  50. package/dist/commands/workflow.d.ts.map +1 -0
  51. package/dist/commands/workflow.js +4619 -0
  52. package/dist/meta/version.d.ts.map +1 -0
  53. package/dist/meta/version.js +20 -0
  54. package/dist/recipes/bundled-recipes.d.ts.map +1 -0
  55. package/dist/shared/comment-format.d.ts.map +1 -0
  56. package/dist/shared/env.d.ts.map +1 -0
  57. package/dist/{errors.d.ts → shared/errors.d.ts} +1 -3
  58. package/dist/shared/errors.d.ts.map +1 -0
  59. package/dist/{errors.js → shared/errors.js} +1 -3
  60. package/package.json +6 -2
  61. package/dist/agents-template.d.ts.map +0 -1
  62. package/dist/bundled-recipes.d.ts.map +0 -1
  63. package/dist/command-guide.d.ts.map +0 -1
  64. package/dist/comment-format.d.ts.map +0 -1
  65. package/dist/env.d.ts.map +0 -1
  66. package/dist/errors.d.ts.map +0 -1
  67. package/dist/help.d.ts.map +0 -1
  68. package/dist/run-cli.d.ts.map +0 -1
  69. package/dist/run-cli.js +0 -9454
  70. package/dist/run-cli.test-helpers.d.ts.map +0 -1
  71. package/dist/task-backend.d.ts.map +0 -1
  72. package/dist/version.d.ts.map +0 -1
  73. package/dist/version.js +0 -3
  74. /package/dist/{agents-template.d.ts → agents/agents-template.d.ts} +0 -0
  75. /package/dist/{command-guide.d.ts → cli/command-guide.d.ts} +0 -0
  76. /package/dist/{command-guide.js → cli/command-guide.js} +0 -0
  77. /package/dist/{help.d.ts → cli/help.d.ts} +0 -0
  78. /package/dist/{run-cli.d.ts → cli/run-cli.d.ts} +0 -0
  79. /package/dist/{version.d.ts → meta/version.d.ts} +0 -0
  80. /package/dist/{bundled-recipes.d.ts → recipes/bundled-recipes.d.ts} +0 -0
  81. /package/dist/{bundled-recipes.js → recipes/bundled-recipes.js} +0 -0
  82. /package/dist/{comment-format.d.ts → shared/comment-format.d.ts} +0 -0
  83. /package/dist/{comment-format.js → shared/comment-format.js} +0 -0
  84. /package/dist/{env.d.ts → shared/env.d.ts} +0 -0
  85. /package/dist/{env.js → shared/env.js} +0 -0
@@ -0,0 +1,6 @@
1
+ export declare function cmdUpgrade(opts: {
2
+ cwd: string;
3
+ rootOverride?: string;
4
+ args: string[];
5
+ }): Promise<number>;
6
+ //# sourceMappingURL=upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAwJA,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2KlB"}
@@ -0,0 +1,291 @@
1
+ import { mkdir, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { loadConfig, resolveProject, saveConfig, setByDottedKey } from "@agentplaneorg/core";
5
+ import { backupPath, fileExists, getPathKind } from "../cli/fs-utils.js";
6
+ import { downloadToFile, fetchJson } from "../cli/http.js";
7
+ import { parseSha256Text, sha256File } from "../cli/checksum.js";
8
+ import { extractArchive } from "../cli/archive.js";
9
+ import { invalidFieldMessage, invalidValueMessage, missingValueMessage, requiredFieldMessage, usageMessage, } from "../cli/output.js";
10
+ import { exitCodeForError } from "../cli/exit-codes.js";
11
+ import { CliError } from "../shared/errors.js";
12
+ const DEFAULT_UPGRADE_ASSET = "agentplane-upgrade.tar.gz";
13
+ const DEFAULT_UPGRADE_CHECKSUM_ASSET = "agentplane-upgrade.tar.gz.sha256";
14
+ const UPGRADE_USAGE = "Usage: agentplane upgrade [--tag <tag>] [--dry-run] [--no-backup] [--source <repo-url>] [--bundle <path|url>] [--checksum <path|url>]";
15
+ const UPGRADE_USAGE_EXAMPLE = "agentplane upgrade --tag v0.1.4 --dry-run";
16
+ function parseUpgradeFlags(args) {
17
+ const out = { dryRun: false, backup: true };
18
+ for (let i = 0; i < args.length; i++) {
19
+ const arg = args[i];
20
+ if (!arg)
21
+ continue;
22
+ if (!arg.startsWith("--")) {
23
+ throw new CliError({
24
+ exitCode: 2,
25
+ code: "E_USAGE",
26
+ message: usageMessage(UPGRADE_USAGE, UPGRADE_USAGE_EXAMPLE),
27
+ });
28
+ }
29
+ if (arg === "--dry-run") {
30
+ out.dryRun = true;
31
+ continue;
32
+ }
33
+ if (arg === "--no-backup") {
34
+ out.backup = false;
35
+ continue;
36
+ }
37
+ const next = args[i + 1];
38
+ if (!next) {
39
+ throw new CliError({ exitCode: 2, code: "E_USAGE", message: missingValueMessage(arg) });
40
+ }
41
+ switch (arg) {
42
+ case "--source": {
43
+ out.source = next;
44
+ break;
45
+ }
46
+ case "--tag": {
47
+ out.tag = next;
48
+ break;
49
+ }
50
+ case "--bundle": {
51
+ out.bundle = next;
52
+ break;
53
+ }
54
+ case "--checksum": {
55
+ out.checksum = next;
56
+ break;
57
+ }
58
+ case "--asset": {
59
+ out.asset = next;
60
+ break;
61
+ }
62
+ case "--checksum-asset": {
63
+ out.checksumAsset = next;
64
+ break;
65
+ }
66
+ default: {
67
+ throw new CliError({
68
+ exitCode: 2,
69
+ code: "E_USAGE",
70
+ message: usageMessage(UPGRADE_USAGE, UPGRADE_USAGE_EXAMPLE),
71
+ });
72
+ }
73
+ }
74
+ i++;
75
+ }
76
+ if ((out.bundle && !out.checksum) || (!out.bundle && out.checksum)) {
77
+ throw new CliError({
78
+ exitCode: 2,
79
+ code: "E_USAGE",
80
+ message: usageMessage(UPGRADE_USAGE, UPGRADE_USAGE_EXAMPLE),
81
+ });
82
+ }
83
+ return out;
84
+ }
85
+ function parseGitHubRepo(source) {
86
+ const trimmed = source.trim();
87
+ if (!trimmed)
88
+ throw new Error(requiredFieldMessage("config.framework.source"));
89
+ if (!trimmed.includes("github.com")) {
90
+ throw new Error(invalidFieldMessage("config.framework.source", "GitHub URL"));
91
+ }
92
+ try {
93
+ const url = new URL(trimmed);
94
+ const parts = url.pathname.replaceAll(".git", "").split("/").filter(Boolean);
95
+ if (parts.length < 2)
96
+ throw new Error(invalidValueMessage("GitHub repo URL", trimmed, "owner/repo"));
97
+ return { owner: parts[0], repo: parts[1] };
98
+ }
99
+ catch {
100
+ throw new Error(invalidValueMessage("GitHub repo URL", trimmed, "owner/repo"));
101
+ }
102
+ }
103
+ async function resolveUpgradeRoot(extractedDir) {
104
+ const entries = await readdir(extractedDir, { withFileTypes: true });
105
+ const dirs = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
106
+ const files = entries.filter((entry) => entry.isFile()).map((entry) => entry.name);
107
+ if (files.length === 0 && dirs.length === 1) {
108
+ return path.join(extractedDir, dirs[0]);
109
+ }
110
+ return extractedDir;
111
+ }
112
+ async function listFilesRecursive(rootDir) {
113
+ const out = [];
114
+ const entries = await readdir(rootDir, { withFileTypes: true });
115
+ for (const entry of entries) {
116
+ const fullPath = path.join(rootDir, entry.name);
117
+ if (entry.isDirectory()) {
118
+ out.push(...(await listFilesRecursive(fullPath)));
119
+ }
120
+ else if (entry.isFile()) {
121
+ out.push(fullPath);
122
+ }
123
+ }
124
+ return out;
125
+ }
126
+ function isAllowedUpgradePath(relPath) {
127
+ if (relPath === "AGENTS.md")
128
+ return true;
129
+ return relPath.startsWith(".agentplane/");
130
+ }
131
+ export async function cmdUpgrade(opts) {
132
+ const flags = parseUpgradeFlags(opts.args);
133
+ const resolved = await resolveProject({
134
+ cwd: opts.cwd,
135
+ rootOverride: opts.rootOverride ?? null,
136
+ });
137
+ const loaded = await loadConfig(resolved.agentplaneDir);
138
+ const source = flags.source ?? loaded.config.framework.source;
139
+ let tempRoot = null;
140
+ let extractRoot = null;
141
+ try {
142
+ tempRoot = await mkdtemp(path.join(os.tmpdir(), "agentplane-upgrade-"));
143
+ let bundlePath = "";
144
+ let checksumPath = "";
145
+ if (flags.bundle) {
146
+ const isUrl = flags.bundle.startsWith("http://") || flags.bundle.startsWith("https://");
147
+ bundlePath = isUrl ? path.join(tempRoot, "bundle.tar.gz") : path.resolve(flags.bundle);
148
+ if (isUrl) {
149
+ await downloadToFile(flags.bundle, bundlePath);
150
+ }
151
+ const checksumValue = flags.checksum ?? "";
152
+ const checksumIsUrl = checksumValue.startsWith("http://") || checksumValue.startsWith("https://");
153
+ checksumPath = checksumIsUrl
154
+ ? path.join(tempRoot, "bundle.tar.gz.sha256")
155
+ : path.resolve(checksumValue);
156
+ if (checksumIsUrl) {
157
+ await downloadToFile(checksumValue, checksumPath);
158
+ }
159
+ }
160
+ else {
161
+ const { owner, repo } = parseGitHubRepo(source);
162
+ const releaseUrl = flags.tag
163
+ ? `https://api.github.com/repos/${owner}/${repo}/releases/tags/${flags.tag}`
164
+ : `https://api.github.com/repos/${owner}/${repo}/releases/latest`;
165
+ const release = (await fetchJson(releaseUrl));
166
+ const assets = Array.isArray(release.assets) ? release.assets : [];
167
+ const assetName = flags.asset ?? DEFAULT_UPGRADE_ASSET;
168
+ const checksumName = flags.checksumAsset ?? DEFAULT_UPGRADE_CHECKSUM_ASSET;
169
+ const asset = assets.find((entry) => entry.name === assetName);
170
+ const checksumAsset = assets.find((entry) => entry.name === checksumName);
171
+ if (!asset?.browser_download_url || !checksumAsset?.browser_download_url) {
172
+ throw new CliError({
173
+ exitCode: exitCodeForError("E_NETWORK"),
174
+ code: "E_NETWORK",
175
+ message: `Upgrade assets not found in ${owner}/${repo} release`,
176
+ });
177
+ }
178
+ bundlePath = path.join(tempRoot, assetName);
179
+ checksumPath = path.join(tempRoot, checksumName);
180
+ await downloadToFile(asset.browser_download_url, bundlePath);
181
+ await downloadToFile(checksumAsset.browser_download_url, checksumPath);
182
+ }
183
+ const expected = parseSha256Text(await readFile(checksumPath, "utf8"));
184
+ if (!expected) {
185
+ throw new CliError({
186
+ exitCode: 3,
187
+ code: "E_VALIDATION",
188
+ message: "Upgrade checksum file is empty or invalid",
189
+ });
190
+ }
191
+ const actual = await sha256File(bundlePath);
192
+ if (actual !== expected) {
193
+ throw new CliError({
194
+ exitCode: 3,
195
+ code: "E_VALIDATION",
196
+ message: `Upgrade checksum mismatch (expected ${expected}, got ${actual})`,
197
+ });
198
+ }
199
+ extractRoot = await mkdtemp(path.join(os.tmpdir(), "agentplane-upgrade-extract-"));
200
+ await extractArchive({
201
+ archivePath: bundlePath,
202
+ destDir: extractRoot,
203
+ usage: UPGRADE_USAGE,
204
+ example: UPGRADE_USAGE_EXAMPLE,
205
+ });
206
+ const bundleRoot = await resolveUpgradeRoot(extractRoot);
207
+ const files = await listFilesRecursive(bundleRoot);
208
+ const additions = [];
209
+ const updates = [];
210
+ const skipped = [];
211
+ const fileContents = new Map();
212
+ for (const filePath of files) {
213
+ let rel = path.relative(bundleRoot, filePath).replaceAll("\\", "/");
214
+ if (!rel || rel.startsWith("..") || path.isAbsolute(rel)) {
215
+ throw new CliError({
216
+ exitCode: 3,
217
+ code: "E_VALIDATION",
218
+ message: `Invalid bundle path: ${filePath}`,
219
+ });
220
+ }
221
+ if (rel === ".git" || rel.startsWith(".git/")) {
222
+ throw new CliError({
223
+ exitCode: 3,
224
+ code: "E_VALIDATION",
225
+ message: `Upgrade bundle cannot write to .git (${rel})`,
226
+ });
227
+ }
228
+ if (!isAllowedUpgradePath(rel)) {
229
+ throw new CliError({
230
+ exitCode: 3,
231
+ code: "E_VALIDATION",
232
+ message: `Upgrade bundle path not allowed: ${rel}`,
233
+ });
234
+ }
235
+ const destPath = path.join(resolved.gitRoot, rel);
236
+ const kind = await getPathKind(destPath);
237
+ if (kind === "dir") {
238
+ throw new CliError({
239
+ exitCode: 5,
240
+ code: "E_IO",
241
+ message: `Upgrade target is a directory: ${rel}`,
242
+ });
243
+ }
244
+ const data = await readFile(filePath);
245
+ fileContents.set(rel, data);
246
+ if (kind === null) {
247
+ additions.push(rel);
248
+ }
249
+ else {
250
+ const existing = await readFile(destPath);
251
+ if (Buffer.compare(existing, data) === 0) {
252
+ skipped.push(rel);
253
+ }
254
+ else {
255
+ updates.push(rel);
256
+ }
257
+ }
258
+ }
259
+ if (flags.dryRun) {
260
+ process.stdout.write(`Upgrade dry-run: ${additions.length} add, ${updates.length} update, ${skipped.length} unchanged\n`);
261
+ for (const rel of additions)
262
+ process.stdout.write(`ADD ${rel}\n`);
263
+ for (const rel of updates)
264
+ process.stdout.write(`UPDATE ${rel}\n`);
265
+ for (const rel of skipped)
266
+ process.stdout.write(`SKIP ${rel}\n`);
267
+ return 0;
268
+ }
269
+ for (const rel of [...additions, ...updates]) {
270
+ const destPath = path.join(resolved.gitRoot, rel);
271
+ if (flags.backup && (await fileExists(destPath))) {
272
+ await backupPath(destPath);
273
+ }
274
+ await mkdir(path.dirname(destPath), { recursive: true });
275
+ const data = fileContents.get(rel);
276
+ if (data)
277
+ await writeFile(destPath, data);
278
+ }
279
+ const raw = { ...loaded.raw };
280
+ setByDottedKey(raw, "framework.last_update", new Date().toISOString());
281
+ await saveConfig(resolved.agentplaneDir, raw);
282
+ process.stdout.write(`Upgrade applied: ${additions.length} add, ${updates.length} update, ${skipped.length} unchanged\n`);
283
+ return 0;
284
+ }
285
+ finally {
286
+ if (extractRoot)
287
+ await rm(extractRoot, { recursive: true, force: true });
288
+ if (tempRoot)
289
+ await rm(tempRoot, { recursive: true, force: true });
290
+ }
291
+ }
@@ -0,0 +1,367 @@
1
+ export declare const TASK_NEW_USAGE = "Usage: agentplane task new --title <text> --description <text> --priority <low|normal|med|high> --owner <id> --tag <tag> [--tag <tag>...]";
2
+ export declare const TASK_NEW_USAGE_EXAMPLE = "agentplane task new --title \"Refactor CLI\" --description \"Improve CLI output\" --priority med --owner CODER --tag cli";
3
+ export declare const TASK_ADD_USAGE = "Usage: agentplane task add <task-id> [<task-id> ...] --title <text> --description <text> --priority <low|normal|med|high> --owner <id> --tag <tag> [--tag <tag>...]";
4
+ export declare const TASK_ADD_USAGE_EXAMPLE = "agentplane task add 202602030608-F1Q8AB --title \"...\" --description \"...\" --priority med --owner CODER --tag cli";
5
+ export declare const TASK_SCRUB_USAGE = "Usage: agentplane task scrub --find <text> --replace <text> [flags]";
6
+ export declare const TASK_SCRUB_USAGE_EXAMPLE = "agentplane task scrub --find \"agentctl\" --replace \"agentplane\" --dry-run";
7
+ export declare const TASK_UPDATE_USAGE = "Usage: agentplane task update <task-id> [flags]";
8
+ export declare const TASK_UPDATE_USAGE_EXAMPLE = "agentplane task update 202602030608-F1Q8AB --title \"...\" --owner CODER";
9
+ export declare const TASK_SCAFFOLD_USAGE = "Usage: agentplane task scaffold <task-id> [--title <text>] [--overwrite] [--force]";
10
+ export declare const TASK_SCAFFOLD_USAGE_EXAMPLE = "agentplane task scaffold 202602030608-F1Q8AB";
11
+ export declare const BRANCH_BASE_USAGE = "Usage: agentplane branch base get|set <name>";
12
+ export declare const BRANCH_BASE_USAGE_EXAMPLE = "agentplane branch base set main";
13
+ export declare const BRANCH_STATUS_USAGE = "Usage: agentplane branch status [--branch <name>] [--base <name>]";
14
+ export declare const BRANCH_STATUS_USAGE_EXAMPLE = "agentplane branch status --base main";
15
+ export declare const BRANCH_REMOVE_USAGE = "Usage: agentplane branch remove [--branch <name>] [--worktree <path>] [--force] [--quiet]";
16
+ export declare const BRANCH_REMOVE_USAGE_EXAMPLE = "agentplane branch remove --branch task/20260203-F1Q8AB --worktree .agentplane/worktrees/task";
17
+ export declare function cmdTaskNew(opts: {
18
+ cwd: string;
19
+ rootOverride?: string;
20
+ args: string[];
21
+ }): Promise<number>;
22
+ export declare function cmdTaskAdd(opts: {
23
+ cwd: string;
24
+ rootOverride?: string;
25
+ args: string[];
26
+ }): Promise<number>;
27
+ export declare function cmdTaskUpdate(opts: {
28
+ cwd: string;
29
+ rootOverride?: string;
30
+ args: string[];
31
+ }): Promise<number>;
32
+ export declare function cmdTaskScrub(opts: {
33
+ cwd: string;
34
+ rootOverride?: string;
35
+ args: string[];
36
+ }): Promise<number>;
37
+ export declare function cmdTaskListWithFilters(opts: {
38
+ cwd: string;
39
+ rootOverride?: string;
40
+ args: string[];
41
+ }): Promise<number>;
42
+ export declare function cmdTaskNext(opts: {
43
+ cwd: string;
44
+ rootOverride?: string;
45
+ args: string[];
46
+ }): Promise<number>;
47
+ export declare function cmdReady(opts: {
48
+ cwd: string;
49
+ rootOverride?: string;
50
+ taskId: string;
51
+ }): Promise<number>;
52
+ export declare function cmdTaskSearch(opts: {
53
+ cwd: string;
54
+ rootOverride?: string;
55
+ query: string;
56
+ args: string[];
57
+ }): Promise<number>;
58
+ export declare function cmdTaskScaffold(opts: {
59
+ cwd: string;
60
+ rootOverride?: string;
61
+ args: string[];
62
+ }): Promise<number>;
63
+ export declare function cmdTaskNormalize(opts: {
64
+ cwd: string;
65
+ rootOverride?: string;
66
+ args: string[];
67
+ }): Promise<number>;
68
+ export declare function cmdTaskMigrate(opts: {
69
+ cwd: string;
70
+ rootOverride?: string;
71
+ args: string[];
72
+ }): Promise<number>;
73
+ export declare function cmdTaskComment(opts: {
74
+ cwd: string;
75
+ rootOverride?: string;
76
+ taskId: string;
77
+ author: string;
78
+ body: string;
79
+ }): Promise<number>;
80
+ export declare function cmdTaskSetStatus(opts: {
81
+ cwd: string;
82
+ rootOverride?: string;
83
+ taskId: string;
84
+ status: string;
85
+ author?: string;
86
+ body?: string;
87
+ commit?: string;
88
+ force: boolean;
89
+ commitFromComment: boolean;
90
+ commitEmoji?: string;
91
+ commitAllow: string[];
92
+ commitAutoAllow: boolean;
93
+ commitAllowTasks: boolean;
94
+ commitRequireClean: boolean;
95
+ confirmStatusCommit: boolean;
96
+ quiet: boolean;
97
+ }): Promise<number>;
98
+ export declare function cmdTaskShow(opts: {
99
+ cwd: string;
100
+ rootOverride?: string;
101
+ taskId: string;
102
+ }): Promise<number>;
103
+ export declare function cmdTaskList(opts: {
104
+ cwd: string;
105
+ rootOverride?: string;
106
+ args: string[];
107
+ }): Promise<number>;
108
+ export declare function cmdTaskExport(opts: {
109
+ cwd: string;
110
+ rootOverride?: string;
111
+ }): Promise<number>;
112
+ export declare function cmdTaskLint(opts: {
113
+ cwd: string;
114
+ rootOverride?: string;
115
+ }): Promise<number>;
116
+ export declare const IDE_SYNC_USAGE = "Usage: agentplane ide sync";
117
+ export declare const IDE_SYNC_USAGE_EXAMPLE = "agentplane ide sync";
118
+ export declare const GUARD_COMMIT_USAGE = "Usage: agentplane guard commit <task-id> -m <message> --allow <path> [--allow <path>...] [--auto-allow] [--allow-tasks] [--require-clean] [--quiet]";
119
+ export declare const GUARD_COMMIT_USAGE_EXAMPLE = "agentplane guard commit 202602030608-F1Q8AB -m \"\u2728 F1Q8AB update\" --allow packages/agentplane";
120
+ export declare const COMMIT_USAGE = "Usage: agentplane commit <task-id> -m <message>";
121
+ export declare const COMMIT_USAGE_EXAMPLE = "agentplane commit 202602030608-F1Q8AB -m \"\u2728 F1Q8AB update\"";
122
+ export declare const START_USAGE = "Usage: agentplane start <task-id> --author <id> --body <text> [flags]";
123
+ export declare const START_USAGE_EXAMPLE = "agentplane start 202602030608-F1Q8AB --author CODER --body \"Start: ...\"";
124
+ export declare const BLOCK_USAGE = "Usage: agentplane block <task-id> --author <id> --body <text> [flags]";
125
+ export declare const BLOCK_USAGE_EXAMPLE = "agentplane block 202602030608-F1Q8AB --author CODER --body \"Blocked: ...\"";
126
+ export declare const FINISH_USAGE = "Usage: agentplane finish <task-id> [<task-id>...] --author <id> --body <text> [flags]";
127
+ export declare const FINISH_USAGE_EXAMPLE = "agentplane finish 202602030608-F1Q8AB --author INTEGRATOR --body \"Verified: ...\"";
128
+ export declare const VERIFY_USAGE = "Usage: agentplane verify <task-id> [--cwd <path>] [--log <path>] [--skip-if-unchanged] [--quiet] [--require] [--yes]";
129
+ export declare const VERIFY_USAGE_EXAMPLE = "agentplane verify 202602030608-F1Q8AB";
130
+ export declare const WORK_START_USAGE = "Usage: agentplane work start <task-id> --agent <id> --slug <slug> --worktree";
131
+ export declare const WORK_START_USAGE_EXAMPLE = "agentplane work start 202602030608-F1Q8AB --agent CODER --slug cli --worktree";
132
+ export declare const PR_OPEN_USAGE = "Usage: agentplane pr open <task-id> --author <id> [--branch <name>]";
133
+ export declare const PR_OPEN_USAGE_EXAMPLE = "agentplane pr open 202602030608-F1Q8AB --author CODER";
134
+ export declare const PR_UPDATE_USAGE = "Usage: agentplane pr update <task-id>";
135
+ export declare const PR_UPDATE_USAGE_EXAMPLE = "agentplane pr update 202602030608-F1Q8AB";
136
+ export declare const PR_CHECK_USAGE = "Usage: agentplane pr check <task-id>";
137
+ export declare const PR_CHECK_USAGE_EXAMPLE = "agentplane pr check 202602030608-F1Q8AB";
138
+ export declare const PR_NOTE_USAGE = "Usage: agentplane pr note <task-id> --author <id> --body <text>";
139
+ export declare const PR_NOTE_USAGE_EXAMPLE = "agentplane pr note 202602030608-F1Q8AB --author REVIEWER --body \"...\"";
140
+ export declare const INTEGRATE_USAGE = "Usage: agentplane integrate <task-id> [--branch <name>] [--base <name>] [--merge-strategy squash|merge|rebase] [--run-verify] [--dry-run] [--quiet]";
141
+ export declare const INTEGRATE_USAGE_EXAMPLE = "agentplane integrate 202602030608-F1Q8AB --run-verify";
142
+ export declare const CLEANUP_MERGED_USAGE = "Usage: agentplane cleanup merged [--base <name>] [--yes] [--archive] [--quiet]";
143
+ export declare const CLEANUP_MERGED_USAGE_EXAMPLE = "agentplane cleanup merged --yes";
144
+ export declare function dedupeStrings(items: string[]): string[];
145
+ export declare function suggestAllowPrefixes(paths: string[]): string[];
146
+ export declare const HOOK_NAMES: readonly ["commit-msg", "pre-commit", "pre-push"];
147
+ export declare function gitInitRepo(cwd: string, branch: string): Promise<void>;
148
+ export declare function resolveInitBaseBranch(gitRoot: string, fallback: string): Promise<string>;
149
+ export declare function promptInitBaseBranch(opts: {
150
+ gitRoot: string;
151
+ fallback: string;
152
+ }): Promise<string>;
153
+ export declare function ensureInitCommit(opts: {
154
+ gitRoot: string;
155
+ baseBranch: string;
156
+ installPaths: string[];
157
+ version: string;
158
+ skipHooks: boolean;
159
+ }): Promise<void>;
160
+ export declare function cmdGuardClean(opts: {
161
+ cwd: string;
162
+ rootOverride?: string;
163
+ quiet: boolean;
164
+ }): Promise<number>;
165
+ export declare function cmdGuardSuggestAllow(opts: {
166
+ cwd: string;
167
+ rootOverride?: string;
168
+ format: "lines" | "args";
169
+ }): Promise<number>;
170
+ type GuardCommitOptions = {
171
+ cwd: string;
172
+ rootOverride?: string;
173
+ taskId: string;
174
+ message: string;
175
+ allow: string[];
176
+ allowTasks: boolean;
177
+ requireClean: boolean;
178
+ quiet: boolean;
179
+ };
180
+ export declare function cmdGuardCommit(opts: GuardCommitOptions): Promise<number>;
181
+ export declare function cmdCommit(opts: {
182
+ cwd: string;
183
+ rootOverride?: string;
184
+ taskId: string;
185
+ message: string;
186
+ allow: string[];
187
+ autoAllow: boolean;
188
+ allowTasks: boolean;
189
+ allowBase: boolean;
190
+ requireClean: boolean;
191
+ quiet: boolean;
192
+ }): Promise<number>;
193
+ export declare function cmdStart(opts: {
194
+ cwd: string;
195
+ rootOverride?: string;
196
+ taskId: string;
197
+ author: string;
198
+ body: string;
199
+ commitFromComment: boolean;
200
+ commitEmoji?: string;
201
+ commitAllow: string[];
202
+ commitAutoAllow: boolean;
203
+ commitAllowTasks: boolean;
204
+ commitRequireClean: boolean;
205
+ confirmStatusCommit: boolean;
206
+ force: boolean;
207
+ quiet: boolean;
208
+ }): Promise<number>;
209
+ export declare function cmdBlock(opts: {
210
+ cwd: string;
211
+ rootOverride?: string;
212
+ taskId: string;
213
+ author: string;
214
+ body: string;
215
+ commitFromComment: boolean;
216
+ commitEmoji?: string;
217
+ commitAllow: string[];
218
+ commitAutoAllow: boolean;
219
+ commitAllowTasks: boolean;
220
+ commitRequireClean: boolean;
221
+ confirmStatusCommit: boolean;
222
+ force: boolean;
223
+ quiet: boolean;
224
+ }): Promise<number>;
225
+ export declare function cmdFinish(opts: {
226
+ cwd: string;
227
+ rootOverride?: string;
228
+ taskIds: string[];
229
+ author: string;
230
+ body: string;
231
+ commit?: string;
232
+ skipVerify: boolean;
233
+ force: boolean;
234
+ noRequireTaskIdInCommit: boolean;
235
+ commitFromComment: boolean;
236
+ commitEmoji?: string;
237
+ commitAllow: string[];
238
+ commitAutoAllow: boolean;
239
+ commitAllowTasks: boolean;
240
+ commitRequireClean: boolean;
241
+ statusCommit: boolean;
242
+ statusCommitEmoji?: string;
243
+ statusCommitAllow: string[];
244
+ statusCommitAutoAllow: boolean;
245
+ statusCommitRequireClean: boolean;
246
+ confirmStatusCommit: boolean;
247
+ quiet: boolean;
248
+ }): Promise<number>;
249
+ export declare function cmdVerify(opts: {
250
+ cwd: string;
251
+ rootOverride?: string;
252
+ taskId: string;
253
+ execCwd?: string;
254
+ logPath?: string;
255
+ skipIfUnchanged: boolean;
256
+ quiet: boolean;
257
+ require: boolean;
258
+ yes: boolean;
259
+ }): Promise<number>;
260
+ export declare function cmdWorkStart(opts: {
261
+ cwd: string;
262
+ rootOverride?: string;
263
+ taskId: string;
264
+ agent: string;
265
+ slug: string;
266
+ worktree: boolean;
267
+ }): Promise<number>;
268
+ export declare function cmdPrOpen(opts: {
269
+ cwd: string;
270
+ rootOverride?: string;
271
+ taskId: string;
272
+ author: string;
273
+ branch?: string;
274
+ }): Promise<number>;
275
+ export declare function cmdPrUpdate(opts: {
276
+ cwd: string;
277
+ rootOverride?: string;
278
+ taskId: string;
279
+ }): Promise<number>;
280
+ export declare function cmdPrCheck(opts: {
281
+ cwd: string;
282
+ rootOverride?: string;
283
+ taskId: string;
284
+ }): Promise<number>;
285
+ export declare function cmdPrNote(opts: {
286
+ cwd: string;
287
+ rootOverride?: string;
288
+ taskId: string;
289
+ author: string;
290
+ body: string;
291
+ }): Promise<number>;
292
+ export declare function cmdIntegrate(opts: {
293
+ cwd: string;
294
+ rootOverride?: string;
295
+ taskId: string;
296
+ branch?: string;
297
+ base?: string;
298
+ mergeStrategy: "squash" | "merge" | "rebase";
299
+ runVerify: boolean;
300
+ dryRun: boolean;
301
+ quiet: boolean;
302
+ }): Promise<number>;
303
+ export declare function cmdCleanupMerged(opts: {
304
+ cwd: string;
305
+ rootOverride?: string;
306
+ base?: string;
307
+ yes: boolean;
308
+ archive: boolean;
309
+ quiet: boolean;
310
+ }): Promise<number>;
311
+ export declare function cmdHooksInstall(opts: {
312
+ cwd: string;
313
+ rootOverride?: string;
314
+ quiet: boolean;
315
+ }): Promise<number>;
316
+ export declare function cmdHooksUninstall(opts: {
317
+ cwd: string;
318
+ rootOverride?: string;
319
+ quiet: boolean;
320
+ }): Promise<number>;
321
+ export declare function cmdHooksRun(opts: {
322
+ cwd: string;
323
+ rootOverride?: string;
324
+ hook: (typeof HOOK_NAMES)[number];
325
+ args: string[];
326
+ }): Promise<number>;
327
+ export declare function cmdBranchBaseGet(opts: {
328
+ cwd: string;
329
+ rootOverride?: string;
330
+ }): Promise<number>;
331
+ export declare function cmdBranchBaseSet(opts: {
332
+ cwd: string;
333
+ rootOverride?: string;
334
+ value: string;
335
+ }): Promise<number>;
336
+ export declare function cmdBranchStatus(opts: {
337
+ cwd: string;
338
+ rootOverride?: string;
339
+ branch?: string;
340
+ base?: string;
341
+ }): Promise<number>;
342
+ export declare function cmdBranchRemove(opts: {
343
+ cwd: string;
344
+ rootOverride?: string;
345
+ branch?: string;
346
+ worktree?: string;
347
+ force: boolean;
348
+ quiet: boolean;
349
+ }): Promise<number>;
350
+ export declare const TASK_DOC_SET_USAGE = "Usage: agentplane task doc set <task-id> --section <name> (--text <text> | --file <path>)";
351
+ export declare const TASK_DOC_SET_USAGE_EXAMPLE = "agentplane task doc set 202602030608-F1Q8AB --section Summary --text \"...\"";
352
+ export declare const TASK_DOC_SHOW_USAGE = "Usage: agentplane task doc show <task-id> [--section <name>] [--quiet]";
353
+ export declare const TASK_DOC_SHOW_USAGE_EXAMPLE = "agentplane task doc show 202602030608-F1Q8AB --section Summary";
354
+ export declare function cmdTaskDocSet(opts: {
355
+ cwd: string;
356
+ rootOverride?: string;
357
+ taskId: string;
358
+ args: string[];
359
+ }): Promise<number>;
360
+ export declare function cmdTaskDocShow(opts: {
361
+ cwd: string;
362
+ rootOverride?: string;
363
+ taskId: string;
364
+ args: string[];
365
+ }): Promise<number>;
366
+ export {};
367
+ //# sourceMappingURL=workflow.d.ts.map