human-to-code 0.1.1 → 0.1.3
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/Readme.md +2 -0
- package/dist/adapters/general.d.ts +30 -0
- package/dist/adapters/general.d.ts.map +1 -0
- package/dist/adapters/general.js +77 -0
- package/dist/adapters/general.js.map +1 -0
- package/dist/analyzer-types.d.ts +9 -1
- package/dist/analyzer-types.d.ts.map +1 -1
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +8 -0
- package/dist/analyzer.js.map +1 -1
- package/dist/certification.js +1 -1
- package/dist/certification.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +113 -4
- package/dist/cli.js.map +1 -1
- package/dist/simple.d.ts +81 -0
- package/dist/simple.d.ts.map +1 -0
- package/dist/simple.js +274 -0
- package/dist/simple.js.map +1 -0
- package/dist/support-matrix.d.ts.map +1 -1
- package/dist/support-matrix.js +12 -0
- package/dist/support-matrix.js.map +1 -1
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +16 -3
- package/dist/workflow.js.map +1 -1
- package/package.json +2 -3
package/dist/simple.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple `.human` -> code generator.
|
|
3
|
+
*
|
|
4
|
+
* This is the lightweight, direct path: discover human-language units, show a
|
|
5
|
+
* receipt (requests / provider / model), and on confirmation write real code.
|
|
6
|
+
* Two unit kinds are supported:
|
|
7
|
+
*
|
|
8
|
+
* 1. A whole `*.human` file (not `*.strict.human`) -> sibling `<base>.<ext>`.
|
|
9
|
+
* 2. An inline `@human` marker inside an existing source file -> the marker
|
|
10
|
+
* region is replaced in place with generated code.
|
|
11
|
+
*
|
|
12
|
+
* It talks to a local Ollama endpoint directly (no extra dependency) so it works
|
|
13
|
+
* out of the box; the `generateCode` seam can be swapped for another provider.
|
|
14
|
+
*/
|
|
15
|
+
import { dirname } from "node:path";
|
|
16
|
+
export interface LanguageProfile {
|
|
17
|
+
/** Output file extension without a dot. */
|
|
18
|
+
ext: string;
|
|
19
|
+
/** Human label used in prompts. */
|
|
20
|
+
label: string;
|
|
21
|
+
}
|
|
22
|
+
/** Operator-declared config language -> output extension and label. */
|
|
23
|
+
export declare const LANGUAGE_PROFILES: Record<string, LanguageProfile>;
|
|
24
|
+
export declare function languageProfile(language: string): LanguageProfile;
|
|
25
|
+
export interface ConversionUnit {
|
|
26
|
+
kind: "file" | "inline";
|
|
27
|
+
/** Project-relative source path. */
|
|
28
|
+
sourcePath: string;
|
|
29
|
+
/** Absolute source path. */
|
|
30
|
+
absoluteSource: string;
|
|
31
|
+
/** The extracted human-language instruction. */
|
|
32
|
+
prompt: string;
|
|
33
|
+
/** For `file` units, the project-relative output path to write. */
|
|
34
|
+
outputPath?: string;
|
|
35
|
+
/** For `inline` units, the character range of the marker to replace. */
|
|
36
|
+
range?: {
|
|
37
|
+
start: number;
|
|
38
|
+
end: number;
|
|
39
|
+
};
|
|
40
|
+
/** Short human-readable description for the receipt. */
|
|
41
|
+
describe: string;
|
|
42
|
+
}
|
|
43
|
+
interface InlineMarker {
|
|
44
|
+
prompt: string;
|
|
45
|
+
start: number;
|
|
46
|
+
end: number;
|
|
47
|
+
}
|
|
48
|
+
/** Find every `@human` marker in a source text with its exact character range. */
|
|
49
|
+
export declare function extractInlineMarkers(text: string): InlineMarker[];
|
|
50
|
+
/**
|
|
51
|
+
* Discover all conversion units under `root`: whole `.human` files plus inline
|
|
52
|
+
* `@human` markers in recognized source files. Deterministic and bounded.
|
|
53
|
+
*/
|
|
54
|
+
export declare function discoverUnits(root: string, language: string): Promise<ConversionUnit[]>;
|
|
55
|
+
/** Render the invoice/receipt shown before any code is written. */
|
|
56
|
+
export declare function renderReceipt(units: readonly ConversionUnit[], provider: string, model: string, language: string): string;
|
|
57
|
+
/** Remove a single fenced code block wrapper if the model added one. */
|
|
58
|
+
export declare function stripCodeFence(output: string): string;
|
|
59
|
+
export interface GenerateOptions {
|
|
60
|
+
language: string;
|
|
61
|
+
provider: string;
|
|
62
|
+
model: string;
|
|
63
|
+
baseUrl?: string;
|
|
64
|
+
apiKey?: string;
|
|
65
|
+
signal?: AbortSignal;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Generate raw code for one prompt. Talks to a local Ollama `/api/chat`
|
|
69
|
+
* endpoint by default; an OpenAI-compatible chat endpoint is used when the
|
|
70
|
+
* configured provider is `openai`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function generateCode(prompt: string, options: GenerateOptions): Promise<string>;
|
|
73
|
+
export interface AppliedUnit {
|
|
74
|
+
unit: ConversionUnit;
|
|
75
|
+
writtenPath: string;
|
|
76
|
+
}
|
|
77
|
+
/** Write generated code for one unit and return the path that changed. */
|
|
78
|
+
export declare function applyUnit(root: string, unit: ConversionUnit, code: string): Promise<string>;
|
|
79
|
+
export declare function pathExists(target: string): Promise<boolean>;
|
|
80
|
+
export { dirname };
|
|
81
|
+
//# sourceMappingURL=simple.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../src/simple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAY,OAAO,EAAyC,MAAM,WAAW,CAAC;AAErF,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAW7D,CAAC;AAEF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAEjE;AAaD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAwBjE;AA8BD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAmD7F;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,CAiBR;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAiD5F;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,0EAA0E;AAC1E,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAcjG;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjE;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/simple.js
ADDED
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple `.human` -> code generator.
|
|
3
|
+
*
|
|
4
|
+
* This is the lightweight, direct path: discover human-language units, show a
|
|
5
|
+
* receipt (requests / provider / model), and on confirmation write real code.
|
|
6
|
+
* Two unit kinds are supported:
|
|
7
|
+
*
|
|
8
|
+
* 1. A whole `*.human` file (not `*.strict.human`) -> sibling `<base>.<ext>`.
|
|
9
|
+
* 2. An inline `@human` marker inside an existing source file -> the marker
|
|
10
|
+
* region is replaced in place with generated code.
|
|
11
|
+
*
|
|
12
|
+
* It talks to a local Ollama endpoint directly (no extra dependency) so it works
|
|
13
|
+
* out of the box; the `generateCode` seam can be swapped for another provider.
|
|
14
|
+
*/
|
|
15
|
+
import { readdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
16
|
+
import { basename, dirname, extname, join, relative, resolve, sep } from "node:path";
|
|
17
|
+
/** Operator-declared config language -> output extension and label. */
|
|
18
|
+
export const LANGUAGE_PROFILES = {
|
|
19
|
+
typescript: { ext: "ts", label: "TypeScript" },
|
|
20
|
+
javascript: { ext: "js", label: "JavaScript" },
|
|
21
|
+
python: { ext: "py", label: "Python" },
|
|
22
|
+
rust: { ext: "rs", label: "Rust" },
|
|
23
|
+
go: { ext: "go", label: "Go" },
|
|
24
|
+
java: { ext: "java", label: "Java" },
|
|
25
|
+
ruby: { ext: "rb", label: "Ruby" },
|
|
26
|
+
csharp: { ext: "cs", label: "C#" },
|
|
27
|
+
cpp: { ext: "cpp", label: "C++" },
|
|
28
|
+
c: { ext: "c", label: "C" },
|
|
29
|
+
};
|
|
30
|
+
export function languageProfile(language) {
|
|
31
|
+
return LANGUAGE_PROFILES[language.trim().toLowerCase()] ?? { ext: "txt", label: language };
|
|
32
|
+
}
|
|
33
|
+
/** Source extensions scanned for inline `@human` markers. */
|
|
34
|
+
const SCANNED_EXTENSIONS = new Set([
|
|
35
|
+
".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs",
|
|
36
|
+
".py", ".rs", ".go", ".java", ".rb", ".cs", ".cpp", ".cc", ".c", ".h", ".hpp",
|
|
37
|
+
]);
|
|
38
|
+
const DEFAULT_IGNORES = new Set([
|
|
39
|
+
"node_modules", ".git", "dist", "build", ".next", "target", ".venv", "venv",
|
|
40
|
+
"coverage", ".human-to-code",
|
|
41
|
+
]);
|
|
42
|
+
/** Find every `@human` marker in a source text with its exact character range. */
|
|
43
|
+
export function extractInlineMarkers(text) {
|
|
44
|
+
const markers = [];
|
|
45
|
+
const patterns = [
|
|
46
|
+
/\/\*\s*@human\b[ \t]*([\s\S]*?)\*\//g, // /* @human ... */
|
|
47
|
+
/"""\s*@human\b[ \t]*([\s\S]*?)"""/g, // """ @human ... """
|
|
48
|
+
/(?:\/\/|#)\s*@human\b[ \t]*([^\n\r]*)/g, // // @human ... or # @human ...
|
|
49
|
+
];
|
|
50
|
+
const claimed = [];
|
|
51
|
+
const overlaps = (start, end) => claimed.some((range) => start < range.end && end > range.start);
|
|
52
|
+
for (const pattern of patterns) {
|
|
53
|
+
pattern.lastIndex = 0;
|
|
54
|
+
let match;
|
|
55
|
+
while ((match = pattern.exec(text)) !== null) {
|
|
56
|
+
const start = match.index;
|
|
57
|
+
const end = start + match[0].length;
|
|
58
|
+
if (overlaps(start, end))
|
|
59
|
+
continue;
|
|
60
|
+
const prompt = (match[1] ?? "").trim();
|
|
61
|
+
if (prompt.length === 0)
|
|
62
|
+
continue;
|
|
63
|
+
claimed.push({ start, end });
|
|
64
|
+
markers.push({ prompt, start, end });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return markers.sort((left, right) => left.start - right.start);
|
|
68
|
+
}
|
|
69
|
+
async function walk(root, ignores) {
|
|
70
|
+
const results = [];
|
|
71
|
+
const visit = async (dir, depth) => {
|
|
72
|
+
if (depth > 40)
|
|
73
|
+
return;
|
|
74
|
+
let entries;
|
|
75
|
+
try {
|
|
76
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
for (const entry of entries) {
|
|
82
|
+
if (entry.name.startsWith(".") && entry.name !== ".human-to-code") {
|
|
83
|
+
if (entry.isDirectory())
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (ignores.has(entry.name))
|
|
87
|
+
continue;
|
|
88
|
+
const full = join(dir, entry.name);
|
|
89
|
+
if (entry.isSymbolicLink())
|
|
90
|
+
continue;
|
|
91
|
+
if (entry.isDirectory()) {
|
|
92
|
+
await visit(full, depth + 1);
|
|
93
|
+
}
|
|
94
|
+
else if (entry.isFile()) {
|
|
95
|
+
results.push(full);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
await visit(root, 0);
|
|
100
|
+
return results.sort();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Discover all conversion units under `root`: whole `.human` files plus inline
|
|
104
|
+
* `@human` markers in recognized source files. Deterministic and bounded.
|
|
105
|
+
*/
|
|
106
|
+
export async function discoverUnits(root, language) {
|
|
107
|
+
const absoluteRoot = resolve(root);
|
|
108
|
+
const ignores = new Set([...DEFAULT_IGNORES]);
|
|
109
|
+
const profile = languageProfile(language);
|
|
110
|
+
const files = await walk(absoluteRoot, ignores);
|
|
111
|
+
const units = [];
|
|
112
|
+
for (const absolute of files) {
|
|
113
|
+
const rel = relative(absoluteRoot, absolute).split(sep).join("/");
|
|
114
|
+
const name = basename(absolute);
|
|
115
|
+
if (name.endsWith(".strict.human"))
|
|
116
|
+
continue;
|
|
117
|
+
if (name.endsWith(".human")) {
|
|
118
|
+
let content;
|
|
119
|
+
try {
|
|
120
|
+
content = await readFile(absolute, "utf8");
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const prompt = content.trim();
|
|
126
|
+
if (prompt.length === 0)
|
|
127
|
+
continue;
|
|
128
|
+
const outputPath = `${rel.slice(0, -".human".length)}.${profile.ext}`;
|
|
129
|
+
units.push({
|
|
130
|
+
kind: "file",
|
|
131
|
+
sourcePath: rel,
|
|
132
|
+
absoluteSource: absolute,
|
|
133
|
+
prompt,
|
|
134
|
+
outputPath,
|
|
135
|
+
describe: `${rel} -> ${outputPath}`,
|
|
136
|
+
});
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (SCANNED_EXTENSIONS.has(extname(absolute).toLowerCase())) {
|
|
140
|
+
let content;
|
|
141
|
+
try {
|
|
142
|
+
content = await readFile(absolute, "utf8");
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (!content.includes("@human"))
|
|
148
|
+
continue;
|
|
149
|
+
for (const marker of extractInlineMarkers(content)) {
|
|
150
|
+
units.push({
|
|
151
|
+
kind: "inline",
|
|
152
|
+
sourcePath: rel,
|
|
153
|
+
absoluteSource: absolute,
|
|
154
|
+
prompt: marker.prompt,
|
|
155
|
+
range: { start: marker.start, end: marker.end },
|
|
156
|
+
describe: `${rel} (inline @human) -> ${rel}`,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return units;
|
|
162
|
+
}
|
|
163
|
+
/** Render the invoice/receipt shown before any code is written. */
|
|
164
|
+
export function renderReceipt(units, provider, model, language) {
|
|
165
|
+
const profile = languageProfile(language);
|
|
166
|
+
const lines = [];
|
|
167
|
+
lines.push("human-to-code — conversion receipt");
|
|
168
|
+
lines.push("");
|
|
169
|
+
lines.push(` Language : ${profile.label} (.${profile.ext})`);
|
|
170
|
+
lines.push(` Provider : ${provider}`);
|
|
171
|
+
lines.push(` Model : ${model}`);
|
|
172
|
+
lines.push(` Requests : ${units.length} (one model request per prompt)`);
|
|
173
|
+
lines.push("");
|
|
174
|
+
if (units.length === 0) {
|
|
175
|
+
lines.push(" No .human files or @human markers were found.");
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
lines.push(" The following will be generated:");
|
|
179
|
+
for (const unit of units)
|
|
180
|
+
lines.push(` • ${unit.describe}`);
|
|
181
|
+
}
|
|
182
|
+
return lines.join("\n");
|
|
183
|
+
}
|
|
184
|
+
/** Remove a single fenced code block wrapper if the model added one. */
|
|
185
|
+
export function stripCodeFence(output) {
|
|
186
|
+
const trimmed = output.trim();
|
|
187
|
+
const fenced = /^```[^\n]*\n([\s\S]*?)\n```$/u.exec(trimmed);
|
|
188
|
+
if (fenced)
|
|
189
|
+
return fenced[1].trim();
|
|
190
|
+
return trimmed;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Generate raw code for one prompt. Talks to a local Ollama `/api/chat`
|
|
194
|
+
* endpoint by default; an OpenAI-compatible chat endpoint is used when the
|
|
195
|
+
* configured provider is `openai`.
|
|
196
|
+
*/
|
|
197
|
+
export async function generateCode(prompt, options) {
|
|
198
|
+
const profile = languageProfile(options.language);
|
|
199
|
+
const system = [
|
|
200
|
+
`You are a precise ${profile.label} code generator.`,
|
|
201
|
+
`Convert the user's instruction into correct, self-contained ${profile.label} code.`,
|
|
202
|
+
"Output ONLY code. No explanations, no comments describing what you did, no markdown fences.",
|
|
203
|
+
].join(" ");
|
|
204
|
+
if (options.provider === "openai") {
|
|
205
|
+
const base = options.baseUrl ?? "https://api.openai.com/v1";
|
|
206
|
+
const response = await fetch(`${base}/chat/completions`, {
|
|
207
|
+
method: "POST",
|
|
208
|
+
headers: {
|
|
209
|
+
"content-type": "application/json",
|
|
210
|
+
...(options.apiKey ? { authorization: `Bearer ${options.apiKey}` } : {}),
|
|
211
|
+
},
|
|
212
|
+
body: JSON.stringify({
|
|
213
|
+
model: options.model,
|
|
214
|
+
messages: [
|
|
215
|
+
{ role: "system", content: system },
|
|
216
|
+
{ role: "user", content: prompt },
|
|
217
|
+
],
|
|
218
|
+
temperature: 0,
|
|
219
|
+
}),
|
|
220
|
+
signal: options.signal,
|
|
221
|
+
});
|
|
222
|
+
if (!response.ok)
|
|
223
|
+
throw new Error(`OpenAI request failed: ${response.status} ${await response.text()}`);
|
|
224
|
+
const data = (await response.json());
|
|
225
|
+
return stripCodeFence(data.choices?.[0]?.message?.content ?? "");
|
|
226
|
+
}
|
|
227
|
+
const base = options.baseUrl ?? "http://localhost:11434";
|
|
228
|
+
const response = await fetch(`${base.replace(/\/api\/?$/u, "")}/api/chat`, {
|
|
229
|
+
method: "POST",
|
|
230
|
+
headers: { "content-type": "application/json" },
|
|
231
|
+
body: JSON.stringify({
|
|
232
|
+
model: options.model,
|
|
233
|
+
stream: false,
|
|
234
|
+
options: { temperature: 0 },
|
|
235
|
+
messages: [
|
|
236
|
+
{ role: "system", content: system },
|
|
237
|
+
{ role: "user", content: prompt },
|
|
238
|
+
],
|
|
239
|
+
}),
|
|
240
|
+
signal: options.signal,
|
|
241
|
+
});
|
|
242
|
+
if (!response.ok)
|
|
243
|
+
throw new Error(`Ollama request failed: ${response.status} ${await response.text()}`);
|
|
244
|
+
const data = (await response.json());
|
|
245
|
+
return stripCodeFence(data.message?.content ?? "");
|
|
246
|
+
}
|
|
247
|
+
/** Write generated code for one unit and return the path that changed. */
|
|
248
|
+
export async function applyUnit(root, unit, code) {
|
|
249
|
+
const absoluteRoot = resolve(root);
|
|
250
|
+
if (unit.kind === "file") {
|
|
251
|
+
const target = resolve(absoluteRoot, unit.outputPath);
|
|
252
|
+
if (!target.startsWith(absoluteRoot + sep))
|
|
253
|
+
throw new Error(`Refusing to write outside the project root: ${unit.outputPath}`);
|
|
254
|
+
await writeFile(target, code.endsWith("\n") ? code : `${code}\n`);
|
|
255
|
+
return unit.outputPath;
|
|
256
|
+
}
|
|
257
|
+
// Inline: replace the exact marker range with the generated code.
|
|
258
|
+
const original = await readFile(unit.absoluteSource, "utf8");
|
|
259
|
+
const { start, end } = unit.range;
|
|
260
|
+
const replaced = `${original.slice(0, start)}${code.trim()}${original.slice(end)}`;
|
|
261
|
+
await writeFile(unit.absoluteSource, replaced);
|
|
262
|
+
return unit.sourcePath;
|
|
263
|
+
}
|
|
264
|
+
export async function pathExists(target) {
|
|
265
|
+
try {
|
|
266
|
+
await stat(target);
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
export { dirname };
|
|
274
|
+
//# sourceMappingURL=simple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../src/simple.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support-matrix.d.ts","sourceRoot":"","sources":["../src/support-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAG,OAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"support-matrix.d.ts","sourceRoot":"","sources":["../src/support-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAG,OAAgB,CAAC;AA+IvD,+EAA+E;AAC/E,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EAMvD,CAAC;AAEF,wBAAgB,UAAU,CACxB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,GACtB,eAAe,CAuCjB"}
|
package/dist/support-matrix.js
CHANGED
|
@@ -134,6 +134,18 @@ const SUPPORT_MATRIX_VALUE = [
|
|
|
134
134
|
capabilities: ["workspace-members", "features", "targets", "toolchain"],
|
|
135
135
|
limitations: ["cargo metadata is deferred to sandboxed validation"],
|
|
136
136
|
},
|
|
137
|
+
{
|
|
138
|
+
key: "general.code",
|
|
139
|
+
ecosystem: "general",
|
|
140
|
+
variant: "general-code",
|
|
141
|
+
versions: "Language-directed general generation (operator-declared language)",
|
|
142
|
+
tier: "preview",
|
|
143
|
+
capabilities: ["language-directed-generation"],
|
|
144
|
+
limitations: [
|
|
145
|
+
"ungrounded: no dependency/API evidence is proven",
|
|
146
|
+
"unvalidated: no toolchain is assumed, so runs stay INCONCLUSIVE and are never auto-applied",
|
|
147
|
+
],
|
|
148
|
+
},
|
|
137
149
|
];
|
|
138
150
|
/** Runtime-immutable: consumers cannot promote preview entries by mutation. */
|
|
139
151
|
export const SUPPORT_MATRIX = Object.freeze(SUPPORT_MATRIX_VALUE.map((entry) => Object.freeze({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support-matrix.js","sourceRoot":"","sources":["../src/support-matrix.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"support-matrix.js","sourceRoot":"","sources":["../src/support-matrix.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAMpF,OAAO,EAA0C,KAAK,gBAAgB,EAA2B,MAAM,eAAe,CAAC;AAIvH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAQL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAIf,KAAK,SAAS,EAEd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAML,KAAK,eAAe,EAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,OAAO,EAA0B,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEvF,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,CAAC,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA+BD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,wEAAwE;IACxE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACxD;AAMD,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,GACzB,QAAQ,CAwCV;AAiBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAsB5G;AAuND,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,QAAQ,EAChB,OAAO,UAA0C,GAChD,OAAO,CAAC,iBAAiB,CAAC,CAsB5B;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAMpF,OAAO,EAA0C,KAAK,gBAAgB,EAA2B,MAAM,eAAe,CAAC;AAIvH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAQL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAIf,KAAK,SAAS,EAEd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAML,KAAK,eAAe,EAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,OAAO,EAA0B,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEvF,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,CAAC,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA+BD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,wEAAwE;IACxE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACxD;AAMD,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,GACzB,QAAQ,CAwCV;AAiBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAsB5G;AAuND,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,QAAQ,EAChB,OAAO,UAA0C,GAChD,OAAO,CAAC,iBAAiB,CAAC,CAsB5B;AAqRD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAoBzD;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoKrF;AAuqBD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAGnG;AAoJD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,WAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+CtG;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,WAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6CxG;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/D"}
|
package/dist/workflow.js
CHANGED
|
@@ -448,6 +448,12 @@ function packageName(module) {
|
|
|
448
448
|
return module.split("/")[0] ?? module;
|
|
449
449
|
}
|
|
450
450
|
function assertExternalApisGrounded(patch, workspaces, manifest) {
|
|
451
|
+
// The ungrounded `general` fallback advertises no dependency evidence, so there
|
|
452
|
+
// is nothing to ground against. Grounding is intentionally skipped for it; the
|
|
453
|
+
// run is confined to INCONCLUSIVE and is never applied, so no unproven API can
|
|
454
|
+
// reach a validated/applied state through this path.
|
|
455
|
+
if (workspaces.length > 0 && workspaces.every((workspace) => workspace.ecosystem === "general"))
|
|
456
|
+
return;
|
|
451
457
|
const aliases = workspaces.flatMap((workspace) => Object.keys(workspace.moduleAliases));
|
|
452
458
|
const workspacePackages = new Set(workspaces.flatMap((workspace) => workspace.workspaceDependencies));
|
|
453
459
|
const dependencies = new Map();
|
|
@@ -603,9 +609,15 @@ export async function generateRun(input) {
|
|
|
603
609
|
if (contract.projectFingerprint !== options.profile.fingerprint)
|
|
604
610
|
throw new Error("Contract profile fingerprint is stale.");
|
|
605
611
|
const workspaces = targetWorkspaces(options.profile, contract);
|
|
606
|
-
|
|
607
|
-
|
|
612
|
+
// The strict pipeline refuses to generate what it cannot validate. The
|
|
613
|
+
// ungrounded `general` fallback is the sole, explicitly-degraded exception:
|
|
614
|
+
// it has no toolchain to validate against, produces a reviewable patch, and
|
|
615
|
+
// is pinned to INCONCLUSIVE for the life of the run (never VERIFIED/applied).
|
|
616
|
+
const generalRun = workspaces.length > 0 && workspaces.every((workspace) => workspace.ecosystem === "general");
|
|
617
|
+
const validationPlan = generalRun ? undefined : createValidationPlan(options.profile, contract);
|
|
618
|
+
if (!generalRun && (validationPlan === undefined || validationPlan.commands.length === 0)) {
|
|
608
619
|
throw new Error("No required project validation command could be selected before generation.");
|
|
620
|
+
}
|
|
609
621
|
baseline = await createWorkspaceSnapshot(root, { excludeNames: [".venv", "venv", "target", ".next", "coverage"] });
|
|
610
622
|
let manifest = await buildContextPreview(root, options.profile, contract, options.config, options.offline ?? options.config.documentation.mode === "offline");
|
|
611
623
|
// Keep every item in the reviewed preview when local-only context tools add
|
|
@@ -614,7 +626,8 @@ export async function generateRun(input) {
|
|
|
614
626
|
await store.writeArtifact(runId, "profile.json", options.profile);
|
|
615
627
|
await store.writeArtifact(runId, "run-config.json", options.config);
|
|
616
628
|
await store.writeArtifact(runId, "contract.json", contract);
|
|
617
|
-
|
|
629
|
+
if (validationPlan)
|
|
630
|
+
await store.writeArtifact(runId, "validation-plan.json", validationPlan);
|
|
618
631
|
await store.writeArtifact(runId, "context.json", manifest);
|
|
619
632
|
if (options.provider.capabilities.remote && !options.config.privacy.remoteProviderConsent) {
|
|
620
633
|
diagnostics.push("Outbound context preview was created, but remote provider consent is false. Review context.json and explicitly enable consent.");
|