@codemieai/code 0.15.5 → 0.15.7

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 (352) hide show
  1. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  2. package/dist/agents/core/AgentCLI.js +3 -0
  3. package/dist/agents/core/AgentCLI.js.map +1 -1
  4. package/dist/agents/core/BaseAgentAdapter.d.ts +4 -1
  5. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  6. package/dist/agents/core/BaseAgentAdapter.js +15 -0
  7. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  8. package/dist/agents/core/session/SessionStore.d.ts +6 -0
  9. package/dist/agents/core/session/SessionStore.d.ts.map +1 -1
  10. package/dist/agents/core/session/SessionStore.js +38 -0
  11. package/dist/agents/core/session/SessionStore.js.map +1 -1
  12. package/dist/agents/core/session/types.d.ts +2 -0
  13. package/dist/agents/core/session/types.d.ts.map +1 -1
  14. package/dist/agents/core/types.d.ts +10 -0
  15. package/dist/agents/core/types.d.ts.map +1 -1
  16. package/dist/agents/core/types.js +5 -1
  17. package/dist/agents/core/types.js.map +1 -1
  18. package/dist/agents/plugins/claude/claude.models.d.ts +19 -3
  19. package/dist/agents/plugins/claude/claude.models.d.ts.map +1 -1
  20. package/dist/agents/plugins/claude/claude.models.js +116 -64
  21. package/dist/agents/plugins/claude/claude.models.js.map +1 -1
  22. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
  23. package/dist/agents/plugins/claude/claude.plugin.js +25 -4
  24. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
  25. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
  26. package/dist/agents/plugins/claude/plugin/skills/codemie-assistant-builder/SKILL.md +177 -0
  27. package/dist/agents/plugins/claude/plugin/skills/codemie-assistant-builder/agents/grader.md +38 -0
  28. package/dist/agents/plugins/claude/plugin/skills/codemie-assistant-builder/agents/improver.md +40 -0
  29. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/SKILL.md +10 -1
  30. package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/assistants.md +23 -0
  31. package/dist/agents/plugins/claude/plugin/statusline.bundle.mjs +57 -21
  32. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +13 -0
  33. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
  34. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +27 -1
  35. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
  36. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +6 -0
  37. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
  38. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +21 -0
  39. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
  40. package/dist/agents/plugins/claude/session/processors/messages-before.d.ts +11 -0
  41. package/dist/agents/plugins/claude/session/processors/messages-before.d.ts.map +1 -0
  42. package/dist/agents/plugins/claude/session/processors/messages-before.js +15 -0
  43. package/dist/agents/plugins/claude/session/processors/messages-before.js.map +1 -0
  44. package/dist/agents/plugins/claude/statusline-installer.d.ts +9 -0
  45. package/dist/agents/plugins/claude/statusline-installer.d.ts.map +1 -1
  46. package/dist/agents/plugins/claude/statusline-installer.js +42 -27
  47. package/dist/agents/plugins/claude/statusline-installer.js.map +1 -1
  48. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.d.ts +3 -0
  49. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.d.ts.map +1 -0
  50. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.js +3 -0
  51. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.constants.js.map +1 -0
  52. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.d.ts +11 -0
  53. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.d.ts.map +1 -0
  54. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.js +65 -0
  55. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.plugin.js.map +1 -0
  56. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.d.ts +63 -0
  57. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.d.ts.map +1 -0
  58. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.js +13 -0
  59. package/dist/agents/plugins/claude-code-otlp/claude-code-otlp.types.js.map +1 -0
  60. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  61. package/dist/agents/plugins/codemie-code.plugin.js +6 -4
  62. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  63. package/dist/agents/plugins/codex/codex-models.d.ts.map +1 -1
  64. package/dist/agents/plugins/codex/codex-models.js +9 -6
  65. package/dist/agents/plugins/codex/codex-models.js.map +1 -1
  66. package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -1
  67. package/dist/agents/plugins/codex/codex.plugin.js +2 -1
  68. package/dist/agents/plugins/codex/codex.plugin.js.map +1 -1
  69. package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts +3 -2
  70. package/dist/agents/plugins/opencode/opencode-dynamic-models.d.ts.map +1 -1
  71. package/dist/agents/plugins/opencode/opencode-dynamic-models.js +14 -6
  72. package/dist/agents/plugins/opencode/opencode-dynamic-models.js.map +1 -1
  73. package/dist/agents/plugins/opencode/opencode.plugin.d.ts.map +1 -1
  74. package/dist/agents/plugins/opencode/opencode.plugin.js +6 -4
  75. package/dist/agents/plugins/opencode/opencode.plugin.js.map +1 -1
  76. package/dist/agents/plugins/utils.d.ts +11 -0
  77. package/dist/agents/plugins/utils.d.ts.map +1 -0
  78. package/dist/agents/plugins/utils.js +46 -0
  79. package/dist/agents/plugins/utils.js.map +1 -0
  80. package/dist/agents/registry.d.ts +3 -1
  81. package/dist/agents/registry.d.ts.map +1 -1
  82. package/dist/agents/registry.js +12 -0
  83. package/dist/agents/registry.js.map +1 -1
  84. package/dist/bin/proxy-daemon.js +4 -0
  85. package/dist/bin/proxy-daemon.js.map +1 -1
  86. package/dist/cli/commands/assistants/setup/configuration/selection.d.ts +3 -1
  87. package/dist/cli/commands/assistants/setup/configuration/selection.d.ts.map +1 -1
  88. package/dist/cli/commands/assistants/setup/configuration/selection.js +6 -3
  89. package/dist/cli/commands/assistants/setup/configuration/selection.js.map +1 -1
  90. package/dist/cli/commands/assistants/setup/configuration/types.d.ts +2 -0
  91. package/dist/cli/commands/assistants/setup/configuration/types.d.ts.map +1 -1
  92. package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -1
  93. package/dist/cli/commands/assistants/setup/configuration/ui.js +3 -0
  94. package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -1
  95. package/dist/cli/commands/assistants/setup/data.d.ts +6 -2
  96. package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -1
  97. package/dist/cli/commands/assistants/setup/data.js +23 -8
  98. package/dist/cli/commands/assistants/setup/data.js.map +1 -1
  99. package/dist/cli/commands/assistants/setup/helpers.d.ts +1 -0
  100. package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
  101. package/dist/cli/commands/assistants/setup/helpers.js +11 -0
  102. package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
  103. package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
  104. package/dist/cli/commands/assistants/setup/index.js +24 -6
  105. package/dist/cli/commands/assistants/setup/index.js.map +1 -1
  106. package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts +2 -1
  107. package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts.map +1 -1
  108. package/dist/cli/commands/assistants/setup/manualConfiguration/index.js +5 -3
  109. package/dist/cli/commands/assistants/setup/manualConfiguration/index.js.map +1 -1
  110. package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +2 -0
  111. package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts.map +1 -1
  112. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts.map +1 -1
  113. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +3 -0
  114. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -1
  115. package/dist/cli/commands/hook.d.ts.map +1 -1
  116. package/dist/cli/commands/hook.js +24 -29
  117. package/dist/cli/commands/hook.js.map +1 -1
  118. package/dist/cli/commands/proxy/connect-orchestrator.d.ts +8 -1
  119. package/dist/cli/commands/proxy/connect-orchestrator.d.ts.map +1 -1
  120. package/dist/cli/commands/proxy/connect-orchestrator.js +65 -4
  121. package/dist/cli/commands/proxy/connect-orchestrator.js.map +1 -1
  122. package/dist/cli/commands/proxy/connectors/claude-code-otlp.d.ts +33 -0
  123. package/dist/cli/commands/proxy/connectors/claude-code-otlp.d.ts.map +1 -0
  124. package/dist/cli/commands/proxy/connectors/claude-code-otlp.js +299 -0
  125. package/dist/cli/commands/proxy/connectors/claude-code-otlp.js.map +1 -0
  126. package/dist/cli/commands/proxy/connectors/managed-mcp-remote.d.ts.map +1 -1
  127. package/dist/cli/commands/proxy/connectors/managed-mcp-remote.js +5 -6
  128. package/dist/cli/commands/proxy/connectors/managed-mcp-remote.js.map +1 -1
  129. package/dist/cli/commands/proxy/disconnect-orchestrator.d.ts +2 -0
  130. package/dist/cli/commands/proxy/disconnect-orchestrator.d.ts.map +1 -1
  131. package/dist/cli/commands/proxy/disconnect-orchestrator.js +34 -5
  132. package/dist/cli/commands/proxy/disconnect-orchestrator.js.map +1 -1
  133. package/dist/cli/commands/proxy/index.d.ts.map +1 -1
  134. package/dist/cli/commands/proxy/index.js +19 -2
  135. package/dist/cli/commands/proxy/index.js.map +1 -1
  136. package/dist/cli/commands/sdk/assistant-builder/checks.d.ts +4 -0
  137. package/dist/cli/commands/sdk/assistant-builder/checks.d.ts.map +1 -0
  138. package/dist/cli/commands/sdk/assistant-builder/checks.js +32 -0
  139. package/dist/cli/commands/sdk/assistant-builder/checks.js.map +1 -0
  140. package/dist/cli/commands/sdk/assistant-builder/commands.d.ts +6 -0
  141. package/dist/cli/commands/sdk/assistant-builder/commands.d.ts.map +1 -0
  142. package/dist/cli/commands/sdk/assistant-builder/commands.js +278 -0
  143. package/dist/cli/commands/sdk/assistant-builder/commands.js.map +1 -0
  144. package/dist/cli/commands/sdk/assistant-builder/conversations.d.ts +26 -0
  145. package/dist/cli/commands/sdk/assistant-builder/conversations.d.ts.map +1 -0
  146. package/dist/cli/commands/sdk/assistant-builder/conversations.js +45 -0
  147. package/dist/cli/commands/sdk/assistant-builder/conversations.js.map +1 -0
  148. package/dist/cli/commands/sdk/assistant-builder/normalize.d.ts +11 -0
  149. package/dist/cli/commands/sdk/assistant-builder/normalize.d.ts.map +1 -0
  150. package/dist/cli/commands/sdk/assistant-builder/normalize.js +43 -0
  151. package/dist/cli/commands/sdk/assistant-builder/normalize.js.map +1 -0
  152. package/dist/cli/commands/sdk/assistant-builder/output.d.ts +10 -0
  153. package/dist/cli/commands/sdk/assistant-builder/output.d.ts.map +1 -0
  154. package/dist/cli/commands/sdk/assistant-builder/output.js +29 -0
  155. package/dist/cli/commands/sdk/assistant-builder/output.js.map +1 -0
  156. package/dist/cli/commands/sdk/assistant-builder/report/compare.d.ts +23 -0
  157. package/dist/cli/commands/sdk/assistant-builder/report/compare.d.ts.map +1 -0
  158. package/dist/cli/commands/sdk/assistant-builder/report/compare.js +66 -0
  159. package/dist/cli/commands/sdk/assistant-builder/report/compare.js.map +1 -0
  160. package/dist/cli/commands/sdk/assistant-builder/report/html.d.ts +9 -0
  161. package/dist/cli/commands/sdk/assistant-builder/report/html.d.ts.map +1 -0
  162. package/dist/cli/commands/sdk/assistant-builder/report/html.js +87 -0
  163. package/dist/cli/commands/sdk/assistant-builder/report/html.js.map +1 -0
  164. package/dist/cli/commands/sdk/assistant-builder/report/summary.d.ts +31 -0
  165. package/dist/cli/commands/sdk/assistant-builder/report/summary.d.ts.map +1 -0
  166. package/dist/cli/commands/sdk/assistant-builder/report/summary.js +56 -0
  167. package/dist/cli/commands/sdk/assistant-builder/report/summary.js.map +1 -0
  168. package/dist/cli/commands/sdk/assistant-builder/report/workspace.d.ts +19 -0
  169. package/dist/cli/commands/sdk/assistant-builder/report/workspace.d.ts.map +1 -0
  170. package/dist/cli/commands/sdk/assistant-builder/report/workspace.js +112 -0
  171. package/dist/cli/commands/sdk/assistant-builder/report/workspace.js.map +1 -0
  172. package/dist/cli/commands/sdk/assistant-builder/runner.d.ts +32 -0
  173. package/dist/cli/commands/sdk/assistant-builder/runner.d.ts.map +1 -0
  174. package/dist/cli/commands/sdk/assistant-builder/runner.js +109 -0
  175. package/dist/cli/commands/sdk/assistant-builder/runner.js.map +1 -0
  176. package/dist/cli/commands/sdk/assistant-builder/scenarios.d.ts +5 -0
  177. package/dist/cli/commands/sdk/assistant-builder/scenarios.d.ts.map +1 -0
  178. package/dist/cli/commands/sdk/assistant-builder/scenarios.js +66 -0
  179. package/dist/cli/commands/sdk/assistant-builder/scenarios.js.map +1 -0
  180. package/dist/cli/commands/sdk/assistant-builder/types.d.ts +70 -0
  181. package/dist/cli/commands/sdk/assistant-builder/types.d.ts.map +1 -0
  182. package/dist/cli/commands/sdk/assistant-builder/types.js +2 -0
  183. package/dist/cli/commands/sdk/assistant-builder/types.js.map +1 -0
  184. package/dist/cli/commands/sdk/assistants.d.ts.map +1 -1
  185. package/dist/cli/commands/sdk/assistants.js +2 -0
  186. package/dist/cli/commands/sdk/assistants.js.map +1 -1
  187. package/dist/cli/commands/sdk/services/assistants.d.ts +20 -1
  188. package/dist/cli/commands/sdk/services/assistants.d.ts.map +1 -1
  189. package/dist/cli/commands/sdk/services/assistants.js +80 -2
  190. package/dist/cli/commands/sdk/services/assistants.js.map +1 -1
  191. package/dist/cli/commands/sdk/utils/cli-utils.js +1 -1
  192. package/dist/cli/commands/sdk/utils/cli-utils.js.map +1 -1
  193. package/dist/cli/commands/self-update.d.ts.map +1 -1
  194. package/dist/cli/commands/self-update.js +5 -1
  195. package/dist/cli/commands/self-update.js.map +1 -1
  196. package/dist/cli/commands/shared/constants.d.ts +3 -0
  197. package/dist/cli/commands/shared/constants.d.ts.map +1 -1
  198. package/dist/cli/commands/shared/constants.js +3 -0
  199. package/dist/cli/commands/shared/constants.js.map +1 -1
  200. package/dist/cli/commands/shared/prompts/storage-scope.d.ts +3 -1
  201. package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -1
  202. package/dist/cli/commands/shared/prompts/storage-scope.js +5 -1
  203. package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -1
  204. package/dist/cli/commands/skills/setup/data.d.ts +5 -1
  205. package/dist/cli/commands/skills/setup/data.d.ts.map +1 -1
  206. package/dist/cli/commands/skills/setup/data.js +17 -8
  207. package/dist/cli/commands/skills/setup/data.js.map +1 -1
  208. package/dist/cli/commands/skills/setup/helpers.d.ts +1 -0
  209. package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
  210. package/dist/cli/commands/skills/setup/helpers.js +11 -0
  211. package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
  212. package/dist/cli/commands/skills/setup/index.d.ts.map +1 -1
  213. package/dist/cli/commands/skills/setup/index.js +7 -2
  214. package/dist/cli/commands/skills/setup/index.js.map +1 -1
  215. package/dist/cli/index.js +2 -0
  216. package/dist/cli/index.js.map +1 -1
  217. package/dist/mcp/stdio-http-bridge.d.ts.map +1 -1
  218. package/dist/mcp/stdio-http-bridge.js +4 -0
  219. package/dist/mcp/stdio-http-bridge.js.map +1 -1
  220. package/dist/providers/core/base/http-client.d.ts.map +1 -1
  221. package/dist/providers/core/base/http-client.js +16 -3
  222. package/dist/providers/core/base/http-client.js.map +1 -1
  223. package/dist/providers/core/codemie-auth-helpers.d.ts.map +1 -1
  224. package/dist/providers/core/codemie-auth-helpers.js +2 -1
  225. package/dist/providers/core/codemie-auth-helpers.js.map +1 -1
  226. package/dist/providers/core/types.d.ts +3 -0
  227. package/dist/providers/core/types.d.ts.map +1 -1
  228. package/dist/providers/core/types.js.map +1 -1
  229. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  230. package/dist/providers/plugins/sso/proxy/plugins/index.js +2 -0
  231. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  232. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.d.ts +3 -0
  233. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.d.ts.map +1 -0
  234. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.js +19 -0
  235. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/auth-state.js.map +1 -0
  236. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.d.ts +19 -0
  237. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.d.ts.map +1 -0
  238. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.js +33 -0
  239. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/completeness-gate.js.map +1 -0
  240. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.d.ts +14 -0
  241. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.d.ts.map +1 -0
  242. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.js +287 -0
  243. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/forwarder.js.map +1 -0
  244. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.d.ts +8 -0
  245. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.d.ts.map +1 -0
  246. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.js +29 -0
  247. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-lock.js.map +1 -0
  248. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.d.ts +40 -0
  249. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.d.ts.map +1 -0
  250. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.js +82 -0
  251. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/session-status.js.map +1 -0
  252. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.d.ts +36 -0
  253. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.d.ts.map +1 -0
  254. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.js +62 -0
  255. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-config.js.map +1 -0
  256. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.d.ts +39 -0
  257. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.d.ts.map +1 -0
  258. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.js +110 -0
  259. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-io.js.map +1 -0
  260. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.d.ts +24 -0
  261. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.d.ts.map +1 -0
  262. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.js +53 -0
  263. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-paths.js.map +1 -0
  264. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.d.ts +39 -0
  265. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.d.ts.map +1 -0
  266. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.js +61 -0
  267. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/spool-state.js.map +1 -0
  268. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.d.ts +20 -0
  269. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.d.ts.map +1 -0
  270. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.js +73 -0
  271. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/sweep.js.map +1 -0
  272. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.d.ts +12 -0
  273. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.d.ts.map +1 -0
  274. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.js +55 -0
  275. package/dist/providers/plugins/sso/proxy/plugins/otlp-spool/tick-processor.js.map +1 -0
  276. package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.d.ts +14 -0
  277. package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.d.ts.map +1 -0
  278. package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.js +221 -0
  279. package/dist/providers/plugins/sso/proxy/plugins/otlp.plugin.js.map +1 -0
  280. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -4
  281. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  282. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +10 -207
  283. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  284. package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
  285. package/dist/providers/plugins/sso/proxy/sso.proxy.js +2 -1
  286. package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
  287. package/dist/providers/plugins/sso/sso.auth-gate.d.ts +18 -0
  288. package/dist/providers/plugins/sso/sso.auth-gate.d.ts.map +1 -0
  289. package/dist/providers/plugins/sso/sso.auth-gate.js +48 -0
  290. package/dist/providers/plugins/sso/sso.auth-gate.js.map +1 -0
  291. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
  292. package/dist/providers/plugins/sso/sso.auth.js +14 -4
  293. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  294. package/dist/providers/plugins/sso/sso.http-client.d.ts +17 -0
  295. package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -1
  296. package/dist/providers/plugins/sso/sso.http-client.js +33 -5
  297. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  298. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts +3 -0
  299. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts.map +1 -1
  300. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js +43 -2
  301. package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js.map +1 -1
  302. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -1
  303. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +12 -10
  304. package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -1
  305. package/dist/telemetry/runtime/DesktopRepositoryResolver.d.ts.map +1 -1
  306. package/dist/telemetry/runtime/DesktopRepositoryResolver.js +33 -6
  307. package/dist/telemetry/runtime/DesktopRepositoryResolver.js.map +1 -1
  308. package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts +2 -0
  309. package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -1
  310. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +61 -10
  311. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -1
  312. package/dist/telemetry/runtime/checkpoints.d.ts +6 -0
  313. package/dist/telemetry/runtime/checkpoints.d.ts.map +1 -1
  314. package/dist/telemetry/runtime/checkpoints.js.map +1 -1
  315. package/dist/telemetry/runtime/types.d.ts +5 -0
  316. package/dist/telemetry/runtime/types.d.ts.map +1 -1
  317. package/dist/utils/auth.d.ts.map +1 -1
  318. package/dist/utils/auth.js +4 -0
  319. package/dist/utils/auth.js.map +1 -1
  320. package/dist/utils/cli-updater.d.ts +7 -0
  321. package/dist/utils/cli-updater.d.ts.map +1 -1
  322. package/dist/utils/cli-updater.js +21 -0
  323. package/dist/utils/cli-updater.js.map +1 -1
  324. package/dist/utils/paths.d.ts +1 -1
  325. package/dist/utils/paths.d.ts.map +1 -1
  326. package/dist/utils/paths.js +1 -1
  327. package/dist/utils/paths.js.map +1 -1
  328. package/dist/utils/pricing.json +9 -1
  329. package/dist/utils/processes.d.ts.map +1 -1
  330. package/dist/utils/processes.js +3 -2
  331. package/dist/utils/processes.js.map +1 -1
  332. package/dist/utils/project-root.d.ts +10 -0
  333. package/dist/utils/project-root.d.ts.map +1 -0
  334. package/dist/utils/project-root.js +25 -0
  335. package/dist/utils/project-root.js.map +1 -0
  336. package/dist/utils/sdk-client.d.ts.map +1 -1
  337. package/dist/utils/sdk-client.js +4 -0
  338. package/dist/utils/sdk-client.js.map +1 -1
  339. package/dist/utils/system-proxy-dispatcher.d.ts +8 -0
  340. package/dist/utils/system-proxy-dispatcher.d.ts.map +1 -0
  341. package/dist/utils/system-proxy-dispatcher.js +100 -0
  342. package/dist/utils/system-proxy-dispatcher.js.map +1 -0
  343. package/dist/utils/system-proxy.d.ts +115 -0
  344. package/dist/utils/system-proxy.d.ts.map +1 -0
  345. package/dist/utils/system-proxy.js +899 -0
  346. package/dist/utils/system-proxy.js.map +1 -0
  347. package/dist/utils/windows-path.d.ts +5 -0
  348. package/dist/utils/windows-path.d.ts.map +1 -1
  349. package/dist/utils/windows-path.js +1 -1
  350. package/dist/utils/windows-path.js.map +1 -1
  351. package/package.json +5 -2
  352. package/scripts/bundle-statusline.mjs +14 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,wBAAgB,YAAY,CAC1B,YAAY,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACxD,OAAO,EAAE,OAAO,GACf,UAAU,CAUZ;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAElE;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC,CAoB9C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,EAAE,CAAC,CASvB"}
@@ -0,0 +1,45 @@
1
+ import { thoughtsToToolCalls } from "./normalize.js";
2
+ export function toTranscript(conversation, history) {
3
+ const items = Array.isArray(history) ? history : [];
4
+ const turns = items
5
+ .filter((item) => !!item && typeof item === "object")
6
+ .map((item) => ({
7
+ role: String(item.role ?? ""),
8
+ message: String(item.message ?? ""),
9
+ tool_calls: thoughtsToToolCalls(item.thoughts),
10
+ }));
11
+ return { id: conversation.id, date: conversation.date, name: conversation.name, turns };
12
+ }
13
+ const UUID = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
14
+ export function extractConversationId(value) {
15
+ return UUID.exec(value)?.[0] ?? null;
16
+ }
17
+ export async function loadTranscriptsByIds(client, idsOrLinks) {
18
+ const out = [];
19
+ for (const value of idsOrLinks) {
20
+ const id = extractConversationId(value);
21
+ if (!id) {
22
+ out.push({ id: value, error: "No conversation ID found" });
23
+ continue;
24
+ }
25
+ try {
26
+ const details = (await client.conversations.get(id));
27
+ out.push(toTranscript({ id, date: details.date ?? "", name: details.conversation_name ?? "" }, details.history));
28
+ }
29
+ catch (error) {
30
+ out.push({ id, error: error instanceof Error ? error.message : String(error) });
31
+ }
32
+ }
33
+ return out;
34
+ }
35
+ export async function loadTranscripts(client, assistantId, limit) {
36
+ const conversations = await client.conversations.listByAssistantId(assistantId);
37
+ const newest = [...conversations].sort((a, b) => b.date.localeCompare(a.date)).slice(0, limit);
38
+ const transcripts = [];
39
+ for (const conversation of newest) {
40
+ const details = await client.conversations.get(conversation.id);
41
+ transcripts.push(toTranscript(conversation, details.history));
42
+ }
43
+ return transcripts;
44
+ }
45
+ //# sourceMappingURL=conversations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/conversations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ToolCall } from "./types.js";
2
+ export declare const EXCERPT_LIMIT = 500;
3
+ export declare function truncate(value: string, max?: number): string;
4
+ /**
5
+ * Tool invocations appear in `thoughts` with author_type "Tool" and the tool's display name
6
+ * (e.g. "Get Project Dna" for MCP tool get_project_dna).
7
+ */
8
+ export declare function isToolThought(thought: Record<string, unknown>): boolean;
9
+ export declare function thoughtsToToolCalls(thoughts: unknown): ToolCall[];
10
+ export declare function generatedToText(generated: unknown): string;
11
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,aAAa,MAAM,CAAC;AAOjC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,CAE3E;AAKD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGvE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAAE,CAgBjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,43 @@
1
+ export const EXCERPT_LIMIT = 500;
2
+ function toText(value) {
3
+ if (value === null || value === undefined)
4
+ return "";
5
+ return typeof value === "string" ? value : JSON.stringify(value);
6
+ }
7
+ export function truncate(value, max = EXCERPT_LIMIT) {
8
+ return value.length > max ? `${value.slice(0, max)}…` : value;
9
+ }
10
+ /** The platform reports its own reasoning step as a "Tool" thought with this name. */
11
+ const REASONING_PSEUDO_TOOL = "codemie thoughts";
12
+ /**
13
+ * Tool invocations appear in `thoughts` with author_type "Tool" and the tool's display name
14
+ * (e.g. "Get Project Dna" for MCP tool get_project_dna).
15
+ */
16
+ export function isToolThought(thought) {
17
+ if (toText(thought.author_type).toLowerCase() !== "tool")
18
+ return false;
19
+ return toText(thought.author_name).trim().toLowerCase() !== REASONING_PSEUDO_TOOL;
20
+ }
21
+ export function thoughtsToToolCalls(thoughts) {
22
+ if (!Array.isArray(thoughts))
23
+ return [];
24
+ const calls = [];
25
+ for (const entry of thoughts) {
26
+ if (!entry || typeof entry !== "object")
27
+ continue;
28
+ const thought = entry;
29
+ if (!isToolThought(thought))
30
+ continue;
31
+ calls.push({
32
+ name: toText(thought.author_name) || "unknown",
33
+ input: truncate(toText(thought.input_text)),
34
+ output_excerpt: truncate(toText(thought.message)),
35
+ error: thought.error === true,
36
+ });
37
+ }
38
+ return calls;
39
+ }
40
+ export function generatedToText(generated) {
41
+ return toText(generated);
42
+ }
43
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/normalize.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,MAAc,aAAa;IACjE,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC;AAED,sFAAsF;AACtF,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgC;IAC5D,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACvE,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,qBAAqB,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAiB;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,OAAO,GAAG,KAAgC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS;YAC9C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ScenarioRun } from "./runner.js";
2
+ import type { CheckVerdict, RunSummary, ScenarioFile } from "./types.js";
3
+ export declare function buildRunSummary(assistantId: string, version: number | null, startedAt: Date, finishedAt: Date, runs: ScenarioRun[]): RunSummary;
4
+ export declare function writeRunOutput(outDir: string, input: {
5
+ scenarioFile: ScenarioFile;
6
+ runs: ScenarioRun[];
7
+ checks: CheckVerdict[];
8
+ summary: RunSummary;
9
+ }): Promise<void>;
10
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMzE,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,IAAI,EAChB,IAAI,EAAE,WAAW,EAAE,GAClB,UAAU,CAWZ;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GACtG,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -0,0 +1,29 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ async function writeJson(path, data) {
4
+ await writeFile(path, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
5
+ }
6
+ export function buildRunSummary(assistantId, version, startedAt, finishedAt, runs) {
7
+ const errors = runs.filter((r) => r.result.status === "error").length;
8
+ return {
9
+ assistant_id: assistantId,
10
+ version,
11
+ started_at: startedAt.toISOString(),
12
+ finished_at: finishedAt.toISOString(),
13
+ total: runs.length,
14
+ ok: runs.length - errors,
15
+ errors,
16
+ };
17
+ }
18
+ export async function writeRunOutput(outDir, input) {
19
+ await mkdir(join(outDir, "results"), { recursive: true });
20
+ await mkdir(join(outDir, "raw"), { recursive: true });
21
+ for (const run of input.runs) {
22
+ await writeJson(join(outDir, "results", `${run.result.scenario_id}.json`), run.result);
23
+ await writeJson(join(outDir, "raw", `${run.result.scenario_id}.json`), run.rawThoughts);
24
+ }
25
+ await writeJson(join(outDir, "scenarios.json"), input.scenarioFile);
26
+ await writeJson(join(outDir, "checks.json"), { checks: input.checks });
27
+ await writeJson(join(outDir, "run.json"), input.summary);
28
+ }
29
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sdk/assistant-builder/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAa;IAClD,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,OAAsB,EACtB,SAAe,EACf,UAAgB,EAChB,IAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACtE,OAAO;QACL,YAAY,EAAE,WAAW;QACzB,OAAO;QACP,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE;QACrC,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;QACxB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,KAAuG;IAEvG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,OAAO,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Verdict } from "../types.js";
2
+ import { type IterationData } from "./workspace.js";
3
+ export type CheckStatus = "fixed" | "regressed" | "still_failing" | "still_passing" | "new" | "expectation_changed" | "not_graded";
4
+ export interface ClassifiedCheck {
5
+ scenario_id: string;
6
+ check_id: string;
7
+ text: string;
8
+ status: CheckStatus;
9
+ verdict: Verdict | null;
10
+ reason: string;
11
+ }
12
+ export interface RoundScore {
13
+ version: number;
14
+ passed: number;
15
+ total: number;
16
+ graded: boolean;
17
+ fixed: string[];
18
+ regressed: string[];
19
+ }
20
+ export declare function classifyIteration(current: IterationData, previous?: IterationData): ClassifiedCheck[];
21
+ export declare function scoreRounds(iterations: IterationData[]): RoundScore[];
22
+ export declare function bestVersion(rounds: RoundScore[]): number | null;
23
+ //# sourceMappingURL=compare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/compare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,WAAW,GACX,eAAe,GACf,eAAe,GACf,KAAK,GACL,qBAAqB,GACrB,YAAY,CAAC;AAEjB,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAUD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE,CA8BrG;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,CAarE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAS/D"}
@@ -0,0 +1,66 @@
1
+ import { checkKey } from "./workspace.js";
2
+ function checkTexts(iteration) {
3
+ const texts = new Map();
4
+ for (const scenario of iteration.scenarios?.scenarios ?? []) {
5
+ for (const check of scenario.checks)
6
+ texts.set(checkKey(scenario.id, check.id), check.text);
7
+ }
8
+ return texts;
9
+ }
10
+ export function classifyIteration(current, previous) {
11
+ const prevTexts = previous ? checkTexts(previous) : new Map();
12
+ const out = [];
13
+ for (const [key, text] of checkTexts(current)) {
14
+ const [scenarioId, checkId] = key.split("/");
15
+ const verdict = current.verdicts?.get(key) ?? null;
16
+ const base = { scenario_id: scenarioId, check_id: checkId, text, verdict: verdict?.verdict ?? null, reason: verdict?.reason ?? "" };
17
+ if (!verdict) {
18
+ out.push({ ...base, status: "not_graded" });
19
+ continue;
20
+ }
21
+ const prevText = prevTexts.get(key);
22
+ if (!previous || prevText === undefined) {
23
+ out.push({ ...base, status: "new" });
24
+ continue;
25
+ }
26
+ if (prevText !== text) {
27
+ out.push({ ...base, status: "expectation_changed" });
28
+ continue;
29
+ }
30
+ const prevPassed = previous.verdicts?.get(key)?.verdict === "pass";
31
+ const nowPassed = verdict.verdict === "pass";
32
+ const status = nowPassed
33
+ ? prevPassed ? "still_passing" : "fixed"
34
+ : prevPassed ? "regressed" : "still_failing";
35
+ out.push({ ...base, status });
36
+ }
37
+ return out;
38
+ }
39
+ export function scoreRounds(iterations) {
40
+ return iterations.map((iteration, index) => {
41
+ const classified = classifyIteration(iteration, index > 0 ? iterations[index - 1] : undefined);
42
+ const keyOf = (c) => checkKey(c.scenario_id, c.check_id);
43
+ return {
44
+ version: iteration.version,
45
+ passed: classified.filter((c) => c.verdict === "pass").length,
46
+ total: classified.length,
47
+ graded: iteration.verdicts !== null,
48
+ fixed: classified.filter((c) => c.status === "fixed").map(keyOf),
49
+ regressed: classified.filter((c) => c.status === "regressed").map(keyOf),
50
+ };
51
+ });
52
+ }
53
+ export function bestVersion(rounds) {
54
+ const graded = rounds.filter((r) => r.graded);
55
+ if (graded.length === 0)
56
+ return null;
57
+ const best = graded.reduce((a, b) => {
58
+ if (b.passed !== a.passed)
59
+ return b.passed > a.passed ? b : a;
60
+ if (b.regressed.length !== a.regressed.length)
61
+ return b.regressed.length < a.regressed.length ? b : a;
62
+ return b.version > a.version ? b : a;
63
+ });
64
+ return best.version;
65
+ }
66
+ //# sourceMappingURL=compare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/compare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ReportSummary } from "./summary.js";
2
+ import type { IterationData } from "./workspace.js";
3
+ export declare function escapeHtml(value: string): string;
4
+ export declare function renderHtmlReport(input: {
5
+ assistantName: string;
6
+ summary: ReportSummary;
7
+ iterations: IterationData[];
8
+ }): string;
9
+ //# sourceMappingURL=html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/html.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AA4DD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG,MAAM,CAwB9H"}
@@ -0,0 +1,87 @@
1
+ import { classifyIteration } from "./compare.js";
2
+ export function escapeHtml(value) {
3
+ return value
4
+ .replace(/&/g, "&amp;")
5
+ .replace(/</g, "&lt;")
6
+ .replace(/>/g, "&gt;")
7
+ .replace(/"/g, "&quot;")
8
+ .replace(/'/g, "&#39;");
9
+ }
10
+ const STYLE = `
11
+ :root{--bg:#1A1A1A;--card:#151515;--elev:#212224;--border:#333436;--text:#FFFFFF;--muted:#BBBBBB;
12
+ --ok:#259F4C;--ok-bg:#1B271F;--err:#F9303C;--err-bg:#262121;--warn:#E8A33D;
13
+ --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--mono:'JetBrains Mono','Fira Code',monospace}
14
+ *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font)}
15
+ main{max-width:1100px;margin:0 auto;padding:24px 16px}h1{font-size:24px;margin:0 0 4px}h2{font-size:16px;color:var(--muted);margin:32px 0 12px}
16
+ .meta{color:var(--muted)}.cards{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
17
+ .card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 16px;min-width:140px}
18
+ .card b{display:block;font-size:20px}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:8px}
19
+ th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--elev);color:var(--muted);font-weight:500}
20
+ .pass{color:var(--ok)}.fail,.regressed{color:var(--err)}.error,.blocked,.not_graded{color:var(--warn)}
21
+ details{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:8px 0;padding:8px 12px}
22
+ summary{cursor:pointer}pre{white-space:pre-wrap;word-break:break-word;font:12px/1.5 var(--mono);background:var(--elev);padding:8px;border-radius:6px}
23
+ .bar{display:inline-block;height:8px;background:var(--ok);border-radius:4px;vertical-align:middle}`;
24
+ const VERDICT_CLASSES = new Set(["pass", "fail", "error", "blocked"]);
25
+ function statusCell(check) {
26
+ const verdict = check.verdict && VERDICT_CLASSES.has(check.verdict) ? check.verdict : "not_graded";
27
+ return `<span class="${verdict}">${escapeHtml(verdict)}</span> <span class="meta">${escapeHtml(check.status.replace(/_/g, " "))}</span>`;
28
+ }
29
+ function roundsTable(summary, iterations) {
30
+ const rows = summary.rounds.map((round) => {
31
+ const change = iterations.find((i) => i.version === round.version)?.change ?? "";
32
+ const width = round.total ? Math.round((round.passed / round.total) * 120) : 0;
33
+ return `<tr><td>v${round.version}${round.version === summary.best_version ? " ★" : ""}</td>
34
+ <td>${round.graded ? `<span class="bar" style="width:${width}px"></span> ${round.passed}/${round.total}` : '<span class="not_graded">not graded</span>'}</td>
35
+ <td class="fail">${escapeHtml(round.regressed.join(", "))}</td><td class="pass">${escapeHtml(round.fixed.join(", "))}</td>
36
+ <td><pre>${escapeHtml(change.trim())}</pre></td></tr>`;
37
+ });
38
+ return `<table><tr><th>Version</th><th>Passing</th><th>Regressed</th><th>Fixed</th><th>What changed</th></tr>${rows.join("")}</table>`;
39
+ }
40
+ function scenarioPanels(latest, classified) {
41
+ return (latest.scenarios?.scenarios ?? [])
42
+ .map((scenario) => {
43
+ const result = latest.results.get(scenario.id);
44
+ const checks = classified.filter((c) => c.scenario_id === scenario.id);
45
+ const passed = checks.filter((c) => c.verdict === "pass").length;
46
+ const turns = (result?.turns ?? [])
47
+ .map((turn) => {
48
+ const tools = turn.tool_calls
49
+ .map((t) => `<li>${escapeHtml(t.name)}${t.error ? ' <span class="fail">error</span>' : ""}<pre>${escapeHtml(t.input)}\n→ ${escapeHtml(t.output_excerpt)}</pre></li>`)
50
+ .join("");
51
+ return `<p><b>User:</b></p><pre>${escapeHtml(turn.user)}</pre><p><b>Assistant</b> <span class="meta">${escapeHtml(String(turn.latency_ms))} ms · ${escapeHtml(String(turn.tokens ?? "?"))} tokens</span></p><pre>${escapeHtml(turn.assistant)}</pre>${tools ? `<ul>${tools}</ul>` : ""}`;
52
+ })
53
+ .join("");
54
+ const error = result?.status === "error" ? `<p class="error">Run error: ${escapeHtml(result.error_message ?? "unknown")}</p>` : "";
55
+ const checkRows = checks
56
+ .map((c) => `<tr><td>${escapeHtml(c.check_id)}</td><td>${escapeHtml(c.text)}</td><td>${statusCell(c)}</td><td>${escapeHtml(c.reason)}</td></tr>`)
57
+ .join("");
58
+ return `<details${passed < checks.length ? " open" : ""}><summary>${escapeHtml(scenario.title)} <span class="meta">(${escapeHtml(scenario.id)}) · ${passed}/${checks.length}</span></summary>
59
+ ${error}<table><tr><th>Check</th><th>Expectation</th><th>Verdict</th><th>Reason</th></tr>${checkRows}</table>${turns}</details>`;
60
+ })
61
+ .join("");
62
+ }
63
+ export function renderHtmlReport(input) {
64
+ const { summary, iterations } = input;
65
+ const latest = iterations[iterations.length - 1];
66
+ const previous = iterations.length > 1 ? iterations[iterations.length - 2] : undefined;
67
+ const classified = classifyIteration(latest, previous);
68
+ const observations = summary.observations.map((o) => `<li>${escapeHtml(o)}</li>`).join("");
69
+ return `<!DOCTYPE html>
70
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
71
+ <title>${escapeHtml(input.assistantName)} · Assistant Test Report</title><style>${STYLE}</style></head>
72
+ <body><main>
73
+ <h1>${escapeHtml(input.assistantName)}</h1>
74
+ <div class="meta">Latest v${summary.latest_version}${summary.best_version !== null ? ` · best v${summary.best_version}` : ""}</div>
75
+ <div class="cards">
76
+ <div class="card"><span class="meta">Passing</span><b>${summary.latest.passed}/${summary.latest.total}</b></div>
77
+ <div class="card"><span class="meta">Fixed</span><b class="pass">${summary.latest.fixed.length}</b></div>
78
+ <div class="card"><span class="meta">Regressed</span><b class="fail">${summary.latest.regressed.length}</b></div>
79
+ <div class="card"><span class="meta">Rounds</span><b>${summary.rounds.length}</b></div>
80
+ </div>
81
+ <h2>Rounds</h2>${roundsTable(summary, iterations)}
82
+ ${observations ? `<h2>Observations</h2><ul>${observations}</ul>` : ""}
83
+ <h2>Scenarios (v${latest.version})</h2>${scenarioPanels(latest, classified)}
84
+ </main></body></html>
85
+ `;
86
+ }
87
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { type ClassifiedCheck, type RoundScore } from "./compare.js";
2
+ import { type IterationData } from "./workspace.js";
3
+ export interface VerdictCounts {
4
+ pass: number;
5
+ fail: number;
6
+ error: number;
7
+ blocked: number;
8
+ not_graded: number;
9
+ }
10
+ export interface ReportSummary {
11
+ latest_version: number;
12
+ best_version: number | null;
13
+ rounds: RoundScore[];
14
+ latest: {
15
+ passed: number;
16
+ total: number;
17
+ fixed: string[];
18
+ regressed: string[];
19
+ still_failing: string[];
20
+ not_graded: number;
21
+ counts: VerdictCounts;
22
+ };
23
+ confirmation: {
24
+ passed: number;
25
+ total: number;
26
+ } | null;
27
+ observations: string[];
28
+ }
29
+ export declare function buildReportSummary(iterations: IterationData[]): ReportSummary;
30
+ export declare function formatTerminalSummary(summary: ReportSummary, failures: ClassifiedCheck[]): string;
31
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAClH,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;IACF,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,CAkC7E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,CAgBjG"}
@@ -0,0 +1,56 @@
1
+ import { bestVersion, classifyIteration, scoreRounds } from "./compare.js";
2
+ import { checkKey } from "./workspace.js";
3
+ export function buildReportSummary(iterations) {
4
+ const rounds = scoreRounds(iterations);
5
+ const latest = iterations[iterations.length - 1];
6
+ const previous = iterations.length > 1 ? iterations[iterations.length - 2] : undefined;
7
+ const classified = classifyIteration(latest, previous);
8
+ const keys = (filter) => classified.filter(filter).map((c) => checkKey(c.scenario_id, c.check_id));
9
+ const confirmVerdicts = latest.confirm ? [...latest.confirm.values()] : null;
10
+ return {
11
+ latest_version: latest.version,
12
+ best_version: bestVersion(rounds),
13
+ rounds,
14
+ latest: {
15
+ passed: classified.filter((c) => c.verdict === "pass").length,
16
+ total: classified.length,
17
+ fixed: keys((c) => c.status === "fixed"),
18
+ regressed: keys((c) => c.status === "regressed"),
19
+ still_failing: keys((c) => c.verdict !== null && c.verdict !== "pass" && c.status !== "regressed"),
20
+ not_graded: classified.filter((c) => c.status === "not_graded").length,
21
+ counts: {
22
+ pass: classified.filter((c) => c.verdict === "pass").length,
23
+ fail: classified.filter((c) => c.verdict === "fail").length,
24
+ error: classified.filter((c) => c.verdict === "error").length,
25
+ blocked: classified.filter((c) => c.verdict === "blocked").length,
26
+ not_graded: classified.filter((c) => c.verdict === null).length,
27
+ },
28
+ },
29
+ confirmation: confirmVerdicts
30
+ ? { passed: confirmVerdicts.filter((v) => v.verdict === "pass").length, total: confirmVerdicts.length }
31
+ : null,
32
+ observations: latest.observations,
33
+ };
34
+ }
35
+ export function formatTerminalSummary(summary, failures) {
36
+ const lines = [];
37
+ lines.push(`Rounds: ${summary.rounds.map((r) => `v${r.version} ${r.graded ? `${r.passed}/${r.total}` : "not graded"}`).join(" → ")}`);
38
+ lines.push(`Latest v${summary.latest_version}: ${summary.latest.passed}/${summary.latest.total} checks pass` +
39
+ (summary.best_version !== null ? ` · best v${summary.best_version}` : ""));
40
+ if (summary.confirmation) {
41
+ lines.push(`Confirmation run: ${summary.confirmation.passed}/${summary.confirmation.total}`);
42
+ }
43
+ if (summary.latest.fixed.length)
44
+ lines.push(`Fixed: ${summary.latest.fixed.join(", ")}`);
45
+ if (summary.latest.regressed.length)
46
+ lines.push(`Regressed: ${summary.latest.regressed.join(", ")}`);
47
+ if (summary.latest.still_failing.length)
48
+ lines.push(`Still failing: ${summary.latest.still_failing.join(", ")}`);
49
+ if (summary.latest.not_graded)
50
+ lines.push(`Not graded: ${summary.latest.not_graded}`);
51
+ for (const failure of failures.slice(0, 3)) {
52
+ lines.push(` ✗ ${failure.scenario_id}/${failure.check_id} — ${failure.text}: ${failure.reason}`);
53
+ }
54
+ return lines.join("\n");
55
+ }
56
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAyC,MAAM,cAAc,CAAC;AAClH,OAAO,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AA2B9D,MAAM,UAAU,kBAAkB,CAAC,UAA2B;IAC5D,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,MAAuC,EAAY,EAAE,CACjE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE5E,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,OAAO;QAC9B,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC;QACjC,MAAM;QACN,MAAM,EAAE;YACN,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM;YAC7D,KAAK,EAAE,UAAU,CAAC,MAAM;YACxB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;YAChD,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;YAClG,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,MAAM;YACtE,MAAM,EAAE;gBACN,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM;gBAC3D,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM;gBAC3D,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM;gBAC7D,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,MAAM;gBACjE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,MAAM;aAChE;SACF;QACD,YAAY,EAAE,eAAe;YAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE;YACvG,CAAC,CAAC,IAAI;QACR,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAsB,EAAE,QAA2B;IACvF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtI,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,cAAc;QAC1G,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzF,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjH,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { CheckVerdict, ScenarioFile, ScenarioResult } from "../types.js";
2
+ export interface IterationData {
3
+ version: number;
4
+ dir: string;
5
+ scenarios: ScenarioFile | null;
6
+ results: Map<string, ScenarioResult>;
7
+ verdicts: Map<string, CheckVerdict> | null;
8
+ observations: string[];
9
+ change: string | null;
10
+ confirm: Map<string, CheckVerdict> | null;
11
+ }
12
+ export declare function checkKey(scenarioId: string, checkId: string): string;
13
+ /**
14
+ * Deterministic tool checks win over the grader, except where the grader marked a check
15
+ * blocked or error — a missing integration or a failed run is not a prompt failure.
16
+ */
17
+ export declare function mergeVerdicts(deterministic: CheckVerdict[], graded: CheckVerdict[]): Map<string, CheckVerdict>;
18
+ export declare function loadWorkspace(dir: string): Promise<IterationData[]>;
19
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/sdk/assistant-builder/report/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAA2B,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAU9G;AAqDD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAqCzE"}