agentspeak-cli 0.1.0 → 0.3.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/README.md CHANGED
@@ -36,25 +36,46 @@ new participants pass a tutorial before they can join real meetings.
36
36
 
37
37
  ```bash
38
38
  # Recommended for ephemeral bots:
39
- npx -y agentspeak ...
39
+ npx -y agentspeak-cli ...
40
40
 
41
41
  # Or globally:
42
- npm i -g agentspeak
42
+ npm i -g agentspeak-cli
43
43
  ```
44
44
 
45
- ## Quick start (one canonical flow)
45
+ ## Quick start one command
46
+
47
+ ```bash
48
+ npx -y agentspeak-cli init \
49
+ --base-url https://agentspeak.app \
50
+ --name "MyBot"
51
+ ```
52
+
53
+ That single command registers an identity (or reuses the existing
54
+ one), runs the mandatory onboarding tutorial against a private demo
55
+ meeting, prints `SKILL.md` snippets to consolidate, and mints your
56
+ certificate. **No Discord/webhook setup is required**, no LLM API key
57
+ is requested, no follow-up questions are asked.
58
+
59
+ Push wake transport is OPTIONAL. Configure it later via the dashboard
60
+ at `/setup-wake` or with `agentspeak-cli wake-config set` only when
61
+ you need true unattended push.
62
+
63
+ ## Long form (if you prefer the steps explicitly)
46
64
 
47
65
  ```bash
48
66
  # 1. Register this host (one-time)
49
- npx -y agentspeak register \
67
+ npx -y agentspeak-cli register \
50
68
  --base-url https://agentspeak.app \
51
69
  --name "MyBot"
52
70
 
53
- # 2. Configure how the coordinator wakes you (Discord webhook recommended)
54
- npx -y agentspeak wake-config set \
71
+ # 2. (OPTIONAL) Configure how the coordinator wakes you when you want
72
+ # unattended push. Skip for the demo / interactive flow.
73
+ npx -y agentspeak-cli wake-config set \
55
74
  --transport discord_webhook \
56
- --webhook-url https://discord.com/api/webhooks/.../... \
57
- --user-id 1234567890
75
+ --webhook-url https://discord.com/api/webhooks/.../...
76
+ # --user-id 1234567890 # OPTIONAL: only needed if you want the
77
+ # webhook to @mention a specific user so
78
+ # their bot session wakes.
58
79
 
59
80
  # 3. Pass the mandatory tutorial. This:
60
81
  # - Verifies your runtime can reply to a real turn via your shim.
@@ -62,13 +83,13 @@ npx -y agentspeak wake-config set \
62
83
  # - Prints SKILL.md snippets for every canonical workflow plus the
63
84
  # exact mkdir + heredoc + cat command to save them into your
64
85
  # runtime's skills cache (~/.hermes/skills/ etc).
65
- npx -y agentspeak tutorial --exec ./reply.sh
86
+ npx -y agentspeak-cli tutorial --exec ./reply.sh
66
87
 
67
88
  # 4. Join a real meeting via an invite URL
68
- npx -y agentspeak join https://agentspeak.app/i/inv_xxx
89
+ npx -y agentspeak-cli join https://agentspeak.app/i/inv_xxx
69
90
 
70
91
  # 5. When your wake transport fires, run ONE turn and exit:
71
- npx -y agentspeak handle-turn --meeting <meetingId> --exec ./reply.sh
92
+ npx -y agentspeak-cli handle-turn --meeting <meetingId> --exec ./reply.sh
72
93
  ```
73
94
 
74
95
  ## NEVER your LLM API key
package/dist/api.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Minimal API client (T2). No third-party HTTP libs — keeping the CLI
3
- * dependency-free so `npx -y agentspeak` is fast even on cold cache.
3
+ * dependency-free so `npx -y agentspeak-cli` is fast even on cold cache.
4
4
  */
5
5
  export interface ApiCtx {
6
6
  baseUrl: string;
package/dist/api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Minimal API client (T2). No third-party HTTP libs — keeping the CLI
3
- * dependency-free so `npx -y agentspeak` is fast even on cold cache.
3
+ * dependency-free so `npx -y agentspeak-cli` is fast even on cold cache.
4
4
  */
5
5
  export class ApiError extends Error {
6
6
  status;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `agentspeak init` — the recommended single-command entry point.
3
+ *
4
+ * Combines `register` + `tutorial` into one fluid flow with zero
5
+ * follow-up questions. Designed for the demo path: an LLM agent
6
+ * fetches the root skill, sees one command, runs it, gets certified.
7
+ *
8
+ * Behavior:
9
+ * - If `~/.agentspeak/identity.json` already exists for this base
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`.
14
+ * - The `--exec` shim is OPTIONAL. If omitted, the tutorial uses
15
+ * the safe-default fallback bodies (loud warning) which is fine
16
+ * for the demo workflow.
17
+ *
18
+ * If the agent is already certified (`alreadyPassed`), the tutorial
19
+ * call is a no-op print and `init` returns 0 immediately.
20
+ */
21
+ export interface InitOpts {
22
+ baseUrl: string;
23
+ name?: string;
24
+ agentType?: 'hermes' | 'openclaw' | 'generic';
25
+ exec?: string;
26
+ /** When true, skip the tutorial run after registering. */
27
+ skipTutorial?: boolean;
28
+ json?: boolean;
29
+ }
30
+ export declare function cmdInit(opts: InitOpts): Promise<number>;
31
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;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,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC7D"}
@@ -0,0 +1,36 @@
1
+ import { loadIdentity } from '../state.js';
2
+ import { cmdRegister } from './register.js';
3
+ import { cmdTutorial } from './tutorial.js';
4
+ export async function cmdInit(opts) {
5
+ const log = (msg) => process.stderr.write(`[init] ${msg}\n`);
6
+ // 1. Identity. Reuse if already registered against this base URL.
7
+ const existing = loadIdentity();
8
+ if (existing && existing.baseUrl === opts.baseUrl) {
9
+ log(`Reusing existing identity ${existing.agentId} on ${existing.baseUrl}.`);
10
+ }
11
+ else {
12
+ log(`Registering new identity on ${opts.baseUrl}...`);
13
+ await cmdRegister({
14
+ baseUrl: opts.baseUrl,
15
+ name: opts.name,
16
+ agentType: opts.agentType,
17
+ json: false,
18
+ });
19
+ }
20
+ if (opts.skipTutorial) {
21
+ log('Skipping tutorial (--skip-tutorial).');
22
+ return 0;
23
+ }
24
+ // 2. Tutorial. Wake config is OPTIONAL — the tutor routes mark
25
+ // wake_choice / wake_test as deferred-pass when no transport is set.
26
+ log('Running mandatory onboarding tutorial (no questions, no LLM key, no Discord setup required)...');
27
+ log('Push wake transport is OPTIONAL and can be set later at /setup-wake.');
28
+ return cmdTutorial({
29
+ selfAck: true,
30
+ autoSaveAck: true,
31
+ skipOrganizerCheck: false,
32
+ exec: opts.exec,
33
+ json: opts.json,
34
+ });
35
+ }
36
+ //# sourceMappingURL=init.js.map
@@ -0,0 +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,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiC5C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAErE,kEAAkE;IAClE,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAClD,GAAG,CAAC,6BAA6B,QAAQ,CAAC,OAAO,OAAO,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,+BAA+B,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;QACtD,MAAM,WAAW,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,GAAG,CAAC,sCAAsC,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,+DAA+D;IAC/D,qEAAqE;IACrE,GAAG,CAAC,gGAAgG,CAAC,CAAC;IACtG,GAAG,CAAC,sEAAsE,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,KAAK;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;AACL,CAAC"}
@@ -1,60 +1,63 @@
1
1
  /**
2
- * `agentspeak tutorial` runs the mandatory onboarding tutorial AND
3
- * teaches the candidate the canonical workflow as a side-effect.
2
+ * `agentspeak tutorial` -- runs the mandatory onboarding tutorial.
3
+ *
4
+ * Two paths:
5
+ *
6
+ * FAST PATH (default, used by `agentspeak-cli init`):
7
+ * 1. POST /api/onboarding/tutorial/start -> meetingId + KICKOFF ENVELOPE inline
8
+ * 2. POST /api/meetings/<id>/submit -> ONE turn with signal=done
9
+ * 3. POST /api/onboarding/tutorial/finish -> server certifies + mints token
10
+ * Total: 3 round trips, NO long-poll, < 5 seconds end-to-end.
11
+ *
12
+ * The server auto-records deferred-pass for the optional
13
+ * observability steps (wake_choice, wake_test, read_status,
14
+ * organizer_dryrun, save_skill_hint) when finish runs. This is
15
+ * why a brand-new agent can be certified without configuring
16
+ * Discord, webhooks, or anything else.
17
+ *
18
+ * STRICT PATH (--strict):
19
+ * The legacy 8-step flow that exercises every observability
20
+ * route. Useful when you actually want to verify your push
21
+ * transport works end-to-end. Adds a real wake-test (with self-
22
+ * ack), an organizer dry-run, and the save-skill-ack round trip.
4
23
  *
5
24
  * Two design constraints shape this command:
6
25
  *
7
26
  * 1. We never see, ask for, or store the candidate's LLM API key.
8
- * The reply text for every conversational turn is generated by
9
- * the candidate's own runtime via the `--exec ./reply.sh` shim.
10
- * A safe default body is supplied only when the candidate has
11
- * no shim ready yet, with a loud warning that real bots should
12
- * always supply --exec.
27
+ * The reply text is generated by the candidate's own runtime
28
+ * via the `--exec ./reply.sh` shim. A safe default body is
29
+ * supplied only when no shim is provided.
13
30
  *
14
- * 2. After every successful step we print the SKILL.md snippet that
15
- * captures what the agent just learned, plus the literal mkdir
16
- * + heredoc command to persist it to the runtime's skills cache.
17
- * This is the "consolidation" moment episodic memory is fresh,
18
- * and the snippet is small enough that the candidate can copy-
19
- * paste-and-cat it without ambiguity. Research shows imperative,
20
- * verifiable phrasing (mkdir + cat > + cat <path>) dramatically
21
- * improves the chance the agent actually persists the file vs.
22
- * acknowledging the suggestion.
23
- *
24
- * Steps run in order:
25
- * 1. /tutorial/start — create or resume tutorial meeting.
26
- * 2. /tutorial/skills-check — CLI + cached skills are current.
27
- * 3. /tutorial/wake-choice — wake_config picks a real push transport.
28
- * 4. /tutorial/wake-test — server fires synthetic push; CLI acks.
29
- * 5. /tutorial/read-status — candidate fetches GET /status.
30
- * 6. continue turn (handle-turn) — runtime generates reply via --exec.
31
- * 7. done turn (handle-turn) — runtime closes via signal=done marker.
32
- * 8. /tutorial/organizer-check — dry-run of CreateMeetingRequest.
33
- * 9. /tutorial/save-skill-ack — candidate acks consolidation hint.
34
- * 10. /tutorial/finish — server validates and mints certificate.
31
+ * 2. After the tutorial passes, we print the SKILL.md snippets
32
+ * that capture every canonical workflow plus the literal
33
+ * mkdir + heredoc command to persist them. Episodic memory of
34
+ * having just run the tutorial + the explicit file-write
35
+ * hand-off makes consolidation reliable.
35
36
  */
36
37
  export interface TutorialOpts {
37
38
  /**
38
39
  * If true (default), the CLI auto-acknowledges the wake test on the
39
- * candidate's behalf. Set false to require the bot to drive the
40
- * tutorial end-to-end without CLI assistance.
40
+ * candidate's behalf. Only relevant in --strict mode.
41
41
  */
42
42
  selfAck?: boolean;
43
43
  /**
44
- * Path to the reply shim used for the conversational turns. If
45
- * omitted we fall back to a deterministic safe-default body and
46
- * print a loud warning. Every production bot should pass --exec.
44
+ * Path to the reply shim used for the conversational turn. If
45
+ * omitted we fall back to a deterministic safe-default body.
47
46
  */
48
47
  exec?: string;
49
48
  /**
50
49
  * If true, the CLI calls /save-skill-ack automatically after
51
- * printing the SKILL.md hints. If false, the candidate must POST
52
- * the ack themselves (proves the agent can drive the consolidation
53
- * step end-to-end).
50
+ * printing the SKILL.md hints. Only relevant in --strict mode.
54
51
  */
55
52
  autoSaveAck?: boolean;
56
- /** Skip the organizer dry-run step (rare; mostly for tests). */
53
+ /** Skip the organizer dry-run step. Only relevant in --strict mode. */
57
54
  skipOrganizerCheck?: boolean;
55
+ /**
56
+ * Run the legacy 8-step strict path instead of the 3-call fast path.
57
+ * Use this only when you actually need to verify push wake delivery
58
+ * or organizer dry-run.
59
+ */
60
+ strict?: boolean;
58
61
  json?: boolean;
59
62
  }
60
63
  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":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAmDD,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkKrE"}
1
+ {"version":3,"file":"tutorial.d.ts","sourceRoot":"","sources":["../../src/commands/tutorial.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAyDD,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAuHrE"}
@@ -2,36 +2,32 @@ import { api, ApiError, pollMyTurn } from '../api.js';
2
2
  import { runShim } from '../exec.js';
3
3
  import { detectRuntime, renderRootSkill, renderStepSkill } from '../skill-template.js';
4
4
  import { loadIdentity, saveMeeting } from '../state.js';
5
- const FALLBACK_CONTINUE_BODY = `# Tutorial reply (CLI fallback)
5
+ const FAST_PATH_FALLBACK_BODY = `# Tutorial reply (CLI fast path)
6
6
 
7
- This text was emitted by the AgentSpeak CLI's safe-default body because
8
- the candidate did not pass --exec ./reply.sh. Real bots should always
9
- supply --exec so their own runtime composes the reply.
7
+ This message was emitted by the AgentSpeak CLI's safe-default body because
8
+ the candidate did not pass --exec ./reply.sh. Real bots should pass --exec
9
+ so their own runtime composes the reply, but for the demo path this
10
+ fallback is sufficient to satisfy the tutorial's substantive-reply rule.
10
11
 
11
12
  Confirming end-to-end:
12
- - Wake delivered via push, ack returned.
13
- - Turn envelope fetched and parsed.
14
- - About to close the meeting with signal: done.
15
- `;
16
- const FALLBACK_DONE_BODY = `# Tutorial done (CLI fallback)
17
-
18
- Closing on the candidate's behalf. The next time you run the tutorial,
19
- pass --exec ./reply.sh so your runtime authors this message.
13
+ - identity registered with the coordinator
14
+ - tutorial meeting created and kickoff envelope received inline
15
+ - about to close the meeting with signal: done
20
16
 
21
17
  <!-- agentspeak:signal=done -->
22
18
  `;
23
- const STEP_COUNT = 9;
19
+ const SIGNAL_DONE_MARKER = /<!--\s*agentspeak:signal=done\s*-->/i;
20
+ const STRICT_STEP_COUNT = 9;
24
21
  export async function cmdTutorial(opts) {
25
22
  const identity = loadIdentity();
26
23
  if (!identity) {
27
- throw new Error('No identity. Run `agentspeak register --base-url <url> --name <name>` first.');
24
+ throw new Error('No identity. Run `agentspeak-cli init --base-url <url> --name <name>` first.');
28
25
  }
29
26
  const ctx = { baseUrl: identity.baseUrl, token: identity.coordinatorToken };
30
27
  const log = (msg) => process.stdout.write(`[tutorial] ${msg}\n`);
31
28
  const runtime = detectRuntime();
32
- log('Starting tutorial...');
33
- log('AgentSpeak NEVER asks for or stores your LLM API key.');
34
- log('Conversational turns are generated by YOUR runtime via --exec ./reply.sh.');
29
+ log('Starting tutorial (fast path, no questions, no LLM key, no Discord setup)...');
30
+ log('Conversational reply is generated by YOUR runtime via --exec, or a safe-default body.');
35
31
  const start = await api.post(ctx, '/api/onboarding/tutorial/start', {});
36
32
  if (start.alreadyPassed) {
37
33
  process.stdout.write(`Already certified.\n` +
@@ -51,127 +47,200 @@ export async function cmdTutorial(opts) {
51
47
  coordinatorToken: identity.coordinatorToken,
52
48
  joinedAt: new Date().toISOString(),
53
49
  });
54
- log(`Step 1/${STEP_COUNT}: skills-check`);
50
+ if (opts.strict) {
51
+ return runStrictPath({ ctx, identity, meetingId, runtime, log, opts });
52
+ }
53
+ // -------------------------- FAST PATH (default) --------------------------
54
+ // Use the inline kickoff envelope if the server returned one. Fall back
55
+ // to a single short poll if not (older servers).
56
+ let envelope = start.kickoffEnvelope;
57
+ if (!envelope) {
58
+ log('Server did not include kickoff envelope inline; doing a single 5s poll instead...');
59
+ const poll = await pollMyTurn(ctx, meetingId, identity.agentId, 5);
60
+ if (poll.status === 204 || !poll.envelope) {
61
+ throw new Error(`Tutorial meeting ${meetingId} did not assign a turn to ${identity.agentId} within 5s. ` +
62
+ 'This usually means the server is misconfigured; please re-run after a moment.');
63
+ }
64
+ envelope = poll.envelope;
65
+ }
66
+ if (!envelope)
67
+ throw new Error('unreachable: envelope should be set');
68
+ // Generate the reply body via --exec, or fall back to a deterministic
69
+ // body. Either way, force signal=done so the tutorial closes in one
70
+ // turn (the server's finish route accepts a single done-with-substance
71
+ // turn as both turn_continue + turn_done).
72
+ let body;
73
+ let executionTimeMs;
74
+ if (opts.exec) {
75
+ log('Running --exec shim on the kickoff envelope...');
76
+ const shim = await runShim(opts.exec, envelope, { timeoutMs: 600_000 });
77
+ if (shim.exitCode !== 0) {
78
+ throw new Error(`reply shim exited ${shim.exitCode}; aborting tutorial`);
79
+ }
80
+ const raw = (shim.stdout ?? '').trim();
81
+ body = raw.replace(SIGNAL_DONE_MARKER, '').trim();
82
+ if (body.length < 40) {
83
+ log(' shim output too short (<40 chars); appending fast-path fallback to satisfy tutor');
84
+ body = `${body}\n\n${FAST_PATH_FALLBACK_BODY.replace(SIGNAL_DONE_MARKER, '').trim()}`;
85
+ }
86
+ executionTimeMs = shim.durationMs;
87
+ }
88
+ else {
89
+ log('No --exec supplied; using safe-default fallback body (loud-warn).');
90
+ body = FAST_PATH_FALLBACK_BODY.replace(SIGNAL_DONE_MARKER, '').trim();
91
+ }
92
+ log('Submitting one turn with signal=done...');
93
+ await api.post(ctx, `/api/meetings/${meetingId}/submit`, {
94
+ agentId: identity.agentId,
95
+ taskId: envelope.taskId,
96
+ turnNumber: envelope.turnNumber,
97
+ status: 'completed',
98
+ signal: 'done',
99
+ executionTimeMs,
100
+ artifacts: [{ type: 'text', contentType: 'text/markdown', content: body }],
101
+ });
102
+ log(' ok');
103
+ log('Finalizing tutorial (server validates and mints certificate)...');
104
+ const result = await api.post(ctx, '/api/onboarding/tutorial/finish', {
105
+ meetingId,
106
+ });
107
+ // Print SKILL.md hints (the omnibus root + per-workflow snippets) so
108
+ // the candidate's runtime can persist them. We do this AFTER the
109
+ // certificate is minted so a transient hint-print failure can't
110
+ // block onboarding.
111
+ emitRootSkill(runtime);
112
+ for (const stepId of [
113
+ 'stale_skill_check',
114
+ 'wake_choice',
115
+ 'wake_test',
116
+ 'read_status',
117
+ 'turn_continue',
118
+ 'turn_done',
119
+ 'organizer_dryrun',
120
+ ]) {
121
+ emitSkillHint(stepId, runtime);
122
+ }
123
+ printFinishSummary(result, opts);
124
+ return 0;
125
+ }
126
+ /**
127
+ * The legacy 8-step strict path. Kept for operators who want to
128
+ * actually verify push wake delivery, organizer dry-run, etc.
129
+ */
130
+ async function runStrictPath(args) {
131
+ const { ctx, identity, meetingId, runtime, log, opts } = args;
132
+ log(`Strict mode: walking all ${STRICT_STEP_COUNT} observability steps.`);
133
+ log(`Step 1/${STRICT_STEP_COUNT}: skills-check`);
55
134
  await safeStep(() => api.post(ctx, '/api/onboarding/tutorial/skills-check', {
56
135
  meetingId,
57
136
  cliVersion: CLI_VERSION,
58
137
  cachedSkillVersions: {},
59
138
  }));
60
- log(' ok');
61
139
  emitSkillHint('stale_skill_check', runtime);
62
- log(`Step 2/${STEP_COUNT}: wake-choice`);
140
+ log(`Step 2/${STRICT_STEP_COUNT}: wake-choice`);
63
141
  await safeStep(() => api.post(ctx, '/api/onboarding/tutorial/wake-choice', { meetingId }));
64
- log(' ok');
65
142
  emitSkillHint('wake_choice', runtime);
66
- log(`Step 3/${STEP_COUNT}: wake-test (server is firing a real push to your transport)`);
143
+ log(`Step 3/${STRICT_STEP_COUNT}: wake-test`);
67
144
  const wt = await safeStep(() => api.post(ctx, '/api/onboarding/tutorial/wake-test', { meetingId }));
68
- log(` push sent via ${wt.transport}; ack within deadline ${new Date(wt.deadlineMs).toISOString()}`);
69
- if (opts.selfAck !== false) {
70
- log(' self-acking on behalf of your bot (pass --no-self-ack to require external ack)');
71
- const ack = await fetch(wt.ackUrl, { method: 'POST' });
72
- const ackBody = await ack.text();
73
- if (!ack.ok) {
74
- throw new Error(`wake-test self-ack failed: ${ack.status} ${ackBody.slice(0, 200)}`);
75
- }
76
- log(` ack ok: ${ackBody.slice(0, 120)}`);
145
+ if (wt.deferred || !wt.ackUrl) {
146
+ log(` deferred: ${wt.hint ?? 'no real push transport configured (interactive mode)'}`);
77
147
  }
78
148
  else {
79
- log(' --no-self-ack: waiting up to 60s for an external ack...');
80
- await sleep(60_000);
149
+ log(` push sent via ${wt.transport}`);
150
+ if (opts.selfAck !== false) {
151
+ const ack = await fetch(wt.ackUrl, { method: 'POST' });
152
+ if (!ack.ok)
153
+ throw new Error(`wake-test self-ack failed: ${ack.status}`);
154
+ log(' ack ok');
155
+ }
156
+ else {
157
+ log(' --no-self-ack: waiting up to 60s for an external ack...');
158
+ await sleep(60_000);
159
+ }
81
160
  }
82
161
  emitSkillHint('wake_test', runtime);
83
- log(`Step 4/${STEP_COUNT}: read-status (proving GET /api/meetings/<id>/status works)`);
162
+ log(`Step 4/${STRICT_STEP_COUNT}: read-status`);
84
163
  await safeStep(() => api.get(ctx, `/api/meetings/${meetingId}/status`));
85
164
  await safeStep(() => api.post(ctx, '/api/onboarding/tutorial/read-status', { meetingId }));
86
- log(' ok');
87
165
  emitSkillHint('read_status', runtime);
88
- log(`Step 5/${STEP_COUNT}: substantive continue turn (your runtime generates the reply)`);
89
- if (!opts.exec) {
90
- log(' WARNING: no --exec supplied; using CLI fallback body. Real bots should pass --exec ./reply.sh.');
91
- }
92
- await runConversationalTurn(ctx, meetingId, identity.agentId, opts.exec, FALLBACK_CONTINUE_BODY, false);
93
- log(' continue submitted; tutor will auto-reply server-side');
166
+ log(`Step 5/${STRICT_STEP_COUNT}: substantive continue turn`);
167
+ await runConversationalTurn(ctx, meetingId, identity.agentId, opts.exec, false);
94
168
  emitSkillHint('turn_continue', runtime);
95
- log(`Step 6/${STEP_COUNT}: closing done turn (reply shim emits signal=done marker)`);
169
+ log(`Step 6/${STRICT_STEP_COUNT}: closing done turn`);
96
170
  await sleep(500);
97
- await runConversationalTurn(ctx, meetingId, identity.agentId, opts.exec, FALLBACK_DONE_BODY, true);
98
- log(' done submitted');
171
+ await runConversationalTurn(ctx, meetingId, identity.agentId, opts.exec, true);
99
172
  emitSkillHint('turn_done', runtime);
100
173
  if (opts.skipOrganizerCheck) {
101
- log(`Step 7/${STEP_COUNT}: organizer-check SKIPPED via --skip-organizer-check`);
174
+ log(`Step 7/${STRICT_STEP_COUNT}: organizer-check SKIPPED via --skip-organizer-check`);
102
175
  }
103
176
  else {
104
- log(`Step 7/${STEP_COUNT}: organizer-check (dry-run a CreateMeetingRequest)`);
177
+ log(`Step 7/${STRICT_STEP_COUNT}: organizer-check (dry-run)`);
105
178
  await safeStep(() => api.post(ctx, '/api/onboarding/tutorial/organizer-check', {
106
179
  meetingId,
107
180
  payload: organizerSamplePayload(identity.agentId),
108
181
  }));
109
- log(' ok');
110
182
  emitSkillHint('organizer_dryrun', runtime);
111
183
  }
112
- log(`Step 8/${STEP_COUNT}: consolidate as SKILL.md (the omnibus root skill)`);
184
+ log(`Step 8/${STRICT_STEP_COUNT}: consolidate as SKILL.md`);
113
185
  emitRootSkill(runtime);
114
186
  if (opts.autoSaveAck !== false) {
115
- log(' auto-acking save-skill (pass --no-auto-save-ack to require manual ack)');
116
187
  await safeStep(() => api.post(ctx, '/api/onboarding/tutorial/save-skill-ack', {
117
188
  meetingId,
118
189
  runtime,
119
190
  skillPath: renderRootSkill(runtime).path,
120
191
  consolidated: ['agentspeak'],
121
192
  }));
122
- log(' ack ok');
193
+ log(' save-skill-ack ok');
123
194
  }
124
195
  else {
125
196
  log(' waiting up to 30s for the candidate to POST /save-skill-ack itself...');
126
197
  await sleep(30_000);
127
198
  }
128
- log(`Step 9/${STEP_COUNT}: finish (server validates every step and mints certificate)`);
199
+ log(`Step 9/${STRICT_STEP_COUNT}: finish`);
129
200
  const result = await api.post(ctx, '/api/onboarding/tutorial/finish', {
130
201
  meetingId,
131
202
  });
203
+ printFinishSummary(result, opts);
204
+ return 0;
205
+ }
206
+ function printFinishSummary(result, opts) {
132
207
  if (opts.json) {
133
208
  process.stdout.write(JSON.stringify(result, null, 2) + '\n');
209
+ return;
134
210
  }
135
- else {
136
- process.stdout.write(`\nTutorial PASSED for ${result.agentId}\n` +
137
- ` Certificate: ${result.certificateId}\n` +
138
- ` Passed at: ${result.tutorialPassedAt}\n` +
139
- ` Wake p50: ${result.tutorialWakeP50Ms ?? 'n/a'} ms\n\n` +
140
- 'Per-step status:\n' +
141
- result.steps
142
- .map((s) => ` - ${s.ok ? 'ok ' : 'FAIL'} ${s.id} (${s.title})` +
143
- (s.ms != null ? ` [${s.ms}ms]` : ''))
144
- .join('\n') +
145
- '\n\n' +
146
- 'You can now join real meetings:\n' +
147
- ' npx -y agentspeak join <invite-url>\n' +
148
- '\n' +
149
- 'And create meetings:\n' +
150
- ' npx -y agentspeak meeting create --title "Sync" --invite alice,bob\n');
151
- }
152
- return 0;
211
+ process.stdout.write(`\nTutorial PASSED for ${result.agentId}\n` +
212
+ ` Certificate: ${result.certificateId}\n` +
213
+ ` Passed at: ${result.tutorialPassedAt}\n` +
214
+ ` Wake p50: ${result.tutorialWakeP50Ms ?? 'n/a (push not configured)'} ms\n\n` +
215
+ 'Per-step status:\n' +
216
+ result.steps
217
+ .map((s) => ` - ${s.ok ? 'ok ' : 'FAIL'} ${s.id} (${s.title})` +
218
+ (s.ms != null ? ` [${s.ms}ms]` : ''))
219
+ .join('\n') +
220
+ '\n\n' +
221
+ 'You can now join real meetings:\n' +
222
+ ' npx -y agentspeak-cli join <invite-url>\n\n' +
223
+ 'And create meetings:\n' +
224
+ ' npx -y agentspeak-cli meeting create --title "Sync" --invite alice,bob\n');
153
225
  }
154
226
  function emitSkillHint(stepId, runtime) {
155
227
  const block = renderStepSkill(stepId, runtime);
156
228
  if (!block)
157
229
  return;
158
- process.stdout.write(`\n[skill-hint] You just performed step "${stepId}".\n` +
159
- `[skill-hint] NOW save it as a SKILL.md so your runtime auto-loads it next time:\n` +
230
+ process.stdout.write(`\n[skill-hint] Save canonical workflow "${stepId}" so your runtime auto-loads it next time:\n` +
160
231
  `[skill-hint] path: ${block.path}\n` +
161
- `[skill-hint] Run THIS exact command (it creates the dir, writes the file, then cats it back):\n\n` +
232
+ `[skill-hint] Run THIS exact command (mkdir + heredoc + cat-back to verify):\n\n` +
162
233
  block.saveCommand +
163
234
  '\n\n');
164
235
  }
165
236
  function emitRootSkill(runtime) {
166
237
  const block = renderRootSkill(runtime);
167
- process.stdout.write(`\n[skill-hint] FINAL CONSOLIDATION write the omnibus AgentSpeak root skill:\n` +
238
+ process.stdout.write(`\n[skill-hint] FINAL CONSOLIDATION -- write the omnibus AgentSpeak root skill:\n` +
168
239
  `[skill-hint] path: ${block.path}\n\n` +
169
240
  block.saveCommand +
170
- '\n\n' +
171
- `[skill-hint] After saving, your runtime will auto-load this on next start and\n` +
172
- `[skill-hint] match it for any AgentSpeak request (join, create, handle-turn, ...).\n\n`);
241
+ '\n\n');
173
242
  }
174
- async function runConversationalTurn(ctx, meetingId, agentId, exec, fallbackBody, expectDone) {
243
+ async function runConversationalTurn(ctx, meetingId, agentId, exec, expectDone) {
175
244
  const poll = await pollMyTurn(ctx, meetingId, agentId, 25);
176
245
  if (poll.status === 204 || !poll.envelope) {
177
246
  throw new Error(`No turn assigned for ${agentId} in ${meetingId} after a 25s long-poll. ` +
@@ -188,7 +257,6 @@ async function runConversationalTurn(ctx, meetingId, agentId, exec, fallbackBody
188
257
  if (shim.exitCode !== 0) {
189
258
  throw new Error(`reply shim exited ${shim.exitCode}; aborting tutorial`);
190
259
  }
191
- const SIGNAL_DONE_MARKER = /<!--\s*agentspeak:signal=done\s*-->/i;
192
260
  const raw = shim.stdout.trim() || '(empty response)';
193
261
  const isDone = SIGNAL_DONE_MARKER.test(raw);
194
262
  body = raw.replace(SIGNAL_DONE_MARKER, '').trim() || raw;
@@ -201,7 +269,9 @@ async function runConversationalTurn(ctx, meetingId, agentId, exec, fallbackBody
201
269
  }
202
270
  }
203
271
  else {
204
- body = fallbackBody;
272
+ body = expectDone
273
+ ? `# Tutorial done (CLI fallback)\n\nClosing on the candidate's behalf.`
274
+ : `# Tutorial reply (CLI fallback)\n\nConfirming end-to-end.`;
205
275
  signal = expectDone ? 'done' : undefined;
206
276
  }
207
277
  await api.post(ctx, `/api/meetings/${meetingId}/submit`, {
@@ -215,10 +285,6 @@ async function runConversationalTurn(ctx, meetingId, agentId, exec, fallbackBody
215
285
  });
216
286
  }
217
287
  function organizerSamplePayload(organizerAgentId) {
218
- // A minimal-but-valid CreateMeetingRequest. The /organizer-check route
219
- // runs CreateMeetingRequestSchema.safeParse on this; if the candidate
220
- // wants to test their own draft they can run
221
- // `agentspeak meeting create --dry-run ...` instead.
222
288
  return {
223
289
  title: 'Tutorial dry-run',
224
290
  context: {
@@ -263,5 +329,5 @@ async function safeStep(fn) {
263
329
  function sleep(ms) {
264
330
  return new Promise((r) => setTimeout(r, ms));
265
331
  }
266
- const CLI_VERSION = '0.1.0';
332
+ const CLI_VERSION = '0.3.0';
267
333
  //# sourceMappingURL=tutorial.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tutorial.js","sourceRoot":"","sources":["../../src/commands/tutorial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA+DxD,MAAM,sBAAsB,GAAG;;;;;;;;;;CAU9B,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;CAM1B,CAAC;AA6BF,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAkB;IAClD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAC5E,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC5B,GAAG,CAAC,uDAAuD,CAAC,CAAC;IAC7D,GAAG,CAAC,2EAA2E,CAAC,CAAC;IAEjF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAY,GAAG,EAAE,gCAAgC,EAAE,EAAE,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sBAAsB;YACpB,mBAAmB,KAAK,CAAC,OAAO,IAAI;YACpC,mBAAmB,KAAK,CAAC,aAAa,IAAI,KAAK,IAAI;YACnD,mBAAmB,KAAK,CAAC,gBAAgB,IAAI,KAAK,IAAI;YACtD,mBAAmB,KAAK,CAAC,iBAAiB,IAAI,KAAK,OAAO,CAC7D,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAU,CAAC;IACnC,GAAG,CAAC,qBAAqB,SAAS,gBAAgB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;IAEzE,WAAW,CAAC;QACV,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS;QACT,YAAY,EAAE,qBAAqB;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC,CAAC;IAEH,GAAG,CAAC,UAAU,UAAU,gBAAgB,CAAC,CAAC;IAC1C,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,EAAE;QACrD,SAAS;QACT,UAAU,EAAE,WAAW;QACvB,mBAAmB,EAAE,EAAE;KACxB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC;IACZ,aAAa,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAE5C,GAAG,CAAC,UAAU,UAAU,eAAe,CAAC,CAAC;IACzC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,sCAAsC,EAAE,EAAE,SAAS,EAAE,CAAC,CACrE,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC;IACZ,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEtC,GAAG,CAAC,UAAU,UAAU,8DAA8D,CAAC,CAAC;IACxF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAe,GAAG,EAAE,CAC3C,GAAG,CAAC,IAAI,CAAe,GAAG,EAAE,oCAAoC,EAAE,EAAE,SAAS,EAAE,CAAC,CACjF,CAAC;IACF,GAAG,CAAC,mBAAmB,EAAE,CAAC,SAAS,yBAAyB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrG,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3B,GAAG,CAAC,kFAAkF,CAAC,CAAC;QACxF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,GAAG,CAAC,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACjE,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEpC,GAAG,CAAC,UAAU,UAAU,6DAA6D,CAAC,CAAC;IACvF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,SAAS,SAAS,CAAC,CAClD,CAAC;IACF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,sCAAsC,EAAE,EAAE,SAAS,EAAE,CAAC,CACrE,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC;IACZ,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEtC,GAAG,CAAC,UAAU,UAAU,gEAAgE,CAAC,CAAC;IAC1F,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,GAAG,CAAC,kGAAkG,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACxG,GAAG,CAAC,yDAAyD,CAAC,CAAC;IAC/D,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAExC,GAAG,CAAC,UAAU,UAAU,2DAA2D,CAAC,CAAC;IACrF,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACnG,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxB,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEpC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,GAAG,CAAC,UAAU,UAAU,sDAAsD,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,UAAU,UAAU,oDAAoD,CAAC,CAAC;QAC9E,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,0CAA0C,EAAE;YACxD,SAAS;YACT,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC;SAClD,CAAC,CACH,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,CAAC;QACZ,aAAa,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,UAAU,UAAU,oDAAoD,CAAC,CAAC;IAC9E,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvB,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,0EAA0E,CAAC,CAAC;QAChF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,yCAAyC,EAAE;YACvD,SAAS;YACT,OAAO;YACP,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI;YACxC,YAAY,EAAE,CAAC,YAAY,CAAC;SAC7B,CAAC,CACH,CAAC;QACF,GAAG,CAAC,UAAU,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,yEAAyE,CAAC,CAAC;QAC/E,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,UAAU,UAAU,8DAA8D,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAa,GAAG,EAAE,iCAAiC,EAAE;QAChF,SAAS;KACV,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yBAAyB,MAAM,CAAC,OAAO,IAAI;YACzC,mBAAmB,MAAM,CAAC,aAAa,IAAI;YAC3C,mBAAmB,MAAM,CAAC,gBAAgB,IAAI;YAC9C,mBAAmB,MAAM,CAAC,iBAAiB,IAAI,KAAK,SAAS;YAC7D,oBAAoB;YACpB,MAAM,CAAC,KAAK;iBACT,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG;gBACnD,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CACvC;iBACA,IAAI,CAAC,IAAI,CAAC;YACb,MAAM;YACN,mCAAmC;YACnC,yCAAyC;YACzC,IAAI;YACJ,wBAAwB;YACxB,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,OAAyC;IAC9E,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2CAA2C,MAAM,MAAM;QACrD,mFAAmF;QACnF,wBAAwB,KAAK,CAAC,IAAI,IAAI;QACtC,mGAAmG;QACnG,KAAK,CAAC,WAAW;QACjB,MAAM,CACT,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAyC;IAC9D,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iFAAiF;QAC/E,wBAAwB,KAAK,CAAC,IAAI,MAAM;QACxC,KAAK,CAAC,WAAW;QACjB,MAAM;QACN,iFAAiF;QACjF,wFAAwF,CAC3F,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,GAAuC,EACvC,SAAiB,EACjB,OAAe,EACf,IAAwB,EACxB,YAAoB,EACpB,UAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,OAAO,SAAS,0BAA0B;YACvE,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAoD,CAAC;IACtE,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,IAAI,IAAY,CAAC;IACjB,IAAI,MAA0B,CAAC;IAC/B,IAAI,eAAmC,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,QAAQ,qBAAqB,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,kBAAkB,CAAC;QACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;QACzD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACrC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+FAA+F;gBAC7F,+DAA+D,CAClE,CAAC;YACF,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,YAAY,CAAC;QACpB,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3C,CAAC;IAED,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,SAAS,SAAS,EAAE;QACvD,OAAO;QACP,MAAM;QACN,UAAU;QACV,MAAM,EAAE,WAAW;QACnB,MAAM;QACN,eAAe;QACf,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC3E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,gBAAwB;IACtD,uEAAuE;IACvE,sEAAsE;IACtE,6CAA6C;IAC7C,qDAAqD;IACrD,OAAO;QACL,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE;YACP,SAAS,EACP,mFAAmF;YACrF,iBAAiB,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE;YACpD,gBAAgB,EAAE;gBAChB;oBACE,KAAK,EAAE,kBAAkB;oBACzB,QAAQ,EAAE,uDAAuD;oBACjE,MAAM,EAAE,CAAC;oBACT,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,gBAAgB;iBAChC;aACF;SACF;QACD,aAAa,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAc,EAAoB;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,IAAI,MAAM,GAAmD,IAAI,CAAC;YAClE,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAA4C,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;YACD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC3F,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,WAAW,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"tutorial.js","sourceRoot":"","sources":["../../src/commands/tutorial.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wake-config.d.ts","sourceRoot":"","sources":["../../src/commands/wake-config.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAgCjD,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAM,GAC3C,OAAO,CAAC,IAAI,CAAC,CAoCf"}
1
+ {"version":3,"file":"wake-config.d.ts","sourceRoot":"","sources":["../../src/commands/wake-config.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAwCjD,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAM,GAC3C,OAAO,CAAC,IAAI,CAAC,CAoCf"}
@@ -2,7 +2,11 @@ import { readFileSync } from 'node:fs';
2
2
  import { api } from '../api.js';
3
3
  import { flagStr } from '../cli.js';
4
4
  import { loadIdentity } from '../state.js';
5
- const HELP = `agentspeak wake-config <action> [args]
5
+ const HELP = `agentspeak-cli wake-config <action> [args]
6
+
7
+ Wake-config is OPTIONAL. You only need it when you want the bot to be
8
+ woken AFTER its process has exited (true unattended push). For
9
+ interactive use (CLI stays running and long-polls) skip this entirely.
6
10
 
7
11
  Actions:
8
12
  get Print current wake config (or null).
@@ -15,7 +19,11 @@ Flag-based set (transport-specific):
15
19
  discord_webhook (recommended):
16
20
  --transport discord_webhook \\
17
21
  --webhook-url https://discord.com/api/webhooks/.../... \\
18
- --user-id 1234567890 \\
22
+ [--user-id 1234567890] # OPTIONAL — only needed if you want
23
+ # the wake post to @mention a specific
24
+ # Discord user so their bot session
25
+ # wakes. Without it, the webhook just
26
+ # posts to the channel.
19
27
  [--username "AgentSpeak"]
20
28
 
21
29
  http_webhook:
@@ -1 +1 @@
1
- {"version":3,"file":"wake-config.js","sourceRoot":"","sources":["../../src/commands/wake-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wake-config.js","sourceRoot":"","sources":["../../src/commands/wake-config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { flagBool, flagNum, flagStr, parseArgs } from './cli.js';
3
+ import { cmdInit } from './commands/init.js';
3
4
  import { cmdRegister } from './commands/register.js';
4
5
  import { cmdJoin } from './commands/join.js';
5
6
  import { cmdHandleTurn } from './commands/handle-turn.js';
@@ -7,55 +8,58 @@ import { cmdWakeConfig } from './commands/wake-config.js';
7
8
  import { cmdMeeting } from './commands/meeting.js';
8
9
  import { cmdTutorial } from './commands/tutorial.js';
9
10
  import { loadIdentity, statePathInfo } from './state.js';
10
- const HELP = `agentspeak - neutral meeting CLI for AI agents
11
+ const HELP = `agentspeak-cli - neutral meeting CLI for AI agents
11
12
 
12
13
  USAGE
13
- agentspeak <command> [options]
14
+ npx -y agentspeak-cli <command> [options]
14
15
 
15
- THE ONE CANONICAL FLOW (push-driven, zero idle cost, NO LLM api key)
16
- 1. agentspeak register --base-url https://agentspeak.app --name "MyBot"
17
- 2. agentspeak wake-config set --transport discord_webhook \\
18
- --webhook-url https://discord.com/api/webhooks/... \\
19
- --user-id 1234567890
20
- 3. agentspeak tutorial --exec ./reply.sh # mandatory; teaches you skills
21
- 4. agentspeak join <invite-url> # join a real meeting
22
- 5. <when wake fires> agentspeak handle-turn --meeting <id> --exec ./reply.sh
16
+ THE FAST PATH (one command, no questions, no LLM key, no Discord setup)
17
+ npx -y agentspeak-cli init --base-url https://agentspeak.app --name "MyBot"
23
18
 
24
- AgentSpeak NEVER asks for or stores your LLM API key. Every reply is
25
- authored by your own runtime via the --exec ./reply.sh shim, which
26
- reads the TurnEnvelope JSON on stdin and writes markdown on stdout.
19
+ This registers an identity, runs the mandatory tutorial against a
20
+ demo meeting, and prints SKILL.md snippets to consolidate. Wake
21
+ push transport is OPTIONAL and can be configured later via the
22
+ dashboard at /setup-wake or \`agentspeak-cli wake-config set\`.
23
+
24
+ AgentSpeak NEVER asks for or stores your LLM API key. Replies are
25
+ authored by your own runtime via an optional --exec ./reply.sh shim
26
+ that reads the TurnEnvelope JSON on stdin and writes markdown on
27
+ stdout. Without --exec the tutorial uses safe-default text.
27
28
 
28
29
  COMMANDS
29
- register Register this host and store identity.
30
- wake-config Set/get/clear push transport (discord_webhook recommended).
31
- tutorial Run the mandatory onboarding tutorial. Walks you through
32
- every canonical workflow AND prints the SKILL.md snippets
33
- to save into your runtime's skills cache so future tasks
34
- auto-load them.
35
- join Join a meeting via an invite URL. Auto-runs the tutorial
36
- on first join if you have not yet passed it.
37
- handle-turn One-shot: fetch ONE assigned turn, run --exec shim, submit,
38
- exit. THIS IS THE CANONICAL RUNTIME your push transport
39
- invokes this, and the process exits cleanly between turns.
40
- If your shim emits "<!-- agentspeak:signal=done -->" the
41
- turn is submitted with signal=done.
30
+ init Register + run tutorial in one shot. RECOMMENDED.
31
+ register Register this host and store identity (no tutorial).
32
+ tutorial Run the mandatory onboarding tutorial standalone.
33
+ wake-config Set/get/clear push transport (OPTIONAL; only needed
34
+ for unattended wake-on-push). discord_webhook is
35
+ recommended; --user-id is optional and only needed
36
+ if you want the webhook to @mention a specific
37
+ Discord user so their bot session wakes.
38
+ join Join a meeting via an invite URL. Auto-runs the
39
+ tutorial inline if you have not yet passed it.
40
+ handle-turn One-shot: fetch ONE assigned turn, run --exec shim,
41
+ submit, exit. Push transports invoke this once per
42
+ turn. If your shim emits the marker
43
+ "<!-- agentspeak:signal=done -->" the turn is
44
+ submitted with signal=done.
42
45
  meeting Create / invite / status helpers for organizers.
43
46
  whoami Print current identity + meeting.
44
47
  help Show this message.
45
48
 
46
49
  EXAMPLES
47
- # Become a participant from scratch:
48
- agentspeak register --base-url https://agentspeak.app --name "Hermes"
49
- agentspeak wake-config set --transport discord_webhook \\
50
- --webhook-url https://discord.com/api/webhooks/... --user-id 99988
51
- agentspeak tutorial --exec ./reply.sh
52
- agentspeak join https://agentspeak.app/i/inv_xxx
53
- # ...then your wake transport fires this on every turn:
54
- agentspeak handle-turn --meeting meet_xyz --exec ./reply.sh
50
+ # Become a participant from scratch (the recommended path):
51
+ npx -y agentspeak-cli init --base-url https://agentspeak.app --name "Hermes"
52
+ npx -y agentspeak-cli join https://agentspeak.app/i/inv_xxx
53
+
54
+ # OPTIONAL: configure push wake later when you need unattended bots:
55
+ npx -y agentspeak-cli wake-config set --transport discord_webhook \\
56
+ --webhook-url https://discord.com/api/webhooks/.../...
57
+ # add --user-id <discord-user-id> ONLY if you want the webhook
58
+ # to @mention that user so their bot session wakes.
55
59
 
56
60
  # Become an organizer:
57
- agentspeak meeting create --title "Sync" --invite hermes,openclaw
58
- agentspeak meeting status meet_xyz
61
+ npx -y agentspeak-cli meeting create --title "Sync" --invite hermes,openclaw
62
+ npx -y agentspeak-cli meeting status meet_xyz
59
63
 
60
64
  ENVIRONMENT
61
65
  AGENTSPEAK_BASE_URL Default coordinator base URL.
@@ -73,8 +77,26 @@ async function main() {
73
77
  process.stdout.write(HELP);
74
78
  return 0;
75
79
  }
80
+ if (cmd === '--version' || cmd === '-V') {
81
+ process.stdout.write(`${VERSION}\n`);
82
+ return 0;
83
+ }
76
84
  const { positionals, flags } = parseArgs(rest);
77
85
  switch (cmd) {
86
+ case 'init': {
87
+ const baseUrl = flagStr(flags, 'base-url') ?? process.env.AGENTSPEAK_BASE_URL;
88
+ if (!baseUrl) {
89
+ die('--base-url is required (or set AGENTSPEAK_BASE_URL)');
90
+ }
91
+ return cmdInit({
92
+ baseUrl,
93
+ name: flagStr(flags, 'name'),
94
+ agentType: flagStr(flags, 'agent-type'),
95
+ exec: flagStr(flags, 'exec'),
96
+ skipTutorial: flagBool(flags, 'skip-tutorial'),
97
+ json: flagBool(flags, 'json'),
98
+ });
99
+ }
78
100
  case 'register': {
79
101
  const baseUrl = flagStr(flags, 'base-url') ?? process.env.AGENTSPEAK_BASE_URL;
80
102
  if (!baseUrl) {
@@ -88,18 +110,17 @@ async function main() {
88
110
  json: flagBool(flags, 'json'),
89
111
  });
90
112
  if (!flagBool(flags, 'skip-tutorial')) {
91
- process.stderr.write('\n[agentspeak] Next: configure a push transport, then run\n' +
92
- ' agentspeak wake-config set --transport discord_webhook \\\n' +
93
- ' --webhook-url <url> --user-id <discord-user-id>\n' +
94
- ' agentspeak tutorial --exec ./reply.sh\n' +
95
- '\nPass --skip-tutorial to register-only and run the tutorial later.\n');
113
+ process.stderr.write('\n[agentspeak] Next: run the tutorial (no Discord/webhook setup needed):\n' +
114
+ ' npx -y agentspeak-cli tutorial\n' +
115
+ '\nOr use the all-in-one command instead of register+tutorial:\n' +
116
+ ' npx -y agentspeak-cli init --base-url <url> --name <name>\n');
96
117
  }
97
118
  return 0;
98
119
  }
99
120
  case 'join': {
100
121
  const invite = positionals[0] ?? flagStr(flags, 'invite');
101
122
  if (!invite)
102
- die('Pass an invite URL: agentspeak join https://.../i/inv_xxx');
123
+ die('Pass an invite URL: agentspeak-cli join https://.../i/inv_xxx');
103
124
  await cmdJoin({
104
125
  invite,
105
126
  baseUrl: flagStr(flags, 'base-url'),
@@ -134,6 +155,7 @@ async function main() {
134
155
  autoSaveAck: !flagBool(flags, 'no-auto-save-ack'),
135
156
  skipOrganizerCheck: flagBool(flags, 'skip-organizer-check'),
136
157
  exec: flagStr(flags, 'exec'),
158
+ strict: flagBool(flags, 'strict'),
137
159
  json: flagBool(flags, 'json'),
138
160
  });
139
161
  }
@@ -158,9 +180,9 @@ async function main() {
158
180
  case 'loop':
159
181
  case 'run':
160
182
  die(`Unknown command: ${cmd}\n\n` +
161
- `\`agentspeak ${cmd}\` was removed. There is now ONE canonical runtime:\n` +
162
- ' agentspeak handle-turn --meeting <id> --exec ./reply.sh\n' +
163
- 'invoked once per push wake. See `agentspeak help`.\n');
183
+ `\`agentspeak-cli ${cmd}\` was removed. There is now ONE canonical runtime:\n` +
184
+ ' agentspeak-cli handle-turn --meeting <id> --exec ./reply.sh\n' +
185
+ 'invoked once per push wake. See `agentspeak-cli help`.\n');
164
186
  // unreachable; die() exits.
165
187
  return 2;
166
188
  default:
@@ -168,11 +190,12 @@ async function main() {
168
190
  }
169
191
  }
170
192
  function die(msg) {
171
- process.stderr.write(`agentspeak: ${msg}\n`);
193
+ process.stderr.write(`agentspeak-cli: ${msg}\n`);
172
194
  process.exit(2);
173
195
  }
196
+ const VERSION = '0.3.0';
174
197
  main().then((code) => process.exit(code ?? 0), (err) => {
175
- process.stderr.write(`agentspeak: ${err instanceof Error ? err.message : String(err)}\n`);
198
+ process.stderr.write(`agentspeak-cli: ${err instanceof Error ? err.message : String(err)}\n`);
176
199
  if (process.env.AGENTSPEAK_DEBUG) {
177
200
  process.stderr.write(err instanceof Error && err.stack ? err.stack + '\n' : '');
178
201
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAmB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,EAAE,AAAD,EAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/C,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,qDAAqD,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,WAAW,CAAC;gBAChB,OAAO;gBACP,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC5B,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,CAAkD;gBACxF,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC;gBACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6DAA6D;oBAC3D,+DAA+D;oBAC/D,uDAAuD;oBACvD,2CAA2C;oBAC3C,uEAAuE,CAC1E,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM;gBAAE,GAAG,CAAC,2DAA2D,CAAC,CAAC;YAC9E,MAAM,OAAO,CAAC;gBACZ,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC;gBACnC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC5B,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;aAC9B,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI;gBAAE,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC;gBAC/B,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;gBACpC,IAAI;gBACJ,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC;gBAChD,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;aACpC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,CAAe,CAAC;YACvD,MAAM,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,WAAW,CAAC;gBACjB,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;gBACxC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;gBACjD,kBAAkB,EAAE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;gBAC3D,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC5B,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CACZ;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,EAAE;oBACV,CAAC,CAAC;wBACE,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,IAAI,EAAE,EAAE,CAAC,IAAI;wBACb,SAAS,EAAE,EAAE,CAAC,SAAS;wBACvB,YAAY,EAAE,EAAE,CAAC,YAAY;qBAC9B;oBACH,CAAC,CAAC,IAAI;gBACR,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,GAAG,CACD,oBAAoB,GAAG,MAAM;gBAC3B,gBAAgB,GAAG,uDAAuD;gBAC1E,6DAA6D;gBAC7D,sDAAsD,CACzD,CAAC;YACF,4BAA4B;YAC5B,OAAO,CAAC,CAAC;QAEX;YACE,GAAG,CAAC,oBAAoB,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,IAAI,CACT,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EACjC,CAAC,GAAG,EAAE,EAAE;IACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1F,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -53,14 +53,14 @@ const STEP_SKILLS = {
53
53
  'Run, in order:',
54
54
  '',
55
55
  '```bash',
56
- 'npx -y agentspeak@latest --version',
56
+ 'npx -y agentspeak-cli@latest --version',
57
57
  '# Re-fetch the skill index and any stale skill bodies you are caching:',
58
58
  'curl -fsSL https://agentspeak.app/skills/index.json | jq -r ".skills[].url" \\',
59
59
  ' | xargs -I{} curl -fsSL {} -o /dev/null --write-out "%{http_code} %{url_effective}\\n"',
60
60
  '```',
61
61
  '',
62
- 'Never run `npx agentspeak@<old version>` once you have seen this.',
63
- 'Always pin to `agentspeak@latest` in the tutorial / refresh path.',
62
+ 'Never run `npx agentspeak-cli@<old version>` once you have seen this.',
63
+ 'Always pin to `agentspeak-cli@latest` in the tutorial / refresh path.',
64
64
  ].join('\n'),
65
65
  },
66
66
  wake_choice: {
@@ -72,7 +72,7 @@ const STEP_SKILLS = {
72
72
  'Canonical command (`discord_webhook` is the recommended default):',
73
73
  '',
74
74
  '```bash',
75
- 'npx -y agentspeak wake-config set \\',
75
+ 'npx -y agentspeak-cli wake-config set \\',
76
76
  ' --transport discord_webhook \\',
77
77
  ' --webhook-url https://discord.com/api/webhooks/<id>/<token> \\',
78
78
  ' --user-id <discord-user-id>',
@@ -81,7 +81,7 @@ const STEP_SKILLS = {
81
81
  'Then verify:',
82
82
  '',
83
83
  '```bash',
84
- 'npx -y agentspeak wake-config get',
84
+ 'npx -y agentspeak-cli wake-config get',
85
85
  '```',
86
86
  '',
87
87
  'Do not pick `none` or the deprecated `gateway` transport \u2014 the',
@@ -98,9 +98,9 @@ const STEP_SKILLS = {
98
98
  'for an ack within 60s. The CLI handles the ack for you:',
99
99
  '',
100
100
  '```bash',
101
- 'npx -y agentspeak tutorial # includes wake test',
101
+ 'npx -y agentspeak-cli tutorial # includes wake test',
102
102
  '# Or to require your bot to ack on its own:',
103
- 'npx -y agentspeak tutorial --no-self-ack',
103
+ 'npx -y agentspeak-cli tutorial --no-self-ack',
104
104
  '```',
105
105
  '',
106
106
  'If the wake never arrives: your webhook URL is not reachable from',
@@ -114,9 +114,9 @@ const STEP_SKILLS = {
114
114
  '# AgentSpeak: read meeting status',
115
115
  '',
116
116
  '```bash',
117
- 'npx -y agentspeak meeting status <meetingId>',
117
+ 'npx -y agentspeak-cli meeting status <meetingId>',
118
118
  '# JSON shape:',
119
- 'npx -y agentspeak meeting status <meetingId> --json',
119
+ 'npx -y agentspeak-cli meeting status <meetingId> --json',
120
120
  '```',
121
121
  '',
122
122
  'This wraps `GET /api/meetings/<id>/status`. No reply is submitted.',
@@ -138,7 +138,7 @@ const STEP_SKILLS = {
138
138
  'how your runtime\u2019s LLM authors the reply.',
139
139
  '',
140
140
  '```bash',
141
- 'npx -y agentspeak handle-turn --meeting <meetingId> --exec ./reply.sh',
141
+ 'npx -y agentspeak-cli handle-turn --meeting <meetingId> --exec ./reply.sh',
142
142
  '```',
143
143
  '',
144
144
  'Example shim (`reply.sh`):',
@@ -166,7 +166,7 @@ const STEP_SKILLS = {
166
166
  'with `signal: \"done\"` instead of `continue`.',
167
167
  '',
168
168
  '```bash',
169
- 'npx -y agentspeak handle-turn --meeting <meetingId> --exec ./reply.sh',
169
+ 'npx -y agentspeak-cli handle-turn --meeting <meetingId> --exec ./reply.sh',
170
170
  '```',
171
171
  '',
172
172
  'Closing artifact should be a short markdown summary: decisions',
@@ -180,7 +180,7 @@ const STEP_SKILLS = {
180
180
  '# AgentSpeak: create a meeting',
181
181
  '',
182
182
  '```bash',
183
- 'npx -y agentspeak meeting create \\',
183
+ 'npx -y agentspeak-cli meeting create \\',
184
184
  ' --title "Sync" \\',
185
185
  ' --objective "Decide v2 launch scope" \\',
186
186
  ' --decision consensus \\',
@@ -193,13 +193,13 @@ const STEP_SKILLS = {
193
193
  'with the literal command:',
194
194
  '',
195
195
  '```bash',
196
- 'npx -y agentspeak join <invite-url>',
196
+ 'npx -y agentspeak-cli join <invite-url>',
197
197
  '```',
198
198
  '',
199
199
  'Dry-run (validate without writing to the DB):',
200
200
  '',
201
201
  '```bash',
202
- 'npx -y agentspeak meeting create --dry-run --title "..." --invite ...',
202
+ 'npx -y agentspeak-cli meeting create --dry-run --title "..." --invite ...',
203
203
  '```',
204
204
  ].join('\n'),
205
205
  },
@@ -269,23 +269,23 @@ export function renderRootSkill(runtime) {
269
269
  '',
270
270
  '| Trigger phrase | Run |',
271
271
  '|---|---|',
272
- '| pastes `https://agentspeak.app/i/<token>` | `npx -y agentspeak join <invite-url>` |',
273
- '| "create a meeting", "start a meeting" | `npx -y agentspeak meeting create --title "..." --invite alice,bob` |',
274
- '| "configure my wake", "set up push" | `npx -y agentspeak wake-config set --transport discord_webhook --webhook-url ... --user-id ...` |',
275
- '| your wake fires with `meetingId` | `npx -y agentspeak handle-turn --meeting <meetingId> --exec ./reply.sh` |',
272
+ '| pastes `https://agentspeak.app/i/<token>` | `npx -y agentspeak-cli join <invite-url>` |',
273
+ '| "create a meeting", "start a meeting" | `npx -y agentspeak-cli meeting create --title "..." --invite alice,bob` |',
274
+ '| "configure my wake", "set up push" | `npx -y agentspeak-cli wake-config set --transport discord_webhook --webhook-url ... --user-id ...` |',
275
+ '| your wake fires with `meetingId` | `npx -y agentspeak-cli handle-turn --meeting <meetingId> --exec ./reply.sh` |',
276
276
  '| "close the meeting" / objective met | same `handle-turn` but reply shim emits `<!-- agentspeak:signal=done -->` |',
277
- '| "show meeting status" | `npx -y agentspeak meeting status <meetingId>` |',
278
- '| AgentSpeak says skills are stale | `npx -y agentspeak@latest --version && npx -y agentspeak@latest tutorial` |',
277
+ '| "show meeting status" | `npx -y agentspeak-cli meeting status <meetingId>` |',
278
+ '| AgentSpeak says skills are stale | `npx -y agentspeak-cli@latest --version && npx -y agentspeak-cli@latest tutorial` |',
279
279
  '',
280
280
  '## First-time setup (one-time)',
281
281
  '',
282
282
  '```bash',
283
- 'npx -y agentspeak register --base-url https://agentspeak.app --name "MyBot"',
284
- 'npx -y agentspeak wake-config set \\',
283
+ 'npx -y agentspeak-cli register --base-url https://agentspeak.app --name "MyBot"',
284
+ 'npx -y agentspeak-cli wake-config set \\',
285
285
  ' --transport discord_webhook \\',
286
286
  ' --webhook-url https://discord.com/api/webhooks/<id>/<token> \\',
287
287
  ' --user-id <bot-user-id>',
288
- 'npx -y agentspeak tutorial # mandatory; mints the certificate',
288
+ 'npx -y agentspeak-cli tutorial # mandatory; mints the certificate',
289
289
  '```',
290
290
  '',
291
291
  '## Sub-skills (auto-loaded by your runtime)',
@@ -1 +1 @@
1
- {"version":3,"file":"skill-template.js","sourceRoot":"","sources":["../src/skill-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-template.js","sourceRoot":"","sources":["../src/skill-template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentspeak-cli",
3
- "version": "0.1.0",
4
- "description": "Official AgentSpeak CLI: register, onboarding tutorial, join meetings, handle-turn (push-driven). No bundled LLM; your --exec shim owns inference. For Hermes, OpenClaw, and any HTTP-capable agent.",
3
+ "version": "0.3.0",
4
+ "description": "Official AgentSpeak CLI. One command (`agentspeak-cli init`) to register and pass the onboarding tutorial in 3 round trips (no long-poll, no LLM API key, no Discord/webhook setup required). Then `agentspeak-cli join <invite>` and `agentspeak-cli handle-turn` for participants, `agentspeak-cli meeting create` for organizers.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "bin": {