@carlonicora/nestjs-neo4jsonapi 2.14.1 → 2.14.3

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 (68) hide show
  1. package/dist/agents/operator/tools/operator.tool.registry.d.ts.map +1 -1
  2. package/dist/agents/operator/tools/operator.tool.registry.js +2 -1
  3. package/dist/agents/operator/tools/operator.tool.registry.js.map +1 -1
  4. package/dist/bootstrap/app.module.factory.js +1 -1
  5. package/dist/bootstrap/app.module.factory.js.map +1 -1
  6. package/dist/common/filters/http-exception.filter.d.ts.map +1 -1
  7. package/dist/common/filters/http-exception.filter.js +2 -1
  8. package/dist/common/filters/http-exception.filter.js.map +1 -1
  9. package/dist/config/base.config.d.ts.map +1 -1
  10. package/dist/config/base.config.js +96 -0
  11. package/dist/config/base.config.js.map +1 -1
  12. package/dist/config/interfaces/base.config.interface.d.ts +2 -0
  13. package/dist/config/interfaces/base.config.interface.d.ts.map +1 -1
  14. package/dist/config/interfaces/config.ai.interface.d.ts +45 -8
  15. package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
  16. package/dist/config/interfaces/config.api.interface.d.ts +7 -0
  17. package/dist/config/interfaces/config.api.interface.d.ts.map +1 -1
  18. package/dist/config/interfaces/config.cache.interface.d.ts +7 -0
  19. package/dist/config/interfaces/config.cache.interface.d.ts.map +1 -1
  20. package/dist/config/interfaces/config.environment.interface.d.ts +19 -0
  21. package/dist/config/interfaces/config.environment.interface.d.ts.map +1 -1
  22. package/dist/config/interfaces/config.logging.interface.d.ts +16 -0
  23. package/dist/config/interfaces/config.logging.interface.d.ts.map +1 -1
  24. package/dist/config/interfaces/config.model.manager.interface.d.ts +30 -0
  25. package/dist/config/interfaces/config.model.manager.interface.d.ts.map +1 -0
  26. package/dist/config/interfaces/config.model.manager.interface.js +3 -0
  27. package/dist/config/interfaces/config.model.manager.interface.js.map +1 -0
  28. package/dist/config/interfaces/index.d.ts +1 -0
  29. package/dist/config/interfaces/index.d.ts.map +1 -1
  30. package/dist/config/interfaces/index.js +1 -0
  31. package/dist/config/interfaces/index.js.map +1 -1
  32. package/dist/core/debug/services/debug.logger.service.d.ts.map +1 -1
  33. package/dist/core/debug/services/debug.logger.service.js +4 -2
  34. package/dist/core/debug/services/debug.logger.service.js.map +1 -1
  35. package/dist/core/llm/services/audio.llm.service.d.ts +69 -23
  36. package/dist/core/llm/services/audio.llm.service.d.ts.map +1 -1
  37. package/dist/core/llm/services/audio.llm.service.js +122 -41
  38. package/dist/core/llm/services/audio.llm.service.js.map +1 -1
  39. package/dist/core/llm/services/llm-cache.service.d.ts.map +1 -1
  40. package/dist/core/llm/services/llm-cache.service.js +2 -1
  41. package/dist/core/llm/services/llm-cache.service.js.map +1 -1
  42. package/dist/core/llm/services/llm-call-dumper.service.d.ts.map +1 -1
  43. package/dist/core/llm/services/llm-call-dumper.service.js +5 -12
  44. package/dist/core/llm/services/llm-call-dumper.service.js.map +1 -1
  45. package/dist/core/llm/services/model.service.d.ts +3 -2
  46. package/dist/core/llm/services/model.service.d.ts.map +1 -1
  47. package/dist/core/llm/services/model.service.js +13 -9
  48. package/dist/core/llm/services/model.service.js.map +1 -1
  49. package/dist/core/logging/services/logging.service.js +4 -4
  50. package/dist/core/logging/services/logging.service.js.map +1 -1
  51. package/dist/core/model-manager/model-loader.d.ts +0 -1
  52. package/dist/core/model-manager/model-loader.d.ts.map +1 -1
  53. package/dist/core/model-manager/model-loader.js +2 -8
  54. package/dist/core/model-manager/model-loader.js.map +1 -1
  55. package/dist/core/model-manager/model-manager.service.d.ts.map +1 -1
  56. package/dist/core/model-manager/model-manager.service.js +9 -9
  57. package/dist/core/model-manager/model-manager.service.js.map +1 -1
  58. package/dist/core/redis/services/redis.messaging.service.d.ts.map +1 -1
  59. package/dist/core/redis/services/redis.messaging.service.js +2 -1
  60. package/dist/core/redis/services/redis.messaging.service.js.map +1 -1
  61. package/dist/core/version/services/version.service.js +1 -1
  62. package/dist/core/version/services/version.service.js.map +1 -1
  63. package/dist/foundations/referral/services/referral.service.d.ts +4 -1
  64. package/dist/foundations/referral/services/referral.service.d.ts.map +1 -1
  65. package/dist/foundations/referral/services/referral.service.js +6 -2
  66. package/dist/foundations/referral/services/referral.service.js.map +1 -1
  67. package/dist/foundations/stripe/__tests__/mocks/stripe.mock.d.ts +66 -66
  68. package/package.json +2 -2
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Local ML model management — see ModelManagerService and ModelLoader.
3
+ *
4
+ * Driven by MODEL_CONFIG_PATH, MODELS_CACHE_DIR, MODEL_BASE_URL,
5
+ * MODEL_VERIFY_HASH, MODEL_STRICT_HASH, MODEL_AUTO_UPDATE and the ONNX_*
6
+ * thread counts.
7
+ */
8
+ export interface ConfigModelManagerInterface {
9
+ /** models.config.yaml location (default `<cwd>/config/models.config.yaml`). */
10
+ configPath: string;
11
+ /** Where downloaded model files are cached (default `<cwd>/.cache/models`). */
12
+ cacheDir: string;
13
+ /** Model host; each model's repo comes from its own `modelId` (default HuggingFace). */
14
+ baseUrl: string;
15
+ /** Verify each downloaded file's SHA-256 (default true; only "false" disables). */
16
+ verifyHash: boolean;
17
+ /** Treat a hash mismatch as fatal (default true; only "false" disables). */
18
+ strictHash: boolean;
19
+ /** Re-download when the pinned version changes (default true; only "false" disables). */
20
+ autoUpdate: boolean;
21
+ onnx: ConfigOnnxInterface;
22
+ }
23
+ /** onnxruntime-node session threading. */
24
+ export interface ConfigOnnxInterface {
25
+ /** Threads used inside one operator (default 2). */
26
+ intraOpNumThreads: number;
27
+ /** Threads used across operators (default 1). */
28
+ interOpNumThreads: number;
29
+ }
30
+ //# sourceMappingURL=config.model.manager.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.model.manager.interface.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/config.model.manager.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,UAAU,EAAE,OAAO,CAAC;IACpB,yFAAyF;IACzF,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.model.manager.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.model.manager.interface.js","sourceRoot":"","sources":["../../../src/config/interfaces/config.model.manager.interface.ts"],"names":[],"mappings":""}
@@ -23,6 +23,7 @@ export * from "./config.job.names.interface";
23
23
  export * from "./config.jwt.interface";
24
24
  export * from "./config.logging.interface";
25
25
  export * from "./config.mcp.interface";
26
+ export * from "./config.model.manager.interface";
26
27
  export * from "./config.neo4j.interface";
27
28
  export * from "./config.oauth.interface";
28
29
  export * from "./config.operator.interface";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
@@ -39,6 +39,7 @@ __exportStar(require("./config.job.names.interface"), exports);
39
39
  __exportStar(require("./config.jwt.interface"), exports);
40
40
  __exportStar(require("./config.logging.interface"), exports);
41
41
  __exportStar(require("./config.mcp.interface"), exports);
42
+ __exportStar(require("./config.model.manager.interface"), exports);
42
43
  __exportStar(require("./config.neo4j.interface"), exports);
43
44
  __exportStar(require("./config.oauth.interface"), exports);
44
45
  __exportStar(require("./config.operator.interface"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,0DAAwC;AACxC,wDAAsC;AACtC,yDAAuC;AACvC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,6DAA2C;AAC3C,kEAAgD;AAChD,mEAAiD;AACjD,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C;AAC3C,uEAAqD;AACrD,4DAA0C;AAC1C,2DAAyC;AACzC,gEAA8C;AAC9C,iEAA+C;AAC/C,qDAAmC;AACnC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,yDAAuC;AACvC,2DAAyC;AACzC,2DAAyC;AACzC,8DAA4C;AAC5C,6DAA2C;AAC3C,+DAA6C;AAC7C,2DAAyC;AACzC,+DAA6C;AAC7C,wDAAsC;AACtC,4DAA0C;AAC1C,gEAA8C;AAC9C,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/interfaces/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,0DAAwC;AACxC,wDAAsC;AACtC,yDAAuC;AACvC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,6DAA2C;AAC3C,kEAAgD;AAChD,mEAAiD;AACjD,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C;AAC3C,uEAAqD;AACrD,4DAA0C;AAC1C,2DAAyC;AACzC,gEAA8C;AAC9C,iEAA+C;AAC/C,qDAAmC;AACnC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,yDAAuC;AACvC,mEAAiD;AACjD,2DAAyC;AACzC,2DAAyC;AACzC,8DAA4C;AAC5C,6DAA2C;AAC3C,+DAA6C;AAC7C,2DAAyC;AACzC,+DAA6C;AAC7C,wDAAsC;AACtC,4DAA0C;AAC1C,gEAA8C;AAC9C,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"debug.logger.service.d.ts","sourceRoot":"","sources":["../../../../src/core/debug/services/debug.logger.service.ts"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,WAAW,CAA6B;;IAOhD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAa1C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW5E;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAS5C;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAe5E;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAqB9E;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAcrD;;OAEG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAqBrB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;OAEG;IACH,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAU9D;;;OAGG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,GAAG,CAAC;KACX,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,GAAG,CAAC;QACX,MAAM,EAAE,GAAG,CAAC;QACZ,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCjB;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,kBAAkB;CAgBjC"}
1
+ {"version":3,"file":"debug.logger.service.d.ts","sourceRoot":"","sources":["../../../../src/core/debug/services/debug.logger.service.ts"],"names":[],"mappings":"AAMA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,WAAW,CAA6B;;IAQhD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAa1C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW5E;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAS5C;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAe5E;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAqB9E;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAcrD;;OAEG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAqBrB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;OAEG;IACH,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAU9D;;;OAGG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,GAAG,CAAC;KACX,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,GAAG,CAAC;QACX,MAAM,EAAE,GAAG,CAAC;QACZ,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCjB;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,kBAAkB;CAgBjC"}
@@ -46,6 +46,7 @@ exports.DebugLoggerService = void 0;
46
46
  const common_1 = require("@nestjs/common");
47
47
  const fs = __importStar(require("fs"));
48
48
  const path = __importStar(require("path"));
49
+ const base_config_1 = require("../../../config/base.config");
49
50
  /**
50
51
  * Debug Logger Service
51
52
  *
@@ -77,8 +78,9 @@ let DebugLoggerService = class DebugLoggerService {
77
78
  constructor() {
78
79
  this.currentRound = null;
79
80
  this.currentTurn = null;
80
- this.enabled = process.env.DEBUG_LOGGING_ENABLED === "true";
81
- this.logBasePath = process.env.DEBUG_LOG_PATH || "./logs";
81
+ const debugConfig = base_config_1.baseConfig.logging.debug;
82
+ this.enabled = debugConfig.enabled;
83
+ this.logBasePath = debugConfig.basePath;
82
84
  }
83
85
  /**
84
86
  * Initialize a new round log
@@ -1 +1 @@
1
- {"version":3,"file":"debug.logger.service.js","sourceRoot":"","sources":["../../../../src/core/debug/services/debug.logger.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.logger.service.js","sourceRoot":"","sources":["../../../../src/core/debug/services/debug.logger.service.ts"],"names":[],"mappings":"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"}
@@ -41,13 +41,45 @@ export interface AudioCallParams {
41
41
  }
42
42
  export interface TranscriptionResult {
43
43
  text: string;
44
- /** {0, 0} when audio.directUrl is set — /audio/transcriptions returns no tokens. */
44
+ /**
45
+ * Tokens the engine reported. {0, 0} when it reports none — which is common on
46
+ * the direct `/audio/transcriptions` path, where a duration-priced model
47
+ * (whisper-large-v3-turbo) charges by the second and reports no tokens at all.
48
+ */
45
49
  tokenUsage: {
46
50
  input: number;
47
51
  output: number;
48
52
  };
49
53
  /** Duration of the audio actually sent (from ffmpeg's Duration line). */
50
54
  audioSeconds: number;
55
+ /**
56
+ * The price the PROVIDER invoiced for this request, when it reports one
57
+ * (OpenRouter's `/audio/transcriptions` returns `usage.cost`). Absent
58
+ * otherwise. A measured figure rather than an estimate, so `persistUsage`
59
+ * bills it in preference to both the token and the duration clock.
60
+ *
61
+ * NEVER ASSUME IT IS THERE. Reporting a cost is an OpenRouter courtesy, not
62
+ * part of the OpenAI-style contract this path speaks: an endpoint on Azure,
63
+ * Vertex, OpenAI itself or a self-hosted Whisper reports tokens or a duration
64
+ * at best, and often nothing at all. Every such call falls through to the
65
+ * manual clocks in {@link AudioLLMService.persistUsage}, which is why those
66
+ * clocks remain load-bearing rather than legacy.
67
+ *
68
+ * CURRENCY IS THE PROVIDER'S. OpenRouter reports USD; `credits.creditCost`
69
+ * is nominally euro-denominated. The gap is the same one the configured
70
+ * `*CostPer1MTokens` rates already carry (they are copied off provider
71
+ * pricing pages in USD too), so nothing is converted here — a deployment
72
+ * that needs euro-exact accounting must price its credits accordingly.
73
+ */
74
+ providerCost?: number;
75
+ /**
76
+ * Audio duration the PROVIDER measured and billed, when it reports one
77
+ * (OpenAI-style endpoints return `usage: {type: "duration", seconds}`).
78
+ * Preferred over the locally measured `audioSeconds` by the duration clock,
79
+ * because it is the number the invoice was calculated from. Absent when the
80
+ * endpoint reports no usage at all.
81
+ */
82
+ providerSeconds?: number;
51
83
  }
52
84
  /**
53
85
  * Audio transcription facade. One env var (AUDIO_DIRECT_URL) flips dispatch
@@ -93,15 +125,21 @@ export declare class AudioLLMService {
93
125
  /**
94
126
  * Makes an unbillable engine LOUD instead of silent.
95
127
  *
96
- * The direct `/audio/transcriptions` engine (AUDIO_DIRECT_URL) reports no
97
- * token counts at all, and the zero-token rule in {@link persistUsage} then
98
- * writes no usage record so switching an application to that engine
99
- * silently turns transcription back into completely unbilled work. There is
100
- * no per-minute rate to fall back on (`audioSeconds` is available on the
101
- * result, but no price for it is configured anywhere), and inventing a token
102
- * count would be a lie, so the honest fix is a warning that names the
103
- * consequence. Emitted once per process never in the hot per-utterance
104
- * path beyond a boolean check.
128
+ * Some direct `/audio/transcriptions` engines report no usage of their own —
129
+ * no tokens, no cost. The zero-token rule in {@link persistUsage} then writes
130
+ * no usage record, so pointing an application at such an engine silently
131
+ * turns transcription into completely unbilled work. Inventing a token count
132
+ * would be a lie, so the honest fix is a warning that names the consequence
133
+ * and the one setting that fixes it.
134
+ *
135
+ * NOT every direct engine is in that position: OpenRouter returns a full
136
+ * `usage` block (tokens AND its own `cost`), which {@link parseDirectUsage}
137
+ * now reads, so those calls bill exactly and must not be warned about. The
138
+ * warning fires only when the engine reported NOTHING billable and no
139
+ * per-minute rate is configured either.
140
+ *
141
+ * Emitted once per process — never in the hot per-utterance path beyond a
142
+ * boolean check.
105
143
  */
106
144
  private warnIfDirectPathUnbilled;
107
145
  /**
@@ -111,22 +149,30 @@ export declare class AudioLLMService {
111
149
  * `computeCost()`, which only knows the text tiers (`configForWeight` never
112
150
  * looks at `ai.audio`), hence `costOverride`.
113
151
  *
114
- * TWO PRICING CLOCKS, in priority order:
152
+ * THREE PRICING CLOCKS, in priority order:
115
153
  *
116
- * 1. TOKENS, when the engine reports any. The chat path (AUDIO_DIRECT_URL
117
- * unset) counts the audio itself as input tokens, so this is the truer
118
- * measure and always wins.
119
- * 2. DURATION, when it reports none and `ai.audio.costPerMinute` is set. The
120
- * direct `/audio/transcriptions` engine never reports tokens by design, so
121
- * without this second clock it recorded NOTHING and switching engines
122
- * silently turned transcription into unbilled work.
154
+ * 0. PROVIDER COST, when the engine invoices the call itself. OpenRouter's
155
+ * `/audio/transcriptions` returns `usage.cost` what it actually charged,
156
+ * not what we estimate it charged — so it outranks both estimates below.
157
+ * It is also the ONLY correct clock for a duration-priced model such as
158
+ * whisper-large-v3-turbo, which reports a real cost alongside ZERO tokens:
159
+ * the token clock prices that call at nothing and the zero-token rule then
160
+ * drops the record entirely, which is exactly how a full session of 665
161
+ * utterances once billed nobody.
162
+ * 1. TOKENS, when the engine reports counts but no cost. The chat path
163
+ * (AUDIO_DIRECT_URL unset) counts the audio itself as input tokens, so
164
+ * this is the truer measure wherever a provider cost is unavailable.
165
+ * 2. DURATION, when the engine reports neither and `ai.audio.costPerMinute`
166
+ * is set. A pure estimate, and the last line of defence: without it an
167
+ * engine that reports nothing records NOTHING, silently turning
168
+ * transcription into unbilled work.
123
169
  *
124
- * They are never combined — billing one call by both clocks would charge it
125
- * twice. A call that reports neither tokens nor a priced duration still
170
+ * They are never combined — billing one call by two clocks would charge it
171
+ * twice. A call that reports no cost, no tokens and no priced duration still
126
172
  * records nothing, because `recordTokenUsage` floors every row at
127
- * `minCreditsPerRecord` and a 0/0 row with no duration would invent a charge
128
- * for work nobody can measure. That case is what
129
- * {@link warnIfDirectPathUnbilled} shouts about.
173
+ * `minCreditsPerRecord` and such a row would invent a charge for work nobody
174
+ * can measure. That case is what {@link warnIfDirectPathUnbilled} shouts
175
+ * about.
130
176
  *
131
177
  * FLOOR-EXEMPT (`applyMinimum: false`), same rationale as EmbedderService:
132
178
  * transcription is per-utterance, not per-request. A session averages a few
@@ -1 +1 @@
1
- {"version":3,"file":"audio.llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/audio.llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAwB,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAChG,OAAO,EAAsB,KAAK,gBAAgB,EAAwB,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAe,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;CACtB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAIX,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACL,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAVhF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAGxC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,MAAM,EAAE,aAAa,EAIT,iBAAiB,CAAC,EAAE,iBAAiB,EACP,kBAAkB,CAAC,EAAE,2BAA2B;IAGvG,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgDjE;;;;OAIG;IACH,OAAO,CAAC,wBAAwB,CAAS;IAEzC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,wBAAwB;IAkBhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;YACW,YAAY;YA+CZ,QAAQ;IA8EtB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;YAkDX,UAAU;CAuFzB"}
1
+ {"version":3,"file":"audio.llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/audio.llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAwB,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAChG,OAAO,EAAsB,KAAK,gBAAgB,EAAwB,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAe,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA0ED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAIX,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACL,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAVhF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAGxC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,MAAM,EAAE,aAAa,EAIT,iBAAiB,CAAC,EAAE,iBAAiB,EACP,kBAAkB,CAAC,EAAE,2BAA2B;IAGvG,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuDjE;;;;OAIG;IACH,OAAO,CAAC,wBAAwB,CAAS;IAEzC;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;YACW,YAAY;YAkEZ,QAAQ;IA8EtB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;YAkDX,UAAU;CA4GzB"}
@@ -58,6 +58,36 @@ const llm_call_dumper_service_1 = require("./llm-call-dumper.service");
58
58
  const model_service_1 = require("./model.service");
59
59
  /** Default `tokenUsageType` written when a caller attributes a call but names no category. */
60
60
  const DEFAULT_AUDIO_TOKEN_USAGE_TYPE = "transcription";
61
+ /**
62
+ * Narrows one field of an untrusted `usage` block to a usable number.
63
+ *
64
+ * Anything that is not a finite, non-negative number — a string, null, NaN, a
65
+ * field the vendor renamed — becomes `undefined` and the caller falls back to
66
+ * the next pricing clock. Billing must degrade to an estimate when the wire
67
+ * shape changes upstream, never to a `NaN` cost silently written to every
68
+ * usage row.
69
+ */
70
+ function usageNumber(value) {
71
+ return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
72
+ }
73
+ /**
74
+ * Extracts whatever a direct endpoint chose to report. Each field is
75
+ * independent on purpose: providers report wildly different subsets (OpenRouter
76
+ * all four, OpenAI/Azure a duration OR token counts, a self-hosted Whisper
77
+ * nothing), and a caller that demanded the full block would throw away the one
78
+ * number a given provider did give it.
79
+ */
80
+ function parseDirectUsage(usage) {
81
+ const block = (typeof usage === "object" && usage !== null ? usage : {});
82
+ return {
83
+ tokens: {
84
+ input: usageNumber(block.input_tokens) ?? 0,
85
+ output: usageNumber(block.output_tokens) ?? 0,
86
+ },
87
+ providerCost: usageNumber(block.cost),
88
+ providerSeconds: usageNumber(block.seconds),
89
+ };
90
+ }
61
91
  function extractText(content) {
62
92
  if (typeof content === "string")
63
93
  return content;
@@ -131,8 +161,10 @@ let AudioLLMService = AudioLLMService_1 = class AudioLLMService {
131
161
  const result = audio.directUrl
132
162
  ? await this.callDirect(params, audio, transcode)
133
163
  : await this.callChat(params, audio, transcode);
134
- this.warnIfDirectPathUnbilled(audio, result.tokenUsage);
135
- await this.persistUsage(params, result.tokenUsage, transcode.durationSeconds);
164
+ this.warnIfDirectPathUnbilled(audio, result.tokenUsage, result.providerCost);
165
+ // Duration for the fallback clock: the provider's own measurement when it
166
+ // gave one (that is the number it billed), else ffmpeg's.
167
+ await this.persistUsage(params, result.tokenUsage, result.providerSeconds ?? transcode.durationSeconds, result.providerCost);
136
168
  return result;
137
169
  }
138
170
  catch (error) {
@@ -155,19 +187,28 @@ let AudioLLMService = AudioLLMService_1 = class AudioLLMService {
155
187
  /**
156
188
  * Makes an unbillable engine LOUD instead of silent.
157
189
  *
158
- * The direct `/audio/transcriptions` engine (AUDIO_DIRECT_URL) reports no
159
- * token counts at all, and the zero-token rule in {@link persistUsage} then
160
- * writes no usage record so switching an application to that engine
161
- * silently turns transcription back into completely unbilled work. There is
162
- * no per-minute rate to fall back on (`audioSeconds` is available on the
163
- * result, but no price for it is configured anywhere), and inventing a token
164
- * count would be a lie, so the honest fix is a warning that names the
165
- * consequence. Emitted once per process never in the hot per-utterance
166
- * path beyond a boolean check.
190
+ * Some direct `/audio/transcriptions` engines report no usage of their own —
191
+ * no tokens, no cost. The zero-token rule in {@link persistUsage} then writes
192
+ * no usage record, so pointing an application at such an engine silently
193
+ * turns transcription into completely unbilled work. Inventing a token count
194
+ * would be a lie, so the honest fix is a warning that names the consequence
195
+ * and the one setting that fixes it.
196
+ *
197
+ * NOT every direct engine is in that position: OpenRouter returns a full
198
+ * `usage` block (tokens AND its own `cost`), which {@link parseDirectUsage}
199
+ * now reads, so those calls bill exactly and must not be warned about. The
200
+ * warning fires only when the engine reported NOTHING billable and no
201
+ * per-minute rate is configured either.
202
+ *
203
+ * Emitted once per process — never in the hot per-utterance path beyond a
204
+ * boolean check.
167
205
  */
168
- warnIfDirectPathUnbilled(audio, tokens) {
206
+ warnIfDirectPathUnbilled(audio, tokens, providerCost) {
169
207
  if (!audio.directUrl)
170
208
  return;
209
+ // The engine priced the call itself — nothing to warn about.
210
+ if ((providerCost ?? 0) > 0)
211
+ return;
171
212
  if (tokens.input + tokens.output > 0)
172
213
  return;
173
214
  // A per-minute rate is exactly the fallback this warning used to ask for:
@@ -179,10 +220,10 @@ let AudioLLMService = AudioLLMService_1 = class AudioLLMService {
179
220
  return;
180
221
  this.directPathUnbilledWarned = true;
181
222
  this.logger.warn(`audio-billing: TRANSCRIPTION USAGE IS NOT BEING BILLED — the direct STT endpoint ` +
182
- `(AUDIO_DIRECT_URL=${audio.directUrl}, model=${audio.model}) returns no token counts, and no ` +
183
- `AUDIO_COST_PER_MINUTE is configured, so every transcription records zero usage and deducts no ` +
184
- `credits. Set AUDIO_COST_PER_MINUTE to bill this engine by measured audio duration, or unset ` +
185
- `AUDIO_DIRECT_URL to use the chat engine, which reports real tokens. Logged once per process.`);
223
+ `(AUDIO_DIRECT_URL=${audio.directUrl}, model=${audio.model}) reported neither token counts nor a ` +
224
+ `usage.cost, and no AUDIO_COST_PER_MINUTE is configured, so every transcription records zero usage ` +
225
+ `and deducts no credits. Set AUDIO_COST_PER_MINUTE to bill this engine by measured audio duration, ` +
226
+ `or unset AUDIO_DIRECT_URL to use the chat engine, which reports real tokens. Logged once per process.`);
186
227
  }
187
228
  /**
188
229
  * Records transcription usage. Attribution is opt-in — same contract as
@@ -191,22 +232,30 @@ let AudioLLMService = AudioLLMService_1 = class AudioLLMService {
191
232
  * `computeCost()`, which only knows the text tiers (`configForWeight` never
192
233
  * looks at `ai.audio`), hence `costOverride`.
193
234
  *
194
- * TWO PRICING CLOCKS, in priority order:
235
+ * THREE PRICING CLOCKS, in priority order:
195
236
  *
196
- * 1. TOKENS, when the engine reports any. The chat path (AUDIO_DIRECT_URL
197
- * unset) counts the audio itself as input tokens, so this is the truer
198
- * measure and always wins.
199
- * 2. DURATION, when it reports none and `ai.audio.costPerMinute` is set. The
200
- * direct `/audio/transcriptions` engine never reports tokens by design, so
201
- * without this second clock it recorded NOTHING and switching engines
202
- * silently turned transcription into unbilled work.
237
+ * 0. PROVIDER COST, when the engine invoices the call itself. OpenRouter's
238
+ * `/audio/transcriptions` returns `usage.cost` what it actually charged,
239
+ * not what we estimate it charged — so it outranks both estimates below.
240
+ * It is also the ONLY correct clock for a duration-priced model such as
241
+ * whisper-large-v3-turbo, which reports a real cost alongside ZERO tokens:
242
+ * the token clock prices that call at nothing and the zero-token rule then
243
+ * drops the record entirely, which is exactly how a full session of 665
244
+ * utterances once billed nobody.
245
+ * 1. TOKENS, when the engine reports counts but no cost. The chat path
246
+ * (AUDIO_DIRECT_URL unset) counts the audio itself as input tokens, so
247
+ * this is the truer measure wherever a provider cost is unavailable.
248
+ * 2. DURATION, when the engine reports neither and `ai.audio.costPerMinute`
249
+ * is set. A pure estimate, and the last line of defence: without it an
250
+ * engine that reports nothing records NOTHING, silently turning
251
+ * transcription into unbilled work.
203
252
  *
204
- * They are never combined — billing one call by both clocks would charge it
205
- * twice. A call that reports neither tokens nor a priced duration still
253
+ * They are never combined — billing one call by two clocks would charge it
254
+ * twice. A call that reports no cost, no tokens and no priced duration still
206
255
  * records nothing, because `recordTokenUsage` floors every row at
207
- * `minCreditsPerRecord` and a 0/0 row with no duration would invent a charge
208
- * for work nobody can measure. That case is what
209
- * {@link warnIfDirectPathUnbilled} shouts about.
256
+ * `minCreditsPerRecord` and such a row would invent a charge for work nobody
257
+ * can measure. That case is what {@link warnIfDirectPathUnbilled} shouts
258
+ * about.
210
259
  *
211
260
  * FLOOR-EXEMPT (`applyMinimum: false`), same rationale as EmbedderService:
212
261
  * transcription is per-utterance, not per-request. A session averages a few
@@ -223,7 +272,7 @@ let AudioLLMService = AudioLLMService_1 = class AudioLLMService {
223
272
  * Never throws: a persistence failure logs a warning and the transcription
224
273
  * result stands.
225
274
  */
226
- async persistUsage(params, tokens, audioSeconds) {
275
+ async persistUsage(params, tokens, audioSeconds, providerCost) {
227
276
  if (!params.relationshipId || !params.relationshipType)
228
277
  return;
229
278
  const recorder = this.tokenUsageRecorder ?? this.tokenUsageService;
@@ -231,17 +280,32 @@ let AudioLLMService = AudioLLMService_1 = class AudioLLMService {
231
280
  return;
232
281
  const audio = this.config.get("ai")?.audio;
233
282
  const costPerMinute = audio?.costPerMinute ?? 0;
283
+ const hasProviderCost = (providerCost ?? 0) > 0;
234
284
  const hasTokens = tokens.input + tokens.output > 0;
235
285
  const billableSeconds = audioSeconds ?? 0;
236
- // Duration pricing is the fallback, not the default: when the engine reports
237
- // tokens they are the truer measure, and double-charging a call by both
238
- // clocks would inflate every chat-path transcription.
239
- if (!hasTokens && (costPerMinute <= 0 || billableSeconds <= 0))
286
+ // Nothing measurable to bill by: no invoice from the provider, no tokens,
287
+ // no priced duration. Recording here would invent a charge (see the floor
288
+ // note above), so the honest outcome is no row — and a loud warning from
289
+ // warnIfDirectPathUnbilled.
290
+ if (!hasProviderCost && !hasTokens && (costPerMinute <= 0 || billableSeconds <= 0))
240
291
  return;
241
- const cost = hasTokens
242
- ? (tokens.input * (audio?.inputCostPer1MTokens ?? 0) + tokens.output * (audio?.outputCostPer1MTokens ?? 0)) /
243
- 1_000_000
244
- : (billableSeconds / 60) * costPerMinute;
292
+ // Strictly ordered, never combined. The provider's own figure is measured
293
+ // rather than estimated, so it wins outright; tokens beat duration for the
294
+ // same reason one rung down.
295
+ const cost = hasProviderCost
296
+ ? providerCost
297
+ : hasTokens
298
+ ? (tokens.input * (audio?.inputCostPer1MTokens ?? 0) + tokens.output * (audio?.outputCostPer1MTokens ?? 0)) /
299
+ 1_000_000
300
+ : (billableSeconds / 60) * costPerMinute;
301
+ // Which clock priced this row. Three clocks can produce three different
302
+ // numbers for the same audio (a provider invoice, our token rates, our
303
+ // per-minute rate), and nothing on the TokenUsage node records which one
304
+ // ran — so without this line a disputed bill cannot be traced back to the
305
+ // basis it was calculated on.
306
+ this.logger.log(`audio-billing: clock=${hasProviderCost ? "provider-cost" : hasTokens ? "tokens" : "duration"} ` +
307
+ `cost=${cost} tokensIn=${tokens.input} tokensOut=${tokens.output} seconds=${billableSeconds} ` +
308
+ `model=${audio?.model} provider=${audio?.provider}`);
245
309
  try {
246
310
  await recorder.recordTokenUsage({
247
311
  tokens,
@@ -437,9 +501,26 @@ let AudioLLMService = AudioLLMService_1 = class AudioLLMService {
437
501
  }
438
502
  const json = (await response.json().catch(() => ({})));
439
503
  const text = typeof json.text === "string" ? json.text : "";
440
- session.recordResponse({ content: text, tokenUsage: { input: 0, output: 0 } });
441
- session.close({ finalStatus: "success", totalTokens: { input: 0, output: 0 } });
442
- return { text, tokenUsage: { input: 0, output: 0 }, audioSeconds: transcode.durationSeconds };
504
+ // The usage block is the engine's own accounting: OpenRouter reports
505
+ // `{seconds, input_tokens, output_tokens, cost}`, cost being what it
506
+ // actually charged. Reading it is what makes this path billable at all —
507
+ // it used to be discarded and hardcoded to {0,0}, and the zero-token rule
508
+ // in persistUsage then wrote no usage record, so entire sessions
509
+ // transcribed for free. Endpoints that report nothing still yield
510
+ // {0,0}/undefined and fall through to the per-minute clock.
511
+ const { tokens, providerCost, providerSeconds } = parseDirectUsage(json.usage);
512
+ this.logger.log(`audio-direct: usage tokensIn=${tokens.input} tokensOut=${tokens.output} ` +
513
+ `providerCost=${providerCost ?? "(not reported)"} providerSeconds=${providerSeconds ?? "(not reported)"} ` +
514
+ `generationId=${response.headers?.get?.("x-generation-id") ?? "(none)"}`);
515
+ session.recordResponse({ content: text, tokenUsage: tokens });
516
+ session.close({ finalStatus: "success", totalTokens: tokens });
517
+ return {
518
+ text,
519
+ tokenUsage: tokens,
520
+ audioSeconds: transcode.durationSeconds,
521
+ ...(providerCost !== undefined ? { providerCost } : {}),
522
+ ...(providerSeconds !== undefined ? { providerSeconds } : {}),
523
+ };
443
524
  }
444
525
  catch (error) {
445
526
  const message = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"audio.llm.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/audio.llm.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.llm.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/audio.llm.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-cache.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/llm-cache.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAY,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAKT;AAED;;;;;;;;;;;;;GAaG;AACH,qBACa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAElB,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAc,cAAc,CAAC,EAAE,KAAK;IAejG;;;OAGG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAW5C;;;;OAIG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,GAAE,MAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/E,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAOvC"}
1
+ {"version":3,"file":"llm-cache.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/llm-cache.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAY,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAKT;AAED;;;;;;;;;;;;;GAaG;AACH,qBACa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAElB,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAc,cAAc,CAAC,EAAE,KAAK;IAejG;;;OAGG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAW5C;;;;OAIG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,GAAE,MAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/E,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAOvC"}
@@ -19,6 +19,7 @@ const common_1 = require("@nestjs/common");
19
19
  const config_1 = require("@nestjs/config");
20
20
  const crypto_1 = require("crypto");
21
21
  const ioredis_1 = require("ioredis");
22
+ const base_config_1 = require("../../../config/base.config");
22
23
  /**
23
24
  * Builds the cache key for an LLM response.
24
25
  *
@@ -36,7 +37,7 @@ const ioredis_1 = require("ioredis");
36
37
  * collision-resistant across the whole keyspace.
37
38
  */
38
39
  function buildCacheKey(params) {
39
- const version = process.env.CACHE_VERSION ?? "v1";
40
+ const version = base_config_1.baseConfig.cache.version;
40
41
  const raw = `${version}|${params.modelWeight}|${params.temperature ?? ""}|${params.systemPrompts.join("|")}|${params.prompt}`;
41
42
  const digest = (0, crypto_1.createHash)("sha256").update(raw).digest("hex");
42
43
  return `llm:${digest}`;