@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/index.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}'`;
|
|
@@ -3784,10 +3784,10 @@ async function writeJournal(targetRoot, journal) {
|
|
|
3784
3784
|
);
|
|
3785
3785
|
await rename2(temporary, path9);
|
|
3786
3786
|
}
|
|
3787
|
-
async function copyAtomically(
|
|
3787
|
+
async function copyAtomically(source2, target, mode) {
|
|
3788
3788
|
await mkdir2(dirname3(target), { recursive: true });
|
|
3789
3789
|
const temporary = `${target}.pc-stage-${process.pid}`;
|
|
3790
|
-
await copyFile(
|
|
3790
|
+
await copyFile(source2, temporary);
|
|
3791
3791
|
await chmod(temporary, mode);
|
|
3792
3792
|
await rename2(temporary, target);
|
|
3793
3793
|
}
|
|
@@ -3970,13 +3970,13 @@ async function planReconciliation(options, manifest, desired) {
|
|
|
3970
3970
|
return { writes, removes, preserved, nextManifest };
|
|
3971
3971
|
}
|
|
3972
3972
|
async function backupPath(targetRoot, transactionRoot, path9) {
|
|
3973
|
-
const
|
|
3974
|
-
if (!await pathExists(
|
|
3973
|
+
const source2 = await assertNoSymlinkInPreparedPath(targetRoot, path9);
|
|
3974
|
+
if (!await pathExists(source2)) return false;
|
|
3975
3975
|
await assertNoSymlinkInPreparedPath(targetRoot, path9);
|
|
3976
3976
|
const target = join3(transactionRoot, "backup", path9);
|
|
3977
3977
|
await mkdir2(dirname3(target), { recursive: true });
|
|
3978
3978
|
await assertNoSymlinkInPreparedPath(targetRoot, path9);
|
|
3979
|
-
await copyFile(
|
|
3979
|
+
await copyFile(source2, target);
|
|
3980
3980
|
return true;
|
|
3981
3981
|
}
|
|
3982
3982
|
async function restoreTransaction(targetRoot, transactionRoot, mutations, manifestHadOriginal, options) {
|
|
@@ -8143,11 +8143,11 @@ var getToStream = (destination7, to = "stdin") => {
|
|
|
8143
8143
|
}
|
|
8144
8144
|
return destinationStream;
|
|
8145
8145
|
};
|
|
8146
|
-
var getFromStream = (
|
|
8146
|
+
var getFromStream = (source2, from = "stdout") => {
|
|
8147
8147
|
const isWritable = false;
|
|
8148
|
-
const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(
|
|
8148
|
+
const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(source2);
|
|
8149
8149
|
const fdNumber = getFdNumber(fileDescriptors, from, isWritable);
|
|
8150
|
-
const sourceStream = fdNumber === "all" ?
|
|
8150
|
+
const sourceStream = fdNumber === "all" ? source2.all : source2.stdio[fdNumber];
|
|
8151
8151
|
if (sourceStream === null || sourceStream === void 0) {
|
|
8152
8152
|
throw new TypeError(getInvalidStdioOptionMessage(fdNumber, from, options, isWritable));
|
|
8153
8153
|
}
|
|
@@ -9849,17 +9849,17 @@ var PASSTHROUGH_LISTENERS_PER_STREAM = 1;
|
|
|
9849
9849
|
|
|
9850
9850
|
// node_modules/.pnpm/execa@10.0.0/node_modules/execa/lib/io/pipeline.js
|
|
9851
9851
|
import { finished as finished3 } from "node:stream/promises";
|
|
9852
|
-
var pipeStreams = (
|
|
9853
|
-
|
|
9854
|
-
onSourceFinish(
|
|
9855
|
-
onDestinationFinish(
|
|
9852
|
+
var pipeStreams = (source2, destination7) => {
|
|
9853
|
+
source2.pipe(destination7);
|
|
9854
|
+
onSourceFinish(source2, destination7);
|
|
9855
|
+
onDestinationFinish(source2, destination7);
|
|
9856
9856
|
};
|
|
9857
|
-
var onSourceFinish = async (
|
|
9858
|
-
if (isStandardStream(
|
|
9857
|
+
var onSourceFinish = async (source2, destination7) => {
|
|
9858
|
+
if (isStandardStream(source2) || isStandardStream(destination7)) {
|
|
9859
9859
|
return;
|
|
9860
9860
|
}
|
|
9861
9861
|
try {
|
|
9862
|
-
await finished3(
|
|
9862
|
+
await finished3(source2, { cleanup: true, readable: true, writable: false });
|
|
9863
9863
|
} catch {
|
|
9864
9864
|
}
|
|
9865
9865
|
endDestinationStream(destination7);
|
|
@@ -9869,19 +9869,19 @@ var endDestinationStream = (destination7) => {
|
|
|
9869
9869
|
destination7.end();
|
|
9870
9870
|
}
|
|
9871
9871
|
};
|
|
9872
|
-
var onDestinationFinish = async (
|
|
9873
|
-
if (isStandardStream(
|
|
9872
|
+
var onDestinationFinish = async (source2, destination7) => {
|
|
9873
|
+
if (isStandardStream(source2) || isStandardStream(destination7)) {
|
|
9874
9874
|
return;
|
|
9875
9875
|
}
|
|
9876
9876
|
try {
|
|
9877
9877
|
await finished3(destination7, { cleanup: true, readable: false, writable: true });
|
|
9878
9878
|
} catch {
|
|
9879
9879
|
}
|
|
9880
|
-
abortSourceStream(
|
|
9880
|
+
abortSourceStream(source2);
|
|
9881
9881
|
};
|
|
9882
|
-
var abortSourceStream = (
|
|
9883
|
-
if (
|
|
9884
|
-
|
|
9882
|
+
var abortSourceStream = (source2) => {
|
|
9883
|
+
if (source2.readable) {
|
|
9884
|
+
source2.destroy();
|
|
9885
9885
|
}
|
|
9886
9886
|
};
|
|
9887
9887
|
|
|
@@ -10605,7 +10605,7 @@ var createWritableStream = (subprocess, writableOptions) => Writable3.toWeb(subp
|
|
|
10605
10605
|
var createTransformStream = (subprocess, duplexOptions) => Duplex3.toWeb(subprocess.duplex(duplexOptions));
|
|
10606
10606
|
|
|
10607
10607
|
// node_modules/.pnpm/execa@10.0.0/node_modules/execa/lib/pipe/pipe-arguments.js
|
|
10608
|
-
var normalizePipeArguments = ({ source:
|
|
10608
|
+
var normalizePipeArguments = ({ source: source2, sourcePromise, boundOptions, createNested }, ...pipeArguments) => {
|
|
10609
10609
|
const startTime = getStartTime();
|
|
10610
10610
|
const {
|
|
10611
10611
|
destination: destination7,
|
|
@@ -10614,8 +10614,8 @@ var normalizePipeArguments = ({ source: source3, sourcePromise, boundOptions, cr
|
|
|
10614
10614
|
from,
|
|
10615
10615
|
unpipeSignal
|
|
10616
10616
|
} = getDestinationStream(boundOptions, createNested, pipeArguments);
|
|
10617
|
-
const { sourceStream, sourceError } = getSourceStream(
|
|
10618
|
-
const { options: sourceOptions, fileDescriptors } = SUBPROCESS_OPTIONS.get(
|
|
10617
|
+
const { sourceStream, sourceError } = getSourceStream(source2, from);
|
|
10618
|
+
const { options: sourceOptions, fileDescriptors } = SUBPROCESS_OPTIONS.get(source2);
|
|
10619
10619
|
return {
|
|
10620
10620
|
sourcePromise,
|
|
10621
10621
|
sourceStream,
|
|
@@ -10668,9 +10668,9 @@ var getDestination = (boundOptions, createNested, firstArgument, ...pipeArgument
|
|
|
10668
10668
|
throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${firstArgument}`);
|
|
10669
10669
|
};
|
|
10670
10670
|
var mapDestinationArguments = ({ options }) => ({ options: { ...options, stdin: "pipe", piped: true } });
|
|
10671
|
-
var getSourceStream = (
|
|
10671
|
+
var getSourceStream = (source2, from) => {
|
|
10672
10672
|
try {
|
|
10673
|
-
const sourceStream = getFromStream(
|
|
10673
|
+
const sourceStream = getFromStream(source2, from);
|
|
10674
10674
|
return { sourceStream };
|
|
10675
10675
|
} catch (error) {
|
|
10676
10676
|
return { sourceError: error };
|
|
@@ -12640,7 +12640,7 @@ async function resolveVerifiedCapabilityEntrypoint(options) {
|
|
|
12640
12640
|
}
|
|
12641
12641
|
|
|
12642
12642
|
// packages/cli/src/release.ts
|
|
12643
|
-
var cliVersion = true ? "0.1.
|
|
12643
|
+
var cliVersion = true ? "0.1.13" : createRequire(import.meta.url)("../../../package.json").version;
|
|
12644
12644
|
|
|
12645
12645
|
// packages/adapters/src/antigravity/materialize.ts
|
|
12646
12646
|
import { resolve as resolve4 } from "node:path";
|
|
@@ -12799,7 +12799,7 @@ var antigravityRuntimeDescriptor = {
|
|
|
12799
12799
|
schemaVersion: "1.0",
|
|
12800
12800
|
id: "antigravity",
|
|
12801
12801
|
aliases: ["google-antigravity", "antigravity-cli"],
|
|
12802
|
-
supportedVersions: [">=2.0.0"],
|
|
12802
|
+
supportedVersions: [">=1.1.4 <2.0.0"],
|
|
12803
12803
|
locations: [
|
|
12804
12804
|
{
|
|
12805
12805
|
id: "antigravity-project-skills",
|
|
@@ -12898,11 +12898,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
12898
12898
|
evidenceState: "source-observed"
|
|
12899
12899
|
},
|
|
12900
12900
|
{
|
|
12901
|
-
id: "antigravity-
|
|
12901
|
+
id: "antigravity-workspace-rules",
|
|
12902
12902
|
semanticKind: "rule",
|
|
12903
12903
|
integrationMode: "declarative",
|
|
12904
12904
|
adapterId: markdown,
|
|
12905
|
-
discovery: "
|
|
12905
|
+
discovery: "Workspace rules may be discovered from .agents/rules when verified for a supported client.",
|
|
12906
12906
|
invocation: "Rules apply according to their activation mode.",
|
|
12907
12907
|
precedence: ["workspace", "global"],
|
|
12908
12908
|
evidenceClaimIds: ["antigravity.cli.discovery.rules"],
|
|
@@ -12910,11 +12910,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
12910
12910
|
evidenceState: "source-observed"
|
|
12911
12911
|
},
|
|
12912
12912
|
{
|
|
12913
|
-
id: "antigravity-
|
|
12913
|
+
id: "antigravity-workspace-agents",
|
|
12914
12914
|
semanticKind: "agent",
|
|
12915
12915
|
integrationMode: "declarative",
|
|
12916
12916
|
adapterId: markdown,
|
|
12917
|
-
discovery: "
|
|
12917
|
+
discovery: "Workspace agents may be discovered from .agents/agents when verified for a supported client.",
|
|
12918
12918
|
invocation: "Invoke through the native subagent interface.",
|
|
12919
12919
|
precedence: ["workspace", "global"],
|
|
12920
12920
|
evidenceClaimIds: ["antigravity.cli.discovery.agents"],
|
|
@@ -12922,11 +12922,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
12922
12922
|
evidenceState: "source-observed"
|
|
12923
12923
|
},
|
|
12924
12924
|
{
|
|
12925
|
-
id: "antigravity-
|
|
12925
|
+
id: "antigravity-workspace-hooks",
|
|
12926
12926
|
semanticKind: "hook",
|
|
12927
12927
|
integrationMode: "declarative",
|
|
12928
12928
|
adapterId: hook,
|
|
12929
|
-
discovery: "hooks.json
|
|
12929
|
+
discovery: "Workspace hooks may be discovered from hooks.json when verified for a supported client.",
|
|
12930
12930
|
invocation: "Hooks participate in native tool and invocation events.",
|
|
12931
12931
|
precedence: ["workspace", "global", "plugin"],
|
|
12932
12932
|
evidenceClaimIds: ["antigravity.cli.hooks"],
|
|
@@ -12934,11 +12934,11 @@ var antigravityRuntimeDescriptor = {
|
|
|
12934
12934
|
evidenceState: "source-observed"
|
|
12935
12935
|
},
|
|
12936
12936
|
{
|
|
12937
|
-
id: "antigravity-
|
|
12937
|
+
id: "antigravity-workspace-mcp",
|
|
12938
12938
|
semanticKind: "mcp",
|
|
12939
12939
|
integrationMode: "declarative",
|
|
12940
12940
|
adapterId: mcp,
|
|
12941
|
-
discovery: "mcp_config.json
|
|
12941
|
+
discovery: "Workspace MCP may be discovered from mcp_config.json when verified for a supported client.",
|
|
12942
12942
|
invocation: "MCP servers are exposed as native tools.",
|
|
12943
12943
|
precedence: ["workspace", "global"],
|
|
12944
12944
|
evidenceClaimIds: ["antigravity.cli.mcp"],
|
|
@@ -12986,148 +12986,148 @@ var antigravityRuntimeDescriptor = {
|
|
|
12986
12986
|
// packages/adapters/src/antigravity/runtime-evidence.ts
|
|
12987
12987
|
import { createHash as createHash9 } from "node:crypto";
|
|
12988
12988
|
var digest2 = (value) => createHash9("sha256").update(value).digest("hex");
|
|
12989
|
-
var retrievedAt = "2026-08-
|
|
12990
|
-
var
|
|
12991
|
-
var
|
|
12992
|
-
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
12996
|
-
|
|
12997
|
-
|
|
12998
|
-
|
|
12999
|
-
|
|
13000
|
-
|
|
13001
|
-
|
|
13002
|
-
|
|
13003
|
-
|
|
13004
|
-
|
|
13005
|
-
|
|
13006
|
-
|
|
13007
|
-
|
|
13008
|
-
|
|
12989
|
+
var retrievedAt = "2026-08-15T00:00:00.000Z";
|
|
12990
|
+
var cliVersionRange = ">=1.1.4 <2.0.0";
|
|
12991
|
+
var cliDocs = "https://codelabs.developers.google.com/antigravity/how-to-create-agent-skills-for-antigravity-cli";
|
|
12992
|
+
var productDocs = "https://www.antigravity.google/product/antigravity-cli";
|
|
12993
|
+
var sourceClaim = (id, category, subject, assertion, locator, options = {}) => {
|
|
12994
|
+
const state = options.state ?? "source-observed";
|
|
12995
|
+
return {
|
|
12996
|
+
schemaVersion: "1.0",
|
|
12997
|
+
id,
|
|
12998
|
+
runtimeId: "antigravity",
|
|
12999
|
+
category,
|
|
13000
|
+
subject,
|
|
13001
|
+
assertion,
|
|
13002
|
+
versionRange: options.versionRange ?? cliVersionRange,
|
|
13003
|
+
sourceType: "official-docs",
|
|
13004
|
+
source: options.source ?? cliDocs,
|
|
13005
|
+
sourceLocator: locator,
|
|
13006
|
+
sourceDigest: digest2(`${id}:${assertion}:${locator}`),
|
|
13007
|
+
state,
|
|
13008
|
+
confidence: state === "unknown" ? "low" : "high",
|
|
13009
|
+
verificationStatus: state === "unknown" ? "unverified" : "verified",
|
|
13010
|
+
stability: state === "unknown" ? "version-gated" : "stable",
|
|
13011
|
+
verifiedAt: retrievedAt
|
|
13012
|
+
};
|
|
13013
|
+
};
|
|
13009
13014
|
var antigravityRuntimeEvidence = [
|
|
13010
13015
|
sourceClaim(
|
|
13011
13016
|
"antigravity.location.project-skills",
|
|
13012
13017
|
"location",
|
|
13013
13018
|
"workspace skill root",
|
|
13014
|
-
"Antigravity discovers workspace skills beneath .agents/skills.",
|
|
13015
|
-
"
|
|
13019
|
+
"Antigravity CLI discovers workspace skills beneath .agents/skills.",
|
|
13020
|
+
"Skill location: .agents/skills/<skill-name>/SKILL.md"
|
|
13016
13021
|
),
|
|
13017
13022
|
sourceClaim(
|
|
13018
13023
|
"antigravity.location.project-rules",
|
|
13019
13024
|
"location",
|
|
13020
13025
|
"workspace rule root",
|
|
13021
|
-
"
|
|
13022
|
-
"
|
|
13026
|
+
"The native workspace rule path is not established by the verified CLI skill documentation.",
|
|
13027
|
+
"Workspace rule path: not established",
|
|
13028
|
+
{ source: productDocs, state: "unknown" }
|
|
13023
13029
|
),
|
|
13024
13030
|
sourceClaim(
|
|
13025
13031
|
"antigravity.location.project-agents",
|
|
13026
13032
|
"location",
|
|
13027
13033
|
"workspace agent root",
|
|
13028
|
-
"
|
|
13029
|
-
"
|
|
13034
|
+
"The native workspace agent path is not established by the verified CLI skill documentation.",
|
|
13035
|
+
"Workspace agent path: not established",
|
|
13036
|
+
{ source: productDocs, state: "unknown" }
|
|
13030
13037
|
),
|
|
13031
13038
|
sourceClaim(
|
|
13032
13039
|
"antigravity.location.project-hooks",
|
|
13033
13040
|
"location",
|
|
13034
13041
|
"workspace hook config",
|
|
13035
|
-
"
|
|
13036
|
-
"
|
|
13042
|
+
"The native workspace hook path is not established by the verified CLI skill documentation.",
|
|
13043
|
+
"Workspace hook path: not established",
|
|
13044
|
+
{ source: productDocs, state: "unknown" }
|
|
13037
13045
|
),
|
|
13038
13046
|
sourceClaim(
|
|
13039
13047
|
"antigravity.location.project-mcp",
|
|
13040
13048
|
"location",
|
|
13041
13049
|
"workspace MCP config",
|
|
13042
|
-
"
|
|
13043
|
-
"
|
|
13050
|
+
"The native workspace MCP configuration path is not established by the verified CLI skill documentation.",
|
|
13051
|
+
"Workspace MCP path: not established",
|
|
13052
|
+
{ source: productDocs, state: "unknown" }
|
|
13044
13053
|
),
|
|
13045
13054
|
sourceClaim(
|
|
13046
13055
|
"antigravity.location.plugins",
|
|
13047
13056
|
"location",
|
|
13048
13057
|
"CLI plugin staging root",
|
|
13049
|
-
"
|
|
13050
|
-
"
|
|
13058
|
+
"The native CLI plugin staging path is not established by the verified CLI skill documentation.",
|
|
13059
|
+
"CLI plugin staging path: not established",
|
|
13060
|
+
{ source: productDocs, state: "unknown" }
|
|
13051
13061
|
),
|
|
13052
13062
|
sourceClaim(
|
|
13053
13063
|
"antigravity.workflow.storage",
|
|
13054
13064
|
"location",
|
|
13055
13065
|
"workflow storage",
|
|
13056
13066
|
"Workflow physical storage path is not established by primary public documentation.",
|
|
13057
|
-
"
|
|
13058
|
-
"unknown"
|
|
13067
|
+
"Workflow storage path: not established",
|
|
13068
|
+
{ source: productDocs, state: "unknown" }
|
|
13059
13069
|
),
|
|
13060
13070
|
sourceClaim(
|
|
13061
13071
|
"antigravity.cli.discovery.skills",
|
|
13062
13072
|
"discovery",
|
|
13063
13073
|
"CLI skill discovery",
|
|
13064
|
-
"Antigravity CLI discovers project skills from .agents/skills.",
|
|
13065
|
-
"
|
|
13066
|
-
"source-observed",
|
|
13067
|
-
"cli"
|
|
13074
|
+
"Antigravity CLI automatically discovers project skills from .agents/skills.",
|
|
13075
|
+
"Skill discovery and /skills listing"
|
|
13068
13076
|
),
|
|
13069
13077
|
sourceClaim(
|
|
13070
13078
|
"antigravity.cli.invocation.skills",
|
|
13071
13079
|
"invocation",
|
|
13072
13080
|
"CLI skill invocation",
|
|
13073
|
-
"Antigravity CLI
|
|
13074
|
-
"
|
|
13075
|
-
"source-observed",
|
|
13076
|
-
"cli"
|
|
13081
|
+
"Antigravity CLI can list and invoke a discovered skill from the project workspace.",
|
|
13082
|
+
"Launch with agy; invoke through the skill-aware CLI workflow"
|
|
13077
13083
|
),
|
|
13078
13084
|
sourceClaim(
|
|
13079
13085
|
"antigravity.ide.discovery.skills",
|
|
13080
13086
|
"discovery",
|
|
13081
13087
|
"IDE skill discovery",
|
|
13082
|
-
"
|
|
13083
|
-
"
|
|
13084
|
-
|
|
13085
|
-
"ide"
|
|
13088
|
+
"IDE skill discovery is not established by the verified CLI skill documentation.",
|
|
13089
|
+
"IDE skill discovery: not established",
|
|
13090
|
+
{ source: productDocs, state: "unknown" }
|
|
13086
13091
|
),
|
|
13087
13092
|
sourceClaim(
|
|
13088
13093
|
"antigravity.cli.discovery.rules",
|
|
13089
13094
|
"discovery",
|
|
13090
|
-
"
|
|
13091
|
-
"Workspace
|
|
13092
|
-
"
|
|
13093
|
-
|
|
13094
|
-
"2.0"
|
|
13095
|
+
"workspace rule discovery",
|
|
13096
|
+
"Workspace rule discovery is not established by the verified CLI skill documentation.",
|
|
13097
|
+
"Workspace rule discovery: not established",
|
|
13098
|
+
{ source: productDocs, state: "unknown" }
|
|
13095
13099
|
),
|
|
13096
13100
|
sourceClaim(
|
|
13097
13101
|
"antigravity.cli.discovery.agents",
|
|
13098
13102
|
"discovery",
|
|
13099
|
-
"
|
|
13100
|
-
"
|
|
13101
|
-
"
|
|
13102
|
-
|
|
13103
|
-
"2.0"
|
|
13103
|
+
"workspace agent discovery",
|
|
13104
|
+
"Workspace agent discovery is not established by the verified CLI skill documentation.",
|
|
13105
|
+
"Workspace agent discovery: not established",
|
|
13106
|
+
{ source: productDocs, state: "unknown" }
|
|
13104
13107
|
),
|
|
13105
13108
|
sourceClaim(
|
|
13106
13109
|
"antigravity.cli.hooks",
|
|
13107
13110
|
"hooks",
|
|
13108
|
-
"
|
|
13109
|
-
"Workspace
|
|
13110
|
-
"
|
|
13111
|
-
|
|
13112
|
-
"2.0"
|
|
13111
|
+
"workspace hook registration",
|
|
13112
|
+
"Workspace hook registration is not established by the verified CLI skill documentation.",
|
|
13113
|
+
"Workspace hook registration: not established",
|
|
13114
|
+
{ source: productDocs, state: "unknown" }
|
|
13113
13115
|
),
|
|
13114
13116
|
sourceClaim(
|
|
13115
13117
|
"antigravity.cli.mcp",
|
|
13116
13118
|
"mcp",
|
|
13117
|
-
"
|
|
13118
|
-
"Workspace MCP
|
|
13119
|
-
"
|
|
13120
|
-
|
|
13121
|
-
"2.0"
|
|
13119
|
+
"workspace MCP registration",
|
|
13120
|
+
"Workspace MCP registration is not established by the verified CLI skill documentation.",
|
|
13121
|
+
"Workspace MCP registration: not established",
|
|
13122
|
+
{ source: productDocs, state: "unknown" }
|
|
13122
13123
|
),
|
|
13123
13124
|
sourceClaim(
|
|
13124
13125
|
"antigravity.cli.plugins",
|
|
13125
13126
|
"plugin",
|
|
13126
13127
|
"CLI plugin registration",
|
|
13127
|
-
"CLI
|
|
13128
|
-
"
|
|
13129
|
-
|
|
13130
|
-
"cli"
|
|
13128
|
+
"CLI plugin registration is not established by the verified CLI skill documentation.",
|
|
13129
|
+
"CLI plugin registration: not established",
|
|
13130
|
+
{ source: productDocs, state: "unknown" }
|
|
13131
13131
|
)
|
|
13132
13132
|
];
|
|
13133
13133
|
|
|
@@ -14197,7 +14197,7 @@ async function prepareDCodeMaterialization(plan, root) {
|
|
|
14197
14197
|
|
|
14198
14198
|
// packages/adapters/src/dcode/runtime-descriptor.ts
|
|
14199
14199
|
var markdown3 = "materialize-markdown";
|
|
14200
|
-
var
|
|
14200
|
+
var source = "source-observed";
|
|
14201
14201
|
var dcodeRuntimeDescriptor = {
|
|
14202
14202
|
schemaVersion: "1.0",
|
|
14203
14203
|
id: "dcode",
|
|
@@ -14256,7 +14256,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14256
14256
|
precedence: ["project"],
|
|
14257
14257
|
evidenceClaimIds: ["dcode.discovery.cli-skill", "dcode.invocation.cli-skill"],
|
|
14258
14258
|
stability: "stable",
|
|
14259
|
-
evidenceState:
|
|
14259
|
+
evidenceState: source
|
|
14260
14260
|
},
|
|
14261
14261
|
{
|
|
14262
14262
|
id: "dcode-cli-instructions",
|
|
@@ -14268,7 +14268,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14268
14268
|
precedence: ["project"],
|
|
14269
14269
|
evidenceClaimIds: ["dcode.location.project-root"],
|
|
14270
14270
|
stability: "stable",
|
|
14271
|
-
evidenceState:
|
|
14271
|
+
evidenceState: source
|
|
14272
14272
|
},
|
|
14273
14273
|
{
|
|
14274
14274
|
id: "dcode-cli-sync-subagents",
|
|
@@ -14280,7 +14280,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14280
14280
|
precedence: ["project", "user"],
|
|
14281
14281
|
evidenceClaimIds: ["dcode.cli.sync-subagents"],
|
|
14282
14282
|
stability: "version-gated",
|
|
14283
|
-
evidenceState:
|
|
14283
|
+
evidenceState: source
|
|
14284
14284
|
},
|
|
14285
14285
|
{
|
|
14286
14286
|
id: "dcode-cli-memory",
|
|
@@ -14292,7 +14292,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14292
14292
|
precedence: ["project", "user"],
|
|
14293
14293
|
evidenceClaimIds: ["dcode.cli.memory"],
|
|
14294
14294
|
stability: "version-gated",
|
|
14295
|
-
evidenceState:
|
|
14295
|
+
evidenceState: source
|
|
14296
14296
|
},
|
|
14297
14297
|
{
|
|
14298
14298
|
id: "dcode-cli-mcp",
|
|
@@ -14304,7 +14304,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14304
14304
|
precedence: ["project", "user"],
|
|
14305
14305
|
evidenceClaimIds: ["dcode.cli.mcp"],
|
|
14306
14306
|
stability: "version-gated",
|
|
14307
|
-
evidenceState:
|
|
14307
|
+
evidenceState: source
|
|
14308
14308
|
},
|
|
14309
14309
|
{
|
|
14310
14310
|
id: "dcode-cli-configuration",
|
|
@@ -14316,7 +14316,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14316
14316
|
precedence: ["project", "user"],
|
|
14317
14317
|
evidenceClaimIds: ["dcode.cli.configuration"],
|
|
14318
14318
|
stability: "version-gated",
|
|
14319
|
-
evidenceState:
|
|
14319
|
+
evidenceState: source
|
|
14320
14320
|
},
|
|
14321
14321
|
{
|
|
14322
14322
|
id: "dcode-cli-advisory-hooks",
|
|
@@ -14328,7 +14328,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14328
14328
|
precedence: ["project", "user"],
|
|
14329
14329
|
evidenceClaimIds: ["dcode.hooks.advisory"],
|
|
14330
14330
|
stability: "version-gated",
|
|
14331
|
-
evidenceState:
|
|
14331
|
+
evidenceState: source
|
|
14332
14332
|
},
|
|
14333
14333
|
{
|
|
14334
14334
|
id: "dcode-sdk-tools",
|
|
@@ -14340,7 +14340,7 @@ var dcodeRuntimeDescriptor = {
|
|
|
14340
14340
|
precedence: ["sdk"],
|
|
14341
14341
|
evidenceClaimIds: ["dcode.sdk.tools"],
|
|
14342
14342
|
stability: "version-gated",
|
|
14343
|
-
evidenceState:
|
|
14343
|
+
evidenceState: source
|
|
14344
14344
|
},
|
|
14345
14345
|
{
|
|
14346
14346
|
id: "dcode-cli-async-subagents",
|
|
@@ -15992,7 +15992,8 @@ var piRuntimeDescriptor = {
|
|
|
15992
15992
|
// packages/adapters/src/pi/runtime-evidence.ts
|
|
15993
15993
|
import { createHash as createHash15 } from "node:crypto";
|
|
15994
15994
|
var digest8 = (value) => createHash15("sha256").update(value).digest("hex");
|
|
15995
|
-
var observedAt2 = "2026-08-
|
|
15995
|
+
var observedAt2 = "2026-08-15T00:00:00.000Z";
|
|
15996
|
+
var skillsDocs = "https://pi.dev/docs/latest/skills";
|
|
15996
15997
|
var piRuntimeEvidence = [
|
|
15997
15998
|
{
|
|
15998
15999
|
schemaVersion: "1.0",
|
|
@@ -16054,13 +16055,13 @@ var piRuntimeEvidence = [
|
|
|
16054
16055
|
runtimeId: "pi",
|
|
16055
16056
|
category: "discovery",
|
|
16056
16057
|
subject: "native skill discovery",
|
|
16057
|
-
assertion: "Pi
|
|
16058
|
-
versionRange: "
|
|
16059
|
-
sourceType: "
|
|
16060
|
-
source:
|
|
16061
|
-
sourceLocator: "
|
|
16062
|
-
sourceDigest: digest8("Pi
|
|
16063
|
-
state: "
|
|
16058
|
+
assertion: "Pi discovers project skills beneath .pi/skills.",
|
|
16059
|
+
versionRange: ">=0.64.0",
|
|
16060
|
+
sourceType: "official-docs",
|
|
16061
|
+
source: skillsDocs,
|
|
16062
|
+
sourceLocator: "Project skills: .pi/skills/",
|
|
16063
|
+
sourceDigest: digest8("Pi project skills .pi/skills official docs"),
|
|
16064
|
+
state: "source-observed",
|
|
16064
16065
|
confidence: "high",
|
|
16065
16066
|
verificationStatus: "verified",
|
|
16066
16067
|
stability: "stable",
|
|
@@ -16072,13 +16073,13 @@ var piRuntimeEvidence = [
|
|
|
16072
16073
|
runtimeId: "pi",
|
|
16073
16074
|
category: "invocation",
|
|
16074
16075
|
subject: "native skill invocation",
|
|
16075
|
-
assertion: "Pi
|
|
16076
|
-
versionRange: "
|
|
16077
|
-
sourceType: "
|
|
16078
|
-
source:
|
|
16079
|
-
sourceLocator: "
|
|
16080
|
-
sourceDigest: digest8("Pi
|
|
16081
|
-
state: "
|
|
16076
|
+
assertion: "Pi loads a discovered skill when its description matches the task or the user invokes /skill:name.",
|
|
16077
|
+
versionRange: ">=0.64.0",
|
|
16078
|
+
sourceType: "official-docs",
|
|
16079
|
+
source: skillsDocs,
|
|
16080
|
+
sourceLocator: "Skill loading and invocation: /skill:name",
|
|
16081
|
+
sourceDigest: digest8("Pi skill invocation official docs"),
|
|
16082
|
+
state: "source-observed",
|
|
16082
16083
|
confidence: "high",
|
|
16083
16084
|
verificationStatus: "verified",
|
|
16084
16085
|
stability: "stable",
|
|
@@ -16352,6 +16353,14 @@ function renderVerifiedUsage(preview, descriptor, claims, runtimeVersion) {
|
|
|
16352
16353
|
return verified ? `${descriptor.id}: ${surface.invocation}` : `${descriptor.id}: native usage unavailable; use manual guidance`;
|
|
16353
16354
|
});
|
|
16354
16355
|
}
|
|
16356
|
+
function negotiationDiagnostics(previews) {
|
|
16357
|
+
return previews.flatMap(
|
|
16358
|
+
(preview) => preview.negotiations.filter((negotiation) => negotiation.installationMode !== "automatic").map((negotiation) => {
|
|
16359
|
+
const evidence = negotiation.evidenceClaimIds.join(", ") || "no evidence claims";
|
|
16360
|
+
return `${negotiation.intent}: ${negotiation.installationMode} (${negotiation.reason}) [${evidence}]`;
|
|
16361
|
+
})
|
|
16362
|
+
);
|
|
16363
|
+
}
|
|
16355
16364
|
function composeInstallationPlan(previews, artifacts, runtimeId) {
|
|
16356
16365
|
const first = previews[0]?.installationPlan;
|
|
16357
16366
|
if (!first) throw new Error("at least one installation plan is required");
|
|
@@ -16444,15 +16453,17 @@ async function executeSetupSelection(request, artifacts, descriptor, claims, con
|
|
|
16444
16453
|
const duplicatePath = prepared.mutations.map((mutation) => mutation.path).find((path9, index, paths) => paths.indexOf(path9) !== index);
|
|
16445
16454
|
if (duplicatePath)
|
|
16446
16455
|
throw new Error(`Selection produced duplicate prepared path: ${duplicatePath}`);
|
|
16456
|
+
const preparedDiagnostics = [
|
|
16457
|
+
...prepared.diagnostics?.map(
|
|
16458
|
+
(diagnostic6) => `${diagnostic6.kind}: ${diagnostic6.message}`
|
|
16459
|
+
) ?? [],
|
|
16460
|
+
...executionRequest.intent === "remove" ? [] : negotiationDiagnostics(previews)
|
|
16461
|
+
];
|
|
16447
16462
|
return executePreparedInstallation({
|
|
16448
16463
|
...lifecycleOptions,
|
|
16449
16464
|
preparedOperation: executionRequest.intent === "update" ? "upgrade" : executionRequest.intent === "remove" ? "remove" : "install",
|
|
16450
16465
|
preparedMutations: prepared.mutations,
|
|
16451
|
-
...
|
|
16452
|
-
preparedDiagnostics: prepared.diagnostics.map(
|
|
16453
|
-
(diagnostic6) => `${diagnostic6.kind}: ${diagnostic6.message}`
|
|
16454
|
-
)
|
|
16455
|
-
} : {}
|
|
16466
|
+
...preparedDiagnostics.length > 0 ? { preparedDiagnostics } : {}
|
|
16456
16467
|
});
|
|
16457
16468
|
})() : await statusInstallation(targetRoot);
|
|
16458
16469
|
return { request, previews, lifecycle };
|