@interf/compiler 0.1.8
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.
- package/LICENSE +183 -0
- package/README.md +1008 -0
- package/TRADEMARKS.md +19 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +30 -0
- package/dist/bin.js.map +1 -0
- package/dist/commands/benchmark.d.ts +3 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +400 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/compile.d.ts +3 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +139 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/create.d.ts +49 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +813 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/default.d.ts +3 -0
- package/dist/commands/default.d.ts.map +1 -0
- package/dist/commands/default.js +52 -0
- package/dist/commands/default.js.map +1 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +146 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +235 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +32 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/reset.d.ts +3 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +136 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +67 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/verify.d.ts +3 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +112 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agents.d.ts +59 -0
- package/dist/lib/agents.d.ts.map +1 -0
- package/dist/lib/agents.js +760 -0
- package/dist/lib/agents.js.map +1 -0
- package/dist/lib/benchmark.d.ts +30 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +325 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/config.d.ts +6 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +15 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/discovery.d.ts +8 -0
- package/dist/lib/discovery.d.ts.map +1 -0
- package/dist/lib/discovery.js +80 -0
- package/dist/lib/discovery.js.map +1 -0
- package/dist/lib/executors.d.ts +33 -0
- package/dist/lib/executors.d.ts.map +1 -0
- package/dist/lib/executors.js +44 -0
- package/dist/lib/executors.js.map +1 -0
- package/dist/lib/filesystem.d.ts +4 -0
- package/dist/lib/filesystem.d.ts.map +1 -0
- package/dist/lib/filesystem.js +61 -0
- package/dist/lib/filesystem.js.map +1 -0
- package/dist/lib/interf.d.ts +37 -0
- package/dist/lib/interf.d.ts.map +1 -0
- package/dist/lib/interf.js +1104 -0
- package/dist/lib/interf.js.map +1 -0
- package/dist/lib/local-workflows.d.ts +35 -0
- package/dist/lib/local-workflows.d.ts.map +1 -0
- package/dist/lib/local-workflows.js +149 -0
- package/dist/lib/local-workflows.js.map +1 -0
- package/dist/lib/parse.d.ts +9 -0
- package/dist/lib/parse.d.ts.map +1 -0
- package/dist/lib/parse.js +51 -0
- package/dist/lib/parse.js.map +1 -0
- package/dist/lib/registry.d.ts +28 -0
- package/dist/lib/registry.d.ts.map +1 -0
- package/dist/lib/registry.js +80 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/runtime.d.ts +59 -0
- package/dist/lib/runtime.d.ts.map +1 -0
- package/dist/lib/runtime.js +615 -0
- package/dist/lib/runtime.js.map +1 -0
- package/dist/lib/schema.d.ts +705 -0
- package/dist/lib/schema.d.ts.map +1 -0
- package/dist/lib/schema.js +443 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/state.d.ts +49 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +633 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/summarize-plan.d.ts +16 -0
- package/dist/lib/summarize-plan.d.ts.map +1 -0
- package/dist/lib/summarize-plan.js +112 -0
- package/dist/lib/summarize-plan.js.map +1 -0
- package/dist/lib/user-config.d.ts +6 -0
- package/dist/lib/user-config.d.ts.map +1 -0
- package/dist/lib/user-config.js +16 -0
- package/dist/lib/user-config.js.map +1 -0
- package/dist/lib/validate.d.ts +149 -0
- package/dist/lib/validate.d.ts.map +1 -0
- package/dist/lib/validate.js +838 -0
- package/dist/lib/validate.js.map +1 -0
- package/dist/lib/workflow-definitions.d.ts +79 -0
- package/dist/lib/workflow-definitions.d.ts.map +1 -0
- package/dist/lib/workflow-definitions.js +565 -0
- package/dist/lib/workflow-definitions.js.map +1 -0
- package/dist/lib/workflows.d.ts +125 -0
- package/dist/lib/workflows.d.ts.map +1 -0
- package/dist/lib/workflows.js +1107 -0
- package/dist/lib/workflows.js.map +1 -0
- package/package.json +73 -0
- package/skills/benchmark/SKILL.md +129 -0
- package/skills/interface/analyze/SKILL.md +140 -0
- package/skills/interface/compile/SKILL.md +153 -0
- package/skills/interface/compile/references/output-format.md +48 -0
- package/skills/interface/create/SKILL.md +264 -0
- package/skills/interface/create/references/compile-plan-format.md +109 -0
- package/skills/interface/create/references/workflows.md +50 -0
- package/skills/interface/query/SKILL.md +34 -0
- package/skills/interface/retrieve/SKILL.md +166 -0
- package/skills/knowledge-base/compile/SKILL.md +220 -0
- package/skills/knowledge-base/compile/references/output-format.md +48 -0
- package/skills/knowledge-base/compile/references/stage-claims.md +60 -0
- package/skills/knowledge-base/compile/references/stage-entities.md +46 -0
- package/skills/knowledge-base/query/SKILL.md +33 -0
- package/skills/knowledge-base/summarize/SKILL.md +122 -0
- package/skills/workflow/create/SKILL.md +126 -0
- package/templates/interface/README.md +158 -0
- package/templates/interface/interfaces.md +99 -0
- package/templates/knowledge-base/README.md +138 -0
- package/templates/knowledge-base/interfignore +19 -0
- package/templates/knowledge-base/registry.md +118 -0
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
import { readdirSync, statSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { isWorkflowId, listLocalWorkflowDefinitions, loadLocalWorkflowDefinition, loadWorkflowDefinitionFromDir, } from "./local-workflows.js";
|
|
4
|
+
import { renderJsonFrontmatter } from "./parse.js";
|
|
5
|
+
export const KNOWLEDGE_BASE_WORKFLOW_IDS = [
|
|
6
|
+
"interf",
|
|
7
|
+
"karpathy",
|
|
8
|
+
];
|
|
9
|
+
export const INTERFACE_WORKFLOW_IDS = [
|
|
10
|
+
"briefing",
|
|
11
|
+
"research",
|
|
12
|
+
"audit",
|
|
13
|
+
];
|
|
14
|
+
const KNOWLEDGE_BASE_RUNTIME_STAGES = [
|
|
15
|
+
{
|
|
16
|
+
id: "summarize",
|
|
17
|
+
label: "Summarize",
|
|
18
|
+
description: "Turn source files into per-file summaries.",
|
|
19
|
+
contractType: "kb-file-evidence",
|
|
20
|
+
skillDir: "summarize",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: "compile",
|
|
24
|
+
label: "Compile",
|
|
25
|
+
description: "Build the cross-file knowledge layer and retrieval structure.",
|
|
26
|
+
contractType: "kb-knowledge-layer",
|
|
27
|
+
skillDir: "compile",
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
const INTERFACE_RUNTIME_STAGES = [
|
|
31
|
+
{
|
|
32
|
+
id: "retrieve",
|
|
33
|
+
label: "Retrieve",
|
|
34
|
+
description: "Retrieve and prove the relevant evidence set.",
|
|
35
|
+
contractType: "interface-retrieval",
|
|
36
|
+
skillDir: "retrieve",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "analyze",
|
|
40
|
+
label: "Analyze",
|
|
41
|
+
description: "Extract interface-specific structure and findings.",
|
|
42
|
+
contractType: "interface-analysis",
|
|
43
|
+
skillDir: "analyze",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "compile",
|
|
47
|
+
label: "Compile",
|
|
48
|
+
description: "Write the local interface outputs.",
|
|
49
|
+
contractType: "interface-output",
|
|
50
|
+
skillDir: "compile",
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
export const KNOWLEDGE_BASE_WORKFLOWS = [
|
|
54
|
+
{
|
|
55
|
+
id: "interf",
|
|
56
|
+
label: "Interf (Recommended)",
|
|
57
|
+
hint: "Interf's default methodology: summarize source-grounded evidence, then compile a retrieval-ready cross-file knowledge layer",
|
|
58
|
+
recommended: true,
|
|
59
|
+
stages: KNOWLEDGE_BASE_RUNTIME_STAGES,
|
|
60
|
+
scope: "builtin",
|
|
61
|
+
stagePolicyNotes: {
|
|
62
|
+
summarize: [
|
|
63
|
+
"Favor conservative, source-grounded summaries that preserve evidence tiers and leave broader synthesis for compile.",
|
|
64
|
+
],
|
|
65
|
+
compile: [
|
|
66
|
+
"Bias compile toward canonical entities, claims, indexes, and retrieval structure that help later interfaces prove coverage.",
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
starterDocs: [
|
|
70
|
+
{
|
|
71
|
+
relativePath: "README.md",
|
|
72
|
+
content: [
|
|
73
|
+
renderJsonFrontmatter({ mode: "extend" }),
|
|
74
|
+
"# Interf Knowledge Base Workflow",
|
|
75
|
+
"",
|
|
76
|
+
"Bias this knowledge base toward source-grounded summaries, explicit evidence tiers, and retrieval-ready compile outputs.",
|
|
77
|
+
"",
|
|
78
|
+
"- keep summary titles and abstracts conservative and source-grounded",
|
|
79
|
+
"- preserve evidence tiers, truth modes, and draft-vs-final distinctions",
|
|
80
|
+
"- compile durable entities, claims, indexes, and navigation that make later interfaces easier to retrieve from",
|
|
81
|
+
"- prefer structures that help agents prove what they scanned, selected, and excluded before synthesis",
|
|
82
|
+
"",
|
|
83
|
+
].join("\n"),
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "karpathy",
|
|
89
|
+
label: "Karpathy",
|
|
90
|
+
hint: "Source folder -> summaries -> compiled markdown knowledge base with concept pages, backlinks, and local browseability",
|
|
91
|
+
stages: KNOWLEDGE_BASE_RUNTIME_STAGES,
|
|
92
|
+
scope: "builtin",
|
|
93
|
+
stagePolicyNotes: {
|
|
94
|
+
summarize: [
|
|
95
|
+
"Favor legible per-source summaries that an LLM can quickly reuse as raw material for a linked markdown knowledge base.",
|
|
96
|
+
],
|
|
97
|
+
compile: [
|
|
98
|
+
"Bias compile toward a browseable markdown knowledge base with concept pages, category pages, backlinks, and local link structure.",
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
starterDocs: [
|
|
102
|
+
{
|
|
103
|
+
relativePath: "README.md",
|
|
104
|
+
content: [
|
|
105
|
+
renderJsonFrontmatter({ mode: "extend" }),
|
|
106
|
+
"# Karpathy Knowledge Base Workflow",
|
|
107
|
+
"",
|
|
108
|
+
"Bias this knowledge base toward the source folder -> summaries -> compiled markdown knowledge-base loop.",
|
|
109
|
+
"",
|
|
110
|
+
"- keep per-source summaries legible and source-grounded",
|
|
111
|
+
"- prefer markdown-native knowledge artifacts an agent can browse and file back into the base",
|
|
112
|
+
"- preserve backlinks and local browseability across the knowledge layer",
|
|
113
|
+
"- treat the compiled base as a maintained working surface for later questions, not just a one-shot export",
|
|
114
|
+
"",
|
|
115
|
+
].join("\n"),
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
relativePath: "compile/stages/compile/SKILL.md",
|
|
119
|
+
content: [
|
|
120
|
+
renderJsonFrontmatter({ mode: "extend" }),
|
|
121
|
+
"# Karpathy Compile Bias",
|
|
122
|
+
"",
|
|
123
|
+
"During compile, favor concept pages, category pages, and linked navigation when they materially improve browseability.",
|
|
124
|
+
"",
|
|
125
|
+
"- compile cross-file concept pages when multiple sources support them",
|
|
126
|
+
"- keep backlinks and local link structure easy for an LLM to traverse",
|
|
127
|
+
"- prefer markdown outputs the agent can file back into the knowledge base later",
|
|
128
|
+
"",
|
|
129
|
+
].join("\n"),
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
];
|
|
134
|
+
export const INTERFACE_WORKFLOWS = [
|
|
135
|
+
{
|
|
136
|
+
id: "briefing",
|
|
137
|
+
label: "Briefing (Recommended)",
|
|
138
|
+
hint: "For operator briefs: what is true now, what changed recently, and what matters next",
|
|
139
|
+
placeholder: "What is true now, what changed, and what matters next about this topic?",
|
|
140
|
+
recommended: true,
|
|
141
|
+
stages: INTERFACE_RUNTIME_STAGES,
|
|
142
|
+
scope: "builtin",
|
|
143
|
+
stagePolicyNotes: {
|
|
144
|
+
retrieve: [
|
|
145
|
+
"Bias retrieve toward current-state evidence, recent changes, and decisions that affect next steps.",
|
|
146
|
+
],
|
|
147
|
+
analyze: [
|
|
148
|
+
"Bias analysis toward what is true now, what changed, and what needs follow-through.",
|
|
149
|
+
],
|
|
150
|
+
compile: [
|
|
151
|
+
"Bias outputs toward briefable current truth, changes, and next steps rather than open-ended synthesis.",
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
starterDocs: [
|
|
155
|
+
{
|
|
156
|
+
relativePath: "README.md",
|
|
157
|
+
content: [
|
|
158
|
+
renderJsonFrontmatter({ mode: "extend" }),
|
|
159
|
+
"# Briefing Interface Workflow",
|
|
160
|
+
"",
|
|
161
|
+
"Bias this interface toward current truth, what changed, and what matters next.",
|
|
162
|
+
"",
|
|
163
|
+
"- prefer current operating reality over generic summaries",
|
|
164
|
+
"- keep change, decision pressure, and next steps visible",
|
|
165
|
+
"",
|
|
166
|
+
].join("\n"),
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: "research",
|
|
172
|
+
label: "Research",
|
|
173
|
+
hint: "For exploratory understanding: themes, claims, contradictions, and open questions",
|
|
174
|
+
placeholder: "What themes, contradictions, and open questions should this interface surface?",
|
|
175
|
+
stages: INTERFACE_RUNTIME_STAGES,
|
|
176
|
+
scope: "builtin",
|
|
177
|
+
stagePolicyNotes: {
|
|
178
|
+
retrieve: [
|
|
179
|
+
"Bias retrieve toward primary sources, experiments, datasets, and materials that support or contradict the main themes.",
|
|
180
|
+
],
|
|
181
|
+
analyze: [
|
|
182
|
+
"Bias analysis toward themes, contradictions, evidence strength, and open questions.",
|
|
183
|
+
],
|
|
184
|
+
compile: [
|
|
185
|
+
"Bias outputs toward research synthesis, disagreement, and what still needs evidence.",
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
starterDocs: [
|
|
189
|
+
{
|
|
190
|
+
relativePath: "compile/stages/analyze/SKILL.md",
|
|
191
|
+
content: [
|
|
192
|
+
renderJsonFrontmatter({ mode: "extend" }),
|
|
193
|
+
"# Research Interface Workflow",
|
|
194
|
+
"",
|
|
195
|
+
"Bias this interface toward themes, claims, contradictions, and open questions.",
|
|
196
|
+
"",
|
|
197
|
+
"- preserve provenance and disagreement, not just consensus",
|
|
198
|
+
"- keep unresolved questions and counterevidence visible",
|
|
199
|
+
"",
|
|
200
|
+
].join("\n"),
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
id: "audit",
|
|
206
|
+
label: "Audit",
|
|
207
|
+
hint: "For verification work: gaps, inconsistencies, missing evidence, and follow-ups",
|
|
208
|
+
placeholder: "What gaps, inconsistencies, or missing evidence should this interface find?",
|
|
209
|
+
stages: INTERFACE_RUNTIME_STAGES,
|
|
210
|
+
scope: "builtin",
|
|
211
|
+
stagePolicyNotes: {
|
|
212
|
+
retrieve: [
|
|
213
|
+
"Bias retrieve toward canonical records, recent changes, and materials that expose gaps or stale areas.",
|
|
214
|
+
],
|
|
215
|
+
analyze: [
|
|
216
|
+
"Bias analysis toward inconsistencies, missing evidence, and what requires verification next.",
|
|
217
|
+
],
|
|
218
|
+
compile: [
|
|
219
|
+
"Bias outputs toward explicit gaps, contradictions, and follow-up work instead of broad summaries.",
|
|
220
|
+
],
|
|
221
|
+
},
|
|
222
|
+
starterDocs: [
|
|
223
|
+
{
|
|
224
|
+
relativePath: "README.md",
|
|
225
|
+
content: [
|
|
226
|
+
renderJsonFrontmatter({ mode: "extend" }),
|
|
227
|
+
"# Audit Interface Workflow",
|
|
228
|
+
"",
|
|
229
|
+
"Bias this interface toward gaps, inconsistencies, missing evidence, and follow-up work.",
|
|
230
|
+
"",
|
|
231
|
+
"- keep canonical sources and unresolved contradictions easy to inspect",
|
|
232
|
+
"- prefer evidence-linked findings over broad conclusions",
|
|
233
|
+
"",
|
|
234
|
+
].join("\n"),
|
|
235
|
+
},
|
|
236
|
+
],
|
|
237
|
+
},
|
|
238
|
+
];
|
|
239
|
+
for (const workflow of KNOWLEDGE_BASE_WORKFLOWS) {
|
|
240
|
+
workflow.interfaceTemplates = INTERFACE_WORKFLOWS;
|
|
241
|
+
}
|
|
242
|
+
function titleCaseWorkflowId(workflowId) {
|
|
243
|
+
return workflowId
|
|
244
|
+
.split("-")
|
|
245
|
+
.filter((part) => part.length > 0)
|
|
246
|
+
.map((part) => part.slice(0, 1).toUpperCase() + part.slice(1))
|
|
247
|
+
.join(" ");
|
|
248
|
+
}
|
|
249
|
+
export function isBuiltinKnowledgeBaseWorkflowId(value) {
|
|
250
|
+
return KNOWLEDGE_BASE_WORKFLOW_IDS.includes(value);
|
|
251
|
+
}
|
|
252
|
+
export function isBuiltinInterfaceWorkflowId(value) {
|
|
253
|
+
return INTERFACE_WORKFLOW_IDS.includes(value);
|
|
254
|
+
}
|
|
255
|
+
function mergeStarterDocs(baseDocs, overrideDocs) {
|
|
256
|
+
const merged = new Map();
|
|
257
|
+
for (const doc of baseDocs ?? [])
|
|
258
|
+
merged.set(doc.relativePath, doc);
|
|
259
|
+
for (const doc of overrideDocs ?? [])
|
|
260
|
+
merged.set(doc.relativePath, doc);
|
|
261
|
+
return Array.from(merged.values()).sort((a, b) => a.relativePath.localeCompare(b.relativePath));
|
|
262
|
+
}
|
|
263
|
+
function mergeStagePolicyNotes(stages, baseNotes, overrideNotes) {
|
|
264
|
+
const allowedStages = new Set(stages.map((definition) => definition.id));
|
|
265
|
+
const merged = {};
|
|
266
|
+
for (const definition of stages) {
|
|
267
|
+
const combined = [
|
|
268
|
+
...(baseNotes?.[definition.id] ?? []),
|
|
269
|
+
...((overrideNotes?.[definition.id] ?? []).filter((note) => note.trim().length > 0)),
|
|
270
|
+
];
|
|
271
|
+
if (combined.length > 0) {
|
|
272
|
+
merged[definition.id] = combined;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
for (const [stage] of Object.entries(overrideNotes ?? {})) {
|
|
276
|
+
if (!allowedStages.has(stage))
|
|
277
|
+
continue;
|
|
278
|
+
if (!merged[stage]) {
|
|
279
|
+
merged[stage] = [];
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
283
|
+
}
|
|
284
|
+
function validateKnowledgeBaseStages(stages) {
|
|
285
|
+
if (stages.length < 2)
|
|
286
|
+
return false;
|
|
287
|
+
const contractTypes = stages.map((stage) => stage.contractType);
|
|
288
|
+
const firstKnowledgeStage = contractTypes.findIndex((contractType) => contractType === "kb-knowledge-layer");
|
|
289
|
+
if (firstKnowledgeStage <= 0)
|
|
290
|
+
return false;
|
|
291
|
+
if (!contractTypes.every((contractType, index) => index < firstKnowledgeStage
|
|
292
|
+
? contractType === "kb-file-evidence"
|
|
293
|
+
: contractType === "kb-knowledge-layer"))
|
|
294
|
+
return false;
|
|
295
|
+
return contractTypes.includes("kb-file-evidence") && contractTypes.includes("kb-knowledge-layer");
|
|
296
|
+
}
|
|
297
|
+
function validateInterfaceStages(stages) {
|
|
298
|
+
if (stages.length < 3)
|
|
299
|
+
return false;
|
|
300
|
+
const contractTypes = stages.map((stage) => stage.contractType);
|
|
301
|
+
const firstAnalysis = contractTypes.findIndex((contractType) => contractType === "interface-analysis");
|
|
302
|
+
const firstOutput = contractTypes.findIndex((contractType) => contractType === "interface-output");
|
|
303
|
+
if (firstAnalysis <= 0 || firstOutput <= firstAnalysis)
|
|
304
|
+
return false;
|
|
305
|
+
if (!contractTypes.every((contractType, index) => {
|
|
306
|
+
if (index < firstAnalysis)
|
|
307
|
+
return contractType === "interface-retrieval";
|
|
308
|
+
if (index < firstOutput)
|
|
309
|
+
return contractType === "interface-analysis";
|
|
310
|
+
return contractType === "interface-output";
|
|
311
|
+
}))
|
|
312
|
+
return false;
|
|
313
|
+
return contractTypes.includes("interface-retrieval")
|
|
314
|
+
&& contractTypes.includes("interface-analysis")
|
|
315
|
+
&& contractTypes.includes("interface-output");
|
|
316
|
+
}
|
|
317
|
+
function toWorkflowStages(stages, fallbackStages) {
|
|
318
|
+
if (!stages || stages.length === 0)
|
|
319
|
+
return [...fallbackStages];
|
|
320
|
+
return stages.map((stage) => ({
|
|
321
|
+
id: stage.id,
|
|
322
|
+
label: stage.label,
|
|
323
|
+
description: stage.description ?? stage.label,
|
|
324
|
+
contractType: stage.contract_type,
|
|
325
|
+
skillDir: stage.skill_dir ?? stage.id,
|
|
326
|
+
...(stage.acceptance ? { acceptance: stage.acceptance } : {}),
|
|
327
|
+
}));
|
|
328
|
+
}
|
|
329
|
+
function toResolvedWorkflowDefinition(local, base, scope) {
|
|
330
|
+
const stages = toWorkflowStages(local.stages, base.stages);
|
|
331
|
+
return {
|
|
332
|
+
id: local.id,
|
|
333
|
+
label: local.label,
|
|
334
|
+
hint: local.hint,
|
|
335
|
+
placeholder: local.placeholder ?? base.placeholder,
|
|
336
|
+
recommended: false,
|
|
337
|
+
stages,
|
|
338
|
+
stagePolicyNotes: mergeStagePolicyNotes(stages, base.stagePolicyNotes, local.stage_policy_notes),
|
|
339
|
+
starterDocs: mergeStarterDocs(base.starterDocs, local.starter_docs),
|
|
340
|
+
interfaceTemplates: base.interfaceTemplates,
|
|
341
|
+
scope,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
function workspaceWorkflowPackagePath(workspacePath) {
|
|
345
|
+
return join(workspacePath, "workflow");
|
|
346
|
+
}
|
|
347
|
+
function workspaceInterfaceTemplatesPath(knowledgeBasePath) {
|
|
348
|
+
return join(workspaceWorkflowPackagePath(knowledgeBasePath), "interfaces");
|
|
349
|
+
}
|
|
350
|
+
function loadResolvedWorkspaceWorkflow(workspacePath, type) {
|
|
351
|
+
const local = loadWorkflowDefinitionFromDir(workspaceWorkflowPackagePath(workspacePath), type);
|
|
352
|
+
if (!local)
|
|
353
|
+
return null;
|
|
354
|
+
const fallback = type === "knowledge-base"
|
|
355
|
+
? KNOWLEDGE_BASE_WORKFLOWS.find((candidate) => candidate.id === "interf")
|
|
356
|
+
: INTERFACE_WORKFLOWS.find((candidate) => candidate.id === "briefing");
|
|
357
|
+
return toResolvedWorkflowDefinition(local, fallback, "local");
|
|
358
|
+
}
|
|
359
|
+
function listWorkspaceInterfaceTemplates(knowledgeBasePath) {
|
|
360
|
+
const root = workspaceInterfaceTemplatesPath(knowledgeBasePath);
|
|
361
|
+
try {
|
|
362
|
+
return readdirSync(root)
|
|
363
|
+
.map((entry) => join(root, entry))
|
|
364
|
+
.filter((entryPath) => {
|
|
365
|
+
try {
|
|
366
|
+
return statSync(entryPath).isDirectory();
|
|
367
|
+
}
|
|
368
|
+
catch {
|
|
369
|
+
return false;
|
|
370
|
+
}
|
|
371
|
+
})
|
|
372
|
+
.map((entryPath) => loadWorkflowDefinitionFromDir(entryPath, "interface"))
|
|
373
|
+
.filter((definition) => definition !== null)
|
|
374
|
+
.map((definition) => toResolvedWorkflowDefinition(definition, INTERFACE_WORKFLOWS.find((candidate) => candidate.id === "briefing"), "local"))
|
|
375
|
+
.sort((a, b) => a.label.localeCompare(b.label));
|
|
376
|
+
}
|
|
377
|
+
catch {
|
|
378
|
+
return [];
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
function fallbackKnowledgeBaseWorkflow(workflowId) {
|
|
382
|
+
const base = KNOWLEDGE_BASE_WORKFLOWS.find((candidate) => candidate.id === "interf");
|
|
383
|
+
return {
|
|
384
|
+
...base,
|
|
385
|
+
id: workflowId,
|
|
386
|
+
label: titleCaseWorkflowId(workflowId),
|
|
387
|
+
hint: `Missing local workflow definition for "${workflowId}". Falling back to Interf defaults.`,
|
|
388
|
+
recommended: false,
|
|
389
|
+
scope: "local",
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
function fallbackInterfaceWorkflow(workflowId) {
|
|
393
|
+
const base = INTERFACE_WORKFLOWS.find((candidate) => candidate.id === "briefing");
|
|
394
|
+
return {
|
|
395
|
+
...base,
|
|
396
|
+
id: workflowId,
|
|
397
|
+
label: titleCaseWorkflowId(workflowId),
|
|
398
|
+
hint: `Missing local workflow definition for "${workflowId}". Falling back to briefing defaults.`,
|
|
399
|
+
recommended: false,
|
|
400
|
+
scope: "local",
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
function resolveKnowledgeBaseWorkflowFromLocal(workflowId, sourcePath, visited) {
|
|
404
|
+
if (visited.has(workflowId))
|
|
405
|
+
return fallbackKnowledgeBaseWorkflow(workflowId);
|
|
406
|
+
const local = loadLocalWorkflowDefinition(sourcePath, "knowledge-base", workflowId);
|
|
407
|
+
if (!local)
|
|
408
|
+
return null;
|
|
409
|
+
visited.add(workflowId);
|
|
410
|
+
const base = local.extends
|
|
411
|
+
? getKnowledgeBaseWorkflow(local.extends, { sourcePath, visited })
|
|
412
|
+
: KNOWLEDGE_BASE_WORKFLOWS.find((candidate) => candidate.id === "interf");
|
|
413
|
+
const resolved = toResolvedWorkflowDefinition(local, base, "local");
|
|
414
|
+
if (!validateKnowledgeBaseStages(resolved.stages)) {
|
|
415
|
+
return fallbackKnowledgeBaseWorkflow(workflowId);
|
|
416
|
+
}
|
|
417
|
+
return resolved;
|
|
418
|
+
}
|
|
419
|
+
function resolveInterfaceWorkflowFromLocal(workflowId, sourcePath, visited) {
|
|
420
|
+
if (visited.has(workflowId))
|
|
421
|
+
return fallbackInterfaceWorkflow(workflowId);
|
|
422
|
+
const local = loadLocalWorkflowDefinition(sourcePath, "interface", workflowId);
|
|
423
|
+
if (!local)
|
|
424
|
+
return null;
|
|
425
|
+
visited.add(workflowId);
|
|
426
|
+
const base = local.extends
|
|
427
|
+
? getInterfaceWorkflow(local.extends, { sourcePath, visited })
|
|
428
|
+
: INTERFACE_WORKFLOWS.find((candidate) => candidate.id === "briefing");
|
|
429
|
+
const resolved = toResolvedWorkflowDefinition(local, base, "local");
|
|
430
|
+
if (!validateInterfaceStages(resolved.stages)) {
|
|
431
|
+
return fallbackInterfaceWorkflow(workflowId);
|
|
432
|
+
}
|
|
433
|
+
return resolved;
|
|
434
|
+
}
|
|
435
|
+
export function listKnowledgeBaseWorkflowChoices(sourcePath) {
|
|
436
|
+
const builtins = [...KNOWLEDGE_BASE_WORKFLOWS];
|
|
437
|
+
if (!sourcePath)
|
|
438
|
+
return builtins;
|
|
439
|
+
const locals = listLocalWorkflowDefinitions(sourcePath, "knowledge-base")
|
|
440
|
+
.filter((definition) => !isBuiltinKnowledgeBaseWorkflowId(definition.id))
|
|
441
|
+
.map((definition) => resolveKnowledgeBaseWorkflowFromLocal(definition.id, sourcePath, new Set()))
|
|
442
|
+
.filter((definition) => definition !== null);
|
|
443
|
+
return [...builtins, ...locals];
|
|
444
|
+
}
|
|
445
|
+
export function listInterfaceWorkflowChoices(sourcePath) {
|
|
446
|
+
const builtins = [...INTERFACE_WORKFLOWS];
|
|
447
|
+
if (!sourcePath)
|
|
448
|
+
return builtins;
|
|
449
|
+
const locals = listLocalWorkflowDefinitions(sourcePath, "interface")
|
|
450
|
+
.filter((definition) => !isBuiltinInterfaceWorkflowId(definition.id))
|
|
451
|
+
.map((definition) => resolveInterfaceWorkflowFromLocal(definition.id, sourcePath, new Set()))
|
|
452
|
+
.filter((definition) => definition !== null);
|
|
453
|
+
return [...builtins, ...locals];
|
|
454
|
+
}
|
|
455
|
+
export function listKnowledgeBaseInterfaceWorkflowChoices(knowledgeBasePath) {
|
|
456
|
+
const localTemplates = listWorkspaceInterfaceTemplates(knowledgeBasePath);
|
|
457
|
+
return localTemplates.length > 0 ? localTemplates : [...INTERFACE_WORKFLOWS];
|
|
458
|
+
}
|
|
459
|
+
export function getKnowledgeBaseWorkflow(workflowId, options = {}) {
|
|
460
|
+
if (options.workspacePath) {
|
|
461
|
+
const workspaceWorkflow = loadResolvedWorkspaceWorkflow(options.workspacePath, "knowledge-base");
|
|
462
|
+
if (workspaceWorkflow)
|
|
463
|
+
return workspaceWorkflow;
|
|
464
|
+
}
|
|
465
|
+
const builtin = KNOWLEDGE_BASE_WORKFLOWS.find((candidate) => candidate.id === workflowId);
|
|
466
|
+
if (builtin)
|
|
467
|
+
return builtin;
|
|
468
|
+
if (options.sourcePath) {
|
|
469
|
+
const local = resolveKnowledgeBaseWorkflowFromLocal(workflowId, options.sourcePath, options.visited ?? new Set());
|
|
470
|
+
if (local)
|
|
471
|
+
return local;
|
|
472
|
+
}
|
|
473
|
+
return fallbackKnowledgeBaseWorkflow(workflowId);
|
|
474
|
+
}
|
|
475
|
+
export function getInterfaceWorkflow(workflowId, options = {}) {
|
|
476
|
+
if (options.workspacePath) {
|
|
477
|
+
const workspaceWorkflow = loadResolvedWorkspaceWorkflow(options.workspacePath, "interface");
|
|
478
|
+
if (workspaceWorkflow)
|
|
479
|
+
return workspaceWorkflow;
|
|
480
|
+
}
|
|
481
|
+
const builtin = INTERFACE_WORKFLOWS.find((candidate) => candidate.id === workflowId);
|
|
482
|
+
if (builtin)
|
|
483
|
+
return builtin;
|
|
484
|
+
if (options.sourcePath) {
|
|
485
|
+
const local = resolveInterfaceWorkflowFromLocal(workflowId, options.sourcePath, options.visited ?? new Set());
|
|
486
|
+
if (local)
|
|
487
|
+
return local;
|
|
488
|
+
}
|
|
489
|
+
return fallbackInterfaceWorkflow(workflowId);
|
|
490
|
+
}
|
|
491
|
+
export function resolveKnowledgeBaseWorkflowId(value) {
|
|
492
|
+
if (typeof value === "string" && isWorkflowId(value)) {
|
|
493
|
+
return value;
|
|
494
|
+
}
|
|
495
|
+
return "interf";
|
|
496
|
+
}
|
|
497
|
+
export function resolveInterfaceWorkflowId(value) {
|
|
498
|
+
if (typeof value === "string" && isWorkflowId(value)) {
|
|
499
|
+
return value;
|
|
500
|
+
}
|
|
501
|
+
return "briefing";
|
|
502
|
+
}
|
|
503
|
+
export function resolveKnowledgeBaseWorkflowFromConfig(config) {
|
|
504
|
+
if (!config || typeof config !== "object")
|
|
505
|
+
return "interf";
|
|
506
|
+
const raw = config;
|
|
507
|
+
return resolveKnowledgeBaseWorkflowId(raw.workflow);
|
|
508
|
+
}
|
|
509
|
+
export function resolveInterfaceWorkflowFromConfig(config) {
|
|
510
|
+
if (!config || typeof config !== "object")
|
|
511
|
+
return "briefing";
|
|
512
|
+
const raw = config;
|
|
513
|
+
return resolveInterfaceWorkflowId(raw.workflow);
|
|
514
|
+
}
|
|
515
|
+
export function formatKnowledgeBaseWorkflowStageStep(workflowId, stage, options = {}) {
|
|
516
|
+
const workflow = getKnowledgeBaseWorkflow(workflowId, options);
|
|
517
|
+
const stageIndex = workflow.stages.findIndex((candidate) => candidate.id === stage);
|
|
518
|
+
if (stageIndex === -1) {
|
|
519
|
+
throw new Error(`Stage "${stage}" is not part of the knowledge-base runtime.`);
|
|
520
|
+
}
|
|
521
|
+
return `Step ${stageIndex + 1}/${workflow.stages.length} - ${workflow.stages[stageIndex].label}`;
|
|
522
|
+
}
|
|
523
|
+
export function formatInterfaceWorkflowStageStep(workflowId, stage, options = {}) {
|
|
524
|
+
const workflow = getInterfaceWorkflow(workflowId, options);
|
|
525
|
+
const stageIndex = workflow.stages.findIndex((candidate) => candidate.id === stage);
|
|
526
|
+
if (stageIndex === -1) {
|
|
527
|
+
throw new Error(`Stage "${stage}" is not part of the interface runtime.`);
|
|
528
|
+
}
|
|
529
|
+
return `Step ${stageIndex + 1}/${workflow.stages.length} - ${workflow.stages[stageIndex].label}`;
|
|
530
|
+
}
|
|
531
|
+
export function getKnowledgeBaseWorkflowStages(workflowId, options = {}) {
|
|
532
|
+
return getKnowledgeBaseWorkflow(workflowId, options).stages.map((definition) => definition.id);
|
|
533
|
+
}
|
|
534
|
+
export function getInterfaceWorkflowStages(workflowId, options = {}) {
|
|
535
|
+
return getInterfaceWorkflow(workflowId, options).stages.map((definition) => definition.id);
|
|
536
|
+
}
|
|
537
|
+
export function getWorkflowStageDefinition(targetType, workflowId, stage, sourcePath, workspacePath) {
|
|
538
|
+
const workflow = targetType === "knowledge-base"
|
|
539
|
+
? getKnowledgeBaseWorkflow(workflowId, { sourcePath, workspacePath })
|
|
540
|
+
: getInterfaceWorkflow(workflowId, { sourcePath, workspacePath });
|
|
541
|
+
return workflow.stages.find((candidate) => candidate.id === stage) ?? null;
|
|
542
|
+
}
|
|
543
|
+
export function getWorkflowStagePosition(targetType, workflowId, stage, sourcePath, workspacePath) {
|
|
544
|
+
const stages = getWorkflowStages(targetType, workflowId, sourcePath, workspacePath);
|
|
545
|
+
const stageIndex = stages.findIndex((candidate) => candidate === stage);
|
|
546
|
+
if (stageIndex === -1)
|
|
547
|
+
return null;
|
|
548
|
+
return {
|
|
549
|
+
stageIndex: stageIndex + 1,
|
|
550
|
+
stageTotal: stages.length,
|
|
551
|
+
stages: [...stages],
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
export function getWorkflowStages(targetType, workflowId, sourcePath, workspacePath) {
|
|
555
|
+
return targetType === "knowledge-base"
|
|
556
|
+
? getKnowledgeBaseWorkflowStages(workflowId, { sourcePath, workspacePath })
|
|
557
|
+
: getInterfaceWorkflowStages(workflowId, { sourcePath, workspacePath });
|
|
558
|
+
}
|
|
559
|
+
export function getWorkflowStagePolicyNotes(targetType, workflowId, stage, sourcePath, workspacePath) {
|
|
560
|
+
const workflow = targetType === "knowledge-base"
|
|
561
|
+
? getKnowledgeBaseWorkflow(workflowId, { sourcePath, workspacePath })
|
|
562
|
+
: getInterfaceWorkflow(workflowId, { sourcePath, workspacePath });
|
|
563
|
+
return [...(workflow.stagePolicyNotes?.[stage] ?? [])];
|
|
564
|
+
}
|
|
565
|
+
//# sourceMappingURL=workflow-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-definitions.js","sourceRoot":"","sources":["../../src/lib/workflow-definitions.ts"],"names":[],"mappings":"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"}
|