praxis-agent 0.1.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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +534 -0
  3. package/dist/application/background-agent-manager.d.ts +66 -0
  4. package/dist/application/background-agent-manager.d.ts.map +1 -0
  5. package/dist/application/background-agent-manager.js +362 -0
  6. package/dist/application/background-agent-manager.js.map +1 -0
  7. package/dist/application/background-bash-manager.d.ts +54 -0
  8. package/dist/application/background-bash-manager.d.ts.map +1 -0
  9. package/dist/application/background-bash-manager.js +354 -0
  10. package/dist/application/background-bash-manager.js.map +1 -0
  11. package/dist/application/background-task-id.d.ts +5 -0
  12. package/dist/application/background-task-id.d.ts.map +1 -0
  13. package/dist/application/background-task-id.js +25 -0
  14. package/dist/application/background-task-id.js.map +1 -0
  15. package/dist/application/claude-project-purge.d.ts +50 -0
  16. package/dist/application/claude-project-purge.d.ts.map +1 -0
  17. package/dist/application/claude-project-purge.js +459 -0
  18. package/dist/application/claude-project-purge.js.map +1 -0
  19. package/dist/application/managed-worktree.d.ts +15 -0
  20. package/dist/application/managed-worktree.d.ts.map +1 -0
  21. package/dist/application/managed-worktree.js +127 -0
  22. package/dist/application/managed-worktree.js.map +1 -0
  23. package/dist/application/model-compactor.d.ts +8 -0
  24. package/dist/application/model-compactor.d.ts.map +1 -0
  25. package/dist/application/model-compactor.js +70 -0
  26. package/dist/application/model-compactor.js.map +1 -0
  27. package/dist/application/scheduled-prompt-manager.d.ts +69 -0
  28. package/dist/application/scheduled-prompt-manager.d.ts.map +1 -0
  29. package/dist/application/scheduled-prompt-manager.js +387 -0
  30. package/dist/application/scheduled-prompt-manager.js.map +1 -0
  31. package/dist/application/session-service.d.ts +142 -0
  32. package/dist/application/session-service.d.ts.map +1 -0
  33. package/dist/application/session-service.js +1690 -0
  34. package/dist/application/session-service.js.map +1 -0
  35. package/dist/application/session-worktree.d.ts +55 -0
  36. package/dist/application/session-worktree.d.ts.map +1 -0
  37. package/dist/application/session-worktree.js +311 -0
  38. package/dist/application/session-worktree.js.map +1 -0
  39. package/dist/application/subagent-service.d.ts +98 -0
  40. package/dist/application/subagent-service.d.ts.map +1 -0
  41. package/dist/application/subagent-service.js +1305 -0
  42. package/dist/application/subagent-service.js.map +1 -0
  43. package/dist/application/tool-use-summary.d.ts +8 -0
  44. package/dist/application/tool-use-summary.d.ts.map +1 -0
  45. package/dist/application/tool-use-summary.js +53 -0
  46. package/dist/application/tool-use-summary.js.map +1 -0
  47. package/dist/application/top-level-agent-manager.d.ts +58 -0
  48. package/dist/application/top-level-agent-manager.d.ts.map +1 -0
  49. package/dist/application/top-level-agent-manager.js +907 -0
  50. package/dist/application/top-level-agent-manager.js.map +1 -0
  51. package/dist/application/workflow-manager.d.ts +61 -0
  52. package/dist/application/workflow-manager.d.ts.map +1 -0
  53. package/dist/application/workflow-manager.js +582 -0
  54. package/dist/application/workflow-manager.js.map +1 -0
  55. package/dist/application/workflow-meta.d.ts +18 -0
  56. package/dist/application/workflow-meta.d.ts.map +1 -0
  57. package/dist/application/workflow-meta.js +146 -0
  58. package/dist/application/workflow-meta.js.map +1 -0
  59. package/dist/application/workflow-runtime.d.ts +29 -0
  60. package/dist/application/workflow-runtime.d.ts.map +1 -0
  61. package/dist/application/workflow-runtime.js +176 -0
  62. package/dist/application/workflow-runtime.js.map +1 -0
  63. package/dist/application/workflow-worktree.d.ts +9 -0
  64. package/dist/application/workflow-worktree.d.ts.map +1 -0
  65. package/dist/application/workflow-worktree.js +11 -0
  66. package/dist/application/workflow-worktree.js.map +1 -0
  67. package/dist/cli/agents-dashboard.d.ts +37 -0
  68. package/dist/cli/agents-dashboard.d.ts.map +1 -0
  69. package/dist/cli/agents-dashboard.js +408 -0
  70. package/dist/cli/agents-dashboard.js.map +1 -0
  71. package/dist/cli/controls.d.ts +15 -0
  72. package/dist/cli/controls.d.ts.map +1 -0
  73. package/dist/cli/controls.js +219 -0
  74. package/dist/cli/controls.js.map +1 -0
  75. package/dist/cli/debug.d.ts +13 -0
  76. package/dist/cli/debug.d.ts.map +1 -0
  77. package/dist/cli/debug.js +37 -0
  78. package/dist/cli/debug.js.map +1 -0
  79. package/dist/cli/interactive.d.ts +63 -0
  80. package/dist/cli/interactive.d.ts.map +1 -0
  81. package/dist/cli/interactive.js +600 -0
  82. package/dist/cli/interactive.js.map +1 -0
  83. package/dist/cli/protocol.d.ts +251 -0
  84. package/dist/cli/protocol.d.ts.map +1 -0
  85. package/dist/cli/protocol.js +2146 -0
  86. package/dist/cli/protocol.js.map +1 -0
  87. package/dist/cli.d.ts +116 -0
  88. package/dist/cli.d.ts.map +1 -0
  89. package/dist/cli.js +3901 -0
  90. package/dist/cli.js.map +1 -0
  91. package/dist/compatibility/claude/compaction.d.ts +19 -0
  92. package/dist/compatibility/claude/compaction.d.ts.map +1 -0
  93. package/dist/compatibility/claude/compaction.js +82 -0
  94. package/dist/compatibility/claude/compaction.js.map +1 -0
  95. package/dist/compatibility/claude/context.d.ts +24 -0
  96. package/dist/compatibility/claude/context.d.ts.map +1 -0
  97. package/dist/compatibility/claude/context.js +92 -0
  98. package/dist/compatibility/claude/context.js.map +1 -0
  99. package/dist/compatibility/claude/dynamic-context.d.ts +20 -0
  100. package/dist/compatibility/claude/dynamic-context.d.ts.map +1 -0
  101. package/dist/compatibility/claude/dynamic-context.js +168 -0
  102. package/dist/compatibility/claude/dynamic-context.js.map +1 -0
  103. package/dist/compatibility/claude/file-history.d.ts +14 -0
  104. package/dist/compatibility/claude/file-history.d.ts.map +1 -0
  105. package/dist/compatibility/claude/file-history.js +340 -0
  106. package/dist/compatibility/claude/file-history.js.map +1 -0
  107. package/dist/compatibility/claude/file-resources.d.ts +28 -0
  108. package/dist/compatibility/claude/file-resources.d.ts.map +1 -0
  109. package/dist/compatibility/claude/file-resources.js +168 -0
  110. package/dist/compatibility/claude/file-resources.js.map +1 -0
  111. package/dist/compatibility/claude/fork.d.ts +9 -0
  112. package/dist/compatibility/claude/fork.d.ts.map +1 -0
  113. package/dist/compatibility/claude/fork.js +225 -0
  114. package/dist/compatibility/claude/fork.js.map +1 -0
  115. package/dist/compatibility/claude/history.d.ts +4 -0
  116. package/dist/compatibility/claude/history.d.ts.map +1 -0
  117. package/dist/compatibility/claude/history.js +86 -0
  118. package/dist/compatibility/claude/history.js.map +1 -0
  119. package/dist/compatibility/claude/ownership.d.ts +87 -0
  120. package/dist/compatibility/claude/ownership.d.ts.map +1 -0
  121. package/dist/compatibility/claude/ownership.js +100 -0
  122. package/dist/compatibility/claude/ownership.js.map +1 -0
  123. package/dist/compatibility/claude/paths.d.ts +17 -0
  124. package/dist/compatibility/claude/paths.d.ts.map +1 -0
  125. package/dist/compatibility/claude/paths.js +54 -0
  126. package/dist/compatibility/claude/paths.js.map +1 -0
  127. package/dist/compatibility/claude/pr-links.d.ts +25 -0
  128. package/dist/compatibility/claude/pr-links.d.ts.map +1 -0
  129. package/dist/compatibility/claude/pr-links.js +80 -0
  130. package/dist/compatibility/claude/pr-links.js.map +1 -0
  131. package/dist/compatibility/claude/projection.d.ts +11 -0
  132. package/dist/compatibility/claude/projection.d.ts.map +1 -0
  133. package/dist/compatibility/claude/projection.js +325 -0
  134. package/dist/compatibility/claude/projection.js.map +1 -0
  135. package/dist/compatibility/claude/schema.d.ts +18 -0
  136. package/dist/compatibility/claude/schema.d.ts.map +1 -0
  137. package/dist/compatibility/claude/schema.js +983 -0
  138. package/dist/compatibility/claude/schema.js.map +1 -0
  139. package/dist/compatibility/claude/shared-resources.d.ts +51 -0
  140. package/dist/compatibility/claude/shared-resources.d.ts.map +1 -0
  141. package/dist/compatibility/claude/shared-resources.js +382 -0
  142. package/dist/compatibility/claude/shared-resources.js.map +1 -0
  143. package/dist/compatibility/claude/sidechain.d.ts +50 -0
  144. package/dist/compatibility/claude/sidechain.d.ts.map +1 -0
  145. package/dist/compatibility/claude/sidechain.js +90 -0
  146. package/dist/compatibility/claude/sidechain.js.map +1 -0
  147. package/dist/compatibility/claude/tool-links.d.ts +13 -0
  148. package/dist/compatibility/claude/tool-links.d.ts.map +1 -0
  149. package/dist/compatibility/claude/tool-links.js +61 -0
  150. package/dist/compatibility/claude/tool-links.js.map +1 -0
  151. package/dist/compatibility/claude/translation.d.ts +71 -0
  152. package/dist/compatibility/claude/translation.d.ts.map +1 -0
  153. package/dist/compatibility/claude/translation.js +443 -0
  154. package/dist/compatibility/claude/translation.js.map +1 -0
  155. package/dist/compatibility/claude/workflow-replay.d.ts +10 -0
  156. package/dist/compatibility/claude/workflow-replay.d.ts.map +1 -0
  157. package/dist/compatibility/claude/workflow-replay.js +66 -0
  158. package/dist/compatibility/claude/workflow-replay.js.map +1 -0
  159. package/dist/compatibility/claude/workflow.d.ts +33 -0
  160. package/dist/compatibility/claude/workflow.d.ts.map +1 -0
  161. package/dist/compatibility/claude/workflow.js +76 -0
  162. package/dist/compatibility/claude/workflow.js.map +1 -0
  163. package/dist/core/compaction.d.ts +16 -0
  164. package/dist/core/compaction.d.ts.map +1 -0
  165. package/dist/core/compaction.js +2 -0
  166. package/dist/core/compaction.js.map +1 -0
  167. package/dist/core/context-budget.d.ts +28 -0
  168. package/dist/core/context-budget.d.ts.map +1 -0
  169. package/dist/core/context-budget.js +108 -0
  170. package/dist/core/context-budget.js.map +1 -0
  171. package/dist/core/context.d.ts +16 -0
  172. package/dist/core/context.d.ts.map +1 -0
  173. package/dist/core/context.js +13 -0
  174. package/dist/core/context.js.map +1 -0
  175. package/dist/core/runtime.d.ts +394 -0
  176. package/dist/core/runtime.d.ts.map +1 -0
  177. package/dist/core/runtime.js +507 -0
  178. package/dist/core/runtime.js.map +1 -0
  179. package/dist/core/usage.d.ts +26 -0
  180. package/dist/core/usage.d.ts.map +1 -0
  181. package/dist/core/usage.js +133 -0
  182. package/dist/core/usage.js.map +1 -0
  183. package/dist/extensions/claude-extension-tools.d.ts +16 -0
  184. package/dist/extensions/claude-extension-tools.d.ts.map +1 -0
  185. package/dist/extensions/claude-extension-tools.js +78 -0
  186. package/dist/extensions/claude-extension-tools.js.map +1 -0
  187. package/dist/extensions/claude-extensions.d.ts +41 -0
  188. package/dist/extensions/claude-extensions.d.ts.map +1 -0
  189. package/dist/extensions/claude-extensions.js +270 -0
  190. package/dist/extensions/claude-extensions.js.map +1 -0
  191. package/dist/hooks/claude-hook-tools.d.ts +26 -0
  192. package/dist/hooks/claude-hook-tools.d.ts.map +1 -0
  193. package/dist/hooks/claude-hook-tools.js +129 -0
  194. package/dist/hooks/claude-hook-tools.js.map +1 -0
  195. package/dist/hooks/claude-hooks.d.ts +87 -0
  196. package/dist/hooks/claude-hooks.d.ts.map +1 -0
  197. package/dist/hooks/claude-hooks.js +411 -0
  198. package/dist/hooks/claude-hooks.js.map +1 -0
  199. package/dist/maintenance/doctor.d.ts +33 -0
  200. package/dist/maintenance/doctor.d.ts.map +1 -0
  201. package/dist/maintenance/doctor.js +391 -0
  202. package/dist/maintenance/doctor.js.map +1 -0
  203. package/dist/maintenance/self-update.d.ts +31 -0
  204. package/dist/maintenance/self-update.d.ts.map +1 -0
  205. package/dist/maintenance/self-update.js +81 -0
  206. package/dist/maintenance/self-update.js.map +1 -0
  207. package/dist/mcp/claude-mcp-management.d.ts +28 -0
  208. package/dist/mcp/claude-mcp-management.d.ts.map +1 -0
  209. package/dist/mcp/claude-mcp-management.js +169 -0
  210. package/dist/mcp/claude-mcp-management.js.map +1 -0
  211. package/dist/mcp/claude-mcp-oauth.d.ts +113 -0
  212. package/dist/mcp/claude-mcp-oauth.d.ts.map +1 -0
  213. package/dist/mcp/claude-mcp-oauth.js +1053 -0
  214. package/dist/mcp/claude-mcp-oauth.js.map +1 -0
  215. package/dist/mcp/claude-mcp-tools.d.ts +98 -0
  216. package/dist/mcp/claude-mcp-tools.d.ts.map +1 -0
  217. package/dist/mcp/claude-mcp-tools.js +1246 -0
  218. package/dist/mcp/claude-mcp-tools.js.map +1 -0
  219. package/dist/mcp/praxis-mcp-server.d.ts +35 -0
  220. package/dist/mcp/praxis-mcp-server.d.ts.map +1 -0
  221. package/dist/mcp/praxis-mcp-server.js +520 -0
  222. package/dist/mcp/praxis-mcp-server.js.map +1 -0
  223. package/dist/permissions/claude-auto-classifier.d.ts +20 -0
  224. package/dist/permissions/claude-auto-classifier.d.ts.map +1 -0
  225. package/dist/permissions/claude-auto-classifier.js +140 -0
  226. package/dist/permissions/claude-auto-classifier.js.map +1 -0
  227. package/dist/permissions/claude-permission-resolver.d.ts +30 -0
  228. package/dist/permissions/claude-permission-resolver.d.ts.map +1 -0
  229. package/dist/permissions/claude-permission-resolver.js +334 -0
  230. package/dist/permissions/claude-permission-resolver.js.map +1 -0
  231. package/dist/persistence/claude-job-store.d.ts +68 -0
  232. package/dist/persistence/claude-job-store.d.ts.map +1 -0
  233. package/dist/persistence/claude-job-store.js +311 -0
  234. package/dist/persistence/claude-job-store.js.map +1 -0
  235. package/dist/persistence/claude-scheduled-task-store.d.ts +29 -0
  236. package/dist/persistence/claude-scheduled-task-store.d.ts.map +1 -0
  237. package/dist/persistence/claude-scheduled-task-store.js +163 -0
  238. package/dist/persistence/claude-scheduled-task-store.js.map +1 -0
  239. package/dist/persistence/claude-sidechain-store.d.ts +18 -0
  240. package/dist/persistence/claude-sidechain-store.d.ts.map +1 -0
  241. package/dist/persistence/claude-sidechain-store.js +107 -0
  242. package/dist/persistence/claude-sidechain-store.js.map +1 -0
  243. package/dist/persistence/claude-task-store.d.ts +72 -0
  244. package/dist/persistence/claude-task-store.d.ts.map +1 -0
  245. package/dist/persistence/claude-task-store.js +440 -0
  246. package/dist/persistence/claude-task-store.js.map +1 -0
  247. package/dist/persistence/claude-transcript-store.d.ts +85 -0
  248. package/dist/persistence/claude-transcript-store.d.ts.map +1 -0
  249. package/dist/persistence/claude-transcript-store.js +385 -0
  250. package/dist/persistence/claude-transcript-store.js.map +1 -0
  251. package/dist/persistence/claude-workflow-store.d.ts +41 -0
  252. package/dist/persistence/claude-workflow-store.d.ts.map +1 -0
  253. package/dist/persistence/claude-workflow-store.js +263 -0
  254. package/dist/persistence/claude-workflow-store.js.map +1 -0
  255. package/dist/persistence/in-memory-sidechain-store.d.ts +12 -0
  256. package/dist/persistence/in-memory-sidechain-store.d.ts.map +1 -0
  257. package/dist/persistence/in-memory-sidechain-store.js +30 -0
  258. package/dist/persistence/in-memory-sidechain-store.js.map +1 -0
  259. package/dist/persistence/in-memory-transcript-store.d.ts +15 -0
  260. package/dist/persistence/in-memory-transcript-store.d.ts.map +1 -0
  261. package/dist/persistence/in-memory-transcript-store.js +95 -0
  262. package/dist/persistence/in-memory-transcript-store.js.map +1 -0
  263. package/dist/platform/atomic-write.d.ts +5 -0
  264. package/dist/platform/atomic-write.d.ts.map +1 -0
  265. package/dist/platform/atomic-write.js +25 -0
  266. package/dist/platform/atomic-write.js.map +1 -0
  267. package/dist/platform/bounded-process-runner.d.ts +28 -0
  268. package/dist/platform/bounded-process-runner.d.ts.map +1 -0
  269. package/dist/platform/bounded-process-runner.js +209 -0
  270. package/dist/platform/bounded-process-runner.js.map +1 -0
  271. package/dist/platform/claude-version.d.ts +5 -0
  272. package/dist/platform/claude-version.d.ts.map +1 -0
  273. package/dist/platform/claude-version.js +17 -0
  274. package/dist/platform/claude-version.js.map +1 -0
  275. package/dist/platform/command-shell.d.ts +3 -0
  276. package/dist/platform/command-shell.d.ts.map +1 -0
  277. package/dist/platform/command-shell.js +15 -0
  278. package/dist/platform/command-shell.js.map +1 -0
  279. package/dist/platform/exclusive-file-lease.d.ts +15 -0
  280. package/dist/platform/exclusive-file-lease.d.ts.map +1 -0
  281. package/dist/platform/exclusive-file-lease.js +265 -0
  282. package/dist/platform/exclusive-file-lease.js.map +1 -0
  283. package/dist/platform/sensitive-data.d.ts +8 -0
  284. package/dist/platform/sensitive-data.d.ts.map +1 -0
  285. package/dist/platform/sensitive-data.js +138 -0
  286. package/dist/platform/sensitive-data.js.map +1 -0
  287. package/dist/platform/tmux-worktree.d.ts +30 -0
  288. package/dist/platform/tmux-worktree.d.ts.map +1 -0
  289. package/dist/platform/tmux-worktree.js +138 -0
  290. package/dist/platform/tmux-worktree.js.map +1 -0
  291. package/dist/plugins/claude-plugin-eval-discovery.d.ts +20 -0
  292. package/dist/plugins/claude-plugin-eval-discovery.d.ts.map +1 -0
  293. package/dist/plugins/claude-plugin-eval-discovery.js +128 -0
  294. package/dist/plugins/claude-plugin-eval-discovery.js.map +1 -0
  295. package/dist/plugins/claude-plugin-eval-graders.d.ts +49 -0
  296. package/dist/plugins/claude-plugin-eval-graders.d.ts.map +1 -0
  297. package/dist/plugins/claude-plugin-eval-graders.js +137 -0
  298. package/dist/plugins/claude-plugin-eval-graders.js.map +1 -0
  299. package/dist/plugins/claude-plugin-eval-runner.d.ts +50 -0
  300. package/dist/plugins/claude-plugin-eval-runner.d.ts.map +1 -0
  301. package/dist/plugins/claude-plugin-eval-runner.js +189 -0
  302. package/dist/plugins/claude-plugin-eval-runner.js.map +1 -0
  303. package/dist/plugins/claude-plugin-eval-schema.d.ts +80 -0
  304. package/dist/plugins/claude-plugin-eval-schema.d.ts.map +1 -0
  305. package/dist/plugins/claude-plugin-eval-schema.js +436 -0
  306. package/dist/plugins/claude-plugin-eval-schema.js.map +1 -0
  307. package/dist/plugins/claude-plugin-eval.d.ts +66 -0
  308. package/dist/plugins/claude-plugin-eval.d.ts.map +1 -0
  309. package/dist/plugins/claude-plugin-eval.js +438 -0
  310. package/dist/plugins/claude-plugin-eval.js.map +1 -0
  311. package/dist/plugins/claude-plugin-maintenance.d.ts +39 -0
  312. package/dist/plugins/claude-plugin-maintenance.d.ts.map +1 -0
  313. package/dist/plugins/claude-plugin-maintenance.js +336 -0
  314. package/dist/plugins/claude-plugin-maintenance.js.map +1 -0
  315. package/dist/plugins/claude-plugin-marketplace.d.ts +97 -0
  316. package/dist/plugins/claude-plugin-marketplace.d.ts.map +1 -0
  317. package/dist/plugins/claude-plugin-marketplace.js +1433 -0
  318. package/dist/plugins/claude-plugin-marketplace.js.map +1 -0
  319. package/dist/plugins/claude-plugin-mcpb.d.ts +71 -0
  320. package/dist/plugins/claude-plugin-mcpb.d.ts.map +1 -0
  321. package/dist/plugins/claude-plugin-mcpb.js +885 -0
  322. package/dist/plugins/claude-plugin-mcpb.js.map +1 -0
  323. package/dist/plugins/claude-plugin-runtime.d.ts +120 -0
  324. package/dist/plugins/claude-plugin-runtime.d.ts.map +1 -0
  325. package/dist/plugins/claude-plugin-runtime.js +1263 -0
  326. package/dist/plugins/claude-plugin-runtime.js.map +1 -0
  327. package/dist/providers/anthropic-compatible.d.ts +35 -0
  328. package/dist/providers/anthropic-compatible.d.ts.map +1 -0
  329. package/dist/providers/anthropic-compatible.js +733 -0
  330. package/dist/providers/anthropic-compatible.js.map +1 -0
  331. package/dist/providers/environment.d.ts +14 -0
  332. package/dist/providers/environment.d.ts.map +1 -0
  333. package/dist/providers/environment.js +67 -0
  334. package/dist/providers/environment.js.map +1 -0
  335. package/dist/providers/fallback-provider.d.ts +17 -0
  336. package/dist/providers/fallback-provider.d.ts.map +1 -0
  337. package/dist/providers/fallback-provider.js +70 -0
  338. package/dist/providers/fallback-provider.js.map +1 -0
  339. package/dist/providers/openai-compatible.d.ts +30 -0
  340. package/dist/providers/openai-compatible.d.ts.map +1 -0
  341. package/dist/providers/openai-compatible.js +409 -0
  342. package/dist/providers/openai-compatible.js.map +1 -0
  343. package/dist/tools/claude-interactive-tools.d.ts +58 -0
  344. package/dist/tools/claude-interactive-tools.d.ts.map +1 -0
  345. package/dist/tools/claude-interactive-tools.js +390 -0
  346. package/dist/tools/claude-interactive-tools.js.map +1 -0
  347. package/dist/tools/claude-lsp-formatters.d.ts +2 -0
  348. package/dist/tools/claude-lsp-formatters.d.ts.map +1 -0
  349. package/dist/tools/claude-lsp-formatters.js +291 -0
  350. package/dist/tools/claude-lsp-formatters.js.map +1 -0
  351. package/dist/tools/claude-lsp-tool.d.ts +22 -0
  352. package/dist/tools/claude-lsp-tool.d.ts.map +1 -0
  353. package/dist/tools/claude-lsp-tool.js +744 -0
  354. package/dist/tools/claude-lsp-tool.js.map +1 -0
  355. package/dist/tools/claude-scheduled-tools.d.ts +20 -0
  356. package/dist/tools/claude-scheduled-tools.d.ts.map +1 -0
  357. package/dist/tools/claude-scheduled-tools.js +344 -0
  358. package/dist/tools/claude-scheduled-tools.js.map +1 -0
  359. package/dist/tools/claude-task-tools.d.ts +30 -0
  360. package/dist/tools/claude-task-tools.d.ts.map +1 -0
  361. package/dist/tools/claude-task-tools.js +503 -0
  362. package/dist/tools/claude-task-tools.js.map +1 -0
  363. package/dist/tools/claude-user-message.d.ts +16 -0
  364. package/dist/tools/claude-user-message.d.ts.map +1 -0
  365. package/dist/tools/claude-user-message.js +98 -0
  366. package/dist/tools/claude-user-message.js.map +1 -0
  367. package/dist/tools/claude-workflow-tools.d.ts +27 -0
  368. package/dist/tools/claude-workflow-tools.d.ts.map +1 -0
  369. package/dist/tools/claude-workflow-tools.js +257 -0
  370. package/dist/tools/claude-workflow-tools.js.map +1 -0
  371. package/dist/tools/claude-worktree-tools.d.ts +17 -0
  372. package/dist/tools/claude-worktree-tools.d.ts.map +1 -0
  373. package/dist/tools/claude-worktree-tools.js +135 -0
  374. package/dist/tools/claude-worktree-tools.js.map +1 -0
  375. package/dist/tools/filtered-tool-registry.d.ts +16 -0
  376. package/dist/tools/filtered-tool-registry.d.ts.map +1 -0
  377. package/dist/tools/filtered-tool-registry.js +51 -0
  378. package/dist/tools/filtered-tool-registry.js.map +1 -0
  379. package/dist/tools/glob.d.ts +9 -0
  380. package/dist/tools/glob.d.ts.map +1 -0
  381. package/dist/tools/glob.js +88 -0
  382. package/dist/tools/glob.js.map +1 -0
  383. package/dist/tools/local-tools.d.ts +47 -0
  384. package/dist/tools/local-tools.d.ts.map +1 -0
  385. package/dist/tools/local-tools.js +1082 -0
  386. package/dist/tools/local-tools.js.map +1 -0
  387. package/dist/tools/notebook.d.ts +22 -0
  388. package/dist/tools/notebook.d.ts.map +1 -0
  389. package/dist/tools/notebook.js +154 -0
  390. package/dist/tools/notebook.js.map +1 -0
  391. package/dist/tools/web.d.ts +48 -0
  392. package/dist/tools/web.d.ts.map +1 -0
  393. package/dist/tools/web.js +726 -0
  394. package/dist/tools/web.js.map +1 -0
  395. package/package.json +145 -0
@@ -0,0 +1,436 @@
1
+ import { readFile, readdir, realpath, stat } from 'node:fs/promises';
2
+ import { basename, isAbsolute, join, resolve, sep } from 'node:path';
3
+ import { parse as parseYaml } from 'yaml';
4
+ export const EVAL_SCHEMA_VERSION = '1.0';
5
+ export const MAX_EVAL_FILE_BYTES = 1024 * 1024;
6
+ export const MAX_EVAL_GRADERS = 256;
7
+ export const MAX_EVAL_ARRAY_ITEMS = 256;
8
+ export const MAX_EVAL_STRING_LENGTH = 16 * 1024;
9
+ export const MAX_EVAL_OBJECT_DEPTH = 16;
10
+ export const MAX_EVAL_OBJECT_NODES = 4096;
11
+ const EVAL_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
12
+ function record(value, label) {
13
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
14
+ throw new Error(`${label} must be an object`);
15
+ }
16
+ return value;
17
+ }
18
+ function strict(value, keys, label) {
19
+ const unknown = Object.keys(value).filter((key) => !keys.includes(key));
20
+ if (unknown.length)
21
+ throw new Error(`${label} has unknown field: ${unknown[0]}`);
22
+ }
23
+ function text(value, label, required = false) {
24
+ if (value === undefined && !required)
25
+ return undefined;
26
+ if (typeof value !== 'string' || value.trim().length === 0)
27
+ throw new Error(`${label} must be a non-empty string`);
28
+ if (value.length > MAX_EVAL_STRING_LENGTH)
29
+ throw new Error(`${label} exceeds ${MAX_EVAL_STRING_LENGTH} characters`);
30
+ return value;
31
+ }
32
+ function safeName(value, label) {
33
+ const selected = text(value, label, true);
34
+ if (!EVAL_NAME.test(selected) || selected === '.' || selected === '..')
35
+ throw new Error(`${label} must be a safe eval identifier`);
36
+ return selected;
37
+ }
38
+ function safeRelativePath(value, label) {
39
+ const selected = text(value, label, true);
40
+ const segments = selected.replaceAll('\\', '/').split('/');
41
+ if (isAbsolute(selected) ||
42
+ selected.includes('\0') ||
43
+ segments.includes('..') ||
44
+ segments.includes(''))
45
+ throw new Error(`${label} must be a contained relative path`);
46
+ return selected;
47
+ }
48
+ function boundedObject(value, label) {
49
+ const selected = record(value, label);
50
+ let nodes = 0;
51
+ const visit = (item, depth) => {
52
+ nodes += 1;
53
+ if (nodes > MAX_EVAL_OBJECT_NODES)
54
+ throw new Error(`${label} exceeds ${MAX_EVAL_OBJECT_NODES} nodes`);
55
+ if (depth > MAX_EVAL_OBJECT_DEPTH)
56
+ throw new Error(`${label} exceeds depth ${MAX_EVAL_OBJECT_DEPTH}`);
57
+ if (typeof item === 'string' && item.length > MAX_EVAL_STRING_LENGTH)
58
+ throw new Error(`${label} contains an oversized string`);
59
+ if (Array.isArray(item)) {
60
+ if (item.length > MAX_EVAL_ARRAY_ITEMS)
61
+ throw new Error(`${label} contains an oversized array`);
62
+ for (const child of item)
63
+ visit(child, depth + 1);
64
+ }
65
+ else if (item && typeof item === 'object') {
66
+ const entries = Object.entries(item);
67
+ if (entries.length > MAX_EVAL_ARRAY_ITEMS)
68
+ throw new Error(`${label} contains an oversized object`);
69
+ for (const [key, child] of entries) {
70
+ if (key.length > 256)
71
+ throw new Error(`${label} contains an oversized key`);
72
+ visit(child, depth + 1);
73
+ }
74
+ }
75
+ };
76
+ visit(selected, 0);
77
+ return selected;
78
+ }
79
+ function integer(value, label, fallback, min, max) {
80
+ const selected = value ?? fallback;
81
+ if (!Number.isInteger(selected) ||
82
+ selected < min ||
83
+ selected > max)
84
+ throw new Error(`${label} must be an integer from ${min} to ${max}`);
85
+ return selected;
86
+ }
87
+ function strings(value, label) {
88
+ if (value === undefined)
89
+ return [];
90
+ if (!Array.isArray(value) || !value.every((item) => typeof item === 'string'))
91
+ throw new Error(`${label} must be a string array`);
92
+ if (value.length > MAX_EVAL_ARRAY_ITEMS)
93
+ throw new Error(`${label} exceeds ${MAX_EVAL_ARRAY_ITEMS} items`);
94
+ for (const item of value)
95
+ if (item.length === 0 || item.length > MAX_EVAL_STRING_LENGTH)
96
+ throw new Error(`${label} contains an invalid string`);
97
+ return [...value];
98
+ }
99
+ function focus(value, label, fallback) {
100
+ if (value === undefined)
101
+ return fallback;
102
+ if (['last_message', 'trace', 'files'].includes(String(value)))
103
+ return value;
104
+ const item = record(value, label);
105
+ strict(item, ['source', 'path'], label);
106
+ if (item.source !== 'file')
107
+ throw new Error(`${label}.source must be file`);
108
+ return {
109
+ source: 'file',
110
+ path: safeRelativePath(item.path, `${label}.path`),
111
+ };
112
+ }
113
+ function toolMatch(value, label) {
114
+ if (typeof value === 'string' && value.length)
115
+ return value;
116
+ const item = record(value, label);
117
+ strict(item, ['tool', 'input_match'], label);
118
+ return {
119
+ tool: text(item.tool, `${label}.tool`, true),
120
+ ...(item.input_match === undefined
121
+ ? {}
122
+ : {
123
+ input_match: boundedObject(item.input_match, `${label}.input_match`),
124
+ }),
125
+ };
126
+ }
127
+ function grader(value, index) {
128
+ const item = record(value, `graders[${index}]`);
129
+ const type = text(item.type, `graders[${index}].type`, true);
130
+ const name = safeName(item.name, `graders[${index}].name`);
131
+ const weight = item.weight === undefined ? 1 : Number(item.weight);
132
+ if (!(weight > 0) || !Number.isFinite(weight))
133
+ throw new Error(`${name}.weight must be positive`);
134
+ const arm = item.arm;
135
+ if (arm !== undefined && arm !== 'with-only' && arm !== 'both')
136
+ throw new Error(`${name}.arm must be with-only or both`);
137
+ const base = {
138
+ name,
139
+ weight,
140
+ ...(arm === undefined ? {} : { arm }),
141
+ };
142
+ if (type === 'regex') {
143
+ strict(item, ['type', 'name', 'weight', 'arm', 'target', 'pattern', 'flags', 'match'], name);
144
+ const match = item.match === undefined ? 'contains' : String(item.match);
145
+ if (!['contains', 'not_contains'].includes(match) &&
146
+ !/^count:\d+$/u.test(match))
147
+ throw new Error(`${name}.match is invalid`);
148
+ const flags = item.flags === undefined ? '' : String(item.flags);
149
+ try {
150
+ new RegExp('', flags);
151
+ }
152
+ catch {
153
+ throw new Error(`${name}.flags is invalid`);
154
+ }
155
+ return {
156
+ ...base,
157
+ type,
158
+ target: focus(item.target, `${name}.target`, 'last_message'),
159
+ pattern: text(item.pattern, `${name}.pattern`, true),
160
+ flags,
161
+ match: match,
162
+ };
163
+ }
164
+ if (type === 'tool_order') {
165
+ strict(item, ['type', 'name', 'weight', 'arm', 'before', 'after'], name);
166
+ return {
167
+ ...base,
168
+ type,
169
+ before: toolMatch(item.before, `${name}.before`),
170
+ after: toolMatch(item.after, `${name}.after`),
171
+ };
172
+ }
173
+ if (type === 'tool_used') {
174
+ strict(item, ['type', 'name', 'weight', 'arm', 'tool', 'input_match', 'min', 'max'], name);
175
+ const min = integer(item.min, `${name}.min`, 1, 0, Number.MAX_SAFE_INTEGER);
176
+ const max = item.max === undefined
177
+ ? Number.POSITIVE_INFINITY
178
+ : integer(item.max, `${name}.max`, 0, 0, Number.MAX_SAFE_INTEGER);
179
+ if (max < min)
180
+ throw new Error(`${name}.max must be at least min`);
181
+ const tool = text(item.tool, `${name}.tool`, true);
182
+ return {
183
+ ...base,
184
+ ...(tool === 'Skill' && arm === undefined
185
+ ? { arm: 'with-only' }
186
+ : {}),
187
+ type,
188
+ tool,
189
+ ...(item.input_match === undefined
190
+ ? {}
191
+ : {
192
+ input_match: boundedObject(item.input_match, `${name}.input_match`),
193
+ }),
194
+ min,
195
+ max,
196
+ };
197
+ }
198
+ if (type === 'file_exists') {
199
+ strict(item, ['type', 'name', 'weight', 'arm', 'path', 'exists'], name);
200
+ if (item.exists !== undefined && typeof item.exists !== 'boolean')
201
+ throw new Error(`${name}.exists must be boolean`);
202
+ return {
203
+ ...base,
204
+ type,
205
+ path: safeRelativePath(item.path, `${name}.path`),
206
+ exists: item.exists !== false,
207
+ };
208
+ }
209
+ if (type === 'llm') {
210
+ strict(item, ['type', 'name', 'weight', 'arm', 'criteria', 'focus'], name);
211
+ return {
212
+ ...base,
213
+ type,
214
+ criteria: text(item.criteria, `${name}.criteria`, true),
215
+ focus: focus(item.focus, `${name}.focus`, 'last_message'),
216
+ };
217
+ }
218
+ if (type === 'baseline') {
219
+ strict(item, ['type', 'name', 'weight', 'arm', 'baseline_file', 'criteria'], name);
220
+ return {
221
+ ...base,
222
+ type,
223
+ baseline_file: safeRelativePath(item.baseline_file, `${name}.baseline_file`),
224
+ criteria: text(item.criteria, `${name}.criteria`, true),
225
+ };
226
+ }
227
+ throw new Error(`Unsupported grader type: ${type}`);
228
+ }
229
+ function frontmatter(content, label) {
230
+ if (!content.startsWith('---\n'))
231
+ throw new Error(`${label} must start with YAML frontmatter`);
232
+ const end = content.indexOf('\n---', 4);
233
+ if (end < 0)
234
+ throw new Error(`${label} has unterminated YAML frontmatter`);
235
+ return {
236
+ metadata: record(yaml(content.slice(4, end), `${label} frontmatter`) ?? {}, `${label} frontmatter`),
237
+ body: content
238
+ .slice(end + 4)
239
+ .replace(/^\r?\n/u, '')
240
+ .trim(),
241
+ };
242
+ }
243
+ async function boundedRead(path) {
244
+ if ((await stat(path)).size > MAX_EVAL_FILE_BYTES)
245
+ throw new Error(`${path} exceeds 1 MiB`);
246
+ return readFile(path, 'utf8');
247
+ }
248
+ function yaml(content, label) {
249
+ const parsed = parseYaml(content, { maxAliasCount: 20 });
250
+ if (parsed !== undefined)
251
+ boundedObject(parsed, label);
252
+ return parsed;
253
+ }
254
+ function normalize(raw, dir, source) {
255
+ strict(raw, [
256
+ 'schema_version',
257
+ 'name',
258
+ 'description',
259
+ 'tags',
260
+ 'plugins',
261
+ 'context',
262
+ 'execution',
263
+ 'runs',
264
+ 'graders',
265
+ 'expected_outcome',
266
+ ], 'case');
267
+ const version = text(raw.schema_version, 'schema_version', true);
268
+ if (!/^1(?:\.|$)/u.test(version))
269
+ throw new Error(`Unsupported schema_version: ${version}`);
270
+ const context = raw.context === undefined ? {} : record(raw.context, 'context');
271
+ strict(context, ['scaffold_script', 'history_file', 'add_dirs'], 'context');
272
+ const execution = raw.execution === undefined ? {} : record(raw.execution, 'execution');
273
+ strict(execution, [
274
+ 'prompt',
275
+ 'max_turns',
276
+ 'timeout_seconds',
277
+ 'model',
278
+ 'allowed_tools',
279
+ 'append_system_prompt',
280
+ 'env',
281
+ ], 'execution');
282
+ const env = execution.env === undefined ? {} : record(execution.env, 'execution.env');
283
+ for (const [key, value] of Object.entries(env)) {
284
+ if (!/^EVAL_[A-Z0-9_]+$/u.test(key) || typeof value !== 'string')
285
+ throw new Error(`Invalid eval environment variable: ${key}`);
286
+ }
287
+ const prompt = text(execution.prompt, 'execution.prompt');
288
+ const historyFile = text(context.history_file, 'context.history_file');
289
+ if (!prompt && !historyFile)
290
+ throw new Error('Case requires execution.prompt or context.history_file');
291
+ const gradersRaw = raw.graders;
292
+ if (!Array.isArray(gradersRaw) || gradersRaw.length < 1)
293
+ throw new Error('Case requires at least one grader');
294
+ if (gradersRaw.length > MAX_EVAL_GRADERS)
295
+ throw new Error(`Case exceeds ${MAX_EVAL_GRADERS} graders`);
296
+ const graders = gradersRaw.map(grader);
297
+ if (new Set(graders.map((item) => item.name)).size !== graders.length)
298
+ throw new Error('Grader names must be unique');
299
+ return {
300
+ schemaVersion: version,
301
+ name: safeName(raw.name, 'name'),
302
+ ...(raw.description === undefined
303
+ ? {}
304
+ : { description: text(raw.description, 'description') }),
305
+ tags: strings(raw.tags, 'tags'),
306
+ ...(raw.plugins === undefined
307
+ ? {}
308
+ : { plugins: strings(raw.plugins, 'plugins') }),
309
+ context: {
310
+ ...(context.scaffold_script === undefined
311
+ ? {}
312
+ : {
313
+ scaffoldScript: safeRelativePath(context.scaffold_script, 'context.scaffold_script'),
314
+ }),
315
+ ...(historyFile
316
+ ? { historyFile: safeRelativePath(historyFile, 'context.history_file') }
317
+ : {}),
318
+ addDirs: strings(context.add_dirs, 'context.add_dirs').map((path) => safeRelativePath(path, 'context.add_dirs')),
319
+ },
320
+ execution: {
321
+ ...(prompt ? { prompt } : {}),
322
+ maxTurns: integer(execution.max_turns, 'execution.max_turns', 10, 1, 200),
323
+ timeoutSeconds: integer(execution.timeout_seconds, 'execution.timeout_seconds', 300, 1, 3600),
324
+ ...(execution.model === undefined
325
+ ? {}
326
+ : { model: text(execution.model, 'execution.model') }),
327
+ allowedTools: strings(execution.allowed_tools, 'execution.allowed_tools'),
328
+ ...(execution.append_system_prompt === undefined
329
+ ? {}
330
+ : {
331
+ appendSystemPrompt: text(execution.append_system_prompt, 'execution.append_system_prompt'),
332
+ }),
333
+ env: Object.fromEntries(Object.entries(env).map(([key, value]) => [
334
+ key,
335
+ text(value, `execution.env.${key}`, true),
336
+ ])),
337
+ },
338
+ runs: integer(raw.runs, 'runs', 3, 1, 50),
339
+ graders,
340
+ ...(raw.expected_outcome === undefined
341
+ ? {}
342
+ : {
343
+ expectedOutcome: text(raw.expected_outcome, 'expected_outcome'),
344
+ }),
345
+ dir,
346
+ source,
347
+ };
348
+ }
349
+ export async function loadClaudePluginEvalCase(caseDir) {
350
+ const dir = await realpath(resolve(caseDir));
351
+ let yamlRaw;
352
+ let proseRaw;
353
+ try {
354
+ yamlRaw = record(yaml(await boundedRead(join(dir, 'case.yaml')), 'case.yaml'), 'case.yaml');
355
+ }
356
+ catch (error) {
357
+ if (error.code !== 'ENOENT')
358
+ throw error;
359
+ }
360
+ try {
361
+ const parsed = frontmatter(await boundedRead(join(dir, 'prompt.md')), 'prompt.md');
362
+ const metadata = parsed.metadata;
363
+ const execution = {};
364
+ for (const key of [
365
+ 'model',
366
+ 'max_turns',
367
+ 'timeout_seconds',
368
+ 'allowed_tools',
369
+ 'append_system_prompt',
370
+ 'env',
371
+ ])
372
+ if (metadata[key] !== undefined) {
373
+ execution[key] = metadata[key];
374
+ delete metadata[key];
375
+ }
376
+ execution.prompt = parsed.body;
377
+ proseRaw = { ...metadata, execution };
378
+ }
379
+ catch (error) {
380
+ if (error.code !== 'ENOENT')
381
+ throw error;
382
+ }
383
+ if (!yamlRaw && !proseRaw)
384
+ throw new Error(`No case.yaml or prompt.md in ${dir}`);
385
+ const graderDir = join(dir, 'graders');
386
+ const proseGraders = [];
387
+ try {
388
+ const names = (await readdir(graderDir))
389
+ .filter((name) => name.endsWith('.md'))
390
+ .sort();
391
+ if (names.length > MAX_EVAL_GRADERS)
392
+ throw new Error(`Too many graders in ${graderDir}`);
393
+ for (const name of names) {
394
+ const parsed = frontmatter(await boundedRead(join(graderDir, name)), name);
395
+ const data = {
396
+ name: basename(name, '.md'),
397
+ ...parsed.metadata,
398
+ };
399
+ if (data.type === 'llm' || data.type === 'baseline')
400
+ data.criteria ??= parsed.body;
401
+ if (data.type === 'regex')
402
+ data.pattern ??= parsed.body;
403
+ proseGraders.push(data);
404
+ }
405
+ }
406
+ catch (error) {
407
+ if (error.code !== 'ENOENT')
408
+ throw error;
409
+ }
410
+ const merged = { ...(yamlRaw ?? {}), ...(proseRaw ?? {}) };
411
+ merged.context = {
412
+ ...record(yamlRaw?.context ?? {}, 'context'),
413
+ ...record(proseRaw?.context ?? {}, 'context'),
414
+ };
415
+ merged.execution = {
416
+ ...record(yamlRaw?.execution ?? {}, 'execution'),
417
+ ...record(proseRaw?.execution ?? {}, 'execution'),
418
+ };
419
+ merged.graders = [
420
+ ...(Array.isArray(yamlRaw?.graders) ? yamlRaw.graders : []),
421
+ ...proseGraders,
422
+ ];
423
+ if (proseRaw && !merged.schema_version)
424
+ merged.schema_version = EVAL_SCHEMA_VERSION;
425
+ if (proseRaw && !merged.name)
426
+ merged.name = basename(dir);
427
+ return normalize(merged, dir, yamlRaw && proseRaw ? 'mixed' : yamlRaw ? 'case_yaml' : 'prose');
428
+ }
429
+ export async function resolveContainedPath(root, candidate, label) {
430
+ const rootPath = await realpath(resolve(root));
431
+ const path = await realpath(resolve(rootPath, candidate));
432
+ if (path !== rootPath && !path.startsWith(`${rootPath}${sep}`))
433
+ throw new Error(`${label} escapes eval root: ${candidate}`);
434
+ return path;
435
+ }
436
+ //# sourceMappingURL=claude-plugin-eval-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-plugin-eval-schema.js","sourceRoot":"","sources":["../../src/plugins/claude-plugin-eval-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { type EvalGraderResult, type EvalJudge } from './claude-plugin-eval-graders.js';
2
+ import { type PluginEvalRuntimeFactory } from './claude-plugin-eval-runner.js';
3
+ export declare const PLUGIN_EVAL_HELP = "Usage: praxis plugin eval [options] [command] [target]\n\nRun eval cases (evals/**/case.yaml or evals/**/prompt.md + graders/*.md) against\na plugin and report scored results. Target is a path, a plugin name, or a\n`plugin@marketplace` id \u2014 installed and skills-dir plugins both resolve (and add\na no-plugin baseline arm).\n\nOptions:\n --ablation <mode> Ablation mode: none or with-without (default depends on target)\n --allow-tools <tools...> Operator grant for gated case tools such as Bash or Write\n --case <glob> Filter safe case names with a glob\n --json Print aggregate JSON\n --judge-model <model> Judge model (default: haiku)\n --keep-temp Keep isolated run directories\n --max-cost-usd <usd> Stop before next run at ceiling; one active run may overrun\n --model <model> Override case model\n --no-scaffold Disable opt-in scaffold scripts (default)\n --output-dir <dir> Results directory (default: evals/results/<timestamp>)\n --runs <n> Override case run count\n --scaffold Enable contained, bounded scaffold scripts\n --tag <tag...> Include cases matching any tag\n --threshold <0..1> Passing score (default: 1.0)\n --verbose Print run progress\n -h, --help Display help for command\n\nCommands:\n init [options] [name] Create an eval case\n";
4
+ export declare const PLUGIN_EVAL_INIT_HELP = "Usage: praxis plugin eval init [options] [name]\n\nOptions:\n --bare Write starter files without an interview\n -h, --help Display help for command\n";
5
+ export interface PluginEvalIo {
6
+ stdout(message: string): void;
7
+ stderr(message: string): void;
8
+ isTTY?: boolean;
9
+ }
10
+ export interface PluginEvalDependencies {
11
+ runtimeFactory: PluginEvalRuntimeFactory;
12
+ judge?: EvalJudge;
13
+ interactiveInit?(options: {
14
+ cwd: string;
15
+ name?: string;
16
+ }): Promise<number>;
17
+ claudeVersion?: string;
18
+ }
19
+ interface EvalOptions {
20
+ target?: string;
21
+ ablation?: 'none' | 'with-without';
22
+ allowTools: string[];
23
+ caseGlob?: string;
24
+ json: boolean;
25
+ judgeModel: string;
26
+ keepTemp: boolean;
27
+ maxCostUsd?: number;
28
+ model?: string;
29
+ outputDir?: string;
30
+ runs?: number;
31
+ scaffold: boolean;
32
+ tags: string[];
33
+ threshold: number;
34
+ verbose: boolean;
35
+ }
36
+ export declare function initClaudePluginEval(options: {
37
+ cwd: string;
38
+ name?: string;
39
+ bare: boolean;
40
+ interactive: boolean;
41
+ isTTY: boolean;
42
+ interactiveInit?: PluginEvalDependencies['interactiveInit'];
43
+ }): Promise<number>;
44
+ export interface EvalRunReport {
45
+ score: number;
46
+ turns: number;
47
+ cost_usd: number;
48
+ judge_cost_usd: number;
49
+ graders: EvalGraderResult[];
50
+ trace_path: string;
51
+ error: string | null;
52
+ skipped_paid_graders: boolean;
53
+ temp_root?: string;
54
+ }
55
+ export declare function runClaudePluginEval(options: EvalOptions & {
56
+ cwd: string;
57
+ configRoot: string;
58
+ dependencies: PluginEvalDependencies;
59
+ signal?: AbortSignal;
60
+ }): Promise<{
61
+ code: number;
62
+ aggregate: Record<string, unknown>;
63
+ }>;
64
+ export declare function executeClaudePluginEvalCommand(argv: readonly string[], io: PluginEvalIo, dependencies: PluginEvalDependencies, signal?: AbortSignal): Promise<number>;
65
+ export {};
66
+ //# sourceMappingURL=claude-plugin-eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-plugin-eval.d.ts","sourceRoot":"","sources":["../../src/plugins/claude-plugin-eval.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAA;AAEvC,eAAO,MAAM,gBAAgB,i6CA2B5B,CAAA;AAED,eAAO,MAAM,qBAAqB,kKAKjC,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AACD,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,wBAAwB,CAAA;IACxC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,eAAe,CAAC,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAAA;IAClC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;CACjB;AAmID,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAA;CAC5D,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBlB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAcD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,WAAW,GAAG;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,sBAAsB,CAAA;IACpC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAoN/D;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,YAAY,EAChB,YAAY,EAAE,sBAAsB,EACpC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CA6CjB"}