@acidicsoil/portable-capabilities 0.1.10 → 0.1.13
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/CHANGELOG.md +18 -0
- package/README.md +12 -9
- package/dist-release/cli.js +153 -142
- package/dist-release/cli.js.map +3 -3
- package/dist-release/index.js +153 -142
- package/dist-release/index.js.map +3 -3
- package/package.json +2 -1
package/dist-release/cli.js
CHANGED
|
@@ -1997,13 +1997,13 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1997
1997
|
* @param {string} source - expected values are default/config/env/cli/implied
|
|
1998
1998
|
* @return {Command} `this` command for chaining
|
|
1999
1999
|
*/
|
|
2000
|
-
setOptionValueWithSource(key, value,
|
|
2000
|
+
setOptionValueWithSource(key, value, source2) {
|
|
2001
2001
|
if (this._storeOptionsAsProperties) {
|
|
2002
2002
|
this[key] = value;
|
|
2003
2003
|
} else {
|
|
2004
2004
|
this._optionValues[key] = value;
|
|
2005
2005
|
}
|
|
2006
|
-
this._optionValueSources[key] =
|
|
2006
|
+
this._optionValueSources[key] = source2;
|
|
2007
2007
|
return this;
|
|
2008
2008
|
}
|
|
2009
2009
|
/**
|
|
@@ -2024,13 +2024,13 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2024
2024
|
* @return {string}
|
|
2025
2025
|
*/
|
|
2026
2026
|
getOptionValueSourceWithGlobals(key) {
|
|
2027
|
-
let
|
|
2027
|
+
let source2;
|
|
2028
2028
|
this._getCommandAndAncestors().forEach((cmd) => {
|
|
2029
2029
|
if (cmd.getOptionValueSource(key) !== void 0) {
|
|
2030
|
-
|
|
2030
|
+
source2 = cmd.getOptionValueSource(key);
|
|
2031
2031
|
}
|
|
2032
2032
|
});
|
|
2033
|
-
return
|
|
2033
|
+
return source2;
|
|
2034
2034
|
}
|
|
2035
2035
|
/**
|
|
2036
2036
|
* Get user arguments from implied or explicit arguments.
|
|
@@ -2900,8 +2900,8 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2900
2900
|
const getErrorMessage = (option2) => {
|
|
2901
2901
|
const bestOption = findBestOptionFromValue(option2);
|
|
2902
2902
|
const optionKey = bestOption.attributeName();
|
|
2903
|
-
const
|
|
2904
|
-
if (
|
|
2903
|
+
const source2 = this.getOptionValueSource(optionKey);
|
|
2904
|
+
if (source2 === "env") {
|
|
2905
2905
|
return `environment variable '${bestOption.envVar}'`;
|
|
2906
2906
|
}
|
|
2907
2907
|
return `option '${bestOption.flags}'`;
|
|
@@ -7802,11 +7802,11 @@ var getToStream = (destination7, to = "stdin") => {
|
|
|
7802
7802
|
}
|
|
7803
7803
|
return destinationStream;
|
|
7804
7804
|
};
|
|
7805
|
-
var getFromStream = (
|
|
7805
|
+
var getFromStream = (source2, from = "stdout") => {
|
|
7806
7806
|
const isWritable = false;
|
|
7807
|
-
const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(
|
|
7807
|
+
const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(source2);
|
|
7808
7808
|
const fdNumber = getFdNumber(fileDescriptors, from, isWritable);
|
|
7809
|
-
const sourceStream = fdNumber === "all" ?
|
|
7809
|
+
const sourceStream = fdNumber === "all" ? source2.all : source2.stdio[fdNumber];
|
|
7810
7810
|
if (sourceStream === null || sourceStream === void 0) {
|
|
7811
7811
|
throw new TypeError(getInvalidStdioOptionMessage(fdNumber, from, options, isWritable));
|
|
7812
7812
|
}
|
|
@@ -9508,17 +9508,17 @@ var PASSTHROUGH_LISTENERS_PER_STREAM = 1;
|
|
|
9508
9508
|
|
|
9509
9509
|
// node_modules/.pnpm/execa@10.0.0/node_modules/execa/lib/io/pipeline.js
|
|
9510
9510
|
import { finished as finished3 } from "node:stream/promises";
|
|
9511
|
-
var pipeStreams = (
|
|
9512
|
-
|
|
9513
|
-
onSourceFinish(
|
|
9514
|
-
onDestinationFinish(
|
|
9511
|
+
var pipeStreams = (source2, destination7) => {
|
|
9512
|
+
source2.pipe(destination7);
|
|
9513
|
+
onSourceFinish(source2, destination7);
|
|
9514
|
+
onDestinationFinish(source2, destination7);
|
|
9515
9515
|
};
|
|
9516
|
-
var onSourceFinish = async (
|
|
9517
|
-
if (isStandardStream(
|
|
9516
|
+
var onSourceFinish = async (source2, destination7) => {
|
|
9517
|
+
if (isStandardStream(source2) || isStandardStream(destination7)) {
|
|
9518
9518
|
return;
|
|
9519
9519
|
}
|
|
9520
9520
|
try {
|
|
9521
|
-
await finished3(
|
|
9521
|
+
await finished3(source2, { cleanup: true, readable: true, writable: false });
|
|
9522
9522
|
} catch {
|
|
9523
9523
|
}
|
|
9524
9524
|
endDestinationStream(destination7);
|
|
@@ -9528,19 +9528,19 @@ var endDestinationStream = (destination7) => {
|
|
|
9528
9528
|
destination7.end();
|
|
9529
9529
|
}
|
|
9530
9530
|
};
|
|
9531
|
-
var onDestinationFinish = async (
|
|
9532
|
-
if (isStandardStream(
|
|
9531
|
+
var onDestinationFinish = async (source2, destination7) => {
|
|
9532
|
+
if (isStandardStream(source2) || isStandardStream(destination7)) {
|
|
9533
9533
|
return;
|
|
9534
9534
|
}
|
|
9535
9535
|
try {
|
|
9536
9536
|
await finished3(destination7, { cleanup: true, readable: false, writable: true });
|
|
9537
9537
|
} catch {
|
|
9538
9538
|
}
|
|
9539
|
-
abortSourceStream(
|
|
9539
|
+
abortSourceStream(source2);
|
|
9540
9540
|
};
|
|
9541
|
-
var abortSourceStream = (
|
|
9542
|
-
if (
|
|
9543
|
-
|
|
9541
|
+
var abortSourceStream = (source2) => {
|
|
9542
|
+
if (source2.readable) {
|
|
9543
|
+
source2.destroy();
|
|
9544
9544
|
}
|
|
9545
9545
|
};
|
|
9546
9546
|
|
|
@@ -10264,7 +10264,7 @@ var createWritableStream = (subprocess, writableOptions) => Writable3.toWeb(subp
|
|
|
10264
10264
|
var createTransformStream = (subprocess, duplexOptions) => Duplex3.toWeb(subprocess.duplex(duplexOptions));
|
|
10265
10265
|
|
|
10266
10266
|
// node_modules/.pnpm/execa@10.0.0/node_modules/execa/lib/pipe/pipe-arguments.js
|
|
10267
|
-
var normalizePipeArguments = ({ source:
|
|
10267
|
+
var normalizePipeArguments = ({ source: source2, sourcePromise, boundOptions, createNested }, ...pipeArguments) => {
|
|
10268
10268
|
const startTime = getStartTime();
|
|
10269
10269
|
const {
|
|
10270
10270
|
destination: destination7,
|
|
@@ -10273,8 +10273,8 @@ var normalizePipeArguments = ({ source: source3, sourcePromise, boundOptions, cr
|
|
|
10273
10273
|
from,
|
|
10274
10274
|
unpipeSignal
|
|
10275
10275
|
} = getDestinationStream(boundOptions, createNested, pipeArguments);
|
|
10276
|
-
const { sourceStream, sourceError } = getSourceStream(
|
|
10277
|
-
const { options: sourceOptions, fileDescriptors } = SUBPROCESS_OPTIONS.get(
|
|
10276
|
+
const { sourceStream, sourceError } = getSourceStream(source2, from);
|
|
10277
|
+
const { options: sourceOptions, fileDescriptors } = SUBPROCESS_OPTIONS.get(source2);
|
|
10278
10278
|
return {
|
|
10279
10279
|
sourcePromise,
|
|
10280
10280
|
sourceStream,
|
|
@@ -10327,9 +10327,9 @@ var getDestination = (boundOptions, createNested, firstArgument, ...pipeArgument
|
|
|
10327
10327
|
throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${firstArgument}`);
|
|
10328
10328
|
};
|
|
10329
10329
|
var mapDestinationArguments = ({ options }) => ({ options: { ...options, stdin: "pipe", piped: true } });
|
|
10330
|
-
var getSourceStream = (
|
|
10330
|
+
var getSourceStream = (source2, from) => {
|
|
10331
10331
|
try {
|
|
10332
|
-
const sourceStream = getFromStream(
|
|
10332
|
+
const sourceStream = getFromStream(source2, from);
|
|
10333
10333
|
return { sourceStream };
|
|
10334
10334
|
} catch (error) {
|
|
10335
10335
|
return { sourceError: error };
|
|
@@ -11733,7 +11733,7 @@ function writeEnvelope(envelope, format2) {
|
|
|
11733
11733
|
}
|
|
11734
11734
|
|
|
11735
11735
|
// packages/cli/src/release.ts
|
|
11736
|
-
var cliVersion = true ? "0.1.
|
|
11736
|
+
var cliVersion = true ? "0.1.13" : createRequire(import.meta.url)("../../../package.json").version;
|
|
11737
11737
|
|
|
11738
11738
|
// packages/adapters/src/antigravity/materialize.ts
|
|
11739
11739
|
import { resolve as resolve2 } from "node:path";
|
|
@@ -11892,7 +11892,7 @@ var antigravityRuntimeDescriptor = {
|
|
|
11892
11892
|
schemaVersion: "1.0",
|
|
11893
11893
|
id: "antigravity",
|
|
11894
11894
|
aliases: ["google-antigravity", "antigravity-cli"],
|
|
11895
|
-
supportedVersions: [">=2.0.0"],
|
|
11895
|
+
supportedVersions: [">=1.1.4 <2.0.0"],
|
|
11896
11896
|
locations: [
|
|
11897
11897
|
{
|
|
11898
11898
|
id: "antigravity-project-skills",
|
|
@@ -11991,11 +11991,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
11991
11991
|
evidenceState: "source-observed"
|
|
11992
11992
|
},
|
|
11993
11993
|
{
|
|
11994
|
-
id: "antigravity-
|
|
11994
|
+
id: "antigravity-workspace-rules",
|
|
11995
11995
|
semanticKind: "rule",
|
|
11996
11996
|
integrationMode: "declarative",
|
|
11997
11997
|
adapterId: markdown,
|
|
11998
|
-
discovery: "
|
|
11998
|
+
discovery: "Workspace rules may be discovered from .agents/rules when verified for a supported client.",
|
|
11999
11999
|
invocation: "Rules apply according to their activation mode.",
|
|
12000
12000
|
precedence: ["workspace", "global"],
|
|
12001
12001
|
evidenceClaimIds: ["antigravity.cli.discovery.rules"],
|
|
@@ -12003,11 +12003,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
12003
12003
|
evidenceState: "source-observed"
|
|
12004
12004
|
},
|
|
12005
12005
|
{
|
|
12006
|
-
id: "antigravity-
|
|
12006
|
+
id: "antigravity-workspace-agents",
|
|
12007
12007
|
semanticKind: "agent",
|
|
12008
12008
|
integrationMode: "declarative",
|
|
12009
12009
|
adapterId: markdown,
|
|
12010
|
-
discovery: "
|
|
12010
|
+
discovery: "Workspace agents may be discovered from .agents/agents when verified for a supported client.",
|
|
12011
12011
|
invocation: "Invoke through the native subagent interface.",
|
|
12012
12012
|
precedence: ["workspace", "global"],
|
|
12013
12013
|
evidenceClaimIds: ["antigravity.cli.discovery.agents"],
|
|
@@ -12015,11 +12015,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
12015
12015
|
evidenceState: "source-observed"
|
|
12016
12016
|
},
|
|
12017
12017
|
{
|
|
12018
|
-
id: "antigravity-
|
|
12018
|
+
id: "antigravity-workspace-hooks",
|
|
12019
12019
|
semanticKind: "hook",
|
|
12020
12020
|
integrationMode: "declarative",
|
|
12021
12021
|
adapterId: hook,
|
|
12022
|
-
discovery: "hooks.json
|
|
12022
|
+
discovery: "Workspace hooks may be discovered from hooks.json when verified for a supported client.",
|
|
12023
12023
|
invocation: "Hooks participate in native tool and invocation events.",
|
|
12024
12024
|
precedence: ["workspace", "global", "plugin"],
|
|
12025
12025
|
evidenceClaimIds: ["antigravity.cli.hooks"],
|
|
@@ -12027,11 +12027,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
12027
12027
|
evidenceState: "source-observed"
|
|
12028
12028
|
},
|
|
12029
12029
|
{
|
|
12030
|
-
id: "antigravity-
|
|
12030
|
+
id: "antigravity-workspace-mcp",
|
|
12031
12031
|
semanticKind: "mcp",
|
|
12032
12032
|
integrationMode: "declarative",
|
|
12033
12033
|
adapterId: mcp,
|
|
12034
|
-
discovery: "mcp_config.json
|
|
12034
|
+
discovery: "Workspace MCP may be discovered from mcp_config.json when verified for a supported client.",
|
|
12035
12035
|
invocation: "MCP servers are exposed as native tools.",
|
|
12036
12036
|
precedence: ["workspace", "global"],
|
|
12037
12037
|
evidenceClaimIds: ["antigravity.cli.mcp"],
|
|
@@ -12079,148 +12079,148 @@ var antigravityRuntimeDescriptor = {
|
|
|
12079
12079
|
// packages/adapters/src/antigravity/runtime-evidence.ts
|
|
12080
12080
|
import { createHash as createHash7 } from "node:crypto";
|
|
12081
12081
|
var digest2 = (value) => createHash7("sha256").update(value).digest("hex");
|
|
12082
|
-
var retrievedAt = "2026-08-
|
|
12083
|
-
var
|
|
12084
|
-
var
|
|
12085
|
-
|
|
12086
|
-
|
|
12087
|
-
|
|
12088
|
-
|
|
12089
|
-
|
|
12090
|
-
|
|
12091
|
-
|
|
12092
|
-
|
|
12093
|
-
|
|
12094
|
-
|
|
12095
|
-
|
|
12096
|
-
|
|
12097
|
-
|
|
12098
|
-
|
|
12099
|
-
|
|
12100
|
-
|
|
12101
|
-
|
|
12082
|
+
var retrievedAt = "2026-08-15T00:00:00.000Z";
|
|
12083
|
+
var cliVersionRange = ">=1.1.4 <2.0.0";
|
|
12084
|
+
var cliDocs = "https://codelabs.developers.google.com/antigravity/how-to-create-agent-skills-for-antigravity-cli";
|
|
12085
|
+
var productDocs = "https://www.antigravity.google/product/antigravity-cli";
|
|
12086
|
+
var sourceClaim = (id, category, subject, assertion, locator, options = {}) => {
|
|
12087
|
+
const state = options.state ?? "source-observed";
|
|
12088
|
+
return {
|
|
12089
|
+
schemaVersion: "1.0",
|
|
12090
|
+
id,
|
|
12091
|
+
runtimeId: "antigravity",
|
|
12092
|
+
category,
|
|
12093
|
+
subject,
|
|
12094
|
+
assertion,
|
|
12095
|
+
versionRange: options.versionRange ?? cliVersionRange,
|
|
12096
|
+
sourceType: "official-docs",
|
|
12097
|
+
source: options.source ?? cliDocs,
|
|
12098
|
+
sourceLocator: locator,
|
|
12099
|
+
sourceDigest: digest2(`${id}:${assertion}:${locator}`),
|
|
12100
|
+
state,
|
|
12101
|
+
confidence: state === "unknown" ? "low" : "high",
|
|
12102
|
+
verificationStatus: state === "unknown" ? "unverified" : "verified",
|
|
12103
|
+
stability: state === "unknown" ? "version-gated" : "stable",
|
|
12104
|
+
verifiedAt: retrievedAt
|
|
12105
|
+
};
|
|
12106
|
+
};
|
|
12102
12107
|
var antigravityRuntimeEvidence = [
|
|
12103
12108
|
sourceClaim(
|
|
12104
12109
|
"antigravity.location.project-skills",
|
|
12105
12110
|
"location",
|
|
12106
12111
|
"workspace skill root",
|
|
12107
|
-
"Antigravity discovers workspace skills beneath .agents/skills.",
|
|
12108
|
-
"
|
|
12112
|
+
"Antigravity CLI discovers workspace skills beneath .agents/skills.",
|
|
12113
|
+
"Skill location: .agents/skills/<skill-name>/SKILL.md"
|
|
12109
12114
|
),
|
|
12110
12115
|
sourceClaim(
|
|
12111
12116
|
"antigravity.location.project-rules",
|
|
12112
12117
|
"location",
|
|
12113
12118
|
"workspace rule root",
|
|
12114
|
-
"
|
|
12115
|
-
"
|
|
12119
|
+
"The native workspace rule path is not established by the verified CLI skill documentation.",
|
|
12120
|
+
"Workspace rule path: not established",
|
|
12121
|
+
{ source: productDocs, state: "unknown" }
|
|
12116
12122
|
),
|
|
12117
12123
|
sourceClaim(
|
|
12118
12124
|
"antigravity.location.project-agents",
|
|
12119
12125
|
"location",
|
|
12120
12126
|
"workspace agent root",
|
|
12121
|
-
"
|
|
12122
|
-
"
|
|
12127
|
+
"The native workspace agent path is not established by the verified CLI skill documentation.",
|
|
12128
|
+
"Workspace agent path: not established",
|
|
12129
|
+
{ source: productDocs, state: "unknown" }
|
|
12123
12130
|
),
|
|
12124
12131
|
sourceClaim(
|
|
12125
12132
|
"antigravity.location.project-hooks",
|
|
12126
12133
|
"location",
|
|
12127
12134
|
"workspace hook config",
|
|
12128
|
-
"
|
|
12129
|
-
"
|
|
12135
|
+
"The native workspace hook path is not established by the verified CLI skill documentation.",
|
|
12136
|
+
"Workspace hook path: not established",
|
|
12137
|
+
{ source: productDocs, state: "unknown" }
|
|
12130
12138
|
),
|
|
12131
12139
|
sourceClaim(
|
|
12132
12140
|
"antigravity.location.project-mcp",
|
|
12133
12141
|
"location",
|
|
12134
12142
|
"workspace MCP config",
|
|
12135
|
-
"
|
|
12136
|
-
"
|
|
12143
|
+
"The native workspace MCP configuration path is not established by the verified CLI skill documentation.",
|
|
12144
|
+
"Workspace MCP path: not established",
|
|
12145
|
+
{ source: productDocs, state: "unknown" }
|
|
12137
12146
|
),
|
|
12138
12147
|
sourceClaim(
|
|
12139
12148
|
"antigravity.location.plugins",
|
|
12140
12149
|
"location",
|
|
12141
12150
|
"CLI plugin staging root",
|
|
12142
|
-
"
|
|
12143
|
-
"
|
|
12151
|
+
"The native CLI plugin staging path is not established by the verified CLI skill documentation.",
|
|
12152
|
+
"CLI plugin staging path: not established",
|
|
12153
|
+
{ source: productDocs, state: "unknown" }
|
|
12144
12154
|
),
|
|
12145
12155
|
sourceClaim(
|
|
12146
12156
|
"antigravity.workflow.storage",
|
|
12147
12157
|
"location",
|
|
12148
12158
|
"workflow storage",
|
|
12149
12159
|
"Workflow physical storage path is not established by primary public documentation.",
|
|
12150
|
-
"
|
|
12151
|
-
"unknown"
|
|
12160
|
+
"Workflow storage path: not established",
|
|
12161
|
+
{ source: productDocs, state: "unknown" }
|
|
12152
12162
|
),
|
|
12153
12163
|
sourceClaim(
|
|
12154
12164
|
"antigravity.cli.discovery.skills",
|
|
12155
12165
|
"discovery",
|
|
12156
12166
|
"CLI skill discovery",
|
|
12157
|
-
"Antigravity CLI discovers project skills from .agents/skills.",
|
|
12158
|
-
"
|
|
12159
|
-
"source-observed",
|
|
12160
|
-
"cli"
|
|
12167
|
+
"Antigravity CLI automatically discovers project skills from .agents/skills.",
|
|
12168
|
+
"Skill discovery and /skills listing"
|
|
12161
12169
|
),
|
|
12162
12170
|
sourceClaim(
|
|
12163
12171
|
"antigravity.cli.invocation.skills",
|
|
12164
12172
|
"invocation",
|
|
12165
12173
|
"CLI skill invocation",
|
|
12166
|
-
"Antigravity CLI
|
|
12167
|
-
"
|
|
12168
|
-
"source-observed",
|
|
12169
|
-
"cli"
|
|
12174
|
+
"Antigravity CLI can list and invoke a discovered skill from the project workspace.",
|
|
12175
|
+
"Launch with agy; invoke through the skill-aware CLI workflow"
|
|
12170
12176
|
),
|
|
12171
12177
|
sourceClaim(
|
|
12172
12178
|
"antigravity.ide.discovery.skills",
|
|
12173
12179
|
"discovery",
|
|
12174
12180
|
"IDE skill discovery",
|
|
12175
|
-
"
|
|
12176
|
-
"
|
|
12177
|
-
|
|
12178
|
-
"ide"
|
|
12181
|
+
"IDE skill discovery is not established by the verified CLI skill documentation.",
|
|
12182
|
+
"IDE skill discovery: not established",
|
|
12183
|
+
{ source: productDocs, state: "unknown" }
|
|
12179
12184
|
),
|
|
12180
12185
|
sourceClaim(
|
|
12181
12186
|
"antigravity.cli.discovery.rules",
|
|
12182
12187
|
"discovery",
|
|
12183
|
-
"
|
|
12184
|
-
"Workspace
|
|
12185
|
-
"
|
|
12186
|
-
|
|
12187
|
-
"2.0"
|
|
12188
|
+
"workspace rule discovery",
|
|
12189
|
+
"Workspace rule discovery is not established by the verified CLI skill documentation.",
|
|
12190
|
+
"Workspace rule discovery: not established",
|
|
12191
|
+
{ source: productDocs, state: "unknown" }
|
|
12188
12192
|
),
|
|
12189
12193
|
sourceClaim(
|
|
12190
12194
|
"antigravity.cli.discovery.agents",
|
|
12191
12195
|
"discovery",
|
|
12192
|
-
"
|
|
12193
|
-
"
|
|
12194
|
-
"
|
|
12195
|
-
|
|
12196
|
-
"2.0"
|
|
12196
|
+
"workspace agent discovery",
|
|
12197
|
+
"Workspace agent discovery is not established by the verified CLI skill documentation.",
|
|
12198
|
+
"Workspace agent discovery: not established",
|
|
12199
|
+
{ source: productDocs, state: "unknown" }
|
|
12197
12200
|
),
|
|
12198
12201
|
sourceClaim(
|
|
12199
12202
|
"antigravity.cli.hooks",
|
|
12200
12203
|
"hooks",
|
|
12201
|
-
"
|
|
12202
|
-
"Workspace
|
|
12203
|
-
"
|
|
12204
|
-
|
|
12205
|
-
"2.0"
|
|
12204
|
+
"workspace hook registration",
|
|
12205
|
+
"Workspace hook registration is not established by the verified CLI skill documentation.",
|
|
12206
|
+
"Workspace hook registration: not established",
|
|
12207
|
+
{ source: productDocs, state: "unknown" }
|
|
12206
12208
|
),
|
|
12207
12209
|
sourceClaim(
|
|
12208
12210
|
"antigravity.cli.mcp",
|
|
12209
12211
|
"mcp",
|
|
12210
|
-
"
|
|
12211
|
-
"Workspace MCP
|
|
12212
|
-
"
|
|
12213
|
-
|
|
12214
|
-
"2.0"
|
|
12212
|
+
"workspace MCP registration",
|
|
12213
|
+
"Workspace MCP registration is not established by the verified CLI skill documentation.",
|
|
12214
|
+
"Workspace MCP registration: not established",
|
|
12215
|
+
{ source: productDocs, state: "unknown" }
|
|
12215
12216
|
),
|
|
12216
12217
|
sourceClaim(
|
|
12217
12218
|
"antigravity.cli.plugins",
|
|
12218
12219
|
"plugin",
|
|
12219
12220
|
"CLI plugin registration",
|
|
12220
|
-
"CLI
|
|
12221
|
-
"
|
|
12222
|
-
|
|
12223
|
-
"cli"
|
|
12221
|
+
"CLI plugin registration is not established by the verified CLI skill documentation.",
|
|
12222
|
+
"CLI plugin registration: not established",
|
|
12223
|
+
{ source: productDocs, state: "unknown" }
|
|
12224
12224
|
)
|
|
12225
12225
|
];
|
|
12226
12226
|
|
|
@@ -13290,7 +13290,7 @@ async function prepareDCodeMaterialization(plan, root) {
|
|
|
13290
13290
|
|
|
13291
13291
|
// packages/adapters/src/dcode/runtime-descriptor.ts
|
|
13292
13292
|
var markdown3 = "materialize-markdown";
|
|
13293
|
-
var
|
|
13293
|
+
var source = "source-observed";
|
|
13294
13294
|
var dcodeRuntimeDescriptor = {
|
|
13295
13295
|
schemaVersion: "1.0",
|
|
13296
13296
|
id: "dcode",
|
|
@@ -13349,7 +13349,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13349
13349
|
precedence: ["project"],
|
|
13350
13350
|
evidenceClaimIds: ["dcode.discovery.cli-skill", "dcode.invocation.cli-skill"],
|
|
13351
13351
|
stability: "stable",
|
|
13352
|
-
evidenceState:
|
|
13352
|
+
evidenceState: source
|
|
13353
13353
|
},
|
|
13354
13354
|
{
|
|
13355
13355
|
id: "dcode-cli-instructions",
|
|
@@ -13361,7 +13361,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13361
13361
|
precedence: ["project"],
|
|
13362
13362
|
evidenceClaimIds: ["dcode.location.project-root"],
|
|
13363
13363
|
stability: "stable",
|
|
13364
|
-
evidenceState:
|
|
13364
|
+
evidenceState: source
|
|
13365
13365
|
},
|
|
13366
13366
|
{
|
|
13367
13367
|
id: "dcode-cli-sync-subagents",
|
|
@@ -13373,7 +13373,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13373
13373
|
precedence: ["project", "user"],
|
|
13374
13374
|
evidenceClaimIds: ["dcode.cli.sync-subagents"],
|
|
13375
13375
|
stability: "version-gated",
|
|
13376
|
-
evidenceState:
|
|
13376
|
+
evidenceState: source
|
|
13377
13377
|
},
|
|
13378
13378
|
{
|
|
13379
13379
|
id: "dcode-cli-memory",
|
|
@@ -13385,7 +13385,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13385
13385
|
precedence: ["project", "user"],
|
|
13386
13386
|
evidenceClaimIds: ["dcode.cli.memory"],
|
|
13387
13387
|
stability: "version-gated",
|
|
13388
|
-
evidenceState:
|
|
13388
|
+
evidenceState: source
|
|
13389
13389
|
},
|
|
13390
13390
|
{
|
|
13391
13391
|
id: "dcode-cli-mcp",
|
|
@@ -13397,7 +13397,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13397
13397
|
precedence: ["project", "user"],
|
|
13398
13398
|
evidenceClaimIds: ["dcode.cli.mcp"],
|
|
13399
13399
|
stability: "version-gated",
|
|
13400
|
-
evidenceState:
|
|
13400
|
+
evidenceState: source
|
|
13401
13401
|
},
|
|
13402
13402
|
{
|
|
13403
13403
|
id: "dcode-cli-configuration",
|
|
@@ -13409,7 +13409,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13409
13409
|
precedence: ["project", "user"],
|
|
13410
13410
|
evidenceClaimIds: ["dcode.cli.configuration"],
|
|
13411
13411
|
stability: "version-gated",
|
|
13412
|
-
evidenceState:
|
|
13412
|
+
evidenceState: source
|
|
13413
13413
|
},
|
|
13414
13414
|
{
|
|
13415
13415
|
id: "dcode-cli-advisory-hooks",
|
|
@@ -13421,7 +13421,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13421
13421
|
precedence: ["project", "user"],
|
|
13422
13422
|
evidenceClaimIds: ["dcode.hooks.advisory"],
|
|
13423
13423
|
stability: "version-gated",
|
|
13424
|
-
evidenceState:
|
|
13424
|
+
evidenceState: source
|
|
13425
13425
|
},
|
|
13426
13426
|
{
|
|
13427
13427
|
id: "dcode-sdk-tools",
|
|
@@ -13433,7 +13433,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
13433
13433
|
precedence: ["sdk"],
|
|
13434
13434
|
evidenceClaimIds: ["dcode.sdk.tools"],
|
|
13435
13435
|
stability: "version-gated",
|
|
13436
|
-
evidenceState:
|
|
13436
|
+
evidenceState: source
|
|
13437
13437
|
},
|
|
13438
13438
|
{
|
|
13439
13439
|
id: "dcode-cli-async-subagents",
|
|
@@ -15085,7 +15085,8 @@ var piRuntimeDescriptor = {
|
|
|
15085
15085
|
// packages/adapters/src/pi/runtime-evidence.ts
|
|
15086
15086
|
import { createHash as createHash13 } from "node:crypto";
|
|
15087
15087
|
var digest8 = (value) => createHash13("sha256").update(value).digest("hex");
|
|
15088
|
-
var observedAt2 = "2026-08-
|
|
15088
|
+
var observedAt2 = "2026-08-15T00:00:00.000Z";
|
|
15089
|
+
var skillsDocs = "https://pi.dev/docs/latest/skills";
|
|
15089
15090
|
var piRuntimeEvidence = [
|
|
15090
15091
|
{
|
|
15091
15092
|
schemaVersion: "1.0",
|
|
@@ -15147,13 +15148,13 @@ var piRuntimeEvidence = [
|
|
|
15147
15148
|
runtimeId: "pi",
|
|
15148
15149
|
category: "discovery",
|
|
15149
15150
|
subject: "native skill discovery",
|
|
15150
|
-
assertion: "Pi
|
|
15151
|
-
versionRange: "
|
|
15152
|
-
sourceType: "
|
|
15153
|
-
source:
|
|
15154
|
-
sourceLocator: "
|
|
15155
|
-
sourceDigest: digest8("Pi
|
|
15156
|
-
state: "
|
|
15151
|
+
assertion: "Pi discovers project skills beneath .pi/skills.",
|
|
15152
|
+
versionRange: ">=0.64.0",
|
|
15153
|
+
sourceType: "official-docs",
|
|
15154
|
+
source: skillsDocs,
|
|
15155
|
+
sourceLocator: "Project skills: .pi/skills/",
|
|
15156
|
+
sourceDigest: digest8("Pi project skills .pi/skills official docs"),
|
|
15157
|
+
state: "source-observed",
|
|
15157
15158
|
confidence: "high",
|
|
15158
15159
|
verificationStatus: "verified",
|
|
15159
15160
|
stability: "stable",
|
|
@@ -15165,13 +15166,13 @@ var piRuntimeEvidence = [
|
|
|
15165
15166
|
runtimeId: "pi",
|
|
15166
15167
|
category: "invocation",
|
|
15167
15168
|
subject: "native skill invocation",
|
|
15168
|
-
assertion: "Pi
|
|
15169
|
-
versionRange: "
|
|
15170
|
-
sourceType: "
|
|
15171
|
-
source:
|
|
15172
|
-
sourceLocator: "
|
|
15173
|
-
sourceDigest: digest8("Pi
|
|
15174
|
-
state: "
|
|
15169
|
+
assertion: "Pi loads a discovered skill when its description matches the task or the user invokes /skill:name.",
|
|
15170
|
+
versionRange: ">=0.64.0",
|
|
15171
|
+
sourceType: "official-docs",
|
|
15172
|
+
source: skillsDocs,
|
|
15173
|
+
sourceLocator: "Skill loading and invocation: /skill:name",
|
|
15174
|
+
sourceDigest: digest8("Pi skill invocation official docs"),
|
|
15175
|
+
state: "source-observed",
|
|
15175
15176
|
confidence: "high",
|
|
15176
15177
|
verificationStatus: "verified",
|
|
15177
15178
|
stability: "stable",
|
|
@@ -15437,10 +15438,10 @@ async function writeJournal(targetRoot, journal) {
|
|
|
15437
15438
|
);
|
|
15438
15439
|
await rename2(temporary, path9);
|
|
15439
15440
|
}
|
|
15440
|
-
async function copyAtomically(
|
|
15441
|
+
async function copyAtomically(source2, target, mode) {
|
|
15441
15442
|
await mkdir3(dirname3(target), { recursive: true });
|
|
15442
15443
|
const temporary = `${target}.pc-stage-${process.pid}`;
|
|
15443
|
-
await copyFile(
|
|
15444
|
+
await copyFile(source2, temporary);
|
|
15444
15445
|
await chmod(temporary, mode);
|
|
15445
15446
|
await rename2(temporary, target);
|
|
15446
15447
|
}
|
|
@@ -15459,13 +15460,13 @@ function result(operation, state, values = {}) {
|
|
|
15459
15460
|
};
|
|
15460
15461
|
}
|
|
15461
15462
|
async function backupPath(targetRoot, transactionRoot, path9) {
|
|
15462
|
-
const
|
|
15463
|
-
if (!await pathExists(
|
|
15463
|
+
const source2 = await assertNoSymlinkInPreparedPath(targetRoot, path9);
|
|
15464
|
+
if (!await pathExists(source2)) return false;
|
|
15464
15465
|
await assertNoSymlinkInPreparedPath(targetRoot, path9);
|
|
15465
15466
|
const target = join3(transactionRoot, "backup", path9);
|
|
15466
15467
|
await mkdir3(dirname3(target), { recursive: true });
|
|
15467
15468
|
await assertNoSymlinkInPreparedPath(targetRoot, path9);
|
|
15468
|
-
await copyFile(
|
|
15469
|
+
await copyFile(source2, target);
|
|
15469
15470
|
return true;
|
|
15470
15471
|
}
|
|
15471
15472
|
async function restoreTransaction(targetRoot, transactionRoot, mutations, manifestHadOriginal, options) {
|
|
@@ -15907,6 +15908,14 @@ function previewSetup(request, artifact, descriptor, claims, ownershipManifest)
|
|
|
15907
15908
|
const body = { ...plan, selectedSurfaces, conversions, conflicts };
|
|
15908
15909
|
return { ...body, digest: stableDigest(body) };
|
|
15909
15910
|
}
|
|
15911
|
+
function negotiationDiagnostics(previews) {
|
|
15912
|
+
return previews.flatMap(
|
|
15913
|
+
(preview) => preview.negotiations.filter((negotiation) => negotiation.installationMode !== "automatic").map((negotiation) => {
|
|
15914
|
+
const evidence = negotiation.evidenceClaimIds.join(", ") || "no evidence claims";
|
|
15915
|
+
return `${negotiation.intent}: ${negotiation.installationMode} (${negotiation.reason}) [${evidence}]`;
|
|
15916
|
+
})
|
|
15917
|
+
);
|
|
15918
|
+
}
|
|
15910
15919
|
function composeInstallationPlan(previews, artifacts, runtimeId) {
|
|
15911
15920
|
const first = previews[0]?.installationPlan;
|
|
15912
15921
|
if (!first) throw new Error("at least one installation plan is required");
|
|
@@ -15999,15 +16008,17 @@ async function executeSetupSelection(request, artifacts, descriptor, claims, con
|
|
|
15999
16008
|
const duplicatePath = prepared.mutations.map((mutation) => mutation.path).find((path9, index, paths) => paths.indexOf(path9) !== index);
|
|
16000
16009
|
if (duplicatePath)
|
|
16001
16010
|
throw new Error(`Selection produced duplicate prepared path: ${duplicatePath}`);
|
|
16011
|
+
const preparedDiagnostics = [
|
|
16012
|
+
...prepared.diagnostics?.map(
|
|
16013
|
+
(diagnostic6) => `${diagnostic6.kind}: ${diagnostic6.message}`
|
|
16014
|
+
) ?? [],
|
|
16015
|
+
...executionRequest.intent === "remove" ? [] : negotiationDiagnostics(previews)
|
|
16016
|
+
];
|
|
16002
16017
|
return executePreparedInstallation({
|
|
16003
16018
|
...lifecycleOptions,
|
|
16004
16019
|
preparedOperation: executionRequest.intent === "update" ? "upgrade" : executionRequest.intent === "remove" ? "remove" : "install",
|
|
16005
16020
|
preparedMutations: prepared.mutations,
|
|
16006
|
-
...
|
|
16007
|
-
preparedDiagnostics: prepared.diagnostics.map(
|
|
16008
|
-
(diagnostic6) => `${diagnostic6.kind}: ${diagnostic6.message}`
|
|
16009
|
-
)
|
|
16010
|
-
} : {}
|
|
16021
|
+
...preparedDiagnostics.length > 0 ? { preparedDiagnostics } : {}
|
|
16011
16022
|
});
|
|
16012
16023
|
})() : await statusInstallation(targetRoot);
|
|
16013
16024
|
return { request, previews, lifecycle };
|