@animalabs/agent-framework 0.15.0 → 0.16.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 +22 -1
- package/dist/src/agent.d.ts +32 -0
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +55 -0
- package/dist/src/agent.js.map +1 -1
- package/dist/src/api/server.d.ts +9 -0
- package/dist/src/api/server.d.ts.map +1 -1
- package/dist/src/api/server.js +156 -0
- package/dist/src/api/server.js.map +1 -1
- package/dist/src/api/types.d.ts +15 -0
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/framework.d.ts +418 -3
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +1782 -68
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +16 -0
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +41 -3
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +172 -0
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +444 -2
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +9 -0
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +71 -13
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/modules/history/index.d.ts +89 -13
- package/dist/src/modules/history/index.d.ts.map +1 -1
- package/dist/src/modules/history/index.js +655 -24
- package/dist/src/modules/history/index.js.map +1 -1
- package/dist/src/operator-log.d.ts +78 -0
- package/dist/src/operator-log.d.ts.map +1 -0
- package/dist/src/operator-log.js +102 -0
- package/dist/src/operator-log.js.map +1 -0
- package/dist/src/recovery/discord-awareness-outbox.d.ts +10 -0
- package/dist/src/recovery/discord-awareness-outbox.d.ts.map +1 -1
- package/dist/src/recovery/discord-awareness-outbox.js +20 -0
- package/dist/src/recovery/discord-awareness-outbox.js.map +1 -1
- package/dist/src/types/framework.d.ts +24 -0
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +36 -0
- package/dist/src/types/trace.d.ts.map +1 -1
- package/dist/test/agent-runtime-settings.test.js +199 -1
- package/dist/test/agent-runtime-settings.test.js.map +1 -1
- package/dist/test/api-admin-gate.test.d.ts +2 -0
- package/dist/test/api-admin-gate.test.d.ts.map +1 -0
- package/dist/test/api-admin-gate.test.js +116 -0
- package/dist/test/api-admin-gate.test.js.map +1 -0
- package/dist/test/channel-label-history.test.d.ts +2 -0
- package/dist/test/channel-label-history.test.d.ts.map +1 -0
- package/dist/test/channel-label-history.test.js +424 -0
- package/dist/test/channel-label-history.test.js.map +1 -0
- package/dist/test/discord-awareness-outbox.test.js +16 -0
- package/dist/test/discord-awareness-outbox.test.js.map +1 -1
- package/dist/test/event-gate.test.js +44 -0
- package/dist/test/event-gate.test.js.map +1 -1
- package/dist/test/helpers/quiesce-crash-child.d.ts +2 -0
- package/dist/test/helpers/quiesce-crash-child.d.ts.map +1 -0
- package/dist/test/helpers/quiesce-crash-child.js +156 -0
- package/dist/test/helpers/quiesce-crash-child.js.map +1 -0
- package/dist/test/history-module-overview.test.d.ts +2 -0
- package/dist/test/history-module-overview.test.d.ts.map +1 -0
- package/dist/test/history-module-overview.test.js +711 -0
- package/dist/test/history-module-overview.test.js.map +1 -0
- package/dist/test/history-module.test.js +146 -0
- package/dist/test/history-module.test.js.map +1 -1
- package/dist/test/host-quiesce.test.d.ts +2 -0
- package/dist/test/host-quiesce.test.d.ts.map +1 -0
- package/dist/test/host-quiesce.test.js +863 -0
- package/dist/test/host-quiesce.test.js.map +1 -0
- package/dist/test/operator-surgery.test.d.ts +2 -0
- package/dist/test/operator-surgery.test.d.ts.map +1 -0
- package/dist/test/operator-surgery.test.js +398 -0
- package/dist/test/operator-surgery.test.js.map +1 -0
- package/dist/test/puppet-tool-call.test.js +5 -0
- package/dist/test/puppet-tool-call.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/agent.ts +69 -0
- package/src/api/server.ts +159 -2
- package/src/api/types.ts +15 -0
- package/src/framework.ts +2081 -89
- package/src/gate/event-gate.ts +47 -4
- package/src/index.ts +5 -1
- package/src/mcpl/channel-registry.ts +495 -2
- package/src/mcpl/server-connection.ts +73 -13
- package/src/modules/history/index.ts +689 -25
- package/src/operator-log.ts +132 -0
- package/src/recovery/discord-awareness-outbox.ts +19 -0
- package/src/types/framework.ts +27 -0
- package/src/types/trace.ts +42 -0
|
@@ -151,6 +151,51 @@ export declare class ChannelRegistry {
|
|
|
151
151
|
private store?;
|
|
152
152
|
/** Registered channels, keyed by `{serverId}:{channelId}`. */
|
|
153
153
|
private channels;
|
|
154
|
+
/**
|
|
155
|
+
* Most-recently-known label per channelId, replayed from
|
|
156
|
+
* `CHANNEL_LABEL_HISTORY_LOG_ID` (last sighting wins) and kept current by
|
|
157
|
+
* `appendLabelSighting()`. Unlike `channels`, this survives disconnect and
|
|
158
|
+
* restart — it's what lets `resolveProseTargetDurable()` resolve a label
|
|
159
|
+
* for a channel that's no longer live. Keyed by bare channelId, not
|
|
160
|
+
* `{serverId}:{channelId}` — the label history exists to answer "what id
|
|
161
|
+
* did this label refer to", independent of which server it came through.
|
|
162
|
+
*/
|
|
163
|
+
private labelHistory;
|
|
164
|
+
/**
|
|
165
|
+
* EVERY distinct label a channelId has ever been durably seen with (not
|
|
166
|
+
* just the latest) — additive alongside `labelHistory`, populated by the
|
|
167
|
+
* same replay-at-boot loop and the same `appendLabelSighting()` call.
|
|
168
|
+
* `labelHistory` alone can only resolve a channel's CURRENT/latest name;
|
|
169
|
+
* this is what lets `resolveLabelFromHistory()` find a channel by a label
|
|
170
|
+
* it used to have before a rename — the exact case this whole durable log
|
|
171
|
+
* exists for (finding an old/renamed channel while browsing history).
|
|
172
|
+
*/
|
|
173
|
+
private allLabelsSeen;
|
|
174
|
+
/**
|
|
175
|
+
* DM recipientId per channelId, durably replayed alongside `labelHistory`
|
|
176
|
+
* — the piece a `<@id>` mention-form lookup needs that `allLabelsSeen`'s
|
|
177
|
+
* label strings alone can't provide. See `resolveLabelFromHistory()`'s
|
|
178
|
+
* DM-aware arm.
|
|
179
|
+
*/
|
|
180
|
+
private dmRecipientIds;
|
|
181
|
+
/**
|
|
182
|
+
* DM recipient's actual username per channelId — can differ from the
|
|
183
|
+
* channel's display label (`resolveProseTarget()`'s live DM matching
|
|
184
|
+
* prefers this over the label for exactly that reason). See
|
|
185
|
+
* `resolveDmFromHistory()`.
|
|
186
|
+
*/
|
|
187
|
+
private dmRecipientNames;
|
|
188
|
+
/**
|
|
189
|
+
* channelId -> true, for every channel EXPLICITLY classified as a DM via
|
|
190
|
+
* `metadata.channelType === 'dm'` at some sighting — an id/label-shape-
|
|
191
|
+
* independent classification signal, the same one `resolveProseTarget()`
|
|
192
|
+
* checks live. Only ever holds `true`; a channel with no explicit
|
|
193
|
+
* classification is simply absent (not `false`), so `isDmChannelId()`
|
|
194
|
+
* falls back to id/label-shape heuristics for it rather than durably
|
|
195
|
+
* asserting a negative for the common case where this metadata was never
|
|
196
|
+
* sent at all.
|
|
197
|
+
*/
|
|
198
|
+
private dmClassified;
|
|
154
199
|
/** Most recent incoming channel ID — used for speech routing / default publish. */
|
|
155
200
|
private defaultPublishChannel;
|
|
156
201
|
/** Most recent incoming message metadata, used for buildChannelContext. */
|
|
@@ -281,6 +326,133 @@ export declare class ChannelRegistry {
|
|
|
281
326
|
private lifecycleKey;
|
|
282
327
|
private initializeLifecycleStore;
|
|
283
328
|
private appendLifecycleEvent;
|
|
329
|
+
/**
|
|
330
|
+
* Replay `CHANNEL_LABEL_HISTORY_LOG_ID` into `labelHistory`. Same
|
|
331
|
+
* construction-time timing as `initializeLifecycleStore()`, and the same
|
|
332
|
+
* register-if-missing / swallow-"already exists" pattern. The log is
|
|
333
|
+
* chronological, so folding forward and letting each record overwrite the
|
|
334
|
+
* map entry for its channelId naturally keeps only the latest sighting.
|
|
335
|
+
*/
|
|
336
|
+
private initializeLabelHistoryStore;
|
|
337
|
+
/**
|
|
338
|
+
* Record that `channelId` was most recently seen with `label` (and,
|
|
339
|
+
* optionally, DM identity/classification fields). Called from every
|
|
340
|
+
* place a `ChannelDescriptor` is set into the live `channels` map
|
|
341
|
+
* (`handleRegister`, `handleChanged`'s update/add branches,
|
|
342
|
+
* `ensureChannelRegistered`) so the label survives disconnect and restart
|
|
343
|
+
* for `resolveLabelFromHistory()` / `resolveProseTargetDurable()`.
|
|
344
|
+
*
|
|
345
|
+
* Guarded like `setDesiredState()`: a reconnect or re-registration that
|
|
346
|
+
* reports the same label AND the same dmMeta fields as last time is a
|
|
347
|
+
* no-op, so the append log doesn't grow without bound on every
|
|
348
|
+
* boot/resubscribe — but a later call that newly supplies (or changes)
|
|
349
|
+
* any dmMeta field for an already-known label (label unchanged) still
|
|
350
|
+
* records, since that's genuinely new durable information, not a no-op
|
|
351
|
+
* resighting. `isDm` only ever compares against a possible narrowing:
|
|
352
|
+
* once durably `true`, a later sighting without `channelType==='dm'`
|
|
353
|
+
* metadata (i.e. `dmMeta.isDm === undefined`, NOT `false` — see
|
|
354
|
+
* `extractDmMeta`) is simply silent on the question, not a "no longer a
|
|
355
|
+
* DM" downgrade, so it never counts as a change on its own.
|
|
356
|
+
*
|
|
357
|
+
* `label` is `string | undefined` (not just `string`) even though
|
|
358
|
+
* `ChannelDescriptor.label` is typed `string`: that typing is a
|
|
359
|
+
* compile-time-only assertion over untrusted wire data from an MCPL
|
|
360
|
+
* server, and only `channel.id` is runtime-validated on the way in
|
|
361
|
+
* (`handleRegister`/`handleChanged`). A missing/undefined label is
|
|
362
|
+
* dropped rather than recorded — durable garbage here would later throw
|
|
363
|
+
* inside `resolveLabelFromHistory()`'s normalization, which every
|
|
364
|
+
* `HistoryModule` tool call passes through unguarded via
|
|
365
|
+
* `resolveProseTargetDurable()`.
|
|
366
|
+
*/
|
|
367
|
+
private appendLabelSighting;
|
|
368
|
+
/**
|
|
369
|
+
* Look up a label spec against label *history* rather than the live
|
|
370
|
+
* `channels` map — the fallback path for a channel the bot isn't
|
|
371
|
+
* currently connected to. Applies the same normalization
|
|
372
|
+
* `resolveProseTarget()` uses for its live label/name matches
|
|
373
|
+
* (`normalizeChannelLabel` / `normalizeChannelLabelName`), plus a raw-id
|
|
374
|
+
* fast path (mirroring `resolveProseTarget()`'s own raw-id acceptance).
|
|
375
|
+
*
|
|
376
|
+
* Matches against `allLabelsSeen` — EVERY label a channel has ever had —
|
|
377
|
+
* not just its current/latest one in `labelHistory`, so a channel renamed
|
|
378
|
+
* A -> B -> A is still resolvable by a name from BEFORE the most recent
|
|
379
|
+
* rename (the point of a history-browsing tool is finding things by what
|
|
380
|
+
* they used to be called). Ambiguity is genuine here: if the same
|
|
381
|
+
* normalized spec matches historical labels belonging to two DIFFERENT
|
|
382
|
+
* channelIds (an actual rename collision, not just the same channel seen
|
|
383
|
+
* twice), that's a real ambiguity, not a false positive from re-scanning
|
|
384
|
+
* one channel's own label list — `byLabel`/`byName` tracking below
|
|
385
|
+
* already only flags ambiguous when the matched channelId itself differs.
|
|
386
|
+
*
|
|
387
|
+
* Returns undefined — rather than raising an ambiguity error — when a
|
|
388
|
+
* normalized spec matches more than one distinct channelId in history;
|
|
389
|
+
* callers fall back to `resolveProseTarget()`'s original error in that
|
|
390
|
+
* case via `resolveProseTargetDurable()`.
|
|
391
|
+
*/
|
|
392
|
+
private resolveLabelFromHistory;
|
|
393
|
+
/**
|
|
394
|
+
* A channel counts as a DM (for the purposes of durable-history lookup)
|
|
395
|
+
* if: it was EXPLICITLY classified as one via `metadata.channelType ===
|
|
396
|
+
* 'dm'` at some sighting (`dmClassified` — the same classification
|
|
397
|
+
* signal `resolveProseTarget()`'s live `isDmEntry()` checks FIRST, before
|
|
398
|
+
* any naming convention, so an id/label that don't follow the usual
|
|
399
|
+
* `:dm:`/`DM: ` shape still get recognized correctly — this is what
|
|
400
|
+
* `private-room-42` labeled just `Tess` needs); OR, as a fallback for
|
|
401
|
+
* descriptors that never carried that metadata at all, its id shape says
|
|
402
|
+
* so, or any label it has ever carried says so.
|
|
403
|
+
*/
|
|
404
|
+
private isDmChannelId;
|
|
405
|
+
/**
|
|
406
|
+
* Durable-history counterpart to `resolveProseTarget()`'s DM-matching arm
|
|
407
|
+
* (see there for the live version this mirrors). Handles the two forms
|
|
408
|
+
* `resolveProseTarget()` supports: a `<@id>` mention (matched against
|
|
409
|
+
* `dmRecipientIds`, persisted alongside a label sighting specifically for
|
|
410
|
+
* this) and a bare `@name` (matched against EITHER the persisted
|
|
411
|
+
* `dmRecipientNames` — the DM's actual username, which the live resolver
|
|
412
|
+
* prefers and which can differ from the display label, e.g. label
|
|
413
|
+
* "DM: Tess" but username "antra_tessera" — OR the `DM: `-stripped form
|
|
414
|
+
* of each DM channel's CURRENT label in `labelHistory`, as a fallback for
|
|
415
|
+
* descriptors that never carried a recipientName; historical DM labels
|
|
416
|
+
* aren't name-matched here the way non-DM labels are in
|
|
417
|
+
* `resolveLabelFromHistory`'s main loop, since a DM's label is a person's
|
|
418
|
+
* name, not a channel name subject to the same kind of rename).
|
|
419
|
+
*
|
|
420
|
+
* Returns undefined on no-match OR ambiguity, same contract as
|
|
421
|
+
* `resolveLabelFromHistory` — the caller falls back to the live
|
|
422
|
+
* resolver's original error.
|
|
423
|
+
*/
|
|
424
|
+
private resolveDmFromHistory;
|
|
425
|
+
/**
|
|
426
|
+
* Durable-history-aware counterpart to `resolveProseTarget()`. Resolves a
|
|
427
|
+
* label or channelId to a canonical channel id even for a channel the bot
|
|
428
|
+
* is not currently connected to (browsing message history is exactly the
|
|
429
|
+
* case where you want to look at an old/quiet/disconnected channel, so the
|
|
430
|
+
* live-only `resolveProseTarget()` isn't enough).
|
|
431
|
+
*
|
|
432
|
+
* Tries the live path first — unchanged, so ordinary addressing keeps its
|
|
433
|
+
* exact current behavior — and only consults `labelHistory` on a live
|
|
434
|
+
* miss. If history has no answer either, the original error/candidates
|
|
435
|
+
* from `resolveProseTarget()` are returned unchanged, so callers keep the
|
|
436
|
+
* same debuggability they'd get from the live-only path.
|
|
437
|
+
*
|
|
438
|
+
* CAVEAT (prose-misdelivery safety): if two channels once shared a label
|
|
439
|
+
* but only ONE of them ever got a durable label-history record (e.g. the
|
|
440
|
+
* other was lazily registered label-less, or predates this feature), this
|
|
441
|
+
* can return a single confident answer where `resolveProseTarget()` on
|
|
442
|
+
* fuller live data would have said "ambiguous" — the durable fallback
|
|
443
|
+
* only sees what was actually persisted, not what's structurally true.
|
|
444
|
+
* This is harmless for the current sole caller
|
|
445
|
+
* (`HistoryModule.resolveChannel`, read-only), but a future caller wiring
|
|
446
|
+
* this into a SEND path should be aware the ambiguity guarantee is weaker
|
|
447
|
+
* here than on the live path.
|
|
448
|
+
*/
|
|
449
|
+
resolveProseTargetDurable(spec: string): {
|
|
450
|
+
channelId: string;
|
|
451
|
+
label?: string;
|
|
452
|
+
} | {
|
|
453
|
+
error: string;
|
|
454
|
+
candidates?: string[];
|
|
455
|
+
};
|
|
284
456
|
private setDesiredState;
|
|
285
457
|
/**
|
|
286
458
|
* Enter (or re-enter with fresh params) the tuned-out state for a channel.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-registry.d.ts","sourceRoot":"","sources":["../../../src/mcpl/channel-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EAEtB,qBAAqB,EACrB,sBAAsB,EAOvB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"channel-registry.d.ts","sourceRoot":"","sources":["../../../src/mcpl/channel-registry.ts"],"names":[],"mappings":"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"}
|