@agimon-ai/doompi-voice 0.0.1-alpha.84 → 0.0.1-alpha.85

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.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_rolldown_runtime = require("../rolldown-runtime-BloeesfJ.cjs");
6
- const require_voiceController = require("../voiceController-Caf0ISzB.cjs");
6
+ const require_voiceController = require("../voiceController-DKBtfNPr.cjs");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_rolldown_runtime.__toESM(node_fs, 1);
9
9
  let node_os = require("node:os");
@@ -1,4 +1,4 @@
1
- import { d as createVoiceDependencies, l as voiceLeaderBindings, n as createVoiceRuntime } from "../voiceController-BjPxJg63.mjs";
1
+ import { d as createVoiceDependencies, l as voiceLeaderBindings, n as createVoiceRuntime } from "../voiceController-BK-l85i8.mjs";
2
2
  import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
@@ -5,7 +5,7 @@ Object.defineProperties(exports, {
5
5
  const require_rolldown_runtime = require("../rolldown-runtime-BloeesfJ.cjs");
6
6
  const require_clientMedia = require("../clientMedia-E44ZvrYt.cjs");
7
7
  const require_narrationBargeIn = require("../narrationBargeIn-fhm2fhaT.cjs");
8
- const require_voiceModeController = require("../voiceModeController-DON34KO1.cjs");
8
+ const require_voiceModeController = require("../voiceModeController-BjMnfxqg.cjs");
9
9
  const require_voiceTools = require("../voiceTools-BmMrC2zb.cjs");
10
10
  let node_fs = require("node:fs");
11
11
  node_fs = require_rolldown_runtime.__toESM(node_fs, 1);
@@ -321,7 +321,7 @@ var RealtimeMediaBroker = class RealtimeMediaBroker {
321
321
  //#endregion
322
322
  //#region src/services/clientMediaApi/index.ts
323
323
  const CLIENT_LEASE_MS = 15e3;
324
- const CLIENT_CONNECT_WAIT_MS = 3e3;
324
+ const CLIENT_CONNECT_WAIT_MS = 1e4;
325
325
  const EVENT_WAIT_MS = 5e3;
326
326
  const AUDIO_WAIT_MS = 500;
327
327
  const MAX_AUDIO_CHUNK_BYTES = 65536;
@@ -461,7 +461,7 @@ var VoiceMediaBroker = class {
461
461
  this.eventEpoch = options.eventEpoch ?? (0, node_crypto.randomUUID)();
462
462
  if (!validId(this.eventEpoch)) throw new Error("Voice media event epoch is invalid.");
463
463
  this.directEvents = options.directEvents;
464
- this.ownershipCommandTimeoutMs = options.ownershipCommandTimeoutMs ?? 3e4;
464
+ this.ownershipCommandTimeoutMs = options.ownershipCommandTimeoutMs ?? 75e3;
465
465
  this.publishOwnershipSnapshot();
466
466
  this.directEvents.publish(require_clientMedia.VOICE_MEDIA_WAKE_TYPE, this.sessionId, this.currentWake());
467
467
  }
@@ -1613,7 +1613,9 @@ function createVoiceServer(host, broker, homeDirectory) {
1613
1613
  let closed = false;
1614
1614
  let owner;
1615
1615
  let toolRegistrations = [];
1616
+ const activationWaiters = /* @__PURE__ */ new Set();
1616
1617
  const changed = () => {
1618
+ for (const wake of activationWaiters) wake();
1617
1619
  owner?.publish();
1618
1620
  if (!closed && mode.state === "disabled" && host.context.selection.state?.["minor-mode"]?.includes(_agimon_ai_doompi_core_voiceTools.DOOM_VOICE_AUTO_MODE_ID)) select(false).catch((error) => notify(String(error), "error"));
1619
1621
  if (mode.state === "active" && toolRegistrations.length === 0) toolRegistrations = exposedTools.map((tool) => host.registerTool(tool));
@@ -1663,6 +1665,23 @@ function createVoiceServer(host, broker, homeDirectory) {
1663
1665
  live,
1664
1666
  getMode: () => load().voice?.mode ?? "legacy"
1665
1667
  });
1668
+ const waitForCapture = () => {
1669
+ if (mode.state !== "starting") return Promise.resolve();
1670
+ return new Promise((resolve, reject) => {
1671
+ const timer = setTimeout(() => {
1672
+ activationWaiters.delete(wake);
1673
+ reject(/* @__PURE__ */ new Error("Autonomous voice did not become ready within 60 seconds."));
1674
+ }, 6e4);
1675
+ const wake = () => {
1676
+ if (mode.state === "starting") return;
1677
+ clearTimeout(timer);
1678
+ activationWaiters.delete(wake);
1679
+ resolve();
1680
+ };
1681
+ activationWaiters.add(wake);
1682
+ wake();
1683
+ });
1684
+ };
1666
1685
  const registry = require_voiceTools.createDoomVoiceToolsService((0, node_crypto.randomUUID)());
1667
1686
  const tools = registry.bindSession(execution.sessionId);
1668
1687
  const select = async (enabled) => {
@@ -1685,7 +1704,13 @@ function createVoiceServer(host, broker, homeDirectory) {
1685
1704
  },
1686
1705
  async activateVoice() {
1687
1706
  await mode.activate(autoUi);
1688
- if (mode.state === "starting" || mode.state === "active") await select(true);
1707
+ try {
1708
+ if (mode.state === "starting" || mode.state === "active") await select(true);
1709
+ await waitForCapture();
1710
+ } catch (error) {
1711
+ await mode.deactivate(autoUi).catch(() => void 0);
1712
+ throw error;
1713
+ }
1689
1714
  tools.setActive(mode.state === "active");
1690
1715
  },
1691
1716
  async deactivateVoice() {
@@ -2855,10 +2880,10 @@ var useVoiceTools_server_default = (0, _agimon_ai_doompi_core_extensionFile.defi
2855
2880
  const at = (value, context) => typeof value === "function" ? value(context) : value;
2856
2881
  /* v8 ignore next -- generated normalization branch */
2857
2882
  const defined = (values) => values.filter((value) => value !== void 0);
2858
- const via = (identity, value) => ({
2883
+ const via = (identity, value) => value === void 0 ? void 0 : {
2859
2884
  ...identity,
2860
2885
  ...value
2861
- });
2886
+ };
2862
2887
  const facet = (0, _agimon_ai_doompi_core_serverFacet.defineServerPlugin)({
2863
2888
  name: "@agimon-ai/doompi-voice",
2864
2889
  global: (context) => ({