specweave 2.1.0 → 2.2.1

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 (73) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/README.md +7 -6
  3. package/bin/specweave.js +28 -0
  4. package/dist/src/cli/commands/jev-helpers.d.ts +148 -0
  5. package/dist/src/cli/commands/jev-helpers.d.ts.map +1 -0
  6. package/dist/src/cli/commands/jev-helpers.js +582 -0
  7. package/dist/src/cli/commands/jev-helpers.js.map +1 -0
  8. package/dist/src/cli/commands/jev.d.ts +21 -0
  9. package/dist/src/cli/commands/jev.d.ts.map +1 -0
  10. package/dist/src/cli/commands/jev.js +350 -0
  11. package/dist/src/cli/commands/jev.js.map +1 -0
  12. package/dist/src/cli/helpers/init/instruction-file-writer.d.ts +4 -0
  13. package/dist/src/cli/helpers/init/instruction-file-writer.d.ts.map +1 -1
  14. package/dist/src/cli/helpers/init/instruction-file-writer.js +11 -6
  15. package/dist/src/cli/helpers/init/instruction-file-writer.js.map +1 -1
  16. package/dist/src/core/auto/completion-evaluator.d.ts +22 -1
  17. package/dist/src/core/auto/completion-evaluator.d.ts.map +1 -1
  18. package/dist/src/core/auto/completion-evaluator.js +99 -9
  19. package/dist/src/core/auto/completion-evaluator.js.map +1 -1
  20. package/dist/src/core/config/types.d.ts +39 -1
  21. package/dist/src/core/config/types.d.ts.map +1 -1
  22. package/dist/src/core/config/types.js +1 -0
  23. package/dist/src/core/config/types.js.map +1 -1
  24. package/dist/src/core/hooks/handlers/pre-tool-use.d.ts +28 -5
  25. package/dist/src/core/hooks/handlers/pre-tool-use.d.ts.map +1 -1
  26. package/dist/src/core/hooks/handlers/pre-tool-use.js +162 -7
  27. package/dist/src/core/hooks/handlers/pre-tool-use.js.map +1 -1
  28. package/dist/src/core/jev/browse.d.ts +56 -0
  29. package/dist/src/core/jev/browse.d.ts.map +1 -0
  30. package/dist/src/core/jev/browse.js +721 -0
  31. package/dist/src/core/jev/browse.js.map +1 -0
  32. package/dist/src/core/jev/client.d.ts +134 -0
  33. package/dist/src/core/jev/client.d.ts.map +1 -0
  34. package/dist/src/core/jev/client.js +329 -0
  35. package/dist/src/core/jev/client.js.map +1 -0
  36. package/dist/src/core/jev/config.d.ts +69 -0
  37. package/dist/src/core/jev/config.d.ts.map +1 -0
  38. package/dist/src/core/jev/config.js +181 -0
  39. package/dist/src/core/jev/config.js.map +1 -0
  40. package/dist/src/core/jev/decide.d.ts +162 -0
  41. package/dist/src/core/jev/decide.d.ts.map +1 -0
  42. package/dist/src/core/jev/decide.js +333 -0
  43. package/dist/src/core/jev/decide.js.map +1 -0
  44. package/dist/src/core/jev/index.d.ts +20 -0
  45. package/dist/src/core/jev/index.d.ts.map +1 -0
  46. package/dist/src/core/jev/index.js +20 -0
  47. package/dist/src/core/jev/index.js.map +1 -0
  48. package/dist/src/core/jev/questions.d.ts +56 -0
  49. package/dist/src/core/jev/questions.d.ts.map +1 -0
  50. package/dist/src/core/jev/questions.js +159 -0
  51. package/dist/src/core/jev/questions.js.map +1 -0
  52. package/dist/src/core/jev/redact.d.ts +44 -0
  53. package/dist/src/core/jev/redact.d.ts.map +1 -0
  54. package/dist/src/core/jev/redact.js +102 -0
  55. package/dist/src/core/jev/redact.js.map +1 -0
  56. package/dist/src/core/jev/usage.d.ts +38 -0
  57. package/dist/src/core/jev/usage.d.ts.map +1 -0
  58. package/dist/src/core/jev/usage.js +70 -0
  59. package/dist/src/core/jev/usage.js.map +1 -0
  60. package/dist/src/utils/model-selection.d.ts +49 -0
  61. package/dist/src/utils/model-selection.d.ts.map +1 -1
  62. package/dist/src/utils/model-selection.js +70 -0
  63. package/dist/src/utils/model-selection.js.map +1 -1
  64. package/package.json +1 -1
  65. package/plugins/PLUGINS-INDEX.md +14 -4
  66. package/plugins/specweave/.claude-plugin/plugin.json +5 -3
  67. package/plugins/specweave/PLUGIN.md +16 -4
  68. package/plugins/specweave/hooks/run-worker.mjs +37 -2
  69. package/plugins/specweave/hooks/run.mjs +30 -0
  70. package/plugins/specweave/marketplace.json +6 -0
  71. package/plugins/specweave/skills/jev/SKILL.md +203 -0
  72. package/src/templates/AGENTS.md.template +22 -0
  73. package/src/templates/CLAUDE.md.template +22 -0
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Jev headless browser delegation.
3
+ *
4
+ * A mechanical navigation loop where Jev picks the next action from an enumerated set
5
+ * of things visible on the page. The loop is always HEADLESS: it never launches a
6
+ * visible window, never types text the model chose (values come from `inputs` only),
7
+ * never leaves `allowDomains`, and hands control back to the agent the moment the page
8
+ * needs judgement (login, captcha, payment, free text).
9
+ *
10
+ * Playwright is loaded lazily — it is not a dependency of this package.
11
+ *
12
+ * @module core/jev/browse
13
+ */
14
+ import { type JevClient } from './client.js';
15
+ export interface BrowseOptions {
16
+ goal: string;
17
+ url?: string;
18
+ allowDomains?: string[];
19
+ maxSteps?: number;
20
+ maxMs?: number;
21
+ minConfidence?: number;
22
+ inputs?: Record<string, string>;
23
+ screenshotDir?: string;
24
+ allowSensitive?: boolean;
25
+ projectRoot?: string;
26
+ client?: JevClient;
27
+ playwright?: unknown;
28
+ }
29
+ export interface BrowseStep {
30
+ n: number;
31
+ url: string;
32
+ action: string;
33
+ choice: string;
34
+ confidence: number;
35
+ apiMs: number;
36
+ executed: boolean;
37
+ reason?: string;
38
+ }
39
+ export interface BrowseResult {
40
+ status: 'done' | 'blocked' | 'needs_agent' | 'low_confidence' | 'step_limit' | 'budget' | 'error';
41
+ handoff?: string;
42
+ url: string;
43
+ title: string;
44
+ steps: BrowseStep[];
45
+ pageText: string;
46
+ screenshots: string[];
47
+ elapsedMs: number;
48
+ cost: number;
49
+ error?: string;
50
+ }
51
+ /**
52
+ * Run the headless browse loop. Always resolves — failures come back as
53
+ * `status: 'error'` so an agent can keep going without a try/catch.
54
+ */
55
+ export declare function runBrowse(opts: BrowseOptions): Promise<BrowseResult>;
56
+ //# sourceMappingURL=browse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../../src/core/jev/browse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAAmB,KAAK,SAAS,EAA4B,MAAM,aAAa,CAAC;AAGxF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,gBAAgB,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqeD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA+S1E"}