titan-agent 6.3.5 → 6.4.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 (174) hide show
  1. package/THIRD_PARTY_NOTICES.md +3 -0
  2. package/dist/agent/agent.js +6 -2
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/autoSkillGen.js +55 -17
  5. package/dist/agent/autoSkillGen.js.map +1 -1
  6. package/dist/agent/learningCurator.js +383 -0
  7. package/dist/agent/learningCurator.js.map +1 -0
  8. package/dist/agent/trajectoryLogger.js +2 -2
  9. package/dist/agent/trajectoryLogger.js.map +1 -1
  10. package/dist/config/config.js +18 -2
  11. package/dist/config/config.js.map +1 -1
  12. package/dist/config/schema.js +22 -0
  13. package/dist/config/schema.js.map +1 -1
  14. package/dist/gateway/server.js +6 -1
  15. package/dist/gateway/server.js.map +1 -1
  16. package/dist/providers/defaultModel.js +2 -2
  17. package/dist/providers/defaultModel.js.map +1 -1
  18. package/dist/providers/ollama.js +17 -1
  19. package/dist/providers/ollama.js.map +1 -1
  20. package/dist/providers/router.js +7 -3
  21. package/dist/providers/router.js.map +1 -1
  22. package/dist/providers/stub.js +1 -6
  23. package/dist/providers/stub.js.map +1 -1
  24. package/dist/utils/constants.js +1 -1
  25. package/dist/utils/constants.js.map +1 -1
  26. package/package.json +1 -1
  27. package/ui/dist/assets/{AuditPanel-C7rrUHBM.js → AuditPanel-CLc6IVvA.js} +1 -1
  28. package/ui/dist/assets/{AutonomyPanel-CcOxsveF.js → AutonomyPanel-E6arcbAb.js} +2 -2
  29. package/ui/dist/assets/{AutopilotPanel-CjrYEF2s.js → AutopilotPanel-AhNEPP_2.js} +1 -1
  30. package/ui/dist/assets/{AutoresearchPanel-CBdGRAdZ.js → AutoresearchPanel-BJRXdUNa.js} +1 -1
  31. package/ui/dist/assets/{BackupPanel-BhU-utCn.js → BackupPanel-CGQAxeWf.js} +1 -1
  32. package/ui/dist/assets/{BrowserPanel-Dr-B5Kva.js → BrowserPanel-BylOyNpQ.js} +1 -1
  33. package/ui/dist/assets/{CPActivity-C5kJWqWc.js → CPActivity-7zS0dXGf.js} +1 -1
  34. package/ui/dist/assets/{CPAgentDetail-BVE3LoLA.js → CPAgentDetail-DUi0ygHI.js} +1 -1
  35. package/ui/dist/assets/{CPAgents-BKBSyXHs.js → CPAgents-BZYynbga.js} +1 -1
  36. package/ui/dist/assets/{CPApprovals-AkRGu05y.js → CPApprovals-CwNTmqzq.js} +1 -1
  37. package/ui/dist/assets/{CPCosts-DC5mPwVm.js → CPCosts-5hylxGvH.js} +1 -1
  38. package/ui/dist/assets/{CPDashboard-C7G-H6HW.js → CPDashboard-5f8qcBKy.js} +1 -1
  39. package/ui/dist/assets/{CPFiles-IhcbsdvY.js → CPFiles-CR9Nn3_p.js} +1 -1
  40. package/ui/dist/assets/{CPGoals-BL0rrvT5.js → CPGoals-CVSxXk1i.js} +1 -1
  41. package/ui/dist/assets/{CPInbox-CBUkqu4i.js → CPInbox-DD4RYSpf.js} +1 -1
  42. package/ui/dist/assets/{CPIssueDetail-HuI9tPu4.js → CPIssueDetail-Dpuc_wTi.js} +1 -1
  43. package/ui/dist/assets/{CPIssues-Do9d-evH.js → CPIssues-DsPZLTGm.js} +1 -1
  44. package/ui/dist/assets/CPLayout-CDkrYE-H.js +2 -0
  45. package/ui/dist/assets/{CPOrg-WHkSBNGU.js → CPOrg-C121ZFWy.js} +1 -1
  46. package/ui/dist/assets/{CPRuns-B4Pz5QkG.js → CPRuns-BUdKn-uk.js} +1 -1
  47. package/ui/dist/assets/{CPSocial-DayQlwZL.js → CPSocial-CriG1P45.js} +1 -1
  48. package/ui/dist/assets/{CPVoice-C2ry-Muk.js → CPVoice-BNhgXUE1.js} +1 -1
  49. package/ui/dist/assets/{ChannelsPanel-CeIEB9Es.js → ChannelsPanel-9SjAkSHg.js} +1 -1
  50. package/ui/dist/assets/{CheckpointsPanel-BkqqvLDL.js → CheckpointsPanel-D2sCPz2u.js} +1 -1
  51. package/ui/dist/assets/{CommandPostHub-Jd5_PAh3.js → CommandPostHub-DHTVn2_E.js} +3 -3
  52. package/ui/dist/assets/{CronPanel-COkBBcTV.js → CronPanel-CLQ0_Z_9.js} +1 -1
  53. package/ui/dist/assets/{DataTable-YQ9l5Xab.js → DataTable-CrBYCT2O.js} +1 -1
  54. package/ui/dist/assets/{DreamPanel-B5M--_sB.js → DreamPanel-BAkiDqQc.js} +1 -1
  55. package/ui/dist/assets/EmptyState-DSuZC-Tg.js +1 -0
  56. package/ui/dist/assets/{EvalHarnessPanel-DXU9jNmm.js → EvalHarnessPanel-BykaelQd.js} +1 -1
  57. package/ui/dist/assets/{EvalPanel-CY1kmmoG.js → EvalPanel-BlFByCOv.js} +1 -1
  58. package/ui/dist/assets/{FileViewer-BPLxBXEr.js → FileViewer-B0WedL9k.js} +1 -1
  59. package/ui/dist/assets/{FilesPanel-B5RpGquX.js → FilesPanel-DwUzP4Hv.js} +2 -2
  60. package/ui/dist/assets/{FleetPanel-1g-MrF81.js → FleetPanel-JW9Pk1FM.js} +1 -1
  61. package/ui/dist/assets/{HomelabPanel-CxkWfeeN.js → HomelabPanel-DigWCjaM.js} +1 -1
  62. package/ui/dist/assets/InfraView-0iQPmcD1.js +2 -0
  63. package/ui/dist/assets/{InlineEditableField-BuXVLQiL.js → InlineEditableField-Car7F635.js} +1 -1
  64. package/ui/dist/assets/{Input-C6OxbFDH.js → Input-BGGQDAyP.js} +1 -1
  65. package/ui/dist/assets/{IntegrationsPanel-CPZclot5.js → IntegrationsPanel-BGEkU649.js} +1 -1
  66. package/ui/dist/assets/IntelligenceView-wm2Pw46I.js +2 -0
  67. package/ui/dist/assets/LearningPanel-CGENRFnq.js +1 -0
  68. package/ui/dist/assets/{LogsPanel-XfC4fyQ6.js → LogsPanel-DZ_K2xOL.js} +1 -1
  69. package/ui/dist/assets/{McpPanel-CBN7xizL.js → McpPanel-CNB1BMz-.js} +1 -1
  70. package/ui/dist/assets/MemoryGraphPanel-FQxiv5x5.js +16 -0
  71. package/ui/dist/assets/{MemoryWikiPanel-BNv9ycwr.js → MemoryWikiPanel-C1w7xDNl.js} +2 -7
  72. package/ui/dist/assets/{MeshPanel-GFPkWStS.js → MeshPanel-DjYZh3P3.js} +1 -1
  73. package/ui/dist/assets/{MissionCanvas-BR9tT-Vs.js → MissionCanvas-BvbSfN_4.js} +1 -1
  74. package/ui/dist/assets/{MissionChat-B_fuBUn5.js → MissionChat-Do8j0nvp.js} +1 -1
  75. package/ui/dist/assets/{MissionLibrary-C9fCMdpu.js → MissionLibrary-CTzkJFJ7.js} +1 -1
  76. package/ui/dist/assets/{MissionStart-Bb2fCB2u.js → MissionStart-_-qlVcRK.js} +1 -1
  77. package/ui/dist/assets/{Modal-9_l_CYE2.js → Modal-CNnSfYJm.js} +1 -1
  78. package/ui/dist/assets/{NvidiaPanel-CiB9Nlbq.js → NvidiaPanel-CLoX_gD2.js} +1 -1
  79. package/ui/dist/assets/{OrganismPanel-d6mPFcBq.js → OrganismPanel-DBy9J7Vl.js} +1 -1
  80. package/ui/dist/assets/{OverviewPanel-DF7eBJCF.js → OverviewPanel-B7JFNH2w.js} +1 -1
  81. package/ui/dist/assets/PageHeader-CwcMp_4A.js +1 -0
  82. package/ui/dist/assets/{PersonaProfilesPanel-qAgZyu1B.js → PersonaProfilesPanel-CmZhQC8H.js} +1 -1
  83. package/ui/dist/assets/{PersonasPanel-CxDpp_3j.js → PersonasPanel-DSP0tTKz.js} +1 -1
  84. package/ui/dist/assets/{PhoneDeskPanel-CLp3E_Ry.js → PhoneDeskPanel-DZSs7aPr.js} +1 -1
  85. package/ui/dist/assets/{RecipesPanel-DqMMQnyc.js → RecipesPanel-BW0hW2sW.js} +1 -1
  86. package/ui/dist/assets/{SecurityPanel-BQ3-aMmO.js → SecurityPanel-_Saqrvw7.js} +1 -1
  87. package/ui/dist/assets/{SelfImprovePanel-C-ylXP-k.js → SelfImprovePanel-D5s-1XCU.js} +1 -1
  88. package/ui/dist/assets/{SelfProposalsPanel-d5W-0A3P.js → SelfProposalsPanel-D24kB0uM.js} +2 -2
  89. package/ui/dist/assets/{SessionsPanel-DzbNc8iW.js → SessionsPanel-BCxsCKwr.js} +1 -1
  90. package/ui/dist/assets/{SessionsTab-CuRh8SAw.js → SessionsTab-C5fvnjtl.js} +1 -1
  91. package/ui/dist/assets/{SettingsPanel-C1FbNM3W.js → SettingsPanel-B7jrFmeR.js} +1 -1
  92. package/ui/dist/assets/SettingsView-CQMHjpN8.js +2 -0
  93. package/ui/dist/assets/{SkeletonLoader-CrZUFaIM.js → SkeletonLoader-C42HbL9c.js} +1 -1
  94. package/ui/dist/assets/{SkillsPanel-eyCYqSuP.js → SkillsPanel-DYG8avbV.js} +1 -1
  95. package/ui/dist/assets/{SomaView-CvHD2r-j.js → SomaView-8Rwvw2sJ.js} +1 -1
  96. package/ui/dist/assets/{StatCard-_MlD8k-5.js → StatCard-vp0doZoE.js} +1 -1
  97. package/ui/dist/assets/{StatusBadge-MIQ4EfQR.js → StatusBadge-C4dl4Z7r.js} +1 -1
  98. package/ui/dist/assets/{Tabs-DkooY-W7.js → Tabs-B3hK5PRj.js} +1 -1
  99. package/ui/dist/assets/{TeamsPanel-fa--osWi.js → TeamsPanel-Bgc-EYSL.js} +1 -1
  100. package/ui/dist/assets/{TelemetryPanel-BEEWcoNE.js → TelemetryPanel-DexYjpd5.js} +1 -1
  101. package/ui/dist/assets/{TitanCanvas-LWyPGpf5.js → TitanCanvas-Da6TxxdJ.js} +52 -27
  102. package/ui/dist/assets/{ToolsView-UCDMsvb1.js → ToolsView-DkP9NfCj.js} +2 -2
  103. package/ui/dist/assets/{Tooltip-DrpHNalN.js → Tooltip-Chg08x7x.js} +1 -1
  104. package/ui/dist/assets/{TraceViewer-XsmYbc0e.js → TraceViewer-CojtXASo.js} +1 -1
  105. package/ui/dist/assets/{TrainingPanel-CmJXLn4n.js → TrainingPanel-tgn1BmiH.js} +1 -1
  106. package/ui/dist/assets/{VoiceOverlay-D2N-c76K.js → VoiceOverlay-D_jfyVe9.js} +1 -1
  107. package/ui/dist/assets/{VramPanel-h6zjNx-6.js → VramPanel-DXrdQK3J.js} +1 -1
  108. package/ui/dist/assets/{WatchView-DDNt13KH.js → WatchView-BitQHsCy.js} +1 -1
  109. package/ui/dist/assets/{WorkTab-CLXkjuee.js → WorkTab-6hdXBR7d.js} +1 -1
  110. package/ui/dist/assets/{WorkflowsPanel-BYtLGQVm.js → WorkflowsPanel-BlB2iBik.js} +1 -1
  111. package/ui/dist/assets/{archive-BSupLPZM.js → archive-aaQ0bgj_.js} +1 -1
  112. package/ui/dist/assets/{arrow-left-BaVVZjqf.js → arrow-left-xxx_FceU.js} +1 -1
  113. package/ui/dist/assets/{book-open-CZxMkLs8.js → book-open-B00IpKZA.js} +1 -1
  114. package/ui/dist/assets/{bot-Cv-edYov.js → bot-C4CRICZX.js} +1 -1
  115. package/ui/dist/assets/{chart-column-BSVdQ9RP.js → chart-column-lnilxGq2.js} +1 -1
  116. package/ui/dist/assets/{check-DbgTEg8O.js → check-BJMHM0tu.js} +1 -1
  117. package/ui/dist/assets/{chevron-right-DfToq0aQ.js → chevron-right-CA8HOEP4.js} +1 -1
  118. package/ui/dist/assets/{chevron-up-DMS2Tjip.js → chevron-up-n_3KVmjQ.js} +1 -1
  119. package/ui/dist/assets/{circle-check-big-BBQqeCVt.js → circle-check-big-hiNdH5H3.js} +1 -1
  120. package/ui/dist/assets/{circle-stop-CZNS3Uri.js → circle-stop-BlIwj_3n.js} +1 -1
  121. package/ui/dist/assets/{clipboard-list-CzMXlUCb.js → clipboard-list-BnOtwHQm.js} +1 -1
  122. package/ui/dist/assets/{clock-BvWNugZo.js → clock-BFgCJnqQ.js} +1 -1
  123. package/ui/dist/assets/{dollar-sign-pghzkByE.js → dollar-sign-CBBudQd7.js} +1 -1
  124. package/ui/dist/assets/{download-CupMD2Qi.js → download-C-DdF4cx.js} +1 -1
  125. package/ui/dist/assets/{external-link-8Pnd2MvS.js → external-link-CPAx2HBG.js} +1 -1
  126. package/ui/dist/assets/{file-text-rkojc4Uq.js → file-text-CyC_OxlA.js} +1 -1
  127. package/ui/dist/assets/{flask-conical-BtbE3rIA.js → flask-conical-BKbKUYhz.js} +1 -1
  128. package/ui/dist/assets/{folder-65U1Euur.js → folder-7bWz46dM.js} +1 -1
  129. package/ui/dist/assets/{funnel-D9FpWHn9.js → funnel-C_bR-Dz5.js} +1 -1
  130. package/ui/dist/assets/{git-branch-D6YV_OC1.js → git-branch-DGWdkudk.js} +1 -1
  131. package/ui/dist/assets/{index-BslUQuVl.js → index-CgHHe41p.js} +19 -19
  132. package/ui/dist/assets/index-CtD9JOx2.css +1 -0
  133. package/ui/dist/assets/{layers-rc37Q5yX.js → layers-3BMDaZuk.js} +1 -1
  134. package/ui/dist/assets/{legacy-BydeSW77.js → legacy-VWR8oDEy.js} +1 -1
  135. package/ui/dist/assets/{lightbulb-BEx7BdxD.js → lightbulb-CPhcUxli.js} +1 -1
  136. package/ui/dist/assets/link-CfLpUR24.js +6 -0
  137. package/ui/dist/assets/{list-todo-6N1AZe4i.js → list-todo-DgAmn8ot.js} +1 -1
  138. package/ui/dist/assets/{message-square-BEGY8pHF.js → message-square-WJp1dTaM.js} +1 -1
  139. package/ui/dist/assets/{mic-CGj6cLoV.js → mic-DjXDp1Js.js} +1 -1
  140. package/ui/dist/assets/{missions-BohoEPZo.js → missions-CwDL2FHE.js} +1 -1
  141. package/ui/dist/assets/{network-DxIkmFJR.js → network-C_MOo5My.js} +1 -1
  142. package/ui/dist/assets/{pause-CxvyFedA.js → pause-CovS6Xwq.js} +1 -1
  143. package/ui/dist/assets/{pencil-D5LooNFk.js → pencil-C6SVDEUL.js} +1 -1
  144. package/ui/dist/assets/{play-6W8amqUG.js → play-D3Nbm1Cz.js} +1 -1
  145. package/ui/dist/assets/{plug-C3Ecy-Ji.js → plug-Dpu9RRBi.js} +1 -1
  146. package/ui/dist/assets/{plus-BtmCDNeU.js → plus-CJKkM9fM.js} +1 -1
  147. package/ui/dist/assets/{proxy-BD29vUSb.js → proxy-CaK_YXZW.js} +1 -1
  148. package/ui/dist/assets/{radio-Bl9Tibea.js → radio-BTFO9FV9.js} +1 -1
  149. package/ui/dist/assets/{refresh-cw-BHphkMjv.js → refresh-cw-_C-4Cd_3.js} +1 -1
  150. package/ui/dist/assets/{rotate-ccw-DQzGCkVc.js → rotate-ccw-DWyVAH19.js} +1 -1
  151. package/ui/dist/assets/{save-Bk90yLic.js → save-B02XWwgN.js} +1 -1
  152. package/ui/dist/assets/{search-DxM6zcDJ.js → search-CHteSk-9.js} +1 -1
  153. package/ui/dist/assets/{send-ChZ5Hsne.js → send-DkMQeZAz.js} +1 -1
  154. package/ui/dist/assets/{server-CSOB40Ah.js → server-CvEvPDpX.js} +1 -1
  155. package/ui/dist/assets/{shield-check-uMK1alGs.js → shield-check-DQeYCvwF.js} +1 -1
  156. package/ui/dist/assets/{terminal-lIpm0q0K.js → terminal-BVErXh5C.js} +1 -1
  157. package/ui/dist/assets/{test-tube-DuTInDo7.js → test-tube-JSgqEqJs.js} +1 -1
  158. package/ui/dist/assets/{toggle-right-j4jgj1NQ.js → toggle-right-B3Qz7cQt.js} +1 -1
  159. package/ui/dist/assets/{trash-2-2Qmp8Fyr.js → trash-2-kiHv5iAF.js} +1 -1
  160. package/ui/dist/assets/{trending-up-BydxQces.js → trending-up-xhvUQXWt.js} +1 -1
  161. package/ui/dist/assets/{trophy-B8Fq83wO.js → trophy-G3zNxlQS.js} +1 -1
  162. package/ui/dist/assets/{volume-2-B6qThcBF.js → volume-2-CELMZXsT.js} +1 -1
  163. package/ui/dist/assets/{wifi-off-BX5XYuML.js → wifi-off-DKKYhVWL.js} +1 -1
  164. package/ui/dist/index.html +2 -2
  165. package/ui/dist/sw.js +1 -1
  166. package/ui/dist/assets/CPLayout-DlpdPzBu.js +0 -2
  167. package/ui/dist/assets/EmptyState-DtSIPEVv.js +0 -1
  168. package/ui/dist/assets/InfraView-CYH3ieie.js +0 -2
  169. package/ui/dist/assets/IntelligenceView-DqwlFo91.js +0 -2
  170. package/ui/dist/assets/LearningPanel-DHQSZZGb.js +0 -1
  171. package/ui/dist/assets/MemoryGraphPanel-BBxgK2Lo.js +0 -16
  172. package/ui/dist/assets/PageHeader-BQEb_uAl.js +0 -1
  173. package/ui/dist/assets/SettingsView-ZTklN8Q3.js +0 -2
  174. package/ui/dist/assets/index-DmgXt1oB.css +0 -1
@@ -100,10 +100,13 @@ Licensed by NVIDIA Corporation under the NVIDIA Open Model License.
100
100
 
101
101
  | Project | License | URL | Influence |
102
102
  |---------|---------|-----|-----------|
103
+ | Hermes Agent | MIT | https://github.com/NousResearch/hermes-agent | Learning curator and background review patterns adapted in `src/agent/learningCurator.ts` |
103
104
  | OpenClaw | MIT | https://github.com/openclaw/openclaw | Architecture, CLI design, workspace patterns |
104
105
  | Graphiti | Apache-2.0 | https://github.com/getzep/graphiti | Temporal knowledge graph concepts |
105
106
  | Skyvern | AGPL-3.0 | https://github.com/Skyvern-AI/skyvern | Browser automation patterns (separate service, not bundled) |
106
107
 
108
+ Hermes Agent copyright (c) 2025 Nous Research. MIT License.
109
+
107
110
  ## Persona Definitions
108
111
 
109
112
  | Project | License | URL | Usage |
@@ -29,6 +29,7 @@ import { queueWakeup } from "./agentWakeup.js";
29
29
  import { createIssue, requestHireApproval } from "./commandPost.js";
30
30
  import { spawnSubAgent, SUB_AGENT_TEMPLATES } from "./subAgent.js";
31
31
  import { logTrajectory } from "./trajectoryLogger.js";
32
+ import { processTrajectoryForLearningReview, renderLearningPatternGuidance } from "./learningCurator.js";
32
33
  import { processTrajectoryForSkills, getSkillGuidance } from "./autoSkillGen.js";
33
34
  import { getAgent } from "./multiAgent.js";
34
35
  import { isDangerous } from "../utils/safety.js";
@@ -550,6 +551,7 @@ ${toolsMd}` : "",
550
551
  const preferenceHint = userMessage ? getLearnedPreferenceHints(classifyTaskType(userMessage)) : null;
551
552
  const wisdomHint = userMessage ? getWisdomHints(classifyTaskType(userMessage)) : null;
552
553
  const skillGuidance = userMessage ? getSkillGuidance(userMessage) : null;
554
+ const learningGuidance = userMessage ? renderLearningPatternGuidance(classifyTaskType(userMessage)) : null;
553
555
  const teachingContext = getTeachingContext();
554
556
  const personalContext = buildPersonalContext();
555
557
  const graphContext = userMessage ? await getGraphContext(userMessage) : "";
@@ -593,12 +595,13 @@ ${graphContext}` : "";
593
595
  Local: ${local} (${tz}, UTC${offsetStr})
594
596
  UTC: ${utc}`;
595
597
  })();
596
- const learningBlock = mode === "full" && (learningContext || strategyHint || hindsightHint || preferenceHint || wisdomHint || skillGuidance) ? `## Continuous Learning${learningContext ? "\n" + learningContext : ""}${strategyHint ? `
598
+ const learningBlock = mode === "full" && (learningContext || strategyHint || hindsightHint || preferenceHint || wisdomHint || skillGuidance || learningGuidance) ? `## Continuous Learning${learningContext ? "\n" + learningContext : ""}${strategyHint ? `
597
599
  **Strategy hint**: ${strategyHint}` : ""}${hindsightHint ? `
598
600
  **Cross-session memory**: ${hindsightHint}` : ""}${preferenceHint ? `
599
601
  **Learned preferences**: ${preferenceHint}` : ""}${wisdomHint ? `
600
602
  **Soul wisdom**: ${wisdomHint}` : ""}${skillGuidance ? `
601
- **Auto-skill**: ${skillGuidance}` : ""}` : "";
603
+ **Auto-skill**: ${skillGuidance}` : ""}${learningGuidance ? `
604
+ **Curator**: ${learningGuidance}` : ""}` : "";
602
605
  const frustrationBlock = userMessage && detectFrustration(userMessage) ? "\u26A0\uFE0F **User seems frustrated.** Be extra direct: skip explanations, execute with tools immediately. No apologies, no hedging." : "";
603
606
  const teachingBlock = teachingContext ? `## Adaptive Teaching
604
607
  ${teachingContext}` : "";
@@ -1570,6 +1573,7 @@ Synthesize these results into a coherent response for the user.`
1570
1573
  };
1571
1574
  logTrajectory(trajectory);
1572
1575
  processTrajectoryForSkills(trajectory);
1576
+ processTrajectoryForLearningReview(trajectory);
1573
1577
  trace.setModel(modelUsed);
1574
1578
  trace.setRounds(loopResult.toolCallDetails.length);
1575
1579
  trace.setTokens(totalPromptTokens, totalCompletionTokens);