@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 +1 -1
- package/README.md +1 -1
- package/dist/certificates/graph-release-certificate.json +45 -0
- package/dist/certificates/graph-shadow-certificate.json +39 -0
- package/dist/cli/graphOperator.d.ts.map +1 -1
- package/dist/cli.js +48 -20
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/graph.d.ts +2 -0
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/config/graphFeatureGate.d.ts +28 -6
- package/dist/config/graphFeatureGate.d.ts.map +1 -1
- package/dist/index.d.ts +19 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -22
- package/dist/telemetry/diagnostics.d.ts +1 -1
- package/dist/telemetry/diagnostics.d.ts.map +1 -1
- package/dist/telemetry/events.d.ts +3 -0
- package/dist/telemetry/events.d.ts.map +1 -1
- package/package.json +3 -2
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.
|
|
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.
|
|
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;
|
|
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
|
|
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
|
|
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 = {
|
|
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
|
-
|
|
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 ? {
|
|
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.
|
|
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
|
|
16283
|
+
async function readPackagedCertificate(path4) {
|
|
16261
16284
|
try {
|
|
16262
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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(
|
|
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":"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"}
|
package/dist/commands/graph.d.ts
CHANGED
|
@@ -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,
|
|
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
|
-
*
|
|
91
|
-
* migration, and operator approval. A single missing condition closes
|
|
92
|
-
*
|
|
93
|
-
*
|
|
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
|
|
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`).
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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 = {
|
|
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
|
-
|
|
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 ? {
|
|
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.
|
|
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
|
|
13690
|
+
async function readPackagedCertificate(path4) {
|
|
13669
13691
|
try {
|
|
13670
|
-
|
|
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
|
-
|
|
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
|
|
14192
|
-
|
|
14193
|
-
|
|
14194
|
-
|
|
14195
|
-
|
|
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,
|
|
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
|
|
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.
|
|
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 .",
|