@open-agent-toolkit/cli 0.3.15 → 0.3.16
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/NOTICES.md +48 -0
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/provider-sync/commands.md +21 -0
- package/assets/docs/reference/cli-reference.md +2 -1
- package/assets/docs/reference/configuration.md +10 -2
- package/assets/docs/skills/index.md +1 -0
- package/assets/docs/skills/recon.md +8 -5
- package/assets/docs/workflows/advanced/autonomy.md +10 -0
- package/assets/docs/workflows/advanced/workflow-gates.md +109 -10
- package/assets/docs/workflows/approvals-and-automation.md +3 -1
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +62 -1
- package/assets/docs/workflows/projects/execution/implementation-execution.md +23 -3
- package/assets/docs/workflows/projects/execution/project-log.md +6 -0
- package/assets/docs/workflows/projects/lifecycle.md +7 -0
- package/assets/docs/workflows/projects/reviews/index.md +63 -1
- package/assets/docs/workflows/waves/wave-workflows.md +11 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-autonomous/SKILL.md +1 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +172 -165
- package/assets/skills/oat-project-complete-auto/SKILL.md +388 -0
- package/assets/skills/oat-project-document/SKILL.md +1 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-implement/SKILL.md +6 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +28 -1
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-implement/references/docs/complexity-review-fallback.md +262 -0
- package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-implement/references/phase-execution.md +18 -0
- package/assets/skills/oat-project-lite/SKILL.md +1 -1
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-next/SKILL.md +19 -2
- package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-pr-final/SKILL.md +4 -3
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-progress/SKILL.md +15 -1
- package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-quick-start/SKILL.md +31 -3
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-quick-start/references/docs/complexity-review-fallback.md +262 -0
- package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-review-receive/SKILL.md +21 -3
- package/assets/skills/oat-project-review-receive/references/docs/complexity-review-fallback.md +262 -0
- package/assets/skills/oat-wave-execute/SKILL.md +49 -28
- package/assets/skills/oat-wave-program/SKILL.md +15 -6
- package/assets/skills/oat-wrap-up/SKILL.md +9 -3
- package/assets/skills/oat-wrap-up/references/report-template.md +1 -1
- package/assets/skills/recon/SKILL.md +1 -1
- package/assets/skills/recon/references/packet-contract.md +18 -3
- package/assets/skills/recon/scripts/lib/contracts.mjs +16 -2
- package/assets/skills/recon/scripts/reconcile-ledger.mjs +20 -10
- package/assets/skills/recon/scripts/render-packet.mjs +31 -3
- package/assets/skills/recon/scripts/validate-packet.mjs +5 -5
- package/assets/templates/state.md +7 -0
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +13 -0
- package/dist/commands/gate/index.d.ts +5 -0
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +270 -9
- package/dist/commands/shared/frontmatter.d.ts +1 -1
- package/dist/commands/shared/frontmatter.d.ts.map +1 -1
- package/dist/commands/shared/frontmatter.js +1 -0
- package/dist/commands/state/generate.d.ts +1 -1
- package/dist/commands/state/generate.d.ts.map +1 -1
- package/dist/commands/state/generate.js +87 -8
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +31 -5
- package/dist/commands/sync/dry-run.d.ts.map +1 -1
- package/dist/commands/sync/dry-run.js +28 -11
- package/dist/commands/sync/sync.utils.d.ts +13 -0
- package/dist/commands/sync/sync.utils.d.ts.map +1 -1
- package/dist/commands/sync/sync.utils.js +21 -1
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +1 -0
- package/dist/config/oat-config.d.ts +1 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +3 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +1 -0
- package/dist/drift/detector.js +6 -6
- package/dist/engine/compute-plan.d.ts.map +1 -1
- package/dist/engine/compute-plan.js +87 -2
- package/dist/engine/engine.types.d.ts +10 -1
- package/dist/engine/engine.types.d.ts.map +1 -1
- package/dist/engine/engine.types.js +4 -0
- package/dist/engine/execute-plan.d.ts.map +1 -1
- package/dist/engine/execute-plan.js +42 -5
- package/dist/engine/managed-copy-hash.d.ts +4 -3
- package/dist/engine/managed-copy-hash.d.ts.map +1 -1
- package/dist/engine/managed-copy-hash.js +4 -3
- package/dist/fs/assets.d.ts.map +1 -1
- package/dist/fs/assets.js +7 -1
- package/dist/manifest/hash.d.ts +8 -10
- package/dist/manifest/hash.d.ts.map +1 -1
- package/dist/ui/output.js +1 -1
- package/dist/validation/skills.d.ts.map +1 -1
- package/dist/validation/skills.js +13 -0
- package/package.json +2 -2
|
@@ -42,9 +42,10 @@ import type { ManifestEntry } from '../manifest/manifest.types.js';
|
|
|
42
42
|
* skipped it. Combined with the unframed digest that let a view drop
|
|
43
43
|
* `SKILL.md`, fuse its bytes into a surviving file, and read `in_sync`. The
|
|
44
44
|
* requirement is unconditional, so a skill directory that genuinely has no
|
|
45
|
-
* `SKILL.md`
|
|
46
|
-
*
|
|
47
|
-
*
|
|
45
|
+
* `SKILL.md` reads `drifted` rather than `in_sync`: the safe direction, and
|
|
46
|
+
* the direction the review asked for. The planner does not loop on it:
|
|
47
|
+
* `computeSyncPlan` reports a canonical directory without its marker as a
|
|
48
|
+
* configuration `error` entry instead of planning `update_copy`.
|
|
48
49
|
*
|
|
49
50
|
* These claims describe a quiescent tree. Every check here is path-based, so
|
|
50
51
|
* none of them survives an adversary swapping an entry between the check and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-copy-hash.d.ts","sourceRoot":"","sources":["../../src/engine/managed-copy-hash.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D
|
|
1
|
+
{"version":3,"file":"managed-copy-hash.d.ts","sourceRoot":"","sources":["../../src/engine/managed-copy-hash.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,GACxC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyHxB"}
|
|
@@ -45,9 +45,10 @@ import { OAT_DIRECTORY_SENTINEL, OAT_MARKER_PREFIX } from './markers.js';
|
|
|
45
45
|
* skipped it. Combined with the unframed digest that let a view drop
|
|
46
46
|
* `SKILL.md`, fuse its bytes into a surviving file, and read `in_sync`. The
|
|
47
47
|
* requirement is unconditional, so a skill directory that genuinely has no
|
|
48
|
-
* `SKILL.md`
|
|
49
|
-
*
|
|
50
|
-
*
|
|
48
|
+
* `SKILL.md` reads `drifted` rather than `in_sync`: the safe direction, and
|
|
49
|
+
* the direction the review asked for. The planner does not loop on it:
|
|
50
|
+
* `computeSyncPlan` reports a canonical directory without its marker as a
|
|
51
|
+
* configuration `error` entry instead of planning `update_copy`.
|
|
51
52
|
*
|
|
52
53
|
* These claims describe a quiescent tree. Every check here is path-based, so
|
|
53
54
|
* none of them survives an adversary swapping an entry between the check and
|
package/dist/fs/assets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/fs/assets.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,CAAC;AA0CvD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,YACtC,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,MAAM,EACN,WAAW,EACX,QAAQ,CACA,CAAC;AAgFX;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,eAAe,SAAc,EAC7B,MAAM,GAAE,gBAA6B,GACpC,OAAO,CAAC,IAAI,CAAC,CAsCf;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/fs/assets.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,CAAC;AA0CvD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,YACtC,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,MAAM,EACN,WAAW,EACX,QAAQ,CACA,CAAC;AAgFX;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,eAAe,SAAc,EAC7B,MAAM,GAAE,gBAA6B,GACpC,OAAO,CAAC,IAAI,CAAC,CAsCf;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
|
package/dist/fs/assets.js
CHANGED
|
@@ -179,7 +179,13 @@ export async function resolveAssetsRoot(env = process.env) {
|
|
|
179
179
|
if (error instanceof CliError) {
|
|
180
180
|
throw error;
|
|
181
181
|
}
|
|
182
|
-
|
|
182
|
+
// Only an absent root is "not found". EACCES, ELOOP, and EIO on a root
|
|
183
|
+
// that exists need a different response, so name the errno, as
|
|
184
|
+
// `validateBundleStructure` does for the directories inside it.
|
|
185
|
+
if (isMissingPathError(error)) {
|
|
186
|
+
throw new CliError(`Assets directory not found: ${assetsRoot}. ${assetsRemedy(source, PACKAGED_ROOT_REMEDY)}`, 2);
|
|
187
|
+
}
|
|
188
|
+
throw new CliError(`Assets directory could not be read (${errorCode(error)}): ${assetsRoot}. ${assetsRemedy(source, PACKAGED_ROOT_REMEDY)}`, 2);
|
|
183
189
|
}
|
|
184
190
|
await validateAssetsBundle(assetsRoot, OAT_VERSION, source);
|
|
185
191
|
return assetsRoot;
|
package/dist/manifest/hash.d.ts
CHANGED
|
@@ -45,16 +45,14 @@ export declare function computeContentHash(contentPath: string, isFile: boolean)
|
|
|
45
45
|
* framed digest equals a legacy digest under SHA-256 collision resistance —
|
|
46
46
|
* the same assumption every other comparison here already rests on.
|
|
47
47
|
*
|
|
48
|
-
* `legacy` is retained for exactly one purpose:
|
|
49
|
-
*
|
|
50
|
-
* `
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* longer matches reports `drifted/modified` from `oat status`, `oat sync`
|
|
57
|
-
* answers `skip` / "already in sync", and the manifest keeps the old value.
|
|
48
|
+
* `legacy` is retained for exactly one purpose: recognizing a manifest written
|
|
49
|
+
* before the framing change and re-deciding with `framed`, in
|
|
50
|
+
* `drift/detector.ts` and in the obsolete-mapping retirement classifier
|
|
51
|
+
* (`classifyObsoleteMappingRetirement` in `engine/compute-plan.ts`). It is
|
|
52
|
+
* never an acceptance basis for provider content on its own. The migration is
|
|
53
|
+
* needed because framing changes every recorded `contentHash`; `oat sync` now
|
|
54
|
+
* restamps a stale value when it plans `skip` for a faithful tree, so the
|
|
55
|
+
* bridge only covers installs that have not run such a sync yet.
|
|
58
56
|
*
|
|
59
57
|
* ## Bounds this digest still does not cover
|
|
60
58
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/manifest/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAMpD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIzD;AAqBD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBvE;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAIjB;AAID
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/manifest/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAMpD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIzD;AAqBD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBvE;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAIjB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAIlD;AAED,gEAAgE;AAChE,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,IAAI,CAMN;AAgFD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB3E"}
|
package/dist/ui/output.js
CHANGED
|
@@ -90,7 +90,7 @@ function colorSyncOperation(operation) {
|
|
|
90
90
|
if (operation === 'update_symlink' || operation === 'update_copy') {
|
|
91
91
|
return chalk.yellow(operation);
|
|
92
92
|
}
|
|
93
|
-
if (operation === 'remove') {
|
|
93
|
+
if (operation === 'remove' || operation === 'error') {
|
|
94
94
|
return chalk.red(operation);
|
|
95
95
|
}
|
|
96
96
|
return chalk.gray(operation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/validation/skills.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,uCAAuC;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sCAAsC;IACrD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,KAChD,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,UAAU,6BAA6B;IACrC,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAu1CD,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uCAAuC,EAChD,YAAY,GAAE,6BAAkC,GAC/C,OAAO,CAAC,sCAAsC,CAAC,CAsBjD;AAsGD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,EACtC,YAAY,GAAE,6BAAkC,GAC/C,OAAO,CAAC,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/validation/skills.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,uCAAuC;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sCAAsC;IACrD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,KAChD,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,UAAU,6BAA6B;IACrC,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAu1CD,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uCAAuC,EAChD,YAAY,GAAE,6BAAkC,GAC/C,OAAO,CAAC,sCAAsC,CAAC,CAsBjD;AAsGD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,EACtC,YAAY,GAAE,6BAAkC,GAC/C,OAAO,CAAC,uBAAuB,CAAC,CAoKlC"}
|
|
@@ -1084,6 +1084,19 @@ export async function validateOatSkills(repoRoot, options = {}, dependencies = {
|
|
|
1084
1084
|
.map((entry) => entry.name)
|
|
1085
1085
|
.sort();
|
|
1086
1086
|
const oatSkillDirs = allSkillDirs.filter((name) => name.startsWith('oat-'));
|
|
1087
|
+
// Every canonical skill directory needs its marker, not only oat-* ones: a
|
|
1088
|
+
// copy-strategy sync of a directory without SKILL.md has no banner to anchor
|
|
1089
|
+
// its managed-copy digest. The oat-* loop below reports its own missing
|
|
1090
|
+
// marker, so this pass covers the remaining directories only.
|
|
1091
|
+
for (const dir of allSkillDirs) {
|
|
1092
|
+
if (dir.startsWith('oat-')) {
|
|
1093
|
+
continue;
|
|
1094
|
+
}
|
|
1095
|
+
const skillPath = join(skillsRoot, dir, 'SKILL.md');
|
|
1096
|
+
if (!(await isFile(skillPath))) {
|
|
1097
|
+
findings.push({ file: skillPath, message: 'Missing SKILL.md' });
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1087
1100
|
for (const dir of oatSkillDirs) {
|
|
1088
1101
|
const skillPath = join(skillsRoot, dir, 'SKILL.md');
|
|
1089
1102
|
let content;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-agent-toolkit/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.16",
|
|
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",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"ora": "^9.0.0",
|
|
35
35
|
"yaml": "2.8.2",
|
|
36
36
|
"zod": "^3.25.76",
|
|
37
|
-
"@open-agent-toolkit/control-plane": "0.3.
|
|
37
|
+
"@open-agent-toolkit/control-plane": "0.3.16"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^22.10.0",
|