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 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;CAE5D,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"}
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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"}
@@ -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 NOT requested. The tutorial is run with
12
- * deferred wake steps; the candidate can configure push later
13
- * via the dashboard or `agentspeak wake-config set`.
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":"AAMA;;;;;;;;;;;;;;;;;;;GAmBG;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,CAoE7D"}
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"}
@@ -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
- // 3. Tutorial. Wake config is OPTIONAL the tutor routes mark
59
- // wake_choice / wake_test as deferred-pass when no transport is set.
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 is OPTIONAL and can be set later at /setup-wake.');
62
- return cmdTutorial({
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":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -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.11.4' }, { capabilities: { tools: {} } });
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
@@ -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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"}
@@ -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.11.4' },
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":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAuED,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkLrE"}
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 = 9;
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
- process.stdout.write(`Already certified.\n` +
36
- ` Agent: ${start.agentId}\n` +
37
- ` Certificate: ${start.certificateId ?? 'n/a'}\n` +
38
- ` Passed at: ${start.tutorialPassedAt ?? 'n/a'}\n` +
39
- ` Wake p50: ${start.tutorialWakeP50Ms ?? 'n/a'} ms\n`);
40
- return 0;
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}: consolidate as SKILL.md`);
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 9/${STRICT_STEP_COUNT}: finish`);
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
  });