@ibgib/vcs-gib 0.0.33 → 0.0.34
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 +14 -7
- package/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/cli/vcs-repo-helper.d.mts.map +1 -1
- package/dist/cli/vcs-repo-helper.mjs +10 -0
- package/dist/cli/vcs-repo-helper.mjs.map +1 -1
- package/package.json +6 -6
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/cli/cli-e2e.respec.mts +7 -6
- package/src/cli/commands/branch-checkout-cmd.respec.mts +403 -403
- package/src/cli/commands/commit-log-cmd.respec.mts +5 -8
- package/src/cli/commands/status-add-cmd.respec.mts +7 -7
- package/src/cli/vcs-repo-helper.mts +15 -1
- package/tsconfig.test.tsbuildinfo +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/vcs-gib_test_output.md +43 -24
package/README.md
CHANGED
|
@@ -3,17 +3,24 @@
|
|
|
3
3
|
> **Decentralized Version Control System (`ibgib` VCS)**
|
|
4
4
|
> Built on content-addressed, cryptographic Merkle DAG hypergraphs (`ib^gib`).
|
|
5
5
|
|
|
6
|
-
`vcs-gib` provides
|
|
6
|
+
`vcs-gib` provides the concrete Node.js command-line interface (CLI) and runtime host for the isomorphic `@ibgib/core-gib` VCS engine. It bridges the pure Merkle hypergraph version control system with physical operating system filesystems, POSIX shells, and autonomous agent toolchains.
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
## 🏛️ Architecture
|
|
10
|
+
## 🏛️ Node.js Concretization & CLI Architecture
|
|
11
11
|
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
12
|
+
`@ibgib/vcs-gib` concretizes the abstract `@ibgib/core-gib` VCS engine by supplying:
|
|
13
|
+
|
|
14
|
+
1. **Concrete Node Filesystem Spaces**:
|
|
15
|
+
- `NodeFilesystemSpace_V1`: Houses `.vcsgib/ibgib/` storage (`localSpace` and branch spaces `b2s_<branchName>`).
|
|
16
|
+
- `NodeWorkspaceProjectionSpace_V1`: Manages physical working tree directories, scanning files on disk, and projecting Merkle item snapshots to the physical filesystem.
|
|
17
|
+
2. **Upward `.vcsgib` Discovery (`openVcsRepository`)**:
|
|
18
|
+
- Walks upward from `process.cwd()` to discover `.vcsgib`, dynamically resolving `repoRoot`, contextual branches, and worktree projections (`b/<branchName>/`).
|
|
19
|
+
3. **Command Dispatch & Terminal Reporting**:
|
|
20
|
+
- CLI command handlers (`cli-status-cmd`, `cli-commit-cmd`, `cli-log-cmd`, etc.) map terminal arguments to `repo.<cmd>()` calls and render human- and agent-friendly colored console outputs.
|
|
21
|
+
|
|
22
|
+
For the core isomorphic Merkle graph specifications, in-band index structure, multi-space branching model, and comment system mechanics, see:
|
|
23
|
+
👉 **[`@ibgib/core-gib` VCS Core Engine README](../../libs/core-gib/src/vcs/README.md)**
|
|
17
24
|
|
|
18
25
|
---
|
|
19
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-repo-helper.d.mts","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"vcs-repo-helper.d.mts","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,aAAa,EAAmC,MAAM,6CAA6C,CAAC;AAY7G,MAAM,WAAW,qBAAqB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,iBAAiB,CAAC,EACpC,SAAyB,EACzB,aAAyB,EACzB,UAAU,GACb,GAAE,qBAA0B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAyE/D"}
|
|
@@ -51,11 +51,21 @@ export async function openVcsRepository({ targetDir = process.cwd(), vcsFolderNa
|
|
|
51
51
|
vcsFolderName,
|
|
52
52
|
backingSpace: activeSpace,
|
|
53
53
|
});
|
|
54
|
+
const fnGetWorkspaceProjectionSpace = async ({ worktreeDir, backingSpace, }) => {
|
|
55
|
+
const { space } = await getOrCreateWorkspaceProjectionSpace({
|
|
56
|
+
metaspace,
|
|
57
|
+
workspaceRoot: worktreeDir,
|
|
58
|
+
vcsFolderName,
|
|
59
|
+
backingSpace,
|
|
60
|
+
});
|
|
61
|
+
return space;
|
|
62
|
+
};
|
|
54
63
|
// 5. Construct domain facade
|
|
55
64
|
const repo = new VcsRepository({
|
|
56
65
|
metaspace,
|
|
57
66
|
localSpace,
|
|
58
67
|
workspaceSpace,
|
|
68
|
+
fnGetWorkspaceProjectionSpace,
|
|
59
69
|
repoRoot,
|
|
60
70
|
vcsFolderName,
|
|
61
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-repo-helper.mjs","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"vcs-repo-helper.mjs","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.mts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibgib/vcs-gib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"prepare:publish": "npm version patch && node ../../build/dist/concrete-build/build-vcs-gib.mjs --prod && npm run pack"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@ibgib/helper-gib": "^0.0.
|
|
23
|
-
"@ibgib/ts-gib": "^0.5.
|
|
24
|
-
"@ibgib/encrypt-gib": "^0.3.
|
|
25
|
-
"@ibgib/core-gib": "^0.1.
|
|
26
|
-
"@ibgib/node-gib": "^0.0.
|
|
22
|
+
"@ibgib/helper-gib": "^0.0.39",
|
|
23
|
+
"@ibgib/ts-gib": "^0.5.36",
|
|
24
|
+
"@ibgib/encrypt-gib": "^0.3.3",
|
|
25
|
+
"@ibgib/core-gib": "^0.1.80",
|
|
26
|
+
"@ibgib/node-gib": "^0.0.25"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @module cli-e2e.respec
|
|
3
3
|
*
|
|
4
4
|
* End-to-End CLI Integration Spec for @ibgib/vcs-gib.
|
|
5
|
+
*
|
|
5
6
|
* Executes full lifecycle: vcs init -> vcs status -> vcs add -> vcs commit -> vcs log -> vcs branch -> vcs checkout.
|
|
6
7
|
*/
|
|
7
8
|
|
|
@@ -9,7 +10,7 @@ import path from 'node:path';
|
|
|
9
10
|
import fs from 'node:fs/promises';
|
|
10
11
|
|
|
11
12
|
import {
|
|
12
|
-
respecfully, ifWe, ifWeMight, iReckon
|
|
13
|
+
respecfully, ifWe, ifWeMight, iReckon, // don't remove ifWe/ifWeMight even if unused
|
|
13
14
|
} from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
14
15
|
|
|
15
16
|
import { main } from './vcs-cli-main.mjs';
|
|
@@ -21,7 +22,7 @@ import { executeLogCmd } from './commands/cli-log-cmd.mjs';
|
|
|
21
22
|
import { executeBranchCmd } from './commands/cli-branch-cmd.mjs';
|
|
22
23
|
import { executeCheckoutCmd } from './commands/cli-checkout-cmd.mjs';
|
|
23
24
|
import { bootstrapVcsMetaspace } from '../bootstrap/node-bootstrap.mjs';
|
|
24
|
-
import {
|
|
25
|
+
import { getB2tFSIndexIbGib } from '@ibgib/core-gib/dist/vcs/index/index-helper.mjs';
|
|
25
26
|
|
|
26
27
|
const lc = `[apps/vcs-gib/src/cli/cli-e2e.respec.mts]`;
|
|
27
28
|
|
|
@@ -107,11 +108,11 @@ await respecfully(lc, `Full E2E CLI Integration Spec`, async () => {
|
|
|
107
108
|
|
|
108
109
|
iReckon(lc, addRes.stagedCount >= 2).isGonnaBeTrue();
|
|
109
110
|
|
|
110
|
-
const { localSpace: e2eSpaceAdd,
|
|
111
|
+
const { localSpace: e2eSpaceAdd, metaspace: e2eMetaspaceAdd } = await bootstrapVcsMetaspace({
|
|
111
112
|
repoPath: testDir,
|
|
112
113
|
vcsFolderName,
|
|
113
114
|
});
|
|
114
|
-
const e2eIndexAdd = await
|
|
115
|
+
const e2eIndexAdd = await getB2tFSIndexIbGib({ space: e2eSpaceAdd, metaspace: e2eMetaspaceAdd });
|
|
115
116
|
iReckon(lc, Boolean(e2eIndexAdd?.data?.staged_item && e2eIndexAdd.data.staged_item.length >= 2)).isGonnaBeTrue();
|
|
116
117
|
iReckon(lc, e2eIndexAdd?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
117
118
|
|
|
@@ -130,11 +131,11 @@ await respecfully(lc, `Full E2E CLI Integration Spec`, async () => {
|
|
|
130
131
|
quiet: true,
|
|
131
132
|
});
|
|
132
133
|
|
|
133
|
-
const { localSpace: e2eSpaceCommit,
|
|
134
|
+
const { localSpace: e2eSpaceCommit, metaspace: e2eMetaspaceCommit } = await bootstrapVcsMetaspace({
|
|
134
135
|
repoPath: testDir,
|
|
135
136
|
vcsFolderName,
|
|
136
137
|
});
|
|
137
|
-
const e2eIndexCommit = await
|
|
138
|
+
const e2eIndexCommit = await getB2tFSIndexIbGib({ space: e2eSpaceCommit, metaspace: e2eMetaspaceCommit });
|
|
138
139
|
iReckon(lc, e2eIndexCommit?.data?.staged_item).willEqual([]);
|
|
139
140
|
iReckon(lc, e2eIndexCommit?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
140
141
|
|