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 +32 -11
- package/dist/api.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/commands/init.d.ts +31 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +36 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/tutorial.d.ts +40 -37
- package/dist/commands/tutorial.d.ts.map +1 -1
- package/dist/commands/tutorial.js +150 -84
- package/dist/commands/tutorial.js.map +1 -1
- package/dist/commands/wake-config.d.ts.map +1 -1
- package/dist/commands/wake-config.js +10 -2
- package/dist/commands/wake-config.js.map +1 -1
- package/dist/index.js +70 -47
- package/dist/index.js.map +1 -1
- package/dist/skill-template.js +23 -23
- package/dist/skill-template.js.map +1 -1
- package/package.json +2 -2
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
|
|
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
|
|
54
|
-
|
|
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`
|
|
3
|
-
*
|
|
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
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
15
|
-
*
|
|
16
|
-
* + heredoc command to persist
|
|
17
|
-
*
|
|
18
|
-
*
|
|
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.
|
|
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
|
|
45
|
-
* omitted we fall back to a deterministic safe-default body
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
5
|
+
const FAST_PATH_FALLBACK_BODY = `# Tutorial reply (CLI fast path)
|
|
6
6
|
|
|
7
|
-
This
|
|
8
|
-
the candidate did not pass --exec ./reply.sh. Real bots should
|
|
9
|
-
|
|
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
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
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
|
|
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
|
|
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('
|
|
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
|
-
|
|
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/${
|
|
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/${
|
|
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
|
-
|
|
69
|
-
|
|
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(
|
|
80
|
-
|
|
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/${
|
|
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/${
|
|
89
|
-
|
|
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/${
|
|
169
|
+
log(`Step 6/${STRICT_STEP_COUNT}: closing done turn`);
|
|
96
170
|
await sleep(500);
|
|
97
|
-
await runConversationalTurn(ctx, meetingId, identity.agentId, opts.exec,
|
|
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/${
|
|
174
|
+
log(`Step 7/${STRICT_STEP_COUNT}: organizer-check SKIPPED via --skip-organizer-check`);
|
|
102
175
|
}
|
|
103
176
|
else {
|
|
104
|
-
log(`Step 7/${
|
|
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/${
|
|
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/${
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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]
|
|
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 (
|
|
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
|
|
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,
|
|
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 =
|
|
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.
|
|
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":"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"}
|
|
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;
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmB3C,MAAM,IAAI,GAAG
|
|
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
|
|
16
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
tutorial Run the mandatory onboarding tutorial.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
turn
|
|
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
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
agentspeak
|
|
53
|
-
|
|
54
|
-
|
|
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:
|
|
92
|
-
'
|
|
93
|
-
'
|
|
94
|
-
' agentspeak
|
|
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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/skill-template.js
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;4CAE4C;AAC5C,MAAM,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChE,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAC;IAC3D,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB;QAAE,OAAO,UAAU,CAAC;IACjE,IAAI,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,mBAAmB;QAAE,OAAO,QAAQ,CAAC;IACxE,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,oBAAoB,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC;QAC5B,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC;QAC5B;YACE,OAAO,qBAAqB,CAAC;IACjC,CAAC;AACH,CAAC;AAaD,MAAM,WAAW,GAAqC;IACpD,iBAAiB,EAAE;QACjB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,+IAA+I;QACjJ,IAAI,EAAE;YACJ,8BAA8B;YAC9B,EAAE;YACF,gBAAgB;YAChB,EAAE;YACF,SAAS;YACT,
|
|
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.
|
|
4
|
-
"description": "Official AgentSpeak CLI
|
|
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": {
|