@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.
Files changed (37) hide show
  1. package/dist/bootstrap.d.ts.map +1 -1
  2. package/dist/index.js +44 -41
  3. package/dist/index.js.map +3 -3
  4. package/dist/init.d.ts +1 -3
  5. package/dist/init.d.ts.map +1 -1
  6. package/dist/project-info.d.ts +5 -0
  7. package/dist/project-info.d.ts.map +1 -1
  8. package/dist/scaffold.d.ts +19 -0
  9. package/dist/scaffold.d.ts.map +1 -1
  10. package/dist/upgrade.d.ts +6 -0
  11. package/dist/upgrade.d.ts.map +1 -1
  12. package/package.json +5 -5
  13. package/src/__tests__/injection-chain.test.d.ts +4 -3
  14. package/src/__tests__/injection-chain.test.d.ts.map +1 -1
  15. package/src/__tests__/injection-chain.test.js +11 -10
  16. package/src/__tests__/injection-chain.test.js.map +1 -1
  17. package/src/__tests__/injection-chain.test.ts +3 -2
  18. package/src/__tests__/injection-mvi-tiers.test.js +4 -2
  19. package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
  20. package/src/bootstrap.ts +34 -5
  21. package/src/init.ts +1 -8
  22. package/src/injection.ts +6 -6
  23. package/src/project-info.ts +16 -1
  24. package/src/scaffold.ts +52 -2
  25. package/src/sessions/__tests__/briefing.test.js +28 -2
  26. package/src/sessions/__tests__/briefing.test.js.map +1 -1
  27. package/src/skills/__tests__/routing-table.test.js +48 -31
  28. package/src/skills/__tests__/routing-table.test.js.map +1 -1
  29. package/src/skills/orchestrator/__tests__/spawn-tier.test.js +41 -32
  30. package/src/skills/orchestrator/__tests__/spawn-tier.test.js.map +1 -1
  31. package/src/store/__tests__/project-detect.test.js +1 -1
  32. package/src/store/__tests__/project-detect.test.js.map +1 -1
  33. package/src/store/__tests__/test-db-helper.d.ts.map +1 -1
  34. package/src/store/__tests__/test-db-helper.js +0 -1
  35. package/src/store/__tests__/test-db-helper.js.map +1 -1
  36. package/src/upgrade.ts +49 -2
  37. package/src/validation/doctor/checks.ts +4 -4
@@ -69,7 +69,6 @@ export async function seedTasks(accessor, tasks) {
69
69
  }
70
70
  // Build full Task objects from partials
71
71
  const fullTasks = makeTasks(tasks);
72
-
73
72
  // Pass 1: Upsert all tasks without dependencies so FK targets exist
74
73
  for (const task of fullTasks) {
75
74
  await accessor.upsertSingleTask({ ...task, depends: undefined });
@@ -1 +1 @@
1
- {"version":3,"file":"test-db-helper.js","sourceRoot":"","sources":["test-db-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-db-helper.js","sourceRoot":"","sources":["test-db-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AActE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1D,oDAAoD;IACpD,YAAY,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvC,OAAO;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,YAAY,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAA4C;IACpE,OAAO,KAAK,CAAC,GAAG,CACd,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE;QAChC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ;QAChC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClD,GAAG,CAAC;KACL,CAAS,CACb,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAsB,EACtB,KAA4C;IAE5C,+CAA+C;IAC/C,MAAM,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnC,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
package/src/upgrade.ts CHANGED
@@ -85,10 +85,21 @@ export interface UpgradeResult {
85
85
  * @param options.dryRun Preview changes without applying
86
86
  * @param options.includeGlobal Also check global ~/.cleo
87
87
  * @param options.autoMigrate Auto-migrate storage if needed (default: true)
88
+ * @param options.forceDetect Force re-detection of project type (ignore staleness)
89
+ * @param options.mapCodebase Run full codebase analysis and store to brain.db
90
+ * @param options.projectName Update project name in project-info and nexus
88
91
  * @param options.cwd Project directory override
89
92
  */
90
93
  export async function runUpgrade(
91
- options: { dryRun?: boolean; includeGlobal?: boolean; autoMigrate?: boolean; cwd?: string } = {},
94
+ options: {
95
+ dryRun?: boolean;
96
+ includeGlobal?: boolean;
97
+ autoMigrate?: boolean;
98
+ forceDetect?: boolean;
99
+ mapCodebase?: boolean;
100
+ projectName?: string;
101
+ cwd?: string;
102
+ } = {},
92
103
  ): Promise<UpgradeResult> {
93
104
  const isDryRun = options.dryRun ?? false;
94
105
  const autoMigrate = options.autoMigrate ?? true;
@@ -635,7 +646,9 @@ export async function runUpgrade(
635
646
  }
636
647
  }
637
648
  } else {
638
- const contextResult = await ensureProjectContext(projectRootForContext, { staleDays: 30 });
649
+ const contextResult = await ensureProjectContext(projectRootForContext, {
650
+ staleDays: options.forceDetect ? 0 : 30,
651
+ });
639
652
  actions.push({
640
653
  action: 'project_context_detection',
641
654
  status: contextResult.action === 'skipped' ? 'skipped' : 'applied',
@@ -886,6 +899,40 @@ export async function runUpgrade(
886
899
  /* best-effort */
887
900
  }
888
901
 
902
+ // Run codebase mapping if requested (delegates to core mapCodebase)
903
+ if (options.mapCodebase) {
904
+ try {
905
+ const { mapCodebase } = await import('./codebase-map/index.js');
906
+ const mapResult = await mapCodebase(projectRootForMaint, { storeToBrain: true });
907
+ actions.push({
908
+ action: 'codebase_map',
909
+ status: 'applied',
910
+ details: `Analyzed: ${mapResult.stack?.languages?.length ?? 0} languages, ${mapResult.concerns?.todos?.length ?? 0} TODOs found`,
911
+ });
912
+ } catch (err) {
913
+ actions.push({
914
+ action: 'codebase_map',
915
+ status: 'error',
916
+ details: `Codebase mapping failed: ${err instanceof Error ? err.message : String(err)}`,
917
+ });
918
+ }
919
+ }
920
+
921
+ // Update project name if requested (delegates to core updateProjectName)
922
+ if (options.projectName) {
923
+ try {
924
+ const { updateProjectName } = await import('./project-info.js');
925
+ await updateProjectName(projectRootForMaint, options.projectName);
926
+ actions.push({
927
+ action: 'project_name_update',
928
+ status: 'applied',
929
+ details: `Project name set to "${options.projectName}"`,
930
+ });
931
+ } catch {
932
+ /* best-effort */
933
+ }
934
+ }
935
+
889
936
  // GitHub issue/PR templates — install missing ones, warn if absent
890
937
  try {
891
938
  const { existsSync: fsExistsSync } = await import('node:fs');
@@ -211,7 +211,7 @@ export function checkAgentsMdHub(projectRoot?: string): CheckResult {
211
211
  status: 'warning',
212
212
  message: 'AGENTS.md not found in project root',
213
213
  details: { path: agentsMdPath, exists: false },
214
- fix: 'cleo init --update-docs',
214
+ fix: 'cleo upgrade',
215
215
  };
216
216
  }
217
217
 
@@ -236,7 +236,7 @@ export function checkAgentsMdHub(projectRoot?: string): CheckResult {
236
236
  status: 'warning',
237
237
  message: 'AGENTS.md exists but has no CAAMP:START marker',
238
238
  details: { path: agentsMdPath, hasCaampMarker: false },
239
- fix: 'cleo init --update-docs',
239
+ fix: 'cleo upgrade',
240
240
  };
241
241
  }
242
242
 
@@ -709,7 +709,7 @@ export function checkCaampMarkerIntegrity(projectRoot?: string): CheckResult {
709
709
  status: 'warning',
710
710
  message: `CAAMP marker issues: ${issues.join('; ')}`,
711
711
  details: { issues },
712
- fix: 'cleo init --update-docs',
712
+ fix: 'cleo upgrade',
713
713
  };
714
714
  }
715
715
 
@@ -797,7 +797,7 @@ export function checkAtReferenceTargetExists(projectRoot?: string): CheckResult
797
797
  status: 'warning',
798
798
  message: `Missing @ reference targets: ${missing.join(', ')}`,
799
799
  details: { missing, totalRefs: refs.length },
800
- fix: 'cleo init --update-docs',
800
+ fix: 'cleo upgrade',
801
801
  };
802
802
  }
803
803