@cleocode/cleo-os 2026.9.8 → 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.
Files changed (32) hide show
  1. package/dist/cli.js +3 -10
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/__tests__/doctor.test.js +111 -2
  4. package/dist/commands/__tests__/doctor.test.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +11 -0
  6. package/dist/commands/doctor.d.ts.map +1 -1
  7. package/dist/commands/doctor.js +55 -23
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/harnesses/__tests__/provider-verification.test.d.ts +2 -0
  10. package/dist/harnesses/__tests__/provider-verification.test.d.ts.map +1 -0
  11. package/dist/harnesses/__tests__/provider-verification.test.js +350 -0
  12. package/dist/harnesses/__tests__/provider-verification.test.js.map +1 -0
  13. package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.d.ts +2 -0
  14. package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.d.ts.map +1 -0
  15. package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.js +66 -0
  16. package/dist/harnesses/pi-coding-agent/__tests__/harness-knowledge.test.js.map +1 -0
  17. package/dist/harnesses/pi-coding-agent/adapter.d.ts.map +1 -1
  18. package/dist/harnesses/pi-coding-agent/adapter.js +26 -2
  19. package/dist/harnesses/pi-coding-agent/adapter.js.map +1 -1
  20. package/dist/harnesses/provider-verification.d.ts +26 -0
  21. package/dist/harnesses/provider-verification.d.ts.map +1 -0
  22. package/dist/harnesses/provider-verification.js +442 -0
  23. package/dist/harnesses/provider-verification.js.map +1 -0
  24. package/dist/registry/__tests__/provider-matrix.test.d.ts +2 -0
  25. package/dist/registry/__tests__/provider-matrix.test.d.ts.map +1 -0
  26. package/dist/registry/__tests__/provider-matrix.test.js +111 -0
  27. package/dist/registry/__tests__/provider-matrix.test.js.map +1 -0
  28. package/dist/registry/provider-matrix.d.ts +25 -52
  29. package/dist/registry/provider-matrix.d.ts.map +1 -1
  30. package/dist/registry/provider-matrix.js +84 -88
  31. package/dist/registry/provider-matrix.js.map +1 -1
  32. package/package.json +6 -6
@@ -1,75 +1,46 @@
1
1
  /**
2
- * CleoOS Provider Matrix — read-only health view of the 9 provider adapters.
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
- * A single row in the CleoOS provider matrix.
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 (e.g. `"claude-code"`, `"opencode"`). */
9
+ /** Canonical provider identifier (for example, "claude-code"). */
31
10
  providerId: string;
32
- /** Human-readable display name for the provider. */
11
+ /** Human-readable provider name. */
33
12
  displayName: string;
34
13
  /**
35
- * Whether the provider directory exists under
36
- * `packages/adapters/src/providers/<providerId>/`.
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 `spawn.ts` exists in the provider's directory.
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
- * Count of canonical CAAMP hook event names declared in `hooks.ts`.
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 health view of all 9 CLEO provider adapters.
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 matrix = new ProviderMatrix();
70
- * const rows = await matrix.getMatrix();
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
- * @returns Array of directory names (provider IDs) present on disk.
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;;;;;;;;;;;;;;;;;;;;GAoBG;AAaH;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAsJD;;;;;;;;;;;;;;GAcG;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;;;;;;;;OAQG;IACG,wBAAwB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAWpD"}
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
- * CleoOS Provider Matrix — read-only health view of the 9 provider adapters.
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 { existsSync } from 'node:fs';
23
- import { readdir, readFile } from 'node:fs/promises';
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
- * gives a conservative lower-bound count of declared hooks.
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
- * Count canonical hook event names declared in a `hooks.ts` file.
96
- *
97
- * Reads the file as text and scans for occurrences of known CAAMP event name
98
- * identifiers. The count is a lower-bound estimate — it does not parse the
99
- * TypeScript AST.
100
- *
101
- * @param hooksPath - Absolute path to `hooks.ts`.
102
- * @returns Count of recognised hook event names (0 if file unreadable).
103
- */
104
- async function countHookDeclarations(hooksPath) {
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
- const source = await readFile(hooksPath, 'utf-8');
107
- let count = 0;
108
- for (const event of CANONICAL_HOOK_EVENTS) {
109
- // Match the event name as a standalone word to avoid false positives
110
- // e.g. "Stop" should not match "StopEvent"
111
- const pattern = new RegExp(`\\b${event}\\b`);
112
- if (pattern.test(source)) {
113
- count++;
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
- return 0;
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
- * Build a single `ProviderMatrixRow` by inspecting the provider's directory.
124
- *
125
- * @param providerId - Canonical provider ID (e.g. `"claude-code"`).
126
- * @param displayName - Human-readable display name.
127
- * @param providersDir - Absolute path to `packages/adapters/src/providers/`.
128
- * @returns Populated matrix row.
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 providerDir = join(providersDir, providerId);
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: true,
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 health view of all 9 CLEO provider adapters.
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 matrix = new ProviderMatrix();
169
- * const rows = await matrix.getMatrix();
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
- * @returns Array of directory names (provider IDs) present on disk.
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
- return [];
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":"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"}
1
+ {"version":3,"file":"provider-matrix.js","sourceRoot":"","sources":["../../src/registry/provider-matrix.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.9.8",
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/agents": "2026.9.8",
15
- "@cleocode/contracts": "2026.9.8",
16
- "@cleocode/cant": "2026.9.8",
17
- "@cleocode/paths": "2026.9.8",
18
- "@cleocode/core": "2026.9.8"
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",