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.
Files changed (78) hide show
  1. package/Readme.md +73 -6
  2. package/SECURITY.md +16 -2
  3. package/dist/agents/direct/candidate-overlay.d.ts.map +1 -1
  4. package/dist/agents/direct/candidate-overlay.js +1 -1
  5. package/dist/agents/direct/candidate-overlay.js.map +1 -1
  6. package/dist/agents/direct/candidate-validation.js +1 -1
  7. package/dist/agents/direct/candidate-validation.js.map +1 -1
  8. package/dist/agents/direct/discovery.d.ts +3 -2
  9. package/dist/agents/direct/discovery.d.ts.map +1 -1
  10. package/dist/agents/direct/discovery.js +71 -18
  11. package/dist/agents/direct/discovery.js.map +1 -1
  12. package/dist/agents/direct/file-memory.d.ts.map +1 -1
  13. package/dist/agents/direct/file-memory.js +9 -0
  14. package/dist/agents/direct/file-memory.js.map +1 -1
  15. package/dist/agents/direct/generation-client.d.ts +1 -0
  16. package/dist/agents/direct/generation-client.d.ts.map +1 -1
  17. package/dist/agents/direct/generation-client.js +2 -0
  18. package/dist/agents/direct/generation-client.js.map +1 -1
  19. package/dist/agents/direct/index.d.ts +2 -0
  20. package/dist/agents/direct/index.d.ts.map +1 -1
  21. package/dist/agents/direct/index.js +2 -0
  22. package/dist/agents/direct/index.js.map +1 -1
  23. package/dist/agents/direct/languages.d.ts +1 -0
  24. package/dist/agents/direct/languages.d.ts.map +1 -1
  25. package/dist/agents/direct/languages.js +2 -8
  26. package/dist/agents/direct/languages.js.map +1 -1
  27. package/dist/agents/direct/marker-parser.d.ts +1 -1
  28. package/dist/agents/direct/marker-parser.d.ts.map +1 -1
  29. package/dist/agents/direct/marker-parser.js +125 -27
  30. package/dist/agents/direct/marker-parser.js.map +1 -1
  31. package/dist/agents/direct/presentation.d.ts.map +1 -1
  32. package/dist/agents/direct/presentation.js +1 -0
  33. package/dist/agents/direct/presentation.js.map +1 -1
  34. package/dist/agents/direct/project-contracts.d.ts +5 -0
  35. package/dist/agents/direct/project-contracts.d.ts.map +1 -0
  36. package/dist/agents/direct/project-contracts.js +167 -0
  37. package/dist/agents/direct/project-contracts.js.map +1 -0
  38. package/dist/agents/direct/project-memory.d.ts +42 -0
  39. package/dist/agents/direct/project-memory.d.ts.map +1 -0
  40. package/dist/agents/direct/project-memory.js +481 -0
  41. package/dist/agents/direct/project-memory.js.map +1 -0
  42. package/dist/agents/direct/staged-validation.d.ts +5 -1
  43. package/dist/agents/direct/staged-validation.d.ts.map +1 -1
  44. package/dist/agents/direct/staged-validation.js +8 -3
  45. package/dist/agents/direct/staged-validation.js.map +1 -1
  46. package/dist/agents/direct/types.d.ts +18 -1
  47. package/dist/agents/direct/types.d.ts.map +1 -1
  48. package/dist/cli.d.ts.map +1 -1
  49. package/dist/cli.js +23 -6
  50. package/dist/cli.js.map +1 -1
  51. package/dist/config/config.d.ts.map +1 -1
  52. package/dist/config/config.js +42 -0
  53. package/dist/config/config.js.map +1 -1
  54. package/dist/core/languages.d.ts +5 -0
  55. package/dist/core/languages.d.ts.map +1 -0
  56. package/dist/core/languages.js +30 -0
  57. package/dist/core/languages.js.map +1 -0
  58. package/dist/core/types.d.ts +8 -0
  59. package/dist/core/types.d.ts.map +1 -1
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/pipeline/file-memory.d.ts.map +1 -1
  64. package/dist/pipeline/file-memory.js +2 -0
  65. package/dist/pipeline/file-memory.js.map +1 -1
  66. package/dist/prompts/direct-conversion.d.ts +2 -0
  67. package/dist/prompts/direct-conversion.d.ts.map +1 -1
  68. package/dist/prompts/direct-conversion.js +30 -20
  69. package/dist/prompts/direct-conversion.js.map +1 -1
  70. package/dist/prompts/direct-repair.d.ts +2 -0
  71. package/dist/prompts/direct-repair.d.ts.map +1 -1
  72. package/dist/prompts/direct-repair.js +11 -5
  73. package/dist/prompts/direct-repair.js.map +1 -1
  74. package/docs/ARCHITECTURE.md +10 -5
  75. package/docs/MODULES.md +11 -7
  76. package/docs/SCALABILITY.md +8 -0
  77. package/docs/roadmap/html-css.md +11 -3
  78. 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":"AAAA,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;AAWD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E"}
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 EXTENSION_LANGUAGES[extension.replace(/^\./u, "").toLowerCase()];
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":"AAEA,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,mBAAmB,GAA2B;IAClD,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;IACzE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;IACzE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAC1E,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IACjD,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;CACtC,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,OAAO,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1E,CAAC"}
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;AA0CD,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CA6CjE"}
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
- // JSDoc content begins with the third opener star. Remove only conventional
29
- // leading `*` decoration; prose before @human remains non-instruction text.
30
- if (!content.startsWith("*"))
31
- return undefined;
32
- const normalized = content
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
- const end = lineEnd(text, offset);
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
- const close = text.indexOf("*/", offset + 2);
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
- const end = lineEnd(text, offset);
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":"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"}
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,CAwCR;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWrD"}
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"}