refactor: hard-fork GSD -> MSD (Make Software Done)
Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD across contents and paths, upstream package/repo coordinates -> @golem15/msd-core and golem15com/msd-core. Deep links into upstream history, sibling upstream packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is. Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line, package/plugin identity, regenerated lockfile, install-tree fixtures, derived registries and benchmark baseline; migration checksum baseline re-locked (MSD keeps its own install state, so no install had applied the old sums); sort-order and regex-escaped expectations in tests adjusted.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
*
|
||||
* Locks in Antigravity as the Declarative-CLI reference host driven through the
|
||||
* PUBLIC Host-Integration Interface (the declarative adapter), per #1682 AC:
|
||||
* "invoke a gsd command in the Declarative-CLI reference host (Antigravity)
|
||||
* "invoke a msd command in the Declarative-CLI reference host (Antigravity)
|
||||
* driven by the embedded engine through the public interface, golden-parity
|
||||
* vs Claude."
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
* golden-install-parity (all 16 runtimes) + adapter-declarative-equivalence.
|
||||
* THIS test is the reference-host dogfood: it (1) classifies Antigravity's
|
||||
* profile via profileOf, (2) confirms the public adapter classifies it as
|
||||
* declarative, and (3) round-trips a real install proving a gsd command surface
|
||||
* declarative, and (3) round-trips a real install proving a msd command surface
|
||||
* is emitted through the same engine the adapter delegates to.
|
||||
*
|
||||
* #2096 (EoS/antigravity) additions: negotiation fails CLOSED on a corrupted
|
||||
@@ -42,9 +42,9 @@ const {
|
||||
negotiateHostCapabilities,
|
||||
PROFILE_BASELINES,
|
||||
UNDOCUMENTED,
|
||||
} = require('../gsd-core/bin/lib/host-integration.cjs');
|
||||
const { validateCapability } = require('../gsd-core/bin/lib/capability-validator.cjs');
|
||||
const { createDeclarativeAdapter } = require('../gsd-core/bin/lib/adapter-declarative.cjs');
|
||||
} = require('../msd-core/bin/lib/host-integration.cjs');
|
||||
const { validateCapability } = require('../msd-core/bin/lib/capability-validator.cjs');
|
||||
const { createDeclarativeAdapter } = require('../msd-core/bin/lib/adapter-declarative.cjs');
|
||||
const { cleanup } = require('./helpers.cjs');
|
||||
const { walk, runMinimalInstall, BUILD_SCRIPT } = require('./helpers/install-shared.cjs');
|
||||
|
||||
@@ -76,16 +76,16 @@ test('the public declarative adapter classifies Antigravity as a declarative hos
|
||||
assert.equal(typeof adapter.uninstall, 'function');
|
||||
});
|
||||
|
||||
test('a real Antigravity install emits a gsd command/skill surface (invocable)', () => {
|
||||
test('a real Antigravity install emits a msd command/skill surface (invocable)', () => {
|
||||
const { configDir, root } = runMinimalInstall({ runtime: 'antigravity', scope: 'global' });
|
||||
try {
|
||||
const files = walk(configDir);
|
||||
assert.ok(files.length > 0, 'install must emit artifacts');
|
||||
// Antigravity uses the nested gsd-ns-* router skill layout as its command
|
||||
// surface (CONTEXT.md installer module). Assert a gsd skill/router is present.
|
||||
const gsdSurface = files.filter((f) => /gsd/i.test(path.relative(configDir, f)));
|
||||
assert.ok(gsdSurface.length > 0,
|
||||
'install must emit a gsd command/skill surface (declarative reference)');
|
||||
// Antigravity uses the nested msd-ns-* router skill layout as its command
|
||||
// surface (CONTEXT.md installer module). Assert a msd skill/router is present.
|
||||
const msdSurface = files.filter((f) => /msd/i.test(path.relative(configDir, f)));
|
||||
assert.ok(msdSurface.length > 0,
|
||||
'install must emit a msd command/skill surface (declarative reference)');
|
||||
} finally {
|
||||
cleanup(root);
|
||||
}
|
||||
@@ -117,7 +117,7 @@ test('a partial/empty antigravity descriptor degrades to the safe floor, not the
|
||||
// AC-specific: the 4 still-undocumented dispatch sub-axes must degrade to the
|
||||
// most-restrictive KNOWN value, not their optimistic value. Real values below
|
||||
// were confirmed via:
|
||||
// node -e "const {negotiateHostCapabilities}=require('./gsd-core/bin/lib/host-integration.cjs');
|
||||
// node -e "const {negotiateHostCapabilities}=require('./msd-core/bin/lib/host-integration.cjs');
|
||||
// const cap=require('./capabilities/antigravity/capability.json');
|
||||
// console.log(negotiateHostCapabilities(cap.runtime.hostIntegration).effective.dispatch)"
|
||||
// -> { namedDispatch:false, nested:false, maxDepth:0, background:false, subagentToolkit:'full', backgroundDispatch:false }
|
||||
@@ -226,7 +226,7 @@ test('no `runtime === "antigravity"` string-equality branch (nor `isAntigravity`
|
||||
const { describe: __foldDescribe } = require('node:test');
|
||||
__foldDescribe("folded:bug-3608-antigravity-update-runtime-classification (consolidation epic #1969 B3 #1972)", () => {
|
||||
/**
|
||||
* Bug #3608: /gsd:update must model Antigravity as a first-class runtime.
|
||||
* Bug #3608: /msd:update must model Antigravity as a first-class runtime.
|
||||
*
|
||||
* The installer (bin/install.js) and SDK already treat Antigravity as a distinct
|
||||
* runtime with its own config dirs, env var (ANTIGRAVITY_CONFIG_DIR), and CLI
|
||||
@@ -234,13 +234,13 @@ test('no `runtime === "antigravity"` string-equality branch (nor `isAntigravity`
|
||||
*
|
||||
* Relocation (#498): the update flow's runtime/scope detection moved out of
|
||||
* ~280 lines of inline bash in update.md into the tested projection
|
||||
* `gsd-core/bin/lib/update-context.cjs` (resolveUpdateContext). The
|
||||
* `msd-core/bin/lib/update-context.cjs` (resolveUpdateContext). The
|
||||
* antigravity-first-class contract now lives there as data + behavior, so this
|
||||
* test asserts it on the projection. The only piece still authored in update.md
|
||||
* is the execution_context path classification (prose the agent applies).
|
||||
*
|
||||
* #1928: Gemini CLI was sunset by Google on 2026-06-18 and the `gemini` runtime
|
||||
* was removed from GSD entirely (Antigravity CLI is the successor). Antigravity
|
||||
* was removed from MSD entirely (Antigravity CLI is the successor). Antigravity
|
||||
* still resolves under the shared `.gemini/antigravity*` dirs (it runs on the
|
||||
* Gemini 3 backend), so those probe entries and the ANTIGRAVITY_CONFIG_DIR env
|
||||
* var remain — but there is no longer a competing bare-`gemini` runtime to
|
||||
@@ -248,7 +248,7 @@ test('no `runtime === "antigravity"` string-equality branch (nor `isAntigravity`
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
process.env.GSD_TEST_MODE = '1';
|
||||
process.env.MSD_TEST_MODE = '1';
|
||||
|
||||
const { describe, test } = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
@@ -261,8 +261,8 @@ const {
|
||||
inferPreferredRuntime,
|
||||
envRuntimeDirs,
|
||||
resolveUpdateContext,
|
||||
} = require(path.join(ROOT, 'gsd-core', 'bin', 'lib', 'update-context.cjs'));
|
||||
const UPDATE_MD = path.join(ROOT, 'gsd-core', 'workflows', 'update.md');
|
||||
} = require(path.join(ROOT, 'msd-core', 'bin', 'lib', 'update-context.cjs'));
|
||||
const UPDATE_MD = path.join(ROOT, 'msd-core', 'workflows', 'update.md');
|
||||
|
||||
function runtimeOrder() {
|
||||
return RUNTIME_DIRS.map(([rt]) => rt);
|
||||
@@ -314,15 +314,15 @@ describe('bug #3608 / #498: update-context models Antigravity as a first-class r
|
||||
const normKey = (p) => path.resolve(p).replace(/\\/g, '/').toLowerCase();
|
||||
const HOME = '/home/u';
|
||||
const agDir = path.join(HOME, '.gemini', 'antigravity');
|
||||
const verFile = normKey(path.join(agDir, 'gsd-core', 'VERSION'));
|
||||
const markerFile = normKey(path.join(agDir, 'gsd-core', 'workflows', 'update.md'));
|
||||
const verFile = normKey(path.join(agDir, 'msd-core', 'VERSION'));
|
||||
const markerFile = normKey(path.join(agDir, 'msd-core', 'workflows', 'update.md'));
|
||||
const fakeFs = {
|
||||
exists: (p) => normKey(p) === verFile || normKey(p) === markerFile,
|
||||
readFile: (p) => (normKey(p) === verFile ? '1.40.0\n' : null),
|
||||
};
|
||||
const r = resolveUpdateContext({ home: HOME, cwd: path.resolve('/work'), env: {}, fs: fakeFs });
|
||||
assert.equal(r.runtime, 'antigravity');
|
||||
assert.equal(normKey(r.gsdDir), normKey(agDir));
|
||||
assert.equal(normKey(r.msdDir), normKey(agDir));
|
||||
});
|
||||
|
||||
test('update.md execution_context classification lists antigravity paths and no longer classifies bare /.gemini/ as gemini (#1928)', () => {
|
||||
@@ -344,7 +344,7 @@ describe('bug #3608 / #498: update-context models Antigravity as a first-class r
|
||||
const { describe: __foldDescribe } = require('node:test');
|
||||
__foldDescribe("folded:bug-503-update-agent-antigravity-detection (consolidation epic #1969 B3 #1972)", () => {
|
||||
'use strict';
|
||||
process.env.GSD_TEST_MODE = '1';
|
||||
process.env.MSD_TEST_MODE = '1';
|
||||
|
||||
// allow-test-rule: source-text-is-the-product (see #503)
|
||||
// update.md's embedded classifier + cache-clear loop are workflow text the
|
||||
@@ -356,10 +356,10 @@ process.env.GSD_TEST_MODE = '1';
|
||||
// Per CONTRIBUTING.md exception matrix.
|
||||
|
||||
/**
|
||||
* Bug #503: /gsd:update misclassifies local Antigravity (.agent) installs as claude
|
||||
* Bug #503: /msd:update misclassifies local Antigravity (.agent) installs as claude
|
||||
*
|
||||
* The installer places a LOCAL Antigravity install in ./.agent/
|
||||
* (bin/install.js: getDirName('antigravity') === '.agent'). The /gsd:update
|
||||
* (bin/install.js: getDirName('antigravity') === '.agent'). The /msd:update
|
||||
* detection cascade must map .agent -> antigravity across three surfaces:
|
||||
* 1. the execution_context path classifier (update.md prose),
|
||||
* 2. the RUNTIME_DIRS candidate table (now in the update-context projection),
|
||||
@@ -377,11 +377,11 @@ const path = require('path');
|
||||
|
||||
const ROOT = path.join(__dirname, '..');
|
||||
const UPDATE_MD = fs.readFileSync(
|
||||
path.join(ROOT, 'gsd-core', 'workflows', 'update.md'),
|
||||
path.join(ROOT, 'msd-core', 'workflows', 'update.md'),
|
||||
'utf-8',
|
||||
);
|
||||
const { resolveUpdateContext } = require(
|
||||
path.join(ROOT, 'gsd-core', 'bin', 'lib', 'update-context.cjs'),
|
||||
path.join(ROOT, 'msd-core', 'bin', 'lib', 'update-context.cjs'),
|
||||
);
|
||||
|
||||
function normKey(p) { return path.resolve(p).replace(/\\/g, '/').toLowerCase(); }
|
||||
@@ -394,14 +394,14 @@ function fakeFs(files) {
|
||||
};
|
||||
}
|
||||
|
||||
describe('/gsd:update detects local Antigravity (.agent / .agents) installs (#503 / #791)', () => {
|
||||
describe('/msd:update detects local Antigravity (.agent / .agents) installs (#503 / #791)', () => {
|
||||
test('projection resolves a LOCAL ./.agents install to the antigravity runtime (#791 canonical)', () => {
|
||||
const HOME = '/home/u';
|
||||
const CWD = '/work/proj';
|
||||
const agentsDir = `${CWD}/.agents`;
|
||||
const ffs = fakeFs({
|
||||
[`${agentsDir}/gsd-core/VERSION`]: '1.50.0\n',
|
||||
[`${agentsDir}/gsd-core/workflows/update.md`]: 'x',
|
||||
[`${agentsDir}/msd-core/VERSION`]: '1.50.0\n',
|
||||
[`${agentsDir}/msd-core/workflows/update.md`]: 'x',
|
||||
});
|
||||
const r = resolveUpdateContext({ home: HOME, cwd: CWD, env: {}, fs: ffs });
|
||||
assert.equal(
|
||||
@@ -418,8 +418,8 @@ describe('/gsd:update detects local Antigravity (.agent / .agents) installs (#50
|
||||
const CWD = '/work/proj';
|
||||
const agentDir = `${CWD}/.agent`;
|
||||
const ffs = fakeFs({
|
||||
[`${agentDir}/gsd-core/VERSION`]: '1.40.0\n',
|
||||
[`${agentDir}/gsd-core/workflows/update.md`]: 'x',
|
||||
[`${agentDir}/msd-core/VERSION`]: '1.40.0\n',
|
||||
[`${agentDir}/msd-core/workflows/update.md`]: 'x',
|
||||
});
|
||||
const r = resolveUpdateContext({ home: HOME, cwd: CWD, env: {}, fs: ffs });
|
||||
assert.equal(
|
||||
|
||||
Reference in New Issue
Block a user