@sentry/warden 0.22.0 → 0.23.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 (308) hide show
  1. package/.oxlintrc.json +169 -0
  2. package/CHANGELOG.md +210 -0
  3. package/README.md +1 -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 +10 -2
  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 +39 -2
  41. package/dist/cli/main.d.ts.map +1 -1
  42. package/dist/cli/main.js +264 -74
  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/config-schema.md +29 -13
  257. package/skills/warden/references/configuration.md +20 -8
  258. package/skills/warden-sweep/SPEC.md +126 -0
  259. package/src/builtin-skills/security-review/SKILL.md +81 -0
  260. package/src/builtin-skills/security-review/SPEC.md +77 -0
  261. package/src/builtin-skills/security-review/references/github-workflows.md +186 -0
  262. package/src/builtin-skills/security-review/references/javascript-typescript.md +69 -0
  263. package/src/builtin-skills/security-review/references/python.md +70 -0
  264. package/src/internal-skills/skill-writer/EVAL.md +124 -0
  265. package/src/internal-skills/skill-writer/SKILL.md +159 -0
  266. package/src/internal-skills/skill-writer/SOURCES.md +94 -0
  267. package/src/internal-skills/skill-writer/SPEC.md +153 -0
  268. package/src/internal-skills/skill-writer/references/artifact-layouts/argument-driven-skill-layout.md +32 -0
  269. package/src/internal-skills/skill-writer/references/artifact-layouts/asset-template-skill-layout.md +30 -0
  270. package/src/internal-skills/skill-writer/references/artifact-layouts/inline-skill-layout.md +28 -0
  271. package/src/internal-skills/skill-writer/references/artifact-layouts/reference-backed-skill-layout.md +35 -0
  272. package/src/internal-skills/skill-writer/references/artifact-layouts/script-backed-skill-layout.md +31 -0
  273. package/src/internal-skills/skill-writer/references/authoring-path.md +91 -0
  274. package/src/internal-skills/skill-writer/references/claude-code/argument-substitutions.md +20 -0
  275. package/src/internal-skills/skill-writer/references/claude-code/dynamic-context.md +16 -0
  276. package/src/internal-skills/skill-writer/references/claude-code/frontmatter-and-invocation.md +33 -0
  277. package/src/internal-skills/skill-writer/references/claude-code/hook-backed-skills.md +28 -0
  278. package/src/internal-skills/skill-writer/references/claude-code/subagent-fork-skills.md +22 -0
  279. package/src/internal-skills/skill-writer/references/description-optimization.md +28 -0
  280. package/src/internal-skills/skill-writer/references/design-principles.md +74 -0
  281. package/src/internal-skills/skill-writer/references/evaluation-path.md +73 -0
  282. package/src/internal-skills/skill-writer/references/examples/documentation-skill.md +70 -0
  283. package/src/internal-skills/skill-writer/references/examples/evaluator-loop-skill.md +38 -0
  284. package/src/internal-skills/skill-writer/references/examples/hook-backed-skill.md +39 -0
  285. package/src/internal-skills/skill-writer/references/examples/router-skill.md +41 -0
  286. package/src/internal-skills/skill-writer/references/examples/security-review-skill.md +69 -0
  287. package/src/internal-skills/skill-writer/references/examples/subagent-fork-skill.md +39 -0
  288. package/src/internal-skills/skill-writer/references/examples/workflow-process-skill.md +65 -0
  289. package/src/internal-skills/skill-writer/references/execution-shapes.md +68 -0
  290. package/src/internal-skills/skill-writer/references/iteration-evidence.md +82 -0
  291. package/src/internal-skills/skill-writer/references/iteration-path.md +40 -0
  292. package/src/internal-skills/skill-writer/references/mode-selection.md +67 -0
  293. package/src/internal-skills/skill-writer/references/output-contracts.md +68 -0
  294. package/src/internal-skills/skill-writer/references/reference-architecture.md +71 -0
  295. package/src/internal-skills/skill-writer/references/registration-validation.md +67 -0
  296. package/src/internal-skills/skill-writer/references/source-discovery.md +60 -0
  297. package/src/internal-skills/skill-writer/references/spec-template.md +118 -0
  298. package/src/internal-skills/skill-writer/references/structure-troubleshooting.md +111 -0
  299. package/src/internal-skills/skill-writer/references/synthesis-path.md +119 -0
  300. package/src/internal-skills/skill-writer/references/workflow-mechanics/evaluator-loops.md +25 -0
  301. package/src/internal-skills/skill-writer/references/workflow-mechanics/orchestrator-workers.md +25 -0
  302. package/src/internal-skills/skill-writer/references/workflow-mechanics/parallel-workflows.md +21 -0
  303. package/src/internal-skills/skill-writer/references/workflow-mechanics/plan-validate-execute.md +26 -0
  304. package/src/internal-skills/skill-writer/references/workflow-mechanics/prompt-chaining.md +24 -0
  305. package/src/internal-skills/skill-writer/references/workflow-mechanics/routing-workflows.md +28 -0
  306. package/src/internal-skills/skill-writer/references/workflow-mechanics/validation-loops.md +26 -0
  307. package/src/internal-skills/skill-writer/scripts/quick_validate.py +158 -0
  308. package/src/internal-skills/skill-writer/scripts/quick_validate_test.py +79 -0
package/dist/cli/args.js CHANGED
@@ -6,6 +6,7 @@ import { getVersion } from '../utils/index.js';
6
6
  export const CLIOptionsSchema = z.object({
7
7
  targets: z.array(z.string()).optional(),
8
8
  skill: z.string().optional(),
9
+ cwd: z.string().optional(),
9
10
  config: z.string().optional(),
10
11
  json: z.boolean().default(false),
11
12
  /** Write full run output to a JSONL file */
@@ -16,7 +17,7 @@ export const CLIOptionsSchema = z.object({
16
17
  /** Only show findings at or above this confidence in output */
17
18
  minConfidence: ConfidenceThresholdSchema.optional(),
18
19
  help: z.boolean().default(false),
19
- /** Max concurrent trigger/skill executions (default: 4) */
20
+ /** Max concurrent task or skill executions (default depends on command) */
20
21
  parallel: z.number().int().positive().optional(),
21
22
  /** Model to use for analysis (fallback when not set in config) */
22
23
  model: z.string().optional(),
@@ -43,103 +44,87 @@ export const CLIOptionsSchema = z.object({
43
44
  offline: z.boolean().default(false),
44
45
  /** Stop after first finding */
45
46
  failFast: z.boolean().default(false),
47
+ /** Regenerate generated skill artifacts even when a cached outline exists */
48
+ regenerate: z.boolean().default(false),
49
+ /** Prompt for creating a new generated skill. Prefix with @ to load from a file. */
50
+ prompt: z.string().optional(),
46
51
  });
47
52
  export function showVersion() {
48
53
  console.log(`warden ${getVersion()}`);
49
54
  }
50
- const HELP_TEXT = `
51
- Usage: warden [command] [targets...] [options]
52
-
53
- Analyze code for security issues and code quality.
54
-
55
- Commands:
56
- init Initialize warden.toml and GitHub workflow
57
- add [skill] Add a skill trigger to warden.toml
58
- sync [remote] Update cached remote skills to latest
59
- setup-app Create a GitHub App for Warden via manifest flow
60
- runs [list] List saved sessions (default)
61
- runs show <files...> Show results from a saved session
62
- runs follow [run] Tail a session live as skills complete
63
- runs gc Remove expired session logs
64
- (default) Run analysis on targets or using warden.toml triggers
65
-
66
- Targets:
67
- <files> Analyze specific files (e.g., src/auth.ts)
68
- <glob> Analyze files matching pattern (e.g., "src/**/*.ts")
69
- <git-ref> Analyze changes from git ref (e.g., HEAD~3, main..feature)
70
- (none) Analyze uncommitted changes using warden.toml triggers
71
-
72
- Options:
73
- --skill <name> Run only this skill (default: run all built-in skills)
74
- --config <path> Path to warden.toml (default: ./warden.toml)
75
- -m, --model <model> Model to use (fallback when not set in config)
76
- --json Output results as JSON
77
- -o, --output <path> Write full run output to a JSONL file
78
- --fail-on <severity> Exit with code 1 if findings >= severity
79
- (off, critical, high, medium, low, info)
80
- --report-on <sev> Only show findings >= severity in output
81
- (off, critical, high, medium, low, info)
82
- --min-confidence <c> Only show findings >= confidence in output
83
- (off, high, medium, low) Default: medium
84
- --fix Automatically apply all suggested fixes
85
- --parallel <n> Max concurrent trigger/skill executions (default: 4)
86
- -x, --fail-fast Stop after first finding
87
- --staged Analyze only staged changes
88
- --git Force ambiguous targets to be treated as git refs
89
- --quiet Errors and final summary only
90
- -v, --verbose Show real-time findings and hunk details
91
- -vv Show debug info (token counts, latencies)
92
- --debug Enable debug output (equivalent to -vv)
93
- --log Use log output (no animations, timestamped)
94
- --color / --no-color Override color detection
95
- --help, -h Show this help message
96
- --version, -V Show version number
97
-
98
- Init Options:
99
- -f, --force Overwrite existing files
100
-
101
- Add Options:
102
- --list List available skills
103
- --remote <ref> Remote repository (owner/repo, URL, or with @sha)
104
- --force Bypass skill cache and fetch latest
105
-
106
- Run Options:
107
- --offline Use cached remote skills without network access
108
-
109
- Setup-app Options:
110
- --org <name> Create under organization (default: personal)
111
- --port <number> Local server port (default: 3000)
112
- --timeout <sec> Callback timeout in seconds (default: 300)
113
- --name <string> Custom app name (default: Warden)
114
- --no-open Print URL instead of opening browser
115
-
116
- Examples:
117
- warden init # Initialize warden configuration
118
- warden add # Interactive skill selection
119
- warden add security-review # Add specific skill trigger
120
- warden add --list # List available skills
121
- warden add --remote getsentry/skills --skill security-review
122
- # Add remote skill trigger
123
- warden add --remote https://github.com/getsentry/skills --skill security-review
124
- # Add remote skill via URL
125
- warden add --remote getsentry/skills@abc123 --skill security-review
126
- # Add pinned remote skill
127
- warden # Run triggers from warden.toml
128
- warden src/auth.ts # Run all skills on file
129
- warden src/auth.ts --skill security-review
130
- # Run specific skill on file
131
- warden "src/**/*.ts" # Run all skills on glob pattern
132
- warden HEAD~3 # Run all skills on git changes
133
- warden HEAD~3 --skill security-review # Run specific skill on git changes
134
- warden --json # Output as JSON
135
- warden --fail-on high # Fail if high+ severity findings
136
- warden --offline # Use cached skills only
137
- warden sync # Update all unpinned remote skills
138
- warden setup-app # Create GitHub App interactively
139
- warden setup-app --org myorg # Create app under organization
140
- `;
141
- export function showHelp() {
142
- console.log(HELP_TEXT.trim());
55
+ function parseCliOptions(rawOptions) {
56
+ const result = CLIOptionsSchema.safeParse(rawOptions);
57
+ if (!result.success) {
58
+ const issues = result.error.issues.map((issue) => ` - ${issue.path.join('.')}: ${issue.message}`);
59
+ console.error('Invalid options:');
60
+ console.error(issues.join('\n'));
61
+ process.exit(1);
62
+ }
63
+ return result.data;
64
+ }
65
+ function sharedOptions(values, verboseCount) {
66
+ return {
67
+ cwd: typeof values['cwd'] === 'string' ? values['cwd'] : undefined,
68
+ quiet: Boolean(values['quiet']),
69
+ verbose: verboseCount,
70
+ debug: Boolean(values['debug']),
71
+ log: Boolean(values['log']),
72
+ color: resolveColorOption(values),
73
+ };
74
+ }
75
+ function resolveHelpTarget(tokens, values) {
76
+ if (tokens.length === 0) {
77
+ return undefined;
78
+ }
79
+ const [command, subcommand] = tokens;
80
+ switch (command) {
81
+ case 'run':
82
+ return 'run';
83
+ case 'init':
84
+ return 'init';
85
+ case 'add':
86
+ return 'add';
87
+ case 'sync':
88
+ return 'sync';
89
+ case 'build':
90
+ return 'build';
91
+ case 'improve':
92
+ return 'improve';
93
+ case 'setup-app':
94
+ return 'setup-app';
95
+ case 'runs':
96
+ if (subcommand === 'list')
97
+ return 'runs:list';
98
+ if (subcommand === 'show')
99
+ return 'runs:show';
100
+ if (subcommand === 'follow')
101
+ return 'runs:follow';
102
+ if (subcommand === 'gc')
103
+ return 'runs:gc';
104
+ if (values['follow'])
105
+ return 'runs:follow';
106
+ if (values['all'])
107
+ return 'runs:list';
108
+ if (subcommand)
109
+ return 'runs:show';
110
+ return 'runs';
111
+ case 'help':
112
+ case 'version':
113
+ return undefined;
114
+ default:
115
+ return 'run';
116
+ }
117
+ }
118
+ function parseSetupAppNumber(value, option, fallback) {
119
+ if (value === undefined) {
120
+ return fallback;
121
+ }
122
+ const parsed = parseInt(value, 10);
123
+ if (Number.isNaN(parsed)) {
124
+ console.error(`Invalid ${option} value: ${value}`);
125
+ process.exit(1);
126
+ }
127
+ return parsed;
143
128
  }
144
129
  /**
145
130
  * Detect if a target looks like a git ref vs a file path.
@@ -229,6 +214,7 @@ export function parseCliArgs(argv = process.argv.slice(2)) {
229
214
  const { values, positionals } = parseArgs({
230
215
  args: filteredArgv,
231
216
  options: {
217
+ cwd: { type: 'string', short: 'C' },
232
218
  skill: { type: 'string' },
233
219
  config: { type: 'string' },
234
220
  model: { type: 'string', short: 'm' },
@@ -243,6 +229,8 @@ export function parseCliArgs(argv = process.argv.slice(2)) {
243
229
  remote: { type: 'string' },
244
230
  offline: { type: 'boolean', default: false },
245
231
  'fail-fast': { type: 'boolean', short: 'x', default: false },
232
+ regenerate: { type: 'boolean', default: false },
233
+ prompt: { type: 'string', short: 'p' },
246
234
  parallel: { type: 'string' },
247
235
  git: { type: 'boolean', default: false },
248
236
  staged: { type: 'boolean', default: false },
@@ -270,184 +258,164 @@ export function parseCliArgs(argv = process.argv.slice(2)) {
270
258
  if (values.version) {
271
259
  return {
272
260
  command: 'version',
273
- options: CLIOptionsSchema.parse({}),
261
+ options: parseCliOptions({}),
274
262
  };
275
263
  }
276
264
  if (values.help) {
265
+ const helpTokens = positionals[0] === 'help' ? positionals.slice(1) : positionals;
277
266
  return {
278
267
  command: 'help',
279
- options: CLIOptionsSchema.parse({ help: true }),
268
+ options: parseCliOptions({ ...sharedOptions(values, verboseCount), help: true }),
269
+ helpTarget: resolveHelpTarget(helpTokens, values),
280
270
  };
281
271
  }
282
- // Filter out known commands from positionals.
283
- const commands = ['run', 'help', 'init', 'add', 'version', 'setup-app', 'sync', 'runs'];
284
- const targets = positionals.filter((p) => !commands.includes(p));
285
- // Handle explicit help command
286
- if (positionals.includes('help')) {
272
+ const [command, ...rest] = positionals;
273
+ if (command === 'help') {
287
274
  return {
288
275
  command: 'help',
289
- options: CLIOptionsSchema.parse({ help: true }),
276
+ options: parseCliOptions({ ...sharedOptions(values, verboseCount), help: true }),
277
+ helpTarget: resolveHelpTarget(rest, values),
290
278
  };
291
279
  }
292
- // Handle explicit version command
293
- if (positionals.includes('version')) {
280
+ if (command === 'version') {
294
281
  return {
295
282
  command: 'version',
296
- options: CLIOptionsSchema.parse({}),
283
+ options: parseCliOptions({}),
297
284
  };
298
285
  }
299
- // Handle init command
300
- if (positionals.includes('init')) {
286
+ if (command === 'init') {
301
287
  return {
302
288
  command: 'init',
303
- options: CLIOptionsSchema.parse({
304
- force: values.force,
305
- quiet: values.quiet,
306
- color: resolveColorOption(values),
289
+ options: parseCliOptions({
290
+ ...sharedOptions(values, verboseCount),
291
+ force: Boolean(values.force),
307
292
  }),
308
293
  };
309
294
  }
310
- // Handle add command
311
- if (positionals.includes('add')) {
312
- // First positional after 'add' is the skill name
313
- const addIndex = positionals.indexOf('add');
314
- const skillArg = positionals[addIndex + 1];
295
+ if (command === 'add') {
315
296
  return {
316
297
  command: 'add',
317
- options: CLIOptionsSchema.parse({
318
- skill: values.skill ?? skillArg,
319
- list: values.list,
320
- remote: values.remote,
321
- force: values.force,
322
- quiet: values.quiet,
323
- color: resolveColorOption(values),
298
+ options: parseCliOptions({
299
+ ...sharedOptions(values, verboseCount),
300
+ skill: typeof values.skill === 'string' ? values.skill : rest[0],
301
+ list: Boolean(values.list),
302
+ remote: typeof values.remote === 'string' ? values.remote : undefined,
303
+ force: Boolean(values.force),
324
304
  }),
325
305
  };
326
306
  }
327
- // Handle sync command
328
- if (positionals.includes('sync')) {
329
- // First positional after 'sync' is the remote to sync, --remote flag takes precedence
330
- const syncIndex = positionals.indexOf('sync');
331
- const remoteArg = values.remote ?? positionals[syncIndex + 1];
307
+ if (command === 'sync') {
332
308
  return {
333
309
  command: 'sync',
334
- options: CLIOptionsSchema.parse({
335
- remote: remoteArg,
336
- quiet: values.quiet,
337
- color: resolveColorOption(values),
310
+ options: parseCliOptions({
311
+ ...sharedOptions(values, verboseCount),
312
+ remote: typeof values.remote === 'string' ? values.remote : rest[0],
338
313
  }),
339
314
  };
340
315
  }
341
- // Handle setup-app command
342
- if (positionals.includes('setup-app')) {
343
- const port = values.port ? parseInt(values.port, 10) : 3000;
344
- if (Number.isNaN(port)) {
345
- console.error(`Invalid --port value: ${values.port}`);
346
- process.exit(1);
347
- }
348
- const timeout = values.timeout ? parseInt(values.timeout, 10) : 300;
349
- if (Number.isNaN(timeout)) {
350
- console.error(`Invalid --timeout value: ${values.timeout}`);
351
- process.exit(1);
352
- }
316
+ if (command === 'build') {
353
317
  return {
354
- command: 'setup-app',
355
- options: CLIOptionsSchema.parse({
356
- quiet: values.quiet,
357
- color: resolveColorOption(values),
318
+ command: 'build',
319
+ options: parseCliOptions({
320
+ ...sharedOptions(values, verboseCount),
321
+ skill: typeof values.skill === 'string' ? values.skill : rest[0],
322
+ config: typeof values.config === 'string' ? values.config : undefined,
323
+ model: typeof values.model === 'string' ? values.model : undefined,
324
+ json: Boolean(values.json),
325
+ regenerate: Boolean(values.regenerate),
326
+ prompt: typeof values.prompt === 'string' ? values.prompt : undefined,
327
+ remote: typeof values.remote === 'string' ? values.remote : undefined,
328
+ offline: Boolean(values.offline),
329
+ }),
330
+ };
331
+ }
332
+ if (command === 'improve') {
333
+ return {
334
+ command: 'improve',
335
+ options: parseCliOptions({
336
+ ...sharedOptions(values, verboseCount),
337
+ skill: typeof values.skill === 'string' ? values.skill : rest[0],
338
+ config: typeof values.config === 'string' ? values.config : undefined,
339
+ model: typeof values.model === 'string' ? values.model : undefined,
340
+ json: Boolean(values.json),
341
+ regenerate: true,
342
+ prompt: typeof values.prompt === 'string' ? values.prompt : undefined,
343
+ remote: typeof values.remote === 'string' ? values.remote : undefined,
344
+ offline: Boolean(values.offline),
358
345
  }),
346
+ };
347
+ }
348
+ if (command === 'setup-app') {
349
+ return {
350
+ command: 'setup-app',
351
+ options: parseCliOptions(sharedOptions(values, verboseCount)),
359
352
  setupAppOptions: {
360
- org: values.org,
361
- port,
362
- timeout,
363
- name: values.name,
353
+ org: typeof values.org === 'string' ? values.org : undefined,
354
+ port: parseSetupAppNumber(typeof values.port === 'string' ? values.port : undefined, '--port', 3000),
355
+ timeout: parseSetupAppNumber(typeof values.timeout === 'string' ? values.timeout : undefined, '--timeout', 300),
356
+ name: typeof values.name === 'string' ? values.name : undefined,
364
357
  open: !values['no-open'],
365
358
  },
366
359
  };
367
360
  }
368
- // Handle the `runs` command group.
369
- if (positionals.includes('runs')) {
370
- const runsIndex = positionals.indexOf('runs');
371
- const subArgs = positionals.slice(runsIndex + 1);
372
- const subcommandArg = subArgs[0];
361
+ if (command === 'runs') {
362
+ const subcommandArg = rest[0];
373
363
  let files = [];
374
- // Determine subcommand: explicit keyword, --follow flag, or infer 'show'.
375
364
  let subcommand;
376
- if (subcommandArg === 'list' ||
377
- subcommandArg === 'show' ||
378
- subcommandArg === 'gc' ||
379
- subcommandArg === 'follow') {
365
+ if (subcommandArg === 'list' || subcommandArg === 'show' || subcommandArg === 'gc' || subcommandArg === 'follow') {
380
366
  subcommand = subcommandArg;
381
367
  if (subcommand === 'show' || subcommand === 'follow') {
382
- files = subArgs.slice(1);
368
+ files = rest.slice(1);
383
369
  }
384
370
  }
385
371
  else if (values.follow) {
386
- // `warden runs --follow [runId]` — flag form
387
372
  subcommand = 'follow';
388
- files = subcommandArg ? subArgs : [];
373
+ files = subcommandArg ? rest : [];
389
374
  }
390
375
  else if (subcommandArg) {
391
- // Bare arg (file path or run ID) — infer 'show'
392
376
  subcommand = 'show';
393
- files = subArgs;
377
+ files = rest;
394
378
  }
395
379
  else {
396
380
  subcommand = 'list';
397
381
  }
398
382
  return {
399
383
  command: 'runs',
400
- options: CLIOptionsSchema.parse({
401
- json: values.json,
384
+ options: parseCliOptions({
385
+ ...sharedOptions(values, verboseCount),
386
+ json: Boolean(values.json),
402
387
  reportOn: values['report-on'],
403
388
  minConfidence: values['min-confidence'],
404
- quiet: values.quiet,
405
- verbose: verboseCount,
406
- debug: values.debug,
407
- log: values.log,
408
- color: resolveColorOption(values),
409
389
  }),
410
390
  runsOptions: {
411
391
  subcommand,
412
392
  files,
413
- all: values.all,
393
+ all: Boolean(values.all),
414
394
  },
415
395
  };
416
396
  }
417
- const rawOptions = {
418
- targets: targets.length > 0 ? targets : undefined,
419
- skill: values.skill,
420
- config: values.config,
421
- model: values.model,
422
- json: values.json,
423
- output: values.output,
424
- failOn: values['fail-on'],
425
- reportOn: values['report-on'],
426
- minConfidence: values['min-confidence'],
427
- fix: values.fix,
428
- force: values.force,
429
- parallel: values.parallel ? parseInt(values.parallel, 10) : undefined,
430
- git: values.git,
431
- staged: values.staged,
432
- log: values.log,
433
- offline: values.offline,
434
- failFast: values['fail-fast'],
435
- help: values.help,
436
- quiet: values.quiet,
437
- verbose: verboseCount,
438
- debug: values.debug,
439
- color: resolveColorOption(values),
440
- };
441
- const result = CLIOptionsSchema.safeParse(rawOptions);
442
- if (!result.success) {
443
- const issues = result.error.issues.map((i) => ` - ${i.path.join('.')}: ${i.message}`);
444
- console.error('Invalid options:');
445
- console.error(issues.join('\n'));
446
- process.exit(1);
447
- }
397
+ const targets = command === 'run' ? rest : positionals;
448
398
  return {
449
399
  command: 'run',
450
- options: result.data,
400
+ options: parseCliOptions({
401
+ ...sharedOptions(values, verboseCount),
402
+ targets: targets.length > 0 ? targets : undefined,
403
+ skill: typeof values.skill === 'string' ? values.skill : undefined,
404
+ config: typeof values.config === 'string' ? values.config : undefined,
405
+ model: typeof values.model === 'string' ? values.model : undefined,
406
+ json: Boolean(values.json),
407
+ output: typeof values.output === 'string' ? values.output : undefined,
408
+ failOn: values['fail-on'],
409
+ reportOn: values['report-on'],
410
+ minConfidence: values['min-confidence'],
411
+ fix: Boolean(values.fix),
412
+ force: Boolean(values.force),
413
+ parallel: typeof values.parallel === 'string' ? parseInt(values.parallel, 10) : undefined,
414
+ git: Boolean(values.git),
415
+ staged: Boolean(values.staged),
416
+ offline: Boolean(values.offline),
417
+ failFast: Boolean(values['fail-fast']),
418
+ }),
451
419
  };
452
420
  }
453
421
  //# sourceMappingURL=args.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0V7C;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA+GrF"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2W7C;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA+GrF"}
@@ -5,7 +5,7 @@ import select from '@inquirer/select';
5
5
  import { getRepoRoot } from '../git.js';
6
6
  import { loadWardenConfig, appendSkill } from '../../config/index.js';
7
7
  import { discoverAllSkills } from '../../skills/loader.js';
8
- import { fetchRemote, discoverRemoteSkills, parseRemoteRef, } from '../../skills/remote.js';
8
+ import { fetchRemote, discoverRemoteSkills, parseRemoteRef, GitError, } from '../../skills/remote.js';
9
9
  import { ICON_CHECK } from '../output/icons.js';
10
10
  /** Custom theme for select prompts - white for selected, gray for unselected */
11
11
  const selectTheme = {
@@ -27,6 +27,19 @@ const selectTheme = {
27
27
  },
28
28
  },
29
29
  };
30
+ function reportFetchError(err, remote, reporter, prefix = 'Failed to fetch remote') {
31
+ const message = err instanceof Error ? err.message : String(err);
32
+ reporter.error(`${prefix}: ${message}`);
33
+ if (err instanceof GitError && err.details?.kind === 'auth-required') {
34
+ const sshUrl = err.details.sshUrl;
35
+ if (sshUrl) {
36
+ reporter.tip(`For private repos, retry with the SSH URL: warden add --remote ${sshUrl}`);
37
+ }
38
+ else {
39
+ reporter.tip(`If this is a private repo, try the SSH URL form (git@github.com:owner/repo.git) for ${remote}.`);
40
+ }
41
+ }
42
+ }
30
43
  /**
31
44
  * Render the list of available local skills.
32
45
  */
@@ -215,8 +228,7 @@ async function runAddRemote(options, reporter, configPath, configuredSkills) {
215
228
  });
216
229
  }
217
230
  catch (err) {
218
- const message = err instanceof Error ? err.message : String(err);
219
- reporter.error(`Failed to fetch remote: ${message}`);
231
+ reportFetchError(err, remote, reporter);
220
232
  return 1;
221
233
  }
222
234
  // Discover skills in the remote
@@ -253,8 +265,7 @@ async function runAddRemote(options, reporter, configPath, configuredSkills) {
253
265
  skill = availableSkills.find((s) => s.name === skillName);
254
266
  }
255
267
  catch (err) {
256
- const message = err instanceof Error ? err.message : String(err);
257
- reporter.error(`Failed to refetch remote: ${message}`);
268
+ reportFetchError(err, remote, reporter, 'Failed to refetch remote');
258
269
  return 1;
259
270
  }
260
271
  }