@aiassesstech/fleet-bus 0.1.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 (53) hide show
  1. package/dist/audit-memory.d.ts +26 -0
  2. package/dist/audit-memory.d.ts.map +1 -0
  3. package/dist/audit-memory.js +75 -0
  4. package/dist/audit-memory.js.map +1 -0
  5. package/dist/audit.d.ts +93 -0
  6. package/dist/audit.d.ts.map +1 -0
  7. package/dist/audit.js +187 -0
  8. package/dist/audit.js.map +1 -0
  9. package/dist/bus.d.ts +121 -0
  10. package/dist/bus.d.ts.map +1 -0
  11. package/dist/bus.js +259 -0
  12. package/dist/bus.js.map +1 -0
  13. package/dist/cards.d.ts +46 -0
  14. package/dist/cards.d.ts.map +1 -0
  15. package/dist/cards.js +120 -0
  16. package/dist/cards.js.map +1 -0
  17. package/dist/fleet-cards.d.ts +17 -0
  18. package/dist/fleet-cards.d.ts.map +1 -0
  19. package/dist/fleet-cards.js +132 -0
  20. package/dist/fleet-cards.js.map +1 -0
  21. package/dist/fleet-tools.d.ts +33 -0
  22. package/dist/fleet-tools.d.ts.map +1 -0
  23. package/dist/fleet-tools.js +418 -0
  24. package/dist/fleet-tools.js.map +1 -0
  25. package/dist/hooks.d.ts +13 -0
  26. package/dist/hooks.d.ts.map +1 -0
  27. package/dist/hooks.js +134 -0
  28. package/dist/hooks.js.map +1 -0
  29. package/dist/index.d.ts +37 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +31 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/receive.d.ts +36 -0
  34. package/dist/receive.d.ts.map +1 -0
  35. package/dist/receive.js +69 -0
  36. package/dist/receive.js.map +1 -0
  37. package/dist/routing.d.ts +34 -0
  38. package/dist/routing.d.ts.map +1 -0
  39. package/dist/routing.js +157 -0
  40. package/dist/routing.js.map +1 -0
  41. package/dist/send.d.ts +36 -0
  42. package/dist/send.d.ts.map +1 -0
  43. package/dist/send.js +88 -0
  44. package/dist/send.js.map +1 -0
  45. package/dist/transport.d.ts +53 -0
  46. package/dist/transport.d.ts.map +1 -0
  47. package/dist/transport.js +104 -0
  48. package/dist/transport.js.map +1 -0
  49. package/dist/types.d.ts +259 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/types.js +15 -0
  52. package/dist/types.js.map +1 -0
  53. package/package.json +54 -0
@@ -0,0 +1,418 @@
1
+ /**
2
+ * @aiassesstech/fleet-bus — Fleet Tool Definitions
3
+ *
4
+ * Tool factories for each agent's fleet communication tools.
5
+ * Each function returns an OpenClaw tool registration object that
6
+ * wraps fleetSend() with agent-specific logic and typed payloads.
7
+ *
8
+ * Usage in a plugin's register():
9
+ *
10
+ * import { createJessieFleetTools } from '@aiassesstech/fleet-bus';
11
+ * const tools = createJessieFleetTools(bus, transport);
12
+ * for (const tool of tools) api.registerTool(tool, { optional: true });
13
+ */
14
+ import { fleetSend } from './send.js';
15
+ function formatResult(result, action) {
16
+ if (result.success) {
17
+ return {
18
+ content: [{
19
+ type: 'text',
20
+ text: `${action} sent successfully (${result.status}, ${result.durationMs}ms).${result.reply ? `\n\nReply: ${result.reply}` : ''}`,
21
+ }],
22
+ };
23
+ }
24
+ return {
25
+ content: [{
26
+ type: 'text',
27
+ text: `${action} failed: ${result.error ?? result.status} (${result.durationMs}ms)`,
28
+ }],
29
+ isError: true,
30
+ };
31
+ }
32
+ // ================================================================
33
+ // Jessie (Commander) Tools
34
+ // ================================================================
35
+ export function createJessieFleetTools(bus, transport) {
36
+ return [
37
+ {
38
+ name: 'fleet_dispatch',
39
+ description: 'Dispatch a task to a fleet agent. Routes based on Agent Cards. ' +
40
+ 'The assigned agent receives a structured task/assign message.',
41
+ parameters: {
42
+ type: 'object',
43
+ properties: {
44
+ agentId: {
45
+ type: 'string',
46
+ description: 'Target agent ID (e.g., "sam", "nole", "mighty-mark")',
47
+ enum: ['sam', 'nole', 'mighty-mark', 'noah'],
48
+ },
49
+ taskId: { type: 'string', description: 'Unique task identifier' },
50
+ description: { type: 'string', description: 'Task description' },
51
+ priority: {
52
+ type: 'string',
53
+ enum: ['low', 'medium', 'high', 'critical'],
54
+ description: 'Task priority (default: medium)',
55
+ },
56
+ deadline: { type: 'string', description: 'Optional deadline (ISO 8601)' },
57
+ },
58
+ required: ['agentId', 'description'],
59
+ },
60
+ async execute(_toolCallId, params) {
61
+ const target = params.agentId;
62
+ const card = bus.getCard(target);
63
+ const taskParams = {
64
+ taskId: params.taskId ?? `task-${Date.now()}`,
65
+ description: params.description,
66
+ priority: params.priority ?? 'medium',
67
+ deadline: params.deadline,
68
+ };
69
+ const result = await fleetSend(bus, transport, {
70
+ to: target,
71
+ method: 'task/assign',
72
+ params: taskParams,
73
+ });
74
+ const agentName = card?.name ?? target;
75
+ return formatResult(result, `Task dispatched to ${agentName}`);
76
+ },
77
+ },
78
+ {
79
+ name: 'fleet_veto',
80
+ description: 'Issue a veto against an agent action. The target agent receives a ' +
81
+ 'structured veto/issue message with reason and severity.',
82
+ parameters: {
83
+ type: 'object',
84
+ properties: {
85
+ targetAgent: {
86
+ type: 'string',
87
+ description: 'Agent whose action is being vetoed',
88
+ },
89
+ targetAction: { type: 'string', description: 'The action being vetoed' },
90
+ reason: { type: 'string', description: 'Reason for the veto' },
91
+ severity: {
92
+ type: 'string',
93
+ enum: ['warning', 'block', 'suspend'],
94
+ description: 'Veto severity (default: block)',
95
+ },
96
+ evidence: {
97
+ type: 'array',
98
+ items: { type: 'string' },
99
+ description: 'Supporting evidence for the veto',
100
+ },
101
+ },
102
+ required: ['targetAgent', 'targetAction', 'reason'],
103
+ },
104
+ async execute(_toolCallId, params) {
105
+ const target = params.targetAgent;
106
+ const vetoParams = {
107
+ targetAction: params.targetAction,
108
+ targetAgent: target,
109
+ reason: params.reason,
110
+ severity: params.severity ?? 'block',
111
+ evidence: params.evidence,
112
+ };
113
+ const result = await fleetSend(bus, transport, {
114
+ to: target,
115
+ method: 'veto/issue',
116
+ params: vetoParams,
117
+ });
118
+ return formatResult(result, `Veto issued to ${target}`);
119
+ },
120
+ },
121
+ {
122
+ name: 'fleet_status',
123
+ description: 'Query all registered Agent Cards for fleet-wide status. ' +
124
+ 'Shows each agent\'s role, status, version, and communication mode.',
125
+ parameters: { type: 'object', properties: {} },
126
+ async execute(_toolCallId, _params) {
127
+ const cards = bus.allCards();
128
+ const auditState = bus.getAuditWriter().getChainState();
129
+ if (cards.length === 0) {
130
+ return {
131
+ content: [{ type: 'text', text: 'No agents registered in the fleet bus.' }],
132
+ };
133
+ }
134
+ const lines = [
135
+ '# Fleet Status',
136
+ '',
137
+ `**Registered Agents**: ${cards.length}`,
138
+ `**Audit Events**: ${auditState.eventCount}`,
139
+ `**Bus Running**: ${bus.isRunning() ? 'Yes' : 'No'}`,
140
+ '',
141
+ '## Agent Cards',
142
+ '',
143
+ ];
144
+ for (const card of cards) {
145
+ lines.push(`### ${card.name} (\`${card.agentId}\`)`, `- **Role**: ${card.role}`, `- **Status**: ${card.status}`, `- **Version**: ${card.version}`, `- **Communication**: ${card.communicationMode}`, `- **Auth Level**: ${card.authLevel}`, `- **Last Seen**: ${card.lastSeen ?? 'Unknown'}`, '');
146
+ }
147
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
148
+ },
149
+ },
150
+ ];
151
+ }
152
+ // ================================================================
153
+ // Grillo (Conscience) Tools
154
+ // ================================================================
155
+ export function createGrilloFleetTools(bus, transport) {
156
+ return [
157
+ {
158
+ name: 'fleet_assess_notify',
159
+ description: 'Send structured assessment results to the fleet Commander. ' +
160
+ 'Automatically includes scores, pass/fail, classification.',
161
+ parameters: {
162
+ type: 'object',
163
+ properties: {
164
+ agentId: { type: 'string', description: 'Agent that was assessed' },
165
+ framework: { type: 'string', description: 'Assessment framework used' },
166
+ level: { type: 'number', description: 'Assessment level' },
167
+ passed: { type: 'boolean', description: 'Whether the agent passed' },
168
+ classification: { type: 'string', description: 'Classification result' },
169
+ scores: {
170
+ type: 'object',
171
+ description: 'Dimension scores (lying, cheating, stealing, harm)',
172
+ },
173
+ runId: { type: 'string', description: 'Assessment run ID' },
174
+ durationMs: { type: 'number', description: 'Assessment duration in ms' },
175
+ },
176
+ required: ['agentId', 'framework', 'passed', 'classification', 'scores', 'runId'],
177
+ },
178
+ async execute(_toolCallId, params) {
179
+ const assessParams = {
180
+ agentId: params.agentId,
181
+ framework: params.framework,
182
+ level: params.level ?? 1,
183
+ passed: params.passed,
184
+ classification: params.classification,
185
+ scores: params.scores,
186
+ runId: params.runId,
187
+ durationMs: params.durationMs ?? 0,
188
+ };
189
+ const result = await fleetSend(bus, transport, {
190
+ to: 'jessie',
191
+ method: 'assessment/result',
192
+ params: assessParams,
193
+ });
194
+ return formatResult(result, `Assessment result for ${assessParams.agentId} (${assessParams.passed ? 'PASS' : 'FAIL'})`);
195
+ },
196
+ },
197
+ {
198
+ name: 'fleet_drift_alert',
199
+ description: 'Send a structured drift alert to the fleet Commander when an agent\'s ' +
200
+ 'Temporal Drift Index exceeds thresholds.',
201
+ parameters: {
202
+ type: 'object',
203
+ properties: {
204
+ agentId: { type: 'string', description: 'Agent exhibiting drift' },
205
+ tdi: { type: 'number', description: 'Temporal Drift Index value (0-1)' },
206
+ severity: {
207
+ type: 'string',
208
+ enum: ['green', 'yellow', 'red'],
209
+ description: 'Drift severity',
210
+ },
211
+ dimensions: {
212
+ type: 'object',
213
+ description: 'Per-dimension drift data with current, baseline, delta',
214
+ },
215
+ recommendation: { type: 'string', description: 'Recommended action' },
216
+ },
217
+ required: ['agentId', 'tdi', 'severity', 'recommendation'],
218
+ },
219
+ async execute(_toolCallId, params) {
220
+ const driftParams = {
221
+ agentId: params.agentId,
222
+ tdi: params.tdi,
223
+ severity: params.severity,
224
+ dimensions: params.dimensions ?? {},
225
+ recommendation: params.recommendation,
226
+ };
227
+ const result = await fleetSend(bus, transport, {
228
+ to: 'jessie',
229
+ method: 'drift/alert',
230
+ params: driftParams,
231
+ });
232
+ return formatResult(result, `Drift alert for ${driftParams.agentId} (TDI: ${driftParams.tdi}, ${driftParams.severity})`);
233
+ },
234
+ },
235
+ ];
236
+ }
237
+ // ================================================================
238
+ // Noah (Navigator) Tools
239
+ // ================================================================
240
+ export function createNoahFleetTools(bus, transport) {
241
+ return [
242
+ {
243
+ name: 'fleet_drift_report',
244
+ description: 'Send a structured drift report to the fleet Commander with fleet-wide ' +
245
+ 'trajectory data, per-agent summaries, and anomalies.',
246
+ parameters: {
247
+ type: 'object',
248
+ properties: {
249
+ period: { type: 'string', description: 'Report period (e.g., "2026-02-25")' },
250
+ agentSummaries: {
251
+ type: 'array',
252
+ items: {
253
+ type: 'object',
254
+ properties: {
255
+ agentId: { type: 'string' },
256
+ tdi: { type: 'number' },
257
+ trend: { type: 'string', enum: ['improving', 'stable', 'declining'] },
258
+ },
259
+ },
260
+ description: 'Per-agent TDI summaries',
261
+ },
262
+ anomalies: {
263
+ type: 'array',
264
+ items: { type: 'string' },
265
+ description: 'Detected anomalies',
266
+ },
267
+ },
268
+ required: ['period', 'agentSummaries'],
269
+ },
270
+ async execute(_toolCallId, params) {
271
+ const reportParams = {
272
+ period: params.period,
273
+ agentSummaries: params.agentSummaries ?? [],
274
+ anomalies: params.anomalies ?? [],
275
+ };
276
+ const result = await fleetSend(bus, transport, {
277
+ to: 'jessie',
278
+ method: 'drift/report',
279
+ params: reportParams,
280
+ });
281
+ return formatResult(result, `Drift report for ${reportParams.period}`);
282
+ },
283
+ },
284
+ ];
285
+ }
286
+ // ================================================================
287
+ // Nole (Operator) Tools
288
+ // ================================================================
289
+ export function createNoleFleetTools(bus, transport) {
290
+ return [
291
+ {
292
+ name: 'fleet_propose',
293
+ description: 'Submit a structured proposal to the Commander for approval. ' +
294
+ 'Nole\'s proposals require Commander authorization before execution.',
295
+ parameters: {
296
+ type: 'object',
297
+ properties: {
298
+ title: { type: 'string', description: 'Proposal title' },
299
+ description: { type: 'string', description: 'Detailed proposal description' },
300
+ category: {
301
+ type: 'string',
302
+ enum: ['financial', 'operational', 'strategic'],
303
+ description: 'Proposal category',
304
+ },
305
+ estimatedImpact: { type: 'string', description: 'Expected impact description' },
306
+ requiresVetoReview: {
307
+ type: 'boolean',
308
+ description: 'Whether Grillo should veto-review this proposal (default: false)',
309
+ },
310
+ },
311
+ required: ['title', 'description', 'category'],
312
+ },
313
+ async execute(_toolCallId, params) {
314
+ const proposalParams = {
315
+ title: params.title,
316
+ description: params.description,
317
+ category: params.category,
318
+ estimatedImpact: params.estimatedImpact ?? 'Not specified',
319
+ requiresVetoReview: params.requiresVetoReview ?? false,
320
+ };
321
+ const result = await fleetSend(bus, transport, {
322
+ to: 'jessie',
323
+ method: 'proposal/submit',
324
+ params: proposalParams,
325
+ });
326
+ return formatResult(result, `Proposal submitted: "${proposalParams.title}"`);
327
+ },
328
+ },
329
+ ];
330
+ }
331
+ // ================================================================
332
+ // Mighty Mark (Sentinel) Tools
333
+ // ================================================================
334
+ export function createMarkFleetTools(bus, transport) {
335
+ return [
336
+ {
337
+ name: 'fleet_health_alert',
338
+ description: 'Send a structured health alert to the Commander when a health check ' +
339
+ 'fails or infrastructure is degraded.',
340
+ parameters: {
341
+ type: 'object',
342
+ properties: {
343
+ checkName: { type: 'string', description: 'Name of the failed check' },
344
+ category: {
345
+ type: 'string',
346
+ description: 'Check category (gateway, agents, system, api, data, memory)',
347
+ },
348
+ status: {
349
+ type: 'string',
350
+ enum: ['FAIL', 'WARN', 'DEGRADED'],
351
+ description: 'Check status',
352
+ },
353
+ details: { type: 'string', description: 'Details about the failure' },
354
+ autoRemediated: {
355
+ type: 'boolean',
356
+ description: 'Whether auto-remediation was attempted (default: false)',
357
+ },
358
+ },
359
+ required: ['checkName', 'category', 'status', 'details'],
360
+ },
361
+ async execute(_toolCallId, params) {
362
+ const alertParams = {
363
+ checkName: params.checkName,
364
+ category: params.category,
365
+ status: params.status,
366
+ details: params.details,
367
+ autoRemediated: params.autoRemediated ?? false,
368
+ };
369
+ const result = await fleetSend(bus, transport, {
370
+ to: 'jessie',
371
+ method: 'health/alert',
372
+ params: alertParams,
373
+ });
374
+ return formatResult(result, `Health alert: ${alertParams.checkName} (${alertParams.status})`);
375
+ },
376
+ },
377
+ {
378
+ name: 'fleet_comms_health',
379
+ description: 'Check fleet-bus communication health. Reports bus status, audit chain ' +
380
+ 'integrity, registered agents, and event counts.',
381
+ parameters: { type: 'object', properties: {} },
382
+ async execute(_toolCallId, _params) {
383
+ const auditState = bus.getAuditWriter().getChainState();
384
+ const { events, verification } = bus.verifyAuditChain();
385
+ const cards = bus.allCards();
386
+ const recentEvents = bus.recentEvents({ limit: 10 });
387
+ const lines = [
388
+ '# Fleet Communication Health',
389
+ '',
390
+ `**Bus Running**: ${bus.isRunning() ? 'YES' : 'NO'}`,
391
+ `**Registered Agents**: ${cards.length}`,
392
+ `**Audit Events**: ${auditState.eventCount}`,
393
+ `**Chain Integrity**: ${verification.valid ? 'VALID' : 'BROKEN'}`,
394
+ `**In-Memory Events**: ${bus.eventCount()}`,
395
+ '',
396
+ ];
397
+ if (!verification.valid) {
398
+ lines.push('## CHAIN INTEGRITY WARNING', '', `Chain broken at event ${verification.brokenAt}: ${verification.reason}`, '');
399
+ }
400
+ if (cards.length > 0) {
401
+ lines.push('## Agent Status', '');
402
+ for (const card of cards) {
403
+ lines.push(`- **${card.agentId}**: ${card.status} (v${card.version}, last seen: ${card.lastSeen ?? 'unknown'})`);
404
+ }
405
+ lines.push('');
406
+ }
407
+ if (recentEvents.length > 0) {
408
+ lines.push('## Recent Events', '');
409
+ for (const evt of recentEvents.slice(-5)) {
410
+ lines.push(`- [${evt.timestamp}] ${evt.type} — ${JSON.stringify(evt.details).slice(0, 100)}`);
411
+ }
412
+ }
413
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
414
+ },
415
+ },
416
+ ];
417
+ }
418
+ //# sourceMappingURL=fleet-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-tools.js","sourceRoot":"","sources":["../src/fleet-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @aiassesstech/fleet-bus — OpenClaw Plugin Hook Wiring
3
+ *
4
+ * Registers api.on() hooks for the lifecycle events we observe.
5
+ * Each hook logs the event and pushes it into the FleetBus event ring buffer.
6
+ *
7
+ * Phase 1: message_received hook also dispatches fleet messages to
8
+ * registered receive handlers for structured processing.
9
+ */
10
+ import type { FleetBus } from './bus.js';
11
+ import type { FleetAgentId, OpenClawPluginApi } from './types.js';
12
+ export declare function registerHooks(api: OpenClawPluginApi, bus: FleetBus, agentId: FleetAgentId): void;
13
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,YAAY,GACpB,IAAI,CAoIN"}
package/dist/hooks.js ADDED
@@ -0,0 +1,134 @@
1
+ /**
2
+ * @aiassesstech/fleet-bus — OpenClaw Plugin Hook Wiring
3
+ *
4
+ * Registers api.on() hooks for the lifecycle events we observe.
5
+ * Each hook logs the event and pushes it into the FleetBus event ring buffer.
6
+ *
7
+ * Phase 1: message_received hook also dispatches fleet messages to
8
+ * registered receive handlers for structured processing.
9
+ */
10
+ import { isFleetMessage } from './transport.js';
11
+ export function registerHooks(api, bus, agentId) {
12
+ const prefix = `[fleet-bus:${agentId}]`;
13
+ api.on('message_received', (event) => {
14
+ const e = event;
15
+ const content = typeof e.content === 'string' ? e.content : '';
16
+ bus.recordEvent({
17
+ timestamp: new Date().toISOString(),
18
+ type: 'hook',
19
+ agentId,
20
+ details: {
21
+ hook: 'message_received',
22
+ from: e.from,
23
+ content: content.slice(0, 200),
24
+ isFleetMessage: isFleetMessage(content),
25
+ },
26
+ });
27
+ if (isFleetMessage(content)) {
28
+ bus.dispatchToReceivers(content).catch(() => { });
29
+ console.log(`${prefix} fleet message received from=${e.from ?? 'unknown'}`);
30
+ }
31
+ else {
32
+ console.log(`${prefix} message_received from=${e.from ?? 'unknown'}`);
33
+ }
34
+ });
35
+ api.on('message_sent', (event) => {
36
+ const e = event;
37
+ bus.recordEvent({
38
+ timestamp: new Date().toISOString(),
39
+ type: 'hook',
40
+ agentId,
41
+ details: {
42
+ hook: 'message_sent',
43
+ to: e.to,
44
+ success: e.success,
45
+ },
46
+ });
47
+ console.log(`${prefix} message_sent to=${e.to ?? 'unknown'} success=${e.success ?? 'unknown'}`);
48
+ });
49
+ api.on('after_tool_call', (event) => {
50
+ const e = event;
51
+ const toolName = e.toolName ?? 'unknown';
52
+ bus.recordEvent({
53
+ timestamp: new Date().toISOString(),
54
+ type: 'hook',
55
+ agentId,
56
+ details: {
57
+ hook: 'after_tool_call',
58
+ toolName,
59
+ durationMs: e.durationMs,
60
+ error: e.error,
61
+ },
62
+ });
63
+ if (toolName === 'sessions_send' || toolName === 'sessions_spawn') {
64
+ console.log(`${prefix} inter-agent tool: ${toolName} (${e.durationMs ?? '?'}ms)`);
65
+ }
66
+ });
67
+ api.on('subagent_ended', (event) => {
68
+ const e = event;
69
+ bus.recordEvent({
70
+ timestamp: new Date().toISOString(),
71
+ type: 'hook',
72
+ agentId,
73
+ details: {
74
+ hook: 'subagent_ended',
75
+ targetSessionKey: e.targetSessionKey,
76
+ outcome: e.outcome,
77
+ reason: e.reason,
78
+ },
79
+ });
80
+ console.log(`${prefix} subagent_ended outcome=${e.outcome ?? 'unknown'}`);
81
+ });
82
+ api.on('llm_input', (event) => {
83
+ const e = event;
84
+ bus.recordEvent({
85
+ timestamp: new Date().toISOString(),
86
+ type: 'hook',
87
+ agentId,
88
+ details: {
89
+ hook: 'llm_input',
90
+ provider: e.provider,
91
+ model: e.model,
92
+ },
93
+ });
94
+ });
95
+ api.on('llm_output', (event) => {
96
+ const e = event;
97
+ const usage = e.usage;
98
+ bus.recordEvent({
99
+ timestamp: new Date().toISOString(),
100
+ type: 'hook',
101
+ agentId,
102
+ details: {
103
+ hook: 'llm_output',
104
+ provider: e.provider,
105
+ model: e.model,
106
+ tokensTotal: usage?.total,
107
+ },
108
+ });
109
+ });
110
+ api.on('session_start', (event) => {
111
+ const e = event;
112
+ bus.recordEvent({
113
+ timestamp: new Date().toISOString(),
114
+ type: 'hook',
115
+ agentId,
116
+ details: { hook: 'session_start', sessionId: e.sessionId },
117
+ });
118
+ });
119
+ api.on('session_end', (event) => {
120
+ const e = event;
121
+ bus.recordEvent({
122
+ timestamp: new Date().toISOString(),
123
+ type: 'hook',
124
+ agentId,
125
+ details: {
126
+ hook: 'session_end',
127
+ sessionId: e.sessionId,
128
+ messageCount: e.messageCount,
129
+ durationMs: e.durationMs,
130
+ },
131
+ });
132
+ });
133
+ }
134
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @aiassesstech/fleet-bus
3
+ *
4
+ * Fleet communication infrastructure for the AI Assess Tech governance fleet.
5
+ * Provides typed messaging, routing rules, Agent Cards, and audit trail.
6
+ *
7
+ * Usage in an OpenClaw plugin:
8
+ *
9
+ * import { FleetBus } from '@aiassesstech/fleet-bus';
10
+ *
11
+ * export default function register(api: any) {
12
+ * try {
13
+ * const bus = FleetBus.create(api, { agentId: 'grillo', ... });
14
+ * bus.start();
15
+ * } catch {
16
+ * console.warn('[grillo] Fleet bus unavailable');
17
+ * }
18
+ * }
19
+ */
20
+ export { FleetBus } from './bus.js';
21
+ export { AuditTrailWriter, computeEventHash, verifyChain } from './audit.js';
22
+ export { formatAuditAsMemoryFile, writeAuditToMemory } from './audit-memory.js';
23
+ export { AgentCardRegistry } from './cards.js';
24
+ export { enforceRouting, getRoutingRule, getAllowedOutbound, getAllowedInbound, ROUTING_RULES } from './routing.js';
25
+ export { createFleetMessage, serializeForTransport, deserializeFromTransport, isFleetMessage, transportSend, extractFleetMessage } from './transport.js';
26
+ export { fleetSend } from './send.js';
27
+ export { fleetReceive } from './receive.js';
28
+ export { createJessieFleetTools, createGrilloFleetTools, createNoahFleetTools, createNoleFleetTools, createMarkFleetTools, } from './fleet-tools.js';
29
+ export type { FleetToolDefinition } from './fleet-tools.js';
30
+ export type { MemoryWriterLike } from './audit-memory.js';
31
+ export type { ChainState, AuditWriterConfig } from './audit.js';
32
+ export type { FleetSendOptions } from './send.js';
33
+ export type { FleetReceiveOptions } from './receive.js';
34
+ export type { FleetMessage, FleetMethod, FleetAgentId, FleetBusConfig, FleetEvent, AgentCard, AgentRole, AgentSkill, AgentStatus, AuthLevel, CommunicationMode, RoutingConstraint, RoutingRule, RoutingDecision, AuditEvent, AuditEventType, OpenClawPluginApi, AssessmentRequestParams, AssessmentResultParams, AssessmentFailedParams, VetoIssueParams, VetoResponseParams, TaskAssignParams, TaskStatusParams, TaskCompleteParams, DriftAlertParams, DriftReportParams, HealthAlertParams, HealthStatusParams, HealthIncidentParams, FleetPingParams, FleetPongParams, FleetBroadcastParams, ProposalSubmitParams, ProposalDecisionParams, GatewayCallOptions, GatewayAgentResult, CallGatewayFn, SendResult, FleetMessageHandler, TransportConfig, } from './types.js';
35
+ export { FLEET_AGENT_IDS } from './types.js';
36
+ export { GRILLO_CARD, JESSIE_CARD, NOAH_CARD, NOLE_CARD, MIGHTY_MARK_CARD, SAM_CARD, } from './fleet-cards.js';
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACzJ,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,MAAM,kBAAkB,CAAC"}