@sentry/warden 0.22.0 → 0.24.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 (310) hide show
  1. package/.oxlintrc.json +169 -0
  2. package/CHANGELOG.md +427 -0
  3. package/README.md +4 -1
  4. package/dist/cli/args.d.ts +6 -2
  5. package/dist/cli/args.d.ts.map +1 -1
  6. package/dist/cli/args.js +175 -207
  7. package/dist/cli/args.js.map +1 -1
  8. package/dist/cli/commands/add.d.ts.map +1 -1
  9. package/dist/cli/commands/add.js +16 -5
  10. package/dist/cli/commands/add.js.map +1 -1
  11. package/dist/cli/commands/build.d.ts +13 -0
  12. package/dist/cli/commands/build.d.ts.map +1 -0
  13. package/dist/cli/commands/build.js +384 -0
  14. package/dist/cli/commands/build.js.map +1 -0
  15. package/dist/cli/commands/init.d.ts.map +1 -1
  16. package/dist/cli/commands/init.js +13 -5
  17. package/dist/cli/commands/init.js.map +1 -1
  18. package/dist/cli/commands/runs.d.ts.map +1 -1
  19. package/dist/cli/commands/runs.js +12 -6
  20. package/dist/cli/commands/runs.js.map +1 -1
  21. package/dist/cli/commands/sync.d.ts.map +1 -1
  22. package/dist/cli/commands/sync.js +4 -1
  23. package/dist/cli/commands/sync.js.map +1 -1
  24. package/dist/cli/context.d.ts.map +1 -1
  25. package/dist/cli/context.js +8 -1
  26. package/dist/cli/context.js.map +1 -1
  27. package/dist/cli/files.d.ts.map +1 -1
  28. package/dist/cli/files.js +27 -9
  29. package/dist/cli/files.js.map +1 -1
  30. package/dist/cli/help.d.ts +4 -0
  31. package/dist/cli/help.d.ts.map +1 -0
  32. package/dist/cli/help.js +448 -0
  33. package/dist/cli/help.js.map +1 -0
  34. package/dist/cli/index.js +2 -13
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/cli/input.d.ts +12 -0
  37. package/dist/cli/input.d.ts.map +1 -1
  38. package/dist/cli/input.js +60 -0
  39. package/dist/cli/input.js.map +1 -1
  40. package/dist/cli/main.d.ts +41 -2
  41. package/dist/cli/main.d.ts.map +1 -1
  42. package/dist/cli/main.js +294 -75
  43. package/dist/cli/main.js.map +1 -1
  44. package/dist/cli/output/box.js +1 -1
  45. package/dist/cli/output/formatters.d.ts +10 -2
  46. package/dist/cli/output/formatters.d.ts.map +1 -1
  47. package/dist/cli/output/formatters.js +32 -9
  48. package/dist/cli/output/formatters.js.map +1 -1
  49. package/dist/cli/output/index.d.ts +1 -1
  50. package/dist/cli/output/index.d.ts.map +1 -1
  51. package/dist/cli/output/index.js +1 -1
  52. package/dist/cli/output/index.js.map +1 -1
  53. package/dist/cli/output/ink-runner.d.ts +3 -1
  54. package/dist/cli/output/ink-runner.d.ts.map +1 -1
  55. package/dist/cli/output/ink-runner.js +64 -28
  56. package/dist/cli/output/ink-runner.js.map +1 -1
  57. package/dist/cli/output/jsonl.d.ts +37 -0
  58. package/dist/cli/output/jsonl.d.ts.map +1 -1
  59. package/dist/cli/output/jsonl.js +6 -0
  60. package/dist/cli/output/jsonl.js.map +1 -1
  61. package/dist/cli/output/live-status.d.ts +48 -0
  62. package/dist/cli/output/live-status.d.ts.map +1 -0
  63. package/dist/cli/output/live-status.js +173 -0
  64. package/dist/cli/output/live-status.js.map +1 -0
  65. package/dist/cli/output/reporter.d.ts +4 -0
  66. package/dist/cli/output/reporter.d.ts.map +1 -1
  67. package/dist/cli/output/reporter.js +20 -3
  68. package/dist/cli/output/reporter.js.map +1 -1
  69. package/dist/cli/output/tasks.d.ts +8 -5
  70. package/dist/cli/output/tasks.d.ts.map +1 -1
  71. package/dist/cli/output/tasks.js +113 -71
  72. package/dist/cli/output/tasks.js.map +1 -1
  73. package/dist/cli/signals.d.ts +15 -0
  74. package/dist/cli/signals.d.ts.map +1 -0
  75. package/dist/cli/signals.js +26 -0
  76. package/dist/cli/signals.js.map +1 -0
  77. package/dist/config/loader.d.ts +48 -7
  78. package/dist/config/loader.d.ts.map +1 -1
  79. package/dist/config/loader.js +228 -32
  80. package/dist/config/loader.js.map +1 -1
  81. package/dist/config/schema.d.ts +55 -0
  82. package/dist/config/schema.d.ts.map +1 -1
  83. package/dist/config/schema.js +34 -2
  84. package/dist/config/schema.js.map +1 -1
  85. package/dist/diff/context.d.ts +9 -2
  86. package/dist/diff/context.d.ts.map +1 -1
  87. package/dist/diff/context.js +65 -17
  88. package/dist/diff/context.js.map +1 -1
  89. package/dist/evals/runner.d.ts.map +1 -1
  90. package/dist/evals/runner.js +16 -0
  91. package/dist/evals/runner.js.map +1 -1
  92. package/dist/event/context.d.ts.map +1 -1
  93. package/dist/event/context.js +1 -0
  94. package/dist/event/context.js.map +1 -1
  95. package/dist/event/schedule-context.d.ts.map +1 -1
  96. package/dist/event/schedule-context.js +1 -0
  97. package/dist/event/schedule-context.js.map +1 -1
  98. package/dist/index.d.ts +6 -6
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +3 -3
  101. package/dist/index.js.map +1 -1
  102. package/dist/output/dedup.d.ts +8 -11
  103. package/dist/output/dedup.d.ts.map +1 -1
  104. package/dist/output/dedup.js +39 -37
  105. package/dist/output/dedup.js.map +1 -1
  106. package/dist/output/github-checks.d.ts +1 -0
  107. package/dist/output/github-checks.d.ts.map +1 -1
  108. package/dist/output/github-checks.js +9 -7
  109. package/dist/output/github-checks.js.map +1 -1
  110. package/dist/sdk/analyze.d.ts.map +1 -1
  111. package/dist/sdk/analyze.js +147 -277
  112. package/dist/sdk/analyze.js.map +1 -1
  113. package/dist/sdk/circuit-breaker.d.ts +26 -0
  114. package/dist/sdk/circuit-breaker.d.ts.map +1 -0
  115. package/dist/sdk/circuit-breaker.js +53 -0
  116. package/dist/sdk/circuit-breaker.js.map +1 -0
  117. package/dist/sdk/errors.d.ts +5 -0
  118. package/dist/sdk/errors.d.ts.map +1 -1
  119. package/dist/sdk/errors.js +27 -0
  120. package/dist/sdk/errors.js.map +1 -1
  121. package/dist/sdk/extract.d.ts +18 -9
  122. package/dist/sdk/extract.d.ts.map +1 -1
  123. package/dist/sdk/extract.js +95 -87
  124. package/dist/sdk/extract.js.map +1 -1
  125. package/dist/sdk/fix-quality.d.ts +5 -0
  126. package/dist/sdk/fix-quality.d.ts.map +1 -1
  127. package/dist/sdk/fix-quality.js +42 -23
  128. package/dist/sdk/fix-quality.js.map +1 -1
  129. package/dist/sdk/haiku.d.ts +6 -0
  130. package/dist/sdk/haiku.d.ts.map +1 -1
  131. package/dist/sdk/haiku.js +75 -49
  132. package/dist/sdk/haiku.js.map +1 -1
  133. package/dist/sdk/json-output.d.ts +31 -0
  134. package/dist/sdk/json-output.d.ts.map +1 -0
  135. package/dist/sdk/json-output.js +98 -0
  136. package/dist/sdk/json-output.js.map +1 -0
  137. package/dist/sdk/model-pricing.json +56 -16
  138. package/dist/sdk/post-process.d.ts +29 -0
  139. package/dist/sdk/post-process.d.ts.map +1 -0
  140. package/dist/sdk/post-process.js +65 -0
  141. package/dist/sdk/post-process.js.map +1 -0
  142. package/dist/sdk/prepare.d.ts.map +1 -1
  143. package/dist/sdk/prepare.js +4 -1
  144. package/dist/sdk/prepare.js.map +1 -1
  145. package/dist/sdk/pricing.d.ts +18 -0
  146. package/dist/sdk/pricing.d.ts.map +1 -1
  147. package/dist/sdk/pricing.js +108 -3
  148. package/dist/sdk/pricing.js.map +1 -1
  149. package/dist/sdk/prompt-sections.d.ts +56 -0
  150. package/dist/sdk/prompt-sections.d.ts.map +1 -0
  151. package/dist/sdk/prompt-sections.js +118 -0
  152. package/dist/sdk/prompt-sections.js.map +1 -0
  153. package/dist/sdk/prompt.d.ts +2 -17
  154. package/dist/sdk/prompt.d.ts.map +1 -1
  155. package/dist/sdk/prompt.js +15 -37
  156. package/dist/sdk/prompt.js.map +1 -1
  157. package/dist/sdk/report-files.d.ts +15 -0
  158. package/dist/sdk/report-files.d.ts.map +1 -0
  159. package/dist/sdk/report-files.js +20 -0
  160. package/dist/sdk/report-files.js.map +1 -0
  161. package/dist/sdk/runner.d.ts +9 -1
  162. package/dist/sdk/runner.d.ts.map +1 -1
  163. package/dist/sdk/runner.js +6 -0
  164. package/dist/sdk/runner.js.map +1 -1
  165. package/dist/sdk/runtimes/claude.d.ts +3 -0
  166. package/dist/sdk/runtimes/claude.d.ts.map +1 -0
  167. package/dist/sdk/runtimes/claude.js +376 -0
  168. package/dist/sdk/runtimes/claude.js.map +1 -0
  169. package/dist/sdk/runtimes/index.d.ts +12 -0
  170. package/dist/sdk/runtimes/index.d.ts.map +1 -0
  171. package/dist/sdk/runtimes/index.js +22 -0
  172. package/dist/sdk/runtimes/index.js.map +1 -0
  173. package/dist/sdk/runtimes/types.d.ts +116 -0
  174. package/dist/sdk/runtimes/types.d.ts.map +1 -0
  175. package/dist/sdk/runtimes/types.js +17 -0
  176. package/dist/sdk/runtimes/types.js.map +1 -0
  177. package/dist/sdk/types.d.ts +23 -2
  178. package/dist/sdk/types.d.ts.map +1 -1
  179. package/dist/sdk/types.js.map +1 -1
  180. package/dist/sdk/usage.d.ts +21 -6
  181. package/dist/sdk/usage.d.ts.map +1 -1
  182. package/dist/sdk/usage.js +36 -23
  183. package/dist/sdk/usage.js.map +1 -1
  184. package/dist/sdk/verify.d.ts +25 -0
  185. package/dist/sdk/verify.d.ts.map +1 -0
  186. package/dist/sdk/verify.js +226 -0
  187. package/dist/sdk/verify.js.map +1 -0
  188. package/dist/skill-builder/agentic.d.ts +33 -0
  189. package/dist/skill-builder/agentic.d.ts.map +1 -0
  190. package/dist/skill-builder/agentic.js +240 -0
  191. package/dist/skill-builder/agentic.js.map +1 -0
  192. package/dist/skill-builder/authoring-provider.d.ts +5 -0
  193. package/dist/skill-builder/authoring-provider.d.ts.map +1 -0
  194. package/dist/skill-builder/authoring-provider.js +70 -0
  195. package/dist/skill-builder/authoring-provider.js.map +1 -0
  196. package/dist/skill-builder/definition.d.ts +46 -0
  197. package/dist/skill-builder/definition.d.ts.map +1 -0
  198. package/dist/skill-builder/definition.js +171 -0
  199. package/dist/skill-builder/definition.js.map +1 -0
  200. package/dist/skill-builder/outline-contract.d.ts +113 -0
  201. package/dist/skill-builder/outline-contract.d.ts.map +1 -0
  202. package/dist/skill-builder/outline-contract.js +73 -0
  203. package/dist/skill-builder/outline-contract.js.map +1 -0
  204. package/dist/skill-builder/outline-state.d.ts +158 -0
  205. package/dist/skill-builder/outline-state.d.ts.map +1 -0
  206. package/dist/skill-builder/outline-state.js +87 -0
  207. package/dist/skill-builder/outline-state.js.map +1 -0
  208. package/dist/skill-builder/outline.d.ts +36 -0
  209. package/dist/skill-builder/outline.d.ts.map +1 -0
  210. package/dist/skill-builder/outline.js +345 -0
  211. package/dist/skill-builder/outline.js.map +1 -0
  212. package/dist/skill-builder/skill-contract.d.ts +97 -0
  213. package/dist/skill-builder/skill-contract.d.ts.map +1 -0
  214. package/dist/skill-builder/skill-contract.js +58 -0
  215. package/dist/skill-builder/skill-contract.js.map +1 -0
  216. package/dist/skill-builder/skill-prompts.d.ts +61 -0
  217. package/dist/skill-builder/skill-prompts.d.ts.map +1 -0
  218. package/dist/skill-builder/skill-prompts.js +285 -0
  219. package/dist/skill-builder/skill-prompts.js.map +1 -0
  220. package/dist/skill-builder/skill.d.ts +23 -0
  221. package/dist/skill-builder/skill.d.ts.map +1 -0
  222. package/dist/skill-builder/skill.js +563 -0
  223. package/dist/skill-builder/skill.js.map +1 -0
  224. package/dist/skills/index.d.ts +2 -2
  225. package/dist/skills/index.d.ts.map +1 -1
  226. package/dist/skills/index.js +1 -1
  227. package/dist/skills/index.js.map +1 -1
  228. package/dist/skills/loader.d.ts +20 -6
  229. package/dist/skills/loader.d.ts.map +1 -1
  230. package/dist/skills/loader.js +88 -141
  231. package/dist/skills/loader.js.map +1 -1
  232. package/dist/skills/remote.d.ts +11 -7
  233. package/dist/skills/remote.d.ts.map +1 -1
  234. package/dist/skills/remote.js +62 -162
  235. package/dist/skills/remote.js.map +1 -1
  236. package/dist/triggers/matcher.d.ts.map +1 -1
  237. package/dist/triggers/matcher.js +28 -15
  238. package/dist/triggers/matcher.js.map +1 -1
  239. package/dist/types/index.d.ts +40 -0
  240. package/dist/types/index.d.ts.map +1 -1
  241. package/dist/types/index.js +11 -0
  242. package/dist/types/index.js.map +1 -1
  243. package/dist/utils/index.d.ts +1 -0
  244. package/dist/utils/index.d.ts.map +1 -1
  245. package/dist/utils/index.js +1 -0
  246. package/dist/utils/index.js.map +1 -1
  247. package/dist/utils/path.d.ts +17 -0
  248. package/dist/utils/path.d.ts.map +1 -0
  249. package/dist/utils/path.js +36 -0
  250. package/dist/utils/path.js.map +1 -0
  251. package/package.json +8 -8
  252. package/policies/README.md +22 -0
  253. package/policies/code-comments.md +20 -0
  254. package/policies/policy-template.md +14 -0
  255. package/skills/warden/SPEC.md +112 -0
  256. package/skills/warden/references/cli-reference.md +2 -2
  257. package/skills/warden/references/config-schema.md +29 -13
  258. package/skills/warden/references/configuration.md +20 -8
  259. package/skills/warden/references/creating-skills.md +3 -0
  260. package/skills/warden-sweep/SPEC.md +126 -0
  261. package/src/builtin-skills/security-review/SKILL.md +81 -0
  262. package/src/builtin-skills/security-review/SPEC.md +77 -0
  263. package/src/builtin-skills/security-review/references/github-workflows.md +186 -0
  264. package/src/builtin-skills/security-review/references/javascript-typescript.md +69 -0
  265. package/src/builtin-skills/security-review/references/python.md +70 -0
  266. package/src/internal-skills/skill-writer/EVAL.md +124 -0
  267. package/src/internal-skills/skill-writer/SKILL.md +159 -0
  268. package/src/internal-skills/skill-writer/SOURCES.md +94 -0
  269. package/src/internal-skills/skill-writer/SPEC.md +153 -0
  270. package/src/internal-skills/skill-writer/references/artifact-layouts/argument-driven-skill-layout.md +32 -0
  271. package/src/internal-skills/skill-writer/references/artifact-layouts/asset-template-skill-layout.md +30 -0
  272. package/src/internal-skills/skill-writer/references/artifact-layouts/inline-skill-layout.md +28 -0
  273. package/src/internal-skills/skill-writer/references/artifact-layouts/reference-backed-skill-layout.md +35 -0
  274. package/src/internal-skills/skill-writer/references/artifact-layouts/script-backed-skill-layout.md +31 -0
  275. package/src/internal-skills/skill-writer/references/authoring-path.md +91 -0
  276. package/src/internal-skills/skill-writer/references/claude-code/argument-substitutions.md +20 -0
  277. package/src/internal-skills/skill-writer/references/claude-code/dynamic-context.md +16 -0
  278. package/src/internal-skills/skill-writer/references/claude-code/frontmatter-and-invocation.md +33 -0
  279. package/src/internal-skills/skill-writer/references/claude-code/hook-backed-skills.md +28 -0
  280. package/src/internal-skills/skill-writer/references/claude-code/subagent-fork-skills.md +22 -0
  281. package/src/internal-skills/skill-writer/references/description-optimization.md +28 -0
  282. package/src/internal-skills/skill-writer/references/design-principles.md +74 -0
  283. package/src/internal-skills/skill-writer/references/evaluation-path.md +73 -0
  284. package/src/internal-skills/skill-writer/references/examples/documentation-skill.md +70 -0
  285. package/src/internal-skills/skill-writer/references/examples/evaluator-loop-skill.md +38 -0
  286. package/src/internal-skills/skill-writer/references/examples/hook-backed-skill.md +39 -0
  287. package/src/internal-skills/skill-writer/references/examples/router-skill.md +41 -0
  288. package/src/internal-skills/skill-writer/references/examples/security-review-skill.md +69 -0
  289. package/src/internal-skills/skill-writer/references/examples/subagent-fork-skill.md +39 -0
  290. package/src/internal-skills/skill-writer/references/examples/workflow-process-skill.md +65 -0
  291. package/src/internal-skills/skill-writer/references/execution-shapes.md +68 -0
  292. package/src/internal-skills/skill-writer/references/iteration-evidence.md +82 -0
  293. package/src/internal-skills/skill-writer/references/iteration-path.md +40 -0
  294. package/src/internal-skills/skill-writer/references/mode-selection.md +67 -0
  295. package/src/internal-skills/skill-writer/references/output-contracts.md +68 -0
  296. package/src/internal-skills/skill-writer/references/reference-architecture.md +71 -0
  297. package/src/internal-skills/skill-writer/references/registration-validation.md +67 -0
  298. package/src/internal-skills/skill-writer/references/source-discovery.md +60 -0
  299. package/src/internal-skills/skill-writer/references/spec-template.md +118 -0
  300. package/src/internal-skills/skill-writer/references/structure-troubleshooting.md +111 -0
  301. package/src/internal-skills/skill-writer/references/synthesis-path.md +119 -0
  302. package/src/internal-skills/skill-writer/references/workflow-mechanics/evaluator-loops.md +25 -0
  303. package/src/internal-skills/skill-writer/references/workflow-mechanics/orchestrator-workers.md +25 -0
  304. package/src/internal-skills/skill-writer/references/workflow-mechanics/parallel-workflows.md +21 -0
  305. package/src/internal-skills/skill-writer/references/workflow-mechanics/plan-validate-execute.md +26 -0
  306. package/src/internal-skills/skill-writer/references/workflow-mechanics/prompt-chaining.md +24 -0
  307. package/src/internal-skills/skill-writer/references/workflow-mechanics/routing-workflows.md +28 -0
  308. package/src/internal-skills/skill-writer/references/workflow-mechanics/validation-loops.md +26 -0
  309. package/src/internal-skills/skill-writer/scripts/quick_validate.py +158 -0
  310. package/src/internal-skills/skill-writer/scripts/quick_validate_test.py +79 -0
package/dist/sdk/haiku.js CHANGED
@@ -15,7 +15,10 @@ const DEFAULT_MAX_TOKENS = 4096;
15
15
  */
16
16
  export function setGenAiResponseAttrs(span, usage, stopReason, responseText) {
17
17
  const cacheRead = usage.cache_read_input_tokens ?? 0;
18
- const cacheWrite = usage.cache_creation_input_tokens ?? 0;
18
+ const rawCacheWrite = usage.cache_creation_input_tokens ?? 0;
19
+ const tieredCacheWrite = (usage.cache_creation?.ephemeral_5m_input_tokens ?? 0) +
20
+ (usage.cache_creation?.ephemeral_1h_input_tokens ?? 0);
21
+ const cacheWrite = Math.max(rawCacheWrite, tieredCacheWrite);
19
22
  const totalInput = usage.input_tokens + cacheRead + cacheWrite;
20
23
  span.setAttribute('gen_ai.usage.input_tokens', totalInput);
21
24
  span.setAttribute('gen_ai.usage.output_tokens', usage.output_tokens);
@@ -29,19 +32,12 @@ export function setGenAiResponseAttrs(span, usage, stopReason, responseText) {
29
32
  span.setAttribute('gen_ai.response.text', JSON.stringify([responseText]));
30
33
  }
31
34
  }
32
- /**
33
- * Strip markdown code fences from text.
34
- */
35
- function stripCodeFences(text) {
36
- const match = text.match(/```[\w+#-]*\s*([\s\S]*?)```/);
37
- return match?.[1]?.trim() ?? text;
38
- }
39
35
  /**
40
36
  * Extract the first JSON object or array from LLM text.
41
37
  * Handles markdown code fences and prose before/after JSON.
42
38
  */
43
39
  export function extractJson(text) {
44
- const stripped = stripCodeFences(text).trim();
40
+ const stripped = text.trim();
45
41
  // Try parsing the whole thing first (common case: clean JSON output)
46
42
  try {
47
43
  JSON.parse(stripped);
@@ -50,39 +46,61 @@ export function extractJson(text) {
50
46
  catch {
51
47
  // Fall through to extraction
52
48
  }
53
- // Find first { or [
54
- const objStart = stripped.indexOf('{');
55
- const arrStart = stripped.indexOf('[');
56
- let start;
57
- if (objStart === -1) {
58
- start = arrStart;
59
- }
60
- else if (arrStart === -1) {
61
- start = objStart;
62
- }
63
- else {
64
- start = Math.min(objStart, arrStart);
65
- }
66
- if (start === -1) {
67
- return null;
68
- }
69
- // Find each potential closer and try parsing - first valid JSON wins
70
- const closer = stripped[start] === '{' ? '}' : ']';
71
- let searchFrom = start;
72
- while (true) {
73
- const end = stripped.indexOf(closer, searchFrom + 1);
74
- if (end === -1) {
75
- return null;
76
- }
77
- const candidate = stripped.slice(start, end + 1);
78
- try {
79
- JSON.parse(candidate);
80
- return candidate;
49
+ // Try every object/array opener. This handles prose, fenced JSON, orphaned
50
+ // prefill, and markdown fences embedded inside JSON string values.
51
+ for (let start = 0; start < stripped.length; start++) {
52
+ const opener = stripped[start];
53
+ if (opener !== '{' && opener !== '[') {
54
+ continue;
81
55
  }
82
- catch {
83
- searchFrom = end;
56
+ const stack = [opener === '{' ? '}' : ']'];
57
+ let inString = false;
58
+ let escape = false;
59
+ for (let i = start + 1; i < stripped.length; i++) {
60
+ const char = stripped[i];
61
+ if (escape) {
62
+ escape = false;
63
+ continue;
64
+ }
65
+ if (char === '\\' && inString) {
66
+ escape = true;
67
+ continue;
68
+ }
69
+ if (char === '"') {
70
+ inString = !inString;
71
+ continue;
72
+ }
73
+ if (inString) {
74
+ continue;
75
+ }
76
+ if (char === '{') {
77
+ stack.push('}');
78
+ continue;
79
+ }
80
+ if (char === '[') {
81
+ stack.push(']');
82
+ continue;
83
+ }
84
+ const expectedCloser = stack[stack.length - 1];
85
+ if (char === '}' || char === ']') {
86
+ if (char !== expectedCloser) {
87
+ break;
88
+ }
89
+ stack.pop();
90
+ if (stack.length === 0) {
91
+ const candidate = stripped.slice(start, i + 1);
92
+ try {
93
+ JSON.parse(candidate);
94
+ return candidate;
95
+ }
96
+ catch {
97
+ break;
98
+ }
99
+ }
100
+ }
84
101
  }
85
102
  }
103
+ return null;
86
104
  }
87
105
  /**
88
106
  * Infer prefill character from schema type to force JSON output.
@@ -101,14 +119,14 @@ function inferPrefill(schema) {
101
119
  * Auto-prefills based on Zod schema type, extracts JSON, validates with Zod.
102
120
  */
103
121
  export async function callHaiku(options) {
104
- const { apiKey, prompt, schema, maxTokens = DEFAULT_MAX_TOKENS, timeout = DEFAULT_TIMEOUT_MS, maxRetries = DEFAULT_AUXILIARY_MAX_RETRIES } = options;
122
+ const { apiKey, prompt, schema, model = HAIKU_MODEL, maxTokens = DEFAULT_MAX_TOKENS, timeout = DEFAULT_TIMEOUT_MS, maxRetries = DEFAULT_AUXILIARY_MAX_RETRIES } = options;
105
123
  return Sentry.startSpan({
106
124
  op: 'gen_ai.chat',
107
- name: `chat ${HAIKU_MODEL}`,
125
+ name: `chat ${model}`,
108
126
  attributes: {
109
127
  'gen_ai.operation.name': 'chat',
110
128
  'gen_ai.provider.name': 'anthropic',
111
- 'gen_ai.request.model': HAIKU_MODEL,
129
+ 'gen_ai.request.model': model,
112
130
  'gen_ai.request.max_tokens': maxTokens,
113
131
  },
114
132
  }, async (span) => {
@@ -123,11 +141,11 @@ export async function callHaiku(options) {
123
141
  span.setAttribute('gen_ai.request.messages', JSON.stringify(messages));
124
142
  try {
125
143
  const response = await client.messages.create({
126
- model: HAIKU_MODEL,
144
+ model,
127
145
  max_tokens: maxTokens,
128
146
  messages,
129
147
  });
130
- const usage = apiUsageToStats(HAIKU_MODEL, response.usage);
148
+ const usage = apiUsageToStats(model, response.usage);
131
149
  const content = response.content[0];
132
150
  if (!content || content.type !== 'text') {
133
151
  setGenAiResponseAttrs(span, response.usage, response.stop_reason);
@@ -161,14 +179,14 @@ export async function callHaiku(options) {
161
179
  * Accumulates usage across all iterations.
162
180
  */
163
181
  export async function callHaikuWithTools(options) {
164
- const { apiKey, prompt, schema, tools, executeTool, maxTokens = DEFAULT_MAX_TOKENS, maxIterations = 5, timeout = DEFAULT_TIMEOUT_MS, maxRetries = DEFAULT_AUXILIARY_MAX_RETRIES, } = options;
182
+ const { apiKey, prompt, schema, tools, executeTool, model = HAIKU_MODEL, maxTokens = DEFAULT_MAX_TOKENS, maxIterations = 5, timeout = DEFAULT_TIMEOUT_MS, maxRetries = DEFAULT_AUXILIARY_MAX_RETRIES, } = options;
165
183
  return Sentry.startSpan({
166
184
  op: 'gen_ai.chat',
167
- name: `chat ${HAIKU_MODEL}`,
185
+ name: `chat ${model}`,
168
186
  attributes: {
169
187
  'gen_ai.operation.name': 'chat',
170
188
  'gen_ai.provider.name': 'anthropic',
171
- 'gen_ai.request.model': HAIKU_MODEL,
189
+ 'gen_ai.request.model': model,
172
190
  'gen_ai.request.max_tokens': maxTokens,
173
191
  },
174
192
  }, async (span) => {
@@ -187,6 +205,10 @@ export async function callHaikuWithTools(options) {
187
205
  output_tokens: 0,
188
206
  cache_read_input_tokens: 0,
189
207
  cache_creation_input_tokens: 0,
208
+ cache_creation: {
209
+ ephemeral_5m_input_tokens: 0,
210
+ ephemeral_1h_input_tokens: 0,
211
+ },
190
212
  };
191
213
  function setFinalSpanAttrs(stopReason, responseText) {
192
214
  setGenAiResponseAttrs(span, cumulativeUsage, stopReason, responseText);
@@ -198,7 +220,7 @@ export async function callHaikuWithTools(options) {
198
220
  let response;
199
221
  try {
200
222
  response = await client.messages.create({
201
- model: HAIKU_MODEL,
223
+ model,
202
224
  max_tokens: maxTokens,
203
225
  messages,
204
226
  tools,
@@ -208,11 +230,15 @@ export async function callHaikuWithTools(options) {
208
230
  const message = error instanceof Error ? error.message : String(error);
209
231
  return { success: false, error: message, usage: currentUsage() };
210
232
  }
211
- usages.push(apiUsageToStats(HAIKU_MODEL, response.usage));
233
+ usages.push(apiUsageToStats(model, response.usage));
212
234
  cumulativeUsage.input_tokens += response.usage.input_tokens;
213
235
  cumulativeUsage.output_tokens += response.usage.output_tokens;
214
236
  cumulativeUsage.cache_read_input_tokens += response.usage.cache_read_input_tokens ?? 0;
215
237
  cumulativeUsage.cache_creation_input_tokens += response.usage.cache_creation_input_tokens ?? 0;
238
+ cumulativeUsage.cache_creation.ephemeral_5m_input_tokens +=
239
+ response.usage.cache_creation?.ephemeral_5m_input_tokens ?? 0;
240
+ cumulativeUsage.cache_creation.ephemeral_1h_input_tokens +=
241
+ response.usage.cache_creation?.ephemeral_1h_input_tokens ?? 0;
216
242
  // Handle tool use
217
243
  if (response.stop_reason === 'tool_use') {
218
244
  const toolUseBlocks = response.content.filter((b) => b.type === 'tool_use');
@@ -1 +1 @@
1
- {"version":3,"file":"haiku.js","sourceRoot":"","sources":["../../src/sdk/haiku.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAI1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAC/C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAYhC;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAU,EACV,KAAuB,EACvB,UAA0B,EAC1B,YAAqB;IAErB,MAAM,SAAS,GAAG,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;IAC/D,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACrE,IAAI,CAAC,YAAY,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,YAAY,CAAC,uCAAuC,EAAE,UAAU,CAAC,CAAC;IACvE,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACjF,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACxD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9C,qEAAqE;IACrE,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IAED,oBAAoB;IACpB,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAa,CAAC;IAClB,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;SAAM,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,GAAG,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAqBD;;GAEG;AACH,SAAS,YAAY,CAAC,MAAiB;IACrC,6CAA6C;IAC7C,IAAI,MAAM,IAAI,MAAM,IAAK,MAA0C,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW;QAAE,OAAO,GAAG,CAAC;IAC9G,qBAAqB;IACrB,IAAI,MAAM,IAAI,MAAM,IAAK,MAA0C,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IAC7G,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,OAA4B;IAC7D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,kBAAkB,EAAE,OAAO,GAAG,kBAAkB,EAAE,UAAU,GAAG,6BAA6B,EAAE,GAAG,OAAO,CAAC;IAErJ,OAAO,MAAM,CAAC,SAAS,CACrB;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,QAAQ,WAAW,EAAE;QAC3B,UAAU,EAAE;YACV,uBAAuB,EAAE,MAAM;YAC/B,sBAAsB,EAAE,WAAW;YACnC,sBAAsB,EAAE,WAAW;YACnC,2BAA2B,EAAE,SAAS;SACvC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAErC,MAAM,QAAQ,GAA6B;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAClC,CAAC;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5C,KAAK,EAAE,WAAW;gBAClB,UAAU,EAAE,SAAS;gBACrB,QAAQ;aACT,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE3D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;YACvE,CAAC;YAED,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAC5B,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;YAChC,CAAC;YACD,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;YACvE,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE3C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;YAC3F,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;QACjE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAiBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAI,OAAqC;IAC/E,MAAM,EACJ,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,WAAW,EACX,SAAS,GAAG,kBAAkB,EAC9B,aAAa,GAAG,CAAC,EACjB,OAAO,GAAG,kBAAkB,EAC5B,UAAU,GAAG,6BAA6B,GAC3C,GAAG,OAAO,CAAC;IAEZ,OAAO,MAAM,CAAC,SAAS,CACrB;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,QAAQ,WAAW,EAAE;QAC3B,UAAU,EAAE;YACV,uBAAuB,EAAE,MAAM;YAC/B,sBAAsB,EAAE,WAAW;YACnC,sBAAsB,EAAE,WAAW;YACnC,2BAA2B,EAAE,SAAS;SACvC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9D,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,QAAQ,GAA6B;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAClC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,eAAe,GAAG;YACtB,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,uBAAuB,EAAE,CAAC;YAC1B,2BAA2B,EAAE,CAAC;SAC/B,CAAC;QAEF,SAAS,iBAAiB,CAAC,UAA0B,EAAE,YAAqB;YAC1E,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACzE,CAAC;QAED,SAAS,YAAY;YACnB,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACnE,CAAC;QAED,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;YAC/D,IAAI,QAA2B,CAAC;YAChC,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACtC,KAAK,EAAE,WAAW;oBAClB,UAAU,EAAE,SAAS;oBACrB,QAAQ;oBACR,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;YACnE,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,eAAe,CAAC,YAAY,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5D,eAAe,CAAC,aAAa,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9D,eAAe,CAAC,uBAAuB,IAAI,QAAQ,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;YACvF,eAAe,CAAC,2BAA2B,IAAI,QAAQ,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;YAE/F,kBAAkB;YAClB,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC3C,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAC1D,CAAC;gBAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChH,CAAC;gBAED,MAAM,WAAW,GAAqC,EAAE,CAAC;gBACzD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;oBAClC,MAAM,MAAM,CAAC,SAAS,CACpB;wBACE,EAAE,EAAE,qBAAqB;wBACzB,IAAI,EAAE,gBAAgB,KAAK,CAAC,IAAI,EAAE;wBAClC,UAAU,EAAE;4BACV,uBAAuB,EAAE,cAAc;4BACvC,kBAAkB,EAAE,KAAK,CAAC,IAAI;yBAC/B;qBACF,EACD,KAAK,IAAI,EAAE;wBACT,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAgC,CAAC,CAAC;4BACrF,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;wBACpF,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACtE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;wBACpG,CAAC;oBACH,CAAC,CACF,CAAC;gBACJ,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YAED,wDAAwD;YACxD,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,IAAI,QAAQ,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;gBACjF,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACrH,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CACrC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACnD,CAAC;YAEF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/F,CAAC;YAED,iBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAExD,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/F,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE3C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACnH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAChF,CAAC;QAED,uDAAuD;QACvD,iBAAiB,EAAE,CAAC;QAEpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;IAClG,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"haiku.js","sourceRoot":"","sources":["../../src/sdk/haiku.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { z } from 'zod';
2
+ import type { UsageStats } from '../types/index.js';
3
+ import { type Runtime, type RuntimeName } from './runtimes/index.js';
4
+ export type ParseJsonFromOutputResult<T> = {
5
+ success: true;
6
+ data: T;
7
+ json: string;
8
+ repaired: boolean;
9
+ usage?: UsageStats;
10
+ } | {
11
+ success: false;
12
+ error: string;
13
+ json?: string;
14
+ usage?: UsageStats;
15
+ };
16
+ export interface JsonOutputRepairOptions {
17
+ apiKey?: string;
18
+ runtime?: Runtime;
19
+ runtimeName?: RuntimeName;
20
+ model?: string;
21
+ maxRetries?: number;
22
+ maxTokens?: number;
23
+ timeout?: number;
24
+ }
25
+ export interface ParseJsonFromOutputOptions<T> {
26
+ output: string;
27
+ schema: z.ZodType<T>;
28
+ repair?: JsonOutputRepairOptions;
29
+ }
30
+ export declare function parseJsonFromOutput<T>(options: ParseJsonFromOutputOptions<T>): Promise<ParseJsonFromOutputResult<T>>;
31
+ //# sourceMappingURL=json-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-output.d.ts","sourceRoot":"","sources":["../../src/sdk/json-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAc,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMjF,MAAM,MAAM,yBAAyB,CAAC,CAAC,IACnC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,GAC/E;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAuFD,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAoBvC"}
@@ -0,0 +1,98 @@
1
+ import { extractJson } from './haiku.js';
2
+ import { buildJsonOutputSection, buildTaggedSection, joinPromptSections } from './prompt-sections.js';
3
+ import { getRuntime } from './runtimes/index.js';
4
+ const JSON_REPAIR_MAX_CHARS = 60_000;
5
+ const JSON_REPAIR_MAX_TOKENS = 16_384;
6
+ const JSON_REPAIR_TIMEOUT_MS = 30_000;
7
+ function truncateForRepair(output) {
8
+ if (output.length <= JSON_REPAIR_MAX_CHARS) {
9
+ return output;
10
+ }
11
+ return `${output.slice(0, JSON_REPAIR_MAX_CHARS)}\n[... truncated]`;
12
+ }
13
+ function validationError(error) {
14
+ return `validation_failed: ${error.message}`;
15
+ }
16
+ function parseExtractedJson(json, schema) {
17
+ let parsed;
18
+ try {
19
+ parsed = JSON.parse(json);
20
+ }
21
+ catch (error) {
22
+ const message = error instanceof Error ? error.message : String(error);
23
+ return { success: false, error: `invalid_json: ${message}`, json };
24
+ }
25
+ const validated = schema.safeParse(parsed);
26
+ if (!validated.success) {
27
+ return { success: false, error: validationError(validated.error), json };
28
+ }
29
+ return {
30
+ success: true,
31
+ data: validated.data,
32
+ json,
33
+ repaired: false,
34
+ };
35
+ }
36
+ async function repairJsonOutput(output, schema, reason, repair) {
37
+ if (!repair.apiKey) {
38
+ return {
39
+ success: false,
40
+ error: `${reason}; repair_skipped: missing_api_key`,
41
+ };
42
+ }
43
+ const runtime = repair.runtime ?? getRuntime(repair.runtimeName);
44
+ const result = await runtime.runAuxiliary({
45
+ task: 'extraction',
46
+ apiKey: repair.apiKey,
47
+ model: repair.model,
48
+ maxRetries: repair.maxRetries,
49
+ maxTokens: repair.maxTokens ?? JSON_REPAIR_MAX_TOKENS,
50
+ timeout: repair.timeout ?? JSON_REPAIR_TIMEOUT_MS,
51
+ schema,
52
+ prompt: joinPromptSections([
53
+ `<task>
54
+ Extract and repair the JSON value from this model output.
55
+ </task>`,
56
+ buildJsonOutputSection(`Return JSON accepted by the provided schema.
57
+ Preserve the model's structured content as much as possible.
58
+ If the output contains markdown fences, escaped newlines, or prose around JSON, remove only the wrapper/prose and repair JSON escaping.
59
+ Do not summarize or invent new content.`),
60
+ buildTaggedSection('parse_error', reason),
61
+ buildTaggedSection('model_output', truncateForRepair(output)),
62
+ ]),
63
+ });
64
+ if (!result.success) {
65
+ return {
66
+ success: false,
67
+ error: `${reason}; repair_failed: ${result.error}`,
68
+ usage: result.usage,
69
+ };
70
+ }
71
+ return {
72
+ success: true,
73
+ data: result.data,
74
+ json: JSON.stringify(result.data),
75
+ repaired: true,
76
+ usage: result.usage,
77
+ };
78
+ }
79
+ export async function parseJsonFromOutput(options) {
80
+ const json = extractJson(options.output);
81
+ if (!json) {
82
+ const reason = 'no_json';
83
+ if (options.repair) {
84
+ return repairJsonOutput(options.output, options.schema, reason, options.repair);
85
+ }
86
+ return { success: false, error: reason };
87
+ }
88
+ const parsed = parseExtractedJson(json, options.schema);
89
+ if (parsed.success || !options.repair) {
90
+ return parsed;
91
+ }
92
+ const repaired = await repairJsonOutput(options.output, options.schema, parsed.error, options.repair);
93
+ if (!repaired.success && parsed.json) {
94
+ return { ...repaired, json: parsed.json };
95
+ }
96
+ return repaired;
97
+ }
98
+ //# sourceMappingURL=json-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-output.js","sourceRoot":"","sources":["../../src/sdk/json-output.ts"],"names":[],"mappings":"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"}
@@ -3,96 +3,136 @@
3
3
  "inputPerMTok": 8,
4
4
  "outputPerMTok": 24,
5
5
  "cacheReadPerMTok": 0,
6
- "cacheWritePerMTok": 0
6
+ "cacheWritePerMTok": 0,
7
+ "cacheWrite1hPerMTok": 16,
8
+ "webSearchPer1K": 10
7
9
  },
8
10
  "claude-3-5-haiku-latest": {
9
11
  "inputPerMTok": 0.8,
10
12
  "outputPerMTok": 4,
11
13
  "cacheReadPerMTok": 0.08,
12
- "cacheWritePerMTok": 1
14
+ "cacheWritePerMTok": 1,
15
+ "cacheWrite1hPerMTok": 1.6,
16
+ "webSearchPer1K": 10
13
17
  },
14
18
  "claude-3-5-sonnet": {
15
19
  "inputPerMTok": 3,
16
20
  "outputPerMTok": 15,
17
21
  "cacheReadPerMTok": 0.3,
18
- "cacheWritePerMTok": 3.75
22
+ "cacheWritePerMTok": 3.75,
23
+ "cacheWrite1hPerMTok": 6,
24
+ "webSearchPer1K": 10
19
25
  },
20
26
  "claude-3-7-sonnet-latest": {
21
27
  "inputPerMTok": 3,
22
28
  "outputPerMTok": 15,
23
29
  "cacheReadPerMTok": 0.3,
24
- "cacheWritePerMTok": 3.75
30
+ "cacheWritePerMTok": 3.75,
31
+ "cacheWrite1hPerMTok": 6,
32
+ "webSearchPer1K": 10
25
33
  },
26
34
  "claude-3-haiku": {
27
35
  "inputPerMTok": 0.25,
28
36
  "outputPerMTok": 1.25,
29
37
  "cacheReadPerMTok": 0.03,
30
- "cacheWritePerMTok": 0.3
38
+ "cacheWritePerMTok": 0.3,
39
+ "cacheWrite1hPerMTok": 0.5,
40
+ "webSearchPer1K": 10
31
41
  },
32
42
  "claude-3-opus-latest": {
33
43
  "inputPerMTok": 15,
34
44
  "outputPerMTok": 75,
35
45
  "cacheReadPerMTok": 1.5,
36
- "cacheWritePerMTok": 18.75
46
+ "cacheWritePerMTok": 18.75,
47
+ "cacheWrite1hPerMTok": 30,
48
+ "webSearchPer1K": 10
37
49
  },
38
50
  "claude-3-sonnet": {
39
51
  "inputPerMTok": 3,
40
52
  "outputPerMTok": 15,
41
53
  "cacheReadPerMTok": 0.3,
42
- "cacheWritePerMTok": 3.75
54
+ "cacheWritePerMTok": 3.75,
55
+ "cacheWrite1hPerMTok": 6,
56
+ "webSearchPer1K": 10
43
57
  },
44
58
  "claude-haiku-4-5": {
45
59
  "inputPerMTok": 1,
46
60
  "outputPerMTok": 5,
47
61
  "cacheReadPerMTok": 0.1,
48
- "cacheWritePerMTok": 1.25
62
+ "cacheWritePerMTok": 1.25,
63
+ "cacheWrite1hPerMTok": 2,
64
+ "webSearchPer1K": 10
49
65
  },
50
66
  "claude-opus-4-0": {
51
67
  "inputPerMTok": 15,
52
68
  "outputPerMTok": 75,
53
69
  "cacheReadPerMTok": 1.5,
54
- "cacheWritePerMTok": 18.75
70
+ "cacheWritePerMTok": 18.75,
71
+ "cacheWrite1hPerMTok": 30,
72
+ "webSearchPer1K": 10
55
73
  },
56
74
  "claude-opus-4-1": {
57
75
  "inputPerMTok": 15,
58
76
  "outputPerMTok": 75,
59
77
  "cacheReadPerMTok": 1.5,
60
- "cacheWritePerMTok": 18.75
78
+ "cacheWritePerMTok": 18.75,
79
+ "cacheWrite1hPerMTok": 30,
80
+ "webSearchPer1K": 10
61
81
  },
62
82
  "claude-opus-4-5": {
63
83
  "inputPerMTok": 5,
64
84
  "outputPerMTok": 25,
65
85
  "cacheReadPerMTok": 0.5,
66
- "cacheWritePerMTok": 6.25
86
+ "cacheWritePerMTok": 6.25,
87
+ "cacheWrite1hPerMTok": 10,
88
+ "webSearchPer1K": 10
67
89
  },
68
90
  "claude-opus-4-6": {
69
91
  "inputPerMTok": 5,
70
92
  "outputPerMTok": 25,
71
93
  "cacheReadPerMTok": 0.5,
72
- "cacheWritePerMTok": 6.25
94
+ "cacheWritePerMTok": 6.25,
95
+ "cacheWrite1hPerMTok": 10,
96
+ "webSearchPer1K": 10
97
+ },
98
+ "claude-opus-4-7": {
99
+ "inputPerMTok": 5,
100
+ "outputPerMTok": 25,
101
+ "cacheReadPerMTok": 0.5,
102
+ "cacheWritePerMTok": 6.25,
103
+ "cacheWrite1hPerMTok": 10,
104
+ "webSearchPer1K": 10
73
105
  },
74
106
  "claude-sonnet-4-0": {
75
107
  "inputPerMTok": 3,
76
108
  "outputPerMTok": 15,
77
109
  "cacheReadPerMTok": 0.3,
78
- "cacheWritePerMTok": 3.75
110
+ "cacheWritePerMTok": 3.75,
111
+ "cacheWrite1hPerMTok": 6,
112
+ "webSearchPer1K": 10
79
113
  },
80
114
  "claude-sonnet-4-5": {
81
115
  "inputPerMTok": 3,
82
116
  "outputPerMTok": 15,
83
117
  "cacheReadPerMTok": 0.3,
84
- "cacheWritePerMTok": 3.75
118
+ "cacheWritePerMTok": 3.75,
119
+ "cacheWrite1hPerMTok": 6,
120
+ "webSearchPer1K": 10
85
121
  },
86
122
  "claude-sonnet-4-6": {
87
123
  "inputPerMTok": 3,
88
124
  "outputPerMTok": 15,
89
125
  "cacheReadPerMTok": 0.3,
90
- "cacheWritePerMTok": 3.75
126
+ "cacheWritePerMTok": 3.75,
127
+ "cacheWrite1hPerMTok": 6,
128
+ "webSearchPer1K": 10
91
129
  },
92
130
  "claude-v1": {
93
131
  "inputPerMTok": 8,
94
132
  "outputPerMTok": 24,
95
133
  "cacheReadPerMTok": 0,
96
- "cacheWritePerMTok": 0
134
+ "cacheWritePerMTok": 0,
135
+ "cacheWrite1hPerMTok": 16,
136
+ "webSearchPer1K": 10
97
137
  }
98
138
  }
@@ -0,0 +1,29 @@
1
+ import type { SkillDefinition } from '../config/schema.js';
2
+ import type { Finding } from '../types/index.js';
3
+ import type { PromptPRContext } from './prompt-sections.js';
4
+ import type { RuntimeName } from './runtimes/index.js';
5
+ import type { AuxiliaryUsageEntry, FindingProcessingEvent } from './types.js';
6
+ export interface PostProcessFindingsOptions {
7
+ skill: SkillDefinition;
8
+ repoPath: string;
9
+ apiKey?: string;
10
+ runtime?: RuntimeName;
11
+ auxiliaryModel?: string;
12
+ synthesisModel?: string;
13
+ auxiliaryMaxRetries?: number;
14
+ verifyFindings?: boolean;
15
+ maxTurns?: number;
16
+ abortController?: AbortController;
17
+ pathToClaudeCodeExecutable?: string;
18
+ prContext?: PromptPRContext;
19
+ onFindingProcessing?: (event: FindingProcessingEvent) => void;
20
+ }
21
+ export interface PostProcessFindingsResult {
22
+ findings: Finding[];
23
+ auxiliaryUsage: AuxiliaryUsageEntry[];
24
+ }
25
+ /**
26
+ * Run the shared post-analysis finding pipeline.
27
+ */
28
+ export declare function postProcessFindings(findings: Finding[], options: PostProcessFindingsOptions): Promise<PostProcessFindingsResult>;
29
+ //# sourceMappingURL=post-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-process.d.ts","sourceRoot":"","sources":["../../src/sdk/post-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAG9E,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,CAAC,CAoEpC"}
@@ -0,0 +1,65 @@
1
+ import { emitDedupMetrics, emitFixGateMetrics, logger } from '../sentry.js';
2
+ import { deduplicateFindings, mergeCrossLocationFindings } from './extract.js';
3
+ import { sanitizeFindingsSuggestedFixes } from './fix-quality.js';
4
+ import { verifyFindings } from './verify.js';
5
+ /**
6
+ * Run the shared post-analysis finding pipeline.
7
+ */
8
+ export async function postProcessFindings(findings, options) {
9
+ const auxiliaryUsage = [];
10
+ const uniqueFindings = deduplicateFindings(findings, options.onFindingProcessing);
11
+ emitDedupMetrics(options.skill.name, findings.length, uniqueFindings.length);
12
+ let currentFindings = uniqueFindings;
13
+ if (options.verifyFindings !== false) {
14
+ const verification = await verifyFindings(currentFindings, {
15
+ repoPath: options.repoPath,
16
+ skill: options.skill,
17
+ runtime: options.runtime,
18
+ model: options.auxiliaryModel,
19
+ maxTurns: options.maxTurns,
20
+ abortController: options.abortController,
21
+ pathToClaudeCodeExecutable: options.pathToClaudeCodeExecutable,
22
+ prContext: options.prContext,
23
+ onFindingProcessing: options.onFindingProcessing,
24
+ });
25
+ currentFindings = verification.findings;
26
+ if (verification.usage) {
27
+ auxiliaryUsage.push({ agent: 'verification', usage: verification.usage });
28
+ }
29
+ }
30
+ const mergeResult = await mergeCrossLocationFindings(currentFindings, {
31
+ apiKey: options.apiKey,
32
+ repoPath: options.repoPath,
33
+ runtime: options.runtime,
34
+ model: options.synthesisModel,
35
+ maxRetries: options.auxiliaryMaxRetries,
36
+ onFindingProcessing: options.onFindingProcessing,
37
+ });
38
+ currentFindings = mergeResult.findings;
39
+ if (mergeResult.usage) {
40
+ auxiliaryUsage.push({ agent: 'merge', usage: mergeResult.usage });
41
+ }
42
+ const sanitized = await sanitizeFindingsSuggestedFixes(currentFindings, {
43
+ repoPath: options.repoPath,
44
+ apiKey: options.apiKey,
45
+ runtime: options.runtime,
46
+ model: options.auxiliaryModel,
47
+ maxRetries: options.auxiliaryMaxRetries,
48
+ onFindingProcessing: options.onFindingProcessing,
49
+ });
50
+ currentFindings = sanitized.findings;
51
+ if (sanitized.usage) {
52
+ auxiliaryUsage.push({ agent: 'fix_gate', usage: sanitized.usage });
53
+ }
54
+ emitFixGateMetrics(options.skill.name, sanitized.stats.checked, sanitized.stats.strippedDeterministic, sanitized.stats.strippedSemantic, sanitized.stats.semanticUnavailable);
55
+ if (sanitized.stats.checked > 0) {
56
+ logger.info('Suggested fix quality gate', {
57
+ 'fix_gate.checked': sanitized.stats.checked,
58
+ 'fix_gate.stripped_deterministic': sanitized.stats.strippedDeterministic,
59
+ 'fix_gate.stripped_semantic': sanitized.stats.strippedSemantic,
60
+ 'fix_gate.semantic_unavailable': sanitized.stats.semanticUnavailable,
61
+ });
62
+ }
63
+ return { findings: currentFindings, auxiliaryUsage };
64
+ }
65
+ //# sourceMappingURL=post-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-process.js","sourceRoot":"","sources":["../../src/sdk/post-process.ts"],"names":[],"mappings":"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"}