@cleocode/core 2026.3.46 → 2026.3.48
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/dist/bootstrap.d.ts.map +1 -1
- package/dist/index.js +44 -41
- package/dist/index.js.map +3 -3
- package/dist/init.d.ts +1 -3
- package/dist/init.d.ts.map +1 -1
- package/dist/project-info.d.ts +5 -0
- package/dist/project-info.d.ts.map +1 -1
- package/dist/scaffold.d.ts +19 -0
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/upgrade.d.ts +6 -0
- package/dist/upgrade.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/__tests__/injection-chain.test.d.ts +4 -3
- package/src/__tests__/injection-chain.test.d.ts.map +1 -1
- package/src/__tests__/injection-chain.test.js +11 -10
- package/src/__tests__/injection-chain.test.js.map +1 -1
- package/src/__tests__/injection-chain.test.ts +3 -2
- package/src/__tests__/injection-mvi-tiers.test.js +4 -2
- package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
- package/src/bootstrap.ts +34 -5
- package/src/init.ts +1 -8
- package/src/injection.ts +6 -6
- package/src/project-info.ts +16 -1
- package/src/scaffold.ts +52 -2
- package/src/sessions/__tests__/briefing.test.js +28 -2
- package/src/sessions/__tests__/briefing.test.js.map +1 -1
- package/src/skills/__tests__/routing-table.test.js +48 -31
- package/src/skills/__tests__/routing-table.test.js.map +1 -1
- package/src/skills/orchestrator/__tests__/spawn-tier.test.js +41 -32
- package/src/skills/orchestrator/__tests__/spawn-tier.test.js.map +1 -1
- package/src/store/__tests__/project-detect.test.js +1 -1
- package/src/store/__tests__/project-detect.test.js.map +1 -1
- package/src/store/__tests__/test-db-helper.d.ts.map +1 -1
- package/src/store/__tests__/test-db-helper.js +0 -1
- package/src/store/__tests__/test-db-helper.js.map +1 -1
- package/src/upgrade.ts +49 -2
- package/src/validation/doctor/checks.ts +4 -4
package/dist/init.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* 9. Core skill installation via CAAMP
|
|
17
17
|
* 10. NEXUS project registration
|
|
18
18
|
* 11. Project type detection (--detect)
|
|
19
|
-
* 12. Injection refresh
|
|
19
|
+
* 12. Injection refresh
|
|
20
20
|
* 13. Git hook installation (commit-msg, pre-commit)
|
|
21
21
|
* 14. GitHub issue/PR templates (.github/ directory)
|
|
22
22
|
*
|
|
@@ -39,8 +39,6 @@ export interface InitOptions {
|
|
|
39
39
|
force?: boolean;
|
|
40
40
|
/** Auto-detect project configuration. */
|
|
41
41
|
detect?: boolean;
|
|
42
|
-
/** Update agent documentation injections only. */
|
|
43
|
-
updateDocs?: boolean;
|
|
44
42
|
/** Run codebase analysis and store findings to brain.db. */
|
|
45
43
|
mapCodebase?: boolean;
|
|
46
44
|
}
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AA8BH,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AA8BH,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,oCAAoC;AACpC,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAaD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8D9F;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FzF;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAiDf;AAID;;;;;GAKG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAwBtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2R7E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CAiB/F;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBnF"}
|
package/dist/project-info.d.ts
CHANGED
|
@@ -32,4 +32,9 @@ export declare function getProjectInfo(cwd?: string): Promise<ProjectInfo>;
|
|
|
32
32
|
* Returns null if the file is missing or unparseable.
|
|
33
33
|
*/
|
|
34
34
|
export declare function getProjectInfoSync(cwd?: string): ProjectInfo | null;
|
|
35
|
+
/**
|
|
36
|
+
* Update the project name in project-info.json.
|
|
37
|
+
* Used by `cleo upgrade --name` and programmatic consumers.
|
|
38
|
+
*/
|
|
39
|
+
export declare function updateProjectName(cwd: string, name: string): void;
|
|
35
40
|
//# sourceMappingURL=project-info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-info.d.ts","sourceRoot":"","sources":["../src/project-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBvE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA2BnE"}
|
|
1
|
+
{"version":3,"file":"project-info.d.ts","sourceRoot":"","sources":["../src/project-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBvE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA2BnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CASjE"}
|
package/dist/scaffold.d.ts
CHANGED
|
@@ -37,6 +37,9 @@ export declare function fileExists(path: string): Promise<boolean>;
|
|
|
37
37
|
/**
|
|
38
38
|
* Strip legacy <!-- CLEO:START -->...<!-- CLEO:END --> blocks from a file.
|
|
39
39
|
* Called before CAAMP injection to prevent competing blocks.
|
|
40
|
+
*
|
|
41
|
+
* Handles both bare markers (<!-- CLEO:START -->) and versioned markers
|
|
42
|
+
* (<!-- CLEO:START v0.53.4 -->, <!-- CLEO:START v1.2.3 -->).
|
|
40
43
|
*/
|
|
41
44
|
export declare function stripCLEOBlocks(filePath: string): Promise<void>;
|
|
42
45
|
/**
|
|
@@ -170,10 +173,26 @@ export declare function checkMemoryBridge(projectRoot: string): CheckResult;
|
|
|
170
173
|
* Project-level dirs (adrs/, rcasd/, agent-outputs/, backups/) live in .cleo/ only.
|
|
171
174
|
*/
|
|
172
175
|
export declare const REQUIRED_GLOBAL_SUBDIRS: readonly ["logs", "templates"];
|
|
176
|
+
/**
|
|
177
|
+
* Stale entries that must NOT exist at the global ~/.cleo/ level.
|
|
178
|
+
* These were project-level artefacts accidentally placed in the global home
|
|
179
|
+
* by old versions of CLEO. They are safe to remove because:
|
|
180
|
+
* - adrs/, rcasd/, agent-outputs/, backups/ — project-level, live in .cleo/
|
|
181
|
+
* - sandbox/ — unused
|
|
182
|
+
* - tasks.db / tasks.db-shm / tasks.db-wal — project-level database files
|
|
183
|
+
* - brain-worker.pid — stale PID file
|
|
184
|
+
* - VERSION — redundant (read from package.json)
|
|
185
|
+
* - schemas/ — now read from npm binary at runtime
|
|
186
|
+
* - bin/ — stale dev symlink directory
|
|
187
|
+
*/
|
|
188
|
+
export declare const STALE_GLOBAL_ENTRIES: readonly ["adrs", "rcasd", "agent-outputs", "backups", "sandbox", "tasks.db", "tasks.db-shm", "tasks.db-wal", "brain-worker.pid", "VERSION", "schemas", "bin"];
|
|
173
189
|
/**
|
|
174
190
|
* Ensure the global ~/.cleo/ home directory and its required
|
|
175
191
|
* subdirectories exist. Idempotent: skips directories that already exist.
|
|
176
192
|
*
|
|
193
|
+
* Also removes known stale project-level entries that old CLEO versions
|
|
194
|
+
* incorrectly placed at the global level (see STALE_GLOBAL_ENTRIES).
|
|
195
|
+
*
|
|
177
196
|
* This is the SSoT for global home scaffolding, replacing raw mkdirSync
|
|
178
197
|
* calls that were previously scattered across global-bootstrap.ts.
|
|
179
198
|
*/
|
package/dist/scaffold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnE,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAID,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,8FAOxB,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,mqBAuCnC,CAAC;AAIF;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnE,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAID,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,8FAOxB,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,mqBAuCnC,CAAC;AAIF;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrE;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAgB/B;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAW5C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAyBD,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyB7D;AAID;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA4BtF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAiBlF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAwDvF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,cAAc,CAAC,CA4DzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBpF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBjF;AAID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAwCnE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CA8B/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAmC5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAiDjE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAW,GAAG,WAAW,CA8D5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAuBjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAmC9D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0ChF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAmC7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAuBlE;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,gCAAiC,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,gKAavB,CAAC;AAEX;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAkChE;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAmCrE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IACpD,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,cAAc,CAAC;CAC3B,CAAC,CAKD;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,CAmC7C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAuBlD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAsB5D"}
|
package/dist/upgrade.d.ts
CHANGED
|
@@ -48,12 +48,18 @@ export interface UpgradeResult {
|
|
|
48
48
|
* @param options.dryRun Preview changes without applying
|
|
49
49
|
* @param options.includeGlobal Also check global ~/.cleo
|
|
50
50
|
* @param options.autoMigrate Auto-migrate storage if needed (default: true)
|
|
51
|
+
* @param options.forceDetect Force re-detection of project type (ignore staleness)
|
|
52
|
+
* @param options.mapCodebase Run full codebase analysis and store to brain.db
|
|
53
|
+
* @param options.projectName Update project name in project-info and nexus
|
|
51
54
|
* @param options.cwd Project directory override
|
|
52
55
|
*/
|
|
53
56
|
export declare function runUpgrade(options?: {
|
|
54
57
|
dryRun?: boolean;
|
|
55
58
|
includeGlobal?: boolean;
|
|
56
59
|
autoMigrate?: boolean;
|
|
60
|
+
forceDetect?: boolean;
|
|
61
|
+
mapCodebase?: boolean;
|
|
62
|
+
projectName?: string;
|
|
57
63
|
cwd?: string;
|
|
58
64
|
}): Promise<UpgradeResult>;
|
|
59
65
|
//# sourceMappingURL=upgrade.d.ts.map
|
package/dist/upgrade.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoCH,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoCH,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,UAAU,CAC9B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACT,GACL,OAAO,CAAC,aAAa,CAAC,CAg4BxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/core",
|
|
3
|
-
"version": "2026.3.
|
|
3
|
+
"version": "2026.3.48",
|
|
4
4
|
"description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"write-file-atomic": "^6.0.0",
|
|
37
37
|
"yaml": "^2.8.2",
|
|
38
38
|
"zod": "^3.25.76",
|
|
39
|
-
"@cleocode/adapters": "2026.3.
|
|
40
|
-
"@cleocode/
|
|
41
|
-
"@cleocode/
|
|
42
|
-
"@cleocode/
|
|
39
|
+
"@cleocode/adapters": "2026.3.48",
|
|
40
|
+
"@cleocode/agents": "2026.3.48",
|
|
41
|
+
"@cleocode/contracts": "2026.3.48",
|
|
42
|
+
"@cleocode/skills": "2026.3.48"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=24.0.0"
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Verifies the new AGENTS.md hub injection architecture:
|
|
5
5
|
* 1. Provider files (CLAUDE.md, GEMINI.md) reference @AGENTS.md
|
|
6
|
-
* 2. AGENTS.md references @~/.
|
|
7
|
-
* 3.
|
|
8
|
-
* 4. No
|
|
6
|
+
* 2. Project AGENTS.md references @~/.agents/AGENTS.md (global hub)
|
|
7
|
+
* 3. Global ~/.agents/AGENTS.md references @~/.cleo/templates/CLEO-INJECTION.md
|
|
8
|
+
* 4. No references to @.cleo/templates/AGENT-INJECTION.md anywhere
|
|
9
|
+
* 5. No CLEO:START markers anywhere (CAAMP uses CAAMP:START/END)
|
|
9
10
|
*
|
|
10
11
|
* Since CAAMP functions depend on actual provider installations,
|
|
11
12
|
* they are mocked via vi.mock to isolate the init logic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-chain.test.d.ts","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"injection-chain.test.d.ts","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Verifies the new AGENTS.md hub injection architecture:
|
|
5
5
|
* 1. Provider files (CLAUDE.md, GEMINI.md) reference @AGENTS.md
|
|
6
|
-
* 2. AGENTS.md references @~/.
|
|
7
|
-
* 3.
|
|
8
|
-
* 4. No
|
|
6
|
+
* 2. Project AGENTS.md references @~/.agents/AGENTS.md (global hub)
|
|
7
|
+
* 3. Global ~/.agents/AGENTS.md references @~/.cleo/templates/CLEO-INJECTION.md
|
|
8
|
+
* 4. No references to @.cleo/templates/AGENT-INJECTION.md anywhere
|
|
9
|
+
* 5. No CLEO:START markers anywhere (CAAMP uses CAAMP:START/END)
|
|
9
10
|
*
|
|
10
11
|
* Since CAAMP functions depend on actual provider installations,
|
|
11
12
|
* they are mocked via vi.mock to isolate the init logic.
|
|
@@ -145,12 +146,12 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
145
146
|
const geminiContent = await readFile(geminiPath, 'utf-8');
|
|
146
147
|
expect(geminiContent).toContain('@AGENTS.md');
|
|
147
148
|
});
|
|
148
|
-
it('AGENTS.md references @~/.
|
|
149
|
+
it('AGENTS.md references @~/.agents/AGENTS.md (global hub)', async () => {
|
|
149
150
|
await initProject({ name: 'chain-test' });
|
|
150
151
|
const agentsPath = join(testDir, 'AGENTS.md');
|
|
151
152
|
expect(existsSync(agentsPath)).toBe(true);
|
|
152
153
|
const agentsContent = await readFile(agentsPath, 'utf-8');
|
|
153
|
-
expect(agentsContent).toContain('@~/.
|
|
154
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
154
155
|
});
|
|
155
156
|
it('no references to @.cleo/templates/AGENT-INJECTION.md in generated files', async () => {
|
|
156
157
|
await initProject({ name: 'chain-test' });
|
|
@@ -192,15 +193,15 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
192
193
|
expect(createdStr).toContain('injection');
|
|
193
194
|
expect(createdStr).toContain('AGENTS.md');
|
|
194
195
|
});
|
|
195
|
-
it('injection chain: provider -> AGENTS.md -> CLEO-INJECTION.md', async () => {
|
|
196
|
+
it('injection chain: provider -> AGENTS.md -> ~/.agents/AGENTS.md -> CLEO-INJECTION.md', async () => {
|
|
196
197
|
await initProject({ name: 'chain-test' });
|
|
197
198
|
// Verify the full chain:
|
|
198
199
|
// CLAUDE.md -> @AGENTS.md (via injectAll)
|
|
199
200
|
const claudeContent = await readFile(join(testDir, 'CLAUDE.md'), 'utf-8');
|
|
200
201
|
expect(claudeContent).toContain('@AGENTS.md');
|
|
201
|
-
// AGENTS.md -> @~/.
|
|
202
|
+
// AGENTS.md -> @~/.agents/AGENTS.md (project hub references global hub)
|
|
202
203
|
const agentsContent = await readFile(join(testDir, 'AGENTS.md'), 'utf-8');
|
|
203
|
-
expect(agentsContent).toContain('@~/.
|
|
204
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
204
205
|
// Neither should reference the old AGENT-INJECTION.md pattern
|
|
205
206
|
expect(claudeContent).not.toContain('AGENT-INJECTION.md');
|
|
206
207
|
expect(agentsContent).not.toContain('AGENT-INJECTION.md');
|
|
@@ -211,11 +212,11 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
211
212
|
const getInstalledProviders = caamp.getInstalledProviders;
|
|
212
213
|
getInstalledProviders.mockReturnValueOnce([]);
|
|
213
214
|
await initProject({ name: 'no-provider-test' });
|
|
214
|
-
// AGENTS.md should still exist and reference
|
|
215
|
+
// AGENTS.md should still exist and reference the global hub
|
|
215
216
|
const agentsPath = join(testDir, 'AGENTS.md');
|
|
216
217
|
expect(existsSync(agentsPath)).toBe(true);
|
|
217
218
|
const agentsContent = await readFile(agentsPath, 'utf-8');
|
|
218
|
-
expect(agentsContent).toContain('@~/.
|
|
219
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
219
220
|
});
|
|
220
221
|
it('updateDocs refreshes injection without full reinit', async () => {
|
|
221
222
|
// First init
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-chain.test.js","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"injection-chain.test.js","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -257,8 +257,9 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
257
257
|
expect(existsSync(join(testDir, 'CLAUDE.md'))).toBe(true);
|
|
258
258
|
expect(existsSync(join(testDir, 'AGENTS.md'))).toBe(true);
|
|
259
259
|
|
|
260
|
-
// Run updateDocs
|
|
261
|
-
const
|
|
260
|
+
// Run updateDocs directly (no longer available via initProject flag — use upgrade path)
|
|
261
|
+
const { updateDocs } = await import('../init.js');
|
|
262
|
+
const result = await updateDocs();
|
|
262
263
|
expect(result.updateDocsOnly).toBe(true);
|
|
263
264
|
expect(result.initialized).toBe(true);
|
|
264
265
|
});
|
|
@@ -15,8 +15,10 @@ import { dirname, join, resolve } from 'node:path';
|
|
|
15
15
|
import { fileURLToPath } from 'node:url';
|
|
16
16
|
import { describe, expect, it } from 'vitest';
|
|
17
17
|
const thisFile = fileURLToPath(import.meta.url);
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
// Template moved to packages/core/templates/ (was at monorepo root templates/)
|
|
19
|
+
// thisFile is at packages/core/src/__tests__/, go up two levels to reach packages/core/
|
|
20
|
+
const corePackageRoot = resolve(dirname(thisFile), '..', '..');
|
|
21
|
+
const injectionPath = join(corePackageRoot, 'templates', 'CLEO-INJECTION.md');
|
|
20
22
|
const templateExists = existsSync(injectionPath);
|
|
21
23
|
describe('CLEO-INJECTION v2.1.0 minimal-only template', () => {
|
|
22
24
|
const content = templateExists ? readFileSync(injectionPath, 'utf-8') : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-mvi-tiers.test.js","sourceRoot":"","sources":["injection-mvi-tiers.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"injection-mvi-tiers.test.js","sourceRoot":"","sources":["injection-mvi-tiers.test.ts"],"names":[],"mappings":"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"}
|
package/src/bootstrap.ts
CHANGED
|
@@ -65,7 +65,10 @@ export async function bootstrapGlobalCleo(options?: BootstrapOptions): Promise<B
|
|
|
65
65
|
// Step 4: Install core skills globally
|
|
66
66
|
await installSkillsGlobally(ctx);
|
|
67
67
|
|
|
68
|
-
// Step 5: Install
|
|
68
|
+
// Step 5: Install agent definition (cleo-subagent symlink)
|
|
69
|
+
await installAgentDefinitionGlobally(ctx);
|
|
70
|
+
|
|
71
|
+
// Step 6: Install provider adapters
|
|
69
72
|
await installProviderAdapters(ctx, options?.packageRoot);
|
|
70
73
|
|
|
71
74
|
return ctx;
|
|
@@ -132,10 +135,13 @@ async function injectAgentsHub(ctx: BootstrapContext): Promise<void> {
|
|
|
132
135
|
if (!ctx.isDryRun) {
|
|
133
136
|
await mkdir(globalAgentsDir, { recursive: true });
|
|
134
137
|
|
|
135
|
-
// Strip any legacy CLEO blocks first
|
|
138
|
+
// Strip any legacy CLEO blocks first (handles bare and versioned markers)
|
|
136
139
|
if (existsSync(globalAgentsMd)) {
|
|
137
140
|
const content = await readFile(globalAgentsMd, 'utf8');
|
|
138
|
-
const stripped = content.replace(
|
|
141
|
+
const stripped = content.replace(
|
|
142
|
+
/\n?<!-- CLEO:START[^>]*-->[\s\S]*?<!-- CLEO:END -->\n?/g,
|
|
143
|
+
'',
|
|
144
|
+
);
|
|
139
145
|
if (stripped !== content) {
|
|
140
146
|
await writeFile(globalAgentsMd, stripped, 'utf8');
|
|
141
147
|
}
|
|
@@ -161,12 +167,13 @@ async function injectAgentsHub(ctx: BootstrapContext): Promise<void> {
|
|
|
161
167
|
|
|
162
168
|
if (!ctx.isDryRun) {
|
|
163
169
|
// Strip legacy CLEO blocks from global provider files first
|
|
170
|
+
// (handles bare and versioned markers, e.g. <!-- CLEO:START v0.53.4 -->)
|
|
164
171
|
for (const provider of providers) {
|
|
165
172
|
const instructFilePath = join(provider.pathGlobal, provider.instructFile);
|
|
166
173
|
if (existsSync(instructFilePath)) {
|
|
167
174
|
const fileContent = await readFile(instructFilePath, 'utf8');
|
|
168
175
|
const stripped = fileContent.replace(
|
|
169
|
-
/\n?<!-- CLEO:START
|
|
176
|
+
/\n?<!-- CLEO:START[^>]*-->[\s\S]*?<!-- CLEO:END -->\n?/g,
|
|
170
177
|
'',
|
|
171
178
|
);
|
|
172
179
|
if (stripped !== fileContent) {
|
|
@@ -254,7 +261,29 @@ export async function installSkillsGlobally(ctx: BootstrapContext): Promise<void
|
|
|
254
261
|
}
|
|
255
262
|
}
|
|
256
263
|
|
|
257
|
-
// ── Step 5:
|
|
264
|
+
// ── Step 5: Agent definition installation ────────────────────────────
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Install the cleo-subagent agent definition to ~/.agents/agents/.
|
|
268
|
+
* Delegates to initAgentDefinition() in init.ts which handles require.resolve
|
|
269
|
+
* fallback and symlink/copy logic.
|
|
270
|
+
*/
|
|
271
|
+
async function installAgentDefinitionGlobally(ctx: BootstrapContext): Promise<void> {
|
|
272
|
+
try {
|
|
273
|
+
if (!ctx.isDryRun) {
|
|
274
|
+
const { initAgentDefinition } = await import('./init.js');
|
|
275
|
+
await initAgentDefinition(ctx.created, ctx.warnings);
|
|
276
|
+
} else {
|
|
277
|
+
ctx.created.push('agent: cleo-subagent (would symlink)');
|
|
278
|
+
}
|
|
279
|
+
} catch (err) {
|
|
280
|
+
ctx.warnings.push(
|
|
281
|
+
`Agent definition install: ${err instanceof Error ? err.message : String(err)}`,
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// ── Step 6: Provider adapter installation ────────────────────────────
|
|
258
287
|
|
|
259
288
|
async function installProviderAdapters(
|
|
260
289
|
ctx: BootstrapContext,
|
package/src/init.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* 9. Core skill installation via CAAMP
|
|
17
17
|
* 10. NEXUS project registration
|
|
18
18
|
* 11. Project type detection (--detect)
|
|
19
|
-
* 12. Injection refresh
|
|
19
|
+
* 12. Injection refresh
|
|
20
20
|
* 13. Git hook installation (commit-msg, pre-commit)
|
|
21
21
|
* 14. GitHub issue/PR templates (.github/ directory)
|
|
22
22
|
*
|
|
@@ -68,8 +68,6 @@ export interface InitOptions {
|
|
|
68
68
|
force?: boolean;
|
|
69
69
|
/** Auto-detect project configuration. */
|
|
70
70
|
detect?: boolean;
|
|
71
|
-
/** Update agent documentation injections only. */
|
|
72
|
-
updateDocs?: boolean;
|
|
73
71
|
/** Run codebase analysis and store findings to brain.db. */
|
|
74
72
|
mapCodebase?: boolean;
|
|
75
73
|
}
|
|
@@ -472,11 +470,6 @@ export async function updateDocs(): Promise<InitResult> {
|
|
|
472
470
|
* @task T4707
|
|
473
471
|
*/
|
|
474
472
|
export async function initProject(opts: InitOptions = {}): Promise<InitResult> {
|
|
475
|
-
// Handle --update-docs (T4686)
|
|
476
|
-
if (opts.updateDocs) {
|
|
477
|
-
return updateDocs();
|
|
478
|
-
}
|
|
479
|
-
|
|
480
473
|
const cleoDir = getCleoDirAbsolute();
|
|
481
474
|
const projRoot = getProjectRoot();
|
|
482
475
|
|
package/src/injection.ts
CHANGED
|
@@ -281,7 +281,7 @@ export function checkInjection(projectRoot: string): InjectionCheckResult {
|
|
|
281
281
|
status: 'warning',
|
|
282
282
|
message: 'AGENTS.md not found in project root',
|
|
283
283
|
details: { path: agentsMdPath, exists: false },
|
|
284
|
-
fix: 'cleo
|
|
284
|
+
fix: 'cleo upgrade',
|
|
285
285
|
};
|
|
286
286
|
}
|
|
287
287
|
|
|
@@ -311,7 +311,7 @@ export function checkInjection(projectRoot: string): InjectionCheckResult {
|
|
|
311
311
|
status: 'warning',
|
|
312
312
|
message: 'AGENTS.md exists but has no CAAMP markers',
|
|
313
313
|
details: { path: agentsMdPath, hasCaampMarker: false },
|
|
314
|
-
fix: 'cleo
|
|
314
|
+
fix: 'cleo upgrade',
|
|
315
315
|
};
|
|
316
316
|
}
|
|
317
317
|
|
|
@@ -323,7 +323,7 @@ export function checkInjection(projectRoot: string): InjectionCheckResult {
|
|
|
323
323
|
status: 'warning',
|
|
324
324
|
message: `CAAMP markers unbalanced: ${startCount} START vs ${endCount} END`,
|
|
325
325
|
details: { path: agentsMdPath, startCount, endCount },
|
|
326
|
-
fix: 'cleo
|
|
326
|
+
fix: 'cleo upgrade',
|
|
327
327
|
};
|
|
328
328
|
}
|
|
329
329
|
|
|
@@ -352,7 +352,7 @@ export function checkInjection(projectRoot: string): InjectionCheckResult {
|
|
|
352
352
|
status: 'warning',
|
|
353
353
|
message: `Missing @ reference targets: ${missing.join(', ')}`,
|
|
354
354
|
details: { path: agentsMdPath, missing, totalRefs: refs.length },
|
|
355
|
-
fix: 'cleo
|
|
355
|
+
fix: 'cleo upgrade',
|
|
356
356
|
};
|
|
357
357
|
}
|
|
358
358
|
}
|
|
@@ -372,7 +372,7 @@ export function checkInjection(projectRoot: string): InjectionCheckResult {
|
|
|
372
372
|
status: 'warning',
|
|
373
373
|
message: `CLAUDE.md CAAMP markers unbalanced: ${cStartCount} START vs ${cEndCount} END`,
|
|
374
374
|
details: { file: 'CLAUDE.md', startCount: cStartCount, endCount: cEndCount },
|
|
375
|
-
fix: 'cleo
|
|
375
|
+
fix: 'cleo upgrade',
|
|
376
376
|
};
|
|
377
377
|
}
|
|
378
378
|
|
|
@@ -383,7 +383,7 @@ export function checkInjection(projectRoot: string): InjectionCheckResult {
|
|
|
383
383
|
status: 'warning',
|
|
384
384
|
message: 'CLAUDE.md has no CAAMP markers',
|
|
385
385
|
details: { file: 'CLAUDE.md', hasCaampMarker: false },
|
|
386
|
-
fix: 'cleo
|
|
386
|
+
fix: 'cleo upgrade',
|
|
387
387
|
};
|
|
388
388
|
}
|
|
389
389
|
} catch {
|
package/src/project-info.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @task T5333
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
11
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
12
12
|
import { readFile } from 'node:fs/promises';
|
|
13
13
|
import { join } from 'node:path';
|
|
14
14
|
import { getCleoDirAbsolute } from './paths.js';
|
|
@@ -92,3 +92,18 @@ export function getProjectInfoSync(cwd?: string): ProjectInfo | null {
|
|
|
92
92
|
return null;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Update the project name in project-info.json.
|
|
98
|
+
* Used by `cleo upgrade --name` and programmatic consumers.
|
|
99
|
+
*/
|
|
100
|
+
export function updateProjectName(cwd: string, name: string): void {
|
|
101
|
+
const cleoDir = getCleoDirAbsolute(cwd);
|
|
102
|
+
const infoPath = join(cleoDir, 'project-info.json');
|
|
103
|
+
if (!existsSync(infoPath)) return;
|
|
104
|
+
|
|
105
|
+
const data = JSON.parse(readFileSync(infoPath, 'utf-8')) as Record<string, string>;
|
|
106
|
+
data.projectName = name;
|
|
107
|
+
data.lastUpdated = new Date().toISOString();
|
|
108
|
+
writeFileSync(infoPath, `${JSON.stringify(data, null, 2)}\n`);
|
|
109
|
+
}
|
package/src/scaffold.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import { execFile } from 'node:child_process';
|
|
14
14
|
import { randomUUID } from 'node:crypto';
|
|
15
15
|
import { existsSync, constants as fsConstants, readFileSync, statSync } from 'node:fs';
|
|
16
|
-
import { access, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
16
|
+
import { access, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
17
17
|
import { dirname, join, resolve } from 'node:path';
|
|
18
18
|
import { fileURLToPath } from 'node:url';
|
|
19
19
|
import { promisify } from 'node:util';
|
|
@@ -116,11 +116,14 @@ export async function fileExists(path: string): Promise<boolean> {
|
|
|
116
116
|
/**
|
|
117
117
|
* Strip legacy <!-- CLEO:START -->...<!-- CLEO:END --> blocks from a file.
|
|
118
118
|
* Called before CAAMP injection to prevent competing blocks.
|
|
119
|
+
*
|
|
120
|
+
* Handles both bare markers (<!-- CLEO:START -->) and versioned markers
|
|
121
|
+
* (<!-- CLEO:START v0.53.4 -->, <!-- CLEO:START v1.2.3 -->).
|
|
119
122
|
*/
|
|
120
123
|
export async function stripCLEOBlocks(filePath: string): Promise<void> {
|
|
121
124
|
if (!existsSync(filePath)) return;
|
|
122
125
|
const content = await readFile(filePath, 'utf8');
|
|
123
|
-
const stripped = content.replace(/\n?<!-- CLEO:START
|
|
126
|
+
const stripped = content.replace(/\n?<!-- CLEO:START[^>]*-->[\s\S]*?<!-- CLEO:END -->\n?/g, '');
|
|
124
127
|
if (stripped !== content) await writeFile(filePath, stripped, 'utf8');
|
|
125
128
|
}
|
|
126
129
|
|
|
@@ -1048,10 +1051,40 @@ export function checkMemoryBridge(projectRoot: string): CheckResult {
|
|
|
1048
1051
|
*/
|
|
1049
1052
|
export const REQUIRED_GLOBAL_SUBDIRS = ['logs', 'templates'] as const;
|
|
1050
1053
|
|
|
1054
|
+
/**
|
|
1055
|
+
* Stale entries that must NOT exist at the global ~/.cleo/ level.
|
|
1056
|
+
* These were project-level artefacts accidentally placed in the global home
|
|
1057
|
+
* by old versions of CLEO. They are safe to remove because:
|
|
1058
|
+
* - adrs/, rcasd/, agent-outputs/, backups/ — project-level, live in .cleo/
|
|
1059
|
+
* - sandbox/ — unused
|
|
1060
|
+
* - tasks.db / tasks.db-shm / tasks.db-wal — project-level database files
|
|
1061
|
+
* - brain-worker.pid — stale PID file
|
|
1062
|
+
* - VERSION — redundant (read from package.json)
|
|
1063
|
+
* - schemas/ — now read from npm binary at runtime
|
|
1064
|
+
* - bin/ — stale dev symlink directory
|
|
1065
|
+
*/
|
|
1066
|
+
export const STALE_GLOBAL_ENTRIES = [
|
|
1067
|
+
'adrs',
|
|
1068
|
+
'rcasd',
|
|
1069
|
+
'agent-outputs',
|
|
1070
|
+
'backups',
|
|
1071
|
+
'sandbox',
|
|
1072
|
+
'tasks.db',
|
|
1073
|
+
'tasks.db-shm',
|
|
1074
|
+
'tasks.db-wal',
|
|
1075
|
+
'brain-worker.pid',
|
|
1076
|
+
'VERSION',
|
|
1077
|
+
'schemas',
|
|
1078
|
+
'bin',
|
|
1079
|
+
] as const;
|
|
1080
|
+
|
|
1051
1081
|
/**
|
|
1052
1082
|
* Ensure the global ~/.cleo/ home directory and its required
|
|
1053
1083
|
* subdirectories exist. Idempotent: skips directories that already exist.
|
|
1054
1084
|
*
|
|
1085
|
+
* Also removes known stale project-level entries that old CLEO versions
|
|
1086
|
+
* incorrectly placed at the global level (see STALE_GLOBAL_ENTRIES).
|
|
1087
|
+
*
|
|
1055
1088
|
* This is the SSoT for global home scaffolding, replacing raw mkdirSync
|
|
1056
1089
|
* calls that were previously scattered across global-bootstrap.ts.
|
|
1057
1090
|
*/
|
|
@@ -1065,6 +1098,23 @@ export async function ensureGlobalHome(): Promise<ScaffoldResult> {
|
|
|
1065
1098
|
await mkdir(join(cleoHome, subdir), { recursive: true });
|
|
1066
1099
|
}
|
|
1067
1100
|
|
|
1101
|
+
// Remove stale project-level entries from global home (one-time cleanup).
|
|
1102
|
+
for (const stale of STALE_GLOBAL_ENTRIES) {
|
|
1103
|
+
const stalePath = join(cleoHome, stale);
|
|
1104
|
+
if (existsSync(stalePath)) {
|
|
1105
|
+
try {
|
|
1106
|
+
await rm(stalePath, { recursive: true, force: true });
|
|
1107
|
+
// eslint-disable-next-line no-console
|
|
1108
|
+
console.warn(`[CLEO] Removed stale global entry: ${stalePath}`);
|
|
1109
|
+
} catch (err) {
|
|
1110
|
+
// eslint-disable-next-line no-console
|
|
1111
|
+
console.warn(
|
|
1112
|
+
`[CLEO] Could not remove stale global entry ${stalePath}: ${err instanceof Error ? err.message : String(err)}`,
|
|
1113
|
+
);
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1068
1118
|
return {
|
|
1069
1119
|
action: alreadyExists ? 'skipped' : 'created',
|
|
1070
1120
|
path: cleoHome,
|