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 @@
1
+ {"version":3,"file":"browse.js","sourceRoot":"","sources":["../../../../src/core/jev/browse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Jev (TypeSafe System One) — zero-dependency HTTP client
3
+ *
4
+ * One POST, three primitives (choice / score / noul), typed answers with calibrated
5
+ * probabilities. No npm dependency: Node >= 20.12 global `fetch` + `AbortSignal.timeout`.
6
+ *
7
+ * Safety rules enforced here:
8
+ * - the API key value never appears in an error message, a log line or the usage ledger;
9
+ * - the serialized state passes through {@link redactSecrets} before ANY request;
10
+ * - questions are validated locally BEFORE any network call (cheap 422 avoidance);
11
+ * - 429 / 529 / transport failures retry with exponential backoff, everything else fails fast.
12
+ *
13
+ * @module core/jev/client
14
+ */
15
+ import { type JevConfig, type JevProvider } from './config.js';
16
+ export type Json = string | number | boolean | null | Json[] | {
17
+ [k: string]: Json;
18
+ };
19
+ export type Question = {
20
+ type: 'choice';
21
+ instructions: Json;
22
+ criteria: Record<string, Json>;
23
+ } | {
24
+ type: 'score';
25
+ instructions: Json;
26
+ criteria: Json[];
27
+ } | {
28
+ type: 'noul';
29
+ instructions: Json;
30
+ criteria?: {
31
+ true?: Json;
32
+ false?: Json;
33
+ };
34
+ };
35
+ export type Answer = {
36
+ type: 'choice';
37
+ choice: string;
38
+ probabilities: Record<string, number>;
39
+ confidence: number;
40
+ } | {
41
+ type: 'score';
42
+ score: number;
43
+ probabilities: Record<string, number>;
44
+ legend?: Record<string, string>;
45
+ confidence: number;
46
+ } | {
47
+ type: 'noul';
48
+ noul: number;
49
+ };
50
+ export interface JevResponse {
51
+ provider: JevProvider;
52
+ model: string;
53
+ answers: Record<string, Answer>;
54
+ usage: {
55
+ input_tokens: number;
56
+ output_tokens: number;
57
+ cost?: number;
58
+ };
59
+ latencyMs: number;
60
+ id?: string;
61
+ /** How many secret-shaped spans {@link redactSecrets} masked out of the state. */
62
+ redactions?: number;
63
+ }
64
+ export type JevErrorCode = 'disabled' | 'no_key' | 'auth' | 'validation' | 'rate_limit' | 'overloaded' | 'transport' | 'timeout' | 'schema';
65
+ export declare class JevError extends Error {
66
+ readonly code: JevErrorCode;
67
+ readonly status?: number;
68
+ readonly retryable: boolean;
69
+ constructor(code: JevErrorCode, message: string, opts?: {
70
+ status?: number;
71
+ retryable?: boolean;
72
+ });
73
+ }
74
+ export interface JevClientOptions {
75
+ apiKey?: string;
76
+ fetch?: typeof fetch;
77
+ projectRoot?: string;
78
+ usageLog?: boolean;
79
+ kind?: string;
80
+ /** Base backoff in ms (300 by default); lowered by tests. */
81
+ backoffMs?: number;
82
+ }
83
+ /** API limits (TypeSafe, verified 2026-09-21). */
84
+ export declare const JEV_LIMITS: {
85
+ readonly maxChoiceOptions: 255;
86
+ readonly minChoiceOptions: 2;
87
+ readonly minScoreLevels: 2;
88
+ readonly maxScoreLevels: 10;
89
+ };
90
+ /**
91
+ * Validate questions locally so a malformed catalog fails as `validation`
92
+ * before we spend a request (and before anything reaches the wire).
93
+ */
94
+ export declare function validateQuestions(questions: Record<string, Question>): void;
95
+ /** Map an HTTP status to a JevErrorCode. */
96
+ export declare function statusToCode(status: number): JevErrorCode;
97
+ export declare class JevClient {
98
+ readonly config: JevConfig;
99
+ private readonly apiKey;
100
+ private readonly fetchImpl;
101
+ private readonly projectRoot?;
102
+ private readonly usageLog;
103
+ private readonly kind;
104
+ private readonly backoffMs;
105
+ constructor(cfg: JevConfig, opts?: JevClientOptions);
106
+ /**
107
+ * Ask one or more questions about a piece of state. Independent questions run in
108
+ * parallel inside a single request — fan out rather than making N calls.
109
+ */
110
+ ask(state: Json, questions: Record<string, Question>, opts?: {
111
+ timeoutMs?: number;
112
+ retries?: number;
113
+ kind?: string;
114
+ usageLog?: boolean;
115
+ }): Promise<JevResponse>;
116
+ /** One tiny noul, no retries, no ledger entry. Never throws. */
117
+ ping(): Promise<{
118
+ ok: boolean;
119
+ latencyMs: number;
120
+ model?: string;
121
+ error?: string;
122
+ }>;
123
+ /** Read a short error body without ever echoing credentials back. */
124
+ private detail;
125
+ private redact;
126
+ private toJevError;
127
+ private log;
128
+ }
129
+ /**
130
+ * Build a client for a project, or null when Jev is disabled or no key is available.
131
+ * Callers treat null as "continue without Jev" — never as an error.
132
+ */
133
+ export declare function createJevClient(projectRoot?: string, opts?: JevClientOptions): JevClient | null;
134
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/jev/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,329 @@
1
+ /**
2
+ * Jev (TypeSafe System One) — zero-dependency HTTP client
3
+ *
4
+ * One POST, three primitives (choice / score / noul), typed answers with calibrated
5
+ * probabilities. No npm dependency: Node >= 20.12 global `fetch` + `AbortSignal.timeout`.
6
+ *
7
+ * Safety rules enforced here:
8
+ * - the API key value never appears in an error message, a log line or the usage ledger;
9
+ * - the serialized state passes through {@link redactSecrets} before ANY request;
10
+ * - questions are validated locally BEFORE any network call (cheap 422 avoidance);
11
+ * - 429 / 529 / transport failures retry with exponential backoff, everything else fails fast.
12
+ *
13
+ * @module core/jev/client
14
+ */
15
+ import { jevEndpoint, loadJevConfig, resolveApiKey, } from './config.js';
16
+ import { redactSecrets } from './redact.js';
17
+ import { appendUsage } from './usage.js';
18
+ import { resolveEffectiveRoot } from '../../utils/find-project-root.js';
19
+ export class JevError extends Error {
20
+ constructor(code, message, opts) {
21
+ super(message);
22
+ this.name = 'JevError';
23
+ this.code = code;
24
+ this.status = opts?.status;
25
+ this.retryable = opts?.retryable ?? RETRYABLE_CODES.has(code);
26
+ }
27
+ }
28
+ const RETRYABLE_CODES = new Set(['rate_limit', 'overloaded', 'transport']);
29
+ /** API limits (TypeSafe, verified 2026-09-21). */
30
+ export const JEV_LIMITS = {
31
+ maxChoiceOptions: 255,
32
+ minChoiceOptions: 2,
33
+ minScoreLevels: 2,
34
+ maxScoreLevels: 10,
35
+ };
36
+ const QUESTION_ID = /^[A-Za-z0-9_.-]+$/;
37
+ const DEFAULT_RETRIES = 2;
38
+ const DEFAULT_BACKOFF_MS = 300;
39
+ function sleep(ms) {
40
+ return new Promise((resolve) => setTimeout(resolve, ms));
41
+ }
42
+ function isPlainObject(value) {
43
+ return !!value && typeof value === 'object' && !Array.isArray(value);
44
+ }
45
+ function finite(value) {
46
+ return typeof value === 'number' && Number.isFinite(value);
47
+ }
48
+ function probabilityMap(value) {
49
+ if (!isPlainObject(value))
50
+ return null;
51
+ const out = {};
52
+ for (const [k, v] of Object.entries(value)) {
53
+ if (!finite(v) || v < 0 || v > 1)
54
+ return null;
55
+ out[k] = v;
56
+ }
57
+ return out;
58
+ }
59
+ /**
60
+ * Validate questions locally so a malformed catalog fails as `validation`
61
+ * before we spend a request (and before anything reaches the wire).
62
+ */
63
+ export function validateQuestions(questions) {
64
+ const ids = Object.keys(questions ?? {});
65
+ if (ids.length === 0) {
66
+ throw new JevError('validation', 'at least one question is required');
67
+ }
68
+ for (const id of ids) {
69
+ if (!QUESTION_ID.test(id)) {
70
+ throw new JevError('validation', `invalid question id "${id}" (allowed: A-Z a-z 0-9 _ . -)`);
71
+ }
72
+ const q = questions[id];
73
+ if (!isPlainObject(q)) {
74
+ throw new JevError('validation', `question "${id}" must be an object`);
75
+ }
76
+ if (q.type === 'choice') {
77
+ const options = isPlainObject(q.criteria) ? Object.keys(q.criteria) : [];
78
+ if (options.length < JEV_LIMITS.minChoiceOptions || options.length > JEV_LIMITS.maxChoiceOptions) {
79
+ throw new JevError('validation', `choice question "${id}" needs ${JEV_LIMITS.minChoiceOptions}-${JEV_LIMITS.maxChoiceOptions} options, got ${options.length}`);
80
+ }
81
+ }
82
+ else if (q.type === 'score') {
83
+ const levels = Array.isArray(q.criteria) ? q.criteria.length : 0;
84
+ if (levels < JEV_LIMITS.minScoreLevels || levels > JEV_LIMITS.maxScoreLevels) {
85
+ throw new JevError('validation', `score question "${id}" needs ${JEV_LIMITS.minScoreLevels}-${JEV_LIMITS.maxScoreLevels} levels, got ${levels}`);
86
+ }
87
+ }
88
+ else if (q.type !== 'noul') {
89
+ throw new JevError('validation', `question "${id}" has unknown type "${String(q.type)}"`);
90
+ }
91
+ if (q.instructions === undefined) {
92
+ throw new JevError('validation', `question "${id}" is missing instructions`);
93
+ }
94
+ }
95
+ }
96
+ /** Map an HTTP status to a JevErrorCode. */
97
+ export function statusToCode(status) {
98
+ if (status === 401 || status === 403)
99
+ return 'auth';
100
+ if (status === 400 || status === 404 || status === 422)
101
+ return 'validation';
102
+ if (status === 429)
103
+ return 'rate_limit';
104
+ if (status === 529)
105
+ return 'overloaded';
106
+ if (status >= 500)
107
+ return 'transport';
108
+ return 'transport';
109
+ }
110
+ function parseAnswers(body, questions) {
111
+ if (!isPlainObject(body) || !isPlainObject(body.answers)) {
112
+ throw new JevError('schema', 'response is missing an "answers" object');
113
+ }
114
+ const raw = body.answers;
115
+ const answers = {};
116
+ for (const id of Object.keys(questions)) {
117
+ const a = raw[id];
118
+ if (!isPlainObject(a)) {
119
+ throw new JevError('schema', `response is missing an answer for question "${id}"`);
120
+ }
121
+ const type = a.type;
122
+ if (type === 'noul') {
123
+ if (!finite(a.noul) || a.noul < 0 || a.noul > 1) {
124
+ throw new JevError('schema', `answer "${id}" has an out-of-range noul probability`);
125
+ }
126
+ answers[id] = { type: 'noul', noul: a.noul };
127
+ }
128
+ else if (type === 'choice') {
129
+ const probabilities = probabilityMap(a.probabilities);
130
+ if (typeof a.choice !== 'string' || !probabilities || !finite(a.confidence)) {
131
+ throw new JevError('schema', `answer "${id}" is not a well-formed choice answer`);
132
+ }
133
+ answers[id] = { type: 'choice', choice: a.choice, probabilities, confidence: a.confidence };
134
+ }
135
+ else if (type === 'score') {
136
+ const probabilities = probabilityMap(a.probabilities);
137
+ if (!finite(a.score) || !probabilities || !finite(a.confidence)) {
138
+ throw new JevError('schema', `answer "${id}" is not a well-formed score answer`);
139
+ }
140
+ const legend = isPlainObject(a.legend)
141
+ ? Object.fromEntries(Object.entries(a.legend).map(([k, v]) => [k, String(v)]))
142
+ : undefined;
143
+ answers[id] = { type: 'score', score: a.score, probabilities, legend, confidence: a.confidence };
144
+ }
145
+ else {
146
+ throw new JevError('schema', `answer "${id}" has unknown type "${String(type)}"`);
147
+ }
148
+ }
149
+ return answers;
150
+ }
151
+ export class JevClient {
152
+ constructor(cfg, opts = {}) {
153
+ this.config = cfg;
154
+ const resolved = opts.apiKey ?? resolveApiKey(cfg)?.key ?? '';
155
+ if (!resolved) {
156
+ throw new JevError('no_key', `no API key found for provider "${cfg.provider}"`);
157
+ }
158
+ this.apiKey = resolved;
159
+ this.fetchImpl = opts.fetch ?? globalThis.fetch;
160
+ this.projectRoot = opts.projectRoot;
161
+ this.usageLog = opts.usageLog !== false;
162
+ this.kind = opts.kind ?? 'ask';
163
+ this.backoffMs = opts.backoffMs ?? DEFAULT_BACKOFF_MS;
164
+ }
165
+ /**
166
+ * Ask one or more questions about a piece of state. Independent questions run in
167
+ * parallel inside a single request — fan out rather than making N calls.
168
+ */
169
+ async ask(state, questions, opts = {}) {
170
+ validateQuestions(questions);
171
+ const timeoutMs = opts.timeoutMs ?? this.config.timeoutMs;
172
+ const retries = opts.retries ?? DEFAULT_RETRIES;
173
+ const kind = opts.kind ?? this.kind;
174
+ const usageLog = opts.usageLog ?? this.usageLog;
175
+ const url = jevEndpoint(this.config);
176
+ // THE choke point: nothing reaches the wire before this line. Redacting the
177
+ // serialized form catches secrets wherever a caller buried them — a command
178
+ // string, a diff hunk, a page excerpt — without every caller remembering to.
179
+ // A marker never contains a quote or a backslash, so the JSON normally still
180
+ // parses; when a mask swallowed a delimiter we send the redacted text itself
181
+ // rather than the unredacted object.
182
+ const redacted = redactSecrets(JSON.stringify(state) ?? '');
183
+ let safeState;
184
+ try {
185
+ safeState = JSON.parse(redacted.text);
186
+ }
187
+ catch {
188
+ safeState = redacted.text;
189
+ }
190
+ const body = JSON.stringify({ model: this.config.model, state: safeState, questions });
191
+ const started = Date.now();
192
+ let lastError = new JevError('transport', 'request was never attempted');
193
+ for (let attempt = 0; attempt <= retries; attempt++) {
194
+ try {
195
+ const response = await this.fetchImpl(url, {
196
+ method: 'POST',
197
+ headers: {
198
+ 'Content-Type': 'application/json',
199
+ Authorization: `Bearer ${this.apiKey}`,
200
+ },
201
+ body,
202
+ signal: AbortSignal.timeout(timeoutMs),
203
+ });
204
+ if (!response.ok) {
205
+ throw new JevError(statusToCode(response.status), `Jev request failed with HTTP ${response.status}${await this.detail(response)}`, { status: response.status });
206
+ }
207
+ let payload;
208
+ try {
209
+ payload = await response.json();
210
+ }
211
+ catch {
212
+ throw new JevError('schema', 'Jev response was not valid JSON');
213
+ }
214
+ const answers = parseAnswers(payload, questions);
215
+ const raw = payload;
216
+ const usage = isPlainObject(raw.usage) ? raw.usage : {};
217
+ const latencyMs = Date.now() - started;
218
+ const result = {
219
+ provider: this.config.provider,
220
+ model: typeof raw.model === 'string' ? raw.model : this.config.model,
221
+ answers,
222
+ usage: {
223
+ input_tokens: finite(usage.input_tokens) ? usage.input_tokens : 0,
224
+ output_tokens: finite(usage.output_tokens) ? usage.output_tokens : 0,
225
+ cost: finite(usage.cost) ? usage.cost : undefined,
226
+ },
227
+ latencyMs,
228
+ id: typeof raw.id === 'string' ? raw.id : undefined,
229
+ redactions: redacted.redactions,
230
+ };
231
+ this.log(kind, result, true, usageLog);
232
+ return result;
233
+ }
234
+ catch (error) {
235
+ lastError = this.toJevError(error);
236
+ if (!lastError.retryable || attempt === retries)
237
+ break;
238
+ await sleep(this.backoffMs * Math.pow(2, attempt));
239
+ }
240
+ }
241
+ this.log(kind, null, false, usageLog, redacted.redactions);
242
+ throw lastError;
243
+ }
244
+ /** One tiny noul, no retries, no ledger entry. Never throws. */
245
+ async ping() {
246
+ const started = Date.now();
247
+ try {
248
+ const response = await this.ask({ probe: 'ping' }, {
249
+ PING: {
250
+ type: 'noul',
251
+ instructions: 'Is the word in `probe` the English word "ping"?',
252
+ },
253
+ }, { retries: 0, kind: 'ping', usageLog: false });
254
+ return { ok: true, latencyMs: response.latencyMs, model: response.model };
255
+ }
256
+ catch (error) {
257
+ const err = this.toJevError(error);
258
+ return { ok: false, latencyMs: Date.now() - started, error: `${err.code}: ${err.message}` };
259
+ }
260
+ }
261
+ /** Read a short error body without ever echoing credentials back. */
262
+ async detail(response) {
263
+ try {
264
+ const text = (await response.text()).slice(0, 300).replace(/\s+/g, ' ').trim();
265
+ return text ? ` — ${this.redact(text)}` : '';
266
+ }
267
+ catch {
268
+ return '';
269
+ }
270
+ }
271
+ redact(text) {
272
+ return this.apiKey ? text.split(this.apiKey).join('[redacted]') : text;
273
+ }
274
+ toJevError(error) {
275
+ if (error instanceof JevError) {
276
+ return new JevError(error.code, this.redact(error.message), {
277
+ status: error.status,
278
+ retryable: error.retryable,
279
+ });
280
+ }
281
+ const name = error?.name ?? '';
282
+ const message = this.redact(error?.message ?? 'unknown transport failure');
283
+ if (name === 'AbortError' || name === 'TimeoutError') {
284
+ return new JevError('timeout', `Jev request timed out: ${message}`);
285
+ }
286
+ return new JevError('transport', `Jev request failed: ${message}`);
287
+ }
288
+ log(kind, result, ok, usageLog = this.usageLog, redactions = 0) {
289
+ if (!usageLog)
290
+ return;
291
+ try {
292
+ const root = this.projectRoot ?? resolveEffectiveRoot();
293
+ appendUsage(root, {
294
+ at: new Date().toISOString(),
295
+ kind,
296
+ provider: this.config.provider,
297
+ model: result?.model ?? this.config.model,
298
+ input_tokens: result?.usage.input_tokens ?? 0,
299
+ output_tokens: result?.usage.output_tokens ?? 0,
300
+ cost: result?.usage.cost,
301
+ latencyMs: result?.latencyMs ?? 0,
302
+ redactions: result?.redactions ?? redactions,
303
+ ok,
304
+ });
305
+ }
306
+ catch {
307
+ // The ledger is best-effort; a Jev call never fails because of it.
308
+ }
309
+ }
310
+ }
311
+ /**
312
+ * Build a client for a project, or null when Jev is disabled or no key is available.
313
+ * Callers treat null as "continue without Jev" — never as an error.
314
+ */
315
+ export function createJevClient(projectRoot, opts = {}) {
316
+ const cfg = loadJevConfig(projectRoot);
317
+ if (!cfg.enabled)
318
+ return null;
319
+ const key = opts.apiKey ?? resolveApiKey(cfg)?.key;
320
+ if (!key)
321
+ return null;
322
+ try {
323
+ return new JevClient(cfg, { projectRoot, ...opts, apiKey: key });
324
+ }
325
+ catch {
326
+ return null;
327
+ }
328
+ }
329
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/core/jev/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Jev (TypeSafe System One) — configuration
3
+ *
4
+ * Precedence: JEV_DEFAULTS <- `.specweave/config.json` "jev" section <- environment.
5
+ *
6
+ * Consent is explicit: `jev.enabled` must be true in the project config (written by
7
+ * `specweave jev setup` after a live ping). `SPECWEAVE_JEV=0` disables Jev for a single
8
+ * process, `SPECWEAVE_JEV=1` enables it ad hoc.
9
+ *
10
+ * Nothing here ever reads, prints or stores an API key VALUE — only env var NAMES.
11
+ *
12
+ * @module core/jev/config
13
+ */
14
+ export type JevProvider = 'openrouter' | 'typesafe';
15
+ export interface JevConfig {
16
+ enabled: boolean;
17
+ provider: JevProvider;
18
+ model: string;
19
+ apiKeyEnv?: string;
20
+ timeoutMs: number;
21
+ thresholds: {
22
+ route: number;
23
+ guardDeny: number;
24
+ guardWarn: number;
25
+ };
26
+ guards: {
27
+ bash: boolean;
28
+ };
29
+ modelRouting: boolean;
30
+ browse: {
31
+ allowDomains: string[];
32
+ maxSteps: number;
33
+ };
34
+ }
35
+ /** Built-in defaults. Jev is OFF until a project opts in. */
36
+ export declare const JEV_DEFAULTS: JevConfig;
37
+ /** System One endpoint per provider. */
38
+ export declare const JEV_PROVIDER_ENDPOINT: Record<JevProvider, string>;
39
+ /** Default model id per provider (used when `model` is not set anywhere). */
40
+ export declare const JEV_PROVIDER_MODEL: Record<JevProvider, string>;
41
+ /** Default API key environment variable NAME per provider. */
42
+ export declare const JEV_PROVIDER_KEY_ENV: Record<JevProvider, string>;
43
+ /** Provider-agnostic fallback key env var NAME. */
44
+ export declare const JEV_FALLBACK_KEY_ENV = "JEV_API_KEY";
45
+ /**
46
+ * Load the effective Jev config.
47
+ *
48
+ * @param projectRoot - Project root to read `.specweave/config.json` from. Used AS GIVEN
49
+ * (no upward walk) so callers stay deterministic; omit it to resolve
50
+ * the effective (umbrella-aware) root automatically.
51
+ * @param env - Environment to read overrides from (defaults to `process.env`).
52
+ */
53
+ export declare function loadJevConfig(projectRoot?: string, env?: NodeJS.ProcessEnv): JevConfig;
54
+ /** True when this project (and this process) may call Jev. */
55
+ export declare function isJevEnabled(projectRoot?: string, env?: NodeJS.ProcessEnv): boolean;
56
+ /**
57
+ * Resolve the API key.
58
+ *
59
+ * Order: `cfg.apiKeyEnv` -> the provider's default var -> `JEV_API_KEY`.
60
+ *
61
+ * @returns `{ key, source }` where `source` is the env var NAME (safe to print), or null.
62
+ */
63
+ export declare function resolveApiKey(cfg: JevConfig, env?: NodeJS.ProcessEnv): {
64
+ key: string;
65
+ source: string;
66
+ } | null;
67
+ /** Endpoint URL for a config's provider. */
68
+ export declare function jevEndpoint(cfg: JevConfig): string;
69
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/core/jev/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,MAAM,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,6DAA6D;AAC7D,eAAO,MAAM,YAAY,EAAE,SAS1B,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAG7D,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAG1D,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAG5D,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAsElD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,SAAS,CA2CnG;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEhG;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,SAAS,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUxC;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAElD"}