@carlonicora/nestjs-neo4jsonapi 1.93.0 → 1.94.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 (52) hide show
  1. package/dist/agents/graph.creator/services/graph.creator.service.d.ts +2 -0
  2. package/dist/agents/graph.creator/services/graph.creator.service.d.ts.map +1 -1
  3. package/dist/agents/graph.creator/services/graph.creator.service.js +8 -0
  4. package/dist/agents/graph.creator/services/graph.creator.service.js.map +1 -1
  5. package/dist/config/interfaces/config.ai.interface.d.ts +40 -0
  6. package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
  7. package/dist/config/interfaces/config.ai.interface.js +18 -0
  8. package/dist/config/interfaces/config.ai.interface.js.map +1 -1
  9. package/dist/core/llm/common/llm-raw-response.d.ts +17 -0
  10. package/dist/core/llm/common/llm-raw-response.d.ts.map +1 -0
  11. package/dist/core/llm/common/llm-raw-response.js +7 -0
  12. package/dist/core/llm/common/llm-raw-response.js.map +1 -0
  13. package/dist/core/llm/llm.module.d.ts.map +1 -1
  14. package/dist/core/llm/llm.module.js +12 -1
  15. package/dist/core/llm/llm.module.js.map +1 -1
  16. package/dist/core/llm/services/audio.llm.service.js +1 -1
  17. package/dist/core/llm/services/audio.llm.service.js.map +1 -1
  18. package/dist/core/llm/services/llm-cache.service.d.ts +59 -0
  19. package/dist/core/llm/services/llm-cache.service.d.ts.map +1 -0
  20. package/dist/core/llm/services/llm-cache.service.js +118 -0
  21. package/dist/core/llm/services/llm-cache.service.js.map +1 -0
  22. package/dist/core/llm/services/llm-call-dumper.service.d.ts +14 -0
  23. package/dist/core/llm/services/llm-call-dumper.service.d.ts.map +1 -1
  24. package/dist/core/llm/services/llm-call-dumper.service.js +95 -3
  25. package/dist/core/llm/services/llm-call-dumper.service.js.map +1 -1
  26. package/dist/core/llm/services/llm.service.d.ts +27 -23
  27. package/dist/core/llm/services/llm.service.d.ts.map +1 -1
  28. package/dist/core/llm/services/llm.service.js +184 -65
  29. package/dist/core/llm/services/llm.service.js.map +1 -1
  30. package/dist/core/llm/services/model.service.d.ts +30 -0
  31. package/dist/core/llm/services/model.service.d.ts.map +1 -1
  32. package/dist/core/llm/services/model.service.js +136 -23
  33. package/dist/core/llm/services/model.service.js.map +1 -1
  34. package/dist/core/llm/services/vision.llm.service.d.ts.map +1 -1
  35. package/dist/core/llm/services/vision.llm.service.js +3 -8
  36. package/dist/core/llm/services/vision.llm.service.js.map +1 -1
  37. package/dist/foundations/chunk/services/chunk.service.d.ts +1 -3
  38. package/dist/foundations/chunk/services/chunk.service.d.ts.map +1 -1
  39. package/dist/foundations/chunk/services/chunk.service.js +3 -11
  40. package/dist/foundations/chunk/services/chunk.service.js.map +1 -1
  41. package/dist/foundations/tokenusage/enums/tokenusage.type.d.ts +11 -10
  42. package/dist/foundations/tokenusage/enums/tokenusage.type.d.ts.map +1 -1
  43. package/dist/foundations/tokenusage/enums/tokenusage.type.js +10 -11
  44. package/dist/foundations/tokenusage/enums/tokenusage.type.js.map +1 -1
  45. package/dist/foundations/tokenusage/repositories/tokenusage.repository.d.ts +1 -2
  46. package/dist/foundations/tokenusage/repositories/tokenusage.repository.d.ts.map +1 -1
  47. package/dist/foundations/tokenusage/repositories/tokenusage.repository.js.map +1 -1
  48. package/dist/foundations/tokenusage/services/tokenusage.service.d.ts +11 -2
  49. package/dist/foundations/tokenusage/services/tokenusage.service.d.ts.map +1 -1
  50. package/dist/foundations/tokenusage/services/tokenusage.service.js +16 -7
  51. package/dist/foundations/tokenusage/services/tokenusage.service.js.map +1 -1
  52. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tokenusage.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/tokenusage/services/tokenusage.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,qBACa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAGpE,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,eAAe;IAWjB,gBAAgB,CAAC,MAAM,EAAE;QAC7B,MAAM,EAAE,mBAAmB,CAAC;QAC5B,IAAI,EAAE,cAAc,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBlB"}
1
+ {"version":3,"file":"tokenusage.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/tokenusage/services/tokenusage.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,qBACa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAGpE,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,eAAe;IAWvB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,MAAM;IAO3G,gBAAgB,CAAC,MAAM,EAAE;QAC7B,MAAM,EAAE,mBAAmB,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBlB"}
@@ -33,14 +33,23 @@ let TokenUsageService = class TokenUsageService {
33
33
  return this.aiConfig.ai;
34
34
  }
35
35
  }
36
- async recordTokenUsage(params) {
37
- let cost = 0;
36
+ /**
37
+ * Computes the monetary cost of a call from the per-tier rates in config
38
+ * (`inputCostPer1MTokens` / `outputCostPer1MTokens`). Single source of truth —
39
+ * used both for persistence and for surfacing cost in ephemeral telemetry.
40
+ */
41
+ computeCost(params) {
38
42
  const costConfig = params.useVisionCosts ? this.aiConfig.vision : this.configForWeight(params.modelWeight);
39
- if (costConfig.inputCostPer1MTokens !== 0 && costConfig.outputCostPer1MTokens !== 0) {
40
- cost =
41
- (costConfig.inputCostPer1MTokens * params.tokens.input) / 1000000 +
42
- (costConfig.outputCostPer1MTokens * params.tokens.output) / 1000000;
43
- }
43
+ const inputCost = (params.tokens.input / 1_000_000) * (costConfig.inputCostPer1MTokens ?? 0);
44
+ const outputCost = (params.tokens.output / 1_000_000) * (costConfig.outputCostPer1MTokens ?? 0);
45
+ return inputCost + outputCost;
46
+ }
47
+ async recordTokenUsage(params) {
48
+ const cost = this.computeCost({
49
+ tokens: params.tokens,
50
+ useVisionCosts: params.useVisionCosts,
51
+ modelWeight: params.modelWeight,
52
+ });
44
53
  await this.tokenUsageRepository.create({
45
54
  id: (0, crypto_1.randomUUID)(),
46
55
  tokenUsageType: params.type,
@@ -1 +1 @@
1
- {"version":3,"file":"tokenusage.service.js","sourceRoot":"","sources":["../../../../src/foundations/tokenusage/services/tokenusage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAC/C,mCAAoC;AAIpC,+FAA2F;AAC3F,uEAAmE;AAG5D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YACmB,oBAA0C,EAC1C,aAAiD;QADjD,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,kBAAa,GAAb,aAAa,CAAoC;IACjE,CAAC;IAEJ,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACzD,CAAC;IAEO,eAAe,CAAC,MAAoB;QAC1C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,0BAAW,CAAC,IAAI;gBACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B,KAAK,0BAAW,CAAC,KAAK;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAOtB;QACC,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE3G,IAAI,UAAU,CAAC,oBAAoB,KAAK,CAAC,IAAI,UAAU,CAAC,qBAAqB,KAAK,CAAC,EAAE,CAAC;YACpF,IAAI;gBACF,CAAC,UAAU,CAAC,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO;oBACjE,CAAC,UAAU,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YACrC,EAAE,EAAE,IAAA,mBAAU,GAAE;YAChB,cAAc,EAAE,MAAM,CAAC,IAAI;YAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAChC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAClC,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAG8B,4CAAoB;QAC3B,sBAAa;GAHpC,iBAAiB,CAiD7B"}
1
+ {"version":3,"file":"tokenusage.service.js","sourceRoot":"","sources":["../../../../src/foundations/tokenusage/services/tokenusage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAC/C,mCAAoC;AAGpC,+FAA2F;AAC3F,uEAAmE;AAG5D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YACmB,oBAA0C,EAC1C,aAAiD;QADjD,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,kBAAa,GAAb,aAAa,CAAoC;IACjE,CAAC;IAEJ,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACzD,CAAC;IAEO,eAAe,CAAC,MAAoB;QAC1C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,0BAAW,CAAC,IAAI;gBACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B,KAAK,0BAAW,CAAC,KAAK;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAA4F;QACtG,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3G,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;QAC7F,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC;QAChG,OAAO,SAAS,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAOtB;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YACrC,EAAE,EAAE,IAAA,mBAAU,GAAE;YAChB,cAAc,EAAE,MAAM,CAAC,IAAI;YAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAChC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAClC,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAzDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAG8B,4CAAoB;QAC3B,sBAAa;GAHpC,iBAAiB,CAyD7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carlonicora/nestjs-neo4jsonapi",
3
- "version": "1.93.0",
3
+ "version": "1.94.0",
4
4
  "description": "NestJS foundation package with JSON:API, Neo4j, Redis, LangChain agents, and common utilities",
5
5
  "author": "Carlo Nicora",
6
6
  "license": "GPL-3.0-or-later",
@@ -74,6 +74,7 @@
74
74
  "@langchain/langgraph": "^1.3.2",
75
75
  "@langchain/openai": "^1.4.7",
76
76
  "@langchain/textsplitters": "^1.0.1",
77
+ "langsmith": "^0.7.5",
77
78
  "@opentelemetry/api": "^1.9.1",
78
79
  "@opentelemetry/exporter-trace-otlp-http": "^0.218.0",
79
80
  "@opentelemetry/instrumentation-http": "^0.218.0",