human-to-code 0.1.20 → 0.1.22
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 +73 -6
- package/SECURITY.md +16 -2
- package/dist/agents/direct/candidate-overlay.d.ts.map +1 -1
- package/dist/agents/direct/candidate-overlay.js +1 -1
- package/dist/agents/direct/candidate-overlay.js.map +1 -1
- package/dist/agents/direct/candidate-validation.js +1 -1
- package/dist/agents/direct/candidate-validation.js.map +1 -1
- package/dist/agents/direct/discovery.d.ts +3 -2
- package/dist/agents/direct/discovery.d.ts.map +1 -1
- package/dist/agents/direct/discovery.js +71 -18
- package/dist/agents/direct/discovery.js.map +1 -1
- package/dist/agents/direct/file-memory.d.ts.map +1 -1
- package/dist/agents/direct/file-memory.js +9 -0
- package/dist/agents/direct/file-memory.js.map +1 -1
- package/dist/agents/direct/generation-client.d.ts +1 -0
- package/dist/agents/direct/generation-client.d.ts.map +1 -1
- package/dist/agents/direct/generation-client.js +2 -0
- package/dist/agents/direct/generation-client.js.map +1 -1
- package/dist/agents/direct/index.d.ts +2 -0
- package/dist/agents/direct/index.d.ts.map +1 -1
- package/dist/agents/direct/index.js +2 -0
- package/dist/agents/direct/index.js.map +1 -1
- package/dist/agents/direct/languages.d.ts +1 -0
- package/dist/agents/direct/languages.d.ts.map +1 -1
- package/dist/agents/direct/languages.js +2 -8
- package/dist/agents/direct/languages.js.map +1 -1
- package/dist/agents/direct/marker-parser.d.ts +1 -1
- package/dist/agents/direct/marker-parser.d.ts.map +1 -1
- package/dist/agents/direct/marker-parser.js +125 -27
- package/dist/agents/direct/marker-parser.js.map +1 -1
- package/dist/agents/direct/presentation.d.ts.map +1 -1
- package/dist/agents/direct/presentation.js +1 -0
- package/dist/agents/direct/presentation.js.map +1 -1
- package/dist/agents/direct/project-contracts.d.ts +5 -0
- package/dist/agents/direct/project-contracts.d.ts.map +1 -0
- package/dist/agents/direct/project-contracts.js +167 -0
- package/dist/agents/direct/project-contracts.js.map +1 -0
- package/dist/agents/direct/project-memory.d.ts +42 -0
- package/dist/agents/direct/project-memory.d.ts.map +1 -0
- package/dist/agents/direct/project-memory.js +481 -0
- package/dist/agents/direct/project-memory.js.map +1 -0
- package/dist/agents/direct/staged-validation.d.ts +5 -1
- package/dist/agents/direct/staged-validation.d.ts.map +1 -1
- package/dist/agents/direct/staged-validation.js +8 -3
- package/dist/agents/direct/staged-validation.js.map +1 -1
- package/dist/agents/direct/types.d.ts +18 -1
- package/dist/agents/direct/types.d.ts.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +23 -6
- package/dist/cli.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +42 -0
- package/dist/config/config.js.map +1 -1
- package/dist/core/languages.d.ts +5 -0
- package/dist/core/languages.d.ts.map +1 -0
- package/dist/core/languages.js +30 -0
- package/dist/core/languages.js.map +1 -0
- package/dist/core/types.d.ts +8 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pipeline/file-memory.d.ts.map +1 -1
- package/dist/pipeline/file-memory.js +2 -0
- package/dist/pipeline/file-memory.js.map +1 -1
- package/dist/prompts/direct-conversion.d.ts +2 -0
- package/dist/prompts/direct-conversion.d.ts.map +1 -1
- package/dist/prompts/direct-conversion.js +30 -20
- package/dist/prompts/direct-conversion.js.map +1 -1
- package/dist/prompts/direct-repair.d.ts +2 -0
- package/dist/prompts/direct-repair.d.ts.map +1 -1
- package/dist/prompts/direct-repair.js +11 -5
- package/dist/prompts/direct-repair.js.map +1 -1
- package/docs/ARCHITECTURE.md +10 -5
- package/docs/MODULES.md +11 -7
- package/docs/SCALABILITY.md +8 -0
- package/docs/roadmap/html-css.md +11 -3
- package/package.json +1 -1
|
@@ -2,5 +2,6 @@ import type { LanguageProfile } from "./types.ts";
|
|
|
2
2
|
/** Operator-declared config language -> output extension and prompt label. */
|
|
3
3
|
export declare const LANGUAGE_PROFILES: Record<string, LanguageProfile>;
|
|
4
4
|
export declare function languageProfile(language: string): LanguageProfile;
|
|
5
|
+
/** File extension (with or without a leading dot) -> owning config language. */
|
|
5
6
|
export declare function languageForExtension(extension: string): string | undefined;
|
|
6
7
|
//# sourceMappingURL=languages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/languages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/languages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAa7D,CAAC;AAEF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAEjE;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { languageForCodeExtension } from "../../core/languages.js";
|
|
1
2
|
/** Operator-declared config language -> output extension and prompt label. */
|
|
2
3
|
export const LANGUAGE_PROFILES = {
|
|
3
4
|
typescript: { ext: "ts", label: "TypeScript" },
|
|
@@ -17,14 +18,7 @@ export function languageProfile(language) {
|
|
|
17
18
|
return LANGUAGE_PROFILES[language.trim().toLowerCase()] ?? { ext: "txt", label: language };
|
|
18
19
|
}
|
|
19
20
|
/** File extension (with or without a leading dot) -> owning config language. */
|
|
20
|
-
const EXTENSION_LANGUAGES = {
|
|
21
|
-
ts: "typescript", tsx: "typescript", mts: "typescript", cts: "typescript",
|
|
22
|
-
js: "javascript", jsx: "javascript", mjs: "javascript", cjs: "javascript",
|
|
23
|
-
py: "python", rs: "rust", go: "go", java: "java", rb: "ruby", cs: "csharp",
|
|
24
|
-
cpp: "cpp", cc: "cpp", hpp: "cpp", c: "c", h: "c",
|
|
25
|
-
html: "html", htm: "html", css: "css",
|
|
26
|
-
};
|
|
27
21
|
export function languageForExtension(extension) {
|
|
28
|
-
return
|
|
22
|
+
return languageForCodeExtension(extension);
|
|
29
23
|
}
|
|
30
24
|
//# sourceMappingURL=languages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../src/agents/direct/languages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../src/agents/direct/languages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;IAC9C,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;IAC9C,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9B,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACpC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;IACjC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACpC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;CAClC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7F,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -4,5 +4,5 @@ export interface InlineMarker {
|
|
|
4
4
|
end: number;
|
|
5
5
|
}
|
|
6
6
|
/** Find every lexical `@human` comment marker with its exact character range. */
|
|
7
|
-
export declare function extractInlineMarkers(text: string): InlineMarker[];
|
|
7
|
+
export declare function extractInlineMarkers(text: string, sourcePath?: string): InlineMarker[];
|
|
8
8
|
//# sourceMappingURL=marker-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker-parser.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/marker-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"marker-parser.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/marker-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAkLD,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,YAAY,EAAE,CAiClF"}
|
|
@@ -21,24 +21,139 @@ function lineEnd(text, start) {
|
|
|
21
21
|
const newline = text.indexOf("\n", start);
|
|
22
22
|
return newline === -1 ? text.length : newline;
|
|
23
23
|
}
|
|
24
|
+
function endOfHtmlAttributeQuotedRegion(text, start) {
|
|
25
|
+
const quote = text[start];
|
|
26
|
+
let offset = start + 1;
|
|
27
|
+
while (offset < text.length) {
|
|
28
|
+
if (text[offset] === quote)
|
|
29
|
+
return offset + 1;
|
|
30
|
+
offset += 1;
|
|
31
|
+
}
|
|
32
|
+
return text.length;
|
|
33
|
+
}
|
|
24
34
|
function blockMarkerPrompt(content) {
|
|
25
35
|
const ordinary = /^\s*@human\b[ \t]*([\s\S]*)$/u.exec(content);
|
|
26
36
|
if (ordinary)
|
|
27
37
|
return (ordinary[1] ?? "").trim() || undefined;
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const normalized =
|
|
33
|
-
.slice(1)
|
|
38
|
+
// Remove only conventional multiline `*` decoration. This covers JSDoc
|
|
39
|
+
// (`/**`) and decorated ordinary block comments (`/*\n * ...`) while prose
|
|
40
|
+
// before @human remains non-instruction text.
|
|
41
|
+
const decoratedContent = content.startsWith("*") ? content.slice(1) : content;
|
|
42
|
+
const normalized = decoratedContent
|
|
34
43
|
.split(/\r?\n/u)
|
|
35
44
|
.map((line) => line.replace(/^\s*\*?[ \t]?/u, ""))
|
|
36
45
|
.join("\n");
|
|
37
46
|
const jsdoc = /^\s*@human\b[ \t]*([\s\S]*)$/u.exec(normalized);
|
|
38
47
|
return (jsdoc?.[1] ?? "").trim() || undefined;
|
|
39
48
|
}
|
|
49
|
+
function pushLineMarker(markers, text, start, openerLength) {
|
|
50
|
+
const end = lineEnd(text, start);
|
|
51
|
+
const match = /^[ \t]*@human\b[ \t]*([^\r]*)$/u.exec(text.slice(start + openerLength, end));
|
|
52
|
+
const prompt = (match?.[1] ?? "").trim();
|
|
53
|
+
if (match && prompt.length > 0)
|
|
54
|
+
markers.push({ prompt, start, end });
|
|
55
|
+
return end;
|
|
56
|
+
}
|
|
57
|
+
function pushBlockMarker(markers, text, start, opener, closer) {
|
|
58
|
+
const close = text.indexOf(closer, start + opener.length);
|
|
59
|
+
const end = close === -1 ? text.length : close + closer.length;
|
|
60
|
+
if (close !== -1) {
|
|
61
|
+
const prompt = blockMarkerPrompt(text.slice(start + opener.length, close));
|
|
62
|
+
if (prompt)
|
|
63
|
+
markers.push({ prompt, start, end });
|
|
64
|
+
}
|
|
65
|
+
return end;
|
|
66
|
+
}
|
|
67
|
+
function htmlTagStart(text, offset) {
|
|
68
|
+
const match = /^<\s*(\/?)\s*([A-Za-z][A-Za-z0-9:-]*)\b/u.exec(text.slice(offset));
|
|
69
|
+
if (!match)
|
|
70
|
+
return undefined;
|
|
71
|
+
return {
|
|
72
|
+
end: offset + match[0].length,
|
|
73
|
+
name: match[2].toLowerCase(),
|
|
74
|
+
closing: match[1] === "/",
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* HTML needs tag-aware quote handling: apostrophes in visible text are not
|
|
79
|
+
* string delimiters, while comment-shaped text inside quoted attributes and
|
|
80
|
+
* embedded script/style strings must stay inert.
|
|
81
|
+
*/
|
|
82
|
+
function extractHtmlInlineMarkers(text) {
|
|
83
|
+
const markers = [];
|
|
84
|
+
let offset = 0;
|
|
85
|
+
let inTag = false;
|
|
86
|
+
let tagStart = 0;
|
|
87
|
+
let pendingTag;
|
|
88
|
+
let rawTextTag;
|
|
89
|
+
while (offset < text.length) {
|
|
90
|
+
if (inTag) {
|
|
91
|
+
const character = text[offset];
|
|
92
|
+
if (character === "'" || character === '"') {
|
|
93
|
+
offset = endOfHtmlAttributeQuotedRegion(text, offset);
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (character === ">") {
|
|
97
|
+
const selfClosing = /\/\s*$/u.test(text.slice(tagStart, offset));
|
|
98
|
+
if (pendingTag?.name === "script" || pendingTag?.name === "style") {
|
|
99
|
+
if (pendingTag.closing)
|
|
100
|
+
rawTextTag = undefined;
|
|
101
|
+
else if (!selfClosing)
|
|
102
|
+
rawTextTag = pendingTag.name;
|
|
103
|
+
}
|
|
104
|
+
inTag = false;
|
|
105
|
+
pendingTag = undefined;
|
|
106
|
+
}
|
|
107
|
+
offset += 1;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (text.startsWith("<!--", offset)) {
|
|
111
|
+
offset = pushBlockMarker(markers, text, offset, "<!--", "-->");
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (rawTextTag !== undefined) {
|
|
115
|
+
const closing = htmlTagStart(text, offset);
|
|
116
|
+
if (closing?.closing === true && closing.name === rawTextTag) {
|
|
117
|
+
inTag = true;
|
|
118
|
+
tagStart = offset;
|
|
119
|
+
pendingTag = closing;
|
|
120
|
+
offset = closing.end;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
const character = text[offset];
|
|
124
|
+
if (character === "'" || character === '"' || character === "`") {
|
|
125
|
+
offset = endOfQuotedRegion(text, offset);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (rawTextTag === "script" && text.startsWith("//", offset)) {
|
|
129
|
+
offset = pushLineMarker(markers, text, offset, 2);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (text.startsWith("/*", offset)) {
|
|
133
|
+
offset = pushBlockMarker(markers, text, offset, "/*", "*/");
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
offset += 1;
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (text[offset] === "<") {
|
|
140
|
+
const tag = htmlTagStart(text, offset);
|
|
141
|
+
if (tag !== undefined) {
|
|
142
|
+
inTag = true;
|
|
143
|
+
tagStart = offset;
|
|
144
|
+
pendingTag = tag;
|
|
145
|
+
offset = tag.end;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
offset += 1;
|
|
150
|
+
}
|
|
151
|
+
return markers;
|
|
152
|
+
}
|
|
40
153
|
/** Find every lexical `@human` comment marker with its exact character range. */
|
|
41
|
-
export function extractInlineMarkers(text) {
|
|
154
|
+
export function extractInlineMarkers(text, sourcePath = "") {
|
|
155
|
+
if (/\.html?$/iu.test(sourcePath))
|
|
156
|
+
return extractHtmlInlineMarkers(text);
|
|
42
157
|
const markers = [];
|
|
43
158
|
let offset = 0;
|
|
44
159
|
while (offset < text.length) {
|
|
@@ -48,32 +163,15 @@ export function extractInlineMarkers(text) {
|
|
|
48
163
|
continue;
|
|
49
164
|
}
|
|
50
165
|
if (text.startsWith("//", offset)) {
|
|
51
|
-
|
|
52
|
-
const match = /^[ \t]*@human\b[ \t]*([^\r]*)$/u.exec(text.slice(offset + 2, end));
|
|
53
|
-
const prompt = (match?.[1] ?? "").trim();
|
|
54
|
-
if (match && prompt.length > 0)
|
|
55
|
-
markers.push({ prompt, start: offset, end });
|
|
56
|
-
offset = end;
|
|
166
|
+
offset = pushLineMarker(markers, text, offset, 2);
|
|
57
167
|
continue;
|
|
58
168
|
}
|
|
59
169
|
if (text.startsWith("/*", offset)) {
|
|
60
|
-
|
|
61
|
-
const end = close === -1 ? text.length : close + 2;
|
|
62
|
-
if (close !== -1) {
|
|
63
|
-
const prompt = blockMarkerPrompt(text.slice(offset + 2, close));
|
|
64
|
-
if (prompt)
|
|
65
|
-
markers.push({ prompt, start: offset, end });
|
|
66
|
-
}
|
|
67
|
-
offset = end;
|
|
170
|
+
offset = pushBlockMarker(markers, text, offset, "/*", "*/");
|
|
68
171
|
continue;
|
|
69
172
|
}
|
|
70
173
|
if (character === "#") {
|
|
71
|
-
|
|
72
|
-
const match = /^[ \t]*@human\b[ \t]*([^\r]*)$/u.exec(text.slice(offset + 1, end));
|
|
73
|
-
const prompt = (match?.[1] ?? "").trim();
|
|
74
|
-
if (match && prompt.length > 0)
|
|
75
|
-
markers.push({ prompt, start: offset, end });
|
|
76
|
-
offset = end;
|
|
174
|
+
offset = pushLineMarker(markers, text, offset, 1);
|
|
77
175
|
continue;
|
|
78
176
|
}
|
|
79
177
|
offset += 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker-parser.js","sourceRoot":"","sources":["../../../src/agents/direct/marker-parser.ts"],"names":[],"mappings":"AAMA,iFAAiF;AACjF,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,KAAK,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,IAAI,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAEtC,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC;YAAE,OAAO,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACzE,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QAChG,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,QAAQ,GAAG,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,QAAQ;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAE7D,
|
|
1
|
+
{"version":3,"file":"marker-parser.js","sourceRoot":"","sources":["../../../src/agents/direct/marker-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/presentation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAC9C,MAAM,
|
|
1
|
+
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/presentation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAC9C,MAAM,CAyCR;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWrD"}
|
|
@@ -36,6 +36,7 @@ export function renderReceipt(units, provider, model, configuredLanguages) {
|
|
|
36
36
|
` Provider : ${provider}`,
|
|
37
37
|
` Model : ${model}`,
|
|
38
38
|
` Engine : direct (one model request per prompt; bounded cross-file repair may add requests)`,
|
|
39
|
+
` Context : compact current/projected ProjectMemory (target-specific, bounded)`,
|
|
39
40
|
` Requests : ${units.length} planned${repairAllowance}`,
|
|
40
41
|
"",
|
|
41
42
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../../src/agents/direct/presentation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../../src/agents/direct/presentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const PROJECT_CONTRACT_EXTENSIONS: Set<string>;
|
|
2
|
+
export declare const PROJECT_MANIFEST_NAMES: Set<string>;
|
|
3
|
+
/** Extract a bounded interface/relationship summary without executing source. */
|
|
4
|
+
export declare function compactFileContract(path: string, content: string): string;
|
|
5
|
+
//# sourceMappingURL=project-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-contracts.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/project-contracts.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,2BAA2B,aAItC,CAAC;AAEH,eAAO,MAAM,sBAAsB,aAIjC,CAAC;AAiIH,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAuBzE"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static, language-aware contract extraction for ProjectMemory. These compact
|
|
3
|
+
* summaries expose relationships and public structure without executing source
|
|
4
|
+
* or sending whole files. Credential-bearing content yields no contract.
|
|
5
|
+
*/
|
|
6
|
+
import { basename, extname } from "node:path";
|
|
7
|
+
import { scanSecrets } from "../../context/context.js";
|
|
8
|
+
import { extractStaticFileMemory } from "../../pipeline/file-memory.js";
|
|
9
|
+
const MAX_CONTRACT_CHARS = 2_400;
|
|
10
|
+
const MAX_CONTRACT_ITEMS = 24;
|
|
11
|
+
export const PROJECT_CONTRACT_EXTENSIONS = new Set([
|
|
12
|
+
".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs",
|
|
13
|
+
".html", ".htm", ".css", ".py", ".rs", ".go", ".java", ".rb",
|
|
14
|
+
".cs", ".cpp", ".cc", ".c", ".h", ".hpp", ".json",
|
|
15
|
+
]);
|
|
16
|
+
export const PROJECT_MANIFEST_NAMES = new Set([
|
|
17
|
+
"package.json", "tsconfig.json", "jsconfig.json", "Cargo.toml", "go.mod",
|
|
18
|
+
"pom.xml", "build.gradle", "build.gradle.kts", "requirements.txt",
|
|
19
|
+
"pyproject.toml", "CMakeLists.txt", "Makefile",
|
|
20
|
+
]);
|
|
21
|
+
function oneLine(value, limit) {
|
|
22
|
+
const sanitized = value
|
|
23
|
+
.replace(/[\u0000-\u0008\u000b-\u001f\u007f]/gu, " ")
|
|
24
|
+
.replace(/\s+/gu, " ")
|
|
25
|
+
.trim();
|
|
26
|
+
return sanitized.length <= limit ? sanitized : `${sanitized.slice(0, Math.max(0, limit - 1))}…`;
|
|
27
|
+
}
|
|
28
|
+
function unique(values, limit = MAX_CONTRACT_ITEMS) {
|
|
29
|
+
const result = [];
|
|
30
|
+
const seen = new Set();
|
|
31
|
+
for (const value of values) {
|
|
32
|
+
const cleaned = oneLine(value, 180);
|
|
33
|
+
if (cleaned.length === 0 || seen.has(cleaned))
|
|
34
|
+
continue;
|
|
35
|
+
seen.add(cleaned);
|
|
36
|
+
result.push(cleaned);
|
|
37
|
+
if (result.length >= limit)
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
function matches(content, expression, group = 1) {
|
|
43
|
+
const values = [];
|
|
44
|
+
for (const match of content.matchAll(expression)) {
|
|
45
|
+
const value = match[group];
|
|
46
|
+
if (value !== undefined)
|
|
47
|
+
values.push(value);
|
|
48
|
+
}
|
|
49
|
+
return values;
|
|
50
|
+
}
|
|
51
|
+
function listLine(label, values) {
|
|
52
|
+
return values.length === 0 ? undefined : `${label}: ${values.join(", ")}`;
|
|
53
|
+
}
|
|
54
|
+
function htmlContract(content) {
|
|
55
|
+
const stylesheets = matches(content, /<link\b(?=[^>]*\brel\s*=\s*["'][^"']*stylesheet[^"']*["'])[^>]*\bhref\s*=\s*["']([^"']+)["'][^>]*>/giu);
|
|
56
|
+
const scripts = matches(content, /<script\b[^>]*\bsrc\s*=\s*["']([^"']+)["'][^>]*>/giu);
|
|
57
|
+
const ids = matches(content, /\bid\s*=\s*["']([^"']+)["']/giu)
|
|
58
|
+
.flatMap((value) => value.split(/\s+/u));
|
|
59
|
+
const classes = matches(content, /\bclass\s*=\s*["']([^"']+)["']/giu)
|
|
60
|
+
.flatMap((value) => value.split(/\s+/u));
|
|
61
|
+
const landmarks = matches(content, /<(header|nav|main|section|article|aside|footer|form)\b/giu);
|
|
62
|
+
const elements = matches(content, /<([a-z][a-z0-9-]*)\b/giu);
|
|
63
|
+
return [
|
|
64
|
+
listLine("stylesheets", unique(stylesheets)),
|
|
65
|
+
listLine("scripts", unique(scripts)),
|
|
66
|
+
listLine("ids", unique(ids)),
|
|
67
|
+
listLine("classes", unique(classes)),
|
|
68
|
+
listLine("landmarks", unique(landmarks)),
|
|
69
|
+
listLine("elements", unique(elements)),
|
|
70
|
+
].filter((line) => line !== undefined);
|
|
71
|
+
}
|
|
72
|
+
function cssContract(content) {
|
|
73
|
+
const imports = matches(content, /@import\s+(?:url\(\s*)?["']([^"']+)["']/giu);
|
|
74
|
+
const urls = matches(content, /url\(\s*["']?([^"')\s]+)["']?\s*\)/giu);
|
|
75
|
+
const customProperties = matches(content, /(^|[;{]\s*)(--[A-Za-z0-9_-]+)\s*:/gmu, 2);
|
|
76
|
+
const selectors = matches(content, /(?:^|\})\s*([^@{}][^{}]{0,240})\s*\{/gmu)
|
|
77
|
+
.flatMap((value) => value.split(","));
|
|
78
|
+
return [
|
|
79
|
+
listLine("imports", unique(imports)),
|
|
80
|
+
listLine("asset URLs", unique(urls)),
|
|
81
|
+
listLine("custom properties", unique(customProperties)),
|
|
82
|
+
listLine("selectors", unique(selectors)),
|
|
83
|
+
].filter((line) => line !== undefined);
|
|
84
|
+
}
|
|
85
|
+
function javascriptContract(content) {
|
|
86
|
+
const modules = [
|
|
87
|
+
...matches(content, /\b(?:import|export)\b[\s\S]{0,240}?\bfrom\s*["']([^"']+)["']/gu),
|
|
88
|
+
...matches(content, /\bimport\s*["']([^"']+)["']/gu),
|
|
89
|
+
...matches(content, /\brequire\s*\(\s*["']([^"']+)["']\s*\)/gu),
|
|
90
|
+
];
|
|
91
|
+
const selectors = [
|
|
92
|
+
...matches(content, /\bquerySelector(?:All)?\s*\(\s*["']([^"']+)["']/gu),
|
|
93
|
+
...matches(content, /\bgetElementById\s*\(\s*["']([^"']+)["']/gu).map((value) => `#${value}`),
|
|
94
|
+
];
|
|
95
|
+
return [
|
|
96
|
+
listLine("module references", unique(modules)),
|
|
97
|
+
listLine("DOM selectors", unique(selectors)),
|
|
98
|
+
].filter((line) => line !== undefined);
|
|
99
|
+
}
|
|
100
|
+
function genericReferences(path, content) {
|
|
101
|
+
const extension = extname(path).toLowerCase();
|
|
102
|
+
if ([".c", ".cc", ".cpp", ".h", ".hpp"].includes(extension)) {
|
|
103
|
+
return [listLine("includes", unique(matches(content, /^\s*#\s*include\s*["<]([^">]+)[">]/gmu)))]
|
|
104
|
+
.filter((line) => line !== undefined);
|
|
105
|
+
}
|
|
106
|
+
if (extension === ".py") {
|
|
107
|
+
const imports = [
|
|
108
|
+
...matches(content, /^\s*from\s+([A-Za-z0-9_.]+)\s+import/gmu),
|
|
109
|
+
...matches(content, /^\s*import\s+([A-Za-z0-9_.]+)/gmu),
|
|
110
|
+
];
|
|
111
|
+
return [listLine("imports", unique(imports))]
|
|
112
|
+
.filter((line) => line !== undefined);
|
|
113
|
+
}
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
function jsonManifestContract(path, content) {
|
|
117
|
+
if (basename(path) !== "package.json")
|
|
118
|
+
return [];
|
|
119
|
+
try {
|
|
120
|
+
const parsed = JSON.parse(content);
|
|
121
|
+
const dependencies = ["dependencies", "devDependencies", "peerDependencies"]
|
|
122
|
+
.flatMap((key) => {
|
|
123
|
+
const value = parsed[key];
|
|
124
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
125
|
+
? Object.keys(value)
|
|
126
|
+
: [];
|
|
127
|
+
});
|
|
128
|
+
const scripts = typeof parsed.scripts === "object" && parsed.scripts !== null && !Array.isArray(parsed.scripts)
|
|
129
|
+
? Object.keys(parsed.scripts)
|
|
130
|
+
: [];
|
|
131
|
+
return [
|
|
132
|
+
typeof parsed.type === "string" ? `module type: ${oneLine(parsed.type, 40)}` : undefined,
|
|
133
|
+
listLine("dependencies", unique(dependencies)),
|
|
134
|
+
listLine("script names", unique(scripts)),
|
|
135
|
+
].filter((line) => line !== undefined);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/** Extract a bounded interface/relationship summary without executing source. */
|
|
142
|
+
export function compactFileContract(path, content) {
|
|
143
|
+
if (scanSecrets(content).length > 0)
|
|
144
|
+
return "";
|
|
145
|
+
const extension = extname(path).toLowerCase();
|
|
146
|
+
const details = extension === ".html" || extension === ".htm"
|
|
147
|
+
? htmlContract(content)
|
|
148
|
+
: extension === ".css"
|
|
149
|
+
? cssContract(content)
|
|
150
|
+
: [".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs"].includes(extension)
|
|
151
|
+
? javascriptContract(content)
|
|
152
|
+
: extension === ".json"
|
|
153
|
+
? jsonManifestContract(path, content)
|
|
154
|
+
: genericReferences(path, content);
|
|
155
|
+
const declarations = extractStaticFileMemory(path, content)
|
|
156
|
+
.slice(0, MAX_CONTRACT_ITEMS)
|
|
157
|
+
.map((entry) => oneLine(entry.code, 220));
|
|
158
|
+
const lines = [
|
|
159
|
+
...details,
|
|
160
|
+
...(declarations.length > 0 ? [`declarations: ${declarations.join(" | ")}`] : []),
|
|
161
|
+
];
|
|
162
|
+
const rendered = lines.join("\n");
|
|
163
|
+
return rendered.length <= MAX_CONTRACT_CHARS
|
|
164
|
+
? rendered
|
|
165
|
+
: `${rendered.slice(0, MAX_CONTRACT_CHARS - 1)}…`;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=project-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-contracts.js","sourceRoot":"","sources":["../../../src/agents/direct/project-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ConversionUnit, ProjectMemoryProvider } from "./types.ts";
|
|
2
|
+
export interface ProjectMemoryOptions {
|
|
3
|
+
/** Reuse discovery's already-bounded walk instead of walking the tree twice. */
|
|
4
|
+
scannedPaths?: readonly string[];
|
|
5
|
+
/** Exact names omitted by operator policy. */
|
|
6
|
+
ignoredNames?: readonly string[];
|
|
7
|
+
/** Project-relative files or directories forbidden from outbound context. */
|
|
8
|
+
excludedPaths?: readonly string[];
|
|
9
|
+
/** Maximum file size eligible for static contract extraction. */
|
|
10
|
+
maxFileBytes?: number;
|
|
11
|
+
/** Hard cap on source files read for compact contracts. */
|
|
12
|
+
maxContractFiles?: number;
|
|
13
|
+
/** Hard cap for one rendered ProjectMemory block. */
|
|
14
|
+
renderCharLimit?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface PlannedProjectFile {
|
|
17
|
+
path: string;
|
|
18
|
+
sourcePaths: string[];
|
|
19
|
+
language: string;
|
|
20
|
+
purposes: string[];
|
|
21
|
+
created: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Shared project-level memory updated after every accepted generation. */
|
|
24
|
+
export declare class ProjectMemory implements ProjectMemoryProvider {
|
|
25
|
+
#private;
|
|
26
|
+
readonly root: string;
|
|
27
|
+
readonly currentFiles: readonly string[];
|
|
28
|
+
readonly projectedFiles: readonly string[];
|
|
29
|
+
constructor(input: {
|
|
30
|
+
root: string;
|
|
31
|
+
currentFiles: readonly string[];
|
|
32
|
+
planned: ReadonlyMap<string, PlannedProjectFile>;
|
|
33
|
+
existingContracts: ReadonlyMap<string, string>;
|
|
34
|
+
contextExcludedTargets: ReadonlySet<string>;
|
|
35
|
+
renderCharLimit: number;
|
|
36
|
+
});
|
|
37
|
+
remember(unit: ConversionUnit, code: string): void;
|
|
38
|
+
renderFor(unit: ConversionUnit, requestedBudget?: number): string;
|
|
39
|
+
}
|
|
40
|
+
/** Build one immutable current/projected inventory plus compact current contracts. */
|
|
41
|
+
export declare function buildProjectMemory(root: string, units: readonly ConversionUnit[], options?: ProjectMemoryOptions): Promise<ProjectMemory>;
|
|
42
|
+
//# sourceMappingURL=project-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-memory.d.ts","sourceRoot":"","sources":["../../../src/agents/direct/project-memory.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAYxE,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAiKD,2EAA2E;AAC3E,qBAAa,aAAc,YAAW,qBAAqB;;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;gBAgB/B,KAAK,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACjD,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5C,eAAe,EAAE,MAAM,CAAC;KACzB;IAuCD,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgElD,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,SAAwB,GAAG,MAAM;CA8EjF;AA6CD,sFAAsF;AACtF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CA6DxB"}
|