@shield-agent/kya 0.1.19 → 0.1.21

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.
Files changed (44) hide show
  1. package/.mcp.json +1 -1
  2. package/README.md +7 -4
  3. package/claude/claude_desktop_config.example.json +1 -1
  4. package/dist/commands/dash.d.ts.map +1 -1
  5. package/dist/commands/dash.js +192 -40
  6. package/dist/commands/dash.js.map +1 -1
  7. package/dist/commands/orr.d.ts +3 -0
  8. package/dist/commands/orr.d.ts.map +1 -1
  9. package/dist/commands/orr.js +23 -51
  10. package/dist/commands/orr.js.map +1 -1
  11. package/dist/dash/dash.d.ts +4 -0
  12. package/dist/dash/dash.d.ts.map +1 -1
  13. package/dist/dash/dash.js +21 -4
  14. package/dist/dash/dash.js.map +1 -1
  15. package/dist/dash/entitlement.d.ts +1 -1
  16. package/dist/dash/entitlement.d.ts.map +1 -1
  17. package/dist/dash/entitlement.js +1 -0
  18. package/dist/dash/entitlement.js.map +1 -1
  19. package/dist/dash/input.d.ts +1 -1
  20. package/dist/dash/input.d.ts.map +1 -1
  21. package/dist/dash/input.js +11 -0
  22. package/dist/dash/input.js.map +1 -1
  23. package/dist/dash/policy-cache.d.ts +18 -0
  24. package/dist/dash/policy-cache.d.ts.map +1 -0
  25. package/dist/dash/policy-cache.js +37 -0
  26. package/dist/dash/policy-cache.js.map +1 -0
  27. package/dist/dash/render.d.ts.map +1 -1
  28. package/dist/dash/render.js +3 -2
  29. package/dist/dash/render.js.map +1 -1
  30. package/dist/dash/screens/free.d.ts +9 -1
  31. package/dist/dash/screens/free.d.ts.map +1 -1
  32. package/dist/dash/screens/free.js +24 -7
  33. package/dist/dash/screens/free.js.map +1 -1
  34. package/dist/orr/scorecard.d.ts +30 -0
  35. package/dist/orr/scorecard.d.ts.map +1 -0
  36. package/dist/orr/scorecard.js +107 -0
  37. package/dist/orr/scorecard.js.map +1 -0
  38. package/gemini/settings.example.json +1 -1
  39. package/grok/README.md +1 -1
  40. package/manifest.json +1 -1
  41. package/mcp.json +1 -1
  42. package/openai/codex.config.example.toml +1 -1
  43. package/package.json +1 -1
  44. package/server.json +2 -2
package/.mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "shield-kya": {
4
4
  "command": "npx",
5
- "args": ["--no-install", "@shield-agent/kya@0.1.19", "serve-mcp", "--stdio"],
5
+ "args": ["--no-install", "@shield-agent/kya@0.1.21", "serve-mcp", "--stdio"],
6
6
  "env": {
7
7
  "KYA_BASE_URL": "https://shield-agent.com",
8
8
  "KYA_API_KEY": "${KYA_API_KEY}",
package/README.md CHANGED
@@ -33,10 +33,13 @@ npx @shield-agent/kya register-agent --name solo-builder --version-hash dev-loca
33
33
  npx @shield-agent/kya eval-tool --tool-id org.sample.never.event --irreversible
34
34
  npx @shield-agent/kya serve-mcp --stdio
35
35
 
36
- # Terminal dashboard (free panes; --offline works without a key)
36
+ # Terminal desk (FREE personal panes; --offline works without a key)
37
37
  npx @shield-agent/kya dash --once --offline
38
+ # Interactive TTY: 1-8 panes, e force-eval, p auto-refresh, y confirms kill/shrink/decide
39
+ npx @shield-agent/kya dash
38
40
  ```
39
41
 
42
+
40
43
  Install hub: [https://shield-agent.com/install](https://shield-agent.com/install)
41
44
 
42
45
  ## Dual plane
@@ -79,7 +82,7 @@ MCP Registry entry: `server.json` plus package `mcpName` `io.github.The-Pixel-Bo
79
82
  "mcpServers": {
80
83
  "shield-kya": {
81
84
  "command": "npx",
82
- "args": ["--no-install", "@shield-agent/kya@0.1.19", "serve-mcp", "--stdio"],
85
+ "args": ["--no-install", "@shield-agent/kya@0.1.21", "serve-mcp", "--stdio"],
83
86
  "env": {
84
87
  "KYA_BASE_URL": "http://127.0.0.1:8090",
85
88
  "KYA_API_KEY": "${KYA_API_KEY}",
@@ -106,7 +109,7 @@ npx @shield-agent/kya reject --id <approval-id>
106
109
 
107
110
  ```bash
108
111
  # Prefer a preinstalled package (no registry auto-install):
109
- npx --no-install @shield-agent/kya@0.1.19 serve-mcp --stdio
112
+ npx --no-install @shield-agent/kya@0.1.21 serve-mcp --stdio
110
113
  # Or after npm i -g / local install:
111
114
  kya serve-mcp --stdio
112
115
  ```
@@ -117,7 +120,7 @@ Copy `claude/claude_desktop_config.example.json` into Claude Desktop MCP setting
117
120
 
118
121
  ## OpenAI (Codex / Responses)
119
122
 
120
- **Codex CLI / IDE:** copy `openai/codex.config.example.toml` into `~/.codex/config.toml`. Local stdio uses `npx --no-install @shield-agent/kya@0.1.19 serve-mcp --stdio`. Hosted Codex uses `url = "https://shield-agent.com/mcp"` with `bearer_token_env_var = "KYA_API_KEY"`.
123
+ **Codex CLI / IDE:** copy `openai/codex.config.example.toml` into `~/.codex/config.toml`. Local stdio uses `npx --no-install @shield-agent/kya@0.1.21 serve-mcp --stdio`. Hosted Codex uses `url = "https://shield-agent.com/mcp"` with `bearer_token_env_var = "KYA_API_KEY"`.
121
124
 
122
125
  **Responses API:** see `openai/responses-mcp.example.json` (`server_url` + `Authorization: Bearer <KYA_API_KEY>`).
123
126
 
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "shield-kya": {
4
4
  "command": "npx",
5
- "args": ["--no-install", "@shield-agent/kya@0.1.19", "serve-mcp", "--stdio"],
5
+ "args": ["--no-install", "@shield-agent/kya@0.1.21", "serve-mcp", "--stdio"],
6
6
  "env": {
7
7
  "KYA_BASE_URL": "https://shield-agent.com",
8
8
  "KYA_API_KEY": "${KYA_API_KEY}",
@@ -1 +1 @@
1
- {"version":3,"file":"dash.d.ts","sourceRoot":"","sources":["../../src/commands/dash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAoC1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAkBA;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAiLjB"}
1
+ {"version":3,"file":"dash.d.ts","sourceRoot":"","sources":["../../src/commands/dash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA2C1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAkBA;AAOD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAoTjB"}
@@ -5,19 +5,23 @@ import { AuthRequiredError } from "../errors.js";
5
5
  import { flagBool, flagString } from "../parse-args.js";
6
6
  import { renderDash } from "../dash/dash.js";
7
7
  import { mapKey } from "../dash/input.js";
8
+ import { PolicySampleCache } from "../dash/policy-cache.js";
8
9
  import { runWrap, wrapExitCode } from "./wrap.js";
9
10
  import { runInvoke } from "./invoke.js";
10
11
  import { runKillAgent, runShrinkSession } from "./ops.js";
11
12
  import { runOrr } from "./orr.js";
12
- function deskOrr(cwd) {
13
+ const AUTO_REFRESH_MS = 5_000;
14
+ const ORR_PRODUCERS = ["sa.first_party", "openssf.scorecard"];
15
+ function deskOrr(cwd, producer) {
16
+ const producers = producer === "sa.first_party" ? ["sa.first_party"] : ["sa.first_party", producer];
13
17
  return runOrr({
14
18
  path: cwd,
15
19
  out: `${cwd}/orr-report`,
16
20
  rubric: "0",
17
21
  disableCategories: [],
18
22
  formats: ["json", "md"],
19
- producers: ["sa.first_party"],
20
- skipOptionalProducers: true,
23
+ producers: [...producers],
24
+ skipOptionalProducers: producer === "sa.first_party",
21
25
  quiet: true,
22
26
  jsonStdout: false,
23
27
  });
@@ -30,6 +34,7 @@ const PANES = [
30
34
  "sessions",
31
35
  "orr",
32
36
  "mcp",
37
+ "sandbox",
33
38
  "dashboard",
34
39
  "cases",
35
40
  "metrics",
@@ -57,21 +62,14 @@ export async function runDash(config, parsed, io, env) {
57
62
  const opts = dashOptionsFromArgs(parsed);
58
63
  const tty = io.isTty ?? Boolean(stdinFd.isTTY && stdoutFd.isTTY);
59
64
  const once = opts.once || !tty;
60
- let client;
61
- if (!opts.offline && config.apiKey) {
62
- client = new KyaHttpClient({
63
- baseUrl: config.baseUrl,
64
- apiKey: config.apiKey,
65
- host: config.host,
66
- agentId: config.agentId,
67
- requireApiKey: true,
68
- });
69
- }
70
- const fetchPlane = client
71
- ? async () => client.request("/api/v1/kya/entitlement", { signal: AbortSignal.timeout(5000) })
72
- : undefined;
73
- let pane = opts.pane;
74
65
  let offline = opts.offline;
66
+ let client = makeClient(config, offline);
67
+ const policyCache = new PolicySampleCache();
68
+ let forcePolicyEval = false;
69
+ let autoRefresh = false;
70
+ let pending;
71
+ let orrProducerIdx = 0;
72
+ let pane = opts.pane;
75
73
  let cursor = 0;
76
74
  let orrSummary;
77
75
  let last = {
@@ -85,15 +83,29 @@ export async function runDash(config, parsed, io, env) {
85
83
  offline,
86
84
  pane,
87
85
  client,
88
- fetchPlaneEntitlement: fetchPlane,
86
+ fetchPlaneEntitlement: client
87
+ ? async () => client.request("/api/v1/kya/entitlement", { signal: AbortSignal.timeout(5000) })
88
+ : undefined,
89
89
  cursor,
90
90
  orrSummary,
91
+ policyCache,
92
+ forcePolicyEval,
91
93
  }, env);
94
+ forcePolicyEval = false;
92
95
  last = {
93
96
  agents: [...snap.agents],
94
97
  approvals: [...snap.approvals],
95
98
  sessions: [...snap.sessions],
96
99
  };
100
+ // Interactive: clear screen before repaint to avoid scroll spam.
101
+ if (!once && tty) {
102
+ try {
103
+ stdoutFd.write("\x1b[2J\x1b[H");
104
+ }
105
+ catch {
106
+ /* ignore */
107
+ }
108
+ }
97
109
  io.log(snap.frame);
98
110
  return snap;
99
111
  };
@@ -108,16 +120,105 @@ export async function runDash(config, parsed, io, env) {
108
120
  stdinFd.resume();
109
121
  return await new Promise((resolve) => {
110
122
  let painting = false;
123
+ let refreshTimer;
124
+ const stopRefresh = () => {
125
+ if (refreshTimer) {
126
+ clearInterval(refreshTimer);
127
+ refreshTimer = undefined;
128
+ }
129
+ };
130
+ const startRefresh = () => {
131
+ stopRefresh();
132
+ if (!autoRefresh || offline || !client)
133
+ return;
134
+ refreshTimer = setInterval(() => {
135
+ if (painting || pending)
136
+ return;
137
+ painting = true;
138
+ void paint()
139
+ .catch((err) => {
140
+ if (err instanceof AuthRequiredError)
141
+ io.error(err.message);
142
+ else
143
+ io.error(err instanceof Error ? err.message : String(err));
144
+ })
145
+ .finally(() => {
146
+ painting = false;
147
+ });
148
+ }, AUTO_REFRESH_MS);
149
+ };
150
+ const syncClient = () => {
151
+ client = makeClient(config, offline);
152
+ if (offline)
153
+ policyCache.invalidate();
154
+ if (!offline && client)
155
+ startRefresh();
156
+ else
157
+ stopRefresh();
158
+ };
159
+ const runPaint = () => {
160
+ painting = true;
161
+ void paint()
162
+ .catch((err) => {
163
+ if (err instanceof AuthRequiredError)
164
+ io.error(err.message);
165
+ else
166
+ io.error(err instanceof Error ? err.message : String(err));
167
+ })
168
+ .finally(() => {
169
+ painting = false;
170
+ });
171
+ };
111
172
  const onKey = (str, key) => {
112
173
  const raw = key?.ctrl && key.name === "c" ? "\u0003" : (str ?? key?.name ?? "");
113
174
  const action = mapKey(raw);
175
+ if (pending) {
176
+ if (action.type === "confirm-yes") {
177
+ const job = pending;
178
+ pending = undefined;
179
+ if (!client || offline) {
180
+ io.log("Need a live plane (drop offline / set KYA_API_KEY).");
181
+ return;
182
+ }
183
+ const cfg = { ...config, offline: false };
184
+ void (async () => {
185
+ try {
186
+ if (job.kind === "kill") {
187
+ const killed = await runKillAgent(cfg, job.id, client);
188
+ io.log(`${killed.status ?? "PAUSED"} ${killed.id}`);
189
+ }
190
+ else if (job.kind === "shrink") {
191
+ const sh = await runShrinkSession(cfg, job.id, job.to, client);
192
+ io.log(`clearance ${sh.from} → ${sh.to}`);
193
+ }
194
+ else {
195
+ const res = await client.decideApproval(job.id, job.decision);
196
+ io.log(`${job.decision} → ${res.status} ${res.id}`);
197
+ }
198
+ }
199
+ catch (err) {
200
+ if (err instanceof AuthRequiredError)
201
+ io.error(err.message);
202
+ else
203
+ io.error(err instanceof Error ? err.message : String(err));
204
+ }
205
+ finally {
206
+ await paint();
207
+ }
208
+ })();
209
+ return;
210
+ }
211
+ pending = undefined;
212
+ io.log("cancelled");
213
+ return;
214
+ }
114
215
  if (action.type === "quit") {
115
216
  cleanup();
116
217
  resolve(0);
117
218
  return;
118
219
  }
119
220
  if (action.type === "help") {
120
- io.log("1-7 panes · j/k move · w wrap · k kill · i invoke · b/R shrink · o orr · a/x approve/reject (JWT) · O offline · q");
221
+ io.log("1-8 panes · j/k · e eval · p auto-refresh · w wrap · k kill · i invoke · b/R shrink · o orr · t passport · a/x decide (y confirm) · O offline · q");
121
222
  return;
122
223
  }
123
224
  if (action.type === "noop" || painting)
@@ -130,6 +231,22 @@ export async function runDash(config, parsed, io, env) {
130
231
  }
131
232
  else if (action.type === "offline") {
132
233
  offline = !offline;
234
+ syncClient();
235
+ io.log(offline ? "offline (sample PEP only)" : "live plane");
236
+ }
237
+ else if (action.type === "force-policy-eval") {
238
+ forcePolicyEval = true;
239
+ policyCache.invalidate();
240
+ pane = "policy";
241
+ }
242
+ else if (action.type === "toggle-auto-refresh") {
243
+ autoRefresh = !autoRefresh;
244
+ io.log(autoRefresh ? `auto-refresh ${AUTO_REFRESH_MS / 1000}s` : "auto-refresh off");
245
+ if (autoRefresh)
246
+ startRefresh();
247
+ else
248
+ stopRefresh();
249
+ return;
133
250
  }
134
251
  else if (action.type === "pane" && action.pane) {
135
252
  pane = action.pane;
@@ -139,7 +256,10 @@ export async function runDash(config, parsed, io, env) {
139
256
  io.log("Register: kya register-agent --name solo --version-hash dev-local");
140
257
  return;
141
258
  }
142
- else if (!opts.offline && client) {
259
+ else if (action.type === "refresh") {
260
+ // fall through to paint
261
+ }
262
+ else if (!offline && client) {
143
263
  const cfg = { ...config, offline: false };
144
264
  void (async () => {
145
265
  try {
@@ -151,38 +271,54 @@ export async function runDash(config, parsed, io, env) {
151
271
  const row = selected(last.agents);
152
272
  if (!row)
153
273
  return;
154
- const killed = await runKillAgent(cfg, row.id, client);
155
- io.log(`${killed.status ?? "PAUSED"} ${killed.id}`);
274
+ pending = { kind: "kill", id: row.id };
275
+ io.log(`kill ${row.id}? press y to confirm, any other key to cancel`);
276
+ return;
156
277
  }
157
278
  else if (action.type === "invoke") {
158
279
  const row = selected(last.approvals);
159
280
  if (!row)
160
281
  return;
161
282
  const result = await runInvoke(cfg, { toolId: String(row.action ?? "org.sample.data.write"), irreversible: true }, client);
162
- io.log(`invoke ${result.verdict} dispatched=${result.dispatched} ${result.sideEffect}`);
283
+ io.log(`invoke ${result.verdict} dispatched=${result.dispatched} ${result.sideEffect} (does not run the write)`);
163
284
  }
164
285
  else if (action.type === "shrink-build" || action.type === "shrink-read") {
165
286
  const row = selected(last.sessions);
166
287
  if (!row)
167
288
  return;
168
289
  const to = action.type === "shrink-build" ? "BUILD" : "READ";
169
- const sh = await runShrinkSession(cfg, row.id, to, client);
170
- io.log(`clearance ${sh.from} → ${sh.to}`);
290
+ pending = { kind: "shrink", id: row.id, to };
291
+ io.log(`shrink ${row.id} → ${to}? press y to confirm, any other key to cancel`);
292
+ return;
171
293
  }
172
294
  else if (action.type === "orr-run") {
173
- const result = deskOrr(config.cwd);
295
+ const producer = ORR_PRODUCERS[orrProducerIdx % ORR_PRODUCERS.length];
296
+ orrProducerIdx += 1;
297
+ io.log(`orr producer=${producer}`);
298
+ const result = deskOrr(config.cwd, producer);
174
299
  orrSummary = {
175
300
  overall: result.report.overall,
176
301
  disposition: result.report.disposition,
177
302
  path: result.reportJsonPath ?? result.reportMdPath,
178
303
  };
179
304
  }
305
+ else if (action.type === "passport") {
306
+ const row = selected(last.agents);
307
+ if (!row) {
308
+ io.log("Select an agent (pane 3) then press t");
309
+ return;
310
+ }
311
+ const passport = await client.getPassport(row.id);
312
+ io.log(JSON.stringify(passport, null, 2));
313
+ }
180
314
  else if (action.type === "decide-approve" || action.type === "decide-reject") {
181
315
  const row = selected(last.approvals);
182
316
  if (!row)
183
317
  return;
184
- const verb = action.type === "decide-approve" ? "approve" : "reject";
185
- io.log(`kya ${verb} --id ${row.id} (TUI does not decide)`);
318
+ const decision = action.type === "decide-approve" ? "approve" : "reject";
319
+ pending = { kind: "decide", id: row.id, decision };
320
+ io.log(`${decision} ${row.id}? press y to confirm (needs kya.approve). Any other key cancels.`);
321
+ return;
186
322
  }
187
323
  }
188
324
  catch (err) {
@@ -198,26 +334,31 @@ export async function runDash(config, parsed, io, env) {
198
334
  return;
199
335
  }
200
336
  else if (action.type === "orr-run") {
201
- const result = deskOrr(config.cwd);
337
+ const producer = ORR_PRODUCERS[orrProducerIdx % ORR_PRODUCERS.length];
338
+ orrProducerIdx += 1;
339
+ io.log(`orr producer=${producer}`);
340
+ const result = deskOrr(config.cwd, producer);
202
341
  orrSummary = {
203
342
  overall: result.report.overall,
204
343
  disposition: result.report.disposition,
205
344
  path: result.reportJsonPath ?? result.reportMdPath,
206
345
  };
207
346
  }
208
- painting = true;
209
- void paint()
210
- .catch((err) => {
211
- if (err instanceof AuthRequiredError)
212
- io.error(err.message);
213
- else
214
- io.error(err instanceof Error ? err.message : String(err));
215
- })
216
- .finally(() => {
217
- painting = false;
218
- });
347
+ else if (action.type === "wrap" ||
348
+ action.type === "kill" ||
349
+ action.type === "invoke" ||
350
+ action.type === "shrink-build" ||
351
+ action.type === "shrink-read" ||
352
+ action.type === "decide-approve" ||
353
+ action.type === "decide-reject" ||
354
+ action.type === "passport") {
355
+ io.log("Need a live plane (O toggles offline; set KYA_API_KEY).");
356
+ return;
357
+ }
358
+ runPaint();
219
359
  };
220
360
  const cleanup = () => {
361
+ stopRefresh();
221
362
  stdinFd.setRawMode?.(false);
222
363
  stdinFd.off("keypress", onKey);
223
364
  stdinFd.pause();
@@ -225,4 +366,15 @@ export async function runDash(config, parsed, io, env) {
225
366
  stdinFd.on("keypress", onKey);
226
367
  });
227
368
  }
369
+ function makeClient(config, offline) {
370
+ if (offline || !config.apiKey)
371
+ return undefined;
372
+ return new KyaHttpClient({
373
+ baseUrl: config.baseUrl,
374
+ apiKey: config.apiKey,
375
+ host: config.host,
376
+ agentId: config.agentId,
377
+ requireApiKey: true,
378
+ });
379
+ }
228
380
  //# sourceMappingURL=dash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dash.js","sourceRoot":"","sources":["../../src/commands/dash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dash.js","sourceRoot":"","sources":["../../src/commands/dash.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import type { ParsedArgs } from "../parse-args.js";
6
6
  import { type AgentShieldSpawnFn } from "../orr/agentshield.js";
7
+ import { type ScorecardSpawnFn } from "../orr/scorecard.js";
7
8
  import { type ShowbackReport } from "../showback/cost-per-task.js";
8
9
  export type OrrRating = "green" | "amber" | "red";
9
10
  export type OrrDisposition = "go" | "conditional" | "no_go";
@@ -79,6 +80,8 @@ export interface OrrRunOptions {
79
80
  readonly usagePath?: string;
80
81
  /** Test seam. Production uses spawnSync("agentshield", ...). Never --fix. */
81
82
  readonly agentshieldSpawn?: AgentShieldSpawnFn;
83
+ /** Test seam. Production uses spawnSync("scorecard", ...) or SCORECARD_BIN. */
84
+ readonly scorecardSpawn?: ScorecardSpawnFn;
82
85
  }
83
86
  export declare function orrRunOptionsFromArgs(parsed: ParsedArgs): OrrRunOptions;
84
87
  export interface OrrRunResult {
@@ -1 +1 @@
1
- {"version":3,"file":"orr.d.ts","sourceRoot":"","sources":["../../src/commands/orr.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,aAAa,GAAG,OAAO,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;QAChD,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;KACjD,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS;QAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC;QAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,SAAS,cAAc,EAAE,CAAC;IAClD,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;CAChD;AAgBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CA2CvE;AAcD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CA8H3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,CAiEzE;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CA4JhE;AA4ID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAwD3D"}
1
+ {"version":3,"file":"orr.d.ts","sourceRoot":"","sources":["../../src/commands/orr.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { basename, join, resolve, sep } from "node:path";
7
7
  import { UsageError } from "../errors.js";
8
8
  import { flagBool, flagString } from "../parse-args.js";
9
9
  import { AGENTSHIELD_PRODUCER_ID, readAgentShieldJson, tryRunAgentShieldCli, } from "../orr/agentshield.js";
10
+ import { SCORECARD_PRODUCER_ID, ingestScorecardJson, tryRunScorecardCli, } from "../orr/scorecard.js";
10
11
  import { buildShowback, parseUsageRecords, } from "../showback/cost-per-task.js";
11
12
  const CATEGORY_META = [
12
13
  { id: "engineering_craft", label: "Engineering craft" },
@@ -98,15 +99,26 @@ export function runOrr(options) {
98
99
  const findings = [...runSaFirstPartyProbes(absPath)];
99
100
  const coverageGaps = [];
100
101
  const producersRequested = [...options.producers];
101
- if (options.scorecardPath && !producersRequested.includes("openssf.scorecard")) {
102
- producersRequested.push("openssf.scorecard");
102
+ if (options.scorecardPath && !producersRequested.includes(SCORECARD_PRODUCER_ID)) {
103
+ producersRequested.push(SCORECARD_PRODUCER_ID);
103
104
  }
104
105
  if (options.agentshieldJsonPath &&
105
106
  !producersRequested.includes(AGENTSHIELD_PRODUCER_ID)) {
106
107
  producersRequested.push(AGENTSHIELD_PRODUCER_ID);
107
108
  }
108
- if (options.scorecardPath) {
109
- findings.push(...readScorecardEvidence(options.scorecardPath));
109
+ const scorecardRequested = producersRequested.includes(SCORECARD_PRODUCER_ID) ||
110
+ Boolean(options.scorecardPath);
111
+ if (scorecardRequested) {
112
+ if (options.scorecardPath) {
113
+ findings.push(...readScorecardEvidence(options.scorecardPath));
114
+ }
115
+ else {
116
+ const scResult = tryRunScorecardCli(absPath, options.scorecardSpawn);
117
+ if ("findings" in scResult)
118
+ findings.push(...scResult.findings);
119
+ else
120
+ coverageGaps.push(scResult.gap);
121
+ }
110
122
  }
111
123
  const agentShieldRequested = producersRequested.includes(AGENTSHIELD_PRODUCER_ID) ||
112
124
  Boolean(options.agentshieldJsonPath);
@@ -128,20 +140,12 @@ export function runOrr(options) {
128
140
  continue;
129
141
  if (p === AGENTSHIELD_PRODUCER_ID)
130
142
  continue;
131
- if (p === "openssf.scorecard") {
132
- if (options.scorecardPath)
133
- continue;
134
- coverageGaps.push({
135
- adapter_id: p,
136
- reason: "binary_not_found_or_not_run_in_o1",
137
- });
138
- }
139
- else {
140
- coverageGaps.push({
141
- adapter_id: p,
142
- reason: "adapter_not_implemented_o1",
143
- });
144
- }
143
+ if (p === SCORECARD_PRODUCER_ID)
144
+ continue;
145
+ coverageGaps.push({
146
+ adapter_id: p,
147
+ reason: "adapter_not_implemented_o1",
148
+ });
145
149
  }
146
150
  }
147
151
  const disabled = new Set(options.disableCategories);
@@ -236,39 +240,7 @@ export function readScorecardEvidence(scorecardPath) {
236
240
  },
237
241
  ];
238
242
  }
239
- const obj = parsed && typeof parsed === "object" ? parsed : {};
240
- const score = typeof obj.score === "number" ? obj.score : undefined;
241
- const checks = Array.isArray(obj.checks) ? obj.checks : [];
242
- const findings = [
243
- {
244
- id: "sa.scorecard.ingested",
245
- category: "enterprise_readiness",
246
- severity: "info",
247
- title: "Scorecard ingested as evidence",
248
- detail: score === undefined
249
- ? "Scorecard dump loaded. Does not ALLOW side effects."
250
- : `Scorecard score=${score} (evidence only — not a PEP).`,
251
- evidence: abs,
252
- source_tool: "openssf.scorecard",
253
- },
254
- ];
255
- for (const raw of checks.slice(0, 24)) {
256
- if (!raw || typeof raw !== "object")
257
- continue;
258
- const check = raw;
259
- const name = typeof check.name === "string" ? check.name : "check";
260
- const checkScore = check.score;
261
- findings.push({
262
- id: `sa.scorecard.check.${name.toLowerCase().replace(/[^a-z0-9]+/g, "_")}`,
263
- category: "enterprise_readiness",
264
- severity: "info",
265
- title: `Scorecard ${name}`,
266
- detail: `score=${String(checkScore ?? "n/a")} — evidence only`,
267
- evidence: abs,
268
- source_tool: "openssf.scorecard",
269
- });
270
- }
271
- return findings;
243
+ return ingestScorecardJson(parsed, abs);
272
244
  }
273
245
  /** SA first-party probes: evidence only; scanners never ALLOW. */
274
246
  export function runSaFirstPartyProbes(root) {