@roackb2/heddle 1.5.0 → 1.7.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 (462) hide show
  1. package/README.md +5 -0
  2. package/dist/examples/conversation-engine.js +10 -10
  3. package/dist/examples/conversation-engine.js.map +1 -1
  4. package/dist/examples/heartbeat-scheduler.js +2 -2
  5. package/dist/examples/heartbeat-scheduler.js.map +1 -1
  6. package/dist/examples/heartbeat.js +2 -2
  7. package/dist/examples/heartbeat.js.map +1 -1
  8. package/dist/examples/programmatic-loop.js +2 -2
  9. package/dist/examples/programmatic-loop.js.map +1 -1
  10. package/dist/examples/repo-investigator.js +4 -4
  11. package/dist/examples/repo-investigator.js.map +1 -1
  12. package/dist/src/cli/ask.d.ts.map +1 -1
  13. package/dist/src/cli/ask.js +5 -5
  14. package/dist/src/cli/ask.js.map +1 -1
  15. package/dist/src/cli/auth.d.ts +14 -7
  16. package/dist/src/cli/auth.d.ts.map +1 -1
  17. package/dist/src/cli/auth.js +75 -70
  18. package/dist/src/cli/auth.js.map +1 -1
  19. package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts +1 -1
  20. package/dist/src/cli/chat/adapters/conversation-activity-adapter.d.ts.map +1 -1
  21. package/dist/src/cli/chat/adapters/conversation-activity-adapter.js +29 -19
  22. package/dist/src/cli/chat/adapters/conversation-activity-adapter.js.map +1 -1
  23. package/dist/src/cli/chat/adapters/slash-command-context.js +4 -4
  24. package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -1
  25. package/dist/src/cli/chat/commands/debug-snapshot-command.js +2 -2
  26. package/dist/src/cli/chat/commands/debug-snapshot-command.js.map +1 -1
  27. package/dist/src/cli/chat/components/ModelPickerPanel.d.ts +1 -1
  28. package/dist/src/cli/chat/components/ModelPickerPanel.js +1 -1
  29. package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts +1 -1
  30. package/dist/src/cli/chat/debug/tui-debug-snapshot.js +1 -1
  31. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js +3 -3
  32. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js.map +1 -1
  33. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js +2 -2
  34. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js.map +1 -1
  35. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts.map +1 -1
  36. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js +3 -3
  37. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js.map +1 -1
  38. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.d.ts.map +1 -1
  39. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js +16 -6
  40. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js.map +1 -1
  41. package/dist/src/cli/chat/hooks/controllers/useChatAppController.d.ts.map +1 -1
  42. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js +9 -10
  43. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js.map +1 -1
  44. package/dist/src/cli/chat/hooks/controllers/usePromptSubmissionController.d.ts +1 -1
  45. package/dist/src/cli/chat/hooks/useChatPickers.d.ts +1 -1
  46. package/dist/src/cli/chat/hooks/useChatPickers.d.ts.map +1 -1
  47. package/dist/src/cli/chat/hooks/useChatPickers.js +7 -8
  48. package/dist/src/cli/chat/hooks/useChatPickers.js.map +1 -1
  49. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -1
  50. package/dist/src/cli/chat/hooks/useChatStatusSummary.js +3 -4
  51. package/dist/src/cli/chat/hooks/useChatStatusSummary.js.map +1 -1
  52. package/dist/src/cli/chat/state/local-commands.d.ts +1 -1
  53. package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
  54. package/dist/src/cli/chat/state/local-commands.js +6 -6
  55. package/dist/src/cli/chat/state/local-commands.js.map +1 -1
  56. package/dist/src/cli/chat/utils/format.d.ts +0 -1
  57. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  58. package/dist/src/cli/chat/utils/format.js +0 -1
  59. package/dist/src/cli/chat/utils/format.js.map +1 -1
  60. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  61. package/dist/src/cli/chat/utils/runtime.js +6 -6
  62. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  63. package/dist/src/cli/main.js +32 -27
  64. package/dist/src/cli/main.js.map +1 -1
  65. package/dist/src/cli/remote/control-plane-client.d.ts +3 -3
  66. package/dist/src/core/agent/budget/index.d.ts +2 -0
  67. package/dist/src/core/agent/budget/index.d.ts.map +1 -0
  68. package/dist/src/core/agent/budget/index.js +2 -0
  69. package/dist/src/core/agent/budget/index.js.map +1 -0
  70. package/dist/src/core/agent/budget/step-budget.d.ts +12 -0
  71. package/dist/src/core/agent/budget/step-budget.d.ts.map +1 -0
  72. package/dist/src/core/agent/budget/step-budget.js +21 -0
  73. package/dist/src/core/agent/budget/step-budget.js.map +1 -0
  74. package/dist/src/core/agent/context/run-context-builder.js +6 -6
  75. package/dist/src/core/agent/context/run-context-builder.js.map +1 -1
  76. package/dist/src/core/agent/tools/tool-dispatcher.d.ts +3 -4
  77. package/dist/src/core/agent/tools/tool-dispatcher.d.ts.map +1 -1
  78. package/dist/src/core/agent/tools/tool-dispatcher.js +2 -2
  79. package/dist/src/core/agent/tools/tool-dispatcher.js.map +1 -1
  80. package/dist/src/core/agent/types.d.ts +5 -5
  81. package/dist/src/core/agent/types.d.ts.map +1 -1
  82. package/dist/src/core/approvals/remembered-rules/schemas.d.ts +3 -3
  83. package/dist/src/core/auth/index.d.ts +4 -0
  84. package/dist/src/core/auth/index.d.ts.map +1 -0
  85. package/dist/src/core/auth/index.js +3 -0
  86. package/dist/src/core/auth/index.js.map +1 -0
  87. package/dist/src/core/auth/openai-oauth.d.ts +41 -61
  88. package/dist/src/core/auth/openai-oauth.d.ts.map +1 -1
  89. package/dist/src/core/auth/openai-oauth.js +264 -258
  90. package/dist/src/core/auth/openai-oauth.js.map +1 -1
  91. package/dist/src/core/auth/provider-credentials.d.ts +23 -51
  92. package/dist/src/core/auth/provider-credentials.d.ts.map +1 -1
  93. package/dist/src/core/auth/provider-credentials.js +69 -134
  94. package/dist/src/core/auth/provider-credentials.js.map +1 -1
  95. package/dist/src/core/auth/schemas.d.ts +54 -0
  96. package/dist/src/core/auth/schemas.d.ts.map +1 -0
  97. package/dist/src/core/auth/schemas.js +63 -0
  98. package/dist/src/core/auth/schemas.js.map +1 -0
  99. package/dist/src/core/auth/types.d.ts +80 -0
  100. package/dist/src/core/auth/types.d.ts.map +1 -0
  101. package/dist/src/core/auth/types.js +2 -0
  102. package/dist/src/core/auth/types.js.map +1 -0
  103. package/dist/src/core/chat/engine/compaction/service.js +2 -2
  104. package/dist/src/core/chat/engine/compaction/service.js.map +1 -1
  105. package/dist/src/core/chat/engine/compaction/summarizer/service.d.ts.map +1 -1
  106. package/dist/src/core/chat/engine/compaction/summarizer/service.js +9 -6
  107. package/dist/src/core/chat/engine/compaction/summarizer/service.js.map +1 -1
  108. package/dist/src/core/chat/engine/compaction/transcript-renderer.js +2 -2
  109. package/dist/src/core/chat/engine/compaction/transcript-renderer.js.map +1 -1
  110. package/dist/src/core/chat/engine/config.d.ts +2 -2
  111. package/dist/src/core/chat/engine/config.d.ts.map +1 -1
  112. package/dist/src/core/chat/engine/sessions/preferences/service.js +3 -3
  113. package/dist/src/core/chat/engine/sessions/preferences/service.js.map +1 -1
  114. package/dist/src/core/chat/engine/sessions/records/records.js +3 -3
  115. package/dist/src/core/chat/engine/sessions/records/records.js.map +1 -1
  116. package/dist/src/core/chat/engine/sessions/records/types.d.ts +2 -2
  117. package/dist/src/core/chat/engine/sessions/records/types.d.ts.map +1 -1
  118. package/dist/src/core/chat/engine/turns/host/host-normalizer.d.ts.map +1 -1
  119. package/dist/src/core/chat/engine/turns/host/host-normalizer.js +4 -4
  120. package/dist/src/core/chat/engine/turns/host/host-normalizer.js.map +1 -1
  121. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.d.ts.map +1 -1
  122. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js +11 -7
  123. package/dist/src/core/chat/engine/turns/memory/turn-memory-maintenance.js.map +1 -1
  124. package/dist/src/core/chat/engine/turns/persistence/types.d.ts +3 -3
  125. package/dist/src/core/chat/engine/turns/persistence/types.d.ts.map +1 -1
  126. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.d.ts.map +1 -1
  127. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js +12 -10
  128. package/dist/src/core/chat/engine/turns/runtime/runtime-resolver.js.map +1 -1
  129. package/dist/src/core/chat/engine/turns/types.d.ts +2 -3
  130. package/dist/src/core/chat/engine/turns/types.d.ts.map +1 -1
  131. package/dist/src/core/chat/engine/types.d.ts +4 -5
  132. package/dist/src/core/chat/engine/types.d.ts.map +1 -1
  133. package/dist/src/core/commands/slash/autocomplete.d.ts +9 -4
  134. package/dist/src/core/commands/slash/autocomplete.d.ts.map +1 -1
  135. package/dist/src/core/commands/slash/autocomplete.js +53 -48
  136. package/dist/src/core/commands/slash/autocomplete.js.map +1 -1
  137. package/dist/src/core/commands/slash/modules/auth/auth-commands.js +4 -4
  138. package/dist/src/core/commands/slash/modules/auth/auth-commands.js.map +1 -1
  139. package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js +2 -2
  140. package/dist/src/core/commands/slash/modules/compaction/compaction-commands.js.map +1 -1
  141. package/dist/src/core/commands/slash/modules/drift/drift-commands.js +4 -4
  142. package/dist/src/core/commands/slash/modules/drift/drift-commands.js.map +1 -1
  143. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js +3 -3
  144. package/dist/src/core/commands/slash/modules/heartbeat/heartbeat-commands.js.map +1 -1
  145. package/dist/src/core/commands/slash/modules/model/model-commands.d.ts.map +1 -1
  146. package/dist/src/core/commands/slash/modules/model/model-commands.js +14 -15
  147. package/dist/src/core/commands/slash/modules/model/model-commands.js.map +1 -1
  148. package/dist/src/core/commands/slash/modules/session/session-commands.js +6 -6
  149. package/dist/src/core/commands/slash/modules/session/session-commands.js.map +1 -1
  150. package/dist/src/core/commands/slash/parser.d.ts +10 -5
  151. package/dist/src/core/commands/slash/parser.d.ts.map +1 -1
  152. package/dist/src/core/commands/slash/parser.js +42 -37
  153. package/dist/src/core/commands/slash/parser.js.map +1 -1
  154. package/dist/src/core/commands/slash/registry.d.ts +12 -3
  155. package/dist/src/core/commands/slash/registry.d.ts.map +1 -1
  156. package/dist/src/core/commands/slash/registry.js +50 -45
  157. package/dist/src/core/commands/slash/registry.js.map +1 -1
  158. package/dist/src/core/heartbeat/wake/service.d.ts.map +1 -1
  159. package/dist/src/core/heartbeat/wake/service.js +2 -3
  160. package/dist/src/core/heartbeat/wake/service.js.map +1 -1
  161. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts +21 -0
  162. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.d.ts.map +1 -0
  163. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js +66 -0
  164. package/dist/src/core/llm/adapters/anthropic/anthropic-adapter.js.map +1 -0
  165. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts +16 -0
  166. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.d.ts.map +1 -0
  167. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js +64 -0
  168. package/dist/src/core/llm/adapters/anthropic/anthropic-codec.js.map +1 -0
  169. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts +17 -0
  170. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.d.ts.map +1 -0
  171. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js +20 -0
  172. package/dist/src/core/llm/adapters/anthropic/anthropic-provider-adapter.js.map +1 -0
  173. package/dist/src/core/llm/adapters/anthropic/index.d.ts +4 -0
  174. package/dist/src/core/llm/adapters/anthropic/index.d.ts.map +1 -0
  175. package/dist/src/core/llm/adapters/anthropic/index.js +3 -0
  176. package/dist/src/core/llm/adapters/anthropic/index.js.map +1 -0
  177. package/dist/src/core/llm/adapters/openai/index.d.ts +4 -0
  178. package/dist/src/core/llm/adapters/openai/index.d.ts.map +1 -0
  179. package/dist/src/core/llm/adapters/openai/index.js +3 -0
  180. package/dist/src/core/llm/adapters/openai/index.js.map +1 -0
  181. package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts +53 -0
  182. package/dist/src/core/llm/adapters/openai/openai-adapter.d.ts.map +1 -0
  183. package/dist/src/core/llm/adapters/openai/openai-adapter.js +266 -0
  184. package/dist/src/core/llm/adapters/openai/openai-adapter.js.map +1 -0
  185. package/dist/src/core/llm/adapters/openai/openai-codec.d.ts +41 -0
  186. package/dist/src/core/llm/adapters/openai/openai-codec.d.ts.map +1 -0
  187. package/dist/src/core/llm/adapters/openai/openai-codec.js +169 -0
  188. package/dist/src/core/llm/adapters/openai/openai-codec.js.map +1 -0
  189. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts +17 -0
  190. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.d.ts.map +1 -0
  191. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js +20 -0
  192. package/dist/src/core/llm/adapters/openai/openai-provider-adapter.js.map +1 -0
  193. package/dist/src/core/llm/index.d.ts +9 -0
  194. package/dist/src/core/llm/index.d.ts.map +1 -0
  195. package/dist/src/core/llm/index.js +5 -0
  196. package/dist/src/core/llm/index.js.map +1 -0
  197. package/dist/src/core/llm/models/index.d.ts +5 -0
  198. package/dist/src/core/llm/models/index.d.ts.map +1 -0
  199. package/dist/src/core/llm/models/index.js +3 -0
  200. package/dist/src/core/llm/models/index.js.map +1 -0
  201. package/dist/src/core/llm/models/model-catalog.d.ts +23 -0
  202. package/dist/src/core/llm/models/model-catalog.d.ts.map +1 -0
  203. package/dist/src/core/llm/models/model-catalog.js +132 -0
  204. package/dist/src/core/llm/models/model-catalog.js.map +1 -0
  205. package/dist/src/core/llm/models/model-policy-service.d.ts +70 -0
  206. package/dist/src/core/llm/models/model-policy-service.d.ts.map +1 -0
  207. package/dist/src/core/llm/models/model-policy-service.js +137 -0
  208. package/dist/src/core/llm/models/model-policy-service.js.map +1 -0
  209. package/dist/src/core/llm/registry/builtin-llm-providers.d.ts +5 -0
  210. package/dist/src/core/llm/registry/builtin-llm-providers.d.ts.map +1 -0
  211. package/dist/src/core/llm/registry/builtin-llm-providers.js +16 -0
  212. package/dist/src/core/llm/registry/builtin-llm-providers.js.map +1 -0
  213. package/dist/src/core/llm/registry/index.d.ts +5 -0
  214. package/dist/src/core/llm/registry/index.d.ts.map +1 -0
  215. package/dist/src/core/llm/registry/index.js +4 -0
  216. package/dist/src/core/llm/registry/index.js.map +1 -0
  217. package/dist/src/core/llm/registry/llm-provider-registry.d.ts +17 -0
  218. package/dist/src/core/llm/registry/llm-provider-registry.d.ts.map +1 -0
  219. package/dist/src/core/llm/registry/llm-provider-registry.js +51 -0
  220. package/dist/src/core/llm/registry/llm-provider-registry.js.map +1 -0
  221. package/dist/src/core/llm/registry/provider-inference.d.ts +18 -0
  222. package/dist/src/core/llm/registry/provider-inference.d.ts.map +1 -0
  223. package/dist/src/core/llm/registry/provider-inference.js +41 -0
  224. package/dist/src/core/llm/registry/provider-inference.js.map +1 -0
  225. package/dist/src/core/llm/registry/types.d.ts +16 -0
  226. package/dist/src/core/llm/registry/types.d.ts.map +1 -0
  227. package/dist/src/core/llm/registry/types.js +2 -0
  228. package/dist/src/core/llm/registry/types.js.map +1 -0
  229. package/dist/src/core/llm/service.d.ts +15 -0
  230. package/dist/src/core/llm/service.d.ts.map +1 -0
  231. package/dist/src/core/llm/service.js +44 -0
  232. package/dist/src/core/llm/service.js.map +1 -0
  233. package/dist/src/core/llm/types.d.ts +18 -1
  234. package/dist/src/core/llm/types.d.ts.map +1 -1
  235. package/dist/src/core/memory/catalog.d.ts +22 -40
  236. package/dist/src/core/memory/catalog.d.ts.map +1 -1
  237. package/dist/src/core/memory/catalog.js +166 -155
  238. package/dist/src/core/memory/catalog.js.map +1 -1
  239. package/dist/src/core/memory/index.d.ts +14 -0
  240. package/dist/src/core/memory/index.d.ts.map +1 -0
  241. package/dist/src/core/memory/index.js +13 -0
  242. package/dist/src/core/memory/index.js.map +1 -0
  243. package/dist/src/core/memory/maintainer-prompt.d.ts +14 -0
  244. package/dist/src/core/memory/maintainer-prompt.d.ts.map +1 -0
  245. package/dist/src/core/memory/maintainer-prompt.js +58 -0
  246. package/dist/src/core/memory/maintainer-prompt.js.map +1 -0
  247. package/dist/src/core/memory/maintainer.d.ts +20 -44
  248. package/dist/src/core/memory/maintainer.d.ts.map +1 -1
  249. package/dist/src/core/memory/maintainer.js +124 -184
  250. package/dist/src/core/memory/maintainer.js.map +1 -1
  251. package/dist/src/core/memory/maintenance-integration.d.ts +22 -19
  252. package/dist/src/core/memory/maintenance-integration.d.ts.map +1 -1
  253. package/dist/src/core/memory/maintenance-integration.js +158 -163
  254. package/dist/src/core/memory/maintenance-integration.js.map +1 -1
  255. package/dist/src/core/memory/maintenance-repository.d.ts +27 -0
  256. package/dist/src/core/memory/maintenance-repository.d.ts.map +1 -0
  257. package/dist/src/core/memory/maintenance-repository.js +134 -0
  258. package/dist/src/core/memory/maintenance-repository.js.map +1 -0
  259. package/dist/src/core/memory/note-service.d.ts +23 -0
  260. package/dist/src/core/memory/note-service.d.ts.map +1 -0
  261. package/dist/src/core/memory/note-service.js +165 -0
  262. package/dist/src/core/memory/note-service.js.map +1 -0
  263. package/dist/src/core/memory/path-utils.d.ts +15 -0
  264. package/dist/src/core/memory/path-utils.d.ts.map +1 -0
  265. package/dist/src/core/memory/path-utils.js +31 -0
  266. package/dist/src/core/memory/path-utils.js.map +1 -0
  267. package/dist/src/core/memory/schemas.d.ts +116 -0
  268. package/dist/src/core/memory/schemas.d.ts.map +1 -0
  269. package/dist/src/core/memory/schemas.js +53 -0
  270. package/dist/src/core/memory/schemas.js.map +1 -0
  271. package/dist/src/core/memory/types.d.ts +149 -0
  272. package/dist/src/core/memory/types.d.ts.map +1 -0
  273. package/dist/src/core/memory/types.js +2 -0
  274. package/dist/src/core/memory/types.js.map +1 -0
  275. package/dist/src/core/memory/validation.d.ts +20 -38
  276. package/dist/src/core/memory/validation.d.ts.map +1 -1
  277. package/dist/src/core/memory/validation.js +98 -83
  278. package/dist/src/core/memory/validation.js.map +1 -1
  279. package/dist/src/core/memory/visibility.d.ts +19 -41
  280. package/dist/src/core/memory/visibility.d.ts.map +1 -1
  281. package/dist/src/core/memory/visibility.js +53 -153
  282. package/dist/src/core/memory/visibility.js.map +1 -1
  283. package/dist/src/core/observability/activity/conversation-activity-projector.d.ts +24 -0
  284. package/dist/src/core/observability/activity/conversation-activity-projector.d.ts.map +1 -0
  285. package/dist/src/core/observability/activity/conversation-activity-projector.js +146 -0
  286. package/dist/src/core/observability/activity/conversation-activity-projector.js.map +1 -0
  287. package/dist/src/core/observability/activity/index.d.ts +4 -0
  288. package/dist/src/core/observability/activity/index.d.ts.map +1 -0
  289. package/dist/src/core/observability/activity/index.js +3 -0
  290. package/dist/src/core/observability/activity/index.js.map +1 -0
  291. package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts +15 -0
  292. package/dist/src/core/observability/activity/tool-activity-summarizer.d.ts.map +1 -0
  293. package/dist/src/core/observability/activity/tool-activity-summarizer.js +92 -0
  294. package/dist/src/core/observability/activity/tool-activity-summarizer.js.map +1 -0
  295. package/dist/src/core/observability/activity/types.d.ts +87 -0
  296. package/dist/src/core/observability/activity/types.d.ts.map +1 -0
  297. package/dist/src/core/observability/activity/types.js +2 -0
  298. package/dist/src/core/observability/activity/types.js.map +1 -0
  299. package/dist/src/core/observability/index.d.ts +6 -0
  300. package/dist/src/core/observability/index.d.ts.map +1 -0
  301. package/dist/src/core/observability/index.js +4 -0
  302. package/dist/src/core/observability/index.js.map +1 -0
  303. package/dist/src/core/observability/semantics/index.d.ts +2 -0
  304. package/dist/src/core/observability/semantics/index.d.ts.map +1 -0
  305. package/dist/src/core/observability/semantics/index.js +2 -0
  306. package/dist/src/core/observability/semantics/index.js.map +1 -0
  307. package/dist/src/core/observability/{semantic-conventions.d.ts → semantics/trace-semantics.d.ts} +1 -1
  308. package/dist/src/core/observability/semantics/trace-semantics.d.ts.map +1 -0
  309. package/dist/src/core/observability/{semantic-conventions.js → semantics/trace-semantics.js} +1 -1
  310. package/dist/src/core/observability/semantics/trace-semantics.js.map +1 -0
  311. package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts +3 -0
  312. package/dist/src/core/observability/summaries/default-trace-summarizers.d.ts.map +1 -0
  313. package/dist/src/core/observability/summaries/default-trace-summarizers.js +29 -0
  314. package/dist/src/core/observability/summaries/default-trace-summarizers.js.map +1 -0
  315. package/dist/src/core/observability/summaries/index.d.ts +4 -0
  316. package/dist/src/core/observability/summaries/index.d.ts.map +1 -0
  317. package/dist/src/core/observability/summaries/index.js +3 -0
  318. package/dist/src/core/observability/summaries/index.js.map +1 -0
  319. package/dist/src/core/observability/summaries/trace-summary-service.d.ts +17 -0
  320. package/dist/src/core/observability/summaries/trace-summary-service.d.ts.map +1 -0
  321. package/dist/src/core/observability/summaries/trace-summary-service.js +32 -0
  322. package/dist/src/core/observability/summaries/trace-summary-service.js.map +1 -0
  323. package/dist/src/core/observability/summaries/types.d.ts +15 -0
  324. package/dist/src/core/observability/summaries/types.d.ts.map +1 -0
  325. package/dist/src/core/observability/summaries/types.js +2 -0
  326. package/dist/src/core/observability/summaries/types.js.map +1 -0
  327. package/dist/src/core/review/index.d.ts +3 -0
  328. package/dist/src/core/review/index.d.ts.map +1 -0
  329. package/dist/src/core/review/index.js +2 -0
  330. package/dist/src/core/review/index.js.map +1 -0
  331. package/dist/src/core/review/service.d.ts +22 -0
  332. package/dist/src/core/review/service.d.ts.map +1 -0
  333. package/dist/src/core/review/service.js +143 -0
  334. package/dist/src/core/review/service.js.map +1 -0
  335. package/dist/src/core/review/{diff-domain.d.ts → types.d.ts} +1 -3
  336. package/dist/src/core/review/types.d.ts.map +1 -0
  337. package/dist/src/core/review/types.js +2 -0
  338. package/dist/src/core/review/types.js.map +1 -0
  339. package/dist/src/core/runtime/credentials/service.d.ts +1 -1
  340. package/dist/src/core/runtime/credentials/service.d.ts.map +1 -1
  341. package/dist/src/core/runtime/credentials/service.js +8 -6
  342. package/dist/src/core/runtime/credentials/service.js.map +1 -1
  343. package/dist/src/core/runtime/loop/service.d.ts.map +1 -1
  344. package/dist/src/core/runtime/loop/service.js +14 -6
  345. package/dist/src/core/runtime/loop/service.js.map +1 -1
  346. package/dist/src/core/runtime/tools/service.js +2 -2
  347. package/dist/src/core/runtime/tools/service.js.map +1 -1
  348. package/dist/src/core/tools/execute-tool.d.ts +5 -4
  349. package/dist/src/core/tools/execute-tool.d.ts.map +1 -1
  350. package/dist/src/core/tools/execute-tool.js +23 -25
  351. package/dist/src/core/tools/execute-tool.js.map +1 -1
  352. package/dist/src/core/tools/index.d.ts +5 -0
  353. package/dist/src/core/tools/index.d.ts.map +1 -0
  354. package/dist/src/core/tools/index.js +4 -0
  355. package/dist/src/core/tools/index.js.map +1 -0
  356. package/dist/src/core/tools/registry.d.ts +8 -7
  357. package/dist/src/core/tools/registry.d.ts.map +1 -1
  358. package/dist/src/core/tools/registry.js +18 -21
  359. package/dist/src/core/tools/registry.js.map +1 -1
  360. package/dist/src/core/tools/toolkit.d.ts +9 -4
  361. package/dist/src/core/tools/toolkit.d.ts.map +1 -1
  362. package/dist/src/core/tools/toolkit.js +21 -16
  363. package/dist/src/core/tools/toolkit.js.map +1 -1
  364. package/dist/src/core/tools/toolkits/external-context/view-image.d.ts.map +1 -1
  365. package/dist/src/core/tools/toolkits/external-context/view-image.js +15 -9
  366. package/dist/src/core/tools/toolkits/external-context/view-image.js.map +1 -1
  367. package/dist/src/core/tools/toolkits/external-context/web-search.d.ts.map +1 -1
  368. package/dist/src/core/tools/toolkits/external-context/web-search.js +15 -9
  369. package/dist/src/core/tools/toolkits/external-context/web-search.js.map +1 -1
  370. package/dist/src/core/tools/toolkits/knowledge/memory-notes.d.ts +1 -1
  371. package/dist/src/core/tools/toolkits/knowledge/memory-notes.d.ts.map +1 -1
  372. package/dist/src/core/tools/toolkits/knowledge/memory-notes.js +48 -238
  373. package/dist/src/core/tools/toolkits/knowledge/memory-notes.js.map +1 -1
  374. package/dist/src/core/tools/toolkits/knowledge/record-knowledge.d.ts.map +1 -1
  375. package/dist/src/core/tools/toolkits/knowledge/record-knowledge.js +75 -105
  376. package/dist/src/core/tools/toolkits/knowledge/record-knowledge.js.map +1 -1
  377. package/dist/src/core/trace/format.d.ts +9 -3
  378. package/dist/src/core/trace/format.d.ts.map +1 -1
  379. package/dist/src/core/trace/format.js +106 -107
  380. package/dist/src/core/trace/format.js.map +1 -1
  381. package/dist/src/core/trace/index.d.ts +4 -0
  382. package/dist/src/core/trace/index.d.ts.map +1 -0
  383. package/dist/src/core/trace/index.js +3 -0
  384. package/dist/src/core/trace/index.js.map +1 -0
  385. package/dist/src/core/trace/recorder.d.ts +10 -7
  386. package/dist/src/core/trace/recorder.d.ts.map +1 -1
  387. package/dist/src/core/trace/recorder.js +15 -17
  388. package/dist/src/core/trace/recorder.js.map +1 -1
  389. package/dist/src/core/trace/types.d.ts +7 -0
  390. package/dist/src/core/trace/types.d.ts.map +1 -0
  391. package/dist/src/core/trace/types.js +2 -0
  392. package/dist/src/core/trace/types.js.map +1 -0
  393. package/dist/src/index.d.ts +23 -28
  394. package/dist/src/index.d.ts.map +1 -1
  395. package/dist/src/index.js +15 -15
  396. package/dist/src/index.js.map +1 -1
  397. package/dist/src/server/features/control-plane/controllers/ask.d.ts.map +1 -1
  398. package/dist/src/server/features/control-plane/controllers/ask.js +10 -8
  399. package/dist/src/server/features/control-plane/controllers/ask.js.map +1 -1
  400. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js +5 -5
  401. package/dist/src/server/features/control-plane/controllers/chat-sessions-controller.js.map +1 -1
  402. package/dist/src/server/features/control-plane/controllers/chat-turn-review-presenter.js +3 -3
  403. package/dist/src/server/features/control-plane/controllers/chat-turn-review-presenter.js.map +1 -1
  404. package/dist/src/server/features/control-plane/controllers/memory.d.ts +2 -1
  405. package/dist/src/server/features/control-plane/controllers/memory.d.ts.map +1 -1
  406. package/dist/src/server/features/control-plane/controllers/memory.js +8 -7
  407. package/dist/src/server/features/control-plane/controllers/memory.js.map +1 -1
  408. package/dist/src/server/features/control-plane/controllers/workspace-diff.js +2 -2
  409. package/dist/src/server/features/control-plane/controllers/workspace-diff.js.map +1 -1
  410. package/dist/src/server/features/control-plane/router.d.ts +3 -3
  411. package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
  412. package/dist/src/server/features/control-plane/router.js +5 -6
  413. package/dist/src/server/features/control-plane/router.js.map +1 -1
  414. package/dist/src/server/features/control-plane/types.d.ts +2 -2
  415. package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
  416. package/dist/src/server/router.d.ts +3 -3
  417. package/dist/src/web/assets/{MonacoDiffViewer-F3AOHIps.js → MonacoDiffViewer-D_Fh9ndN.js} +1 -1
  418. package/dist/src/web/assets/index-B1wQ0pS4.js +87 -0
  419. package/dist/src/web/index.html +1 -1
  420. package/package.json +1 -1
  421. package/dist/src/core/llm/anthropic.d.ts +0 -7
  422. package/dist/src/core/llm/anthropic.d.ts.map +0 -1
  423. package/dist/src/core/llm/anthropic.js +0 -115
  424. package/dist/src/core/llm/anthropic.js.map +0 -1
  425. package/dist/src/core/llm/factory.d.ts +0 -14
  426. package/dist/src/core/llm/factory.d.ts.map +0 -1
  427. package/dist/src/core/llm/factory.js +0 -46
  428. package/dist/src/core/llm/factory.js.map +0 -1
  429. package/dist/src/core/llm/model-policy.d.ts +0 -63
  430. package/dist/src/core/llm/model-policy.d.ts.map +0 -1
  431. package/dist/src/core/llm/model-policy.js +0 -131
  432. package/dist/src/core/llm/model-policy.js.map +0 -1
  433. package/dist/src/core/llm/openai-models.d.ts +0 -17
  434. package/dist/src/core/llm/openai-models.d.ts.map +0 -1
  435. package/dist/src/core/llm/openai-models.js +0 -127
  436. package/dist/src/core/llm/openai-models.js.map +0 -1
  437. package/dist/src/core/llm/openai.d.ts +0 -31
  438. package/dist/src/core/llm/openai.d.ts.map +0 -1
  439. package/dist/src/core/llm/openai.js +0 -405
  440. package/dist/src/core/llm/openai.js.map +0 -1
  441. package/dist/src/core/llm/providers.d.ts +0 -3
  442. package/dist/src/core/llm/providers.d.ts.map +0 -1
  443. package/dist/src/core/llm/providers.js +0 -21
  444. package/dist/src/core/llm/providers.js.map +0 -1
  445. package/dist/src/core/observability/conversation-activity.d.ts +0 -116
  446. package/dist/src/core/observability/conversation-activity.d.ts.map +0 -1
  447. package/dist/src/core/observability/conversation-activity.js +0 -255
  448. package/dist/src/core/observability/conversation-activity.js.map +0 -1
  449. package/dist/src/core/observability/semantic-conventions.d.ts.map +0 -1
  450. package/dist/src/core/observability/semantic-conventions.js.map +0 -1
  451. package/dist/src/core/observability/trace-summarizers.d.ts +0 -23
  452. package/dist/src/core/observability/trace-summarizers.d.ts.map +0 -1
  453. package/dist/src/core/observability/trace-summarizers.js +0 -60
  454. package/dist/src/core/observability/trace-summarizers.js.map +0 -1
  455. package/dist/src/core/review/diff-domain.d.ts.map +0 -1
  456. package/dist/src/core/review/diff-domain.js +0 -134
  457. package/dist/src/core/review/diff-domain.js.map +0 -1
  458. package/dist/src/core/utils/budget.d.ts +0 -13
  459. package/dist/src/core/utils/budget.d.ts.map +0 -1
  460. package/dist/src/core/utils/budget.js +0 -22
  461. package/dist/src/core/utils/budget.js.map +0 -1
  462. package/dist/src/web/assets/index-D6aK1OFb.js +0 -81
@@ -0,0 +1,146 @@
1
+ import { ToolActivitySummarizer } from './tool-activity-summarizer.js';
2
+ /**
3
+ * Projects raw runtime, trace, and compaction events into host-agnostic
4
+ * conversation activities. Activities retain their source event and only add
5
+ * derived fields when this boundary performs real semantic work.
6
+ */
7
+ export class ConversationActivityProjector {
8
+ static traceProjectors = {
9
+ 'run.started': (event) => [ConversationActivityProjector.traceActivity(event)],
10
+ 'assistant.turn': (event) => [ConversationActivityProjector.traceActivity(event)],
11
+ 'host.warning': () => [],
12
+ 'tool.approval_requested': (event) => [ConversationActivityProjector.traceActivity(event, {
13
+ kind: 'tool-summary',
14
+ summary: ToolActivitySummarizer.summarizeCall(event.call),
15
+ })],
16
+ 'tool.approval_resolved': (event) => [ConversationActivityProjector.traceActivity(event, {
17
+ kind: 'tool-summary',
18
+ summary: ToolActivitySummarizer.summarizeCall(event.call),
19
+ })],
20
+ 'tool.fallback': (event) => [ConversationActivityProjector.traceActivity(event, {
21
+ kind: 'tool-fallback-summary',
22
+ fromSummary: ToolActivitySummarizer.summarizeCall(event.fromCall),
23
+ toSummary: ToolActivitySummarizer.summarizeCall(event.toCall),
24
+ })],
25
+ 'tool.call': (event) => [ConversationActivityProjector.traceActivity(event, {
26
+ kind: 'tool-summary',
27
+ summary: ToolActivitySummarizer.summarizeCall(event.call),
28
+ })],
29
+ 'tool.result': (event) => [ConversationActivityProjector.traceActivity(event, {
30
+ kind: 'tool-summary',
31
+ summary: ToolActivitySummarizer.summarizeResult(event),
32
+ })],
33
+ 'memory.candidate_recorded': (event) => [ConversationActivityProjector.traceActivity(event)],
34
+ 'memory.checkpoint_skipped': () => [],
35
+ 'memory.maintenance_started': (event) => [ConversationActivityProjector.traceActivity(event)],
36
+ 'memory.maintenance_finished': (event) => [ConversationActivityProjector.traceActivity(event)],
37
+ 'memory.maintenance_failed': (event) => [ConversationActivityProjector.traceActivity(event)],
38
+ 'cyberloop.annotation': (event) => (event.driftLevel === 'unknown' ? [] : [ConversationActivityProjector.traceActivity(event, {
39
+ kind: 'cyberloop-metrics',
40
+ metrics: ConversationActivityProjector.formatCyberLoopMetrics(event.metadata),
41
+ })]),
42
+ 'run.finished': (event) => [ConversationActivityProjector.traceActivity(event)],
43
+ };
44
+ static agentLoopProjectors = {
45
+ 'loop.started': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
46
+ 'assistant.stream': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
47
+ 'tool.calling': (event) => [ConversationActivityProjector.agentLoopActivity(event, {
48
+ kind: 'tool-summary',
49
+ summary: ToolActivitySummarizer.summarizeCall(event),
50
+ })],
51
+ 'tool.completed': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
52
+ trace: (event) => ConversationActivityProjector.fromTraceEvent(event.event)
53
+ .map((activity) => activity.source === 'trace' ? {
54
+ ...activity,
55
+ correlation: { ...activity.correlation, runId: event.runId },
56
+ } : activity),
57
+ 'loop.finished': (event) => [ConversationActivityProjector.agentLoopActivity(event)],
58
+ };
59
+ static compactionProjectors = {
60
+ running: (event) => [{ source: 'compaction', type: 'compaction.running', event }],
61
+ finished: (event) => [{ source: 'compaction', type: 'compaction.finished', event }],
62
+ failed: (event) => [{ source: 'compaction', type: 'compaction.failed', event }],
63
+ };
64
+ static fromTraceEvent(event) {
65
+ const projector = ConversationActivityProjector.traceProjectors[event.type];
66
+ return projector(event);
67
+ }
68
+ static fromAgentLoopEvent(event) {
69
+ const projector = ConversationActivityProjector.agentLoopProjectors[event.type];
70
+ return projector?.(event) ?? [];
71
+ }
72
+ static fromCompactionStatus(event) {
73
+ const projector = ConversationActivityProjector.compactionProjectors[event.status];
74
+ return projector(event);
75
+ }
76
+ static applyHandler(args) {
77
+ const handler = args.handlers[args.activity.type];
78
+ return handler?.(args.activity, args.context);
79
+ }
80
+ static traceActivity(event, derived) {
81
+ return {
82
+ source: 'trace',
83
+ type: event.type,
84
+ event,
85
+ correlation: ConversationActivityProjector.traceCorrelation(event),
86
+ derived,
87
+ };
88
+ }
89
+ static agentLoopActivity(event, derived) {
90
+ return {
91
+ source: 'agent-loop',
92
+ type: event.type,
93
+ event,
94
+ correlation: ConversationActivityProjector.agentLoopCorrelation(event),
95
+ derived,
96
+ };
97
+ }
98
+ static traceCorrelation(event) {
99
+ const correlation = { timestamp: event.timestamp };
100
+ if ('runId' in event) {
101
+ correlation.runId = event.runId;
102
+ }
103
+ if ('step' in event) {
104
+ correlation.step = event.step;
105
+ }
106
+ return correlation;
107
+ }
108
+ static agentLoopCorrelation(event) {
109
+ const correlation = {
110
+ runId: event.runId,
111
+ timestamp: event.timestamp,
112
+ };
113
+ if ('step' in event) {
114
+ correlation.step = event.step;
115
+ }
116
+ return correlation;
117
+ }
118
+ static formatCyberLoopMetrics(metadata) {
119
+ const kinematics = metadata.kinematics;
120
+ if (!kinematics || typeof kinematics !== 'object' || Array.isArray(kinematics)) {
121
+ return '';
122
+ }
123
+ const snapshot = kinematics;
124
+ const parts = [];
125
+ if (typeof snapshot.errorMagnitude === 'number') {
126
+ parts.push(`err=${ConversationActivityProjector.formatMetric(snapshot.errorMagnitude)}`);
127
+ }
128
+ if (typeof snapshot.correctionMagnitude === 'number') {
129
+ parts.push(`corr=${ConversationActivityProjector.formatMetric(snapshot.correctionMagnitude)}`);
130
+ }
131
+ if (typeof snapshot.isStable === 'boolean') {
132
+ parts.push(`stable=${snapshot.isStable}`);
133
+ }
134
+ return parts.length ? ` (${parts.join(' ')})` : '';
135
+ }
136
+ static formatMetric(value) {
137
+ if (!Number.isFinite(value)) {
138
+ return String(value);
139
+ }
140
+ if (Math.abs(value) < 0.001 && value !== 0) {
141
+ return value.toExponential(2);
142
+ }
143
+ return value.toFixed(3);
144
+ }
145
+ }
146
+ //# sourceMappingURL=conversation-activity-projector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-activity-projector.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/conversation-activity-projector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { ConversationActivityProjector } from './conversation-activity-projector.js';
2
+ export { ToolActivitySummarizer } from './tool-activity-summarizer.js';
3
+ export type { ApplyConversationActivityHandlerArgs, ConversationAgentLoopActivityEvent, ConversationActivity, ConversationActivityCorrelation, ConversationActivityDerived, ConversationActivityHandlerMap, ConversationActivityOf, ConversationCompactionStatus, ToolCallSummaryInput, ToolResultSummaryOptions, ToolSummaryOptions, } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/activity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EACV,oCAAoC,EACpC,kCAAkC,EAClC,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ConversationActivityProjector } from './conversation-activity-projector.js';
2
+ export { ToolActivitySummarizer } from './tool-activity-summarizer.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ToolCallSummaryInput, ToolResultSummaryOptions, ToolSummaryOptions } from './types.js';
2
+ /**
3
+ * Builds compact tool call/result labels for live activity and durable trace
4
+ * summaries. It owns presentation-safe summarization, not tool execution.
5
+ */
6
+ export declare class ToolActivitySummarizer {
7
+ static summarizeCall(call: ToolCallSummaryInput, options?: ToolSummaryOptions): string;
8
+ static summarizeResult(options: ToolResultSummaryOptions): string;
9
+ private static summarizeMoveInput;
10
+ private static summarizeSearchInput;
11
+ private static summarizePlanInput;
12
+ private static getPlanItemStep;
13
+ private static readStringField;
14
+ }
15
+ //# sourceMappingURL=tool-activity-summarizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-activity-summarizer.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/activity/tool-activity-summarizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrG;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM;IAwB1F,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;IAoBjE,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgBjC,OAAO,CAAC,MAAM,CAAC,eAAe;IAS9B,OAAO,CAAC,MAAM,CAAC,eAAe;CAQ/B"}
@@ -0,0 +1,92 @@
1
+ import { truncate } from '../../../core/utils/text.js';
2
+ const DEFAULT_MAX_TOOL_SUMMARY_CHARS = 96;
3
+ /**
4
+ * Builds compact tool call/result labels for live activity and durable trace
5
+ * summaries. It owns presentation-safe summarization, not tool execution.
6
+ */
7
+ export class ToolActivitySummarizer {
8
+ static summarizeCall(call, options = {}) {
9
+ const maxChars = options.maxChars ?? DEFAULT_MAX_TOOL_SUMMARY_CHARS;
10
+ if (call.tool === 'update_plan') {
11
+ return ToolActivitySummarizer.summarizePlanInput(call.tool, call.input, maxChars);
12
+ }
13
+ const command = ToolActivitySummarizer.readStringField(call.input, 'command');
14
+ if (command) {
15
+ return `${call.tool} (${truncate(command, maxChars)})`;
16
+ }
17
+ if (call.tool === 'search_files') {
18
+ return ToolActivitySummarizer.summarizeSearchInput(call.tool, call.input, maxChars);
19
+ }
20
+ const moveSummary = ToolActivitySummarizer.summarizeMoveInput(call.tool, call.input, maxChars);
21
+ if (moveSummary) {
22
+ return moveSummary;
23
+ }
24
+ const path = ToolActivitySummarizer.readStringField(call.input, 'path');
25
+ return path ? `${call.tool} (${truncate(path, maxChars)})` : call.tool;
26
+ }
27
+ static summarizeResult(options) {
28
+ const maxChars = options.maxChars ?? DEFAULT_MAX_TOOL_SUMMARY_CHARS;
29
+ const command = ToolActivitySummarizer.readStringField(options.result.output, 'command');
30
+ if (command) {
31
+ return `${options.tool} (${truncate(command, maxChars)})`;
32
+ }
33
+ const moveSummary = ToolActivitySummarizer.summarizeMoveInput(options.tool, options.result.output, maxChars);
34
+ if (moveSummary) {
35
+ return moveSummary;
36
+ }
37
+ const outputPath = ToolActivitySummarizer.readStringField(options.result.output, 'path');
38
+ if (outputPath) {
39
+ return `${options.tool} (${truncate(outputPath, maxChars)})`;
40
+ }
41
+ return options.tool;
42
+ }
43
+ static summarizeMoveInput(tool, input, maxChars) {
44
+ const from = ToolActivitySummarizer.readStringField(input, 'from');
45
+ const to = ToolActivitySummarizer.readStringField(input, 'to');
46
+ if (!from && !to) {
47
+ return undefined;
48
+ }
49
+ const segmentChars = Math.max(12, Math.floor(maxChars / 2));
50
+ return `${tool} (${from ? truncate(from, segmentChars) : '?'} -> ${to ? truncate(to, segmentChars) : '?'})`;
51
+ }
52
+ static summarizeSearchInput(tool, input, maxChars) {
53
+ const query = ToolActivitySummarizer.readStringField(input, 'query');
54
+ if (!query) {
55
+ return tool;
56
+ }
57
+ const path = ToolActivitySummarizer.readStringField(input, 'path');
58
+ const segmentChars = Math.max(12, Math.floor(maxChars / 2));
59
+ const querySummary = truncate(JSON.stringify(query), segmentChars);
60
+ return path ?
61
+ `${tool} (${querySummary} in ${truncate(path, segmentChars)})`
62
+ : `${tool} (${querySummary})`;
63
+ }
64
+ static summarizePlanInput(tool, input, maxChars) {
65
+ if (!input || typeof input !== 'object' || Array.isArray(input)) {
66
+ return tool;
67
+ }
68
+ const plan = input.plan;
69
+ if (!Array.isArray(plan) || plan.length === 0) {
70
+ return tool;
71
+ }
72
+ const currentStep = plan
73
+ .map((item) => ToolActivitySummarizer.getPlanItemStep(item, 'in_progress'))
74
+ .find((step) => Boolean(step));
75
+ return currentStep ? `${tool} (${truncate(currentStep, maxChars)})` : `${tool} (${plan.length} items)`;
76
+ }
77
+ static getPlanItemStep(item, status) {
78
+ if (!item || typeof item !== 'object' || Array.isArray(item)) {
79
+ return undefined;
80
+ }
81
+ const candidate = item;
82
+ return candidate.status === status && typeof candidate.step === 'string' ? candidate.step : undefined;
83
+ }
84
+ static readStringField(value, field) {
85
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
86
+ return undefined;
87
+ }
88
+ const candidate = value[field];
89
+ return typeof candidate === 'string' && candidate.trim() ? candidate.trim() : undefined;
90
+ }
91
+ }
92
+ //# sourceMappingURL=tool-activity-summarizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-activity-summarizer.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/tool-activity-summarizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAAC,aAAa,CAAC,IAA0B,EAAE,UAA8B,EAAE;QAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,8BAA8B,CAAC;QACpE,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,OAAO,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,OAAO,sBAAsB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/F,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAiC;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,8BAA8B,CAAC;QACpE,MAAM,OAAO,GAAG,sBAAsB,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC;QAC5D,CAAC;QAED,MAAM,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7G,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC;QAC/D,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,IAAY,EAAE,KAAc,EAAE,QAAgB;QAC9E,MAAM,IAAI,GAAG,sBAAsB,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,EAAE,GAAG,sBAAsB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9G,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,IAAY,EAAE,KAAc,EAAE,QAAgB;QAChF,MAAM,KAAK,GAAG,sBAAsB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,sBAAsB,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,CAAC;YACT,GAAG,IAAI,KAAK,YAAY,OAAO,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG;YAChE,CAAC,CAAC,GAAG,IAAI,KAAK,YAAY,GAAG,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,IAAY,EAAE,KAAc,EAAE,QAAgB;QAC9E,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,IAAI;aACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;aAC1E,IAAI,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,SAAS,CAAC;IACzG,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAa,EAAE,MAAc;QAC1D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,IAA4C,CAAC;QAC/D,OAAO,SAAS,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,KAAc,EAAE,KAAa;QAC1D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAI,KAAiC,CAAC,KAAK,CAAC,CAAC;QAC5D,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,CAAC;CACF"}
@@ -0,0 +1,87 @@
1
+ import type { AgentLoopEvent } from '../../../core/runtime/loop/index.js';
2
+ import type { ToolCall, ToolResult, TraceEvent } from '../../../core/types.js';
3
+ export type ConversationActivityCorrelation = {
4
+ runId?: string;
5
+ step?: number;
6
+ timestamp?: string;
7
+ };
8
+ export type ConversationCompactionStatus = {
9
+ status: 'running';
10
+ archivePath?: string;
11
+ } | {
12
+ status: 'finished';
13
+ summaryPath?: string;
14
+ } | {
15
+ status: 'failed';
16
+ error?: string;
17
+ };
18
+ export type ConversationToolSummary = {
19
+ kind: 'tool-summary';
20
+ summary: string;
21
+ };
22
+ export type ConversationToolFallbackSummary = {
23
+ kind: 'tool-fallback-summary';
24
+ fromSummary: string;
25
+ toSummary: string;
26
+ };
27
+ export type ConversationCyberLoopMetricsSummary = {
28
+ kind: 'cyberloop-metrics';
29
+ metrics: string;
30
+ };
31
+ export type ConversationActivityDerived = ConversationToolSummary | ConversationToolFallbackSummary | ConversationCyberLoopMetricsSummary;
32
+ type TraceActivity = {
33
+ [Type in TraceEvent['type']]: {
34
+ source: 'trace';
35
+ type: Type;
36
+ event: Extract<TraceEvent, {
37
+ type: Type;
38
+ }>;
39
+ correlation: ConversationActivityCorrelation;
40
+ derived?: ConversationActivityDerived;
41
+ };
42
+ }[TraceEvent['type']];
43
+ export type ConversationAgentLoopActivityEvent = Exclude<AgentLoopEvent, {
44
+ type: 'trace' | 'checkpoint.saved' | 'loop.resumed';
45
+ }>;
46
+ type AgentLoopActivity = {
47
+ [Type in ConversationAgentLoopActivityEvent['type']]: {
48
+ source: 'agent-loop';
49
+ type: Type;
50
+ event: Extract<ConversationAgentLoopActivityEvent, {
51
+ type: Type;
52
+ }>;
53
+ correlation: ConversationActivityCorrelation;
54
+ derived?: ConversationActivityDerived;
55
+ };
56
+ }[ConversationAgentLoopActivityEvent['type']];
57
+ type CompactionActivity = {
58
+ [Status in ConversationCompactionStatus['status']]: {
59
+ source: 'compaction';
60
+ type: `compaction.${Status}`;
61
+ event: Extract<ConversationCompactionStatus, {
62
+ status: Status;
63
+ }>;
64
+ };
65
+ }[ConversationCompactionStatus['status']];
66
+ export type ConversationActivity = TraceActivity | AgentLoopActivity | CompactionActivity;
67
+ export type ConversationActivityOf<Type extends ConversationActivity['type']> = Extract<ConversationActivity, {
68
+ type: Type;
69
+ }>;
70
+ export type ConversationActivityHandlerMap<Context, Result = void> = {
71
+ [Type in ConversationActivity['type']]?: (activity: ConversationActivityOf<Type>, context: Context) => Result;
72
+ };
73
+ export type ApplyConversationActivityHandlerArgs<Context, Result = void> = {
74
+ activity: ConversationActivity;
75
+ handlers: ConversationActivityHandlerMap<Context, Result>;
76
+ context: Context;
77
+ };
78
+ export type ToolSummaryOptions = {
79
+ maxChars?: number;
80
+ };
81
+ export type ToolResultSummaryOptions = ToolSummaryOptions & {
82
+ tool: string;
83
+ result: ToolResult;
84
+ };
85
+ export type ToolCallSummaryInput = Pick<ToolCall, 'tool' | 'input'>;
86
+ export {};
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/activity/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/observability/activity/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export { ConversationActivityProjector, ToolActivitySummarizer } from './activity/index.js';
2
+ export type { ApplyConversationActivityHandlerArgs, ConversationAgentLoopActivityEvent, ConversationActivity, ConversationActivityCorrelation, ConversationActivityDerived, ConversationActivityHandlerMap, ConversationActivityOf, ConversationCompactionStatus, ToolCallSummaryInput, ToolResultSummaryOptions, ToolSummaryOptions, } from './activity/index.js';
3
+ export { DEFAULT_TRACE_SUMMARIZERS, TraceSummaryService } from './summaries/index.js';
4
+ export type { TraceEventOfType, TraceEventType, TraceSummarizer, TraceSummarizerMap, TraceSummaryContext, TraceSummaryValue, } from './summaries/index.js';
5
+ export { TRACE_CORRELATION_FIELDS, TRACE_EVENT_DOMAINS, TRACE_EVENT_TYPES, } from './semantics/index.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,YAAY,EACV,oCAAoC,EACpC,kCAAkC,EAClC,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { ConversationActivityProjector, ToolActivitySummarizer } from './activity/index.js';
2
+ export { DEFAULT_TRACE_SUMMARIZERS, TraceSummaryService } from './summaries/index.js';
3
+ export { TRACE_CORRELATION_FIELDS, TRACE_EVENT_DOMAINS, TRACE_EVENT_TYPES, } from './semantics/index.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAc5F,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAStF,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { TRACE_CORRELATION_FIELDS, TRACE_EVENT_DOMAINS, TRACE_EVENT_TYPES, } from './trace-semantics.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { TRACE_CORRELATION_FIELDS, TRACE_EVENT_DOMAINS, TRACE_EVENT_TYPES, } from './trace-semantics.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
@@ -30,4 +30,4 @@ export declare const TRACE_CORRELATION_FIELDS: {
30
30
  readonly step: "step";
31
31
  readonly timestamp: "timestamp";
32
32
  };
33
- //# sourceMappingURL=semantic-conventions.d.ts.map
33
+ //# sourceMappingURL=trace-semantics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-semantics.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/trace-semantics.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAgByB,CAAC;AAExD,eAAO,MAAM,wBAAwB;;;;;;CAM3B,CAAC"}
@@ -30,4 +30,4 @@ export const TRACE_CORRELATION_FIELDS = {
30
30
  step: 'step',
31
31
  timestamp: 'timestamp',
32
32
  };
33
- //# sourceMappingURL=semantic-conventions.js.map
33
+ //# sourceMappingURL=trace-semantics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-semantics.js","sourceRoot":"","sources":["../../../../../src/core/observability/semantics/trace-semantics.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,cAAc;IAC3B,qBAAqB,EAAE,yBAAyB;IAChD,oBAAoB,EAAE,wBAAwB;IAC9C,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,aAAa;IACzB,uBAAuB,EAAE,2BAA2B;IACpD,uBAAuB,EAAE,2BAA2B;IACpD,wBAAwB,EAAE,4BAA4B;IACtD,yBAAyB,EAAE,6BAA6B;IACxD,uBAAuB,EAAE,2BAA2B;IACpD,mBAAmB,EAAE,sBAAsB;CACU,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;CACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TraceSummarizerMap } from './types.js';
2
+ export declare const DEFAULT_TRACE_SUMMARIZERS: TraceSummarizerMap;
3
+ //# sourceMappingURL=default-trace-summarizers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-trace-summarizers.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/default-trace-summarizers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,yBAAyB,EAAE,kBAyBvC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { truncate } from '../../../core/utils/text.js';
2
+ import { ToolActivitySummarizer } from '../activity/index.js';
3
+ export const DEFAULT_TRACE_SUMMARIZERS = {
4
+ 'run.started': () => undefined,
5
+ 'assistant.turn': (event) => [
6
+ ...(event.diagnostics?.rationale ? [`reasoning: ${truncate(event.diagnostics.rationale, 140)}`] : []),
7
+ event.requestedTools ?
8
+ `assistant requested ${event.toolCalls?.map((call) => ToolActivitySummarizer.summarizeCall(call)).join(', ')}`
9
+ : 'assistant answered',
10
+ ],
11
+ 'host.warning': (event) => [`host warning ${event.code}: ${truncate(event.message, 140)}`],
12
+ 'tool.approval_requested': (event) => [`approval requested for ${ToolActivitySummarizer.summarizeCall(event.call)}`],
13
+ 'tool.approval_resolved': (event) => [
14
+ `approval ${event.approved ? 'granted' : 'denied'} for ${ToolActivitySummarizer.summarizeCall(event.call)}${event.reason ? ` (${truncate(event.reason, 80)})` : ''}`,
15
+ ],
16
+ 'tool.fallback': (event) => [
17
+ `fallback ${ToolActivitySummarizer.summarizeCall(event.fromCall)} -> ${ToolActivitySummarizer.summarizeCall(event.toCall)} (${event.reason})`,
18
+ ],
19
+ 'tool.call': (event) => [`tool call ${ToolActivitySummarizer.summarizeCall(event.call)}`],
20
+ 'tool.result': (event) => [`tool result ${event.tool}: ${event.result.ok ? 'ok' : event.result.error ?? 'error'}`],
21
+ 'memory.candidate_recorded': (event) => [`memory candidate recorded: ${event.candidateId}`],
22
+ 'memory.checkpoint_skipped': (event) => [`memory checkpoint skipped: ${truncate(event.rationale, 100)}`],
23
+ 'memory.maintenance_started': (event) => [`memory maintenance started: ${event.candidateIds.join(', ')}`],
24
+ 'memory.maintenance_finished': (event) => [`memory maintenance finished: ${event.outcome}`],
25
+ 'memory.maintenance_failed': (event) => [`memory maintenance failed: ${event.error}`],
26
+ 'cyberloop.annotation': () => undefined,
27
+ 'run.finished': (event) => [`run finished: ${event.outcome}`],
28
+ };
29
+ //# sourceMappingURL=default-trace-summarizers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-trace-summarizers.js","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/default-trace-summarizers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { DEFAULT_TRACE_SUMMARIZERS } from './default-trace-summarizers.js';
2
+ export { TraceSummaryService } from './trace-summary-service.js';
3
+ export type { TraceEventOfType, TraceEventType, TraceSummarizer, TraceSummarizerMap, TraceSummaryContext, TraceSummaryValue, } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DEFAULT_TRACE_SUMMARIZERS } from './default-trace-summarizers.js';
2
+ export { TraceSummaryService } from './trace-summary-service.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { TraceEvent } from '../../../core/types.js';
2
+ import type { TraceSummarizerMap, TraceSummaryContext } from './types.js';
3
+ /**
4
+ * Summarizes trace events into durable evidence strings for turn/session
5
+ * records. It owns event summarization policy, not live host status rendering.
6
+ */
7
+ export declare class TraceSummaryService {
8
+ private static readonly defaultService;
9
+ private readonly summarizers;
10
+ constructor(summarizers?: TraceSummarizerMap);
11
+ static default(): TraceSummaryService;
12
+ summarizeEvent(event: TraceEvent, context: TraceSummaryContext): string[];
13
+ summarizeTrace(trace: TraceEvent[]): string[];
14
+ countAssistantSteps(trace: TraceEvent[]): number;
15
+ private static normalizeSummary;
16
+ }
17
+ //# sourceMappingURL=trace-summary-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-summary-service.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/trace-summary-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAC;AAE7F;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAEnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,WAAW,GAAE,kBAAuB;IAIhD,MAAM,CAAC,OAAO,IAAI,mBAAmB;IAIrC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE;IAKzE,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;IAI7C,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM;IAIhD,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAOhC"}
@@ -0,0 +1,32 @@
1
+ import { DEFAULT_TRACE_SUMMARIZERS } from './default-trace-summarizers.js';
2
+ /**
3
+ * Summarizes trace events into durable evidence strings for turn/session
4
+ * records. It owns event summarization policy, not live host status rendering.
5
+ */
6
+ export class TraceSummaryService {
7
+ static defaultService = new TraceSummaryService();
8
+ summarizers;
9
+ constructor(summarizers = {}) {
10
+ this.summarizers = { ...DEFAULT_TRACE_SUMMARIZERS, ...summarizers };
11
+ }
12
+ static default() {
13
+ return TraceSummaryService.defaultService;
14
+ }
15
+ summarizeEvent(event, context) {
16
+ const handler = this.summarizers[event.type];
17
+ return TraceSummaryService.normalizeSummary(handler?.(event, context));
18
+ }
19
+ summarizeTrace(trace) {
20
+ return trace.flatMap((event, index) => this.summarizeEvent(event, { trace, index }));
21
+ }
22
+ countAssistantSteps(trace) {
23
+ return trace.filter((event) => event.type === 'assistant.turn').length;
24
+ }
25
+ static normalizeSummary(summary) {
26
+ if (Array.isArray(summary)) {
27
+ return summary;
28
+ }
29
+ return summary ? [summary] : [];
30
+ }
31
+ }
32
+ //# sourceMappingURL=trace-summary-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-summary-service.js","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/trace-summary-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAU,cAAc,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAElD,WAAW,CAAqB;IAEjD,YAAY,cAAkC,EAAE;QAC9C,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,WAAW,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,mBAAmB,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,KAAiB,EAAE,OAA4B;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAyF,CAAC;QACrI,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,cAAc,CAAC,KAAmB;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,mBAAmB,CAAC,KAAmB;QACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,MAAM,CAAC;IACzE,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,OAA0B;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { TraceEvent } from '../../../core/types.js';
2
+ export type TraceEventType = TraceEvent['type'];
3
+ export type TraceSummaryContext = {
4
+ trace: TraceEvent[];
5
+ index: number;
6
+ };
7
+ export type TraceEventOfType<Type extends TraceEventType> = Extract<TraceEvent, {
8
+ type: Type;
9
+ }>;
10
+ export type TraceSummaryValue = string | string[] | undefined;
11
+ export type TraceSummarizer<Type extends TraceEventType = TraceEventType> = (event: TraceEventOfType<Type>, context: TraceSummaryContext) => TraceSummaryValue;
12
+ export type TraceSummarizerMap = {
13
+ [Type in TraceEventType]?: TraceSummarizer<Type>;
14
+ };
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/observability/summaries/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAEhG,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,cAAc,GAAG,cAAc,IAAI,CAC1E,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC7B,OAAO,EAAE,mBAAmB,KACzB,iBAAiB,CAAC;AAEvB,MAAM,MAAM,kBAAkB,GAAG;KAC9B,IAAI,IAAI,cAAc,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map