agentplane 0.1.8 → 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 +12 -0
- package/dist/backends/task-backend.d.ts.map +1 -1
- package/dist/backends/task-backend.js +41 -4
- package/dist/cli/command-guide.d.ts.map +1 -1
- package/dist/cli/command-guide.js +6 -7
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +57 -2
- 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/recipes.d.ts +75 -6
- package/dist/commands/recipes.d.ts.map +1 -1
- package/dist/commands/recipes.js +15 -521
- 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/task-backend.d.ts +19 -3
- package/dist/commands/shared/task-backend.d.ts.map +1 -1
- package/dist/commands/shared/task-backend.js +13 -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 -26
- 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 +3 -2
- package/dist/commands/task/shared.d.ts.map +1 -1
- package/dist/commands/task/shared.js +18 -28
- package/dist/commands/task/start.d.ts.map +1 -1
- package/dist/commands/task/start.js +24 -18
- package/dist/commands/task/verify-record.d.ts.map +1 -1
- package/dist/commands/task/verify-record.js +8 -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/assets/AGENTS.md
CHANGED
|
@@ -181,7 +181,7 @@ There are two supported modes:
|
|
|
181
181
|
|
|
182
182
|
Use agentplane commit flows with a message that conforms to the built-in command guide, e.g.:
|
|
183
183
|
|
|
184
|
-
`agentplane guard commit <task-id> -m "✨ <suffix> <
|
|
184
|
+
`agentplane guard commit <task-id> -m "✨ <suffix> <scope>: <summary>" ...`
|
|
185
185
|
|
|
186
186
|
In this mode:
|
|
187
187
|
|
|
@@ -197,7 +197,18 @@ Use comment-driven flags (where supported by agentplane), e.g.:
|
|
|
197
197
|
|
|
198
198
|
In this mode:
|
|
199
199
|
|
|
200
|
-
- agentplane builds the commit subject as `<emoji> <suffix> <
|
|
200
|
+
- agentplane builds the commit subject as `<emoji> <suffix> <scope>: <summary>` from the status/finish body.
|
|
201
|
+
- agentplane adds a short structured commit body (Task/Agent/Status/Comment) automatically for comment-driven commits.
|
|
202
|
+
|
|
203
|
+
## Commit subject format (enforced)
|
|
204
|
+
|
|
205
|
+
`<emoji> <suffix> <scope>: <summary>`
|
|
206
|
+
|
|
207
|
+
Recommended action/status emojis:
|
|
208
|
+
|
|
209
|
+
- `🚧` start / DOING
|
|
210
|
+
- `⛔` blocked / BLOCKED
|
|
211
|
+
- `✅` finish / DONE
|
|
201
212
|
|
|
202
213
|
Agents must not reinterpret `-m` as “body-only” or “comment-only”. `-m` is a commit message.
|
|
203
214
|
|
|
@@ -13,6 +13,17 @@ export type VerificationResult = {
|
|
|
13
13
|
updated_by: string | null;
|
|
14
14
|
note: string | null;
|
|
15
15
|
};
|
|
16
|
+
export type TaskEventType = "status" | "comment" | "verify";
|
|
17
|
+
export type TaskEvent = {
|
|
18
|
+
type: TaskEventType;
|
|
19
|
+
at: string;
|
|
20
|
+
author: string;
|
|
21
|
+
from?: string;
|
|
22
|
+
to?: string;
|
|
23
|
+
state?: string;
|
|
24
|
+
note?: string;
|
|
25
|
+
body?: string;
|
|
26
|
+
};
|
|
16
27
|
type ExtractTaskDoc = (body: string) => string;
|
|
17
28
|
type MergeTaskDoc = (body: string, doc: string) => string;
|
|
18
29
|
declare const extractTaskDoc: ExtractTaskDoc;
|
|
@@ -38,6 +49,7 @@ export type TaskData = {
|
|
|
38
49
|
author: string;
|
|
39
50
|
body: string;
|
|
40
51
|
}[];
|
|
52
|
+
events?: TaskEvent[];
|
|
41
53
|
doc?: string;
|
|
42
54
|
doc_version?: number;
|
|
43
55
|
doc_updated_at?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-backend.d.ts","sourceRoot":"","sources":["../../src/backends/task-backend.ts"],"names":[],"mappings":"AAIA,OAAO,EAaL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-backend.d.ts","sourceRoot":"","sources":["../../src/backends/task-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { mkdir, readdir, readFile, stat } from "node:fs/promises";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { atomicWriteFile as atomicWriteFileCore, canonicalizeJson, docChanged, extractTaskDoc as extractTaskDocCore, generateTaskId as generateTaskIdCore, loadConfig, mergeTaskDoc as mergeTaskDocCore, parseTaskReadme, renderTaskReadme, resolveProject, TASK_ID_ALPHABET, taskReadmePath, } from "@agentplaneorg/core";
|
|
5
5
|
import { loadDotEnv } from "../shared/env.js";
|
|
6
|
+
import { isRecord } from "../shared/guards.js";
|
|
6
7
|
import { buildTaskIndexEntry, loadTaskIndex, resolveTaskIndexPath, saveTaskIndex, } from "./task-index.js";
|
|
7
8
|
const TASK_ID_RE = new RegExp(String.raw `^\d{12}-[${TASK_ID_ALPHABET}]{4,}$`);
|
|
8
9
|
const DEFAULT_DOC_UPDATED_BY = "agentplane";
|
|
@@ -14,9 +15,6 @@ const generateTaskId = generateTaskIdCore;
|
|
|
14
15
|
function nowIso() {
|
|
15
16
|
return new Date().toISOString();
|
|
16
17
|
}
|
|
17
|
-
function isRecord(value) {
|
|
18
|
-
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
19
|
-
}
|
|
20
18
|
function toStringSafe(value) {
|
|
21
19
|
if (typeof value === "string")
|
|
22
20
|
return value;
|
|
@@ -195,6 +193,34 @@ function normalizeVerificationResult(value) {
|
|
|
195
193
|
const note = value.note === null || typeof value.note === "string" ? value.note : null;
|
|
196
194
|
return { state, updated_at: updatedAt, updated_by: updatedBy, note };
|
|
197
195
|
}
|
|
196
|
+
const TASK_EVENT_TYPES = new Set(["status", "comment", "verify"]);
|
|
197
|
+
function normalizeEvents(value) {
|
|
198
|
+
if (!Array.isArray(value))
|
|
199
|
+
return [];
|
|
200
|
+
const events = [];
|
|
201
|
+
for (const entry of value) {
|
|
202
|
+
if (!isRecord(entry))
|
|
203
|
+
continue;
|
|
204
|
+
const type = typeof entry.type === "string" ? entry.type : "";
|
|
205
|
+
if (!TASK_EVENT_TYPES.has(type))
|
|
206
|
+
continue;
|
|
207
|
+
const at = typeof entry.at === "string" ? entry.at : "";
|
|
208
|
+
const author = typeof entry.author === "string" ? entry.author : "";
|
|
209
|
+
if (!at.trim() || !author.trim())
|
|
210
|
+
continue;
|
|
211
|
+
events.push({
|
|
212
|
+
type: type,
|
|
213
|
+
at,
|
|
214
|
+
author,
|
|
215
|
+
from: typeof entry.from === "string" ? entry.from : undefined,
|
|
216
|
+
to: typeof entry.to === "string" ? entry.to : undefined,
|
|
217
|
+
state: typeof entry.state === "string" ? entry.state : undefined,
|
|
218
|
+
note: typeof entry.note === "string" ? entry.note : undefined,
|
|
219
|
+
body: typeof entry.body === "string" ? entry.body : undefined,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return events;
|
|
223
|
+
}
|
|
198
224
|
export function taskRecordToData(record) {
|
|
199
225
|
const fm = record.frontmatter;
|
|
200
226
|
const comments = Array.isArray(fm.comments)
|
|
@@ -208,6 +234,7 @@ export function taskRecordToData(record) {
|
|
|
208
234
|
typeof fm.commit.message === "string"
|
|
209
235
|
? { hash: fm.commit.hash, message: fm.commit.message }
|
|
210
236
|
: null;
|
|
237
|
+
const events = normalizeEvents(fm.events);
|
|
211
238
|
const planApproval = normalizePlanApproval(fm.plan_approval);
|
|
212
239
|
const verification = normalizeVerificationResult(fm.verification);
|
|
213
240
|
const baseId = typeof fm.id === "string" ? fm.id : typeof record.id === "string" ? record.id : "";
|
|
@@ -225,6 +252,7 @@ export function taskRecordToData(record) {
|
|
|
225
252
|
verification: verification ?? undefined,
|
|
226
253
|
commit,
|
|
227
254
|
comments,
|
|
255
|
+
events,
|
|
228
256
|
doc_version: typeof fm.doc_version === "number" ? fm.doc_version : undefined,
|
|
229
257
|
doc_updated_at: typeof fm.doc_updated_at === "string" ? fm.doc_updated_at : undefined,
|
|
230
258
|
doc_updated_by: typeof fm.doc_updated_by === "string" ? fm.doc_updated_by : undefined,
|
|
@@ -237,7 +265,7 @@ export function taskRecordToData(record) {
|
|
|
237
265
|
return task;
|
|
238
266
|
}
|
|
239
267
|
function taskDataToExport(task) {
|
|
240
|
-
|
|
268
|
+
const base = {
|
|
241
269
|
...task,
|
|
242
270
|
id: task.id,
|
|
243
271
|
title: task.title ?? "",
|
|
@@ -258,6 +286,15 @@ function taskDataToExport(task) {
|
|
|
258
286
|
dirty: Boolean(task.dirty),
|
|
259
287
|
id_source: task.id_source ?? "generated",
|
|
260
288
|
};
|
|
289
|
+
const events = Array.isArray(task.events)
|
|
290
|
+
? task.events.filter((event) => !!event &&
|
|
291
|
+
typeof event.type === "string" &&
|
|
292
|
+
typeof event.at === "string" &&
|
|
293
|
+
typeof event.author === "string")
|
|
294
|
+
: [];
|
|
295
|
+
if (events.length > 0)
|
|
296
|
+
return { ...base, events };
|
|
297
|
+
return base;
|
|
261
298
|
}
|
|
262
299
|
export function buildTasksExportSnapshotFromTasks(tasks) {
|
|
263
300
|
const exportTasks = tasks.map((task) => taskDataToExport(task));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-guide.d.ts","sourceRoot":"","sources":["../../src/cli/command-guide.ts"],"names":[],"mappings":"AA6KA,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOzD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"command-guide.d.ts","sourceRoot":"","sources":["../../src/cli/command-guide.ts"],"names":[],"mappings":"AA6KA,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOzD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CA2EzC"}
|
|
@@ -79,7 +79,7 @@ const ROLE_GUIDES = [
|
|
|
79
79
|
'- Status updates: `agentplane start <task-id> --author <ROLE> --body "Start: ..."` / `agentplane block <task-id> --author <ROLE> --body "Blocked: ..."`',
|
|
80
80
|
'- Verify: `agentplane verify <task-id> --ok|--rework --by <ROLE> --note "..."`',
|
|
81
81
|
'- PR artifacts (branch_pr): `agentplane pr open <task-id> --branch task/<task-id>/<slug> --author <ROLE>` / `agentplane pr update <task-id>` / `agentplane pr note <task-id> --author <ROLE> --body "..."`',
|
|
82
|
-
'- Commit: `agentplane guard commit <task-id> -m "<emoji> <suffix>
|
|
82
|
+
'- Commit: `agentplane guard commit <task-id> -m "<emoji> <suffix> <scope>: <summary>"` / `agentplane commit <task-id> -m "<emoji> <suffix> <scope>: <summary>" --allow <path-prefix>`',
|
|
83
83
|
],
|
|
84
84
|
},
|
|
85
85
|
{
|
|
@@ -90,7 +90,7 @@ const ROLE_GUIDES = [
|
|
|
90
90
|
'- Status updates: `agentplane start <task-id> --author <ROLE> --body "Start: ..."` / `agentplane block <task-id> --author <ROLE> --body "Blocked: ..."`',
|
|
91
91
|
'- Verify: `agentplane verify <task-id> --ok|--rework --by <ROLE> --note "..."`',
|
|
92
92
|
'- PR artifacts (branch_pr): `agentplane pr open <task-id> --branch task/<task-id>/<slug> --author <ROLE>` / `agentplane pr update <task-id>` / `agentplane pr note <task-id> --author <ROLE> --body "..."`',
|
|
93
|
-
'- Commit: `agentplane guard commit <task-id> -m "<emoji> <suffix>
|
|
93
|
+
'- Commit: `agentplane guard commit <task-id> -m "<emoji> <suffix> <scope>: <summary>"` / `agentplane commit <task-id> -m "<emoji> <suffix> <scope>: <summary>" --allow <path-prefix>`',
|
|
94
94
|
],
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ const ROLE_GUIDES = [
|
|
|
98
98
|
lines: [
|
|
99
99
|
'- Task docs: `agentplane task doc set <task-id> --section Summary --text "..."` (repeat per section or use `--file`)',
|
|
100
100
|
'- PR notes: `agentplane pr note <task-id> --author DOCS --body "..."`',
|
|
101
|
-
'- Commit: `agentplane guard commit <task-id> -m "<emoji> <suffix>
|
|
101
|
+
'- Commit: `agentplane guard commit <task-id> -m "<emoji> <suffix> <scope>: <summary>"` / `agentplane commit <task-id> -m "<emoji> <suffix> <scope>: <summary>" --allow <path-prefix>`',
|
|
102
102
|
],
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -120,7 +120,7 @@ const ROLE_GUIDES = [
|
|
|
120
120
|
role: "CREATOR",
|
|
121
121
|
lines: [
|
|
122
122
|
'- Task bookkeeping: `agentplane task update <task-id> ...` / `agentplane start <task-id> --author CREATOR --body "Start: ..."`',
|
|
123
|
-
'- Commits: `agentplane guard commit <task-id> -m "<emoji> <suffix>
|
|
123
|
+
'- Commits: `agentplane guard commit <task-id> -m "<emoji> <suffix> <scope>: <summary>"` / `agentplane commit <task-id> -m "<emoji> <suffix> <scope>: <summary>" --allow <path-prefix>`',
|
|
124
124
|
],
|
|
125
125
|
},
|
|
126
126
|
{
|
|
@@ -235,11 +235,10 @@ export function renderQuickstart() {
|
|
|
235
235
|
"",
|
|
236
236
|
"## Commit message format",
|
|
237
237
|
"",
|
|
238
|
-
"Use: `<emoji> <suffix> <
|
|
238
|
+
"Use: `<emoji> <suffix> <scope>: <summary>`.",
|
|
239
239
|
"",
|
|
240
240
|
"Notes:",
|
|
241
241
|
"- `suffix` is the task ID segment after the last dash.",
|
|
242
|
-
"-
|
|
243
|
-
"- When using comment-driven flags, the subject is auto-built as `<emoji> <suffix> <formatted comment>` from your status/finish body.",
|
|
242
|
+
"- When using comment-driven flags, the subject is auto-built as `<emoji> <suffix> <scope>: <summary>`, and the body is auto-built from your status/finish comment.",
|
|
244
243
|
].join("\n");
|
|
245
244
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"AAojCA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA83D5D"}
|
package/dist/cli/run-cli.js
CHANGED
|
@@ -16,7 +16,8 @@ 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
|
|
19
|
+
import { cmdRecipes } from "../commands/recipes.js";
|
|
20
|
+
import { cmdScenario } from "../commands/scenario.js";
|
|
20
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;
|
|
@@ -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";
|
|
@@ -1672,6 +1673,11 @@ export async function runCli(argv) {
|
|
|
1672
1673
|
let message = "";
|
|
1673
1674
|
let autoAllow = false;
|
|
1674
1675
|
let allowTasks = false;
|
|
1676
|
+
let allowBase = false;
|
|
1677
|
+
let allowPolicy = false;
|
|
1678
|
+
let allowConfig = false;
|
|
1679
|
+
let allowHooks = false;
|
|
1680
|
+
let allowCI = false;
|
|
1675
1681
|
let allowDirty = false;
|
|
1676
1682
|
let requireClean = false;
|
|
1677
1683
|
let quiet = false;
|
|
@@ -1707,6 +1713,26 @@ export async function runCli(argv) {
|
|
|
1707
1713
|
allowTasks = true;
|
|
1708
1714
|
continue;
|
|
1709
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
|
+
}
|
|
1710
1736
|
if (arg === "--auto-allow") {
|
|
1711
1737
|
autoAllow = true;
|
|
1712
1738
|
continue;
|
|
@@ -1762,7 +1788,12 @@ export async function runCli(argv) {
|
|
|
1762
1788
|
taskId,
|
|
1763
1789
|
message,
|
|
1764
1790
|
allow,
|
|
1791
|
+
allowBase,
|
|
1765
1792
|
allowTasks,
|
|
1793
|
+
allowPolicy,
|
|
1794
|
+
allowConfig,
|
|
1795
|
+
allowHooks,
|
|
1796
|
+
allowCI,
|
|
1766
1797
|
requireClean,
|
|
1767
1798
|
quiet,
|
|
1768
1799
|
});
|
|
@@ -1787,6 +1818,10 @@ export async function runCli(argv) {
|
|
|
1787
1818
|
let autoAllow = false;
|
|
1788
1819
|
let allowTasks = false;
|
|
1789
1820
|
let allowBase = false;
|
|
1821
|
+
let allowPolicy = false;
|
|
1822
|
+
let allowConfig = false;
|
|
1823
|
+
let allowHooks = false;
|
|
1824
|
+
let allowCI = false;
|
|
1790
1825
|
let requireClean = false;
|
|
1791
1826
|
let quiet = false;
|
|
1792
1827
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -1829,6 +1864,22 @@ export async function runCli(argv) {
|
|
|
1829
1864
|
allowBase = true;
|
|
1830
1865
|
continue;
|
|
1831
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
|
+
}
|
|
1832
1883
|
if (arg === "--require-clean") {
|
|
1833
1884
|
requireClean = true;
|
|
1834
1885
|
continue;
|
|
@@ -1861,6 +1912,10 @@ export async function runCli(argv) {
|
|
|
1861
1912
|
autoAllow,
|
|
1862
1913
|
allowTasks,
|
|
1863
1914
|
allowBase,
|
|
1915
|
+
allowPolicy,
|
|
1916
|
+
allowConfig,
|
|
1917
|
+
allowHooks,
|
|
1918
|
+
allowCI,
|
|
1864
1919
|
requireClean,
|
|
1865
1920
|
quiet,
|
|
1866
1921
|
});
|
|
@@ -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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"}
|