genesis-compiler 1.8.0 → 1.8.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/README.md
CHANGED
|
@@ -461,6 +461,11 @@ implementing source files.
|
|
|
461
461
|
Both are derived JSON, not receipts, authority, or correctness claims. An
|
|
462
462
|
extractor warning does not stop ordinary work.
|
|
463
463
|
|
|
464
|
+
Local package exports whose entry files are excluded from indexing retain their
|
|
465
|
+
declared import paths with unavailable symbol coverage and a diagnostic. They do
|
|
466
|
+
not invalidate the rest of the architecture. After upgrading Genesis, run
|
|
467
|
+
`genesis index` to regenerate an affected snapshot.
|
|
468
|
+
|
|
464
469
|
The selected Stack decides which structural extractors run. Genesis uses the
|
|
465
470
|
Tree-sitter-backed [ast-grep JavaScript API](https://ast-grep.github.io/guide/api-usage/js-api.html)
|
|
466
471
|
through one shared engine. Built-in adapters cover JavaScript/TypeScript,
|
package/docs/templates.md
CHANGED
|
@@ -84,6 +84,9 @@ Genesis never treats partial application code as an empty destination.
|
|
|
84
84
|
|
|
85
85
|
The destination keeps its Git history, remotes, branch, meaningful Blueprint,
|
|
86
86
|
collaboration/engineering choices, and authored Stack operation sections.
|
|
87
|
+
An empty bootstrap subsystem map yields to the starter's authored map, keeping
|
|
88
|
+
the imported Program connected to its source. A nonempty destination map remains
|
|
89
|
+
authored project context; incompatible declarations fail validation before copying.
|
|
87
90
|
Template Stack components/packages are combined with existing selections;
|
|
88
91
|
existing complete operation sections take precedence. No dependency command,
|
|
89
92
|
database command, agent, or Git commit runs during import. The result reports
|
package/package.json
CHANGED
|
@@ -134,6 +134,10 @@ export async function inspectNpmPackages({ projectRoot, discovery, files, indexe
|
|
|
134
134
|
const point = { importPath, target: entry.target, conditions: entry.conditions, file: canonical(relative) && canonical(publicPath) ? publicPath : null, symbols: [], coverage: 'unsupported' };
|
|
135
135
|
record.entryPoints.push(point);
|
|
136
136
|
if (entry.target.includes('*') || !point.file || !/\.(?:[cm]?js|jsx|tsx?|vue)$/u.test(point.file)) continue;
|
|
137
|
+
if (owned && !known.has(point.file)) {
|
|
138
|
+
diagnostics.push({ code: 'NPM_INTERFACE_UNAVAILABLE', path: point.file, message: `${name}: the project-owned public entry is outside the indexed source inventory.` });
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
137
141
|
const file = await read(point.file, { indexed: Boolean(known.has(point.file)) });
|
|
138
142
|
if (file) entries.push({ record, point, file });
|
|
139
143
|
}
|
|
@@ -12,6 +12,7 @@ import { runGit, runGitText } from './process.js';
|
|
|
12
12
|
import { listTemplates, resolveTemplate } from './template-catalog.js';
|
|
13
13
|
import { readGitSnapshot } from './template-source.js';
|
|
14
14
|
import { readStack } from './stack.js';
|
|
15
|
+
import { inspectSubsystems } from './subsystems.js';
|
|
15
16
|
import { writeFileAtomic } from './utils.js';
|
|
16
17
|
import { claudeSkillLinkTarget } from './claude-hooks.js';
|
|
17
18
|
|
|
@@ -111,6 +112,7 @@ export async function applyTemplate({ projectRoot, templateId, stackPackages = [
|
|
|
111
112
|
if (previous === null || name.startsWith('.genesis/')) continue;
|
|
112
113
|
const { contents, linkTarget } = previous;
|
|
113
114
|
if (name === 'genesis/blueprint.md' && !parseBlueprintSource(contents.toString('utf8')).description) continue;
|
|
115
|
+
if (name === 'genesis/subsystems.md' && (await inspectSubsystems({ projectRoot: root })).status === 'empty') continue;
|
|
114
116
|
let value = contents;
|
|
115
117
|
if (name === 'genesis/stack.md') value = mergeTemplateStack(stackFile.contents.toString('utf8'), contents.toString('utf8'));
|
|
116
118
|
const location = path.join(stagingRoot, name);
|