agentspeak-cli 0.11.4 → 0.14.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/api.d.ts +4 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -0
- package/dist/api.js.map +1 -1
- package/dist/commands/init.d.ts +9 -3
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +40 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.js +102 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/rejoin.d.ts +19 -0
- package/dist/commands/rejoin.d.ts.map +1 -0
- package/dist/commands/rejoin.js +70 -0
- package/dist/commands/rejoin.js.map +1 -0
- package/dist/commands/run.js +1 -1
- package/dist/commands/tutorial.d.ts +11 -0
- package/dist/commands/tutorial.d.ts.map +1 -1
- package/dist/commands/tutorial.js +122 -10
- package/dist/commands/tutorial.js.map +1 -1
- package/dist/commands/watch.d.ts +89 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +213 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/index.js +146 -7
- package/dist/index.js.map +1 -1
- package/dist/run-spawner.d.ts +99 -0
- package/dist/run-spawner.d.ts.map +1 -0
- package/dist/run-spawner.js +220 -0
- package/dist/run-spawner.js.map +1 -0
- package/dist/skill-template.d.ts +1 -1
- package/dist/skill-template.d.ts.map +1 -1
- package/dist/skill-template.js +6 -4
- package/dist/skill-template.js.map +1 -1
- package/dist/watch-daemon.d.ts +93 -0
- package/dist/watch-daemon.d.ts.map +1 -0
- package/dist/watch-daemon.js +251 -0
- package/dist/watch-daemon.js.map +1 -0
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ export declare const api: {
|
|
|
20
20
|
headers?: Record<string, string>;
|
|
21
21
|
}) => Promise<T>;
|
|
22
22
|
put: <T = unknown>(ctx: ApiCtx, path: string, body: unknown) => Promise<T>;
|
|
23
|
+
del: <T = unknown>(ctx: ApiCtx, path: string, body?: unknown, opts?: {
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
headers?: Record<string, string>;
|
|
26
|
+
}) => Promise<T>;
|
|
23
27
|
};
|
|
24
28
|
/**
|
|
25
29
|
* Long-poll my_turn. Returns the envelope body when 200, null on 204
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAS,SAAQ,KAAK;IACd,MAAM,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM;gBAAnC,MAAM,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAGzE;AAwCD,eAAO,MAAM,GAAG;UACR,CAAC,iBAAiB,MAAM,QAAQ,MAAM,SAAS;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;WAEpE,CAAC,iBACD,MAAM,QACL,MAAM,QACN,OAAO,SACN;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;UAE3D,CAAC,iBAAiB,MAAM,QAAQ,MAAM,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAS,SAAQ,KAAK;IACd,MAAM,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM;gBAAnC,MAAM,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAGzE;AAwCD,eAAO,MAAM,GAAG;UACR,CAAC,iBAAiB,MAAM,QAAQ,MAAM,SAAS;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;WAEpE,CAAC,iBACD,MAAM,QACL,MAAM,QACN,OAAO,SACN;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;UAE3D,CAAC,iBAAiB,MAAM,QAAQ,MAAM,QAAQ,OAAO;UAErD,CAAC,iBACA,MAAM,QACL,MAAM,SACL,OAAO,SACP;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;CAElE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,SAAK,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,CAsB/E;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE7F"}
|
package/dist/api.js
CHANGED
|
@@ -51,6 +51,7 @@ export const api = {
|
|
|
51
51
|
get: (ctx, path, opts) => request(ctx, 'GET', path, opts),
|
|
52
52
|
post: (ctx, path, body, opts) => request(ctx, 'POST', path, { body, ...opts }),
|
|
53
53
|
put: (ctx, path, body) => request(ctx, 'PUT', path, { body }),
|
|
54
|
+
del: (ctx, path, body, opts) => request(ctx, 'DELETE', path, { body, ...opts }),
|
|
54
55
|
};
|
|
55
56
|
/**
|
|
56
57
|
* Long-poll my_turn. Returns the envelope body when 200, null on 204
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -8,9 +8,15 @@
|
|
|
8
8
|
* Behavior:
|
|
9
9
|
* - If `~/.agentspeak/identity.json` already exists for this base
|
|
10
10
|
* URL, it is reused (idempotent).
|
|
11
|
-
* - Wake config is
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* - Wake config is AUTO-SET to `pull` (long-poll) when unset.
|
|
12
|
+
* Along with a background `agentspeak watch` daemon this turns
|
|
13
|
+
* the previously-deferred wake steps into a first-class,
|
|
14
|
+
* zero-config path: invites land in the notification feed and
|
|
15
|
+
* are picked up within ~1s. Any existing real push transport
|
|
16
|
+
* (http_webhook / discord_webhook / openclaw_webhook /
|
|
17
|
+
* discord_mention) is preserved verbatim. Operators who want a
|
|
18
|
+
* real push transport can still run `agentspeak wake-config set`
|
|
19
|
+
* or visit `/setup-wake`.
|
|
14
20
|
* - The `--exec` shim is OPTIONAL. If omitted, the tutorial uses
|
|
15
21
|
* the safe-default fallback bodies (loud warning) which is fine
|
|
16
22
|
* for the demo workflow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA2G7D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { loadIdentity } from '../state.js';
|
|
2
2
|
import { writeAutoShim } from '../auto-shim.js';
|
|
3
3
|
import { runShim } from '../exec.js';
|
|
4
|
+
import { ensurePullWakeAndWatcher } from '../watch-daemon.js';
|
|
4
5
|
import { cmdRegister } from './register.js';
|
|
5
6
|
import { cmdTutorial } from './tutorial.js';
|
|
6
7
|
export async function cmdInit(opts) {
|
|
@@ -51,15 +52,36 @@ export async function cmdInit(opts) {
|
|
|
51
52
|
log('warn: could not write auto-shim: ' + (err instanceof Error ? err.message : String(err)));
|
|
52
53
|
}
|
|
53
54
|
}
|
|
55
|
+
// 3. Wake config + background watcher.
|
|
56
|
+
//
|
|
57
|
+
// Historically `init` left wake_config null, which meant pingAgent
|
|
58
|
+
// returned `no_notify_transport` for every invite and the create
|
|
59
|
+
// wizard rendered an amber "could not ping" warning even though the
|
|
60
|
+
// notification was durably recorded in the DB. Set `transport: pull`
|
|
61
|
+
// by default so the coordinator knows the agent is intentionally
|
|
62
|
+
// long-polling, and start the poller daemon so the invite is acted
|
|
63
|
+
// on in ~1s without the operator having to run `watch` manually.
|
|
64
|
+
//
|
|
65
|
+
// Any existing real push transport is preserved verbatim — this is
|
|
66
|
+
// an opt-IN to pull mode for previously-unconfigured agents, never
|
|
67
|
+
// an override of a working webhook.
|
|
68
|
+
const identityAfterRegister = loadIdentity();
|
|
69
|
+
if (identityAfterRegister) {
|
|
70
|
+
await ensurePullWakeAndWatcher(identityAfterRegister, opts.runtime, log);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
log('warn: identity missing after register; skipping wake-config auto-setup.');
|
|
74
|
+
}
|
|
54
75
|
if (opts.skipTutorial) {
|
|
55
76
|
log('Skipping tutorial (--skip-tutorial).');
|
|
56
77
|
return 0;
|
|
57
78
|
}
|
|
58
|
-
//
|
|
59
|
-
// wake_choice / wake_test
|
|
79
|
+
// 4. Tutorial. Wake config is now set to pull by default (step 3),
|
|
80
|
+
// so wake_choice / wake_test pass cleanly without needing a real
|
|
81
|
+
// push transport.
|
|
60
82
|
log('Running mandatory onboarding tutorial (no questions, no LLM key, no Discord setup required)...');
|
|
61
|
-
log('Push wake transport
|
|
62
|
-
|
|
83
|
+
log('Push wake transport default = pull (long-poll via background watch daemon). Swap later at /setup-wake.');
|
|
84
|
+
const tutorialCode = await cmdTutorial({
|
|
63
85
|
selfAck: true,
|
|
64
86
|
autoSaveAck: true,
|
|
65
87
|
skipOrganizerCheck: false,
|
|
@@ -69,5 +91,19 @@ export async function cmdInit(opts) {
|
|
|
69
91
|
runtime: opts.runtime,
|
|
70
92
|
json: opts.json,
|
|
71
93
|
});
|
|
94
|
+
if (tutorialCode === 0) {
|
|
95
|
+
// Durable notification feed — the background watch daemon started
|
|
96
|
+
// in step 3 keeps this agent subscribed across `init` exit. Print
|
|
97
|
+
// the manual equivalents so people who want to swap to their own
|
|
98
|
+
// supervisor (systemd / launchd / Task Scheduler) know what command
|
|
99
|
+
// to run there.
|
|
100
|
+
process.stderr.write('\n[init] Background poller is running via pull-mode wake_config.\n' +
|
|
101
|
+
' agentspeak-cli watch stop # stop the background poller\n' +
|
|
102
|
+
' agentspeak-cli watch --ack --json # foreground long-poll (run under your own supervisor)\n' +
|
|
103
|
+
' agentspeak-cli watch --once --ack # single poll, exit 1 if there was news\n' +
|
|
104
|
+
' agentspeak-cli wake-config set --transport discord_webhook --webhook-url ... --user-id ...\n' +
|
|
105
|
+
' # swap pull mode for a real push transport\n');
|
|
106
|
+
}
|
|
107
|
+
return tutorialCode;
|
|
72
108
|
}
|
|
73
109
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -31,7 +31,7 @@ export async function cmdMcpServe(opts) {
|
|
|
31
31
|
}
|
|
32
32
|
const tools = buildToolList();
|
|
33
33
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
-
const server = new McpServerCtor({ name: 'agentspeak', version: '0.
|
|
34
|
+
const server = new McpServerCtor({ name: 'agentspeak', version: '0.14.0' }, { capabilities: { tools: {} } });
|
|
35
35
|
server.setRequestHandler(ListToolsRequestSchemaSym, async () => ({
|
|
36
36
|
tools: tools.map((t) => ({ name: t.name, description: t.description, inputSchema: t.input })),
|
|
37
37
|
}));
|
|
@@ -190,6 +190,107 @@ function buildToolList() {
|
|
|
190
190
|
allowOpenJoin: args.allowOpenJoin ?? false,
|
|
191
191
|
}),
|
|
192
192
|
},
|
|
193
|
+
{
|
|
194
|
+
name: 'meeting_list',
|
|
195
|
+
description: 'List meetings you created or participate in, with status, role, unread notification count, and whether a turn is currently waiting for you. Call this first on every human-initiated check-in.',
|
|
196
|
+
input: {
|
|
197
|
+
type: 'object',
|
|
198
|
+
properties: {
|
|
199
|
+
status: {
|
|
200
|
+
type: 'string',
|
|
201
|
+
description: "Comma-separated meeting_status filter. Valid values: pending_start, active, paused (all Active), completed, expired (both Completed/terminal). E.g. 'active,pending_start,paused' for only live meetings. Omit for all statuses.",
|
|
202
|
+
},
|
|
203
|
+
role: { type: 'string', enum: ['creator', 'participant'] },
|
|
204
|
+
limit: { type: 'number', minimum: 1, maximum: 200, default: 50 },
|
|
205
|
+
},
|
|
206
|
+
additionalProperties: false,
|
|
207
|
+
},
|
|
208
|
+
handler: async (id, args) => {
|
|
209
|
+
const params = new URLSearchParams();
|
|
210
|
+
if (typeof args.status === 'string')
|
|
211
|
+
params.set('status', args.status);
|
|
212
|
+
if (typeof args.role === 'string')
|
|
213
|
+
params.set('role', args.role);
|
|
214
|
+
if (typeof args.limit === 'number')
|
|
215
|
+
params.set('limit', String(args.limit));
|
|
216
|
+
const qs = params.toString();
|
|
217
|
+
return api.get(ctxFor(id), `/api/agents/me/meetings${qs ? `?${qs}` : ''}`);
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: 'notifications_list',
|
|
222
|
+
description: 'Unread notifications addressed to you: reopens, invites, turn assignments, meeting closures. Use this to discover what changed since you last checked. Pair with notifications_ack after you\'ve acted.',
|
|
223
|
+
input: {
|
|
224
|
+
type: 'object',
|
|
225
|
+
properties: {
|
|
226
|
+
includeRead: { type: 'boolean', default: false },
|
|
227
|
+
limit: { type: 'number', minimum: 1, maximum: 200, default: 50 },
|
|
228
|
+
wait: {
|
|
229
|
+
type: 'number',
|
|
230
|
+
minimum: 0,
|
|
231
|
+
maximum: 30,
|
|
232
|
+
default: 0,
|
|
233
|
+
description: 'Long-poll seconds. 0 returns immediately; up to 30 blocks until a new row appears.',
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
additionalProperties: false,
|
|
237
|
+
},
|
|
238
|
+
handler: async (id, args) => {
|
|
239
|
+
const params = new URLSearchParams();
|
|
240
|
+
if (args.includeRead)
|
|
241
|
+
params.set('includeRead', '1');
|
|
242
|
+
if (typeof args.limit === 'number')
|
|
243
|
+
params.set('limit', String(args.limit));
|
|
244
|
+
if (typeof args.wait === 'number')
|
|
245
|
+
params.set('wait', String(args.wait));
|
|
246
|
+
const qs = params.toString();
|
|
247
|
+
return api.get(ctxFor(id), `/api/agents/me/notifications${qs ? `?${qs}` : ''}`);
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
name: 'notifications_ack',
|
|
252
|
+
description: 'Mark notifications as acked so they stop appearing in the default feed. Pass { ids } to ack specific rows, or { meetingId } / { kind } to ack everything matching. At least one filter is required.',
|
|
253
|
+
input: {
|
|
254
|
+
type: 'object',
|
|
255
|
+
properties: {
|
|
256
|
+
ids: { type: 'array', items: { type: 'string' } },
|
|
257
|
+
meetingId: { type: 'string' },
|
|
258
|
+
kind: {
|
|
259
|
+
type: 'string',
|
|
260
|
+
enum: ['invite', 'reopen', 'turn_assigned', 'meeting_closed', 'meeting_created'],
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
additionalProperties: false,
|
|
264
|
+
},
|
|
265
|
+
handler: async (id, args) => api.post(ctxFor(id), '/api/agents/me/notifications/ack', {
|
|
266
|
+
ids: args.ids,
|
|
267
|
+
meetingId: args.meetingId,
|
|
268
|
+
kind: args.kind,
|
|
269
|
+
}),
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
name: 'notifications_delete',
|
|
273
|
+
description: 'Permanently delete notifications you own. DESTRUCTIVE — confirm with the user before calling unless they already said "yes, delete". Prefer notifications_ack for normal use. Accepts { ids } / { meetingId } / { kind } / { all: true }.',
|
|
274
|
+
input: {
|
|
275
|
+
type: 'object',
|
|
276
|
+
properties: {
|
|
277
|
+
ids: { type: 'array', items: { type: 'string' } },
|
|
278
|
+
meetingId: { type: 'string' },
|
|
279
|
+
kind: {
|
|
280
|
+
type: 'string',
|
|
281
|
+
enum: ['invite', 'reopen', 'turn_assigned', 'meeting_closed', 'meeting_created'],
|
|
282
|
+
},
|
|
283
|
+
all: { type: 'boolean', enum: [true] },
|
|
284
|
+
},
|
|
285
|
+
additionalProperties: false,
|
|
286
|
+
},
|
|
287
|
+
handler: async (id, args) => api.del(ctxFor(id), '/api/agents/me/notifications', {
|
|
288
|
+
ids: args.ids,
|
|
289
|
+
meetingId: args.meetingId,
|
|
290
|
+
kind: args.kind,
|
|
291
|
+
all: args.all,
|
|
292
|
+
}),
|
|
293
|
+
},
|
|
193
294
|
];
|
|
194
295
|
}
|
|
195
296
|
//# sourceMappingURL=mcp.js.map
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface RejoinOpts {
|
|
2
|
+
meetingId: string;
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Run loop configuration — forwarded to `cmdRun`. When omitted we
|
|
6
|
+
* rely on the user's existing `AGENTSPEAK_*` env vars / auto-shim
|
|
7
|
+
* (same as `agentspeak-cli run`).
|
|
8
|
+
*/
|
|
9
|
+
exec?: string;
|
|
10
|
+
via?: string;
|
|
11
|
+
defaultReply?: string;
|
|
12
|
+
shimTimeoutMs?: number;
|
|
13
|
+
pollWaitSeconds?: number;
|
|
14
|
+
maxTurns?: number;
|
|
15
|
+
maxIdleMinutes?: number;
|
|
16
|
+
json?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function cmdRejoin(opts: RejoinOpts): Promise<number>;
|
|
19
|
+
//# sourceMappingURL=rejoin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejoin.d.ts","sourceRoot":"","sources":["../../src/commands/rejoin.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAmFjE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { api, ApiError } from '../api.js';
|
|
2
|
+
import { loadIdentity, loadMeeting, saveMeeting } from '../state.js';
|
|
3
|
+
import { cmdRun } from './run.js';
|
|
4
|
+
export async function cmdRejoin(opts) {
|
|
5
|
+
const { meetingId } = opts;
|
|
6
|
+
if (!meetingId) {
|
|
7
|
+
process.stderr.write('[agentspeak] rejoin requires a <meetingId> positional arg.\n' +
|
|
8
|
+
'[agentspeak] Example: agentspeak-cli rejoin meet_abc123\n');
|
|
9
|
+
return 2;
|
|
10
|
+
}
|
|
11
|
+
const identity = loadIdentity();
|
|
12
|
+
if (!identity) {
|
|
13
|
+
process.stderr.write('[agentspeak] No stored identity. Run `agentspeak-cli init --name <Name>` first.\n');
|
|
14
|
+
return 3;
|
|
15
|
+
}
|
|
16
|
+
const baseUrl = opts.baseUrl ?? identity.baseUrl;
|
|
17
|
+
const ctx = { baseUrl, token: identity.coordinatorToken };
|
|
18
|
+
let snapshot;
|
|
19
|
+
try {
|
|
20
|
+
snapshot = await api.get(ctx, `/api/meetings/${meetingId}/status`);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
if (err instanceof ApiError) {
|
|
24
|
+
process.stderr.write(`[agentspeak] Could not fetch meeting status (${err.status}): ${err.body.slice(0, 200)}\n`);
|
|
25
|
+
return 4;
|
|
26
|
+
}
|
|
27
|
+
throw err;
|
|
28
|
+
}
|
|
29
|
+
if (snapshot.status === 'completed' || snapshot.status === 'expired') {
|
|
30
|
+
process.stderr.write(`[agentspeak] Meeting ${meetingId} is ${snapshot.status}; nothing to rejoin. Exiting cleanly.\n`);
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
const me = (snapshot.participants ?? []).find((p) => p.agentId === identity.agentId);
|
|
34
|
+
if (!me) {
|
|
35
|
+
process.stderr.write(`[agentspeak] Agent ${identity.agentId} is not a participant of ${meetingId}.\n` +
|
|
36
|
+
'[agentspeak] Use `agentspeak-cli join <inviteSkillUrl>` with a fresh invite instead.\n');
|
|
37
|
+
return 5;
|
|
38
|
+
}
|
|
39
|
+
// Best-effort: refresh the on-disk meeting state pointer so `handle-turn`
|
|
40
|
+
// (without an explicit --meeting arg) defaults to this one.
|
|
41
|
+
const existingState = loadMeeting(meetingId);
|
|
42
|
+
if (existingState) {
|
|
43
|
+
saveMeeting({ ...existingState, lastSeenTurn: snapshot.currentTurn });
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
saveMeeting({
|
|
47
|
+
baseUrl,
|
|
48
|
+
meetingId,
|
|
49
|
+
meetingTitle: snapshot.title,
|
|
50
|
+
agentId: identity.agentId,
|
|
51
|
+
coordinatorToken: identity.coordinatorToken,
|
|
52
|
+
joinedAt: new Date().toISOString(),
|
|
53
|
+
lastSeenTurn: snapshot.currentTurn,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
process.stderr.write(`[agentspeak] Resuming run loop for ${meetingId} (participant status=${me.status}, currentTurn=${snapshot.currentTurn}/${snapshot.maxTurns}).\n`);
|
|
57
|
+
const runOpts = {
|
|
58
|
+
meetingId,
|
|
59
|
+
exec: opts.exec,
|
|
60
|
+
via: opts.via,
|
|
61
|
+
defaultReply: opts.defaultReply,
|
|
62
|
+
shimTimeoutMs: opts.shimTimeoutMs,
|
|
63
|
+
pollWaitSeconds: opts.pollWaitSeconds,
|
|
64
|
+
maxTurns: opts.maxTurns,
|
|
65
|
+
maxIdleMinutes: opts.maxIdleMinutes,
|
|
66
|
+
json: opts.json,
|
|
67
|
+
};
|
|
68
|
+
return cmdRun(runOpts);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=rejoin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejoin.js","sourceRoot":"","sources":["../../src/commands/rejoin.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/run.js
CHANGED
|
@@ -54,7 +54,7 @@ function buildSmokeEnvelope(meetingId, agentId) {
|
|
|
54
54
|
instructions: 'AgentSpeak shim smoke test. Reply with the literal text [ok] (or any non-empty markdown). ' +
|
|
55
55
|
'Do not call out to an LLM if you can short-circuit on agentspeak.smokeTest === true.',
|
|
56
56
|
previousTurns: [],
|
|
57
|
-
agentspeak: { smokeTest: true, version: '0.
|
|
57
|
+
agentspeak: { smokeTest: true, version: '0.14.0' },
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
function resolveBridge(opts) {
|
|
@@ -75,6 +75,17 @@ export interface TutorialOpts {
|
|
|
75
75
|
* detection.
|
|
76
76
|
*/
|
|
77
77
|
runtime?: 'hermes' | 'openclaw' | 'claude' | 'cursor' | 'generic';
|
|
78
|
+
/**
|
|
79
|
+
* Force a full re-exercise of the tutorial even if the agent is
|
|
80
|
+
* already certified. Used by `agentspeak-cli tutorial --refresh`
|
|
81
|
+
* and by the homepage "Update an agent's cached instructions"
|
|
82
|
+
* flow when the user explicitly wants to re-run every step.
|
|
83
|
+
*
|
|
84
|
+
* Without this flag, an already-certified agent just refreshes
|
|
85
|
+
* skills on disk + reconciles the step ledger against the current
|
|
86
|
+
* canonical list.
|
|
87
|
+
*/
|
|
88
|
+
refresh?: boolean;
|
|
78
89
|
json?: boolean;
|
|
79
90
|
}
|
|
80
91
|
export declare function cmdTutorial(opts: TutorialOpts): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tutorial.d.ts","sourceRoot":"","sources":["../../src/commands/tutorial.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tutorial.d.ts","sourceRoot":"","sources":["../../src/commands/tutorial.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAiFD,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA2QrE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { api, ApiError, pollMyTurn } from '../api.js';
|
|
2
2
|
import { discoverMeetingFromInvite } from './join.js';
|
|
3
3
|
import { runShim } from '../exec.js';
|
|
4
|
-
import { detectRuntime, renderRootSkill, renderStepSkill } from '../skill-template.js';
|
|
4
|
+
import { CLI_SKILL_VERSION, detectRuntime, renderRootSkill, renderStepSkill } from '../skill-template.js';
|
|
5
5
|
import { verifyRuntimeLoaded, writeSkills } from '../skill-writer.js';
|
|
6
6
|
import { loadIdentity, saveMeeting } from '../state.js';
|
|
7
|
+
import { ensurePullWakeAndWatcher } from '../watch-daemon.js';
|
|
7
8
|
const FAST_PATH_FALLBACK_BODY = `# Tutorial reply (CLI fast path)
|
|
8
9
|
|
|
9
10
|
This message was emitted by the AgentSpeak CLI's safe-default body because
|
|
@@ -19,7 +20,7 @@ Confirming end-to-end:
|
|
|
19
20
|
<!-- agentspeak:signal=done -->
|
|
20
21
|
`;
|
|
21
22
|
const SIGNAL_DONE_MARKER = /<!--\s*agentspeak:signal=done\s*-->/i;
|
|
22
|
-
const STRICT_STEP_COUNT =
|
|
23
|
+
const STRICT_STEP_COUNT = 12;
|
|
23
24
|
export async function cmdTutorial(opts) {
|
|
24
25
|
const identity = loadIdentity();
|
|
25
26
|
if (!identity) {
|
|
@@ -28,16 +29,90 @@ export async function cmdTutorial(opts) {
|
|
|
28
29
|
const ctx = { baseUrl: identity.baseUrl, token: identity.coordinatorToken };
|
|
29
30
|
const log = (msg) => process.stdout.write(`[tutorial] ${msg}\n`);
|
|
30
31
|
const runtime = opts.runtime ?? detectRuntime();
|
|
32
|
+
// Unconditionally refresh SKILL.md files on disk BEFORE we talk to
|
|
33
|
+
// the server. This is what the homepage "Update an agent's cached
|
|
34
|
+
// instructions" flow is really asking for: even if the agent was
|
|
35
|
+
// certified yesterday, they should be running the current skill
|
|
36
|
+
// build today. writeSkills() is idempotent + version-pinned via
|
|
37
|
+
// read-back verification, so repeated runs are cheap.
|
|
38
|
+
const shouldWriteSkills = opts.writeSkills !== false;
|
|
39
|
+
if (shouldWriteSkills) {
|
|
40
|
+
try {
|
|
41
|
+
const result = writeSkills({
|
|
42
|
+
runtime: runtime === 'generic' ? undefined : runtime,
|
|
43
|
+
writeIfGeneric: opts.writeSkillsIfGeneric ?? false,
|
|
44
|
+
});
|
|
45
|
+
if (result.declined) {
|
|
46
|
+
log('Runtime not auto-detected (HERMES_HOME / OPENCLAW_HOME / CLAUDE_CODE_RUNTIME / ' +
|
|
47
|
+
'CURSOR_AGENT not set). Skipping SKILL.md refresh on disk; re-run with ' +
|
|
48
|
+
'--write-skills-if-generic to fall back to ~/.agentspeak/skills.');
|
|
49
|
+
}
|
|
50
|
+
else if (result.written.length) {
|
|
51
|
+
log(`Refreshed ${result.written.length} SKILL.md file(s) in ${result.skillsDir}` +
|
|
52
|
+
(result.prunedStale.length
|
|
53
|
+
? ` (pruned ${result.prunedStale.length} stale path(s))`
|
|
54
|
+
: '') +
|
|
55
|
+
'.');
|
|
56
|
+
}
|
|
57
|
+
if (result.errors.length) {
|
|
58
|
+
for (const err of result.errors) {
|
|
59
|
+
process.stderr.write(`[tutorial] skill write error: ${err.path}: ${err.message}\n`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
65
|
+
process.stderr.write(`[tutorial] skill refresh failed (non-fatal): ${msg}\n`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Ensure wake_config points at pull mode (when unset) and that the
|
|
69
|
+
// background watch daemon is running. On a fresh agent this is the
|
|
70
|
+
// same code `init` already runs; on a refresh of a long-lived agent
|
|
71
|
+
// that never set wake_config, this retro-fills pull mode so invites
|
|
72
|
+
// land in the notification feed without the operator rerunning
|
|
73
|
+
// `init`. Never overwrites a real push transport — see
|
|
74
|
+
// `ensurePullWakeAndWatcher` for the preservation rules.
|
|
75
|
+
await ensurePullWakeAndWatcher(identity, runtime, (msg) => log(msg));
|
|
31
76
|
log('Starting tutorial (fast path, no questions, no LLM key, no Discord setup)...');
|
|
32
77
|
log('Conversational reply is generated by YOUR runtime via --exec, or a safe-default body.');
|
|
33
78
|
const start = await api.post(ctx, '/api/onboarding/tutorial/start', {});
|
|
34
79
|
if (start.alreadyPassed) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
80
|
+
// Reconcile the ledger against the current canonical list. This is
|
|
81
|
+
// the server-side half of "Update an agent's cached instructions":
|
|
82
|
+
// auto-record any OPTIONAL_AUTO_PASS_STEP_IDS that were added
|
|
83
|
+
// after this agent passed the tutorial, invalidate the cert if any
|
|
84
|
+
// actively-exercised step is missing or if CLI_SKILL_VERSION
|
|
85
|
+
// bumped and --refresh was requested, and otherwise pin the cert
|
|
86
|
+
// to the current skill version.
|
|
87
|
+
const rec = await api.post(ctx, '/api/onboarding/tutorial/reconcile', { force: opts.refresh === true, cliSkillVersion: CLI_SKILL_VERSION });
|
|
88
|
+
if (rec.certInvalidated) {
|
|
89
|
+
log(`Certification invalidated: ${rec.stillMissing.length} step(s) still need to be ` +
|
|
90
|
+
`re-exercised on this build — ${rec.stillMissing.join(', ')}. ` +
|
|
91
|
+
`Re-running the full fast path now...`);
|
|
92
|
+
// Fall through: /tutorial/start on the NEXT call will now return
|
|
93
|
+
// alreadyPassed=false because reconcile nulled tutorialPassedAt.
|
|
94
|
+
// But we've already consumed the current `start` response, so
|
|
95
|
+
// re-issue it to get a fresh meetingId and kickoff envelope.
|
|
96
|
+
const restart = await api.post(ctx, '/api/onboarding/tutorial/start', {});
|
|
97
|
+
if (restart.alreadyPassed) {
|
|
98
|
+
throw new Error('reconcile invalidated cert but /tutorial/start still reports alreadyPassed — ' +
|
|
99
|
+
'server state is inconsistent; retry in a few seconds');
|
|
100
|
+
}
|
|
101
|
+
Object.assign(start, restart);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
process.stdout.write(`Already certified.\n` +
|
|
105
|
+
` Agent: ${start.agentId}\n` +
|
|
106
|
+
` Certificate: ${start.certificateId ?? 'n/a'}\n` +
|
|
107
|
+
` Passed at: ${start.tutorialPassedAt ?? 'n/a'}\n` +
|
|
108
|
+
` Wake p50: ${start.tutorialWakeP50Ms ?? 'n/a'} ms\n` +
|
|
109
|
+
` Skill version: server=${rec.skillVersionOnServer}, ` +
|
|
110
|
+
`prior=${rec.priorSkillVersion ?? 'pre-refresh'}` +
|
|
111
|
+
(rec.skillVersionChanged ? ' (bumped, pinned to current)' : '') +
|
|
112
|
+
`\n` +
|
|
113
|
+
` Reconciled steps: ${rec.reconciled.length ? rec.reconciled.join(', ') : 'none'}\n`);
|
|
114
|
+
return 0;
|
|
115
|
+
}
|
|
41
116
|
}
|
|
42
117
|
const meetingId = start.meetingId;
|
|
43
118
|
log(`Tutorial meeting: ${meetingId} (dashboard: ${start.dashboardUrl})`);
|
|
@@ -226,7 +301,44 @@ async function runStrictPath(args) {
|
|
|
226
301
|
payload: organizerSamplePayload(identity.agentId),
|
|
227
302
|
}));
|
|
228
303
|
}
|
|
229
|
-
log(`Step 8/${STRICT_STEP_COUNT}:
|
|
304
|
+
log(`Step 8/${STRICT_STEP_COUNT}: dashboard-check (GET /api/agents/me/meetings)`);
|
|
305
|
+
await runStep(ctx, meetingId, 'dashboard_check', async () => {
|
|
306
|
+
const res = await api.get(ctx, '/api/agents/me/meetings');
|
|
307
|
+
const row = res.meetings.find((m) => m.id === meetingId);
|
|
308
|
+
if (!row) {
|
|
309
|
+
throw new Error('tutorial meeting not listed on /api/agents/me/meetings for this agent. ' +
|
|
310
|
+
'Check that the participant row was created and that the endpoint is deployed.');
|
|
311
|
+
}
|
|
312
|
+
if (row.role !== 'participant') {
|
|
313
|
+
throw new Error(`expected role='participant' for tutorial meeting, got role='${row.role}'.`);
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
log(`Step 9/${STRICT_STEP_COUNT}: notifications-check (GET /api/agents/me/notifications)`);
|
|
317
|
+
await runStep(ctx, meetingId, 'notifications_check', async () => {
|
|
318
|
+
const res = await api.get(ctx, '/api/agents/me/notifications?limit=50');
|
|
319
|
+
const relevant = res.notifications.filter((n) => n.meetingId === meetingId);
|
|
320
|
+
if (relevant.length === 0) {
|
|
321
|
+
throw new Error('no notifications found for the tutorial meeting. turn_assigned / meeting_closed rows ' +
|
|
322
|
+
'should have been recorded by the engine during the fast/strict path turns.');
|
|
323
|
+
}
|
|
324
|
+
const ids = relevant.map((n) => n.id);
|
|
325
|
+
await api.post(ctx, '/api/agents/me/notifications/ack', { ids });
|
|
326
|
+
});
|
|
327
|
+
log(`Step 10/${STRICT_STEP_COUNT}: notifications-delete (DELETE /api/agents/me/notifications)`);
|
|
328
|
+
await runStep(ctx, meetingId, 'notifications_delete_check', async () => {
|
|
329
|
+
// Scope: delete everything for the tutorial meeting. Uses the
|
|
330
|
+
// meetingId filter so we never touch unrelated agent notifications.
|
|
331
|
+
const del = await api.del(ctx, '/api/agents/me/notifications', { meetingId });
|
|
332
|
+
if (!del || typeof del.deleted !== 'number') {
|
|
333
|
+
throw new Error('DELETE /notifications returned no count');
|
|
334
|
+
}
|
|
335
|
+
const after = await api.get(ctx, '/api/agents/me/notifications?includeRead=1&limit=200');
|
|
336
|
+
const stillThere = after.notifications.filter((n) => n.meetingId === meetingId);
|
|
337
|
+
if (stillThere.length > 0) {
|
|
338
|
+
throw new Error(`expected zero notifications for tutorial meeting after DELETE, found ${stillThere.length}.`);
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
log(`Step 11/${STRICT_STEP_COUNT}: consolidate as SKILL.md`);
|
|
230
342
|
emitSkillsConsolidation(runtime, opts);
|
|
231
343
|
if (opts.autoSaveAck !== false) {
|
|
232
344
|
await safeStep(() => api.post(ctx, '/api/onboarding/tutorial/save-skill-ack', {
|
|
@@ -241,7 +353,7 @@ async function runStrictPath(args) {
|
|
|
241
353
|
log(' waiting up to 30s for the candidate to POST /save-skill-ack itself...');
|
|
242
354
|
await sleep(30_000);
|
|
243
355
|
}
|
|
244
|
-
log(`Step
|
|
356
|
+
log(`Step 12/${STRICT_STEP_COUNT}: finish`);
|
|
245
357
|
const result = await api.post(ctx, '/api/onboarding/tutorial/finish', {
|
|
246
358
|
meetingId,
|
|
247
359
|
});
|