@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}'`;
@@ -7802,11 +7802,11 @@ var getToStream = (destination7, to = "stdin") => {
7802
7802
  }
7803
7803
  return destinationStream;
7804
7804
  };
7805
- var getFromStream = (source3, from = "stdout") => {
7805
+ var getFromStream = (source2, from = "stdout") => {
7806
7806
  const isWritable = false;
7807
- const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(source3);
7807
+ const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(source2);
7808
7808
  const fdNumber = getFdNumber(fileDescriptors, from, isWritable);
7809
- const sourceStream = fdNumber === "all" ? source3.all : source3.stdio[fdNumber];
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 = (source3, destination7) => {
9512
- source3.pipe(destination7);
9513
- onSourceFinish(source3, destination7);
9514
- onDestinationFinish(source3, destination7);
9511
+ var pipeStreams = (source2, destination7) => {
9512
+ source2.pipe(destination7);
9513
+ onSourceFinish(source2, destination7);
9514
+ onDestinationFinish(source2, destination7);
9515
9515
  };
9516
- var onSourceFinish = async (source3, destination7) => {
9517
- if (isStandardStream(source3) || isStandardStream(destination7)) {
9516
+ var onSourceFinish = async (source2, destination7) => {
9517
+ if (isStandardStream(source2) || isStandardStream(destination7)) {
9518
9518
  return;
9519
9519
  }
9520
9520
  try {
9521
- await finished3(source3, { cleanup: true, readable: true, writable: false });
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 (source3, destination7) => {
9532
- if (isStandardStream(source3) || isStandardStream(destination7)) {
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(source3);
9539
+ abortSourceStream(source2);
9540
9540
  };
9541
- var abortSourceStream = (source3) => {
9542
- if (source3.readable) {
9543
- source3.destroy();
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: source3, sourcePromise, boundOptions, createNested }, ...pipeArguments) => {
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(source3, from);
10277
- const { options: sourceOptions, fileDescriptors } = SUBPROCESS_OPTIONS.get(source3);
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 = (source3, from) => {
10330
+ var getSourceStream = (source2, from) => {
10331
10331
  try {
10332
- const sourceStream = getFromStream(source3, from);
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.10" : createRequire(import.meta.url)("../../../package.json").version;
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-2.0-rules",
11994
+ id: "antigravity-workspace-rules",
11995
11995
  semanticKind: "rule",
11996
11996
  integrationMode: "declarative",
11997
11997
  adapterId: markdown,
11998
- discovery: "2.0 workspace rules are discovered from .agents/rules.",
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-2.0-agents",
12006
+ id: "antigravity-workspace-agents",
12007
12007
  semanticKind: "agent",
12008
12008
  integrationMode: "declarative",
12009
12009
  adapterId: markdown,
12010
- discovery: "Custom agents are discovered from .agents/agents.",
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-2.0-hooks",
12018
+ id: "antigravity-workspace-hooks",
12019
12019
  semanticKind: "hook",
12020
12020
  integrationMode: "declarative",
12021
12021
  adapterId: hook,
12022
- discovery: "hooks.json is discovered at workspace scope.",
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-2.0-mcp",
12030
+ id: "antigravity-workspace-mcp",
12031
12031
  semanticKind: "mcp",
12032
12032
  integrationMode: "declarative",
12033
12033
  adapterId: mcp,
12034
- discovery: "mcp_config.json is discovered at workspace scope.",
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-10T00:00:00.000Z";
12083
- var source = "docs/RFC/runtime-capability-profiles-revised.md";
12084
- var sourceClaim = (id, category, subject, assertion, locator, state = "source-observed", mode = "2.0") => ({
12085
- schemaVersion: "1.0",
12086
- id,
12087
- runtimeId: "antigravity",
12088
- category,
12089
- subject,
12090
- assertion,
12091
- versionRange: `product-mode:${mode}; >=2.0.0`,
12092
- sourceType: "official-source",
12093
- source,
12094
- sourceLocator: locator,
12095
- sourceDigest: digest2(`${id}:${assertion}:${locator}`),
12096
- state,
12097
- confidence: state === "unknown" ? "medium" : "high",
12098
- verificationStatus: state === "unknown" ? "unverified" : "verified",
12099
- stability: state === "unknown" ? "version-gated" : "stable",
12100
- verifiedAt: retrievedAt
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
- "Section 9: .agents/skills/<name>/SKILL.md"
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
- "Antigravity discovers workspace rules beneath .agents/rules.",
12115
- "Section 9: .agents/rules/*.md"
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
- "Antigravity discovers custom agents beneath .agents/agents.",
12122
- "Section 3: .agents/agents/<name>.md"
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
- "Antigravity discovers workspace hooks from .agents/hooks.json.",
12129
- "Section 3: .agents/hooks.json"
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
- "Antigravity discovers workspace MCP servers from .agents/mcp_config.json.",
12136
- "Section 3: .agents/mcp_config.json"
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
- "Antigravity CLI stages plugins beneath the documented Gemini plugin root.",
12143
- "Section 2: ~/.gemini/antigravity-cli/plugins/<plugin-name>/"
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
- "Section 9: workflow storage unknown",
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
- "Section 3; CLI mode; source observation only",
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 skill invocation is documented but not runtime-observed.",
12167
- "Section 6; CLI mode; runtime unavailable",
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
- "Antigravity IDE uses the shared .agents/skills workspace root.",
12176
- "Section 3; IDE mode; runtime unavailable",
12177
- "source-observed",
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
- "2.0 rule discovery",
12184
- "Workspace rules are discovered from .agents/rules.",
12185
- "Section 3; Antigravity 2.0 mode",
12186
- "source-observed",
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
- "2.0 agent discovery",
12193
- "Custom agents are discovered from .agents/agents.",
12194
- "Section 3; Antigravity 2.0 mode",
12195
- "source-observed",
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
- "2.0 hook registration",
12202
- "Workspace hooks use .agents/hooks.json and typed tool decisions.",
12203
- "Section 6; Antigravity 2.0 mode",
12204
- "source-observed",
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
- "2.0 MCP registration",
12211
- "Workspace MCP uses .agents/mcp_config.json.",
12212
- "Section 3; Antigravity 2.0 mode",
12213
- "source-observed",
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 plugins require staged bundles with plugin.json.",
12221
- "Section 5; CLI mode",
12222
- "source-observed",
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 source2 = "source-observed";
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: source2
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: source2
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: source2
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: source2
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: source2
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: source2
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: source2
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: source2
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-08T04:24:00-05:00";
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 natively discovers a project skill with extensions disabled.",
15151
- versionRange: "=0.64.0",
15152
- sourceType: "runtime-probe",
15153
- source: "pi",
15154
- sourceLocator: "packages/conformance/src/tracer/pi-native-evidence.json",
15155
- sourceDigest: digest8("Pi native discovery with extensions disabled"),
15156
- state: "runtime-observed",
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 invokes a discovered project skill with extensions disabled.",
15169
- versionRange: "=0.64.0",
15170
- sourceType: "runtime-probe",
15171
- source: "pi",
15172
- sourceLocator: "packages/conformance/src/tracer/pi-native-evidence.json",
15173
- sourceDigest: digest8("Pi native invocation with extensions disabled"),
15174
- state: "runtime-observed",
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(source3, target, mode) {
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(source3, temporary);
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 source3 = await assertNoSymlinkInPreparedPath(targetRoot, path9);
15463
- if (!await pathExists(source3)) return false;
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(source3, target);
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
- ...prepared.diagnostics ? {
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 };