@cleocode/core 2026.4.52 → 2026.4.54
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/index.js +177 -83
- package/dist/index.js.map +3 -3
- package/dist/init.d.ts.map +1 -1
- package/dist/internal.js +199 -92
- package/dist/internal.js.map +3 -3
- package/dist/scaffold.d.ts +30 -0
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/store/brain-sqlite.d.ts.map +1 -1
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/init.ts +15 -18
- package/src/scaffold.ts +152 -0
- package/src/store/brain-sqlite.ts +9 -6
- package/src/store/migration-manager.ts +104 -2
- package/src/system/health.ts +2 -0
- package/src/upgrade.ts +17 -0
package/dist/index.js
CHANGED
|
@@ -11117,44 +11117,6 @@ var init_platform_paths = __esm({
|
|
|
11117
11117
|
});
|
|
11118
11118
|
|
|
11119
11119
|
// packages/core/src/paths.ts
|
|
11120
|
-
var paths_exports = {};
|
|
11121
|
-
__export(paths_exports, {
|
|
11122
|
-
getAgentOutputsAbsolute: () => getAgentOutputsAbsolute,
|
|
11123
|
-
getAgentOutputsDir: () => getAgentOutputsDir,
|
|
11124
|
-
getAgentsHome: () => getAgentsHome,
|
|
11125
|
-
getArchivePath: () => getArchivePath,
|
|
11126
|
-
getBackupDir: () => getBackupDir,
|
|
11127
|
-
getClaudeAgentsDir: () => getClaudeAgentsDir,
|
|
11128
|
-
getClaudeMemDbPath: () => getClaudeMemDbPath,
|
|
11129
|
-
getCleoCacheDir: () => getCleoCacheDir,
|
|
11130
|
-
getCleoCantWorkflowsDir: () => getCleoCantWorkflowsDir,
|
|
11131
|
-
getCleoConfigDir: () => getCleoConfigDir,
|
|
11132
|
-
getCleoDir: () => getCleoDir,
|
|
11133
|
-
getCleoDirAbsolute: () => getCleoDirAbsolute,
|
|
11134
|
-
getCleoDocsDir: () => getCleoDocsDir,
|
|
11135
|
-
getCleoGlobalAgentsDir: () => getCleoGlobalAgentsDir,
|
|
11136
|
-
getCleoGlobalJustfilePath: () => getCleoGlobalJustfilePath,
|
|
11137
|
-
getCleoGlobalRecipesDir: () => getCleoGlobalRecipesDir,
|
|
11138
|
-
getCleoHome: () => getCleoHome,
|
|
11139
|
-
getCleoLogDir: () => getCleoLogDir,
|
|
11140
|
-
getCleoPiExtensionsDir: () => getCleoPiExtensionsDir,
|
|
11141
|
-
getCleoSchemasDir: () => getCleoSchemasDir,
|
|
11142
|
-
getCleoTempDir: () => getCleoTempDir,
|
|
11143
|
-
getCleoTemplatesDir: () => getCleoTemplatesDir,
|
|
11144
|
-
getCleoTemplatesTildePath: () => getCleoTemplatesTildePath,
|
|
11145
|
-
getConfigPath: () => getConfigPath,
|
|
11146
|
-
getGlobalConfigPath: () => getGlobalConfigPath,
|
|
11147
|
-
getLogPath: () => getLogPath,
|
|
11148
|
-
getManifestArchivePath: () => getManifestArchivePath,
|
|
11149
|
-
getManifestPath: () => getManifestPath,
|
|
11150
|
-
getProjectRoot: () => getProjectRoot,
|
|
11151
|
-
getSessionsPath: () => getSessionsPath,
|
|
11152
|
-
getTaskPath: () => getTaskPath,
|
|
11153
|
-
isAbsolutePath: () => isAbsolutePath,
|
|
11154
|
-
isProjectInitialized: () => isProjectInitialized,
|
|
11155
|
-
resolveProjectPath: () => resolveProjectPath,
|
|
11156
|
-
worktreeScope: () => worktreeScope
|
|
11157
|
-
});
|
|
11158
11120
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
11159
11121
|
import { existsSync as existsSync3, readFileSync as readFileSync2 } from "node:fs";
|
|
11160
11122
|
import { homedir } from "node:os";
|
|
@@ -11173,9 +11135,6 @@ function getCleoTemplatesDir() {
|
|
|
11173
11135
|
function getCleoSchemasDir() {
|
|
11174
11136
|
return join4(getCleoHome(), "schemas");
|
|
11175
11137
|
}
|
|
11176
|
-
function getCleoDocsDir() {
|
|
11177
|
-
return join4(getCleoHome(), "docs");
|
|
11178
|
-
}
|
|
11179
11138
|
function getCleoDir(cwd) {
|
|
11180
11139
|
if (cwd) {
|
|
11181
11140
|
return getCleoDirAbsolute(cwd);
|
|
@@ -11247,15 +11206,6 @@ function getTaskPath(cwd) {
|
|
|
11247
11206
|
function getConfigPath(cwd) {
|
|
11248
11207
|
return join4(getCleoDirAbsolute(cwd), "config.json");
|
|
11249
11208
|
}
|
|
11250
|
-
function getSessionsPath(cwd) {
|
|
11251
|
-
return join4(getCleoDirAbsolute(cwd), "sessions.json");
|
|
11252
|
-
}
|
|
11253
|
-
function getArchivePath(cwd) {
|
|
11254
|
-
return join4(getCleoDirAbsolute(cwd), "tasks-archive.json");
|
|
11255
|
-
}
|
|
11256
|
-
function getLogPath(cwd) {
|
|
11257
|
-
return join4(getCleoDirAbsolute(cwd), "logs", "cleo.log");
|
|
11258
|
-
}
|
|
11259
11209
|
function getBackupDir(cwd) {
|
|
11260
11210
|
return join4(getCleoDirAbsolute(cwd), "backups", "operational");
|
|
11261
11211
|
}
|
|
@@ -11363,9 +11313,6 @@ function getClaudeAgentsDir() {
|
|
|
11363
11313
|
const claudeDir = process.env["CLAUDE_HOME"] ?? join4(homedir(), ".claude");
|
|
11364
11314
|
return join4(claudeDir, "agents");
|
|
11365
11315
|
}
|
|
11366
|
-
function getClaudeMemDbPath() {
|
|
11367
|
-
return process.env["CLAUDE_MEM_DB"] ?? join4(homedir(), ".claude-mem", "claude-mem.db");
|
|
11368
|
-
}
|
|
11369
11316
|
var worktreeScope, DEFAULT_AGENT_OUTPUTS_DIR;
|
|
11370
11317
|
var init_paths = __esm({
|
|
11371
11318
|
"packages/core/src/paths.ts"() {
|
|
@@ -11459,6 +11406,54 @@ function insertJournalEntry(nativeDb, hash2, createdAt, name2) {
|
|
|
11459
11406
|
`INSERT OR IGNORE INTO "__drizzle_migrations" ("hash", "created_at", "name") VALUES ('${hash2}', ${createdAt}, '${name2}')`
|
|
11460
11407
|
);
|
|
11461
11408
|
}
|
|
11409
|
+
function probeAndMarkApplied(nativeDb, migration, logSubsystem) {
|
|
11410
|
+
const sqlStatements = Array.isArray(migration.sql) ? migration.sql : [migration.sql ?? ""];
|
|
11411
|
+
const fullSql = sqlStatements.join("\n");
|
|
11412
|
+
const alterColumnRegex = /ALTER\s+TABLE\s+[`"]?(\w+)[`"]?\s+ADD\s+COLUMN\s+[`"]?(\w+)[`"]?/gi;
|
|
11413
|
+
const createTableRegex = /CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?[`"]?(\w+)[`"]?/gi;
|
|
11414
|
+
const createIndexRegex = /CREATE\s+(?:UNIQUE\s+)?INDEX\s+(?:IF\s+NOT\s+EXISTS\s+)?[`"]?(\w+)[`"]?/gi;
|
|
11415
|
+
const alterTargets = [];
|
|
11416
|
+
for (const m of fullSql.matchAll(alterColumnRegex)) {
|
|
11417
|
+
alterTargets.push({ table: m[1], column: m[2] });
|
|
11418
|
+
}
|
|
11419
|
+
const tableTargets = [];
|
|
11420
|
+
for (const m of fullSql.matchAll(createTableRegex)) {
|
|
11421
|
+
tableTargets.push(m[1]);
|
|
11422
|
+
}
|
|
11423
|
+
const indexTargets = [];
|
|
11424
|
+
for (const m of fullSql.matchAll(createIndexRegex)) {
|
|
11425
|
+
indexTargets.push(m[1]);
|
|
11426
|
+
}
|
|
11427
|
+
const totalTargets = alterTargets.length + tableTargets.length + indexTargets.length;
|
|
11428
|
+
if (totalTargets === 0) {
|
|
11429
|
+
return false;
|
|
11430
|
+
}
|
|
11431
|
+
const allAltersPresent = alterTargets.every(({ table, column }) => {
|
|
11432
|
+
if (!tableExists(nativeDb, table)) return false;
|
|
11433
|
+
const cols = nativeDb.prepare(`PRAGMA table_info(${table})`).all();
|
|
11434
|
+
return cols.some((c) => c.name === column);
|
|
11435
|
+
});
|
|
11436
|
+
const allTablesPresent = tableTargets.every((t) => tableExists(nativeDb, t));
|
|
11437
|
+
const allIndexesPresent = indexTargets.every((idx) => {
|
|
11438
|
+
const rows = nativeDb.prepare(`SELECT name FROM sqlite_master WHERE type='index' AND name=?`).all(idx);
|
|
11439
|
+
return rows.length > 0;
|
|
11440
|
+
});
|
|
11441
|
+
if (allAltersPresent && allTablesPresent && allIndexesPresent) {
|
|
11442
|
+
insertJournalEntry(nativeDb, migration.hash, migration.folderMillis, migration.name ?? "");
|
|
11443
|
+
const log11 = getLogger(logSubsystem);
|
|
11444
|
+
log11.debug(
|
|
11445
|
+
{
|
|
11446
|
+
migration: migration.name,
|
|
11447
|
+
alters: alterTargets.length,
|
|
11448
|
+
tables: tableTargets.length,
|
|
11449
|
+
indexes: indexTargets.length
|
|
11450
|
+
},
|
|
11451
|
+
`Migration ${migration.name} DDL already present in schema \u2014 marked applied.`
|
|
11452
|
+
);
|
|
11453
|
+
return true;
|
|
11454
|
+
}
|
|
11455
|
+
return false;
|
|
11456
|
+
}
|
|
11462
11457
|
function reconcileJournal(nativeDb, migrationsFolder, existenceTable, logSubsystem) {
|
|
11463
11458
|
if (tableExists(nativeDb, existenceTable) && !tableExists(nativeDb, "__drizzle_migrations")) {
|
|
11464
11459
|
const migrations = readMigrationFiles({ migrationsFolder });
|
|
@@ -11495,11 +11490,11 @@ function reconcileJournal(nativeDb, migrationsFolder, existenceTable, logSubsyst
|
|
|
11495
11490
|
const log11 = getLogger(logSubsystem);
|
|
11496
11491
|
log11.warn(
|
|
11497
11492
|
{ orphaned: orphanedEntries.length },
|
|
11498
|
-
`Detected stale migration journal entries from a previous CLEO version. Reconciling.`
|
|
11493
|
+
`Detected stale migration journal entries from a previous CLEO version. Reconciling via DDL probe.`
|
|
11499
11494
|
);
|
|
11500
11495
|
nativeDb.exec('DELETE FROM "__drizzle_migrations"');
|
|
11501
11496
|
for (const m of localMigrations) {
|
|
11502
|
-
|
|
11497
|
+
probeAndMarkApplied(nativeDb, m, logSubsystem);
|
|
11503
11498
|
}
|
|
11504
11499
|
}
|
|
11505
11500
|
}
|
|
@@ -14481,7 +14476,6 @@ function runBrainMigrations(nativeDb, db) {
|
|
|
14481
14476
|
"brain"
|
|
14482
14477
|
);
|
|
14483
14478
|
}
|
|
14484
|
-
ensureColumns(nativeDb, "brain_observations", [{ name: "agent", ddl: "text" }], "brain");
|
|
14485
14479
|
if (tableExists(nativeDb, "brain_page_edges")) {
|
|
14486
14480
|
nativeDb.prepare(
|
|
14487
14481
|
`UPDATE brain_page_edges
|
|
@@ -49750,6 +49744,7 @@ __export(scaffold_exports, {
|
|
|
49750
49744
|
checkConfig: () => checkConfig,
|
|
49751
49745
|
checkGitignore: () => checkGitignore,
|
|
49752
49746
|
checkGlobalHome: () => checkGlobalHome,
|
|
49747
|
+
checkGlobalIdentity: () => checkGlobalIdentity,
|
|
49753
49748
|
checkGlobalTemplates: () => checkGlobalTemplates,
|
|
49754
49749
|
checkLogDir: () => checkLogDir,
|
|
49755
49750
|
checkMemoryBridge: () => checkMemoryBridge,
|
|
@@ -49766,6 +49761,7 @@ __export(scaffold_exports, {
|
|
|
49766
49761
|
ensureContributorMcp: () => ensureContributorMcp,
|
|
49767
49762
|
ensureGitignore: () => ensureGitignore,
|
|
49768
49763
|
ensureGlobalHome: () => ensureGlobalHome,
|
|
49764
|
+
ensureGlobalIdentity: () => ensureGlobalIdentity,
|
|
49769
49765
|
ensureGlobalScaffold: () => ensureGlobalScaffold,
|
|
49770
49766
|
ensureGlobalTemplates: () => ensureGlobalTemplates,
|
|
49771
49767
|
ensureProjectContext: () => ensureProjectContext,
|
|
@@ -49783,6 +49779,7 @@ import { execFile as execFile3 } from "node:child_process";
|
|
|
49783
49779
|
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
49784
49780
|
import { existsSync as existsSync38, constants as fsConstants3, readFileSync as readFileSync23, statSync as statSync8 } from "node:fs";
|
|
49785
49781
|
import { access as access3, copyFile as copyFile2, mkdir as mkdir6, readdir as readdir2, readFile as readFile7, rm as rm2, writeFile as writeFile6 } from "node:fs/promises";
|
|
49782
|
+
import { createRequire as createRequire6 } from "node:module";
|
|
49786
49783
|
import { homedir as getHomedir } from "node:os";
|
|
49787
49784
|
import { dirname as dirname10, join as join40, resolve as resolve5 } from "node:path";
|
|
49788
49785
|
import { fileURLToPath as fileURLToPath4 } from "node:url";
|
|
@@ -50638,6 +50635,102 @@ async function ensureCleoOsHub() {
|
|
|
50638
50635
|
details: `pi-extensions: ${piResult.copied} created/${piResult.kept} kept, global-recipes: ${recipesResult.copied} created/${recipesResult.kept} kept`
|
|
50639
50636
|
};
|
|
50640
50637
|
}
|
|
50638
|
+
function resolveIdentitySourcePath() {
|
|
50639
|
+
const monorepoPath = join40(
|
|
50640
|
+
process.cwd(),
|
|
50641
|
+
"packages",
|
|
50642
|
+
"cleo-os",
|
|
50643
|
+
"starter-bundle",
|
|
50644
|
+
"CLEOOS-IDENTITY.md"
|
|
50645
|
+
);
|
|
50646
|
+
if (existsSync38(monorepoPath)) return monorepoPath;
|
|
50647
|
+
try {
|
|
50648
|
+
const require2 = createRequire6(import.meta.url);
|
|
50649
|
+
const pkgJson = require2.resolve("@cleocode/cleo-os/package.json");
|
|
50650
|
+
const pkgDir = pkgJson.replace(/\/package\.json$/, "");
|
|
50651
|
+
const installedPath = join40(pkgDir, "starter-bundle", "CLEOOS-IDENTITY.md");
|
|
50652
|
+
if (existsSync38(installedPath)) return installedPath;
|
|
50653
|
+
} catch {
|
|
50654
|
+
}
|
|
50655
|
+
return null;
|
|
50656
|
+
}
|
|
50657
|
+
async function ensureGlobalIdentity(forceRefresh = false) {
|
|
50658
|
+
const sourcePath = resolveIdentitySourcePath();
|
|
50659
|
+
if (!sourcePath) {
|
|
50660
|
+
return {
|
|
50661
|
+
action: "skipped",
|
|
50662
|
+
path: "",
|
|
50663
|
+
details: "CLEOOS-IDENTITY.md source not found in monorepo or installed package"
|
|
50664
|
+
};
|
|
50665
|
+
}
|
|
50666
|
+
const cleoHome = getCleoHome();
|
|
50667
|
+
const dst = join40(cleoHome, "CLEOOS-IDENTITY.md");
|
|
50668
|
+
try {
|
|
50669
|
+
await mkdir6(cleoHome, { recursive: true });
|
|
50670
|
+
} catch (err) {
|
|
50671
|
+
return {
|
|
50672
|
+
action: "skipped",
|
|
50673
|
+
path: dst,
|
|
50674
|
+
details: `Failed to create global cleo home: ${err instanceof Error ? err.message : String(err)}`
|
|
50675
|
+
};
|
|
50676
|
+
}
|
|
50677
|
+
if (existsSync38(dst) && !forceRefresh) {
|
|
50678
|
+
return { action: "skipped", path: dst, details: "identity already present" };
|
|
50679
|
+
}
|
|
50680
|
+
const existedBefore = existsSync38(dst);
|
|
50681
|
+
try {
|
|
50682
|
+
const content = readFileSync23(sourcePath, "utf-8");
|
|
50683
|
+
await writeFile6(dst, content);
|
|
50684
|
+
return {
|
|
50685
|
+
action: existedBefore ? "repaired" : "created",
|
|
50686
|
+
path: dst,
|
|
50687
|
+
details: `from ${sourcePath}`
|
|
50688
|
+
};
|
|
50689
|
+
} catch (err) {
|
|
50690
|
+
return {
|
|
50691
|
+
action: "skipped",
|
|
50692
|
+
path: dst,
|
|
50693
|
+
details: `Failed to write identity: ${err instanceof Error ? err.message : String(err)}`
|
|
50694
|
+
};
|
|
50695
|
+
}
|
|
50696
|
+
}
|
|
50697
|
+
function checkGlobalIdentity() {
|
|
50698
|
+
const cleoHome = getCleoHome();
|
|
50699
|
+
const identityPath = join40(cleoHome, "CLEOOS-IDENTITY.md");
|
|
50700
|
+
if (!existsSync38(identityPath)) {
|
|
50701
|
+
return {
|
|
50702
|
+
id: "global_identity",
|
|
50703
|
+
category: "global",
|
|
50704
|
+
status: "failed",
|
|
50705
|
+
message: "Global CLEOOS-IDENTITY.md not found \u2014 orchestrator persona missing",
|
|
50706
|
+
details: { path: identityPath, exists: false },
|
|
50707
|
+
fix: "cleo upgrade (auto-deploys identity)"
|
|
50708
|
+
};
|
|
50709
|
+
}
|
|
50710
|
+
let size = 0;
|
|
50711
|
+
try {
|
|
50712
|
+
size = statSync8(identityPath).size;
|
|
50713
|
+
} catch {
|
|
50714
|
+
}
|
|
50715
|
+
if (size === 0) {
|
|
50716
|
+
return {
|
|
50717
|
+
id: "global_identity",
|
|
50718
|
+
category: "global",
|
|
50719
|
+
status: "failed",
|
|
50720
|
+
message: "Global CLEOOS-IDENTITY.md exists but is empty",
|
|
50721
|
+
details: { path: identityPath, exists: true, size: 0 },
|
|
50722
|
+
fix: "cleo upgrade --refresh-identity"
|
|
50723
|
+
};
|
|
50724
|
+
}
|
|
50725
|
+
return {
|
|
50726
|
+
id: "global_identity",
|
|
50727
|
+
category: "global",
|
|
50728
|
+
status: "passed",
|
|
50729
|
+
message: "Global CLEOOS-IDENTITY.md present",
|
|
50730
|
+
details: { path: identityPath, exists: true, size },
|
|
50731
|
+
fix: ""
|
|
50732
|
+
};
|
|
50733
|
+
}
|
|
50641
50734
|
function checkGlobalHome() {
|
|
50642
50735
|
const cleoHome = getCleoHome();
|
|
50643
50736
|
if (!existsSync38(cleoHome)) {
|
|
@@ -54045,7 +54138,7 @@ __export(parser_exports, {
|
|
|
54045
54138
|
parseFile: () => parseFile2
|
|
54046
54139
|
});
|
|
54047
54140
|
import { readFileSync as readFileSync64 } from "node:fs";
|
|
54048
|
-
import { createRequire as
|
|
54141
|
+
import { createRequire as createRequire8 } from "node:module";
|
|
54049
54142
|
import { relative as relative7 } from "node:path";
|
|
54050
54143
|
function tryRequire(id) {
|
|
54051
54144
|
try {
|
|
@@ -54246,7 +54339,7 @@ var init_parser3 = __esm({
|
|
|
54246
54339
|
"packages/core/src/code/parser.ts"() {
|
|
54247
54340
|
"use strict";
|
|
54248
54341
|
init_tree_sitter_languages();
|
|
54249
|
-
_require7 =
|
|
54342
|
+
_require7 = createRequire8(import.meta.url);
|
|
54250
54343
|
_ParserClass = null;
|
|
54251
54344
|
_QueryClass = null;
|
|
54252
54345
|
_parserInstance = null;
|
|
@@ -54346,7 +54439,7 @@ var init_parser3 = __esm({
|
|
|
54346
54439
|
|
|
54347
54440
|
// packages/core/src/system/dependencies.ts
|
|
54348
54441
|
import { execFileSync as execFileSync10 } from "node:child_process";
|
|
54349
|
-
import { createRequire as
|
|
54442
|
+
import { createRequire as createRequire9 } from "node:module";
|
|
54350
54443
|
import { dirname as dirname19 } from "node:path";
|
|
54351
54444
|
import { fileURLToPath as fileURLToPath5 } from "node:url";
|
|
54352
54445
|
function tryExec(cmd, args, timeoutMs = 3e3) {
|
|
@@ -54616,7 +54709,7 @@ var init_dependencies = __esm({
|
|
|
54616
54709
|
"packages/core/src/system/dependencies.ts"() {
|
|
54617
54710
|
"use strict";
|
|
54618
54711
|
init_platform();
|
|
54619
|
-
_require8 =
|
|
54712
|
+
_require8 = createRequire9(import.meta.url);
|
|
54620
54713
|
_dirname = dirname19(fileURLToPath5(import.meta.url));
|
|
54621
54714
|
DEPENDENCY_SPECS = [
|
|
54622
54715
|
// ── Required ────────────────────────────────────────────────────────────
|
|
@@ -54818,8 +54911,8 @@ import { platform as platform4 } from "node:os";
|
|
|
54818
54911
|
import { basename as basename17, dirname as dirname23, join as join106 } from "node:path";
|
|
54819
54912
|
async function resolveSeedAgentsDir() {
|
|
54820
54913
|
try {
|
|
54821
|
-
const { createRequire:
|
|
54822
|
-
const req =
|
|
54914
|
+
const { createRequire: createRequire11 } = await import("node:module");
|
|
54915
|
+
const req = createRequire11(import.meta.url);
|
|
54823
54916
|
const agentsPkgMain = req.resolve("@cleocode/agents/package.json");
|
|
54824
54917
|
const agentsPkgRoot = dirname23(agentsPkgMain);
|
|
54825
54918
|
const candidate = join106(agentsPkgRoot, "seed-agents");
|
|
@@ -54846,8 +54939,8 @@ async function resolveSeedAgentsDir() {
|
|
|
54846
54939
|
async function initAgentDefinition(created, warnings) {
|
|
54847
54940
|
let agentSourceDir = null;
|
|
54848
54941
|
try {
|
|
54849
|
-
const { createRequire:
|
|
54850
|
-
const req =
|
|
54942
|
+
const { createRequire: createRequire11 } = await import("node:module");
|
|
54943
|
+
const req = createRequire11(import.meta.url);
|
|
54851
54944
|
const agentsPkgMain = req.resolve("@cleocode/agents/package.json");
|
|
54852
54945
|
const agentsPkgRoot = dirname23(agentsPkgMain);
|
|
54853
54946
|
const candidate = join106(agentsPkgRoot, "cleo-subagent");
|
|
@@ -54913,8 +55006,8 @@ async function initCoreSkills(created, warnings) {
|
|
|
54913
55006
|
const packageRoot = getPackageRoot();
|
|
54914
55007
|
let ctSkillsRoot = null;
|
|
54915
55008
|
try {
|
|
54916
|
-
const { createRequire:
|
|
54917
|
-
const req =
|
|
55009
|
+
const { createRequire: createRequire11 } = await import("node:module");
|
|
55010
|
+
const req = createRequire11(import.meta.url);
|
|
54918
55011
|
const skillsPkgMain = req.resolve("@cleocode/skills/package.json");
|
|
54919
55012
|
const skillsPkgRoot = dirname23(skillsPkgMain);
|
|
54920
55013
|
if (existsSync106(join106(skillsPkgRoot, "skills.json"))) {
|
|
@@ -55422,8 +55515,8 @@ async function deployStarterBundle(cleoDir, created, warnings) {
|
|
|
55422
55515
|
if (hasCantFiles) return;
|
|
55423
55516
|
let starterBundleSrc = null;
|
|
55424
55517
|
try {
|
|
55425
|
-
const { createRequire:
|
|
55426
|
-
const req =
|
|
55518
|
+
const { createRequire: createRequire11 } = await import("node:module");
|
|
55519
|
+
const req = createRequire11(import.meta.url);
|
|
55427
55520
|
const cleoOsPkgMain = req.resolve("@cleocode/cleo-os/package.json");
|
|
55428
55521
|
const cleoOsPkgRoot = dirname23(cleoOsPkgMain);
|
|
55429
55522
|
const candidate = join106(cleoOsPkgRoot, "starter-bundle");
|
|
@@ -55463,20 +55556,20 @@ async function deployStarterBundle(cleoDir, created, warnings) {
|
|
|
55463
55556
|
}
|
|
55464
55557
|
}
|
|
55465
55558
|
}
|
|
55466
|
-
const identitySrc = join106(starterBundleSrc, "CLEOOS-IDENTITY.md");
|
|
55467
|
-
const identityDst = join106(cleoDir, "CLEOOS-IDENTITY.md");
|
|
55468
|
-
if (existsSync106(identitySrc) && !existsSync106(identityDst)) {
|
|
55469
|
-
await copyFile4(identitySrc, identityDst);
|
|
55470
|
-
}
|
|
55471
55559
|
try {
|
|
55472
|
-
const {
|
|
55473
|
-
const
|
|
55474
|
-
if (
|
|
55475
|
-
|
|
55560
|
+
const { ensureGlobalIdentity: ensureGlobalIdentity2 } = await Promise.resolve().then(() => (init_scaffold(), scaffold_exports));
|
|
55561
|
+
const identityResult = await ensureGlobalIdentity2();
|
|
55562
|
+
if (identityResult.action === "created") {
|
|
55563
|
+
created.push(`identity: ${identityResult.path}`);
|
|
55564
|
+
} else if (identityResult.action === "skipped" && identityResult.details) {
|
|
55565
|
+
warnings.push(`identity skipped: ${identityResult.details}`);
|
|
55476
55566
|
}
|
|
55477
|
-
} catch {
|
|
55567
|
+
} catch (err) {
|
|
55568
|
+
warnings.push(`identity deploy failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
55478
55569
|
}
|
|
55479
|
-
created.push(
|
|
55570
|
+
created.push(
|
|
55571
|
+
"starter-bundle: team + agent .cant files deployed to .cleo/ (identity at global XDG)"
|
|
55572
|
+
);
|
|
55480
55573
|
}
|
|
55481
55574
|
var DIR_SYMLINK_TYPE2;
|
|
55482
55575
|
var init_init = __esm({
|
|
@@ -64390,8 +64483,8 @@ init_agent_outputs();
|
|
|
64390
64483
|
// packages/core/src/migration/checksum.ts
|
|
64391
64484
|
import { createHash as createHash7 } from "node:crypto";
|
|
64392
64485
|
import { readFileSync as readFileSync34 } from "node:fs";
|
|
64393
|
-
import { createRequire as
|
|
64394
|
-
var _require6 =
|
|
64486
|
+
import { createRequire as createRequire7 } from "node:module";
|
|
64487
|
+
var _require6 = createRequire7(import.meta.url);
|
|
64395
64488
|
var { DatabaseSync: DatabaseSync4 } = _require6("node:sqlite");
|
|
64396
64489
|
async function computeChecksum(filePath) {
|
|
64397
64490
|
const content = readFileSync34(filePath);
|
|
@@ -77277,7 +77370,7 @@ init_schema_management();
|
|
|
77277
77370
|
init_data_accessor();
|
|
77278
77371
|
import { execFileSync as execFileSync11 } from "node:child_process";
|
|
77279
77372
|
import { existsSync as existsSync90, readFileSync as readFileSync65, statSync as statSync19 } from "node:fs";
|
|
77280
|
-
import { createRequire as
|
|
77373
|
+
import { createRequire as createRequire10 } from "node:module";
|
|
77281
77374
|
import { join as join92 } from "node:path";
|
|
77282
77375
|
|
|
77283
77376
|
// packages/core/src/validation/doctor/checks.ts
|
|
@@ -78091,7 +78184,7 @@ function calculateHealthStatus(checks) {
|
|
|
78091
78184
|
|
|
78092
78185
|
// packages/core/src/system/health.ts
|
|
78093
78186
|
init_dependencies();
|
|
78094
|
-
var _require9 =
|
|
78187
|
+
var _require9 = createRequire10(import.meta.url);
|
|
78095
78188
|
var databaseSyncCtor = (() => {
|
|
78096
78189
|
try {
|
|
78097
78190
|
return _require9("node:sqlite").DatabaseSync;
|
|
@@ -78639,6 +78732,7 @@ async function coreDoctorReport(projectRoot) {
|
|
|
78639
78732
|
});
|
|
78640
78733
|
checks.push(mapCheckResult(checkGlobalHome()));
|
|
78641
78734
|
checks.push(mapCheckResult(checkGlobalTemplates()));
|
|
78735
|
+
checks.push(mapCheckResult(checkGlobalIdentity()));
|
|
78642
78736
|
checks.push(mapSchemaCheckResult(checkGlobalSchemas()));
|
|
78643
78737
|
checks.push(mapCheckResult(checkLogDir(projectRoot)));
|
|
78644
78738
|
const hookResults = await checkGitHooks(projectRoot);
|