agentspeak-cli 0.21.0 → 0.23.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.
Files changed (84) hide show
  1. package/README.md +30 -36
  2. package/dist/api.d.ts +0 -68
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +0 -16
  5. package/dist/api.js.map +1 -1
  6. package/dist/auto-shim.d.ts +1 -1
  7. package/dist/auto-shim.js +3 -3
  8. package/dist/commands/friends.js +3 -3
  9. package/dist/commands/friends.js.map +1 -1
  10. package/dist/commands/handle-turn.d.ts +4 -4
  11. package/dist/commands/handle-turn.js +14 -14
  12. package/dist/commands/handle-turn.js.map +1 -1
  13. package/dist/commands/inbox.d.ts +1 -1
  14. package/dist/commands/inbox.js +2 -2
  15. package/dist/commands/inbox.js.map +1 -1
  16. package/dist/commands/init.d.ts +3 -9
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +9 -25
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/join.d.ts +3 -3
  21. package/dist/commands/join.js +5 -5
  22. package/dist/commands/join.js.map +1 -1
  23. package/dist/commands/login.js +5 -5
  24. package/dist/commands/login.js.map +1 -1
  25. package/dist/commands/mcp.d.ts +2 -2
  26. package/dist/commands/mcp.js +4 -4
  27. package/dist/commands/mcp.js.map +1 -1
  28. package/dist/commands/meeting.js +12 -2
  29. package/dist/commands/meeting.js.map +1 -1
  30. package/dist/commands/pull.js +5 -5
  31. package/dist/commands/pull.js.map +1 -1
  32. package/dist/commands/register.d.ts +4 -4
  33. package/dist/commands/register.d.ts.map +1 -1
  34. package/dist/commands/register.js +6 -2
  35. package/dist/commands/register.js.map +1 -1
  36. package/dist/commands/rejoin.js +2 -2
  37. package/dist/commands/rejoin.js.map +1 -1
  38. package/dist/commands/run.d.ts +1 -1
  39. package/dist/commands/run.js +7 -7
  40. package/dist/commands/run.js.map +1 -1
  41. package/dist/commands/tutorial.d.ts +9 -16
  42. package/dist/commands/tutorial.d.ts.map +1 -1
  43. package/dist/commands/tutorial.js +28 -175
  44. package/dist/commands/tutorial.js.map +1 -1
  45. package/dist/commands/wake-config.js +1 -1
  46. package/dist/commands/wake-config.js.map +1 -1
  47. package/dist/commands/watch.d.ts +10 -40
  48. package/dist/commands/watch.d.ts.map +1 -1
  49. package/dist/commands/watch.js +5 -201
  50. package/dist/commands/watch.js.map +1 -1
  51. package/dist/done-inference.d.ts +3 -3
  52. package/dist/done-inference.d.ts.map +1 -1
  53. package/dist/done-inference.js +3 -3
  54. package/dist/done-inference.js.map +1 -1
  55. package/dist/ensure-fresh-skills.js +1 -1
  56. package/dist/ensure-fresh-skills.js.map +1 -1
  57. package/dist/friends.d.ts +3 -3
  58. package/dist/friends.js +3 -3
  59. package/dist/friends.js.map +1 -1
  60. package/dist/index.js +34 -96
  61. package/dist/index.js.map +1 -1
  62. package/dist/pending-invites.d.ts +2 -2
  63. package/dist/run-spawner.d.ts +12 -36
  64. package/dist/run-spawner.d.ts.map +1 -1
  65. package/dist/run-spawner.js +4 -46
  66. package/dist/run-spawner.js.map +1 -1
  67. package/dist/skill-template.d.ts +1 -1
  68. package/dist/skill-template.d.ts.map +1 -1
  69. package/dist/skill-template.js +9 -58
  70. package/dist/skill-template.js.map +1 -1
  71. package/dist/skill-writer.d.ts.map +1 -1
  72. package/dist/skill-writer.js +1 -0
  73. package/dist/skill-writer.js.map +1 -1
  74. package/dist/state.d.ts +11 -4
  75. package/dist/state.d.ts.map +1 -1
  76. package/dist/state.js +27 -8
  77. package/dist/state.js.map +1 -1
  78. package/dist/version.d.ts +1 -1
  79. package/dist/version.js +1 -1
  80. package/dist/watch-daemon.d.ts +3 -11
  81. package/dist/watch-daemon.d.ts.map +1 -1
  82. package/dist/watch-daemon.js +7 -51
  83. package/dist/watch-daemon.js.map +1 -1
  84. package/package.json +1 -1
@@ -1,9 +1,6 @@
1
1
  import { api } from '../api.js';
2
- import { mirrorFriendsToServer, trustState } from '../friends.js';
3
- import { loadPending, queuePending } from '../pending-invites.js';
4
- import { isRunAlive, runJoin, spawnRunForMeeting, } from '../run-spawner.js';
2
+ import { isRunAlive, spawnRunForMeeting, } from '../run-spawner.js';
5
3
  import { loadMeeting, resolveIdentity } from '../state.js';
6
- import { applyInviteDecision } from './invite.js';
7
4
  export async function cmdWatch(opts) {
8
5
  const identity = resolveIdentity(opts.identityBlob);
9
6
  if (!identity) {
@@ -11,21 +8,10 @@ export async function cmdWatch(opts) {
11
8
  'or pass --identity <blob>.\n');
12
9
  return 2;
13
10
  }
14
- const ctx = { baseUrl: identity.baseUrl, token: identity.coordinatorToken };
11
+ const ctx = { baseUrl: identity.baseUrl, token: identity.agentToken };
15
12
  const waitSeconds = clamp(opts.waitSeconds ?? 25, 0, 30);
16
13
  const limit = clamp(opts.limit ?? 50, 1, 200);
17
14
  let sinceCreatedAt;
18
- // Back-fill the server-side friends mirror on every auto-act watch
19
- // startup (CLI 0.17.0+). This is idempotent: the server stores the
20
- // full snapshot, so resending the same list is a cheap no-op. We
21
- // fire-and-forget because a missed mirror just degrades one invite
22
- // back to the generic [Respond →] Discord template — not a reason
23
- // to block the watcher from starting.
24
- if (opts.autoAct) {
25
- void mirrorFriendsToServer().catch(() => {
26
- /* already swallowed inside mirrorFriendsToServer */
27
- });
28
- }
29
15
  const handleBatch = async (rows) => {
30
16
  for (const n of rows) {
31
17
  printEvent(n, opts.json);
@@ -106,16 +92,12 @@ function describe(n) {
106
92
  switch (n.kind) {
107
93
  case 'reopen':
108
94
  return 'Meeting reopened';
109
- case 'invite':
110
- return 'You have been invited to a meeting';
111
95
  case 'turn_assigned':
112
96
  return "It's your turn";
113
97
  case 'meeting_closed':
114
98
  return 'Meeting closed';
115
99
  case 'meeting_created':
116
100
  return 'Meeting created';
117
- case 'invite_auto_decided':
118
- return 'Human decided a pending invite via Discord link';
119
101
  default:
120
102
  return n.kind;
121
103
  }
@@ -124,187 +106,17 @@ function describe(n) {
124
106
  * Route a notification to the appropriate autonomous action.
125
107
  *
126
108
  * Exported primarily for tests; callers should prefer `cmdWatch`
127
- * with `autoAct: true`. `ctx` is optional so unit tests can call this
128
- * without a live API context; when absent, `dispatchInvite` will skip
129
- * the server-side human-wake re-fire (only relevant on the pending
130
- * path).
109
+ * with `autoAct: true`. Only `reopen` rows dispatch joining is
110
+ * always explicit via `agentspeak-cli join <invite-url>`.
131
111
  */
132
- export function dispatchNotification(n, ctx) {
112
+ export function dispatchNotification(n, _ctx) {
133
113
  switch (n.kind) {
134
- case 'invite':
135
- return dispatchInvite(n, ctx);
136
114
  case 'reopen':
137
115
  return dispatchReopen(n);
138
- case 'invite_auto_decided':
139
- return dispatchInviteAutoDecided(n);
140
116
  default:
141
117
  return { kind: 'noop', reason: `no_handler_for_${n.kind}` };
142
118
  }
143
119
  }
144
- function extractActionUrl(payload) {
145
- const url = payload.actionUrl;
146
- if (typeof url === 'string' && /^https?:\/\//.test(url))
147
- return url;
148
- return null;
149
- }
150
- function extractInviter(payload) {
151
- const agentId = typeof payload.inviterAgentId === 'string' ? payload.inviterAgentId : null;
152
- const name = typeof payload.inviterName === 'string' ? payload.inviterName : undefined;
153
- return { agentId, name };
154
- }
155
- /**
156
- * `invite` handler:
157
- * 1. Short-circuit if a run loop for this meeting is already alive
158
- * (prevents duplicate join/run on a re-fired invite).
159
- * 2. Resolve the invite URL from payload.actionUrl.
160
- * 3. Run `join` synchronously; on success spawn a detached `run`.
161
- *
162
- * Every branch returns a structured result so callers / tests can
163
- * assert what happened without parsing stderr.
164
- */
165
- function dispatchInvite(n, ctx) {
166
- if (!n.meetingId) {
167
- return { kind: 'noop', reason: 'invite_missing_meetingId' };
168
- }
169
- const meetingId = n.meetingId;
170
- const alive = isRunAlive(meetingId);
171
- if (alive.alive && alive.pid) {
172
- return {
173
- kind: 'noop',
174
- reason: `run_already_alive_pid=${alive.pid}`,
175
- };
176
- }
177
- const inviteUrl = extractActionUrl(n.payload);
178
- if (!inviteUrl) {
179
- process.stderr.write(`agentspeak-cli watch: invite ${n.id} (meeting=${meetingId}) has no actionUrl; ` +
180
- 'cannot auto-join. The notification will still be ack\'d.\n');
181
- return { kind: 'noop', reason: 'missing_actionUrl' };
182
- }
183
- // Friends allowlist gate (introduced in CLI 0.15.0). Three cases:
184
- // 1. blocked → ack-and-drop, do not join. This is how the operator
185
- // expresses "never accept invites from this agent".
186
- // 2. unknown → do NOT join. Queue a pending-approval record so the
187
- // human can decide on the next check-in loop. This is
188
- // the KEY security improvement: a leaked agent_id no
189
- // longer lets a stranger burn LLM tokens.
190
- // 3. allow → fall through to the existing runJoin + run-loop
191
- // flow. This preserves the "invite auto-joined without
192
- // any LLM involvement" UX for trusted collaborators.
193
- const { agentId: inviterAgentId, name: inviterName } = extractInviter(n.payload);
194
- const decision = trustState(inviterAgentId);
195
- if (decision === 'block' && inviterAgentId) {
196
- process.stderr.write(`agentspeak-cli watch: invite ${n.id} (meeting=${meetingId}) from BLOCKED inviter ` +
197
- `${inviterAgentId}; dropping.\n`);
198
- return { kind: 'invite_blocked', meetingId, inviterAgentId };
199
- }
200
- if (decision === 'unknown') {
201
- const pendingPath = queuePending({
202
- notificationId: n.id,
203
- meetingId,
204
- inviterAgentId,
205
- inviterName,
206
- actionUrl: inviteUrl,
207
- receivedAt: n.createdAt,
208
- message: typeof n.payload.message === 'string' ? n.payload.message : undefined,
209
- });
210
- process.stderr.write(`agentspeak-cli watch: invite ${n.id} (meeting=${meetingId}) from UNKNOWN inviter ` +
211
- `${inviterAgentId ?? '<unspecified>'}; queued for human approval at ${pendingPath}. ` +
212
- 'Run `agentspeak-cli invite pending` to review.\n');
213
- // CLI 0.16.3: single-message flow. The server-side
214
- // `POST /api/meetings/:id/invites` already fired a human-visible
215
- // wake with the [Respond →] link (pingAgent mints the approvalUrl
216
- // on the FIRST ping, since 0.16.1). Re-firing `wake-human` here
217
- // would just post a second near-duplicate Discord message for the
218
- // same pending invite — pure notification spam. We intentionally
219
- // drop the follow-up ping; the wake-human endpoint stays live on
220
- // the server for older CLIs and for callers that bypass pingAgent.
221
- return {
222
- kind: 'invite_pending_approval',
223
- meetingId,
224
- inviterAgentId,
225
- pendingPath,
226
- };
227
- }
228
- const joinRes = runJoin({ inviteUrl, meetingId });
229
- if (!joinRes.ok) {
230
- process.stderr.write(`agentspeak-cli watch: auto-join failed for ${meetingId} (exit=${joinRes.exitCode}); ` +
231
- `see ${joinRes.logPath} for details.\n`);
232
- return {
233
- kind: 'invite_join_failed',
234
- meetingId,
235
- joinLog: joinRes.logPath,
236
- exitCode: joinRes.exitCode,
237
- };
238
- }
239
- const run = spawnRunForMeeting({ meetingId });
240
- if (run.started && run.pid) {
241
- process.stderr.write(`agentspeak-cli watch: auto-joined ${meetingId} and started run loop pid=${run.pid} ` +
242
- `log=${run.logPath}\n`);
243
- }
244
- else if (run.reused && run.pid) {
245
- process.stderr.write(`agentspeak-cli watch: auto-joined ${meetingId}; run loop already alive pid=${run.pid}\n`);
246
- }
247
- else if (run.reason) {
248
- process.stderr.write(`agentspeak-cli watch: auto-joined ${meetingId} but could not spawn run loop ` +
249
- `(${run.reason}); start it manually with ` +
250
- `\`agentspeak-cli run --meeting ${meetingId} --exec ~/.agentspeak/reply.sh\`.\n`);
251
- }
252
- return { kind: 'invite_dispatched', meetingId, joinOk: true, run };
253
- }
254
- /**
255
- * `invite_auto_decided` handler (CLI 0.16.0+): the human clicked
256
- * through the Discord `[Respond]` link and confirmed a decision on
257
- * `/a/<notifId>`. The server recorded their choice on this agent's
258
- * notification feed; we pick it up here and apply it locally WITHOUT
259
- * the LLM ever seeing the original pending invite.
260
- *
261
- * Maps directly to `applyInviteDecision` so the single-source-of-truth
262
- * accept/reject logic is shared with `cmdInviteApprove`. The whole
263
- * point of this handler is zero LLM in the loop for the common case.
264
- */
265
- function dispatchInviteAutoDecided(n) {
266
- const p = n.payload;
267
- const pendingNotifId = typeof p.pendingNotifId === 'string' ? p.pendingNotifId : null;
268
- const decision = p.decision === 'accept' || p.decision === 'reject' ? p.decision : null;
269
- const remember = p.remember === 'always' || p.remember === 'once' ? p.remember : null;
270
- if (!pendingNotifId || !decision || !remember) {
271
- process.stderr.write(`agentspeak-cli watch: [AUTO-DECIDED] ${n.id} has malformed payload ` +
272
- `(pendingNotifId/decision/remember missing); dropping.\n`);
273
- return { kind: 'invite_auto_decided_failed', reason: 'malformed_payload' };
274
- }
275
- const record = loadPending(pendingNotifId);
276
- if (!record) {
277
- // Pending file gone → either the human already ran `invite
278
- // approve` from their terminal, or a previous auto-decided
279
- // notification already applied. This is the "idempotent re-fire"
280
- // path: nothing to do.
281
- process.stderr.write(`agentspeak-cli watch: [AUTO-DECIDED] ${pendingNotifId} no longer pending locally ` +
282
- `(already handled); dropping.\n`);
283
- return {
284
- kind: 'noop',
285
- reason: 'invite_auto_decided_already_applied',
286
- };
287
- }
288
- const result = applyInviteDecision(record, {
289
- decision,
290
- remember,
291
- memoSource: 'auto-decided',
292
- });
293
- if (!result.ok) {
294
- process.stderr.write(`agentspeak-cli watch: [AUTO-DECIDED] ${pendingNotifId} ${decision}/${remember} ` +
295
- `failed: ${result.message}\n`);
296
- return { kind: 'invite_auto_decided_failed', reason: result.message };
297
- }
298
- process.stderr.write(`agentspeak-cli watch: [AUTO-DECIDED] ${pendingNotifId} ${decision}/${remember} ` +
299
- `applied: ${result.message}\n`);
300
- return {
301
- kind: 'invite_auto_decided_applied',
302
- decision,
303
- remember,
304
- meetingId: n.meetingId,
305
- message: result.message,
306
- };
307
- }
308
120
  /**
309
121
  * `reopen` handler: re-attach a `run` loop for a meeting we already
310
122
  * have local state for. If there's no saved MeetingState, the agent
@@ -329,14 +141,6 @@ function dispatchReopen(n) {
329
141
  }
330
142
  return { kind: 'reopen_dispatched', meetingId, run };
331
143
  }
332
- // notifyHumanAboutPending (CLI 0.15.1 → 0.16.2): previously re-fired
333
- // a wake through /api/agents/me/wake-human when an unknown-inviter
334
- // invite was queued. CLI 0.16.3 dropped this call because the server
335
- // now mints the [Respond →] link INTO the initial invite ping (see
336
- // apps/web/lib/gateway/ping.ts). A second wake here just produced a
337
- // near-duplicate Discord message, which users called out as noise. The
338
- // /api/agents/me/wake-human route and its api.ts helper `postWakeHuman`
339
- // remain available for external integrations / older CLIs.
340
144
  function clamp(v, lo, hi) {
341
145
  return Math.min(Math.max(v, lo), hi);
342
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,14 @@
10
10
  *
11
11
  * This helper detects the unambiguous "engine has explicitly asked us
12
12
  * to close" signal — the `<!-- agentspeak:engine=done_nudge -->` marker
13
- * embedded in every coordinator done-nudge recap — combined with prose
13
+ * embedded in every moderator done-nudge recap — combined with prose
14
14
  * that already says "we're done". When both are present, the CLI
15
15
  * auto-appends the done marker before submit. Deliberately narrow so
16
16
  * we never auto-close a turn the agent didn't intend to close.
17
17
  *
18
18
  * Pure, dependency-free, easy to unit-test.
19
19
  */
20
- /** Marker the engine embeds in every coordinator done-nudge recap. */
20
+ /** Marker the engine embeds in every moderator done-nudge recap. */
21
21
  export declare const ENGINE_DONE_NUDGE_MARKER: RegExp;
22
22
  /** Marker an agent must emit to close the meeting from its side. */
23
23
  export declare const SIGNAL_DONE_MARKER: RegExp;
@@ -33,7 +33,7 @@ export declare function envelopeShowsDoneNudge(envelope: unknown): boolean;
33
33
  /**
34
34
  * Returns true when the CLI should auto-append the done marker to
35
35
  * `reply` before submit. Requires BOTH:
36
- * 1. The envelope shows a recent coordinator done-nudge — i.e. the
36
+ * 1. The envelope shows a recent moderator done-nudge — i.e. the
37
37
  * engine has explicitly asked this agent (or the participant
38
38
  * cohort) to close.
39
39
  * 2. The reply contains unambiguous closing-intent prose.
@@ -1 +1 @@
1
- {"version":3,"file":"done-inference.d.ts","sourceRoot":"","sources":["../src/done-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,QAA+C,CAAC;AAErF,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AAwCzE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAoCjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAKpF"}
1
+ {"version":3,"file":"done-inference.d.ts","sourceRoot":"","sources":["../src/done-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,QAA+C,CAAC;AAErF,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AAwCzE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAoCjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAKpF"}
@@ -10,14 +10,14 @@
10
10
  *
11
11
  * This helper detects the unambiguous "engine has explicitly asked us
12
12
  * to close" signal — the `<!-- agentspeak:engine=done_nudge -->` marker
13
- * embedded in every coordinator done-nudge recap — combined with prose
13
+ * embedded in every moderator done-nudge recap — combined with prose
14
14
  * that already says "we're done". When both are present, the CLI
15
15
  * auto-appends the done marker before submit. Deliberately narrow so
16
16
  * we never auto-close a turn the agent didn't intend to close.
17
17
  *
18
18
  * Pure, dependency-free, easy to unit-test.
19
19
  */
20
- /** Marker the engine embeds in every coordinator done-nudge recap. */
20
+ /** Marker the engine embeds in every moderator done-nudge recap. */
21
21
  export const ENGINE_DONE_NUDGE_MARKER = /<!--\s*agentspeak:engine=done_nudge\s*-->/i;
22
22
  /** Marker an agent must emit to close the meeting from its side. */
23
23
  export const SIGNAL_DONE_MARKER = /<!--\s*agentspeak:signal=done\s*-->/i;
@@ -114,7 +114,7 @@ export function envelopeShowsDoneNudge(envelope) {
114
114
  /**
115
115
  * Returns true when the CLI should auto-append the done marker to
116
116
  * `reply` before submit. Requires BOTH:
117
- * 1. The envelope shows a recent coordinator done-nudge — i.e. the
117
+ * 1. The envelope shows a recent moderator done-nudge — i.e. the
118
118
  * engine has explicitly asked this agent (or the participant
119
119
  * cohort) to close.
120
120
  * 2. The reply contains unambiguous closing-intent prose.
@@ -1 +1 @@
1
- {"version":3,"file":"done-inference.js","sourceRoot":"","sources":["../src/done-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"done-inference.js","sourceRoot":"","sources":["../src/done-inference.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ export async function ensureFreshSkills(opts = {}) {
66
66
  let networkWarning = null;
67
67
  if (identity) {
68
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 });
69
+ const resp = await api.post({ baseUrl: identity.baseUrl, token: identity.agentToken }, '/api/onboarding/tutorial/reconcile', { force: false, cliSkillVersion: CLI_SKILL_VERSION }, { timeoutMs: 15_000 });
70
70
  skillVersionOnServer = resp.skillVersionOnServer;
71
71
  }
72
72
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-fresh-skills.js","sourceRoot":"","sources":["../src/ensure-fresh-skills.ts"],"names":[],"mappings":"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"}
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
@@ -15,7 +15,7 @@
15
15
  * a `run` loop spawns, and the attacker's prompts burn the victim's
16
16
  * LLM tokens indefinitely. This module is the first line of defence.
17
17
  *
18
- * Why client-side only. Moving enforcement to the coordinator would
18
+ * Why client-side only. Moving enforcement to the server would
19
19
  * catch more paths (discord_webhook, http_webhook, etc), but adds a
20
20
  * DB migration and a policy endpoint. The client-side check covers
21
21
  * the pull + watch auto-act path that most agents run, and the
@@ -78,7 +78,7 @@ 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
80
  /**
81
- * Best-effort mirror of the local friends file to the coordinator
81
+ * Best-effort mirror of the local friends file to the server
82
82
  * (CLI 0.17.0+).
83
83
  *
84
84
  * Why mirror at all. Before 0.17.0 the allow/block list was purely
@@ -86,7 +86,7 @@ export declare function friendsFilePath(): string;
86
86
  * and the watch daemon filtered them locally. The fix for two UX
87
87
  * papercuts (noisy "pending approval" Discord messages for trusted
88
88
  * inviters, and spammy webhooks for known-bad senders) requires the
89
- * COORDINATOR to know the list at invite-dispatch time. That means
89
+ * SERVER to know the list at invite-dispatch time. That means
90
90
  * the CLI must push it.
91
91
  *
92
92
  * Semantics:
package/dist/friends.js CHANGED
@@ -127,7 +127,7 @@ export function friendsFilePath() {
127
127
  return friendsPath();
128
128
  }
129
129
  /**
130
- * Best-effort mirror of the local friends file to the coordinator
130
+ * Best-effort mirror of the local friends file to the server
131
131
  * (CLI 0.17.0+).
132
132
  *
133
133
  * Why mirror at all. Before 0.17.0 the allow/block list was purely
@@ -135,7 +135,7 @@ export function friendsFilePath() {
135
135
  * and the watch daemon filtered them locally. The fix for two UX
136
136
  * papercuts (noisy "pending approval" Discord messages for trusted
137
137
  * inviters, and spammy webhooks for known-bad senders) requires the
138
- * COORDINATOR to know the list at invite-dispatch time. That means
138
+ * SERVER to know the list at invite-dispatch time. That means
139
139
  * the CLI must push it.
140
140
  *
141
141
  * Semantics:
@@ -159,7 +159,7 @@ export async function mirrorFriendsToServer(file) {
159
159
  }
160
160
  const snapshot = file ?? loadFriends();
161
161
  try {
162
- await api.put({ baseUrl: identity.baseUrl, token: identity.coordinatorToken }, '/api/agents/me/friends', {
162
+ await api.put({ baseUrl: identity.baseUrl, token: identity.agentToken }, '/api/agents/me/friends', {
163
163
  version: 1,
164
164
  friends: {
165
165
  allow: snapshot.allow,
@@ -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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"}