agentplane 0.2.25 → 0.3.1
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/README.md +3 -1
- package/assets/AGENTS.md +123 -526
- package/assets/agents/UPGRADER.json +10 -9
- package/assets/framework.manifest.json +112 -7
- package/assets/policy/check-routing.mjs +180 -0
- package/assets/policy/dod.code.md +25 -0
- package/assets/policy/dod.core.md +32 -0
- package/assets/policy/dod.docs.md +32 -0
- package/assets/policy/examples/migration-note.md +6 -0
- package/assets/policy/examples/pr-note.md +16 -0
- package/assets/policy/examples/unit-test-pattern.md +19 -0
- package/assets/policy/governance.md +37 -0
- package/assets/policy/incidents.md +36 -0
- package/assets/policy/security.must.md +7 -0
- package/assets/policy/workflow.branch_pr.md +34 -0
- package/assets/policy/workflow.direct.md +46 -0
- package/assets/policy/workflow.md +9 -0
- package/assets/policy/workflow.release.md +31 -0
- package/assets/policy/workflow.upgrade.md +20 -0
- package/bin/agentplane.js +47 -57
- package/bin/dist-guard.js +124 -0
- package/dist/.build-manifest.json +11 -0
- package/dist/agents/agents-template.d.ts +7 -0
- package/dist/agents/agents-template.d.ts.map +1 -1
- package/dist/agents/agents-template.js +41 -2
- package/dist/backends/task-backend/local-backend.d.ts +2 -0
- package/dist/backends/task-backend/local-backend.d.ts.map +1 -1
- package/dist/backends/task-backend/local-backend.js +12 -1
- package/dist/backends/task-backend/redmine/mapping.d.ts.map +1 -1
- package/dist/backends/task-backend/redmine/mapping.js +26 -1
- package/dist/backends/task-backend/redmine-backend.d.ts +4 -0
- package/dist/backends/task-backend/redmine-backend.d.ts.map +1 -1
- package/dist/backends/task-backend/redmine-backend.js +92 -9
- package/dist/backends/task-backend/shared/types.d.ts +1 -0
- package/dist/backends/task-backend/shared/types.d.ts.map +1 -1
- package/dist/backends/task-index.d.ts.map +1 -1
- package/dist/backends/task-index.js +8 -1
- package/dist/cli/command-guide.d.ts.map +1 -1
- package/dist/cli/command-guide.js +39 -17
- package/dist/cli/command-snippets.d.ts +24 -0
- package/dist/cli/command-snippets.d.ts.map +1 -0
- package/dist/cli/command-snippets.js +23 -0
- package/dist/cli/reason-codes.d.ts +9 -0
- package/dist/cli/reason-codes.d.ts.map +1 -0
- package/dist/cli/reason-codes.js +79 -0
- package/dist/cli/recipes-bundled.d.ts +1 -0
- package/dist/cli/recipes-bundled.d.ts.map +1 -1
- package/dist/cli/recipes-bundled.js +4 -1
- package/dist/cli/run-cli/command-catalog.d.ts +1 -1
- package/dist/cli/run-cli/command-catalog.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog.js +40 -1
- package/dist/cli/run-cli/commands/config.d.ts +5 -0
- package/dist/cli/run-cli/commands/config.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/config.js +86 -1
- package/dist/cli/run-cli/commands/core.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/core.js +57 -2
- package/dist/cli/run-cli/commands/ide.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/ide.js +8 -3
- package/dist/cli/run-cli/commands/init/recipes.d.ts +5 -1
- package/dist/cli/run-cli/commands/init/recipes.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init/recipes.js +24 -4
- package/dist/cli/run-cli/commands/init/ui.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init/ui.js +1 -2
- package/dist/cli/run-cli/commands/init/write-agents.d.ts +2 -0
- package/dist/cli/run-cli/commands/init/write-agents.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init/write-agents.js +24 -5
- package/dist/cli/run-cli/commands/init/write-workflow.d.ts +12 -0
- package/dist/cli/run-cli/commands/init/write-workflow.d.ts.map +1 -0
- package/dist/cli/run-cli/commands/init/write-workflow.js +58 -0
- package/dist/cli/run-cli/commands/init.d.ts +4 -1
- package/dist/cli/run-cli/commands/init.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init.js +126 -48
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +195 -8
- package/dist/commands/backend/sync.command.d.ts.map +1 -1
- package/dist/commands/backend/sync.command.js +7 -6
- package/dist/commands/backend.d.ts.map +1 -1
- package/dist/commands/backend.js +2 -0
- package/dist/commands/doctor.run.d.ts.map +1 -1
- package/dist/commands/doctor.run.js +107 -16
- package/dist/commands/guard/impl/commands.d.ts.map +1 -1
- package/dist/commands/guard/impl/commands.js +12 -6
- package/dist/commands/recipes/impl/commands/install.d.ts.map +1 -1
- package/dist/commands/recipes/impl/commands/install.js +36 -13
- package/dist/commands/recipes/impl/scenario.d.ts.map +1 -1
- package/dist/commands/recipes/impl/scenario.js +25 -0
- package/dist/commands/recipes/impl/types.d.ts +4 -0
- package/dist/commands/recipes/impl/types.d.ts.map +1 -1
- package/dist/commands/release/apply.command.d.ts.map +1 -1
- package/dist/commands/release/apply.command.js +9 -4
- package/dist/commands/release/plan.command.d.ts.map +1 -1
- package/dist/commands/release/plan.command.js +9 -3
- package/dist/commands/scenario/impl/commands.d.ts.map +1 -1
- package/dist/commands/scenario/impl/commands.js +74 -3
- package/dist/commands/scenario/impl/report.d.ts +8 -0
- package/dist/commands/scenario/impl/report.d.ts.map +1 -1
- package/dist/commands/scenario/impl/report.js +1 -0
- package/dist/commands/shared/reconcile-check.d.ts +7 -0
- package/dist/commands/shared/reconcile-check.d.ts.map +1 -0
- package/dist/commands/shared/reconcile-check.js +60 -0
- package/dist/commands/sync.command.d.ts.map +1 -1
- package/dist/commands/sync.command.js +9 -2
- package/dist/commands/task/add.d.ts.map +1 -1
- package/dist/commands/task/add.js +32 -0
- package/dist/commands/task/doc.command.d.ts.map +1 -1
- package/dist/commands/task/doc.command.js +1 -0
- package/dist/commands/task/finish.d.ts.map +1 -1
- package/dist/commands/task/finish.js +11 -1
- package/dist/commands/task/list.d.ts.map +1 -1
- package/dist/commands/task/list.js +2 -1
- package/dist/commands/task/list.spec.d.ts.map +1 -1
- package/dist/commands/task/list.spec.js +7 -0
- package/dist/commands/task/new.d.ts.map +1 -1
- package/dist/commands/task/new.js +41 -4
- package/dist/commands/task/next.d.ts.map +1 -1
- package/dist/commands/task/next.js +2 -1
- package/dist/commands/task/next.spec.d.ts.map +1 -1
- package/dist/commands/task/next.spec.js +7 -0
- package/dist/commands/task/plan.d.ts.map +1 -1
- package/dist/commands/task/plan.js +7 -1
- package/dist/commands/task/search.d.ts.map +1 -1
- package/dist/commands/task/search.js +2 -1
- package/dist/commands/task/search.spec.d.ts.map +1 -1
- package/dist/commands/task/search.spec.js +7 -0
- package/dist/commands/task/shared.d.ts +14 -0
- package/dist/commands/task/shared.d.ts.map +1 -1
- package/dist/commands/task/shared.js +58 -1
- package/dist/commands/task/start-ready.js +1 -1
- package/dist/commands/task/verify-record.d.ts.map +1 -1
- package/dist/commands/task/verify-record.js +2 -0
- package/dist/commands/upgrade.command.d.ts.map +1 -1
- package/dist/commands/upgrade.command.js +2 -2
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +263 -294
- package/dist/commands/workflow-build.command.d.ts +8 -0
- package/dist/commands/workflow-build.command.d.ts.map +1 -0
- package/dist/commands/workflow-build.command.js +103 -0
- package/dist/commands/workflow-playbook.command.d.ts +10 -0
- package/dist/commands/workflow-playbook.command.d.ts.map +1 -0
- package/dist/commands/workflow-playbook.command.js +173 -0
- package/dist/commands/workflow-restore.command.d.ts +5 -0
- package/dist/commands/workflow-restore.command.d.ts.map +1 -0
- package/dist/commands/workflow-restore.command.js +30 -0
- package/dist/commands/workflow.command.d.ts +6 -0
- package/dist/commands/workflow.command.d.ts.map +1 -0
- package/dist/commands/workflow.command.js +36 -0
- package/dist/harness/dynamic-tool-contract.d.ts +29 -0
- package/dist/harness/dynamic-tool-contract.d.ts.map +1 -0
- package/dist/harness/dynamic-tool-contract.js +86 -0
- package/dist/harness/hooks-lifecycle.d.ts +27 -0
- package/dist/harness/hooks-lifecycle.d.ts.map +1 -0
- package/dist/harness/hooks-lifecycle.js +67 -0
- package/dist/harness/index.d.ts +9 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +8 -0
- package/dist/harness/reconcile.d.ts +37 -0
- package/dist/harness/reconcile.d.ts.map +1 -0
- package/dist/harness/reconcile.js +42 -0
- package/dist/harness/retry-policy.d.ts +31 -0
- package/dist/harness/retry-policy.d.ts.map +1 -0
- package/dist/harness/retry-policy.js +33 -0
- package/dist/harness/scheduler.d.ts +18 -0
- package/dist/harness/scheduler.d.ts.map +1 -0
- package/dist/harness/scheduler.js +55 -0
- package/dist/harness/state-machine.d.ts +17 -0
- package/dist/harness/state-machine.d.ts.map +1 -0
- package/dist/harness/state-machine.js +70 -0
- package/dist/harness/token-accounting.d.ts +19 -0
- package/dist/harness/token-accounting.d.ts.map +1 -0
- package/dist/harness/token-accounting.js +77 -0
- package/dist/harness/workspace-safety.d.ts +14 -0
- package/dist/harness/workspace-safety.d.ts.map +1 -0
- package/dist/harness/workspace-safety.js +62 -0
- package/dist/recipes/bundled-recipes.d.ts +4 -0
- package/dist/recipes/bundled-recipes.d.ts.map +1 -1
- package/dist/recipes/bundled-recipes.js +11 -0
- package/dist/shared/errors.d.ts +6 -0
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/errors.js +1 -0
- package/dist/shared/policy-gateway.d.ts +15 -0
- package/dist/shared/policy-gateway.d.ts.map +1 -0
- package/dist/shared/policy-gateway.js +49 -0
- package/dist/shared/protected-paths.d.ts.map +1 -1
- package/dist/shared/protected-paths.js +1 -0
- package/dist/shared/runtime-artifacts.d.ts +2 -2
- package/dist/shared/runtime-artifacts.d.ts.map +1 -1
- package/dist/shared/runtime-artifacts.js +4 -0
- package/dist/workflow-runtime/build.d.ts +4 -0
- package/dist/workflow-runtime/build.d.ts.map +1 -0
- package/dist/workflow-runtime/build.js +126 -0
- package/dist/workflow-runtime/enforcement.d.ts +3 -0
- package/dist/workflow-runtime/enforcement.d.ts.map +1 -0
- package/dist/workflow-runtime/enforcement.js +10 -0
- package/dist/workflow-runtime/file-ops.d.ts +11 -0
- package/dist/workflow-runtime/file-ops.d.ts.map +1 -0
- package/dist/workflow-runtime/file-ops.js +248 -0
- package/dist/workflow-runtime/fix.d.ts +9 -0
- package/dist/workflow-runtime/fix.d.ts.map +1 -0
- package/dist/workflow-runtime/fix.js +107 -0
- package/dist/workflow-runtime/index.d.ts +11 -0
- package/dist/workflow-runtime/index.d.ts.map +1 -0
- package/dist/workflow-runtime/index.js +10 -0
- package/dist/workflow-runtime/markdown.d.ts +10 -0
- package/dist/workflow-runtime/markdown.d.ts.map +1 -0
- package/dist/workflow-runtime/markdown.js +147 -0
- package/dist/workflow-runtime/observability.d.ts +12 -0
- package/dist/workflow-runtime/observability.d.ts.map +1 -0
- package/dist/workflow-runtime/observability.js +14 -0
- package/dist/workflow-runtime/paths.d.ts +3 -0
- package/dist/workflow-runtime/paths.d.ts.map +1 -0
- package/dist/workflow-runtime/paths.js +11 -0
- package/dist/workflow-runtime/template.d.ts +7 -0
- package/dist/workflow-runtime/template.d.ts.map +1 -0
- package/dist/workflow-runtime/template.js +94 -0
- package/dist/workflow-runtime/types.d.ts +68 -0
- package/dist/workflow-runtime/types.d.ts.map +1 -0
- package/dist/workflow-runtime/types.js +1 -0
- package/dist/workflow-runtime/validate.d.ts +8 -0
- package/dist/workflow-runtime/validate.d.ts.map +1 -0
- package/dist/workflow-runtime/validate.js +331 -0
- package/package.json +3 -3
|
@@ -22,6 +22,7 @@ export class RedmineBackend {
|
|
|
22
22
|
cache;
|
|
23
23
|
issueCache = new Map();
|
|
24
24
|
reverseStatus = new Map();
|
|
25
|
+
inferredStatusByTaskStatus = null;
|
|
25
26
|
constructor(settings, opts) {
|
|
26
27
|
const env = readRedmineEnv();
|
|
27
28
|
this.baseUrl = firstNonEmptyString(env.url, settings.url).replaceAll(/\/+$/gu, "");
|
|
@@ -89,11 +90,8 @@ export class RedmineBackend {
|
|
|
89
90
|
}
|
|
90
91
|
async listTasks() {
|
|
91
92
|
try {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
await this.cacheTask(task, false);
|
|
95
|
-
}
|
|
96
|
-
return tasks;
|
|
93
|
+
// Read-only listing must not rewrite local task READMEs through cache updates.
|
|
94
|
+
return await this.listTasksRemote();
|
|
97
95
|
}
|
|
98
96
|
catch (err) {
|
|
99
97
|
if (err instanceof RedmineUnavailable) {
|
|
@@ -119,10 +117,8 @@ export class RedmineBackend {
|
|
|
119
117
|
const issue = await this.findIssueByTaskId(taskId);
|
|
120
118
|
if (!issue)
|
|
121
119
|
return null;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
await this.cacheTask(task, false);
|
|
125
|
-
return task;
|
|
120
|
+
// Read-only fetch must not rewrite local task READMEs through cache updates.
|
|
121
|
+
return this.issueToTask(issue, taskId);
|
|
126
122
|
}
|
|
127
123
|
catch (err) {
|
|
128
124
|
if (err instanceof RedmineUnavailable) {
|
|
@@ -249,6 +245,11 @@ export class RedmineBackend {
|
|
|
249
245
|
existingIssue = this.issueFromPayload(payload);
|
|
250
246
|
}
|
|
251
247
|
const payload = this.taskToIssuePayload(task, existingIssue ?? undefined);
|
|
248
|
+
if (payload.status_id === undefined) {
|
|
249
|
+
const inferredStatusId = await this.inferStatusIdForTaskStatus(task.status);
|
|
250
|
+
if (inferredStatusId !== null)
|
|
251
|
+
payload.status_id = inferredStatusId;
|
|
252
|
+
}
|
|
252
253
|
if (issueIdText) {
|
|
253
254
|
await this.requestJson("PUT", `issues/${issueIdText}.json`, { issue: payload });
|
|
254
255
|
}
|
|
@@ -437,6 +438,88 @@ export class RedmineBackend {
|
|
|
437
438
|
issueFromPayload(payload) {
|
|
438
439
|
return isRecord(payload.issue) ? payload.issue : null;
|
|
439
440
|
}
|
|
441
|
+
async inferStatusIdForTaskStatus(statusRaw) {
|
|
442
|
+
const status = toStringSafe(statusRaw).trim().toUpperCase();
|
|
443
|
+
if (!status)
|
|
444
|
+
return null;
|
|
445
|
+
const explicit = this.statusMap?.[status];
|
|
446
|
+
if (typeof explicit === "number" && Number.isFinite(explicit))
|
|
447
|
+
return explicit;
|
|
448
|
+
const inferred = await this.loadInferredStatusByTaskStatus();
|
|
449
|
+
return inferred.get(status) ?? null;
|
|
450
|
+
}
|
|
451
|
+
async loadInferredStatusByTaskStatus() {
|
|
452
|
+
if (this.inferredStatusByTaskStatus)
|
|
453
|
+
return this.inferredStatusByTaskStatus;
|
|
454
|
+
const map = new Map();
|
|
455
|
+
this.inferredStatusByTaskStatus = map;
|
|
456
|
+
try {
|
|
457
|
+
const payload = await this.requestJson("GET", "issue_statuses.json");
|
|
458
|
+
const statuses = Array.isArray(payload.issue_statuses) ? payload.issue_statuses : [];
|
|
459
|
+
const parsed = [];
|
|
460
|
+
for (const item of statuses) {
|
|
461
|
+
if (!isRecord(item))
|
|
462
|
+
continue;
|
|
463
|
+
const id = typeof item.id === "number" ? item.id : null;
|
|
464
|
+
if (!id || !Number.isFinite(id))
|
|
465
|
+
continue;
|
|
466
|
+
parsed.push({
|
|
467
|
+
id,
|
|
468
|
+
name: toStringSafe(item.name).trim().toLowerCase(),
|
|
469
|
+
isClosed: item.is_closed === true,
|
|
470
|
+
isDefault: item.is_default === true,
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
const done = this.selectInferredStatus(parsed, "DONE");
|
|
474
|
+
const doing = this.selectInferredStatus(parsed, "DOING");
|
|
475
|
+
const todo = this.selectInferredStatus(parsed, "TODO");
|
|
476
|
+
if (done !== null)
|
|
477
|
+
map.set("DONE", done);
|
|
478
|
+
if (doing !== null)
|
|
479
|
+
map.set("DOING", doing);
|
|
480
|
+
if (todo !== null)
|
|
481
|
+
map.set("TODO", todo);
|
|
482
|
+
}
|
|
483
|
+
catch {
|
|
484
|
+
// Best effort: keep previous behavior when status discovery is unavailable.
|
|
485
|
+
}
|
|
486
|
+
return map;
|
|
487
|
+
}
|
|
488
|
+
selectInferredStatus(statuses, target) {
|
|
489
|
+
if (statuses.length === 0)
|
|
490
|
+
return null;
|
|
491
|
+
if (target === "DOING") {
|
|
492
|
+
const byId = statuses.find((item) => item.id === 2);
|
|
493
|
+
if (byId)
|
|
494
|
+
return byId.id;
|
|
495
|
+
const byName = statuses.find((item) => item.name.includes("progress") || item.name.includes("doing"));
|
|
496
|
+
if (byName)
|
|
497
|
+
return byName.id;
|
|
498
|
+
return null;
|
|
499
|
+
}
|
|
500
|
+
if (target === "DONE") {
|
|
501
|
+
const closed = statuses.find((item) => item.isClosed);
|
|
502
|
+
if (closed)
|
|
503
|
+
return closed.id;
|
|
504
|
+
const byId = statuses.find((item) => item.id === 5 || item.id === 3 || item.id === 6);
|
|
505
|
+
if (byId)
|
|
506
|
+
return byId.id;
|
|
507
|
+
const byName = statuses.find((item) => item.name.includes("done") ||
|
|
508
|
+
item.name.includes("closed") ||
|
|
509
|
+
item.name.includes("resolved") ||
|
|
510
|
+
item.name.includes("complete"));
|
|
511
|
+
if (byName)
|
|
512
|
+
return byName.id;
|
|
513
|
+
return null;
|
|
514
|
+
}
|
|
515
|
+
const byDefault = statuses.find((item) => item.isDefault);
|
|
516
|
+
if (byDefault)
|
|
517
|
+
return byDefault.id;
|
|
518
|
+
const byId = statuses.find((item) => item.id === 1);
|
|
519
|
+
if (byId)
|
|
520
|
+
return byId.id;
|
|
521
|
+
return statuses[0]?.id ?? null;
|
|
522
|
+
}
|
|
440
523
|
async findIssueByTaskId(taskId) {
|
|
441
524
|
const taskFieldId = this.taskIdFieldId();
|
|
442
525
|
return await findIssueByTaskIdImpl({
|
|
@@ -58,6 +58,7 @@ export type TaskDocMeta = Pick<TaskData, "doc" | "doc_version" | "doc_updated_at
|
|
|
58
58
|
export type TaskBackend = {
|
|
59
59
|
id: string;
|
|
60
60
|
listTasks(): Promise<TaskData[]>;
|
|
61
|
+
getLastListWarnings?(): string[];
|
|
61
62
|
getTask(taskId: string): Promise<TaskData | null>;
|
|
62
63
|
getTasks?(taskIds: string[]): Promise<(TaskData | null)[]>;
|
|
63
64
|
writeTask(task: TaskData): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/backends/task-backend/shared/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-index.d.ts","sourceRoot":"","sources":["../../src/backends/task-index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAI3C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU7D;AA8ED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAWpF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,cAAc,
|
|
1
|
+
{"version":3,"file":"task-index.d.ts","sourceRoot":"","sources":["../../src/backends/task-index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAI3C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU7D;AA8ED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAWpF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,cAAc,CAahB"}
|
|
@@ -123,8 +123,15 @@ export async function saveTaskIndex(indexPath, index) {
|
|
|
123
123
|
await writeJsonStableIfChanged(indexPath, index);
|
|
124
124
|
}
|
|
125
125
|
export function buildTaskIndexEntry(task, readmePath, mtimeMs) {
|
|
126
|
+
const compactTask = {
|
|
127
|
+
...task,
|
|
128
|
+
// Keep the index payload lean for list/search/next paths.
|
|
129
|
+
doc: undefined,
|
|
130
|
+
comments: undefined,
|
|
131
|
+
events: undefined,
|
|
132
|
+
};
|
|
126
133
|
return {
|
|
127
|
-
task,
|
|
134
|
+
task: compactTask,
|
|
128
135
|
readmePath,
|
|
129
136
|
mtimeMs,
|
|
130
137
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-guide.d.ts","sourceRoot":"","sources":["../../src/cli/command-guide.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-guide.d.ts","sourceRoot":"","sources":["../../src/cli/command-guide.ts"],"names":[],"mappings":"AA0MA,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOzD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CA6FzC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { COMMAND_SNIPPETS } from "./command-snippets.js";
|
|
1
2
|
const CHEAT_SHEET_ROWS = [
|
|
2
3
|
{
|
|
3
4
|
operation: "PLANNER: list/show tasks",
|
|
@@ -31,6 +32,10 @@ const CHEAT_SHEET_ROWS = [
|
|
|
31
32
|
operation: "CODER/TESTER/DOCS: start checkout (branch_pr)",
|
|
32
33
|
command: "`agentplane work start <task-id> --agent <ROLE> --slug <slug> --worktree`",
|
|
33
34
|
},
|
|
35
|
+
{
|
|
36
|
+
operation: "CODER/TESTER: start task deterministically",
|
|
37
|
+
command: '`agentplane task start-ready <task-id> --author <ROLE> --body "Start: ..."` (run after successful `task plan approve`; do not run in parallel)',
|
|
38
|
+
},
|
|
34
39
|
{
|
|
35
40
|
operation: "CODER/TESTER/DOCS: update PR artifacts",
|
|
36
41
|
command: "`agentplane pr update <task-id>`",
|
|
@@ -83,15 +88,17 @@ const ROLE_GUIDES = [
|
|
|
83
88
|
"- `task new` auto-seeds README sections; use `task scaffold` only for backfill/import/manual repair.",
|
|
84
89
|
'- Plan lifecycle: `agentplane task plan set <task-id> --text "..." --updated-by <ROLE>` -> `agentplane task plan approve <task-id> --by <id>`',
|
|
85
90
|
"- Verify Steps discipline: if a task primary tag is verify-required (default: code/data/ops), fill `## Verify Steps` before plan approval.",
|
|
86
|
-
|
|
91
|
+
"- Doc quality gate: `task plan approve` and `finish` fail when required agent-filled sections (`Summary/Scope/Plan/Risks/Rollback Plan`, per config) are empty/TODO placeholders.",
|
|
92
|
+
'- Task docs (when planning needs it): `agentplane task doc set <task-id> --section Summary --text "..."`; if `--text`/`--file` contains multiple known headings, the command applies it as one batched full-doc update.',
|
|
87
93
|
],
|
|
88
94
|
},
|
|
89
95
|
{
|
|
90
96
|
role: "CODER",
|
|
91
97
|
lines: [
|
|
92
|
-
"- direct mode: single-stream in the current checkout; `agentplane work start <task-id> --agent <ROLE> --slug <slug>` records the active task and keeps the current branch (no task branches). Use `task doc set` / `task plan set` for normal docs updates.",
|
|
98
|
+
"- direct mode: single-stream in the current checkout; `agentplane work start <task-id> --agent <ROLE> --slug <slug>` records the active task and keeps the current branch (no task branches). Use `task doc set` / `task plan set` for normal docs updates; batched doc updates are allowed before approval.",
|
|
93
99
|
"- branch_pr: `agentplane work start <task-id> --agent <ROLE> --slug <slug> --worktree`",
|
|
94
|
-
'-
|
|
100
|
+
'- Start status (deterministic): `agentplane task start-ready <task-id> --author <ROLE> --body "Start: ..."` (after `task plan approve`, sequential only).',
|
|
101
|
+
'- Other status updates: `agentplane block <task-id> --author <ROLE> --body "Blocked: ..."`',
|
|
95
102
|
"- Verify Steps: `agentplane task verify-show <task-id>` (use as the verification contract before recording results).",
|
|
96
103
|
'- Verify: `agentplane verify <task-id> --ok|--rework --by <ROLE> --note "..."`',
|
|
97
104
|
'- 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 "..."`',
|
|
@@ -101,9 +108,10 @@ const ROLE_GUIDES = [
|
|
|
101
108
|
{
|
|
102
109
|
role: "TESTER",
|
|
103
110
|
lines: [
|
|
104
|
-
"- direct mode: single-stream in the current checkout; `agentplane work start <task-id> --agent <ROLE> --slug <slug>` records the active task and keeps the current branch (no task branches). Use `task doc set` / `task plan set` for normal docs updates.",
|
|
111
|
+
"- direct mode: single-stream in the current checkout; `agentplane work start <task-id> --agent <ROLE> --slug <slug>` records the active task and keeps the current branch (no task branches). Use `task doc set` / `task plan set` for normal docs updates; batched doc updates are allowed before approval.",
|
|
105
112
|
"- branch_pr: `agentplane work start <task-id> --agent <ROLE> --slug <slug> --worktree`",
|
|
106
|
-
'-
|
|
113
|
+
'- Start status (deterministic): `agentplane task start-ready <task-id> --author <ROLE> --body "Start: ..."` (after `task plan approve`, sequential only).',
|
|
114
|
+
'- Other status updates: `agentplane block <task-id> --author <ROLE> --body "Blocked: ..."`',
|
|
107
115
|
"- Verify Steps: `agentplane task verify-show <task-id>` (treat as the verification contract).",
|
|
108
116
|
'- Verify: `agentplane verify <task-id> --ok|--rework --by <ROLE> --note "..."`',
|
|
109
117
|
'- 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 "..."`',
|
|
@@ -113,7 +121,7 @@ const ROLE_GUIDES = [
|
|
|
113
121
|
{
|
|
114
122
|
role: "DOCS",
|
|
115
123
|
lines: [
|
|
116
|
-
'- Task docs: `agentplane task doc set <task-id> --section Summary --text "..."` (repeat per section or
|
|
124
|
+
'- Task docs: `agentplane task doc set <task-id> --section Summary --text "..."` (repeat per section, or send one multi-heading full-doc payload via `--text`/`--file`)',
|
|
117
125
|
'- PR notes: `agentplane pr note <task-id> --author DOCS --body "..."`',
|
|
118
126
|
'- Commit: `agentplane guard commit <task-id> -m "<emoji> <suffix> <scope>: <summary>"` / `agentplane commit <task-id> -m "<emoji> <suffix> <scope>: <summary>" --allow <path-prefix>` / preferred close path: `agentplane finish <task-id> --close-commit [--close-unstage-others]`',
|
|
119
127
|
],
|
|
@@ -136,14 +144,14 @@ const ROLE_GUIDES = [
|
|
|
136
144
|
{
|
|
137
145
|
role: "CREATOR",
|
|
138
146
|
lines: [
|
|
139
|
-
'- Task bookkeeping: `agentplane task update <task-id> ...` / `agentplane start <task-id> --author CREATOR --body "Start: ..."`',
|
|
147
|
+
'- Task bookkeeping: `agentplane task update <task-id> ...` / `agentplane task start-ready <task-id> --author CREATOR --body "Start: ..."`',
|
|
140
148
|
'- Commits: `agentplane guard commit <task-id> -m "<emoji> <suffix> <scope>: <summary>"` / `agentplane commit <task-id> -m "<emoji> <suffix> <scope>: <summary>" --allow <path-prefix>`',
|
|
141
149
|
],
|
|
142
150
|
},
|
|
143
151
|
{
|
|
144
152
|
role: "REDMINE",
|
|
145
153
|
lines: [
|
|
146
|
-
|
|
154
|
+
`- Sync before/after updates: \`${COMMAND_SNIPPETS.sync.pullRedmineExplicit}\` / \`${COMMAND_SNIPPETS.sync.pushRedmineExplicitWithYes}\``,
|
|
147
155
|
"- Then use normal task/doc commands (`agentplane task list` / `agentplane task show` / `agentplane task update` / `agentplane task doc set`) as needed.",
|
|
148
156
|
],
|
|
149
157
|
},
|
|
@@ -187,10 +195,10 @@ export function renderQuickstart() {
|
|
|
187
195
|
return [
|
|
188
196
|
"# agentplane quickstart",
|
|
189
197
|
"",
|
|
190
|
-
"AGENTS.md is the source of truth for
|
|
198
|
+
"The policy gateway file (AGENTS.md or CLAUDE.md) is the source of truth for workflow/process policy; quickstart and role output are the source of truth for CLI syntax and artifacts.",
|
|
191
199
|
"Do not edit `.agentplane/tasks.json` by hand.",
|
|
192
200
|
"",
|
|
193
|
-
"- See AGENTS.md for
|
|
201
|
+
"- See your policy gateway file (AGENTS.md or CLAUDE.md) for canonical workflow policy and approval gates.",
|
|
194
202
|
"",
|
|
195
203
|
"## Project setup",
|
|
196
204
|
"",
|
|
@@ -201,11 +209,18 @@ export function renderQuickstart() {
|
|
|
201
209
|
"",
|
|
202
210
|
"## Daily task workflow",
|
|
203
211
|
"",
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
212
|
+
`- \`${COMMAND_SNIPPETS.core.taskList}\` / \`${COMMAND_SNIPPETS.core.taskShow}\``,
|
|
213
|
+
`- \`${COMMAND_SNIPPETS.core.taskNew}\``,
|
|
214
|
+
`- \`${COMMAND_SNIPPETS.core.startTask}\``,
|
|
215
|
+
`- \`${COMMAND_SNIPPETS.core.verifyTask}\``,
|
|
216
|
+
`- \`${COMMAND_SNIPPETS.core.finishTask}\``,
|
|
217
|
+
"",
|
|
218
|
+
"## Harness engeneering loop",
|
|
219
|
+
"",
|
|
220
|
+
"- Constrain: policy + workflow contract first.",
|
|
221
|
+
"- Execute: small explicit transitions.",
|
|
222
|
+
"- Observe: structured artifacts and diagnostics.",
|
|
223
|
+
"- Recover: deterministic fallback before manual repair.",
|
|
209
224
|
"",
|
|
210
225
|
"## Branch workflow (branch_pr)",
|
|
211
226
|
"",
|
|
@@ -213,7 +228,12 @@ export function renderQuickstart() {
|
|
|
213
228
|
"- `agentplane pr open <task-id>` / `agentplane pr update <task-id>` / `agentplane pr check <task-id>`",
|
|
214
229
|
"- `agentplane integrate <task-id> --branch task/<task-id>/<slug> --run-verify`",
|
|
215
230
|
"",
|
|
216
|
-
"##
|
|
231
|
+
"## Workflow operations (core)",
|
|
232
|
+
"- `agentplane workflow debug`",
|
|
233
|
+
"- `agentplane workflow sync`",
|
|
234
|
+
"- `agentplane workflow land`",
|
|
235
|
+
"",
|
|
236
|
+
"## Recipes and scenarios (extensions)",
|
|
217
237
|
"",
|
|
218
238
|
"- `agentplane recipes list`",
|
|
219
239
|
"- `agentplane recipes list --tag <tag>`",
|
|
@@ -223,7 +243,7 @@ export function renderQuickstart() {
|
|
|
223
243
|
"",
|
|
224
244
|
"## More guidance",
|
|
225
245
|
"",
|
|
226
|
-
|
|
246
|
+
`- \`${COMMAND_SNIPPETS.core.quickstart}\` and \`${COMMAND_SNIPPETS.core.role}\` show command guidance.`,
|
|
227
247
|
"",
|
|
228
248
|
"## Agent cheat sheet",
|
|
229
249
|
"",
|
|
@@ -244,12 +264,14 @@ export function renderQuickstart() {
|
|
|
244
264
|
"## Global flags",
|
|
245
265
|
"",
|
|
246
266
|
"- `--root <path>`: treat <path> as project root",
|
|
267
|
+
"- `--output <text|json>`: force global CLI output mode (`json` is agent-oriented envelope mode)",
|
|
247
268
|
"- `--json-errors`: emit JSON-formatted errors",
|
|
248
269
|
"- `--help` / `-h`: show help",
|
|
249
270
|
"- `--version`: show version",
|
|
250
271
|
"- `--no-update-check`: skip checking npm for a newer CLI version",
|
|
251
272
|
"",
|
|
252
273
|
"Notes:",
|
|
274
|
+
"- `AGENTPLANE_OUTPUT=json` enables global JSON output mode for agent runtimes.",
|
|
253
275
|
"- `.env` at the repo root is loaded automatically (without overwriting existing environment variables).",
|
|
254
276
|
"",
|
|
255
277
|
"## Commit message format",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const COMMAND_SNIPPETS: {
|
|
2
|
+
readonly core: {
|
|
3
|
+
readonly taskList: "agentplane task list";
|
|
4
|
+
readonly taskShow: "agentplane task show <task-id>";
|
|
5
|
+
readonly taskNew: "agentplane task new --title \"...\" --description \"...\" --priority med --owner CODER --tag <tag>";
|
|
6
|
+
readonly startTask: "agentplane task start-ready <task-id> --author <ROLE> --body \"Start: ...\"";
|
|
7
|
+
readonly verifyTask: "agentplane verify <task-id> --ok|--rework --by <ROLE> --note \"...\"";
|
|
8
|
+
readonly finishTask: "agentplane finish <task-id> --author <ROLE> --body \"Verified: ...\" --commit <git-rev> --close-commit";
|
|
9
|
+
readonly quickstart: "agentplane quickstart";
|
|
10
|
+
readonly role: "agentplane role <ROLE>";
|
|
11
|
+
};
|
|
12
|
+
readonly sync: {
|
|
13
|
+
readonly pullConfigured: "agentplane sync --direction pull";
|
|
14
|
+
readonly pushConfiguredWithYes: "agentplane sync --direction push --yes";
|
|
15
|
+
readonly pullRedmineExplicit: "agentplane sync redmine --direction pull";
|
|
16
|
+
readonly pushRedmineExplicitWithYes: "agentplane sync redmine --direction push --yes";
|
|
17
|
+
};
|
|
18
|
+
readonly backendSync: {
|
|
19
|
+
readonly pullLocal: "agentplane backend sync local --direction pull";
|
|
20
|
+
readonly pullRedmine: "agentplane backend sync redmine --direction pull";
|
|
21
|
+
readonly pushRedmineWithYes: "agentplane backend sync redmine --direction push --yes";
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=command-snippets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-snippets.d.ts","sourceRoot":"","sources":["../../src/cli/command-snippets.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAwBnB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const COMMAND_SNIPPETS = {
|
|
2
|
+
core: {
|
|
3
|
+
taskList: "agentplane task list",
|
|
4
|
+
taskShow: "agentplane task show <task-id>",
|
|
5
|
+
taskNew: 'agentplane task new --title "..." --description "..." --priority med --owner CODER --tag <tag>',
|
|
6
|
+
startTask: 'agentplane task start-ready <task-id> --author <ROLE> --body "Start: ..."',
|
|
7
|
+
verifyTask: 'agentplane verify <task-id> --ok|--rework --by <ROLE> --note "..."',
|
|
8
|
+
finishTask: 'agentplane finish <task-id> --author <ROLE> --body "Verified: ..." --commit <git-rev> --close-commit',
|
|
9
|
+
quickstart: "agentplane quickstart",
|
|
10
|
+
role: "agentplane role <ROLE>",
|
|
11
|
+
},
|
|
12
|
+
sync: {
|
|
13
|
+
pullConfigured: "agentplane sync --direction pull",
|
|
14
|
+
pushConfiguredWithYes: "agentplane sync --direction push --yes",
|
|
15
|
+
pullRedmineExplicit: "agentplane sync redmine --direction pull",
|
|
16
|
+
pushRedmineExplicitWithYes: "agentplane sync redmine --direction push --yes",
|
|
17
|
+
},
|
|
18
|
+
backendSync: {
|
|
19
|
+
pullLocal: "agentplane backend sync local --direction pull",
|
|
20
|
+
pullRedmine: "agentplane backend sync redmine --direction pull",
|
|
21
|
+
pushRedmineWithYes: "agentplane backend sync redmine --direction push --yes",
|
|
22
|
+
},
|
|
23
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type ReasonCodeCategory = "usage" | "reconcile" | "git" | "network" | "backend" | "validation";
|
|
2
|
+
export type ReasonCodeMeta = {
|
|
3
|
+
code: string;
|
|
4
|
+
category: ReasonCodeCategory;
|
|
5
|
+
summary: string;
|
|
6
|
+
action: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function getReasonCodeMeta(code: string | undefined): ReasonCodeMeta | undefined;
|
|
9
|
+
//# sourceMappingURL=reason-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reason-codes.d.ts","sourceRoot":"","sources":["../../src/cli/reason-codes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,WAAW,GACX,KAAK,GACL,SAAS,GACT,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA6EF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAGtF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const REASON_CODE_MAP = {
|
|
2
|
+
usage_help: {
|
|
3
|
+
code: "usage_help",
|
|
4
|
+
category: "usage",
|
|
5
|
+
summary: "command invocation is incomplete or invalid",
|
|
6
|
+
action: "open command help and fix required args/flags",
|
|
7
|
+
},
|
|
8
|
+
sync_backend_mismatch: {
|
|
9
|
+
code: "sync_backend_mismatch",
|
|
10
|
+
category: "backend",
|
|
11
|
+
summary: "sync command backend id does not match active backend",
|
|
12
|
+
action: "inspect config and rerun sync for matching backend",
|
|
13
|
+
},
|
|
14
|
+
reconcile_git_state_unreadable: {
|
|
15
|
+
code: "reconcile_git_state_unreadable",
|
|
16
|
+
category: "reconcile",
|
|
17
|
+
summary: "reconcile guard cannot read git state",
|
|
18
|
+
action: "run git status and fix repository visibility/permissions",
|
|
19
|
+
},
|
|
20
|
+
reconcile_task_scan_failed: {
|
|
21
|
+
code: "reconcile_task_scan_failed",
|
|
22
|
+
category: "reconcile",
|
|
23
|
+
summary: "reconcile guard could not complete task scan",
|
|
24
|
+
action: "run strict task scan and resolve parse/read errors",
|
|
25
|
+
},
|
|
26
|
+
reconcile_task_scan_incomplete: {
|
|
27
|
+
code: "reconcile_task_scan_incomplete",
|
|
28
|
+
category: "reconcile",
|
|
29
|
+
summary: "task scan produced skipped files/warnings",
|
|
30
|
+
action: "resolve scan warnings before mutating commands",
|
|
31
|
+
},
|
|
32
|
+
git_branch_state: {
|
|
33
|
+
code: "git_branch_state",
|
|
34
|
+
category: "git",
|
|
35
|
+
summary: "branch command cannot determine branch state",
|
|
36
|
+
action: "inspect branch state and repository context",
|
|
37
|
+
},
|
|
38
|
+
git_index_state: {
|
|
39
|
+
code: "git_index_state",
|
|
40
|
+
category: "git",
|
|
41
|
+
summary: "commit command found problematic index/worktree state",
|
|
42
|
+
action: "inspect staged/unstaged changes and retry",
|
|
43
|
+
},
|
|
44
|
+
git_context: {
|
|
45
|
+
code: "git_context",
|
|
46
|
+
category: "git",
|
|
47
|
+
summary: "command requires valid git repository context",
|
|
48
|
+
action: "confirm repository root and tracked changes",
|
|
49
|
+
},
|
|
50
|
+
network_gate: {
|
|
51
|
+
code: "network_gate",
|
|
52
|
+
category: "network",
|
|
53
|
+
summary: "network access is blocked by policy or environment",
|
|
54
|
+
action: "recheck approvals/connectivity and retry",
|
|
55
|
+
},
|
|
56
|
+
backend_sync_config: {
|
|
57
|
+
code: "backend_sync_config",
|
|
58
|
+
category: "backend",
|
|
59
|
+
summary: "sync command failed due to backend configuration",
|
|
60
|
+
action: "inspect backend config and active backend settings",
|
|
61
|
+
},
|
|
62
|
+
backend_config: {
|
|
63
|
+
code: "backend_config",
|
|
64
|
+
category: "backend",
|
|
65
|
+
summary: "backend configuration is missing or invalid",
|
|
66
|
+
action: "inspect backend config under .agentplane/backends",
|
|
67
|
+
},
|
|
68
|
+
validation_preflight: {
|
|
69
|
+
code: "validation_preflight",
|
|
70
|
+
category: "validation",
|
|
71
|
+
summary: "input/config validation failed before execution",
|
|
72
|
+
action: "run preflight and fix reported validation issues",
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
export function getReasonCodeMeta(code) {
|
|
76
|
+
if (!code)
|
|
77
|
+
return undefined;
|
|
78
|
+
return REASON_CODE_MAP[code];
|
|
79
|
+
}
|
|
@@ -6,4 +6,5 @@ export type BundledRecipeInfo = {
|
|
|
6
6
|
export declare function listBundledRecipes(): BundledRecipeInfo[];
|
|
7
7
|
export declare function renderBundledRecipesHint(): string;
|
|
8
8
|
export declare function validateBundledRecipesSelection(recipes: string[]): void;
|
|
9
|
+
export declare function getBundledRecipeSourcePath(recipeId: string): string | null;
|
|
9
10
|
//# sourceMappingURL=recipes-bundled.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes-bundled.d.ts","sourceRoot":"","sources":["../../src/cli/recipes-bundled.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recipes-bundled.d.ts","sourceRoot":"","sources":["../../src/cli/recipes-bundled.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CAMxD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAevE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BUNDLED_RECIPES_CATALOG } from "../recipes/bundled-recipes.js";
|
|
1
|
+
import { BUNDLED_RECIPES_CATALOG, resolveBundledRecipeSourcePath, } from "../recipes/bundled-recipes.js";
|
|
2
2
|
import { CliError } from "../shared/errors.js";
|
|
3
3
|
export function listBundledRecipes() {
|
|
4
4
|
return BUNDLED_RECIPES_CATALOG.recipes.map((recipe) => ({
|
|
@@ -31,3 +31,6 @@ export function validateBundledRecipesSelection(recipes) {
|
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
export function getBundledRecipeSourcePath(recipeId) {
|
|
35
|
+
return resolveBundledRecipeSourcePath(recipeId);
|
|
36
|
+
}
|
|
@@ -15,5 +15,5 @@ export type CommandEntry = {
|
|
|
15
15
|
needsConfig: boolean;
|
|
16
16
|
needsTaskContext: boolean;
|
|
17
17
|
};
|
|
18
|
-
export declare const COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
|
|
18
|
+
export declare const COMMANDS: readonly [CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry, CommandEntry];
|
|
19
19
|
//# sourceMappingURL=command-catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/cli/run-cli/command-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/cli/run-cli/command-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAkHvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,CAAC,sBAAsB,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACpE,kBAAkB,EAAE,CAAC,sBAAsB,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACjF,eAAe,EAAE,CAAC,sBAAsB,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3E,kBAAkB,EAAE,MAAM,SAAS,QAAQ,EAAE,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAgBF,eAAO,MAAM,QAAQ,m4CA+hBuB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { initSpec } from "./commands/init.js";
|
|
2
2
|
import { agentsSpec, preflightSpec, quickstartSpec, roleSpec } from "./commands/core.js";
|
|
3
|
-
import { configSetSpec, configShowSpec, modeGetSpec, modeSetSpec } from "./commands/config.js";
|
|
3
|
+
import { configSetSpec, configShowSpec, modeGetSpec, modeSetSpec, profileSetSpec, } from "./commands/config.js";
|
|
4
4
|
import { ideSyncSpec } from "./commands/ide.js";
|
|
5
5
|
import { taskNewSpec } from "../../commands/task/new.spec.js";
|
|
6
6
|
import { taskListSpec } from "../../commands/task/list.spec.js";
|
|
@@ -62,6 +62,10 @@ import { verifySpec } from "../../commands/verify.spec.js";
|
|
|
62
62
|
import { finishSpec } from "../../commands/finish.spec.js";
|
|
63
63
|
import { readySpec } from "../../commands/ready.command.js";
|
|
64
64
|
import { doctorSpec } from "../../commands/doctor.spec.js";
|
|
65
|
+
import { workflowSpec } from "../../commands/workflow.command.js";
|
|
66
|
+
import { workflowBuildSpec } from "../../commands/workflow-build.command.js";
|
|
67
|
+
import { workflowRestoreSpec } from "../../commands/workflow-restore.command.js";
|
|
68
|
+
import { workflowDebugSpec, workflowLandSpec, workflowSyncSpec, } from "../../commands/workflow-playbook.command.js";
|
|
65
69
|
import { docsCliSpec } from "../../commands/docs/cli.command.js";
|
|
66
70
|
import { hooksSpec } from "../../commands/hooks/hooks.command.js";
|
|
67
71
|
import { hooksInstallSpec } from "../../commands/hooks/install.command.js";
|
|
@@ -150,6 +154,11 @@ export const COMMANDS = [
|
|
|
150
154
|
needsConfig: true,
|
|
151
155
|
needsTaskContext: false,
|
|
152
156
|
}),
|
|
157
|
+
entry(profileSetSpec, (deps) => import("./commands/config.js").then((m) => m.makeRunProfileSetHandler(deps)), {
|
|
158
|
+
needsProject: true,
|
|
159
|
+
needsConfig: true,
|
|
160
|
+
needsTaskContext: false,
|
|
161
|
+
}),
|
|
153
162
|
entry(ideSyncSpec, (deps) => import("./commands/ide.js").then((m) => m.makeRunIdeSyncHandler(deps)), {
|
|
154
163
|
needsProject: true,
|
|
155
164
|
needsConfig: true,
|
|
@@ -160,6 +169,36 @@ export const COMMANDS = [
|
|
|
160
169
|
needsConfig: false,
|
|
161
170
|
needsTaskContext: false,
|
|
162
171
|
}),
|
|
172
|
+
entry(workflowSpec, () => import("../../commands/workflow.command.js").then((m) => m.runWorkflow), {
|
|
173
|
+
needsProject: false,
|
|
174
|
+
needsConfig: false,
|
|
175
|
+
needsTaskContext: false,
|
|
176
|
+
}),
|
|
177
|
+
entry(workflowBuildSpec, () => import("../../commands/workflow-build.command.js").then((m) => m.runWorkflowBuild), {
|
|
178
|
+
needsProject: true,
|
|
179
|
+
needsConfig: false,
|
|
180
|
+
needsTaskContext: false,
|
|
181
|
+
}),
|
|
182
|
+
entry(workflowRestoreSpec, () => import("../../commands/workflow-restore.command.js").then((m) => m.runWorkflowRestore), {
|
|
183
|
+
needsProject: true,
|
|
184
|
+
needsConfig: false,
|
|
185
|
+
needsTaskContext: false,
|
|
186
|
+
}),
|
|
187
|
+
entry(workflowDebugSpec, () => import("../../commands/workflow-playbook.command.js").then((m) => m.runWorkflowDebug), {
|
|
188
|
+
needsProject: true,
|
|
189
|
+
needsConfig: false,
|
|
190
|
+
needsTaskContext: false,
|
|
191
|
+
}),
|
|
192
|
+
entry(workflowSyncSpec, () => import("../../commands/workflow-playbook.command.js").then((m) => m.runWorkflowSync), {
|
|
193
|
+
needsProject: true,
|
|
194
|
+
needsConfig: false,
|
|
195
|
+
needsTaskContext: false,
|
|
196
|
+
}),
|
|
197
|
+
entry(workflowLandSpec, () => import("../../commands/workflow-playbook.command.js").then((m) => m.runWorkflowLand), {
|
|
198
|
+
needsProject: true,
|
|
199
|
+
needsConfig: false,
|
|
200
|
+
needsTaskContext: false,
|
|
201
|
+
}),
|
|
163
202
|
entry(taskListSpec, (deps) => import("../../commands/task/list.run.js").then((m) => m.makeRunTaskListHandler(deps.getCtx))),
|
|
164
203
|
entry(taskNextSpec, (deps) => import("../../commands/task/next.run.js").then((m) => m.makeRunTaskNextHandler(deps.getCtx))),
|
|
165
204
|
entry(taskSearchSpec, (deps) => import("../../commands/task/search.run.js").then((m) => m.makeRunTaskSearchHandler(deps.getCtx))),
|
|
@@ -17,5 +17,10 @@ type ModeSetParsed = {
|
|
|
17
17
|
};
|
|
18
18
|
export declare const modeSetSpec: CommandSpec<ModeSetParsed>;
|
|
19
19
|
export declare function makeRunModeSetHandler(deps: RunDeps): CommandHandler<ModeSetParsed>;
|
|
20
|
+
type ProfileSetParsed = {
|
|
21
|
+
profile: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const profileSetSpec: CommandSpec<ProfileSetParsed>;
|
|
24
|
+
export declare function makeRunProfileSetHandler(deps: RunDeps): CommandHandler<ProfileSetParsed>;
|
|
20
25
|
export {};
|
|
21
26
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAMxD,CAAC;AAcF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAExF;AAED,KAAK,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,eAAe,CAgBtD,CAAC;AA6BF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAStF;AAED,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,aAAa,CAMlD,CAAC;AAcF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAElF;AAED,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,aAAa,CAgBlD,CAAC;AA0BF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAQlF"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/run-cli/commands/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAMxD,CAAC;AAcF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAExF;AAED,KAAK,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,eAAe,CAgBtD,CAAC;AA6BF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAStF;AAED,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,aAAa,CAMlD,CAAC;AAcF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAElF;AAED,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,aAAa,CAgBlD,CAAC;AA0BF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAQlF;AAED,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AA4C5C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAoBxD,CAAC;AAmCF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAQxF"}
|