@open-agent-toolkit/cli 0.0.27 → 0.0.29
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/docs/cli-utilities/config-and-local-state.md +2 -1
- package/assets/docs/cli-utilities/configuration.md +111 -0
- package/assets/docs/cli-utilities/tool-packs.md +1 -1
- package/assets/docs/reference/cli-reference.md +25 -0
- package/assets/docs/reference/file-locations.md +2 -1
- package/assets/docs/reference/oat-directory-structure.md +1 -0
- package/assets/docs/workflows/projects/hill-checkpoints.md +17 -0
- package/assets/docs/workflows/projects/lifecycle.md +6 -0
- package/assets/docs/workflows/projects/reviews.md +24 -0
- package/assets/docs/workflows/skills/index.md +2 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-complete/SKILL.md +20 -1
- package/assets/skills/oat-project-implement/SKILL.md +85 -4
- package/assets/skills/oat-project-next/SKILL.md +2 -2
- package/assets/skills/oat-project-review-provide/SKILL.md +12 -2
- package/assets/skills/oat-project-review-receive/SKILL.md +23 -1
- package/assets/skills/oat-project-review-receive-remote/SKILL.md +17 -1
- package/assets/skills/oat-wrap-up/SKILL.md +417 -0
- package/assets/skills/oat-wrap-up/references/automation-recipes.md +100 -0
- package/assets/skills/oat-wrap-up/references/report-template.md +90 -0
- package/dist/commands/config/index.d.ts +5 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +283 -140
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +1 -0
- package/dist/config/oat-config.d.ts +15 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +54 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +21 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oat-config.d.ts","sourceRoot":"","sources":["../../src/config/oat-config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"oat-config.d.ts","sourceRoot":"","sources":["../../src/config/oat-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,44 @@ import { readFile } from 'node:fs/promises';
|
|
|
3
3
|
import { basename, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
4
4
|
import { atomicWriteJson, dirExists, fileExists } from '../fs/io.js';
|
|
5
5
|
import { normalizeToPosixPath } from '../fs/paths.js';
|
|
6
|
+
const VALID_HILL_CHECKPOINT_DEFAULTS = ['every', 'final'];
|
|
7
|
+
const VALID_POST_IMPLEMENT_SEQUENCES = ['wait', 'summary', 'pr', 'docs-pr'];
|
|
8
|
+
const VALID_REVIEW_EXECUTION_MODELS = [
|
|
9
|
+
'subagent',
|
|
10
|
+
'inline',
|
|
11
|
+
'fresh-session',
|
|
12
|
+
];
|
|
13
|
+
function normalizeWorkflowConfig(parsed) {
|
|
14
|
+
if (!isRecord(parsed)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const next = {};
|
|
18
|
+
if (typeof parsed.hillCheckpointDefault === 'string' &&
|
|
19
|
+
VALID_HILL_CHECKPOINT_DEFAULTS.includes(parsed.hillCheckpointDefault)) {
|
|
20
|
+
next.hillCheckpointDefault =
|
|
21
|
+
parsed.hillCheckpointDefault;
|
|
22
|
+
}
|
|
23
|
+
if (typeof parsed.archiveOnComplete === 'boolean') {
|
|
24
|
+
next.archiveOnComplete = parsed.archiveOnComplete;
|
|
25
|
+
}
|
|
26
|
+
if (typeof parsed.createPrOnComplete === 'boolean') {
|
|
27
|
+
next.createPrOnComplete = parsed.createPrOnComplete;
|
|
28
|
+
}
|
|
29
|
+
if (typeof parsed.postImplementSequence === 'string' &&
|
|
30
|
+
VALID_POST_IMPLEMENT_SEQUENCES.includes(parsed.postImplementSequence)) {
|
|
31
|
+
next.postImplementSequence =
|
|
32
|
+
parsed.postImplementSequence;
|
|
33
|
+
}
|
|
34
|
+
if (typeof parsed.reviewExecutionModel === 'string' &&
|
|
35
|
+
VALID_REVIEW_EXECUTION_MODELS.includes(parsed.reviewExecutionModel)) {
|
|
36
|
+
next.reviewExecutionModel =
|
|
37
|
+
parsed.reviewExecutionModel;
|
|
38
|
+
}
|
|
39
|
+
if (typeof parsed.autoNarrowReReviewScope === 'boolean') {
|
|
40
|
+
next.autoNarrowReReviewScope = parsed.autoNarrowReReviewScope;
|
|
41
|
+
}
|
|
42
|
+
return Object.keys(next).length > 0 ? next : undefined;
|
|
43
|
+
}
|
|
6
44
|
const DEFAULT_OAT_CONFIG = { version: 1 };
|
|
7
45
|
const DEFAULT_OAT_LOCAL_CONFIG = { version: 1 };
|
|
8
46
|
const DEFAULT_USER_CONFIG = { version: 1 };
|
|
@@ -89,6 +127,10 @@ function normalizeOatConfig(parsed) {
|
|
|
89
127
|
parsed.archive.summaryExportPath.trim()) {
|
|
90
128
|
archive.summaryExportPath = normalizeToPosixPath(parsed.archive.summaryExportPath.trim().replace(/\/+$/, ''));
|
|
91
129
|
}
|
|
130
|
+
if (typeof parsed.archive.wrapUpExportPath === 'string' &&
|
|
131
|
+
parsed.archive.wrapUpExportPath.trim()) {
|
|
132
|
+
archive.wrapUpExportPath = normalizeToPosixPath(parsed.archive.wrapUpExportPath.trim().replace(/\/+$/, ''));
|
|
133
|
+
}
|
|
92
134
|
if (Object.keys(archive).length > 0) {
|
|
93
135
|
next.archive = archive;
|
|
94
136
|
}
|
|
@@ -148,6 +190,10 @@ function normalizeOatConfig(parsed) {
|
|
|
148
190
|
if (typeof parsed.autoReviewAtCheckpoints === 'boolean') {
|
|
149
191
|
next.autoReviewAtCheckpoints = parsed.autoReviewAtCheckpoints;
|
|
150
192
|
}
|
|
193
|
+
const workflow = normalizeWorkflowConfig(parsed.workflow);
|
|
194
|
+
if (workflow) {
|
|
195
|
+
next.workflow = workflow;
|
|
196
|
+
}
|
|
151
197
|
return next;
|
|
152
198
|
}
|
|
153
199
|
function normalizeOatLocalConfig(repoRoot, parsed) {
|
|
@@ -174,6 +220,10 @@ function normalizeOatLocalConfig(repoRoot, parsed) {
|
|
|
174
220
|
? parsed.activeIdea.trim()
|
|
175
221
|
: null;
|
|
176
222
|
}
|
|
223
|
+
const workflow = normalizeWorkflowConfig(parsed.workflow);
|
|
224
|
+
if (workflow) {
|
|
225
|
+
next.workflow = workflow;
|
|
226
|
+
}
|
|
177
227
|
return next;
|
|
178
228
|
}
|
|
179
229
|
export function resolveLocalPaths(config) {
|
|
@@ -266,6 +316,10 @@ function normalizeUserConfig(parsed) {
|
|
|
266
316
|
? parsed.activeIdea.trim()
|
|
267
317
|
: null;
|
|
268
318
|
}
|
|
319
|
+
const workflow = normalizeWorkflowConfig(parsed.workflow);
|
|
320
|
+
if (workflow) {
|
|
321
|
+
next.workflow = workflow;
|
|
322
|
+
}
|
|
269
323
|
return next;
|
|
270
324
|
}
|
|
271
325
|
export async function readUserConfig(userConfigDir) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,OAAO,GACP,MAAM,GACN,KAAK,GACL,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,kCAAkC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAChE;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,OAAO,GACP,MAAM,GACN,KAAK,GACL,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,kCAAkC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAChE;AA+DD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,SAAS,GAAE,OAAO,CAAC,kCAAkC,CAAM,GAC1D,OAAO,CAAC,cAAc,CAAC,CAqEzB"}
|
package/dist/config/resolve.js
CHANGED
|
@@ -12,6 +12,7 @@ const DEFAULT_SHARED_CONFIG = {
|
|
|
12
12
|
s3Uri: null,
|
|
13
13
|
s3SyncOnComplete: false,
|
|
14
14
|
summaryExportPath: null,
|
|
15
|
+
wrapUpExportPath: null,
|
|
15
16
|
},
|
|
16
17
|
documentation: {
|
|
17
18
|
root: null,
|
|
@@ -20,6 +21,15 @@ const DEFAULT_SHARED_CONFIG = {
|
|
|
20
21
|
index: null,
|
|
21
22
|
requireForProjectCompletion: false,
|
|
22
23
|
},
|
|
24
|
+
tools: {
|
|
25
|
+
core: false,
|
|
26
|
+
docs: false,
|
|
27
|
+
ideas: false,
|
|
28
|
+
'project-management': false,
|
|
29
|
+
research: false,
|
|
30
|
+
utility: false,
|
|
31
|
+
workflows: false,
|
|
32
|
+
},
|
|
23
33
|
autoReviewAtCheckpoints: false,
|
|
24
34
|
};
|
|
25
35
|
const DEFAULT_LOCAL_CONFIG = {
|
|
@@ -30,6 +40,16 @@ const DEFAULT_LOCAL_CONFIG = {
|
|
|
30
40
|
const DEFAULT_USER_CONFIG = {
|
|
31
41
|
activeIdea: null,
|
|
32
42
|
};
|
|
43
|
+
const DEFAULT_WORKFLOW_CONFIG = {
|
|
44
|
+
workflow: {
|
|
45
|
+
hillCheckpointDefault: null,
|
|
46
|
+
archiveOnComplete: null,
|
|
47
|
+
createPrOnComplete: null,
|
|
48
|
+
postImplementSequence: null,
|
|
49
|
+
reviewExecutionModel: null,
|
|
50
|
+
autoNarrowReReviewScope: null,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
33
53
|
const ENV_OVERRIDE_MAP = {
|
|
34
54
|
'projects.root': 'OAT_PROJECTS_ROOT',
|
|
35
55
|
'worktrees.root': 'OAT_WORKTREES_ROOT',
|
|
@@ -51,6 +71,7 @@ export async function resolveEffectiveConfig(repoRoot, userConfigDir, env = proc
|
|
|
51
71
|
...flattenConfig(DEFAULT_SHARED_CONFIG),
|
|
52
72
|
...flattenConfig(DEFAULT_LOCAL_CONFIG),
|
|
53
73
|
...flattenConfig(DEFAULT_USER_CONFIG),
|
|
74
|
+
...flattenConfig(DEFAULT_WORKFLOW_CONFIG),
|
|
54
75
|
};
|
|
55
76
|
const keys = new Set([
|
|
56
77
|
...Object.keys(defaultValues),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-agent-toolkit/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.29",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Open Agent Toolkit CLI",
|
|
6
6
|
"homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"ora": "^9.0.0",
|
|
34
34
|
"yaml": "2.8.2",
|
|
35
35
|
"zod": "^3.25.76",
|
|
36
|
-
"@open-agent-toolkit/control-plane": "0.0.
|
|
36
|
+
"@open-agent-toolkit/control-plane": "0.0.29"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^22.10.0",
|