@cleocode/cleo-os 2026.10.21 → 2026.10.22-rc.ci.693
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/bin/postinstall.js +19 -149
- package/bin/postinstall.js.map +1 -1
- package/dist/postinstall.d.ts +6 -6
- package/dist/postinstall.js +19 -149
- package/dist/postinstall.js.map +1 -1
- package/package.json +6 -6
package/bin/postinstall.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CleoOS postinstall —
|
|
2
|
+
* CleoOS postinstall — deploys the extensions `cleoos` needs to start.
|
|
3
3
|
*
|
|
4
4
|
* Runs automatically after `npm install -g @cleocode/cleo-os`.
|
|
5
|
-
* Creates
|
|
6
|
-
*
|
|
7
|
-
* `cleo skills install
|
|
5
|
+
* Creates the XDG directories and copies the compiled extensions. Since
|
|
6
|
+
* T13996 (ADR-098: the Pi/CleoOS harness is retiring) it no longer seeds
|
|
7
|
+
* `.cant` files or runs `cleo skills install`, and it prints a deprecation
|
|
8
|
+
* notice.
|
|
8
9
|
*
|
|
9
10
|
* Behaviour:
|
|
10
11
|
* - Skips silently during workspace/dev installs (non-global).
|
|
11
12
|
* - All directory creation is idempotent (no-op if directory exists).
|
|
12
|
-
* - Extensions
|
|
13
|
-
* - Skill install is best-effort; failures are logged but not fatal.
|
|
13
|
+
* - Extensions are always overwritten on upgrade.
|
|
14
14
|
* - Missing `@mariozechner/pi-coding-agent` is handled gracefully.
|
|
15
15
|
*
|
|
16
16
|
* This source compiles to `bin/postinstall.js` via a dedicated tsconfig
|
|
@@ -19,8 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @packageDocumentation
|
|
21
21
|
*/
|
|
22
|
-
import {
|
|
23
|
-
import { cpSync, existsSync, lstatSync, mkdirSync, readdirSync, readlinkSync, symlinkSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
22
|
+
import { cpSync, existsSync, lstatSync, mkdirSync, readlinkSync, symlinkSync, unlinkSync, } from 'node:fs';
|
|
24
23
|
import { dirname, join, resolve } from 'node:path';
|
|
25
24
|
import { fileURLToPath } from 'node:url';
|
|
26
25
|
import envPaths from 'env-paths';
|
|
@@ -54,7 +53,6 @@ function resolveCleoOsPaths() {
|
|
|
54
53
|
config,
|
|
55
54
|
agentDir: data,
|
|
56
55
|
extensions: join(data, 'extensions'),
|
|
57
|
-
cant: join(data, 'cant'),
|
|
58
56
|
auth: join(config, 'auth'),
|
|
59
57
|
};
|
|
60
58
|
}
|
|
@@ -204,144 +202,16 @@ function linkExtensionNodeModules(pkgRoot, extensionsDir) {
|
|
|
204
202
|
}
|
|
205
203
|
}
|
|
206
204
|
// ---------------------------------------------------------------------------
|
|
207
|
-
// Default CANT file scaffolding
|
|
208
|
-
// ---------------------------------------------------------------------------
|
|
209
|
-
/**
|
|
210
|
-
* Write a default `model-routing.cant` stub to the XDG CANT directory if
|
|
211
|
-
* no `.cant` files are present. This gives the user a starting point for
|
|
212
|
-
* CANT declarations without overwriting any existing work.
|
|
213
|
-
*
|
|
214
|
-
* @param cantDir - Absolute path to the XDG CANT directory.
|
|
215
|
-
*/
|
|
216
|
-
function scaffoldDefaultCant(cantDir) {
|
|
217
|
-
const modelRoutingPath = join(cantDir, 'model-routing.cant');
|
|
218
|
-
if (existsSync(modelRoutingPath))
|
|
219
|
-
return;
|
|
220
|
-
const stub = [
|
|
221
|
-
'# CleoOS default model-routing.cant',
|
|
222
|
-
'# Declare agents, teams, and routing rules here.',
|
|
223
|
-
'# See: https://github.com/kryptobaseddev/cleo/blob/main/docs/cant-dsl.md',
|
|
224
|
-
'',
|
|
225
|
-
].join('\n');
|
|
226
|
-
try {
|
|
227
|
-
writeFileSync(modelRoutingPath, stub, 'utf-8');
|
|
228
|
-
process.stdout.write(`CleoOS: created default ${modelRoutingPath}\n`);
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
// Best-effort: non-fatal.
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// ---------------------------------------------------------------------------
|
|
235
|
-
// Starter bundle deployment
|
|
236
|
-
// ---------------------------------------------------------------------------
|
|
237
|
-
/**
|
|
238
|
-
* Resolve the starter-bundle source directory.
|
|
239
|
-
*
|
|
240
|
-
* Per D035 (v2026.4.111) the starter-bundle lives in `@cleocode/agents/`
|
|
241
|
-
* (NOT in `@cleocode/cleo-os/`) so universal agent content lives with the
|
|
242
|
-
* rest of the agent surface area. This helper walks a short candidate list
|
|
243
|
-
* so both workspace (dev) and globally-installed layouts resolve.
|
|
244
|
-
*
|
|
245
|
-
* Order of precedence:
|
|
246
|
-
* 1. `<pkgRoot>/../agents/starter-bundle` — sibling workspace package
|
|
247
|
-
* 2. `<pkgRoot>/node_modules/@cleocode/agents/starter-bundle` — global install
|
|
248
|
-
* 3. `<pkgRoot>/../../@cleocode/agents/starter-bundle` — hoisted global install
|
|
249
|
-
*
|
|
250
|
-
* @param pkgRoot - Absolute path to the installed cleo-os package root.
|
|
251
|
-
* @returns Absolute path to the starter-bundle directory, or `null` when not found.
|
|
252
|
-
*/
|
|
253
|
-
function resolveStarterBundleSrc(pkgRoot) {
|
|
254
|
-
const candidates = [
|
|
255
|
-
join(pkgRoot, '..', 'agents', 'starter-bundle'),
|
|
256
|
-
join(pkgRoot, 'node_modules', '@cleocode', 'agents', 'starter-bundle'),
|
|
257
|
-
join(pkgRoot, '..', '..', '@cleocode', 'agents', 'starter-bundle'),
|
|
258
|
-
];
|
|
259
|
-
return candidates.find((p) => existsSync(p)) ?? null;
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Deploy the starter CANT bundle to the global XDG CANT directory.
|
|
263
|
-
*
|
|
264
|
-
* Copies `starter-bundle/` contents (team.cant + agents/*.cant) to
|
|
265
|
-
* `~/.local/share/cleo/cant/starter/`. Always overwrites existing files
|
|
266
|
-
* so that upgrades deploy the latest bundle versions. These are managed
|
|
267
|
-
* files in the global tier, not user-editable project configs.
|
|
268
|
-
*
|
|
269
|
-
* @param pkgRoot - Absolute path to the installed package root.
|
|
270
|
-
* @param cantDir - Absolute path to the XDG CANT directory.
|
|
271
|
-
*/
|
|
272
|
-
function deployStarterBundle(pkgRoot, cantDir) {
|
|
273
|
-
const bundleSrc = resolveStarterBundleSrc(pkgRoot);
|
|
274
|
-
if (!bundleSrc) {
|
|
275
|
-
process.stdout.write('CleoOS: skipping starter bundle (source not found)\n');
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
const starterDest = join(cantDir, 'starter');
|
|
279
|
-
const agentsDest = join(starterDest, 'agents');
|
|
280
|
-
// Ensure destination directories exist
|
|
281
|
-
ensureDir(starterDest);
|
|
282
|
-
ensureDir(agentsDest);
|
|
283
|
-
// Copy team.cant (always overwrite on upgrade)
|
|
284
|
-
const teamSrc = join(bundleSrc, 'team.cant');
|
|
285
|
-
const teamDest = join(starterDest, 'team.cant');
|
|
286
|
-
if (existsSync(teamSrc)) {
|
|
287
|
-
const updating = existsSync(teamDest);
|
|
288
|
-
cpSync(teamSrc, teamDest, { force: true });
|
|
289
|
-
process.stdout.write(updating
|
|
290
|
-
? `CleoOS: updating extension: starter team.cant\n`
|
|
291
|
-
: `CleoOS: deployed starter team.cant to ${teamDest}\n`);
|
|
292
|
-
}
|
|
293
|
-
// Copy agent .cant files (always overwrite on upgrade)
|
|
294
|
-
const agentsSrcDir = join(bundleSrc, 'agents');
|
|
295
|
-
if (existsSync(agentsSrcDir)) {
|
|
296
|
-
try {
|
|
297
|
-
const entries = readdirSync(agentsSrcDir);
|
|
298
|
-
for (const entry of entries) {
|
|
299
|
-
if (!entry.endsWith('.cant'))
|
|
300
|
-
continue;
|
|
301
|
-
const src = join(agentsSrcDir, entry);
|
|
302
|
-
const dest = join(agentsDest, entry);
|
|
303
|
-
const updating = existsSync(dest);
|
|
304
|
-
cpSync(src, dest, { force: true });
|
|
305
|
-
process.stdout.write(updating
|
|
306
|
-
? `CleoOS: updating extension: starter ${entry}\n`
|
|
307
|
-
: `CleoOS: deployed starter ${entry} to ${dest}\n`);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
catch {
|
|
311
|
-
// Best-effort: non-fatal.
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
// ---------------------------------------------------------------------------
|
|
316
|
-
// Skill installation
|
|
317
|
-
// ---------------------------------------------------------------------------
|
|
318
|
-
/**
|
|
319
|
-
* Invoke `cleo skills install` via `execFileSync` to register the CleoOS
|
|
320
|
-
* bundled skills with the project. This is best-effort — if `cleo` is not
|
|
321
|
-
* on PATH or the command fails, we log and continue.
|
|
322
|
-
*
|
|
323
|
-
* Uses `execFileSync` (not `exec`) to prevent shell injection: the command
|
|
324
|
-
* and arguments are passed as separate parameters so no shell is spawned.
|
|
325
|
-
*/
|
|
326
|
-
function installSkills() {
|
|
327
|
-
try {
|
|
328
|
-
execFileSync('cleo', ['skills', 'install'], { stdio: 'inherit' });
|
|
329
|
-
process.stdout.write('CleoOS: skills install complete\n');
|
|
330
|
-
}
|
|
331
|
-
catch {
|
|
332
|
-
// cleo may not be installed or skills may already be up to date.
|
|
333
|
-
process.stdout.write('CleoOS: skipping skills install (cleo not found or already installed)\n');
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
// ---------------------------------------------------------------------------
|
|
337
205
|
// Main
|
|
338
206
|
// ---------------------------------------------------------------------------
|
|
207
|
+
/** Deprecation notice the postinstall prints (T13996, ADR-098). */
|
|
208
|
+
const DEPRECATION_NOTICE = 'CleoOS: @cleocode/cleo-os is deprecated (ADR-098). Use the cleo CLI with your own harness; ' +
|
|
209
|
+
'CLEO Goal drives autonomous runs.\n';
|
|
339
210
|
/**
|
|
340
211
|
* Entry point for the CleoOS postinstall script.
|
|
341
212
|
*
|
|
342
|
-
* Orchestrates directory scaffolding, extension deployment
|
|
343
|
-
* linking
|
|
344
|
-
* operations are idempotent.
|
|
213
|
+
* Orchestrates directory scaffolding, extension deployment and
|
|
214
|
+
* node_modules linking. All operations are idempotent.
|
|
345
215
|
*/
|
|
346
216
|
function main() {
|
|
347
217
|
if (!isGlobalInstall()) {
|
|
@@ -351,7 +221,7 @@ function main() {
|
|
|
351
221
|
const paths = resolveCleoOsPaths();
|
|
352
222
|
const pkgRoot = resolve(__dirname, '..');
|
|
353
223
|
// 1. Scaffold XDG directories
|
|
354
|
-
for (const dir of [paths.data, paths.config, paths.extensions, paths.
|
|
224
|
+
for (const dir of [paths.data, paths.config, paths.extensions, paths.auth]) {
|
|
355
225
|
ensureDir(dir);
|
|
356
226
|
}
|
|
357
227
|
// 2. Deploy compiled extensions
|
|
@@ -366,12 +236,12 @@ function main() {
|
|
|
366
236
|
// deployed extensions can resolve @cleocode/* and @mariozechner/*
|
|
367
237
|
// bare-specifier imports against the cleo-os dependency tree.
|
|
368
238
|
linkExtensionNodeModules(pkgRoot, paths.extensions);
|
|
369
|
-
//
|
|
370
|
-
|
|
371
|
-
//
|
|
372
|
-
|
|
373
|
-
//
|
|
374
|
-
|
|
239
|
+
// T13996 (ADR-098): the CleoOS harness is retiring. The postinstall no
|
|
240
|
+
// longer creates the cant/ directory, seeds .cant files (model-routing
|
|
241
|
+
// stub, starter team bundle) or runs `cleo skills install`. It still
|
|
242
|
+
// deploys the extensions the `cleoos` launcher loads, so an installed
|
|
243
|
+
// cleoos keeps starting until the package is removed.
|
|
244
|
+
process.stdout.write(DEPRECATION_NOTICE); // stdout-discipline-allowed: npm postinstall output, not a CLI envelope (T13996) // stdout-write-allowed: npm postinstall output (T13996)
|
|
375
245
|
process.stdout.write('CleoOS: postinstall complete\n');
|
|
376
246
|
}
|
|
377
247
|
main();
|
package/bin/postinstall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"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"}
|
package/dist/postinstall.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CleoOS postinstall —
|
|
2
|
+
* CleoOS postinstall — deploys the extensions `cleoos` needs to start.
|
|
3
3
|
*
|
|
4
4
|
* Runs automatically after `npm install -g @cleocode/cleo-os`.
|
|
5
|
-
* Creates
|
|
6
|
-
*
|
|
7
|
-
* `cleo skills install
|
|
5
|
+
* Creates the XDG directories and copies the compiled extensions. Since
|
|
6
|
+
* T13996 (ADR-098: the Pi/CleoOS harness is retiring) it no longer seeds
|
|
7
|
+
* `.cant` files or runs `cleo skills install`, and it prints a deprecation
|
|
8
|
+
* notice.
|
|
8
9
|
*
|
|
9
10
|
* Behaviour:
|
|
10
11
|
* - Skips silently during workspace/dev installs (non-global).
|
|
11
12
|
* - All directory creation is idempotent (no-op if directory exists).
|
|
12
|
-
* - Extensions
|
|
13
|
-
* - Skill install is best-effort; failures are logged but not fatal.
|
|
13
|
+
* - Extensions are always overwritten on upgrade.
|
|
14
14
|
* - Missing `@mariozechner/pi-coding-agent` is handled gracefully.
|
|
15
15
|
*
|
|
16
16
|
* This source compiles to `bin/postinstall.js` via a dedicated tsconfig
|
package/dist/postinstall.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CleoOS postinstall —
|
|
2
|
+
* CleoOS postinstall — deploys the extensions `cleoos` needs to start.
|
|
3
3
|
*
|
|
4
4
|
* Runs automatically after `npm install -g @cleocode/cleo-os`.
|
|
5
|
-
* Creates
|
|
6
|
-
*
|
|
7
|
-
* `cleo skills install
|
|
5
|
+
* Creates the XDG directories and copies the compiled extensions. Since
|
|
6
|
+
* T13996 (ADR-098: the Pi/CleoOS harness is retiring) it no longer seeds
|
|
7
|
+
* `.cant` files or runs `cleo skills install`, and it prints a deprecation
|
|
8
|
+
* notice.
|
|
8
9
|
*
|
|
9
10
|
* Behaviour:
|
|
10
11
|
* - Skips silently during workspace/dev installs (non-global).
|
|
11
12
|
* - All directory creation is idempotent (no-op if directory exists).
|
|
12
|
-
* - Extensions
|
|
13
|
-
* - Skill install is best-effort; failures are logged but not fatal.
|
|
13
|
+
* - Extensions are always overwritten on upgrade.
|
|
14
14
|
* - Missing `@mariozechner/pi-coding-agent` is handled gracefully.
|
|
15
15
|
*
|
|
16
16
|
* This source compiles to `bin/postinstall.js` via a dedicated tsconfig
|
|
@@ -19,8 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @packageDocumentation
|
|
21
21
|
*/
|
|
22
|
-
import {
|
|
23
|
-
import { cpSync, existsSync, lstatSync, mkdirSync, readdirSync, readlinkSync, symlinkSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
22
|
+
import { cpSync, existsSync, lstatSync, mkdirSync, readlinkSync, symlinkSync, unlinkSync, } from 'node:fs';
|
|
24
23
|
import { dirname, join, resolve } from 'node:path';
|
|
25
24
|
import { fileURLToPath } from 'node:url';
|
|
26
25
|
import envPaths from 'env-paths';
|
|
@@ -54,7 +53,6 @@ function resolveCleoOsPaths() {
|
|
|
54
53
|
config,
|
|
55
54
|
agentDir: data,
|
|
56
55
|
extensions: join(data, 'extensions'),
|
|
57
|
-
cant: join(data, 'cant'),
|
|
58
56
|
auth: join(config, 'auth'),
|
|
59
57
|
};
|
|
60
58
|
}
|
|
@@ -204,144 +202,16 @@ function linkExtensionNodeModules(pkgRoot, extensionsDir) {
|
|
|
204
202
|
}
|
|
205
203
|
}
|
|
206
204
|
// ---------------------------------------------------------------------------
|
|
207
|
-
// Default CANT file scaffolding
|
|
208
|
-
// ---------------------------------------------------------------------------
|
|
209
|
-
/**
|
|
210
|
-
* Write a default `model-routing.cant` stub to the XDG CANT directory if
|
|
211
|
-
* no `.cant` files are present. This gives the user a starting point for
|
|
212
|
-
* CANT declarations without overwriting any existing work.
|
|
213
|
-
*
|
|
214
|
-
* @param cantDir - Absolute path to the XDG CANT directory.
|
|
215
|
-
*/
|
|
216
|
-
function scaffoldDefaultCant(cantDir) {
|
|
217
|
-
const modelRoutingPath = join(cantDir, 'model-routing.cant');
|
|
218
|
-
if (existsSync(modelRoutingPath))
|
|
219
|
-
return;
|
|
220
|
-
const stub = [
|
|
221
|
-
'# CleoOS default model-routing.cant',
|
|
222
|
-
'# Declare agents, teams, and routing rules here.',
|
|
223
|
-
'# See: https://github.com/kryptobaseddev/cleo/blob/main/docs/cant-dsl.md',
|
|
224
|
-
'',
|
|
225
|
-
].join('\n');
|
|
226
|
-
try {
|
|
227
|
-
writeFileSync(modelRoutingPath, stub, 'utf-8');
|
|
228
|
-
process.stdout.write(`CleoOS: created default ${modelRoutingPath}\n`);
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
// Best-effort: non-fatal.
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// ---------------------------------------------------------------------------
|
|
235
|
-
// Starter bundle deployment
|
|
236
|
-
// ---------------------------------------------------------------------------
|
|
237
|
-
/**
|
|
238
|
-
* Resolve the starter-bundle source directory.
|
|
239
|
-
*
|
|
240
|
-
* Per D035 (v2026.4.111) the starter-bundle lives in `@cleocode/agents/`
|
|
241
|
-
* (NOT in `@cleocode/cleo-os/`) so universal agent content lives with the
|
|
242
|
-
* rest of the agent surface area. This helper walks a short candidate list
|
|
243
|
-
* so both workspace (dev) and globally-installed layouts resolve.
|
|
244
|
-
*
|
|
245
|
-
* Order of precedence:
|
|
246
|
-
* 1. `<pkgRoot>/../agents/starter-bundle` — sibling workspace package
|
|
247
|
-
* 2. `<pkgRoot>/node_modules/@cleocode/agents/starter-bundle` — global install
|
|
248
|
-
* 3. `<pkgRoot>/../../@cleocode/agents/starter-bundle` — hoisted global install
|
|
249
|
-
*
|
|
250
|
-
* @param pkgRoot - Absolute path to the installed cleo-os package root.
|
|
251
|
-
* @returns Absolute path to the starter-bundle directory, or `null` when not found.
|
|
252
|
-
*/
|
|
253
|
-
function resolveStarterBundleSrc(pkgRoot) {
|
|
254
|
-
const candidates = [
|
|
255
|
-
join(pkgRoot, '..', 'agents', 'starter-bundle'),
|
|
256
|
-
join(pkgRoot, 'node_modules', '@cleocode', 'agents', 'starter-bundle'),
|
|
257
|
-
join(pkgRoot, '..', '..', '@cleocode', 'agents', 'starter-bundle'),
|
|
258
|
-
];
|
|
259
|
-
return candidates.find((p) => existsSync(p)) ?? null;
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Deploy the starter CANT bundle to the global XDG CANT directory.
|
|
263
|
-
*
|
|
264
|
-
* Copies `starter-bundle/` contents (team.cant + agents/*.cant) to
|
|
265
|
-
* `~/.local/share/cleo/cant/starter/`. Always overwrites existing files
|
|
266
|
-
* so that upgrades deploy the latest bundle versions. These are managed
|
|
267
|
-
* files in the global tier, not user-editable project configs.
|
|
268
|
-
*
|
|
269
|
-
* @param pkgRoot - Absolute path to the installed package root.
|
|
270
|
-
* @param cantDir - Absolute path to the XDG CANT directory.
|
|
271
|
-
*/
|
|
272
|
-
function deployStarterBundle(pkgRoot, cantDir) {
|
|
273
|
-
const bundleSrc = resolveStarterBundleSrc(pkgRoot);
|
|
274
|
-
if (!bundleSrc) {
|
|
275
|
-
process.stdout.write('CleoOS: skipping starter bundle (source not found)\n');
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
const starterDest = join(cantDir, 'starter');
|
|
279
|
-
const agentsDest = join(starterDest, 'agents');
|
|
280
|
-
// Ensure destination directories exist
|
|
281
|
-
ensureDir(starterDest);
|
|
282
|
-
ensureDir(agentsDest);
|
|
283
|
-
// Copy team.cant (always overwrite on upgrade)
|
|
284
|
-
const teamSrc = join(bundleSrc, 'team.cant');
|
|
285
|
-
const teamDest = join(starterDest, 'team.cant');
|
|
286
|
-
if (existsSync(teamSrc)) {
|
|
287
|
-
const updating = existsSync(teamDest);
|
|
288
|
-
cpSync(teamSrc, teamDest, { force: true });
|
|
289
|
-
process.stdout.write(updating
|
|
290
|
-
? `CleoOS: updating extension: starter team.cant\n`
|
|
291
|
-
: `CleoOS: deployed starter team.cant to ${teamDest}\n`);
|
|
292
|
-
}
|
|
293
|
-
// Copy agent .cant files (always overwrite on upgrade)
|
|
294
|
-
const agentsSrcDir = join(bundleSrc, 'agents');
|
|
295
|
-
if (existsSync(agentsSrcDir)) {
|
|
296
|
-
try {
|
|
297
|
-
const entries = readdirSync(agentsSrcDir);
|
|
298
|
-
for (const entry of entries) {
|
|
299
|
-
if (!entry.endsWith('.cant'))
|
|
300
|
-
continue;
|
|
301
|
-
const src = join(agentsSrcDir, entry);
|
|
302
|
-
const dest = join(agentsDest, entry);
|
|
303
|
-
const updating = existsSync(dest);
|
|
304
|
-
cpSync(src, dest, { force: true });
|
|
305
|
-
process.stdout.write(updating
|
|
306
|
-
? `CleoOS: updating extension: starter ${entry}\n`
|
|
307
|
-
: `CleoOS: deployed starter ${entry} to ${dest}\n`);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
catch {
|
|
311
|
-
// Best-effort: non-fatal.
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
// ---------------------------------------------------------------------------
|
|
316
|
-
// Skill installation
|
|
317
|
-
// ---------------------------------------------------------------------------
|
|
318
|
-
/**
|
|
319
|
-
* Invoke `cleo skills install` via `execFileSync` to register the CleoOS
|
|
320
|
-
* bundled skills with the project. This is best-effort — if `cleo` is not
|
|
321
|
-
* on PATH or the command fails, we log and continue.
|
|
322
|
-
*
|
|
323
|
-
* Uses `execFileSync` (not `exec`) to prevent shell injection: the command
|
|
324
|
-
* and arguments are passed as separate parameters so no shell is spawned.
|
|
325
|
-
*/
|
|
326
|
-
function installSkills() {
|
|
327
|
-
try {
|
|
328
|
-
execFileSync('cleo', ['skills', 'install'], { stdio: 'inherit' });
|
|
329
|
-
process.stdout.write('CleoOS: skills install complete\n');
|
|
330
|
-
}
|
|
331
|
-
catch {
|
|
332
|
-
// cleo may not be installed or skills may already be up to date.
|
|
333
|
-
process.stdout.write('CleoOS: skipping skills install (cleo not found or already installed)\n');
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
// ---------------------------------------------------------------------------
|
|
337
205
|
// Main
|
|
338
206
|
// ---------------------------------------------------------------------------
|
|
207
|
+
/** Deprecation notice the postinstall prints (T13996, ADR-098). */
|
|
208
|
+
const DEPRECATION_NOTICE = 'CleoOS: @cleocode/cleo-os is deprecated (ADR-098). Use the cleo CLI with your own harness; ' +
|
|
209
|
+
'CLEO Goal drives autonomous runs.\n';
|
|
339
210
|
/**
|
|
340
211
|
* Entry point for the CleoOS postinstall script.
|
|
341
212
|
*
|
|
342
|
-
* Orchestrates directory scaffolding, extension deployment
|
|
343
|
-
* linking
|
|
344
|
-
* operations are idempotent.
|
|
213
|
+
* Orchestrates directory scaffolding, extension deployment and
|
|
214
|
+
* node_modules linking. All operations are idempotent.
|
|
345
215
|
*/
|
|
346
216
|
function main() {
|
|
347
217
|
if (!isGlobalInstall()) {
|
|
@@ -351,7 +221,7 @@ function main() {
|
|
|
351
221
|
const paths = resolveCleoOsPaths();
|
|
352
222
|
const pkgRoot = resolve(__dirname, '..');
|
|
353
223
|
// 1. Scaffold XDG directories
|
|
354
|
-
for (const dir of [paths.data, paths.config, paths.extensions, paths.
|
|
224
|
+
for (const dir of [paths.data, paths.config, paths.extensions, paths.auth]) {
|
|
355
225
|
ensureDir(dir);
|
|
356
226
|
}
|
|
357
227
|
// 2. Deploy compiled extensions
|
|
@@ -366,12 +236,12 @@ function main() {
|
|
|
366
236
|
// deployed extensions can resolve @cleocode/* and @mariozechner/*
|
|
367
237
|
// bare-specifier imports against the cleo-os dependency tree.
|
|
368
238
|
linkExtensionNodeModules(pkgRoot, paths.extensions);
|
|
369
|
-
//
|
|
370
|
-
|
|
371
|
-
//
|
|
372
|
-
|
|
373
|
-
//
|
|
374
|
-
|
|
239
|
+
// T13996 (ADR-098): the CleoOS harness is retiring. The postinstall no
|
|
240
|
+
// longer creates the cant/ directory, seeds .cant files (model-routing
|
|
241
|
+
// stub, starter team bundle) or runs `cleo skills install`. It still
|
|
242
|
+
// deploys the extensions the `cleoos` launcher loads, so an installed
|
|
243
|
+
// cleoos keeps starting until the package is removed.
|
|
244
|
+
process.stdout.write(DEPRECATION_NOTICE); // stdout-discipline-allowed: npm postinstall output, not a CLI envelope (T13996) // stdout-write-allowed: npm postinstall output (T13996)
|
|
375
245
|
process.stdout.write('CleoOS: postinstall complete\n');
|
|
376
246
|
}
|
|
377
247
|
main();
|
package/dist/postinstall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/cleo-os",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.22-rc.ci.693",
|
|
4
4
|
"description": "CleoOS — the batteries-included agentic development environment wrapping Pi",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cli.js",
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
"@mariozechner/pi-coding-agent": ">=0.60.0",
|
|
12
12
|
"@sinclair/typebox": "^0.34.49",
|
|
13
13
|
"env-paths": "^4.0.0",
|
|
14
|
-
"@cleocode/
|
|
15
|
-
"@cleocode/
|
|
16
|
-
"@cleocode/
|
|
17
|
-
"@cleocode/
|
|
18
|
-
"@cleocode/
|
|
14
|
+
"@cleocode/agents": "2026.10.22-rc.ci.693",
|
|
15
|
+
"@cleocode/cant": "2026.10.22-rc.ci.693",
|
|
16
|
+
"@cleocode/contracts": "2026.10.22-rc.ci.693",
|
|
17
|
+
"@cleocode/paths": "2026.10.22-rc.ci.693",
|
|
18
|
+
"@cleocode/core": "2026.10.22-rc.ci.693"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"typescript": "^6.0.2",
|