@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.
@@ -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, source3) {
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] = source3;
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 source3;
2027
+ let source2;
2028
2028
  this._getCommandAndAncestors().forEach((cmd) => {
2029
2029
  if (cmd.getOptionValueSource(key) !== void 0) {
2030
- source3 = cmd.getOptionValueSource(key);
2030
+ source2 = cmd.getOptionValueSource(key);
2031
2031
  }
2032
2032
  });
2033
- return source3;
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 source3 = this.getOptionValueSource(optionKey);
2904
- if (source3 === "env") {
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(source3, target, mode) {
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(source3, temporary);
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 source3 = await assertNoSymlinkInPreparedPath(targetRoot, path9);
3974
- if (!await pathExists(source3)) return false;
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(source3, target);
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 = (source3, from = "stdout") => {
8146
+ var getFromStream = (source2, from = "stdout") => {
8147
8147
  const isWritable = false;
8148
- const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(source3);
8148
+ const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(source2);
8149
8149
  const fdNumber = getFdNumber(fileDescriptors, from, isWritable);
8150
- const sourceStream = fdNumber === "all" ? source3.all : source3.stdio[fdNumber];
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 = (source3, destination7) => {
9853
- source3.pipe(destination7);
9854
- onSourceFinish(source3, destination7);
9855
- onDestinationFinish(source3, destination7);
9852
+ var pipeStreams = (source2, destination7) => {
9853
+ source2.pipe(destination7);
9854
+ onSourceFinish(source2, destination7);
9855
+ onDestinationFinish(source2, destination7);
9856
9856
  };
9857
- var onSourceFinish = async (source3, destination7) => {
9858
- if (isStandardStream(source3) || isStandardStream(destination7)) {
9857
+ var onSourceFinish = async (source2, destination7) => {
9858
+ if (isStandardStream(source2) || isStandardStream(destination7)) {
9859
9859
  return;
9860
9860
  }
9861
9861
  try {
9862
- await finished3(source3, { cleanup: true, readable: true, writable: false });
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 (source3, destination7) => {
9873
- if (isStandardStream(source3) || isStandardStream(destination7)) {
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(source3);
9880
+ abortSourceStream(source2);
9881
9881
  };
9882
- var abortSourceStream = (source3) => {
9883
- if (source3.readable) {
9884
- source3.destroy();
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: source3, sourcePromise, boundOptions, createNested }, ...pipeArguments) => {
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(source3, from);
10618
- const { options: sourceOptions, fileDescriptors } = SUBPROCESS_OPTIONS.get(source3);
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 = (source3, from) => {
10671
+ var getSourceStream = (source2, from) => {
10672
10672
  try {
10673
- const sourceStream = getFromStream(source3, from);
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.10" : createRequire(import.meta.url)("../../../package.json").version;
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-2.0-rules",
12901
+ id: "antigravity-workspace-rules",
12902
12902
  semanticKind: "rule",
12903
12903
  integrationMode: "declarative",
12904
12904
  adapterId: markdown,
12905
- discovery: "2.0 workspace rules are discovered from .agents/rules.",
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-2.0-agents",
12913
+ id: "antigravity-workspace-agents",
12914
12914
  semanticKind: "agent",
12915
12915
  integrationMode: "declarative",
12916
12916
  adapterId: markdown,
12917
- discovery: "Custom agents are discovered from .agents/agents.",
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-2.0-hooks",
12925
+ id: "antigravity-workspace-hooks",
12926
12926
  semanticKind: "hook",
12927
12927
  integrationMode: "declarative",
12928
12928
  adapterId: hook,
12929
- discovery: "hooks.json is discovered at workspace scope.",
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-2.0-mcp",
12937
+ id: "antigravity-workspace-mcp",
12938
12938
  semanticKind: "mcp",
12939
12939
  integrationMode: "declarative",
12940
12940
  adapterId: mcp,
12941
- discovery: "mcp_config.json is discovered at workspace scope.",
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-10T00:00:00.000Z";
12990
- var source = "docs/RFC/runtime-capability-profiles-revised.md";
12991
- var sourceClaim = (id, category, subject, assertion, locator, state = "source-observed", mode = "2.0") => ({
12992
- schemaVersion: "1.0",
12993
- id,
12994
- runtimeId: "antigravity",
12995
- category,
12996
- subject,
12997
- assertion,
12998
- versionRange: `product-mode:${mode}; >=2.0.0`,
12999
- sourceType: "official-source",
13000
- source,
13001
- sourceLocator: locator,
13002
- sourceDigest: digest2(`${id}:${assertion}:${locator}`),
13003
- state,
13004
- confidence: state === "unknown" ? "medium" : "high",
13005
- verificationStatus: state === "unknown" ? "unverified" : "verified",
13006
- stability: state === "unknown" ? "version-gated" : "stable",
13007
- verifiedAt: retrievedAt
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
- "Section 9: .agents/skills/<name>/SKILL.md"
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
- "Antigravity discovers workspace rules beneath .agents/rules.",
13022
- "Section 9: .agents/rules/*.md"
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
- "Antigravity discovers custom agents beneath .agents/agents.",
13029
- "Section 3: .agents/agents/<name>.md"
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
- "Antigravity discovers workspace hooks from .agents/hooks.json.",
13036
- "Section 3: .agents/hooks.json"
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
- "Antigravity discovers workspace MCP servers from .agents/mcp_config.json.",
13043
- "Section 3: .agents/mcp_config.json"
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
- "Antigravity CLI stages plugins beneath the documented Gemini plugin root.",
13050
- "Section 2: ~/.gemini/antigravity-cli/plugins/<plugin-name>/"
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
- "Section 9: workflow storage unknown",
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
- "Section 3; CLI mode; source observation only",
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 skill invocation is documented but not runtime-observed.",
13074
- "Section 6; CLI mode; runtime unavailable",
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
- "Antigravity IDE uses the shared .agents/skills workspace root.",
13083
- "Section 3; IDE mode; runtime unavailable",
13084
- "source-observed",
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
- "2.0 rule discovery",
13091
- "Workspace rules are discovered from .agents/rules.",
13092
- "Section 3; Antigravity 2.0 mode",
13093
- "source-observed",
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
- "2.0 agent discovery",
13100
- "Custom agents are discovered from .agents/agents.",
13101
- "Section 3; Antigravity 2.0 mode",
13102
- "source-observed",
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
- "2.0 hook registration",
13109
- "Workspace hooks use .agents/hooks.json and typed tool decisions.",
13110
- "Section 6; Antigravity 2.0 mode",
13111
- "source-observed",
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
- "2.0 MCP registration",
13118
- "Workspace MCP uses .agents/mcp_config.json.",
13119
- "Section 3; Antigravity 2.0 mode",
13120
- "source-observed",
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 plugins require staged bundles with plugin.json.",
13128
- "Section 5; CLI mode",
13129
- "source-observed",
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 source2 = "source-observed";
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: source2
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: source2
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: source2
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: source2
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: source2
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: source2
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: source2
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: source2
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-08T04:24:00-05:00";
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 natively discovers a project skill with extensions disabled.",
16058
- versionRange: "=0.64.0",
16059
- sourceType: "runtime-probe",
16060
- source: "pi",
16061
- sourceLocator: "packages/conformance/src/tracer/pi-native-evidence.json",
16062
- sourceDigest: digest8("Pi native discovery with extensions disabled"),
16063
- state: "runtime-observed",
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 invokes a discovered project skill with extensions disabled.",
16076
- versionRange: "=0.64.0",
16077
- sourceType: "runtime-probe",
16078
- source: "pi",
16079
- sourceLocator: "packages/conformance/src/tracer/pi-native-evidence.json",
16080
- sourceDigest: digest8("Pi native invocation with extensions disabled"),
16081
- state: "runtime-observed",
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
- ...prepared.diagnostics ? {
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 };