@honeybee-ai/incubator 1.1.3 → 1.1.5

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/dist/dances.d.ts CHANGED
@@ -41,9 +41,23 @@ export interface InjectFn {
41
41
  };
42
42
  }): string;
43
43
  }
44
+ export interface DanceTriggerDef {
45
+ description: string;
46
+ handler: (ctx: TriggerContext) => Promise<void>;
47
+ }
48
+ export interface TriggerContext {
49
+ event: {
50
+ type: string;
51
+ data: unknown;
52
+ publishedBy: string;
53
+ };
54
+ state: Record<string, string>;
55
+ acp: DanceAcpHelper;
56
+ }
44
57
  export interface DanceModule {
45
58
  inject?: InjectFn;
46
59
  tools: Map<string, DanceToolDef>;
60
+ triggers?: Map<string, DanceTriggerDef>;
47
61
  }
48
62
  /**
49
63
  * Load a dance file via dynamic import. Validates exports.
package/dist/dances.js CHANGED
@@ -7,6 +7,7 @@ export async function loadDances(filePath) {
7
7
  const mod = await import(filePath);
8
8
  const tools = new Map();
9
9
  let inject;
10
+ let triggers;
10
11
  for (const [name, exp] of Object.entries(mod)) {
11
12
  if (name === 'default')
12
13
  continue; // skip default export
@@ -17,6 +18,29 @@ export async function loadDances(filePath) {
17
18
  inject = exp;
18
19
  continue;
19
20
  }
21
+ if (name === 'triggers') {
22
+ if (!exp || typeof exp !== 'object') {
23
+ throw new Error('Dance file: "triggers" must be an object');
24
+ }
25
+ triggers = new Map();
26
+ for (const [tName, tDef] of Object.entries(exp)) {
27
+ if (!tDef || typeof tDef !== 'object') {
28
+ throw new Error(`Dance file: trigger "${tName}" must be an object`);
29
+ }
30
+ const t = tDef;
31
+ if (typeof t.handler !== 'function') {
32
+ throw new Error(`Dance file: trigger "${tName}" must have a handler function`);
33
+ }
34
+ if (typeof t.description !== 'string') {
35
+ throw new Error(`Dance file: trigger "${tName}" must have a description string`);
36
+ }
37
+ triggers.set(tName, {
38
+ description: t.description,
39
+ handler: t.handler,
40
+ });
41
+ }
42
+ continue;
43
+ }
20
44
  // Everything else is a tool
21
45
  if (!exp || typeof exp !== 'object')
22
46
  continue;
@@ -33,7 +57,7 @@ export async function loadDances(filePath) {
33
57
  handler: tool.handler,
34
58
  });
35
59
  }
36
- return { inject, tools };
60
+ return { inject, tools, triggers };
37
61
  }
38
62
  /**
39
63
  * Convert dance tool definitions to LLM ToolDef format.
@@ -1 +1 @@
1
- {"version":3,"file":"dances.js","sourceRoot":"","sources":["../src/dances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dances.js","sourceRoot":"","sources":["../src/dances.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ import { WebhookManager } from './webhooks.js';
23
23
  import { setLogFormat, setLogLevel } from './log.js';
24
24
  import { createTelemetryFromEnv } from '@honeybee-ai/hivemind-sdk/telemetry';
25
25
  import { SessionStore } from './sessions.js';
26
+ import { TriggerEngine } from './triggers.js';
26
27
  function parseArgs(argv) {
27
28
  const args = {};
28
29
  for (const arg of argv.slice(2)) {
@@ -529,6 +530,84 @@ export async function main() {
529
530
  catch {
530
531
  // Non-fatal — telemetry must never break the host
531
532
  }
533
+ // ─── Trigger Engine ──────────────────────────────────────
534
+ let triggerEngine;
535
+ try {
536
+ const honeycombTriggers = process.env['HONEYCOMB_TRIGGERS'];
537
+ const honeycombSchedule = process.env['HONEYCOMB_SCHEDULE'];
538
+ const honeycombCompute = process.env['HONEYCOMB_COMPUTE'];
539
+ const honeycombRegion = process.env['HONEYCOMB_REGION'];
540
+ const hasTriggers = honeycombTriggers || honeycombSchedule || honeycombCompute;
541
+ if (hasTriggers) {
542
+ let parsedOn;
543
+ let parsedSchedule;
544
+ if (honeycombTriggers) {
545
+ try {
546
+ parsedOn = JSON.parse(honeycombTriggers);
547
+ }
548
+ catch {
549
+ console.error('[incubator] Failed to parse HONEYCOMB_TRIGGERS JSON');
550
+ }
551
+ }
552
+ if (honeycombSchedule) {
553
+ try {
554
+ parsedSchedule = JSON.parse(honeycombSchedule);
555
+ }
556
+ catch {
557
+ console.error('[incubator] Failed to parse HONEYCOMB_SCHEDULE JSON');
558
+ }
559
+ }
560
+ const triggerConfig = {
561
+ namespace: 'default',
562
+ on: parsedOn,
563
+ schedule: parsedSchedule,
564
+ compute: honeycombCompute,
565
+ region: honeycombRegion,
566
+ };
567
+ const triggerStores = registry.get('default');
568
+ const { buildAcpHelper: buildTriggerAcpHelper } = await import('./dances.js');
569
+ const triggerAcp = buildTriggerAcpHelper({
570
+ publishEvent: async (_namespace, type, data, aid) => {
571
+ const event = await triggerStores.events.publish(type, data ?? {}, aid ?? 'trigger:system');
572
+ bus.publish('default', event);
573
+ },
574
+ claimResource: async (_namespace, resource, aid, ttl) => {
575
+ const result = await triggerStores.claims.claim(resource, resource, aid, ttl);
576
+ return result.claim.resource;
577
+ },
578
+ releaseResource: async (_namespace, resource) => {
579
+ await triggerStores.claims.release(resource, 'trigger:system');
580
+ },
581
+ setState: async (_namespace, key, value) => {
582
+ await triggerStores.state.set(key, value, 'trigger:system');
583
+ },
584
+ }, 'default', 'trigger:system');
585
+ triggerEngine = new TriggerEngine(triggerConfig, triggerStores, bus, triggerAcp);
586
+ if (danceModule) {
587
+ triggerEngine.setDanceModule(danceModule);
588
+ }
589
+ if (telemetry) {
590
+ triggerEngine.setTelemetry(telemetry);
591
+ }
592
+ triggerEngine.start();
593
+ const triggerCount = (parsedOn ? Object.keys(parsedOn).length : 0);
594
+ const scheduleCount = (parsedSchedule ? Object.keys(parsedSchedule).length : 0);
595
+ const parts = [];
596
+ if (triggerCount > 0)
597
+ parts.push(`${triggerCount} event trigger${triggerCount !== 1 ? 's' : ''}`);
598
+ if (scheduleCount > 0)
599
+ parts.push(`${scheduleCount} schedule${scheduleCount !== 1 ? 's' : ''}`);
600
+ if (honeycombCompute)
601
+ parts.push(`compute=${honeycombCompute}`);
602
+ if (honeycombRegion)
603
+ parts.push(`region=${honeycombRegion}`);
604
+ console.error(`[incubator] Triggers: ${parts.join(', ')}`);
605
+ }
606
+ }
607
+ catch (err) {
608
+ console.error(`[incubator] Trigger setup failed: ${err.message}`);
609
+ // Non-fatal — triggers failing should not bring down the server
610
+ }
532
611
  httpServer.listen(port, () => {
533
612
  console.error(`[incubator] ${useTls ? 'HTTPS' : 'HTTP'} server listening on port ${port}`);
534
613
  console.error(`[incubator] MCP endpoint: ${proto}://localhost:${port}/mcp`);
@@ -555,6 +634,8 @@ export async function main() {
555
634
  // Graceful shutdown
556
635
  process.on('SIGINT', async () => {
557
636
  console.error('\n[incubator] Shutting down...');
637
+ if (triggerEngine)
638
+ triggerEngine.stop();
558
639
  if (orchestrator)
559
640
  await orchestrator.shutdown();
560
641
  for (const orch of spawnedOrchestrators)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAA0B,MAAM,qCAAqC,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAqC,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,uEAAuE;IACvE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzG,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,kCAAkC,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IAC/B,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACvF,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,mCAAmC,SAAS,mCAAmC,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,YAAY,CAAC,SAAsB,CAAC,CAAC;IACrC,IAAI,OAAO;QAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAElC,oBAAoB;IACpB,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;IAErC,gDAAgD;IAChD,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElF,oEAAoE;IACpE,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,wBAAwB;IACxB,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrF,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,gCAAgC,WAAW,uCAAuC,CAAC,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC;IACtG,MAAM,QAAQ,GAAG,WAAW,KAAK,QAAQ,CAAC;IAC1C,MAAM,OAAO,GAAG,WAAW,KAAK,OAAO,CAAC;IAExC,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,kDAAkD,WAAW,uCAAuC,CAAC,CAAC;IACtH,CAAC;IAED,4CAA4C;IAC5C,IAAI,WAA8B,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC9E,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,aAAa,GAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAChF,MAAM,eAAe,GAAG,QAAQ,IAAI,OAAO,CAAC;IAE5C,mBAAmB;IACnB,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzF,qBAAqB;IACrB,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,sDAAsD;IACtD,IAAI,YAAsC,CAAC;IAC3C,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAiB,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA+C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAErF,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACtD,IAAI,kBAAmF,CAAC;IACxF,IAAI,aAAqD,CAAC;IAE1D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC1C,kBAAkB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAc,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACvF,CAAC;IAED,iDAAiD;IACjD,IAAI,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAChF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,sBAAsB,WAAW,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;YAC9C,8EAA8E;YAC9E,mFAAmF;YACnF,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wCAAyC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAA0D,CAAC;IAC/D,IAAI,mBAAmB,GAAG,UAAU,CAAC;IACrC,IAAI,CAAC,mBAAmB,IAAI,SAAS,EAAE,CAAC;QACtC,mCAAmC;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAA4B,CAAC;YACzH,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAA4C,CAAC;YAChF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,SAAS,EAAE,MAAM,IAAI,SAAS,EAAE,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC;YAC7F,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,mBAAmB,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC;QACvD,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,GAAG,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,oDAAoD;QACpD,sEAAsE;QACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiG,CAAC;QAE1H,6CAA6C;QAC7C,IAAI,GAAoB,CAAC;QACzB,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC9D,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9B,GAAG,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;QACvB,CAAC;QACD,+CAA+C;QAC/C,IAAI,aAA6C,CAAC;QAClD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACpD,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3F,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7F,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAuB,IAAI,YAAY,CAAC;gBACrD,UAAU,EAAE,YAAY;gBACxB,QAAQ;gBACR,SAAS,EAAE,aAAa;gBACxB,UAAU,EAAE,cAAc;aAC3B,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,kDAAkD,QAAQ,GAAG,CAAC,CAAC;YAC7E,aAAa,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;QACzE,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAEpC,gEAAgE;QAChE,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAExC,uDAAuD;QACvD,MAAM,uBAAuB,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACrE,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,oBAAoB,GAAwB,EAAE,CAAC;QAErD,+DAA+D;QAC/D,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACvC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAItC,IAAI,cAA0C,CAAC;QAC/C,IAAI,WAAuC,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAgF,CAAC;YAE/H,iCAAiC;YACjC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjE,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,gBAAgB,IAAI,YAAY,CAAC,CAAC;YACpF,CAAC;YAED,yBAAyB;YACzB,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,gBAAgB,IAAI,GAAG,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,EAAE,GAAwC,EAAE,GAAuC,EAAE,EAAE;YACjH,uCAAuC;YACvC,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,KAAK,gBAAgB,IAAI,EAAE,CAAC,CAAC;YAEpE,gDAAgD;YAChD,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC5E,IAAI,cAAc,EAAE,CAAC;oBACnB,uDAAuD;oBACvD,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC;oBAC5B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;oBAC1D,IAAI,GAAG,CAAC,MAAM;wBAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;oBACtC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;wBAC5B,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC;wBACtB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC5B,mDAAmD;gBACnD,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzC,IAAI,cAAc,EAAE,CAAC;wBACnB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;wBAC/C,GAAG,CAAC,GAAG,EAAE,CAAC;wBACV,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,6BAA6B;gBAC7B,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;wBACzB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC,CAAC;oBAChF,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO;YACT,CAAC;YAED,4CAA4C;YAC5C,MAAM,SAAS,GAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAY,IAAI,SAAS,CAAC;YACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvC,6BAA6B;YAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;YAEtE,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;gBACzC,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,4CAA4C;YAC5C,MAAM,UAAU,GAAG,SAAS,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;gBACtC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC5B,MAAM,OAAO,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC/D,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,aAAa,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;oBAC9E,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;gBACtD,CAAC;aACF,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACvB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;gBAChC,IAAI,GAAG,EAAE,CAAC;oBACR,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,CAAC,WAAW,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAElH,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE;gBACrC,OAAO,EAAE,UAAU;gBACnB,SAAS;gBACT,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBACtD,OAAO;gBACP,gBAAgB,EAAE,kBAAkB;gBACpC,MAAM;gBACN,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;aACnD,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,MAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;YACjG,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAErC,0DAA0D;QAC1D,oEAAoE;QACpE,6CAA6C;QAC7C,IAAI,YAAwD,CAAC;QAC7D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACvD,YAAY,GAAG;gBACb,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;oBAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC3C,MAAM,KAAK,GAA2B,EAAE,CAAC;oBACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjG,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,YAAY,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE;oBAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChC,OAAO,cAAc,CAAC;wBACpB,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;4BAClD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;4BAC5E,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;wBACzB,CAAC;wBACD,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;4BACtD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvE,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC/B,CAAC;wBACD,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;4BAC9C,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACjD,CAAC;wBACD,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;4BACzC,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBAC9C,CAAC;qBACF,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBAClB,CAAC;aACF,CAAC;QACJ,CAAC;QAED,IAAI,SAAgC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACnD,SAAS,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAChG,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;QAED,kEAAkE;QAClE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAA4B,CAAC;YAExH,iCAAiC;YACjC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAA4C,CAAC;YACjF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAI,CAAC,SAAS,EAAE,MAAM,IAAI,SAAS,EAAE,OAAO,IAAI,EAAE,CAAoC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChH,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC1B,IAAI,EAAG,CAAC,CAAC,IAAkD,IAAI,QAAQ;gBACvE,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC3D,SAAS,EAAG,CAAC,CAAC,SAA0C;gBACxD,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClB,KAAK,EAAG,CAAC,CAAC,OAAmC,CAAC,KAA6B;oBAC3E,QAAQ,EAAG,CAAC,CAAC,OAAmC,CAAC,SAA+B;iBACjF,CAAC,CAAC,CAAC,SAAS;aACd,CAAC,CAAC,CAAC;YAEJ,wCAAwC;YACxC,MAAM,OAAO,GAAG,SAAS,EAAE,GAAG,IAAI,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,QAAQ,CAAC;YACzE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC1D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;oBAC9C,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAC1C,OAAO,CAAC,KAAK,CAAC,2CAA2C,OAAO,EAAE,CAAC,CAAC;oBAEpE,uEAAuE;oBACvE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;wBAC/C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BACjE,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC/B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;4BAC5H,CAAC;wBACH,CAAC;wBACD,OAAO,CAAC,KAAK,CAAC,uBAAuB,WAAW,CAAC,MAAM,yBAAyB,CAAC,CAAC;oBACpF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACtG,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAA2B,CAAC;YAEjE,wDAAwD;YACxD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE/D,OAAO,CAAC,KAAK,CAAC,6BAA6B,WAAW,CAAC,MAAM,YAAY,aAAa,8BAA8B,CAAC,CAAC;YAEtH,2DAA2D;YAC3D,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC3C,WAAW,GAAG,IAAI,CAAC;oBACnB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;oBACzE,MAAM,MAAM,GAAiB;wBAC3B,QAAQ,EAAE,aAAa;wBACvB,OAAO;wBACP,KAAK,EAAE,KAAK;wBACZ,YAAY,EAAE,CAAC;wBACf,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;wBACvB,SAAS,EAAE,aAAa;wBACxB,GAAG,EAAE,MAAM;wBACX,GAAG,EAAE,QAAQ;wBACb,MAAM,EAAE,WAAW;qBACpB,CAAC;oBACF,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;oBAC9L,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACvB,OAAO,CAAC,KAAK,CAAC,gCAAiC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC;oBACH,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;gBACD,mEAAmE;gBACnE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,WAAW,GAAG,KAAK,CAAC;oBACpB,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;wBACxC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAClC,CAAC;oBACD,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;oBAChC,YAAY,CAAC,KAAK,EAAE,CAAC;oBACrB,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uEAAuE;QACvE,MAAM,uBAAuB,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;YACtC,OAAO;YACP,SAAS,EAAE,SAAS;YACpB,GAAG;YACH,UAAU,EAAE,uBAAuB,CAAC,MAAM;SAC3C,CAAC,CAAC;QAEH,+DAA+D;QAC/D,IAAI,YAAyE,CAAC;QAC9E,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;gBACnE,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAA4B,CAAC;gBAChI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrC,YAAY,GAAI,SAAS,CAAC,OAA0C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC7E,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;wBAChC,MAAM,EAAG,CAAC,CAAC,MAAiC,IAAI,SAAS;qBAC1D,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;QACxD,CAAC;QAED,uCAAuC;QACvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,aAAa,CAAC,IAAI,CAAC;YACvB,YAAY,EAAE,IAAI;YAClB,YAAY;YACZ,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACtD,eAAe,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;SAC1E,CAAC,CAAC;QAEH,+CAA+C;QAC/C,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;QAE9E,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,6BAA6B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,SAAS,CAAC,CAAC;QAC9F,CAAC;QAED,qEAAqE;QACrE,IAAI,SAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,SAAS,GAAG,sBAAsB,EAAE,CAAC;YACrC,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,wCAAwC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzG,CAAC;YACD,yEAAyE;YACzE,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACrD,kBAAkB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAChG,CAAC;YACD,wDAAwD;YACxD,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;gBAC9B,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;QAED,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,6BAA6B,IAAI,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,gBAAgB,IAAI,MAAM,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,gBAAgB,IAAI,OAAO,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,6BAA6B,OAAO,gBAAgB,IAAI,KAAK,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,kEAAkE;YAClE,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,GAAG,IAAI,iBAAiB,CAClC,YAAY,EAAE,IAAI,EAAE,GAAG,EACvB,uBAAuB,CAAC,IAAI,EAAE,OAAO,EACrC,uBAAuB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,CAChG,CAAC;gBACF,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC/B,OAAO,CAAC,KAAK,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,YAA2C,CAAC;QAEhD,oBAAoB;QACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,IAAI,YAAY;gBAAE,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,oBAAoB;gBAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/D,IAAI,SAAS;gBAAE,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,SAAS;gBAAE,SAAS,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;gBACpC,MAAM,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,8CAA8C;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,CAAC,WAAW,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,WAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE;YAClC,OAAO,EAAE,OAAO,IAAI,aAAa;YACjC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;YACtD,OAAO;YACP,gBAAgB,EAAE,kBAAkB;YACpC,MAAM;YACN,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,wCAAwC,OAAO,IAAI,aAAa,GAAG,CAAC,CAAC;QACnF,IAAI,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,4DAA4D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Incubator Voice Plugin — ACP-native voice call integration.
3
+ *
4
+ * Bridges @honeybee-ai/voice events into ACP primitives:
5
+ * - Human speech → ACP events (voice.human_said)
6
+ * - Call state → ACP state keys (voice.status, voice.callSid)
7
+ * - Phone line → ACP claim (voice:line mutex)
8
+ * - Voice tools → waggle compound tool
9
+ *
10
+ * This is an internal incubator plugin, NOT an npm package.
11
+ * It's created by the incubator server and given direct store access.
12
+ */
13
+ import type { IncubatorPlugin } from '@honeybee-ai/hivemind-sdk/integrations';
14
+ import type { IStateStore, IEventStore, IClaimStore } from '../stores/interfaces.js';
15
+ export interface VoicePluginConfig {
16
+ twilio: {
17
+ accountSid: string;
18
+ authToken: string;
19
+ phoneNumber: string;
20
+ };
21
+ /** Pre-built STT provider instance */
22
+ sttProvider: {
23
+ createStream: (config: unknown) => unknown;
24
+ };
25
+ /** Pre-built TTS provider instance */
26
+ ttsProvider: {
27
+ synthesize: (text: string, config?: unknown) => Promise<Buffer>;
28
+ };
29
+ /** Pre-existing public URL (no ngrok) */
30
+ tunnelUrl?: string;
31
+ /** ngrok domain */
32
+ ngrokDomain?: string;
33
+ /** Local port for Twilio webhooks */
34
+ targetPort: number;
35
+ /** Log directory for call transcripts */
36
+ logDir?: string;
37
+ /** Silence timeout ms */
38
+ silenceTimeoutMs?: number;
39
+ /** TTS voice name */
40
+ voice?: string;
41
+ }
42
+ export interface VoicePluginStores {
43
+ state: IStateStore;
44
+ events: IEventStore;
45
+ claims: IClaimStore;
46
+ }
47
+ /**
48
+ * Create an incubator voice plugin.
49
+ *
50
+ * The plugin:
51
+ * 1. Creates a VoiceService from @honeybee-ai/voice
52
+ * 2. Wires VoiceService events → ACP state/events/claims
53
+ * 3. Exposes voice_call, voice_speak, voice_hangup, voice_status tools
54
+ * 4. Registers HTTP routes for Twilio webhooks (via registerRoutes)
55
+ */
56
+ export declare function createVoicePlugin(config: VoicePluginConfig, stores: VoicePluginStores): IncubatorPlugin;
57
+ /**
58
+ * Get Twilio webhook handlers from the voice service.
59
+ * Used by the incubator HTTP server to register routes.
60
+ */
61
+ export interface VoiceRouteHandlers {
62
+ handleTwiml: () => string;
63
+ handleStatus: (body: Record<string, unknown>) => void;
64
+ handleMediaWs: (ws: unknown) => void;
65
+ getActiveCall: () => unknown;
66
+ }
67
+ /**
68
+ * After creating the voice plugin and calling start(),
69
+ * the service instance is accessible for route registration.
70
+ * This helper extracts the handlers the HTTP server needs.
71
+ *
72
+ * Usage in index.ts:
73
+ * const voicePlugin = createVoicePlugin(config, stores);
74
+ * await voicePlugin.start(ctx);
75
+ * // Later, register routes using the service reference
76
+ */
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Incubator Voice Plugin — ACP-native voice call integration.
3
+ *
4
+ * Bridges @honeybee-ai/voice events into ACP primitives:
5
+ * - Human speech → ACP events (voice.human_said)
6
+ * - Call state → ACP state keys (voice.status, voice.callSid)
7
+ * - Phone line → ACP claim (voice:line mutex)
8
+ * - Voice tools → waggle compound tool
9
+ *
10
+ * This is an internal incubator plugin, NOT an npm package.
11
+ * It's created by the incubator server and given direct store access.
12
+ */
13
+ // ── Helpers ─────────────────────────────────────────────────────
14
+ function textResult(text) {
15
+ return { content: [{ type: 'text', text }] };
16
+ }
17
+ function jsonResult(data) {
18
+ return { content: [{ type: 'text', text: JSON.stringify(data) }] };
19
+ }
20
+ // ── Plugin factory ──────────────────────────────────────────────
21
+ /**
22
+ * Create an incubator voice plugin.
23
+ *
24
+ * The plugin:
25
+ * 1. Creates a VoiceService from @honeybee-ai/voice
26
+ * 2. Wires VoiceService events → ACP state/events/claims
27
+ * 3. Exposes voice_call, voice_speak, voice_hangup, voice_status tools
28
+ * 4. Registers HTTP routes for Twilio webhooks (via registerRoutes)
29
+ */
30
+ export function createVoicePlugin(config, stores) {
31
+ // Dynamically imported VoiceService (avoids hard dep at module level).
32
+ // Uses `any` because @honeybee-ai/voice is an optional runtime dep — same pattern as propolis.
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ let service = null;
35
+ const AGENT_ID = 'voice-plugin';
36
+ return {
37
+ name: 'voice',
38
+ async start(_ctx) {
39
+ let VoiceService;
40
+ try {
41
+ const pkg = '@honeybee-ai/voice';
42
+ const voiceMod = await import(/* webpackIgnore: true */ pkg);
43
+ VoiceService = voiceMod.VoiceService;
44
+ }
45
+ catch (err) {
46
+ const msg = err instanceof Error ? err.message : 'unknown error';
47
+ throw new Error(`Failed to load @honeybee-ai/voice: ${msg}. Install it: pnpm add @honeybee-ai/voice`);
48
+ }
49
+ service = new VoiceService({
50
+ twilio: config.twilio,
51
+ sttProvider: config.sttProvider,
52
+ ttsProvider: config.ttsProvider,
53
+ tunnelUrl: config.tunnelUrl,
54
+ ngrokDomain: config.ngrokDomain,
55
+ targetPort: config.targetPort,
56
+ logDir: config.logDir,
57
+ silenceTimeoutMs: config.silenceTimeoutMs,
58
+ voice: config.voice,
59
+ });
60
+ await service.init();
61
+ // ── ACP Auto-Sync ──────────────────────────────────────────
62
+ // Human speech → ACP event + state
63
+ service.on('human.said', (data) => {
64
+ stores.events.publish('voice.human_said', { text: data.text, callSid: data.callSid }, AGENT_ID)
65
+ .catch(() => { });
66
+ stores.state.set('voice.lastTranscript', data.text, AGENT_ID)
67
+ .catch(() => { });
68
+ });
69
+ // Call state → ACP state + events
70
+ service.on('state', (data) => {
71
+ stores.state.set('voice.status', data.state, AGENT_ID)
72
+ .catch(() => { });
73
+ if (data.callSid) {
74
+ stores.state.set('voice.callSid', data.callSid, AGENT_ID)
75
+ .catch(() => { });
76
+ }
77
+ if (data.state === 'connected' && data.callSid) {
78
+ stores.events.publish('voice.call_connected', { callSid: data.callSid }, AGENT_ID)
79
+ .catch(() => { });
80
+ }
81
+ if (data.state === 'ended' || data.state === 'error') {
82
+ // Release phone line claim
83
+ stores.claims.release('voice:line', AGENT_ID)
84
+ .catch(() => { });
85
+ stores.events.publish('voice.call_ended', { callSid: data.callSid }, AGENT_ID)
86
+ .catch(() => { });
87
+ }
88
+ });
89
+ // Transcript log → ACP state (JSON array)
90
+ service.on('transcript', (data) => {
91
+ (async () => {
92
+ const existing = await stores.state.get('voice.transcript');
93
+ let arr = [];
94
+ if (existing?.value) {
95
+ try {
96
+ arr = JSON.parse(String(existing.value));
97
+ }
98
+ catch { /* ignore */ }
99
+ }
100
+ arr.push({ role: data.role, text: data.text, ts: data.ts });
101
+ await stores.state.set('voice.transcript', JSON.stringify(arr), AGENT_ID);
102
+ })().catch(() => { });
103
+ });
104
+ console.error(`[voice] Plugin ready. Tunnel: ${service.tunnelUrl ?? 'none'}`);
105
+ },
106
+ async stop() {
107
+ if (service) {
108
+ await service.destroy();
109
+ service = null;
110
+ }
111
+ },
112
+ getToolEntries(_ctx) {
113
+ return [
114
+ // ── voice_call ────────────────────────────────────────
115
+ {
116
+ def: {
117
+ type: 'function',
118
+ function: {
119
+ name: 'voice_call',
120
+ description: 'Place an outbound phone call. Claims voice:line mutex. Returns callSid on success.',
121
+ parameters: {
122
+ type: 'object',
123
+ properties: {
124
+ to: { type: 'string', description: 'Phone number to call (E.164 format, e.g. +15551234567)' },
125
+ greeting: { type: 'string', description: 'Optional greeting to speak when call connects' },
126
+ },
127
+ required: ['to'],
128
+ },
129
+ },
130
+ },
131
+ schema: {
132
+ type: 'object',
133
+ properties: {
134
+ to: { type: 'string' },
135
+ greeting: { type: 'string' },
136
+ },
137
+ required: ['to'],
138
+ },
139
+ handler: async (args) => {
140
+ if (!service)
141
+ return textResult('Voice plugin not initialized');
142
+ const to = String(args.to ?? '');
143
+ const greeting = args.greeting ? String(args.greeting) : undefined;
144
+ if (!to)
145
+ return textResult('Error: phone number (to) is required');
146
+ // Validate E.164 format
147
+ if (!/^\+[1-9]\d{1,14}$/.test(to)) {
148
+ return textResult('Error: phone number must be in E.164 format (e.g. +15551234567)');
149
+ }
150
+ // Claim the phone line
151
+ const claimed = await stores.claims.claim('voice:line', 'active call', AGENT_ID);
152
+ if (claimed.status !== 'approved') {
153
+ return textResult('Error: phone line already claimed by another agent');
154
+ }
155
+ try {
156
+ const callSid = await service.call(to, greeting);
157
+ await stores.events.publish('voice.call_initiated', { to, callSid }, AGENT_ID);
158
+ return jsonResult({ callSid, status: 'ringing' });
159
+ }
160
+ catch (err) {
161
+ await stores.claims.release('voice:line', AGENT_ID).catch(() => { });
162
+ return textResult(`Error: ${err instanceof Error ? err.message : 'call failed'}`);
163
+ }
164
+ },
165
+ },
166
+ // ── voice_speak ───────────────────────────────────────
167
+ {
168
+ def: {
169
+ type: 'function',
170
+ function: {
171
+ name: 'voice_speak',
172
+ description: 'Speak text on the active phone call via TTS. The caller will hear the spoken text.',
173
+ parameters: {
174
+ type: 'object',
175
+ properties: {
176
+ text: { type: 'string', description: 'Text to speak on the call' },
177
+ },
178
+ required: ['text'],
179
+ },
180
+ },
181
+ },
182
+ schema: {
183
+ type: 'object',
184
+ properties: {
185
+ text: { type: 'string' },
186
+ },
187
+ required: ['text'],
188
+ },
189
+ handler: async (args) => {
190
+ if (!service)
191
+ return textResult('Voice plugin not initialized');
192
+ const text = String(args.text ?? '');
193
+ if (!text)
194
+ return textResult('Error: text is required');
195
+ try {
196
+ await service.speak(text);
197
+ await stores.state.set('voice.lastSpoken', text, AGENT_ID);
198
+ await stores.events.publish('voice.agent_spoke', { text }, AGENT_ID);
199
+ return jsonResult({ spoken: true });
200
+ }
201
+ catch (err) {
202
+ return textResult(`Error: ${err instanceof Error ? err.message : 'speak failed'}`);
203
+ }
204
+ },
205
+ },
206
+ // ── voice_hangup ──────────────────────────────────────
207
+ {
208
+ def: {
209
+ type: 'function',
210
+ function: {
211
+ name: 'voice_hangup',
212
+ description: 'End the active phone call and release the line.',
213
+ parameters: {
214
+ type: 'object',
215
+ properties: {},
216
+ required: [],
217
+ },
218
+ },
219
+ },
220
+ schema: {
221
+ type: 'object',
222
+ properties: {},
223
+ },
224
+ handler: async () => {
225
+ if (!service)
226
+ return textResult('Voice plugin not initialized');
227
+ try {
228
+ await service.hangup();
229
+ // State cleanup happens in the 'state' event handler
230
+ return jsonResult({ hungUp: true });
231
+ }
232
+ catch (err) {
233
+ return textResult(`Error: ${err instanceof Error ? err.message : 'hangup failed'}`);
234
+ }
235
+ },
236
+ },
237
+ // ── voice_status ──────────────────────────────────────
238
+ {
239
+ def: {
240
+ type: 'function',
241
+ function: {
242
+ name: 'voice_status',
243
+ description: 'Get current voice call state from ACP state.',
244
+ parameters: {
245
+ type: 'object',
246
+ properties: {},
247
+ required: [],
248
+ },
249
+ },
250
+ },
251
+ schema: {
252
+ type: 'object',
253
+ properties: {},
254
+ },
255
+ handler: async () => {
256
+ const statusEntry = await stores.state.get('voice.status');
257
+ const callSidEntry = await stores.state.get('voice.callSid');
258
+ const lastTranscriptEntry = await stores.state.get('voice.lastTranscript');
259
+ return jsonResult({
260
+ status: statusEntry?.value ?? 'idle',
261
+ callSid: callSidEntry?.value ?? null,
262
+ lastTranscript: lastTranscriptEntry?.value ?? null,
263
+ activeCall: service?.getActiveCall() ? {
264
+ to: service.getActiveCall().to,
265
+ startedAt: service.getActiveCall().startedAt,
266
+ transcriptCount: service.getActiveCall().transcript.length,
267
+ } : null,
268
+ });
269
+ },
270
+ },
271
+ ];
272
+ },
273
+ destroy() {
274
+ if (service) {
275
+ service.destroy().catch(() => { });
276
+ service = null;
277
+ }
278
+ },
279
+ };
280
+ }
281
+ /**
282
+ * After creating the voice plugin and calling start(),
283
+ * the service instance is accessible for route registration.
284
+ * This helper extracts the handlers the HTTP server needs.
285
+ *
286
+ * Usage in index.ts:
287
+ * const voicePlugin = createVoicePlugin(config, stores);
288
+ * await voicePlugin.start(ctx);
289
+ * // Later, register routes using the service reference
290
+ */
291
+ //# sourceMappingURL=voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/plugins/voice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * TriggerEngine — Event-driven and scheduled action dispatch.
3
+ *
4
+ * Two trigger sources, same action dispatch:
5
+ * 1. Event triggers (on:): Subscribe to bus, match events, fire action
6
+ * 2. Schedule triggers (schedule:): setInterval timers, fire action periodically
7
+ *
8
+ * Both resolve actions through: dance triggers > built-in actions.
9
+ *
10
+ * Loop prevention: events published by triggers use `publishedBy: "trigger:<action>"`.
11
+ * The engine skips any event whose publishedBy starts with "trigger:".
12
+ */
13
+ import type { NotificationBus } from './bus.js';
14
+ import type { Stores } from './stores/interfaces.js';
15
+ import type { DanceModule, DanceAcpHelper } from './dances.js';
16
+ import type { TelemetryReporter } from '@honeybee-ai/hivemind-sdk/telemetry';
17
+ /** Parse a duration string ("30s", "15m", "1h", "2h30m") to milliseconds. */
18
+ export declare function parseDuration(str: string): number;
19
+ export interface TriggerActionConfig {
20
+ action: string;
21
+ config?: Record<string, string>;
22
+ }
23
+ export interface ScheduleEntry {
24
+ every: string;
25
+ action: string;
26
+ config?: Record<string, string>;
27
+ }
28
+ export interface TriggerEngineConfig {
29
+ namespace: string;
30
+ on?: Record<string, string | TriggerActionConfig>;
31
+ schedule?: Record<string, ScheduleEntry>;
32
+ compute?: string;
33
+ region?: string;
34
+ }
35
+ export declare class TriggerEngine {
36
+ private namespace;
37
+ private onTriggers;
38
+ private scheduleEntries;
39
+ private scheduleTimers;
40
+ private busUnsub?;
41
+ private stores;
42
+ private bus;
43
+ private acpHelper;
44
+ private danceModule?;
45
+ private telemetry?;
46
+ private matcher?;
47
+ private compute?;
48
+ private region?;
49
+ private started;
50
+ constructor(config: TriggerEngineConfig, stores: Stores, bus: NotificationBus, acpHelper: DanceAcpHelper);
51
+ /** Set dance module for custom trigger resolution. */
52
+ setDanceModule(mod: DanceModule): void;
53
+ /** Set telemetry reporter for trigger_fired events. */
54
+ setTelemetry(t: TelemetryReporter): void;
55
+ /** Start listening for events and running schedules. */
56
+ start(): void;
57
+ /** Stop all event listeners and schedule timers. */
58
+ stop(): void;
59
+ /** Get configured event triggers (for inspection). */
60
+ getTriggers(): Map<string, TriggerActionConfig>;
61
+ /** Get configured schedules (for inspection). */
62
+ getSchedules(): Map<string, ScheduleEntry>;
63
+ private handleEvent;
64
+ private findGlobMatch;
65
+ private startSchedules;
66
+ private stopSchedules;
67
+ private dispatchAction;
68
+ private executeDanceTrigger;
69
+ private actionLog;
70
+ private actionHalt;
71
+ private actionPublish;
72
+ private actionWebhook;
73
+ }
@@ -0,0 +1,297 @@
1
+ /**
2
+ * TriggerEngine — Event-driven and scheduled action dispatch.
3
+ *
4
+ * Two trigger sources, same action dispatch:
5
+ * 1. Event triggers (on:): Subscribe to bus, match events, fire action
6
+ * 2. Schedule triggers (schedule:): setInterval timers, fire action periodically
7
+ *
8
+ * Both resolve actions through: dance triggers > built-in actions.
9
+ *
10
+ * Loop prevention: events published by triggers use `publishedBy: "trigger:<action>"`.
11
+ * The engine skips any event whose publishedBy starts with "trigger:".
12
+ */
13
+ import { createTypeMatcher } from './agent/acp/event-matcher.js';
14
+ const TRIGGER_PREFIX = 'trigger:';
15
+ // ─── Duration Parsing ─────────────────────────────────────────
16
+ const DURATION_RE = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/;
17
+ /** Parse a duration string ("30s", "15m", "1h", "2h30m") to milliseconds. */
18
+ export function parseDuration(str) {
19
+ const m = DURATION_RE.exec(str);
20
+ if (!m || (!m[1] && !m[2] && !m[3])) {
21
+ throw new Error(`Invalid duration "${str}" — use "30s", "15m", "1h", "2h30m"`);
22
+ }
23
+ const h = parseInt(m[1] || '0', 10);
24
+ const min = parseInt(m[2] || '0', 10);
25
+ const s = parseInt(m[3] || '0', 10);
26
+ return (h * 3600 + min * 60 + s) * 1000;
27
+ }
28
+ // ─── SSRF Protection ──────────────────────────────────────────
29
+ const PRIVATE_IP_RE = /^(127\.|10\.|172\.(1[6-9]|2\d|3[01])\.|192\.168\.|0\.|169\.254\.|::1|fc|fd|fe80)/i;
30
+ /** Check if a URL targets a private/loopback address (SSRF prevention). */
31
+ function isPrivateUrl(urlStr) {
32
+ try {
33
+ const url = new URL(urlStr);
34
+ const host = url.hostname;
35
+ if (host === 'localhost' || host === '[::1]')
36
+ return true;
37
+ return PRIVATE_IP_RE.test(host);
38
+ }
39
+ catch {
40
+ return true; // malformed URL = block
41
+ }
42
+ }
43
+ // ─── TriggerEngine ────────────────────────────────────────────
44
+ export class TriggerEngine {
45
+ namespace;
46
+ onTriggers;
47
+ scheduleEntries;
48
+ scheduleTimers = new Map();
49
+ busUnsub;
50
+ stores;
51
+ bus;
52
+ acpHelper;
53
+ danceModule;
54
+ telemetry;
55
+ matcher;
56
+ compute;
57
+ region;
58
+ started = false;
59
+ constructor(config, stores, bus, acpHelper) {
60
+ this.namespace = config.namespace;
61
+ this.stores = stores;
62
+ this.bus = bus;
63
+ this.acpHelper = acpHelper;
64
+ this.compute = config.compute;
65
+ this.region = config.region;
66
+ // Normalize on: triggers to TriggerActionConfig
67
+ this.onTriggers = new Map();
68
+ if (config.on) {
69
+ for (const [eventType, actionRaw] of Object.entries(config.on)) {
70
+ if (typeof actionRaw === 'string') {
71
+ this.onTriggers.set(eventType, { action: actionRaw });
72
+ }
73
+ else {
74
+ this.onTriggers.set(eventType, actionRaw);
75
+ }
76
+ }
77
+ }
78
+ // Build event matcher from trigger keys (supports globs)
79
+ if (this.onTriggers.size > 0) {
80
+ this.matcher = createTypeMatcher([...this.onTriggers.keys()]);
81
+ }
82
+ // Schedule entries
83
+ this.scheduleEntries = new Map();
84
+ if (config.schedule) {
85
+ for (const [name, entry] of Object.entries(config.schedule)) {
86
+ this.scheduleEntries.set(name, entry);
87
+ }
88
+ }
89
+ }
90
+ /** Set dance module for custom trigger resolution. */
91
+ setDanceModule(mod) {
92
+ this.danceModule = mod;
93
+ }
94
+ /** Set telemetry reporter for trigger_fired events. */
95
+ setTelemetry(t) {
96
+ this.telemetry = t;
97
+ }
98
+ /** Start listening for events and running schedules. */
99
+ start() {
100
+ if (this.started)
101
+ return;
102
+ this.started = true;
103
+ // Subscribe to bus for event triggers
104
+ if (this.onTriggers.size > 0) {
105
+ this.busUnsub = this.bus.subscribe(this.namespace, (event) => {
106
+ this.handleEvent(event);
107
+ });
108
+ }
109
+ // Start schedule timers
110
+ this.startSchedules();
111
+ // Publish container warmup signal if compute is declared
112
+ if (this.compute && this.compute !== 'edge') {
113
+ this.stores.events.publish('container.warmup', { compute: this.compute, region: this.region ?? null }, `${TRIGGER_PREFIX}warmup`).catch(() => { });
114
+ }
115
+ }
116
+ /** Stop all event listeners and schedule timers. */
117
+ stop() {
118
+ if (!this.started)
119
+ return;
120
+ this.started = false;
121
+ if (this.busUnsub) {
122
+ this.busUnsub();
123
+ this.busUnsub = undefined;
124
+ }
125
+ this.stopSchedules();
126
+ }
127
+ /** Get configured event triggers (for inspection). */
128
+ getTriggers() {
129
+ return new Map(this.onTriggers);
130
+ }
131
+ /** Get configured schedules (for inspection). */
132
+ getSchedules() {
133
+ return new Map(this.scheduleEntries);
134
+ }
135
+ // ─── Event Handling ──────────────────────────────────────────
136
+ handleEvent(event) {
137
+ // Loop prevention: skip events published by triggers
138
+ if (event.publishedBy.startsWith(TRIGGER_PREFIX))
139
+ return;
140
+ // Check if this event type matches any trigger
141
+ if (!this.matcher || !this.matcher(event.type))
142
+ return;
143
+ // Resolve: exact match first, then check all patterns
144
+ const triggerConfig = this.onTriggers.get(event.type) ?? this.findGlobMatch(event.type);
145
+ if (!triggerConfig)
146
+ return;
147
+ // Fire-and-forget
148
+ this.dispatchAction(triggerConfig, event).catch((err) => {
149
+ console.error(`[triggers] Action "${triggerConfig.action}" failed: ${err.message}`);
150
+ });
151
+ }
152
+ findGlobMatch(eventType) {
153
+ for (const [pattern, config] of this.onTriggers) {
154
+ if (pattern.includes('*')) {
155
+ const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^.]*');
156
+ if (new RegExp('^' + escaped + '$').test(eventType)) {
157
+ return config;
158
+ }
159
+ }
160
+ }
161
+ return undefined;
162
+ }
163
+ // ─── Schedule Handling ──────────────────────────────────────
164
+ startSchedules() {
165
+ for (const [name, entry] of this.scheduleEntries) {
166
+ const ms = parseDuration(entry.every);
167
+ const timer = setInterval(() => {
168
+ // Create synthetic event
169
+ const syntheticEvent = {
170
+ id: 0,
171
+ type: `schedule.${name}`,
172
+ data: { scheduleName: name, interval: entry.every },
173
+ publishedBy: `${TRIGGER_PREFIX}schedule`,
174
+ publishedAt: new Date().toISOString(),
175
+ };
176
+ const actionConfig = {
177
+ action: entry.action,
178
+ config: entry.config,
179
+ };
180
+ this.dispatchAction(actionConfig, syntheticEvent).catch((err) => {
181
+ console.error(`[triggers] Schedule "${name}" action "${entry.action}" failed: ${err.message}`);
182
+ });
183
+ }, ms);
184
+ this.scheduleTimers.set(name, timer);
185
+ }
186
+ }
187
+ stopSchedules() {
188
+ for (const [, timer] of this.scheduleTimers) {
189
+ clearInterval(timer);
190
+ }
191
+ this.scheduleTimers.clear();
192
+ }
193
+ // ─── Action Dispatch ────────────────────────────────────────
194
+ async dispatchAction(triggerConfig, event) {
195
+ const { action, config } = triggerConfig;
196
+ // Record telemetry
197
+ this.telemetry?.record('trigger_fired', {
198
+ triggerEvent: event.type,
199
+ action,
200
+ });
201
+ // Dance triggers take priority over built-in actions
202
+ const danceTrigger = this.danceModule?.triggers?.get(action);
203
+ if (danceTrigger) {
204
+ await this.executeDanceTrigger(danceTrigger, event);
205
+ return;
206
+ }
207
+ // Built-in actions
208
+ switch (action) {
209
+ case 'log':
210
+ await this.actionLog(event, config);
211
+ break;
212
+ case 'halt':
213
+ await this.actionHalt(event, config);
214
+ break;
215
+ case 'publish':
216
+ await this.actionPublish(event, config);
217
+ break;
218
+ case 'webhook':
219
+ await this.actionWebhook(event, config);
220
+ break;
221
+ default:
222
+ console.error(`[triggers] Unknown action "${action}" for event "${event.type}"`);
223
+ }
224
+ }
225
+ // ─── Dance Trigger Execution ────────────────────────────────
226
+ async executeDanceTrigger(trigger, event) {
227
+ const stateEntries = await this.stores.state.query();
228
+ const state = {};
229
+ for (const entry of stateEntries) {
230
+ state[entry.key] = typeof entry.value === 'string' ? entry.value : JSON.stringify(entry.value);
231
+ }
232
+ await trigger.handler({
233
+ event: { type: event.type, data: event.data, publishedBy: event.publishedBy },
234
+ state,
235
+ acp: this.acpHelper,
236
+ });
237
+ }
238
+ // ─── Built-in Actions ───────────────────────────────────────
239
+ async actionLog(event, _config) {
240
+ console.error(`[triggers] log: ${event.type} (by ${event.publishedBy})`);
241
+ }
242
+ async actionHalt(event, config) {
243
+ const reason = config?.reason ?? `Trigger halt on ${event.type}`;
244
+ await this.stores.control.halt(reason, `${TRIGGER_PREFIX}halt`);
245
+ }
246
+ async actionPublish(event, config) {
247
+ const type = config?.type;
248
+ if (!type) {
249
+ console.error('[triggers] publish action requires config.type');
250
+ return;
251
+ }
252
+ const published = await this.stores.events.publish(type, { source: event.type, originalData: event.data }, `${TRIGGER_PREFIX}publish`);
253
+ this.bus.publish(this.namespace, published);
254
+ }
255
+ async actionWebhook(event, config) {
256
+ const url = config?.url;
257
+ if (!url) {
258
+ console.error('[triggers] webhook action requires config.url');
259
+ return;
260
+ }
261
+ // SSRF protection (R4-M4, R6-H6)
262
+ if (isPrivateUrl(url)) {
263
+ console.error(`[triggers] webhook blocked: private/loopback URL`);
264
+ return;
265
+ }
266
+ const controller = new AbortController();
267
+ const timeout = setTimeout(() => controller.abort(), 10_000);
268
+ try {
269
+ const response = await fetch(url, {
270
+ method: 'POST',
271
+ headers: { 'Content-Type': 'application/json' },
272
+ body: JSON.stringify({
273
+ event: event.type,
274
+ data: event.data,
275
+ publishedBy: event.publishedBy,
276
+ timestamp: event.publishedAt,
277
+ }),
278
+ signal: controller.signal,
279
+ });
280
+ if (!response.ok) {
281
+ console.error(`[triggers] webhook ${url} returned ${response.status}`);
282
+ }
283
+ }
284
+ catch (err) {
285
+ if (err.name === 'AbortError') {
286
+ console.error(`[triggers] webhook ${url} timed out (10s)`);
287
+ }
288
+ else {
289
+ console.error(`[triggers] webhook ${url} failed: ${err.message}`);
290
+ }
291
+ }
292
+ finally {
293
+ clearTimeout(timeout);
294
+ }
295
+ }
296
+ }
297
+ //# sourceMappingURL=triggers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.js","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@honeybee-ai/incubator",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "Give your agent swarm shared memory. MCP server + REST API for multi-agent coordination.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -91,7 +91,7 @@
91
91
  "@anthropic-ai/sdk": "^0.74.0",
92
92
  "@cerebras/cerebras_cloud_sdk": "^1.64.1",
93
93
  "@honeybee-ai/carapace": "^1.0.1",
94
- "@honeybee-ai/hivemind-sdk": "^0.2.7",
94
+ "@honeybee-ai/hivemind-sdk": "^0.2.10",
95
95
  "@modelcontextprotocol/sdk": "^1.12.1",
96
96
  "groq-sdk": "^0.37.0",
97
97
  "js-yaml": "^4.1.1",