nimai-core 0.4.0 → 0.4.2
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/dist/context.d.ts.map +1 -1
- package/dist/context.js +66 -2
- package/dist/context.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +12 -4
- package/dist/prompts.js.map +1 -1
- package/package.json +1 -1
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA4DtC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAiB/E"}
|
package/dist/context.js
CHANGED
|
@@ -40,13 +40,77 @@ const MAX_FILES = 20;
|
|
|
40
40
|
const INCLUDE_EXTENSIONS = new Set(['.ts', '.js', '.md', '.json', '.yaml', '.yml']);
|
|
41
41
|
const EXCLUDE_DIRS = new Set(['node_modules', '.git', 'dist', '.next', '__pycache__', 'tmp', '.tmp', 'coverage', '.cache', 'build', 'out']);
|
|
42
42
|
const MAX_SNIPPET_CHARS = 2000;
|
|
43
|
+
// Files whose base name (without extension) matches these patterns are always included
|
|
44
|
+
// regardless of keyword relevance score — they anchor the spec builder's architecture decisions.
|
|
45
|
+
const BASELINE_NAME_PATTERNS = /^(schema|schemas|types|type|models|model|db|database|entity|entities|migration|migrations)$/i;
|
|
46
|
+
const BASELINE_ROOT_FILES = ['package.json', 'README.md', 'readme.md', 'Readme.md'];
|
|
47
|
+
/**
|
|
48
|
+
* Collect deterministic baseline files that are always included in context:
|
|
49
|
+
* - Root-level package.json (tech stack, dependencies, scripts)
|
|
50
|
+
* - Root-level README.md (architecture overview)
|
|
51
|
+
* - Any schema/types/models/db files anywhere in the repo (data model anchors)
|
|
52
|
+
*/
|
|
53
|
+
function collectBaseline(repoPath) {
|
|
54
|
+
const results = [];
|
|
55
|
+
const seen = new Set();
|
|
56
|
+
function add(filePath, relPath) {
|
|
57
|
+
if (seen.has(relPath))
|
|
58
|
+
return;
|
|
59
|
+
seen.add(relPath);
|
|
60
|
+
try {
|
|
61
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
62
|
+
results.push({ file: relPath, snippet: content.slice(0, MAX_SNIPPET_CHARS), relevance: 0 });
|
|
63
|
+
}
|
|
64
|
+
catch { /* skip unreadable files */ }
|
|
65
|
+
}
|
|
66
|
+
// Root-level package.json and README (first match wins for README)
|
|
67
|
+
for (const name of BASELINE_ROOT_FILES) {
|
|
68
|
+
const p = path.join(repoPath, name);
|
|
69
|
+
if (fs.existsSync(p))
|
|
70
|
+
add(p, name);
|
|
71
|
+
}
|
|
72
|
+
// Schema/types/models/db files anywhere in the repo
|
|
73
|
+
function walkForBaseline(dir) {
|
|
74
|
+
let entries;
|
|
75
|
+
try {
|
|
76
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
for (const entry of entries) {
|
|
82
|
+
const fullPath = path.join(dir, entry.name);
|
|
83
|
+
if (entry.isDirectory()) {
|
|
84
|
+
if (!EXCLUDE_DIRS.has(entry.name))
|
|
85
|
+
walkForBaseline(fullPath);
|
|
86
|
+
}
|
|
87
|
+
else if (entry.isFile()) {
|
|
88
|
+
const ext = path.extname(entry.name).toLowerCase();
|
|
89
|
+
if (!INCLUDE_EXTENSIONS.has(ext))
|
|
90
|
+
continue;
|
|
91
|
+
const nameWithoutExt = path.basename(entry.name, path.extname(entry.name));
|
|
92
|
+
if (BASELINE_NAME_PATTERNS.test(nameWithoutExt)) {
|
|
93
|
+
add(fullPath, path.relative(repoPath, fullPath));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
walkForBaseline(repoPath);
|
|
99
|
+
return results.slice(0, 10); // cap baseline at 10 files
|
|
100
|
+
}
|
|
43
101
|
function extractContext(repoPath, request) {
|
|
44
102
|
const keywords = tokenize(request);
|
|
45
103
|
const candidates = [];
|
|
46
104
|
walkDir(repoPath, repoPath, candidates, keywords);
|
|
47
|
-
|
|
105
|
+
// Baseline files always included — they anchor architecture decisions
|
|
106
|
+
const baseline = collectBaseline(repoPath);
|
|
107
|
+
const baselineFiles = new Set(baseline.map(i => i.file));
|
|
108
|
+
// Keyword-ranked results fill remaining slots, deduplicated against baseline
|
|
109
|
+
const keywordRanked = candidates
|
|
110
|
+
.filter(i => !baselineFiles.has(i.file))
|
|
48
111
|
.sort((a, b) => b.relevance - a.relevance)
|
|
49
|
-
.slice(0, MAX_FILES);
|
|
112
|
+
.slice(0, MAX_FILES - baseline.length);
|
|
113
|
+
return [...baseline, ...keywordRanked];
|
|
50
114
|
}
|
|
51
115
|
function walkDir(rootPath, currentPath, results, keywords) {
|
|
52
116
|
let entries;
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkC5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6FzD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgBxD"}
|
package/dist/prompts.js
CHANGED
|
@@ -15,9 +15,17 @@ exports.buildPrompt2 = buildPrompt2;
|
|
|
15
15
|
function buildPrompt1(request, contextSummary) {
|
|
16
16
|
return `You are a Specification Engineering agent operating under the FORGE.
|
|
17
17
|
|
|
18
|
+
**What you are:** A spec drafter. Your sole output is a complete FORGE spec document.
|
|
19
|
+
**What you are not:** An implementation agent. Do not write code, choose final tech stack, or execute the request.
|
|
20
|
+
**Who consumes your output:** An implementation agent that will build from this spec without asking clarifying questions. Every unresolved decision you leave will become an invention by that agent — two builders given the same spec must produce compatible systems.
|
|
21
|
+
|
|
18
22
|
Your job is to take the loose request below and generate a complete draft spec
|
|
19
23
|
using the framework's structure. Do not execute the request — only spec it.
|
|
20
24
|
|
|
25
|
+
**On architecture:** Do not invent architecture beyond what the repo context below reveals. If an architectural decision is required but cannot be answered from the provided context, mark it \`[NEEDS HUMAN INPUT: reason]\`. For greenfield repos with no prior context, state explicit MVP-level assumptions and document them as assumptions — do not present them as facts.
|
|
26
|
+
|
|
27
|
+
**If you have RepoPrompt available:** Before filling the spec, call RepoPrompt's discovery or read tool on the repo to get full architectural context (existing schemas, data models, tech stack, patterns). Use the output to populate Section 3 (Context Layer) accurately and to inform Section 1.6 (Architecture Lock) with real decisions rather than assumptions.
|
|
28
|
+
|
|
21
29
|
For each section, fill in what you can infer and mark anything uncertain
|
|
22
30
|
with [NEEDS HUMAN INPUT: reason].
|
|
23
31
|
|
|
@@ -34,7 +42,7 @@ Generate:
|
|
|
34
42
|
10. Proposed validator prompt (what a reviewer should check)
|
|
35
43
|
|
|
36
44
|
--- REPO CONTEXT ---
|
|
37
|
-
${contextSummary || '(no repo context extracted)'}
|
|
45
|
+
${contextSummary || '(no repo context extracted — if you have RepoPrompt, call it now before filling the spec)'}
|
|
38
46
|
--- END CONTEXT ---
|
|
39
47
|
|
|
40
48
|
Loose request: ${request}`;
|
|
@@ -97,13 +105,13 @@ Note: implementation correctness is explicitly out of scope for this review.
|
|
|
97
105
|
|
|
98
106
|
## Re-review closure requirement
|
|
99
107
|
|
|
100
|
-
If this
|
|
108
|
+
If the user told you this is a re-review (the builder has fixed issues since the last verdict), check ## Review Closure before evaluating any dimension.
|
|
101
109
|
Look for a section like:
|
|
102
110
|
|
|
103
111
|
> ## Review Closure
|
|
104
112
|
> | Issue | fixed_in_section | exact_text_changed | proof |
|
|
105
113
|
|
|
106
|
-
**
|
|
114
|
+
**Any prior HARD_FAIL with no closure entry = automatic FAIL.**
|
|
107
115
|
Do not evaluate the other dimensions until you confirm closure entries exist for all prior HARD_FAILs.
|
|
108
116
|
If this is a first review (no prior verdict), skip this check.
|
|
109
117
|
|
|
@@ -133,7 +141,7 @@ If the spec passes all dimensions with no HARD_FAIL issues, use:
|
|
|
133
141
|
|
|
134
142
|
If and only if \`passed\` is false, immediately append this section after the verdict block:
|
|
135
143
|
|
|
136
|
-
##
|
|
144
|
+
## Paste this to your builder session:
|
|
137
145
|
|
|
138
146
|
Write one actionable fix instruction per issue, in order. Each line must include:
|
|
139
147
|
- issue reference (\`dimension\` + short detail),
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAMH,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAMH,oCAkCC;AAeD,sCA6FC;AAMD,oCAgBC;AAxKD;;;GAGG;AACH,SAAgB,YAAY,CAAC,OAAe,EAAE,cAAsB;IAClE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BP,cAAc,IAAI,2FAA2F;;;iBAG9F,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,aAAa,CAAC,WAAmB;IAC/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2FP,WAAW,EAAE,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,WAAmB;IAC9C,OAAO;;;;;;;;;;;;;;EAcP,WAAW,EAAE,CAAC;AAChB,CAAC"}
|