@fly3366/deepjit 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 (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/README.zh.md +126 -0
  4. package/cordis.patch.yml +16 -0
  5. package/dist/collector.d.ts +31 -0
  6. package/dist/collector.js +258 -0
  7. package/dist/collector.js.map +1 -0
  8. package/dist/compiler/optimize.d.ts +30 -0
  9. package/dist/compiler/optimize.js +47 -0
  10. package/dist/compiler/optimize.js.map +1 -0
  11. package/dist/compiler/tiering.d.ts +22 -0
  12. package/dist/compiler/tiering.js +20 -0
  13. package/dist/compiler/tiering.js.map +1 -0
  14. package/dist/config.d.ts +42 -0
  15. package/dist/config.js +42 -0
  16. package/dist/config.js.map +1 -0
  17. package/dist/feedback.d.ts +43 -0
  18. package/dist/feedback.js +172 -0
  19. package/dist/feedback.js.map +1 -0
  20. package/dist/flow-executor.d.ts +46 -0
  21. package/dist/flow-executor.js +184 -0
  22. package/dist/flow-executor.js.map +1 -0
  23. package/dist/genai.d.ts +27 -0
  24. package/dist/genai.js +57 -0
  25. package/dist/genai.js.map +1 -0
  26. package/dist/i18n.d.ts +40 -0
  27. package/dist/i18n.js +81 -0
  28. package/dist/i18n.js.map +1 -0
  29. package/dist/index.d.ts +9 -0
  30. package/dist/index.js +170 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/metrics.d.ts +28 -0
  33. package/dist/metrics.js +68 -0
  34. package/dist/metrics.js.map +1 -0
  35. package/dist/miner.d.ts +14 -0
  36. package/dist/miner.js +93 -0
  37. package/dist/miner.js.map +1 -0
  38. package/dist/paths.d.ts +13 -0
  39. package/dist/paths.js +44 -0
  40. package/dist/paths.js.map +1 -0
  41. package/dist/status-tool.d.ts +21 -0
  42. package/dist/status-tool.js +113 -0
  43. package/dist/status-tool.js.map +1 -0
  44. package/dist/store.d.ts +122 -0
  45. package/dist/store.js +317 -0
  46. package/dist/store.js.map +1 -0
  47. package/dist/summarizer.d.ts +102 -0
  48. package/dist/summarizer.js +472 -0
  49. package/dist/summarizer.js.map +1 -0
  50. package/package.json +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { DeepJitStore } from './store.ts';
2
+ import type { ArtifactRow } from './store.ts';
3
+ import { type AotContext } from './compiler/optimize.ts';
4
+ /** Prefix applied to every published artifact name. */
5
+ export declare const SKILL_PREFIX = "deepjit-";
6
+ export interface CompiledArtifact {
7
+ type: 'skill' | 'flow';
8
+ name: string;
9
+ title: string;
10
+ description: string;
11
+ whenToUse?: string;
12
+ content?: string;
13
+ steps?: FlowStep[];
14
+ summary: string;
15
+ sourcePatternId: number;
16
+ }
17
+ export interface FlowStep {
18
+ tool: string;
19
+ args: Record<string, unknown>;
20
+ onError?: 'stop' | 'continue' | 'retry';
21
+ timeoutMs?: number;
22
+ }
23
+ export interface SummarizerConfig {
24
+ llmProvider: string;
25
+ llmModel: string;
26
+ maxResultChars: number;
27
+ minRepeat: number;
28
+ topK: number;
29
+ minFlowSteps: number;
30
+ minPatternValue: number;
31
+ transcriptMaxRows: number;
32
+ compileCandidates: number;
33
+ }
34
+ /** Number of tool steps encoded in a flow-seq pattern key ("a>b>c" => 3). */
35
+ export declare function patternSteps(key: string): number;
36
+ /**
37
+ * Heuristic worth of compiling a pattern: repetition x length. A single tool
38
+ * repeated often, or a long flow seen rarely, both score low; only flows that
39
+ * are both repeated AND multi-step justify an LLM compile.
40
+ */
41
+ export declare function patternValue(count: number, key: string): number;
42
+ /** Minimal structural surface of ctx.llm so the module stays testable. */
43
+ export interface LlmLike {
44
+ stream(options: {
45
+ provider: string;
46
+ model: string;
47
+ messages: unknown[];
48
+ system?: string;
49
+ temperature?: number;
50
+ maxTokens?: number;
51
+ sessionId?: unknown;
52
+ signal?: AbortSignal;
53
+ }): AsyncIterable<unknown>;
54
+ }
55
+ export interface SessionPersistenceLike {
56
+ readFrom(id: unknown, fromSeq: number, signal?: AbortSignal): Promise<{
57
+ events: unknown[];
58
+ }>;
59
+ }
60
+ export interface PublishFn {
61
+ (artifact: Omit<CompiledArtifact, 'sourcePatternId'> & {
62
+ sourcePatternId: number;
63
+ }): Promise<{
64
+ mode: 'filesystem' | 'runtime';
65
+ filePath: string;
66
+ name: string;
67
+ }>;
68
+ }
69
+ export declare class Summarizer {
70
+ private inFlight;
71
+ private lastRunMs;
72
+ private store;
73
+ private cfg;
74
+ private llm;
75
+ private persistence;
76
+ private publish;
77
+ private log;
78
+ private aot?;
79
+ constructor(store: DeepJitStore, cfg: SummarizerConfig, llm: LlmLike, persistence: SessionPersistenceLike | undefined, publish: PublishFn, log: (msg: string) => void, aot?: AotContext);
80
+ get busy(): boolean;
81
+ /** How many uncompiled traces are waiting since the last mined watermark. */
82
+ pendingTraces(): number;
83
+ shouldRun(minIntervalMs: number, now?: number): boolean;
84
+ /** Hot patterns that clear the repetition, cross-session, step, and value gates. */
85
+ private valuableCandidates;
86
+ run(signal?: AbortSignal): Promise<number>;
87
+ /**
88
+ * Tier promotion: recompile a hot skill's source pattern as a flow (tier 2).
89
+ * Returns the published flow name, or undefined on failure.
90
+ */
91
+ compilePatternAsFlow(patternId: number, signal?: AbortSignal): Promise<string | undefined>;
92
+ private buildTranscript;
93
+ private compile;
94
+ private callLlm;
95
+ /**
96
+ * On a same-name collision, let the model compare the existing artifact with
97
+ * the new one and decide whether to update. Defaults to 'skip' on any
98
+ * failure so we never overwrite by accident.
99
+ */
100
+ private decideUpdate;
101
+ }
102
+ export type { ArtifactRow };
@@ -0,0 +1,472 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { optimizeFlow } from "./compiler/optimize.js";
3
+ import { metrics } from "./metrics.js";
4
+ import { startLlmSpan, endLlmSpan, recordTokenUsage } from "./genai.js";
5
+ /** Prefix applied to every published artifact name. */
6
+ export const SKILL_PREFIX = 'deepjit-';
7
+ /** Number of tool steps encoded in a flow-seq pattern key ("a>b>c" => 3). */
8
+ export function patternSteps(key) {
9
+ return key.split('>').length;
10
+ }
11
+ /**
12
+ * Heuristic worth of compiling a pattern: repetition x length. A single tool
13
+ * repeated often, or a long flow seen rarely, both score low; only flows that
14
+ * are both repeated AND multi-step justify an LLM compile.
15
+ */
16
+ export function patternValue(count, key) {
17
+ return count * patternSteps(key);
18
+ }
19
+ const KEBAB = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
20
+ const SYSTEM_PROMPT = [
21
+ 'You are the JIT compiler of an agent harness. Recurring tool workflows must be compiled into',
22
+ 'reusable assets: either a "skill" (a markdown instruction guide the agent loads on demand) or a',
23
+ '"flow" (a strict JSON step template replayed by a flow executor with new inputs).',
24
+ 'Rules:',
25
+ '- Output ONLY a single JSON object, no prose, no code fences.',
26
+ '- "type" is "skill" when the flow is procedural/heuristic (instructions matter more than calls);',
27
+ ' "flow" when it is a deterministic sequence of tool calls with clear argument mapping.',
28
+ '- "name" must match ^[a-z0-9]+(?:-[a-z0-9]+)*$ and be descriptive.',
29
+ '- For "flow", every "steps[].tool" must be one of the tools observed in the transcript.',
30
+ '- "steps[].args" values are template strings like "${input.x}" (bound to the flow input at',
31
+ ' execution) or literal JSON values.',
32
+ '- "onError" per step: "stop" (default), "continue", or "retry" (retries at most twice).',
33
+ '- Never invent tool names, arguments, or behavior not present in the transcript.',
34
+ ].join('\n');
35
+ export class Summarizer {
36
+ inFlight = false;
37
+ lastRunMs = 0;
38
+ store;
39
+ cfg;
40
+ llm;
41
+ persistence;
42
+ publish;
43
+ log;
44
+ aot;
45
+ constructor(store, cfg, llm, persistence, publish, log, aot) {
46
+ this.store = store;
47
+ this.cfg = cfg;
48
+ this.llm = llm;
49
+ this.persistence = persistence;
50
+ this.publish = publish;
51
+ this.log = log;
52
+ this.aot = aot;
53
+ }
54
+ get busy() {
55
+ return this.inFlight;
56
+ }
57
+ /** How many uncompiled traces are waiting since the last mined watermark. */
58
+ pendingTraces() {
59
+ return this.store
60
+ .listSummarizableSessions()
61
+ .reduce((sum, s) => sum + (s.last_seq - s.last_summarized_seq), 0);
62
+ }
63
+ shouldRun(minIntervalMs, now = Date.now()) {
64
+ if (this.inFlight)
65
+ return false;
66
+ if (now - this.lastRunMs < minIntervalMs)
67
+ return false;
68
+ return this.valuableCandidates(1).length > 0;
69
+ }
70
+ /** Hot patterns that clear the repetition, cross-session, step, and value gates. */
71
+ valuableCandidates(limit) {
72
+ return this.store
73
+ .getHotPatterns('flow-seq', this.cfg.minRepeat, 2, this.cfg.topK)
74
+ .filter((p) => patternSteps(p.key) >= this.cfg.minFlowSteps &&
75
+ patternValue(p.count, p.key) >= this.cfg.minPatternValue)
76
+ .slice(0, limit);
77
+ }
78
+ async run(signal) {
79
+ if (this.inFlight)
80
+ return 0;
81
+ this.inFlight = true;
82
+ this.lastRunMs = Date.now();
83
+ let compiled = 0;
84
+ try {
85
+ const candidates = this.valuableCandidates(this.cfg.topK);
86
+ for (const pattern of candidates) {
87
+ if (signal?.aborted)
88
+ break;
89
+ const transcript = await this.buildTranscript(pattern.sample_session, pattern.key, signal);
90
+ if (!transcript.tools.length)
91
+ continue;
92
+ try {
93
+ metrics.inc('compile_attempted');
94
+ const output = await this.compile(pattern.key, pattern.count, transcript, pattern.sample_session, signal);
95
+ const finalName = `${SKILL_PREFIX}${output.name}`;
96
+ const existing = this.store.getArtifact(finalName);
97
+ if (existing) {
98
+ const decision = await this.decideUpdate(existing, output, signal);
99
+ if (decision === 'skip') {
100
+ this.log(`deepjit: name collision on "${finalName}", LLM chose to keep existing`);
101
+ this.store.markPatternCompiled(pattern.id);
102
+ continue;
103
+ }
104
+ }
105
+ const { mode, filePath } = await this.publish({ ...output, sourcePatternId: pattern.id });
106
+ this.store.insertArtifact({
107
+ type: output.type,
108
+ name: finalName,
109
+ title: output.title,
110
+ description: output.description,
111
+ file_path: filePath,
112
+ source_pattern_id: pattern.id,
113
+ status: 'active',
114
+ feedback_mode: mode,
115
+ llm_provider: this.cfg.llmProvider,
116
+ llm_model: this.cfg.llmModel,
117
+ summary: output.summary,
118
+ });
119
+ this.store.markPatternCompiled(pattern.id);
120
+ compiled++;
121
+ metrics.inc('compile_succeeded');
122
+ metrics.inc(`artifacts_published.${output.type}`);
123
+ this.log(`deepjit: compiled "${output.name}" (${output.type}) from pattern "${pattern.key}"`);
124
+ }
125
+ catch (err) {
126
+ metrics.inc('compile_failed');
127
+ this.log(`deepjit: compile failed for pattern "${pattern.key}": ${err.message}`);
128
+ }
129
+ }
130
+ }
131
+ finally {
132
+ this.inFlight = false;
133
+ }
134
+ return compiled;
135
+ }
136
+ /**
137
+ * Tier promotion: recompile a hot skill's source pattern as a flow (tier 2).
138
+ * Returns the published flow name, or undefined on failure.
139
+ */
140
+ async compilePatternAsFlow(patternId, signal) {
141
+ const pattern = this.store.getPatternById(patternId);
142
+ if (!pattern)
143
+ return undefined;
144
+ try {
145
+ const transcript = await this.buildTranscript(pattern.sample_session, pattern.key, signal);
146
+ if (!transcript.tools.length)
147
+ return undefined;
148
+ const output = await this.compile(pattern.key, pattern.count, transcript, pattern.sample_session, signal, 'flow');
149
+ if (output.type !== 'flow')
150
+ return undefined;
151
+ const { name: publishedName } = await this.publish({ ...output, sourcePatternId: pattern.id });
152
+ this.store.markPatternCompiled(pattern.id);
153
+ metrics.inc('promotions');
154
+ this.log(`deepjit: promoted pattern "${pattern.key}" to flow "${publishedName}"`);
155
+ return publishedName;
156
+ }
157
+ catch (err) {
158
+ this.log(`deepjit: promotion failed for pattern ${patternId}: ${err.message}`);
159
+ return undefined;
160
+ }
161
+ }
162
+ async buildTranscript(sessionId, key, signal) {
163
+ const names = key.split('>');
164
+ const toolRows = this.store.readTracesSince(sessionId, 0, ['tool'], this.cfg.transcriptMaxRows);
165
+ const seqs = toolRows.map((r) => {
166
+ try {
167
+ return { seq: r.seq, name: JSON.parse(r.payload).name ?? '' };
168
+ }
169
+ catch {
170
+ return { seq: r.seq, name: '' };
171
+ }
172
+ });
173
+ // locate the first window matching the pattern key
174
+ let start = 0;
175
+ outer: for (let i = 0; i + names.length <= seqs.length; i++) {
176
+ for (let j = 0; j < names.length; j++) {
177
+ if (seqs[i + j]?.name !== names[j])
178
+ continue outer;
179
+ }
180
+ start = i;
181
+ break;
182
+ }
183
+ const fromSeq = Math.max(0, (seqs[start]?.seq ?? 0) - 4);
184
+ const parts = [];
185
+ let events = [];
186
+ let drilled = false;
187
+ if (this.persistence) {
188
+ try {
189
+ const { events: evs } = await this.persistence.readFrom(sessionId, fromSeq, signal);
190
+ events = evs;
191
+ drilled = true;
192
+ }
193
+ catch {
194
+ drilled = false;
195
+ }
196
+ }
197
+ if (drilled) {
198
+ for (const ev of events) {
199
+ const e = ev;
200
+ if (e.type === 'user/message') {
201
+ const text = textOf(e.data);
202
+ if (text)
203
+ parts.push(`USER: ${text}`);
204
+ }
205
+ else if (e.type === 'tool/call') {
206
+ const d = e.data;
207
+ parts.push(`TOOL_CALL: ${d?.name ?? ''} ${trim(d?.arguments ?? '', this.cfg.maxResultChars)}`);
208
+ }
209
+ else if (e.type === 'tool/result') {
210
+ const d = e.data;
211
+ parts.push(`TOOL_RESULT${d?.error ? ' (error)' : ''}: ${textOf(d?.message)}`);
212
+ }
213
+ }
214
+ }
215
+ else {
216
+ for (const row of toolRows) {
217
+ try {
218
+ const p = JSON.parse(row.payload);
219
+ parts.push(`TOOL_CALL: ${p.name ?? ''} ${trim(p.args ?? '', this.cfg.maxResultChars)}`);
220
+ if (p.result_text)
221
+ parts.push(`TOOL_RESULT: ${p.result_text}`);
222
+ }
223
+ catch {
224
+ // skip
225
+ }
226
+ }
227
+ }
228
+ const tools = [...new Set(seqs.map((s) => s.name).filter(Boolean))];
229
+ const text = parts.join('\n').slice(0, 12000);
230
+ return { text, tools };
231
+ }
232
+ async compile(patternKey, count, transcript, sampleSession, signal, forceType) {
233
+ const userMsg = [
234
+ `Recurring workflow (observed ${count} times, tool sequence "${patternKey}").`,
235
+ `Known tool names: ${transcript.tools.join(', ')}.`,
236
+ '',
237
+ 'Transcript excerpt:',
238
+ transcript.text,
239
+ '',
240
+ forceType
241
+ ? 'Compile this workflow into a JSON artifact of type "flow" per the system rules.'
242
+ : 'Compile this workflow into a JSON artifact per the system rules.',
243
+ ].join('\n');
244
+ // Follow the user's configured model (captured from request/context events);
245
+ // the plugin config only provides a fallback when no session has run yet.
246
+ const sessionContext = this.store.latestSessionContext();
247
+ const provider = sessionContext.provider ?? this.cfg.llmProvider;
248
+ const model = sessionContext.model ?? this.cfg.llmModel;
249
+ if (!model)
250
+ throw new Error('no model available: configure llmModel or run a session first');
251
+ const n = Math.max(1, this.cfg.compileCandidates);
252
+ let lastError = '';
253
+ let best;
254
+ let bestScore = -1;
255
+ for (let i = 0; i < n; i++) {
256
+ const userContent = lastError
257
+ ? `${userMsg}\n\nPrevious output was rejected: ${lastError}\nOutput only valid JSON.`
258
+ : userMsg;
259
+ let raw;
260
+ try {
261
+ raw = await this.callLlm([
262
+ { role: 'system', content: [{ type: 'text', text: SYSTEM_PROMPT }] },
263
+ { role: 'user', content: [{ type: 'text', text: userContent }] },
264
+ ], provider, model, sampleSession, signal);
265
+ }
266
+ catch (err) {
267
+ lastError = err.message;
268
+ continue;
269
+ }
270
+ try {
271
+ const parsed = parseJson(raw);
272
+ const artifact = validateArtifact(parsed, transcript.tools);
273
+ if (artifact.type === 'flow' && this.aot) {
274
+ optimizeFlow(artifact.steps ?? [], this.aot);
275
+ }
276
+ const score = scoreArtifact(artifact);
277
+ if (score > bestScore) {
278
+ bestScore = score;
279
+ best = artifact;
280
+ }
281
+ }
282
+ catch (err) {
283
+ lastError = err.message;
284
+ }
285
+ }
286
+ if (!best)
287
+ throw new Error(`LLM output not usable after ${n} candidate(s): ${lastError}`);
288
+ return best;
289
+ }
290
+ async callLlm(messages, provider, model, sessionId, signal) {
291
+ let lastError;
292
+ for (let attempt = 0; attempt < 3; attempt++) {
293
+ if (attempt > 0)
294
+ await new Promise((r) => setTimeout(r, attempt * 2000));
295
+ let text = '';
296
+ let usage;
297
+ const started = Date.now();
298
+ const span = startLlmSpan({ model, temperature: 0.2, maxTokens: 4000 });
299
+ try {
300
+ metrics.inc('llm_calls');
301
+ for await (const chunk of this.llm.stream({
302
+ provider,
303
+ model,
304
+ messages,
305
+ temperature: 0.2,
306
+ maxTokens: 4000,
307
+ sessionId,
308
+ signal,
309
+ })) {
310
+ const c = chunk;
311
+ if (c.type === 'finish')
312
+ this.log(`deepjit: llm finish ${JSON.stringify(c.reason).slice(0, 500)}`);
313
+ if (c.type === 'text-delta' && typeof c.text === 'string')
314
+ text += c.text;
315
+ if (c.type === 'usage' && c.usage)
316
+ usage = c.usage;
317
+ }
318
+ metrics.observe('llm_latency', Date.now() - started);
319
+ }
320
+ catch (err) {
321
+ metrics.inc('llm_errors');
322
+ endLlmSpan(span, usage, err);
323
+ lastError = err;
324
+ this.log(`deepjit: llm stream attempt ${attempt + 1} threw: ${err.message}`);
325
+ continue;
326
+ }
327
+ if (text) {
328
+ endLlmSpan(span, usage);
329
+ if (usage)
330
+ recordTokenUsage(model, usage);
331
+ return text;
332
+ }
333
+ endLlmSpan(span, usage, new Error('LLM returned no text'));
334
+ lastError = new Error('LLM returned no text');
335
+ }
336
+ throw lastError instanceof Error ? lastError : new Error(String(lastError));
337
+ }
338
+ /**
339
+ * On a same-name collision, let the model compare the existing artifact with
340
+ * the new one and decide whether to update. Defaults to 'skip' on any
341
+ * failure so we never overwrite by accident.
342
+ */
343
+ async decideUpdate(existing, output, signal) {
344
+ let existingContent = '';
345
+ try {
346
+ if (existsSync(existing.file_path))
347
+ existingContent = readFileSync(existing.file_path, 'utf8');
348
+ }
349
+ catch {
350
+ existingContent = '';
351
+ }
352
+ const newContent = output.type === 'skill'
353
+ ? (output.content ?? '')
354
+ : JSON.stringify(output.steps ?? []);
355
+ const sessionContext = this.store.latestSessionContext();
356
+ const provider = sessionContext.provider ?? this.cfg.llmProvider;
357
+ const model = sessionContext.model ?? this.cfg.llmModel;
358
+ if (!model)
359
+ return 'skip';
360
+ const prompt = [
361
+ `An existing compiled artifact named "${existing.name}" already exists.`,
362
+ '',
363
+ 'EXISTING:',
364
+ existingContent.slice(0, 3000),
365
+ '',
366
+ 'NEW CANDIDATE:',
367
+ newContent.slice(0, 3000),
368
+ '',
369
+ 'Do they describe the SAME workflow, and is the NEW one meaningfully better or more current?',
370
+ 'Answer with a single JSON object: {"action":"update"} to replace, or {"action":"skip"} to keep the existing.',
371
+ ].join('\n');
372
+ try {
373
+ const raw = await this.callLlm([{ role: 'user', content: [{ type: 'text', text: prompt }] }], provider, model, existing.name, signal);
374
+ const parsed = JSON.parse(raw.replace(/^```(?:json)?\s*/i, '').replace(/\s*```$/, '').trim());
375
+ return parsed.action === 'update' ? 'update' : 'skip';
376
+ }
377
+ catch {
378
+ return 'skip';
379
+ }
380
+ }
381
+ }
382
+ function textOf(value) {
383
+ const msg = value;
384
+ const content = Array.isArray(msg?.content) ? msg.content : Array.isArray(value) ? value : null;
385
+ if (!content)
386
+ return '';
387
+ return content
388
+ .filter((b) => b.type === 'text' && typeof b.text === 'string')
389
+ .map((b) => b.text)
390
+ .join('\n');
391
+ }
392
+ function trim(s, max) {
393
+ return s.length <= max ? s : s.slice(0, max) + '…';
394
+ }
395
+ function parseJson(raw) {
396
+ const cleaned = raw.replace(/^```(?:json)?\s*/i, '').replace(/\s*```$/, '').trim();
397
+ return JSON.parse(cleaned);
398
+ }
399
+ function validateArtifact(parsed, knownTools) {
400
+ if (!parsed || typeof parsed !== 'object')
401
+ throw new Error('not an object');
402
+ const p = parsed;
403
+ const type = p.type;
404
+ if (type !== 'skill' && type !== 'flow')
405
+ throw new Error(`unknown type "${String(type)}"`);
406
+ const name = typeof p.name === 'string' ? p.name : '';
407
+ if (!KEBAB.test(name))
408
+ throw new Error(`invalid kebab-case name "${name}"`);
409
+ const description = typeof p.description === 'string' ? p.description : '';
410
+ if (!description)
411
+ throw new Error('missing description');
412
+ const title = typeof p.title === 'string' ? p.title : name;
413
+ if (type === 'skill') {
414
+ const content = typeof p.content === 'string' && p.content.trim() ? p.content.trim() : '';
415
+ if (!content)
416
+ throw new Error('skill missing content');
417
+ return {
418
+ type,
419
+ name,
420
+ title,
421
+ description,
422
+ whenToUse: typeof p.whenToUse === 'string' ? p.whenToUse : undefined,
423
+ content,
424
+ summary: `JIT-compiled from recurring workflow; description: ${description}`,
425
+ sourcePatternId: -1,
426
+ };
427
+ }
428
+ const stepsRaw = Array.isArray(p.steps) ? p.steps : [];
429
+ if (stepsRaw.length === 0)
430
+ throw new Error('flow missing steps');
431
+ const known = new Set(knownTools);
432
+ const steps = [];
433
+ for (const raw of stepsRaw) {
434
+ const s = raw;
435
+ const tool = typeof s.tool === 'string' ? s.tool : '';
436
+ if (!tool)
437
+ throw new Error(`flow step missing tool`);
438
+ if (tool === 'deepjit_status')
439
+ throw new Error(`flow step may not invoke deepjit_status`);
440
+ if (!known.has(tool) && tool !== 'deepjit_flow') {
441
+ throw new Error(`flow step references unknown tool "${tool}"`);
442
+ }
443
+ const onError = s.onError;
444
+ if (onError !== undefined && onError !== 'stop' && onError !== 'continue' && onError !== 'retry') {
445
+ throw new Error(`invalid onError "${String(onError)}"`);
446
+ }
447
+ const timeoutMs = typeof s.timeoutMs === 'number' && s.timeoutMs > 0 ? s.timeoutMs : undefined;
448
+ steps.push({
449
+ tool,
450
+ args: s.args && typeof s.args === 'object' && !Array.isArray(s.args)
451
+ ? s.args
452
+ : {},
453
+ onError: onError,
454
+ timeoutMs,
455
+ });
456
+ }
457
+ return {
458
+ type,
459
+ name,
460
+ title,
461
+ description,
462
+ whenToUse: typeof p.whenToUse === 'string' ? p.whenToUse : undefined,
463
+ steps,
464
+ summary: `JIT-compiled flow (${steps.length} steps) from recurring workflow; description: ${description}`,
465
+ sourcePatternId: -1,
466
+ };
467
+ }
468
+ /** Rate a validated artifact for best-of-N selection (higher = more specific). */
469
+ function scoreArtifact(a) {
470
+ return a.type === 'flow' ? 1000 + (a.steps?.length ?? 0) : (a.content?.length ?? 0);
471
+ }
472
+ //# sourceMappingURL=summarizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summarizer.js","sourceRoot":"","sources":["../src/summarizer.ts"],"names":[],"mappings":"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"}