@aexol/spectral 0.9.15 → 0.9.17

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 (54) hide show
  1. package/dist/memory/compaction.d.ts +1 -1
  2. package/dist/memory/compaction.js +3 -3
  3. package/dist/memory/config.d.ts +12 -0
  4. package/dist/memory/config.d.ts.map +1 -1
  5. package/dist/memory/config.js +27 -0
  6. package/dist/memory/deterministic-pruner.d.ts +65 -0
  7. package/dist/memory/deterministic-pruner.d.ts.map +1 -0
  8. package/dist/memory/deterministic-pruner.js +333 -0
  9. package/dist/memory/hooks/compaction-hook.d.ts.map +1 -1
  10. package/dist/memory/hooks/compaction-hook.js +160 -132
  11. package/dist/memory/hooks/inter-agent-receiver.d.ts +3 -0
  12. package/dist/memory/hooks/inter-agent-receiver.d.ts.map +1 -0
  13. package/dist/memory/hooks/inter-agent-receiver.js +183 -0
  14. package/dist/memory/hooks/observer-trigger.d.ts.map +1 -1
  15. package/dist/memory/hooks/observer-trigger.js +14 -0
  16. package/dist/memory/index.d.ts.map +1 -1
  17. package/dist/memory/index.js +6 -0
  18. package/dist/memory/inter-agent-broker-singleton.d.ts +5 -0
  19. package/dist/memory/inter-agent-broker-singleton.d.ts.map +1 -0
  20. package/dist/memory/inter-agent-broker-singleton.js +7 -0
  21. package/dist/memory/inter-agent-relay.d.ts +7 -0
  22. package/dist/memory/inter-agent-relay.d.ts.map +1 -0
  23. package/dist/memory/inter-agent-relay.js +41 -0
  24. package/dist/memory/project-observations-store.d.ts +7 -0
  25. package/dist/memory/project-observations-store.d.ts.map +1 -1
  26. package/dist/memory/prompts.d.ts.map +1 -1
  27. package/dist/memory/prompts.js +9 -0
  28. package/dist/memory/tools/receive-agent-observations.d.ts +17 -0
  29. package/dist/memory/tools/receive-agent-observations.d.ts.map +1 -0
  30. package/dist/memory/tools/receive-agent-observations.js +68 -0
  31. package/dist/memory/tools/share-project-observation.d.ts +8 -0
  32. package/dist/memory/tools/share-project-observation.d.ts.map +1 -0
  33. package/dist/memory/tools/share-project-observation.js +106 -0
  34. package/dist/memory/unified-compaction.d.ts +59 -0
  35. package/dist/memory/unified-compaction.d.ts.map +1 -0
  36. package/dist/memory/unified-compaction.js +332 -0
  37. package/dist/relay/dispatcher.d.ts +1 -1
  38. package/dist/relay/dispatcher.d.ts.map +1 -1
  39. package/dist/relay/dispatcher.js +13 -0
  40. package/dist/server/handlers/files-search.d.ts +26 -0
  41. package/dist/server/handlers/files-search.d.ts.map +1 -0
  42. package/dist/server/handlers/files-search.js +89 -0
  43. package/dist/server/inter-agent-broker.d.ts +111 -0
  44. package/dist/server/inter-agent-broker.d.ts.map +1 -0
  45. package/dist/server/inter-agent-broker.js +136 -0
  46. package/dist/server/session-stream.d.ts +1 -0
  47. package/dist/server/session-stream.d.ts.map +1 -1
  48. package/dist/server/session-stream.js +43 -0
  49. package/dist/server/storage.d.ts +28 -0
  50. package/dist/server/storage.d.ts.map +1 -1
  51. package/dist/server/storage.js +101 -0
  52. package/dist/server/wire.d.ts +15 -0
  53. package/dist/server/wire.d.ts.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Inter-agent communication broker for `spectral serve`.
3
+ *
4
+ * Provides project-scoped, channel-based messaging between active agent
5
+ * sessions running in the same spectral process on the same machine. Messages
6
+ * are durably backed by SQLite so they survive reconnects and can be polled by
7
+ * sessions that were not attached when the message was sent.
8
+ *
9
+ * The broker is intentionally process-local: subscriptions are in-memory
10
+ * inside the `spectral serve` daemon. Cross-process delivery on the same
11
+ * machine happens through the shared SQLite backing when each process creates
12
+ * its own broker instance pointing at the same `sessions.db`.
13
+ */
14
+ import { randomUUID } from "node:crypto";
15
+ /**
16
+ * In-process broker for inter-session messages.
17
+ *
18
+ * All public methods are synchronous because the underlying `SessionStore`
19
+ * uses better-sqlite3. Live subscribers are called synchronously from `send`.
20
+ */
21
+ export class InterAgentBroker {
22
+ store;
23
+ defaultTtlSeconds;
24
+ /**
25
+ * In-process subscriptions keyed by `projectId:channel`. Each active session
26
+ * in the current process registers a handler here to receive live pushes.
27
+ */
28
+ subscriptions = new Map();
29
+ constructor(opts) {
30
+ this.store = opts.store;
31
+ this.defaultTtlSeconds = opts.defaultTtlSeconds ?? 24 * 60 * 60;
32
+ }
33
+ /**
34
+ * Send a message. Persists it to SQLite and synchronously pushes it to any
35
+ * in-process subscribers whose session/channel filters match.
36
+ */
37
+ send(input) {
38
+ const now = Date.now();
39
+ const ttl = input.ttlSeconds === undefined
40
+ ? this.defaultTtlSeconds
41
+ : input.ttlSeconds;
42
+ const msg = {
43
+ id: randomUUID(),
44
+ projectId: input.projectId,
45
+ channel: input.channel,
46
+ senderSessionId: input.senderSessionId,
47
+ senderName: input.senderName,
48
+ recipientSessionId: input.recipientSessionId,
49
+ kind: input.kind,
50
+ payload: input.payload,
51
+ createdAt: now,
52
+ expiresAt: ttl > 0 ? now + ttl * 1000 : undefined,
53
+ };
54
+ this.store.insertInterAgentMessage(msg);
55
+ this.pushToSubscribers(msg);
56
+ return msg;
57
+ }
58
+ /**
59
+ * Poll for messages matching the filter. By default marks returned messages
60
+ * as delivered so they won't be returned again on subsequent polls.
61
+ */
62
+ poll(input) {
63
+ return this.store.pollInterAgentMessages({
64
+ projectId: input.projectId,
65
+ channel: input.channel,
66
+ recipientSessionId: input.recipientSessionId,
67
+ since: input.since,
68
+ limit: input.limit ?? 100,
69
+ markDelivered: input.markDelivered ?? true,
70
+ });
71
+ }
72
+ /**
73
+ * Subscribe a session to live pushes for a project/channel. Returns an
74
+ * unsubscribe function. Subscriptions are in-process only.
75
+ */
76
+ subscribe(input) {
77
+ const key = subscriptionKey(input.projectId, input.channel);
78
+ let set = this.subscriptions.get(key);
79
+ if (!set) {
80
+ set = new Set();
81
+ this.subscriptions.set(key, set);
82
+ }
83
+ const wrapped = (msg) => {
84
+ // Don't deliver the sender's own messages back to itself.
85
+ if (msg.senderSessionId === input.sessionId)
86
+ return;
87
+ // Respect direct-message targeting.
88
+ if (msg.recipientSessionId && msg.recipientSessionId !== input.sessionId)
89
+ return;
90
+ input.handler(msg);
91
+ };
92
+ set.add(wrapped);
93
+ return () => {
94
+ const current = this.subscriptions.get(key);
95
+ if (!current)
96
+ return;
97
+ current.delete(wrapped);
98
+ if (current.size === 0) {
99
+ this.subscriptions.delete(key);
100
+ }
101
+ };
102
+ }
103
+ /**
104
+ * Delete expired messages from the backing store. Call periodically.
105
+ */
106
+ cleanup(maxAgeSeconds) {
107
+ const now = Date.now();
108
+ if (maxAgeSeconds !== undefined) {
109
+ this.store.deleteInterAgentMessagesOlderThan(now - maxAgeSeconds * 1000);
110
+ }
111
+ this.store.deleteExpiredInterAgentMessages(now);
112
+ }
113
+ pushToSubscribers(msg) {
114
+ // Try both channel-specific and project-wide subscriptions.
115
+ const keys = [
116
+ subscriptionKey(msg.projectId, msg.channel),
117
+ subscriptionKey(msg.projectId, undefined),
118
+ ];
119
+ for (const key of keys) {
120
+ const set = this.subscriptions.get(key);
121
+ if (!set)
122
+ continue;
123
+ for (const handler of set) {
124
+ try {
125
+ handler(msg);
126
+ }
127
+ catch (err) {
128
+ console.error(`[inter-agent] subscriber error: ${err instanceof Error ? err.message : String(err)}`);
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
134
+ function subscriptionKey(projectId, channel) {
135
+ return channel ? `${projectId}:${channel}` : projectId;
136
+ }
@@ -196,6 +196,7 @@ export declare class SessionStreamManager {
196
196
  private readonly machineJwt;
197
197
  private readonly bridgeFactory;
198
198
  private readonly agentDir;
199
+ private readonly broker;
199
200
  private readonly streams;
200
201
  private disposed;
201
202
  constructor(opts: SessionStreamManagerOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"session-stream.d.ts","sourceRoot":"","sources":["../../src/server/session-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-stream.d.ts","sourceRoot":"","sources":["../../src/server/session-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAMH,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAejD,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EAEtB,WAAW,EACX,WAAW,EACX,wBAAwB,EAGzB,MAAM,WAAW,CAAC;AAEnB;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,wEAAwE;IACxE,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,IAAI,IAAI,CAAC;IAChB;;;;;OAKG;IACH,OAAO,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;;;OAGG;IACH,kBAAkB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACtD;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;IAChD;;;;OAIG;IACH,eAAe,CAAC,IAAI;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACzG,gBAAgB,CAAC,IAAI,KAAK,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;IACH,iBAAiB,CAAC,IAAI;QACpB,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;QACtE,QAAQ,EAAE;YACR,QAAQ,EAAE,OAAO,CAAC;YAClB,UAAU,EAAE,OAAO,CAAC;YACpB,UAAU,EAAE,OAAO,CAAC;YACpB,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED,iDAAiD;AACjD,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,UAAU,CAAC;AA8PrE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;IACtE,QAAQ,EAAE;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,EAAE;QACZ,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,2BAA2B,EAAE,MAAM,CAAC;QACpC,yBAAyB,EAAE,MAAM,CAAC;QAClC,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAiCD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC3C,4FAA4F;IAC5F,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB;;qEAEiE;IACjE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,wGAAwG;IACxG,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yFAAyF;IACzF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,YAAY,CAAC;IACpB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,2BAA2B;IA4B7C;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY;IAyB/D;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAOvD,6EAA6E;IAC7E,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIzC;;;;;OAKG;IACH,uBAAuB,IAAI,GAAG,CAAC,MAAM,CAAC;IAQtC,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB;IAiE9D,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB;IA8D9D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCtD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,eAAe,EAAE,EAC1B,eAAe,CAAC,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC,IAAI,CAAC;IA0MhB;;;OAGG;IACH,OAAO,IAAI,IAAI;IAef,sEAAsE;IACtE,WAAW,IAAI,MAAM;IAIrB;;;;;;;;;OASG;IACH,eAAe,IAAI,MAAM;IAQzB;;;;;;;;OAQG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAsDnC;;;;;;;OAOG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA4B7C;;;;;OAKG;IACH,qBAAqB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAM1D;;;;;;;;OAQG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI;IAkBP;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;;;;;;;;;;;;;OAcG;IACH;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,eAAe;YA6BT,qBAAqB;IAgCnC,OAAO,CAAC,YAAY;IAqKpB,OAAO,CAAC,iBAAiB;IA4RzB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,SAAS;IAqBjB;;;;OAIG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAevC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CA2BzB"}
@@ -38,6 +38,8 @@
38
38
  */
39
39
  import { randomUUID } from "node:crypto";
40
40
  import { AgentBridge } from "./agent-bridge.js";
41
+ import { InterAgentBroker } from "./inter-agent-broker.js";
42
+ import { setInterAgentBroker } from "../memory/inter-agent-broker-singleton.js";
41
43
  import { getMemoryState, isSourceEntry, rawTokensSinceLastBound, rawTokensSinceLastCompaction, } from "../memory/branch.js";
42
44
  import { observationPoolTokens, renderSummary } from "../memory/compaction.js";
43
45
  import { loadConfig } from "../memory/config.js";
@@ -233,6 +235,7 @@ export class SessionStreamManager {
233
235
  machineJwt;
234
236
  bridgeFactory;
235
237
  agentDir;
238
+ broker;
236
239
  streams = new Map();
237
240
  disposed = false;
238
241
  constructor(opts) {
@@ -242,13 +245,19 @@ export class SessionStreamManager {
242
245
  this.machineJwt = opts.machineJwt;
243
246
  this.bridgeFactory = opts.bridgeFactory ?? DEFAULT_BRIDGE_FACTORY;
244
247
  this.agentDir = opts.agentDir;
248
+ // Broker for project-scoped inter-session communication.
249
+ this.broker = new InterAgentBroker({ store: this.store });
245
250
  // Wire the project observations store singleton so the memory extension's
246
251
  // read_project_observations tool can query cross-session observations.
247
252
  setProjectObsStore({
248
253
  insertProjectObservations: (pid, sid, obs, ts) => this.store.insertProjectObservations(pid, sid, obs, ts),
249
254
  searchProjectObservations: (pid, q, limit) => this.store.searchProjectObservations(pid, q, limit),
255
+ getProjectObservationById: (pid, oid) => this.store.getProjectObservationById(pid, oid),
250
256
  getProjectByCwd: (cwd) => this.store.getProjectByCwd(cwd),
251
257
  });
258
+ // Wire the inter-agent broker singleton so the memory extension can send
259
+ // and receive live observation messages between active sessions.
260
+ setInterAgentBroker(this.broker);
252
261
  }
253
262
  /**
254
263
  * Attach a subscriber to a session. Lazily creates the underlying spectral
@@ -1048,6 +1057,40 @@ export class SessionStreamManager {
1048
1057
  },
1049
1058
  };
1050
1059
  stream.bridge = this.bridgeFactory(bridgeOpts);
1060
+ // Subscribe this session to live inter-agent observation messages so the
1061
+ // browser UI can surface them even before the memory extension injects
1062
+ // them into the agent context.
1063
+ if (projectId) {
1064
+ stream.interAgentUnsubscribe = this.broker.subscribe({
1065
+ sessionId,
1066
+ projectId,
1067
+ channel: "memory",
1068
+ handler: (msg) => {
1069
+ if (msg.senderSessionId === sessionId)
1070
+ return;
1071
+ if (msg.kind !== "observation")
1072
+ return;
1073
+ try {
1074
+ const payload = JSON.parse(msg.payload);
1075
+ const relevance = payload.relevance;
1076
+ this.broadcast(stream, {
1077
+ type: "inter_agent_observation",
1078
+ projectId: msg.projectId,
1079
+ sourceSessionId: msg.senderSessionId,
1080
+ sourceSessionName: msg.senderName,
1081
+ memoryId: String(payload.memoryId ?? ""),
1082
+ content: String(payload.content ?? ""),
1083
+ relevance,
1084
+ originType: payload.originType === "reflection" ? "reflection" : "observation",
1085
+ timestamp: String(payload.timestamp ?? new Date().toISOString()),
1086
+ });
1087
+ }
1088
+ catch (err) {
1089
+ console.error(`[spectral] error: failed to broadcast inter-agent observation: ${err instanceof Error ? err.message : String(err)}`);
1090
+ }
1091
+ },
1092
+ });
1093
+ }
1051
1094
  stream.ready = stream.bridge
1052
1095
  .start()
1053
1096
  .then(() => {
@@ -27,6 +27,7 @@
27
27
  */
28
28
  import type { ImageAttachment, WireMessage, WireProject, WireSessionDetail, WireSessionSummary } from "./wire.js";
29
29
  import type { SupportedMemoryDetails } from "../memory/types.js";
30
+ import type { InterAgentMessage } from "./inter-agent-broker.js";
30
31
  /** A single message as stored in SQLite. Identical to WireMessage. */
31
32
  export type StoredMessage = WireMessage;
32
33
  /** Input shape for `appendMessage`. */
@@ -109,6 +110,7 @@ export declare class SessionStore {
109
110
  private stmtGetForkCompactSource;
110
111
  private stmtInsertProjectObs;
111
112
  private stmtSearchProjectObs;
113
+ private stmtGetProjectObsById;
112
114
  private stmtGetProjectByCwd;
113
115
  private stmtEnqueuePrompt;
114
116
  private stmtGetPromptQueue;
@@ -116,6 +118,11 @@ export declare class SessionStore {
116
118
  private stmtDeleteQueueItem;
117
119
  private stmtClearSessionQueue;
118
120
  private stmtShiftPositions;
121
+ private stmtInsertInterAgentMessage;
122
+ private stmtPollInterAgentMessages;
123
+ private stmtMarkInterAgentMessageDelivered;
124
+ private stmtDeleteExpiredInterAgentMessages;
125
+ private stmtDeleteOldInterAgentMessages;
119
126
  constructor(path: string);
120
127
  /** Smoke check: returns the names of the tables in the DB. */
121
128
  listTables(): string[];
@@ -244,11 +251,32 @@ export declare class SessionStore {
244
251
  createdAt: number;
245
252
  sessionId: string;
246
253
  }>;
254
+ /**
255
+ * Get a single project observation by id. Returns null if not found.
256
+ */
257
+ getProjectObservationById(projectId: string, observationId: string): {
258
+ id: string;
259
+ content: string;
260
+ relevance: string;
261
+ createdAt: number;
262
+ sessionId: string;
263
+ } | null;
247
264
  /**
248
265
  * Look up a project by its absolute filesystem path.
249
266
  * Returns null when no project has been registered for the given path.
250
267
  */
251
268
  getProjectByCwd(cwd: string): string | null;
269
+ insertInterAgentMessage(msg: InterAgentMessage): void;
270
+ pollInterAgentMessages(input: {
271
+ projectId: string;
272
+ channel?: string;
273
+ recipientSessionId?: string;
274
+ since?: number;
275
+ limit: number;
276
+ markDelivered: boolean;
277
+ }): InterAgentMessage[];
278
+ deleteExpiredInterAgentMessages(now: number): void;
279
+ deleteInterAgentMessagesOlderThan(before: number): void;
252
280
  /**
253
281
  * Enqueue a prompt for a session. Returns the created queue item.
254
282
  * Position is auto-assigned as (max existing position + 1).
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/server/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/server/storage.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,23 @@ CREATE TABLE IF NOT EXISTS prompt_queue (
102
102
  );
103
103
 
104
104
  CREATE INDEX IF NOT EXISTS idx_prompt_queue_session ON prompt_queue(session_id, position);
105
+
106
+ CREATE TABLE IF NOT EXISTS inter_agent_messages (
107
+ id TEXT PRIMARY KEY,
108
+ project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
109
+ channel TEXT NOT NULL,
110
+ sender_session_id TEXT NOT NULL,
111
+ sender_name TEXT,
112
+ recipient_session_id TEXT,
113
+ kind TEXT NOT NULL,
114
+ payload TEXT NOT NULL,
115
+ created_at INTEGER NOT NULL,
116
+ delivered_at INTEGER,
117
+ expires_at INTEGER
118
+ );
119
+
120
+ CREATE INDEX IF NOT EXISTS idx_inter_agent_inbox ON inter_agent_messages(project_id, channel, recipient_session_id, created_at DESC);
121
+ CREATE INDEX IF NOT EXISTS idx_inter_agent_expiry ON inter_agent_messages(expires_at);
105
122
  `;
106
123
  /**
107
124
  * Synchronous binding-file reader for a project at the given filesystem path.
@@ -198,6 +215,7 @@ export class SessionStore {
198
215
  // Project observations: cross-session durable memory.
199
216
  stmtInsertProjectObs;
200
217
  stmtSearchProjectObs;
218
+ stmtGetProjectObsById;
201
219
  stmtGetProjectByCwd;
202
220
  // Prompt queue statements
203
221
  stmtEnqueuePrompt;
@@ -206,6 +224,12 @@ export class SessionStore {
206
224
  stmtDeleteQueueItem;
207
225
  stmtClearSessionQueue;
208
226
  stmtShiftPositions;
227
+ // Inter-agent messages
228
+ stmtInsertInterAgentMessage;
229
+ stmtPollInterAgentMessages;
230
+ stmtMarkInterAgentMessageDelivered;
231
+ stmtDeleteExpiredInterAgentMessages;
232
+ stmtDeleteOldInterAgentMessages;
209
233
  constructor(path) {
210
234
  this.path = path;
211
235
  // Make sure the parent directory exists. mkdirSync with recursive is a
@@ -352,6 +376,9 @@ export class SessionStore {
352
376
  WHERE project_id = ? AND content LIKE ?
353
377
  ORDER BY created_at DESC
354
378
  LIMIT 20`);
379
+ this.stmtGetProjectObsById = this.db.prepare(`SELECT id, project_id, session_id, content, relevance, created_at
380
+ FROM project_observations
381
+ WHERE project_id = ? AND id = ?`);
355
382
  this.stmtGetProjectByCwd = this.db.prepare(`SELECT id FROM projects WHERE path = ? LIMIT 1`);
356
383
  // ---- prompt queue statements ----------------------------------------
357
384
  this.stmtEnqueuePrompt = this.db.prepare(`INSERT INTO prompt_queue (id, session_id, content, position, created_at)
@@ -366,6 +393,22 @@ export class SessionStore {
366
393
  this.stmtClearSessionQueue = this.db.prepare(`DELETE FROM prompt_queue WHERE session_id = ?`);
367
394
  this.stmtShiftPositions = this.db.prepare(`UPDATE prompt_queue SET position = position + ?
368
395
  WHERE session_id = ? AND position >= ?`);
396
+ // ---- inter-agent messages statements ---------------------------------
397
+ this.stmtInsertInterAgentMessage = this.db.prepare(`INSERT INTO inter_agent_messages
398
+ (id, project_id, channel, sender_session_id, sender_name, recipient_session_id, kind, payload, created_at, delivered_at, expires_at)
399
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
400
+ this.stmtPollInterAgentMessages = this.db.prepare(`SELECT id, project_id, channel, sender_session_id, sender_name, recipient_session_id, kind, payload, created_at, delivered_at, expires_at
401
+ FROM inter_agent_messages
402
+ WHERE project_id = ?
403
+ AND delivered_at IS NULL
404
+ AND (channel = ? OR ? IS NULL)
405
+ AND (recipient_session_id IS NULL OR recipient_session_id = ? OR ? IS NULL)
406
+ AND (? IS NULL OR created_at > ?)
407
+ ORDER BY created_at DESC
408
+ LIMIT ?`);
409
+ this.stmtMarkInterAgentMessageDelivered = this.db.prepare(`UPDATE inter_agent_messages SET delivered_at = ? WHERE id = ?`);
410
+ this.stmtDeleteExpiredInterAgentMessages = this.db.prepare(`DELETE FROM inter_agent_messages WHERE expires_at IS NOT NULL AND expires_at < ?`);
411
+ this.stmtDeleteOldInterAgentMessages = this.db.prepare(`DELETE FROM inter_agent_messages WHERE created_at < ?`);
369
412
  }
370
413
  /** Smoke check: returns the names of the tables in the DB. */
371
414
  listTables() {
@@ -776,6 +819,21 @@ export class SessionStore {
776
819
  sessionId: r.session_id,
777
820
  }));
778
821
  }
822
+ /**
823
+ * Get a single project observation by id. Returns null if not found.
824
+ */
825
+ getProjectObservationById(projectId, observationId) {
826
+ const row = this.stmtGetProjectObsById.get(projectId, observationId);
827
+ if (!row)
828
+ return null;
829
+ return {
830
+ id: row.id,
831
+ content: row.content,
832
+ relevance: row.relevance,
833
+ createdAt: row.created_at,
834
+ sessionId: row.session_id,
835
+ };
836
+ }
779
837
  /**
780
838
  * Look up a project by its absolute filesystem path.
781
839
  * Returns null when no project has been registered for the given path.
@@ -785,6 +843,49 @@ export class SessionStore {
785
843
  return row?.id ?? null;
786
844
  }
787
845
  // ----------------------------------------------------------------------
846
+ // Inter-agent messages
847
+ // ----------------------------------------------------------------------
848
+ insertInterAgentMessage(msg) {
849
+ this.stmtInsertInterAgentMessage.run(msg.id, msg.projectId, msg.channel, msg.senderSessionId, msg.senderName ?? null, msg.recipientSessionId ?? null, msg.kind, msg.payload, msg.createdAt, msg.deliveredAt ?? null, msg.expiresAt ?? null);
850
+ }
851
+ pollInterAgentMessages(input) {
852
+ const rows = this.stmtPollInterAgentMessages.all(input.projectId, input.channel ?? null, input.channel ?? null, input.recipientSessionId ?? null, input.recipientSessionId ?? null, input.since ?? null, input.since ?? null, input.limit);
853
+ const messages = rows.map((r) => ({
854
+ id: r.id,
855
+ projectId: r.project_id,
856
+ channel: r.channel,
857
+ senderSessionId: r.sender_session_id,
858
+ senderName: r.sender_name ?? undefined,
859
+ recipientSessionId: r.recipient_session_id ?? undefined,
860
+ kind: r.kind,
861
+ payload: r.payload,
862
+ createdAt: r.created_at,
863
+ deliveredAt: r.delivered_at ?? undefined,
864
+ expiresAt: r.expires_at ?? undefined,
865
+ }));
866
+ if (input.markDelivered && messages.length > 0) {
867
+ const now = Date.now();
868
+ const tx = this.db.transaction(() => {
869
+ for (const msg of messages) {
870
+ if (msg.deliveredAt)
871
+ continue;
872
+ this.stmtMarkInterAgentMessageDelivered.run(now, msg.id);
873
+ msg.deliveredAt = now;
874
+ }
875
+ });
876
+ tx();
877
+ }
878
+ // SQLite returns newest-first; callers usually want oldest-first.
879
+ messages.reverse();
880
+ return messages;
881
+ }
882
+ deleteExpiredInterAgentMessages(now) {
883
+ this.stmtDeleteExpiredInterAgentMessages.run(now);
884
+ }
885
+ deleteInterAgentMessagesOlderThan(before) {
886
+ this.stmtDeleteOldInterAgentMessages.run(before);
887
+ }
888
+ // ----------------------------------------------------------------------
788
889
  // Prompt Queue
789
890
  // ----------------------------------------------------------------------
790
891
  /**
@@ -371,6 +371,21 @@ export type ServerEvent = {
371
371
  type: "auto_research_error";
372
372
  projectId: string;
373
373
  message: string;
374
+ } | {
375
+ /**
376
+ * Emitted when another active session in the same project shares an
377
+ * observation via the inter-agent broker. The UI can show a transient
378
+ * indicator or include the observation in the session context.
379
+ */
380
+ type: "inter_agent_observation";
381
+ projectId: string;
382
+ sourceSessionId: string;
383
+ sourceSessionName?: string;
384
+ memoryId: string;
385
+ content: string;
386
+ relevance: "low" | "medium" | "high" | "critical";
387
+ originType: "observation" | "reflection";
388
+ timestamp: string;
374
389
  } | {
375
390
  /**
376
391
  * Emitted when a subagent tool invocation begins. The UI can show a
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/server/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/server/wire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexol/spectral",
3
- "version": "0.9.15",
3
+ "version": "0.9.17",
4
4
  "description": "AI coding agent for Aexol with relay-based browser access.",
5
5
  "type": "module",
6
6
  "private": false,