cnagent 2.2.19 → 2.2.21
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/package.json +1 -1
- package/tools/dist/cn.js +219 -213
package/package.json
CHANGED
package/tools/dist/cn.js
CHANGED
|
@@ -13667,7 +13667,7 @@ var require_cn_lib = __commonJS({
|
|
|
13667
13667
|
);
|
|
13668
13668
|
}
|
|
13669
13669
|
var help_text = "cn - Coherent Network agent CLI\n\nUsage: cn <command> [options]\n\nCommands:\n # Agent decisions (output)\n delete <thread> GTD: discard\n defer <thread> GTD: postpone\n delegate <t> <peer> GTD: forward\n do <thread> GTD: claim/start\n done <thread> GTD: complete \xE2\x86\x92 archive\n reply <thread> <msg> Append to thread\n send <peer> <msg> Message to peer (or self)\n \n # cn operations (orchestrator)\n sync Fetch inbound + send outbound\n in Queue inbox \xE2\x86\x92 input.md \xE2\x86\x92 wake agent (alias: inbound, process)\n queue [list|clear] View or clear the task queue\n mca [list|add <desc>] Surface MCAs for community pickup\n inbox List inbox threads\n outbox List outbox threads\n next Get next inbox item (with cadence)\n read <thread> Read thread with cadence\n \n # Thread creation\n adhoc <title> Create adhoc thread\n daily Create/show daily reflection\n weekly Create/show weekly reflection\n \n # Hub management\n init [name] Create new hub\n setup System setup (logrotate + cron) \xE2\x80\x94 run with sudo\n status Show hub state\n commit [msg] Stage + commit\n push Push to origin\n save [msg] Commit + push\n peer Manage peers\n doctor Health check\n update Update cn to latest version\n\nAliases:\n i = inbox, o = outbox, s = status, d = doctor\n\nFlags:\n --help, -h Show help\n --version, -V Show version\n --json Machine-readable output\n --quiet, -q Minimal output\n --dry-run Show what would happen\n\nActor Model:\n cn runs on cron (every 5 min). It:\n 1. Syncs peers \xE2\x86\x92 queues new inbox items to state/queue/\n 2. If input.md empty \xE2\x86\x92 pops from queue \xE2\x86\x92 writes input.md \xE2\x86\x92 wakes agent\n Agent reads input.md, processes, deletes when done.\n";
|
|
13670
|
-
var version = "2.2.
|
|
13670
|
+
var version = "2.2.21";
|
|
13671
13671
|
module2.exports = {
|
|
13672
13672
|
starts_with,
|
|
13673
13673
|
strip_prefix,
|
|
@@ -33183,11 +33183,228 @@ function wake_agent(hub_path) {
|
|
|
33183
33183
|
}
|
|
33184
33184
|
console.log(warn("No input.md to wake with"));
|
|
33185
33185
|
}
|
|
33186
|
+
function update_runtime(hub_path) {
|
|
33187
|
+
const runtime_path = Path.join(hub_path, "state/runtime.md");
|
|
33188
|
+
const v = exec("cn --version 2>/dev/null");
|
|
33189
|
+
let cn_ver;
|
|
33190
|
+
if (v !== void 0) {
|
|
33191
|
+
const s = Stdlib__String.trim(v);
|
|
33192
|
+
const match2 = Stdlib__String.split_on_char(
|
|
33193
|
+
/* ' ' */
|
|
33194
|
+
32,
|
|
33195
|
+
s
|
|
33196
|
+
);
|
|
33197
|
+
if (match2) {
|
|
33198
|
+
const match$1 = match2.tl;
|
|
33199
|
+
cn_ver = match$1 ? match$1.hd : "unknown";
|
|
33200
|
+
} else {
|
|
33201
|
+
cn_ver = "unknown";
|
|
33202
|
+
}
|
|
33203
|
+
} else {
|
|
33204
|
+
cn_ver = "unknown";
|
|
33205
|
+
}
|
|
33206
|
+
const v$1 = exec("openclaw --version 2>/dev/null");
|
|
33207
|
+
const oc_ver = v$1 !== void 0 ? Stdlib__String.trim(v$1) : "unknown";
|
|
33208
|
+
const hub_name = Cn_lib.derive_name(hub_path);
|
|
33209
|
+
const c = exec_in(hub_path, "git rev-parse --short HEAD 2>/dev/null");
|
|
33210
|
+
const hub_commit = c !== void 0 ? Stdlib__String.trim(c) : "unknown";
|
|
33211
|
+
const c$1 = exec("git -C $(npm root -g)/cnagent rev-parse --short HEAD 2>/dev/null");
|
|
33212
|
+
const cn_commit = c$1 !== void 0 ? Stdlib__String.trim(c$1) : "unknown";
|
|
33213
|
+
const peers_path = Path.join(hub_path, "state/peers.md");
|
|
33214
|
+
let peer_count;
|
|
33215
|
+
if (Fs.existsSync(peers_path)) {
|
|
33216
|
+
const content = Fs.readFileSync(peers_path, "utf8");
|
|
33217
|
+
const lines = Stdlib__String.split_on_char(
|
|
33218
|
+
/* '\n' */
|
|
33219
|
+
10,
|
|
33220
|
+
content
|
|
33221
|
+
);
|
|
33222
|
+
peer_count = Stdlib__List.length(Stdlib__List.filter((function(l) {
|
|
33223
|
+
if (l.length > 2) {
|
|
33224
|
+
return Stdlib__String.sub(l, 0, 2) === "- ";
|
|
33225
|
+
} else {
|
|
33226
|
+
return false;
|
|
33227
|
+
}
|
|
33228
|
+
}), lines));
|
|
33229
|
+
} else {
|
|
33230
|
+
peer_count = 0;
|
|
33231
|
+
}
|
|
33232
|
+
const content$1 = Curry._8(Stdlib__Printf.sprintf({
|
|
33233
|
+
TAG: (
|
|
33234
|
+
/* Format */
|
|
33235
|
+
0
|
|
33236
|
+
),
|
|
33237
|
+
_0: {
|
|
33238
|
+
TAG: (
|
|
33239
|
+
/* String_literal */
|
|
33240
|
+
11
|
|
33241
|
+
),
|
|
33242
|
+
_0: "# Runtime State\n\nAuto-generated by cn. Do not edit manually.\n\n```yaml\nlast_sync: ",
|
|
33243
|
+
_1: {
|
|
33244
|
+
TAG: (
|
|
33245
|
+
/* String */
|
|
33246
|
+
2
|
|
33247
|
+
),
|
|
33248
|
+
_0: (
|
|
33249
|
+
/* No_padding */
|
|
33250
|
+
0
|
|
33251
|
+
),
|
|
33252
|
+
_1: {
|
|
33253
|
+
TAG: (
|
|
33254
|
+
/* String_literal */
|
|
33255
|
+
11
|
|
33256
|
+
),
|
|
33257
|
+
_0: "\ncn_version: ",
|
|
33258
|
+
_1: {
|
|
33259
|
+
TAG: (
|
|
33260
|
+
/* String */
|
|
33261
|
+
2
|
|
33262
|
+
),
|
|
33263
|
+
_0: (
|
|
33264
|
+
/* No_padding */
|
|
33265
|
+
0
|
|
33266
|
+
),
|
|
33267
|
+
_1: {
|
|
33268
|
+
TAG: (
|
|
33269
|
+
/* String_literal */
|
|
33270
|
+
11
|
|
33271
|
+
),
|
|
33272
|
+
_0: "\ncn_commit: ",
|
|
33273
|
+
_1: {
|
|
33274
|
+
TAG: (
|
|
33275
|
+
/* String */
|
|
33276
|
+
2
|
|
33277
|
+
),
|
|
33278
|
+
_0: (
|
|
33279
|
+
/* No_padding */
|
|
33280
|
+
0
|
|
33281
|
+
),
|
|
33282
|
+
_1: {
|
|
33283
|
+
TAG: (
|
|
33284
|
+
/* String_literal */
|
|
33285
|
+
11
|
|
33286
|
+
),
|
|
33287
|
+
_0: "\ntemplate_version: ",
|
|
33288
|
+
_1: {
|
|
33289
|
+
TAG: (
|
|
33290
|
+
/* String */
|
|
33291
|
+
2
|
|
33292
|
+
),
|
|
33293
|
+
_0: (
|
|
33294
|
+
/* No_padding */
|
|
33295
|
+
0
|
|
33296
|
+
),
|
|
33297
|
+
_1: {
|
|
33298
|
+
TAG: (
|
|
33299
|
+
/* String_literal */
|
|
33300
|
+
11
|
|
33301
|
+
),
|
|
33302
|
+
_0: "\nopenclaw_version: ",
|
|
33303
|
+
_1: {
|
|
33304
|
+
TAG: (
|
|
33305
|
+
/* String */
|
|
33306
|
+
2
|
|
33307
|
+
),
|
|
33308
|
+
_0: (
|
|
33309
|
+
/* No_padding */
|
|
33310
|
+
0
|
|
33311
|
+
),
|
|
33312
|
+
_1: {
|
|
33313
|
+
TAG: (
|
|
33314
|
+
/* String_literal */
|
|
33315
|
+
11
|
|
33316
|
+
),
|
|
33317
|
+
_0: "\nhub_name: ",
|
|
33318
|
+
_1: {
|
|
33319
|
+
TAG: (
|
|
33320
|
+
/* String */
|
|
33321
|
+
2
|
|
33322
|
+
),
|
|
33323
|
+
_0: (
|
|
33324
|
+
/* No_padding */
|
|
33325
|
+
0
|
|
33326
|
+
),
|
|
33327
|
+
_1: {
|
|
33328
|
+
TAG: (
|
|
33329
|
+
/* String_literal */
|
|
33330
|
+
11
|
|
33331
|
+
),
|
|
33332
|
+
_0: "\nhub_commit: ",
|
|
33333
|
+
_1: {
|
|
33334
|
+
TAG: (
|
|
33335
|
+
/* String */
|
|
33336
|
+
2
|
|
33337
|
+
),
|
|
33338
|
+
_0: (
|
|
33339
|
+
/* No_padding */
|
|
33340
|
+
0
|
|
33341
|
+
),
|
|
33342
|
+
_1: {
|
|
33343
|
+
TAG: (
|
|
33344
|
+
/* String_literal */
|
|
33345
|
+
11
|
|
33346
|
+
),
|
|
33347
|
+
_0: "\npeer_count: ",
|
|
33348
|
+
_1: {
|
|
33349
|
+
TAG: (
|
|
33350
|
+
/* Int */
|
|
33351
|
+
4
|
|
33352
|
+
),
|
|
33353
|
+
_0: (
|
|
33354
|
+
/* Int_d */
|
|
33355
|
+
0
|
|
33356
|
+
),
|
|
33357
|
+
_1: (
|
|
33358
|
+
/* No_padding */
|
|
33359
|
+
0
|
|
33360
|
+
),
|
|
33361
|
+
_2: (
|
|
33362
|
+
/* No_precision */
|
|
33363
|
+
0
|
|
33364
|
+
),
|
|
33365
|
+
_3: {
|
|
33366
|
+
TAG: (
|
|
33367
|
+
/* String_literal */
|
|
33368
|
+
11
|
|
33369
|
+
),
|
|
33370
|
+
_0: "\n```\n",
|
|
33371
|
+
_1: (
|
|
33372
|
+
/* End_of_format */
|
|
33373
|
+
0
|
|
33374
|
+
)
|
|
33375
|
+
}
|
|
33376
|
+
}
|
|
33377
|
+
}
|
|
33378
|
+
}
|
|
33379
|
+
}
|
|
33380
|
+
}
|
|
33381
|
+
}
|
|
33382
|
+
}
|
|
33383
|
+
}
|
|
33384
|
+
}
|
|
33385
|
+
}
|
|
33386
|
+
}
|
|
33387
|
+
}
|
|
33388
|
+
}
|
|
33389
|
+
}
|
|
33390
|
+
}
|
|
33391
|
+
},
|
|
33392
|
+
_1: "# Runtime State\n\nAuto-generated by cn. Do not edit manually.\n\n```yaml\nlast_sync: %s\ncn_version: %s\ncn_commit: %s\ntemplate_version: %s\nopenclaw_version: %s\nhub_name: %s\nhub_commit: %s\npeer_count: %d\n```\n"
|
|
33393
|
+
}), (/* @__PURE__ */ new Date()).toISOString(), cn_ver, cn_commit, cn_ver, oc_ver, hub_name, hub_commit, peer_count);
|
|
33394
|
+
Fs.writeFileSync(runtime_path, content$1);
|
|
33395
|
+
console.log(ok("Updated state/runtime.md"));
|
|
33396
|
+
}
|
|
33186
33397
|
function run_sync(hub_path, name) {
|
|
33187
33398
|
console.log(color("36", "Syncing..."));
|
|
33188
33399
|
inbox_check(hub_path, name);
|
|
33189
33400
|
inbox_process(hub_path);
|
|
33190
33401
|
outbox_flush(hub_path, name);
|
|
33402
|
+
update_runtime(hub_path);
|
|
33403
|
+
exec_in(hub_path, "git add state/runtime.md");
|
|
33404
|
+
const commit_result = exec_in(hub_path, "git commit -m 'heartbeat' --allow-empty");
|
|
33405
|
+
if (commit_result !== void 0) {
|
|
33406
|
+
exec_in(hub_path, "git push origin 2>/dev/null");
|
|
33407
|
+
}
|
|
33191
33408
|
console.log(ok("Sync complete"));
|
|
33192
33409
|
}
|
|
33193
33410
|
function run_queue_list(hub_path) {
|
|
@@ -36211,217 +36428,6 @@ function run_inbound(hub_path, name) {
|
|
|
36211
36428
|
return;
|
|
36212
36429
|
}
|
|
36213
36430
|
}
|
|
36214
|
-
function update_runtime(hub_path) {
|
|
36215
|
-
const runtime_path = Path.join(hub_path, "state/runtime.md");
|
|
36216
|
-
const v = exec("cn --version 2>/dev/null");
|
|
36217
|
-
let cn_ver;
|
|
36218
|
-
if (v !== void 0) {
|
|
36219
|
-
const s = Stdlib__String.trim(v);
|
|
36220
|
-
const match2 = Stdlib__String.split_on_char(
|
|
36221
|
-
/* ' ' */
|
|
36222
|
-
32,
|
|
36223
|
-
s
|
|
36224
|
-
);
|
|
36225
|
-
if (match2) {
|
|
36226
|
-
const match$1 = match2.tl;
|
|
36227
|
-
cn_ver = match$1 ? match$1.hd : "unknown";
|
|
36228
|
-
} else {
|
|
36229
|
-
cn_ver = "unknown";
|
|
36230
|
-
}
|
|
36231
|
-
} else {
|
|
36232
|
-
cn_ver = "unknown";
|
|
36233
|
-
}
|
|
36234
|
-
const v$1 = exec("openclaw --version 2>/dev/null");
|
|
36235
|
-
const oc_ver = v$1 !== void 0 ? Stdlib__String.trim(v$1) : "unknown";
|
|
36236
|
-
const hub_name = Cn_lib.derive_name(hub_path);
|
|
36237
|
-
const c = exec_in(hub_path, "git rev-parse --short HEAD 2>/dev/null");
|
|
36238
|
-
const hub_commit = c !== void 0 ? Stdlib__String.trim(c) : "unknown";
|
|
36239
|
-
const c$1 = exec("git -C $(npm root -g)/cnagent rev-parse --short HEAD 2>/dev/null");
|
|
36240
|
-
const cn_commit = c$1 !== void 0 ? Stdlib__String.trim(c$1) : "unknown";
|
|
36241
|
-
const peers_path = Path.join(hub_path, "state/peers.md");
|
|
36242
|
-
let peer_count;
|
|
36243
|
-
if (Fs.existsSync(peers_path)) {
|
|
36244
|
-
const content = Fs.readFileSync(peers_path, "utf8");
|
|
36245
|
-
const lines = Stdlib__String.split_on_char(
|
|
36246
|
-
/* '\n' */
|
|
36247
|
-
10,
|
|
36248
|
-
content
|
|
36249
|
-
);
|
|
36250
|
-
peer_count = Stdlib__List.length(Stdlib__List.filter((function(l) {
|
|
36251
|
-
if (l.length > 2) {
|
|
36252
|
-
return Stdlib__String.sub(l, 0, 2) === "- ";
|
|
36253
|
-
} else {
|
|
36254
|
-
return false;
|
|
36255
|
-
}
|
|
36256
|
-
}), lines));
|
|
36257
|
-
} else {
|
|
36258
|
-
peer_count = 0;
|
|
36259
|
-
}
|
|
36260
|
-
const content$1 = Curry._8(Stdlib__Printf.sprintf({
|
|
36261
|
-
TAG: (
|
|
36262
|
-
/* Format */
|
|
36263
|
-
0
|
|
36264
|
-
),
|
|
36265
|
-
_0: {
|
|
36266
|
-
TAG: (
|
|
36267
|
-
/* String_literal */
|
|
36268
|
-
11
|
|
36269
|
-
),
|
|
36270
|
-
_0: "# Runtime State\n\nAuto-generated by `cn update`. Do not edit manually.\n\n```yaml\nsession_start: ",
|
|
36271
|
-
_1: {
|
|
36272
|
-
TAG: (
|
|
36273
|
-
/* String */
|
|
36274
|
-
2
|
|
36275
|
-
),
|
|
36276
|
-
_0: (
|
|
36277
|
-
/* No_padding */
|
|
36278
|
-
0
|
|
36279
|
-
),
|
|
36280
|
-
_1: {
|
|
36281
|
-
TAG: (
|
|
36282
|
-
/* String_literal */
|
|
36283
|
-
11
|
|
36284
|
-
),
|
|
36285
|
-
_0: "\ncn_version: ",
|
|
36286
|
-
_1: {
|
|
36287
|
-
TAG: (
|
|
36288
|
-
/* String */
|
|
36289
|
-
2
|
|
36290
|
-
),
|
|
36291
|
-
_0: (
|
|
36292
|
-
/* No_padding */
|
|
36293
|
-
0
|
|
36294
|
-
),
|
|
36295
|
-
_1: {
|
|
36296
|
-
TAG: (
|
|
36297
|
-
/* String_literal */
|
|
36298
|
-
11
|
|
36299
|
-
),
|
|
36300
|
-
_0: "\ncn_commit: ",
|
|
36301
|
-
_1: {
|
|
36302
|
-
TAG: (
|
|
36303
|
-
/* String */
|
|
36304
|
-
2
|
|
36305
|
-
),
|
|
36306
|
-
_0: (
|
|
36307
|
-
/* No_padding */
|
|
36308
|
-
0
|
|
36309
|
-
),
|
|
36310
|
-
_1: {
|
|
36311
|
-
TAG: (
|
|
36312
|
-
/* String_literal */
|
|
36313
|
-
11
|
|
36314
|
-
),
|
|
36315
|
-
_0: "\ntemplate_version: ",
|
|
36316
|
-
_1: {
|
|
36317
|
-
TAG: (
|
|
36318
|
-
/* String */
|
|
36319
|
-
2
|
|
36320
|
-
),
|
|
36321
|
-
_0: (
|
|
36322
|
-
/* No_padding */
|
|
36323
|
-
0
|
|
36324
|
-
),
|
|
36325
|
-
_1: {
|
|
36326
|
-
TAG: (
|
|
36327
|
-
/* String_literal */
|
|
36328
|
-
11
|
|
36329
|
-
),
|
|
36330
|
-
_0: "\nopenclaw_version: ",
|
|
36331
|
-
_1: {
|
|
36332
|
-
TAG: (
|
|
36333
|
-
/* String */
|
|
36334
|
-
2
|
|
36335
|
-
),
|
|
36336
|
-
_0: (
|
|
36337
|
-
/* No_padding */
|
|
36338
|
-
0
|
|
36339
|
-
),
|
|
36340
|
-
_1: {
|
|
36341
|
-
TAG: (
|
|
36342
|
-
/* String_literal */
|
|
36343
|
-
11
|
|
36344
|
-
),
|
|
36345
|
-
_0: "\nhub_name: ",
|
|
36346
|
-
_1: {
|
|
36347
|
-
TAG: (
|
|
36348
|
-
/* String */
|
|
36349
|
-
2
|
|
36350
|
-
),
|
|
36351
|
-
_0: (
|
|
36352
|
-
/* No_padding */
|
|
36353
|
-
0
|
|
36354
|
-
),
|
|
36355
|
-
_1: {
|
|
36356
|
-
TAG: (
|
|
36357
|
-
/* String_literal */
|
|
36358
|
-
11
|
|
36359
|
-
),
|
|
36360
|
-
_0: "\nhub_commit: ",
|
|
36361
|
-
_1: {
|
|
36362
|
-
TAG: (
|
|
36363
|
-
/* String */
|
|
36364
|
-
2
|
|
36365
|
-
),
|
|
36366
|
-
_0: (
|
|
36367
|
-
/* No_padding */
|
|
36368
|
-
0
|
|
36369
|
-
),
|
|
36370
|
-
_1: {
|
|
36371
|
-
TAG: (
|
|
36372
|
-
/* String_literal */
|
|
36373
|
-
11
|
|
36374
|
-
),
|
|
36375
|
-
_0: "\npeer_count: ",
|
|
36376
|
-
_1: {
|
|
36377
|
-
TAG: (
|
|
36378
|
-
/* Int */
|
|
36379
|
-
4
|
|
36380
|
-
),
|
|
36381
|
-
_0: (
|
|
36382
|
-
/* Int_d */
|
|
36383
|
-
0
|
|
36384
|
-
),
|
|
36385
|
-
_1: (
|
|
36386
|
-
/* No_padding */
|
|
36387
|
-
0
|
|
36388
|
-
),
|
|
36389
|
-
_2: (
|
|
36390
|
-
/* No_precision */
|
|
36391
|
-
0
|
|
36392
|
-
),
|
|
36393
|
-
_3: {
|
|
36394
|
-
TAG: (
|
|
36395
|
-
/* String_literal */
|
|
36396
|
-
11
|
|
36397
|
-
),
|
|
36398
|
-
_0: "\n```\n",
|
|
36399
|
-
_1: (
|
|
36400
|
-
/* End_of_format */
|
|
36401
|
-
0
|
|
36402
|
-
)
|
|
36403
|
-
}
|
|
36404
|
-
}
|
|
36405
|
-
}
|
|
36406
|
-
}
|
|
36407
|
-
}
|
|
36408
|
-
}
|
|
36409
|
-
}
|
|
36410
|
-
}
|
|
36411
|
-
}
|
|
36412
|
-
}
|
|
36413
|
-
}
|
|
36414
|
-
}
|
|
36415
|
-
}
|
|
36416
|
-
}
|
|
36417
|
-
}
|
|
36418
|
-
}
|
|
36419
|
-
},
|
|
36420
|
-
_1: "# Runtime State\n\nAuto-generated by `cn update`. Do not edit manually.\n\n```yaml\nsession_start: %s\ncn_version: %s\ncn_commit: %s\ntemplate_version: %s\nopenclaw_version: %s\nhub_name: %s\nhub_commit: %s\npeer_count: %d\n```\n"
|
|
36421
|
-
}), (/* @__PURE__ */ new Date()).toISOString(), cn_ver, cn_commit, cn_ver, oc_ver, hub_name, hub_commit, peer_count);
|
|
36422
|
-
Fs.writeFileSync(runtime_path, content$1);
|
|
36423
|
-
console.log(ok("Updated state/runtime.md"));
|
|
36424
|
-
}
|
|
36425
36431
|
function run_init(name) {
|
|
36426
36432
|
const hub_name = name !== void 0 ? name : Path.basename(process.cwd());
|
|
36427
36433
|
const hub_dir = "cn-" + hub_name;
|
|
@@ -38508,6 +38514,7 @@ module.exports = {
|
|
|
38508
38514
|
feed_next_input,
|
|
38509
38515
|
shell_escape,
|
|
38510
38516
|
wake_agent,
|
|
38517
|
+
update_runtime,
|
|
38511
38518
|
run_sync,
|
|
38512
38519
|
run_queue_list,
|
|
38513
38520
|
run_queue_clear,
|
|
@@ -38525,7 +38532,6 @@ module.exports = {
|
|
|
38525
38532
|
queue_mca_review,
|
|
38526
38533
|
auto_save,
|
|
38527
38534
|
run_inbound,
|
|
38528
|
-
update_runtime,
|
|
38529
38535
|
run_init,
|
|
38530
38536
|
format_peers_md,
|
|
38531
38537
|
run_peer_list,
|