genesis-compiler 1.8.2 → 1.8.4

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
@@ -915,6 +915,7 @@ import {
915
915
  inspectCollaboration,
916
916
  inspectEngineering,
917
917
  inspectEnvironment,
918
+ inspectProjectFormat,
918
919
  inspectSkills,
919
920
  inspectStackSection,
920
921
  installCodex,
@@ -947,6 +948,12 @@ The CLI can also prepare and verify parsers for an offline host; see
947
948
  [language parser management](docs/parsers.md).
948
949
  `migrate()` updates recognized older Genesis project-file formats and returns
949
950
  the resulting structural check for hosts such as Vibe64.
951
+ `inspectProjectFormat({ projectRoot })` returns only the format marker's `path`,
952
+ `status`, `projectVersion`, `supportedVersion`, `action`, and diagnostic when
953
+ invalid. It retains Git repository discovery and trust checks, but does not
954
+ enumerate application files, load Stack catalogs, or inspect project guidance.
955
+ Missing markers distinguish uninitialized projects from unversioned Genesis
956
+ material. Each call reads current state; it neither migrates nor writes files.
950
957
  `adoptProject()` also returns the initial `adopt` prompt for an existing
951
958
  codebase. `installCodex()` installs the optional global discovery plugin.
952
959
  `listEngineeringProfiles()`, `inspectEngineering()`, and
@@ -1101,3 +1108,40 @@ need no map change. Existing maps must declare their source roots. Program modul
1101
1108
  map and one owner even when the old map was missing or empty. If the map is missing, empty or invalid, Program inspection reports the
1102
1109
  required authoring work instead of assigning operations from folder names.
1103
1110
  Initialization creates an empty map without replacing one.
1111
+
1112
+ ## Publishing this repository
1113
+
1114
+ The release command uses `NPM_TOKEN` in the command's environment on a local
1115
+ computer, CI runner, or hosted development environment. Supply a token with
1116
+ publishing access to the selected package. In Vibe64, save it in the project's
1117
+ **Env → Development**, enable **Secret**, and choose **Add**. Managed shell
1118
+ commands receive the saved value; credentials do not belong in source or chat.
1119
+
1120
+ Update the selected package's version and lockfile, run the relevant checks,
1121
+ then commit and push the release source to `main`. Publish from a clean checkout
1122
+ whose `HEAD` matches `origin`'s actual `main`, with development dependencies
1123
+ installed through `npm ci`:
1124
+
1125
+ ```bash
1126
+ npm run release:npm:publish -- compiler --dry-run
1127
+ # When the catalog also changed, publish it before the compiler:
1128
+ npm run release:npm:publish -- stack
1129
+ npm run release:npm:publish -- compiler
1130
+ ```
1131
+
1132
+ Select `compiler` for `genesis-compiler` or `stack` for `genesis-stack`.
1133
+ Dry runs pack the selected source and check the registry without uploading,
1134
+ requiring a token, or requiring a clean published checkout. Real publishing
1135
+ checks npm authentication and the exact version before uploading. Matching
1136
+ releases are skipped; different contents under an existing version fail with
1137
+ the first differing file. Registry errors stop the operation. Tarball hashes
1138
+ are compared first; a different hash triggers a comparison of verified archive
1139
+ files and permissions, ignoring container timestamps and compression.
1140
+ The checked candidate tarball is the uploaded tarball. Temporary tarballs and
1141
+ private npm configuration are removed on success or failure. The command does
1142
+ not change versions or run tests. Published versions are immutable; after an
1143
+ interrupted upload, rerun the same committed release to skip matching versions.
1144
+
1145
+ Hosted working sessions normally use a session branch. After saving or merging
1146
+ the work to `main`, publish from a separate clean clone of that published branch
1147
+ using the project's managed shell. Keep the working session on its own branch.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genesis-compiler",
3
- "version": "1.8.2",
3
+ "version": "1.8.4",
4
4
  "type": "module",
5
5
  "description": "An agent-independent prompt, multi-language code-index, cleanup, and verification companion with project agent guidance.",
6
6
  "repository": {
@@ -47,6 +47,7 @@
47
47
  "docs/parsers.md"
48
48
  ],
49
49
  "scripts": {
50
+ "release:npm:publish": "node scripts/release-npm.mjs",
50
51
  "test": "node --test --test-concurrency=1 test/*.test.js"
51
52
  },
52
53
  "dependencies": {
@@ -57,6 +58,7 @@
57
58
  },
58
59
  "devDependencies": {
59
60
  "@ast-grep/lang-python": "0.0.6",
60
- "genesis-stack": "file:packages/genesis-stack"
61
+ "genesis-stack": "file:packages/genesis-stack",
62
+ "tar": "7.5.22"
61
63
  }
62
64
  }
package/src/index.js CHANGED
@@ -31,6 +31,7 @@ import { projectSessionContext, projectTurnContext } from './index/session-conte
31
31
  import { withTrustedGitRepository } from './index/process.js';
32
32
 
33
33
  export { inspectProject };
34
+ export { inspectProjectFormat } from './index/project-format.js';
34
35
  export { SOURCE_EXPLANATION_PROMPT_VERSION, sourceExplanationGuidance, sourceExplanationReviewGuidance } from './index/source-explanation.js';
35
36
  export { inspectClaudeHooks, installClaudeHooks as syncClaudeHooks } from './index/claude-hooks.js';
36
37
  export { inspectAgentIntegrations, syncAgentIntegrations } from './index/agent-integrations.js';