agentspeak-cli 0.14.0 → 0.15.0
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/commands/friends.d.ts +10 -0
- package/dist/commands/friends.d.ts.map +1 -0
- package/dist/commands/friends.js +153 -0
- package/dist/commands/friends.js.map +1 -0
- package/dist/commands/invite.d.ts +20 -0
- package/dist/commands/invite.d.ts.map +1 -0
- package/dist/commands/invite.js +184 -0
- package/dist/commands/invite.js.map +1 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +2 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +2 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/watch.d.ts +9 -0
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +44 -0
- package/dist/commands/watch.js.map +1 -1
- package/dist/friends.d.ts +80 -0
- package/dist/friends.d.ts.map +1 -0
- package/dist/friends.js +124 -0
- package/dist/friends.js.map +1 -0
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/pending-invites.d.ts +56 -0
- package/dist/pending-invites.d.ts.map +1 -0
- package/dist/pending-invites.js +91 -0
- package/dist/pending-invites.js.map +1 -0
- package/dist/skill-template.d.ts +1 -1
- package/dist/skill-template.js +1 -1
- package/dist/version.d.ts +14 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +14 -0
- package/dist/version.js.map +1 -0
- package/dist/watch-daemon.d.ts +15 -0
- package/dist/watch-daemon.d.ts.map +1 -1
- package/dist/watch-daemon.js +99 -29
- package/dist/watch-daemon.js.map +1 -1
- package/package.json +1 -1
package/dist/version.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the CLI's semver string.
|
|
3
|
+
*
|
|
4
|
+
* Kept in its own module (rather than re-exported from index.ts) so
|
|
5
|
+
* sub-modules like `watch-daemon.ts` can import it without pulling the
|
|
6
|
+
* whole argv dispatcher into their graph.
|
|
7
|
+
*
|
|
8
|
+
* Must be kept in sync with `package.json > version` at release time.
|
|
9
|
+
* `npm run build` does not auto-derive this — a stale constant will
|
|
10
|
+
* cause the version-stamped watch-daemon restart check to misfire, so
|
|
11
|
+
* release hygiene: bump both files in the same commit.
|
|
12
|
+
*/
|
|
13
|
+
export const CLI_VERSION = '0.15.0';
|
|
14
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC"}
|
package/dist/watch-daemon.d.ts
CHANGED
|
@@ -34,7 +34,15 @@ export interface EnsureWatchResult {
|
|
|
34
34
|
started: boolean;
|
|
35
35
|
/** True iff an existing live daemon was reused. */
|
|
36
36
|
reused: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* True iff an existing daemon was killed and replaced because its
|
|
39
|
+
* stamped CLI version did not match the current one (e.g. the caller
|
|
40
|
+
* is `tutorial` running 0.14.1 but the daemon was spawned by 0.13.0).
|
|
41
|
+
*/
|
|
42
|
+
restartedForVersionMismatch: boolean;
|
|
37
43
|
pid: number | null;
|
|
44
|
+
/** CLI version that spawned the CURRENT daemon (null for legacy pid files). */
|
|
45
|
+
previousCliVersion?: string | null;
|
|
38
46
|
pidPath: string;
|
|
39
47
|
logPath: string;
|
|
40
48
|
/** Populated only when reused=false && started=false (i.e. skipped). */
|
|
@@ -53,6 +61,11 @@ export declare function ensureWatchRunning(opts?: {
|
|
|
53
61
|
cliEntry?: string;
|
|
54
62
|
nodeBinary?: string;
|
|
55
63
|
extraArgs?: string[];
|
|
64
|
+
/**
|
|
65
|
+
* CLI version to stamp into the pid file. Defaults to the compiled-in
|
|
66
|
+
* `CLI_VERSION`. Tests override this to simulate upgrade scenarios.
|
|
67
|
+
*/
|
|
68
|
+
cliVersion?: string;
|
|
56
69
|
}): EnsureWatchResult;
|
|
57
70
|
export interface StopWatchResult {
|
|
58
71
|
stopped: boolean;
|
|
@@ -67,10 +80,12 @@ export declare function stopWatch(): StopWatchResult;
|
|
|
67
80
|
/**
|
|
68
81
|
* Report whether a daemon is currently running, for `watch status` /
|
|
69
82
|
* doctor-style introspection. Returns null when no pid file exists.
|
|
83
|
+
* `cliVersion` is null for legacy pid files written by CLI <= 0.14.0.
|
|
70
84
|
*/
|
|
71
85
|
export declare function watchStatus(): {
|
|
72
86
|
pid: number;
|
|
73
87
|
alive: boolean;
|
|
88
|
+
cliVersion: string | null;
|
|
74
89
|
} | null;
|
|
75
90
|
/**
|
|
76
91
|
* Ensure the agent's wake_config advertises pull mode (when unset)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-daemon.d.ts","sourceRoot":"","sources":["../src/watch-daemon.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-daemon.d.ts","sourceRoot":"","sources":["../src/watch-daemon.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAItE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,IAAI,gBAAgB,CAMnD;AAED,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAE;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,iBAAiB,CAoHzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,eAAe,CAqB3C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAK/F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,EACvD,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,IAAI,CAAC,CAuEf"}
|
package/dist/watch-daemon.js
CHANGED
|
@@ -4,6 +4,7 @@ import { dirname, join } from 'node:path';
|
|
|
4
4
|
import { api, ApiError } from './api.js';
|
|
5
5
|
import { detectRuntime } from './skill-template.js';
|
|
6
6
|
import { home } from './state.js';
|
|
7
|
+
import { CLI_VERSION } from './version.js';
|
|
7
8
|
export function watchDaemonPaths() {
|
|
8
9
|
const dir = home();
|
|
9
10
|
return {
|
|
@@ -29,19 +30,51 @@ function pidIsAlive(pid) {
|
|
|
29
30
|
return false;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Parse the watch pid file. Supports two on-disk formats:
|
|
35
|
+
*
|
|
36
|
+
* 1. Current (CLI >= 0.14.1): JSON `{ "pid": 1234, "cliVersion": "0.14.1" }`.
|
|
37
|
+
* Version-stamp lets us detect when the running daemon was spawned
|
|
38
|
+
* by an older CLI and restart it on upgrade.
|
|
39
|
+
* 2. Legacy (CLI <= 0.14.0): bare integer on one line.
|
|
40
|
+
* Returns `cliVersion: null` so the caller treats it as
|
|
41
|
+
* "unknown / assume stale" and triggers a restart.
|
|
42
|
+
*
|
|
43
|
+
* Returns null when the file is missing or unparseable (both cases are
|
|
44
|
+
* indistinguishable from "no daemon" downstream).
|
|
45
|
+
*/
|
|
46
|
+
function readPidFile(pidPath) {
|
|
33
47
|
if (!existsSync(pidPath))
|
|
34
48
|
return null;
|
|
49
|
+
let raw;
|
|
35
50
|
try {
|
|
36
|
-
|
|
37
|
-
const pid = Number.parseInt(raw, 10);
|
|
38
|
-
if (!Number.isFinite(pid) || pid <= 0)
|
|
39
|
-
return null;
|
|
40
|
-
return pid;
|
|
51
|
+
raw = readFileSync(pidPath, 'utf8').trim();
|
|
41
52
|
}
|
|
42
53
|
catch {
|
|
43
54
|
return null;
|
|
44
55
|
}
|
|
56
|
+
if (!raw)
|
|
57
|
+
return null;
|
|
58
|
+
if (raw.startsWith('{')) {
|
|
59
|
+
try {
|
|
60
|
+
const parsed = JSON.parse(raw);
|
|
61
|
+
const pid = typeof parsed.pid === 'number' ? parsed.pid : Number.NaN;
|
|
62
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
63
|
+
return null;
|
|
64
|
+
const cliVersion = typeof parsed.cliVersion === 'string' ? parsed.cliVersion : null;
|
|
65
|
+
return { pid, cliVersion };
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const pid = Number.parseInt(raw, 10);
|
|
72
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
73
|
+
return null;
|
|
74
|
+
return { pid, cliVersion: null };
|
|
75
|
+
}
|
|
76
|
+
function writePidFile(pidPath, record) {
|
|
77
|
+
writeFileSync(pidPath, JSON.stringify(record) + '\n', { encoding: 'utf8' });
|
|
45
78
|
}
|
|
46
79
|
/**
|
|
47
80
|
* Start `agentspeak-cli watch --ack --json` in the background if it
|
|
@@ -55,17 +88,39 @@ function readExistingPid(pidPath) {
|
|
|
55
88
|
export function ensureWatchRunning(opts = {}) {
|
|
56
89
|
const { pidPath, logPath } = watchDaemonPaths();
|
|
57
90
|
mkdirSync(dirname(pidPath), { recursive: true });
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
91
|
+
const expectedVersion = opts.cliVersion ?? CLI_VERSION;
|
|
92
|
+
const existing = readPidFile(pidPath);
|
|
93
|
+
let restartedForVersionMismatch = false;
|
|
94
|
+
let previousCliVersion;
|
|
95
|
+
if (existing && pidIsAlive(existing.pid)) {
|
|
96
|
+
// Version-stamped restart: upgrading the CLI via `npx -y
|
|
97
|
+
// agentspeak-cli@latest tutorial` only fixes future behavior if the
|
|
98
|
+
// long-lived daemon is also restarted. If the stamp matches, reuse.
|
|
99
|
+
// If it differs (or the pid file is the legacy bare-int format with
|
|
100
|
+
// unknown version), kill the old process and spawn a fresh one.
|
|
101
|
+
if (existing.cliVersion === expectedVersion) {
|
|
102
|
+
return {
|
|
103
|
+
started: false,
|
|
104
|
+
reused: true,
|
|
105
|
+
restartedForVersionMismatch: false,
|
|
106
|
+
pid: existing.pid,
|
|
107
|
+
previousCliVersion: existing.cliVersion,
|
|
108
|
+
pidPath,
|
|
109
|
+
logPath,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
previousCliVersion = existing.cliVersion;
|
|
113
|
+
try {
|
|
114
|
+
process.kill(existing.pid, 'SIGTERM');
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// If we can't signal (EPERM, ESRCH racing), fall through and let
|
|
118
|
+
// the pid-file unlink + respawn happen anyway. Duplicate daemons
|
|
119
|
+
// are harmless because ack is idempotent server-side.
|
|
120
|
+
}
|
|
121
|
+
restartedForVersionMismatch = true;
|
|
67
122
|
}
|
|
68
|
-
if (
|
|
123
|
+
if (existing) {
|
|
69
124
|
try {
|
|
70
125
|
unlinkSync(pidPath);
|
|
71
126
|
}
|
|
@@ -77,7 +132,9 @@ export function ensureWatchRunning(opts = {}) {
|
|
|
77
132
|
return {
|
|
78
133
|
started: false,
|
|
79
134
|
reused: false,
|
|
135
|
+
restartedForVersionMismatch,
|
|
80
136
|
pid: null,
|
|
137
|
+
previousCliVersion,
|
|
81
138
|
pidPath,
|
|
82
139
|
logPath,
|
|
83
140
|
reason: 'no_cli_entry',
|
|
@@ -111,14 +168,16 @@ export function ensureWatchRunning(opts = {}) {
|
|
|
111
168
|
return {
|
|
112
169
|
started: false,
|
|
113
170
|
reused: false,
|
|
171
|
+
restartedForVersionMismatch,
|
|
114
172
|
pid: null,
|
|
173
|
+
previousCliVersion,
|
|
115
174
|
pidPath,
|
|
116
175
|
logPath,
|
|
117
176
|
reason: 'spawn_failed',
|
|
118
177
|
};
|
|
119
178
|
}
|
|
120
179
|
try {
|
|
121
|
-
|
|
180
|
+
writePidFile(pidPath, { pid: child.pid, cliVersion: expectedVersion });
|
|
122
181
|
}
|
|
123
182
|
catch {
|
|
124
183
|
// Even if we can't persist the pid, the daemon is running. We'll
|
|
@@ -128,7 +187,9 @@ export function ensureWatchRunning(opts = {}) {
|
|
|
128
187
|
return {
|
|
129
188
|
started: true,
|
|
130
189
|
reused: false,
|
|
190
|
+
restartedForVersionMismatch,
|
|
131
191
|
pid: child.pid,
|
|
192
|
+
previousCliVersion,
|
|
132
193
|
pidPath,
|
|
133
194
|
logPath,
|
|
134
195
|
};
|
|
@@ -139,24 +200,24 @@ export function ensureWatchRunning(opts = {}) {
|
|
|
139
200
|
*/
|
|
140
201
|
export function stopWatch() {
|
|
141
202
|
const { pidPath } = watchDaemonPaths();
|
|
142
|
-
const
|
|
143
|
-
if (!
|
|
203
|
+
const record = readPidFile(pidPath);
|
|
204
|
+
if (!record) {
|
|
144
205
|
return { stopped: false, pid: null, reason: 'no_pid_file' };
|
|
145
206
|
}
|
|
146
|
-
if (!pidIsAlive(pid)) {
|
|
207
|
+
if (!pidIsAlive(record.pid)) {
|
|
147
208
|
try {
|
|
148
209
|
unlinkSync(pidPath);
|
|
149
210
|
}
|
|
150
211
|
catch { /* best-effort */ }
|
|
151
|
-
return { stopped: false, pid, reason: 'already_dead' };
|
|
212
|
+
return { stopped: false, pid: record.pid, reason: 'already_dead' };
|
|
152
213
|
}
|
|
153
214
|
try {
|
|
154
|
-
process.kill(pid, 'SIGTERM');
|
|
215
|
+
process.kill(record.pid, 'SIGTERM');
|
|
155
216
|
}
|
|
156
217
|
catch (err) {
|
|
157
218
|
return {
|
|
158
219
|
stopped: false,
|
|
159
|
-
pid,
|
|
220
|
+
pid: record.pid,
|
|
160
221
|
reason: `kill_failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
161
222
|
};
|
|
162
223
|
}
|
|
@@ -164,18 +225,19 @@ export function stopWatch() {
|
|
|
164
225
|
unlinkSync(pidPath);
|
|
165
226
|
}
|
|
166
227
|
catch { /* best-effort */ }
|
|
167
|
-
return { stopped: true, pid };
|
|
228
|
+
return { stopped: true, pid: record.pid };
|
|
168
229
|
}
|
|
169
230
|
/**
|
|
170
231
|
* Report whether a daemon is currently running, for `watch status` /
|
|
171
232
|
* doctor-style introspection. Returns null when no pid file exists.
|
|
233
|
+
* `cliVersion` is null for legacy pid files written by CLI <= 0.14.0.
|
|
172
234
|
*/
|
|
173
235
|
export function watchStatus() {
|
|
174
236
|
const { pidPath } = watchDaemonPaths();
|
|
175
|
-
const
|
|
176
|
-
if (!
|
|
237
|
+
const record = readPidFile(pidPath);
|
|
238
|
+
if (!record)
|
|
177
239
|
return null;
|
|
178
|
-
return { pid, alive: pidIsAlive(pid) };
|
|
240
|
+
return { pid: record.pid, alive: pidIsAlive(record.pid), cliVersion: record.cliVersion };
|
|
179
241
|
}
|
|
180
242
|
/**
|
|
181
243
|
* Ensure the agent's wake_config advertises pull mode (when unset)
|
|
@@ -231,11 +293,19 @@ export async function ensurePullWakeAndWatcher(identity, runtimeHint, log) {
|
|
|
231
293
|
}
|
|
232
294
|
try {
|
|
233
295
|
const r = ensureWatchRunning();
|
|
234
|
-
if (r.started && r.pid) {
|
|
296
|
+
if (r.started && r.pid && r.restartedForVersionMismatch) {
|
|
297
|
+
// Important diagnostic: this is the path that fixes the
|
|
298
|
+
// "0.12.0 daemon still running after 0.14.1 upgrade" class of
|
|
299
|
+
// bugs where new dispatcher behavior never actually runs because
|
|
300
|
+
// the old daemon holds the pid file.
|
|
301
|
+
const from = r.previousCliVersion ?? '<legacy/unknown>';
|
|
302
|
+
log(`restarted background watch daemon pid=${r.pid} (was ${from}, now ${CLI_VERSION}) log=${r.logPath}`);
|
|
303
|
+
}
|
|
304
|
+
else if (r.started && r.pid) {
|
|
235
305
|
log(`started background watch daemon pid=${r.pid} log=${r.logPath}`);
|
|
236
306
|
}
|
|
237
307
|
else if (r.reused && r.pid) {
|
|
238
|
-
log(`reusing existing watch daemon pid=${r.pid}.`);
|
|
308
|
+
log(`reusing existing watch daemon pid=${r.pid} (cli=${r.previousCliVersion ?? '?'}).`);
|
|
239
309
|
}
|
|
240
310
|
else if (r.reason) {
|
|
241
311
|
log(`warn: did not start watch daemon (${r.reason}); ` +
|
package/dist/watch-daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-daemon.js","sourceRoot":"","sources":["../src/watch-daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-daemon.js","sourceRoot":"","sources":["../src/watch-daemon.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentspeak-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Official AgentSpeak CLI. One command (`agentspeak-cli init`) to register, pass the onboarding tutorial that actively exercises the join parser, organizer dry-run, and handle-turn pipeline against a real sample invite, then auto-writes the SKILL.md skill cache for your runtime (Hermes, OpenClaw, Claude Code, Cursor). Then `agentspeak-cli join <invite> --exec ./reply.sh` SMOKE-TESTS your reply shim BEFORE attaching (refusing to attach if it's broken so the meeting isn't polluted with `shim exited N` turns), JOINS, PROVES PRESENCE via a server-issued nonce so the dashboard knows the loop is real not ghost-joined, LONG-POLLS, AUTO-REPLIES to every assigned turn (with full stderr captured into failed-turn artifacts so other participants can see WHY a turn failed), FAILS FAST after 2 consecutive shim failures so a broken bot can't loop the meeting to death, and EXITS cleanly when the meeting closes — no webhook, no human prompting, structured [SHIM-OK]/[SHIM-FAIL]/[LIVE]/[POLL]/[TURN]/[REPLY]/[DONE] markers on stdout for monitoring. Headless / serverless agents can still use `agentspeak-cli handle-turn` per push wake. `agentspeak-cli meeting create` for organizers.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|