agentplane 0.1.7 → 0.1.9
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/assets/AGENTS.md +13 -2
- package/dist/backends/task-backend.d.ts +28 -0
- package/dist/backends/task-backend.d.ts.map +1 -1
- package/dist/backends/task-backend.js +85 -4
- package/dist/backends/task-index.d.ts.map +1 -1
- package/dist/backends/task-index.js +3 -6
- package/dist/cli/command-guide.d.ts.map +1 -1
- package/dist/cli/command-guide.js +10 -11
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +7 -5
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +75 -74
- package/dist/commands/backend.d.ts.map +1 -1
- package/dist/commands/backend.js +17 -2
- package/dist/commands/branch/index.d.ts.map +1 -1
- package/dist/commands/branch/index.js +3 -1
- package/dist/commands/guard/index.d.ts +24 -3
- package/dist/commands/guard/index.d.ts.map +1 -1
- package/dist/commands/guard/index.js +175 -61
- package/dist/commands/hooks/index.d.ts.map +1 -1
- package/dist/commands/hooks/index.js +39 -29
- package/dist/commands/pr/index.d.ts.map +1 -1
- package/dist/commands/pr/index.js +15 -12
- package/dist/commands/recipes.d.ts +75 -6
- package/dist/commands/recipes.d.ts.map +1 -1
- package/dist/commands/recipes.js +76 -538
- package/dist/commands/scenario.d.ts +7 -0
- package/dist/commands/scenario.d.ts.map +1 -0
- package/dist/commands/scenario.js +501 -0
- package/dist/commands/shared/network-approval.d.ts +8 -0
- package/dist/commands/shared/network-approval.d.ts.map +1 -0
- package/dist/commands/shared/network-approval.js +25 -0
- package/dist/commands/shared/task-backend.d.ts +19 -3
- package/dist/commands/shared/task-backend.d.ts.map +1 -1
- package/dist/commands/shared/task-backend.js +19 -5
- package/dist/commands/task/block.d.ts.map +1 -1
- package/dist/commands/task/block.js +22 -16
- package/dist/commands/task/comment.d.ts.map +1 -1
- package/dist/commands/task/comment.js +9 -2
- package/dist/commands/task/finish.d.ts.map +1 -1
- package/dist/commands/task/finish.js +36 -25
- package/dist/commands/task/index.d.ts +3 -0
- package/dist/commands/task/index.d.ts.map +1 -1
- package/dist/commands/task/index.js +3 -0
- package/dist/commands/task/migrate-doc.d.ts +8 -0
- package/dist/commands/task/migrate-doc.d.ts.map +1 -0
- package/dist/commands/task/migrate-doc.js +147 -0
- package/dist/commands/task/plan.d.ts +14 -0
- package/dist/commands/task/plan.d.ts.map +1 -0
- package/dist/commands/task/plan.js +217 -0
- package/dist/commands/task/scaffold.d.ts.map +1 -1
- package/dist/commands/task/scaffold.js +15 -4
- package/dist/commands/task/set-status.d.ts.map +1 -1
- package/dist/commands/task/set-status.js +18 -4
- package/dist/commands/task/shared.d.ts +5 -2
- package/dist/commands/task/shared.d.ts.map +1 -1
- package/dist/commands/task/shared.js +47 -28
- package/dist/commands/task/start.d.ts.map +1 -1
- package/dist/commands/task/start.js +24 -17
- package/dist/commands/task/verify-record.d.ts +16 -0
- package/dist/commands/task/verify-record.d.ts.map +1 -0
- package/dist/commands/task/verify-record.js +284 -0
- package/dist/commands/task/verify.d.ts +1 -13
- package/dist/commands/task/verify.d.ts.map +1 -1
- package/dist/commands/task/verify.js +1 -362
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +17 -2
- package/dist/commands/workflow.d.ts +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +1 -1
- package/dist/shared/git-log.d.ts +5 -0
- package/dist/shared/git-log.d.ts.map +1 -0
- package/dist/shared/git-log.js +14 -0
- package/dist/shared/git-path.d.ts +3 -0
- package/dist/shared/git-path.d.ts.map +1 -0
- package/dist/shared/git-path.js +30 -0
- package/dist/shared/guards.d.ts +2 -0
- package/dist/shared/guards.d.ts.map +1 -0
- package/dist/shared/guards.js +3 -0
- package/dist/shared/protected-paths.d.ts +12 -0
- package/dist/shared/protected-paths.d.ts.map +1 -0
- package/dist/shared/protected-paths.js +51 -0
- package/dist/shared/strings.d.ts +2 -0
- package/dist/shared/strings.d.ts.map +1 -0
- package/dist/shared/strings.js +14 -0
- package/package.json +2 -2
package/dist/cli/run-cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { mkdir, readdir, readFile, rm
|
|
1
|
+
import { mkdir, readdir, readFile, rm } from "node:fs/promises";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import { defaultConfig, findGitRoot, getStagedFiles, loadConfig, resolveProject, saveConfig, setByDottedKey, } from "@agentplaneorg/core";
|
|
4
|
+
import { atomicWriteFile, defaultConfig, findGitRoot, getStagedFiles, loadConfig, resolveProject, saveConfig, setByDottedKey, } from "@agentplaneorg/core";
|
|
5
5
|
import { renderHelp } from "./help.js";
|
|
6
6
|
import { listRoles, renderQuickstart, renderRole } from "./command-guide.js";
|
|
7
7
|
import { filterAgentsByWorkflow, loadAgentTemplates, loadAgentsTemplate, } from "../agents/agents-template.js";
|
|
@@ -16,8 +16,9 @@ import { CliError, formatJsonError } from "../shared/errors.js";
|
|
|
16
16
|
import { getVersion } from "../meta/version.js";
|
|
17
17
|
import { cmdUpgrade } from "../commands/upgrade.js";
|
|
18
18
|
import { BACKEND_SYNC_USAGE, BACKEND_SYNC_USAGE_EXAMPLE, cmdBackendSync, cmdSync, } from "../commands/backend.js";
|
|
19
|
-
import { cmdRecipes
|
|
20
|
-
import {
|
|
19
|
+
import { cmdRecipes } from "../commands/recipes.js";
|
|
20
|
+
import { cmdScenario } from "../commands/scenario.js";
|
|
21
|
+
import { BLOCK_USAGE, BLOCK_USAGE_EXAMPLE, BRANCH_BASE_USAGE, BRANCH_BASE_USAGE_EXAMPLE, BRANCH_REMOVE_USAGE, BRANCH_REMOVE_USAGE_EXAMPLE, BRANCH_STATUS_USAGE, BRANCH_STATUS_USAGE_EXAMPLE, CLEANUP_MERGED_USAGE, CLEANUP_MERGED_USAGE_EXAMPLE, COMMIT_USAGE, COMMIT_USAGE_EXAMPLE, FINISH_USAGE, FINISH_USAGE_EXAMPLE, GUARD_COMMIT_USAGE, GUARD_COMMIT_USAGE_EXAMPLE, HOOK_NAMES, INTEGRATE_USAGE, INTEGRATE_USAGE_EXAMPLE, PR_CHECK_USAGE, PR_CHECK_USAGE_EXAMPLE, PR_NOTE_USAGE, PR_NOTE_USAGE_EXAMPLE, PR_OPEN_USAGE, PR_OPEN_USAGE_EXAMPLE, PR_UPDATE_USAGE, PR_UPDATE_USAGE_EXAMPLE, START_USAGE, START_USAGE_EXAMPLE, TASK_DOC_SET_USAGE, TASK_DOC_SET_USAGE_EXAMPLE, TASK_DOC_SHOW_USAGE, TASK_DOC_SHOW_USAGE_EXAMPLE, VERIFY_USAGE, VERIFY_USAGE_EXAMPLE, WORK_START_USAGE, WORK_START_USAGE_EXAMPLE, cmdBlock, cmdBranchBaseGet, cmdBranchBaseClear, cmdBranchBaseExplain, cmdBranchBaseSet, cmdBranchRemove, cmdBranchStatus, cmdCleanupMerged, cmdCommit, cmdFinish, cmdGuardClean, cmdGuardCommit, cmdGuardSuggestAllow, cmdHooksInstall, cmdHooksRun, cmdHooksUninstall, cmdIntegrate, cmdPrCheck, cmdPrNote, cmdPrOpen, cmdPrUpdate, cmdReady, cmdStart, cmdTaskAdd, cmdTaskComment, cmdTaskDocSet, cmdTaskDocShow, cmdTaskExport, cmdTaskLint, cmdTaskMigrate, cmdTaskMigrateDoc, cmdTaskNew, cmdTaskNext, cmdTaskNormalize, cmdTaskPlan, cmdTaskScaffold, cmdTaskScrub, cmdTaskSearch, cmdTaskSetStatus, cmdTaskShow, cmdTaskUpdate, cmdTaskList, cmdVerify, cmdTaskVerify, cmdWorkStart, dedupeStrings, ensureInitCommit, gitInitRepo, promptInitBaseBranch, resolveInitBaseBranch, suggestAllowPrefixes, } from "../commands/workflow.js";
|
|
21
22
|
function parseGlobalArgs(argv) {
|
|
22
23
|
let help = false;
|
|
23
24
|
let version = false;
|
|
@@ -232,7 +233,7 @@ async function writeFileIfChanged(filePath, content) {
|
|
|
232
233
|
if (code !== "ENOENT")
|
|
233
234
|
throw err;
|
|
234
235
|
}
|
|
235
|
-
await
|
|
236
|
+
await atomicWriteFile(filePath, content, "utf8");
|
|
236
237
|
return true;
|
|
237
238
|
}
|
|
238
239
|
async function cmdConfigShow(opts) {
|
|
@@ -332,7 +333,7 @@ const TASK_SET_STATUS_USAGE_EXAMPLE = "agentplane task set-status 202602030608-F
|
|
|
332
333
|
const PR_GROUP_USAGE = "Usage: agentplane pr open|update|check|note <task-id>";
|
|
333
334
|
const PR_GROUP_USAGE_EXAMPLE = "agentplane pr open 202602030608-F1Q8AB --author CODER";
|
|
334
335
|
const GUARD_USAGE = "Usage: agentplane guard <subcommand>";
|
|
335
|
-
const GUARD_USAGE_EXAMPLE = 'agentplane guard commit 202602030608-F1Q8AB -m "✨ F1Q8AB
|
|
336
|
+
const GUARD_USAGE_EXAMPLE = 'agentplane guard commit 202602030608-F1Q8AB -m "✨ F1Q8AB task: implement allowlist guard" --allow packages/agentplane';
|
|
336
337
|
const HOOKS_RUN_USAGE = "Usage: agentplane hooks run <hook>";
|
|
337
338
|
const HOOKS_RUN_USAGE_EXAMPLE = "agentplane hooks run pre-commit";
|
|
338
339
|
const HOOKS_INSTALL_USAGE = "Usage: agentplane hooks install|uninstall";
|
|
@@ -631,8 +632,8 @@ async function cmdInit(opts) {
|
|
|
631
632
|
custom_fields: { task_id: 1 },
|
|
632
633
|
},
|
|
633
634
|
};
|
|
634
|
-
await
|
|
635
|
-
await
|
|
635
|
+
await atomicWriteFile(localBackendPath, `${JSON.stringify(localBackendPayload, null, 2)}\n`, "utf8");
|
|
636
|
+
await atomicWriteFile(redmineBackendPath, `${JSON.stringify(redmineBackendPayload, null, 2)}\n`, "utf8");
|
|
636
637
|
const agentsPath = path.join(resolved.gitRoot, "AGENTS.md");
|
|
637
638
|
const installPaths = [
|
|
638
639
|
path.relative(resolved.gitRoot, configPath),
|
|
@@ -642,7 +643,7 @@ async function cmdInit(opts) {
|
|
|
642
643
|
if (!(await fileExists(agentsPath))) {
|
|
643
644
|
const template = await loadAgentsTemplate();
|
|
644
645
|
const filtered = filterAgentsByWorkflow(template, workflow);
|
|
645
|
-
await
|
|
646
|
+
await atomicWriteFile(agentsPath, filtered, "utf8");
|
|
646
647
|
wroteAgents = true;
|
|
647
648
|
}
|
|
648
649
|
if (wroteAgents) {
|
|
@@ -653,7 +654,7 @@ async function cmdInit(opts) {
|
|
|
653
654
|
const targetPath = path.join(resolved.agentplaneDir, "agents", agent.fileName);
|
|
654
655
|
if (await fileExists(targetPath))
|
|
655
656
|
continue;
|
|
656
|
-
await
|
|
657
|
+
await atomicWriteFile(targetPath, agent.contents, "utf8");
|
|
657
658
|
installPaths.push(path.relative(resolved.gitRoot, targetPath));
|
|
658
659
|
}
|
|
659
660
|
if (hooks) {
|
|
@@ -1010,6 +1011,9 @@ export async function runCli(argv) {
|
|
|
1010
1011
|
if (namespace === "task" && command === "migrate") {
|
|
1011
1012
|
return await cmdTaskMigrate({ cwd: process.cwd(), rootOverride: globals.root, args });
|
|
1012
1013
|
}
|
|
1014
|
+
if (namespace === "task" && command === "migrate-doc") {
|
|
1015
|
+
return await cmdTaskMigrateDoc({ cwd: process.cwd(), rootOverride: globals.root, args });
|
|
1016
|
+
}
|
|
1013
1017
|
if (namespace === "task" && command === "export") {
|
|
1014
1018
|
return await cmdTaskExport({ cwd: process.cwd(), rootOverride: globals.root });
|
|
1015
1019
|
}
|
|
@@ -1054,6 +1058,12 @@ export async function runCli(argv) {
|
|
|
1054
1058
|
message: usageMessage(TASK_DOC_SET_USAGE, TASK_DOC_SET_USAGE_EXAMPLE),
|
|
1055
1059
|
});
|
|
1056
1060
|
}
|
|
1061
|
+
if (namespace === "task" && command === "plan") {
|
|
1062
|
+
return await cmdTaskPlan({ cwd: process.cwd(), rootOverride: globals.root, args });
|
|
1063
|
+
}
|
|
1064
|
+
if (namespace === "task" && command === "verify") {
|
|
1065
|
+
return await cmdTaskVerify({ cwd: process.cwd(), rootOverride: globals.root, args });
|
|
1066
|
+
}
|
|
1057
1067
|
if (namespace === "task" && command === "comment") {
|
|
1058
1068
|
const [taskId, ...restArgs] = args;
|
|
1059
1069
|
if (!taskId) {
|
|
@@ -1663,6 +1673,11 @@ export async function runCli(argv) {
|
|
|
1663
1673
|
let message = "";
|
|
1664
1674
|
let autoAllow = false;
|
|
1665
1675
|
let allowTasks = false;
|
|
1676
|
+
let allowBase = false;
|
|
1677
|
+
let allowPolicy = false;
|
|
1678
|
+
let allowConfig = false;
|
|
1679
|
+
let allowHooks = false;
|
|
1680
|
+
let allowCI = false;
|
|
1666
1681
|
let allowDirty = false;
|
|
1667
1682
|
let requireClean = false;
|
|
1668
1683
|
let quiet = false;
|
|
@@ -1698,6 +1713,26 @@ export async function runCli(argv) {
|
|
|
1698
1713
|
allowTasks = true;
|
|
1699
1714
|
continue;
|
|
1700
1715
|
}
|
|
1716
|
+
if (arg === "--allow-base") {
|
|
1717
|
+
allowBase = true;
|
|
1718
|
+
continue;
|
|
1719
|
+
}
|
|
1720
|
+
if (arg === "--allow-policy") {
|
|
1721
|
+
allowPolicy = true;
|
|
1722
|
+
continue;
|
|
1723
|
+
}
|
|
1724
|
+
if (arg === "--allow-config") {
|
|
1725
|
+
allowConfig = true;
|
|
1726
|
+
continue;
|
|
1727
|
+
}
|
|
1728
|
+
if (arg === "--allow-hooks") {
|
|
1729
|
+
allowHooks = true;
|
|
1730
|
+
continue;
|
|
1731
|
+
}
|
|
1732
|
+
if (arg === "--allow-ci") {
|
|
1733
|
+
allowCI = true;
|
|
1734
|
+
continue;
|
|
1735
|
+
}
|
|
1701
1736
|
if (arg === "--auto-allow") {
|
|
1702
1737
|
autoAllow = true;
|
|
1703
1738
|
continue;
|
|
@@ -1753,7 +1788,12 @@ export async function runCli(argv) {
|
|
|
1753
1788
|
taskId,
|
|
1754
1789
|
message,
|
|
1755
1790
|
allow,
|
|
1791
|
+
allowBase,
|
|
1756
1792
|
allowTasks,
|
|
1793
|
+
allowPolicy,
|
|
1794
|
+
allowConfig,
|
|
1795
|
+
allowHooks,
|
|
1796
|
+
allowCI,
|
|
1757
1797
|
requireClean,
|
|
1758
1798
|
quiet,
|
|
1759
1799
|
});
|
|
@@ -1778,6 +1818,10 @@ export async function runCli(argv) {
|
|
|
1778
1818
|
let autoAllow = false;
|
|
1779
1819
|
let allowTasks = false;
|
|
1780
1820
|
let allowBase = false;
|
|
1821
|
+
let allowPolicy = false;
|
|
1822
|
+
let allowConfig = false;
|
|
1823
|
+
let allowHooks = false;
|
|
1824
|
+
let allowCI = false;
|
|
1781
1825
|
let requireClean = false;
|
|
1782
1826
|
let quiet = false;
|
|
1783
1827
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -1820,6 +1864,22 @@ export async function runCli(argv) {
|
|
|
1820
1864
|
allowBase = true;
|
|
1821
1865
|
continue;
|
|
1822
1866
|
}
|
|
1867
|
+
if (arg === "--allow-policy") {
|
|
1868
|
+
allowPolicy = true;
|
|
1869
|
+
continue;
|
|
1870
|
+
}
|
|
1871
|
+
if (arg === "--allow-config") {
|
|
1872
|
+
allowConfig = true;
|
|
1873
|
+
continue;
|
|
1874
|
+
}
|
|
1875
|
+
if (arg === "--allow-hooks") {
|
|
1876
|
+
allowHooks = true;
|
|
1877
|
+
continue;
|
|
1878
|
+
}
|
|
1879
|
+
if (arg === "--allow-ci") {
|
|
1880
|
+
allowCI = true;
|
|
1881
|
+
continue;
|
|
1882
|
+
}
|
|
1823
1883
|
if (arg === "--require-clean") {
|
|
1824
1884
|
requireClean = true;
|
|
1825
1885
|
continue;
|
|
@@ -1852,6 +1912,10 @@ export async function runCli(argv) {
|
|
|
1852
1912
|
autoAllow,
|
|
1853
1913
|
allowTasks,
|
|
1854
1914
|
allowBase,
|
|
1915
|
+
allowPolicy,
|
|
1916
|
+
allowConfig,
|
|
1917
|
+
allowHooks,
|
|
1918
|
+
allowCI,
|
|
1855
1919
|
requireClean,
|
|
1856
1920
|
quiet,
|
|
1857
1921
|
});
|
|
@@ -2375,74 +2439,11 @@ export async function runCli(argv) {
|
|
|
2375
2439
|
message: usageMessage(VERIFY_USAGE, VERIFY_USAGE_EXAMPLE),
|
|
2376
2440
|
});
|
|
2377
2441
|
}
|
|
2378
|
-
let cwdOverride;
|
|
2379
|
-
let logPath;
|
|
2380
|
-
let skipIfUnchanged = false;
|
|
2381
|
-
let quiet = false;
|
|
2382
|
-
let require = false;
|
|
2383
|
-
let yes = false;
|
|
2384
|
-
for (let i = 0; i < verifyArgs.length; i++) {
|
|
2385
|
-
const arg = verifyArgs[i];
|
|
2386
|
-
if (!arg)
|
|
2387
|
-
continue;
|
|
2388
|
-
if (arg === "--cwd") {
|
|
2389
|
-
const next = verifyArgs[i + 1];
|
|
2390
|
-
if (!next)
|
|
2391
|
-
throw new CliError({
|
|
2392
|
-
exitCode: 2,
|
|
2393
|
-
code: "E_USAGE",
|
|
2394
|
-
message: usageMessage(VERIFY_USAGE, VERIFY_USAGE_EXAMPLE),
|
|
2395
|
-
});
|
|
2396
|
-
cwdOverride = next;
|
|
2397
|
-
i++;
|
|
2398
|
-
continue;
|
|
2399
|
-
}
|
|
2400
|
-
if (arg === "--log") {
|
|
2401
|
-
const next = verifyArgs[i + 1];
|
|
2402
|
-
if (!next)
|
|
2403
|
-
throw new CliError({
|
|
2404
|
-
exitCode: 2,
|
|
2405
|
-
code: "E_USAGE",
|
|
2406
|
-
message: usageMessage(VERIFY_USAGE, VERIFY_USAGE_EXAMPLE),
|
|
2407
|
-
});
|
|
2408
|
-
logPath = next;
|
|
2409
|
-
i++;
|
|
2410
|
-
continue;
|
|
2411
|
-
}
|
|
2412
|
-
if (arg === "--skip-if-unchanged") {
|
|
2413
|
-
skipIfUnchanged = true;
|
|
2414
|
-
continue;
|
|
2415
|
-
}
|
|
2416
|
-
if (arg === "--quiet") {
|
|
2417
|
-
quiet = true;
|
|
2418
|
-
continue;
|
|
2419
|
-
}
|
|
2420
|
-
if (arg === "--require") {
|
|
2421
|
-
require = true;
|
|
2422
|
-
continue;
|
|
2423
|
-
}
|
|
2424
|
-
if (arg === "--yes") {
|
|
2425
|
-
yes = true;
|
|
2426
|
-
continue;
|
|
2427
|
-
}
|
|
2428
|
-
if (arg.startsWith("--")) {
|
|
2429
|
-
throw new CliError({
|
|
2430
|
-
exitCode: 2,
|
|
2431
|
-
code: "E_USAGE",
|
|
2432
|
-
message: usageMessage(VERIFY_USAGE, VERIFY_USAGE_EXAMPLE),
|
|
2433
|
-
});
|
|
2434
|
-
}
|
|
2435
|
-
}
|
|
2436
2442
|
return await cmdVerify({
|
|
2437
2443
|
cwd: process.cwd(),
|
|
2438
2444
|
rootOverride: globals.root,
|
|
2439
2445
|
taskId,
|
|
2440
|
-
|
|
2441
|
-
logPath,
|
|
2442
|
-
skipIfUnchanged,
|
|
2443
|
-
quiet,
|
|
2444
|
-
require,
|
|
2445
|
-
yes,
|
|
2446
|
+
args: verifyArgs,
|
|
2446
2447
|
});
|
|
2447
2448
|
}
|
|
2448
2449
|
if (namespace === "integrate") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/commands/backend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/commands/backend.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,sIACsG,CAAC;AACtI,eAAO,MAAM,0BAA0B,mDAAmD,CAAC;AAC3F,eAAO,MAAM,UAAU,kIAC0G,CAAC;AAClI,eAAO,MAAM,kBAAkB,2CAA2C,CAAC;AA8J3E,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuClB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuClB"}
|
package/dist/commands/backend.js
CHANGED
|
@@ -2,6 +2,7 @@ import { backendNotSupportedMessage, usageMessage } from "../cli/output.js";
|
|
|
2
2
|
import { mapBackendError } from "../cli/error-map.js";
|
|
3
3
|
import { CliError } from "../shared/errors.js";
|
|
4
4
|
import { loadTaskBackend } from "../backends/task-backend.js";
|
|
5
|
+
import { ensureNetworkApproved } from "./shared/network-approval.js";
|
|
5
6
|
export const BACKEND_SYNC_USAGE = "Usage: agentplane backend sync <id> --direction <push|pull> [--conflict <diff|prefer-local|prefer-remote|fail>] [--yes] [--quiet]";
|
|
6
7
|
export const BACKEND_SYNC_USAGE_EXAMPLE = "agentplane backend sync local --direction pull";
|
|
7
8
|
export const SYNC_USAGE = "Usage: agentplane sync [<id>] [--direction <push|pull>] [--conflict <diff|prefer-local|prefer-remote|fail>] [--yes] [--quiet]";
|
|
@@ -142,7 +143,7 @@ function parseSyncArgs(args) {
|
|
|
142
143
|
export async function cmdBackendSync(opts) {
|
|
143
144
|
const flags = parseBackendSyncArgs(opts.args);
|
|
144
145
|
try {
|
|
145
|
-
const { backend, backendId } = await loadTaskBackend({
|
|
146
|
+
const { backend, backendId, config } = await loadTaskBackend({
|
|
146
147
|
cwd: opts.cwd,
|
|
147
148
|
rootOverride: opts.rootOverride ?? null,
|
|
148
149
|
});
|
|
@@ -160,6 +161,13 @@ export async function cmdBackendSync(opts) {
|
|
|
160
161
|
message: backendNotSupportedMessage("sync()"),
|
|
161
162
|
});
|
|
162
163
|
}
|
|
164
|
+
if (backendId !== "local") {
|
|
165
|
+
await ensureNetworkApproved({
|
|
166
|
+
config,
|
|
167
|
+
yes: flags.confirm,
|
|
168
|
+
reason: `backend sync may access the network (backend: ${backendId})`,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
163
171
|
await backend.sync({
|
|
164
172
|
direction: flags.direction,
|
|
165
173
|
conflict: flags.conflict,
|
|
@@ -177,7 +185,7 @@ export async function cmdBackendSync(opts) {
|
|
|
177
185
|
export async function cmdSync(opts) {
|
|
178
186
|
const flags = parseSyncArgs(opts.args);
|
|
179
187
|
try {
|
|
180
|
-
const { backend, backendId } = await loadTaskBackend({
|
|
188
|
+
const { backend, backendId, config } = await loadTaskBackend({
|
|
181
189
|
cwd: opts.cwd,
|
|
182
190
|
rootOverride: opts.rootOverride ?? null,
|
|
183
191
|
});
|
|
@@ -195,6 +203,13 @@ export async function cmdSync(opts) {
|
|
|
195
203
|
message: backendNotSupportedMessage("sync()"),
|
|
196
204
|
});
|
|
197
205
|
}
|
|
206
|
+
if (backendId !== "local") {
|
|
207
|
+
await ensureNetworkApproved({
|
|
208
|
+
config,
|
|
209
|
+
yes: flags.confirm,
|
|
210
|
+
reason: `sync may access the network (backend: ${backendId})`,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
198
213
|
await backend.sync({
|
|
199
214
|
direction: flags.direction,
|
|
200
215
|
conflict: flags.conflict,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/branch/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/branch/index.ts"],"names":[],"mappings":"AAoCA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,iBAAiB,2EAC4C,CAAC;AAC3E,eAAO,MAAM,yBAAyB,yCAAyC,CAAC;AAChF,eAAO,MAAM,mBAAmB,sEACqC,CAAC;AACtE,eAAO,MAAM,2BAA2B,yCAAyC,CAAC;AAClF,eAAO,MAAM,mBAAmB,8FAC6D,CAAC;AAC9F,eAAO,MAAM,2BAA2B,iGACwD,CAAC;AACjG,eAAO,MAAM,gBAAgB,mFACqD,CAAC;AACnF,eAAO,MAAM,wBAAwB,kFAC4C,CAAC;AAClF,eAAO,MAAM,oBAAoB,mFACiD,CAAC;AACnF,eAAO,MAAM,4BAA4B,oCAAoC,CAAC;AAoD9E,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4GlB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8IlB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BlB;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6ClB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAmDlB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DlB"}
|
|
@@ -13,6 +13,7 @@ import { gitBranchExists, gitCurrentBranch } from "../shared/git-ops.js";
|
|
|
13
13
|
import { findWorktreeForBranch, gitListTaskBranches, parseTaskIdFromBranch, } from "../shared/git-worktree.js";
|
|
14
14
|
import { isPathWithin, resolvePathFallback } from "../shared/path.js";
|
|
15
15
|
import { loadBackendTask } from "../shared/task-backend.js";
|
|
16
|
+
import { ensurePlanApprovedIfRequired } from "../task/shared.js";
|
|
16
17
|
export { gitInitRepo, resolveInitBaseBranch, promptInitBaseBranch, ensureInitCommit, } from "../shared/git-ops.js";
|
|
17
18
|
export const BRANCH_BASE_USAGE = "Usage: agentplane branch base get|set|clear|explain [<name>|--current]";
|
|
18
19
|
export const BRANCH_BASE_USAGE_EXAMPLE = "agentplane branch base set --current";
|
|
@@ -89,11 +90,12 @@ export async function cmdWorkStart(opts) {
|
|
|
89
90
|
message: usageMessage(WORK_START_USAGE, WORK_START_USAGE_EXAMPLE),
|
|
90
91
|
});
|
|
91
92
|
}
|
|
92
|
-
await loadBackendTask({
|
|
93
|
+
const { task } = await loadBackendTask({
|
|
93
94
|
cwd: opts.cwd,
|
|
94
95
|
rootOverride: opts.rootOverride,
|
|
95
96
|
taskId: opts.taskId,
|
|
96
97
|
});
|
|
98
|
+
ensurePlanApprovedIfRequired(task, loaded.config);
|
|
97
99
|
const currentBranch = await gitCurrentBranch(resolved.gitRoot);
|
|
98
100
|
let baseRef = currentBranch;
|
|
99
101
|
if (mode === "branch_pr") {
|
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
import { loadConfig } from "@agentplaneorg/core";
|
|
2
|
+
export declare function buildGitCommitEnv(opts: {
|
|
3
|
+
taskId: string;
|
|
4
|
+
allowTasks: boolean;
|
|
5
|
+
allowBase: boolean;
|
|
6
|
+
allowPolicy: boolean;
|
|
7
|
+
allowConfig: boolean;
|
|
8
|
+
allowHooks: boolean;
|
|
9
|
+
allowCI: boolean;
|
|
10
|
+
}): NodeJS.ProcessEnv;
|
|
2
11
|
export declare function suggestAllowPrefixes(paths: string[]): string[];
|
|
3
|
-
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]";
|
|
4
|
-
export declare const GUARD_COMMIT_USAGE_EXAMPLE = "agentplane guard commit 202602030608-F1Q8AB -m \"\u2728 F1Q8AB
|
|
12
|
+
export declare const GUARD_COMMIT_USAGE = "Usage: agentplane guard commit <task-id> -m <message> --allow <path> [--allow <path>...] [--auto-allow] [--allow-tasks] [--allow-base] [--allow-policy] [--allow-config] [--allow-hooks] [--allow-ci] [--require-clean] [--quiet]";
|
|
13
|
+
export declare const GUARD_COMMIT_USAGE_EXAMPLE = "agentplane guard commit 202602030608-F1Q8AB -m \"\u2728 F1Q8AB task: implement allowlist guard\" --allow packages/agentplane";
|
|
5
14
|
export declare const COMMIT_USAGE = "Usage: agentplane commit <task-id> -m <message>";
|
|
6
|
-
export declare const COMMIT_USAGE_EXAMPLE = "agentplane commit 202602030608-F1Q8AB -m \"\u2728 F1Q8AB
|
|
15
|
+
export declare const COMMIT_USAGE_EXAMPLE = "agentplane commit 202602030608-F1Q8AB -m \"\u2728 F1Q8AB task: implement allowlist guard\"";
|
|
7
16
|
type GuardCommitOptions = {
|
|
8
17
|
cwd: string;
|
|
9
18
|
rootOverride?: string;
|
|
10
19
|
taskId: string;
|
|
11
20
|
message: string;
|
|
12
21
|
allow: string[];
|
|
22
|
+
allowBase: boolean;
|
|
13
23
|
allowTasks: boolean;
|
|
24
|
+
allowPolicy: boolean;
|
|
25
|
+
allowConfig: boolean;
|
|
26
|
+
allowHooks: boolean;
|
|
27
|
+
allowCI: boolean;
|
|
14
28
|
requireClean: boolean;
|
|
15
29
|
quiet: boolean;
|
|
16
30
|
};
|
|
@@ -26,6 +40,9 @@ export declare function commitFromComment(opts: {
|
|
|
26
40
|
cwd: string;
|
|
27
41
|
rootOverride?: string;
|
|
28
42
|
taskId: string;
|
|
43
|
+
author?: string;
|
|
44
|
+
statusFrom?: string;
|
|
45
|
+
statusTo?: string;
|
|
29
46
|
commentBody: string;
|
|
30
47
|
formattedComment: string | null;
|
|
31
48
|
emoji: string;
|
|
@@ -60,6 +77,10 @@ export declare function cmdCommit(opts: {
|
|
|
60
77
|
autoAllow: boolean;
|
|
61
78
|
allowTasks: boolean;
|
|
62
79
|
allowBase: boolean;
|
|
80
|
+
allowPolicy: boolean;
|
|
81
|
+
allowConfig: boolean;
|
|
82
|
+
allowHooks: boolean;
|
|
83
|
+
allowCI: boolean;
|
|
63
84
|
requireClean: boolean;
|
|
64
85
|
quiet: boolean;
|
|
65
86
|
}): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/guard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/guard/index.ts"],"names":[],"mappings":"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"}
|