@cleocode/cleo-os 2026.4.18 → 2026.4.20
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 +61 -2
- package/bin/postinstall.js.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/postinstall.js +61 -2
- package/dist/postinstall.js.map +1 -1
- package/dist/xdg.d.ts +2 -0
- package/dist/xdg.d.ts.map +1 -1
- package/dist/xdg.js +1 -0
- package/dist/xdg.js.map +1 -1
- package/extensions/cleo-agent-monitor.d.ts +141 -0
- package/extensions/cleo-agent-monitor.d.ts.map +1 -0
- package/extensions/cleo-agent-monitor.js +423 -0
- package/extensions/cleo-agent-monitor.js.map +1 -0
- package/extensions/cleo-agent-monitor.ts +611 -0
- package/extensions/cleo-cant-bridge.d.ts +36 -10
- package/extensions/cleo-cant-bridge.d.ts.map +1 -1
- package/extensions/cleo-cant-bridge.js +148 -22
- package/extensions/cleo-cant-bridge.js.map +1 -1
- package/extensions/cleo-cant-bridge.ts +238 -22
- package/extensions/tui-theme.d.ts +235 -0
- package/extensions/tui-theme.d.ts.map +1 -0
- package/extensions/tui-theme.js +276 -0
- package/extensions/tui-theme.js.map +1 -0
- package/extensions/tui-theme.ts +323 -0
- package/package.json +5 -4
- package/starter-bundle/README.md +48 -0
- package/starter-bundle/agents/cleo-orchestrator.cant +49 -0
- package/starter-bundle/agents/code-worker.cant +51 -0
- package/starter-bundle/agents/dev-lead.cant +54 -0
- package/starter-bundle/agents/docs-worker.cant +51 -0
- package/starter-bundle/team.cant +20 -0
package/bin/postinstall.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* @packageDocumentation
|
|
21
21
|
*/
|
|
22
22
|
import { execFileSync } from 'node:child_process';
|
|
23
|
-
import { cpSync, existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
23
|
+
import { cpSync, existsSync, mkdirSync, readdirSync, writeFileSync } from 'node:fs';
|
|
24
24
|
import { homedir } from 'node:os';
|
|
25
25
|
import { dirname, join, resolve } from 'node:path';
|
|
26
26
|
import { fileURLToPath } from 'node:url';
|
|
@@ -155,6 +155,59 @@ function scaffoldDefaultCant(cantDir) {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
// ---------------------------------------------------------------------------
|
|
158
|
+
// Starter bundle deployment
|
|
159
|
+
// ---------------------------------------------------------------------------
|
|
160
|
+
/**
|
|
161
|
+
* Deploy the starter CANT bundle to the global XDG CANT directory.
|
|
162
|
+
*
|
|
163
|
+
* Copies `starter-bundle/` contents (team.cant + agents/*.cant) to
|
|
164
|
+
* `~/.local/share/cleo/cant/starter/`. Only copies files that do not
|
|
165
|
+
* already exist (idempotent). This gives every new `cleoos` session a
|
|
166
|
+
* working multi-agent team topology for the CANT bridge to compile.
|
|
167
|
+
*
|
|
168
|
+
* @param pkgRoot - Absolute path to the installed package root.
|
|
169
|
+
* @param cantDir - Absolute path to the XDG CANT directory.
|
|
170
|
+
*/
|
|
171
|
+
function deployStarterBundle(pkgRoot, cantDir) {
|
|
172
|
+
const bundleSrc = join(pkgRoot, 'starter-bundle');
|
|
173
|
+
if (!existsSync(bundleSrc)) {
|
|
174
|
+
process.stdout.write('CleoOS: skipping starter bundle (source not found)\n');
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const starterDest = join(cantDir, 'starter');
|
|
178
|
+
const agentsDest = join(starterDest, 'agents');
|
|
179
|
+
// Ensure destination directories exist
|
|
180
|
+
ensureDir(starterDest);
|
|
181
|
+
ensureDir(agentsDest);
|
|
182
|
+
// Copy team.cant
|
|
183
|
+
const teamSrc = join(bundleSrc, 'team.cant');
|
|
184
|
+
const teamDest = join(starterDest, 'team.cant');
|
|
185
|
+
if (existsSync(teamSrc) && !existsSync(teamDest)) {
|
|
186
|
+
cpSync(teamSrc, teamDest);
|
|
187
|
+
process.stdout.write(`CleoOS: deployed starter team.cant to ${teamDest}\n`);
|
|
188
|
+
}
|
|
189
|
+
// Copy agent .cant files
|
|
190
|
+
const agentsSrcDir = join(bundleSrc, 'agents');
|
|
191
|
+
if (existsSync(agentsSrcDir)) {
|
|
192
|
+
try {
|
|
193
|
+
const entries = readdirSync(agentsSrcDir);
|
|
194
|
+
for (const entry of entries) {
|
|
195
|
+
if (!entry.endsWith('.cant'))
|
|
196
|
+
continue;
|
|
197
|
+
const src = join(agentsSrcDir, entry);
|
|
198
|
+
const dest = join(agentsDest, entry);
|
|
199
|
+
if (!existsSync(dest)) {
|
|
200
|
+
cpSync(src, dest);
|
|
201
|
+
process.stdout.write(`CleoOS: deployed starter ${entry} to ${dest}\n`);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// Best-effort: non-fatal.
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// ---------------------------------------------------------------------------
|
|
158
211
|
// Skill installation
|
|
159
212
|
// ---------------------------------------------------------------------------
|
|
160
213
|
/**
|
|
@@ -196,11 +249,17 @@ function main() {
|
|
|
196
249
|
ensureDir(dir);
|
|
197
250
|
}
|
|
198
251
|
// 2. Deploy compiled extensions
|
|
252
|
+
// tui-theme is a shared library imported by cleo-cant-bridge and
|
|
253
|
+
// cleo-agent-monitor — it must be present before either extension loads.
|
|
254
|
+
deployExtension('tui-theme', pkgRoot, paths.extensions);
|
|
199
255
|
deployExtension('cleo-cant-bridge', pkgRoot, paths.extensions);
|
|
200
256
|
deployExtension('cleo-chatroom', pkgRoot, paths.extensions);
|
|
257
|
+
deployExtension('cleo-agent-monitor', pkgRoot, paths.extensions);
|
|
201
258
|
// 3. Write default CANT stub (only if file does not exist)
|
|
202
259
|
scaffoldDefaultCant(paths.cant);
|
|
203
|
-
// 4.
|
|
260
|
+
// 4. Deploy starter CANT bundle (team + agents) to global tier
|
|
261
|
+
deployStarterBundle(pkgRoot, paths.cant);
|
|
262
|
+
// 5. Install CleoOS skills (best-effort)
|
|
204
263
|
installSkills();
|
|
205
264
|
process.stdout.write('CleoOS: postinstall complete\n');
|
|
206
265
|
}
|
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,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -28,6 +28,10 @@ function collectExtensionPaths() {
|
|
|
28
28
|
if (existsSync(bridgePath)) {
|
|
29
29
|
extensions.push(bridgePath);
|
|
30
30
|
}
|
|
31
|
+
const monitorPath = join(paths.extensions, 'cleo-agent-monitor.js');
|
|
32
|
+
if (existsSync(monitorPath)) {
|
|
33
|
+
extensions.push(monitorPath);
|
|
34
|
+
}
|
|
31
35
|
return extensions;
|
|
32
36
|
}
|
|
33
37
|
/**
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;GAOG;AACH,SAAS,qBAAqB;IAC5B,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,SAAS,CAAC,QAAkB,EAAE,cAAwB;IAC7D,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,IAAI;IACjB,sEAAsE;IACtE,IAAI,MAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QACzD,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,oDAAoD;YAClD,qDAAqD;YACrD,wBAAwB,CAC3B,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAE9D,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;GAOG;AACH,SAAS,qBAAqB;IAC5B,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,SAAS,CAAC,QAAkB,EAAE,cAAwB;IAC7D,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,IAAI;IACjB,sEAAsE;IACtE,IAAI,MAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QACzD,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,oDAAoD;YAClD,qDAAqD;YACrD,wBAAwB,CAC3B,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAE9D,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/postinstall.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* @packageDocumentation
|
|
21
21
|
*/
|
|
22
22
|
import { execFileSync } from 'node:child_process';
|
|
23
|
-
import { cpSync, existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
23
|
+
import { cpSync, existsSync, mkdirSync, readdirSync, writeFileSync } from 'node:fs';
|
|
24
24
|
import { homedir } from 'node:os';
|
|
25
25
|
import { dirname, join, resolve } from 'node:path';
|
|
26
26
|
import { fileURLToPath } from 'node:url';
|
|
@@ -155,6 +155,59 @@ function scaffoldDefaultCant(cantDir) {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
// ---------------------------------------------------------------------------
|
|
158
|
+
// Starter bundle deployment
|
|
159
|
+
// ---------------------------------------------------------------------------
|
|
160
|
+
/**
|
|
161
|
+
* Deploy the starter CANT bundle to the global XDG CANT directory.
|
|
162
|
+
*
|
|
163
|
+
* Copies `starter-bundle/` contents (team.cant + agents/*.cant) to
|
|
164
|
+
* `~/.local/share/cleo/cant/starter/`. Only copies files that do not
|
|
165
|
+
* already exist (idempotent). This gives every new `cleoos` session a
|
|
166
|
+
* working multi-agent team topology for the CANT bridge to compile.
|
|
167
|
+
*
|
|
168
|
+
* @param pkgRoot - Absolute path to the installed package root.
|
|
169
|
+
* @param cantDir - Absolute path to the XDG CANT directory.
|
|
170
|
+
*/
|
|
171
|
+
function deployStarterBundle(pkgRoot, cantDir) {
|
|
172
|
+
const bundleSrc = join(pkgRoot, 'starter-bundle');
|
|
173
|
+
if (!existsSync(bundleSrc)) {
|
|
174
|
+
process.stdout.write('CleoOS: skipping starter bundle (source not found)\n');
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const starterDest = join(cantDir, 'starter');
|
|
178
|
+
const agentsDest = join(starterDest, 'agents');
|
|
179
|
+
// Ensure destination directories exist
|
|
180
|
+
ensureDir(starterDest);
|
|
181
|
+
ensureDir(agentsDest);
|
|
182
|
+
// Copy team.cant
|
|
183
|
+
const teamSrc = join(bundleSrc, 'team.cant');
|
|
184
|
+
const teamDest = join(starterDest, 'team.cant');
|
|
185
|
+
if (existsSync(teamSrc) && !existsSync(teamDest)) {
|
|
186
|
+
cpSync(teamSrc, teamDest);
|
|
187
|
+
process.stdout.write(`CleoOS: deployed starter team.cant to ${teamDest}\n`);
|
|
188
|
+
}
|
|
189
|
+
// Copy agent .cant files
|
|
190
|
+
const agentsSrcDir = join(bundleSrc, 'agents');
|
|
191
|
+
if (existsSync(agentsSrcDir)) {
|
|
192
|
+
try {
|
|
193
|
+
const entries = readdirSync(agentsSrcDir);
|
|
194
|
+
for (const entry of entries) {
|
|
195
|
+
if (!entry.endsWith('.cant'))
|
|
196
|
+
continue;
|
|
197
|
+
const src = join(agentsSrcDir, entry);
|
|
198
|
+
const dest = join(agentsDest, entry);
|
|
199
|
+
if (!existsSync(dest)) {
|
|
200
|
+
cpSync(src, dest);
|
|
201
|
+
process.stdout.write(`CleoOS: deployed starter ${entry} to ${dest}\n`);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// Best-effort: non-fatal.
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// ---------------------------------------------------------------------------
|
|
158
211
|
// Skill installation
|
|
159
212
|
// ---------------------------------------------------------------------------
|
|
160
213
|
/**
|
|
@@ -196,11 +249,17 @@ function main() {
|
|
|
196
249
|
ensureDir(dir);
|
|
197
250
|
}
|
|
198
251
|
// 2. Deploy compiled extensions
|
|
252
|
+
// tui-theme is a shared library imported by cleo-cant-bridge and
|
|
253
|
+
// cleo-agent-monitor — it must be present before either extension loads.
|
|
254
|
+
deployExtension('tui-theme', pkgRoot, paths.extensions);
|
|
199
255
|
deployExtension('cleo-cant-bridge', pkgRoot, paths.extensions);
|
|
200
256
|
deployExtension('cleo-chatroom', pkgRoot, paths.extensions);
|
|
257
|
+
deployExtension('cleo-agent-monitor', pkgRoot, paths.extensions);
|
|
201
258
|
// 3. Write default CANT stub (only if file does not exist)
|
|
202
259
|
scaffoldDefaultCant(paths.cant);
|
|
203
|
-
// 4.
|
|
260
|
+
// 4. Deploy starter CANT bundle (team + agents) to global tier
|
|
261
|
+
deployStarterBundle(pkgRoot, paths.cant);
|
|
262
|
+
// 5. Install CleoOS skills (best-effort)
|
|
204
263
|
installSkills();
|
|
205
264
|
process.stdout.write('CleoOS: postinstall complete\n');
|
|
206
265
|
}
|
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,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"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"}
|
package/dist/xdg.d.ts
CHANGED
package/dist/xdg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xdg.d.ts","sourceRoot":"","sources":["../src/xdg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"xdg.d.ts","sourceRoot":"","sources":["../src/xdg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAiBhD"}
|
package/dist/xdg.js
CHANGED
package/dist/xdg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xdg.js","sourceRoot":"","sources":["../src/xdg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"xdg.js","sourceRoot":"","sources":["../src/xdg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAoBjC;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE1E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEvC,OAAO;QACL,IAAI;QACJ,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CleoOS agent monitor — agent activity TUI + Circle of Ten status.
|
|
3
|
+
*
|
|
4
|
+
* CANONICAL LOCATION: `packages/cleo-os/extensions/cleo-agent-monitor.ts`
|
|
5
|
+
*
|
|
6
|
+
* Installed to: $XDG_DATA_HOME/cleo/extensions/cleo-agent-monitor.js
|
|
7
|
+
* Loaded by: Pi via `--extension <path>` injected by CleoOS cli.ts
|
|
8
|
+
*
|
|
9
|
+
* T442 deliverables:
|
|
10
|
+
* - `/cleo:agents` command: shows current agent activity in a TUI panel
|
|
11
|
+
* - `before_agent_start` hook: tracks agent spawns with tier-aware prefixes
|
|
12
|
+
* - `/cleo:circle` command: renders Circle of Ten status from CLEO CLI data
|
|
13
|
+
*
|
|
14
|
+
* Requirements:
|
|
15
|
+
* - Pi coding agent runtime (`@mariozechner/pi-coding-agent`)
|
|
16
|
+
* - Optional: `cleo` CLI on PATH for `/cleo:circle` data
|
|
17
|
+
*
|
|
18
|
+
* Guardrails:
|
|
19
|
+
* - Best-effort: if `cleo` CLI is not available, `/cleo:circle` shows
|
|
20
|
+
* static fallback data. NEVER crash Pi.
|
|
21
|
+
* - NO top-level await; all work happens inside event handlers.
|
|
22
|
+
*
|
|
23
|
+
* @packageDocumentation
|
|
24
|
+
*/
|
|
25
|
+
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
26
|
+
/** Tier role of an agent in the 3-tier hierarchy. */
|
|
27
|
+
type AgentTierRole = "orchestrator" | "lead" | "worker";
|
|
28
|
+
/** A tracked agent activity entry. */
|
|
29
|
+
interface AgentActivity {
|
|
30
|
+
/** ISO-8601 timestamp of the activity. */
|
|
31
|
+
timestamp: string;
|
|
32
|
+
/** Agent name. */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Agent tier role. */
|
|
35
|
+
role: AgentTierRole;
|
|
36
|
+
/** Activity description (e.g. "spawned", "completed"). */
|
|
37
|
+
action: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Return the tier prefix for an agent role.
|
|
41
|
+
*
|
|
42
|
+
* Uses design system colors:
|
|
43
|
+
* - `[O]` orchestrator — accent-success (#22c55e)
|
|
44
|
+
* - `[L]` lead — accent-warning (#f59e0b)
|
|
45
|
+
* - `[W]` worker — tier-worker blue (#5fafff)
|
|
46
|
+
*
|
|
47
|
+
* @param role - The agent's tier role.
|
|
48
|
+
* @returns The styled tier prefix string.
|
|
49
|
+
*/
|
|
50
|
+
export declare function tierPrefix(role: AgentTierRole): string;
|
|
51
|
+
/**
|
|
52
|
+
* Format a single agent activity for TUI display.
|
|
53
|
+
*
|
|
54
|
+
* @param activity - The activity to format.
|
|
55
|
+
* @returns A formatted single-line string with ANSI styling.
|
|
56
|
+
*/
|
|
57
|
+
export declare function formatActivity(activity: AgentActivity): string;
|
|
58
|
+
/**
|
|
59
|
+
* Parsed dashboard data from `cleo dash --json`.
|
|
60
|
+
*
|
|
61
|
+
* Each field is optional because the CLI output format may vary or the
|
|
62
|
+
* CLI may not be available. Fields are sourced from the `data` envelope
|
|
63
|
+
* of `cleo dash --json` output.
|
|
64
|
+
*/
|
|
65
|
+
interface DashData {
|
|
66
|
+
/** Number of active tasks (summary.active). */
|
|
67
|
+
activeTasks?: number;
|
|
68
|
+
/** Number of pending tasks (summary.pending). */
|
|
69
|
+
pendingTasks?: number;
|
|
70
|
+
/** Number of completed tasks (summary.done). */
|
|
71
|
+
doneTasks?: number;
|
|
72
|
+
/** Total tasks across all statuses. */
|
|
73
|
+
totalTasks?: number;
|
|
74
|
+
/** Number of blocked tasks (blockedTasks.count). */
|
|
75
|
+
blockedTasks?: number;
|
|
76
|
+
/** Number of high-priority tasks (highPriority.count). */
|
|
77
|
+
highPriorityTasks?: number;
|
|
78
|
+
/** Top labels from the project (topLabels[].label). */
|
|
79
|
+
topLabels?: string[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parsed session data from `cleo session status --json`.
|
|
83
|
+
*
|
|
84
|
+
* Each field is optional; the CLI may not be available or the
|
|
85
|
+
* response format may vary.
|
|
86
|
+
*/
|
|
87
|
+
interface SessionData {
|
|
88
|
+
/** Whether a session is currently active. */
|
|
89
|
+
hasActiveSession?: boolean;
|
|
90
|
+
/** Active session ID. */
|
|
91
|
+
sessionId?: string;
|
|
92
|
+
/** Active session name. */
|
|
93
|
+
sessionName?: string;
|
|
94
|
+
/** Number of tasks completed in the current session. */
|
|
95
|
+
tasksCompleted?: number;
|
|
96
|
+
/** Number of focus changes in the current session. */
|
|
97
|
+
focusChanges?: number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Combined data for Circle of Ten rendering.
|
|
101
|
+
*
|
|
102
|
+
* Merges dashboard data, session data, and any in-memory
|
|
103
|
+
* extension state (e.g. CANT bundle counts from the bridge).
|
|
104
|
+
*/
|
|
105
|
+
interface CircleData {
|
|
106
|
+
dash: DashData;
|
|
107
|
+
session: SessionData;
|
|
108
|
+
/** Number of tools from the CANT bundle (populated by bridge). */
|
|
109
|
+
cantTools?: number;
|
|
110
|
+
/** Number of agents from the CANT bundle (populated by bridge). */
|
|
111
|
+
cantAgents?: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Build the Circle of Ten status display lines.
|
|
115
|
+
*
|
|
116
|
+
* Each Circle aspect is shown with a filled (active) or hollow (inactive)
|
|
117
|
+
* dot and a brief status summary. Data is wired from live CLI sources
|
|
118
|
+
* where available, with explicit "not wired" labels where the data
|
|
119
|
+
* source does not yet exist.
|
|
120
|
+
*
|
|
121
|
+
* Design system colors:
|
|
122
|
+
* - Filled dot: accent-success (#22c55e) for active zones
|
|
123
|
+
* - Warning dot: accent-warning (#f59e0b) for zones with alerts
|
|
124
|
+
* - Error dot: accent-error (#ef4444) for blocked/failed zones
|
|
125
|
+
* - Hollow dot: text-secondary (#94a3b8) for inactive/offline zones
|
|
126
|
+
*
|
|
127
|
+
* @param data - Combined Circle data from CLI sources and extension state.
|
|
128
|
+
* @returns Array of ANSI-styled lines for TUI display.
|
|
129
|
+
*/
|
|
130
|
+
export declare function buildCircleOfTenStatus(data: CircleData): string[];
|
|
131
|
+
/**
|
|
132
|
+
* Pi extension factory for the CleoOS agent monitor.
|
|
133
|
+
*
|
|
134
|
+
* Registers agent activity tracking, the `/cleo:agents` command, and the
|
|
135
|
+
* `/cleo:circle` Circle of Ten status command.
|
|
136
|
+
*
|
|
137
|
+
* @param pi - The Pi extension API instance.
|
|
138
|
+
*/
|
|
139
|
+
export default function (pi: ExtensionAPI): void;
|
|
140
|
+
export {};
|
|
141
|
+
//# sourceMappingURL=cleo-agent-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleo-agent-monitor.d.ts","sourceRoot":"","sources":["cleo-agent-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,+BAA+B,CAAC;AAmCvC,qDAAqD;AACrD,KAAK,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExD,sCAAsC;AACtC,UAAU,aAAa;IACrB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAStD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAI9D;AAuCD;;;;;;GAMG;AACH,UAAU,QAAQ;IAChB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;GAKG;AACH,UAAU,WAAW;IACnB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CA6FjE;AAMD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CAiK/C"}
|