agentspeak-cli 0.16.3 → 0.18.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.
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Done-marker auto-append (Issue 2 from `meet_nHb6qBgf2EfvDOb0SchLBA`).
3
+ *
4
+ * Some agent LLMs reliably write closing intent in PROSE ("Meeting
5
+ * closing now", "we're done", "good debate, closing") but forget to
6
+ * include the literal `<!-- agentspeak:signal=done -->` HTML comment
7
+ * that the engine actually reads. The engine then keeps rotating the
8
+ * floor back to the un-done agent and burns 2-3 wasted turns before the
9
+ * bot finally remembers the marker.
10
+ *
11
+ * This helper detects the unambiguous "engine has explicitly asked us
12
+ * to close" signal — the `<!-- agentspeak:engine=done_nudge -->` marker
13
+ * embedded in every coordinator done-nudge recap — combined with prose
14
+ * that already says "we're done". When both are present, the CLI
15
+ * auto-appends the done marker before submit. Deliberately narrow so
16
+ * we never auto-close a turn the agent didn't intend to close.
17
+ *
18
+ * Pure, dependency-free, easy to unit-test.
19
+ */
20
+ /** Marker the engine embeds in every coordinator done-nudge recap. */
21
+ export const ENGINE_DONE_NUDGE_MARKER = /<!--\s*agentspeak:engine=done_nudge\s*-->/i;
22
+ /** Marker an agent must emit to close the meeting from its side. */
23
+ export const SIGNAL_DONE_MARKER = /<!--\s*agentspeak:signal=done\s*-->/i;
24
+ /**
25
+ * Strong closing-intent phrases. Tightened to avoid the common
26
+ * false-positives:
27
+ * - "we're not done" / "i'm not done"
28
+ * - "i'm done with X" / "i'm done refactoring" (done with a sub-task,
29
+ * not the whole meeting)
30
+ * - "the meeting was a great discussion" (past tense, no closing
31
+ * intent)
32
+ *
33
+ * The regex requires either an unambiguous meeting-level verb
34
+ * ("meeting closing now", "consensus reached", "ready to close",
35
+ * "let's close") OR "we're done"/"i'm done" at end of input / followed
36
+ * by a sentence boundary (period/exclamation/end-of-line), NOT
37
+ * followed by "with" or "refactoring" etc.
38
+ */
39
+ const CLOSING_INTENT_PATTERNS = [
40
+ /\bmeeting\s+(is\s+)?clos(ing|ed)\s+(now|here|from\s+(my|our)\s+side)\b/i,
41
+ /\b(let'?s|let\s+us)\s+close\s+(this|the)?\s*meeting\b/i,
42
+ /\b(ready|happy|ok(ay)?)\s+to\s+close\b/i,
43
+ /\bconsensus\s+reached\b/i,
44
+ /\bno\s+further\s+(points|comments|to\s+add|objections|questions)\b/i,
45
+ /\bclosing\s+(this|the)?\s*meeting\s+(now|here|from\s+(my|our)\s+side)\b/i,
46
+ /\bclosing\s+from\s+(my|our)\s+side\b/i,
47
+ // "we're done." / "i'm done." at a sentence boundary, NOT followed by "with"/"-ing"/etc.
48
+ /(^|[.!?\s])(we'?re|i'?m)\s+done\s*[.!?\n]/i,
49
+ /(^|[.!?\s])(we'?re|i'?m)\s+done\s*$/i,
50
+ ];
51
+ /**
52
+ * Counter-patterns: even if a closing-intent phrase fires, abort when
53
+ * any of these match (they negate the intent or scope it to a
54
+ * sub-task).
55
+ */
56
+ const NEGATING_PATTERNS = [
57
+ /\b(not|n'?t)\s+done\b/i,
58
+ /\b(we'?re|i'?m)\s+not\s+(done|closing)\b/i,
59
+ ];
60
+ export function hasClosingIntent(reply) {
61
+ if (!reply || reply.trim().length === 0)
62
+ return false;
63
+ if (NEGATING_PATTERNS.some((re) => re.test(reply)))
64
+ return false;
65
+ return CLOSING_INTENT_PATTERNS.some((re) => re.test(reply));
66
+ }
67
+ /**
68
+ * Walk every artifact-content / summary string in the envelope's
69
+ * `context.recentTurns` and `context.previousTurns` looking for the
70
+ * engine's done-nudge marker. The engine ALWAYS embeds it on the
71
+ * literal first line of every done-nudge recap turn, so a substring
72
+ * scan is sufficient.
73
+ */
74
+ export function envelopeShowsDoneNudge(envelope) {
75
+ if (!envelope || typeof envelope !== 'object')
76
+ return false;
77
+ const ctx = envelope.context;
78
+ if (!ctx || typeof ctx !== 'object')
79
+ return false;
80
+ const recent = ctx.recentTurns;
81
+ if (Array.isArray(recent)) {
82
+ for (const t of recent) {
83
+ if (!t || typeof t !== 'object')
84
+ continue;
85
+ const artifacts = t.artifacts;
86
+ if (!Array.isArray(artifacts))
87
+ continue;
88
+ for (const a of artifacts) {
89
+ if (!a || typeof a !== 'object')
90
+ continue;
91
+ const content = a.content;
92
+ if (typeof content === 'string' && ENGINE_DONE_NUDGE_MARKER.test(content)) {
93
+ return true;
94
+ }
95
+ }
96
+ }
97
+ }
98
+ // Compressed summaries in `previousTurns` typically truncate to a
99
+ // single-line excerpt that may strip HTML comments — but the engine
100
+ // also flushes the marker verbatim sometimes. Cheap to scan.
101
+ const previous = ctx.previousTurns;
102
+ if (Array.isArray(previous)) {
103
+ for (const t of previous) {
104
+ if (!t || typeof t !== 'object')
105
+ continue;
106
+ const summary = t.summary;
107
+ if (typeof summary === 'string' && ENGINE_DONE_NUDGE_MARKER.test(summary)) {
108
+ return true;
109
+ }
110
+ }
111
+ }
112
+ return false;
113
+ }
114
+ /**
115
+ * Returns true when the CLI should auto-append the done marker to
116
+ * `reply` before submit. Requires BOTH:
117
+ * 1. The envelope shows a recent coordinator done-nudge — i.e. the
118
+ * engine has explicitly asked this agent (or the participant
119
+ * cohort) to close.
120
+ * 2. The reply contains unambiguous closing-intent prose.
121
+ *
122
+ * Returns false when the reply already contains the marker (idempotent
123
+ * for callers that prefer to check before string-mutating).
124
+ */
125
+ export function shouldAutoAppendDoneMarker(reply, envelope) {
126
+ if (typeof reply !== 'string' || reply.length === 0)
127
+ return false;
128
+ if (SIGNAL_DONE_MARKER.test(reply))
129
+ return false;
130
+ if (!envelopeShowsDoneNudge(envelope))
131
+ return false;
132
+ return hasClosingIntent(reply);
133
+ }
134
+ //# sourceMappingURL=done-inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"done-inference.js","sourceRoot":"","sources":["../src/done-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type RuntimeHint } from './skill-template.js';
2
+ export interface EnsureFreshSkillsOptions {
3
+ skipSkillCheck?: boolean;
4
+ json?: boolean;
5
+ }
6
+ export declare function parseFrontmatterVersion(skillMd: string): number | null;
7
+ export declare function readCachedSkillVersion(runtime: RuntimeHint): number | null;
8
+ export declare function ensureFreshSkills(opts?: EnsureFreshSkillsOptions): Promise<boolean>;
9
+ //# sourceMappingURL=ensure-fresh-skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-fresh-skills.d.ts","sourceRoot":"","sources":["../src/ensure-fresh-skills.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAiC7B,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAWD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBtE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAY1E;AAED,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,wBAA6B,GAClC,OAAO,CAAC,OAAO,CAAC,CAsFlB"}
@@ -0,0 +1,121 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { api } from './api.js';
5
+ import { CLI_SKILL_VERSION, detectRuntime, skillsDirFor, } from './skill-template.js';
6
+ import { writeSkills } from './skill-writer.js';
7
+ import { loadIdentity } from './state.js';
8
+ const SKILL_VERSION_RE = /^\s*version:\s*"?(\d+)"?\s*$/;
9
+ function expandHome(p) {
10
+ const h = process.env.HOME ?? homedir();
11
+ if (p === '~')
12
+ return h;
13
+ if (p.startsWith('~/'))
14
+ return join(h, p.slice(2));
15
+ return p;
16
+ }
17
+ export function parseFrontmatterVersion(skillMd) {
18
+ // The frontmatter ends at the second `---` line; reading the first 20
19
+ // lines covers any reasonable frontmatter without needing a YAML parser.
20
+ const lines = skillMd.split('\n').slice(0, 20);
21
+ let inFrontmatter = false;
22
+ for (let i = 0; i < lines.length; i++) {
23
+ const line = lines[i];
24
+ if (i === 0 && line.trim() === '---') {
25
+ inFrontmatter = true;
26
+ continue;
27
+ }
28
+ if (inFrontmatter && line.trim() === '---')
29
+ return null;
30
+ const m = line.match(SKILL_VERSION_RE);
31
+ if (m)
32
+ return Number(m[1]);
33
+ }
34
+ return null;
35
+ }
36
+ export function readCachedSkillVersion(runtime) {
37
+ const dir = skillsDirFor(runtime);
38
+ // Generic runtime returns "~/.<runtime>/skills" — a placeholder path
39
+ // that doesn't exist on disk. Treat as absent.
40
+ if (dir.includes('<runtime>'))
41
+ return null;
42
+ const skillPath = join(expandHome(dir), 'agentspeak', 'SKILL.md');
43
+ if (!existsSync(skillPath))
44
+ return null;
45
+ try {
46
+ return parseFrontmatterVersion(readFileSync(skillPath, 'utf8'));
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ }
52
+ export async function ensureFreshSkills(opts = {}) {
53
+ if (opts.skipSkillCheck)
54
+ return true;
55
+ const runtime = detectRuntime();
56
+ const cachedVersion = readCachedSkillVersion(runtime);
57
+ // Fast path: cached version matches CLI_SKILL_VERSION → fresh. Skip
58
+ // the network round-trip entirely so the per-command overhead is zero
59
+ // when the cache is already current.
60
+ if (cachedVersion === CLI_SKILL_VERSION)
61
+ return true;
62
+ // Stale or absent: try to reach the server for a reconciled manifest
63
+ // (best effort — network failure is non-blocking).
64
+ const identity = loadIdentity();
65
+ let skillVersionOnServer = null;
66
+ let networkWarning = null;
67
+ if (identity) {
68
+ try {
69
+ const resp = await api.post({ baseUrl: identity.baseUrl, token: identity.coordinatorToken }, '/api/onboarding/tutorial/reconcile', { force: false, cliSkillVersion: CLI_SKILL_VERSION }, { timeoutMs: 15_000 });
70
+ skillVersionOnServer = resp.skillVersionOnServer;
71
+ }
72
+ catch (err) {
73
+ networkWarning = err instanceof Error ? err.message : String(err);
74
+ }
75
+ }
76
+ if (networkWarning && !opts.json) {
77
+ process.stderr.write(`[agentspeak] skill freshness check could not reach server (proceeding offline): ` +
78
+ `${networkWarning.slice(0, 200)}\n`);
79
+ }
80
+ // Refresh the on-disk cache from the locally bundled templates.
81
+ // writeSkills() is idempotent and version-pins via read-back; calling
82
+ // it when stale is the only way to bring SKILL.md current.
83
+ try {
84
+ const result = writeSkills({
85
+ runtime: runtime === 'generic' ? undefined : runtime,
86
+ writeIfGeneric: false,
87
+ });
88
+ if (!opts.json) {
89
+ const serverInfo = skillVersionOnServer != null ? ` (server=${skillVersionOnServer})` : '';
90
+ if (result.declined) {
91
+ // Generic runtime — nothing to write into. Not an error.
92
+ process.stderr.write(`[agentspeak] skill cache stale (cached=${cachedVersion ?? 'absent'} → ` +
93
+ `${CLI_SKILL_VERSION}${serverInfo}) but no runtime detected; skipping disk refresh.\n`);
94
+ }
95
+ else if (result.errors.length) {
96
+ for (const err of result.errors) {
97
+ process.stderr.write(`[agentspeak] skill refresh error: ${err.path}: ${err.message}\n`);
98
+ }
99
+ }
100
+ else if (result.written.length) {
101
+ process.stderr.write(`[agentspeak] skills refreshed: ${cachedVersion ?? 'absent'} → ` +
102
+ `${CLI_SKILL_VERSION}${serverInfo}.\n`);
103
+ }
104
+ if (skillVersionOnServer != null &&
105
+ skillVersionOnServer > CLI_SKILL_VERSION) {
106
+ process.stderr.write(`[agentspeak] note: server has newer skill version ` +
107
+ `(${skillVersionOnServer}) than this CLI (${CLI_SKILL_VERSION}). ` +
108
+ `Run \`npx -y agentspeak-cli@latest\` to upgrade.\n`);
109
+ }
110
+ }
111
+ return true;
112
+ }
113
+ catch (err) {
114
+ const msg = err instanceof Error ? err.message : String(err);
115
+ if (!opts.json) {
116
+ process.stderr.write(`[agentspeak] skill refresh failed: ${msg}\n`);
117
+ }
118
+ return false;
119
+ }
120
+ }
121
+ //# sourceMappingURL=ensure-fresh-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-fresh-skills.js","sourceRoot":"","sources":["../src/ensure-fresh-skills.ts"],"names":[],"mappings":"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"}
package/dist/friends.d.ts CHANGED
@@ -77,4 +77,34 @@ export declare function removeAllow(agentId: string): boolean;
77
77
  export declare function removeBlock(agentId: string): boolean;
78
78
  /** Exposed for diagnostics + the `watch status` / `friends list` commands. */
79
79
  export declare function friendsFilePath(): string;
80
+ /**
81
+ * Best-effort mirror of the local friends file to the coordinator
82
+ * (CLI 0.17.0+).
83
+ *
84
+ * Why mirror at all. Before 0.17.0 the allow/block list was purely
85
+ * client-side: every invite produced a webhook and a pending row,
86
+ * and the watch daemon filtered them locally. The fix for two UX
87
+ * papercuts (noisy "pending approval" Discord messages for trusted
88
+ * inviters, and spammy webhooks for known-bad senders) requires the
89
+ * COORDINATOR to know the list at invite-dispatch time. That means
90
+ * the CLI must push it.
91
+ *
92
+ * Semantics:
93
+ * - Full snapshot, not a patch. The server replaces
94
+ * `agents.friends` atomically.
95
+ * - Fire-and-forget: network failures are swallowed and logged to
96
+ * stderr. The on-disk copy remains the source of truth; a missed
97
+ * mirror just means one Discord message shows the legacy
98
+ * `[Respond →]` template until the next successful mirror.
99
+ * - Called automatically from `addAllow`/`addBlock`/`removeAllow`/
100
+ * `removeBlock`, and on `watch --auto-act` startup for back-fill.
101
+ * Also exposed as `agentspeak-cli friends sync` for manual re-push.
102
+ *
103
+ * No-op when no identity is available (unregistered CLI): there is no
104
+ * agent row to mirror to.
105
+ */
106
+ export declare function mirrorFriendsToServer(file?: FriendsFile): Promise<{
107
+ ok: boolean;
108
+ reason?: string;
109
+ }>;
80
110
  //# sourceMappingURL=friends.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"friends.d.ts","sourceRoot":"","sources":["../src/friends.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAQ1D;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,WAAW,CAoBzC;AAWD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,CAMhG;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAEzF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAEzF;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,WAAW,CAc5E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,WAAW,CAc5E;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMpD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMpD;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
1
+ {"version":3,"file":"friends.d.ts","sourceRoot":"","sources":["../src/friends.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAQ1D;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,WAAW,CAoBzC;AAWD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,CAMhG;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAEzF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAEzF;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,WAAW,CAe5E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,WAAW,CAe5E;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOpD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOpD;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IACvE,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAsBD"}
package/dist/friends.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, join } from 'node:path';
3
- import { home } from './state.js';
3
+ import { api } from './api.js';
4
+ import { home, resolveIdentity } from './state.js';
4
5
  const EMPTY_FILE = { version: 1, allow: {}, block: {} };
5
6
  function friendsPath() {
6
7
  return join(home(), 'friends.json');
@@ -84,6 +85,7 @@ export function addAllow(agentId, opts = {}) {
84
85
  file.allow[agentId] = entry;
85
86
  delete file.block[agentId];
86
87
  saveFriends(file);
88
+ fireAndForgetMirror(file);
87
89
  return entry;
88
90
  }
89
91
  export function addBlock(agentId, opts = {}) {
@@ -99,6 +101,7 @@ export function addBlock(agentId, opts = {}) {
99
101
  file.block[agentId] = entry;
100
102
  delete file.allow[agentId];
101
103
  saveFriends(file);
104
+ fireAndForgetMirror(file);
102
105
  return entry;
103
106
  }
104
107
  export function removeAllow(agentId) {
@@ -107,6 +110,7 @@ export function removeAllow(agentId) {
107
110
  return false;
108
111
  delete file.allow[agentId];
109
112
  saveFriends(file);
113
+ fireAndForgetMirror(file);
110
114
  return true;
111
115
  }
112
116
  export function removeBlock(agentId) {
@@ -115,10 +119,70 @@ export function removeBlock(agentId) {
115
119
  return false;
116
120
  delete file.block[agentId];
117
121
  saveFriends(file);
122
+ fireAndForgetMirror(file);
118
123
  return true;
119
124
  }
120
125
  /** Exposed for diagnostics + the `watch status` / `friends list` commands. */
121
126
  export function friendsFilePath() {
122
127
  return friendsPath();
123
128
  }
129
+ /**
130
+ * Best-effort mirror of the local friends file to the coordinator
131
+ * (CLI 0.17.0+).
132
+ *
133
+ * Why mirror at all. Before 0.17.0 the allow/block list was purely
134
+ * client-side: every invite produced a webhook and a pending row,
135
+ * and the watch daemon filtered them locally. The fix for two UX
136
+ * papercuts (noisy "pending approval" Discord messages for trusted
137
+ * inviters, and spammy webhooks for known-bad senders) requires the
138
+ * COORDINATOR to know the list at invite-dispatch time. That means
139
+ * the CLI must push it.
140
+ *
141
+ * Semantics:
142
+ * - Full snapshot, not a patch. The server replaces
143
+ * `agents.friends` atomically.
144
+ * - Fire-and-forget: network failures are swallowed and logged to
145
+ * stderr. The on-disk copy remains the source of truth; a missed
146
+ * mirror just means one Discord message shows the legacy
147
+ * `[Respond →]` template until the next successful mirror.
148
+ * - Called automatically from `addAllow`/`addBlock`/`removeAllow`/
149
+ * `removeBlock`, and on `watch --auto-act` startup for back-fill.
150
+ * Also exposed as `agentspeak-cli friends sync` for manual re-push.
151
+ *
152
+ * No-op when no identity is available (unregistered CLI): there is no
153
+ * agent row to mirror to.
154
+ */
155
+ export async function mirrorFriendsToServer(file) {
156
+ const identity = resolveIdentity();
157
+ if (!identity) {
158
+ return { ok: false, reason: 'no_identity' };
159
+ }
160
+ const snapshot = file ?? loadFriends();
161
+ try {
162
+ await api.put({ baseUrl: identity.baseUrl, token: identity.coordinatorToken }, '/api/agents/me/friends', {
163
+ version: 1,
164
+ friends: {
165
+ allow: snapshot.allow,
166
+ block: snapshot.block,
167
+ },
168
+ });
169
+ return { ok: true };
170
+ }
171
+ catch (err) {
172
+ return { ok: false, reason: err instanceof Error ? err.message : String(err) };
173
+ }
174
+ }
175
+ function fireAndForgetMirror(file) {
176
+ // Don't await — returning from addAllow/etc. synchronously matches
177
+ // existing CLI behaviour and keeps unit tests that assert on the
178
+ // file contents immediately after mutation stable. The promise is
179
+ // intentionally orphaned; we surface the error ONLY through stderr
180
+ // when AGENTSPEAK_DEBUG is set so operators can diagnose a broken
181
+ // mirror if they suspect one.
182
+ void mirrorFriendsToServer(file).then((r) => {
183
+ if (!r.ok && r.reason && r.reason !== 'no_identity' && process.env.AGENTSPEAK_DEBUG) {
184
+ process.stderr.write(`agentspeak-cli friends: mirror push failed (${r.reason}).\n`);
185
+ }
186
+ });
187
+ }
124
188
  //# sourceMappingURL=friends.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"friends.js","sourceRoot":"","sources":["../src/friends.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"friends.js","sourceRoot":"","sources":["../src/friends.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,8 +10,22 @@ import { cmdMeeting } from './commands/meeting.js';
10
10
  import { cmdTutorial } from './commands/tutorial.js';
11
11
  import { cmdFriends } from './commands/friends.js';
12
12
  import { cmdInvite } from './commands/invite.js';
13
+ import { cmdLogin, cmdLogout } from './commands/login.js';
14
+ import { ensureFreshSkills } from './ensure-fresh-skills.js';
13
15
  import { loadIdentity, statePathInfo } from './state.js';
14
16
  import { CLI_VERSION } from './version.js';
17
+ async function preflightSkills(flags) {
18
+ const ok = await ensureFreshSkills({
19
+ skipSkillCheck: flagBool(flags, 'skip-skill-check'),
20
+ json: flagBool(flags, 'json'),
21
+ });
22
+ if (!ok) {
23
+ process.stderr.write('agentspeak-cli: failed to refresh local skill cache; aborting. ' +
24
+ 'Re-run with --skip-skill-check to bypass.\n');
25
+ return 1;
26
+ }
27
+ return null;
28
+ }
15
29
  const HELP = `agentspeak-cli - online meeting CLI for AI agents
16
30
 
17
31
  USAGE
@@ -295,6 +309,9 @@ async function main() {
295
309
  return 0;
296
310
  }
297
311
  case 'join': {
312
+ const pre = await preflightSkills(flags);
313
+ if (pre != null)
314
+ return pre;
298
315
  const invite = positionals[0] ?? flagStr(flags, 'invite');
299
316
  if (!invite)
300
317
  die('Pass an invite URL: agentspeak-cli join https://.../i/inv_xxx');
@@ -385,6 +402,9 @@ async function main() {
385
402
  });
386
403
  }
387
404
  case 'run': {
405
+ const pre = await preflightSkills(flags);
406
+ if (pre != null)
407
+ return pre;
388
408
  return cmdRun({
389
409
  meetingId: flagStr(flags, 'meeting'),
390
410
  exec: flagStr(flags, 'exec'),
@@ -401,6 +421,9 @@ async function main() {
401
421
  });
402
422
  }
403
423
  case 'rejoin': {
424
+ const pre = await preflightSkills(flags);
425
+ if (pre != null)
426
+ return pre;
404
427
  const { cmdRejoin } = await import('./commands/rejoin.js');
405
428
  return cmdRejoin({
406
429
  meetingId: positionals[0] ?? flagStr(flags, 'meeting') ?? '',
@@ -416,6 +439,9 @@ async function main() {
416
439
  });
417
440
  }
418
441
  case 'handle-turn': {
442
+ const pre = await preflightSkills(flags);
443
+ if (pre != null)
444
+ return pre;
419
445
  const exec = flagStr(flags, 'exec');
420
446
  const via = flagStr(flags, 'via');
421
447
  const reply = flagStr(flags, 'reply');
@@ -444,6 +470,9 @@ async function main() {
444
470
  return code;
445
471
  }
446
472
  case 'inbox': {
473
+ const pre = await preflightSkills(flags);
474
+ if (pre != null)
475
+ return pre;
447
476
  const { cmdInbox } = await import('./commands/inbox.js');
448
477
  return cmdInbox({
449
478
  identityBlob: flagStr(flags, 'identity'),
@@ -453,6 +482,9 @@ async function main() {
453
482
  });
454
483
  }
455
484
  case 'pull': {
485
+ const pre = await preflightSkills(flags);
486
+ if (pre != null)
487
+ return pre;
456
488
  const { cmdPull } = await import('./commands/pull.js');
457
489
  return cmdPull({
458
490
  meetingId: flagStr(flags, 'meeting'),
@@ -541,6 +573,9 @@ async function main() {
541
573
  return 0;
542
574
  }
543
575
  case 'meeting': {
576
+ const pre = await preflightSkills(flags);
577
+ if (pre != null)
578
+ return pre;
544
579
  return cmdMeeting({ positionals, flags });
545
580
  }
546
581
  case 'friends': {
@@ -581,6 +616,29 @@ async function main() {
581
616
  }, null, 2) + '\n');
582
617
  return 0;
583
618
  }
619
+ case 'login': {
620
+ const baseUrl = flagStr(flags, 'base-url') ?? process.env.AGENTSPEAK_BASE_URL;
621
+ if (!baseUrl) {
622
+ die('--base-url is required (or set AGENTSPEAK_BASE_URL)');
623
+ }
624
+ const email = flagStr(flags, 'email');
625
+ if (!email) {
626
+ die('--email is required: agentspeak-cli login --email you@example.com');
627
+ }
628
+ return cmdLogin({
629
+ baseUrl,
630
+ email,
631
+ openBrowser: flagBool(flags, 'open'),
632
+ json: flagBool(flags, 'json'),
633
+ });
634
+ }
635
+ case 'logout': {
636
+ const baseUrl = flagStr(flags, 'base-url') ?? process.env.AGENTSPEAK_BASE_URL;
637
+ return cmdLogout({
638
+ baseUrl,
639
+ json: flagBool(flags, 'json'),
640
+ });
641
+ }
584
642
  case 'loop':
585
643
  die(`Unknown command: ${cmd}\n\n` +
586
644
  '`agentspeak-cli loop` was renamed to `agentspeak-cli run`:\n' +
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}