@carlonicora/nestjs-neo4jsonapi 4.7.0 → 4.9.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 (33) hide show
  1. package/dist/config/base.config.d.ts.map +1 -1
  2. package/dist/config/base.config.js +65 -17
  3. package/dist/config/base.config.js.map +1 -1
  4. package/dist/config/interfaces/config.ai.interface.d.ts +92 -60
  5. package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
  6. package/dist/core/blocknote/index.d.ts +1 -0
  7. package/dist/core/blocknote/index.d.ts.map +1 -1
  8. package/dist/core/blocknote/index.js +1 -0
  9. package/dist/core/blocknote/index.js.map +1 -1
  10. package/dist/core/blocknote/rich-text-empty.d.ts +7 -0
  11. package/dist/core/blocknote/rich-text-empty.d.ts.map +1 -0
  12. package/dist/core/blocknote/rich-text-empty.js +59 -0
  13. package/dist/core/blocknote/rich-text-empty.js.map +1 -0
  14. package/dist/core/llm/services/audio/diarization-spans.d.ts +29 -0
  15. package/dist/core/llm/services/audio/diarization-spans.d.ts.map +1 -0
  16. package/dist/core/llm/services/audio/diarization-spans.js +49 -0
  17. package/dist/core/llm/services/audio/diarization-spans.js.map +1 -0
  18. package/dist/core/llm/services/audio.llm.service.d.ts +39 -0
  19. package/dist/core/llm/services/audio.llm.service.d.ts.map +1 -1
  20. package/dist/core/llm/services/audio.llm.service.js +142 -2
  21. package/dist/core/llm/services/audio.llm.service.js.map +1 -1
  22. package/dist/core/neo4j/services/neo4j.service.d.ts.map +1 -1
  23. package/dist/core/neo4j/services/neo4j.service.js +7 -0
  24. package/dist/core/neo4j/services/neo4j.service.js.map +1 -1
  25. package/dist/foundations/company/services/company.service.d.ts +8 -0
  26. package/dist/foundations/company/services/company.service.d.ts.map +1 -1
  27. package/dist/foundations/company/services/company.service.js +14 -2
  28. package/dist/foundations/company/services/company.service.js.map +1 -1
  29. package/dist/foundations/notification/repositories/notification.repository.d.ts +40 -1
  30. package/dist/foundations/notification/repositories/notification.repository.d.ts.map +1 -1
  31. package/dist/foundations/notification/repositories/notification.repository.js +62 -5
  32. package/dist/foundations/notification/repositories/notification.repository.js.map +1 -1
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base.config.d.ts","sourceRoot":"","sources":["../../src/config/base.config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AA8ErF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAGlC,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAEjC,yFAAyF;IACzF,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAErC,gFAAgF;IAChF,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAEnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,0BAA0B,CAAC;IAEzC;;;OAGG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,mBAAmB,CA4VjF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,UAAU,qBAAqB,CAAC"}
1
+ {"version":3,"file":"base.config.d.ts","sourceRoot":"","sources":["../../src/config/base.config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AA4IrF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAGlC,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAEjC,yFAAyF;IACzF,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAErC,gFAAgF;IAChF,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAEnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,0BAA0B,CAAC;IAEzC;;;OAGG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,mBAAmB,CA0UjF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,UAAU,qBAAqB,CAAC"}
@@ -92,6 +92,67 @@ const buildAiTier = (suffix) => {
92
92
  googleCredentialsBase64: env("AI_GOOGLE_CREDENTIALS_BASE64"),
93
93
  };
94
94
  };
95
+ /**
96
+ * Resolves one AUDIO tier from env. `suffix` is "" (the transcription tier
97
+ * AudioLLMService.call uses) or "_DIARIZE" (AudioLLMService.diarize).
98
+ *
99
+ * Same fallback semantics as buildAiTier: field-by-field inheritance from
100
+ * the base audio tier unless the tier names a different provider, and
101
+ * `region` (the OpenRouter provider pin) never inherits — it is per-MODEL
102
+ * routing, so dragging the base tier's pin onto a different model makes the
103
+ * provider 404 (model not served there) or 422.
104
+ *
105
+ * The audio-only fields (directUrl / language / directFormat / directProvider /
106
+ * costPerMinute) never fall back to `AI_*`, exactly as the inline `audio` block
107
+ * they replace did not.
108
+ */
109
+ const buildAudioTier = (suffix) => {
110
+ const base = (key) => process.env[`AUDIO_${key}`] || process.env[`AI_${key}`] || "";
111
+ const baseOnly = (key) => process.env[`AUDIO_${key}`] || "";
112
+ const baseProvider = base("PROVIDER");
113
+ const tierProvider = (suffix ? process.env[`AUDIO_PROVIDER${suffix}`] : baseProvider) || "";
114
+ const standalone = suffix !== "" && tierProvider !== "" && tierProvider !== baseProvider;
115
+ const env = (key) => process.env[`AUDIO_${key}${suffix}`] || (standalone ? "" : base(key));
116
+ const envAudioOnly = (key) => process.env[`AUDIO_${key}${suffix}`] || (standalone ? "" : baseOnly(key));
117
+ const own = (key) => process.env[`AUDIO_${key}${suffix}`] || "";
118
+ return {
119
+ provider: tierProvider || baseProvider,
120
+ apiKey: env("API_KEY"),
121
+ model: env("MODEL"),
122
+ url: env("URL"),
123
+ region: suffix ? own("REGION") : base("REGION"),
124
+ secret: env("SECRET"),
125
+ instance: env("INSTANCE"),
126
+ apiVersion: env("API_VERSION"),
127
+ inputCostPer1MTokens: parseFloat(env("INPUT_COST_PER_1M_TOKENS") || "0"),
128
+ outputCostPer1MTokens: parseFloat(env("OUTPUT_COST_PER_1M_TOKENS") || "0"),
129
+ costPerMinute: parseFloat(envAudioOnly("COST_PER_MINUTE") || "0"),
130
+ googleCredentialsBase64: env("GOOGLE_CREDENTIALS_BASE64"),
131
+ directUrl: envAudioOnly("DIRECT_URL") || undefined,
132
+ // A language hint helps Whisper, but a diarizer given a hint on
133
+ // code-switched audio (an Italian table playing in English) answers with
134
+ // text and speakers and EVERY timestamp at zero, which is useless. So the
135
+ // hint never inherits: a suffixed tier sends one only when it sets its own.
136
+ language: (suffix ? own("LANGUAGE") : envAudioOnly("LANGUAGE")) || undefined,
137
+ directFormat: envAudioOnly("DIRECT_FORMAT") || undefined,
138
+ directProvider: envAudioOnly("DIRECT_PROVIDER") || undefined,
139
+ };
140
+ };
141
+ /** JSON passthrough for `provider.options`; a bad value fails boot loudly, naming the var. */
142
+ const parseProviderOptions = (envName) => {
143
+ const raw = process.env[envName];
144
+ if (!raw || !raw.trim())
145
+ return {};
146
+ try {
147
+ const parsed = JSON.parse(raw);
148
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
149
+ throw new Error("must be a JSON object");
150
+ return parsed;
151
+ }
152
+ catch (err) {
153
+ throw new Error(`${envName} is not valid JSON: ${err.message}`);
154
+ }
155
+ };
95
156
  /**
96
157
  * Parses AI_URL_ALLOWLIST into the host-suffix list `validateAiUrl` enforces.
97
158
  *
@@ -354,23 +415,10 @@ function createBaseConfig(options) {
354
415
  inputCostPer1MTokens: parseFloat(process.env.IMAGE_INPUT_COST_PER_1M_TOKENS || "0"),
355
416
  outputCostPer1MTokens: parseFloat(process.env.IMAGE_OUTPUT_COST_PER_1M_TOKENS || "0"),
356
417
  },
357
- audio: {
358
- provider: process.env.AUDIO_PROVIDER || process.env.AI_PROVIDER || "",
359
- apiKey: process.env.AUDIO_API_KEY || process.env.AI_API_KEY || "",
360
- model: process.env.AUDIO_MODEL || process.env.AI_MODEL || "",
361
- url: process.env.AUDIO_URL || process.env.AI_URL || "",
362
- region: process.env.AUDIO_REGION || process.env.AI_REGION || "",
363
- secret: process.env.AUDIO_SECRET || process.env.AI_SECRET || "",
364
- instance: process.env.AUDIO_INSTANCE || process.env.AI_INSTANCE || "",
365
- apiVersion: process.env.AUDIO_API_VERSION || process.env.AI_API_VERSION || "",
366
- inputCostPer1MTokens: parseFloat(process.env.AUDIO_INPUT_COST_PER_1M_TOKENS || process.env.AI_INPUT_COST_PER_1M_TOKENS || "0"),
367
- outputCostPer1MTokens: parseFloat(process.env.AUDIO_OUTPUT_COST_PER_1M_TOKENS || process.env.AI_OUTPUT_COST_PER_1M_TOKENS || "0"),
368
- costPerMinute: parseFloat(process.env.AUDIO_COST_PER_MINUTE || "0"),
369
- googleCredentialsBase64: process.env.AUDIO_GOOGLE_CREDENTIALS_BASE64 || process.env.AI_GOOGLE_CREDENTIALS_BASE64 || "",
370
- directUrl: process.env.AUDIO_DIRECT_URL || undefined,
371
- language: process.env.AUDIO_LANGUAGE || undefined,
372
- directFormat: process.env.AUDIO_DIRECT_FORMAT || undefined,
373
- directProvider: process.env.AUDIO_DIRECT_PROVIDER || undefined,
418
+ audio: buildAudioTier(""),
419
+ audioDiarize: {
420
+ ...buildAudioTier("_DIARIZE"),
421
+ providerOptions: parseProviderOptions("AUDIO_PROVIDER_OPTIONS_DIARIZE"),
374
422
  },
375
423
  embedder: {
376
424
  provider: process.env.EMBEDDER_PROVIDER || "",
@@ -1 +1 @@
1
- {"version":3,"file":"base.config.js","sourceRoot":"","sources":["../../src/config/base.config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4LA,4CA4VC;AAxhBD,2CAA6B;AAY7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,GAAG,CAAC,MAAc,EAAgB,EAAE;IACnD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACzF,MAAM,UAAU,GAAG,MAAM,KAAK,EAAE,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,YAAY,CAAC;IACzF,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClH,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1E,MAAM,eAAe,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpD,gFAAgF;IAChF,gFAAgF;IAChF,MAAM,eAAe,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClE,4EAA4E;IAC5E,kCAAkC;IAClC,MAAM,cAAc,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,YAAY,IAAI,YAAY;QACtC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC;QACzB,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC;QACtB,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;QACxB,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC;QAC5B,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC;QACjC,oBAAoB,EAAE,UAAU,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,GAAG,CAAC;QAC3E,qBAAqB,EAAE,UAAU,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,GAAG,CAAC;QAC7E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,0BAA0B,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,eAAe,EAAE,GAAG,CAAC,qBAAqB,CAAC;QAC3C,cAAc;QACd,uBAAuB,EAAE,GAAG,CAAC,8BAA8B,CAAC;KAC7D,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,GAAyB,EAAE;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACU,QAAA,uBAAuB,GAAW,CAAC,GAAG,EAAE;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7D,CAAC,CAAC,EAAE,CAAC;AAwDL;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,gBAAgB,CAAC,OAA2B;IAC1D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,YAAY,CAAC;IACjD,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC;IAE1D,MAAM,MAAM,GAAG;QACb,WAAW,EAAE;YACX,IAAI,EAAE,eAAe;YACrB,yEAAyE;YACzE,iEAAiE;YACjE,iDAAiD;YACjD,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAqB;YACnF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE;SACpC;QACD,GAAG,EAAE;YACH,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;gBACtB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACjC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;oBACrB,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;gBAC7B,CAAC,CAAC,wBAAwB;YAC5B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC;YAC9C,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa;YACrC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO;SACpD;QACD,GAAG,EAAE;YACH,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;gBACtB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACjC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;oBACrB,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;gBAC7B,CAAC,CAAC,uBAAuB;SAC5B;QACD,KAAK,EAAE;YACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;YAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;YACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;SAC3C;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;YAClC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC;YAChD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,SAAS;SAC5C;QACD,KAAK,EAAE;YACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO;YAC9C,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,KAAK,CAAC;YAC5D,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,kDAAkD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YAChH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI;SAC3C;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;gBAC/B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpE,CAAC,CAAC,CAAC,uBAAuB,CAAC;YAC7B,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;gBAC9C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC9E,CAAC,CAAC,EAAE;YACN,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO;YACrD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,wCAAwC;YAC7E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,6CAA6C;YACjG,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC;YACrD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM;YACjE,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,KAAK,CAAC;YAChF,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO;SAC3D;QACD,GAAG,EAAE;YACH,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;YACpC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI;SAC9C;QACD,KAAK,EAAE;YACL,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;YAC7C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;YAC/C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;SACrC;QACD,KAAK,EAAE;YACL,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAA+C;YAC1E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;YAC5C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;YACvC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;YACvC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC;YACvC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM;YAChD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC/C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC/C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI;SACxD;QACD,OAAO,EAAE;YACP,wEAAwE;YACxE,sEAAsE;YACtE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;YAClC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;YACtD,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM;gBACrD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ;aACjD;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM;gBAC5C,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,uBAAuB;gBACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;gBACzC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;gBACzC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO;gBAC/C,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;gBACrD,MAAM,EAAE;oBACN,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO;oBAClD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa;iBAC9C;aACF;SACF;QACD,KAAK,EAAE;YACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;YAC7C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,iCAAiC;YACzE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;YACtD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO;SAC7D;QACD,EAAE,EAAE;YACF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE;YAC/B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;YACvC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;YACnC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;YACvC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;YAC9C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,WAAW;SAC7C;QACD,EAAE,EAAE;YACF,4EAA4E;YAC5E,gFAAgF;YAChF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,MAAM;YACpC,8EAA8E;YAC9E,yEAAyE;YACzE,4DAA4D;YAC5D,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,QAAQ,EAAE,EAAE,CAAC;YAC7E,uBAAuB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,GAAG,EAAE,EAAE,CAAC;YACtF,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,EAAE,EAAE,CAAC;YAC9E,0EAA0E;YAC1E,sEAAsE;YACtE,uDAAuD;YACvD,yBAAyB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,GAAG,EAAE,EAAE,CAAC;YAC1F,YAAY,EAAE,mBAAmB,EAAE;YACnC,IAAI,EAAE;gBACJ,iEAAiE;gBACjE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG;gBACrD,2EAA2E;gBAC3E,4EAA4E;gBAC5E,2EAA2E;gBAC3E,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa;gBAC9E,sEAAsE;gBACtE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM;gBACxD,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC;qBAC3D,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;qBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACvC;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM;gBACnD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO;gBACrD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;gBAC7C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;gBAC1C,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;gBACtC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE;gBACrD,4EAA4E;gBAC5E,yEAAyE;gBACzE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC;aAChE;YACD,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;YACnB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;YAC9B,WAAW,EAAE;gBACX,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;gBAChD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;gBAC7C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;gBAC1C,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;gBACtC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE;aACtD;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;gBACtE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;gBAClE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE;gBAC7D,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE;gBACvD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;gBAChE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;gBAChE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;gBACtE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;gBAC9E,oBAAoB,EAAE,UAAU,CAC9B,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,GAAG,CAC9F;gBACD,qBAAqB,EAAE,UAAU,CAC/B,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAChG;gBACD,uBAAuB,EACrB,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE;gBAChG,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE;aAC3D;YACD,yEAAyE;YACzE,yEAAyE;YACzE,qEAAqE;YACrE,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;gBAC1C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;gBACvC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;gBACpC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;gBAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;gBACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;gBAC1C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;gBAC/C,uBAAuB,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE;gBAC1E,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,GAAG,CAAC;gBACnF,qBAAqB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,GAAG,CAAC;aACtF;YACD,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;gBACrE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;gBACjE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE;gBAC5D,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE;gBACtD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;gBAC/D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;gBAC/D,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;gBACrE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;gBAC7E,oBAAoB,EAAE,UAAU,CAC9B,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,GAAG,CAC7F;gBACD,qBAAqB,EAAE,UAAU,CAC/B,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAC/F;gBACD,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC;gBACnE,uBAAuB,EACrB,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE;gBAC/F,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS;gBACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS;gBACjD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS;gBAC1D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;aAC/D;YACD,QAAQ,EAAE;gBACR,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;gBAC7C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;gBAC1C,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;gBACnC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;gBACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;gBAC7C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;gBAClD,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC;gBAC5D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;gBACzC,uBAAuB,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE;gBAC7E,8DAA8D;gBAC9D,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,GAAG,CAAC;gBACtF,SAAS,EAAE;oBACT,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;oBAC/D,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,QAAQ,CAAC;oBACnE,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,QAAQ,CAAC;oBAC3E,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,IAAI,CAAC;oBACrF,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC;oBAChE,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC;oBAC/D,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC;oBACpE,SAAS,EAAE,qBAAqB;iBACjC;aACF;SACF;QACD,+EAA+E;QAC/E,uEAAuE;QACvE,OAAO,EAAE;YACP,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;YACtD,mBAAmB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,KAAK,CAAC;SACrE;QACD,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,OAAO;YACnD,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC;YACpD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,CAAC;YACzD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI,CAAC;SAC9D;QACD,UAAU,EAAE;YACV,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;SACtC;QACD,MAAM,EAAE;YACN,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;YAC9C,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;YACxD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;YACtD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAC1C,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE;YAClF,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE;SACxE;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE;YACzD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;YACrD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;YACtC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;SACnD;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;YACxF,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;SACrD;QACD,KAAK,EAAE;YACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;YAC7C,yBAAyB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,KAAK,CAAC;YAC3F,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,MAAM,CAAC;YAChF,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,QAAQ,CAAC;YACpF,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,KAAK,OAAO;YAC1F,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,OAAO;SACzE;QACD,GAAG,EAAE;YACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;YAC3C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,YAAY;YACvD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS;YACvD,gBAAgB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;iBACxD,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC/B;QACD,YAAY,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,oBAAoB,CAAC;YACrG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACtF,2EAA2E;YAC3E,yEAAyE;YACzE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAwB;YAC/D,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO;YACrD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO;YACrD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO;YACrD,IAAI,EAAE;gBACJ,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,GAAG,CAAC;gBACzE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,GAAG,CAAC;aAC1E;SACF;QACD,IAAI,EAAE;YACJ,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,OAAO;YAC7D,gBAAgB,EACb,OAAO,CAAC,GAAG,CAAC,6BAAgE;gBAC5E,OAAO,CAAC,GAAG,CAAC,iBAAoD;gBACjE,MAAM;SACT;QACD,SAAS,EAAE;YACT,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;YACxD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa;YACpF,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;YACvD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa;YAC7D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;gBACzC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvE,CAAC,CAAC,CAAC,uBAAuB,CAAC;YAC7B,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,KAAK,EAAE,EAAE,CAAC;SACtE;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;QAC/B,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;QACnC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;QACrC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE;QACjC,OAAO,EAAE;YACP,QAAQ,EAAG,OAAO,CAAC,GAAG,CAAC,gBAAuD,IAAI,qBAAqB;YACvG,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK;YAC9C,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,MAAM,CAAC;SAClE;QACD,8EAA8E;QAC9E,8EAA8E;QAC9E,WAAW,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,+BAAuB,EAAE;QACpG,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACpD,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;KAClE,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACU,QAAA,UAAU,GAAG,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"base.config.js","sourceRoot":"","sources":["../../src/config/base.config.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,84 @@ export interface AiTierConfig {
85
85
  /** Base64-encoded GCP service account JSON for Google Vertex AI */
86
86
  googleCredentialsBase64?: string;
87
87
  }
88
+ /**
89
+ * Configuration for one audio-transcription tier.
90
+ *
91
+ * Shared shape for the `audio` block (the `AUDIO_*` transcription tier
92
+ * `AudioLLMService.call` uses) and `audioDiarize` (the `AUDIO_*_DIARIZE`
93
+ * speaker-diarization tier `AudioLLMService.diarize` uses). Mirrors
94
+ * {@link AiTierConfig}, whose `AI_*_LITE` / `AI_*_LARGE` inheritance rules
95
+ * `buildAudioTier` copies field for field.
96
+ */
97
+ export interface AudioTierConfig {
98
+ provider: string;
99
+ apiKey: string;
100
+ model: string;
101
+ url: string;
102
+ region?: string;
103
+ secret?: string;
104
+ instance?: string;
105
+ apiVersion?: string;
106
+ inputCostPer1MTokens: number;
107
+ outputCostPer1MTokens: number;
108
+ /**
109
+ * Price of one minute of transcribed audio, in the same currency as the
110
+ * per-token rates. Set via AUDIO_COST_PER_MINUTE.
111
+ *
112
+ * LAST of the three pricing clocks in `AudioLLMService.persistUsage`, and a
113
+ * pure estimate: it applies only when the engine reports neither a
114
+ * `usage.cost` of its own nor any token counts. Endpoints that DO report
115
+ * usage (OpenRouter's `/audio/transcriptions` returns
116
+ * `{seconds, input_tokens, output_tokens, cost}`) are billed on their own
117
+ * figures and ignore this rate entirely.
118
+ *
119
+ * Still worth setting on any `directUrl` deployment. A self-hosted Whisper
120
+ * or an endpoint that drops its usage block reports nothing billable, and
121
+ * under the zero-token rule that records NO usage row at all - which is how
122
+ * transcription silently became free work. With a rate here the cost falls
123
+ * back to measured audio duration, so the choice of engine never decides
124
+ * whether the work is billed.
125
+ *
126
+ * Leave unset (or 0) only if you accept that an engine reporting no usage
127
+ * bills nothing; AudioLLMService warns loudly in that case.
128
+ */
129
+ costPerMinute?: number;
130
+ /** Base64-encoded GCP service account JSON for Google Vertex AI */
131
+ googleCredentialsBase64?: string;
132
+ /**
133
+ * Full URL of an OpenAI-style /audio/transcriptions endpoint. When set,
134
+ * AudioLLMService POSTs a multipart request here (using `apiKey` as Bearer
135
+ * auth and `model` / `language` from this same audio config). When unset
136
+ * or empty, the chat-LLM path is used instead (via ModelService.getAudioLLM).
137
+ * No provider whitelist — any OpenAI-compatible STT endpoint works.
138
+ */
139
+ directUrl?: string;
140
+ /** ISO-639-1 hint passed to /audio/transcriptions. Ignored in chat mode. */
141
+ language?: string;
142
+ /**
143
+ * Request format for the direct (`directUrl`) endpoint:
144
+ * - "multipart" (default) — OpenAI / self-hosted Whisper multipart form-data.
145
+ * - "json" — OpenRouter-style JSON body with base64 `input_audio`.
146
+ * Set via AUDIO_DIRECT_FORMAT. Ignored in chat mode.
147
+ */
148
+ directFormat?: string;
149
+ /**
150
+ * Optional provider to pin for the JSON direct endpoint, sent as
151
+ * `provider.order` with `allow_fallbacks: false`. Lets you route around a
152
+ * dead provider (e.g. OpenRouter's Groq `whisper-large-v3` endpoint 400s
153
+ * everything — pin "Together" instead). Set via AUDIO_DIRECT_PROVIDER.
154
+ */
155
+ directProvider?: string;
156
+ }
157
+ /**
158
+ * Diarization tier — resolved from `AUDIO_*_DIARIZE`, inheriting field by field
159
+ * from `AUDIO_*` exactly as `AI_*_LITE` inherits from `AI_*` (see buildAudioTier).
160
+ * `providerOptions` is the passthrough block sent as `provider.options` on the
161
+ * OpenRouter-style JSON request (e.g. `{"azure":{"diarization":{"enabled":true}}}`).
162
+ */
163
+ export interface AudioDiarizeTierConfig extends AudioTierConfig {
164
+ providerOptions: Record<string, unknown>;
165
+ }
88
166
  export interface ConfigAiInterface {
89
167
  /**
90
168
  * MOCK_AI fail-closed safety gate. When `true`, the LLM/model/embedder layer
@@ -252,66 +330,20 @@ export interface ConfigAiInterface {
252
330
  url?: string;
253
331
  apiVersion?: string;
254
332
  };
255
- audio: {
256
- provider: string;
257
- apiKey: string;
258
- model: string;
259
- url: string;
260
- region?: string;
261
- secret?: string;
262
- instance?: string;
263
- apiVersion?: string;
264
- inputCostPer1MTokens: number;
265
- outputCostPer1MTokens: number;
266
- /**
267
- * Price of one minute of transcribed audio, in the same currency as the
268
- * per-token rates. Set via AUDIO_COST_PER_MINUTE.
269
- *
270
- * LAST of the three pricing clocks in `AudioLLMService.persistUsage`, and a
271
- * pure estimate: it applies only when the engine reports neither a
272
- * `usage.cost` of its own nor any token counts. Endpoints that DO report
273
- * usage (OpenRouter's `/audio/transcriptions` returns
274
- * `{seconds, input_tokens, output_tokens, cost}`) are billed on their own
275
- * figures and ignore this rate entirely.
276
- *
277
- * Still worth setting on any `directUrl` deployment. A self-hosted Whisper
278
- * or an endpoint that drops its usage block reports nothing billable, and
279
- * under the zero-token rule that records NO usage row at all - which is how
280
- * transcription silently became free work. With a rate here the cost falls
281
- * back to measured audio duration, so the choice of engine never decides
282
- * whether the work is billed.
283
- *
284
- * Leave unset (or 0) only if you accept that an engine reporting no usage
285
- * bills nothing; AudioLLMService warns loudly in that case.
286
- */
287
- costPerMinute?: number;
288
- /** Base64-encoded GCP service account JSON for Google Vertex AI */
289
- googleCredentialsBase64?: string;
290
- /**
291
- * Full URL of an OpenAI-style /audio/transcriptions endpoint. When set,
292
- * AudioLLMService POSTs a multipart request here (using `apiKey` as Bearer
293
- * auth and `model` / `language` from this same audio config). When unset
294
- * or empty, the chat-LLM path is used instead (via ModelService.getAudioLLM).
295
- * No provider whitelist — any OpenAI-compatible STT endpoint works.
296
- */
297
- directUrl?: string;
298
- /** ISO-639-1 hint passed to /audio/transcriptions. Ignored in chat mode. */
299
- language?: string;
300
- /**
301
- * Request format for the direct (`directUrl`) endpoint:
302
- * - "multipart" (default) — OpenAI / self-hosted Whisper multipart form-data.
303
- * - "json" — OpenRouter-style JSON body with base64 `input_audio`.
304
- * Set via AUDIO_DIRECT_FORMAT. Ignored in chat mode.
305
- */
306
- directFormat?: string;
307
- /**
308
- * Optional provider to pin for the JSON direct endpoint, sent as
309
- * `provider.order` with `allow_fallbacks: false`. Lets you route around a
310
- * dead provider (e.g. OpenRouter's Groq `whisper-large-v3` endpoint 400s
311
- * everything — pin "Together" instead). Set via AUDIO_DIRECT_PROVIDER.
312
- */
313
- directProvider?: string;
314
- };
333
+ /**
334
+ * Transcription tier used by `AudioLLMService.call` — the `AUDIO_*` env
335
+ * block, falling back field by field to `AI_*`. Distinct from `transcriber`
336
+ * above (the openai-SDK path) and from {@link audioDiarize} below.
337
+ */
338
+ audio: AudioTierConfig;
339
+ /**
340
+ * Speaker-diarization tier used by `AudioLLMService.diarize` — the
341
+ * `AUDIO_*_DIARIZE` env block, inheriting from `AUDIO_*` unless it names a
342
+ * different provider. Kept separate so the Discord transcription tier can
343
+ * stay on a cheap duration-priced model while diarization runs on one that
344
+ * returns per-speaker segments.
345
+ */
346
+ audioDiarize: AudioDiarizeTierConfig;
315
347
  embedder: {
316
348
  provider: string;
317
349
  apiKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.ai.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.ai.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.ai.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.ai.interface.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./blocknote.module";
2
+ export * from "./rich-text-empty";
2
3
  export * from "./services/blocknote.service";
3
4
  export * from "./services/blocknote-to-docx.service";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/blocknote/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/blocknote/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC"}
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./blocknote.module"), exports);
18
+ __exportStar(require("./rich-text-empty"), exports);
18
19
  __exportStar(require("./services/blocknote.service"), exports);
19
20
  __exportStar(require("./services/blocknote-to-docx.service"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/blocknote/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+DAA6C;AAC7C,uEAAqD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/blocknote/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,oDAAkC;AAClC,+DAA6C;AAC7C,uEAAqD"}
@@ -0,0 +1,7 @@
1
+ export declare function isDocumentEmpty(blocks: unknown): boolean;
2
+ /**
3
+ * Returns null when the wire value (a JSON string of blocks) is an empty
4
+ * document, otherwise the value untouched. Unparseable input counts as empty.
5
+ */
6
+ export declare function emptyRichTextToNull(value: string | null | undefined): string | null;
7
+ //# sourceMappingURL=rich-text-empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rich-text-empty.d.ts","sourceRoot":"","sources":["../../../src/core/blocknote/rich-text-empty.ts"],"names":[],"mappings":"AA6BA,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOnF"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDocumentEmpty = isDocumentEmpty;
4
+ exports.emptyRichTextToNull = emptyRichTextToNull;
5
+ /**
6
+ * Server-side twin of the web editor's emptiness rule
7
+ * (packages/nextjs-jsonapi/src/components/editors/BlockNoteEditor.tsx).
8
+ * A BlockNote document that the user has cleared still serialises as one
9
+ * blank paragraph, so a Cypher aggregate cannot tell "never written" from
10
+ * "written". Services normalise an empty rich-text attribute to null with
11
+ * emptyRichTextToNull before the framework writes it.
12
+ */
13
+ function isBlockEmpty(block) {
14
+ if (!block || typeof block !== "object")
15
+ return true;
16
+ if (block.type !== "paragraph")
17
+ return false;
18
+ if (Array.isArray(block.children) && block.children.length > 0 && !isDocumentEmpty(block.children)) {
19
+ return false;
20
+ }
21
+ if (Array.isArray(block.content)) {
22
+ for (const inline of block.content) {
23
+ if (typeof inline === "string") {
24
+ if (inline.trim())
25
+ return false;
26
+ }
27
+ else if (inline && typeof inline === "object") {
28
+ if (inline.type !== "text")
29
+ return false;
30
+ if (typeof inline.text === "string" && inline.text.trim())
31
+ return false;
32
+ }
33
+ }
34
+ }
35
+ else if (typeof block.content === "string" && block.content.trim()) {
36
+ return false;
37
+ }
38
+ return true;
39
+ }
40
+ function isDocumentEmpty(blocks) {
41
+ if (!Array.isArray(blocks) || blocks.length === 0)
42
+ return true;
43
+ return blocks.every(isBlockEmpty);
44
+ }
45
+ /**
46
+ * Returns null when the wire value (a JSON string of blocks) is an empty
47
+ * document, otherwise the value untouched. Unparseable input counts as empty.
48
+ */
49
+ function emptyRichTextToNull(value) {
50
+ if (value === null || value === undefined || value === "")
51
+ return null;
52
+ try {
53
+ return isDocumentEmpty(JSON.parse(value)) ? null : value;
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ }
59
+ //# sourceMappingURL=rich-text-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rich-text-empty.js","sourceRoot":"","sources":["../../../src/core/blocknote/rich-text-empty.ts"],"names":[],"mappings":";;AA6BA,0CAGC;AAMD,kDAOC;AA7CD;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,KAAU;IAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,IAAI,EAAE;oBAAE,OAAO,KAAK,CAAC;YAClC,CAAC;iBAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;gBACzC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,OAAO,KAAK,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAAC,MAAe;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,KAAgC;IAClE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ /** One timestamped word from a `verbose_json` transcription (`timestamp_granularities` includes "word"). */
2
+ export interface DiarizedWord {
3
+ word: string;
4
+ start: number;
5
+ end: number;
6
+ speaker: number;
7
+ }
8
+ interface SpanCarrier {
9
+ start: number;
10
+ end: number;
11
+ text: string;
12
+ }
13
+ /** True when at least half of the segments have a real span; an empty list is fine (nothing to place). */
14
+ export declare function hasSegmentSpans(segments: ReadonlyArray<Pick<SpanCarrier, "start" | "end">>): boolean;
15
+ /**
16
+ * Rebuilds segment spans from the word stream.
17
+ *
18
+ * Azure's diarization path (via OpenRouter, `microsoft/mai-transcribe-2`)
19
+ * sometimes returns every SEGMENT with `start = end = 0` while the WORDS of the
20
+ * same response keep their timestamps. The segments' text is the words joined
21
+ * in order, so walking the word list by each segment's word count recovers the
22
+ * spans exactly. When the counts disagree (a word split differently by the
23
+ * two views), the words are shared out proportionally instead, which keeps
24
+ * every segment on the timeline in the right order even if a boundary drifts
25
+ * by a word.
26
+ */
27
+ export declare function spansFromWords<T extends SpanCarrier>(segments: T[], words: DiarizedWord[]): T[];
28
+ export {};
29
+ //# sourceMappingURL=diarization-spans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diarization-spans.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/services/audio/diarization-spans.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0GAA0G;AAC1G,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,OAAO,CAIpG;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,CAqB/F"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasSegmentSpans = hasSegmentSpans;
4
+ exports.spansFromWords = spansFromWords;
5
+ /** True when at least half of the segments have a real span; an empty list is fine (nothing to place). */
6
+ function hasSegmentSpans(segments) {
7
+ if (segments.length === 0)
8
+ return true;
9
+ const zeroLength = segments.filter((s) => !(s.end > s.start)).length;
10
+ return zeroLength * 2 < segments.length;
11
+ }
12
+ const countWords = (text) => text.split(/\s+/).filter(Boolean).length;
13
+ /**
14
+ * Rebuilds segment spans from the word stream.
15
+ *
16
+ * Azure's diarization path (via OpenRouter, `microsoft/mai-transcribe-2`)
17
+ * sometimes returns every SEGMENT with `start = end = 0` while the WORDS of the
18
+ * same response keep their timestamps. The segments' text is the words joined
19
+ * in order, so walking the word list by each segment's word count recovers the
20
+ * spans exactly. When the counts disagree (a word split differently by the
21
+ * two views), the words are shared out proportionally instead, which keeps
22
+ * every segment on the timeline in the right order even if a boundary drifts
23
+ * by a word.
24
+ */
25
+ function spansFromWords(segments, words) {
26
+ if (segments.length === 0 || words.length === 0)
27
+ return segments;
28
+ const counts = segments.map((s) => countWords(s.text));
29
+ const total = counts.reduce((a, b) => a + b, 0);
30
+ if (total === 0)
31
+ return segments;
32
+ const exact = total === words.length;
33
+ // Cumulative rounding: boundary i = round(cumulativeCount_i / total * words.length).
34
+ // The boundaries are monotonic and the last one is exactly words.length, so no
35
+ // segment is starved and the tail never collapses onto the last word.
36
+ let cumulative = 0;
37
+ let cursor = 0;
38
+ return segments.map((segment, index) => {
39
+ cumulative += counts[index];
40
+ const to = exact ? cursor + counts[index] : Math.round((cumulative / total) * words.length);
41
+ const from = cursor;
42
+ cursor = Math.max(to, from);
43
+ const slice = words.slice(from, Math.max(to, from + (counts[index] > 0 ? 1 : 0)));
44
+ if (slice.length === 0)
45
+ return segment;
46
+ return { ...segment, start: slice[0].start, end: slice[slice.length - 1].end };
47
+ });
48
+ }
49
+ //# sourceMappingURL=diarization-spans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diarization-spans.js","sourceRoot":"","sources":["../../../../../src/core/llm/services/audio/diarization-spans.ts"],"names":[],"mappings":";;AAeA,0CAIC;AAgBD,wCAqBC;AA1CD,0GAA0G;AAC1G,SAAgB,eAAe,CAAC,QAA2D;IACzF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACrE,OAAO,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAEtF;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAAwB,QAAa,EAAE,KAAqB;IACxF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEjC,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC;IACrC,qFAAqF;IACrF,+EAA+E;IAC/E,sEAAsE;IACtE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACrC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,MAAM,CAAC;QACpB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACvC,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -81,6 +81,37 @@ export interface TranscriptionResult {
81
81
  */
82
82
  providerSeconds?: number;
83
83
  }
84
+ /**
85
+ * Parameters for {@link AudioLLMService.diarize}. No `prompt` and no
86
+ * `temperature`: a diarizing STT endpoint takes neither, and no `transcode`
87
+ * because the caller already produced the file that goes on the wire.
88
+ */
89
+ export interface DiarizeCallParams {
90
+ audioPath: string;
91
+ /**
92
+ * Cost-attribution category written to the usage record. Free-form so each
93
+ * application owns its own vocabulary; defaults to "transcription".
94
+ */
95
+ tokenUsageType?: string;
96
+ /**
97
+ * Opt-in cost attribution, exactly like {@link AudioCallParams}: BOTH of
98
+ * these must be present or no usage record is written at all.
99
+ */
100
+ relationshipId?: string;
101
+ relationshipType?: string;
102
+ }
103
+ /** One diarized speech segment. Times are SECONDS from the start of the file sent. */
104
+ export interface DiarizedSegment {
105
+ start: number;
106
+ end: number;
107
+ text: string;
108
+ /** Provider speaker index within THIS request; -1 when the provider sent none. */
109
+ speaker: number;
110
+ }
111
+ export interface DiarizationResult extends TranscriptionResult {
112
+ segments: DiarizedSegment[];
113
+ language?: string;
114
+ }
84
115
  /**
85
116
  * Audio transcription facade. One env var (AUDIO_DIRECT_URL) flips dispatch
86
117
  * between two unrelated backends. The ffmpeg transcode to 16 kHz mono mp3 runs
@@ -116,6 +147,14 @@ export declare class AudioLLMService {
116
147
  private readonly logger;
117
148
  constructor(modelService: ModelService, config: ConfigService<BaseConfigInterface>, dumper: LLMCallDumper, tokenUsageService?: TokenUsageService, tokenUsageRecorder?: TokenUsageRecorderInterface);
118
149
  call(params: AudioCallParams): Promise<TranscriptionResult>;
150
+ /**
151
+ * Speaker-diarized transcription of ONE audio file through the DIARIZE tier
152
+ * (`ai.audioDiarize`, env `AUDIO_*_DIARIZE`). Direct JSON endpoint only —
153
+ * there is no chat-model diarization. No transcode: the caller already
154
+ * produced a 16 kHz mono mp3 sized under the provider's payload cap, and the
155
+ * universal transcode would re-encode to WAV and blow through it.
156
+ */
157
+ diarize(params: DiarizeCallParams): Promise<DiarizationResult>;
119
158
  /**
120
159
  * True once the "direct STT reports no tokens" warning has been emitted by
121
160
  * this instance. The audio service is a singleton, so this throttles the