@jmanuelcorral/openteam 0.16.1 → 0.16.3

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/README.es.md CHANGED
@@ -824,7 +824,7 @@ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `
824
824
 
825
825
  | Superficie | Versión / contrato |
826
826
  | --- | --- |
827
- | openteam | `0.16.1`; versión actual del paquete |
827
+ | openteam | `0.16.3`; versión actual del paquete |
828
828
  | `@opencode-ai/plugin` | `1.18.19` |
829
829
  | `@opencode-ai/sdk` | `1.18.19` |
830
830
  | Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
package/README.md CHANGED
@@ -713,7 +713,7 @@ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026
713
713
 
714
714
  | Surface | Version / contract |
715
715
  | --- | --- |
716
- | openteam | `0.16.1`; current package version |
716
+ | openteam | `0.16.3`; current package version |
717
717
  | `@opencode-ai/plugin` | `1.18.19` |
718
718
  | `@opencode-ai/sdk` | `1.18.19` |
719
719
  | Routing hook | `chat.message`; not `chat.params` for model changes |
@@ -0,0 +1,45 @@
1
+ {
2
+ "version": 2,
3
+ "certificate": "graph-release",
4
+ "platform": "linux",
5
+ "opencodeVersion": "1.18.19",
6
+ "shadowCertificateDigest": "10be736354e4b12f7433a6dd520df285cd152c0c038ec6a67133067a9a35c68e",
7
+ "evidence": {
8
+ "opencodeVersion": "1.18.19",
9
+ "platform": "linux",
10
+ "shadowCertificateDigest": "10be736354e4b12f7433a6dd520df285cd152c0c038ec6a67133067a9a35c68e",
11
+ "determinism": {
12
+ "runs": 13,
13
+ "allMatch": true
14
+ },
15
+ "crashRecovery": {
16
+ "scenarios": 18,
17
+ "allConverge": true
18
+ },
19
+ "replayEquivalence": {
20
+ "checks": 6,
21
+ "allEquivalent": true
22
+ },
23
+ "privacy": {
24
+ "surfacesScanned": 8,
25
+ "rawFindings": 0
26
+ },
27
+ "contract": {
28
+ "roundTrips": 4,
29
+ "allSettled": true
30
+ },
31
+ "health": {
32
+ "samples": 3,
33
+ "bounded": true,
34
+ "idempotent": true
35
+ },
36
+ "performance": {
37
+ "p95Millis": 0.40435899999999947,
38
+ "budgetMillis": 50,
39
+ "samples": 100
40
+ }
41
+ },
42
+ "verdict": "pass",
43
+ "failedGates": [],
44
+ "digest": "536c610a97697583b0683d2ea4d8cbec8afce5b1dccc8cefbe20448836f2fefa"
45
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "version": 1,
3
+ "certificate": "graph-shadow",
4
+ "opencodeVersion": "1.18.19",
5
+ "evidence": {
6
+ "opencodeVersion": "1.18.19",
7
+ "parity": {
8
+ "runs": 1000,
9
+ "match": 1000,
10
+ "divergent": 0,
11
+ "inconclusive": 0,
12
+ "divergences": []
13
+ },
14
+ "legacy": {
15
+ "observed": 1000,
16
+ "duplicated": 0
17
+ },
18
+ "privacy": {
19
+ "surfacesScanned": 5,
20
+ "rawFindings": 0
21
+ },
22
+ "overhead": {
23
+ "p95Millis": 0.26105400000000145,
24
+ "budgetMillis": 25,
25
+ "samples": 1000
26
+ },
27
+ "provenance": {
28
+ "status": "validated",
29
+ "order": "recomputed",
30
+ "roles": "recomputed",
31
+ "models": "carried",
32
+ "fixes": "recomputed",
33
+ "outcome": "carried"
34
+ }
35
+ },
36
+ "verdict": "pass",
37
+ "failedGates": [],
38
+ "digest": "0be8c6fc4b5620da27b61537c4de4d55d529d613654b3f6e9bb599981fe8e10f"
39
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"graphOperator.d.ts","sourceRoot":"","sources":["../../src/cli/graphOperator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAqBvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQ3D,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC7B,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC,CAAC;AAwIF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,2BAA2B,GACnC,iBAAiB,CAyDnB"}
1
+ {"version":3,"file":"graphOperator.d.ts","sourceRoot":"","sources":["../../src/cli/graphOperator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAqBvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAY3D,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC7B,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC,CAAC;AAwIF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,2BAA2B,GACnC,iBAAiB,CAyDnB"}
package/dist/cli.js CHANGED
@@ -4,9 +4,9 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
4
4
 
5
5
  // src/cli.ts
6
6
  import { exec, execFile as execFile2 } from "node:child_process";
7
- import { mkdir as mkdir2, readFile as readFile2, writeFile as writeFile2 } from "node:fs/promises";
7
+ import { mkdir as mkdir2, readFile as readFile3, writeFile as writeFile2 } from "node:fs/promises";
8
8
  import { createRequire as createRequire2 } from "node:module";
9
- import { dirname as dirname5, resolve as resolve6 } from "node:path";
9
+ import { dirname as dirname6, resolve as resolve6 } from "node:path";
10
10
  import { promisify as promisify2 } from "node:util";
11
11
  import {
12
12
  confirm as clackConfirm,
@@ -1100,6 +1100,7 @@ var ModelCapabilityProfileSchema = z3.object({
1100
1100
  var DIAGNOSTIC_CODES = [
1101
1101
  "availability-refresh-failed",
1102
1102
  "config-missing",
1103
+ "graph-gate-advisory",
1103
1104
  "graph-gate-denied",
1104
1105
  "memory-extraction-warning",
1105
1106
  "memory-runtime-warning",
@@ -1117,6 +1118,8 @@ function diagnosticDescription(code) {
1117
1118
  return "Local runtime availability refresh failed; routing will continue with the previous or empty availability snapshot.";
1118
1119
  case "config-missing":
1119
1120
  return "openteam did not find its runtime config file; defaults or plugin options were used.";
1121
+ case "graph-gate-advisory":
1122
+ return "The graph cutover gate reported a non-blocking advisory; a certificate condition is unverified. This does not by itself deny active mode. Run `openteam graph status` for the specific advisory.";
1120
1123
  case "graph-gate-denied":
1121
1124
  return "The graph cutover gate denied active mode and openteam degraded graph mode to off.";
1122
1125
  case "memory-extraction-warning":
@@ -8552,7 +8555,11 @@ function recoverJournal(spec, text) {
8552
8555
  }
8553
8556
 
8554
8557
  // src/cli/graphOperator.ts
8555
- var ALLOWED_GATE = { allowed: true, violations: [] };
8558
+ var ALLOWED_GATE = {
8559
+ allowed: true,
8560
+ violations: [],
8561
+ advisories: []
8562
+ };
8556
8563
  var ALLOWED_EVALUATION = {
8557
8564
  kind: "evaluated",
8558
8565
  gate: ALLOWED_GATE
@@ -10290,6 +10297,7 @@ function checkCertificate(status, name) {
10290
10297
  }
10291
10298
  function evaluateGraphGate(input) {
10292
10299
  const violations = [];
10300
+ const advisories = [];
10293
10301
  const shadowV = checkCertificate(input.shadow, "shadow");
10294
10302
  if (shadowV !== undefined)
10295
10303
  violations.push(shadowV);
@@ -10298,7 +10306,7 @@ function evaluateGraphGate(input) {
10298
10306
  violations.push(releaseV);
10299
10307
  const soakV = checkCertificate(input.soak, "soak");
10300
10308
  if (soakV !== undefined)
10301
- violations.push(soakV);
10309
+ advisories.push(soakV);
10302
10310
  if (input.migration === "pending") {
10303
10311
  violations.push({
10304
10312
  code: "migration-pending",
@@ -10318,7 +10326,8 @@ function evaluateGraphGate(input) {
10318
10326
  }
10319
10327
  return {
10320
10328
  allowed: violations.length === 0,
10321
- violations
10329
+ violations,
10330
+ advisories
10322
10331
  };
10323
10332
  }
10324
10333
  function isGateApplicable(mode) {
@@ -11338,12 +11347,18 @@ function leaseLine(lease) {
11338
11347
  const state = lease.released ? "released" : "active";
11339
11348
  return ` lease: ${lease.holder} → ${lease.runID} (${state})`;
11340
11349
  }
11350
+ function appendAdvisoryLines(lines, advisories) {
11351
+ for (const advisory of advisories ?? []) {
11352
+ lines.push(` ⚠ advisory (non-blocking) ${advisory.code}: ${advisory.detail}`);
11353
+ }
11354
+ }
11341
11355
  function appendEffectiveLines(lines, gate) {
11342
11356
  switch (gate.kind) {
11343
11357
  case "not-applicable":
11344
11358
  return;
11345
11359
  case "passed":
11346
11360
  lines.push(" effective: active");
11361
+ appendAdvisoryLines(lines, gate.advisories);
11347
11362
  return;
11348
11363
  case "unevaluable":
11349
11364
  lines.push(" effective: unknown — could not evaluate the cutover gate");
@@ -11354,6 +11369,7 @@ function appendEffectiveLines(lines, gate) {
11354
11369
  for (const violation of gate.violations) {
11355
11370
  lines.push(` • ${violation.code}: ${violation.detail}`);
11356
11371
  }
11372
+ appendAdvisoryLines(lines, gate.advisories);
11357
11373
  }
11358
11374
  }
11359
11375
  function renderGraphStatus(snapshot, gate = { kind: "not-applicable" }) {
@@ -13587,7 +13603,7 @@ async function resolveOperatorGraphPolicy(config, operator) {
13587
13603
  let graph = resolveGraphConfig(config, "file");
13588
13604
  if (isGateApplicable(graph.effectiveMode)) {
13589
13605
  const evaluation = await operator.evaluateCutoverGate(config);
13590
- const gate = evaluation.kind === "evaluated" ? evaluation.gate : { allowed: false, violations: [] };
13606
+ const gate = evaluation.kind === "evaluated" ? evaluation.gate : { allowed: false, violations: [], advisories: [] };
13591
13607
  graph = applyGraphGate(graph, gate);
13592
13608
  }
13593
13609
  return {
@@ -13629,7 +13645,11 @@ async function runGraphStatus(deps, configPath, configResolution) {
13629
13645
  return { exitCode: 0, stdout: renderGraphStatus(snapshot, gate2) };
13630
13646
  }
13631
13647
  const resolved = applyGraphGate(resolveGraphConfig(config, "file"), evaluation.gate);
13632
- const gate = resolved.gateDenied === true ? { kind: "denied", violations: resolved.gateViolations ?? [] } : { kind: "passed" };
13648
+ const gate = resolved.gateDenied === true ? {
13649
+ kind: "denied",
13650
+ violations: resolved.gateViolations ?? [],
13651
+ advisories: evaluation.gate.advisories
13652
+ } : { kind: "passed", advisories: evaluation.gate.advisories };
13633
13653
  return { exitCode: 0, stdout: renderGraphStatus(snapshot, gate) };
13634
13654
  }
13635
13655
  async function runGraphCancel(positionals, deps, configPath, configResolution) {
@@ -14550,6 +14570,8 @@ function planStartupHygieneMigration(exists) {
14550
14570
  }
14551
14571
 
14552
14572
  // src/index.ts
14573
+ import { readFile as readFile2 } from "node:fs/promises";
14574
+ import { basename as basename2, dirname as dirname5 } from "node:path";
14553
14575
  import {
14554
14576
  tool as tool2
14555
14577
  } from "@opencode-ai/plugin";
@@ -16142,7 +16164,7 @@ async function buildMemoryRuntimeFromConfig(config, deps, options = {}) {
16142
16164
  // package.json
16143
16165
  var package_default = {
16144
16166
  name: "@jmanuelcorral/openteam",
16145
- version: "0.16.1",
16167
+ version: "0.16.3",
16146
16168
  packageManager: "bun@1.3.14",
16147
16169
  description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
16148
16170
  license: "MIT",
@@ -16201,7 +16223,7 @@ var package_default = {
16201
16223
  sideEffects: false,
16202
16224
  scripts: {
16203
16225
  prebuild: "bun run clean",
16204
- build: "bun run build:js && bun run build:cli && bun run build:types",
16226
+ build: "bun run build:js && bun run build:cli && bun run build:types && bun run build:certificates",
16205
16227
  "build:js": "bun build ./src/index.ts --target=node --format=esm --outfile=dist/index.js --external @opencode-ai/plugin --external @opencode-ai/sdk --external zod --external @opentelemetry/api --external @opentelemetry/sdk-trace-base --external @opentelemetry/exporter-trace-otlp-http --external @opentelemetry/resources --external @langchain/langgraph",
16206
16228
  "build:cli": 'bun build ./src/cli.ts --target=node --format=esm --outfile=dist/cli.js --banner "#!/usr/bin/env node" --external @opencode-ai/plugin --external @opencode-ai/sdk --external zod --external @clack/prompts --external @opentelemetry/api --external @opentelemetry/sdk-trace-base --external @opentelemetry/exporter-trace-otlp-http --external @opentelemetry/resources --external @langchain/langgraph',
16207
16229
  "build:types": "tsc -p tsconfig.build.json",
@@ -16210,6 +16232,7 @@ var package_default = {
16210
16232
  "test:cov": "bun test --coverage",
16211
16233
  "certify:shadow": "bun run scripts/certify-artifact.ts shadow",
16212
16234
  "certify:release": "bun run scripts/certify-artifact.ts release",
16235
+ "build:certificates": "bun run certify:shadow && bun run certify:release && bun run scripts/bundle-certificates.ts",
16213
16236
  "coverage:check": "node scripts/check-coverage.mjs",
16214
16237
  typecheck: "tsc --noEmit",
16215
16238
  lint: "biome check .",
@@ -16257,9 +16280,16 @@ function warnSoakEvidenceRejections(result, warn) {
16257
16280
  var SHADOW_CERT_PATH = "artifacts/graph-shadow-certificate.json";
16258
16281
  var RELEASE_CERT_PATH = "artifacts/graph-release-certificate.json";
16259
16282
  var SOAK_CERT_PATH = "artifacts/graph-soak-certificate.json";
16260
- async function readAndParseCertificate(storage, path4, parse2, digestExtractor) {
16283
+ async function readPackagedCertificate(path4) {
16261
16284
  try {
16262
- const content = await storage.read(path4);
16285
+ return await readFile2(new URL(`./certificates/${basename2(path4)}`, import.meta.url), "utf8");
16286
+ } catch {
16287
+ return;
16288
+ }
16289
+ }
16290
+ async function readAndParseCertificate(storage, path4, parse2, digestExtractor, fallbackRead) {
16291
+ try {
16292
+ const content = await storage.read(path4) ?? (fallbackRead === undefined ? undefined : await fallbackRead(path4));
16263
16293
  if (content === undefined) {
16264
16294
  return { status: "absent" };
16265
16295
  }
@@ -16277,18 +16307,16 @@ async function readAndParseCertificate(storage, path4, parse2, digestExtractor)
16277
16307
  return { status: "invalid", code: "read-error", detail: msg };
16278
16308
  }
16279
16309
  }
16280
- async function buildGateInput(config, storage, opencodeVersion, warn) {
16281
- const shadow = await readAndParseCertificate(storage, SHADOW_CERT_PATH, (raw) => parseShadowCertificate(raw, opencodeVersion), (cert) => shadowCertificateBindingDigest(cert.evidence));
16310
+ async function buildGateInput(config, storage, opencodeVersion, warn, packagedRead = readPackagedCertificate) {
16311
+ const shadow = await readAndParseCertificate(storage, SHADOW_CERT_PATH, (raw) => parseShadowCertificate(raw, opencodeVersion), (cert) => shadowCertificateBindingDigest(cert.evidence), packagedRead);
16282
16312
  const shadowDigest = shadow.status === "valid" ? shadow.digest : "0".repeat(64);
16283
- const release = await readAndParseCertificate(storage, RELEASE_CERT_PATH, (raw) => parseReleaseCertificate(raw, opencodeVersion, shadowDigest), (cert) => cert.digest);
16313
+ const release = await readAndParseCertificate(storage, RELEASE_CERT_PATH, (raw) => parseReleaseCertificate(raw, opencodeVersion, shadowDigest), (cert) => cert.digest, packagedRead);
16284
16314
  let soakLedgerDigest = "0".repeat(64);
16285
16315
  try {
16286
16316
  const recorderPorts = recorderPortsFromStorage(storage);
16287
16317
  const chainRead = await readAllChains(recorderPorts, SOAK_EVIDENCE_DIR);
16288
16318
  warnSoakEvidenceRejections(chainRead, warn);
16289
- if (chainRead.chains.length > 0) {
16290
- soakLedgerDigest = canonicalLedger(chainRead.chains);
16291
- }
16319
+ soakLedgerDigest = canonicalLedger(chainRead.chains);
16292
16320
  } catch {}
16293
16321
  const soak = await readAndParseCertificate(storage, SOAK_CERT_PATH, (raw) => parseSoakCertificate(raw, DEFAULT_SOAK_POLICY, soakLedgerDigest), (cert) => cert.digest);
16294
16322
  const migration = "complete";
@@ -16940,7 +16968,7 @@ function createGitLastCommit(exec) {
16940
16968
  // src/cli.ts
16941
16969
  var execFileAsync2 = promisify2(execFile2);
16942
16970
  var execAsync = promisify2(exec);
16943
- var AGENT_DIR2 = dirname5(ORCHESTRATOR_AGENT_PATH);
16971
+ var AGENT_DIR2 = dirname6(ORCHESTRATOR_AGENT_PATH);
16944
16972
  var storage = createFsStorageProvider(process.cwd());
16945
16973
  async function readStoredRosterForDoctor() {
16946
16974
  const content = await storage.read(OPENTEAM_ROSTER_PATH);
@@ -16999,7 +17027,7 @@ async function readConfigFile(path4, resolution) {
16999
17027
  return storage.read(path4);
17000
17028
  }
17001
17029
  try {
17002
- return await readFile2(resolve6(path4), "utf8");
17030
+ return await readFile3(resolve6(path4), "utf8");
17003
17031
  } catch (error) {
17004
17032
  throw new Error(`[openteam] config file named by --config could not be read: ${path4} (${describeFileReadError(error)})`);
17005
17033
  }
@@ -17018,7 +17046,7 @@ async function saveConfig(config, path4, resolution = { explicit: false }) {
17018
17046
  return;
17019
17047
  }
17020
17048
  const diskPath = resolve6(path4);
17021
- await mkdir2(dirname5(diskPath), { recursive: true });
17049
+ await mkdir2(dirname6(diskPath), { recursive: true });
17022
17050
  await writeFile2(diskPath, `${JSON.stringify(config, null, 2)}
17023
17051
  `, "utf8");
17024
17052
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/commands/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/commands/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAOjE,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAM3D,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EAEZ,aAAa,EACd,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,KAAK,SAAS,EASf,MAAM,UAAU,CAAC;AAOlB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,iBAAiB,EAEvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,KAAK,mBAAmB,EAMzB,MAAM,SAAS,CAAC;AASjB,OAAO,EAKL,KAAK,YAAY,EAElB,MAAM,SAAS,CAAC;AAMjB,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,UAAU,EAAE,CACV,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,KAAK,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACnE,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACvD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACpD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IACjE;;;;OAIG;IACH,WAAW,CAAC,EAAE,CACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,KACzD,iBAAiB,CAAC;IACvB;;;;OAIG;IACH,kBAAkB,EAAE,CAClB,KAAK,EAAE,SAAS,MAAM,EAAE,KACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAClD,mBAAmB,EAAE,CACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;;OAIG;IACH,0BAA0B,EAAE,CAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,KACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjC,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACtD,iBAAiB,EAAE,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;IACnE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3D;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,CACd,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5E,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,YAAY,CAAC;CAC5E,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAgtBF,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,0DAA0D;AAC1D,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAEzE,+EAA+E;AAC/E,MAAM,MAAM,WAAW,GAAG;IACxB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAKF,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAiBxD;AAED,0DAA0D;AAC1D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,WAAW,EAAE,GAC5B,WAAW,EAAE,CAEf;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQtE;AAED,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,WAAW,GACX,aAAa,CAAC;AAElB,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CAClC,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,CAiBvE;AAED,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAgBnD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAqEtE;AAED,uEAAuE;AACvE,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC;CACtC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,oEAAoE;IACpE,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChD,mFAAmF;IACnF,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,wEAAwE;IACxE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,4EAA4E;IAC5E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD,gDAAgD;IAChD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,yEAAyE;IACzE,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAClD,CAAC;AAyBF,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACvD,CAAC;AAaF,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAuBrD;AA2HD,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAsUpB"}
@@ -78,9 +78,11 @@ export type GraphStatusGate = {
78
78
  readonly kind: "not-applicable";
79
79
  } | {
80
80
  readonly kind: "passed";
81
+ readonly advisories?: readonly GateViolation[];
81
82
  } | {
82
83
  readonly kind: "denied";
83
84
  readonly violations: readonly GateViolation[];
85
+ readonly advisories?: readonly GateViolation[];
84
86
  } | {
85
87
  readonly kind: "unevaluable";
86
88
  readonly reason: string;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE;;;;;;;;;;;;;;GAcG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExE,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAUF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAuB9D;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,GAAE,eAA4C,GACjD,MAAM,CAyBR;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,mBAAwB,GAChC,eAAe,CAejB;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAejB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAoBR"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE;;;;;;;;;;;;;;GAcG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExE,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAUF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAC3E;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChD,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAoC9D;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,GAAE,eAA4C,GACjD,MAAM,CAyBR;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,mBAAwB,GAChC,eAAe,CAejB;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAejB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAoBR"}
@@ -37,6 +37,22 @@
37
37
  * 4. **Absence is not zero — it's a distinct failure.** Missing, unreadable,
38
38
  * expired, and invalid certificates are all distinguished so the operator
39
39
  * gets the right remediation advice.
40
+ *
41
+ * 5. **The soak certificate is advisory, not blocking.** Unlike shadow and
42
+ * release — which certify properties of the *shipped engine* and are
43
+ * therefore stable for a given release — the soak certificate binds its
44
+ * digest to the ledger of soak evidence held *locally* by the installation.
45
+ * That evidence grows every session (`plugin/soakObserver.ts` appends
46
+ * observations at runtime), so any soak certificate is invalidated with
47
+ * `ledger-mismatch` as soon as the operator uses the plugin. Enforcing it
48
+ * would mean `active` mode survives at most until the next observation is
49
+ * recorded, and no passing soak certificate has ever been produced (CI
50
+ * asserts `SOAK_EXPECTED_VERDICT=fail`). Blocking on a condition that no
51
+ * installation can hold stably is not a safety guarantee — it is an
52
+ * unreachable mode dressed as one. We report it loudly and let shadow,
53
+ * release, migration, and operator approval carry the gate. Restore it to
54
+ * blocking once the soak pipeline can be satisfied and re-certified by a
55
+ * real installation.
40
56
  */
41
57
  /** Status of a certificate after the wiring layer attempted to parse it. */
42
58
  export type CertificateStatus = {
@@ -78,19 +94,25 @@ export type GateViolation = {
78
94
  };
79
95
  /** Result of evaluating the cutover gate. */
80
96
  export type GraphGateResult = {
81
- /** `true` only when every condition is satisfied. */
97
+ /** `true` only when every *blocking* condition is satisfied. */
82
98
  readonly allowed: boolean;
83
- /** All violations found, even when `allowed` is already `false`. */
99
+ /** All blocking violations found, even when `allowed` is already `false`. */
84
100
  readonly violations: readonly GateViolation[];
101
+ /**
102
+ * Non-blocking findings. Reported to the operator with the same detail as a
103
+ * violation, but they do not close the gate. See design decision 5.
104
+ */
105
+ readonly advisories: readonly GateViolation[];
85
106
  };
86
107
  /**
87
108
  * Evaluates the cutover gate. Pure and deterministic: same inputs always
88
109
  * produce the same result.
89
110
  *
90
- * All five conditions are **independently necessary**: shadow, release, soak,
91
- * migration, and operator approval. A single missing condition closes the gate.
92
- * All violations are collected (not short-circuited) so the operator sees
93
- * everything that needs fixing.
111
+ * Four conditions are **independently necessary** and block the gate: shadow,
112
+ * release, migration, and operator approval. A single missing condition closes
113
+ * the gate. The soak certificate is evaluated but reported as a *non-blocking
114
+ * advisory* — see design decision 5. All findings are collected (not
115
+ * short-circuited) so the operator sees everything that needs fixing.
94
116
  */
95
117
  export declare function evaluateGraphGate(input: GraphGateInput): GraphGateResult;
96
118
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"graphFeatureGate.d.ts","sourceRoot":"","sources":["../../src/config/graphFeatureGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIN;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAIjE,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC,CAAC;AAIF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,2BAA2B,GAC3B,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,yBAAyB,GACzB,0BAA0B,GAC1B,mBAAmB,GACnB,mBAAmB,GACnB,2BAA2B,CAAC;AAEhC,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIF,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C,CAAC;AAuBF;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAyCxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAE3E"}
1
+ {"version":3,"file":"graphFeatureGate.d.ts","sourceRoot":"","sources":["../../src/config/graphFeatureGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAIH,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIN;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAIjE,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC,CAAC;AAIF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,2BAA2B,GAC3B,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,yBAAyB,GACzB,0BAA0B,GAC1B,mBAAmB,GACnB,mBAAmB,GACnB,2BAA2B,CAAC;AAEhC,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIF,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C,CAAC;AAuBF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CA4CxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAE3E"}
package/dist/index.d.ts CHANGED
@@ -27,6 +27,24 @@ export declare function warnNoRuntimeConfigFound(paths: readonly string[], optio
27
27
  */
28
28
  export declare function warnInertPrivacySetting(paths: readonly string[], warn?: (message?: unknown) => void): void;
29
29
  export declare function warnSoakEvidenceRejections(result: ReadAllChainsResult, warn?: (message?: unknown) => void): void;
30
+ /**
31
+ * Reads a certificate that ships inside the installed package.
32
+ *
33
+ * Shadow and release certificates certify properties of the *shipped engine*
34
+ * (determinism, replay equivalence, crash recovery, privacy, performance) —
35
+ * they are facts about the code, not about the operator's project. Before this
36
+ * existed they were only ever read from `artifacts/` relative to the operator's
37
+ * working directory, where they never exist outside this repository, so
38
+ * `active` mode was unreachable for every installed user.
39
+ *
40
+ * The soak certificate is deliberately NOT resolved here: its digest binds to
41
+ * the operator's local evidence ledger, so a packaged copy would be invalid the
42
+ * moment the plugin records an observation.
43
+ *
44
+ * Returns `undefined` when the package carries no certificate — for example in
45
+ * a source checkout, where `import.meta.url` points at `src/`. Never throws.
46
+ */
47
+ export declare function readPackagedCertificate(path: string): Promise<string | undefined>;
30
48
  /**
31
49
  * Reads the opencode server version from the `/global/health` endpoint.
32
50
  *
@@ -85,7 +103,7 @@ export declare function createLazyOpencodeVersionReader(serverUrl: URL, options?
85
103
  * (could not be determined), no certificate can match, so the gate fails
86
104
  * closed.
87
105
  */
88
- export declare function buildGateInput(config: OpenTeamConfig, storage: StorageProvider, opencodeVersion: LiveOpencodeVersion, warn?: (message?: unknown) => void): Promise<GraphGateInput>;
106
+ export declare function buildGateInput(config: OpenTeamConfig, storage: StorageProvider, opencodeVersion: LiveOpencodeVersion, warn?: (message?: unknown) => void, packagedRead?: (path: string) => Promise<string | undefined>): Promise<GraphGateInput>;
89
107
  /**
90
108
  * Human-readable reason attached to an `unevaluable` cutover-gate result when
91
109
  * the opencode version could not be resolved for a DIAGNOSTIC (`graph status`).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,7 +2,8 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/index.ts
5
- import { dirname as dirname4 } from "node:path";
5
+ import { readFile as readFile2 } from "node:fs/promises";
6
+ import { basename as basename2, dirname as dirname4 } from "node:path";
6
7
  import {
7
8
  tool as tool6
8
9
  } from "@opencode-ai/plugin";
@@ -2449,7 +2450,11 @@ function splitVirtualPath(path) {
2449
2450
  }
2450
2451
 
2451
2452
  // src/cli/graphOperator.ts
2452
- var ALLOWED_GATE = { allowed: true, violations: [] };
2453
+ var ALLOWED_GATE = {
2454
+ allowed: true,
2455
+ violations: [],
2456
+ advisories: []
2457
+ };
2453
2458
  var ALLOWED_EVALUATION = {
2454
2459
  kind: "evaluated",
2455
2460
  gate: ALLOWED_GATE
@@ -2982,6 +2987,7 @@ var ModelCapabilityProfileSchema = z10.object({
2982
2987
  var DIAGNOSTIC_CODES = [
2983
2988
  "availability-refresh-failed",
2984
2989
  "config-missing",
2990
+ "graph-gate-advisory",
2985
2991
  "graph-gate-denied",
2986
2992
  "memory-extraction-warning",
2987
2993
  "memory-runtime-warning",
@@ -2999,6 +3005,8 @@ function diagnosticDescription(code) {
2999
3005
  return "Local runtime availability refresh failed; routing will continue with the previous or empty availability snapshot.";
3000
3006
  case "config-missing":
3001
3007
  return "openteam did not find its runtime config file; defaults or plugin options were used.";
3008
+ case "graph-gate-advisory":
3009
+ return "The graph cutover gate reported a non-blocking advisory; a certificate condition is unverified. This does not by itself deny active mode. Run `openteam graph status` for the specific advisory.";
3002
3010
  case "graph-gate-denied":
3003
3011
  return "The graph cutover gate denied active mode and openteam degraded graph mode to off.";
3004
3012
  case "memory-extraction-warning":
@@ -4185,6 +4193,7 @@ function checkCertificate(status, name) {
4185
4193
  }
4186
4194
  function evaluateGraphGate(input) {
4187
4195
  const violations = [];
4196
+ const advisories = [];
4188
4197
  const shadowV = checkCertificate(input.shadow, "shadow");
4189
4198
  if (shadowV !== undefined)
4190
4199
  violations.push(shadowV);
@@ -4193,7 +4202,7 @@ function evaluateGraphGate(input) {
4193
4202
  violations.push(releaseV);
4194
4203
  const soakV = checkCertificate(input.soak, "soak");
4195
4204
  if (soakV !== undefined)
4196
- violations.push(soakV);
4205
+ advisories.push(soakV);
4197
4206
  if (input.migration === "pending") {
4198
4207
  violations.push({
4199
4208
  code: "migration-pending",
@@ -4213,7 +4222,8 @@ function evaluateGraphGate(input) {
4213
4222
  }
4214
4223
  return {
4215
4224
  allowed: violations.length === 0,
4216
- violations
4225
+ violations,
4226
+ advisories
4217
4227
  };
4218
4228
  }
4219
4229
  function isGateApplicable(mode) {
@@ -8592,12 +8602,18 @@ function leaseLine(lease) {
8592
8602
  const state = lease.released ? "released" : "active";
8593
8603
  return ` lease: ${lease.holder} → ${lease.runID} (${state})`;
8594
8604
  }
8605
+ function appendAdvisoryLines(lines, advisories) {
8606
+ for (const advisory of advisories ?? []) {
8607
+ lines.push(` ⚠ advisory (non-blocking) ${advisory.code}: ${advisory.detail}`);
8608
+ }
8609
+ }
8595
8610
  function appendEffectiveLines(lines, gate) {
8596
8611
  switch (gate.kind) {
8597
8612
  case "not-applicable":
8598
8613
  return;
8599
8614
  case "passed":
8600
8615
  lines.push(" effective: active");
8616
+ appendAdvisoryLines(lines, gate.advisories);
8601
8617
  return;
8602
8618
  case "unevaluable":
8603
8619
  lines.push(" effective: unknown — could not evaluate the cutover gate");
@@ -8608,6 +8624,7 @@ function appendEffectiveLines(lines, gate) {
8608
8624
  for (const violation of gate.violations) {
8609
8625
  lines.push(` • ${violation.code}: ${violation.detail}`);
8610
8626
  }
8627
+ appendAdvisoryLines(lines, gate.advisories);
8611
8628
  }
8612
8629
  }
8613
8630
  function renderGraphStatus(snapshot, gate = { kind: "not-applicable" }) {
@@ -10116,7 +10133,7 @@ async function resolveOperatorGraphPolicy(config, operator) {
10116
10133
  let graph = resolveGraphConfig(config, "file");
10117
10134
  if (isGateApplicable(graph.effectiveMode)) {
10118
10135
  const evaluation = await operator.evaluateCutoverGate(config);
10119
- const gate = evaluation.kind === "evaluated" ? evaluation.gate : { allowed: false, violations: [] };
10136
+ const gate = evaluation.kind === "evaluated" ? evaluation.gate : { allowed: false, violations: [], advisories: [] };
10120
10137
  graph = applyGraphGate(graph, gate);
10121
10138
  }
10122
10139
  return {
@@ -10158,7 +10175,11 @@ async function runGraphStatus(deps, configPath, configResolution) {
10158
10175
  return { exitCode: 0, stdout: renderGraphStatus(snapshot, gate2) };
10159
10176
  }
10160
10177
  const resolved = applyGraphGate(resolveGraphConfig(config, "file"), evaluation.gate);
10161
- const gate = resolved.gateDenied === true ? { kind: "denied", violations: resolved.gateViolations ?? [] } : { kind: "passed" };
10178
+ const gate = resolved.gateDenied === true ? {
10179
+ kind: "denied",
10180
+ violations: resolved.gateViolations ?? [],
10181
+ advisories: evaluation.gate.advisories
10182
+ } : { kind: "passed", advisories: evaluation.gate.advisories };
10162
10183
  return { exitCode: 0, stdout: renderGraphStatus(snapshot, gate) };
10163
10184
  }
10164
10185
  async function runGraphCancel(positionals, deps, configPath, configResolution) {
@@ -13489,7 +13510,7 @@ var createOtlpSpanExporter = (connection, config) => {
13489
13510
  // package.json
13490
13511
  var package_default = {
13491
13512
  name: "@jmanuelcorral/openteam",
13492
- version: "0.16.1",
13513
+ version: "0.16.3",
13493
13514
  packageManager: "bun@1.3.14",
13494
13515
  description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
13495
13516
  license: "MIT",
@@ -13548,7 +13569,7 @@ var package_default = {
13548
13569
  sideEffects: false,
13549
13570
  scripts: {
13550
13571
  prebuild: "bun run clean",
13551
- build: "bun run build:js && bun run build:cli && bun run build:types",
13572
+ build: "bun run build:js && bun run build:cli && bun run build:types && bun run build:certificates",
13552
13573
  "build:js": "bun build ./src/index.ts --target=node --format=esm --outfile=dist/index.js --external @opencode-ai/plugin --external @opencode-ai/sdk --external zod --external @opentelemetry/api --external @opentelemetry/sdk-trace-base --external @opentelemetry/exporter-trace-otlp-http --external @opentelemetry/resources --external @langchain/langgraph",
13553
13574
  "build:cli": 'bun build ./src/cli.ts --target=node --format=esm --outfile=dist/cli.js --banner "#!/usr/bin/env node" --external @opencode-ai/plugin --external @opencode-ai/sdk --external zod --external @clack/prompts --external @opentelemetry/api --external @opentelemetry/sdk-trace-base --external @opentelemetry/exporter-trace-otlp-http --external @opentelemetry/resources --external @langchain/langgraph',
13554
13575
  "build:types": "tsc -p tsconfig.build.json",
@@ -13557,6 +13578,7 @@ var package_default = {
13557
13578
  "test:cov": "bun test --coverage",
13558
13579
  "certify:shadow": "bun run scripts/certify-artifact.ts shadow",
13559
13580
  "certify:release": "bun run scripts/certify-artifact.ts release",
13581
+ "build:certificates": "bun run certify:shadow && bun run certify:release && bun run scripts/bundle-certificates.ts",
13560
13582
  "coverage:check": "node scripts/check-coverage.mjs",
13561
13583
  typecheck: "tsc --noEmit",
13562
13584
  lint: "biome check .",
@@ -13665,9 +13687,16 @@ function warnSoakEvidenceRejections(result, warn) {
13665
13687
  var SHADOW_CERT_PATH = "artifacts/graph-shadow-certificate.json";
13666
13688
  var RELEASE_CERT_PATH = "artifacts/graph-release-certificate.json";
13667
13689
  var SOAK_CERT_PATH = "artifacts/graph-soak-certificate.json";
13668
- async function readAndParseCertificate(storage, path4, parse2, digestExtractor) {
13690
+ async function readPackagedCertificate(path4) {
13669
13691
  try {
13670
- const content = await storage.read(path4);
13692
+ return await readFile2(new URL(`./certificates/${basename2(path4)}`, import.meta.url), "utf8");
13693
+ } catch {
13694
+ return;
13695
+ }
13696
+ }
13697
+ async function readAndParseCertificate(storage, path4, parse2, digestExtractor, fallbackRead) {
13698
+ try {
13699
+ const content = await storage.read(path4) ?? (fallbackRead === undefined ? undefined : await fallbackRead(path4));
13671
13700
  if (content === undefined) {
13672
13701
  return { status: "absent" };
13673
13702
  }
@@ -13835,18 +13864,16 @@ function createLazyOpencodeVersionReader(serverUrl, options = {}) {
13835
13864
  }
13836
13865
  };
13837
13866
  }
13838
- async function buildGateInput(config, storage, opencodeVersion, warn) {
13839
- const shadow = await readAndParseCertificate(storage, SHADOW_CERT_PATH, (raw) => parseShadowCertificate(raw, opencodeVersion), (cert) => shadowCertificateBindingDigest(cert.evidence));
13867
+ async function buildGateInput(config, storage, opencodeVersion, warn, packagedRead = readPackagedCertificate) {
13868
+ const shadow = await readAndParseCertificate(storage, SHADOW_CERT_PATH, (raw) => parseShadowCertificate(raw, opencodeVersion), (cert) => shadowCertificateBindingDigest(cert.evidence), packagedRead);
13840
13869
  const shadowDigest = shadow.status === "valid" ? shadow.digest : "0".repeat(64);
13841
- const release = await readAndParseCertificate(storage, RELEASE_CERT_PATH, (raw) => parseReleaseCertificate(raw, opencodeVersion, shadowDigest), (cert) => cert.digest);
13870
+ const release = await readAndParseCertificate(storage, RELEASE_CERT_PATH, (raw) => parseReleaseCertificate(raw, opencodeVersion, shadowDigest), (cert) => cert.digest, packagedRead);
13842
13871
  let soakLedgerDigest = "0".repeat(64);
13843
13872
  try {
13844
13873
  const recorderPorts = recorderPortsFromStorage(storage);
13845
13874
  const chainRead = await readAllChains(recorderPorts, SOAK_EVIDENCE_DIR);
13846
13875
  warnSoakEvidenceRejections(chainRead, warn);
13847
- if (chainRead.chains.length > 0) {
13848
- soakLedgerDigest = canonicalLedger(chainRead.chains);
13849
- }
13876
+ soakLedgerDigest = canonicalLedger(chainRead.chains);
13850
13877
  } catch {}
13851
13878
  const soak = await readAndParseCertificate(storage, SOAK_CERT_PATH, (raw) => parseSoakCertificate(raw, DEFAULT_SOAK_POLICY, soakLedgerDigest), (cert) => cert.digest);
13852
13879
  const migration = "complete";
@@ -14188,12 +14215,11 @@ var server = async (ctx, rawOptions) => {
14188
14215
  const gateInput = await buildGateInput(config, storage, opencodeVersion, diagnostics.warn("soak-evidence-rejected", { toast: false }));
14189
14216
  const gateResult = evaluateGraphGate(gateInput);
14190
14217
  graphConfig = applyGraphGate(graphConfig, gateResult);
14191
- if (graphConfig.gateDenied === true && graphConfig.gateViolations !== undefined) {
14192
- const graphGateWarn = diagnostics.warn("graph-gate-denied");
14193
- graphGateWarn("[openteam] ⛔ cutover gate denied active mode — degrading to off");
14194
- for (const v of graphConfig.gateViolations) {
14195
- graphGateWarn(`[openteam] • ${v.code}: ${v.detail}`);
14196
- }
14218
+ if (graphConfig.gateDenied === true) {
14219
+ diagnostics.warn("graph-gate-denied")();
14220
+ }
14221
+ if (gateResult.advisories.length > 0) {
14222
+ diagnostics.warn("graph-gate-advisory", { toast: false })();
14197
14223
  }
14198
14224
  }
14199
14225
  let shadowDeps;
@@ -14341,6 +14367,7 @@ export {
14341
14367
  warnInertPrivacySetting,
14342
14368
  server,
14343
14369
  recorderPortsFromStorage,
14370
+ readPackagedCertificate,
14344
14371
  readOpencodeVersion,
14345
14372
  logTelemetryWarning,
14346
14373
  logTelemetryError,
@@ -1,4 +1,4 @@
1
- export declare const DIAGNOSTIC_CODES: readonly ["availability-refresh-failed", "config-missing", "graph-gate-denied", "memory-extraction-warning", "memory-runtime-warning", "opencode-server-url", "opencode-version-read-failed", "privacy-inert", "soak-evidence-rejected", "telemetry-warning", "telemetry-write-failed", "unknown-role"];
1
+ export declare const DIAGNOSTIC_CODES: readonly ["availability-refresh-failed", "config-missing", "graph-gate-advisory", "graph-gate-denied", "memory-extraction-warning", "memory-runtime-warning", "opencode-server-url", "opencode-version-read-failed", "privacy-inert", "soak-evidence-rejected", "telemetry-warning", "telemetry-write-failed", "unknown-role"];
2
2
  export type DiagnosticCode = (typeof DIAGNOSTIC_CODES)[number];
3
3
  /**
4
4
  * Static, content-free summaries for plugin diagnostics. These strings are safe
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/telemetry/diagnostics.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,8BAA8B,EAC9B,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,CACN,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CA2BlE"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/telemetry/diagnostics.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,8BAA8B,EAC9B,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,CACN,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CA6BlE"}
@@ -198,6 +198,7 @@ export declare const DiagnosticLevelSchema: z.ZodEnum<{
198
198
  export declare const DiagnosticCodeSchema: z.ZodEnum<{
199
199
  "availability-refresh-failed": "availability-refresh-failed";
200
200
  "config-missing": "config-missing";
201
+ "graph-gate-advisory": "graph-gate-advisory";
201
202
  "graph-gate-denied": "graph-gate-denied";
202
203
  "memory-extraction-warning": "memory-extraction-warning";
203
204
  "memory-runtime-warning": "memory-runtime-warning";
@@ -223,6 +224,7 @@ export declare const DiagnosticEventSchema: z.ZodObject<{
223
224
  code: z.ZodEnum<{
224
225
  "availability-refresh-failed": "availability-refresh-failed";
225
226
  "config-missing": "config-missing";
227
+ "graph-gate-advisory": "graph-gate-advisory";
226
228
  "graph-gate-denied": "graph-gate-denied";
227
229
  "memory-extraction-warning": "memory-extraction-warning";
228
230
  "memory-runtime-warning": "memory-runtime-warning";
@@ -380,6 +382,7 @@ export declare const OpenTeamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
380
382
  code: z.ZodEnum<{
381
383
  "availability-refresh-failed": "availability-refresh-failed";
382
384
  "config-missing": "config-missing";
385
+ "graph-gate-advisory": "graph-gate-advisory";
383
386
  "graph-gate-denied": "graph-gate-denied";
384
387
  "memory-extraction-warning": "memory-extraction-warning";
385
388
  "memory-runtime-warning": "memory-runtime-warning";
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAG,CAAU,CAAC;AAa/C,iEAAiE;AACjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqB3B,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;kBAc7B,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,mBAAmB;;;;;;;;;;;kBAS9B,CAAC;AAEH,iEAAiE;AACjE,eAAO,MAAM,kBAAkB;;;;;;;;;kBAM7B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;kBAgB3B,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;kBAK9B,CAAC;AAEH,oDAAoD;AACpD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;kBAK9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;kBAMrC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;kBActC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;EAA6C,CAAC;AAChF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;EAA2B,CAAC;AAC7D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;kBAIhC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAW9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAG,CAAU,CAAC;AAa/C,iEAAiE;AACjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqB3B,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;kBAc7B,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,mBAAmB;;;;;;;;;;;kBAS9B,CAAC;AAEH,iEAAiE;AACjE,eAAO,MAAM,kBAAkB;;;;;;;;;kBAM7B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;kBAgB3B,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;kBAK9B,CAAC;AAEH,oDAAoD;AACpD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;kBAK9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;kBAMrC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;kBActC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;EAA6C,CAAC;AAChF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;EAA2B,CAAC;AAC7D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;kBAIhC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAW9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmanuelcorral/openteam",
3
- "version": "0.16.1",
3
+ "version": "0.16.3",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
6
6
  "license": "MIT",
@@ -59,7 +59,7 @@
59
59
  "sideEffects": false,
60
60
  "scripts": {
61
61
  "prebuild": "bun run clean",
62
- "build": "bun run build:js && bun run build:cli && bun run build:types",
62
+ "build": "bun run build:js && bun run build:cli && bun run build:types && bun run build:certificates",
63
63
  "build:js": "bun build ./src/index.ts --target=node --format=esm --outfile=dist/index.js --external @opencode-ai/plugin --external @opencode-ai/sdk --external zod --external @opentelemetry/api --external @opentelemetry/sdk-trace-base --external @opentelemetry/exporter-trace-otlp-http --external @opentelemetry/resources --external @langchain/langgraph",
64
64
  "build:cli": "bun build ./src/cli.ts --target=node --format=esm --outfile=dist/cli.js --banner \"#!/usr/bin/env node\" --external @opencode-ai/plugin --external @opencode-ai/sdk --external zod --external @clack/prompts --external @opentelemetry/api --external @opentelemetry/sdk-trace-base --external @opentelemetry/exporter-trace-otlp-http --external @opentelemetry/resources --external @langchain/langgraph",
65
65
  "build:types": "tsc -p tsconfig.build.json",
@@ -68,6 +68,7 @@
68
68
  "test:cov": "bun test --coverage",
69
69
  "certify:shadow": "bun run scripts/certify-artifact.ts shadow",
70
70
  "certify:release": "bun run scripts/certify-artifact.ts release",
71
+ "build:certificates": "bun run certify:shadow && bun run certify:release && bun run scripts/bundle-certificates.ts",
71
72
  "coverage:check": "node scripts/check-coverage.mjs",
72
73
  "typecheck": "tsc --noEmit",
73
74
  "lint": "biome check .",