@cleocode/cleo-os 2026.9.7 → 2026.9.9
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/cli.js +3 -10
- package/dist/cli.js.map +1 -1
- package/dist/commands/__tests__/doctor.test.js +111 -2
- package/dist/commands/__tests__/doctor.test.js.map +1 -1
- package/dist/commands/doctor.d.ts +11 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +55 -23
- package/dist/commands/doctor.js.map +1 -1
- package/dist/harnesses/__tests__/provider-verification.test.d.ts +2 -0
- package/dist/harnesses/__tests__/provider-verification.test.d.ts.map +1 -0
- package/dist/harnesses/__tests__/provider-verification.test.js +350 -0
- package/dist/harnesses/__tests__/provider-verification.test.js.map +1 -0
- package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.d.ts +2 -0
- package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.d.ts.map +1 -0
- package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.js +66 -0
- package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.js.map +1 -0
- package/dist/harnesses/pi-coding-agent/adapter.d.ts.map +1 -1
- package/dist/harnesses/pi-coding-agent/adapter.js +26 -2
- package/dist/harnesses/pi-coding-agent/adapter.js.map +1 -1
- package/dist/harnesses/provider-verification.d.ts +26 -0
- package/dist/harnesses/provider-verification.d.ts.map +1 -0
- package/dist/harnesses/provider-verification.js +442 -0
- package/dist/harnesses/provider-verification.js.map +1 -0
- package/dist/registry/__tests__/provider-matrix.test.d.ts +2 -0
- package/dist/registry/__tests__/provider-matrix.test.d.ts.map +1 -0
- package/dist/registry/__tests__/provider-matrix.test.js +111 -0
- package/dist/registry/__tests__/provider-matrix.test.js.map +1 -0
- package/dist/registry/provider-matrix.d.ts +25 -52
- package/dist/registry/provider-matrix.d.ts.map +1 -1
- package/dist/registry/provider-matrix.js +84 -88
- package/dist/registry/provider-matrix.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,75 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Scans `packages/adapters/src/providers/` at runtime to determine which
|
|
5
|
-
* providers are installed, whether they expose a spawn implementation, and
|
|
6
|
-
* how many hooks they declare. No CLI surface is added in this skeleton;
|
|
7
|
-
* the matrix is consumed programmatically by orchestrators or a future
|
|
8
|
-
* `cleo-os doctor` command (deferred per ADR-050).
|
|
9
|
-
*
|
|
10
|
-
* @remarks
|
|
11
|
-
* The `adapterClass` field is always `"CLEOProviderAdapter"` — the shared
|
|
12
|
-
* interface from `@cleocode/contracts` that every provider adapter implements.
|
|
13
|
-
* It is included in `ProviderMatrixRow` to make the interface name self-documenting
|
|
14
|
-
* for tooling that reflects on the matrix output.
|
|
15
|
-
*
|
|
16
|
-
* @see ADR-050 — CleoOS Sovereign Harness: Distribution Binding Charter
|
|
17
|
-
* @see packages/contracts/src/adapter.ts — CLEOProviderAdapter interface
|
|
18
|
-
* @task T640
|
|
19
|
-
* @epic T636
|
|
2
|
+
* Read-only adapter source inventory with independent provider verification levels.
|
|
3
|
+
* Source presence does not establish installed, delivery, workflow, or lifecycle support.
|
|
20
4
|
* @packageDocumentation
|
|
21
5
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*
|
|
25
|
-
* Each row represents one of the 9 known CLEO provider adapters and summarises
|
|
26
|
-
* its installation state and feature completeness as determined by filesystem
|
|
27
|
-
* inspection.
|
|
28
|
-
*/
|
|
6
|
+
import type { ProviderChannelVerification, ProviderSourceInspection } from '@cleocode/contracts/capabilities';
|
|
7
|
+
/** A provider declaration, source inspection, and separate live capability assessments. */
|
|
29
8
|
export interface ProviderMatrixRow {
|
|
30
|
-
/** Canonical provider identifier (
|
|
9
|
+
/** Canonical provider identifier (for example, "claude-code"). */
|
|
31
10
|
providerId: string;
|
|
32
|
-
/** Human-readable
|
|
11
|
+
/** Human-readable provider name. */
|
|
33
12
|
displayName: string;
|
|
34
13
|
/**
|
|
35
|
-
* Whether the
|
|
36
|
-
*
|
|
14
|
+
* Whether the adapter source directory was observed.
|
|
15
|
+
* @deprecated Use source.directoryPresent; this never proved installation.
|
|
37
16
|
*/
|
|
38
17
|
installed: boolean;
|
|
39
18
|
/**
|
|
40
|
-
* Whether
|
|
41
|
-
*
|
|
42
|
-
* A spawn implementation is required for the provider to launch sub-agents.
|
|
19
|
+
* Whether a regular spawn.ts source file was observed.
|
|
20
|
+
* @deprecated Use source.spawnFilePresent; this never proved executable spawning.
|
|
43
21
|
*/
|
|
44
22
|
spawnImplemented: boolean;
|
|
45
23
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* Computed by scanning for known event name identifiers. Returns `0` when
|
|
49
|
-
* `hooks.ts` is absent or contains no recognised declarations.
|
|
24
|
+
* Number of canonical hook names mentioned in source text, including comments.
|
|
25
|
+
* @deprecated Use source.hookNameMentions; this never proved hook support.
|
|
50
26
|
*/
|
|
51
27
|
hookSupport: number;
|
|
52
|
-
/**
|
|
53
|
-
* Name of the shared adapter interface that this provider implements.
|
|
54
|
-
*
|
|
55
|
-
* Always `"CLEOProviderAdapter"` (from `packages/contracts/src/adapter.ts`).
|
|
56
|
-
* Included for tooling that reflects on matrix rows to identify the contract.
|
|
57
|
-
*/
|
|
28
|
+
/** Declared adapter interface name, not a verified runtime implementation. */
|
|
58
29
|
adapterClass: string;
|
|
30
|
+
/** Source-only inventory and diagnostic failures. */
|
|
31
|
+
source: ProviderSourceInspection;
|
|
32
|
+
/** External provider CLI capabilities, independent of CleoOS adapter spawning. */
|
|
33
|
+
externalCli: ProviderChannelVerification;
|
|
34
|
+
/** CleoOS programmatic spawning capabilities, independent of external CLI use. */
|
|
35
|
+
programmaticSpawn: ProviderChannelVerification;
|
|
59
36
|
}
|
|
60
37
|
/**
|
|
61
|
-
* Read-only
|
|
62
|
-
*
|
|
63
|
-
* Inspects the `packages/adapters/src/providers/` directory tree to produce
|
|
64
|
-
* a structured matrix of adapter installation state and feature completeness.
|
|
65
|
-
* All operations are read-only; no files are created or modified.
|
|
38
|
+
* Read-only source inventory of known adapters, with live capabilities left unverified.
|
|
66
39
|
*
|
|
67
40
|
* @example
|
|
68
41
|
* ```ts
|
|
69
|
-
* const
|
|
70
|
-
* const
|
|
71
|
-
* const ready = rows.filter((r) => r.installed && r.spawnImplemented);
|
|
72
|
-
* console.log(ready.length, 'providers ready to spawn agents');
|
|
42
|
+
* const rows = await new ProviderMatrix().getMatrix();
|
|
43
|
+
* const sourceFailures = rows.filter((row) => row.source.status === 'failed');
|
|
73
44
|
* ```
|
|
74
45
|
*/
|
|
75
46
|
export declare class ProviderMatrix {
|
|
@@ -97,7 +68,9 @@ export declare class ProviderMatrix {
|
|
|
97
68
|
* including any that are not in the canonical `KNOWN_PROVIDERS` list. Useful
|
|
98
69
|
* for detecting community-contributed or experimental adapters.
|
|
99
70
|
*
|
|
100
|
-
* @
|
|
71
|
+
* @deprecated This lists source directories, not installed provider applications.
|
|
72
|
+
* @returns Array of source directory names present on disk.
|
|
73
|
+
* @throws Error when directory enumeration fails for a reason other than absence.
|
|
101
74
|
*/
|
|
102
75
|
listInstalledProviderIds(): Promise<string[]>;
|
|
103
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-matrix.d.ts","sourceRoot":"","sources":["../../src/registry/provider-matrix.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"provider-matrix.d.ts","sourceRoot":"","sources":["../../src/registry/provider-matrix.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,kCAAkC,CAAC;AAQ1C,2FAA2F;AAC3F,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,MAAM,EAAE,wBAAwB,CAAC;IACjC,kFAAkF;IAClF,WAAW,EAAE,2BAA2B,CAAC;IACzC,kFAAkF;IAClF,iBAAiB,EAAE,2BAA2B,CAAC;CAChD;AA6KD;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;;;;OAKG;gBACS,YAAY,CAAC,EAAE,MAAM;IAIjC;;;;;;;OAOG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAO/C;;;;;;;;;;OAUG;IACG,wBAAwB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CASpD"}
|
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Scans `packages/adapters/src/providers/` at runtime to determine which
|
|
5
|
-
* providers are installed, whether they expose a spawn implementation, and
|
|
6
|
-
* how many hooks they declare. No CLI surface is added in this skeleton;
|
|
7
|
-
* the matrix is consumed programmatically by orchestrators or a future
|
|
8
|
-
* `cleo-os doctor` command (deferred per ADR-050).
|
|
9
|
-
*
|
|
10
|
-
* @remarks
|
|
11
|
-
* The `adapterClass` field is always `"CLEOProviderAdapter"` — the shared
|
|
12
|
-
* interface from `@cleocode/contracts` that every provider adapter implements.
|
|
13
|
-
* It is included in `ProviderMatrixRow` to make the interface name self-documenting
|
|
14
|
-
* for tooling that reflects on the matrix output.
|
|
15
|
-
*
|
|
16
|
-
* @see ADR-050 — CleoOS Sovereign Harness: Distribution Binding Charter
|
|
17
|
-
* @see packages/contracts/src/adapter.ts — CLEOProviderAdapter interface
|
|
18
|
-
* @task T640
|
|
19
|
-
* @epic T636
|
|
2
|
+
* Read-only adapter source inventory with independent provider verification levels.
|
|
3
|
+
* Source presence does not establish installed, delivery, workflow, or lifecycle support.
|
|
20
4
|
* @packageDocumentation
|
|
21
5
|
*/
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { dirname, join } from 'node:path';
|
|
6
|
+
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
7
|
+
import { dirname, join, resolve } from 'node:path';
|
|
25
8
|
import { fileURLToPath } from 'node:url';
|
|
26
9
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
27
10
|
// ---------------------------------------------------------------------------
|
|
@@ -37,7 +20,7 @@ const ADAPTER_CLASS = 'CLEOProviderAdapter';
|
|
|
37
20
|
* Canonical CAAMP hook event names used to count hook support in `hooks.ts`.
|
|
38
21
|
*
|
|
39
22
|
* Derived from the 16-event CAAMP taxonomy. Scanning for these identifiers
|
|
40
|
-
*
|
|
23
|
+
* counts name mentions, including comments, and cannot prove hook support.
|
|
41
24
|
*/
|
|
42
25
|
const CANONICAL_HOOK_EVENTS = [
|
|
43
26
|
'PreToolUse',
|
|
@@ -91,84 +74,96 @@ function resolveProvidersDir() {
|
|
|
91
74
|
const monorepoRoot = join(__dirname, '..', '..', '..', '..');
|
|
92
75
|
return join(monorepoRoot, 'packages', 'adapters', 'src', 'providers');
|
|
93
76
|
}
|
|
94
|
-
/**
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
77
|
+
/** Whether the filesystem reports a genuinely absent entry. */
|
|
78
|
+
function isMissing(error) {
|
|
79
|
+
return 'code' in error && error.code === 'ENOENT';
|
|
80
|
+
}
|
|
81
|
+
/** Distinguish absent entries from failed reads and wrong filesystem types. */
|
|
82
|
+
async function hasEntry(path, kind) {
|
|
83
|
+
try {
|
|
84
|
+
const info = await stat(path);
|
|
85
|
+
if (kind === 'directory' ? info.isDirectory() : info.isFile())
|
|
86
|
+
return true;
|
|
87
|
+
throw new Error(`Expected ${kind} at ${path}`);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
if (error instanceof Error && isMissing(error))
|
|
91
|
+
return false;
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** Inspect source without converting unreadable or malformed paths into healthy absence. */
|
|
96
|
+
async function inspectSource(directory) {
|
|
97
|
+
const result = {
|
|
98
|
+
directory,
|
|
99
|
+
status: 'missing',
|
|
100
|
+
directoryPresent: false,
|
|
101
|
+
spawnFilePresent: false,
|
|
102
|
+
hookNameMentions: 0,
|
|
103
|
+
diagnostics: [],
|
|
104
|
+
};
|
|
105
105
|
try {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
106
|
+
result.directoryPresent = await hasEntry(directory, 'directory');
|
|
107
|
+
if (!result.directoryPresent)
|
|
108
|
+
return result;
|
|
109
|
+
result.status = 'present';
|
|
110
|
+
result.spawnFilePresent = await hasEntry(join(directory, 'spawn.ts'), 'file');
|
|
111
|
+
const hooksPath = join(directory, 'hooks.ts');
|
|
112
|
+
if (await hasEntry(hooksPath, 'file')) {
|
|
113
|
+
const source = await readFile(hooksPath, 'utf-8');
|
|
114
|
+
result.hookNameMentions = CANONICAL_HOOK_EVENTS.filter((event) => new RegExp(`\\b${event}\\b`).test(source)).length;
|
|
115
115
|
}
|
|
116
|
-
return count;
|
|
117
116
|
}
|
|
118
|
-
catch {
|
|
119
|
-
|
|
117
|
+
catch (error) {
|
|
118
|
+
result.status = 'failed';
|
|
119
|
+
result.diagnostics = [error instanceof Error ? error.message : String(error)];
|
|
120
120
|
}
|
|
121
|
+
return result;
|
|
121
122
|
}
|
|
122
|
-
/**
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
123
|
+
/** Source discovery cannot supply an installed workflow's identities or receipts. */
|
|
124
|
+
function unverifiedChannel(channel) {
|
|
125
|
+
const pending = (reason) => ({ status: 'unverified', reason, evidence: [] });
|
|
126
|
+
return {
|
|
127
|
+
channel,
|
|
128
|
+
identity: null,
|
|
129
|
+
levels: {
|
|
130
|
+
declared: pending('Registry presence is a source hint; channel capabilities were not inspected.'),
|
|
131
|
+
installed: pending('No executable or installed SDK identity was measured.'),
|
|
132
|
+
delivery: pending('No instruction delivery was observed in an installed invocation.'),
|
|
133
|
+
workflow: pending('No installed repair scenario and independent receipt verification were run.'),
|
|
134
|
+
lifecycle: pending('No installed cancellation, teardown, and descendant cleanup were observed.'),
|
|
135
|
+
},
|
|
136
|
+
limitations: [
|
|
137
|
+
'Source names, comments, version strings, and self-authored certificates do not certify live behavior.',
|
|
138
|
+
'Permission policy and account/interface availability remain unverified; no bypass flags were used.',
|
|
139
|
+
],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/** Build the existing matrix row with explicit source and verification boundaries. */
|
|
130
143
|
async function buildRow(providerId, displayName, providersDir) {
|
|
131
|
-
const
|
|
132
|
-
const installed = existsSync(providerDir);
|
|
133
|
-
if (!installed) {
|
|
134
|
-
return {
|
|
135
|
-
providerId,
|
|
136
|
-
displayName,
|
|
137
|
-
installed: false,
|
|
138
|
-
spawnImplemented: false,
|
|
139
|
-
hookSupport: 0,
|
|
140
|
-
adapterClass: ADAPTER_CLASS,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
const spawnPath = join(providerDir, 'spawn.ts');
|
|
144
|
-
const hooksPath = join(providerDir, 'hooks.ts');
|
|
145
|
-
const spawnImplemented = existsSync(spawnPath);
|
|
146
|
-
const hookSupport = existsSync(hooksPath) ? await countHookDeclarations(hooksPath) : 0;
|
|
144
|
+
const source = await inspectSource(join(providersDir, providerId));
|
|
147
145
|
return {
|
|
148
146
|
providerId,
|
|
149
147
|
displayName,
|
|
150
|
-
installed:
|
|
151
|
-
spawnImplemented,
|
|
152
|
-
hookSupport,
|
|
148
|
+
installed: source.directoryPresent,
|
|
149
|
+
spawnImplemented: source.spawnFilePresent,
|
|
150
|
+
hookSupport: source.hookNameMentions,
|
|
153
151
|
adapterClass: ADAPTER_CLASS,
|
|
152
|
+
source,
|
|
153
|
+
externalCli: unverifiedChannel('external-cli'),
|
|
154
|
+
programmaticSpawn: unverifiedChannel('programmatic-spawn'),
|
|
154
155
|
};
|
|
155
156
|
}
|
|
156
157
|
// ---------------------------------------------------------------------------
|
|
157
158
|
// ProviderMatrix
|
|
158
159
|
// ---------------------------------------------------------------------------
|
|
159
160
|
/**
|
|
160
|
-
* Read-only
|
|
161
|
-
*
|
|
162
|
-
* Inspects the `packages/adapters/src/providers/` directory tree to produce
|
|
163
|
-
* a structured matrix of adapter installation state and feature completeness.
|
|
164
|
-
* All operations are read-only; no files are created or modified.
|
|
161
|
+
* Read-only source inventory of known adapters, with live capabilities left unverified.
|
|
165
162
|
*
|
|
166
163
|
* @example
|
|
167
164
|
* ```ts
|
|
168
|
-
* const
|
|
169
|
-
* const
|
|
170
|
-
* const ready = rows.filter((r) => r.installed && r.spawnImplemented);
|
|
171
|
-
* console.log(ready.length, 'providers ready to spawn agents');
|
|
165
|
+
* const rows = await new ProviderMatrix().getMatrix();
|
|
166
|
+
* const sourceFailures = rows.filter((row) => row.source.status === 'failed');
|
|
172
167
|
* ```
|
|
173
168
|
*/
|
|
174
169
|
export class ProviderMatrix {
|
|
@@ -180,7 +175,7 @@ export class ProviderMatrix {
|
|
|
180
175
|
* Primarily for testing. Defaults to the monorepo-relative path.
|
|
181
176
|
*/
|
|
182
177
|
constructor(providersDir) {
|
|
183
|
-
this.providersDir = providersDir ?? resolveProvidersDir();
|
|
178
|
+
this.providersDir = resolve(providersDir ?? resolveProvidersDir());
|
|
184
179
|
}
|
|
185
180
|
/**
|
|
186
181
|
* Scan all known providers and return their matrix rows.
|
|
@@ -201,18 +196,19 @@ export class ProviderMatrix {
|
|
|
201
196
|
* including any that are not in the canonical `KNOWN_PROVIDERS` list. Useful
|
|
202
197
|
* for detecting community-contributed or experimental adapters.
|
|
203
198
|
*
|
|
204
|
-
* @
|
|
199
|
+
* @deprecated This lists source directories, not installed provider applications.
|
|
200
|
+
* @returns Array of source directory names present on disk.
|
|
201
|
+
* @throws Error when directory enumeration fails for a reason other than absence.
|
|
205
202
|
*/
|
|
206
203
|
async listInstalledProviderIds() {
|
|
207
|
-
if (!existsSync(this.providersDir)) {
|
|
208
|
-
return [];
|
|
209
|
-
}
|
|
210
204
|
try {
|
|
211
205
|
const entries = await readdir(this.providersDir, { withFileTypes: true });
|
|
212
206
|
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
213
207
|
}
|
|
214
|
-
catch {
|
|
215
|
-
|
|
208
|
+
catch (error) {
|
|
209
|
+
if (error instanceof Error && isMissing(error))
|
|
210
|
+
return [];
|
|
211
|
+
throw error;
|
|
216
212
|
}
|
|
217
213
|
}
|
|
218
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-matrix.js","sourceRoot":"","sources":["../../src/registry/provider-matrix.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"provider-matrix.js","sourceRoot":"","sources":["../../src/registry/provider-matrix.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAqC1D,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,aAAa,GAAG,qBAA8B,CAAC;AAErD;;;;;GAKG;AACH,MAAM,qBAAqB,GAA0B;IACnD,YAAY;IACZ,aAAa;IACb,eAAe;IACf,aAAa;IACb,UAAU;IACV,WAAW;IACX,cAAc;IACd,YAAY;IACZ,cAAc;IACd,MAAM;IACN,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,aAAa;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,eAAe,GAAuD;IAC1E,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE;IACjD,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE;IAC/C,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;IAC5C,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;IACvC,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE;IAC/C,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IACnC,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC/D,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;CAC7C,CAAC;AAEF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAS,mBAAmB;IAC1B,kFAAkF;IAClF,iEAAiE;IACjE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACxE,CAAC;AAED,+DAA+D;AAC/D,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpD,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAA0B;IAC9D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,KAAK,UAAU,aAAa,CAAC,SAAiB;IAC5C,MAAM,MAAM,GAA6B;QACvC,SAAS;QACT,MAAM,EAAE,SAAS;QACjB,gBAAgB,EAAE,KAAK;QACvB,gBAAgB,EAAE,KAAK;QACvB,gBAAgB,EAAE,CAAC;QACnB,WAAW,EAAE,EAAE;KAChB,CAAC;IACF,IAAI,CAAC;QACH,MAAM,CAAC,gBAAgB,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAAE,OAAO,MAAM,CAAC;QAC5C,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,MAAM,CAAC,gBAAgB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9C,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1C,CAAC,MAAM,CAAC;QACX,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qFAAqF;AACrF,SAAS,iBAAiB,CACxB,OAA+C;IAE/C,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9F,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,QAAQ,EAAE,OAAO,CACf,8EAA8E,CAC/E;YACD,SAAS,EAAE,OAAO,CAAC,uDAAuD,CAAC;YAC3E,QAAQ,EAAE,OAAO,CAAC,kEAAkE,CAAC;YACrF,QAAQ,EAAE,OAAO,CACf,6EAA6E,CAC9E;YACD,SAAS,EAAE,OAAO,CAChB,4EAA4E,CAC7E;SACF;QACD,WAAW,EAAE;YACX,uGAAuG;YACvG,oGAAoG;SACrG;KACF,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,KAAK,UAAU,QAAQ,CACrB,UAAkB,EAClB,WAAmB,EACnB,YAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,OAAO;QACL,UAAU;QACV,WAAW;QACX,SAAS,EAAE,MAAM,CAAC,gBAAgB;QAClC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,WAAW,EAAE,MAAM,CAAC,gBAAgB;QACpC,YAAY,EAAE,aAAa;QAC3B,MAAM;QACN,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC;QAC9C,iBAAiB,EAAE,iBAAiB,CAAC,oBAAoB,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAc;IACR,YAAY,CAAS;IAEtC;;;;;OAKG;IACH,YAAY,YAAqB;QAC/B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAC3F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,wBAAwB;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC1D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/cleo-os",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.9",
|
|
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/core": "2026.9.
|
|
17
|
-
"@cleocode/
|
|
18
|
-
"@cleocode/
|
|
14
|
+
"@cleocode/agents": "2026.9.9",
|
|
15
|
+
"@cleocode/cant": "2026.9.9",
|
|
16
|
+
"@cleocode/core": "2026.9.9",
|
|
17
|
+
"@cleocode/paths": "2026.9.9",
|
|
18
|
+
"@cleocode/contracts": "2026.9.9"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"typescript": "^6.0.2",
|